package nl.uva.bromance.QL.ast;
import nl.uva.bromance.QL.expressions.unary.Primitive;
import nl.uva.bromance.QL.typechecking.SymbolTable;
import nl.uva.bromance.QL.exceptions.TypeCheckingError;
import java.util.List;
public abstract class QLNode extends Node<QLNode>
{
public QLNode(int ln)
{
super(ln);
}
public void accept(QLNodeVisitorInterface visitor)
{
visitor.visit(this);
for (QLNode child : this.getChildren())
{
child.accept(visitor);
}
}
/* Typechecking does not throw errors but passes along a list of exception to which a typeChecking error can be added.
* The alternative would be to throw TypeCheckingError's. However that would stop the typechecking dead in it's track
* after the first Error is found.
*/
public Primitive typeCheck(SymbolTable s, List<TypeCheckingError> exceptions)
{
return null;
}
}