@Test
public void testVisitTypeErrorExamples() throws Exception {
FileVisitor<Path> failingFilesVisitior = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toString().endsWith("LinkedListBUG.java")) {
return super.visitFile(file, attrs);
}
System.out.println("Testing type checker with file \""+file.toString()+"\"");
ANTLRFileStream reader = new ANTLRFileStream(file.toString());
MiniJLexer lexer = new MiniJLexer((CharStream) reader);
TokenStream tokens = new CommonTokenStream(lexer);
MiniJParser parser = new MiniJParser(tokens);
ParseTree parseTree = parser.prog();
ASTVisitor astVisitor = new ASTVisitor();
Program ast = (Program) astVisitor.visit(parseTree);
TypeInferenceVisitor typeInferenceVisitor = new TypeInferenceVisitor();
ast.accept(typeInferenceVisitor);
TypeCheckVisitor visitor = new TypeCheckVisitor();
boolean typesCorrect = ast.accept(visitor);
assertFalse("\"" + file.toString() + "\" passed type check but it shouldn't", typesCorrect);
return super.visitFile(file, attrs);
}
};
Files.walkFileTree(EXAMPLE_PROGRAM_PATH_FAILING, failingFilesVisitior);
}
TypeCheckVisitorTest.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:MiniJCompiler
作者:
评论列表
文章目录