difftastic/vendored_parsers/tree-sitter-php/bindings/rust
Wilfred Hughes 08b3ff138f Rename vendor/ directory
Closes #453
2023-01-10 08:35:01 +07:00
..
README.md Rename vendor/ directory 2023-01-10 08:35:01 +07:00
build.rs Rename vendor/ directory 2023-01-10 08:35:01 +07:00
lib.rs Rename vendor/ directory 2023-01-10 08:35:01 +07:00

README.md

tree-sitter-php

This crate provides support of the PHP language for the tree-sitter parsing library. To use this crate, add it to the [dependencies] section of your Cargo.toml file. As this crate is not (yet) published to the central registry, you will have to specify it as a git dependency, currently we suggest using the master branch.

You will also need the tree-sitter crate to do the actual parsing here.

[dependencies]
tree-sitter = "0.19"
tree-sitter-php = { git = "https://github.com/tree-sitter/tree-sitter-php.git", branch = "master" }

To you the parser, you need to obtain an instance of a tree_sitter::Language struct for php. The language() function provides this. Passing this struct to a tree_sitter::Parser will enable it to parse PHP.

use tree_sitter::Parser;

fn main() {
    let code = r#"
    function double(int $x) {
        return $x * 2;
    }
"#;
    let mut parser = Parser::new();
    parser
        .set_language(tree_sitter_php::language())
        .expect("Error loading PHP parsing support");
    let parsed = parser.parse(code, None);
    println!("{:#?}", parsed);
}

If you have any questions, please reach out to us in the tree-sitter discussions page.