Lexer and S-Expression data types
The lexer is complete with tests. It fully encapsulates the logic of splitting an input document into a stream of tokens. It can be instantiated from an Rc<str>, meaning no lifetimes need be managed references to the original document (like a stringview) can be passed around carelessly. The Lexer implements the iterator method which should help elegantly design repls / compilers, etc. The S-Expression data type represents the parsed AST. The actual parsing logic is yet to be added. It is intended that the AST be the last step before compiling to bytecode. The data representation here is cons cells of datum. Formatting is implemented. Signed-off-by: Ava Affine <ava@sunnypup.io>
This commit is contained in:
commit
6554a0639a
10 changed files with 1533 additions and 0 deletions
3
Cargo.toml
Executable file
3
Cargo.toml
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
[workspace]
|
||||
resolver = "2"
|
||||
members = [ "amanita", "enoki","mycelium"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue