package main.nl.uva.parser;
import java.util.List;
import main.nl.uva.parser.statement.Statement;
import main.nl.uva.validation.ASTValidation;
import main.nl.uva.validation.Scope;
public abstract class ASTNode {
private final Line _lineInfo;
public ASTNode(final Line lineInfo) {
_lineInfo = lineInfo;
}
public Line getLineInfo() {
return _lineInfo;
}
public abstract ASTValidation validateAndCalculate(final Scope scope);
protected static ASTValidation validateChildren(final ASTValidation valid, final List<Statement> statements, final Scope scope) {
for (Statement child : statements) {
valid.combine(child.validateAndCalculate(scope));
}
return valid;
}
}