消费总是出现在这样的地方:(在*.jj文件生成的*Parser.java文件中)
jj_consume_token(0);
jj_consume_token(-1);
上面代码中的 0 和 -1 是什么意思?
private Token jj_consume_token(int kind) throws ParseException {
Token oldToken;
if ((oldToken = token).next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
if (token.kind == kind) {
jj_gen++;
if (++jj_gc > 100) {
jj_gc = 0;
for (int i = 0; i < jj_2_rtns.length; i++) {
JJCalls c = jj_2_rtns[i];
while (c != null) {
if (c.gen < jj_gen) c.first = null;
c = c.next;
}
}
}
trace_token(token, "");
return token;
}
token = oldToken;
jj_kind = kind;
throw generateParseException();
}
函数的 return-Token 是什么意思?
总而言之,javacc中的“消费”是什么意思?