public override void process(ICode iCode, SymbolTableStack symbolTableStack) { this.symbolTableStack = symbolTableStack; this.iCode = iCode; long startTime = DateTime.Now.Ticks; ICodeNode rootNode = iCode.GetRoot(); StatementExecutor statementExecutor = new StatementExecutor(this); statementExecutor.Execute(rootNode); float elapsedTime = (DateTime.Now.Ticks - startTime) / 1000f; int runtimeErrors = RuntimeErrorHandler.errorCount; sendMessage(new Message(MessageType.INTERPRETER_SUMMARY, new Object[] { executionCount, runtimeErrors, elapsedTime })); }
public void Print(ICode iCode) { tw.WriteLine("\n===== INTERMEDIATE CODE =====\n"); PrintNode((ICodeNodeImplementation)iCode.GetRoot()); PrintLine(); }