/chevrotain

JavaScript Parsing DSL

Primary LanguageTypeScriptApache License 2.0Apache-2.0

npm Build Status Coverage Status Dependency status

Sauce Test Status

Chevrotain

Chevrotain is a very fast and feature rich JavaScript LL(k) Parsing DSL. It can be used to build parsers/compilers/interperters for various use cases ranging from simple configuration files, to full fledged programing languages.

It is important to note that Chevrotain is NOT a parser generator. It solves the same kind of problems as a parser generator, just without any code generation. Chevrotain Grammars are pure JavaScript code which can be created/debugged/edited as any other JavaScript code without requiring any new tools or processes.

Features

  1. Parsing DSL.

  2. Lexer Engine

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

Documentation & Resources

Dependencies

None.

Compatibility

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

Contributions are greatly appreciated. See CONTRIBUTING.md for details