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"); |