Options
All
  • Public
  • Public/Protected
  • All
Menu

Chevrotain

npm Build Status Coverage Status Dependency status

Browser Status

Chevrotain

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.

---> Try it online <---

Features

  1. Lexer Engine based on Regular Expressions.

  2. 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.
      • The grammar is directly debuggable as plain JavaScript source.
      • Short feedback loops.
      • Allows great flexibility for inserting custom Parser actions
  3. High Performance.

  4. Railroad Diagrams Generation.

  5. 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.
  6. Well tested with ~100% code coverage, Unit & Integration tests

Installation

  • 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/chevrotain@0.15.0/lib/chevrotain.js
      • https://unpkg.com/chevrotain@0.15.0/lib/chevrotain.min.js

Getting Started

Online tutorial

Documentation

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 / 6).
    • Latest stable: Chrome, FireFox, IE Edge, IE 11 and Safari 9.
  • Uses UMD to work with common module loaders (browser global / amd / commonjs).

Contributions

Contributions are greatly appreciated. See CONTRIBUTING.md for details

Generated using TypeDoc