Add support for parenthesized expressions

This commit is contained in:
Charles-P. Clermont
2026-01-27 10:07:35 -05:00
parent f9b5313020
commit 10c0de74b5
4 changed files with 60 additions and 13 deletions
+14 -1
View File
@@ -100,7 +100,7 @@ module Liquid
when :number
number
when :open_round
range_lookup
grouping_or_range_lookup
else
raise SyntaxError, "#{token} is not a valid expression"
end
@@ -131,6 +131,19 @@ module Liquid
VariableLookup.new(name, lookups, command_flags)
end
# Parenthesized expressions are recursive
def grouping_or_range_lookup
consume(:open_round)
expr = expression
if consume?(:dotdot)
RangeLookup.create(expr, expression)
else
expr
end
ensure
consume(:close_round)
end
def range_lookup
consume(:open_round)
first = expression