| 451 | }; |
| 452 | |
| 453 | static int py_classify_direction(const char *transport, const char *method) { |
| 454 | for (int i = 0; py_method_table[i].method != NULL; i++) { |
| 455 | const char *t = py_method_table[i].transport; |
| 456 | if (t && strcmp(t, transport) != 0) { |
| 457 | continue; |
| 458 | } |
| 459 | if (strcmp(py_method_table[i].method, method) == 0) { |
| 460 | return py_method_table[i].direction; |
| 461 | } |
| 462 | } |
| 463 | return CHAN_DIR_UNKNOWN; |
| 464 | } |
| 465 | |
| 466 | static void py_process_call(CBMExtractCtx *ctx, TSNode call, const chan_const_table_t *consts) { |
| 467 | /* Python call: attribute { object, attribute }, argument_list */ |