Пример #1
0
 internal void AddLabelInfo(LabelTarget target, LabelInfo info)
 {
     if (this.Labels == null)
     {
         this.Labels = new HybridReferenceDictionary <LabelTarget, LabelInfo>();
     }
     this.Labels[target] = info;
 }
Пример #2
0
        internal void AddLabelInfo(LabelTarget target, LabelInfo info)
        {
            Debug.Assert(CanJumpInto);

            if (_labels == null)
            {
                _labels = new HybridReferenceDictionary <LabelTarget, LabelInfo>();
            }

            _labels[target] = info;
        }
Пример #3
0
 internal Interpreter(string name, LocalVariables locals, HybridReferenceDictionary <LabelTarget, BranchLabel> labelMapping, InstructionArray instructions, DebugInfo[] debugInfos, int compilationThreshold)
 {
     this._name                 = name;
     this._localCount           = locals.LocalCount;
     this._closureVariables     = locals.ClosureVariables;
     this._instructions         = instructions;
     this._objects              = instructions.Objects;
     this._labels               = instructions.Labels;
     this._labelMapping         = labelMapping;
     this._debugInfos           = debugInfos;
     this._compilationThreshold = compilationThreshold;
 }
Пример #4
0
 internal LoopCompiler(PowerShellLoopExpression loop, HybridReferenceDictionary <LabelTarget, BranchLabel> labelMapping, Dictionary <ParameterExpression, LocalVariable> locals, Dictionary <ParameterExpression, LocalVariable> closureVariables, int loopStartInstructionIndex, int loopEndInstructionIndex)
 {
     this._loop                      = loop;
     this._outerVariables            = locals;
     this._closureVariables          = closureVariables;
     this._frameDataVar              = Expression.Parameter(typeof(object[]));
     this._frameClosureVar           = Expression.Parameter(typeof(StrongBox <object>[]));
     this._frameVar                  = Expression.Parameter(typeof(InterpretedFrame));
     this._loopVariables             = new Dictionary <ParameterExpression, LoopVariable>();
     this._returnLabel               = Expression.Label(typeof(int));
     this._labelMapping              = labelMapping;
     this._loopStartInstructionIndex = loopStartInstructionIndex;
     this._loopEndInstructionIndex   = loopEndInstructionIndex;
 }