tree_sitter_qbasic/
lib.rs1use tree_sitter_language::LanguageFn;
2
3extern "C" {
4 fn tree_sitter_qbasic() -> *const ();
5}
6
7pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_qbasic) };
9
10#[cfg(test)]
11mod tests {
12 #[test]
13 fn test_can_load_grammar() {
14 let mut parser = tree_sitter::Parser::new();
15 parser
16 .set_language(&super::LANGUAGE.into())
17 .expect("Error loading qbasic parser");
18 }
19
20 #[test]
21 fn test_parse_sub_definition() {
22 let mut parser = tree_sitter::Parser::new();
23 parser
24 .set_language(&super::LANGUAGE.into())
25 .expect("Error loading qbasic parser");
26 let source = "SUB Hello\nPRINT \"Hello\"\nEND SUB\n";
27 let tree = parser.parse(source, None).expect("Failed to parse");
28 let root = tree.root_node();
29 assert_eq!(root.kind(), "program");
30 assert!(!root.has_error());
31 }
32}