Commit Graph

59 Commits

Author SHA1 Message Date
trans_soup f389d3092d mention new special lines in README. 2023-11-11 18:39:17 +01:00
trans_soup bbf9b0c919 add `id`, `omega`, and `K` to prelude. 2023-11-11 18:37:01 +01:00
trans_soup ebcf350c45 create `prelude` "module". 2023-11-11 18:34:58 +01:00
trans_soup cb7a5153fa add special line `!.env_raw`. 2023-11-11 18:34:39 +01:00
trans_soup 946c8d14ca make it possible to skip special rendering. 2023-11-11 18:34:20 +01:00
trans_soup 20f9f21197 remove declaration of removed special line. 2023-11-11 18:30:36 +01:00
trans_soup 0f8efc4c39 add renderer for identity function. 2023-11-11 18:27:00 +01:00
trans_soup d2071fced2 tweak church boolean renderer. 2023-11-11 18:25:06 +01:00
trans_soup 1a6b0b9672 add special renderer for church booleans. 2023-11-11 18:24:10 +01:00
trans_soup 7979eb2f15 separate term rendering into own module.
and prepare for extension to that.
2023-11-11 18:23:39 +01:00
trans_soup 62465ceb15 separate expression serialization into own module. 2023-11-11 18:17:30 +01:00
trans_soup 7e928a7a5f detect (some) terms without a normal form. 2023-11-11 17:45:31 +01:00
trans_soup 1001dfb152 add trampolining to prevent stack overflows. 2023-11-11 17:44:41 +01:00
trans_soup f66d10321a add naive stack overflow prevention. 2023-11-11 17:35:51 +01:00
trans_soup efe498e9db add disclaimer about parser weakness. 2023-11-11 17:11:38 +01:00
trans_soup 5659cf551e improve parsing of applications. 2023-11-11 17:09:19 +01:00
trans_soup 1d9f24d5cd fix: comments are now ignored again. 2023-11-11 16:21:14 +01:00
trans_soup 33bc039803 add validation of parentheses balance. 2023-11-11 16:17:28 +01:00
trans_soup fd1bb299d4 rework parsing; add support for parentheses. 2023-11-11 16:13:25 +01:00
trans_soup 98757ce023 add ideas list. 2023-11-07 03:54:38 +01:00
trans_soup 7a50aa6e1e make prettified terms unambiguous.
add parentheses to prettified applications to make their meaning
unambiguous.
2023-11-07 01:33:35 +01:00
trans_soup 6fb482df27 make REPL output optional with each call to `run`. 2023-11-06 23:54:30 +01:00
trans_soup a3d013162c add `!.clear` command. 2023-11-06 23:15:59 +01:00
trans_soup ccdcff4c8e add language overview to readme. 2023-11-06 23:11:32 +01:00
trans_soup 3834049b0f improve `!.env` output. 2023-11-06 22:43:42 +01:00
trans_soup 6e2cab649e fix REPL comment & empty line handling.
fix REPL attempting to pretty-print the result of comments & empty
lines, despite them not having a result. they are now simply ignored.
2023-11-06 22:39:34 +01:00
trans_soup f7d3302219 update readme. 2023-11-06 22:35:24 +01:00
trans_soup 4f811fee05 update readme. 2023-11-06 22:29:30 +01:00
trans_soup 496e59be3c REPL now uses beta reduction instead of transpiling. 2023-11-06 22:18:59 +01:00
trans_soup 2524ce8edf implement beta-reduction. 2023-11-06 22:18:31 +01:00
trans_soup fb48804bee rename module from execute to transpile.
since that's what it actually does.
2023-11-06 22:02:47 +01:00
trans_soup 29ea9dd356 improve REPL feedback. 2023-11-06 18:45:03 +01:00
trans_soup 1df9eda02a compiler tweak.
compiler now includes the function that was bound in the returned data
from compiling a binding line.
2023-11-06 18:14:07 +01:00
trans_soup 54a606794d update comment about special lines. 2023-11-06 18:07:59 +01:00
trans_soup b0a552cd30 update readme. 2023-11-06 17:35:14 +01:00
trans_soup 047c2a4a42 add REPL.
(it's not done yet, but the entry point already imports this since like
2 commits back.)
2023-11-06 17:31:59 +01:00
trans_soup 27b019595d update readme. 2023-11-06 16:50:39 +01:00
trans_soup 84278263d7 clean up entrypoint `main.mjs`.
it now simply imports the REPL.
2023-11-06 16:43:35 +01:00
trans_soup b9582163cc add compiler support for expression lines. 2023-11-06 16:43:10 +01:00
trans_soup eadd722f39 export line compile function. 2023-11-06 16:42:59 +01:00
trans_soup fa4d1b8cc9 add parser support for expression lines. 2023-11-06 16:42:35 +01:00
trans_soup 1c0090e644 export line parsing function. 2023-11-06 16:42:19 +01:00
trans_soup ffeac6891b add expression line type. 2023-11-06 16:32:18 +01:00
trans_soup 12aa28bb7f create lil' demo program. 2023-11-06 16:09:39 +01:00
trans_soup 6fe8660061 make execution return a function. 2023-11-06 16:08:23 +01:00
trans_soup 2778216ff6 fix off-by-one error in execution code. 2023-11-06 16:08:06 +01:00
trans_soup 0d99d58812 implement program execution. 2023-11-06 15:39:18 +01:00
trans_soup abdea0828f fix compilation format. 2023-11-06 15:35:21 +01:00
trans_soup 64a01d4abf complete compilation.
also rename misleading names "execution" to "compilation".
2023-11-06 15:20:19 +01:00
trans_soup 9a5597813c separate Expr type declaration into own module. 2023-11-06 14:40:07 +01:00