PEG.js Mode

x
 
1
/*
2
 * Classic example grammar, which recognizes simple arithmetic expressions like
3
 * "2*(3+4)". The parser generated from this grammar then computes their value.
4
 */
5
6
start
7
  = additive
8
9
additive
10
  = left:multiplicative "+" right:additive { return left + right; }
11
  / multiplicative
12
13
multiplicative
14
  = left:primary "*" right:multiplicative { return left * right; }
15
  / primary
16
17
primary
18
  = integer
19
  / "(" additive:additive ")" { return additive; }
20
21
integer "integer"
22
  = digits:[0-9]+ { return parseInt(digits.join(""), 10); }
23
24
letter = [a-z]+

The PEG.js Mode

Created by Forbes Lindesay.