code_analyze_core/languages/
fortran.rs1pub const ELEMENT_QUERY: &str = r"
10(subroutine
11 (subroutine_statement) @function)
12
13(function
14 (function_statement) @function)
15";
16
17pub const CALL_QUERY: &str = r"
19(subroutine_call
20 (identifier) @call)
21
22(call_expression
23 (identifier) @call)
24";
25
26pub const REFERENCE_QUERY: &str = r"
28(name) @type_ref
29";
30
31pub const IMPORT_QUERY: &str = r"
33(use_statement
34 (module_name) @import_path)
35";
36
37use tree_sitter::Node;
38
39#[must_use]
42pub fn extract_inheritance(_node: &Node, _source: &str) -> Vec<String> {
43 Vec::new()
44}
45
46#[cfg(all(test, feature = "lang-fortran"))]
47mod tests {
48 use super::*;
49 use tree_sitter::Parser;
50
51 fn parse_fortran(source: &str) -> (tree_sitter::Tree, Vec<u8>) {
52 let mut parser = Parser::new();
53 parser
54 .set_language(&tree_sitter_fortran::LANGUAGE.into())
55 .expect("failed to set Fortran language");
56 let source_bytes = source.as_bytes().to_vec();
57 let tree = parser.parse(&source_bytes, None).expect("failed to parse");
58 (tree, source_bytes)
59 }
60
61 #[test]
62 fn test_extract_inheritance_returns_empty() {
63 let source = "PROGRAM test\nEND PROGRAM test\n";
65 let (tree, _source_bytes) = parse_fortran(source);
66 let root = tree.root_node();
67
68 let result = extract_inheritance(&root, source);
70
71 assert!(result.is_empty());
73 }
74}