- Parser (WIP but works for the most part, further syntax changes expected)
- Lots of potential optimizations and refactorings to be done in the parser grammar
- Analyzer
- Static type checking? Or default to runtime type checking for now?
- Local variable access (prevent accessing undefined variables)
- Check function signatures and call-sites
- Basic type checker for
- Local variable bindings
- Function call arguments
- Query
- Sources
- Guards
- Productions
- Simplifier / AST Optimizer
- Constant (function) replacements
- Constant arithmetic expressions
- Interpreter
- Value enum (
Number
,String
,Symbol
,List
,Map
, etc. ...) - ValueRef type (for now just alias for
Rc<Value>
) -
Evaluate<T>
trait + impls (Simple tree-walking dynamic interpreter)- Some impls are still
todo!()
- Some impls are still
-
NativeFn
impls for some standard library modules (Std
,Std.Math
,Std.List
,Std.Map
) - Pattern matching for function and lambda arguments
- Value enum (
- Compiler using
LLVM
&Inkwell
- JITFunction codegen working for:
- Simple Float arithmetic functions and expressions
- Most AST expression variants still are
todo!()
- Lots more stuff missing and needs to be figured out
- JITFunction codegen working for:
- DB Value
- Storage
- Serialization
- Deserialization
- Querying
- Query
- Construction
- Composition
- Optimization
- Execution / Result gathering
- Query
- Storage
- Std Library (types & functions)
- Std
- Math
- List
- Map
- Result (WIP)
- Symbol
- Set
- Stack
- Queue
- Vector
- Std