我的语法看起来像
statement
: ME second_part
{
System.out.println($ME.getStartIndex());
System.out.println($second_part.getStartIndex());
}
;
ME : 'me'
;
SPACES : [ \t\n\r] -> channel(HIDDEN);
我想得到Me和second_part的起始索引。
运行上面的antlr4语法时出错了
的System.out.println($ second_part.getStartIndex());
在$ second_part
中对规则参考second_part缺少属性访问权限
如何获取second_part的起始索引?
答案 0 :(得分:1)
每个解析器规则都是ParserRuleContext
,其中包含start
和stop
令牌。所以,试试这个:
System.out.println($second_part.start.getStartIndex());