ANTLR2 与 ANTLR3

2024-01-11

您使用过其中一个或两者吗?您更喜欢哪一个,出于什么原因?

例如,我最近学习了 v2,并且由于 netbeans 团队提供的高性能实现(是的,我被 java 困住了),我可能会坚持使用它。在这种情况下,是否有任何令人信服的理由进行转换?


要了解 v2 和 v3 之间的更改,请查看此链接:http://www.antlr.org/wiki/pages/viewpage.action?pageId=719 http://www.antlr.org/wiki/pages/viewpage.action?pageId=719

我应该指出,我们仍然在我工作的地方使用 2.7.6 和 C++,而且我们现在并不真正觉得有必要升级。

当我们对我们的语言进行 C# 移植时,我们确实使用了 v3.0,因为我们发现了一些在 3.0 中修复的错误,并且没有向后移植到 2.7.6

总结一下这些变化:

  • 自动 LL(*),无需指定前瞻
  • 自动回溯,
  • 允许大多数非左递归语法规则
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ANTLR2 与 ANTLR3 的相关文章

  • 删除 ANTLR 中的左递归

    正如中所解释的删除左递归 https stackoverflow com questions 2652060 removing left recursion 有两种方法可以去除左递归 使用某些程序修改原始语法以删除左递归 本来写语法就没有左
  • ANTLR:有一个简单的例子吗?

    我想开始使用 ANTLR 但是在花了几个小时查看了示例之后antlr org http www antlr org 网站上 我仍然无法清楚地了解Java的语法过程 有没有一些简单的例子 比如用 ANTLR 实现的四操作计算器 遍历解析器定义
  • ANTLR 4 和 AST 访客

    我正在尝试将 AST 与 ANTLR4 一起使用 并使用以下文件 生成器 java import org antlr v4 runtime ANTLRInputStream import org antlr v4 runtime CharS
  • ANTLR4 左递归错误

    我的 ANTLR4 语法在文件中power g4这是 assign id expr id A B C expr expr term expr term term term term factor term factor factor fac
  • Antlr 数组帮助

    嘿 我开始在 java 中使用 Antlr 我想知道如何将一些值直接存储到二维数组中并返回该数组 我根本找不到任何关于此的教程 感谢所有帮助 假设您想要解析一个包含由空格分隔的数字的平面文本文件 您想将其解析为二维数组int其中每一行都是数
  • ANTLR 解析器生成器最适合内存有限的 C++ 应用程序吗?

    我正在寻找一个好的解析器生成器 我可以用它来读取我们的大型商业应用程序中的自定义文本文件格式 目前 这种特定的文件格式是使用手工递归解析器读取的 但该格式已经发展和复杂化到该方法变得难以管理的程度 看来最终的解决方案是为这种格式构建正确的语
  • 不同状态下不同的词法分析器规则

    我一直在为 HTML 中嵌入的某些模板语言 FreeMarker 开发解析器 例如 abc h1 Welcome user lt if user Big Joe gt our beloved leader h1 p Our latest p
  • 在侦听器中使用 ParserRuleContext 遍历令牌 - ANTLR4

    在使用侦听器迭代令牌时 我想知道如何使用 ParserRuleContext 来查看令牌流中的下一个令牌或接下来的几个令牌 在下面的代码中 我试图查看当前标记之后直到 EOF 的所有标记 Override public void enter
  • 从 Antlr 语法生成语法正确的句子

    我有一个Xtext Antlr语法 https bitbucket org adamschmideg coffeescript eclipse 解析的子集咖啡脚本 http jashkenas github com coffee scrip
  • ANTLR:从不同的语法调用规则

    是否可以从不同的语法调用规则 目的是在同一个文件中包含两种语言 第二种语言以 begin 开头 其中 是第二种语言 该语法应该调用另一个语法来解析该第二种语言 例如 grammar A start rule begin B program
  • 如何使用ANTLR生成的语法文件?

    我认为这是一个愚蠢的问题 但我刚刚开始使用 ANTLR 我将他们教程中的 SimpleCalc 语法放在一起 并以 C 作为目标语言生成它 我得到了 SimpleCalcParser c h 和 SimpleCalcLexer c h 作为
  • 如何使用Antlr实现函数调用,以便在定义之前就可以调用它?

    一旦构建了 AST 实现树遍历器以便可以按任意顺序定义和调用函数的最佳方法是什么 例如 这在 PHP 中是有效的 我猜想一定有第二遍 或者树转换 但我在这个主题上找不到任何有趣的东西 这个问题可能不是 Antlr 特有的问题 但如果你能给我
  • 有谁知道在 ANTLRWorks 中调试树语法的方法

    ANTLR 使用的推荐模式是让解析器构造一个抽象语法树 然后构建树遍历器 又称树语法 来处理它们 我试图弄清楚为什么我的树语法不起作用 并且希望使用 ANTLRWorks 的调试器 就像我将其用于解析器本身一样 解析器的输入是 源代码 但树
  • 在 ANTLR 3 中,如何在运行时而不是提前生成词法分析器(和解析器)?

    我想在运行时生成 antlr 词法分析器 也就是说 生成语法并从语法生成词法分析器类及其在运行时的支持位 我很高兴将它输入到 java 编译器中 它可以在运行时访问 这是一种快速但肮脏的方法 生成一个combined ANTLR 语法 g给
  • ANTLR @header、@parser、superClass 选项和基本文件 io (Java)

    我想将解析器操作与基本文件 io Java 一起使用 例如 G ANTLR 语法中的 PrintWriter 我必须使用 superClass 选项还是可以使用 header 在这两种情况下 我如何声明 PrintWriter 对象以及如何
  • ANTLRWorks 1.4.3 无法正确读取扩展 ASCII 字符

    我正在开发一个相当标准的编译器项目 我选择 ANTLR 作为解析器生成器 在将现有语法从 v2 更新到 v3 时 我注意到 ANTLRWorks ANTLR 的官方 IDE 无法正确显示文件中的任何扩展 ASCII 字符 即使使用 Note
  • Antlr4中有哪些加速解析的方法?

    我对Antlr4的性能有些怀疑 我目前正在使用 Python 和 Antlr4 与 Java 相比 它非常慢 使用 Antlr4 IntelliJ 插件验证 由于我需要使用更大的代码进行解析 因此我计划切换到 Antlr 最快的语言 例如
  • ANTLR4 相当于什么!在词法分析器规则中?

    我正在努力将旧的 ANTLR 2 语法转换为 ANTLR 4 但我在字符串规则方面遇到了问题 STRING r n 这创建了一个STRING其文本包含字符串内容的标记 但是不含开始和结束引号 因为 引号文字后面的符号 ANTLR 4 扼流圈
  • 使用 ANTLR3 解析换行符、EOF 作为语句结束标记

    我的问题是关于在 ANTLRWorks 中运行以下语法 INT 0 9 SEMICOLON NEWLINE r n n r STMTEND SEMICOLON NEWLINE NEWLINE statement STMTEND INT ST
  • 是否有一个实用程序可以在给定 ANTLR 语法的情况下生成匹配的字符串?

    我有一个 ANTLR 语法 我想模 糊我的解析器 您是否正在寻找 CFG 语法的生成 IE 语法接受的字符串的生成 这可能是检查语法正确性的好主意 但请记住 可接受的字符串集很可能是无限的 任何真正严重的错误应该已经在语法规范中显而易见 并

随机推荐

  • 在解释器中实现 Brainfuck 循环

    我想用我新创建的编程语言构建一个 Brainfuck 该死的名字 解释器 以证明它的图灵完备性 现在 到目前为止一切都清楚了 lt gt 除了一件事 循环 我假设您从这里开始就知道 极其困难的 BF 语法 如何在解释器中实现 BF 循环 伪
  • 如何在 iOS 中为自定义属性设置动画

    我有一个自定义 UIView 它使用 Core Graphics 调用来绘制其内容 一切正常 但现在我想要动画影响显示的值的变化 我有一个自定义属性可以在我的自定义 UView 中实现此目的 var anime CGFloat 0 var
  • Symfony - 如何知道控制台命令是从控制器运行还是从终端运行?

    我正在构建使用控制台命令的 Symfony 应用程序 可以通过事件从控制器执行相同的控制台命令 但也可以从终端运行 如何从命令的运行位置找出它 以便在从终端运行命令时可以实现用户身份验证 如果命令是从控制器运行的 则用户已经具有运行权限 但
  • 需要通过临时表中的 ID 更新存储过程中的行

    我试图在表中获取描述中断的行 并通过计算的时间范围将它们分成单独的行 然后插入到另一个表中 以描述每个给定范围内的每小时时间段 下面的代码为我们提供了以下输出 我们从这一行 原始数据 开始 OutageDate StartTime EndT
  • 为什么我的摩卡/柴错误抛出测试失败?

    我有一个简单的 javascript 包我正在尝试测试 我想检查是否抛出错误 但是当运行我的测试并抛出错误时 测试被标记为失败 这是代码 var should require chai should expect require chai
  • swift - 通过重写 init 从故事板初始化视图控制器

    我在故事板中定义了一个 ViewController 实例 我可以通过以下方式初始化它 var myViewController UIStoryboard name Main bundle nil instantiateViewContro
  • 用 C++ 读取很长的控制台输入

    我正在尝试使用 std cin 从控制台读取数字列表 以空格分隔 当输入行长度超过 1023 个字符时 以下小型工作示例中的第一个 cin gt gt list i 永远不会返回 using namespace std int main v
  • 如何在 Yii $criteria 中使用 DATE_ADD?

    模型 php Declare datetime limit public datetime limit 控制器 php datetime limit should be the actual datetime 5 days criteria
  • 公开 C++ 函数,使用 Boost.Python 返回指针

    我想使用 Boost Python 将以下 C 函数公开给 Python int test1 return new int 42 Now exposing the function with Boost Python BOOST PYTHO
  • 如何自动检查 powershell 脚本文件的语法?

    我想为一些生成 powershell 脚本的代码编写单元测试 然后检查该脚本是否具有有效的语法 在不实际执行脚本的情况下执行此操作的好方法是什么 NET 代码解决方案是理想的 但我可以通过启动外部进程来使用的命令行解决方案就足够了 我偶然发
  • Flutter SocketException(SocketException:操作系统错误:连接被拒绝,errno = 111,地址 = localhost,端口 = 51500)

    我正在使用 Strapi io 开源 Node js Headless CMS 这是我的注册页面代码 void registerUser 异步 http Response response await http post http loca
  • 如果针对 Android 3.0 及更高版本,使用 SpongyCastle 比 BouncyCastle 是否有优势?

    如果我理解正确的话 SpongyCastle 是 BouncyCastle 的重命名 它的创建是为了让人们能够在 Android 上包含新版本的 BouncyCastle 因为仅仅包含最新的 BouncyCastle jar 就会导致与旧的
  • 运行时未定义枚举类型

    我遇到一个问题 Typescript 编译器成功编译了我的代码 但运行时却给出了未定义的类型错误 在我的应用程序中我创建了一个types ts文件 其中一些内容在多个其他 ts 文件之间共享 它包含一个字符串枚举 例如 enum MyEnu
  • 强制另存为 XLSM,同时维护文件结构

    因此 我正在使用 XLTM 文件 并且我希望用户确保它们保存为 XLSM 当他们单击 保存 时 效果很好 但我发现当他们单击 另存为 时 文件被保存为 xlsm xlsm 我对如何确保用户保存为 XLSM 同时将文件名保留为 filenam
  • 作为 JavaScript 开发人员如何学习 Haxe

    我使用 JS 已经三年了 我想使用 OpenFL 制作移动应用程序 不过 我不知道Haxe 而且我也不知道其他编程语言 不过 学习类 继承等我还是很舒服的 另外 据我所知 OpenFL 在性能方面优于 Adob e AIR 并且您需要了解
  • AngularJS UI Router 在工厂/服务中使用解析的依赖关系

    我有一个 UI Router 定义如下 为简单起见进行了修剪 stateProvider state someState resolve model modelService info function modelService info
  • Python:Pandas Dataframe 如何将 timedelta 列转换为 float 列

    我的数据框中有一列数据类型为 timedelta64 ns 我正在尝试将其转换为浮点数 这是一个示例表 ColA 227 days 00 00 00 000000000 316 days 00 00 00 000000000 226 day
  • 如何将 CSS 滤镜应用到背景图像

    我有一个 JPEG 文件 用作搜索页面的背景图像 并且我使用 CSS 来设置它 因为我正在使用骨干网 js https en wikipedia org wiki Backbone js上下文 background image url wh
  • 如何更改 Hibernate 日志记录级别?

    如何以编程方式更改 Hibernate 日志记录级别 休眠使用SLF4j http slf4j org 因为它是日志 API 查看此 API 我找不到任何以编程方式调整日志记录级别的方法 所以我认为你必须直接使用底层运行时日志系统 这取决于
  • ANTLR2 与 ANTLR3

    您使用过其中一个或两者吗 您更喜欢哪一个 出于什么原因 例如 我最近学习了 v2 并且由于 netbeans 团队提供的高性能实现 是的 我被 java 困住了 我可能会坚持使用它 在这种情况下 是否有任何令人信服的理由进行转换 要了解 v