Chevrotain is a JavaScript parsing DSL for building High Performance LL(k) Parsers with optional fault-tolerant capabilities.
Chevrotain is NOT a parser generator. It solves the same kind of problems as a parser generator, just without 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. * Syntactic Content Assist * No code generation.- The DSL is just JavaScript, not an external language.
- The grammar is directly debuggable as plain JavaScript source.
- Short feedback loops.
- Allows great flexibility for inserting custom Parser actions
-
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. * Different Token types for balancing performance, memory usage and ease of use. * Custom Token patterns(none RegExp) support * No code generation The Lexer does not require any code generation phase.
-
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 UNPKG in a script tag.
- Latest:
https://unpkg.com/chevrotain/lib/chevrotain.js
https://unpkg.com/chevrotain/lib/chevrotain.min.js
- Explicit version number:
https://unpkg.com/[email protected]/lib/chevrotain.js
https://unpkg.com/[email protected]/lib/chevrotain.min.js
- Latest:
-
FAQ.
-
Chevrotain Google Group for questions and discussions.
None.
Chevrotain should run on any modern JavaScript ES5.1 runtime.
-
The CI build runs the tests under:
- Node.js (4 / 6 / 7).
- 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