eval method

dynamic eval(
  1. Expression expression,
  2. Map<String, dynamic> context
)
inherited

Implementation

dynamic eval(Expression expression, Map<String, dynamic> context) {
  if (expression is Literal) return evalLiteral(expression, context);
  if (expression is Variable) return evalVariable(expression, context);
  if (expression is ThisExpression) return evalThis(expression, context);
  if (expression is MemberExpression) {
    return evalMemberExpression(expression, context);
  }
  if (expression is IndexExpression) {
    return evalIndexExpression(expression, context);
  }
  if (expression is CallExpression) {
    return evalCallExpression(expression, context);
  }
  if (expression is UnaryExpression) {
    return evalUnaryExpression(expression, context);
  }
  if (expression is BinaryExpression) {
    return evalBinaryExpression(expression, context);
  }
  if (expression is ConditionalExpression) {
    return evalConditionalExpression(expression, context);
  }
  throw ArgumentError("Unknown expression type '${expression.runtimeType}'");
}