Parsing Expression Grammar
PEG-like expression builder for JavaScript. <1kb.
Installation
$ npm install parsejs-grammar
browser:
$ component install parsejs/grammar
Features
- easily define a custom parsing expression grammar (PEG)
- reuse and recombine PEGs with
.use(grammar)
- expressions can be referenced by name, so complex grammars are very readable
Overview
A grammar
is a set of expressions that share a common namespace. This means you can define named expressions within a grammar, and access them from anywhere else within the grammar.
Expressions can't exist outside of a grammar. A grammar itself is just an expression, it is the start of the expression hierarchy.
You can nest grammars, and so build on top of them easily!
Examples
var Grammar = ;var grammar = 'math';var expression = grammarexpression; ; ; ; var val = grammar; // 42
Nesting grammars. Say the above simple math grammar was in a module called math-grammar
and we had another one called function-grammar
. We could create a new grammar that builds on both of those:
var math = ;var fn = ;var Grammar = ; var grammar = 'foo';grammar;grammar;
Then you could use their names in your grammar:
;
Or just use a subset of them:
;
Licence
MIT