summaryrefslogtreecommitdiffstats
path: root/byterun/parsing.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/parsing.c')
-rw-r--r--byterun/parsing.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/byterun/parsing.c b/byterun/parsing.c
index 3f9ac3565..68e687ffd 100644
--- a/byterun/parsing.c
+++ b/byterun/parsing.c
@@ -70,7 +70,7 @@ struct parser_env { /* Mirrors parser_env in ../stdlib/parsing.ml */
#define Short(tbl,n) (((short *)(tbl))[n])
#endif
-int parser_trace = 0;
+int caml_parser_trace = 0;
/* Input codes */
/* Mirrors parser_input in ../stdlib/parsing.ml */
@@ -139,8 +139,8 @@ static void print_token(struct parser_tables *tables, int state, value tok)
/* The pushdown automata */
-CAMLprim value parse_engine(struct parser_tables *tables,
- struct parser_env *env, value cmd, value arg)
+CAMLprim value caml_parse_engine(struct parser_tables *tables,
+ struct parser_env *env, value cmd, value arg)
{
int state;
mlsize_t sp, asp;
@@ -171,7 +171,7 @@ CAMLprim value parse_engine(struct parser_tables *tables,
env->curr_char = Field(tables->transl_const, Int_val(arg));
caml_modify(&env->lval, Val_long(0));
}
- if (parser_trace) print_token(tables, state, arg);
+ if (caml_parser_trace) print_token(tables, state, arg);
testshift:
n1 = Short(tables->sindex, state);
@@ -200,13 +200,17 @@ CAMLprim value parse_engine(struct parser_tables *tables,
n2 = n1 + ERRCODE;
if (n1 != 0 && n2 >= 0 && n2 <= Int_val(tables->tablesize) &&
Short(tables->check, n2) == ERRCODE) {
- if (parser_trace)
+ if (caml_parser_trace)
fprintf(stderr, "Recovering in state %d\n", state1);
goto shift_recover;
} else {
- if (parser_trace) fprintf(stderr, "Discarding state %d\n", state1);
+ if (caml_parser_trace){
+ fprintf(stderr, "Discarding state %d\n", state1);
+ }
if (sp <= Int_val(env->stackbase)) {
- if (parser_trace) fprintf(stderr, "No more states to discard\n");
+ if (caml_parser_trace){
+ fprintf(stderr, "No more states to discard\n");
+ }
return RAISE_PARSE_ERROR; /* The ML code raises Parse_error */
}
sp--;
@@ -215,7 +219,7 @@ CAMLprim value parse_engine(struct parser_tables *tables,
} else {
if (Int_val(env->curr_char) == 0)
return RAISE_PARSE_ERROR; /* The ML code raises Parse_error */
- if (parser_trace) fprintf(stderr, "Discarding last token read\n");
+ if (caml_parser_trace) fprintf(stderr, "Discarding last token read\n");
env->curr_char = Val_int(-1);
goto loop;
}
@@ -224,7 +228,7 @@ CAMLprim value parse_engine(struct parser_tables *tables,
env->curr_char = Val_int(-1);
if (errflag > 0) errflag--;
shift_recover:
- if (parser_trace)
+ if (caml_parser_trace)
fprintf(stderr, "State %d: shift to state %d\n",
state, Short(tables->table, n2));
state = Short(tables->table, n2);
@@ -243,7 +247,7 @@ CAMLprim value parse_engine(struct parser_tables *tables,
goto loop;
reduce:
- if (parser_trace)
+ if (caml_parser_trace)
fprintf(stderr, "State %d: reduce by rule %d\n", state, n);
m = Short(tables->len, n);
env->asp = Val_int(sp);