Giter VIP home page Giter VIP logo

chevrotain's Introduction

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.

Features

  1. 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. * Syntactic Content Assist * 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
  2. 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. * Different Token types for balancing performance, memory usage and ease of use. * Custom Token patterns(none RegExp) support * No code generation The Lexer does not require any code generation phase.

  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:

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

chevrotain's People

Contributors

bd82 avatar firasnajjar avatar kevinastone avatar isonet avatar greenkeeper[bot] avatar siliconbrain avatar elidoran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.