Return 1 if ANY base_classes entry contains `substr` as a substring. * Used to assert that keywords like "extends" / "implements" / ":" do NOT * appear inside any captured base name. */
| 91 | * Used to assert that keywords like "extends" / "implements" / ":" do NOT |
| 92 | * appear inside any captured base name. */ |
| 93 | static int bases_contain_substr(CBMDefinition *d, const char *substr) { |
| 94 | if (!d->base_classes) |
| 95 | return 0; |
| 96 | for (const char **b = d->base_classes; *b; b++) { |
| 97 | if (strstr(*b, substr)) |
| 98 | return 1; |
| 99 | } |
| 100 | return 0; |
| 101 | } |
| 102 | |
| 103 | /* Count entries in a NULL-terminated base_classes array. */ |
| 104 | static int bases_count(CBMDefinition *d) { |