antlr 4.7.1_新ANTLR 4.6的重要更改
antlr 4.7.1
自上一个主要版本发布以来,已经过去了将近一年的时间,推出了新的ANTLR版本: 4.6 。 有很多新闻:新的目标,更好的性能,更好的错误处理以及ANTLR本身开发中的一些改进。
新目标
影响最大的新闻可能是新目标:C ++,Go和Swift。 当然,获得C ++支持非常重要。 讨厌它还是喜欢它,它仍然是其中的主要语言之一。 由于对并发的大力支持,Go在网络应用程序(例如Web服务器和API)中获得了关注。 这几乎使可用目标增加了一倍,并加入了已经包含的Java,C#,Python和Javascript。
ANTLR 4中最大的新增功能之一是对左递归表达式的支持,也就是说,该表达式具有一个或多个引用自己的替代方法。 支持表达式所需的语法规则大大简化,但是对于非常大的表达式,存在不终止解析的情况。 这是由于两个选择之间的歧义导致解析引擎出现问题。 两者都导致有效的解析,但是一个比另一个慢得多。 该问题是由 ANTLR的主要贡献者之一Sam Harwell发现的 。
错误处理和消息
在某些情况下的错误处理方面已得到改进:与LL(1)决策有关,匹配的令牌集被错误地视为重新同步令牌,以及偶尔不包含单个令牌的错误节点。 此外,例如在规则与指定目标语言的生成代码中的符号冲突的情况下,会有更好的错误消息。
改进ANTLR的发展
其他重要新闻是与ANTLR本身的开发有关的一些改进。 尽管这并不直接影响您,但作为用户,它们可能使您更容易为项目做出贡献,研究大型Java项目的工作方式,甚至激发您改进自己的开源项目。 这些范围包括从改进到构建系统,从Maven插件到完全重写的单元测试机制。 同样有用的是要知道,现在的构建环境需要ANTLR Java 7 / JDK 1.7,这是Swift目标的推动 。
结论
ANTLR是许多对语言感兴趣的人的宝贵工具。 此版本再次证明了ANTLR将继续存在并在不断发展。 由于大量有意义的更改,所以此发行版有点特殊。 我可以在ANTLR社区中看到这种不断增长的热情,并且我期待着在这一领域看到更多伟大的事情。
翻译自: https://www.javacodegeeks.com/2017/01/important-changes-new-antlr-4-6.html
antlr 4.7.1
antlr 4.7.1_新ANTLR 4.6的重要更改相关推荐
- antlr 语言 库_关于ANTLR的通用库的需求:使用反射来构建元模型
antlr 语言 库 我是一名语言工程师:我使用多种工具来定义和处理语言. 在其他工具中,我使用ANTLR:它简单,灵活,可以围绕它进行构建. 但是我发现自己围绕ANTLR为不同的项目重建了类似的工具 ...
- ANTLR学习(三)antlr的功能
文章目录 算数表达式语言 匹配算数表达式的语言 语法 语法导入 处理错误输入 使用访问者模式构建一个计算器 利用监听器构建一个翻译器 如何将动作直接嵌入语法文件 在语法中嵌入任意动作 使用语义判定改变 ...
- sql server 快照_添加新文章,删除文章,更改快照文件夹路径和SQL Server复制中的数据筛选器行
sql server 快照 In the last articles, we have learned Configuring Snapshot and Transactional SQL Serve ...
- 新ANTLR 4.6的重要更改
自从上一个主要版本发布以来,已经过去了将近一年的时间,推出了新的ANTLR版本: 4.6 . 有很多新闻:新的目标,更好的性能,更好的错误处理以及ANTLR本身开发中的一些改进. 新目标 影响最大的新 ...
- ANTLR中文手册二(ANTLR 是什么)
ANTLR 2.7.5版 2004年十二月22日 ANTLR是什么 ANTLR, 语言识别的另一个工具(ANother Tool for Language Recognition),( 前身是 PCC ...
- 如何在新的Excel工作簿中更改默认的工作表数
By default, new workbooks created in Excel contain one worksheet. If you typically use more than one ...
- 计算机管理员账户不能创建新的用户名,win10为什么无法更改账户名称解决方法 win10系统管理员用户名更改...
win10为什么无法更改账户名称解决方法 win10系统管理员用户名更改 我们在使用电脑的时候,总是会遇到很多的电脑难题.当我们在遇到了Win10系统如何更改用户登录名的时候,那么我们应该怎么办呢?今 ...
- 每次创建新项目都要去设置更改maven仓库位置? 如何解决
随便打开一个项目,close project 退回到欢迎页面 打开全局配置 更改maven仓库位置
- ANTLR和Jetbrains MPS:解析文件并以树符号显示AST
Itemis再次这样做:他们刚刚为Jetbrains MPS发布了一个非常酷的新插件. 这允许定义新的树编辑器. 他们看起来像这样: 在这篇文章中,我们将看到: 如何在MPS中使用ANTLR解析器 如 ...
最新文章
- Blender三维插图设计视频教程 3D Characters and Illustrations in Blender 2.9
- 物联网基石,五大领域对智能传感器的需求暴涨
- 服务器系统选择什么,服务器选择什么系统
- c++读二进制文件结束的时候总会异常_python专题文件操作
- 50个常用元器件图片_盘点2020年wordpress常用的50个插件合集
- bose耳机信号断续_最强真无线降噪耳机?BOSE QC Earbuds消噪耳塞上手评测
- python中的文件操作
- php mvc 参数传递数组,PHP MVC在帖子上添加到数组
- php 5.4 5.2区别,PHP5.5.2和php5.4.18发布
- php依据地理坐标获取国家、省份、城市,及周边数据类
- Java中foreach 的用法以及注意事项
- 利用 Global Mapper 软件下载 Google 影像(中英文对照)
- python3 scrapy中文文档_Python3爬虫入门:Scrapy 框架
- iOS微信分享提示“未验证应用”的解决,配置 Universal Link
- try的动词用法_try的用法_tries与try的用法,请分别举例说明。谢!
- python飞机大战加背景音乐_Python飞机大战实例有感——pygame如何实现“切歌”以及多曲重奏?...
- CNCC——多模态会议
- 迭代器 iter()
- numpy 学习汇总18 - 数学运算 (集合,复数)( 基础学习 tcy)
- git把master的代码覆盖dev
热门文章
- LOJ:蚂蚁之旅(欧拉回路)
- P7962-[NOIP2021]方差【dp,差分】
- P7323-[WC2021]括号路径【并查集,启发式合并】
- 2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分)
- Mail.Ru Cup 2018 Round 2
- 2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲
- Hadoop生态Zookeeper安装
- 汇编语言(五)之数组中正数和负数分离
- MySQL isnull()函数基本指南
- Java中CAS详解