Commit graph

51 commits

Author SHA1 Message Date
bacfd64bae Pass column info on lex 2022-02-15 00:08:24 +09:00
8434ac98a0 (Re)add recursion support 2022-02-13 21:10:25 +09:00
23892acf6d Refactor env to list 2022-02-12 03:18:00 +09:00
1790a72b68 Add column info to Lex 2022-02-12 03:17:26 +09:00
fcf2c0388d Add --debug flag 2022-02-11 15:05:21 +09:00
138d12e899 Refactor function evaluation; now can partially apply 2022-02-11 02:54:21 +09:00
b2251d26d5 Seperate eval and eval_top 2022-02-10 01:37:01 +09:00
d5ac54365d Add closure 2022-02-09 17:27:19 +09:00
cd3487dd81 Fix apply bug with keyword 2022-02-08 22:03:16 +09:00
edeff67edb Add relation operators 2022-02-08 22:02:00 +09:00
a752932913 Add Bool and If 2022-02-08 16:05:33 +09:00
1f91d214ee Implement Ocaml-style return 2022-02-08 01:22:49 +09:00
7cddc45e8b Removed some exceptions 2022-02-08 01:00:36 +09:00
36fd3de4e7 Merge Eval and Env 2022-02-08 00:46:43 +09:00
700356022b Add symbol type 2022-02-08 00:26:03 +09:00
95684a31df Change names 2022-02-08 00:15:09 +09:00
05797676ce Move Value module into Env 2022-02-07 23:12:11 +09:00
995d95df41 Seperate Ast and value (which should be in Eval) 2022-02-07 01:09:57 +09:00
8093af06a7 Remove meaningless test.ml 2022-02-01 21:42:12 +09:00
1dbc3f5264 Add function and external value 2022-02-01 21:38:00 +09:00
765ac6f004 Add Env module 2022-02-01 02:20:48 +09:00
d30b1de271 Fix a bug that parser treated var as 0-ary function 2022-02-01 02:20:48 +09:00
d6f31ccde0 Seperate Value.t and Token.t 2022-02-01 02:06:18 +09:00
c33fd366ee Add basic function evaluation 2022-01-29 20:01:48 +09:00
b699ed6b2f refactor lex 2022-01-28 01:52:57 +09:00
282fbfa738 Merge Binop and Unary to Operator 2022-01-28 00:56:24 +09:00
bb2ee45c33 Rewrite binop 2022-01-25 15:28:38 +09:00
755052f531 Add unary negation 2022-01-23 01:20:34 +09:00
f77c1db22a Revert Lex.tokenize to be non-laxy 2022-01-22 03:04:16 +09:00
c2308d7939 Replace Token.(Values) with Token.Value of Ast.Value.t and add String type 2022-01-22 03:03:23 +09:00
2be0b7f794 Add let 2022-01-21 00:17:01 +09:00
5aaa261198 Add associativity control 2022-01-20 23:36:53 +09:00
e859d01683 Move parsers out of Parser.parse 2022-01-20 01:35:48 +09:00
7b9ccd1328 Add var table 2022-01-20 01:35:18 +09:00
7fd3917572 Add associativity table 2022-01-19 15:28:41 +09:00
856c2b359e Add ans 2022-01-19 14:17:04 +09:00
8e249614ee Rework Binary Expression Parser 2022-01-19 02:10:43 +09:00
aba76688be Refactor value 2022-01-18 16:52:33 +09:00
20e324f4c2 Improve operator lexing 2022-01-18 15:36:09 +09:00
4efb65c5cd Add float 2022-01-18 15:33:56 +09:00
61b70f02f1 Add error handling for Token_not_found 2022-01-17 15:21:47 +09:00
fd6bf1346e Lazy lexing 2022-01-17 15:21:27 +09:00
7d6c833e58 Rewrite token lexer 2022-01-17 15:17:18 +09:00
dd2a1e160e Add mod (working) and exp (not eval'ed yet) 2022-01-13 01:13:41 +09:00
0ec304cfdf Add texts to dune-project 2022-01-13 00:55:03 +09:00
b05605558c Refactor REPL 2022-01-13 00:54:40 +09:00
1fd0b30b41 Add parser combinators 2022-01-13 00:31:26 +09:00
6444f413ca Few things 2022-01-11 01:05:29 +09:00
dae562047c Add error handling 2022-01-11 00:45:25 +09:00
4e0d4dd9ac Replace GADTs to normal datatypes 2022-01-10 23:28:44 +09:00