gpt4 book ai didi

.net - 在 C# 中构建用于将文本文件转换为数据结构的通用解析器

转载 作者:行者123 更新时间:2023-12-04 08:30:10 36 4
gpt4 key购买 nike

我有一个 SPAN 文件( http://www.cme-ch.com/span/spanl300.htm )的定义,我想用它来构建解析器以将字符串数据解析为内存中的集合类(或者甚至使用带有 yield 关键字的延迟评估。)

我见过的所有解析技术和库都适用于构建用于实现语言的解析树;我只是想知道有什么好的技术可以解析为数据结构,类似于如何将 XML 解析为 .net 框架中的 XMLDocument,但使用 SPAN 定义的规则。

最佳答案

SPAN 似乎是一堆记录类型,每条记录都有很多细节。

定义涵盖所有记录(作为非终结符)的经典语法应该很简单,
就代表各种数据类型的任何子记录(作为非终结符)和终结符数据类型而言
由 SPAN 定义。可能有很多非终结符,但这只会形成一个大语法,但不会
一个复杂的。

大多数编程语言都有一小组通常可以出现在任何地方的终端 token 。事实是,语法定义了对接下来可能出现的内容的期望(在 LR 解析器文献中称为“第一”和“跟随”集),包括非常有限的终端集。 SPAN 语法不会有什么不同;解析器的每个“解析状态”都意味着接下来出现的一组有限的终端,并且可以组织一个解析器来利用这一点。 (我已经构建了 L(AL)R 解析器,并且可以轻松地使用“当前”状态来确定接下来可能发生的终端子集)。因此,SPAN 解析器可以仅确定每个状态中接下来可能出现的一小组标记,并使用它来挑选构成这些下一个标记的字符(它们必须形成不相交的集合!)。

实现这一点的一种简单方法是使用 recursive descent parser.

所以我声称所有解析机制都可以解析 SPAN,可能需要一些自定义工作来获取 token 。

传统解析器的解析操作构建树,但填充数据结构的字段同样容易。

关于.net - 在 C# 中构建用于将文本文件转换为数据结构的通用解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516157/

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