protected internal override void VisitUnaryOp(UnaryOp node, object data) { StackTypes stack = data as StackTypes; switch(node.Op) { case UnaryOp.ArithOp.NEG: { Verifier.ProcessNeg(stack); } break; case UnaryOp.ArithOp.NOT: { Verifier.ProcessNot(stack); } break; default: throw new VerifierException(); } AddTask(node.Next,stack); }
protected internal virtual void VisitUnaryOp(UnaryOp node, object data) { throw new NodeNotSupportedException(node); }
protected override void VisitUnaryOp(UnaryOp upNode, object o) { }
protected override void VisitUnaryOp(UnaryOp upNode, object o) { State state = o as State; BTValue val = state.Stack[0] as PrimitiveBTValue; Annotation.SetNodeBTType(upNode, val.BTType); }
protected internal override void VisitUnaryOp(UnaryOp node, object data) { switch(node.Op) { case UnaryOp.ArithOp.NEG: { generator.Emit(OpCodes.Neg); } break; case UnaryOp.ArithOp.NOT: { generator.Emit(OpCodes.Not); } break; default: throw new EmissionException(); } AddTask(node.Next,null); }