Laurus is a lexer and LR(1) parser generator written in MoonBit.
See the demo repo arith.laurus. It contains a file for an example of Laurus' grammar.
Please refer to examples.
- Implicit priorities of grammar rules for LR(1) conflicts resolution
- Syntax types auto generation
- Unicode supported, see the example unicode.
NOTICE: Laurus is still under active development.
We do not (but will soon) provide a human-readable report when the parser or generator meets errors.
Please refer to ./src/**/test.mbt if you are interested in the project.
$ tree src
src
├── dfa // reg_exp, nfa, dfa and codegen of lexer
├── lr1 // lr1 and codegen of parser
└── laurus // Laurus (concrete and abstract) syntax and its bootstrapping