From: K.Kosako Date: Wed, 2 Aug 2017 06:12:53 +0000 (+0900) Subject: removee onig_get_tiny_min_len() X-Git-Tag: v6.5.0^2~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f5a6a550254ba613ab028ab12495e75a19b0c700;p=onig removee onig_get_tiny_min_len() --- diff --git a/src/regcomp.c b/src/regcomp.c index 3a03390..45dc3b8 100644 --- a/src/regcomp.c +++ b/src/regcomp.c @@ -2948,111 +2948,6 @@ tree_min_len(Node* node, ScanEnv* env) return len; } -extern OnigLen -onig_get_tiny_min_len(Node* node, unsigned int inhibit_types, int* invalid_node) -{ - OnigLen len; - OnigLen tmin; - - if ((NODE_TYPE2BIT(NODE_TYPE(node)) & inhibit_types) != 0) - *invalid_node = 1; - - len = 0; - switch (NODE_TYPE(node)) { -#ifdef USE_CALL - case NODE_CALL: - /* fall */ -#endif - case NODE_BACKREF: - break; - - case NODE_LIST: - do { - tmin = onig_get_tiny_min_len(NODE_CAR(node), inhibit_types, invalid_node); - len = distance_add(len, tmin); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ALT: - { - Node *x, *y; - y = node; - do { - x = NODE_CAR(y); - tmin = onig_get_tiny_min_len(x, inhibit_types, invalid_node); - if (y == node) len = tmin; - else if (len > tmin) len = tmin; - } while (IS_NOT_NULL(y = NODE_CDR(y))); - } - break; - - case NODE_STRING: - { - StrNode* sn = STR_(node); - len = sn->end - sn->s; - } - break; - - case NODE_CTYPE: - case NODE_CCLASS: - len = 1; - break; - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - - if (qn->lower > 0) { - len = onig_get_tiny_min_len(NODE_BODY(node), inhibit_types, invalid_node); - len = distance_multiply(len, qn->lower); - } - } - break; - - case NODE_ENCLOSURE: - { - EnclosureNode* en = ENCLOSURE_(node); - switch (en->type) { - case ENCLOSURE_MEMORY: - case ENCLOSURE_OPTION: - case ENCLOSURE_STOP_BACKTRACK: - len = onig_get_tiny_min_len(NODE_BODY(node), inhibit_types, invalid_node); - break; - - case ENCLOSURE_IF_ELSE: - { - int elen; - len = onig_get_tiny_min_len(NODE_BODY(node), inhibit_types, invalid_node); - if (IS_NOT_NULL(en->te.Then)) - len = distance_add(len, - onig_get_tiny_min_len(en->te.Then, inhibit_types, invalid_node)); - if (IS_NOT_NULL(en->te.Else)) - elen = onig_get_tiny_min_len(en->te.Else, inhibit_types, invalid_node); - else elen = 0; - - if (elen < len) len = elen; - } - break; - } - } - break; - - case NODE_GIMMICK: - { - GimmickNode* g = GIMMICK_(node); - if (g->type == GIMMICK_FAIL) - return INFINITE_LEN; - } - /* fall */ - - case NODE_ANCHOR: - default: - break; - } - - return len; -} - static OnigLen tree_max_len(Node* node, ScanEnv* env) {