吉森/野牛 获取语法中标记的行号



我想知道如何在语法中获取标记的行号。假设我有以下语法:

S : expr MINUS expr { $$ = $1 -$3; }
  ;

如何获取减号令牌的行号?我没有在 jison 中使用词法分析器,而是通过覆盖词法分析器从 lex 文件传递它:

parser.lexer = {
  lex: function() {
    var token = "MINUS";
    parser.lexer.yytext = "...";
    parser.lexer.yylineno = xx;
    return token;
  }
}

我意识到我可以调用yylineno但是如果语法中的不同标记具有不同的行号,并且我只需要 jison 文件中特定标记的行号怎么办。也许像$1.yylineno?谢谢!

Jison允许您使用@表示法访问位置。请参阅此处的"跟踪位置"部分。上面减号的行号将是@2.first_line

然后由您的词法分析器提供 Jison 期望的信息。

相关内容

  • 没有找到相关文章

最新更新