Skip to main content

Crate php_rs_parser

Crate php_rs_parser 

Source
Expand description

Fast, fault-tolerant PHP parser that produces a fully typed AST.

This crate parses PHP source code (PHP 8.0–8.5) into a php_ast::Program tree, recovering from syntax errors so that downstream tools always receive a complete AST.

§Quick start

let arena = bumpalo::Bump::new();
let result = php_rs_parser::parse(&arena, "<?php echo 'hello';");
assert!(result.errors.is_empty());

§Version-aware parsing

Use parse_versioned to target a specific PHP version. Syntax that requires a higher version is still parsed into the AST, but a diagnostics::ParseError::VersionTooLow diagnostic is emitted.

let arena = bumpalo::Bump::new();
let result = php_rs_parser::parse_versioned(
    &arena,
    "<?php enum Status { case Active; }",
    php_rs_parser::PhpVersion::Php80,
);
assert!(!result.errors.is_empty()); // enums require PHP 8.1

Re-exports§

pub use version::PhpVersion;

Modules§

diagnostics
instrument
Lightweight instrumentation for profiling array parsing, expression parsing, and statement parsing.
phpdoc
PHPDoc comment parser.
source_map
version

Structs§

ParseResult
The result of parsing a PHP source string.

Functions§

parse
Parse PHP source using the latest supported PHP version (currently 8.5).
parse_versioned
Parse source targeting the given PHP version.