检查词法分析器中的上一个/左标记 [英] check previous/left token in lexer
本文介绍了检查词法分析器中的上一个/左标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在词法分析器中找到前一个/左标记
例如
how can I find the previous/left token in lexer
for example
lexer grammar TLexer;
ID : [a-zA-Z] [a-zA-Z0-9]*;
CARET : '^';
RTN : {someCond1}? CARET ID; // CARET not include this token
GLB : {someCond2}? CARET ID; // CARET not include this token
等
推荐答案
谢谢,我是这样做的
lexer grammar TLexer;
@lexer::members {
int lastTokenType = 0;
public void emit(Token token) {
super.emit(token);
lastTokenType = token.getType();
}
}
CARET : '^';
RTN : {someCond1&&(lastTokenType==CARET)}? ID;
GLB : {someCond2&&(lastTokenType==CARET)}? ID;
ID : [a-zA-Z] [a-zA-Z0-9]*;
这篇关于检查词法分析器中的上一个/左标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文