/* * This file is part of the X10 project (http://x10-lang.org). * * This file is licensed to You under the Eclipse Public License (EPL); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.opensource.org/licenses/eclipse-1.0.php * * This file was originally derived from the Polyglot extensible compiler framework. * * (C) Copyright 2000-2007 Polyglot project group, Cornell University * (C) Copyright IBM Corporation 2007-2012. */ package polyglot.visit; import polyglot.ast.NodeFactory; import polyglot.frontend.*; import polyglot.types.TypeSystem; /** Visitor which performs type checking on the AST. */ public class TypeComputer extends ContextVisitor { public TypeComputer(Job job, TypeSystem ts, NodeFactory nf) { super(job, ts, nf); } // public Node override(Node parent, Node n) { // try { // if (Report.should_report(Report.visit, 2)) // Report.report(2, ">> " + this + "::override " + n); // // Node m = n.del().typeCheckOverride(parent, this); // // return m; // } // catch (SemanticException e) { // if (e.getMessage() != null) { // Position position = e.position(); // // if (position == null) { // position = n.position(); // } // // this.errorQueue().enqueue(ErrorInfo.SEMANTIC_ERROR, // e.getMessage(), position); // } // else { // // silent error; these should be thrown only // // when the error has already been reported // } // // return n; // } // } // protected NodeVisitor enterCall(Node n) throws SemanticException { // TypeComputer v = (TypeComputer) n.del().typeCheckEnter(this); // return v; // } // // protected Node leaveCall(Node old, final Node n, NodeVisitor v) throws SemanticException { // final TypeComputer tc = (TypeComputer) v; // // Node m = n; // try { // m = m.del().typeCheck(tc); // m = m.del().checkConstants(tc); // } // catch (SemanticException e) { // if (e.getMessage() != null) { // Position position = e.position(); // // if (position == null) { // position = n.position(); // } // // tc.errorQueue().enqueue(ErrorInfo.SEMANTIC_ERROR, // e.getMessage(), position); // } // else { // // silent error; these should be thrown only // // when the error has already been reported // } // } // // return n; // } }