Skip to content

Commit

Permalink
Fixed operator precedence for logical not (#58)
Browse files Browse the repository at this point in the history
  • Loading branch information
RunDevelopment authored May 9, 2024
1 parent 897fecb commit ab1bc33
Show file tree
Hide file tree
Showing 6 changed files with 612 additions and 517 deletions.
8 changes: 5 additions & 3 deletions src/antlr4/Navi.g4
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ ifExpression:

fieldAccessExpression: primaryExpression ('.' Identifier)*;

unaryExpression: (OpMinus | Not)? fieldAccessExpression;
negateExpression: OpMinus? fieldAccessExpression;

multiplicativeExpression:
unaryExpression ((OpMult | OpDiv) unaryExpression)*;
negateExpression ((OpMult | OpDiv) negateExpression)*;

additiveExpression:
multiplicativeExpression (
Expand All @@ -82,8 +82,10 @@ comparisonExpression:
(OpEqual | OpNotEqual | OpGt | OpGte | OpLt | OpLte) unionExpression
)?;

logicalNotExpression: Not* comparisonExpression;

logicalAndExpression:
comparisonExpression (And comparisonExpression)*;
logicalNotExpression (And logicalNotExpression)*;

logicalOrExpression:
logicalAndExpression (Or logicalAndExpression)*;
Expand Down
17 changes: 13 additions & 4 deletions src/antlr4/NaviListener.js
Original file line number Diff line number Diff line change
Expand Up @@ -176,12 +176,12 @@ export default class NaviListener extends antlr4.tree.ParseTreeListener {
}


// Enter a parse tree produced by NaviParser#unaryExpression.
enterUnaryExpression(ctx) {
// Enter a parse tree produced by NaviParser#negateExpression.
enterNegateExpression(ctx) {
}

// Exit a parse tree produced by NaviParser#unaryExpression.
exitUnaryExpression(ctx) {
// Exit a parse tree produced by NaviParser#negateExpression.
exitNegateExpression(ctx) {
}


Expand Down Expand Up @@ -230,6 +230,15 @@ export default class NaviListener extends antlr4.tree.ParseTreeListener {
}


// Enter a parse tree produced by NaviParser#logicalNotExpression.
enterLogicalNotExpression(ctx) {
}

// Exit a parse tree produced by NaviParser#logicalNotExpression.
exitLogicalNotExpression(ctx) {
}


// Enter a parse tree produced by NaviParser#logicalAndExpression.
enterLogicalAndExpression(ctx) {
}
Expand Down
Loading

0 comments on commit ab1bc33

Please sign in to comment.