antlr v4 使用指南连载2——准备环境
antlr v4 开发环境
从上一篇文章的例子中可以知道,antlr有一套自己的语法来声明目标语言的语法,因此它本身就需要编译或者使用antlr提供的api来读取这些语法规则,并使之可以在目标平台上使用。比如我在用Java写一个SQL语言的解析工具,那么antlr就需要有Java平台的API给我使用。确实也是如此,只不过antlr除了提供这些API外,还会将g4这些语法文件编译成目标平台的类文件(仅对Java而言,其他语言也会编译成对应的文件)。这些编译生成的文件不需要使用者去关注,因为它们是给antlr自身使用的。使用者只需要关注antlr提供的API即可。
综上所述,antlr有一套自己的编译环境。所以我们在使用antlr之前,需要准备好一些东西。以下是几种可行的方式:
- 文本编辑器 + Complete ANTLR 4.4 Java binaries.jar
- Eclipse + Complete ANTLR 4.4 Java binaries.jar + eclipse plugin
- IntelliJ IDEA + Complete ANTLR 4.4 Java binaries.jar + intellij idea plugin
个人推荐使用方式3,IntelliJ IDEA确实比Eclipse好用,关键是不会卡;其次是插件系统也比eclipse好太多了。
方式1##
在开始之前,需要定制一下编译工具。
Linux版
#antlr4.sh
#Linux
#!/bin/sh
java -cp "/usr/local/lib/antlr4-complete.jar:$CLASSPATH" org.antlr.v4.Tool $*
Windows版
#antlr4.bat
#Windows
java -cp C:\libraries\antlr-4.0-complete.jar;%CLASSPATH% org.antlr.v4.Tool %*
编译antlr语法文件(以上篇文章中的示例代码为例)
antlr4 Hello.g4
javac *.java
这样就会在当前目录下生成几个Java文件。如HelloLexer.java、HelloParser.java等。antlr的编译参数,可根据情况选用。
ANTLR Parser Generator Version 4.0
-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
-listener generate parse tree listener(default)
-no-listener don't generate parse tree listener
-visitor generate parse tree visitor
-no-visitor don't generate parse tree visitor(default)
-package___ specify a package/namespace for the generated code
-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
-Xforce-atn use the ATN simulator for all predictions
-Xlog dump lots of logging info to antlr-timestamp.log
方式二##
eclipse的antlr插件实在不好用,强烈不推荐使用。因此我也不在此说明安装方法了,一定要使用eclipse的同学,可自行google。
方式三##
- 下载IntelliJ IDEA antlr plugin
- 按以下图示步骤安装
步骤一
步骤二
步骤三
步骤四
步骤五
- 重启完成之后,新建java项目-新建文件,然后将Hello.g4的代码复制进去。如下图,即可测试antlr的语法文件。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!