mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-10 10:29:36 +00:00
34 lines
1.0 KiB
Java
34 lines
1.0 KiB
Java
package dk.camelot64.kickc.passes;
|
|
|
|
import dk.camelot64.kickc.model.GraphBaseVisitor;
|
|
import dk.camelot64.kickc.model.Program;
|
|
import dk.camelot64.kickc.model.statements.StatementProcedureBegin;
|
|
import dk.camelot64.kickc.model.statements.StatementProcedureEnd;
|
|
|
|
/** Asserts that the graph contains no proc/endproc statements */
|
|
public class Pass2AssertNoProcs extends Pass2SsaAssertion {
|
|
|
|
public Pass2AssertNoProcs(Program program) {
|
|
super(program);
|
|
}
|
|
|
|
@Override
|
|
public void check() throws AssertionFailed {
|
|
|
|
GraphBaseVisitor<Void> checkCalls = new GraphBaseVisitor<Void>() {
|
|
|
|
@Override
|
|
public Void visitProcedureBegin(StatementProcedureBegin procedureBegin) {
|
|
throw new AssertionFailed("No proc statements allowed! " + procedureBegin);
|
|
}
|
|
|
|
@Override
|
|
public Void visitProcedureEnd(StatementProcedureEnd procedureEnd) {
|
|
throw new AssertionFailed("No proc statements allowed! " + procedureEnd);
|
|
}
|
|
};
|
|
checkCalls.visitGraph(getGraph());
|
|
}
|
|
|
|
}
|