All Projects → peggyjs → peggy

peggyjs / peggy

Licence: MIT license
Peggy: Parser generator for JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
typescript
32286 projects
PEG.js
56 projects

Projects that are alternatives of or similar to peggy

gpkeditor
markdown editor with peg.js
Stars: ✭ 15 (-96.62%)
Mutual labels:  pegjs, peg
Pegjs
PEG.js: Parser generator for JavaScript
Stars: ✭ 4,176 (+840.54%)
Mutual labels:  pegjs, peg
Codemirror Grammar
Transform a JSON grammar into a syntax-highlight parser for CodeMirror
Stars: ✭ 67 (-84.91%)
Mutual labels:  peg
Lug
Parsing expression grammar (PEG) embedded domain specific language and parsing machine for C++17
Stars: ✭ 44 (-90.09%)
Mutual labels:  peg
Pest
The Elegant Parser
Stars: ✭ 2,783 (+526.8%)
Mutual labels:  peg
Erd Go
Translates a plain text description of a relational database schema to a graphical entity-relationship diagram.(convert to dot file)
Stars: ✭ 76 (-82.88%)
Mutual labels:  peg
Ohm
A library and language for building parsers, interpreters, compilers, etc.
Stars: ✭ 3,938 (+786.94%)
Mutual labels:  peg
Guido blog translation
翻译 Guido 的解析器系列文章
Stars: ✭ 200 (-54.95%)
Mutual labels:  peg
feel
Expression Language for creating and executing business rules in decision table based on DMN 1.1 specification for conformance level 3
Stars: ✭ 76 (-82.88%)
Mutual labels:  pegjs
Mad
⚡ MAD: Manage Dependencies
Stars: ✭ 175 (-60.59%)
Mutual labels:  peg
Pegparser
💡 Build your own programming language! A C++17 PEG parser generator supporting parser combination, memoization, left-recursion and context-dependent grammars.
Stars: ✭ 164 (-63.06%)
Mutual labels:  peg
Ts Pegjs
Plugin for pegjs to generate TypeScript parsers.
Stars: ✭ 76 (-82.88%)
Mutual labels:  peg
rpgdice
A generic RPG dice roller syntax and library.
Stars: ✭ 24 (-94.59%)
Mutual labels:  pegjs
Myna Parser
Myna Parsing Library
Stars: ✭ 69 (-84.46%)
Mutual labels:  peg
Npeg
PEGs for Nim, another take
Stars: ✭ 163 (-63.29%)
Mutual labels:  peg
3bmd
markdown processor in CL using esrap parser
Stars: ✭ 58 (-86.94%)
Mutual labels:  peg
kiuatan
A parser library for Pony.
Stars: ✭ 15 (-96.62%)
Mutual labels:  peg
latex-utensils
A LaTeX parser and utilities.
Stars: ✭ 33 (-92.57%)
Mutual labels:  pegjs
raabro
a Ruby PEG parser library
Stars: ✭ 31 (-93.02%)
Mutual labels:  peg
mfm.js
An MFM parser implementation
Stars: ✭ 24 (-94.59%)
Mutual labels:  pegjs

Tests npm version License

Peggy

Peggy is a simple parser generator for JavaScript that produces fast parsers with excellent error reporting. You can use it to process complex data or computer languages and build transformers, interpreters, compilers and other tools easily.

Peggy is the successor of PEG.js.

Migrating from PEG.js

Peggy version 1.x.x is API compatible with the most recent PEG.js release. Follow these steps to upgrade:

  1. Uninstall pegjs (and @types/pegjs if you're using the DefinitelyTyped type definitions - we now include type definitions as part of peggy itself).
  2. Replace all require("pegjs") or import ... from "pegjs" with require("peggy") or import ... from "peggy" as appropriate.
  3. Any scripts that use the pegjs cli should now use peggy instead.
  4. That's it!

Features

  • Simple and expressive grammar syntax
  • Integrates both lexical and syntactical analysis
  • Parsers have excellent error reporting out of the box
  • Based on parsing expression grammar formalism — more powerful than traditional LL(k) and LR(k) parsers
  • Usable from your browser, from the command line, or via JavaScript API
  • Source map support

Getting Started

Online version is the easiest way to generate a parser. Just enter your grammar, try parsing few inputs, and download generated parser code.

Documentation

Full documentation is available at peggyjs.org.

Development

Peggy was originally developed by David Majda (@dmajda). It is currently maintained by Joe Hildebrand (@hildjj).

You are welcome to contribute code. Unless your contribution is really trivial you should get in touch with us first — this can prevent wasted effort on both sides.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].