variable function
Variable parser - parses {{ expression | filter }} syntax.
If config is provided, uses custom delimiters from the config.
Implementation
Parser variable([LiquidConfig? config]) =>
(varStart(config) &
ref0(expression).trim() &
filter().star().trim() &
varEnd(config))
.map((values) {
ASTNode expr = values[1];
String name = '';
if (expr is Identifier) {
name = expr.name;
} else if (expr is MemberAccess) {
name = (expr.object as Identifier).name;
}
if ((values[2] as List).isNotEmpty) {
return FilteredExpression(
Variable(name, expr),
(values[2] as List).cast<Filter>(),
);
}
return Variable(name, expr);
})
.labeled('variable');