package me.tomassetti.turin.parser.ast.expressions; import me.tomassetti.turin.compiler.errorhandling.ErrorCollector; import me.tomassetti.turin.resolvers.SymbolResolver; import me.tomassetti.turin.parser.ast.Node; import me.tomassetti.turin.parser.ast.Position; import me.tomassetti.turin.parser.ast.typeusage.TypeUsageNode; import java.util.Collections; public class SemanticError extends Expression { private String message; private Position position; @Override protected boolean specificValidate(SymbolResolver resolver, ErrorCollector errorCollector) { errorCollector.recordSemanticError(position, message); return false; } public SemanticError(String message, Position position) { this.message = message; this.position = position; } @Override public Iterable<Node> getChildren() { return Collections.emptyList(); } @Override public TypeUsageNode calcType() { throw new UnsupportedOperationException(); } }