【记录】搭建ANTLR v4开发环境
来源:互联网 发布:电商美工绩效考核方案 编辑:程序博客网 时间:2024/06/16 01:53
最近公司项目开发准备用到Antlr4,因此,记录下本人在Windows下搭建Antlr4环境的过程。
ANTLR 简介
- ANTLR—Another Tool for Language Recognition,Antlr 本身是使用 Java 开发的,它为包括Java,Python,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架。
- Antlr 使用上下文无关文法描述语言, 它允许我们定义识别字符流的词法规则和用于解释Token流的语法分析规则。然后,ANTLR将根据用户提供的语法文件自动生成相应的词法/语法分析器。用户可以利用他们将输入的文本进行编译,并转换成其他形式.
安装有两种:一种手动使用命令行安装与执行,第二种则是借助强大的Eclipse的插件安装。 Eclipse插件安装,官网给出了很详细的教程
这里记录的是手动在windows下的安装,具体的安装环境:
1、windows10 64位
2、Antlr4
3、jdk1.8
具体安装步骤
一、下载ANTLR v4,到官网Antlr Download下载最新的antlr-4.5.3-complete.jar
二、添加antlr-4.5.3-complete.jar的路径添加到classpath中去:
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\InstallSoftSpace\antlrLib\antlr-4.5.3-complete.jar;
三、随便找个路径新建两个文件:antlr4.bat、grun.bat。我这里路径是D:\InstallSoftSpace\antlrLib\bat
antlr4.bat、grun.bat的内容分别是
- antlr4.bat内容为:java org.antlr.v4.Tool %*
- grun.bat内容为:java org.antlr.v4.runtime.misc.TestRig %*
六、建立个样例
1、在某个文件夹下创建Hello.g4文件。这里路径为:D:\SoftWorkSpace\AntlrWorkSpace
具体内容为:
// Define a grammar called Hellogrammar Hello;r : 'hello' ID ; // match keyword ‘hello’ followed by an identifierID : [a-z]+ ; // match lower-case identifiersWS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines
3、javacHello*.java对生成的java文件进行编译
4、到这里表示已经编译完成,可以使用前面重命名的命令grun
来测试,,命令格式: grun file.g4 -r [option]
其中常用的参数有这三个:
- tokens #打印出token流 - tree #用LISP表单打印出解析树 - gui #在对话框中可视化地展示解析树5、输入命令:grunHello r -tree
到这步,就需要我们输入,这里我们输入:Hello antlr4(注意windows与Linux不同),按一个回车,再按Ctrl+Z键就可以看到结果了(这里的warning不影响操作)
6、当然,我们也可以按照上述操作对其他两个命令进行测试,输入:grun Hello r -tokens 出现下面截图结果:
7、输入:grun Hello r -gui 会弹出一个窗口
至此,Antlr4环境搭建成功,以及成功的运行了一个样例测试。
- 【记录】搭建ANTLR v4开发环境
- antlr环境搭建
- ANTLR的环境搭建
- 开发环境搭建记录
- STM32:Keil MDK(uVision v4.10)开发环境搭建
- 【记录】搭建Android开发环境
- Ubuntu开发环境搭建记录
- ANTLR v4入门
- ANTLR v4学习笔记
- Antlr 4.0和AntlrWorks开发环境配置
- Windows驱动开发环境搭建详细记录
- Android 开发记录 环境平台的搭建
- 开发板学习记录一:搭建环境
- Android NDK开发环境搭建记录
- 记录Ubuntu下搭建Android开发环境
- eclipse php 开发环境搭建记录
- ubuntu下PHP开发环境搭建记录
- zedboard 开发记录---交叉编译环境搭建
- SVN中Commit出现乱码的解决方案
- [数据结构]--jdk1.8中HashMap源码解析
- JUC - Condition 源码分析
- 一个完整的Mybatis分页解决方案
- Leetcode 461(Java)
- 【记录】搭建ANTLR v4开发环境
- 02 PHP 语法
- Py第八问 Pycharm连接Github
- cookie机制及cookie的应用
- 03 PHP 变量和常量
- js基础:数组基础和数组方法的各种使用
- 03上机练习1网易邮箱
- 简易拖拽以及bug的修复
- POJ-2442-Sequence