mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-18 18:30:40 -07:00
Add support for parenthesized expressions
This commit is contained in:
+14
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user