Make Parser.expression parse equality expressions

This commit is contained in:
Charles-P. Clermont
2026-01-26 16:52:31 -05:00
parent b161dae495
commit 0b890904f0
5 changed files with 51 additions and 9 deletions
+12 -2
View File
@@ -47,11 +47,21 @@ module Liquid
tok[0] == type
end
# expression := comparison
# expression := equality
# equality := comparison (("==" | "!=" | "<>") comparison)*
# comparison := primary ((">=" | ">" | "<" | "<=" | ... ) primary)*
# primary := string | number | variable_lookup | range | boolean
def expression
comparison
equality
end
def equality
expr = comparison
while look(:equality)
operator = consume
expr = BinaryExpression.new(expr, operator, comparison)
end
expr
end
# comparison := primary ((">=" | ">" | "<" | "<=" | ... ) primary)*