/* * Classic example grammar, which recognizes simple arithmetic expressions like * "2*(3+4)". The parser generated from this grammar then computes their value. */ start : additive additive : multiplicative "+" additive { return $1 + $3; } / multiplicative multiplicative : primary "*" multiplicative { return $1 * $3; } / primary primary : integer / "(" additive ")" { return $2; } integer "integer" : [0-9]+ { return parseInt($1.join(""), 10); }