Exemplo n.º 1
0
 public virtual void Visit(IncludeStmt includeStmt, object[] args)
 {
 }
 public virtual void Visit(IncludeStmt includeStmt, object[] args)
 {
 }
 public override void Visit(IncludeStmt includeStmt, object[] args)
 {
     checkLocation = includeStmt.Location;
     CheckSubPlot(includeStmt.SubPlot);
     base.Visit(includeStmt, args);
 }
        public void Visit(IncludeStmt includeStmt, object[] args)
        {
            kernel.RuntimeData.ScopeStack.Open(new LocalScope());
            kernel.RuntimeData.InstructionStack.Push(InstructionStack.CALL_FLAG);
            //kernel.RuntimeData.InstructionStack.Push(InstructionStack.CLOSE_FORMAL_SCOPE_FLAG);
            kernel.RuntimeData.InstructionStack.Push(InstructionStack.CLOSE_LOCAL_SCOPE_FLAG);

            kernel.RuntimeData.InstructionStack.Push(root.SubPlotMap[includeStmt.SubPlot].Content);

            CallStackElement elem = new CallStackElement();
            elem.Destination = root.SubPlotMap[includeStmt.SubPlot];
            elem.Location = includeStmt.Location;
            elem.ReturnDest = null;
            kernel.RuntimeData.CallStack.Push(elem);

            kernel.Next();
        }