public void IL() { IAsm a = iroot; IAsm p; while (a != null) { switch (a.getIType()) { case IAsm.I_INSN: exe.Insn(a); break; case IAsm.I_LABEL: exe.Label(a); break; case IAsm.I_BRANCH: exe.Branch(a); break; case IAsm.I_INSN_STORE: exe.Store(a); break; case IAsm.I_INSN_LOAD: exe.Load(a); break; case IAsm.I_INSN_LOAD_CONST: exe.LoadConst(a); break; case IAsm.I_FUNC_BEGIN: exe.FuncBegin(a); break; case IAsm.I_FUNC_END: exe.FuncEnd(); break; case IAsm.I_CALL: exe.Call(a); break; case IAsm.I_RET: exe.Ret(a); break; case IAsm.I_FIELD: exe.FieldDef(a); break; case IAsm.I_LOCALDEF: exe.LocalVars(localvars); break; case IAsm.I_COMMENT: break; default: io.Abort("PL0301: unhandled instruction type " + a.getIType()); break; } p = a; a = a.getNext(); } }