假设我必须解析一组分层标签
<tag>
<subtag1 attr1=value1 attr2=value2>
<subtag1 attr1=value1 attr2=value2>
<subtag1 attr1=value1 attr2=value2>
</tag>
为什么我不能在 some 或 any 中使用 break 来脱离层次结构?这将允许进行这种解析而不是头疼吗?
我问这个是因为我在这里读到http://www.codeconscious.com/rebol/parse-tutorial.html它会创建一个无限循环
这种情况会产生一个无限循环。因为 BREAK 在 SOME 正在处理的规则的子规则内。BREAK 不会影响成功/失败状态或输入指针 - 它只是提前退出规则:
rule-to-break: [(print " Break ") break] == [(print " Break ") break] parse "X" [some [rule-to-break] "X"] Break Break ... Break Break(逃脱)