Module Name: src Committed By: kre Date: Mon May 29 10:43:28 UTC 2017
Modified Files: src/bin/sh: parser.c Log Message: NFC (normal builds): DEBUG only change - convert parser to newer trace method. parser tracing is useful when debugging the parser (which admittedly is fairly often...) but there is a lot of it, and it gets in the way when looking at something else. Now we can turn it off when not wanted. To generate a diff of this commit: cvs rdiff -u -r1.129 -r1.130 src/bin/sh/parser.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/bin/sh/parser.c diff -u src/bin/sh/parser.c:1.129 src/bin/sh/parser.c:1.130 --- src/bin/sh/parser.c:1.129 Sat May 27 11:19:57 2017 +++ src/bin/sh/parser.c Mon May 29 10:43:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: parser.c,v 1.129 2017/05/27 11:19:57 kre Exp $ */ +/* $NetBSD: parser.c,v 1.130 2017/05/29 10:43:27 kre Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)parser.c 8.7 (Berkeley) 5/16/95"; #else -__RCSID("$NetBSD: parser.c,v 1.129 2017/05/27 11:19:57 kre Exp $"); +__RCSID("$NetBSD: parser.c,v 1.130 2017/05/29 10:43:27 kre Exp $"); #endif #endif /* not lint */ @@ -163,7 +163,7 @@ list(int nlflag, int erflag) union node *n1, *n2, *n3; int tok; - TRACE(("list(%d,%d): entered\n", nlflag, erflag)); + CTRACE(DBG_PARSE, ("list(%d,%d): entered @%d\n",nlflag,erflag,plinno)); checkkwd = 2; if (nlflag == 0 && tokendlist[peektoken()]) @@ -230,7 +230,7 @@ andor(void) union node *n1, *n2, *n3; int t; - TRACE(("andor: entered\n")); + CTRACE(DBG_PARSE, ("andor: entered @%d\n", plinno)); n1 = pipeline(); for (;;) { @@ -258,12 +258,12 @@ pipeline(void) struct nodelist *lp, *prev; int negate; - TRACE(("pipeline: entered\n")); + CTRACE(DBG_PARSE, ("pipeline: entered @%d\n", plinno)); negate = 0; checkkwd = 2; while (readtoken() == TNOT) { - TRACE(("pipeline: TNOT recognized\n")); + CTRACE(DBG_PARSE, ("pipeline: TNOT recognized\n")); #ifndef BOGUS_NOT_COMMAND if (posix && negate) synerror("2nd \"!\" unexpected"); @@ -290,7 +290,8 @@ pipeline(void) } tokpushback++; if (negate) { - TRACE(("%snegate pipeline\n", (negate&1) ? "" : "double ")); + CTRACE(DBG_PARSE, ("%snegate pipeline\n", + (negate&1) ? "" : "double ")); n2 = stalloc(sizeof(struct nnot)); n2->type = (negate & 1) ? NNOT : NDNOT; n2->nnot.com = n1; @@ -313,7 +314,7 @@ command(void) int negate = 0; #endif - TRACE(("command: entered\n")); + CTRACE(DBG_PARSE, ("command: entered @%d\n", plinno)); checkkwd = 2; redir = NULL; @@ -330,7 +331,7 @@ command(void) #ifdef BOGUS_NOT_COMMAND /* only in pileline() */ while (readtoken() == TNOT) { - TRACE(("command: TNOT recognized\n")); + CTRACE(DBG_PARSE, ("command: TNOT (bogus) recognized\n")); negate++; } tokpushback++; @@ -372,7 +373,8 @@ command(void) n1->type = (lasttoken == TWHILE)? NWHILE : NUNTIL; n1->nbinary.ch1 = list(0, 0); if ((got=readtoken()) != TDO) { -TRACE(("expecting DO got %s %s\n", tokname[got], got == TWORD ? wordtext : "")); + VTRACE(DBG_PARSE, ("expecting DO got %s %s\n", + tokname[got], got == TWORD ? wordtext : "")); synexpect(TDO, 0); } n1->nbinary.ch2 = list(0, 0); @@ -579,7 +581,8 @@ TRACE(("expecting DO got %s %s\n", tokna checkneg: #ifdef BOGUS_NOT_COMMAND if (negate) { - TRACE(("%snegate command\n", (negate&1) ? "" : "double ")); + VTRACE(DBG_PARSE, ("bogus %snegate command\n", + (negate&1) ? "" : "double ")); n2 = stalloc(sizeof(struct nnot)); n2->type = (negate & 1) ? NNOT : NDNOT; n2->nnot.com = n1; @@ -601,6 +604,9 @@ simplecmd(union node **rpp, union node * int negate = 0; #endif + CTRACE(DBG_PARSE, ("simple command with%s redir already @%d\n", + redir ? "" : "out", plinno)); + /* If we don't have any redirections already, then we must reset */ /* rpp to be the address of the local redir variable. */ if (redir == 0) @@ -611,7 +617,7 @@ simplecmd(union node **rpp, union node * #ifdef BOGUS_NOT_COMMAND /* pipelines get negated, commands do not */ while (readtoken() == TNOT) { - TRACE(("simplcmd: TNOT recognized\n")); + VTRACE(DBG_PARSE, ("simplcmd: bogus TNOT recognized\n")); negate++; } tokpushback++; @@ -661,7 +667,8 @@ simplecmd(union node **rpp, union node * checkneg: #ifdef BOGUS_NOT_COMMAND if (negate) { - TRACE(("%snegate simplecmd\n", (negate&1) ? "" : "double ")); + VTRACE(DBG_PARSE, ("bogus %snegate simplecmd\n", + (negate&1) ? "" : "double ")); n2 = stalloc(sizeof(struct nnot)); n2->type = (negate & 1) ? NNOT : NDNOT; n2->nnot.com = n; @@ -689,7 +696,7 @@ void fixredir(union node *n, const char *text, int err) { - TRACE(("Fix redir %s %d\n", text, err)); + VTRACE(DBG_PARSE, ("Fix redir %s %d\n", text, err)); if (!err) n->ndup.vname = NULL; @@ -720,7 +727,7 @@ parsefname(void) if (quoteflag == 0) n->type = NXHERE; - TRACE(("Here document %d\n", n->type)); + VTRACE(DBG_PARSE, ("Here document %d @%d\n", n->type, plinno)); if (here->striptabs) { while (*wordtext == '\t') wordtext++; @@ -878,8 +885,10 @@ slurp_heredoc(char *const eofmark, const grabstackblock(c); wordtext = out; - TRACE(("Slurped a heredoc (to '%s')%s: len %d, \"%.16s\"...\n", - eofmark, striptabs ? " tab stripped" : "", c, wordtext)); + VTRACE(DBG_PARSE, + ("Slurped a heredoc (to '%s')%s: len %d, \"%.*s%s\" @%d\n", + eofmark, striptabs ? " tab stripped" : "", c, (c > 16 ? 16 : c), + wordtext, (c > 16 ? "..." : ""), plinno)); } STATIC void @@ -965,7 +974,8 @@ readtoken(void) if (**pp == *wordtext && equal(*pp, wordtext)) { lasttoken = t = pp - parsekwd + KWDOFFSET; - TRACE(("keyword %s recognized\n", + VTRACE(DBG_PARSE, + ("keyword %s recognized\n", tokname[t])); goto out; } @@ -980,7 +990,7 @@ readtoken(void) out: checkkwd = (t == TNOT) ? savecheckkwd : 0; } - TRACE(("%stoken %s %s\n", alreadyseen ? "reread " : "", + VTRACE(DBG_PARSE, ("%stoken %s %s\n", alreadyseen ? "reread " : "", tokname[t], t == TWORD ? wordtext : "")); return (t); }