【发布时间】:2010-03-29 18:49:32
【问题描述】:
我一直在使用 ANTLR 为带有 Java 目标的标记语言生成解析器 + 树语法,效果很好。现在我正试图让 JavaScript 中的目标在我的网络浏览器中使用它。
但是,我无法找到任何关于如何执行此操作的好的文档。我将 Eclipse 与 ANTLR IDE 一起使用,当我将语言指定为 JavaScript 时,出现以下错误。
这一行有多个标记
(10):内部错误:组 JavaScript 不满足接口 ANTLRCore:这些模板上的参数不匹配 [treeParser(grammar, name, scopes, tokens, tokenNames, globalAction, rules, numRules, bitsets, labelType, ASTLabelType , 超类, 成员, filterMode)]
(10):内部错误:java.util.NoSuchElementException:没有这样的属性:模板上下文中的 filterMode [treeParser]
如果有人能帮我解决这个问题,或者指出一些我可以阅读的关于使用 ANTLR 的 JavaScript 目标的材料,那就太好了。
谢谢
【问题讨论】:
-
我现在实际上能够在 JavaScript 中生成解析器,它可以很好地识别事物。但是当我尝试在 JavaScript 目标中生成 tree walker 时,它无法生成。而且我认为主要原因是上面列出的错误2。
-
我不确定您尝试使用的是哪个版本的 ANTLR 版本,但我在尝试使用的官方版本中看到了相同的错误。我刚刚从 perforce 服务器获得了 ANTLR tar 并用 maven 构建了它,而 javascript 的东西似乎对我有用——至少用我公认的微不足道的语法。
-
我知道错误是什么。 JavaScript 目标在 ANTLR 的最新版本中被破坏,这导致了这个问题。解决方案是要么构建源代码,要么使用早期版本。
标签: javascript antlr