Run files through clang-format before editing.
authorDavid Given <dg@cowlark.com>
Sun, 2 Sep 2018 09:16:06 +0000 (11:16 +0200)
committerDavid Given <dg@cowlark.com>
Sun, 2 Sep 2018 09:16:06 +0000 (11:16 +0200)
lang/cem/cemcom.ansi/LLlex.c
lang/cem/cpp.ansi/LLlex.c

index a25098e..331a08e 100644 (file)
@@ -5,64 +5,64 @@
 /* $Id$ */
 /*                 L E X I C A L   A N A L Y Z E R                     */
 
-#include       <assert.h>
-#include       <alloc.h>
-#include    "parameters.h"
-#include       "input.h"
-#include       "arith.h"
-#include       "def.h"
-#include       "macro.h"
-#include       "idf.h"
-#include       "LLlex.h"
-#include       "Lpars.h"
-#include       "class.h"
-#include       "sizes.h"
-#include       "specials.h"    /* registration of special identifiers */
+#include <assert.h>
+#include <alloc.h>
+#include "parameters.h"
+#include "input.h"
+#include "arith.h"
+#include "def.h"
+#include "macro.h"
+#include "idf.h"
+#include "LLlex.h"
+#include "Lpars.h"
+#include "class.h"
+#include "sizes.h"
+#include "specials.h" /* registration of special identifiers */
 
 /* Data about the token yielded */
 struct token dot, ahead, aside;
-int token_nmb = 0;             /* number of the ahead token */
-int tk_nmb_at_last_syn_err = -5/*ERR_SHADOW*/;
-                               /* token number at last syntax error */
+int token_nmb = 0; /* number of the ahead token */
+int tk_nmb_at_last_syn_err = -5 /*ERR_SHADOW*/;
+/* token number at last syntax error */
 int idfsize = IDFSIZE;
-char sp_occurred[SP_TOTAL+1];
+char sp_occurred[SP_TOTAL + 1];
 
-#ifndef        NOPP
-int ReplaceMacros = 1;         /* replacing macros                     */
-int AccDefined = 0;            /* accept "defined(...)"                */
-int UnknownIdIsZero = 0;       /* interpret unknown id as integer 0    */
-int Unstacked = 0;             /* an unstack is done                   */
+#ifndef NOPP
+int ReplaceMacros = 1; /* replacing macros                     */
+int AccDefined = 0; /* accept "defined(...)"           */
+int UnknownIdIsZero = 0; /* interpret unknown id as integer 0  */
+int Unstacked = 0; /* an unstack is done                       */
 extern int InputLevel;
 #endif
-int AccFileSpecifier = 0;      /* return filespecifier <...>           */
-int EoiForNewline = 0;         /* return EOI upon encountering newline */
-int File_Inserted = 0;         /* a file has just been inserted        */
-int LexSave = 0;               /* last character read by GetChar       */
-#define        MAX_LL_DEPTH    2
-
-#define        FLG_ESEEN       0x01    /* possibly a floating point number */
-#define        FLG_DOTSEEN     0x02    /* certainly a floating point number */
+int AccFileSpecifier = 0; /* return filespecifier <...>                */
+int EoiForNewline = 0; /* return EOI upon encountering newline */
+int File_Inserted = 0; /* a file has just been inserted        */
+int LexSave = 0; /* last character read by GetChar     */
+#define MAX_LL_DEPTH 2
+
+#define FLG_ESEEN 0x01 /* possibly a floating point number */
+#define FLG_DOTSEEN 0x02 /* certainly a floating point number */
 extern arith full_mask[];
 
 #ifdef LINT
 extern int lint_skip_comment;
 #endif
 
-#ifndef        NOPP
+#ifndef NOPP
 static struct token LexStack[MAX_LL_DEPTH];
 static LexSP = 0;
 
 void skipcomment();
 
 /*     In PushLex() the actions are taken in order to initialise or
-       re-initialise the lexical scanner.
-       E.g. at the invocation of a sub-parser that uses LLlex(), the
-       state of the current parser should be saved.
+    re-initialise the lexical scanner.
+    E.g. at the invocation of a sub-parser that uses LLlex(), the
+    state of the current parser should be saved.
 */
 PushLex()
 {
        assert(LexSP < MAX_LL_DEPTH);
-       assert(ASIDE == 0);     /* ASIDE = 0;   */
+       assert(ASIDE == 0); /* ASIDE = 0;       */
        GetToken(&ahead);
        LexStack[LexSP++] = dot;
 }
@@ -72,29 +72,30 @@ PopLex()
        assert(LexSP > 0);
        dot = LexStack[--LexSP];
 }
-#endif /* NOPP */
+#endif /* NOPP */
 
-int
-LLlex()
+int LLlex()
 {
        /*      LLlex() plays the role of Lexical Analyzer for the C parser.
-               The look-ahead and putting aside of tokens are taken into
-               account.
+           The look-ahead and putting aside of tokens are taken into
+           account.
        */
-       if (ASIDE) {    /* a token is put aside         */
+       if (ASIDE)
+       { /* a token is put aside               */
                dot = aside;
                ASIDE = 0;
        }
-       else {          /* read ahead and return the old one    */
-#ifdef LINT
+       else
+       { /* read ahead and return the old one  */
+#ifdef LINT
                lint_comment_ahead();
-#endif /* LINT */
+#endif /* LINT */
                dot = ahead;
                /*      the following test is performed due to the dual
-                       task of LLlex(): it is also called for parsing the
-                       restricted constant expression following a #if or
-                       #elif.  The newline character causes EOF to be
-                       returned in this case to stop the LLgen parsing task.
+                   task of LLlex(): it is also called for parsing the
+                   restricted constant expression following a #if or
+                   #elif.  The newline character causes EOF to be
+                   returned in this case to stop the LLgen parsing task.
                */
                if (DOT != EOI)
                        GetToken(&ahead);
@@ -104,32 +105,30 @@ LLlex()
        return DOT;
 }
 
+char* string_token();
+arith char_constant();
 
-char   *string_token();
-arith  char_constant();
-
-int
-GetToken(ptok)
-       register struct token *ptok;
+int GetToken(ptok) register struct token* ptok;
 {
        /*      GetToken() is the actual token recognizer. It calls the
-               control line interpreter if it encounters a "\n{w}*#"
-               combination. Macro replacement is also performed if it is
-               needed.
+           control line interpreter if it encounters a "\n{w}*#"
+           combination. Macro replacement is also performed if it is
+           needed.
        */
        char buf[(IDFSIZE > NUMSIZE ? IDFSIZE : NUMSIZE) + 1];
        register int ch, nch;
 
        token_nmb++;
 
-       if (File_Inserted) {
+       if (File_Inserted)
+       {
                File_Inserted = 0;
                goto firstline;
        }
 
-again: /* rescan the input after an error or replacement       */
+again: /* rescan the input after an error or replacement       */
        ch = GetChar();
-go_on: /* rescan, the following character has been read        */
+go_on: /* rescan, the following character has been read        */
        if ((ch & 0200) && ch != EOI) /* stop on non-ascii character */
        {
                fatal("non-ascii '\\%03o' read", ch & 0377);
@@ -138,370 +137,411 @@ go_on:  /* rescan, the following character has been read        */
        ptok->tk_file = FileName;
        ptok->tk_line = LineNumber;
 
-       switch (class(ch)) {    /* detect character class       */
-       case STNL:              /* newline, vertical space or formfeed  */
-firstline:
-               LineNumber++;                   /* also at vs and ff    */
-               ptok->tk_file = FileName;
-               ptok->tk_line = LineNumber;
-               if (EoiForNewline)      /* called in control line       */
-                       /*      a newline in a control line indicates the
-                               end-of-information of the line.
-                       */
-                       return ptok->tk_symb = EOI;
-
-               while ((ch = GetChar()),
-                       (ch == '#'
+       switch (class(ch))
+       { /* detect character class     */
+               case STNL: /* newline, vertical space or formfeed       */
+               firstline:
+                       LineNumber++; /* also at vs and ff      */
+                       ptok->tk_file = FileName;
+                       ptok->tk_line = LineNumber;
+                       if (EoiForNewline) /* called in control line    */
+                               /*      a newline in a control line indicates the
+                                   end-of-information of the line.
+                               */
+                               return ptok->tk_symb = EOI;
+
+                       while ((ch = GetChar()), (ch == '#'
 #ifndef NOPP
-                       || ch == '/'
+                                                 || ch == '/'
 #endif
-                       || class(ch) == STSKIP)) {
-                       /* blanks are allowed before hashes */
-                       if (ch == '#') {
-                               /* a control line follows */
-                               domacro();
-#ifndef        NOPP
-                               if (File_Inserted) {
-                                       File_Inserted = 0;
-                                       goto firstline;
+                                                 || class(ch) == STSKIP))
+                       {
+                               /* blanks are allowed before hashes */
+                               if (ch == '#')
+                               {
+                                       /* a control line follows */
+                                       domacro();
+#ifndef NOPP
+                                       if (File_Inserted)
+                                       {
+                                               File_Inserted = 0;
+                                               goto firstline;
+                                       }
                                }
-                       } else if (ch == '/') {
-                               if ((GetChar() == '*') && !InputLevel) {
-                                       skipcomment();
-                               } else {
-                                       UnGetChar();
-                                       break;
+                               else if (ch == '/')
+                               {
+                                       if ((GetChar() == '*') && !InputLevel)
+                                       {
+                                               skipcomment();
+                                       }
+                                       else
+                                       {
+                                               UnGetChar();
+                                               break;
+                                       }
+#endif /* NOPP */
                                }
-#endif /* NOPP */
                        }
-               }
                        /*      We have to loop here, because in
-                               `domacro' the nl, vt or ff is read. The
-                               character following it may again be a `#'.
+                           `domacro' the nl, vt or ff is read. The
+                           character following it may again be a `#'.
                        */
-               goto go_on;
-       case STSKIP:            /* just skip the skip characters        */
-               goto again;
-       case STGARB:            /* garbage character                    */
-#ifndef        NOPP
-garbage:
+                       goto go_on;
+               case STSKIP: /* just skip the skip characters   */
+                       goto again;
+               case STGARB: /* garbage character                       */
+#ifndef NOPP
+               garbage:
 #endif
-               if (040 < ch && ch < 0177) {
-                       return ptok->tk_symb = ch;
-               } else {
-                       lexerror("garbage char \\%03o", ch);
-               }
-               goto again;
-       case STSIMP:    /* a simple character, no part of compound token*/
-               return ptok->tk_symb = ch;
-       case STCOMP:    /* maybe the start of a compound token          */
-               nch = GetChar();                /* character lookahead  */
-               switch (ch) {
-               case '!':
-                       if (nch == '=')
-                               return ptok->tk_symb = NOTEQUAL;
-                       break;
-               case '&':
-                       if (nch == '&')
-                               return ptok->tk_symb = AND;
-                       if (nch == '=')
-                               return ptok->tk_symb = ANDAB;
-                       break;
-               case '+':
-                       if (nch == '+')
-                               return ptok->tk_symb = PLUSPLUS;
-                       if (nch == '=')
-                               return ptok->tk_symb = PLUSAB;
-                       break;
-               case '-':
-                       if (nch == '-')
-                               return ptok->tk_symb = MINMIN;
-                       if (nch == '>')
-                               return ptok->tk_symb = ARROW;
-                       if (nch == '=')
-                               return ptok->tk_symb = MINAB;
-                       break;
-               case '<':
-                       if (AccFileSpecifier) {
-                               UnGetChar();    /* pushback nch */
-                               ptok->tk_bts = string_token("file specifier",
-                                                       '>', &(ptok->tk_len));
-                               return ptok->tk_symb = FILESPECIFIER;
-                       }
-                       if (nch == '<') {
-                               if ((nch = GetChar()) == '=')
-                                       return ptok->tk_symb = LEFTAB;
-                               UnGetChar();
-                               return ptok->tk_symb = LEFT;
+                       if (040 < ch && ch < 0177)
+                       {
+                               return ptok->tk_symb = ch;
                        }
-                       if (nch == '=')
-                               return ptok->tk_symb = LESSEQ;
-                       break;
-               case '=':
-                       if (nch == '=')
-                               return ptok->tk_symb = EQUAL;
-                       break;
-               case '>':
-                       if (nch == '=')
-                               return ptok->tk_symb = GREATEREQ;
-                       if (nch == '>') {
-                               if ((nch = GetChar()) == '=')
-                                       return ptok->tk_symb = RIGHTAB;
-                               UnGetChar();
-                               return ptok->tk_symb = RIGHT;
-                       }
-                       break;
-               case '|':
-                       if (nch == '|')
-                               return ptok->tk_symb = OR;
-                       if (nch == '=')
-                               return ptok->tk_symb = ORAB;
-                       break;
-               case '%':
-                       if (nch == '=')
-                               return ptok->tk_symb = MODAB;
-                       break;
-               case '*':
-                       if (nch == '=')
-                               return ptok->tk_symb = TIMESAB;
-                       break;
-               case '^':
-                       if (nch == '=')
-                               return ptok->tk_symb = XORAB;
-                       break;
-               case '/':
-#ifndef        NOPP
-                       if (nch == '*' && !InputLevel) {
-                               skipcomment();
-                               goto again;
+                       else
+                       {
+                               lexerror("garbage char \\%03o", ch);
                        }
+                       goto again;
+               case STSIMP: /* a simple character, no part of compound token*/
+                       return ptok->tk_symb = ch;
+               case STCOMP: /* maybe the start of a compound token             */
+                       nch = GetChar(); /* character lookahead */
+                       switch (ch)
+                       {
+                               case '!':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = NOTEQUAL;
+                                       break;
+                               case '&':
+                                       if (nch == '&')
+                                               return ptok->tk_symb = AND;
+                                       if (nch == '=')
+                                               return ptok->tk_symb = ANDAB;
+                                       break;
+                               case '+':
+                                       if (nch == '+')
+                                               return ptok->tk_symb = PLUSPLUS;
+                                       if (nch == '=')
+                                               return ptok->tk_symb = PLUSAB;
+                                       break;
+                               case '-':
+                                       if (nch == '-')
+                                               return ptok->tk_symb = MINMIN;
+                                       if (nch == '>')
+                                               return ptok->tk_symb = ARROW;
+                                       if (nch == '=')
+                                               return ptok->tk_symb = MINAB;
+                                       break;
+                               case '<':
+                                       if (AccFileSpecifier)
+                                       {
+                                               UnGetChar(); /* pushback nch */
+                                               ptok->tk_bts = string_token("file specifier", '>', &(ptok->tk_len));
+                                               return ptok->tk_symb = FILESPECIFIER;
+                                       }
+                                       if (nch == '<')
+                                       {
+                                               if ((nch = GetChar()) == '=')
+                                                       return ptok->tk_symb = LEFTAB;
+                                               UnGetChar();
+                                               return ptok->tk_symb = LEFT;
+                                       }
+                                       if (nch == '=')
+                                               return ptok->tk_symb = LESSEQ;
+                                       break;
+                               case '=':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = EQUAL;
+                                       break;
+                               case '>':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = GREATEREQ;
+                                       if (nch == '>')
+                                       {
+                                               if ((nch = GetChar()) == '=')
+                                                       return ptok->tk_symb = RIGHTAB;
+                                               UnGetChar();
+                                               return ptok->tk_symb = RIGHT;
+                                       }
+                                       break;
+                               case '|':
+                                       if (nch == '|')
+                                               return ptok->tk_symb = OR;
+                                       if (nch == '=')
+                                               return ptok->tk_symb = ORAB;
+                                       break;
+                               case '%':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = MODAB;
+                                       break;
+                               case '*':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = TIMESAB;
+                                       break;
+                               case '^':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = XORAB;
+                                       break;
+                               case '/':
+#ifndef NOPP
+                                       if (nch == '*' && !InputLevel)
+                                       {
+                                               skipcomment();
+                                               goto again;
+                                       }
 #endif
-                       if (nch == '=')
-                               return ptok->tk_symb = DIVAB;
-                       break;
-               default:
-                       crash("bad class for char 0%o", ch);
-                       /* NOTREACHED */
-               }
-               UnGetChar();
-               return ptok->tk_symb = ch;
-       case STCHAR:                            /* character constant   */
-               ptok->tk_ival = char_constant("character");
-               ptok->tk_fund = INT;
-               return ptok->tk_symb = INTEGER;
-       case STSTR:                                     /* string       */
-               ptok->tk_bts = string_token("string", '"', &(ptok->tk_len));
-               ptok->tk_fund = CHAR;           /* string of characters */
-               return ptok->tk_symb = STRING;
-       case STELL:             /* wide character constant/string prefix */
-               nch = GetChar();
-               if (nch == '"') {
-                       ptok->tk_bts = string_token("wide character string",
-                                       '"', &(ptok->tk_len));
-                       ptok->tk_fund = WCHAR;  /* string of wide characters */
-                       return ptok->tk_symb = STRING;
-               } else if (nch == '\'') {
-                       ptok->tk_ival = char_constant("wide character");
+                                       if (nch == '=')
+                                               return ptok->tk_symb = DIVAB;
+                                       break;
+                               default:
+                                       crash("bad class for char 0%o", ch);
+                                       /* NOTREACHED */
+                       }
+                       UnGetChar();
+                       return ptok->tk_symb = ch;
+               case STCHAR: /* character constant      */
+                       ptok->tk_ival = char_constant("character");
                        ptok->tk_fund = INT;
                        return ptok->tk_symb = INTEGER;
-               }
-               UnGetChar();
+               case STSTR: /* string   */
+                       ptok->tk_bts = string_token("string", '"', &(ptok->tk_len));
+                       ptok->tk_fund = CHAR; /* string of characters */
+                       return ptok->tk_symb = STRING;
+               case STELL: /* wide character constant/string prefix */
+                       nch = GetChar();
+                       if (nch == '"')
+                       {
+                               ptok->tk_bts = string_token("wide character string", '"', &(ptok->tk_len));
+                               ptok->tk_fund = WCHAR; /* string of wide characters */
+                               return ptok->tk_symb = STRING;
+                       }
+                       else if (nch == '\'')
+                       {
+                               ptok->tk_ival = char_constant("wide character");
+                               ptok->tk_fund = INT;
+                               return ptok->tk_symb = INTEGER;
+                       }
+                       UnGetChar();
                /* fallthrough */
-       case STIDF:
-       {
-               register char *tg = &buf[0];
-               register int pos = -1;
-               register struct idf *idef;
-               extern int idfsize;             /* ??? */
-#ifndef        NOPP
-               int NoExpandNext = 0;
-
-               if (Unstacked) EnableMacros();  /* unstack macro's when allowed. */
-               if (ch == NOEXPM)  {
-                       NoExpandNext = 1;
-                       ch = GetChar();
-               }
-#endif
-               do      {                       /* read the identifier  */
-                       if (++pos < idfsize) {
-                               *tg++ = ch;
+               case STIDF:
+               {
+                       register char* tg = &buf[0];
+                       register int pos = -1;
+                       register struct idf* idef;
+                       extern int idfsize; /* ??? */
+#ifndef NOPP
+                       int NoExpandNext = 0;
+
+                       if (Unstacked)
+                               EnableMacros(); /* unstack macro's when allowed. */
+                       if (ch == NOEXPM)
+                       {
+                               NoExpandNext = 1;
+                               ch = GetChar();
                        }
-                       ch = GetChar();
-               } while (in_idf(ch));
+#endif
+                       do
+                       { /* read the identifier        */
+                               if (++pos < idfsize)
+                               {
+                                       *tg++ = ch;
+                               }
+                               ch = GetChar();
+                       } while (in_idf(ch));
 
-               if (ch != EOI)
-                       UnGetChar();
-               *tg++ = '\0';   /* mark the end of the identifier       */
-               idef = ptok->tk_idf = str2idf(buf, 1);
-               sp_occurred[idef->id_special] = 1;
-               idef->id_file = ptok->tk_file;
-               idef->id_line = ptok->tk_line;
-#ifndef        NOPP
-               if (idef->id_macro && ReplaceMacros && !NoExpandNext) {
-                       if (replace(idef))
+                       if (ch != EOI)
+                               UnGetChar();
+                       *tg++ = '\0'; /* mark the end of the identifier */
+                       idef = ptok->tk_idf = str2idf(buf, 1);
+                       sp_occurred[idef->id_special] = 1;
+                       idef->id_file = ptok->tk_file;
+                       idef->id_line = ptok->tk_line;
+#ifndef NOPP
+                       if (idef->id_macro && ReplaceMacros && !NoExpandNext)
+                       {
+                               if (replace(idef))
                                        goto again;
-               }
-               if (UnknownIdIsZero && idef->id_reserved != SIZEOF) {
-                       ptok->tk_ival = (arith)0;
-                       ptok->tk_fund = INT;
-                       return ptok->tk_symb = INTEGER;
-               }
+                       }
+                       if (UnknownIdIsZero && idef->id_reserved != SIZEOF)
+                       {
+                               ptok->tk_ival = (arith)0;
+                               ptok->tk_fund = INT;
+                               return ptok->tk_symb = INTEGER;
+                       }
 #endif /* NOPP */
-               ptok->tk_symb = (
-                       idef->id_reserved
-                           ? idef->id_reserved
-                           : idef->id_def && idef->id_def->df_sc == TYPEDEF
-                               ? TYPE_IDENTIFIER
-                               : IDENTIFIER
-               );
-               return IDENTIFIER;
-       }
-       case STNUM:                             /* a numeric constant   */
-       {
-               register int siz_left = NUMSIZE - 1;
-               register char *np = &buf[0];
-               int flags = 0;
-
-#define        store(ch)       if (--siz_left >= 0)            \
-                               *np++ = ch;
-
-               if (ch == '.') {
-                       /*      An embarrasing ambiguity. We have either a
-                               pp-number, a field operator, an ELLIPSIS or
-                               an error (..).
-                       */
-                       ch = GetChar();
-                       if (!is_dig(ch)) {      /* . or ... */
-                               if (ch == '.') {
-                                       if ((ch = GetChar()) == '.')
-                                               return ptok->tk_symb = ELLIPSIS;
-                                       UnGetChar();            /* not '.' */
-                                       ChPushBack('.');        /* sigh ... */
-                               } else
-                                       UnGetChar();            /* not '.' */
-                               return ptok->tk_symb = '.';
+                       ptok->tk_symb
+                           = (idef->id_reserved
+                                  ? idef->id_reserved
+                                  : idef->id_def && idef->id_def->df_sc == TYPEDEF ? TYPE_IDENTIFIER
+                                                                                   : IDENTIFIER);
+                       return IDENTIFIER;
+               }
+               case STNUM: /* a numeric constant       */
+               {
+                       register int siz_left = NUMSIZE - 1;
+                       register char* np = &buf[0];
+                       int flags = 0;
+
+#define store(ch)                                                                                  \
+       if (--siz_left >= 0)                                                                           \
+               *np++ = ch;
+
+                       if (ch == '.')
+                       {
+                               /*      An embarrasing ambiguity. We have either a
+                                   pp-number, a field operator, an ELLIPSIS or
+                                   an error (..).
+                               */
+                               ch = GetChar();
+                               if (!is_dig(ch))
+                               { /* . or ... */
+                                       if (ch == '.')
+                                       {
+                                               if ((ch = GetChar()) == '.')
+                                                       return ptok->tk_symb = ELLIPSIS;
+                                               UnGetChar(); /* not '.' */
+                                               ChPushBack('.'); /* sigh ... */
+                                       }
+                                       else
+                                               UnGetChar(); /* not '.' */
+                                       return ptok->tk_symb = '.';
+                               }
+                               UnGetChar();
+                               ch = '.';
+                               flags |= FLG_DOTSEEN;
                        }
-                       UnGetChar();
-                       ch = '.';
-                       flags |= FLG_DOTSEEN;
-                }
-               store(ch);
-               ch = GetChar();
-               while(in_idf(ch) || ch == '.') {
                        store(ch);
-                       if (ch == '.') flags |= FLG_DOTSEEN;
-                       if (ch == 'e' || ch == 'E') {
-                               flags |= FLG_ESEEN;
-                               ch = GetChar();
-                               if (ch == '+' || ch == '-') {
-                                       flags |= FLG_DOTSEEN;   /* trick */
-                                       store(ch);
+                       ch = GetChar();
+                       while (in_idf(ch) || ch == '.')
+                       {
+                               store(ch);
+                               if (ch == '.')
+                                       flags |= FLG_DOTSEEN;
+                               if (ch == 'e' || ch == 'E')
+                               {
+                                       flags |= FLG_ESEEN;
                                        ch = GetChar();
+                                       if (ch == '+' || ch == '-')
+                                       {
+                                               flags |= FLG_DOTSEEN; /* trick */
+                                               store(ch);
+                                               ch = GetChar();
+                                       }
                                }
-                       } else ch = GetChar();
-               }
-               store('\0');
-               UnGetChar();
+                               else
+                                       ch = GetChar();
+                       }
+                       store('\0');
+                       UnGetChar();
 
-               np = &buf[0];
-               ch = *np++;
-               if (siz_left < 0) {
-                       lexerror("number too long");
+                       np = &buf[0];
+                       ch = *np++;
+                       if (siz_left < 0)
+                       {
+                               lexerror("number too long");
+                               if ((flags & FLG_DOTSEEN)
+                                   || (flags & FLG_ESEEN && !(ch == '0' && (*np == 'x' || *np == 'X'))))
+                               {
+                                       ptok->tk_fval = Salloc("0.0", (unsigned)4);
+                                       ptok->tk_fund = DOUBLE;
+                                       return ptok->tk_symb = FLOATING;
+                               }
+                               ptok->tk_ival = 1;
+                               ptok->tk_fund = ULONG;
+                               ptok->tk_symb = INTEGER;
+                       }
+                       /* Now, the pp-number must be converted into a token */
                        if ((flags & FLG_DOTSEEN)
-                           || (flags & FLG_ESEEN
-                               && !(ch == '0'
-                                   && (*np == 'x' || *np == 'X')))) {
-                           ptok->tk_fval = Salloc("0.0", (unsigned) 4);
-                           ptok->tk_fund = DOUBLE;
-                           return ptok->tk_symb = FLOATING;
+                           || (flags & FLG_ESEEN && !(ch == '0' && (*np == 'x' || *np == 'X'))))
+                       {
+                               strflt2tok(&buf[0], ptok);
+                               return ptok->tk_symb = FLOATING;
                        }
-                       ptok->tk_ival = 1;
-                       ptok->tk_fund = ULONG;
-                       ptok->tk_symb = INTEGER;
-               }
-               /* Now, the pp-number must be converted into a token */
-               if ((flags & FLG_DOTSEEN)
-                       || (flags & FLG_ESEEN
-                           && !(ch == '0' && (*np == 'x' || *np == 'X')))) {
-                       strflt2tok(&buf[0], ptok);
-                       return ptok->tk_symb = FLOATING;
+                       strint2tok(&buf[0], ptok);
+                       return ptok->tk_symb = INTEGER;
                }
-               strint2tok(&buf[0], ptok);
-               return ptok->tk_symb = INTEGER;
-       }
-       case STEOI:                     /* end of text on source file   */
-               return ptok->tk_symb = EOI;
-#ifndef        NOPP
-       case STMSPEC:
-               if (!InputLevel) goto garbage;
-               if (ch == TOKSEP) goto again;
-               /* fallthrough shouldn't happen */
+               case STEOI: /* end of text on source file       */
+                       return ptok->tk_symb = EOI;
+#ifndef NOPP
+               case STMSPEC:
+                       if (!InputLevel)
+                               goto garbage;
+                       if (ch == TOKSEP)
+                               goto again;
+/* fallthrough shouldn't happen */
 #endif
-       default:                                /* this cannot happen   */
-               crash("bad class for char 0%o", ch);
+               default: /* this cannot happen  */
+                       crash("bad class for char 0%o", ch);
        }
        /*NOTREACHED*/
 }
 
-#ifndef        NOPP
-void
-skipcomment()
+#ifndef NOPP
+void skipcomment()
 {
        /*      The last character read has been the '*' of '/_*'.  The
-               characters, except NL and EOI, between '/_*' and the first
-               occurring '*_/' are not interpreted.
-               NL only affects the LineNumber.  EOI is not legal.
-
-               Important note: it is not possible to stop skipping comment
-               beyond the end-of-file of an included file.
-               EOI is returned by LoadChar only on encountering EOF of the
-               top-level file...
+           characters, except NL and EOI, between '/_*' and the first
+           occurring '*_/' are not interpreted.
+           NL only affects the LineNumber.  EOI is not legal.
+
+           Important note: it is not possible to stop skipping comment
+           beyond the end-of-file of an included file.
+           EOI is returned by LoadChar only on encountering EOF of the
+           top-level file...
        */
        register int c, oldc = '\0';
 
        NoUnstack++;
        c = GetChar();
-#ifdef LINT
-       if (! lint_skip_comment) {
+#ifdef LINT
+       if (!lint_skip_comment)
+       {
                lint_start_comment();
                lint_comment_char(c);
        }
-#endif /* LINT */
-       do {
-               while (c != '*') {
-                       if (class(c) == STNL) {
+#endif /* LINT */
+       do
+       {
+               while (c != '*')
+               {
+                       if (class(c) == STNL)
+                       {
                                ++LineNumber;
-                       } else if (c == EOI) {
+                       }
+                       else if (c == EOI)
+                       {
                                NoUnstack--;
-#ifdef LINT
-                               if (! lint_skip_comment) lint_end_comment();
-#endif /* LINT */
+#ifdef LINT
+                               if (!lint_skip_comment)
+                                       lint_end_comment();
+#endif /* LINT */
                                return;
                        }
                        oldc = c;
                        c = GetChar();
-#ifdef LINT
-                       if (! lint_skip_comment) lint_comment_char(c);
-#endif /* LINT */
+#ifdef LINT
+                       if (!lint_skip_comment)
+                               lint_comment_char(c);
+#endif /* LINT */
                } /* last Character seen was '*' */
                c = GetChar();
-               if ( c != '/' && oldc == '/')
+               if (c != '/' && oldc == '/')
                        lexwarning("comment inside comment ?");
                oldc = '*';
-#ifdef LINT
-               if (! lint_skip_comment) lint_comment_char(c);
-#endif /* LINT */
+#ifdef LINT
+               if (!lint_skip_comment)
+                       lint_comment_char(c);
+#endif /* LINT */
        } while (c != '/');
-#ifdef LINT
-       if (! lint_skip_comment) lint_end_comment();
-#endif /* LINT */
+#ifdef LINT
+       if (!lint_skip_comment)
+               lint_end_comment();
+#endif /* LINT */
        NoUnstack--;
 }
-#endif /* NOPP */
+#endif /* NOPP */
 
-arith
-char_constant(nm)
-       char *nm;
+arith char_constant(nm) char* nm;
 {
        register arith val = 0;
        register int ch;
@@ -511,20 +551,23 @@ char_constant(nm)
        if (ch == '\'')
                lexerror("%s constant too short", nm);
        else
-       while (ch != '\'') {
-               if (ch == '\n') {
-                       lexerror("newline in %s constant", nm);
-                       LineNumber++;
-                       break;
+               while (ch != '\'')
+               {
+                       if (ch == '\n')
+                       {
+                               lexerror("newline in %s constant", nm);
+                               LineNumber++;
+                               break;
+                       }
+                       if (ch == '\\')
+                               ch = quoted(GetChar());
+                       if (ch >= 128)
+                               ch -= 256;
+                       if (size < (int)int_size)
+                               val |= ch << 8 * size;
+                       size++;
+                       ch = GetChar();
                }
-               if (ch == '\\')
-                       ch = quoted(GetChar());
-               if (ch >= 128) ch -= 256;
-               if (size < (int)int_size)
-                       val |= ch << 8 * size;
-               size++;
-               ch = GetChar();
-       }
        if (size > 1)
                lexstrict("%s constant includes more than one character", nm);
        if (size > (int)int_size)
@@ -532,24 +575,25 @@ char_constant(nm)
        return val;
 }
 
-char *
-string_token(nm, stop_char, plen)
-       char *nm;
-       int *plen;
+char* string_token(nm, stop_char, plen) char* nm;
+int* plen;
 {
        register int ch;
        register int str_size;
-       register char *str = Malloc((unsigned) (str_size = ISTRSIZE));
+       register char* str = Malloc((unsigned)(str_size = ISTRSIZE));
        register int pos = 0;
-       
+
        ch = GetChar();
-       while (ch != stop_char) {
-               if (ch == '\n') {
+       while (ch != stop_char)
+       {
+               if (ch == '\n')
+               {
                        lexerror("newline in %s", nm);
                        LineNumber++;
                        break;
                }
-               if (ch == EOI) {
+               if (ch == EOI)
+               {
                        lexerror("end-of-file inside %s", nm);
                        break;
                }
@@ -557,7 +601,7 @@ string_token(nm, stop_char, plen)
                        ch = quoted(GetChar());
                str[pos++] = ch;
                if (pos == str_size)
-                       str = Realloc(str, (unsigned) (str_size += RSTRSIZE));
+                       str = Realloc(str, (unsigned)(str_size += RSTRSIZE));
                ch = GetChar();
        }
        str[pos++] = '\0'; /* for filenames etc. */
@@ -565,82 +609,78 @@ string_token(nm, stop_char, plen)
        return str;
 }
 
-int
-quoted(ch)
-       register int ch;
-{      
+int quoted(ch) register int ch;
+{
        /*      quoted() replaces an escaped character sequence by the
-               character meant.
+           character meant.
        */
        /* first char after backslash already in ch */
-       if (!is_oct(ch)) {              /* a quoted char */
-               switch (ch) {
-               case 'n':
-                       ch = '\n';
-                       break;
-               case 't':
-                       ch = '\t';
-                       break;
-               case 'b':
-                       ch = '\b';
-                       break;
-               case 'r':
-                       ch = '\r';
-                       break;
-               case 'f':
-                       ch = '\f';
-                       break;
-               case 'a':               /* alert */
-                       ch = '\007';
-                       break;
-               case 'v':               /* vertical tab */
-                       ch = '\013';
-                       break;
-               case 'x':               /* quoted hex */
+       if (!is_oct(ch))
+       { /* a quoted char */
+               switch (ch)
                {
-                       register int hex = 0;
-                       register int vch;
-
-                       for (;;) {
-                               ch = GetChar();
-                               if ((vch = hex_val(ch)) == -1)
-                                       break;
-                               hex = hex * 16 + vch;
+                       case 'n':
+                               ch = '\n';
+                               break;
+                       case 't':
+                               ch = '\t';
+                               break;
+                       case 'b':
+                               ch = '\b';
+                               break;
+                       case 'r':
+                               ch = '\r';
+                               break;
+                       case 'f':
+                               ch = '\f';
+                               break;
+                       case 'a': /* alert */
+                               ch = '\007';
+                               break;
+                       case 'v': /* vertical tab */
+                               ch = '\013';
+                               break;
+                       case 'x': /* quoted hex */
+                       {
+                               register int hex = 0;
+                               register int vch;
+
+                               for (;;)
+                               {
+                                       ch = GetChar();
+                                       if ((vch = hex_val(ch)) == -1)
+                                               break;
+                                       hex = hex * 16 + vch;
+                               }
+                               UnGetChar();
+                               ch = hex;
                        }
-                       UnGetChar();
-                       ch = hex;
-               }
                }
        }
-       else {                          /* a quoted octal */
+       else
+       { /* a quoted octal */
                register int oct = 0, cnt = 0;
 
-               do {
-                       oct = oct*8 + (ch-'0');
+               do
+               {
+                       oct = oct * 8 + (ch - '0');
                        ch = GetChar();
                } while (is_oct(ch) && ++cnt < 3);
                UnGetChar();
                ch = oct;
        }
-       return ch&0377;
+       return ch & 0377;
 }
 
-
-int
-hex_val(ch)
-       register int ch;
+int hex_val(ch) register int ch;
 {
-       return is_dig(ch) ? ch - '0'
-                       : is_hex(ch) ? (ch - 'a' + 10) & 017
-                       : -1;
+       return is_dig(ch) ? ch - '0' : is_hex(ch) ? (ch - 'a' + 10) & 017 : -1;
 }
 
-
-int
-GetChar()
+int GetChar()
 {
        /*      The routines GetChar and trigraph parses the trigraph
-               sequences and removes occurences of \\\n.
+           sequences and removes occurences of \\\n.
        */
        register int ch;
 
@@ -655,9 +695,11 @@ again:
                ch = trigraph();
 
        /* \<newline> is removed from the input stream */
-       if (ch == '\\') {
+       if (ch == '\\')
+       {
                LoadChar(ch);
-               if (ch == '\n') {
+               if (ch == '\n')
+               {
                        ++LineNumber;
                        goto again;
                }
@@ -665,113 +707,133 @@ again:
                ch = '\\';
        }
 #endif
-       return(LexSave = ch);
+       return (LexSave = ch);
 }
 
 #ifndef NOPP
-int
-trigraph()
+int trigraph()
 {
        register int ch;
 
        LoadChar(ch);
-       if (ch == '?') {
+       if (ch == '?')
+       {
                LoadChar(ch);
-               switch (ch) {           /* its a trigraph */
-               case '=':
-                       ch =  '#';
-                       return(ch);
-               case '(':
-                       ch = '[';
-                       return(ch);
-               case '/':
-                       ch = '\\';
-                       return(ch);
-               case ')':
-                       ch = ']';
-                       return(ch);
-               case '\'':
-                       ch = '^';
-                       return(ch);
-               case '<':
-                       ch = '{';
-                       return(ch);
-               case '!':
-                       ch = '|';
-                       return(ch);
-               case '>':
-                       ch = '}';
-                       return(ch);
-               case '-':
-                       ch = '~';
-                       return(ch);
+               switch (ch)
+               { /* its a trigraph */
+                       case '=':
+                               ch = '#';
+                               return (ch);
+                       case '(':
+                               ch = '[';
+                               return (ch);
+                       case '/':
+                               ch = '\\';
+                               return (ch);
+                       case ')':
+                               ch = ']';
+                               return (ch);
+                       case '\'':
+                               ch = '^';
+                               return (ch);
+                       case '<':
+                               ch = '{';
+                               return (ch);
+                       case '!':
+                               ch = '|';
+                               return (ch);
+                       case '>':
+                               ch = '}';
+                               return (ch);
+                       case '-':
+                               ch = '~';
+                               return (ch);
                }
                PushBack();
        }
        PushBack();
-       return('?');
+       return ('?');
 }
 #endif
 
 /* strflt2tok only checks the syntax of the floating-point number and
  * selects the right type for the number.
  */
-strflt2tok(fltbuf, ptok)
-char fltbuf[];
-struct token *ptok;
+strflt2tok(fltbuf, ptok) char fltbuf[];
+struct token* ptok;
 {
-       register char *cp = fltbuf;
+       register charcp = fltbuf;
        int malformed = 0;
 
-       while (is_dig(*cp)) cp++;
-       if (*cp == '.') {
+       while (is_dig(*cp))
                cp++;
-               while (is_dig(*cp)) cp++;
+       if (*cp == '.')
+       {
+               cp++;
+               while (is_dig(*cp))
+                       cp++;
        }
-       if (*cp == 'e' || *cp == 'E') {
+       if (*cp == 'e' || *cp == 'E')
+       {
                cp++;
                if (*cp == '+' || *cp == '-')
                        cp++;
-               if (!is_dig(*cp)) malformed++;
-               while (is_dig(*cp)) cp++;
+               if (!is_dig(*cp))
+                       malformed++;
+               while (is_dig(*cp))
+                       cp++;
        }
-       if (*cp == 'f' || *cp == 'F') {
-               if (*(cp + 1)) malformed++;
+       if (*cp == 'f' || *cp == 'F')
+       {
+               if (*(cp + 1))
+                       malformed++;
                *cp = '\0';
                ptok->tk_fund = FLOAT;
-       } else if (*cp == 'l' || *cp == 'L') {
-               if (*(cp + 1)) malformed++;
+       }
+       else if (*cp == 'l' || *cp == 'L')
+       {
+               if (*(cp + 1))
+                       malformed++;
                *cp = '\0';
                ptok->tk_fund = LNGDBL;
-       } else {
-               if (*cp) malformed++;
+       }
+       else
+       {
+               if (*cp)
+                       malformed++;
                ptok->tk_fund = DOUBLE;
        }
-       if (malformed) {
+       if (malformed)
+       {
                lexerror("malformed floating constant");
-               ptok->tk_fval = Salloc("0.0", (unsigned) 4);
-       } else {
-               ptok->tk_fval = Salloc(fltbuf, (unsigned) (cp - fltbuf + 1));
+               ptok->tk_fval = Salloc("0.0", (unsigned)4);
+       }
+       else
+       {
+               ptok->tk_fval = Salloc(fltbuf, (unsigned)(cp - fltbuf + 1));
        }
 }
 
-strint2tok(intbuf, ptok)
-char intbuf[];
-struct token *ptok;
+strint2tok(intbuf, ptok) char intbuf[];
+struct token* ptok;
 {
-       register char *cp = intbuf;
+       register charcp = intbuf;
        int base = 10;
        arith val = 0, dig, ubound;
        int uns_flg = 0, lng_flg = 0, malformed = 0, ovfl = 0;
        int fund;
 
        assert(*cp != '-');
-       if (*cp == '0') {
+       if (*cp == '0')
+       {
                cp++;
-               if (*cp == 'x' || *cp == 'X') {
+               if (*cp == 'x' || *cp == 'X')
+               {
                        cp++;
                        base = 16;
-               } else base = 8;
+               }
+               else
+                       base = 8;
        }
        /* The upperbound will be the same as when computed with
         * max_unsigned_arith / base (since base is even). The problem here
@@ -779,68 +841,99 @@ struct token *ptok;
         */
        ubound = max_arith / (base / 2);
 
-       while (is_hex(*cp)) {
+       while (is_hex(*cp))
+       {
                dig = hex_val(*cp);
-               if (dig >= base) {
-                       malformed++;                    /* ignore */
+               if (dig >= base)
+               {
+                       malformed++; /* ignore */
                }
-               else {
-                       if (val < 0 || val > ubound) ovfl++;
+               else
+               {
+                       if (val < 0 || val > ubound)
+                               ovfl++;
                        val *= base;
-                       if (val < 0 && val + dig >= 0) ovfl++;
+                       if (val < 0 && val + dig >= 0)
+                               ovfl++;
                        val += dig;
                }
                cp++;
        }
 
-       while (*cp) {
-               if (*cp == 'l' || *cp == 'L') lng_flg++;
-               else if (*cp == 'u' || *cp == 'U') uns_flg++;
-               else break;
+       while (*cp)
+       {
+               if (*cp == 'l' || *cp == 'L')
+                       lng_flg++;
+               else if (*cp == 'u' || *cp == 'U')
+                       uns_flg++;
+               else
+                       break;
                cp++;
        }
-       if (*cp) {
-           malformed++;
+       if (*cp)
+       {
+               malformed++;
        }
-       if (malformed) {
-               lexerror("malformed %s integer constant",
-                               (base == 10 ? "decimal"
-                                           : (base == 8 ? "octal"
-                                                       : "hexadecimal")));
-       } else {
+       if (malformed)
+       {
+               lexerror(
+                   "malformed %s integer constant",
+                   (base == 10 ? "decimal" : (base == 8 ? "octal" : "hexadecimal")));
+       }
+       else
+       {
                if (lng_flg > 1)
                        lexerror("only one long suffix allowed");
                if (uns_flg > 1)
                        lexerror("only one unsigned suffix allowed");
        }
-       if (ovfl) {
+       if (ovfl)
+       {
                lexwarning("overflow in constant");
                fund = ULONG;
-       } else if (!lng_flg && (val & full_mask[(int)int_size]) == val) {
-               if (val >= 0 && val <= max_int) {
+       }
+       else if (!lng_flg && (val & full_mask[(int)int_size]) == val)
+       {
+               if (val >= 0 && val <= max_int)
+               {
                        fund = INT;
-               } else if (int_size == long_size) {
+               }
+               else if (int_size == long_size)
+               {
                        fund = UNSIGNED;
-               } else if (base == 10 && !uns_flg)
+               }
+               else if (base == 10 && !uns_flg)
+                       fund = LONG;
+               else
+                       fund = UNSIGNED;
+       }
+       else if ((val & full_mask[(int)long_size]) == val)
+       {
+               if (val >= 0)
                        fund = LONG;
-               else    fund = UNSIGNED;
-       } else if((val & full_mask[(int)long_size]) == val) {
-               if (val >= 0) fund = LONG;
-               else fund = ULONG;
-       } else {        /* sizeof(arith) is greater than long_size */
+               else
+                       fund = ULONG;
+       }
+       else
+       { /* sizeof(arith) is greater than long_size */
                assert(arith_size > long_size);
                lexwarning("constant too large for target machine");
                /* cut the size to prevent further complaints */
                val &= full_mask[(int)long_size];
                fund = ULONG;
        }
-       if (lng_flg) {
+       if (lng_flg)
+       {
                /* fund can't be INT */
-               if (fund == UNSIGNED) fund = ULONG;
+               if (fund == UNSIGNED)
+                       fund = ULONG;
        }
-       if (uns_flg) {
-           if (fund == INT) fund = UNSIGNED;
-           else if (fund == LONG) fund = ULONG;
+       if (uns_flg)
+       {
+               if (fund == INT)
+                       fund = UNSIGNED;
+               else if (fund == LONG)
+                       fund = ULONG;
        }
        ptok->tk_fund = fund;
        ptok->tk_ival = val;
index a0ec21a..0fc9ec8 100644 (file)
 /* $Id$ */
 /*                 L E X I C A L   A N A L Y Z E R                     */
 
-#include       "parameters.h"
+#include "parameters.h"
 
-#include       <string.h>
-#include       <alloc.h>
-#include       "input.h"
-#include       "arith.h"
-#include       "macro.h"
-#include       "idf.h"
-#include       "LLlex.h"
-#include       "Lpars.h"
-#include       "class.h"
-#include       "bits.h"
+#include <string.h>
+#include <alloc.h>
+#include "input.h"
+#include "arith.h"
+#include "macro.h"
+#include "idf.h"
+#include "LLlex.h"
+#include "Lpars.h"
+#include "class.h"
+#include "bits.h"
 
-#define        BUFSIZ  1024
+#define BUFSIZ 1024
 
 struct token dot;
 
-int ReplaceMacros = 1;         /* replacing macros                     */
-int AccDefined = 0;            /* accept "defined(...)"                */
-int UnknownIdIsZero = 0;       /* interpret unknown id as integer 0    */
-int Unstacked = 0;             /* an unstack is done                   */
-int AccFileSpecifier = 0;      /* return filespecifier <...>           */
-int LexSave = 0;                /* last character read by GetChar       */
-extern int InputLevel;         /* # of current macro expansions        */
+int ReplaceMacros = 1; /* replacing macros                     */
+int AccDefined = 0; /* accept "defined(...)"           */
+int UnknownIdIsZero = 0; /* interpret unknown id as integer 0  */
+int Unstacked = 0; /* an unstack is done                       */
+int AccFileSpecifier = 0; /* return filespecifier <...>                */
+int LexSave = 0; /* last character read by GetChar       */
+extern int InputLevel; /* # of current macro expansions        */
 
-extern char    *string_token();
-extern arith   char_constant();
-#define                FLG_ESEEN       0x01    /* possibly a floating point number */
-#define                FLG_DOTSEEN     0x02    /* certainly a floating point number */
+extern charstring_token();
+extern arith char_constant();
+#define FLG_ESEEN 0x01 /* possibly a floating point number */
+#define FLG_DOTSEEN 0x02 /* certainly a floating point number */
 
 void skipcomment();
 
-int
-LLlex()
+int LLlex()
 {
        return (DOT != EOF) ? GetToken(&dot) : EOF;
 }
 
-
-int
-GetToken(ptok)
-       register struct token *ptok;
+int GetToken(ptok) register struct token* ptok;
 {
        /*      GetToken() is the actual token recognizer. It calls the
-               control line interpreter if it encounters a "\n{w}*#"
-               combination. Macro replacement is also performed if it is
-               needed.
+           control line interpreter if it encounters a "\n{w}*#"
+           combination. Macro replacement is also performed if it is
+           needed.
        */
        char buf[BUFSIZ];
        register int ch, nch;
 
-again: /* rescan the input after an error or replacement       */
+again: /* rescan the input after an error or replacement       */
        ch = GetChar();
        /* rescan, the following character has been read        */
        if ((ch & 0200) && ch != EOI) /* stop on non-ascii character */
                fatal("non-ascii '\\%03o' read", ch & 0377);
        /* keep track of the place of the token in the file     */
 
-       switch (class(ch)) {    /* detect character class       */
-       case STNL:              /* newline, vertical space or formfeed  */
-               LineNumber++;
-               return ptok->tk_symb = EOF;
-       case STSKIP:            /* just skip the skip characters        */
-               goto again;
-       case STGARB:            /* garbage character                    */
-garbage:
-               if (040 < ch && ch < 0177)
-                       error("garbage char %c", ch);
-               else
-                       error("garbage char \\%03o", ch);
-               goto again;
-       case STSIMP:    /* a simple character, no part of compound token*/
-               return ptok->tk_symb = ch;
-       case STCOMP:    /* maybe the start of a compound token          */
-               nch = GetChar();                /* character lookahead  */
-               switch (ch) {
-               case '!':
-                       if (nch == '=')
-                               return ptok->tk_symb = NOTEQUAL;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '&':
-                       if (nch == '&')
-                               return ptok->tk_symb = AND;
-                       else if (nch == '=')
-                               return ptok->tk_symb = ANDAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '+':
-                       if (nch == '+')
-                               return ptok->tk_symb = PLUSPLUS;
-                       else if (nch == '=')
-                               return ptok->tk_symb = PLUSAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '-':
-                       if (nch == '-')
-                               return ptok->tk_symb = MINMIN;
-                       else if (nch == '>')
-                               return ptok->tk_symb = ARROW;
-                       else if (nch == '=')
-                               return ptok->tk_symb = MINAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '<':
-                       if (AccFileSpecifier) {
-                               UnGetChar();    /* pushback nch */
-                               ptok->tk_str =
-                                       string_token("file specifier", '>');
-                               return ptok->tk_symb = FILESPECIFIER;
-                       } else if (nch == '<') {
-                               if ((nch = GetChar()) == '=')
-                                       return ptok->tk_symb = LEFTAB;
-                               UnGetChar();
-                               return ptok->tk_symb = LEFT;
-                       } else if (nch == '=')
-                               return ptok->tk_symb = LESSEQ;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '=':
-                       if (nch == '=')
-                               return ptok->tk_symb = EQUAL;
-                       UnGetChar();
+       switch (class(ch))
+       { /* detect character class     */
+               case STNL: /* newline, vertical space or formfeed       */
+                       LineNumber++;
+                       return ptok->tk_symb = EOF;
+               case STSKIP: /* just skip the skip characters   */
+                       goto again;
+               case STGARB: /* garbage character                       */
+               garbage:
+                       if (040 < ch && ch < 0177)
+                               error("garbage char %c", ch);
+                       else
+                               error("garbage char \\%03o", ch);
+                       goto again;
+               case STSIMP: /* a simple character, no part of compound token*/
                        return ptok->tk_symb = ch;
-               case '>':
-                       if (nch == '=')
-                               return ptok->tk_symb = GREATEREQ;
-                       else if (nch == '>') {
-                               if ((nch = GetChar()) == '=')
-                                       return ptok->tk_symb = RIGHTAB;
-                               UnGetChar();
-                               return ptok->tk_symb = RIGHT;
+               case STCOMP: /* maybe the start of a compound token             */
+                       nch = GetChar(); /* character lookahead */
+                       switch (ch)
+                       {
+                               case '!':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = NOTEQUAL;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '&':
+                                       if (nch == '&')
+                                               return ptok->tk_symb = AND;
+                                       else if (nch == '=')
+                                               return ptok->tk_symb = ANDAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '+':
+                                       if (nch == '+')
+                                               return ptok->tk_symb = PLUSPLUS;
+                                       else if (nch == '=')
+                                               return ptok->tk_symb = PLUSAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '-':
+                                       if (nch == '-')
+                                               return ptok->tk_symb = MINMIN;
+                                       else if (nch == '>')
+                                               return ptok->tk_symb = ARROW;
+                                       else if (nch == '=')
+                                               return ptok->tk_symb = MINAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '<':
+                                       if (AccFileSpecifier)
+                                       {
+                                               UnGetChar(); /* pushback nch */
+                                               ptok->tk_str = string_token("file specifier", '>');
+                                               return ptok->tk_symb = FILESPECIFIER;
+                                       }
+                                       else if (nch == '<')
+                                       {
+                                               if ((nch = GetChar()) == '=')
+                                                       return ptok->tk_symb = LEFTAB;
+                                               UnGetChar();
+                                               return ptok->tk_symb = LEFT;
+                                       }
+                                       else if (nch == '=')
+                                               return ptok->tk_symb = LESSEQ;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '=':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = EQUAL;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '>':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = GREATEREQ;
+                                       else if (nch == '>')
+                                       {
+                                               if ((nch = GetChar()) == '=')
+                                                       return ptok->tk_symb = RIGHTAB;
+                                               UnGetChar();
+                                               return ptok->tk_symb = RIGHT;
+                                       }
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '|':
+                                       if (nch == '|')
+                                               return ptok->tk_symb = OR;
+                                       else if (nch == '=')
+                                               return ptok->tk_symb = ORAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '%':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = MODAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '*':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = TIMESAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '^':
+                                       if (nch == '=')
+                                               return ptok->tk_symb = XORAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               case '/':
+                                       if (nch == '*' && !InputLevel)
+                                       {
+                                               skipcomment();
+                                               goto again;
+                                       }
+                                       else if (nch == '=')
+                                               return ptok->tk_symb = DIVAB;
+                                       UnGetChar();
+                                       return ptok->tk_symb = ch;
+                               default:
+                                       crash("bad class for char 0%o", ch);
+                                       /* NOTREACHED */
                        }
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '|':
-                       if (nch == '|')
-                               return ptok->tk_symb = OR;
-                       else if (nch == '=')
-                               return ptok->tk_symb = ORAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '%':
-                       if (nch == '=')
-                               return ptok->tk_symb = MODAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '*':
-                       if (nch == '=')
-                               return ptok->tk_symb = TIMESAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '^':
-                       if (nch == '=')
-                               return ptok->tk_symb = XORAB;
-                       UnGetChar();
-                       return ptok->tk_symb = ch;
-               case '/':
-                       if (nch == '*' && !InputLevel) {
-                               skipcomment();
-                               goto again;
+               case STCHAR: /* character constant      */
+                       ptok->tk_val = char_constant("character");
+                       return ptok->tk_symb = INTEGER;
+               case STSTR: /* string   */
+                       ptok->tk_str = string_token("string", '"');
+                       return ptok->tk_symb = STRING;
+               case STELL: /* wide character constant/string prefix */
+                       nch = GetChar();
+                       if (nch == '"')
+                       {
+                               ptok->tk_str = string_token("wide character string", '"');
+                               return ptok->tk_symb = STRING;
+                       }
+                       else if (nch == '\'')
+                       {
+                               ptok->tk_val = char_constant("wide character");
+                               return ptok->tk_symb = INTEGER;
                        }
-                       else if (nch == '=')
-                               return ptok->tk_symb = DIVAB;
                        UnGetChar();
-                       return ptok->tk_symb = ch;
-               default:
-                       crash("bad class for char 0%o", ch);
-                       /* NOTREACHED */
-               }
-       case STCHAR:                            /* character constant   */
-               ptok->tk_val = char_constant("character");
-               return ptok->tk_symb = INTEGER;
-       case STSTR:                                     /* string       */
-               ptok->tk_str = string_token("string", '"');
-               return ptok->tk_symb = STRING;
-       case STELL:             /* wide character constant/string prefix */
-               nch = GetChar();
-               if (nch == '"') {
-                       ptok->tk_str =
-                               string_token("wide character string", '"');
-                       return ptok->tk_symb = STRING;
-               } else if (nch == '\'') {
-                       ptok->tk_val = char_constant("wide character");
-                       return ptok->tk_symb = INTEGER;
-               }
-               UnGetChar();
                /* fallthrough */
-       case STIDF:
-       {
-               extern int idfsize;             /* ??? */
-               register char *tg = &buf[0];
-               register char *maxpos = &buf[idfsize];
-               int NoExpandNext = 0;
-
-#define tstmac(bx)     if (!(bits[ch] & bx)) goto nomac
-#define cpy            *tg++ = ch
-#define load           (ch = GetChar()); if (!in_idf(ch)) goto endidf
-
-               if (Unstacked) EnableMacros();  /* unstack macro's when allowed. */
-               if (ch == NOEXPM)  {
-                       NoExpandNext = 1;
-                       ch = GetChar();
-               }
+               case STIDF:
+               {
+                       extern int idfsize; /* ??? */
+                       register char* tg = &buf[0];
+                       register char* maxpos = &buf[idfsize];
+                       int NoExpandNext = 0;
+
+#define tstmac(bx)                                                                                 \
+       if (!(bits[ch] & bx))                                                                          \
+       goto nomac
+#define cpy *tg++ = ch
+#define load                                                                                       \
+       (ch = GetChar());                                                                              \
+       if (!in_idf(ch))                                                                               \
+       goto endidf
+
+                       if (Unstacked)
+                               EnableMacros(); /* unstack macro's when allowed. */
+                       if (ch == NOEXPM)
+                       {
+                               NoExpandNext = 1;
+                               ch = GetChar();
+                       }
 #ifdef DOBITS
-               cpy; tstmac(bit0); load;
-               cpy; tstmac(bit1); load;
-               cpy; tstmac(bit2); load;
-               cpy; tstmac(bit3); load;
-               cpy; tstmac(bit4); load;
-               cpy; tstmac(bit5); load;
-               cpy; tstmac(bit6); load;
-               cpy; tstmac(bit7); load;
+                       cpy;
+                       tstmac(bit0);
+                       load;
+                       cpy;
+                       tstmac(bit1);
+                       load;
+                       cpy;
+                       tstmac(bit2);
+                       load;
+                       cpy;
+                       tstmac(bit3);
+                       load;
+                       cpy;
+                       tstmac(bit4);
+                       load;
+                       cpy;
+                       tstmac(bit5);
+                       load;
+                       cpy;
+                       tstmac(bit6);
+                       load;
+                       cpy;
+                       tstmac(bit7);
+                       load;
 #endif
-               for(;;) {
-                       if (tg < maxpos) {
-                               cpy;
-
+                       for (;;)
+                       {
+                               if (tg < maxpos)
+                               {
+                                       cpy;
+                               }
+                               load;
                        }
-                       load;
-               }
-       endidf:
-               /*if (ch != EOI) UnGetChar();*/
-               UnGetChar();
-               *tg++ = '\0';   /* mark the end of the identifier       */
-               if (ReplaceMacros) {
-                       register struct idf *idef = findidf(buf);
-
-                       if (idef && idef->id_macro && !NoExpandNext) {
-                               if (replace(idef))
-                                       goto again;
+               endidf:
+                       /*if (ch != EOI) UnGetChar();*/
+                       UnGetChar();
+                       *tg++ = '\0'; /* mark the end of the identifier */
+                       if (ReplaceMacros)
+                       {
+                               register struct idf* idef = findidf(buf);
+
+                               if (idef && idef->id_macro && !NoExpandNext)
+                               {
+                                       if (replace(idef))
+                                               goto again;
+                               }
                        }
-               }
 
-       nomac:                  /* buf can already be null-terminated. soit */
-               ch = GetChar();
-               while (in_idf(ch)) {
-                       if (tg < maxpos) *tg++ = ch;
-                       ch = GetChar();
-               }
-               UnGetChar();
-               *tg++ = '\0';   /* mark the end of the identifier       */
-
-               NoExpandNext = 0;
-               if (UnknownIdIsZero) {
-                       ptok->tk_val = (arith)0;
-                       return ptok->tk_symb = INTEGER;
-               }
-               ptok->tk_str = Malloc((unsigned)(tg - buf));
-               strcpy(ptok->tk_str, buf);
-               return IDENTIFIER;
-       }
-       case STNUM:                             /* a numeric constant   */
-       {                       /* it may only be an integer constant */
-               register int base = 10, vch;
-               register arith val = 0;
-               int ovfl = 0;
-               arith ubound = max_arith/(base/2);
-
-               /* Since the preprocessor only knows integers and has
-                * nothing to do with ellipsis we just return when the
-                * pp-number starts with a '.'
-                */
-               if (ch == '.') {
-                       return ptok->tk_symb = ch;
-               }
-               if (ch == '0') {
+               nomac: /* buf can already be null-terminated. soit */
                        ch = GetChar();
-                       if (ch == 'x' || ch == 'X') {
-                               base = 16;
+                       while (in_idf(ch))
+                       {
+                               if (tg < maxpos)
+                                       *tg++ = ch;
                                ch = GetChar();
-                       } else {
-                               base = 8;
                        }
+                       UnGetChar();
+                       *tg++ = '\0'; /* mark the end of the identifier       */
 
+                       NoExpandNext = 0;
+                       if (UnknownIdIsZero)
+                       {
+                               ptok->tk_val = (arith)0;
+                               return ptok->tk_symb = INTEGER;
+                       }
+                       ptok->tk_str = Malloc((unsigned)(tg - buf));
+                       strcpy(ptok->tk_str, buf);
+                       return IDENTIFIER;
                }
-               while ((vch = val_in_base(ch, base)) >= 0) {
-                       if (val < 0 || val > ubound) ovfl++;
-                       val *= base;
-                       if (val < 0 && val + vch >= 0) ovfl++;
-                       val += vch;
-                       ch = GetChar();
-               }
-               ptok->tk_unsigned = 0;
-               if (ch == 'u' || ch == 'U') {
-                       ptok->tk_unsigned = 1;
-                       ch = GetChar();
-                       if (ch == 'l' || ch == 'L') {
+               case STNUM: /* a numeric constant       */
+               { /* it may only be an integer constant */
+                       register int base = 10, vch;
+                       register arith val = 0;
+                       int ovfl = 0;
+                       arith ubound = max_arith / (base / 2);
+
+                       /* Since the preprocessor only knows integers and has
+                        * nothing to do with ellipsis we just return when the
+                        * pp-number starts with a '.'
+                        */
+                       if (ch == '.')
+                       {
+                               return ptok->tk_symb = ch;
+                       }
+                       if (ch == '0')
+                       {
                                ch = GetChar();
+                               if (ch == 'x' || ch == 'X')
+                               {
+                                       base = 16;
+                                       ch = GetChar();
+                               }
+                               else
+                               {
+                                       base = 8;
+                               }
                        }
-               }
-               else if (ch == 'l' || ch == 'L') {
-                       ch = GetChar();
-                       if (ch == 'u' || ch == 'U') {
+                       while ((vch = val_in_base(ch, base)) >= 0)
+                       {
+                               if (val < 0 || val > ubound)
+                                       ovfl++;
+                               val *= base;
+                               if (val < 0 && val + vch >= 0)
+                                       ovfl++;
+                               val += vch;
+                               ch = GetChar();
+                       }
+                       ptok->tk_unsigned = 0;
+                       if (ch == 'u' || ch == 'U')
+                       {
                                ptok->tk_unsigned = 1;
                                ch = GetChar();
+                               if (ch == 'l' || ch == 'L')
+                               {
+                                       ch = GetChar();
+                               }
                        }
+                       else if (ch == 'l' || ch == 'L')
+                       {
+                               ch = GetChar();
+                               if (ch == 'u' || ch == 'U')
+                               {
+                                       ptok->tk_unsigned = 1;
+                                       ch = GetChar();
+                               }
+                       }
+                       if (ovfl)
+                       {
+                               warning("overflow in constant");
+                               ptok->tk_unsigned = 1;
+                       }
+                       else if (val < 0)
+                       {
+                               /* give warning??? */
+                               ptok->tk_unsigned = 1;
+                       }
+                       UnGetChar();
+                       ptok->tk_val = val;
+                       return ptok->tk_symb = INTEGER;
                }
-               if (ovfl) {
-                       warning("overflow in constant");
-                       ptok->tk_unsigned = 1;
-               }
-               else if (val < 0) {
-                       /* give warning??? */
-                       ptok->tk_unsigned = 1;
-               }
-               UnGetChar();
-               ptok->tk_val = val;
-               return ptok->tk_symb = INTEGER;
-       }
-       case STEOI:                     /* end of text on source file   */
-               return ptok->tk_symb = EOF;
-        case STMSPEC:
-               if (!InputLevel) goto garbage;
-               if (ch == TOKSEP) goto again;
+               case STEOI: /* end of text on source file       */
+                       return ptok->tk_symb = EOF;
+               case STMSPEC:
+                       if (!InputLevel)
+                               goto garbage;
+                       if (ch == TOKSEP)
+                               goto again;
                /* fallthrough shouldn't happen */
-       default:                                /* this cannot happen   */
-               crash("bad class for char 0%o", ch);
+               default: /* this cannot happen  */
+                       crash("bad class for char 0%o", ch);
        }
        /*NOTREACHED*/
 }
 
-void
-skipcomment()
+void skipcomment()
 {
        /*      The last character read has been the '*' of '/_*'.  The
-               characters, except NL and EOI, between '/_*' and the first
-               occurring '*_/' are not interpreted.
-               NL only affects the LineNumber.  EOI is not legal.
-
-               Important note: it is not possible to stop skipping comment
-               beyond the end-of-file of an included file.
-               EOI is returned by LoadChar only on encountering EOF of the
-               top-level file...
+           characters, except NL and EOI, between '/_*' and the first
+           occurring '*_/' are not interpreted.
+           NL only affects the LineNumber.  EOI is not legal.
+
+           Important note: it is not possible to stop skipping comment
+           beyond the end-of-file of an included file.
+           EOI is returned by LoadChar only on encountering EOF of the
+           top-level file...
        */
        register int c;
 
        NoUnstack++;
        c = GetChar();
-       do {
-               while (c != '*') {
-                       if (class(c) == STNL) {
+       do
+       {
+               while (c != '*')
+               {
+                       if (class(c) == STNL)
+                       {
                                ++LineNumber;
-                       } else if (c == EOI) {
+                       }
+                       else if (c == EOI)
+                       {
                                NoUnstack--;
                                return;
                        }
@@ -359,9 +412,7 @@ skipcomment()
        NoUnstack--;
 }
 
-arith
-char_constant(nm)
-       char *nm;
+arith char_constant(nm) char* nm;
 {
        register arith val = 0;
        register int ch;
@@ -371,20 +422,23 @@ char_constant(nm)
        if (ch == '\'')
                error("%s constant too short", nm);
        else
-       while (ch != '\'') {
-               if (ch == '\n') {
-                       error("newline in %s constant", nm);
-                       LineNumber++;
-                       break;
+               while (ch != '\'')
+               {
+                       if (ch == '\n')
+                       {
+                               error("newline in %s constant", nm);
+                               LineNumber++;
+                               break;
+                       }
+                       if (ch == '\\')
+                               ch = quoted(GetChar());
+                       if (ch >= 128)
+                               ch -= 256;
+                       if (size < sizeof(arith))
+                               val |= ch << (8 * size);
+                       size++;
+                       ch = GetChar();
                }
-               if (ch == '\\')
-                       ch = quoted(GetChar());
-               if (ch >= 128) ch -= 256;
-               if (size < sizeof(arith))
-                       val |= ch << (8 * size);
-               size++;
-               ch = GetChar();
-       }
        if (size > sizeof(arith))
                error("%s constant too long", nm);
        else if (size > 1)
@@ -392,23 +446,24 @@ char_constant(nm)
        return val;
 }
 
-char *
-string_token(nm, stop_char)
-       char *nm;
+char* string_token(nm, stop_char) char* nm;
 {
        register int ch;
        register int str_size;
-       register char *str = Malloc((unsigned) (str_size = ISTRSIZE));
+       register char* str = Malloc((unsigned)(str_size = ISTRSIZE));
        register int pos = 0;
-       
+
        ch = GetChar();
-       while (ch != stop_char) {
-               if (ch == '\n') {
+       while (ch != stop_char)
+       {
+               if (ch == '\n')
+               {
                        error("newline in %s", nm);
                        LineNumber++;
                        break;
                }
-               if (ch == EOI) {
+               if (ch == EOI)
+               {
                        error("end-of-file inside %s", nm);
                        break;
                }
@@ -424,91 +479,89 @@ string_token(nm, stop_char)
        return str;
 }
 
-int
-quoted(ch)
-       register int ch;
-{      
+int quoted(ch) register int ch;
+{
        /*      quoted() replaces an escaped character sequence by the
-               character meant.
+           character meant.
        */
        /* first char after backslash already in ch */
-       if (!is_oct(ch)) {              /* a quoted char */
-               switch (ch) {
-               case 'n':
-                       ch = '\n';
-                       break;
-               case 't':
-                       ch = '\t';
-                       break;
-               case 'b':
-                       ch = '\b';
-                       break;
-               case 'r':
-                       ch = '\r';
-                       break;
-               case 'f':
-                       ch = '\f';
-                       break;
-               case 'a':               /* alert */
-                       ch = '\007';
-                       break;
-               case 'v':               /* vertical tab */
-                       ch = '\013';
-                       break;
-               case 'x':               /* quoted hex */
+       if (!is_oct(ch))
+       { /* a quoted char */
+               switch (ch)
                {
-                       register int hex = 0;
-                       register int vch;
-
-                       for (;;) {
-                               ch = GetChar();
-                               if (vch = val_in_base(ch, 16), vch == -1)
-                                       break;
-                               hex = hex * 16 + vch;
+                       case 'n':
+                               ch = '\n';
+                               break;
+                       case 't':
+                               ch = '\t';
+                               break;
+                       case 'b':
+                               ch = '\b';
+                               break;
+                       case 'r':
+                               ch = '\r';
+                               break;
+                       case 'f':
+                               ch = '\f';
+                               break;
+                       case 'a': /* alert */
+                               ch = '\007';
+                               break;
+                       case 'v': /* vertical tab */
+                               ch = '\013';
+                               break;
+                       case 'x': /* quoted hex */
+                       {
+                               register int hex = 0;
+                               register int vch;
+
+                               for (;;)
+                               {
+                                       ch = GetChar();
+                                       if (vch = val_in_base(ch, 16), vch == -1)
+                                               break;
+                                       hex = hex * 16 + vch;
+                               }
+                               UnGetChar();
+                               ch = hex;
                        }
-                       UnGetChar();
-                       ch = hex;
-               }
                }
-       } else {                                /* a quoted octal */
+       }
+       else
+       { /* a quoted octal */
                register int oct = 0, cnt = 0;
 
-               do {
-                       oct = oct*8 + (ch-'0');
+               do
+               {
+                       oct = oct * 8 + (ch - '0');
                        ch = GetChar();
                } while (is_oct(ch) && ++cnt < 3);
                UnGetChar();
                ch = oct;
        }
-       return ch&0377;
+       return ch & 0377;
 }
 
-
-int
-val_in_base(ch, base)
-       register int ch;
+int val_in_base(ch, base) register int ch;
 {
-       switch (base) {
-       case 8:
-               return (is_dig(ch) && ch < '9') ? ch - '0' : -1;
-       case 10:
-               return is_dig(ch) ? ch - '0' : -1;
-       case 16:
-               return is_dig(ch) ? ch - '0'
-                       : is_hex(ch) ? (ch - 'a' + 10) & 017
-                       : -1;
-       default:
-               fatal("(val_in_base) illegal base value %d", base);
-               /* NOTREACHED */
+       switch (base)
+       {
+               case 8:
+                       return (is_dig(ch) && ch < '9') ? ch - '0' : -1;
+               case 10:
+                       return is_dig(ch) ? ch - '0' : -1;
+               case 16:
+                       return is_dig(ch) ? ch - '0' : is_hex(ch) ? (ch - 'a' + 10) & 017 : -1;
+               default:
+                       fatal("(val_in_base) illegal base value %d", base);
+                       /* NOTREACHED */
        }
 }
 
-
-int
-GetChar()
+int GetChar()
 {
        /*      The routines GetChar and trigraph parses the trigraph
-               sequences and removes occurences of \\\n.
+           sequences and removes occurences of \\\n.
        */
        register int ch;
 
@@ -520,58 +573,60 @@ again:
                ch = trigraph();
 
        /* \\\n are removed from the input stream */
-       if (ch == '\\') {
+       if (ch == '\\')
+       {
                LoadChar(ch);
-               if (ch == '\n') {
+               if (ch == '\n')
+               {
                        ++LineNumber;
                        goto again;
                }
                PushBack();
                ch = '\\';
        }
-       return(LexSave = ch);
+       return (LexSave = ch);
 }
 
-
-int
-trigraph()
+int trigraph()
 {
        register int ch;
 
        LoadChar(ch);
-       if (ch == '?') {
+       if (ch == '?')
+       {
                LoadChar(ch);
-               switch (ch) {           /* its a trigraph */
-               case '=':
-                       ch =  '#';
-                       return(ch);
-               case '(':
-                       ch = '[';
-                       return(ch);
-               case '/':
-                       ch = '\\';
-                       return(ch);
-               case ')':
-                       ch = ']';
-                       return(ch);
-               case '\'':
-                       ch = '^';
-                       return(ch);
-               case '<':
-                       ch = '{';
-                       return(ch);
-               case '!':
-                       ch = '|';
-                       return(ch);
-               case '>':
-                       ch = '}';
-                       return(ch);
-               case '-':
-                       ch = '~';
-                       return(ch);
+               switch (ch)
+               { /* its a trigraph */
+                       case '=':
+                               ch = '#';
+                               return (ch);
+                       case '(':
+                               ch = '[';
+                               return (ch);
+                       case '/':
+                               ch = '\\';
+                               return (ch);
+                       case ')':
+                               ch = ']';
+                               return (ch);
+                       case '\'':
+                               ch = '^';
+                               return (ch);
+                       case '<':
+                               ch = '{';
+                               return (ch);
+                       case '!':
+                               ch = '|';
+                               return (ch);
+                       case '>':
+                               ch = '}';
+                               return (ch);
+                       case '-':
+                               ch = '~';
+                               return (ch);
                }
                PushBack();
        }
        PushBack();
-       return('?');
+       return ('?');
 }