14 using System.Collections.Generic;
17 using Irony.Interpreter;
20 namespace Irony.Interpreter.Ast {
30 base.Init(context, treeNode);
31 Target = AddChild(
"To", treeNode.
ChildNodes[0]);
33 AssignmentOp = treeNode.ChildNodes[1].FindTokenAndGetText();
34 if (
string.IsNullOrEmpty(AssignmentOp))
36 if (AssignmentOp.Length > 1) {
38 BaseOp = AssignmentOp.Replace(
"=", string.Empty);
41 var lastIndex = treeNode.ChildNodes.Count - 1;
42 Expression = AddChild(
"Expr", treeNode.
ChildNodes[lastIndex]);
43 AsString = AssignmentOp +
" (assignment)";
44 if (
string.IsNullOrEmpty(BaseOp))
45 EvaluateRef = EvaluateSimple;
47 EvaluateRef = EvaluateCombined;
51 Expression.Evaluate(context, AstMode.Read);
52 Target.Evaluate(context, AstMode.Write);
55 Target.Evaluate(context, AstMode.Read);
56 Expression.Evaluate(context, AstMode.Read);
57 context.CallDispatcher.ExecuteBinaryOperator(BaseOp);
58 Target.Evaluate(context, AstMode.Write);
override void Init(ParsingContext context, ParseTreeNode treeNode)
ParseTreeNodeList ChildNodes