diff --git a/app/imports/parser/grammar.js b/app/imports/parser/grammar.js index f58d5bff..04180587 100644 --- a/app/imports/parser/grammar.js +++ b/app/imports/parser/grammar.js @@ -66,11 +66,11 @@ let ParserRules = [ {"name": "ifStatement", "symbols": ["orExpression"], "postprocess": id}, {"name": "orExpression", "symbols": ["orExpression", "_", (lexer.has("orOperator") ? {type: "orOperator"} : orOperator), "_", "andExpression"], "postprocess": d => operator(d, 'or')}, {"name": "orExpression", "symbols": ["andExpression"], "postprocess": id}, - {"name": "andExpression", "symbols": ["andExpression", "_", (lexer.has("andOperator") ? {type: "andOperator"} : andOperator), "_", "additiveExpression"], "postprocess": d => operator(d, 'and')}, + {"name": "andExpression", "symbols": ["andExpression", "_", (lexer.has("andOperator") ? {type: "andOperator"} : andOperator), "_", "equalityExpression"], "postprocess": d => operator(d, 'and')}, {"name": "andExpression", "symbols": ["equalityExpression"], "postprocess": id}, {"name": "equalityExpression", "symbols": ["equalityExpression", "_", (lexer.has("equalityOperator") ? {type: "equalityOperator"} : equalityOperator), "_", "relationalExpression"], "postprocess": d => operator(d, 'equality')}, {"name": "equalityExpression", "symbols": ["relationalExpression"], "postprocess": id}, - {"name": "relationalExpression", "symbols": ["relationalExpression", "_", (lexer.has("relationalOperator") ? {type: "relationalOperator"} : relationalOperator), "_", "orExpression"], "postprocess": d => operator(d, 'relation')}, + {"name": "relationalExpression", "symbols": ["relationalExpression", "_", (lexer.has("relationalOperator") ? {type: "relationalOperator"} : relationalOperator), "_", "additiveExpression"], "postprocess": d => operator(d, 'relation')}, {"name": "relationalExpression", "symbols": ["additiveExpression"], "postprocess": id}, {"name": "additiveExpression", "symbols": ["additiveExpression", "_", (lexer.has("additiveOperator") ? {type: "additiveOperator"} : additiveOperator), "_", "multiplicativeExpression"], "postprocess": d => operator(d, 'add')}, {"name": "additiveExpression", "symbols": ["multiplicativeExpression"], "postprocess": id}, diff --git a/app/imports/parser/grammar.ne b/app/imports/parser/grammar.ne index 57e27ced..a4649cd1 100644 --- a/app/imports/parser/grammar.ne +++ b/app/imports/parser/grammar.ne @@ -74,7 +74,7 @@ orExpression -> | andExpression {% id %} andExpression -> - andExpression _ %andOperator _ additiveExpression {% d => operator(d, 'and') %} + andExpression _ %andOperator _ equalityExpression {% d => operator(d, 'and') %} | equalityExpression {% id %} equalityExpression -> @@ -82,7 +82,7 @@ equalityExpression -> | relationalExpression {% id %} relationalExpression -> - relationalExpression _ %relationalOperator _ orExpression {% d => operator(d, 'relation') %} + relationalExpression _ %relationalOperator _ additiveExpression {% d => operator(d, 'relation') %} | additiveExpression {% id %} additiveExpression ->