ANTLR的IDE——ANTLRWorks2的安装及基本使用

1. ANTLRWorks2的简单介绍
① ANTLR官网对ANTLRWorks2的介绍

ANTLRWorks 2.此IDE是ANTLR v3 / v4语法以及StringTemplate模板的复杂编辑器。
它可以运行ANTLR工具来生成识别器,并可以运行TestRig(在命令行上运行)来测试语法。
要将ANTLR生成的识别器集成到您的应用程序中,您至少还需要运行时库。

② ANTLRWorks 2官网对自己的介绍
  • ANTLRWorks 2是Tunnel Vision Labs使用几种新技术开发的,可以对之前的语法工具进行完全重写。我们用于NetBeans®开发的核心框架最初是为该项目创建的,但很容易扩展到其他语言,并且是我们所有基于NetBeans的应用程序的起点。
  • 对ANTLR的支持——源代码图。编辑ANTLR语法文件时,“语法图”窗口显示当前规则的直观表示。此功能提供语法元素的自然表示,并且是提供自定义功能以增强特定语言的特征的示例。另外,双击源代码图中的元素将立即跳转到相关的源代码。ANTLR的语法图如图所示:
    在这里插入图片描述
  • ANTLRWorks 2的编辑提示功能:ANTLRWorks 2提供编辑器提示,以警告开发人员语法编译器当前未检测到的语法中的潜在错误或性能问题。由于此类静态分析对每种语言都是唯一的,因此我们与语言创建者和用户合作,提供最有可能在开发周期早期检测到有问题代码的分析功能。ANTLRWorks中语法的当前分析功能包括以下内容:
(1)ANTLR 4工具报告的错误和警告在编辑器中“实时”显示 
(2)识别解析器中的隐式标记定义(可能的错误)
(3)因子标签超出集合(性能提示)
(4)组集元素(性能提示)
  • antlrworks:专门用于开发antlr的ide,(不同版本的antlrworks)其内部集成了某个版本的antlr。 换句话说,你即使下载了antlr-x.x-complete.jar,将其添加到了CLASSPATH中,其也和antlrworks内部的antlr,没有半毛钱关系。即antlrworks用的是自己内部集成的某个版本的antlr。

参考链接:
ANTLR Development Tools(ANTLR官网)
ANTLRWorks 2

2. ANTLRWorks2的下载
  • 进入ANTLRWorks2的官网,在右上角点击下载ANTLRWorks2 V2.1
    在这里插入图片描述
  • 该版本是2013年8月28日发行的,内部集成的是ANTLR 4.1
    在这里插入图片描述
  • 解压下载的安装包 2013-07-21-antlrworks-2.1.zip,进入解压目录下的bin目录,我的是C:\Users\lucy\Downloads\antlrworks2\bin,点击antlrworks2.exe,即可运行antlrworks2。
    在这里插入图片描述
3. ANTLRWorks2的简单使用
① 新建*.g4文件
  • 点击左上角的新建按钮,弹出“New File”窗口:
    在这里插入图片描述
  • 默认为ANLTR 4 Combined Grammar就好,点击Next按钮,进入如下页面,输入自己的文件名、保存路径:
    在这里插入图片描述
  • 点击“Finish”,完成文件创建:
    在这里插入图片描述
② ANTLRWorks2的语法图功能
  • 定义数字,由0-9组成(即词法分析器——Lexer),可以重复一次或多次:
grammar Cpp;
	NUM:[0-9]+;

鼠标放到NUM:[0-9]+;行,显示对应的语法图:
在这里插入图片描述

  • 定义操作符(即词法分析器——Lexer),包括加减乘除,只允许出现一次:
grammar Cpp;
    NUM:[0-9]+;
    OPERATOR: '-'|'*'|'/';

鼠标放到 OPRATOR:'+'|'-'|'*'|'/';行,显示对应的语法图:
在这里插入图片描述

  • 定义表达式(即语法分析器,Parser):
grammar Cpp;
   PROG: exp;
   exp: NUM OPERATOR NUM;
   NUM:[0-9]+;
   OPERATOR: '-'|'*'|'/';

鼠标放到 exp: NUM OPERATOR NUM;行,显示对应的语法图:
exp: NUM OPERATOR NUM;

  • 文法定义的可视化:
    在这里插入图片描述
    PS: 本人探索发现:不知道是不是版本的问题,V2.1中使用ANLTR 4 Combined Grammar生成的文件,跟某些参考博客中不一样,V2.1中只显示Parser Rules。如果使用ANLTR 4 Lexer GrammarANLTR 4 Parser Grammar生成文件,Parser RulesLexer Rules都会显示。但是,在ANLTR 4 Lexer Grammar中定义parser规则会有错误提示,在ANLTR 4 Parser Grammar中定义Lexer规则也会有错误提示。
③ 语法解析
  • 点击Run-->Run in TestRig,弹出如下窗口。在新窗口中输入要进行解析的文件,里面是待解析的内容;选择用哪个语法解析器进行解析,最后点击Finish
    在这里插入图片描述
  • hello.txt中的内容为101+2689,解析出来的语法树(以弹窗的形式显示)如下。对应的命令为
    grun Cpp r -gui
    在这里插入图片描述
  • TestRig的终端显示的信如下,对应的命令为grun Cpp r -tree

在这里插入图片描述

④ 小小的语法总结
  • 使用大写字母lexer进行命名,使用小写字母parser进行命名。
  • 使用*表示0-N次重复,使用+表示1-N次重复

参考链接:
YouTube视频——ANTLRWorks(安装及使用教程)
【总结】使用ANTLR和ANTLRWorks的开发心得和注意事项
【记录】尝试使用ANTLRWorks 2.0去进行ANTLR开发
Antlr 4.0和AntlrWorks开发环境配置

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值