java类org.antlr.v4.runtime.ANTLRFileStream的实例源码

Assembler.java 文件源码 项目:SkinnyAssembler 阅读 32 收藏 0 点赞 0 评论 0
public static void main(String[] args) {
    if (args.length != 1) {
        printUsage();
        System.exit(1);
    }
    File input = new File(args[0]);
    if (!input.exists()) {
        System.err.println("File " + args[0] + " does not exits!");
        System.exit(2);
    }
    try {
        ANTLRFileStream fileStream = new ANTLRFileStream(args[0]);
        SkinnyLexer lexer = new SkinnyLexer(fileStream);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        SkinnyParser parser = new SkinnyParser(tokens);
        ParseTree tree = parser.source();
        Assembler asm = new Assembler();
        ParseTreeWalker.DEFAULT.walk(asm, tree);
        ParseTreeWalker.DEFAULT.walk(asm, tree);
        if (!asm.hasErrors)
            System.out.println(asm.getText());
    } catch (IOException e) {
        System.err.println("Could not open file: " + args[0]);
        System.exit(2);
    }

}
Trinity.java 文件源码 项目:Trinity 阅读 17 收藏 0 点赞 0 评论 0
private static void prettyPrint(Path filename, int indentation) throws Exception {
    ANTLRInputStream input = new ANTLRFileStream(filename.toString());
    ParseTree tree = parse(input).a;
    PrettyPrintVisitor prettyPrinter = new PrettyPrintVisitor(indentation);
    prettyPrinter.visit(tree);
    System.out.print(prettyPrinter.getOutput());
}
MiniJParserTest.java 文件源码 项目:MiniJCompiler 阅读 29 收藏 0 点赞 0 评论 0
@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);
}
TypeCheckVisitorTest.java 文件源码 项目:MiniJCompiler 阅读 20 收藏 0 点赞 0 评论 0
@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);
}
Main.java 文件源码 项目:Q-Programming-Language 阅读 16 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws IOException {
    if (args.length != 1) {
        throw new RuntimeException("Please supply file as argument");
    }
    ANTLRInputStream ais = new ANTLRFileStream(args[0]);
    QPLLexer lex = new QPLLexer(ais);
    TokenStream toks = new CommonTokenStream(lex);
    QPLParser parse = new QPLParser(toks);
    ParseTree tree = parse.prog();
    System.out.println(new ImpVisitor(Paths.get(args[0]).getParent().normalize().toString()).visit(tree));
}
Test.java 文件源码 项目:cs652 阅读 25 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws IOException {
        ANTLRInputStream input = new ANTLRFileStream(args[0]);
        SimpleLexer l = new SimpleLexer(input);
        TokenStream tokens = new CommonTokenStream(l);

        SimpleParser parser = new SimpleParser(tokens);
        ParserRuleContext tree = parser.file();
        System.out.println(tree.toStringTree(parser));
//      tree.inspect(parser);

        DefSymbolsAndScopes def = new DefSymbolsAndScopes();
        ParseTreeWalker walker = new ParseTreeWalker();
        walker.walk(def, tree);
    }
TestFaLaLa.java 文件源码 项目:cs652 阅读 17 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {
    ANTLRInputStream input = new ANTLRFileStream("test.falala");
    FaLaLaLexer lexer = new FaLaLaLexer(input);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    FaLaLaParser parser = new FaLaLaParser(tokens);
    ParseTree tree = parser.prog();
    System.out.println(tree.toStringTree(parser));

    ParseTreeWalker walker = new ParseTreeWalker();
    DefSymbols def = new DefSymbols();
    walker.walk(def, tree);
}
TestLaLa.java 文件源码 项目:cs652 阅读 21 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {
    ANTLRInputStream input = new ANTLRFileStream("bad.lala");
    LaLaLexer lexer = new LaLaLexer(input);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    LaLaParser parser = new LaLaParser(tokens);
    ParseTree tree = parser.prog();
    System.out.println(tree.toStringTree(parser));

    ParseTreeWalker walker = new ParseTreeWalker();
    DefSymbols def = new DefSymbols();
    walker.walk(def, tree);

    System.out.println(def.globals.symbols);
}
ArithTranslate.java 文件源码 项目:ReadablePlusPlus 阅读 15 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {

        if (args.length == 0)
            args = new String[]{"arithmeticsTest.art"};

        System.out.println("parsing: " + args[0]);

        arithmeticsLexer lexer = new arithmeticsLexer(new ANTLRFileStream(args[0]));
        arithmeticsParser parser = new arithmeticsParser(new CommonTokenStream(lexer));
        ParseTree tree = parser.line();
        ArithWalk visitor = new ArithWalk();

        System.out.println(visitor.visit(tree));
    }
rppTranslate.java 文件源码 项目:ReadablePlusPlus 阅读 16 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {

        if (args.length == 0) {
            args = new String[]{"rppTest.rpp"};
        }

        System.out.println("parsing: " + args[0]);

        rppLexer lexer = new rppLexer(new ANTLRFileStream(args[0]));
        rppParser parser = new rppParser(new CommonTokenStream(lexer));
        ParseTree tree = parser.compilationUnit();
        rppWalk visitor = new rppWalk();
        System.out.println(visitor.visit(tree));
    }


问题


面经


文章

微信
公众号

扫码关注公众号