home *** CD-ROM | disk | FTP | other *** search
- package espresso;
-
- class TopLevel extends AST {
- ASTS newClasses;
- int pass;
- Env env;
- String sourcefile;
- AST[] defs;
-
- void print(int var1) {
- for(int var2 = 0; var2 < this.defs.length; ++var2) {
- this.defs[var2].print(var1);
- System.out.println();
- }
-
- }
-
- Item gen() {
- if (Report.nerrors == 0) {
- Report.open(this.sourcefile);
-
- for(int var1 = 0; var1 < this.defs.length; ++var1) {
- this.defs[var1].genDrop();
- this.defs[var1].output();
- }
-
- Report.close();
- }
-
- return Item.voidItem;
- }
-
- AST simplify() {
- if (Switches.verbose) {
- System.out.println(String.valueOf(String.valueOf("[simplifying ").concat(String.valueOf(this.sourcefile))).concat(String.valueOf("]")));
- }
-
- this.newClasses = new ASTS();
-
- for(int var1 = 0; var1 < this.defs.length; ++var1) {
- this.defs[var1] = this.defs[var1].simplify();
- }
-
- if (this.newClasses.length != 0) {
- for(int var2 = 0; var2 < this.newClasses.length; ++var2) {
- this.newClasses.elems[var2].enter(this.env);
- }
-
- ASTS var3 = new ASTS(this.defs);
- var3.append(this.newClasses);
- this.defs = var3.shrink();
- }
-
- if (Switches.printTree) {
- ((AST)this).print();
- }
-
- return this;
- }
-
- void attr() {
- if (Switches.verbose) {
- System.out.println(String.valueOf(String.valueOf("[checking ").concat(String.valueOf(this.sourcefile))).concat(String.valueOf("]")));
- }
-
- Report.open(this.sourcefile);
-
- for(int var1 = 0; var1 < this.defs.length; ++var1) {
- this.defs[var1].attr(this.env, 2, Typ.anyTyp);
- }
-
- Report.close();
- }
-
- void enterFields() {
- Report.open(this.sourcefile);
- if (this.pass == 1) {
- this.env.globalScope.baseOn(Predef.scope);
- Import.includeDir(this.env, 0, Name.fromString("java.lang"));
- }
-
- for(int var1 = 0; var1 < this.defs.length; ++var1) {
- if (this.pass == 1 || this.defs[var1].tag != 26) {
- this.defs[var1].enterFields(this.env);
- }
- }
-
- Report.close();
- ++this.pass;
- }
-
- void enter() {
- Report.open(this.sourcefile);
- this.env = new Env(this);
-
- for(int var1 = 0; var1 < this.defs.length; ++var1) {
- this.defs[var1].enter(this.env);
- }
-
- Report.close();
- }
-
- TopLevel(ASTS var1, String var2) {
- super(0, 29);
- this.defs = var1.shrink();
- this.sourcefile = var2;
- this.pass = 1;
- }
- }
-