113 i->string =
malloc(strlen(
string) + 1);
114 strcpy(
i->string,
string);
123 i->lasts =
malloc(
sizeof(
char) *
i->marks_slots);
143 strncpy(
i->string,
string,
length);
153 i->lasts =
malloc(
sizeof(
char) *
i->marks_slots);
182 i->lasts =
malloc(
sizeof(
char) *
i->marks_slots);
210 i->lasts =
malloc(
sizeof(
char) *
i->marks_slots);
233 (
char*)
p >= (
char*)(
i->mem) &&
245 if (!
i->mem_full[
i->mem_index]) {
246 p = (
void*)(
i->mem +
i->mem_index);
247 i->mem_full[
i->mem_index] = 1;
252 }
while (j !=
i->mem_index);
303 if (
i->backtrack < 1) {
return; }
307 if (
i->marks_num >
i->marks_slots) {
308 i->marks_slots =
i->marks_num +
i->marks_num / 2;
310 i->lasts =
realloc(
i->lasts,
sizeof(
char) *
i->marks_slots);
313 i->marks[
i->marks_num-1] =
i->state;
314 i->lasts[
i->marks_num-1] =
i->last;
325 if (
i->backtrack < 1) {
return; }
329 if (
i->marks_slots >
i->marks_num +
i->marks_num / 2
335 i->lasts =
realloc(
i->lasts,
sizeof(
char) *
i->marks_slots);
339 for (j = strlen(
i->buffer) - 1; j >= 0; j--)
340 ungetc(
i->buffer[j],
i->file);
350 if (
i->backtrack < 1) {
return; }
352 i->state =
i->marks[
i->marks_num-1];
353 i->last =
i->lasts[
i->marks_num-1];
363 return i->state.pos < (
long)(strlen(
i->buffer) +
i->marks[0].pos);
367 return i->buffer[
i->state.pos -
i->marks[0].pos];
380 if (!
i->buffer) {
c = getc(
i->file);
return c; }
403 if (feof(
i->file)) {
return '\0'; }
412 if (feof(
i->file)) {
return '\0'; }
421 if (feof(
i->file)) {
return '\0'; }
442 if (!
i->buffer) { ungetc(
c,
i->file);
break; }
459 i->buffer =
realloc(
i->buffer, strlen(
i->buffer) + 2);
460 i->buffer[strlen(
i->buffer) + 1] =
'\0';
461 i->buffer[strlen(
i->buffer) + 0] =
c;
550 return i->last ==
'\0';
577 for (
i = 0;
i <
x->expected_num;
i++) {
free(
x->expected[
i]); }
590 fprintf(
f,
"%s",
str);
596 int left = ((*max) - (*pos));
599 if (left < 0) { left = 0;}
614 case '\a':
return "bell";
615 case '\b':
return "backspace";
616 case '\f':
return "formfeed";
617 case '\r':
return "carriage return";
618 case '\v':
return "vertical tab";
619 case '\0':
return "end of input";
620 case '\n':
return "newline";
621 case '\t':
return "tab";
622 case ' ' :
return "space";
639 "%s: error: %s\n",
x->filename,
x->failure);
644 "%s:%li:%li: error: expected ",
x->filename,
x->state.row+1,
x->state.col+1);
648 if (
x->expected_num >= 2) {
650 for (
i = 0;
i <
x->expected_num-2;
i++) {
655 x->expected[
x->expected_num-2],
656 x->expected[
x->expected_num-1]);
668 if (
i->suppress) {
return NULL; }
671 strcpy(
x->filename,
i->filename);
676 strcpy(
x->expected[0], expected);
684 if (
i->suppress) {
return NULL; }
687 strcpy(
x->filename,
i->filename);
692 strcpy(
x->failure, failure);
705 x->failure =
malloc(strlen(failure) + 1);
706 strcpy(
x->failure, failure);
713 if (
x ==
NULL) {
return; }
714 for (j = 0; j <
x->expected_num; j++) {
mpc_free(
i,
x->expected[j]); }
723 for (j = 0; j <
x->expected_num; j++) {
735 for (j = 0; j <
x->expected_num; j++) {
736 if (strcmp(
x->expected[j], expected) == 0) {
return 1; }
744 x->expected =
mpc_realloc(
i,
x->expected,
sizeof(
char*) *
x->expected_num);
745 x->expected[
x->expected_num-1] =
mpc_malloc(
i, strlen(expected) + 1);
746 strcpy(
x->expected[
x->expected_num-1], expected);
755 for (j = 0; j <
n; j++) {
756 if (
x[j] !=
NULL) { fst = j; }
759 if (fst == -1) {
return NULL; }
767 strcpy(
e->filename,
x[fst]->filename);
769 for (j = 0; j <
n; j++) {
770 if (
x[j] ==
NULL) {
continue; }
771 if (
x[j]->
state.pos >
e->state.pos) {
e->state =
x[j]->state; }
774 for (j = 0; j <
n; j++) {
775 if (
x[j] ==
NULL) {
continue; }
776 if (
x[j]->
state.pos <
e->state.pos) {
continue; }
780 strcpy(
e->failure,
x[j]->failure);
784 e->received =
x[j]->received;
786 for (
k = 0;
k <
x[j]->expected_num;
k++) {
793 for (j = 0; j <
n; j++) {
794 if (
x[j] ==
NULL) {
continue; }
809 if (
x->expected_num == 0) {
812 x->expected =
mpc_realloc(
i,
x->expected,
sizeof(
char*) *
x->expected_num);
817 else if (
x->expected_num == 1) {
820 strcat(
expect,
x->expected[0]);
826 else if (
x->expected_num > 1) {
829 for (j = 0; j <
x->expected_num-2; j++) {
830 l += strlen(
x->expected[j]) + strlen(
", ");
832 l += strlen(
x->expected[
x->expected_num-2]);
834 l += strlen(
x->expected[
x->expected_num-1]);
839 for (j = 0; j <
x->expected_num-2; j++) {
842 strcat(
expect,
x->expected[
x->expected_num-2]);
844 strcat(
expect,
x->expected[
x->expected_num-1]);
846 for (j = 0; j <
x->expected_num; j++) {
mpc_free(
i,
x->expected[j]); }
849 x->expected =
mpc_realloc(
i,
x->expected,
sizeof(
char*) *
x->expected_num);
863 int digits =
n/10 + 1;
967 for (j = 0; j <
n; j++) {
if (j !=
x) {
mpc_free(
i, xs[j]); } }
979 for (j = 0; j <
n; j++) { l += strlen(xs[j]); }
981 for (j = 1; j <
n; j++) { strcat(xs[0], xs[j]);
mpc_free(
i, xs[j]); }
1005 for (j = 0; j <
n; j++) { xs[j] =
mpc_export(
i, xs[j]); }
1039 #define MPC_SUCCESS(x) r->output = x; return 1
1040 #define MPC_FAILURE(x) r->error = x; return 0
1041 #define MPC_PRIMITIVE(x) \
1042 if (x) { MPC_SUCCESS(r->output); } \
1043 else { MPC_FAILURE(NULL); }
1045 #define MPC_MAX_RECURSION_DEPTH 1000
1101 if (
p->data.check.f(&
r->output)) {
1113 if (
p->data.check_with.f(&
r->output,
p->data.check_with.d)) {
1173 results = results_stk;
1178 results_slots = j + j / 2;
1181 }
else if (j >= results_slots) {
1182 results_slots = j + j / 2;
1195 results = results_stk;
1200 results_slots = j + j / 2;
1203 }
else if (j >= results_slots) {
1204 results_slots = j + j / 2;
1230 if (j ==
p->data.repeat.n) {
break; }
1233 if (j ==
p->data.repeat.n) {
1238 for (
k = 0;
k < j;
k++) {
1256 for (j = 0; j <
p->data.or.n; j++) {
1277 for (j = 0; j <
p->data.and.n; j++) {
1280 for (
k = 0;
k < j;
k++) {
1305 #undef MPC_PRIMITIVE
1378 for (
i = 0;
i <
p->data.or.n;
i++) {
1381 free(
p->data.or.xs);
1388 for (
i = 0;
i <
p->data.and.n;
i++) {
1391 free(
p->data.and.xs);
1392 free(
p->data.and.dxs);
1398 if (
p->retained && !force) {
return; }
1407 free(
p->data.string.x);
1421 free(
p->data.expect.m);
1435 free(
p->data.check.e);
1440 free(
p->data.check_with.e);
1484 strcpy(
p->name,
name);
1492 if (
a->retained) {
return a; }
1495 p->retained =
a->retained;
1500 p->name =
malloc(strlen(
a->name)+1);
1501 strcpy(
p->name,
a->name);
1507 p->data.fail.m =
malloc(strlen(
a->data.fail.m)+1);
1508 strcpy(
p->data.fail.m,
a->data.fail.m);
1514 p->data.string.x =
malloc(strlen(
a->data.string.x)+1);
1515 strcpy(
p->data.string.x,
a->data.string.x);
1528 p->data.expect.x =
mpc_copy(
a->data.expect.x);
1529 p->data.expect.m =
malloc(strlen(
a->data.expect.m)+1);
1530 strcpy(
p->data.expect.m,
a->data.expect.m);
1536 p->data.repeat.x =
mpc_copy(
a->data.repeat.x);
1541 for (
i = 0;
i <
a->data.or.n;
i++) {
1547 for (
i = 0;
i <
a->data.and.n;
i++) {
1551 for (
i = 0;
i <
a->data.and.n-1;
i++) {
1552 p->data.and.dxs[
i] =
a->data.and.dxs[
i];
1558 p->data.check.e =
malloc(strlen(
a->data.check.e)+1);
1559 strcpy(
p->data.check.e,
a->data.check.e);
1562 p->data.check_with.x =
mpc_copy(
a->data.check_with.x);
1563 p->data.check_with.e =
malloc(strlen(
a->data.check_with.e)+1);
1564 strcpy(
p->data.check_with.e,
a->data.check_with.e);
1619 p->data.fail.m =
malloc(strlen(
m) + 1);
1620 strcpy(
p->data.fail.m,
m);
1673 p->data.lift.lf = lf;
1680 p->data.anchor.f =
f;
1693 p->data.expect.x =
a;
1694 p->data.expect.m =
malloc(strlen(expected) + 1);
1695 strcpy(
p->data.expect.m, expected);
1732 p->data.expect.x =
a;
1750 p->data.single.x =
c;
1757 p->data.range.x =
s;
1758 p->data.range.y =
e;
1765 p->data.string.x =
malloc(strlen(
s) + 1);
1766 strcpy(
p->data.string.x,
s);
1773 p->data.string.x =
malloc(strlen(
s) + 1);
1774 strcpy(
p->data.string.x,
s);
1782 p->data.satisfy.f =
f;
1783 return mpc_expectf(
p,
"character satisfying function %p",
f);
1789 p->data.string.x =
malloc(strlen(
s) + 1);
1790 strcpy(
p->data.string.x,
s);
1801 p->data.apply.x =
a;
1802 p->data.apply.f =
f;
1809 p->data.apply_to.x =
a;
1810 p->data.apply_to.f =
f;
1811 p->data.apply_to.d =
x;
1818 p->data.check.x =
a;
1819 p->data.check.dx = da;
1820 p->data.check.f =
f;
1821 p->data.check.e =
malloc(strlen(
e) + 1);
1822 strcpy(
p->data.check.e,
e);
1829 p->data.check_with.x =
a;
1830 p->data.check_with.dx = da;
1831 p->data.check_with.f =
f;
1832 p->data.check_with.d =
x;
1833 p->data.check_with.e =
malloc(strlen(
e) + 1);
1834 strcpy(
p->data.check_with.e,
e);
1873 p->data.predict.x =
a;
1881 p->data.not.dx = da;
1882 p->data.not.lf = lf;
1894 p->data.not.lf = lf;
1905 p->data.repeat.x =
a;
1906 p->data.repeat.f =
f;
1913 p->data.repeat.x =
a;
1914 p->data.repeat.f =
f;
1921 p->data.repeat.n =
n;
1922 p->data.repeat.f =
f;
1923 p->data.repeat.x =
a;
1924 p->data.repeat.dx = da;
1940 for (
i = 0;
i <
n;
i++) {
1962 for (
i = 0;
i <
n;
i++) {
1965 for (
i = 0;
i < (
n-1);
i++) {
1990 const char* word =
"abcdefghijklmnopqrstuvwxyz"
1991 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
1993 if ( strchr(word, next) && prev ==
'\0') {
return 1; }
1994 if ( strchr(word, prev) && next ==
'\0') {
return 1; }
1995 if ( strchr(word, next) && !strchr(word, prev)) {
return 1; }
1996 if (!strchr(word, next) && strchr(word, prev)) {
return 1; }
2002 return prev ==
'\n';
2167 if (xs[1] ==
NULL) {
return xs[0]; }
2168 else {
return mpc_or(2, xs[0], xs[1]); }
2174 for (
i = 0;
i <
n;
i++) {
2183 if (xs[1] ==
NULL) {
return xs[0]; }
2184 switch(((
char*)xs[1])[0])
2215 default:
return NULL;
2221 int mode = *((
int*)data);
2275 case '-':
return "-";
2276 case 'a':
return "\a";
2277 case 'f':
return "\f";
2278 case 'n':
return "\n";
2279 case 'r':
return "\r";
2280 case 't':
return "\t";
2281 case 'v':
return "\v";
2282 case 'b':
return "\b";
2283 case 'd':
return "0123456789";
2284 case 's':
return " \f\n\r\t\v";
2285 case 'w':
return "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
2286 default:
return NULL;
2297 int comp =
s[0] ==
'^' ? 1 : 0;
2304 for (
i = comp;
i < strlen(
s);
i++){
2321 else if (
s[
i] ==
'-') {
2322 if (
s[
i+1] ==
'\0' ||
i == 0) {
2362 mpc_parser_t *Regex, *Term, *Factor, *Base, *Range, *RegexEnclose;
2408 if(!
mpc_parse(
"<mpc_re_compiler>", re, RegexEnclose, &
r)) {
2410 err_out =
mpc_failf(
"Invalid Regex: %s", err_msg);
2416 mpc_cleanup(6, RegexEnclose, Regex, Term, Factor, Base, Range);
2435 int *y =
malloc(
sizeof(
int));
2436 *y = strtol(
x,
NULL, 10);
2442 int *y =
malloc(
sizeof(
int));
2443 *y = strtol(
x,
NULL, 16);
2449 int *y =
malloc(
sizeof(
int));
2450 *y = strtol(
x,
NULL, 8);
2456 float *y =
malloc(
sizeof(
float));
2457 *y = strtod(
x,
NULL);
2464 while (
isspace((
unsigned char)*
s)) {
2465 memmove(
s,
s+1, strlen(
s));
2472 size_t l = strlen(
s);
2473 while (l > 0 &&
isspace((
unsigned char)
s[l-1])) {
2484 '\a',
'\b',
'\f',
'\n',
'\r',
2485 '\t',
'\v',
'\\',
'\'',
'\"',
'\0'};
2488 "\\a",
"\\b",
"\\f",
"\\n",
"\\r",
"\\t",
2489 "\\v",
"\\\\",
"\\'",
"\\\"",
"\\0",
NULL};
2524 y =
realloc(y, strlen(y) + 2);
2525 buff[0] = *
s; buff[1] =
'\0';
2552 y =
realloc(y, strlen(y) + 1 + 1);
2553 buff[0] =
input[
i]; buff[1] =
'\0';
2563 y =
realloc(y, strlen(y) + 1 + 1);
2564 buff[0] = *
s; buff[1] =
'\0';
2568 if (*
s ==
'\0') {
break; }
2631 for (
i = 0;
i <
n;
i++) {
2642 for (
i = 0;
i <
n;
i++) {
2652 if (
n == 0) {
return calloc(1, 1); }
2654 for (
i = 0;
i <
n;
i++) { l += strlen(xs[
i]); }
2656 xs[0] =
realloc(xs[0], l + 1);
2658 for (
i = 1;
i <
n;
i++) {
2659 strcat(xs[0], xs[
i]);
free(xs[
i]);
2666 int **vs = (
int**)xs;
2669 switch(((
char*)xs[1])[0])
2671 case '*': { *vs[0] *= *vs[2]; };
break;
2672 case '/': { *vs[0] /= *vs[2]; };
break;
2673 case '%': { *vs[0] %= *vs[2]; };
break;
2674 case '+': { *vs[0] += *vs[2]; };
break;
2675 case '-': { *vs[0] -= *vs[2]; };
break;
2696 if (
p->retained && !force) {;
2697 if (
p->name) {
printf(
"<%s>",
p->name); }
2698 else {
printf(
"<anon>"); }
2709 printf(
"%s",
p->data.expect.m);
2717 buff[0] =
p->data.single.x; buff[1] =
'\0';
2727 buff[0] =
p->data.range.x; buff[1] =
'\0';
2732 buff[0] =
p->data.range.y; buff[1] =
'\0';
2782 for(
i = 0;
i <
p->data.or.n-1;
i++) {
2792 for(
i = 0;
i <
p->data.and.n-1;
i++) {
2832 int(*tester)(
const void*,
const void*),
2834 void(*printer)(
const void*)) {
2839 if (tester(
r.output,
d)) {
2840 destructor(
r.output);
2843 destructor(
r.output);
2855 int(*tester)(
const void*,
const void*),
2857 void(*printer)(
const void*)) {
2862 if (tester(
r.output,
d)) {
2863 destructor(
r.output);
2868 destructor(
r.output);
2890 if (
a ==
NULL) {
return; }
2892 for (
i = 0;
i <
a->children_num;
i++) {
2915 strcpy(
a->tag,
tag);
2917 a->contents =
malloc(strlen(contents) + 1);
2918 strcpy(
a->contents, contents);
2922 a->children_num = 0;
2936 for (
i = 0;
i <
n;
i++) {
2950 if (
a ==
NULL) {
return a; }
2951 if (
a->children_num == 0) {
return a; }
2952 if (
a->children_num == 1) {
return a; }
2963 if (strcmp(
a->tag,
b->tag) != 0) {
return 0; }
2964 if (strcmp(
a->contents,
b->contents) != 0) {
return 0; }
2965 if (
a->children_num !=
b->children_num) {
return 0; }
2967 for (
i = 0;
i <
a->children_num;
i++) {
2977 r->children[
r->children_num-1] =
a;
2982 if (
a ==
NULL) {
return a; }
2983 a->tag =
realloc(
a->tag, strlen(t) + 1 + strlen(
a->tag) + 1);
2984 memmove(
a->tag + strlen(t) + 1,
a->tag, strlen(
a->tag)+1);
2985 memmove(
a->tag, t, strlen(t));
2986 memmove(
a->tag + strlen(t),
"|", 1);
2991 if (
a ==
NULL) {
return a; }
2992 a->tag =
realloc(
a->tag, (strlen(t)-1) + strlen(
a->tag) + 1);
2993 memmove(
a->tag + (strlen(t)-1),
a->tag, strlen(
a->tag)+1);
2994 memmove(
a->tag, t, (strlen(t)-1));
2999 a->tag =
realloc(
a->tag, strlen(t) + 1);
3005 if (
a ==
NULL) {
return a; }
3015 fprintf(fp,
"NULL\n");
3019 for (
i = 0;
i <
d;
i++) { fprintf(fp,
" "); }
3021 if (strlen(
a->contents)) {
3022 fprintf(fp,
"%s:%lu:%lu '%s'\n",
a->tag,
3023 (
long unsigned int)(
a->state.row+1),
3024 (
long unsigned int)(
a->state.col+1),
3027 fprintf(fp,
"%s \n",
a->tag);
3030 for (
i = 0;
i <
a->children_num;
i++) {
3087 trav->
order = order;
3103 n_trav->
order = order;
3126 switch((*trav)->order) {
3128 ret = (*trav)->curr_node;
3131 while(*trav !=
NULL &&
3132 (*trav)->curr_child >= (*trav)->curr_node->children_num)
3147 cchild = (*trav)->curr_child;
3151 n_trav->
order = (*trav)->order;
3153 (*trav)->curr_child++;
3159 ret = (*trav)->curr_node;
3172 (*trav)->curr_child++;
3175 if((*trav)->curr_child >= (*trav)->curr_node->children_num) {
3181 while((*trav)->curr_node->children_num > 0) {
3184 cchild = (*trav)->curr_child;
3188 n_trav->
order = (*trav)->order;
3205 while(*trav !=
NULL) {
3206 n_trav = (*trav)->
parent;
3218 if (
n == 0) {
return NULL; }
3219 if (
n == 1) {
return xs[0]; }
3220 if (
n == 2 && xs[1] ==
NULL) {
return xs[0]; }
3221 if (
n == 2 && xs[0] ==
NULL) {
return xs[1]; }
3225 for (
i = 0;
i <
n;
i++) {
3227 if (as[
i] ==
NULL) {
continue; }
3229 if (as[
i] && as[
i]->children_num == 0) {
3231 }
else if (as[
i] && as[
i]->children_num == 1) {
3234 }
else if (as[
i] && as[
i]->children_num >= 2) {
3243 if (
r->children_num) {
3244 r->state =
r->children[0]->state;
3299 for (
i = 0;
i <
n;
i++) {
3322 for (
i = 0;
i <
n;
i++) {
3325 for (
i = 0;
i < (
n-1);
i++) {
3388 if (xs[1] ==
NULL) {
return xs[0]; }
3389 else {
return mpca_or(2, xs[0], xs[1]); }
3395 for (
i = 0;
i <
n;
i++) {
3404 if (xs[1] ==
NULL) {
return xs[0]; }
3405 switch(((
char*)xs[1])[0])
3410 case '!': {
free(xs[1]);
return mpca_not(xs[0]); };
break;
3412 num = *((
int*)xs[1]);
3455 for (
i = 0;
i < strlen(
s);
i++) {
if (!strchr(
"0123456789",
s[
i])) {
return 0; } }
3487 if (q->
name && strcmp(q->
name,
x) == 0) {
return q; }
3500 if (
p->name && strcmp(
p->name,
x) == 0) {
return p; }
3526 mpc_parser_t *GrammarTotal, *Grammar, *Term, *Factor, *Base;
3528 GrammarTotal =
mpc_new(
"grammar_total");
3572 if(!
mpc_parse(
"<mpc_grammar_compiler>", grammar, GrammarTotal, &
r)) {
3574 err_out =
mpc_failf(
"Invalid Grammar: %s", err_msg);
3580 mpc_cleanup(5, GrammarTotal, Grammar, Term, Factor, Base);
3592 va_start(va, grammar);
3613 stmt->
ident = ((
char**)xs)[0];
3614 stmt->
name = ((
char**)xs)[1];
3617 free(((
char**)xs)[2]);
3618 free(((
char**)xs)[4]);
3628 for (
i = 0;
i <
n;
i++) {
3681 mpc_parser_t *Lang, *Stmt, *Grammar, *Term, *Factor, *Base;
3741 mpc_cleanup(6, Lang, Stmt, Grammar, Term, Factor, Base);
3797 va_start(va, language);
3851 if (
p->retained && !force) {
return 0; }
3871 for(
i = 0;
i <
p->data.or.n;
i++) {
3879 for(
i = 0;
i <
p->data.and.n;
i++) {
3900 if (
p->retained && !force) {
return; }
3917 for(
i = 0;
i <
p->data.or.n;
i++) {
3923 for(
i = 0;
i <
p->data.and.n;
i++) {
3935 && !
p->data.or.xs[
p->data.or.n-1]->retained) {
3936 t =
p->data.or.xs[
p->data.or.n-1];
3938 p->data.or.n =
n +
m - 1;
3948 && !
p->data.or.xs[0]->retained) {
3949 t =
p->data.or.xs[0];
3951 p->data.or.n =
n +
m - 1;
3953 memmove(
p->data.or.xs +
m,
p->data.or.xs + 1, (
n - 1) *
sizeof(
mpc_parser_t*));
3961 &&
p->data.and.n == 2
3963 && !
p->data.and.xs[0]->retained
3965 t =
p->data.and.xs[1];
3977 && !
p->data.and.xs[0]->retained
3979 t =
p->data.and.xs[0];
3981 p->data.and.n =
n +
m - 1;
3984 memmove(
p->data.and.xs +
m,
p->data.and.xs + 1, (
n - 1) *
sizeof(
mpc_parser_t*));
3995 && !
p->data.and.xs[
p->data.and.n-1]->retained
3997 t =
p->data.and.xs[
p->data.and.n-1];
3999 p->data.and.n =
n +
m - 1;
4010 &&
p->data.and.n == 2
4013 && !
p->data.and.xs[0]->retained
4015 t =
p->data.and.xs[1];
4027 && !
p->data.and.xs[0]->retained
4029 t =
p->data.and.xs[0];
4031 p->data.and.n =
n +
m - 1;
4034 memmove(
p->data.and.xs +
m,
p->data.and.xs + 1, (
n - 1) *
sizeof(
mpc_parser_t*));
4036 for (
i = 0;
i <
p->data.and.n-1;
i++) {
p->data.and.dxs[
i] =
free; }
4045 && !
p->data.and.xs[
p->data.and.n-1]->retained
4046 &&
p->data.and.xs[
p->data.and.n-1]->data.and.f ==
mpcf_strfold) {
4047 t =
p->data.and.xs[
p->data.and.n-1];
4049 p->data.and.n =
n +
m - 1;
4053 for (
i = 0;
i <
p->data.and.n-1;
i++) {
p->data.and.dxs[
i] =
free; }
const lzma_allocator const uint8_t size_t uint8_t * out
_Use_decl_annotations_ int __cdecl printf(const char *const _Format,...)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void start
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags long
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void length
unsigned short prefix[65536]
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API const KEY_TYPE bool * found
return memset(p, 0, total)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
static void list(RzEgg *egg)
void * realloc(void *ptr, size_t size)
void * malloc(size_t size)
void * calloc(size_t number, size_t size)
static static fork const void static count static fd const char const char static newpath char char char static envp time_t static t const char static mode static whence const char static dir time_t static t unsigned static seconds const char struct utimbuf static buf static inc static sig const char static mode static oldfd struct tms static buf static getgid static geteuid const char static filename static arg static mask struct ustat static ubuf static getppid static setsid static egid sigset_t static set struct timeval struct timezone static tz fd_set fd_set fd_set struct timeval static timeout const char char static bufsiz const char static swapflags void static offset const char static length static mode static who const char struct statfs static buf unsigned unsigned num
static static fork const void static count static fd const char static mode const char static pathname const char static path const char static dev const char static group static getpid static getuid void void static data static pause const char static mode static sync const char const char static newpath const char static pathname pipe
#define expect(expr, value)
static int mpc_input_terminated(mpc_input_t *i)
char * mpc_err_string(mpc_err_t *x)
mpc_parser_t * mpc_whitespace(void)
mpc_parser_t * mpc_define(mpc_parser_t *p, mpc_parser_t *a)
mpc_parser_t * mpca_not(mpc_parser_t *a)
mpc_parser_t * mpc_lift_val(mpc_val_t *x)
static mpc_err_t * mpc_err_merge(mpc_input_t *i, mpc_err_t *x, mpc_err_t *y)
void mpc_optimise(mpc_parser_t *p)
mpc_parser_t * mpc_real(void)
mpc_parser_t * mpc_char(char c)
mpc_ast_t * mpc_ast_get_child(mpc_ast_t *ast, const char *tag)
static mpc_err_t * mpc_err_file(const char *filename, const char *failure)
mpc_parser_t * mpc_re(const char *re)
static mpc_val_t * mpcf_input_fst_free(mpc_input_t *i, int n, mpc_val_t **xs)
static mpc_parser_t * mpc_re_escape_char(char c)
mpc_parser_t * mpca_add_tag(mpc_parser_t *a, const char *t)
mpc_err_t * mpca_lang(int flags, const char *language,...)
mpc_parser_t * mpc_noneof(const char *s)
mpc_parser_t * mpc_escape(void)
#define MPC_MAX_RECURSION_DEPTH
static void mpc_soft_delete(mpc_val_t *x)
mpc_val_t * mpcf_trd(int n, mpc_val_t **xs)
mpc_parser_t * mpc_fail(const char *m)
static mpc_val_t * mpcaf_grammar_string(mpc_val_t *x, void *s)
static int mpc_input_soi(mpc_input_t *i, char **o)
mpc_parser_t * mpc_undefine(mpc_parser_t *p)
static void mpc_input_suppress_disable(mpc_input_t *i)
void mpcf_dtor_null(mpc_val_t *x)
static mpc_val_t * mpcf_re_or(int n, mpc_val_t **xs)
mpc_parser_t * mpc_check_withf(mpc_parser_t *a, mpc_dtor_t da, mpc_check_with_t f, void *x, const char *fmt,...)
mpc_ast_t * mpc_ast_get_child_lb(mpc_ast_t *ast, const char *tag, int lb)
mpc_parser_t * mpc_lift(mpc_ctor_t lf)
mpc_val_t * mpcf_float(mpc_val_t *x)
mpc_parser_t * mpc_brackets(mpc_parser_t *a, mpc_dtor_t ad)
mpc_val_t * mpcf_hex(mpc_val_t *x)
static void mpc_err_delete_internal(mpc_input_t *i, mpc_err_t *x)
static void mpc_input_backtrack_enable(mpc_input_t *i)
mpc_parser_t * mpc_check_with(mpc_parser_t *a, mpc_dtor_t da, mpc_check_with_t f, void *x, const char *e)
static void mpc_input_mark(mpc_input_t *i)
static int mpc_input_eoi(mpc_input_t *i, char **o)
static mpc_input_t * mpc_input_new_pipe(const char *filename, FILE *pipe)
static mpc_val_t * mpc_parse_apply(mpc_input_t *i, mpc_apply_t f, mpc_val_t *x)
static int mpc_err_contains_expected(mpc_input_t *i, mpc_err_t *x, char *expected)
mpc_val_t * mpcf_ctor_str(void)
mpc_parser_t * mpc_upper(void)
static void mpc_parse_dtor(mpc_input_t *i, mpc_dtor_t d, mpc_val_t *x)
mpc_parser_t * mpc_string(const char *s)
static const char * mpc_escape_output_raw_cchar[]
static void * mpc_realloc(mpc_input_t *i, void *p, size_t n)
mpc_parser_t * mpca_and(int n,...)
mpc_parser_t * mpc_hex(void)
mpc_val_t * mpcf_ctor_null(void)
static mpc_val_t * mpcf_re_escape(mpc_val_t *x, void *data)
mpc_parser_t * mpc_braces(mpc_parser_t *a, mpc_dtor_t ad)
static const char * mpc_err_char_unescape(char c)
mpc_parser_t * mpc_parens(mpc_parser_t *a, mpc_dtor_t ad)
mpc_parser_t * mpc_tok_parens(mpc_parser_t *a, mpc_dtor_t ad)
static int mpc_input_string(mpc_input_t *i, const char *c, char **o)
static mpc_val_t * mpcaf_grammar_and(int n, mpc_val_t **xs)
static mpc_input_t * mpc_input_new_string(const char *filename, const char *string)
static mpc_val_t * mpcf_input_snd_free(mpc_input_t *i, int n, mpc_val_t **xs)
static void * mpc_export(mpc_input_t *i, void *p)
mpc_parser_t * mpc_string_lit(void)
static int mpc_input_anchor(mpc_input_t *i, int(*f)(char, char), char **o)
void mpc_ast_delete(mpc_ast_t *a)
static void mpc_print_unretained(mpc_parser_t *p, int force)
mpc_parser_t * mpc_failf(const char *fmt,...)
mpc_parser_t * mpc_copy(mpc_parser_t *a)
static const char * mpc_escape_output_raw_cstr[]
mpc_parser_t * mpca_root(mpc_parser_t *a)
int mpc_parse_pipe(const char *filename, FILE *pipe, mpc_parser_t *p, mpc_result_t *r)
mpc_parser_t * mpc_digit(void)
mpc_parser_t * mpc_oneof(const char *s)
mpc_ast_t * mpc_ast_new(const char *tag, const char *contents)
void mpc_err_print(mpc_err_t *x)
mpc_parser_t * mpc_blank(void)
void mpc_ast_print(mpc_ast_t *a)
static mpc_val_t * mpc_parse_apply_to(mpc_input_t *i, mpc_apply_to_t f, mpc_val_t *x, mpc_val_t *d)
static int mpc_input_char(mpc_input_t *i, char c, char **o)
mpc_ast_t * mpc_ast_tag(mpc_ast_t *a, const char *t)
mpc_val_t * mpcf_unescape(mpc_val_t *x)
mpc_val_t * mpcf_strtrimr(mpc_val_t *x)
mpc_parser_t * mpc_ident(void)
mpc_parser_t * mpc_boundary_newline(void)
static int mpc_parse_run(mpc_input_t *i, mpc_parser_t *p, mpc_result_t *r, mpc_err_t **e, int depth)
static void mpc_input_rewind(mpc_input_t *i)
static void mpc_undefine_or(mpc_parser_t *p)
mpc_parser_t * mpc_strip(mpc_parser_t *a)
mpc_val_t * mpcf_maths(int n, mpc_val_t **xs)
static mpc_val_t * mpcf_nth_free(int n, mpc_val_t **xs, int x)
mpc_parser_t * mpc_apply(mpc_parser_t *a, mpc_apply_t f)
mpc_parser_t * mpc_eoi(void)
mpc_err_t * mpca_lang_contents(int flags, const char *filename,...)
mpc_parser_t * mpc_int(void)
mpc_parser_t * mpca_many(mpc_parser_t *a)
mpc_val_t * mpcf_escape_char_raw(mpc_val_t *x)
mpc_parser_t * mpca_maybe(mpc_parser_t *a)
mpc_parser_t * mpc_satisfy(int(*f)(char))
mpc_val_t * mpcf_all_free(int n, mpc_val_t **xs)
static void mpc_input_delete(mpc_input_t *i)
mpc_parser_t * mpc_not(mpc_parser_t *a, mpc_dtor_t da)
static mpc_parser_t * mpca_grammar_find_parser(char *x, mpca_grammar_st_t *st)
static mpc_input_t * mpc_input_new_nstring(const char *filename, const char *string, size_t length)
mpc_val_t * mpcf_oct(mpc_val_t *x)
mpc_ast_trav_t * mpc_ast_traverse_start(mpc_ast_t *ast, mpc_ast_trav_order_t order)
int mpc_ast_get_index_lb(mpc_ast_t *ast, const char *tag, int lb)
void mpc_stats(mpc_parser_t *p)
int mpc_parse_contents(const char *filename, mpc_parser_t *p, mpc_result_t *r)
static mpc_parser_t * mpc_undefined(void)
mpc_parser_t * mpc_digits(void)
mpc_parser_t * mpc_predictive(mpc_parser_t *a)
static char mpc_input_getc(mpc_input_t *i)
mpc_parser_t * mpc_many(mpc_fold_t f, mpc_parser_t *a)
mpc_parser_t * mpc_alpha(void)
static int mpc_input_failure(mpc_input_t *i, char c)
static int mpc_input_success(mpc_input_t *i, char c, char **o)
static int mpc_boundary_anchor(char prev, char next)
int mpc_nparse(const char *filename, const char *string, size_t length, mpc_parser_t *p, mpc_result_t *r)
static mpc_err_t * mpc_err_or(mpc_input_t *i, mpc_err_t **x, int n)
mpc_parser_t * mpc_maybe_lift(mpc_parser_t *a, mpc_ctor_t lf)
mpc_val_t * mpcf_escape_string_raw(mpc_val_t *x)
mpc_parser_t * mpc_total(mpc_parser_t *a, mpc_dtor_t da)
mpc_parser_t * mpca_count(int n, mpc_parser_t *a)
mpc_parser_t * mpc_number(void)
int mpc_parse(const char *filename, const char *string, mpc_parser_t *p, mpc_result_t *r)
static void mpc_ast_delete_no_children(mpc_ast_t *a)
static mpc_val_t * mpcf_re_range(mpc_val_t *x)
static void mpc_err_string_cat(char *buffer, int *pos, int *max, char const *fmt,...)
mpc_parser_t * mpc_new(const char *name)
mpc_parser_t * mpc_tab(void)
mpc_parser_t * mpc_octdigit(void)
static mpc_err_t * mpc_err_count(mpc_input_t *i, mpc_err_t *x, int n)
static mpc_val_t * mpcaf_grammar_id(mpc_val_t *x, void *s)
mpc_parser_t * mpc_any(void)
static int mpc_boundary_newline_anchor(char prev, char next)
static mpc_state_t mpc_state_new(void)
mpc_parser_t * mpc_re_mode(const char *re, int mode)
static mpc_err_t * mpc_err_many1(mpc_input_t *i, mpc_err_t *x)
mpc_parser_t * mpc_newline(void)
mpc_val_t * mpcf_snd(int n, mpc_val_t **xs)
static const char mpc_escape_input_raw_cstr[]
static mpc_err_t * mpca_lang_st(mpc_input_t *i, mpca_grammar_st_t *st)
mpc_parser_t * mpc_between(mpc_parser_t *a, mpc_dtor_t ad, const char *o, const char *c)
mpc_val_t * mpcf_free(mpc_val_t *x)
void mpc_delete(mpc_parser_t *p)
mpc_parser_t * mpc_tok_between(mpc_parser_t *a, mpc_dtor_t ad, const char *o, const char *c)
mpc_parser_t * mpc_not_lift(mpc_parser_t *a, mpc_dtor_t da, mpc_ctor_t lf)
mpc_parser_t * mpc_check(mpc_parser_t *a, mpc_dtor_t da, mpc_check_t f, const char *e)
mpc_val_t * mpcf_strtrim(mpc_val_t *x)
mpc_parser_t * mpc_apply_to(mpc_parser_t *a, mpc_apply_to_t f, void *x)
static mpc_val_t * mpcf_input_state_ast(mpc_input_t *i, int n, mpc_val_t **xs)
static int mpc_input_noneof(mpc_input_t *i, const char *c, char **o)
mpc_ast_t * mpc_ast_add_child(mpc_ast_t *r, mpc_ast_t *a)
static mpc_val_t * mpcf_re_repeat(int n, mpc_val_t **xs)
mpc_val_t * mpcf_state_ast(int n, mpc_val_t **xs)
static mpc_input_t * mpc_input_new_file(const char *filename, FILE *file)
mpc_val_t * mpcf_fold_ast(int n, mpc_val_t **xs)
void mpc_ast_traverse_free(mpc_ast_trav_t **trav)
mpc_val_t * mpcf_escape(mpc_val_t *x)
static mpc_val_t * mpc_parse_fold(mpc_input_t *i, mpc_fold_t f, int n, mpc_val_t **xs)
mpc_parser_t * mpc_expectf(mpc_parser_t *a, const char *fmt,...)
mpc_val_t * mpcf_int(mpc_val_t *x)
mpc_val_t * mpcf_escape_regex(mpc_val_t *x)
mpc_parser_t * mpca_tag(mpc_parser_t *a, const char *t)
mpc_parser_t * mpc_hexdigit(void)
mpc_val_t * mpcf_fst(int n, mpc_val_t **xs)
mpc_parser_t * mpc_startwith(mpc_parser_t *a)
mpc_val_t * mpcf_strtriml(mpc_val_t *x)
void mpc_ast_print_to(mpc_ast_t *a, FILE *fp)
static void mpc_undefine_and(mpc_parser_t *p)
mpc_val_t * mpcf_strfold(int n, mpc_val_t **xs)
void mpc_err_print_to(mpc_err_t *x, FILE *f)
mpc_parser_t * mpc_many1(mpc_fold_t f, mpc_parser_t *a)
static mpc_err_t * mpc_err_new(mpc_input_t *i, const char *expected)
static int mpc_mem_ptr(mpc_input_t *i, void *p)
mpc_parser_t * mpc_stripr(mpc_parser_t *a)
mpc_parser_t * mpc_underscore(void)
static const char mpc_escape_input_raw_re[]
mpc_parser_t * mpca_or(int n,...)
static const char mpc_escape_input_c[]
mpc_parser_t * mpca_grammar_st(const char *grammar, mpca_grammar_st_t *st)
static mpc_val_t * mpca_stmt_afold(int n, mpc_val_t **xs)
mpc_val_t * mpcf_null(int n, mpc_val_t **xs)
mpc_parser_t * mpc_char_lit(void)
static mpc_val_t * mpca_stmt_fold(int n, mpc_val_t **xs)
mpc_parser_t * mpc_and(int n, mpc_fold_t f,...)
mpc_ast_t * mpc_ast_build(int n, const char *tag,...)
mpc_parser_t * mpc_tok_squares(mpc_parser_t *a, mpc_dtor_t ad)
static mpc_val_t * mpcf_input_trd_free(mpc_input_t *i, int n, mpc_val_t **xs)
void mpc_print(mpc_parser_t *p)
mpc_parser_t * mpc_squares(mpc_parser_t *a, mpc_dtor_t ad)
mpc_val_t * mpcf_unescape_regex(mpc_val_t *x)
static mpc_err_t * mpc_err_fail(mpc_input_t *i, const char *failure)
static void mpc_optimise_unretained(mpc_parser_t *p, int force)
mpc_parser_t * mpc_stripl(mpc_parser_t *a)
static mpc_val_t * mpcf_input_nth_free(mpc_input_t *i, int n, mpc_val_t **xs, int x)
mpc_parser_t * mpc_alphanum(void)
mpc_ast_t * mpc_ast_add_root(mpc_ast_t *a)
static int mpc_input_satisfy(mpc_input_t *i, int(*cond)(char), char **o)
mpc_err_t * mpca_lang_file(int flags, FILE *f,...)
static int mpc_nodecount_unretained(mpc_parser_t *p, int force)
static mpc_val_t * mpcf_re_and(int n, mpc_val_t **xs)
mpc_val_t * mpcf_unescape_string_raw(mpc_val_t *x)
mpc_val_t * mpcf_str_ast(mpc_val_t *c)
static mpc_val_t * mpcaf_fold_regex(int n, mpc_val_t **xs)
static mpc_val_t * mpcaf_grammar_repeat(int n, mpc_val_t **xs)
int mpc_parse_input(mpc_input_t *i, mpc_parser_t *p, mpc_result_t *r)
mpc_parser_t * mpc_float(void)
int mpc_ast_eq(mpc_ast_t *a, mpc_ast_t *b)
mpc_parser_t * mpc_whitespaces(void)
static mpc_val_t * mpcf_input_str_ast(mpc_input_t *i, mpc_val_t *c)
static mpc_state_t * mpc_input_state_copy(mpc_input_t *i)
mpc_parser_t * mpc_endwith(mpc_parser_t *a, mpc_dtor_t da)
mpc_parser_t * mpca_state(mpc_parser_t *a)
void mpc_cleanup(int n,...)
mpc_ast_t * mpc_ast_state(mpc_ast_t *a, mpc_state_t s)
static int mpc_input_oneof(mpc_input_t *i, const char *c, char **o)
mpc_parser_t * mpc_boundary(void)
mpc_parser_t * mpc_tok_brackets(mpc_parser_t *a, mpc_dtor_t ad)
mpc_parser_t * mpc_expect(mpc_parser_t *a, const char *expected)
mpc_parser_t * mpc_hexdigits(void)
static void * mpc_calloc(mpc_input_t *i, size_t n, size_t m)
int mpc_test_fail(mpc_parser_t *p, const char *s, const void *d, int(*tester)(const void *, const void *), mpc_dtor_t destructor, void(*printer)(const void *))
static mpc_state_t mpc_state_invalid(void)
static mpc_val_t * mpcaf_grammar_char(mpc_val_t *x, void *s)
static void mpc_free(mpc_input_t *i, void *p)
mpc_err_t * mpca_lang_pipe(int flags, FILE *p,...)
mpc_parser_t * mpc_tok_braces(mpc_parser_t *a, mpc_dtor_t ad)
mpc_parser_t * mpc_whole(mpc_parser_t *a, mpc_dtor_t da)
mpc_parser_t * mpc_soi(void)
mpc_parser_t * mpc_maybe(mpc_parser_t *a)
static mpc_val_t * mpcf_input_strfold(mpc_input_t *i, int n, mpc_val_t **xs)
mpc_parser_t * mpc_range(char s, char e)
static const char * mpc_escape_output_raw_re[]
static mpc_val_t * mpcf_input_free(mpc_input_t *i, mpc_val_t *x)
static int mpc_input_range(mpc_input_t *i, char c, char d, char **o)
static const char * mpc_re_range_escape_char(char c)
static void mpc_undefine_unretained(mpc_parser_t *p, int force)
static int is_number(const char *s)
static char mpc_input_buffer_get(mpc_input_t *i)
static int mpc_input_buffer_in_range(mpc_input_t *i)
mpc_ast_t * mpc_ast_add_root_tag(mpc_ast_t *a, const char *t)
static const char mpc_escape_input_raw_cchar[]
int mpc_parse_file(const char *filename, FILE *file, mpc_parser_t *p, mpc_result_t *r)
mpc_ast_t * mpc_ast_add_tag(mpc_ast_t *a, const char *t)
static void mpc_input_unmark(mpc_input_t *i)
static void mpca_stmt_list_delete(mpc_val_t *x)
mpc_ast_t * mpc_ast_traverse_next(mpc_ast_trav_t **trav)
mpc_val_t * mpcf_snd_free(int n, mpc_val_t **xs)
mpc_parser_t * mpc_lower(void)
mpc_parser_t * mpc_regex_lit(void)
mpc_parser_t * mpc_pass(void)
static mpc_val_t * mpcf_unescape_new(mpc_val_t *x, const char *input, const char **output)
static void mpc_err_add_expected(mpc_input_t *i, mpc_err_t *x, char *expected)
mpc_parser_t * mpca_grammar(int flags, const char *grammar,...)
static void mpc_input_suppress_enable(mpc_input_t *i)
static void mpc_input_backtrack_disable(mpc_input_t *i)
static char mpc_input_peekc(mpc_input_t *i)
static mpc_err_t * mpc_err_export(mpc_input_t *i, mpc_err_t *x)
mpc_val_t * mpcf_unescape_char_raw(mpc_val_t *x)
mpc_parser_t * mpca_many1(mpc_parser_t *a)
mpc_val_t * mpcf_fst_free(int n, mpc_val_t **xs)
static char char_unescape_buffer[4]
static int mpc_input_any(mpc_input_t *i, char **o)
void mpc_err_delete(mpc_err_t *x)
static mpc_err_t * mpc_err_repeat(mpc_input_t *i, mpc_err_t *x, const char *prefix)
static mpc_val_t * mpcaf_grammar_or(int n, mpc_val_t **xs)
mpc_val_t * mpcf_trd_free(int n, mpc_val_t **xs)
static const char * mpc_escape_output_c[]
mpc_parser_t * mpc_checkf(mpc_parser_t *a, mpc_dtor_t da, mpc_check_t f, const char *fmt,...)
mpc_parser_t * mpc_state(void)
static void mpc_ast_print_depth(mpc_ast_t *a, int d, FILE *fp)
mpc_parser_t * mpca_total(mpc_parser_t *a)
static mpc_val_t * mpcf_escape_new(mpc_val_t *x, const char *input, const char **output)
static void * mpc_malloc(mpc_input_t *i, size_t n)
mpc_parser_t * mpc_octdigits(void)
mpc_parser_t * mpc_count(int n, mpc_fold_t f, mpc_parser_t *a, mpc_dtor_t da)
mpc_parser_t * mpc_sym(const char *s)
mpc_parser_t * mpc_anchor(int(*f)(char, char))
int mpc_test_pass(mpc_parser_t *p, const char *s, const void *d, int(*tester)(const void *, const void *), mpc_dtor_t destructor, void(*printer)(const void *))
mpc_parser_t * mpc_oct(void)
mpc_parser_t * mpc_tok(mpc_parser_t *a)
mpc_parser_t * mpc_or(int n,...)
int mpc_ast_get_index(mpc_ast_t *ast, const char *tag)
static mpc_val_t * mpca_stmt_list_apply_to(mpc_val_t *x, void *s)
mpc_val_t *(* mpc_apply_t)(mpc_val_t *)
@ mpc_ast_trav_order_post
mpc_val_t *(* mpc_fold_t)(int, mpc_val_t **)
int(* mpc_check_with_t)(mpc_val_t **, void *)
void(* mpc_dtor_t)(mpc_val_t *)
int(* mpc_check_t)(mpc_val_t **)
mpc_val_t *(* mpc_apply_to_t)(mpc_val_t *, void *)
@ MPCA_LANG_WHITESPACE_SENSITIVE
mpc_val_t *(* mpc_ctor_t)(void)
static struct sockaddr static addrlen static backlog const void static flags void flags
#define cond(bop, top, mask, flags)
struct mpc_ast_t ** children
mpc_ast_trav_order_t order
struct mpc_ast_trav_t * parent
mpc_pdata_apply_to_t apply_to
mpc_pdata_string_t string
mpc_pdata_repeat_t repeat
mpc_pdata_predict_t predict
mpc_pdata_single_t single
mpc_pdata_expect_t expect
mpc_pdata_satisfy_t satisfy
mpc_pdata_anchor_t anchor
mpc_pdata_check_with_t check_with
void error(const char *msg)
if(dbg->bits==RZ_SYS_BITS_64)
static bool input(void *ud, zip_uint8_t *data, zip_uint64_t length)