gpt4 book ai didi

.net - 实现解析器的步骤和相关工作(在.Net中,在本例中为XPath 2.0)

转载 作者:行者123 更新时间:2023-12-03 15:27:38 24 4
gpt4 key购买 nike

由于缺少基于Linq to XML的.Net的任何良好的免费XPath 2.0实现,因此我考虑过实现自己的(也出于经验)。但是,为了清楚起见(而不是构建现有的东西),这些是我发现的XPath 2.0实现:

  • Saxon .Net
  • Query Machine-我对此有疑问-
  • 示例异常(exception)
  • XQSharp-不错,但是很商业(单个开发人员〜300 $)

  • 现在,我想对实现某些语言(例如XPath 2.0表达式)有多困难进行思考。我发现此链接具有用于XPath 2.0表达式的EBNF: http://www.w3.org/TR/2007/REC-xpath20-20070123/#id-grammar,我正在考虑使用fslex/fsyacc组合在F#中进行制作。

    我的背景(主观):我以前玩过这些工具,但仅用于一些简单的表达式和非常简单的编程语言。此外,我已经阅读了大部分Dragon书籍和Appel的ML中的Modern编译器实现-但是不幸的是,我在阅读时没有将理论付诸实践。我已经学习了一年的计算机科学,在那里我完成了有关ex finite automatonCFL和算法的理论类(class),但是在大学之前我已经从事开发工作了几年(有几年从事专业工作-主要是网站后端)。

    现在,解析的步骤以及我倾向于介绍的内容:
  • Lex-解析-缩减:FsLex/FsYacc。首先,我不会适本地介绍Xpath 2.0的全部内容,但至少会涉及XPath 1.0的全部功能以及更多内容。
  • 语义分析-我不确定此
  • 有多少钱
  • 优化-我不倾向于(至少一开始不介绍)
  • 实际遍历等
  • ...?

  • 现在,除了上述内容之外, 具体问题:
  • 制作如此大小的解析器有多困难?根据我的背景,我可以吗?
  • 关于XPath 2.0,我是否错过了一些关键步骤?
  • 我想念任何技术吗?为了制作解析器,我是否还需要覆盖XPath 2.0和XDocument等?

  • 要明确:我想制作一个XPath 2.0表达式解析器,并使用此解析的表达式遍历 XDocument等。我想结合起来就是一个查询引擎。

    更新:我发现了: http://www.w3.org/2007/01/applets/xpathApplet.html,其中包含要解析和遍历的代码。我认为这将是一个不错的开始或引用:-)

    您的回答将不胜感激。

    最佳答案

    三年前,我完全在XSLT 2.0 中实现了XPath 2.0解析器。

    我在 LR Parsing Framework 中使用了 FXSL ,这并不困难。语法很大-如果我记不清的话,有209条规则。我使用了YACC的修改(由我完成),我将其称为 Yaccx 来生成解析表为XML。这些是用XSLT编写的 the general LR Parser 的输入。

    对于此类项目,您需要分配至少6个月的全职时间,也许是1年。困难在于实现巨大的函数库( F & O )。

    而且,XPath不是独立的语言-它必须由另一种语言承载。由于这个原因,我没有将此解析器用于任何有意义的事情,因为我没有访问权,影响力和改变现有托管语言的可能性。

    因此,为所有这些困难做好准备。

    关于.net - 实现解析器的步骤和相关工作(在.Net中,在本例中为XPath 2.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555211/

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