@kaoscript/parser
Parse kaoscript files and generates an abstract syntax tree.
Documentation available at kaoscript.
Evolution
-
July-August 2016: since I didn't wanted to handwriting the parser, I've used a LL(*) parser. Slow since lot of backtracking.
-
August 2016 - May 2017: I've used Jison to generate a SLR parser. Faster (10x) but the syntax was getting complex and tricky.
-
May 2017: I've tried chevrotain (a fast LL(4) parser).
I didn't choice it because:
- You have to distinguish ambiguous rules, complexify the syntax
- You can't switch the tokenizer when parsing
-
May 2017 - *: Handwritten parser. It's basically a LL(1) parser with few lookheads.
Advantages:
- at least 2x times faster than Jison
- manageable code
- better support of space
macro
License
MIT © Baptiste Augrain