kaoscript / parser

Parse kaoscript files and generate an abstract syntax tree

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@kaoscript/parser

kaoscript License NPM Version Dependency Status Build Status CircleCI Coverage Status

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

About

Parse kaoscript files and generate an abstract syntax tree

License:MIT License


Languages

Language:Makefile 100.0%