#parser #incremental #parse-tree #sourcepawn

tree-sitter-sourcepawn

sourcepawn grammar for the tree-sitter parsing library

10 releases (5 breaking)

0.7.1 Feb 20, 2024
0.6.0 Jul 23, 2023
0.5.0 Aug 11, 2022
0.4.0 Jul 15, 2022

#119 in Text editors

Download history 5/week @ 2024-01-14 113/week @ 2024-02-18 42/week @ 2024-02-25 2/week @ 2024-03-03 131/week @ 2024-03-31

131 downloads per month
Used in sourcepawn_lsp

MIT license

3.5MB
120K SLoC

C 119K SLoC // 0.0% comments JavaScript 1K SLoC // 0.0% comments Rust 34 SLoC // 0.1% comments

tree-sitter-javascript

This crate provides a SourcePawn grammar for the [tree-sitter][] parsing library. To use this crate, add it to the [dependencies] section of your Cargo.toml file. (Note that you will probably also need to depend on the [tree-sitter][tree-sitter crate] crate to use the parsed result in any useful way.)

[dependencies]
tree-sitter = "0.20"
tree-sitter-sourcepawn = "0.3.0"

Typically, you will use the [language][language func] function to add this grammar to a tree-sitter [Parser][], and then use the parser to parse some code.

The below example demonstrates a simple program that parses a JavaScript function and prints the result to your terminal.

use tree_sitter::Parser;

fn main() {
    let code = "int foo";
    let mut parser = Parser::new();
    parser
        .set_language(tree_sitter_sourcepawn::language())
        .expect("Error loading SourcePawn grammar");
    let parsed = parser.parse(code, None);
    println!("{:#?}", parsed);
}

Dependencies

~2.8–4MB
~72K SLoC