Parsing Jison/Bison获取语法中标记的行号
我想知道如何在语法中获得标记的行号。假设我有以下语法:Parsing Jison/Bison获取语法中标记的行号,parsing,bison,jison,Parsing,Bison,Jison,我想知道如何在语法中获得标记的行号。假设我有以下语法: S : expr MINUS expr { $$ = $1 -$3; } ; 如何获取负令牌的行号? 我没有在jison内部使用lexer,而是通过覆盖lexer从lex文件传递它: parser.lexer = { lex: function() { var token = "MINUS"; parser.lexer.yytext = "..."; parser.lexer.yylineno = xx;
S : expr MINUS expr { $$ = $1 -$3; }
;
如何获取负令牌的行号?
我没有在jison内部使用lexer,而是通过覆盖lexer从lex文件传递它:
parser.lexer = {
lex: function() {
var token = "MINUS";
parser.lexer.yytext = "...";
parser.lexer.yylineno = xx;
return token;
}
}
我意识到我可以调用yylineno
,但是如果语法中的不同标记具有不同的行号,而我只想要jison文件中特定标记的行号,该怎么办呢。
可能是像$1.yylineno
?
多谢各位 Jison允许您使用
@
符号访问位置。请参阅“跟踪位置”部分。上面减号的行号是@2。第一行
然后由您的lexer提供Jison期望的信息。Jison允许您使用@
符号访问位置。请参阅“跟踪位置”部分。上面减号的行号是@2。第一行
然后由您的lexer提供Jison期望的信息