gpt4 book ai didi

xml-parsing - bison/flex 中的简单 XML 解析器

转载 作者:行者123 更新时间:2023-12-05 00:06:36 26 4
gpt4 key购买 nike

我想使用 bison/flex 创建简单的 xml 解析器。我不需要验证、评论、参数,只需要 <tag>value</tag> , 其中 value 可以是数字、字符串或其他 <tag>value</tag> .

例如:

<div>
<mul>
<num>20</num>
<add>
<num>1</num>
<num>5</num>
</add>
</mul>
<id>test</id>
</div>

如果有帮助,我知道可能出现的所有标签的名称。我知道给定标签可以容纳多少个子标签。是否可以创建可以执行以下操作的野牛解析器:
- new Tag("num", 1)           // tag1
- new Tag("num", 5) // tag2
- new Tag("add", tag1, tag2) // tag3
- new Tag("num", 20) // tag4
- new Tag("mul", tag4, tag3)
...
- root = top_tag

标签和子标签数量:
  • 数量:1(仅值)
  • str:1(仅值)
  • 添加 |子 |多| div: 2 (num | str | tag, num | str | tag)

  • 你能帮我语法来创建上面给出的 AST 吗?

    最佳答案

    对于您的要求,我认为yax system会很好用。
    从自述文件:

    yax 项目的目标是允许使用 YACC(实际上是 Gnu Bison)来解析/处理 XML 文档。

    实现上述目标的关键软件是提供一个可以从 XML 文档生成 XML 词法标记流的库。

    可以包装此流以创建 yylex() 的实例,以将标记提供给 Bison 语法以解析和处理 XML 文档。

    使用流加上 Bison 语法,至少可以承载以下类型的事件。

  • 验证 XML 文档,
  • 直接解析 XML 文档创建内部数据结构,
  • 构建 DOM 树。
  • 关于xml-parsing - bison/flex 中的简单 XML 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3121917/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com