Skip to content

benjie/chevrotain

 
 

Repository files navigation

Join the chat at https://gitter.im/chevrotain-parser/Lobby npm Build Status Coverage Status Dependency status styled with prettier

Sauce Test Status

Chevrotain

Introduction

Chevrotain is a very fast and feature rich Parser Building Toolkit for JavaScript. It can be used to build parsers/compilers/interpreters for various use cases ranging from simple configuration files, to full fledged programing languages.

A more in depth description of Chevrotain can be found in this great article on: Parsing in JavaScript: Tools and Libraries.

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 code which can be created/debugged/edited as any other pure code without requiring any new tools or processes.

TLDR

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

Documentation & Resources

Dependencies

There is a single dependency to regexp-to-ast library. This dependency is included in the bundled artifacts, for ease of consumption in browsers.

Compatibility

Chevrotain should run on any modern JavaScript ES5.1 runtime.

  • The CI build runs the tests under:

    • Node.js (6 / 8 / 10).
    • Latest stable: Chrome, FireFox, Safari, IE Edge and IE 11.
  • Uses UMD to work with common module loaders (browser global / amd / commonjs).

Contributions

Contributions are greatly appreciated. See CONTRIBUTING.md for details.

Where used

Some interesting samples:

About

JavaScript Parsing DSL

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages

  • TypeScript 82.4%
  • JavaScript 15.8%
  • HTML 1.3%
  • Other 0.5%