14 using System.Collections.Generic;
18 using Irony.Interpreter;
20 namespace Irony.Interpreter.Ast {
29 base.Init(context, treeNode);
30 Op = treeNode.ChildNodes[0].FindTokenAndGetText();
31 Argument = AddChild(
"Arg", treeNode.
ChildNodes[1]);
32 base.AsString = Op +
"(unary op)";
35 case "+": EvaluateRef = EvaluatePlus;
break;
36 case "-": EvaluateRef = EvaluateMinus;
break;
37 case "!": EvaluateRef = EvaluateNot;
break;
44 #region Evaluation methods
47 Argument.Evaluate(context, AstMode.Read);
51 context.Data.Push((byte)0);
52 Argument.Evaluate(context, AstMode.Read);
53 context.CallDispatcher.ExecuteBinaryOperator(
"-");
57 Argument.Evaluate(context, AstMode.Read);
58 var value = context.Data.Pop();
59 var bValue = (bool) context.Runtime.BoolResultConverter(value);
60 context.Data.Push(!bValue);
ParseTreeNodeList ChildNodes
static string ErrNoImplForUnaryOp
Looks up a localized string similar to UnExprNode: no implementation for unary operator '{0}'...
override void Init(ParsingContext context, ParseTreeNode treeNode)