summaryrefslogtreecommitdiff
path: root/chapter23/docs/23-grammar.md
diff options
context:
space:
mode:
Diffstat (limited to 'chapter23/docs/23-grammar.md')
-rw-r--r--chapter23/docs/23-grammar.md9
1 files changed, 7 insertions, 2 deletions
diff --git a/chapter23/docs/23-grammar.md b/chapter23/docs/23-grammar.md
index 1d52d5a6..cd231b08 100644
--- a/chapter23/docs/23-grammar.md
+++ b/chapter23/docs/23-grammar.md
@@ -80,11 +80,16 @@ expression : logicalExpression ('?' assignment (':' assignment)?)? ;
logicalExpression : bitwiseExpression (('&&' | '||') logicalExpression)? ;
bitwiseExpression
- : comparisonExpression (('&' | '|' | '^') comparisonExpression)*
+ : equalityExpression (('&' | '|' | '^') equalityExpression)*
;
+equalityExpression : comparisonExpression (('==' | '!=') comparisonExpression)* ;
+
+// Compare adjacent operands once; stop after the first false comparison.
+// Keep one direction per chain; < and <= (or > and >=) may mix.
comparisonExpression
- : shiftExpression (('==' | '!=' | '<' | '<=' | '>' | '>=') shiftExpression)*
+ : shiftExpression (('<' | '<=') shiftExpression)*
+ | shiftExpression (('>' | '>=') shiftExpression)+
;
shiftExpression