visitFilterExpression method
Implementation
@override
dynamic visitFilterExpression(FilteredExpression node) {
dynamic value;
if (node.expression is Assignment) {
(node.expression as Assignment).value.accept(this);
if ((node.expression as Assignment).value is Literal) {
value = ((node.expression as Assignment).value as Literal).value;
} else if ((node.expression as Assignment).value is Identifier) {
value = context.getVariable(
((node.expression as Assignment).value as Identifier).name);
} else {
value = (node.expression as Assignment).value.accept(this);
}
} else {
value = node.expression.accept(this);
}
for (final filter in node.filters) {
final filterFunction = filter.accept(this);
value = filterFunction(value);
}
return value;
}