

import java.util.*;
import Jakarta.util.FixDosOutputStream;
import Jakarta.util.Util2;
import java.io.*;

public class UmodClassExt {

    public String GetName() {
        return arg[0].tok[0].tokenName();
    }
    public String GetType() {
        return "class";
    }

    public void compose( AstNode etree ) {
        // composition of class declarations involves three steps.
        // (a) compose implements clause
        // (b) compose bodies

        // Step 0: set flag for error checking

        kernelConstants.globals().compclass.isBaseAClass = false;

        // Step 1: first, check if composition is possible

        UmodClassExt e = ( UmodClassExt ) etree;
        String bname = arg[0].tok[0].tokenName();
        String ename = e.arg[0].tok[0].tokenName();
        if ( !bname.equals( ename ) )
            AstNode.fatalError( tok[0],
                        "attempting to compose files with different names: " +
                    bname + "  " + ename );

        // Step 2: compose implements clauses, and then classbodies

        arg[1].compose( e.arg[1] );
        arg[2].compose( e.arg[2] );
    }
}
