]> ocean-lang.org Git - ocean/commitdiff
parsergen: don't pass full frame to parser_trace()
authorNeilBrown <neil@brown.name>
Fri, 3 Oct 2014 03:25:25 +0000 (13:25 +1000)
committerNeilBrown <neil@brown.name>
Fri, 3 Oct 2014 03:25:25 +0000 (13:25 +1000)
parser_trace() only uses 2 fields, so only pass those.

Signed-off-by: NeilBrown <neil@brown.name>
csrc/parsergen.mdc

index 646a8e7d13bc787e5e383c053980fe358d3e4ede..d97f98c7b3ff724f2b81488d5a6ffbd6410ef390 100644 (file)
@@ -2664,7 +2664,8 @@ since the last state which could have been at the start of a line.
                        if (!tk)
                                tk = tok_copy(token_next(tokens));
                        next.sym = tk->num;
-                       parser_trace(trace, &p, &next, tk, states, non_term, config->known_count);
+                       parser_trace(trace, &p, next.indents, !next.since_newline,
+                                    tk, states, non_term, config->known_count);
 
                        if (next.sym == TK_in) {
                                tos->indents += 1;
@@ -2869,7 +2870,7 @@ end inside square brackets.
                fprintf(trace, ") ");
        }
 
-       void parser_trace(FILE *trace, struct parser *p, struct frame *n,
+       void parser_trace(FILE *trace, struct parser *p, int indents, int start_of_line,
                          struct token *tk, const struct state states[],
                          const char *non_term[], int knowns)
        {
@@ -2903,9 +2904,9 @@ end inside square brackets.
                        fputs(reserved_words[tk->num], trace);
                else
                        text_dump(trace, tk->txt, 20);
-               if (n->indents)
-                       fprintf(trace, ".%d", n->indents);
-               if (n->since_newline == 0)
+               if (indents)
+                       fprintf(trace, ".%d", indents);
+               if (start_of_line)
                        fputs("/", trace);
                fputs("]", trace);
        }