tmilos/gold-parser

Golder parser PHP 运行时 LALR 引擎和编译语法加载器

1.0.2 2016-12-21 11:21 UTC

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 编写的。

Author Build Status Coverage Status License

安装

您可以使用 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 秒。欢迎您贡献并提高性能。认为加载是关键。