#integer #parser #basic #incremental

tree-sitter-integerbasic

tree-sitter 解析库的 Integer BASIC 语法

4 个稳定版本

2.0.0 2024年7月26日
1.1.1 2024年4月21日
1.0.3 2023年11月27日
1.0.2 2022年10月2日
1.0.1 2022年3月13日

#220 in 文本编辑器

Download history 131/week @ 2024-04-15 45/week @ 2024-04-22 3/week @ 2024-04-29 17/week @ 2024-07-01 141/week @ 2024-07-22 29/week @ 2024-07-29

186 每月下载量
2 个 crate 中使用 (通过 a2kit)

MIT 许可证

1MB
29K SLoC

C 29K SLoC JavaScript 368 SLoC // 0.0% comments Scheme 117 SLoC Rust 30 SLoC // 0.2% comments

Integer BASIC 解析器

这是 tree-sitter-integerbasic 的 rust 绑定。要使用解析器,请在您的包的 Cargo.toml 中包含以下内容

[dependencies]
tree-sitter = "0.22.4"
tree-sitter-integerbasic = "2.0.0"

以下是一个简单的 main.rs 示例

use tree_sitter;
use tree_sitter_integerbasic;

fn main() {
    let code = "10 GOTO 10\n";
    let mut parser = tree_sitter::Parser::new();
    parser.set_language(&tree_sitter_integerbasic::language())
      .expect("Error loading Integer BASIC grammar");
    let tree = parser.parse(code,None).unwrap();

    println!("{}",tree.root_node().to_sexp());
}

这应该会打印出语法树

(source_file (line (linenum) (statement (statement_goto) (integer))))

有关使用 rust 进行解析的更多信息,请参阅一般指南 此处.


lib.rs:

此 crate 为 tree-sitter 解析库提供 Integerbasic 语言支持。

通常,您将使用 language 函数将此语言添加到 tree-sitter Parser,然后使用解析器解析一些代码

let code = r#"
"#;
let mut parser = tree_sitter::Parser::new();
parser.set_language(&tree_sitter_integerbasic::language()).expect("Error loading Integerbasic grammar");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

依赖项

~2.8–4MB
~72K SLoC