当前位置:网站首页>ANTLR4 入门学习(一):下载和测试
ANTLR4 入门学习(一):下载和测试
2022-07-23 04:10:00 【辞树c】
目录
零、前提准备
安装好 jdk 并配置好环境变量(没有这个还怎么玩(○´・д・)ノ)
一、ANTLR4下载
在ANTLR官网(https://www.antlr.org)中进行下载,进入Download界面:

再点击 ANTILR tool itself 这个链接下载 jar 包:

下载完成后将 jar 包放在自己喜欢的文件夹中(记住放在哪了就好)
(我这里放的路径为 E:\Program Files\antlr\antlr-4.10.1-complete.jar)
二、环境变量的配置
1. 在系统变量 CLASSPATH 中加入刚才放置 jar 包的路径:

2. 在 jar 包的同目录下创建一个文件夹 bat,再在其中新建两个 txt 文件(antlr4.txt 和 grun.txt),在 antlr4.txt 中输入:
java org.antlr.v4.Tool %*在 grun.txt 中输入:
java org.antlr.v4.gui.TestRig %*再将这两个文件的后缀改为 .bat:


3. 再打开系统变量 Path,加入 bat 文件夹的路径:

4. 测试上述配置是否成功
打开cmd,输入 antlr4,出现如下效果说明配置成功:

再输入 grun,出现如下效果说明配置成功:

三、基本测试
在 jar 包同目录下创建一个文件夹存放接下来的文件(我这里以 test 来命名),再在其中创建一个文本文件 Hello.txt,写入如下文法:
// Define a grammar called Hello
grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines保存,将后缀改为 .g4:


在 Hello.g4 文件位置打开 cmd:

输入 antlr4 Hello.g4,此时生成了一些文件:

再输入 javac.Hello*.java,此时又生成了一些文件:

接着输入 grun Hello r -tree,输入字符串 hello world,ctrl + z 结束输入,得到语法分析树的描述:

接下来用另一种方式,输入 grun Hello r -gui,输入字符串 hello world,ctrl + z 结束输入,会弹出一个 GUI 框,来显示语法分析树:

到这里,安装和测试就都完成了。
(PS:折腾了一个小时总算是折腾出来了,被网上各种不同的教程搞得一直出错(lll¬ω¬),好在最终还是搞定了)
边栏推荐
- 注册树模式
- Use and implementation of enumeration classes
- MySQL查询优化-详解
- 8 < tag dynamic programming and LCS problems > lt.300. Longest increasing subsequence + lt.674. Longest continuous increasing sequence
- 网络数据泄露事件频发,个人隐私信息如何保护?
- 2022/7/22
- What is the core essence of smart parks?
- c# 字节数组和类相互转换
- Redis transaction - detailed implementation process of seckill case simulation
- 数仓:工作流的设计以及优化实践
猜你喜欢

金仓数据库 KingbaseES SQL 语言参考手册 (8. 函数(七))

振奋人心 元宇宙!下一代互联网的财富风口

Cache penetration, cache breakdown, cache avalanche
![[C language foundation] 16 variable array (array length can be extended)](/img/01/24c6538d88bbecf7a1c21087ca239c.jpg)
[C language foundation] 16 variable array (array length can be extended)

How does the browser import and export | delete bookmarks? Here are the steps

Redis transaction - detailed implementation process of seckill case simulation

Performance introduction

使用MindStudio的X2MindSpore工具进行训练脚本转换

RichView TextBox Items 文本框

IDEA 集成 Sonar 完整流程
随机推荐
32.< tag-数组和位运算>补充: lt.剑指 Offer 56 - I. 数组中数字出现的次数
SAP 批导模板(WBS批导为例)
[c #] IEnumerable enumerable type interface analysis yield
谈谈实施数据治理时常犯的10大错误
Richview textbox items textbox
什么是文件管理软件?你为什么需要它?
有关字符串的题目总结
金仓数据库 KingbaseES SQL 语言参考手册 (8. 函数(一))
Read write barrier in memory barrier -- concurrency problem
What is the difference between College coder and 985 programmer?
比你老师详细系列————结构体
序列模型(三)- 序列模型和注意力机制
New file / filter / folder in VS
Self organization is the two-way rush of managers and members
中国经济网:“元宇宙”炙手可热
【Qt5.12】Qt5.12安装教程
无套路、无陷阱、无广告 | 这个免费的即时通讯软件确定不用吗?
你离个人信息泄漏的安全距离,或许一台笔记本电脑就可以决定!
宇视NVR设备接入EasyCVR平台,离线后无法上线该如何解决?
Bosch Bosch EDI project case