ckr / fiql-parser
将FIQL字符串解析为抽象语法树的库
v0.1.0
2015-05-02 12:47 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpspec/phpspec: ~2.1
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。
基本用法
// 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
,主要用于可视化和比较语法树。