Chevrotain is a high performance fault Tolerant Javascript parsing DSL for building recursive decent parsers.
Chevrotain is NOT a parser generator. it solves the same kind of problems as a parser generator, just without the code generation phase.
-
Lexer engine based on RexExps.
- Supports Token location tracking.
- Supports Token skipping (whitespace/comments/...)
- Allows prioritising shorter matches (Keywords vs Identifiers).
- No code generation The Lexer does not require any code generation phase.
-
Parsing DSL for creating the parsing rules.
- No code generation - the DSL is just javascript not a new external language, what is written is what will be run, this speeds up development, makes debugging trivial and provides great flexibility for inserting custom actions into the grammar.
- Strong Error Recovery capabilities based on Antlr3's algorithms.
- Automatic lookahead calculation for LL(1) grammars.
- In addition custom lookahead logic can be provided explicitly.
- Backtracking support.
-
High performance see:
-
Grammar Introspection, the grammar's structure is known and exposed this can be used to implement features such as automatically generated syntax diagrams or Syntactic error recovery.
-
Well tested with ~100% code coverage
- npm:
npm install chevrotain
- Bower
bower install chevrotain
- or download directly from github releases:
- the 'chevrotain-binaries-...' files contain the compiled javascript code.
Runnable (and debuggable) examples:
-
Annotated source code (dev version):
-
The aggregated Typescript definitions :
- chevrotain.d.ts (dev version)
- Also packaged in both the github and npm releases.
Only a single dependency to lodash.
The Generated artifact(chevrotain.js) should run on any modern Javascript ES5.1 runtime.
- The CI build runs the tests under Node.js.
- Additionally local testing is done on latest versions of Chrome/Firefox/IE.
- The dependency to lodash is imported via UMD, in order to make chevrotain.js portable to multiple environments.