| 1016 | } |
| 1017 | |
| 1018 | static bool is_policy_binding(CBMExtractCtx *ctx, TSNode node, |
| 1019 | const CBMOccurrenceSpec *occurrence) { |
| 1020 | switch (occurrence->policy) { |
| 1021 | case CBM_OCCURRENCE_LISP_DEF: |
| 1022 | return is_lisp_def_binding(ctx, node); |
| 1023 | case CBM_OCCURRENCE_COMMONLISP_DEFUN: |
| 1024 | return is_commonlisp_defun_binding(node); |
| 1025 | case CBM_OCCURRENCE_FENNEL_FN: |
| 1026 | return is_fennel_fn_binding(ctx, node); |
| 1027 | case CBM_OCCURRENCE_ELIXIR_DEF: |
| 1028 | return is_elixir_def_binding(ctx, node); |
| 1029 | case CBM_OCCURRENCE_JULIA_FUNCTION: |
| 1030 | return is_first_named_part_of(node, "function_definition"); |
| 1031 | case CBM_OCCURRENCE_WOLFRAM_SET: |
| 1032 | return is_wolfram_lhs(node); |
| 1033 | case CBM_OCCURRENCE_TYPST_LET: |
| 1034 | return is_first_named_part_of(node, "let"); |
| 1035 | case CBM_OCCURRENCE_AGDA_FUNCTION: |
| 1036 | for (TSNode parent = ts_node_parent(node); !ts_node_is_null(parent); |
| 1037 | parent = ts_node_parent(parent)) { |
| 1038 | if (strcmp(ts_node_type(parent), "lhs") == 0) { |
| 1039 | return true; |
| 1040 | } |
| 1041 | } |
| 1042 | return false; |
| 1043 | case CBM_OCCURRENCE_TLAPLUS_OPERATOR: |
| 1044 | return is_tlaplus_binding(node); |
| 1045 | case CBM_OCCURRENCE_COBOL_MOVE: |
| 1046 | return is_cobol_move_destination(node); |
| 1047 | case CBM_OCCURRENCE_HCL_ATTRIBUTE: |
| 1048 | return is_hcl_attribute_binding(node); |
| 1049 | case CBM_OCCURRENCE_ELM_VALUE: |
| 1050 | return is_first_named_part_of(node, "value_declaration"); |
| 1051 | case CBM_OCCURRENCE_RESCRIPT_LET: |
| 1052 | return is_first_named_part_of(node, "let_binding"); |
| 1053 | case CBM_OCCURRENCE_PURESCRIPT_LHS: |
| 1054 | return is_first_named_part_of(node, "function"); |
| 1055 | case CBM_OCCURRENCE_NICKEL_LET: |
| 1056 | return is_first_named_part_of(node, "let_binding") || |
| 1057 | is_first_named_part_of(node, "pattern_fun"); |
| 1058 | case CBM_OCCURRENCE_ERLANG_CLAUSE: |
| 1059 | return is_erlang_clause_binding(node); |
| 1060 | case CBM_OCCURRENCE_NIX_FUNCTION: |
| 1061 | return is_nix_function_binding(node); |
| 1062 | case CBM_OCCURRENCE_MATLAB_ARGUMENTS: |
| 1063 | return is_matlab_argument_binding(node); |
| 1064 | case CBM_OCCURRENCE_LEAN_BINDER: |
| 1065 | return is_lean_binder_name(node); |
| 1066 | case CBM_OCCURRENCE_PASCAL_PROC: |
| 1067 | return is_pascal_proc_binding(node); |
| 1068 | case CBM_OCCURRENCE_TEAL_FUNCTION: |
| 1069 | return is_teal_function_binding(node); |
| 1070 | case CBM_OCCURRENCE_VHDL_INTERFACE: |
| 1071 | return is_vhdl_interface_binding(node); |
| 1072 | case CBM_OCCURRENCE_PINE_FUNCTION: |
| 1073 | return is_pine_function_binding(node); |
| 1074 | case CBM_OCCURRENCE_LLVM_FUNCTION: |
| 1075 | for (TSNode parent = ts_node_parent(node); !ts_node_is_null(parent); |
no test coverage detected