【发布时间】:2022-08-18 19:43:51
【问题描述】:
我有一个 DSL,其中一个文件由多个命名块组成。 理想情况下,每个块应该只出现一次,但顺序无关紧要。
如何编写一个忽略块顺序的解析器,但如果重复相同的块会给出语法错误?
我有一个 DSL,其中一个文件由多个命名块组成。 理想情况下,每个块应该只出现一次,但顺序无关紧要。
如何编写一个忽略块顺序的解析器,但如果重复相同的块会给出语法错误?
一种选择是检测错误后解析,也许用助行器。
如果您需要在解析期间检测错误,则添加一个语义类来存储块标识符并在重复块时引发SemanticError。
【讨论】: