#tree-sitter #bos #incremental-parser #parser #tree-sitter-bos

tree-sitter-bos

DSL scripting language for controlling unit animations and state. For the Recoil engine.

2 stable releases

1.0.1 Mar 28, 2025

#1137 in Parser implementations

Download history 218/week @ 2025-03-26 19/week @ 2025-04-02

237 downloads per month

GPL-3.0-or-later

1.5MB
43K SLoC

C 43K SLoC JavaScript 559 SLoC // 0.1% comments Scheme 107 SLoC Rust 33 SLoC // 0.1% comments

This crate provides Bos language support for the tree-sitter parsing library.

Typically, you will use the [LANGUAGE][] constant to add this language to a tree-sitter Parser, and then use the parser to parse some code:

let code = r#"
"#;
let mut parser = tree_sitter::Parser::new();
let language = tree_sitter_bos::LANGUAGE;
parser
    .set_language(&language.into())
    .expect("Error loading Bos Unit Animation Script parser");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

tree-sitter-bos

Tree Sitter grammar for the BOS scripting language.

BOS

DSL scripting language for controlling unit animations and state in the Recoil game engine.

Has origins stretching all way back to Total Annhilation, though it's gone through years and years of modifications and improvements.

Dependencies

~4–280KB