检查词法分析器中的上一个/左标记

DAi*_*Mor 2 antlr4

我怎么能找到以前的/左令牌词法
例如

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
Run Code Online (Sandbox Code Playgroud)

等等

DAi*_*Mor 5

谢谢,我是这样做的

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]*;
Run Code Online (Sandbox Code Playgroud)