visitExpressions method
Implementation
@override
void visitExpressions(Expressions node) {
var expressions = node.expressions;
var expressionsLength = expressions.length;
for (var i = 0; i < expressionsLength; i++) {
// Add space seperator between terms without an operator.
// TODO(terry): Should have a BinaryExpression to solve this problem.
var expression = expressions[i];
if (i > 0 &&
!(expression is OperatorComma || expression is OperatorSlash)) {
// If the previous expression is an operator, use `_sp` so the space is
// collapsed when emitted in compact mode. If the previous expression
// isn't an operator, the space is significant to delimit the two
// expressions and can't be collapsed.
var previous = expressions[i - 1];
if (previous is OperatorComma || previous is OperatorSlash) {
emit(_sp);
} else if (previous is PercentageTerm &&
expression is PercentageTerm &&
_isInKeyframes) {
emit(',');
emit(_sp);
} else {
emit(' ');
}
}
expression.visit(this);
}
}