You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(engine): Perl language extractor (.pl/.pm/.t files)
Adds tree-sitter-perl grammar (tree-sitter-perl/tree-sitter-perl v1.0.2)
wired through the standard LanguageExtractor pattern. Extracts named
subroutines, function calls, package declarations, and use/require
imports.
-`subroutine_declaration_statement`: namedChild[0]=`bareword` (name), namedChild[1]=`block` (body); no named fields
47
+
-`function_call_expression`: child[0] has type `function` (callee); no named fields
48
+
-`ambiguous_function_call_expression`: like function_call_expression but wraps e.g. `print foo()`; child[0] type=`function`
49
+
-`method_call_expression`: `$obj->method()` or `Class->method()`; child[2] type=`method` (method name)
50
+
-`use_statement`: namedChild[0] is a `package` node holding the module name
51
+
-`require_expression`: namedChild[0] is a `bareword` holding the module name
52
+
-`package_statement`: namedChild[0] is a `package` node holding the package name (re-uses `package` type for both the keyword and the identifier)
53
+
- The grammar does NOT use named fields (childForFieldName returns null); all extraction uses `namedChild(i)` or `child(i)` by index
54
+
-`resolveName` hook is used to extract callee names from all three call node types
55
+
40
56
### MATLAB (added 2026-05-30)
41
57
- WASM grammar: `engine/src/extraction/wasm/tree-sitter-matlab.wasm` built locally from acristoffers/tree-sitter-matlab (upstream ships only Python wheels)
42
58
- Extension map: `.m` is shared with Objective-C; disambiguated by `detectLanguage(filePath, content)` content heuristic that checks for ObjC markers (`@interface`, `@implementation`, `#import`, `#include`) in the first 4 KB. `EXTENSION_MAP` still maps `.m` → `objc` as the default; the heuristic overrides to `matlab` only when no ObjC markers are found.
0 commit comments