コード例 #1
0
ファイル: CFGVerifier.cs プロジェクト: DragonXYZ/cilpe
 protected internal override void VisitCastClass(CastClass node, object data)
 {
     StackTypes stack = data as StackTypes;
     Verifier.ProcessCastClass(stack, new TypeEx(node.Type,true) );
     AddTask(node.Next,stack);
 }
コード例 #2
0
ファイル: Visitor.cs プロジェクト: DragonXYZ/cilpe
 protected internal virtual void VisitCastClass(CastClass node, object data)
 {
     throw new NodeNotSupportedException(node);
 }
コード例 #3
0
ファイル: BTA.cs プロジェクト: DragonXYZ/cilpe
 protected override void VisitCastClass(CastClass upNode, object o)
 {
 }
コード例 #4
0
ファイル: BTA.cs プロジェクト: DragonXYZ/cilpe
 protected override void VisitCastClass(CastClass upNode, object o)
 {
     State state = o as State;
     BTValue val1 = state.Stack.Pop() as BTValue;
     BTValue val2;
     if (val1 is ReferenceBTValue)
         val2 = (val1 as ReferenceBTValue).ToStack(upNode.Type);
     else
         val2 = val1;
     state.Stack.Push(val2);
     Annotation.SetNodeBTType(upNode, val2.BTType);
 }
コード例 #5
0
ファイル: Emitter.cs プロジェクト: DragonXYZ/cilpe
 protected internal override void VisitCastClass(CastClass node, object data)
 {
     if(node.ThrowException)
         generator.Emit(OpCodes.Castclass, node.Type);
     else
         generator.Emit(OpCodes.Isinst, node.Type);
     AddTask(node.Next,null);
 }