| 1033 | } |
| 1034 | |
| 1035 | static bool is_policy_binding(CBMExtractCtx *ctx, TSNode node, |
| 1036 | const CBMOccurrenceSpec *occurrence) { |
| 1037 | switch (occurrence->policy) { |
| 1038 | case CBM_OCCURRENCE_LISP_DEF: |
| 1039 | return is_lisp_def_binding(ctx, node); |
| 1040 | case CBM_OCCURRENCE_COMMONLISP_DEFUN: |
| 1041 | return is_commonlisp_defun_binding(node); |
| 1042 | case CBM_OCCURRENCE_FENNEL_FN: |
| 1043 | return is_fennel_fn_binding(ctx, node); |
| 1044 | case CBM_OCCURRENCE_ELIXIR_DEF: |
| 1045 | return is_elixir_def_binding(ctx, node); |
| 1046 | case CBM_OCCURRENCE_JULIA_FUNCTION: |
| 1047 | return is_first_named_part_of(node, "function_definition"); |
| 1048 | case CBM_OCCURRENCE_WOLFRAM_SET: |
| 1049 | return is_wolfram_lhs(node); |
| 1050 | case CBM_OCCURRENCE_TYPST_LET: |
| 1051 | return is_first_named_part_of(node, "let"); |
| 1052 | case CBM_OCCURRENCE_AGDA_FUNCTION: |
| 1053 | for (TSNode parent = ts_node_parent(node); !ts_node_is_null(parent); |
| 1054 | parent = ts_node_parent(parent)) { |
| 1055 | if (strcmp(ts_node_type(parent), "lhs") == 0) { |
| 1056 | return true; |
| 1057 | } |
| 1058 | } |
| 1059 | return false; |
| 1060 | case CBM_OCCURRENCE_TLAPLUS_OPERATOR: |
| 1061 | return is_tlaplus_binding(node); |
| 1062 | case CBM_OCCURRENCE_COBOL_MOVE: |
| 1063 | return is_cobol_move_destination(node); |
| 1064 | case CBM_OCCURRENCE_HCL_ATTRIBUTE: |
| 1065 | return is_hcl_attribute_binding(node); |
| 1066 | case CBM_OCCURRENCE_ELM_VALUE: |
| 1067 | return is_first_named_part_of(node, "value_declaration"); |
| 1068 | case CBM_OCCURRENCE_RESCRIPT_LET: |
| 1069 | return is_first_named_part_of(node, "let_binding"); |
| 1070 | case CBM_OCCURRENCE_PURESCRIPT_LHS: |
| 1071 | return is_first_named_part_of(node, "function"); |
| 1072 | case CBM_OCCURRENCE_NICKEL_LET: |
| 1073 | return is_first_named_part_of(node, "let_binding") || |
| 1074 | is_first_named_part_of(node, "pattern_fun"); |
| 1075 | case CBM_OCCURRENCE_ERLANG_CLAUSE: |
| 1076 | return is_erlang_clause_binding(node); |
| 1077 | case CBM_OCCURRENCE_NIX_FUNCTION: |
| 1078 | return is_nix_function_binding(node); |
| 1079 | case CBM_OCCURRENCE_MATLAB_ARGUMENTS: |
| 1080 | return is_matlab_argument_binding(node); |
| 1081 | case CBM_OCCURRENCE_LEAN_BINDER: |
| 1082 | return is_lean_binder_name(node); |
| 1083 | case CBM_OCCURRENCE_PASCAL_PROC: |
| 1084 | return is_pascal_proc_binding(node); |
| 1085 | case CBM_OCCURRENCE_TEAL_FUNCTION: |
| 1086 | return is_teal_function_binding(node); |
| 1087 | case CBM_OCCURRENCE_VHDL_INTERFACE: |
| 1088 | return is_vhdl_interface_binding(node); |
| 1089 | case CBM_OCCURRENCE_PINE_FUNCTION: |
| 1090 | return is_pine_function_binding(node); |
| 1091 | case CBM_OCCURRENCE_PKL_DECLARATION: |
| 1092 | return is_pkl_declaration_binding(node); |
no test coverage detected