newLine(); print("}");
    public void visitInterfaceDeclaration(JInterfaceDeclaration self,                                          int modifiers,                                          String ident,                                          CClassType[] interfaces,                                          JPhylum[] body,                                          JMethodDeclaration[] methods) {        /* If an interface declaration gets through this far, it means         * that there is a portal interface that can have messages sent         * through it.  We can ignore everything about the interface         * but the methods.  For each method, we need to generate a         * parameter structure and a correct send_message() wrapper. */        for (int i = 0; i < methods.length; i++) {            CMethod mth = methods[i].getMethod();            CType[] params = mth.getParameters();            String name = ident + "_" + methods[i].getName();            String pname = name + "_params";            // Print the parameter structure.            newLine();            print("typedef struct " + pname + " {");            pos += TAB_SIZE;            for (int j = 0; j < params.length; j++) {                newLine();                print(params[j] + " p" + j + ";");            }            pos -= TAB_SIZE;            newLine();            print("} _" + pname + ", *" + pname + ";");            // And now print a wrapper for send_message().            newLine();            print("void send_" + name + "(portal *p, latency l");            for (int j = 0; j < params.length; j++) {                print(", " + params[j] + " p" + j);            }            print(") {");            pos += TAB_SIZE;            newLine();            print(pname + " q = malloc(sizeof(_" + pname + "));");            for (int j = 0; j < params.length; j++) {                newLine();                print("q->p" + j + " = p" + j + ";");            }            newLine();            print("send_message(p, " + i + ", l, q);");            pos -= TAB_SIZE;        }            }