问题标签 [antlr3]

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.

0 投票
1 回答
446 浏览

antlr - ANTLRv3:设置自定义 Lexer 和 Parser 类名称

有没有办法为 ANTLRv3 生成的 Parser 和 Lexer 类指定自定义类名(意味着独立于语法名)?

所以在这种情况下

它会自动创建 MDDParser 和 MDDLexer,但我希望将它们作为 MDDBaseParser 和 MDDLexer。

0 投票
0 回答
112 浏览

java - 如何进行映射或添加到 gmail 之类的日历?

gmail 将如何实现此功能?
支持这些功能的背后有哪些技术?它与自然语言处理有关吗?
任何指针或编程资源都会有用吗?
它可以是语言中立的或特定于任何语言的?它可以是 Java/Python。
你认为他们用 antlr 等做一些事情来实现上述目标吗?

0 投票
1 回答
599 浏览

inheritance - 如何更改 ANTLR-3 中的父类?

默认情况下,使用 ANTLR-3 生成的解析器扩展自 org.antlr.runtime.Parser。我如何让它扩展我的自定义类?

0 投票
3 回答
575 浏览

antlr - ANTLR 词法分析对“...”感到困惑并浮动

我认为 ANTLR 词法分析器将我对范围表达式的尝试"1...3"视为浮点数。当我使用以下标记定义时,表达式"x={1...3}"来自词法分析器:"x={.3}"

当我将 FLOAT 更改为仅检查整数时,如下所示:

然后表达式"x={1...3}"被正确标记。谁能帮我解决这个问题?

谢谢!

0 投票
1 回答
301 浏览

antlr - 此 antlr 示例无法正常工作

此 ANTLR 示例不解析输入“1;” . 你能解释一下为什么吗?它解析“11;”。

0 投票
1 回答
378 浏览

c# - 如何使用 c# 目标获取 Antlr 中解析器的当前字节位置?

使用 Antlr 3 解析某些内容时,我对流中的当前字节位置感兴趣。
我看到有一个类似的问题,但那里没有真正的答案。这就是我再次尝试的原因。
我对令牌索引、一行中的字节位置等不感兴趣……
有人能告诉我吗?很明显,必须编写/覆盖一些代码。有人要写特定的代码吗?我使用 C#。

0 投票
2 回答
3685 浏览

antlr - ANTLR:使用字符串模板

(我是 Antlr 的菜鸟)...我在使用 StringTemplates 获取语法时遇到了困难。基本上我正在尝试编写一些 DSL。我可以按照我想要的方式获得我的语法(它可以正确解析),但我无法生成目标代码以使用模板。所以这是我的语法片段:

我简化了很多,只是为了了解本质。基本上,当 lex/parse 遇到“GlobalName: Foo”时,我希望它根据名为“localConf”的 StringTemplate 吐出文本。超级简单。

所以现在,让我们在一个测试应用程序中启动解析器并让它处理一个输入文件。

我可以单步执行解析器代码并查看它是否正确识别了我的文本并正确应用了 stringTemplate。问题是,由于这个“globalName”规则是“conf”的子规则,它不会直接执行——该方法只是找到它并返回。但是调用 'Conf' 方法并没有保留子规则的返回值——它变得无足轻重。这意味着我在最后一行生成的模板为空。

如果我摆脱语法中的“conf”规则并直接调用“globalName”,它将起作用(因为它是堆栈上的唯一规则)。但我显然想要不止一条规则。我用 Java 生成了解析器,它做同样的事情:

很容易看出我没有了解模板方法应该如何与 Antlr 一起使用的一些基本概念。我很确定这是我的问题,但我不知道我做错了什么......我看到的例子并没有真正显示代码的真实世界模板发射。

0 投票
2 回答
1667 浏览

parsing - 帮助解析日志文件 (ANTLR3)

我需要一些指导来编写语法来解析游戏 Aion 的日志文件。我决定使用 Antlr3(因为它似乎是一个可以完成这项工作的工具,而且我认为学习使用它对我有好处)。但是,我遇到了问题,因为日志文件的结构不完全。

我需要解析的日志文件如下所示:

如您所见,大多数行都以时间戳开头,但也有例外。我想在 Antlr3 中做的是编写一个解析器,它只使用以时间戳开头的行,同时默默地丢弃其他行。

这是我到目前为止所写的(我是这些东西的初学者,所以请不要笑:D)

因此,我需要一个示例,说明如何在不为没有时间戳的行生成错误的情况下对其进行解析。

谢谢!

0 投票
1 回答
101 浏览

antlr - antlr 3 歧义

我尝试编写一些简单的规则,但我得到了这种歧义

  1. 我理解模棱两可,但我不明白为什么前瞻不能解决这个问题。

  2. 我有一个简单的解决方案,但我不喜欢它:

    规则: (nsf1 (nsf2 | 不管2)) | (whatever1(nsf2|whatever2));

有人有更优雅的解决方案吗?

非常感谢,克里斯

0 投票
1 回答
573 浏览

c - 在 C 目标中使用 antlr3 解析一些特定语句

我有一些关于 C 目标中树语法的 antlr3 的问题。

我几乎完成了我的解释器(函数、变量、布尔和数学表达式还可以),并且我保留了最困难的语句(如 if、switch 等)

1)我想解释一个简单的循环语句:

我看过很多例子,但没有关于 tree walker 的例子(这里只有一个带有宏 MARK() / REWIND(m) + @init / @after 但不起作用的主题(我有 antlr 错误:“偏移量为 0 的意外节点“))。我如何用 C 解释这个语句?

2)同样的问题,一个简单的 if 语句:

问题是如果条件为假则跳过该语句并测试其他 elseif/else 语句。

3)我有一些可以停止脚本的语句(如“break”或“exit”)。如何打断树行者并跳过以下标记?

4) 当检测到词法分析器或解析器错误时,antlr 返回错误。但我想制作我自制的错误消息。如何获得解析器崩溃的行号?

问我是否需要更多详细信息。

非常感谢你(我为我糟糕的英语道歉)