Java Don';t在第一个异常之后停止解析

Java Don';t在第一个异常之后停止解析,java,javacc,Java,Javacc,对于默认值,JavaCC在第一个异常(TokenMgrError)后停止解析,但这是解析所有输入直到EOF的一种方法吗 我需要它列出所有错误,而不是在第一个错误时停止 谢谢。一般来说,您应该避免使用令牌错误。通常,这可以通过一个“全面覆盖”规则来实现——有关详细信息,请参阅常见问题解答 现在只剩下一个ParseException。您可以使用try-catch处理这些问题。有关这方面的信息,请参阅JavaCC文档。您可以使用一种方法跳过所有标记,直到参数1: void error_skipto(i

对于默认值,JavaCC在第一个异常(TokenMgrError)后停止解析,但这是解析所有输入直到EOF的一种方法吗

我需要它列出所有错误,而不是在第一个错误时停止


谢谢。

一般来说,您应该避免使用令牌错误。通常,这可以通过一个“全面覆盖”规则来实现——有关详细信息,请参阅常见问题解答


现在只剩下一个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()”;
}
}

请给出示例代码为什么您不只是捕获异常,将其存储在某个位置,然后继续解析操作?