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; };' +