使用XML的EBNF实施XML转换器
-
21-09-2019 - |
解决方案
现在,我不是需要上下文来解析XML的原因。
但是QIYACC可以使用全局变量利用上下文。如果您可以通过解析器或类似的东西在解析器中通过状态S,那将是更干净的。这不在QI中,但我计划为沉实施此类功能。
这样就可以做到。
/Stefan
其他提示
我一无所知,但是将XML的EBNF转换为递归下降(RD)解析器或多或少是简单的。人们只需要牢记一个事实,即在某些地方,对语法进行一些小的调整会对解析器产生重大的性能影响。这是因为语法是用简洁的和清晰的,而不是试图避免追逐规则。
在C ++中,我通过将XML的语法写入一组类型中,就在C ++中做了这样的事情。您可以看到我在上面写的一篇文章 代码项目. 。相同的基本原理可以应用于任何语言。
我还建议您环顾四周的语法。它们通过允许您引入零宽度的断言来扩展EBNF,并且是增强解析器的EBNF语法的好方法。
不隶属于 StackOverflow