summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-05-18Improve support for infix operators.Rose Hogenson2-59/+133
2024-05-18Allow pattern matching in function definitions.Rose Hogenson4-16/+56
2024-05-17Fix case on datatype.Rose Hogenson5-55/+116
2024-05-17Add datatypes.Rose Hogenson4-29/+123
2024-05-12Revert "Use strings for errors."Rose Hogenson3-56/+54
This reverts commit 7b87d7185fc93b92606fcacbc1ea3d7a8e02cb20. It was an interesting experiment, but String seems to be worse than Box<dyn Error> in every way.
2024-05-11Use strings for errors.Rose Hogenson3-54/+56
2024-05-05Fix a bug in pattern matching.Rose Hogenson1-4/+1
2024-05-05Add tuples.Rose Hogenson8-32/+198
2024-05-05Change some formattingRose Hogenson2-56/+45
2024-05-04Add "fun" syntax.Rose Hogenson2-9/+22
2024-05-04Implement recursive functions.Rose Hogenson7-44/+92
2024-04-28Add case over int.Rose Hogenson14-21/+248
2024-04-27Add integer arithmetic.Rose Hogenson10-22/+175
2024-04-27Add tests for let.Rose Hogenson3-1/+11
2024-04-07Add tests and fix variables.Rose Hogenson12-28/+62
2024-02-19Support function arguments.Rose Hogenson5-76/+143
2024-02-04Fix some bugs in the bytecode interpreter.Rose Hogenson4-31/+42
2024-02-04Rewrite the bytecode interpreter in Rust.Rose Hogenson23-660/+417
2023-02-12Add lambda functions.Rose Hogenson15-58/+77
2023-02-11Change how slices work.Rose Hogenson10-60/+97
I'm switching to a more macro-heavy solution. Hopefully it proves robust.
2023-02-11Slightly simplify bytecode interpreter.Rose Hogenson1-22/+10
2023-02-11Write a garbage collector.Rose Hogenson7-7/+174
Does it work? No, but it compiles.
2023-02-11Avoid copies when writing to buffer.Rose Hogenson1-25/+24
2023-02-11Add a bytecode interpreter.Rose Hogenson14-0/+493
I wrote it in C because I actually like programming in C. Turns out setting up a Makefile is really easy too.
2023-02-11Finish the compiler.Rose Hogenson8-62/+209
Just joking. But we did manage to compile a program from SML to bytecode.
2023-02-10Write a first draft of the compiler.Rose Hogenson9-1/+612
Sorry I haven't been better about these commit messages. You're not my mom.
2023-02-10Add module syntax to the parser.Rose Hogenson1-16/+94
2023-02-10Re-implement map.Rose Hogenson1-109/+168
I stole Haskell's map, and I read a paper.
2022-09-12Get rid of the Y combinator.Rose Hogenson1-73/+72
It's a bit overcomplicated. We can rely on the fact that parsers are functions.
2022-09-11Don't break the parser abstraction for recursion.Rose Hogenson1-37/+44
Parsers are values. Of course, one can always make recursion from scratch even if the language doesn't allow recursive values.
2022-09-11Fix a performance issues in parser.sml.Rose Hogenson1-3/+3
2022-09-11Add a smlnj compilation manager file.Rose Hogenson1-0/+8
2022-09-11Add a simple expression parser.Rose Hogenson3-0/+365
2022-09-11Fix some style issues in map.sml.Rose Hogenson1-21/+21
2022-09-08As is the tradition, start with a red-black tree.Rose Hogenson1-0/+135
I probably won't touch this repo again for a year.