在 smali 中,采用两个整数并返回一个整数的方法的签名是这样写的:
add(II)I
为了使用 xtext 解析它,我尝试了以下方法:
ID'('Type*')'Type
不幸的是,这只适用于两者之间的空白I
。
如何更改规则以使其不在这里坚持空白?
据我所知,这应该已经是词法分析器处理终端规则的问题了。每当它看到类似的字符序列时,III
它总是立即将其标记为 ID。- 与职位无关。:(
解析类似:
III(III)I
即一个名为III
取三个整数并返回另一个整数的函数,似乎我必须强制词法分析器始终只发出单个字符并使用解析器规则重新组合它。
但在这种情况下,我不再设法创建 ID 规则......
好像错过了什么重要的事情。
I
注意:除了像(integer)、D
(double) 和(void) 这样的原始数据类型之外,V
还有以 .Ljava/lang/String;
开头的类类型和数组[
。
一个典型的 main 方法如下所示.method public static main([Ljava/lang/String;)V
。