コード例 #1
0
ファイル: Interpreter.cs プロジェクト: PixelSnake/bananacake
 private void InitScopesByTree(ScopeTreeNode node, RuntimeScope parent)
 {
     foreach (var n in node.Children)
     {
         if (n.Scope == null)
         {
             continue;
         }
         InitScopesByTree(n, new RuntimeScope(parent, n.Scope));
     }
 }
コード例 #2
0
ファイル: RuntimeScope.cs プロジェクト: PixelSnake/bananacake
        public RuntimeScope(RuntimeScope parent, Scope scope, bool lateInit)
        {
            Parent = parent;
            Scope  = scope;

            if (scope != null && !RuntimeScopeForScope.ContainsKey(scope))
            {
                RuntimeScopeForScope.Add(scope, this);
            }

            if (lateInit)
            {
                return;
            }
            Init(scope);
        }
コード例 #3
0
ファイル: Interpreter.cs プロジェクト: PixelSnake/bananacake
 public Interpreter(Namespace global)
 {
     Global       = global;
     RuntimeScope = new RuntimeScope(null, Global.Scope, true);
 }
コード例 #4
0
ファイル: RuntimeScope.cs プロジェクト: PixelSnake/bananacake
 public RuntimeScope(RuntimeScope parent, Scope scope) : this(parent, scope, false)
 {
 }