• PEG.js parser generator for JavaScript based on the parsing expression grammar formalism • JS/CC LALR(1) parser generator • OMeta/JS (source) metacompiler for many languages to many targets, including js. • languagejs - PEG parser written in JavaScript with first class errors • Canopy Self-hosting PEG parser compiler for JavaScript, influenced by Ruby parser generators • jsparse PEG by Grandmaster Chris Double • ReParse parser combinator library for Javascript like Haskell's Parsec • p4js Monadic parser library for JavaScript • JSGLR Scannerless, Generalized Left-to-right Rightmost (SGLR) derivation parser for JavaScript • antlr has a javascript target • Cruiser.Parse LL(k) parser • ...
left:multiplicative "+" right:additive { return left + right; } / multiplicative multiplicative = left:primary "*" right:multiplicative { return left * right; } / primary primary = integer / "(" additive:additive ")" { return additive; } integer "integer" = digits:[0-9]+ { return parseInt(digits.join(""), 10); } %left "+" %left "*" %start program; %% program : expression { return $$ } ; expression : expression "+" expression -> $1 + $3 | expression "*" expression -> $1 * $3 | "(" expression ")" -> $2 | NUMBER -> $1 ; if a then (if b then s) else s2 or if a then (if b then s else s2) if a then if b then s else s2: