summaryrefslogtreecommitdiff
path: root/Typecheck.java
diff options
context:
space:
mode:
Diffstat (limited to 'Typecheck.java')
-rw-r--r--Typecheck.java27
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",