首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加一些XML解析规则

添加一些XML解析规则
EN

Stack Overflow用户
提问于 2019-08-12 17:40:04
回答 2查看 40关注 0票数 0

添加了一些解析XML的规则,但当我尝试编译项目时,它不起作用。我遇到了下一个错误: Error 2未知属性引用'closeTag‘in '$closeTag.text’D:\DevExpress\ControlEvaluation\RichEditControl\WindowsFormsRichEdit\WindowsFormsRichEdit\XMLParser.g4 40 29 WindowsFormsRichEdit Error 1未知属性引用'openTag‘in '$openTag.text’$openTag.text 40 8 WindowsFormsRichEdit

代码语言:javascript
复制
element     :   '<' openTag=Name attribute* '>' content '<' '/' closeTag=Name '>'
        |   {$openTag.text.equals($closeTag.text)}?
        |   '<' Name attribute* '/>'
        ;
EN

回答 2

Stack Overflow用户

发布于 2019-08-12 18:37:37

在第一个备选方案中定义了closeTag,但在第二个备选方案中引用了它。它并不存在于此。

票数 0
EN

Stack Overflow用户

发布于 2019-08-13 15:19:51

不要在解析器中进行语义检查。打开和关闭标记名称的相等是一种语义强制。相反,在没有这样的约束的情况下解析输入,就像您希望在这里实现的那样,并在获得解析树后运行语义阶段。这将允许您打印更好的错误消息(例如“开始标记和结束标记必须相同”,而不是“没有可行的alt")。

对于这个语义检查,使用生成的解析树侦听器(或者更确切地说,是您的类的派生)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57458830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档