Java Don';t在第一个异常之后停止解析
对于默认值,JavaCC在第一个异常(TokenMgrError)后停止解析,但这是解析所有输入直到EOF的一种方法吗 我需要它列出所有错误,而不是在第一个错误时停止Java Don';t在第一个异常之后停止解析,java,javacc,Java,Javacc,对于默认值,JavaCC在第一个异常(TokenMgrError)后停止解析,但这是解析所有输入直到EOF的一种方法吗 我需要它列出所有错误,而不是在第一个错误时停止 谢谢。一般来说,您应该避免使用令牌错误。通常,这可以通过一个“全面覆盖”规则来实现——有关详细信息,请参阅常见问题解答 现在只剩下一个ParseException。您可以使用try-catch处理这些问题。有关这方面的信息,请参阅JavaCC文档。您可以使用一种方法跳过所有标记,直到参数1: void error_skipto(i
谢谢。一般来说,您应该避免使用令牌错误。通常,这可以通过一个“全面覆盖”规则来实现——有关详细信息,请参阅常见问题解答
现在只剩下一个ParseException。您可以使用try-catch处理这些问题。有关这方面的信息,请参阅JavaCC文档。您可以使用一种方法跳过所有标记,直到参数1:
void error_skipto(int kind){
ParseException e = generateParseException();
System.out.println(e.toString());
Token t;
do {
t = getNextToken();
} while (t.kind != kind);
}
然后在非终端方法中调用它:
void block(): {}
{
try{
< START > [code()] < END >
}catch ( ParseException e ) {
error_skipto(SEMICOLON);
System.out.println( "Captured by: block()" );
}
}
void block():{}
{
试一试{
[code()]
}捕获(解析异常){
错误_skipto(分号);
System.out.println(“捕获者:block()”;
}
}
请给出示例代码为什么您不只是捕获异常,将其存储在某个位置,然后继续解析操作?