smuuf/php-peg

PHP 的 PEG 解析器生成器。

3.0.0 2022-04-25 23:35 UTC

This package is auto-updated.

Last update: 2024-09-26 04:26:33 UTC


README

免责声明

这是combyna/php-peg的延续,它是对原始的hafriedlander/php-peg的“最小侵入性分支”。

最初可用的几种 PEG 解析器类型中,现在只剩下 BasicPackrat(推荐)。

此分支的显著功能

  • 修复和优化Packrat 解析器重构。 使用数组而不是字符串简化逻辑。从内存角度来看,数组最终似乎更适合这项工作。这也解决了 Packrat 缓存中访问未定义索引的偶尔问题。
  • 现代代码风格: 代码库使用新的 (PHP7+) 语言特性和与当前现代 PHP 更熟悉的代码格式。
  • 移除 CLI 接口: 直接调用 \hafriedlander\Peg\Compiler::compile($grammarDefinitionFile),方式随意。
  • 测试: 测试套件已重写,使用 Nette Tester 而不是 PHPUnit
  • 修复: 通过简化搜索语法定义的正则表达式,避免了灾难性的回溯问题(有时在编译较大的语法时发生)。
  • 优化: 使用带有绝对命名空间的本地 PHP 常量和函数,速度略有提升(在生成的代码中也有所改变)。
  • 优化: 在可能的情况下使用严格比较(甚至在生成的代码中)。

文档

请参阅原始库的文档