#php #lexical #syntactic #virtual-machine #analyser #machine

tagua-parser

安全、快速且内存高效的PHP解析器(词法和语法分析器)

1个不稳定版本

使用旧的Rust 2015

0.1.0 2016年8月24日

#7 in #analyser

BSD-3-Clause

135KB
2.5K SLoC

Tagua Parser

Chat on Freenode Chat on Gitter Build status Coverage

Tagua VM是一个使用Rust语言LLVM编译器基础设施编写的实验性PHP虚拟机。

虚拟机由几个库组成。这个库,Tagua Parser,包含了PHP语言的词法和语法分析器,也就是解析器。

安装

要安装Tagua Parser,您必须安装Rust(请参阅Rust安装页面)。Cargo是Rust包管理器。

构建发布版本

$ cargo build --release

构建开发版本

$ cargo build

使用Docker

如果您觉得在您的机器上安装Rust太麻烦,Docker可能是一个替代方案:它提供了构建、测试和运行Tagua Parser所需的一切。

首先,构建Docker镜像

$ docker build -t tagua-parser-dev .

现在,可以从这个镜像运行容器

$ docker run --rm -it -v $(pwd):/source tagua-parser-dev

如果此命令成功,您就在一个新容器中。要检查一切是否正常,您可以启动测试套件

$ cargo test

贡献

做任何您想做的事情。只需尊重许可证和其他贡献者。您最喜欢的工具将是

$ cargo test

运行所有测试套件(单元测试套件、集成测试套件和文档测试套件)。

カンバン (看板)

为了了解需要做什么、正在做什么以及最近已经做了什么,看板可用。

文档和帮助

文档已自动上传到以下地址:https://tagua-vm.github.io/parser

要本地生成它,请运行以下命令

$ cargo doc --open

要获取IRC上的帮助,请加入官方的#taguavm频道在Freenode。或者,有一个Gitter上的镜像房间

许可证

Tagua VM采用新BSD许可证(BSD-3-Clause)

                                New BSD License



Copyright © 2016-2016, Ivan Enderlin.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * Neither the name of the Hoa nor the names of its contributors may be
      used to endorse or promote products derived from this software without
      specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

依赖项

~4.5MB
~88K SLoC