Advertisement
Guest User

Untitled

a guest
Jan 24th, 2015
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. start
  2.   = s:Statements
  3.     { return ['Program', {}].concat(s); }
  4.   / _
  5.  
  6. Statements
  7.   = s:Statement ";"
  8.     { return s; }
  9.   / ss:Statements s:Statement ";"
  10.     { return ss; ss.push(s); }
  11.   / _
  12.  
  13. Statement
  14.   = SetVar
  15.  
  16. SetVar
  17.   = i:Ident "=" e:Expr
  18.     { return ['SetVarStmt', {}, i, e]; }
  19.  
  20. Expr
  21.   = Ident
  22.   / Number
  23.  
  24. Number
  25.   = n:[0-9]+
  26.     { return ['Number', { val: parseInt(n.join(""), 10) }]; }
  27.  
  28. Ident
  29.   = i:[a-zA-Z._]*
  30.     { return ['Ident', { name: i.join("") }]; }
  31.  
  32. _ = [ \t\r\n]*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement