8 个版本
0.1.3 | 2023年5月10日 |
---|---|
0.1.2 | 2023年5月10日 |
0.1.0 | 2023年1月6日 |
0.0.0 |
|
0.0.0-b3 | 2022年12月20日 |
#659 在 解析器实现
在 phanalist 中使用
530KB
14K SLoC
PHP-Parser
用 Rust 编写的手写容错递归下降解析器,用于 PHP。
警告 - 这仍然是 alpha 软件并且公共 API 可能会更改。请自行承担风险。
用法
在您的 Cargo.toml
的 dependencies
部分添加 php-parser-rs
[dependencies]
php-parser-rs = { git = "https://github.com/php-rust-tools/parser" }
或使用 cargo add
cargo add php-parser-rs --git https://github.com/php-rust-tools/parser
示例
use std::io::Result;
use php_parser_rs::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 (http://www.apache.org/licenses/LICENSE-2.0) 或
- MIT license (http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,应按照上述方式双重许可,不附加任何额外条款或条件。
致谢
依赖
~1.9–2.7MB
~54K SLoC