run method
Implementation
@override
FutureOr<ASTValue> run(
VMContext parentContext, ASTRunStatus runStatus) async {
var context = defineRunContext(parentContext);
var value = await expression.run(context, runStatus);
var variableValue = await variable.getValue(context);
FutureOr<ASTValue> result;
switch (operator) {
case ASTAssignmentOperator.set:
{
result = value;
break;
}
case ASTAssignmentOperator.sum:
{
result = variableValue + value;
break;
}
case ASTAssignmentOperator.subtract:
{
result = variableValue - value;
break;
}
case ASTAssignmentOperator.divide:
{
result = variableValue / value;
break;
}
case ASTAssignmentOperator.multiply:
{
result = variableValue * value;
break;
}
default:
throw UnsupportedError('operator: $operator');
}
await variable.setValue(context, await result);
return result;
}