antlr相关内容

使用 ANTLR4 解析公式

我正在尝试使用 ANTLR4 将数学公式解析为 LaTeX 的子集.例如,它应该将 (a+4)/(b*10) 解析为 \frac{a+4}{b\cdot 10}. 我的简单语法创建了一棵树,如下所示: 现在我正在尝试实现解析树侦听器,以在遍历树时以某种方式构造 LaTeX 字符串.在这里,我失败了,因为要构造一个像 \frac{}{} 这样的字符串,它必须以递归方式构建.然而,解析树遍 ..
发布时间:2021-11-11 04:02:05 Java开发

Antlr 外部输入

我有一个语法文件 BoardFile.g4,其中包含(仅相关部分): 语法板;//令牌小工具:'squareBumper' |'circleBumper' |'三角保险杠' |'leftFlipper' |'rightFlipper' |'吸收器' |'门户网站' ;姓名 : [A-Za-z_][A-Za-z_0-9]* ;INT : [0-9]+ ;浮点数:'-'?[0-9]+('.'[0-9 ..
发布时间:2021-11-11 04:01:59 Java开发

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 其他开发

如何为 Intellij IDEA 配置 antlr4 插件

我到处寻找如何为 IntelliJ IDEA 配置 antlr4 插件.但我找不到任何东西.我只能安装插件.如果我为空项目手动添加 .g4 文件,我会在右键菜单中看到“生成 ANTLR 识别器"选项.就这些.我认为这是非常有前途的插件.谁能告诉/指导我如何继续使用插件? 谢谢 解决方案 我在 IntelliJ 14 上安装了 ANTLR 插件并且能够让它工作.一些小事情让事情变得比预 ..
发布时间:2021-11-11 04:01:19 其他开发

context.getText() 排除 ANTLR4 中的空格

getText() 返回完整的语句,不包括单词之间的空格.考虑空格的一种方法是将它们包含在语法中.但是,有没有其他方法可以获得包含空格的完整字符串. 解决方案 是的,有(假设你在这里使用的是 ParserRuleContext.getText().这个想法是要求输入字符流一系列字符.位置值存储在上下文的开始和停止标记中. 这是一些代码(从 C++ 转换而来,因此可能不是 100% 正 ..
发布时间:2021-11-11 04:01:13 Java开发

强制 ANTLR 在特定文件夹中生成输出文件

我不喜欢将 ANTLR 生成的文件与我的 .g4 语法和其他受版本控制的文档放在同一位置.我想将所有生成的文件放在一个单独的嵌套文件夹中,该文件夹可以通过 .gitignore 排除.到目前为止,我尝试的是在主文件夹内创建一个文件夹 并从该文件夹内运行: cd antlr ../ 但是,它仍然会溢出父文件夹中所有生成的文件. P.S.没关系,但我的环境是 macOS. 解决方案 ..
发布时间:2021-11-11 04:01:10 其他开发

元素可以包含由 ANTLR 生成的解析器解析的属性吗?如果是这样,如何?

我正在关注 本教程 并成功复制了它的行为,除了我是使用 Antlr 4.7 而不是教程使用的 4.5. 我正在尝试为费用跟踪器构建 DSL. 想知道是否每个元素都可以有属性? 例如这是现在的样子 这是 todo.g4 的代码,见 https://github.com/simkimsia/learn-antlr-web-js/blob/master/todo.g4 语法待办 ..
发布时间:2021-11-11 04:01:05 其他开发

如何让 ANTLR 消耗所有可见元素?

这是我的语法: 语法测试;文字:foo EOF;富:'X'|富'!|富'?|富尾巴;尾巴: (' ' foo)+; 我正在解析这段文字: X?X!X X 这是我得到的树: 语法中应该有什么变化,以便我只得到一个 tail 元素,其中包含所有 foo 元素的集合? 在现实世界中,任务要复杂得多,仅使用扫描仪无法解决问题. 解决方案 据我所知,你想要的是: item: ' ..
发布时间:2021-11-11 04:00:49 Java开发

如何以非递归方式编写 Antlr 规则?

我有以下需要解析的表达式 and(true, false)或(真,假,真)不(或(真,假,真))和(和(真,假),假)或(或(真,假,真),真) 到目前为止我有以下语法 expr: 或表达式;或Expr: OR '(' andExpr (',' andExpr)+ ')'|和Expr;和Expr: AND '('equalityExpr(','equalityExpr)+')'|等式表达式; ..
发布时间:2021-11-11 04:00:46 其他开发

具有不同解释的令牌(即关键字和标识符)

我正在 ANTLR4 中编写包含许多不区分大小写关键字的语法.我收集了一些格式的示例文件,我尝试测试解析,有些使用相同的标记,这些标记作为关键字存在于其他地方作为标识符.例如,有一个 CORE 关键字,它在其他地方用作来自用户输入的结构的 ID.这是我语法的一些部分: 片段 A : [aA];//匹配“a"或“A"片段 B : [bB];片段 C : [cC];[...]核心:核心;[...]I ..
发布时间:2021-11-11 04:00:44 其他开发

如何强制 ANTLR 解析所有输入 CharStream

我正在使用 ANTLR4 来解析语法文件.当我使用 BaseErrorListener 检测错误时,我遇到了问题.当遇到非法输入字符串时,ANTLR 会自动匹配相应的分支,然后忽略后续的字符流,即使它包含错误.我想检测那个错误.这是我的 g4 文件和 java 文件. TransitionLexer 是我的词法分析器文件,TransitionCondition 是我的解析器文件.ErrorDia ..
发布时间:2021-11-11 04:00:23 Java开发

在 Scala 插件中控制错误的 IntelliJ 代码编辑器错误

我有从 ANTLR4 生成的 Java 代码.Scala 通过扩展一些方法来使用 Java 代码.问题是IntelliJ的scala插件好像不知道Java基类和Scala子类的关系,显示误报错误信息;当 Scala 覆盖 Java 方法时,它会报告“方法......覆盖任何内容". 如何控制 IntelliJ 中的错误级别以抑制此错误消息? 解决方案 Scala 插件产生的大部分误报 ..
发布时间:2021-11-11 04:00:12 Java开发

Python 2.7 &ANTLR4:使 ANTLR 对无效输入抛出异常

我想捕捉诸如 之类的错误 第 1:1 行无关输入 '\r\n' 期望 {':', '/',}第 1:1 行不匹配的输入 'Vaasje' 期待 'Tafel' 我尝试将我的函数包装在 try-catch 中,但正如预期的那样,这些错误只是打印语句而不是异常.我在 .g4 文件中看到了一些打开错误的例子,但所有的例子都是针对 Java 的,我似乎无法让它工作. Python 中的 ANT ..
发布时间:2021-11-11 04:00:09 Python

ANTLR - 不匹配的输入错误

我有一个语法,看起来像这样,由特定语言的注释和控制语句组成: 语法: 语法DD;ddlist: (ddstmt| jclcomment)+;ddstmt: dd1 |dd2 |dd3 |dd4 ;dd1: JCLBEGIN ddname DDWORD 'DUMMY';dd2: JCLBEGIN ddname DDWORD '动态';dd3: JCLBEGIN ddname DDWORD N ..
发布时间:2021-11-11 03:59:57 Java开发