dhconnelly/june-old
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# june a compiler and vm for a small lisp implemented in c++ ## example (define (fib n) (if (< n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))) a longer example demonstrating all language features found at `fib.lisp` ## prerequisites bazel: https://bazel.build/install or `brew install bazel` on mac ## building bazel build //src:june ## usage supports both interactive and batch execution: ./bazel-bin/src/june [file] ## running tests bazel test //test/... ## status under active development ## TODO features: - [x] booleans - [x] integers - [x] if - [x] let - [ ] define - [ ] assert - [ ] lists and cons car cdr nil nil? - [ ] lambda and function calls - [ ] arithmetic and logical built-ins - [ ] garbage collection - [ ] support compile-only and execute-only modes - [ ] add disassembler - [ ] strings and string manipulation - [ ] write i/o example (sorted word counts) - [ ] add i/o support tech debt: - c++: audit const, member initialization - c++: refactor values to std::variant - c++: improve (de)serialization interfaces - c++: use std::span instead of std::vector parameters - c++: use more stl algorithms - c++: use concepts? - error handling: move error factories out of classes - error handling: use more diverse error types - error handling: improve error propagation - error handling: better error messages when parsing exprs - vm: move interactive mode setting to vm - compiler/vm: create instruction abstraction
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published