Skip to content

Zuruuh/php-rust-parser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP-Parser

A handwritten fault-tolerant, recursive-descent parser for PHP written in Rust.

justforfunnoreally.dev badge

Warning - this is still alpha software and the public API is still subject to change. Please use at your own risk.


Usage

Add php-parser-rs in your Cargo.toml's dependencies section

[dependencies] php-parser-rs = { git = "https://github.com/php-rust-tools/parser" }

or use cargo add

cargo add php-parser-rs --git https://github.com/php-rust-tools/parser

Example

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(()) }

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Credits

About

A handwritten fault-tolerant, recursive-descent parser for PHP written in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.9%
  • Just 0.1%