为什么会这样
alt、loop、opt、par、critical 和 break 都会打开一个代码块,必须用各自的 end 闭合,就像 flowchart 里的 subgraph 一样。忘记加 end——通常发生在编辑时删除或调整了行的顺序——会让解析器一直等待永远不会到来的更多内容。
报错会出现在文件末尾(或者下一个同级代码块处),而不是真正打开了那个未闭合代码块的那一行,这使得快速浏览时很容易漏掉它。
如何修复
在代码块的最后一条消息之后补上缺失的 end。对于嵌套代码块(比如 loop 里嵌套了 alt),要数清楚打开和闭合的数量——每一个都需要自己的 end,从最内层开始闭合。