| 38 |
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", |
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", |
| 39 |
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", |
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", |
| 40 |
"*", "*?", "+", "+?", "?", "??", "{", "{", |
"*", "*?", "+", "+?", "?", "??", "{", "{", |
| 41 |
"class", "Ref", |
"class", "negclass", "Ref", |
| 42 |
"Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", "Once", |
"Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", "Once", |
| 43 |
"Brazero", "Braminzero", "Bra" |
"Brazero", "Braminzero", "Bra" |
| 44 |
}; |
}; |
| 161 |
goto CLASS_REF_REPEAT; |
goto CLASS_REF_REPEAT; |
| 162 |
|
|
| 163 |
case OP_CLASS: |
case OP_CLASS: |
| 164 |
|
case OP_NEGCLASS: |
| 165 |
{ |
{ |
| 166 |
int i, min, max; |
int i, min, max; |
| 167 |
|
if (*code++ == OP_CLASS) printf(" ["); |
| 168 |
code++; |
else printf(" ^["); |
|
printf(" ["); |
|
| 169 |
|
|
| 170 |
for (i = 0; i < 256; i++) |
for (i = 0; i < 256; i++) |
| 171 |
{ |
{ |
| 404 |
case 'P': do_posix = 1; break; |
case 'P': do_posix = 1; break; |
| 405 |
case 'S': do_study = 1; break; |
case 'S': do_study = 1; break; |
| 406 |
case 'I': study_options |= PCRE_CASELESS; break; |
case 'I': study_options |= PCRE_CASELESS; break; |
| 407 |
|
case 'U': options |= PCRE_UNGREEDY; break; |
| 408 |
case 'X': options |= PCRE_EXTRA; break; |
case 'X': options |= PCRE_EXTRA; break; |
| 409 |
case '\n': case ' ': break; |
case '\n': case ' ': break; |
| 410 |
default: |
default: |
| 496 |
{ |
{ |
| 497 |
fprintf(outfile, "Identifying subpattern count = %d\n", count); |
fprintf(outfile, "Identifying subpattern count = %d\n", count); |
| 498 |
if (options == 0) fprintf(outfile, "No options\n"); |
if (options == 0) fprintf(outfile, "No options\n"); |
| 499 |
else fprintf(outfile, "Options:%s%s%s%s%s%s%s\n", |
else fprintf(outfile, "Options:%s%s%s%s%s%s%s%s\n", |
| 500 |
((options & PCRE_ANCHORED) != 0)? " anchored" : "", |
((options & PCRE_ANCHORED) != 0)? " anchored" : "", |
| 501 |
((options & PCRE_CASELESS) != 0)? " caseless" : "", |
((options & PCRE_CASELESS) != 0)? " caseless" : "", |
| 502 |
((options & PCRE_EXTENDED) != 0)? " extended" : "", |
((options & PCRE_EXTENDED) != 0)? " extended" : "", |
| 503 |
((options & PCRE_MULTILINE) != 0)? " multiline" : "", |
((options & PCRE_MULTILINE) != 0)? " multiline" : "", |
| 504 |
((options & PCRE_DOTALL) != 0)? " dotall" : "", |
((options & PCRE_DOTALL) != 0)? " dotall" : "", |
| 505 |
((options & PCRE_DOLLAR_ENDONLY) != 0)? " dollar_endonly" : "", |
((options & PCRE_DOLLAR_ENDONLY) != 0)? " dollar_endonly" : "", |
| 506 |
((options & PCRE_EXTRA) != 0)? " extra" : ""); |
((options & PCRE_EXTRA) != 0)? " extra" : "", |
| 507 |
|
((options & PCRE_UNGREEDY) != 0)? " ungreedy" : ""); |
| 508 |
if (first_char == -1) |
if (first_char == -1) |
| 509 |
{ |
{ |
| 510 |
fprintf(outfile, "First char at start or follows \\n\n"); |
fprintf(outfile, "First char at start or follows \\n\n"); |