示例#1
0
        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;
 }