1个不稳定版本
0.0.0-b4 | 2023年5月11日 |
---|
#24 in #php
540KB
14K SLoC
PHP-Parser
使用Rust编写的针对PXP(PHP超集)的手写容错递归下降解析器。
警告 - 这仍然是alpha软件,公共API仍然可能更改。请自行承担风险。
用法
在您的Cargo.toml
的dependencies
部分添加pxp-parser
[dependencies]
pxp-parser = { git = "https://github.com/php-rust-tools/pxp-parser" }
或使用cargo add
cargo add pxp-parser --git https://github.com/php-rust-tools/pxp-parser
扩展
要了解更多关于PXP解析器支持的扩展语法,请访问官方网站。
示例
use std::io::Result;
use pxp_parser::parser;
const CODE: &str = r#"<?php
final class User {
public function __construct(
public readonly string $name,
public readonly string $email,
public readonly string $password,
) {
}
}
"#;
fn main() -> Result<()> {
match parser::parse(CODE) {
Ok(ast) => {
println!("{:#?}", ast);
}
Err(err) => {
println!("{}", err.report(CODE, None, true, false)?);
println!("parsed so far: {:#?}", err.partial);
}
}
Ok(())
}
许可证
根据您的选择,许可协议为
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则根据Apache-2.0许可协议定义的,任何有意提交以包含在本作品中的贡献,均应按上述方式双许可,不得附加任何额外条款或条件。
鸣谢
依赖
~1.9–2.7MB
~54K SLoC