在 parboiled2 中报告解析器操作错误的最佳方法是什么(我使用的是 v 2.1.4)?
例如,假设我想读取一个整数值并在它不在预期范围内时报告错误?我尝试调用fail
,但这在解析器操作中似乎无效。另外,我不知道应该如何为test
规则提供堆栈值。我只是抛出一个ParseError
异常吗?
更具体一点,请考虑以下规则:
def Index = rule {
capture(oneOrMore(CharPredicate.Digit)) ~> {s => // s is a String
val i = s.toInt
if(i > SomeMaxIndexValue) ??? // What do I put here?
else i
}
}