ANTLR中自动生成的DFA字符串,例如eotS、eofS、acceptS是什么意思以及它们是如何生成的
当我从语法文件中使用 antlr 生成词法分析器时,我注意到它生成了一系列十六进制格式的字符串。 DFA 使用这些字符串来预测下一个标记是什么。 这些字…
是否有适用于 Haskell 或 Scala 等函数式语言的 LL 解析器生成器?
我注意到明显缺乏用函数式语言创建解析器的 LL 解析器。我一直在寻找但没有成功的理想发现是为 ANTLR 风格的 LL(*) 语法生成 Haskell 解析器(语法的…
ANTLR BNF 语法符号中 epsilon 的等价物是什么?
在利用 ANTLR 3.3 期间,我正在更改当前语法以支持不带括号的输入。这是我的语法的第一个版本: grammar PropLogic; NOT : '!' ; OR : '+' ; AND : '.…
在 Antlr3 Lexer 中识别 EOF 文件字符
我正在尝试使用 ANTLR 3 解析一些字符串...它们将用单引号引起来。因此,如果用户没有传递偶数个引号,它会一直运行到文件末尾,因为它假设它是一个巨…
ANTLR3 C 目标 - 解析器返回“未命中”出根元素
我正在尝试使用 ANTLR3 C Target 来理解 AST,但遇到了一些困难。 我有一个简单的类似 SQL 的语法文件: grammar sql; options { language = C; outpu…
Antlr 问题:无法从 ANTLRWorks 获取 Antlr 工具来编译简单文件
这是语法文件: grammar fred; test : 'fred'; 这是启动该工具的批处理文件: SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_24 SET PATH=%PATH%;%JA…
为什么我的语法适用于 *、-、/ 等运算符,但不适用于 +?
我现在正在创建一个语法,我必须摆脱左递归,它似乎适用于除加法运算符之外的所有内容。 这是我的语法的相关部分: SUBTRACT: '-'; PLUS: '+'; DIVIDE…
C# 中匹配规则的 antlr 文本
在 Antlr 3 语法中,是否可以打印出与针对 c# 的语法中的规则匹配的全文?像下面这样: rule : FIRST SECOND { Console.WriteLine($rule.text); };//d…
Xtext:解析时构建类型映射
在 Xtext 中,如何从我的类型声明中构建类型映射(即 Java 映射)模型文件?假设我的模型文件如下所示: type String { ...some definitions... } typ…
ANTLR3:参数和语义谓词(“找不到符号”、“类型非法开始”)
我想在ANTLR3中实现一个“分支”。 我认为使用 branch[boolean is_a] : ({ $is_a}? => a) | ({!$is_a}? => b); 可以解决问题,但我收到编译错误“找不…