Mercurial > repos > tabletprog
comparison parser.js @ 4:a2c3ac7fafa2
Added support for comments
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 19 Mar 2012 22:45:03 -0700 |
parents | 454c0346f357 |
children | ed5b563147ec |
comparison
equal
deleted
inserted
replaced
3:4a4bb90fb298 | 4:a2c3ac7fafa2 |
---|---|
1 | 1 |
2 var grammar = | 2 var grammar = |
3 'start = ws module:(object / lambda) ws { return module; };' + | 3 'start = ws module:(object / lambda) ws { return module; };' + |
4 'ws = [ \\t\\n\\r]*;' + | 4 'ws = ([ \\t\\n\\r] / "//" [^\\n]* "\\n")*;' + |
5 'hws = [ \\t]*;' + | 5 'hws = ([ \\t] / "/*" ([^*] / "*" ! "/")* "*/" )*;' + |
6 'expr = e:(funcall / methcall / opexpr) ws { return e; };' + | 6 'expr = e:(funcall / methcall / opexpr) ws { return e; };' + |
7 'opexpr = left:addsub hws op:("<=" / ">=" / "<" / ">" / "=") hws right:opexpr { return {type: "op", left: left, op: op, right: right }; } / addsub;' + | 7 'opexpr = left:addsub hws op:("<=" / ">=" / "<" / ">" / "=") hws right:opexpr { return {type: "op", left: left, op: op, right: right }; } / addsub;' + |
8 'addsub = left:muldiv hws op:("+"/"-") hws right:addsub { return {type: "op", left: left, op: op, right: right }; } / muldiv;'+ | 8 'addsub = left:muldiv hws op:("+"/"-") hws right:addsub { return {type: "op", left: left, op: op, right: right }; } / muldiv;'+ |
9 'muldiv = left:primlitsym hws op:("*"/"/") hws right:muldiv { return {type: "op", left: left, op: op, right: right }; } / primlitsym;'+ | 9 'muldiv = left:primlitsym hws op:("*"/"/") hws right:muldiv { return {type: "op", left: left, op: op, right: right }; } / primlitsym;'+ |
10 'primlitsym = hws val:(float / int / string / symbol / object / lambda / "(" expr:expr hws ")" { return expr; }) { return val; };' + | 10 'primlitsym = hws val:(float / int / string / symbol / object / lambda / "(" expr:expr hws ")" { return expr; }) { return val; };' + |