ckr/fiql-parser

将FIQL字符串解析为抽象语法树的库

v0.1.0 2015-05-02 12:47 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:58:45 UTC


README

此库提供了一个Feed Item Query Language的解析器。解析器将Feed Item Query Language(http://tools.ietf.org/html/draft-nottingham-atompub-fiql-00)中的字符串表达式转换为语法树

请注意,此库还不够稳定,不适合生产使用。如果您发现错误,请通过在github上创建问题来帮助解决。

需求

此库目前不使用任何第三方依赖。需要PHP版本 >= 5.4。测试使用phpspec。

Build Status

基本用法

// autoloading is psr-4 compliant, so we can use composer
require 'vendor/autoload.php';

// initialize scanner and parser
$scanner = new \Ckr\Fiql\Scanner();
$parser = new \Ckr\Fiql\Parser($scanner);

// parse expression to a syntax tree
$syntaxTree = $parser->parse('field==value,second=lt=val;requiredField');

// example visitor usage
$visitor = new \Ckr\Fiql\Visitor\Printer();
$visitor->visit($syntaxTree);

echo 'The syntax tree visualized:' . PHP_EOL;
echo $visitor->getText();
echo PHP_EOL;

语法树

语法树由实现 \Ckr\Fiql\Tree\Node 的节点组成。

访问者

您可以实现一个自定义的访问者类(实现 \Ckr\Fiql\Tree\Visitor),以处理语法树以符合您的需求,例如检查匹配的feed项。此库仅提供了一个访问者,即 \Ckr\Fiql\Visitor\Printer,主要用于可视化和比较语法树。

参考