evalBinaryExpression method
Implementation
@protected
dynamic evalBinaryExpression(
BinaryExpression expression, Map<String, dynamic> context) {
var left = eval(expression.left, context);
right() => eval(expression.right, context);
switch (expression.operator) {
case '||':
return left || right();
case '&&':
return left && right();
case '|':
return left | right();
case '^':
return left ^ right();
case '&':
return left & right();
case '==':
return left == right();
case '!=':
return left != right();
case '<=':
return left <= right();
case '>=':
return left >= right();
case '<':
return left < right();
case '>':
return left > right();
case '<<':
return left << right();
case '>>':
return left >> right();
case '+':
return left + right();
case '-':
return left - right();
case '*':
return left * right();
case '/':
return left / right();
case '%':
return left % right();
case '~/':
return left ~/ right();
case '??':
return left ?? right();
}
throw ArgumentError(
'Unknown operator ${expression.operator} in expression');
}