1 unstable release
new 0.1.0 | Sep 18, 2024 |
---|
#1972 in Parser implementations
100 downloads per month
205KB
5K
SLoC
lua_rust
lua syntax parser in Rust
- Greatly in progress
- LALR(1), GLR parser
- syntax referenced from lua 5.4 reference manual
project structure
tokenizer
: tokenizing lua code string.parser
: parsing tokenized lua code into AST.semantics
: semantic analysis of generated AST. It generates aEnhanced AST
which contains more information than the original AST.- stack offset of local variables
- scope checking for
return
,break
,goto
,label
, ... - split function definition into separated Chunks
lua_ir
: generate IRs from enhanced AST, and run on virtual machine.
Cargo Features
32bit
: use 32bit integer and float forlua numeric
typediag
: enableto_diag()
function forParseError
how to run
$ cargo run <source_file.lua>
will print the pretty-formatted Debug
output of the AST ( "{:#?}"
)
Dependencies
~2–9MB
~76K SLoC