Jay Taylor's notes
back to listing indexSAP/chevrotain
[web search]
Original source (github.com)
Clipped on: 2016-03-11
Skip to content
Javascript parsing DSL
TypeScript
JavaScript
Other
readme.md
Chevrotain
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.
---> Try it online <---
Features
Lexer Engine based on Regular Expression.
- 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 defining the grammar.
- No code generation.
- The DSL is just Javascript, not an external language.
- The Parsing flow is easily debuggable.
- Short feedback loops.
- Allows great flexibility for inserting custom Parser actions.
- Error Reporting with full location information.
- Strong Error Recovery/Fault-Tolerance capabilities based on Antlr3's algorithms.
- Automatic lookahead calculation for LL(1) grammars.
- Supports Custom lookahead logic for LL(k) grammars.
- Backtracking support.
- No code generation.
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
Installation
- npm:
npm install chevrotain
- Bower
bower install chevrotain
- or download directly from github releases
Getting Started
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.
Documentation
Annotated source code (dev version):
The aggregated Typescript definitions :
- chevrotain.d.ts (latest version)
Dependencies
None.
Compatibility
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.
- latest stable Firefox.
- Additionally local testing is done on latest versions of Chrome/Firefox/IE.
- Uses UMD to work with common module loaders (browser global / amd / commonjs).