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

代码生成的指令参数

此处,我的环境是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=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。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值