diff options
Diffstat (limited to 'Typecheck.java')
-rw-r--r-- | Typecheck.java | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/Typecheck.java b/Typecheck.java index 098defe..12e74f1 100644 --- a/Typecheck.java +++ b/Typecheck.java @@ -20,22 +20,23 @@ public class Typecheck { // Build the symbol table. Top-down visitor, inherits from // GJDepthFirst<R,A>. R=Void, A=Integer. - SymbolTable symt = new SymbolTable(); - MinimalLogger.info("Populating classes..."); - root.accept(new SymTableClasses<Void>(), symt); - MinimalLogger.info("Populating methods..."); - root.accept(new SymTableMethods<Void>(), symt); - MinimalLogger.info("Populating variables..."); - root.accept(new SymTableVars<Void>(), symt); - MinimalLogger.info("Populating extensions..."); - root.accept(new SymTableExtend<Void>(), symt); - MinimalLogger.info(symt.toString()); - - HeatVisitor hv = new HeatVisitor(symt); - try { + + SymbolTable symt = new SymbolTable(); + MinimalLogger.info("Populating classes..."); + root.accept(new SymTableClasses<Void>(), symt); + MinimalLogger.info("Populating methods..."); + root.accept(new SymTableMethods<Void>(), symt); + MinimalLogger.info("Populating variables..."); + root.accept(new SymTableVars<Void>(), symt); + MinimalLogger.info("Populating extensions..."); + root.accept(new SymTableExtend<Void>(), symt); + MinimalLogger.info(symt.toString()); + + HeatVisitor hv = new HeatVisitor(symt); root.accept(hv, null); System.out.println("Program type checked successfully"); + } catch (TypecheckException e) { System.out.println("Type error"); MinimalLogger.severe(String.format("Reason: %s", |