Skip to content

idogoren/chevrotain

 
 

Repository files navigation

Build Status Coverage Status npm version

Chevrotain

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.

Features

  • 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

Installation

  • npm: npm install chevrotain
  • Bower bower install chevrotain
  • or download directly from github releases:
    • the 'chevrotain-binaries-...' files contain the compiled javascript code.

Getting Started

Online version

Related Repos

Runnable (and debuggable) examples:

Documentation

Dependencies

Only a single dependency to lodash.

Compatibility

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.

About

Javascript parsing DSL

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 66.0%
  • JavaScript 33.8%
  • Other 0.2%