gpt4 book ai didi

eclipse - 解析参数而不分隔空格

转载 作者:行者123 更新时间:2023-12-01 03:54:44 26 4
gpt4 key购买 nike

在 smali 中,采用两个整数并返回一个整数的方法的签名是这样写的:

add(II)I

为了使用 xtext 解析它,我尝试了以下操作:
ID'('Type*')'Type

不幸的是,这只适用于两者之间的空白 I .

如何更改规则以使其不坚持使用空格?

据我所知,这应该是词法分析器处理终端规则的问题。每当它看到像 III 这样的字符序列时它总是立即将其标记为 ID。 - 独立于职位。 :(

解析类似的东西:
III(III)I

即一个名为 III 的函数取三个整数并返回另一个整数,似乎我必须强制词法分析器始终只发出单个字符并使用解析器规则重新组合它。

但在这种情况下,我不再设法创建 ID 规则......

我好像错过了什么重要的事情。

注意:除了原始数据类型,如 I (整数), D (双)和 V (void) 还有一些类类型写为 Ljava/lang/String;和以 [ 开头的数组.

典型的 main 方法如下所示 .method public static main([Ljava/lang/String;)V .

最佳答案

您可能想尝试配置生成您的语言的 mwe2 工作流以使用扩展 AntlrGeneratorFragment您可以在其中设置选项以在词法分析器中使用回溯。这应该够了吧。您必须对内容辅助解析器片段执行相同的操作,您必须使用 ContentAssistParserGeneratorFragment .

一些背景:词法分析器通常会使用最长的匹配序列,例如III看起来像一个 ID,因此它将作为单个 ID 而不是三个单独的 token 使用 I .如果启用回溯,它会将其拆分而不是使用完整的 ID。如果 III 并不总是一个类型列表但有时是一个真实的 ID,这可能会带来一些困难,但您可以通过使用有效标识符的数据类型规则来规避这些。

关于eclipse - 解析参数而不分隔空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com