From aa188c0766390fdfa2728fe1c449a66365d18a92 Mon Sep 17 00:00:00 2001 From: rlar Date: Fri, 3 Aug 2012 20:16:47 +0200 Subject: [PATCH] lexical #4/6, parentheses and braces --- src/frontend/parser/lexical.c | 36 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/frontend/parser/lexical.c b/src/frontend/parser/lexical.c index 5449e6013..5434ac69a 100644 --- a/src/frontend/parser/lexical.c +++ b/src/frontend/parser/lexical.c @@ -102,7 +102,7 @@ pwlist_echo( /*CDHW used to perform function of set echo */ { wordlist *wl; - if ((!cp_echo)||cp_debug) /* cpdebug prints the same info */ + if (!cp_echo || cp_debug) /* cpdebug prints the same info */ return; fprintf(cp_err, "%s ", name); for (wl = wlist; wl; wl = wl->wl_next) @@ -142,8 +142,9 @@ nloop: c = '\n'; if (c == ESCAPE) c = '['; - } else + } else { c = input(cp_inp_cur); + } gotchar: if ((c != EOF) && (c != ESCAPE)) @@ -189,9 +190,8 @@ gotchar: switch (c) { case ' ': case '\t': - if (i > 0) { + if (i > 0) newword; - } break; case '\n': @@ -208,10 +208,8 @@ gotchar: && (i < NEW_BSIZE_SP - 1)) { if ((c == '\n') || (c == EOF) || (c == ESCAPE)) goto gotchar; - else { buf[i++] = (char) quote(c); linebuf[j++] = (char) c; - } } linebuf[j++] = '\''; break; @@ -224,7 +222,7 @@ gotchar: && (i < NEW_BSIZE_SP - 2)) { if ((c == '\n') || (c == EOF) || (c == ESCAPE)) goto gotchar; - else if (c == '\\') { + if (c == '\\') { linebuf[j++] = (char) c; c = (string ? *string++ : input(cp_inp_cur)); buf[i++] = (char) quote(c); @@ -264,8 +262,9 @@ gotchar: #endif wlist = cw = NULL; goto nloop; - } else /* EOF during a source */ - { + } + + /* EOF during a source */ if (cp_interactive) { fputs("quit\n", stdout); cp_doquit(); @@ -275,7 +274,6 @@ gotchar: wl_free(wlist); return NULL; - } case ESCAPE: if (cp_interactive && !cp_nocc) { fputs("\b\b \b\b\r", cp_out); @@ -294,7 +292,7 @@ gotchar: } goto ldefault; case ',': - if (paren < 1 && i > 0) { + if ((paren < 1) && (i > 0)) { newword; break; } @@ -306,7 +304,7 @@ gotchar: } goto ldefault; case '&': /* va: $&name is one word */ - if (i==1 && buf[i-1]=='$' && c=='&') { + if ((i == 1) && (buf[i-1] == '$') && (c == '&')) { buf[i++] = (char) c; break; } @@ -314,7 +312,7 @@ gotchar: case '<': case '>': /* va: <=, >= are unbreakable words */ if(string) - if (i==0 && (*string=='=')) { + if ((i == 0) && (*string == '=')) { buf[i++] = (char) c; break; } @@ -324,17 +322,13 @@ gotchar: * here */ ldefault: - if ((cp_chars[c] & CPC_BRL) && (i > 0)) { - if ((c != '<') || (buf[i - 1] != '$')) { + if ((cp_chars[c] & CPC_BRL) && (i > 0)) + if ((c != '<') || (buf[i - 1] != '$')) newword; - } - } buf[i++] = (char) c; - if (cp_chars[c] & CPC_BRR) { - if ((c != '<') || (i < 2) || (buf[i - 2] != '$')) { + if (cp_chars[c] & CPC_BRR) + if ((c != '<') || (i < 2) || (buf[i - 2] != '$')) newword; - } - } } } done: