@Test
public void testVisitWorkingExamples() throws Exception {
FileVisitor<Path> workingFilesVisitior = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
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);
if (!typesCorrect) {
for (String error : visitor.getErrors()) {
System.err.println(error);
}
}
assertTrue(typesCorrect);
return super.visitFile(file, attrs);
}
};
Files.walkFileTree(EXAMPLE_PROGRAM_PATH_WORKING, workingFilesVisitior);
}
TypeCheckVisitorTest.java 文件源码
java
阅读 20
收藏 0
点赞 0
评论 0
项目:MiniJCompiler
作者:
评论列表
文章目录