问题标签 [antlrworks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parsing - 为什么会发生这个错误?- “以下替代方案永远无法匹配”
我对制作编译器、解析器和解析器生成器很感兴趣,但我对它们了解不多。
在阅读了这个问题的答案后,我尝试制作一个“非常”简单的 LaTeX 解析器。
这是代码:
(PUNC 中只有两个字符,用于测试目的)
这是错误消息:
我发现这个错误的发生是因为存在歧义,代码可以用两种以上的方式解释,但我不知道这种歧义是如何产生的。
这是图表,有两种方式可以解释(也许)。
...但是如何\
并且}
可以混淆?
antlr - 非空闭包和问号:只有第一个元素被放入 AST?
我被一个奇怪的现象困扰着:
只有第一个 in x
, z: x | '<'! y? '>'
where y: x (','! x)*
, 出现在结果 AST 中。但前提是我使用部署在 maven 存储库中的 Antlr3 编译代码。使用 AntlrWorks,我看到了正确的树。
b: a a*; c: d b? d;
语义错了吗?我究竟做错了什么?或者仅仅是 Antlr 中的一个错误?
如果您需要更完整的示例(我的问题出现在 try_ 的 $v2 中):
(完整的源代码和示例输入文件:https : //gist.github.com/1004329。只有 in catch 的 T 出现在树中,但我在 AntlrWorks 中同时看到了 T 和 R。)
parsing - 迭代/处理在 ANTLR 中解析的令牌列表
我有规矩
cns=IDENT
如果被 'cns+=IDENT' 替换,这将正常工作。cns
在那种情况下,我该如何访问 $cns.text
.
java - 永远无法达到以下替代方案:2
我正在尝试创建一个非常简单的语法来学习使用 ANTLR,但我收到以下消息:
“永远无法达到以下替代方案:2”
这是我的语法尝试:
我正在为 IDEA 使用 ANTLRWorks 插件:
python - ANTLR 解析 MismatchedTokenException
我正在尝试为我正在编写的更简单的语言编写一个简单的解析器。它由后缀表达式组成。截至目前,我遇到了解析器的问题。当我在输入上运行它时,2 2 * test >>
我得到一个 MismatchedTokenException。
另外,我将如何实现递归后缀解析器?
这是我的代码:
c# - 使用 C# 目标创建一次性模型树层次结构
简而言之,我想知道如何一次性从 ANTLR 语法中正确构建模型层次结构,以及使用当前 C# 代码生成的正确方法是什么。如文档中所述,访问返回变量目前似乎不起作用。
请参阅文档中的此示例
我的实现是用 C# 实现的,但C# 目标文档(大约 2008 年?)没有提到与语法中的标准操作模式有任何偏差。由于这个原因,我正在使用 ANTLRWorks 1.4(不是撰写本文时的最新 1.4.2)。我的实现,它基本上使用嵌套的 innerStats 填充 1 个深度树层次结构:
这将返回以下错误:
目前,解决这个问题的唯一方法是在我的 C# 模型中创建一个方法,然后Model.Aliases.Last().AddChild(IStatement)
从 innerStat 中调用,这会破坏封装。谢谢你的帮助。
编辑:更正的代码可以在这里找到:https ://github.com/keithharvey/Script-Parser/blob/master/Installer/Model/DAL/SourceExpr.g
apache-flex - 关于在 Flash Builder 4.5.1 中使用 ANTLR v3 生成文件的提示
根据这些说明,我正在尝试在当前的 Flash Builder 4.5.1 项目中使用 ANTLR 生成的 *.as 文件。
因此,我将这个ANTLR 的 Actionscript 运行时添加到我的项目中——没有问题。
我使用ANTLRWorks编译了词法分析器/解析器规范也没有问题。
我在源 *.g 文件中添加了语言选项,以使 ANTLR 生成 Actionscript 源:
不幸的是,ANTLR/ANTLRworks 生成的 Actionscript 代码有问题:
Catch 语句读起来像这样catch (RecognitionException re)
,但应该像这样读: catch ( re:RecognitionException )
.
此外,Flash Builder 抱怨这里使用了 Array:
任何人都可以确认这些问题并可能提供如何解决这些问题的提示吗?
更新-1
快速浏览一下 ANTLR v3.3 的源代码会发现这个模板代码 [line 142 @ ActionScript.stg]:
因此,当前的 3.3 分支似乎知道正确的语法。
不幸的是,当前的 ANTLRworks 1.4.2(包括 3.3 分支)失败了。
java - antlrworks中数据包导入问题
必须创建一个由我定义的包,其中包含一些类,我记得那个包在一个文件 .java 中,该文件由我在其中进行导入的 AntlrWorks 程序创建。名为“com.project.redfox”的包。我使用以下命令编译了代码:“javac Test.java provaParser.java provaLexer.java”,但我得到了该包不存在的错误。
在语法中添加了:
我在 NetBeans 开发的项目 redfox 中创建了包“com.project.redfox”,因此目录 com/project/redfox 位于 redfox 目录中。
我怎么解决这个问题?
antlr - ANTLRWorks:无法让操作员工作
我已经尝试学习 ANTLR 一段时间了,终于拿到了 The Definitive ANTLR reference。好吧,我在 ANTLRWorks 1.4 中尝试了以下内容
当我通过 2+4 并处理表达式时,我没有得到以 + 作为根节点和 2 和 4 作为子节点的树。相反,我将表达式作为根节点,将 2、+ 和 4 作为同一级别的子节点。
无法弄清楚我做错了什么。迫切需要帮助。
顺便说一句,我怎样才能得到这些图形描述?
nested - 语法/ANTLRWorks警告中的嵌套括号/字符'('和')':决策可以匹配输入,例如......使用多种替代方案
下面的语法 parses ( left part = right part # comment )
,# comment
是可选的。
两个问题:
- 有时警告(ANTLRWorks 1.4.2):
Decision 可以匹配输入,例如“{Int, Word}”,使用多种选择:1、2(引用
id2
)
但仅在某些时候! - 下一个扩展应该是注释 (
id2
) 可以包含字符 '(' 和 ')'。
语法: