antlrworks相关内容

AntlrWorks&;and;语言语法错误

处理一个游戏项目,该项目涉及一种脚本语言,我希望将其解释为可以直接执行的虚拟机代码。我已经将语法包括在下面。所有的词法分析器规则都正确地显示在语法图中,但是当我点击任何解析器规则的主体时,对于给定的解析器规则X,我得到“无法显示规则X”,因为没有找到起始状态。 我真的不确定为什么ANTLR会抱怨没有开始状态。语法应该明确地从代码行开始,它不会被任何其他解析器规则引用。此外,右上角的框为绿色, ..
发布时间:2022-08-12 16:40:31 其他开发

关于在 Flash Builder 4.5.1 中使用 ANTLR v3 生成的文件的提示

根据这些说明,我正在尝试使用 ANTLR 生成的 *.as 文件在当前 Flash Builder 4.5.1 项目中. 因此,我将这个 ANTLR 的 Actionscript 运行时添加到我的项目中 - 没有问题. 我使用 ANTLRWorks 编译词法分析器/解析器规范也没有问题. 我在源 *.g 文件中添加了语言选项,以使 ANTLR 生成 Actionscript 源: ..
发布时间:2021-11-12 00:03:08 其他开发

ANTLRWorks 2.1:在 Eclipse 中生成 Lexer+Parser 导致 UUID 异常

我是 ANTLR 和 ANTLRWorks 的新手,所以我很困惑:我正在使用 ANTLRWorks 2.1 来创建语法并随后创建词法分析器和解析器(Java 目标).然后,我创建了一个小型 Eclipse 项目,并从 ANTLRWorks 导入了 ANTLR4 jar 以手动调用词法分析器和解析器,如 ANTLR 书籍示例中所述.运行应用程序时出现以下异常: Caused by: java.la ..
发布时间:2021-11-11 04:10:03 其他开发

如何删除以下语法中的左递归?

不幸的是,当规则传递参数时,ANTLR 不可能支持直接左递归.唯一可行的选择是删除左递归.有没有办法去掉下面语法中的左递归? a[int x]: b a[$x] c|[$x - 1](c a[$x - 1]|乙丙); 问题在于涉及左递归的第二种选择.任何形式的帮助将不胜感激. 解决方案 没有参数和更简单的格式,它看起来像这样: a: b c|a (c a | b c); 当 a 的 ..
发布时间:2021-11-11 04:09:37 其他开发

ANTLR4:隐式或显式令牌定义

在 ANTLR4 中使用显式令牌定义的优点和缺点是什么?我发现单括号中的文本比创建单独的标记并使用它代替文本更具描述性和更易于使用. 例如: grammar SimpleTest;顶部:图书馆 |模块 ;图书馆:'图书馆' library_name ';';图书馆名称:标识符;模块:模块 module_name ';';模块名称:标识符;模块:'模块';标识符:[a-zA-Z0-9]+; ..
发布时间:2021-11-11 04:02:31 其他开发

ANTLR 和 Eclipse(或任何不错的 IDE)

我已经使用 ANTLRv3IDE 插件在 Eclipse 中使用 ANTLR 有一段时间了.虽然它并不完美,也有点过时,但它的工作做得相当不错. 现在我想为我正在创建的另一个 DSL 切换到 ANTLRv4.但是,Eclipse 支持似乎非常薄弱.我决定试用 ANTLRWorks,它是一个 NetBeans 插件,但我无法安装它(它似乎被锁定到特定的过时版本(201302132200,而我有 ..
发布时间:2021-11-11 04:01:56 Java开发

是“解析器规则中的隐式令牌定义"吗?有什么好担心的?

我正在用 ANTLR 和 ANTLRWorks 2 创建我的第一个语法.我基本上已经完成了语法本身(它识别用所描述的语言编写的代码并构建正确的解析树),但除此之外我还没有开始任何事情. 让我担心的是,解析器规则中每个第一次出现的标记都带有黄色波浪线下划线,上面写着“解析器规则中的隐式标记定义". 例如,在此规则中,'var' 具有波浪线: variableDeclaration: ' ..
发布时间:2021-11-11 04:01:25 其他开发

如何删除以下语法中的左递归?

不幸的是,当规则传递参数时,ANTLR 不可能支持直接左递归.唯一可行的选择是删除左递归.有没有办法去掉下面语法中的左递归? a[int x]: b a[$x] c|[$x - 1](c a[$x - 1]|乙丙); 问题在于涉及左递归的第二种选择.任何形式的帮助将不胜感激. 解决方案 没有参数和更简单的格式,它看起来像这样: a: b c|a (c a | b c); 当 a 的 ..
发布时间:2021-11-11 03:53:22 其他开发

Antlr AST 生成(可能)疯狂

以下甚至可能吗?我想“反转"给 antlr 的输入并使每个标记成为前一个标记的子标记. 因此,对于输入(假设每个标记由 '.' 字符分隔): Stack.Overflow.Horse 我希望我的语法生成以下 AST: 马|---溢出|---堆栈 到目前为止,我已经设法反转节点,但我无法让它们成为彼此的子节点: 函数: ID PERIOD 功能->功能标识|ID;ID : 'a'.. ..
发布时间:2021-11-11 03:53:10 其他开发

ANTLR/语法问题:计算器语言

我正在尝试为个人项目创建布尔表达式语言/语法.用户将能够用类似 Java 的语法编写一个字符串,并提供变量,这些变量将在稍后初始化变量时进行评估.雨例如,用户可能会输入字符串 @FOO+7 >4*(5+@BAR); 之后,当变量 FOO 被初始化并等于 6,而 BAR 等于 1 时,表达式的计算结果为 13>24,因此返回 false. 我正在使用 ANTLRworks 生成语法,虽然看 ..
发布时间:2021-11-11 03:51:54 Java开发

Antlrworks - 无关输入

我是这方面的新手,因此我需要你的帮助..我正在尝试解析 Wikipedia Dump,我的第一步是将它们定义的每个规则映射到 ANTLR 中,不幸的是我遇到了第一个障碍: 第 1 行:8 无关输入 ''''' 期望 '\'\'' 我不明白发生了什么,请帮帮我. 我的代码: 语法测试;选项 {语言 = Java;}解析: 术语+ EOF;学期:身份|'[[' 学期 ']]'|'\ ..
发布时间:2021-11-11 03:50:38 其他开发

使用 AntLR 的 C 示例

我想知道在哪里可以找到使用 AntLR 的 C 教程/示例.我发现的只是使用 Java 语言. 我正在寻找一个使用 AntLR 生成的解析器和词法分析器的主函数. 解决方案 contrapunctus.net/blog/2012/antlr-c 一个简单的谷歌就足够了.但是请注意,示例是 C++ 我认为 ANTLR 不支持 PURE C – Aniket Jan 1 at 1:56 ..
发布时间:2021-11-11 03:50:32 其他开发

ANTLRWorks 1.4.3 无法正确读取扩展 ASCII 字符

我正在开发一个相当标准的编译器项目,我选择了 ANTLR 作为解析器生成器.在将现有语法从 v2 更新到 v3 时,我注意到 ANTLRWorks(ANTLR 的官方 IDE)没有正确显示文件中的任何扩展 ASCII 字符.即使在使用 Notepad++ 将文件从 ASCII 转换为 UTF8 之后,它仍然将这些字符显示为正方形.在 Notepad++ 中,它们显示良好. 由于这个故障意味着 ..
发布时间:2021-11-11 03:48:46 其他开发

删除 ANTLR 生成的 java 类中的(绝对)路径:

我正在使用 ANTLRWorks 1.4.3 和 ANTLR 3.4 从语法文件生成基于 Java 的解析器和词法分析器.生成的 .java 文件包含像 这样的字符串 C:\\Users\\[eclipse 项目的路径]\\src\\some\\package\\name\\MyGrammar.g 这个绝对路径用作 返回字符串例如在词法分析器和解析器的方法 getGrammarFile ..
发布时间:2021-11-11 03:48:34 Java开发

使用 ANTLR3 解析换行符、EOF 作为语句结束标记

我的问题是关于在 ANTLRWorks 中运行以下语法: INT :('0'..'9')+;分号:';';换行:('\r\n'|'\n'|'\r');STMTEND: (分号 (NEWLINE)*|NEWLINE+);陈述: STMTEND|国际标准时间;程序:语句+; 我使用以下输入得到以下结果(以 program 作为开始规则),无论是哪个换行符 NL (CR/LF/CRLF) 或整数 I ..
发布时间:2021-11-11 03:47:43 其他开发

ANTLR java测试文件无法创建树语法对象

我正在使用针对 java 的 ANTLR 3.x 创建解析器.我已经编写了解析器语法(用于创建抽象语法树,AST)和树语法(用于在 AST 上执行操作).最后,为了测试这两个语法文件,我用 Java 编写了一个测试文件. 看看下面的代码, 协议语法 语法协议;选项 {语言 = Java;输出 = AST;}令牌{//虚拟令牌保护;初始值;程序;过渡;}@header {导入两个进程. ..
发布时间:2021-11-11 03:46:25 Java开发

关于在 Flash Builder 4.5.1 中使用 ANTLR v3 生成的文件的提示

根据这些说明,我正在尝试使用 ANTLR 生成的 *.as 文件在当前 Flash Builder 4.5.1 项目中. 因此,我将这个 ANTLR 的 Actionscript 运行时添加到我的项目中 - 没有问题. 我使用 ANTLRWorks 编译词法分析器/解析器规范也没有问题. 我在源 *.g 文件中添加了语言选项,以使 ANTLR 生成 Actionscript 源: ..
发布时间:2021-11-11 03:45:34 其他开发

即使不匹配,ANTLR 词法分析器规则也会消耗字符?

我有一个 antlr 词法分析器规则的奇怪副作用,我创建了一个(几乎)最小的工作示例来演示它.在这个例子中,我想匹配字符串 [0..1] 例如.但是当我调试语法时,到达解析器的令牌流只包含 [..1].第一个整数,无论​​它包含多少位数字,总是被消耗掉,我不知道它是如何发生的.如果我删除 FLOAT 规则,一切都很好,所以我猜错误就在该规则的某个地方.但是因为它根本不应该匹配 [0..1] 中的任 ..
发布时间:2021-11-11 03:43:46 其他开发

^ 和 !在 ANTLR 语法中代表

我很难弄清楚 ^ 和 !代表 ANTLR 语法术语. 解决方案 查看 ANTLR 备忘单: ! 不包含在 AST 中 ^ 制作AST根节点 而且^也可以用于重写规则:... ->^( ... ).例如,以下两个解析器规则是等价的: 表达式: '+'^ ';'!; 和: 表达式: A '+' A ';'->^('+' A A); 两者都创建了以下 AST: +/\一 ..
发布时间:2021-11-11 03:43:28 其他开发