您的位置:首页 > 编程语言 > Java开发

ANTLR4 java版代码生成指令参数详解

2017-07-07 11:32 471 查看

代码生成的指令参数

此处,我的环境是windows。Linux下相似。

C:\Users\Jeremy>java -jar c:\Javalib\antlr-4.7-complete.jar
ANTLR Parser Generator  Version 4.7
-o ___              specify output directory where all output is generated(指定生成代码的
存放目录)
-lib ___            specify location of grammars, tokens files
-atn                generate rule augmented transition network diagrams
-encoding ___       specify grammar file encoding; e.g., euc-jp
-message-format ___ specify output style for messages in antlr, gnu, vs2005
-long-messages      show exception details when available for errors and warnings
-listener           generate parse tree listener (default)
-no-listener        don't generate parse tree listener
-visitor            generate parse tree visitor(指定要生成
用于遍历parse tree的visitor相关类方法)
-no-visitor         don't generate parse tree visitor (default)
-package ___        specify a package/namespace for the generated code(为生存的代码
指定package名和命名空间)
-depend             generate file dependencies
-D<option>=value    set/override a grammar-level option
-Werror             treat warnings as errors
-XdbgST             launch StringTemplate visualizer on generated code
-XdbgSTWait         wait for STViz to close before continuing
-Xforce-atn         use the ATN simulator for all predictions
-Xlog               dump lots of logging info to antlr-timestamp.log


针对前面博文中的Hello.g4实例,运行如下命令(我这是在Windows下的MINGW终端下运行的。antlr-4.7-complete.jar放在C盘的Javalib目录下。)

//根据grammar文件生成相应的ANTLR API 代码.java文件
$ java -jar /c/Javalib/antlr-4.7-complete.jar -visitor  Hello.g4
//编译java代码
$ javac Hello*.java


此时,得到最终的Hello可执行程序。

这里我加上”-visitor”参数,即代表了要生成用于遍历parse tree的visitor相关类方法。

示例测试

方法一:

通过文本显示结果。

$ java org.antlr.v4.gui.TestRig  Hello r -tree
(输入) hello username
^D
(r hello username)


(That ^D means EOF on unix; it’s ^Z in Windows.) The -tree option prints the parse tree in LISP notation.

方法二:

通过可视化UI来显示 parse trees 可能更加直观。命令如下:

$ java org.antlr.v4.gui.TestRig  Hello r -gui
(输入) hello username
^D


随后便弹出一个对话框来显示规则r:在关键字hello后面跟了一个username。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ANTLR4 java