Commit Graph

88 Commits

Author SHA1 Message Date
Nathan Braswell
9aeadfc224 Add names to BuiltinFunctions so they can be compiled when used by reference, much less hacky and allows our new BF version to be compiled 2020-05-10 21:33:47 -04:00
Nathan Braswell
f10630c66c First working object tests! 2020-05-10 19:29:28 -04:00
Nathan Braswell
3f501a5c2f Added correct compiling of top level vector values, including with meta 2020-05-10 00:50:46 -04:00
Nathan Braswell
4cd7b22c86 Added set-meta! to interp and compile 2020-05-10 00:17:30 -04:00
Nathan Braswell
9ce70badab added reference counted vectors in interp 2020-05-09 23:59:46 -04:00
Nathan Braswell
991a353805 Add compiling with-meta/meta for vectors only to C 2020-05-09 13:30:38 -04:00
Nathan Braswell
5d473d698d Somewhat in the middle - removed list, added meta for interpreter, not yet implemented in compiler 2020-05-09 11:52:32 -04:00
Nathan Braswell
c61b9d3c22 fixed closeing with strings 2020-04-25 13:05:56 -04:00
Nathan Braswell
e74c883132 throw and catch implemented 2020-04-23 13:04:27 -04:00
Nathan Braswell
ae150b17fa Added atoms! atom, deref, swap!, literal support 2020-04-23 00:15:39 -04:00
Nathan Braswell
2baad06e8c Add string literals and symbols, print support for both as well as lists and vectors 2020-04-22 21:10:46 -04:00
Nathan Braswell
19ae75b819 Fix the quoting compile 2020-04-20 01:22:45 -04:00
Nathan Braswell
d726705845 Add creation and indexing of lists and vectors, with their literal forms. Compiling quote has a bug though, and passes through - will have to consider how to fix 2020-04-20 01:16:34 -04:00
Nathan Braswell
b505c021f2 Implemented closures 2020-04-19 21:52:21 -04:00
Nathan Braswell
dff7306cc3 Change to raw string 2020-04-19 01:25:20 -04:00
Nathan Braswell
50817b567f Fix my fact impl, add print and println 2020-04-18 13:36:46 -04:00
Nathan Braswell
cc833015c3 Can compile functions depending on other top level functions and values 2020-04-17 10:31:38 -04:00
Nathan Braswell
bed1871ad3 Check type of main return 2020-04-14 23:59:52 -04:00
Nathan Braswell
3141ad1d1d parameters working 2020-04-14 23:53:12 -04:00
Nathan Braswell
ed01b5f580 Parameterless functions working 2020-04-14 23:34:23 -04:00
Nathan Braswell
8da9190b3d Add type checking to make sure compiled lang is safe 2020-04-14 14:35:01 -04:00
Nathan Braswell
7cf8ca8b80 Function calls work, builtin functions operating on ints 2020-04-13 23:42:32 -04:00
Nathan Braswell
4b44277d30 emit if and true/false/nil constants 2020-04-13 22:55:25 -04:00
Nathan Braswell
05c77e3ad9 let* generated 2020-04-13 22:45:40 -04:00
Nathan Braswell
813d31cb2b Working on C generator for k_prime, can compile single number return 2020-04-12 15:52:45 -04:00
Nathan Braswell
cb54429d1a Remove keywords and maps from k_prime to make it leaner 2020-04-12 00:25:11 -04:00
Nathan Braswell
7bc58e904e BF implementation as GLL macros 2020-04-10 22:46:53 -04:00
Nathan Braswell
256006f1c6 allow emtpy list, vec, dict 2020-04-02 14:47:50 -04:00
Nathan Braswell
8eab986395 missed division 2020-04-01 11:54:05 -04:00
Nathan Braswell
b9adcdd3c6 Fix longest 2020-04-01 11:47:04 -04:00
Nathan Braswell
f70cc8030e fix comment handling (including at beginning of files) 2020-03-31 15:46:03 -04:00
Nathan Braswell
ed33f967ce Make adding grammer rules way more ergonomic from k_prime, implmeent reader macros with it now! Note I changed splice-unqote from ~@ to , as ~@ is legal as unquote deref and causes ambigious parses 2020-03-31 15:15:45 -04:00
Nathan Braswell
494e22007d Fix hardcoded reader macros, add eval-read-string, fix niceness of whitespace between forms in repl and files. Next should be to redo the parser api to be way nicer from within kraken' 2020-03-30 19:51:01 -04:00
Nathan Braswell
a811b28bc1 SELF MODIFYING GRAMMER WORKS! 2020-03-29 22:07:55 -04:00
Nathan Braswell
40f0125ed1 whoops, messed up true,false,nil - were being parsed as symbols 2020-03-29 20:56:27 -04:00
Nathan Braswell
f86a6a600b Remove old parsing 2020-03-29 20:49:50 -04:00
Nathan Braswell
ce7d228358 Use the new parser (now with reduction functions) for mal 2020-03-29 20:42:51 -04:00
Nathan Braswell
a9bb011bd9 Starting to make k_prime lisp grammer, doing testing to get all MAL test cases parsing 2020-03-28 00:23:01 -04:00