我正在查看Parser[Any]
的通配符语法,其中只有一个单词后跟1 *
成功解析。
有效示例:
无效示例:
我测试了以下2 Parser[Any]
:
def wildWithDollar = """^\w+\*$""".r
def wildTest = """^\w+\*""".r
测试它们:
"ABC** with a `$`" should "fail" in {
val result = parseAll(wildWithDollar, "ABC**")
println(result)
assert(result.successful == false)
}
"ABC** without a `$`" should "fail" in {
val result = parseAll(wildTest, "ABC**")
println(result)
assert(result.successful == false)
}
两者都失败了,但错误信息不同:
[1.1] failure: string matching regex `^\w+\*$' expected but `A' found
ABC**
^
[1.5] failure: string matching regex `\z' expected but `*' found
ABC**
^
解析器是否可以接受,因为它们都失败了?如果我将此wildcard
Parser与其他语法元素一起使用,那么wildTest
解析器是否存在任何潜在问题,因为它没有明确指出单个结尾*
?