【问题标题】:What would be a good Delphi lexer/parser for Javascript language file? [closed]什么是 Javascript 语言文件的好的 Delphi 词法分析器/解析器? [关闭]
【发布时间】:2025-12-12 10:55:01
【问题描述】:

背景

我希望能够在 Delphi 应用程序中解析 Javascript 源代码。我需要能够识别源代码中的变量和函数,以便通过以后的代码对代码进行更改。我知道我可能需要为此目的使用词法分析器,但使用我找到的词法分析器 (Dyaclexx) 运气不佳。

问题

是否有合适的免费软件或开源 delphi 解析器/词法分析器已经具有 Javascript 的令牌集,或者可以轻松地为此目的进行修改而没有太多麻烦?

如果没有这样的工具可用,那么学习为此目的编写自己的词法分析器的最佳方法是什么?

谢谢

【问题讨论】:

    标签: javascript delphi parsing lexer


    【解决方案1】:

    对于词法分析器,您可以查看 JavaScript 荧光笔的 Synedit's 源代码。 Synedit 上下文中的荧光笔是一个带有特殊钩子的词法分析器,用于为编辑器组件提供高亮显示。修剪这些钩子并获得一个简单的词法分析器是一项微不足道的工作。

    Synedit 编辑器在学习如何构建词法分析器时也可以派上用场,因为它有助于实时直观地测试你的词法分析器。您可以查看演示或在邮件列表中询问更多信息。

    【讨论】:

      【解决方案2】:

      我认为您应该使用应该查看 GoldParser (http://www.devincook.com/goldparser) 以在 Delphi 代码中生成完整的 JS 解析器。不过,GoldParser 是免费软件。

      【讨论】:

      • Goldparser 不错,但速度极慢。即使在速度优化的 C++ 代码中,解析 15000 行代码也需要 10 秒。如果将其与 PHP 解析器的速度进行比较,这是非常慢的。