Evaluates this expression using the variable bindings in variables.
variables
@override num eval(Map<String, num> variables) => variables[name] ?? (throw ArgumentError.value(name, 'Unknown variable'));