tmilos / gold-parser
Golder parser PHP 运行时 LALR 引擎和编译语法加载器
1.0.2
2016-12-21 11:21 UTC
Requires
- php: >=5.6.1
- symfony/event-dispatcher: ^2.0|^3.0
- tmilos/value: ^1.0
Requires (Dev)
- phpunit/phpunit: ~4.8|~5.6
- satooshi/php-coveralls: ~1.0
This package is not auto-updated.
Last update: 2024-09-14 20:09:29 UTC
README
Gold parser PHP 运行时 LALR 引擎和编译语法加载器。更多信息请查看 Gold Parser 网站。库是基于 Calitha C# GOLD Parser Engine 编写的。
安装
您可以使用 Composer 进行安装
$ composer require tmilos/gold-parser
用法
使用 Loader
类加载编译语法文件,然后通过它的 createNewParser()
方法获取该语法的 LALR 解析器。
<?php $parser = Loader::fromFile('grammar.cgt')->createNewParser(); $nonTerminal = $parser->parse($inputString); $parser->isAccepted(); // true
事件
Parser
实例具有默认的事件监听器,您可以替换它。在解析过程中,它会触发各种事件。在 Events
类中列出了所有触发的事件。
错误
默认情况下,解析器添加了错误监听器,当触发错误事件时会抛出异常。您可以添加自己的错误事件监听器,并使用 Parser::setThrowExceptionsOnErrors(false)
禁用默认监听器。
默认错误处理器在 PARSE_ERROR
事件上抛出 ParseException
,在 TOKEN_ERROR
事件上抛出 TokenException
。
性能
在我的普通笔记本电脑上(使用 PHP 7.0),加载语法和创建解析器大约需要 0.2 秒,解析约 700 个字符的 JSON 大约需要 0.04 秒。欢迎您贡献并提高性能。认为加载是关键。