예제 #1
0
파일: BTValues.cs 프로젝트: DragonXYZ/cilpe
        internal BTValueCreators this[AnnotatingVisitor visitor]
        {
            get
            {
                BTValueCreators creators = this.hash[visitor] as BTValueCreators;
                if (creators == null)
                    this.hash[visitor] = creators = new BTValueCreators();

                return creators;
            }
        }
예제 #2
0
파일: BTA.cs 프로젝트: DragonXYZ/cilpe
 internal static void UpdateCreators(State state, AnnotatingVisitor visitor, Node upNode)
 {
     for (int i = 0; i < state.Stack.Count; i++)
     {
         BTValue val = state.Stack[i] as BTValue;
         if (val is PrimitiveBTValue)
             val.Creators[visitor].AddCreator(upNode, i);
     }
     foreach (Variable var in state.Pool.GetVariables())
     {
         BTValue val = state.Pool[var].Val as BTValue;
         if (val is PrimitiveBTValue)
             val.Creators[visitor].AddCreator(upNode, var);
     }
 }
예제 #3
0
파일: BTA.cs 프로젝트: DragonXYZ/cilpe
 internal ControllingVisitor(AnnotatedAssemblyHolder holder, AnnotatedMethod method, UpAndDownNodes upDownNodes, MethodBodyBlock mbbUp, out AnnotatingVisitor aVisitor, out LiftingVisitor lVisitor)
     : base(holder.GraphProcessor, 2)
 {
     this.holder = holder;
     this.method = method;
     this.method.ControllingVisitor = this;
     this.aVisitor = aVisitor = new AnnotatingVisitor(holder, method, this, upDownNodes);
     this.lVisitor = lVisitor = new LiftingVisitor(holder, this, aVisitor, upDownNodes);
     this.upDownNodes = upDownNodes;
     this.mbbUp = mbbUp;
     this.users = 0;
 }
예제 #4
0
파일: BTA.cs 프로젝트: DragonXYZ/cilpe
 internal LiftingVisitor(AnnotatedAssemblyHolder holder, ControllingVisitor cVisitor, AnnotatingVisitor aVisitor, UpAndDownNodes upDownNodes)
     : base(holder.GraphProcessor, 1)
 {
     this.cVisitor = cVisitor;
     this.aVisitor = aVisitor;
     this.upDownNodes = upDownNodes;
 }