当前位置: 首页 > 文档资料 > Antlr 4 参考 >

3.3 Integrating a Generated Parser into a Java Program

优质
小牛编辑
141浏览
2023-12-01

生成 lexer 和 parser 后,就可以开始将 parser 与 language application 集成了:

// 导入 ANTLR runtime
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;

public class Test {
    public static void main(String[] args) throws Exception {
        // 从标准输入创建 CharStream
        ANTLRInputStream input = new ANTLRInputStream(System.in);

        // 创建 lexer,处理输入的 CharStream
        ArrayInitLexer lexer = new ArrayInitLexer(input);

        // 创建 buffer of tokens,保存 lexer 生成的 token
        CommonTokenStream tokens = new CommonTokenStream(lexer);

        // 创建 parser,处理 token 缓冲区中的 token
        ArrayInitParser parser = new ArrayInitParser(tokens);

        // 从 init rule,开始语法分析
        ParseTree tree = parser.init();

        // 输入 LISP 风格的 parse tree,效果类似 -trees
        System.out.println(tree.toStringTree(parser));
    }
}

编译 parser 等和 Test.java

javac *.java

运行 Test

array [master●] % java Test 
{1, 2, 3}
(init { (value 1) , (value 2) , (value 3) })