@@ -62,6 +62,11 @@ extern const TSLanguage* tree_sitter_svelte(void);
6262extern const TSLanguage * tree_sitter_meson (void );
6363extern const TSLanguage * tree_sitter_glsl (void );
6464extern const TSLanguage * tree_sitter_ini (void );
65+ // Scientific/math languages
66+ extern const TSLanguage * tree_sitter_matlab (void );
67+ extern const TSLanguage * tree_sitter_lean (void );
68+ extern const TSLanguage * tree_sitter_form (void );
69+ extern const TSLanguage * tree_sitter_magma (void );
6570
6671// -- Empty sentinel --
6772static const char * empty_types [] = {NULL };
@@ -545,6 +550,37 @@ static const char* ini_module_types[] = {"document",NULL};
545550static const char * ini_class_types [] = {"section" ,NULL };
546551static const char * ini_var_types [] = {"setting" ,NULL };
547552
553+ // ==================== MATLAB ====================
554+ static const char * matlab_func_types [] = {"function_definition" ,NULL };
555+ static const char * matlab_class_types [] = {"class_definition" ,NULL };
556+ static const char * matlab_module_types [] = {"source_file" ,NULL };
557+ static const char * matlab_branch_types [] = {"if_statement" ,"for_statement" ,"while_statement" ,"switch_statement" ,"try_statement" ,NULL };
558+ static const char * matlab_var_types [] = {"assignment" ,NULL };
559+
560+ // ==================== LEAN ====================
561+ static const char * lean_func_types [] = {"def" ,"theorem" ,"instance" ,"abbrev" ,NULL };
562+ static const char * lean_class_types [] = {"structure" ,"class_inductive" ,"inductive" ,NULL };
563+ static const char * lean_module_types [] = {"module" ,NULL };
564+ static const char * lean_import_types [] = {"import" ,NULL };
565+ static const char * lean_branch_types [] = {"if" ,"match" ,"do" ,NULL };
566+
567+ // ==================== FORM ====================
568+ static const char * form_func_types [] = {"procedure_definition" ,NULL };
569+ static const char * form_module_types [] = {"source_file" ,NULL };
570+ static const char * form_call_types [] = {"call_statement" ,NULL };
571+ static const char * form_import_types [] = {"include_directive" ,NULL };
572+ static const char * form_branch_types [] = {"if_statement" ,"repeat_statement" ,"do_loop" ,NULL };
573+ static const char * form_var_types [] = {"declaration_statement" ,NULL };
574+ static const char * form_assign_types [] = {"substitution_statement" ,NULL };
575+
576+ // ==================== MAGMA ====================
577+ static const char * magma_func_types [] = {"function_definition" ,"procedure_definition" ,"intrinsic_definition" ,NULL };
578+ static const char * magma_module_types [] = {"source_file" ,NULL };
579+ static const char * magma_call_types [] = {"call_expression" ,NULL };
580+ static const char * magma_import_types [] = {"load_statement" ,NULL };
581+ static const char * magma_branch_types [] = {"if_statement" ,"for_statement" ,"while_statement" ,"repeat_statement" ,"case_statement" ,NULL };
582+ static const char * magma_var_types [] = {"assignment_statement" ,NULL };
583+
548584// ==================== NEW LANG ENV ACCESS ====================
549585static const char * julia_env_funcs [] = {"ENV" ,NULL };
550586static const char * nix_env_funcs [] = {"builtins.getEnv" ,NULL };
@@ -848,6 +884,26 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = {
848884 {CBM_LANG_INI , empty_types , ini_class_types , empty_types , ini_module_types , empty_types ,
849885 empty_types , empty_types , empty_types , ini_var_types , empty_types ,
850886 empty_types , NULL , empty_types , NULL , NULL },
887+
888+ // CBM_LANG_MATLAB (definitions-only, no call graph due to A(1) ambiguity)
889+ {CBM_LANG_MATLAB , matlab_func_types , matlab_class_types , empty_types , matlab_module_types , empty_types ,
890+ empty_types , empty_types , matlab_branch_types , matlab_var_types , matlab_var_types ,
891+ empty_types , NULL , empty_types , NULL , NULL },
892+
893+ // CBM_LANG_LEAN (definitions-only, Lean 4 syntax is runtime-extensible)
894+ {CBM_LANG_LEAN , lean_func_types , lean_class_types , empty_types , lean_module_types , empty_types ,
895+ lean_import_types , empty_types , lean_branch_types , empty_types , empty_types ,
896+ empty_types , NULL , empty_types , NULL , NULL },
897+
898+ // CBM_LANG_FORM
899+ {CBM_LANG_FORM , form_func_types , empty_types , empty_types , form_module_types , form_call_types ,
900+ form_import_types , empty_types , form_branch_types , form_var_types , form_assign_types ,
901+ empty_types , NULL , empty_types , NULL , NULL },
902+
903+ // CBM_LANG_MAGMA
904+ {CBM_LANG_MAGMA , magma_func_types , empty_types , empty_types , magma_module_types , magma_call_types ,
905+ magma_import_types , empty_types , magma_branch_types , magma_var_types , magma_var_types ,
906+ empty_types , NULL , empty_types , NULL , NULL },
851907};
852908
853909const CBMLangSpec * cbm_lang_spec (CBMLanguage lang ) {
@@ -916,6 +972,10 @@ const TSLanguage* cbm_ts_language(CBMLanguage lang) {
916972 case CBM_LANG_MESON : return tree_sitter_meson ();
917973 case CBM_LANG_GLSL : return tree_sitter_glsl ();
918974 case CBM_LANG_INI : return tree_sitter_ini ();
975+ case CBM_LANG_MATLAB : return tree_sitter_matlab ();
976+ case CBM_LANG_LEAN : return tree_sitter_lean ();
977+ case CBM_LANG_FORM : return tree_sitter_form ();
978+ case CBM_LANG_MAGMA : return tree_sitter_magma ();
919979 default : return NULL ;
920980 }
921981}
0 commit comments