public void BeginClass() { exe.BeginClass(io.GetClassname(), TypeAttributes.Public); if (io.getGenList()) { io.Out(".assembly '" + io.GetClassname() + "'\r\n"); io.Out("{\r\n"); io.Out("\t.ver 0:0:0:0\r\n"); io.Out("}\r\n\r\n"); io.Out(".class " + io.GetClassname() + "{\r\n"); } }
public void Load(IAsm a) { StringBuilder sb = new StringBuilder(Io.MAXSTR); Var e = a.getVar(); if (e == null) { io.Abort("PL0402: load instruction with no variable ptr"); } switch (e.getClassId()) { case Tok.T_STATIC: sb.Append("\tldsfld "); sb.Append(genFieldRef(e)); sb.Append("\t\t\t\t\t//"); sb.Append(a.getICount()); sb.Append(", "); sb.Append(e.getName()); sb.Append("\r\n"); break; case Tok.T_AUTO: case Tok.T_DEFCLASS: sb.Append("\tldloc "); sb.Append(e.getIndex()); sb.Append("\t\t\t\t\t//"); sb.Append(a.getICount()); sb.Append(", "); sb.Append(e.getName()); sb.Append("\r\n"); break; case Tok.T_PARAM: sb.Append("\tldarg "); sb.Append(e.getIndex()); sb.Append("\t\t\t\t\t//"); sb.Append(a.getICount()); sb.Append(", "); sb.Append(e.getName()); sb.Append("\r\n"); break; default: io.Abort("PL0403: instruction load of unknown class (" + e.getClassId() + ")"); break; } io.Out(sb.ToString()); }