Ejemplo n.º 1
0
 public void RestoreStackAndFrame(ThreadContextState saved)
 {
     Frame           = saved.Frame;
     EvaluationStack = saved.EvaluationStack;
     SpecialStack    = saved.SpecialStack;
     NestingDepth    = saved.NestingDepth;
 }
Ejemplo n.º 2
0
 public SpecialVariables(Symbol sym, bool constant, object value, SpecialVariables link)
 {
     Sym      = sym;
     Constant = constant;
     Value    = value;
     Link     = link;
 }
Ejemplo n.º 3
0
 public static SpecialVariables Clone(SpecialVariables var)
 {
     if (var == null)
     {
         return(null);
     }
     else
     {
         return(new SpecialVariables(var.Sym, var.Constant, var.Value, Clone(var.Link)));
     }
 }
Ejemplo n.º 4
0
        public static object GetDynamic(Symbol sym)
        {
            // used by compiler generated code
            for (SpecialVariables entry = CurrentThreadContext.SpecialStack; entry != null; entry = entry.Link)
            {
                if (entry.Sym == sym)
                {
                    return(entry.Value);
                }
            }

            return(sym.CheckedValue);
        }
Ejemplo n.º 5
0
 public ThreadContext(SpecialVariables specialStack)
 {
     SpecialStack = SpecialVariables.Clone(specialStack);
 }
Ejemplo n.º 6
0
 public void RestoreStackAndFrame(ThreadContextState saved)
 {
     Frame = saved.Frame;
     EvaluationStack = saved.EvaluationStack;
     SpecialStack = saved.SpecialStack;
     NestingDepth = saved.NestingDepth;
 }
Ejemplo n.º 7
0
 public ThreadContext(SpecialVariables specialStack)
 {
     SpecialStack = SpecialVariables.Clone(specialStack);
 }
Ejemplo n.º 8
0
 public static SpecialVariables Clone(SpecialVariables var)
 {
     if (var == null)
     {
         return null;
     }
     else {
         return new SpecialVariables(var.Sym, var.Constant, var.Value, Clone(var.Link));
     }
 }
Ejemplo n.º 9
0
 public SpecialVariables(Symbol sym, bool constant, object value, SpecialVariables link)
 {
     Sym = sym;
     Constant = constant;
     Value = value;
     Link = link;
 }