case NODE_CTYPE:
if (CTYPE_(node)->ctype == CTYPE_ANYCHAR)
break;
- /* through */
+ /* fall */
case NODE_CCLASS:
if (exact == 0) {
n = node;
static int
subexp_recursive_check(Node* node)
{
- int r = 0;
+ int r;
switch (NODE_TYPE(node)) {
case NODE_LIST:
case NODE_ALT:
+ r = 0;
do {
r |= subexp_recursive_check(NODE_CAR(node));
} while (IS_NOT_NULL(node = NODE_CDR(node)));
break;
- case NODE_QTFR:
- r = subexp_recursive_check(NODE_BODY(node));
- break;
-
case NODE_ANCHOR:
- {
- AnchorNode* an = ANCHOR_(node);
- if (ANCHOR_HAS_BODY(an))
- r = subexp_recursive_check(NODE_ANCHOR_BODY(an));
+ if (! ANCHOR_HAS_BODY(ANCHOR_(node))) {
+ r = 0;
+ break;
}
+ /* fall */
+ case NODE_QTFR:
+ r = subexp_recursive_check(NODE_BODY(node));
break;
case NODE_CALL:
break;
default:
+ r = 0;
break;
}