Mercurial > repos > tabletprog
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;' + |