#parser #incremental #parse-tree #sourcepawn

tree-sitter-sourcepawn

sourcepawn grammar for the tree-sitter parsing library

13 releases

new 0.7.4 May 17, 2024
0.7.1 Feb 20, 2024
0.6.0 Jul 23, 2023
0.5.0 Aug 11, 2022
0.4.0 Jul 15, 2022

#172 in Text editors

Download history 103/week @ 2024-02-16 42/week @ 2024-02-23 12/week @ 2024-03-01 39/week @ 2024-03-29 219/week @ 2024-04-12 1/week @ 2024-04-19 273/week @ 2024-05-10

279 downloads per month
Used in sourcepawn_lsp

MIT license

3.5MB
119K SLoC

C 118K 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