我需要解析PHP& JavaScript文档结构,用于获取有关文档功能的信息。他们的参数,类和&他们的方法,变量等等...... 我想知道是否有任何解决方案(没有正则表达式)...我听说过一些叫做“lexing”的东西。然而,我无法找到任何例子,即使是那些可以告诉我这是否是我正在寻找的东西......

提前致谢

有帮助吗?

解决方案

通过“Lexing”你指的是词汇分析,还有一些古老的工具,大部分仍然起作用,名为Lex和Yacc。 Lex构建了令牌化器,Yacc代表“又一个编译器编译器”。并且是实际的解析器。

lex / Yacc的概念,是你为语言构建语法,然后通过paslex工具运行语法来生成源代码(通常在C中),您可以使用它来解析文件并对特定文件采取操作关键字和令牌。 Martin Waldenburg编写了一个名为PasLex的lex / yacc的pascal版本,该版本已经推出了十多年,现已转换为 Delphi (虽然它可能不适用于没有一些小工作的最新版本)。如果我没记错的话,它使用相同的.L语法输入文件作为lex,所以你找到的lex / yacc文档也可以应用于paslex,除了你得到pascal代码作为输出。

我不确定当前的文档可用性。在互联网(喘息)之前,我们使用了书籍,其中大部分都是在纸上大量记录的,这些纸很久就变黄了......但是,谣言说你可能......也许可以从亚马逊那里拿到一份旧书。我使用一本名为“龙书的书来切我的牙齿。一>"这似乎最近在2006年重新出版。


修改

我误解了这个工具,它是 TPLY 。 PasLex是一个delphi语法实现... TPLY是Lex / Yacc工具,它从.L文件生成pascal源。

其他提示

我不确定这是否可行但是对于PHP,您是否可以从Delphi调用PHP CLI来获取信息?

如果是这样,您可以调用 token_get_all(),然后将结果吐出一些可以解析的内容Delphi(也许是xml,json等)。这是lexing。这个问题只是解决问题的一半 - 您仍然必须了解上下文中的每个标记以获得您想要的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top