我在使用这种特殊方法时遇到了一些问题,以便解决我的解析器中的问题。这是我在Java中提供的代码:
void handleErrors(Exception e, int kind, String strError) {
//ParseException e = generateParseException();
System.err.println("Errore nel parsing: <" + strError + ">");
System.err.println(e.toString());
Token t;
do {
t = getNextToken();
} while(t.kind != kind && t!=null && t.kind != EOF );
}
当我尝试解析这个简单的函数声明(在AutoIt文档上做出参考)时出现问题
Func askjd ($cas)
解析器应抛出一个异常,告诉我函数声明有问题,但它只是说一般的建议,如:
ParseException: Encountered <EOF> at line 1, column 18.
Was expecting one of:
"If" ...
"For" ...
"While" ...
"Do" ...
"Switch" ...
"Func" ...
"Return" ...
"EndFunc" ...
"Const" ...
<VARNAME> ...
<NAMEFUNC> ...
它应该告诉我,只有EndFunc
缺失,而不是其他令牌