comparison parser.js @ 292:f73ebc146af9

Fix ws rule to include block comments
author Michael Pavone <pavone@retrodev.com>
date Thu, 24 Jul 2014 09:43:06 -0700
parents ddf38b66b2e2
children
comparison
equal deleted inserted replaced
291:38bbbf74b735 292:f73ebc146af9
194 return node instanceof lambda; 194 return node instanceof lambda;
195 } 195 }
196 196
197 var grammar = 197 var grammar =
198 'start = ws module:(object / lambda) ws { return module; };' + 198 'start = ws module:(object / lambda) ws { return module; };' +
199 'ws = ([ \\t\\n\\r] / "//" [^\\n]* "\\n")*;' + 199 'ws = ([ \\t\\n\\r] / "//" [^\\n]* "\\n" / "/*" ([^*] / "*" ! "/")* "*/")*;' +
200 'hws = ([ \\t] / "/*" ([^*] / "*" ! "/")* "*/" )*;' + 200 'hws = ([ \\t] / "/*" ([^*] / "*" ! "/")* "*/" )*;' +
201 'expr = e:(funcall / methcall / assignment / opexpr) ws { return e; };' + 201 'expr = e:(funcall / methcall / assignment / opexpr) ws { return e; };' +
202 'opexpr = left:compareop pieces:(hws ("&&" / "||") ws compareop)* { if (pieces.length) { var cur = new op(left, pieces[0][1], pieces[0][3]); for (var i = 1; i < pieces.length; i++) { cur = new op(cur, pieces[i][1], pieces[i][3]); } return cur; } else { return left; } };'+ 202 'opexpr = left:compareop pieces:(hws ("&&" / "||") ws compareop)* { if (pieces.length) { var cur = new op(left, pieces[0][1], pieces[0][3]); for (var i = 1; i < pieces.length; i++) { cur = new op(cur, pieces[i][1], pieces[i][3]); } return cur; } else { return left; } };'+
203 'compareop = left:maybecons pieces:(hws ("<=" / ">=" / "<" / ">" / "=" / "!=") ws maybecons)* { if (pieces.length) { var cur = new op(left, pieces[0][1], pieces[0][3]); for (var i = 1; i < pieces.length; i++) { cur = new op(cur, pieces[i][1], pieces[i][3]); } return cur; } else { return left; } };'+ 203 'compareop = left:maybecons pieces:(hws ("<=" / ">=" / "<" / ">" / "=" / "!=") ws maybecons)* { if (pieces.length) { var cur = new op(left, pieces[0][1], pieces[0][3]); for (var i = 1; i < pieces.length; i++) { cur = new op(cur, pieces[i][1], pieces[i][3]); } return cur; } else { return left; } };'+
204 'maybecons = consop / addsub;' + 204 'maybecons = consop / addsub;' +