Chevrotain is a Javascript parsing DSL for building high performance fault-tolerant recursive decent parsers.
Chevrotain is NOT a parser generator. It solves the same kind of problems as a parser generator, just without any code generation phase.
-
Lexer Engine based on Regular Expressions. * Full Token position information. * Token skipping (whitespace/comments/...). * Prioritise shorter matches (Keywords vs Identifiers). * Multiple Lexer Modes depending on the context. * Tokens Grouping. * No code generation The Lexer does not require any code generation phase.
-
Parsing DSL. * LL(k) grammars support.
* Error Reporting with full location information. * Strong Error Recovery/Fault-Tolerance capabilities based on Antlr3's algorithms. * Supports gates/predicates. * Backtracking support. * Grammar Inheritance. * Multiple starting rules. * Parametrized Rules. * No code generation.- The DSL is just Javascript, not an external language.
- Easily debuggable.
- Short feedback loops.
- Allows great flexibility for inserting custom Parser actions
-
Generated Railroad Diagrams.
-
Grammar Reflection/Introspection. * The Grammar's structure is known and exposed at runtime. * Can be used to implement advanced features such as dynamically generated syntax diagrams or Syntactic error recovery.
-
Well tested with ~100% code coverage, Unit & Integration tests
- npm:
npm install chevrotain
- Browser:
The npm package contains Chevrotain as concatenated and minified files ready for use in a browser.
These can also be accessed directly via NPMCDN in a script tag.
- Latest:
https://npmcdn.com/chevrotain/lib/chevrotain.js
https://npmcdn.com/chevrotain/lib/chevrotain.min.js
- Explicit version number:
https://npmcdn.com/[email protected]/lib/chevrotain.js
https://npmcdn.com/[email protected]/lib/chevrotain.min.js
- Latest:
Online tutorial
- Step #1 - Building a Lexer: online version / written version.
- Step #2 - Building a Parser: online version / written version.
- Step #3 - Adding actions to the Parser: online version / written version.
- Step #4 - Fault tolerance and Error recovery: online version / written version.
-
Annotated source code (dev version):
-
The aggregated Typescript definitions :
- chevrotain.d.ts (latest version)
None.
Chevrotain should run on any modern Javascript ES5.1 runtime.
-
The CI build runs the tests under:
- Node.js (0.12 / 4 / 5).
- Latest stable: Chrome, FireFox, IE Edge, IE 11 and Safari 9.
-
Uses UMD to work with common module loaders (browser global / amd / commonjs).
Contributions are greatly appreciated. See CONTRIBUTING.md for details