@Test
public void testTypeFailingExamples() throws IOException {
FileVisitor<Path> typeFailingFilesVisitior = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
System.out.println("Testing type for file \""+file.toString()+"\"");
ANTLRFileStream antlrStream = new ANTLRFileStream(file.toString());
MiniJLexer lexer = new MiniJLexer(antlrStream);
TokenStream tokens = new CommonTokenStream(lexer);
MiniJParser parser = new MiniJParser(tokens);
ParseTree tree = parser.prog();
ASTVisitor astVisitor = new ASTVisitor();
Program program = (Program) astVisitor.visit(tree);
TypeInferenceVisitor typeInferenceVisitor = new TypeInferenceVisitor();
program.accept(typeInferenceVisitor);
TypeCheckVisitor typeCheckVisitor = new TypeCheckVisitor();
if (program.accept(typeCheckVisitor)) {
fail("The example "+file.toString()+" should have failed, but was accepted by the type checker.");
}
return super.visitFile(file, attrs);
}
};
Files.walkFileTree(EXAMPLE_PROGRAM_PATH_TYPE_FAILING, typeFailingFilesVisitior);
}
MiniJParserTest.java 文件源码
java
阅读 29
收藏 0
点赞 0
评论 0
项目:MiniJCompiler
作者:
评论列表
文章目录