Rename Parser#expression -> Parser#expression_string

This commit is contained in:
Charles-P. Clermont
2026-01-26 16:52:17 -05:00
parent 7d0bdd166d
commit 6b78291449
5 changed files with 44 additions and 45 deletions
+28 -29
View File
@@ -47,34 +47,8 @@ module Liquid
tok[0] == type
end
def expression
token = @tokens[@p]
case token[0]
when :id
str = consume
str << variable_lookups
when :open_square
str = consume.dup
str << expression
str << consume(:close_square)
str << variable_lookups
when :string, :number
consume
when :open_round
consume
first = expression
consume(:dotdot)
last = expression
consume(:close_round)
"(#{first}..#{last})"
else
raise SyntaxError, "#{token} is not a valid expression"
end
end
def expression_node
parse_expression(expression)
parse_expression(expression_string)
end
def argument
@@ -84,7 +58,7 @@ module Liquid
str << consume << consume << ' '
end
str << expression
str << expression_string
str
end
@@ -93,7 +67,7 @@ module Liquid
loop do
if look(:open_square)
str << consume
str << expression
str << expression_string
str << consume(:close_square)
elsif look(:dot)
str << consume
@@ -105,6 +79,31 @@ module Liquid
str
end
def expression_string
token = @tokens[@p]
case token[0]
when :id
str = consume
str << variable_lookups
when :open_square
str = consume.dup
str << expression_string
str << consume(:close_square)
str << variable_lookups
when :string, :number
consume
when :open_round
consume
first = expression_string
consume(:dotdot)
last = expression_string
consume(:close_round)
"(#{first}..#{last})"
else
raise SyntaxError, "#{token} is not a valid expression"
end
end
# Assumes safe input. For cases where you need the string.
# Don't use this unless you're sure about what you're doing.
def unsafe_parse_expression(markup)