在Coq's XML Protocol document (for the Add operation)中,一行显示为<int>${editId}</int>
。这里的editID是什么?
我问这个是因为我在ideslave模式下无法与coqtop交互。以coq-8.6.1/theories/FSets/FSetCompat.v
为例,我输入了
<call val="Init"><option val="none"/></call>
,
<call val="Add"><pair><pair><string>Require Import FSetInterface FSetFacts MSetInterface MSetFacts.</string><int>1</int></pair><pair><state_id val="1"/><bool val="true"/></pair></pair></call>
,
<call val="Add"><pair><pair><string>Set Implicit Arguments.</string><int>1</int></pair><pair><state_id val="2"/><bool val="true"/></pair></pair></call>
,然后
<call val="Add"><pair><pair><string>Unset Strict Implicit.</string><int>1</int></pair><pair><state_id val="3"/><bool val="true"/></pair></pair></call>
他们都生成了正确的输出。但是,此时我输入了
<call val="Add"><pair><pair><string>Module Backport_WSets
(E:DecidableType.DecidableType)
(M:MSetInterface.WSets with Definition E.t := E.t
with Definition E.eq := E.eq)
<: FSetInterface.WSfun E.</string><int>1</int></pair><pair><state_id val="4"/><bool val="true"/></pair></pair></call>
我收到以下错误:
[pid 48519] XML syntax error: Attribute value expected
[pid 48519] XML syntax error: Xml node expected
[pid 48519] XML syntax error: Xml node expected
[pid 48519] Unexpected XML message
[pid 48519] Expected XML node: call
[pid 48519] XML tree received: <int>1</int>
[pid 48519] XML syntax error: Xml node expected
[pid 48519] Unexpected XML message
[pid 48519] Expected XML node: call
[pid 48519] XML tree received: <pair>
<state_id val="4"/>
<bool val="true"/>
</pair>
[pid 48519] XML syntax error: Xml node expected
[pid 48519] XML syntax error: Xml node expected
我怀疑这个错误是因为多行字符串,也许如果我更改editId,我应该得到正确答案。我对吗?如果不是,editID做了什么,我该如何处理这个错误?谢谢你的帮助!
答案 0 :(得分:1)
EditId
;由于协议和历史问题的复杂性,其最初的目的和历史有点复杂。
即,Add
操作是同步的,因为用户界面必须等待具有新分配的标识符(Stateid.t
)的回复以获得增加的跨度。
但是,如果发生解析器错误,异步反馈系统需要一个时间标识符,edit_id
用于此目的。
我们删除edit_id
,因为Add
是同步的,因此Add
的调用者使用同步错误处理程序而不是基于edit_id
的反馈是有意义的
请注意,我强烈建议不要使用当前同步版本的Add
。它迫使客户端实现一个复杂的阻塞系统,它将很快被一个异步友好的版本替换[UI选择span_id的前端]。这样的版本已经在ML API中提供并且由SerAPI(*)公开,并且可能由XML协议本身从8.8开始。
(*)通常的免责声明适用:我是SerAPI的作者,同时也注意到我是从{8}中删除edit_id
背后的人。
答案 1 :(得分:0)
即使在8.7中,editid
发送Add
似乎也不会受到伤害,即使它在Coq方面未被使用。
我的基于XML的Proof General分支包括editid
Add
和8.7,因此不会发生错误。