如何在规则开始时检测到错误?例如,请考虑文档中包含的Mini XML example。如果我给解析器提供类似的东西:
<element>this is an error<element>
然后我得到:
错误!期待这里:“”
错误!期待这里:“”
解析失败。
那很好,但后来考虑喂它:
element>this is an error</element>
而且我得到了非常通用且不那么有用的东西:
解析失败。
如何修改规则以便以信息方式报告错误?
答案 0 :(得分:8)
您希望在文档根级别要求元素。
其他消息由失败的期望点生成。您将在开始时想要额外的期望点。我这样做:
xml
规则重命名为element
创建一个新的xml
规则,其中元素位于期望点:
xml = qi::eps > element;
[不要改变任何其他]
的利润! 的
输出变为:
Error! Expecting <element> here: "element>this is a test</element>
"
-------------------------
Parsing failed
-------------------------
请参阅it live here