我正在学习使用ANTLR 4来解析smali文件。 我在解析方法参数列表时遇到了问题,我不知道如何描述问题,所以我直接粘贴了语法文件和截图。 语法MethodTest;
methodList : method*;
method
:'.method'
methodModifiers
Identifier
'(' methodParameterList ')'
methodReturnValueType
'.end method'
;
methodReturnValueType : primitiveType;
methodModifiers : modifier*;
modifier : 'public' | 'private' | 'final';
methodParameterList : methodParameter;
methodParameter : primitiveType*;
primitiveType : 'I' | 'J' | 'Z' | 'V' | 'B';
Identifier : [a-zA-Z_]+;
WS : [ \r\n\t] -> skip;
给定的样本输入如下:
.method public test(IIII)V
.end method
然后我将示例输入修改为如下所示:
.method public test(I I I I)V
.end method
然后它工作正常。 这就是问题所在,我该如何修复它。