JSPM

  • Created
  • Published
  • Downloads 8017329
  • Score
    100M100P100Q247625F
  • License Apache-2.0

Chevrotain is a high performance fault tolerant javascript parsing DSL for building recursive decent parsers

Package Exports

  • chevrotain
  • chevrotain/lib/chevrotain

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (chevrotain) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm Build Status Coverage Status Dependency status

Browser Status

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

  1. 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.

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