Commit Graph

418 Commits

Author SHA1 Message Date
Scott Richmond
29fc3714f8 Add back in some clj stuff: core/main/repl/loader 2023-11-29 22:39:56 -05:00
Scott Richmond
a7860b4544 Break out match from when, clean up, strictify (binding, non-binding, simple) 2023-11-29 22:29:58 -05:00
Scott Richmond
86cb4c2d76 Smol change 2023-11-26 12:18:57 -05:00
Scott Richmond
246e9e5e53 clj->extern 2023-11-25 14:27:49 -05:00
Scott Richmond
fd77e1ed45 Fix clj (extern call) for js 2023-11-25 14:26:00 -05:00
Scott Richmond
a072191081 Wire up proof of concept! 2023-11-24 18:41:26 -05:00
Scott Richmond
8c19cca9e7 Get it working! Ludus in cljs works. 2023-11-24 13:54:06 -05:00
Scott Richmond
a23e3bfdc5 Keep working, cljs repl :((((( 2023-11-24 13:17:20 -05:00
Scott Richmond
7ec258ee24 Clean it up, wire it up. 2023-11-16 19:16:31 -05:00
Scott Richmond
3273ab4385 Add cljs to deps, hello world 2023-11-16 13:22:15 -05:00
Scott Richmond
3b5a789333 Make some edits. 2023-10-13 18:18:05 -04:00
919537e758 Start working on turtle graphics 2023-07-04 12:39:32 -04:00
3854116f33 Fix and/or functions 2023-07-04 12:39:18 -04:00
a23c779efa Fix merge conflicts 2023-06-02 16:10:40 -06:00
5c8ba725a9 Bugfixes. 2023-06-01 17:27:55 -06:00
7c30b6259b Wire up repl & file interpreters. 2023-06-01 15:06:33 -06:00
c179325719 Improve prelude 2023-06-01 13:11:06 -06:00
a6ef6522c0 Add clj fn to prelude, calls arbitrary Clojure. 2023-06-01 12:46:52 -06:00
c8c74fbd49 Simplify conditional forms: when, if, etc. 2023-05-31 11:18:55 -06:00
67e230c714 Actually save work 2023-05-31 11:51:43 -04:00
82a539a112 Update struct match 2023-05-31 11:51:02 -04:00
3bd34f1269 Fix type member of prelude 2023-05-31 11:42:51 -04:00
e27e5a4c1a Add typed shorthand to dicts 2023-05-31 11:37:39 -04:00
6c38c43727 Get dict splats working, fix match-typed 2023-05-31 11:31:04 -04:00
0e9c403634 Things, mostly list & tuple splats are correct. 2023-05-31 09:30:12 -04:00
fdaf1068d3 Get stuff running again, fix missing nil pattern, play wtih unwrap, default 2023-05-27 18:05:43 -04:00
35eed84741 Constraint -> guard 2023-05-26 15:24:10 -04:00
c1b305bc1c Fix constraint -> guard 2023-05-26 15:23:12 -04:00
776f975d54 Collate TODOs; comment repl cruft 2023-05-26 15:21:55 -04:00
c6eeed4f4c Use defp macros for parsers; update grammar using defp; update interpreter with new node names 2023-05-26 15:07:41 -04:00
6cf09fb177 Complete interpreter, less process system: spawn, receive 2023-05-22 16:56:24 -04:00
618d6b856c Add TODO 2023-05-22 00:17:17 -04:00
3256565308 Add separate recur node 2023-05-22 00:16:01 -04:00
65692b611b make some notes 2023-05-22 00:14:53 -04:00
b504370d96 Keep knocking 'em down: fns, loops, pipelines work 2023-05-21 23:58:54 -04:00
8516f0e053 Start work on the interpreter 2023-05-21 16:43:26 -04:00
e02e972d27 Start work on a compiler 2023-05-20 14:25:33 -04:00
ae8f72d3b4 Remove debug printlns 2023-05-20 14:25:13 -04:00
0fe85cf2ed Remove repl cruft 2023-05-20 14:20:23 -04:00
4fd593752b Finally get it right? 2023-05-20 14:18:30 -04:00
4ea7a3a23d Keep grinding; problems now with order/repeats 2023-05-19 18:55:14 -04:00
f97453b813 Complete parser & ludus grammar! 2023-05-18 16:44:29 -04:00
23e29fdca2 Reindent 2023-05-18 16:44:14 -04:00
a7ab313a5f Broken! Argh. 2023-05-16 20:54:01 -04:00
52abde501a Add flat combinator 2023-05-16 18:29:22 -04:00
cbd78ce7f7 Get parser combinator strategy working 2023-05-16 16:06:18 -04:00
919ab5ca34 Keep grinding on parser combinators 2023-05-07 23:23:42 -04:00
5b1ff5aef3 Many iterations of parser combinator strategies. Not yet working. 2023-05-07 22:49:19 -04:00
2866ff4eb6 Make some modest moves 2023-05-02 19:44:17 -04:00
c5a72912df Dequalify token keywords 2023-05-02 19:43:57 -04:00
963c63aed3 Unwire the things for parser refactor 2023-05-02 19:15:05 -04:00
96b3f01e7e keep unfucking merge 2023-05-02 19:07:21 -04:00
4936daa8dc dequalify token keywords 2023-05-02 19:02:28 -04:00
3a7f86e401 Clean up some stuff, add ebnf grammar, fail to get quil working 2023-05-02 18:58:36 -04:00
0c2c646012 Clean up some stuff in scanner, try and fail to get quil working 2023-05-02 18:55:56 -04:00
Scott Richmond
55d76f6854 proof of concept: add quil to ludus 2023-03-25 15:52:25 -04:00
Scott Richmond
1c2ab5182e futz with repl 2023-03-20 15:36:00 -04:00
Scott Richmond
7dca7ad3cc add a quick thought about spawn implementation 2023-01-28 17:42:34 -05:00
Scott Richmond
ccddfa07c5 add reference to vthread source 2023-01-28 17:42:17 -05:00
Scott Richmond
b7f0d17afe processes use virtual threads 2023-01-28 17:18:09 -05:00
Scott Richmond
a51ba2a2bc add TODO re: expression terminators 2023-01-28 14:31:40 -05:00
Scott Richmond
1caddfacbc Make (_) a parsing error 2022-11-03 17:51:33 -04:00
Scott Richmond
e248be16cf Comment out <- from scanner 2022-11-03 17:33:06 -04:00
Scott Richmond
01d7dc0ab1 Fix bug where if let leaked context 2022-11-03 17:19:46 -04:00
Scott Richmond
238910e68e Complete single-branch datatypes, start work on sum types 2022-08-04 19:24:09 -04:00
Scott Richmond
cd0cad8ac3 cljfmt 2022-08-04 18:45:56 -04:00
Scott Richmond
9684c2f4c5 Add datatype declarations 2022-08-04 18:43:20 -04:00
Scott Richmond
5300ca5e3b Move ns & import to parse-script 2022-08-04 16:54:13 -04:00
Scott Richmond
969c321ffb Work on datatypes 2022-08-04 16:49:20 -04:00
Scott Richmond
18e4826960 Add datatype tokens 2022-07-26 18:25:11 -04:00
Scott Richmond
72aac19bd7 Add upper? and lower? fns 2022-07-26 18:19:16 -04:00
Scott Richmond
88c79b2b31 Comment out REPL cruft 2022-07-26 18:18:57 -04:00
Scott Richmond
08d91dd9de Add useful TODO, re: tuple splat patterns 2022-06-25 22:01:32 -04:00
Scott Richmond
272e46551e Cleanup todos 2022-06-25 18:20:54 -04:00
Scott Richmond
d2cefb79f0 Fix bug allowing repeated names everywhere 2022-06-25 18:18:54 -04:00
Scott Richmond
80fe4d370d Prevent duplicate keys in struct/dict patterns 2022-06-25 11:55:17 -04:00
Scott Richmond
df511ce5eb Fix bug allowing repeated name in tuples 2022-06-19 16:21:54 -04:00
Scott Richmond
a56a4b565a ::ast/splatted -> ::ast/splat (standardize) 2022-06-19 16:21:12 -04:00
Scott Richmond
e30a8b973b Add splats to dict & struct patterns in parser 2022-06-19 15:46:58 -04:00
Scott Richmond
07c21494cf Add splats to tuple patterns in parser 2022-06-19 15:01:00 -04:00
Scott Richmond
24f85966a2 Improve error message. 2022-06-19 14:58:14 -04:00
Scott Richmond
cdfcd1249e Fix copypasta error 2022-06-19 14:57:44 -04:00
Scott Richmond
c3c5c390e5 Unroll copypasta. 2022-06-19 14:57:04 -04:00
Scott Richmond
4e7590226b Copypasta splat patterns to dict, struct, tuple in parser 2022-06-19 14:52:38 -04:00
Scott Richmond
68bc37ef61 Add splats to list patterns in parser 2022-06-19 14:48:53 -04:00
Scott Richmond
4254359934 Complete if-let 2022-06-19 14:01:55 -04:00
Scott Richmond
689f3f23bc Add interpret-if-let 2022-06-19 13:46:11 -04:00
Scott Richmond
ed14b97a00 REPL investigate if-let ast 2022-06-19 13:45:52 -04:00
Scott Richmond
5653912f0e Fix file loading from REPL 2022-06-19 13:34:16 -04:00
Scott Richmond
f8322412b7 Remove REPL stuff 2022-06-19 13:15:00 -04:00
Scott Richmond
61bdeab5a6 REPL stuff 2022-06-19 13:12:50 -04:00
Scott Richmond
c17d210b43 Fix scanning bug: = is now a terminator 2022-06-04 14:49:49 -04:00
Scott Richmond
0aa7efcbb1 Add process:flush, fix printing 2022-06-02 19:10:41 -04:00
Scott Richmond
8752ee0da1 Add some process functions 2022-06-02 18:42:02 -04:00
Scott Richmond
4603dcf980 Fix import+process bug 2022-06-02 17:51:30 -04:00
Scott Richmond
2de1d94a4a Fix unbound name errors, import bug, process:in->process:inbox 2022-06-02 17:38:16 -04:00
Scott Richmond
2f5ebe85f7 Improve error messages in processes 2022-06-02 14:57:16 -04:00
Scott Richmond
1123d82503 Add conj and assoc 2022-06-02 14:56:13 -04:00
Scott Richmond
015d079d57 hashmap->dict cleanup 2022-06-02 14:56:03 -04:00
Scott Richmond
3f44c64802 Fix tuple/list/set parsing bug 2022-06-01 18:00:29 -04:00
Scott Richmond
b249817aa9 Fix print-function stack overflow 2022-06-01 17:28:55 -04:00
Scott Richmond
46581e103d Add actors to repl 2022-06-01 10:44:34 -04:00
Scott Richmond
1e28556baa First stab at 'actors': using threads. 2022-05-31 14:21:19 -04:00
Scott Richmond
09696c212a Fix bug when last line is comment 2022-05-31 14:12:52 -04:00
Scott Richmond
0055056142 Parse receive & self 2022-05-30 18:02:24 -04:00
Scott Richmond
b0d5b30124 Parse spawn & send 2022-05-30 17:40:27 -04:00
Scott Richmond
bb1f2a0086 Fix botched reserved word update 2022-05-30 17:24:10 -04:00
Scott Richmond
33d12898ec Clean up reserved words 2022-05-30 17:20:57 -04:00
Scott Richmond
18bcf6d8c6 More minor repl improvements 2022-05-27 20:02:32 -04:00
Scott Richmond
173f5756a7 cljfmt 2022-05-27 19:18:00 -04:00
Scott Richmond
874dacf791 Littl repl improvements 2022-05-27 19:09:25 -04:00
Scott Richmond
a57446db93 Add basic repl session management 2022-05-26 20:24:41 -04:00
Scott Richmond
059fc16df2 Stand up super basic repl 2022-05-26 19:50:55 -04:00
Scott Richmond
698a07d085 Add interpret-repl 2022-05-26 19:50:45 -04:00
Scott Richmond
ef97cf16e4 Baby repl stub 2022-05-26 18:59:28 -04:00
Scott Richmond
a3c60e0196 Hashmap -> dict in scanner 2022-05-26 18:54:51 -04:00
Scott Richmond
64c8f30964 Hashmap -> dict in parser 2022-05-26 18:49:52 -04:00
Scott Richmond
3292c0676c Hashmap -> dict 2022-05-26 18:44:40 -04:00
Scott Richmond
a5b1763324 Add import error handling 2022-05-26 18:40:26 -04:00
Scott Richmond
8f1701dabb Add minimal error handling 2022-05-26 18:39:37 -04:00
Scott Richmond
7beca7e0f6 Fix line number reporting 2022-05-26 18:12:23 -04:00
Scott Richmond
c5a7b5ad46 Add a little comment 2022-05-26 18:06:37 -04:00
Scott Richmond
907d4e2b31 Use the little file loader 2022-05-24 18:52:45 -04:00
Scott Richmond
d8d1bf0858 Make a little file loader 2022-05-24 18:52:32 -04:00
Scott Richmond
0887c0d830 Comment out repl stuff 2022-05-24 17:32:17 -04:00
Scott Richmond
3798dba9dc Comment out repl stuff 2022-05-24 17:31:52 -04:00
Scott Richmond
6cced0dd8a Tidy up 2022-05-24 17:30:38 -04:00
Scott Richmond
372103a3ee Add or and and 2022-05-24 17:29:06 -04:00
Scott Richmond
1ca434b308 Remove old show cruft 2022-05-24 17:02:50 -04:00
Scott Richmond
c0e88021f2 Remove unused clojure/string require 2022-05-24 17:02:09 -04:00
Scott Richmond
1079bb8028 Remove unused (and incorrect) 2-arity of token fn 2022-05-24 17:01:44 -04:00
Scott Richmond
b1284f3338 Interpret splats in sets 2022-05-20 19:01:13 -04:00
Scott Richmond
6e4fd22fd4 Pull #()s out into fns 2022-05-20 18:54:14 -04:00
Scott Richmond
355b9f9949 Remove println crud 2022-05-20 18:50:43 -04:00
Scott Richmond
f0fe8005e9 Interpret splats in hashmaps 2022-05-20 18:46:40 -04:00
Scott Richmond
f70aa0f4ce Parse splats in hashmaps *correctly* 2022-05-20 18:46:24 -04:00
Scott Richmond
ea5d9fa948 Parse splats in hashmaps and sets 2022-05-20 18:14:22 -04:00
Scott Richmond
7390461f2b Interpret list splats 2022-05-20 17:59:39 -04:00
Scott Richmond
9d645e3b4b Add list splats 2022-05-20 17:35:16 -04:00
Scott Richmond
bb3d145e5d Fiddle repl source 2022-05-20 17:35:02 -04:00
Scott Richmond
4d7b12eb34 Add struct patterns 2022-05-19 20:03:39 -04:00
Scott Richmond
34da4dd6fe Actually add hashmap patterns. Whoops. 2022-05-19 20:00:16 -04:00
Scott Richmond
bc2f6f8317 REPL cruft 2022-05-19 19:59:40 -04:00
Scott Richmond
bd9a408e07 Add hash patterns; add hashmap data tag & update show 2022-05-19 19:59:20 -04:00
Scott Richmond
9984a6c8ec Add basic list matching 2022-05-19 19:27:32 -04:00
Scott Richmond
a899ee776d Parse basic list, hash, struct patterns. 2022-05-19 19:14:25 -04:00
Scott Richmond
ad778f7104 Play around 2022-05-19 18:55:38 -04:00
Scott Richmond
35cbe352a8 Update reserved words list & impl 2022-05-19 18:55:27 -04:00
Scott Richmond
9dd963e5b2 Interpret panic! not as fn but as rw. 2022-05-19 18:12:55 -04:00
Scott Richmond
4aeaa9e889 Fix parse-list :token typo 2022-05-19 18:11:31 -04:00