Browse Source

lexical #4/6, parentheses and braces

rlar 14 years ago
parent
commit
aa188c0766
  1. 36
      src/frontend/parser/lexical.c

36
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:

Loading…
Cancel
Save