以下是我的语法规则:
Stmts: (stmts += Stmt ';')* ;
Stmt: Stmt1 | Stmt2 | Stmt3 ... ;
我想知道每个 Stmt# 是 stmts 中的 #-th stmt 及其确切位置(原始文档中的 #-th 行)。这样我可以在用户犯错时指出位置。
我重写了验证器构造函数并存储了一个HashMap <Stmt, Integer>
以获取每个 Stmt# 是 stmts 中的第 # 个 Stmt(不确定这是否是正确的方法......)。但是我不知道如何获得他们的行号。
有什么帮助吗?