squeezing for MINIX
authoreck <none@none>
Wed, 18 Oct 1989 13:12:31 +0000 (13:12 +0000)
committereck <none@none>
Wed, 18 Oct 1989 13:12:31 +0000 (13:12 +0000)
lang/cem/cemcom.ansi/.distr
lang/cem/cemcom.ansi/LLlex.c
lang/cem/cemcom.ansi/LLlex.h
lang/cem/cemcom.ansi/ch3.c
lang/cem/cemcom.ansi/class.h
lang/cem/cemcom.ansi/declar.g
lang/cem/cemcom.ansi/domacro.c
lang/cem/cemcom.ansi/ival.g
lang/cem/cemcom.ansi/pragma.c
lang/cem/cemcom.ansi/skip.c

index f908b78..0aa72f0 100644 (file)
@@ -11,7 +11,6 @@ LintPars
 align.h
 arith.c
 arith.h
-asm.c
 assert.h
 atw.h
 blocks.c
index 87c4d2e..a997dda 100644 (file)
@@ -581,7 +581,7 @@ quoted(ch)
 
                        for (;;) {
                                ch = GetChar();
-                               if (vch = val_in_base(ch, 16), vch == -1)
+                               if (vch = hex_val(ch), vch == -1)
                                        break;
                                hex = hex * 16 + vch;
                        }
@@ -605,22 +605,12 @@ quoted(ch)
 
 
 int
-val_in_base(ch, base)
+hex_val(ch)
        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'
+       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 */
-       }
 }
 
 
@@ -763,10 +753,7 @@ struct token *ptok;
        ubound = max_arith / (base / 2);
 
        while (is_hex(*cp)) {
-               dig = is_dig(*cp) ? *cp - '0'
-                                   : (( *cp >= 'A' && *cp <= 'F' ? *cp - 'A'
-                                                               : *cp - 'a')
-                                       + 10) ;
+               dig = hex_val(*cp);
                if (dig >= base) {
                        malformed++;                    /* ignore */
                }
index 9487199..a453959 100644 (file)
@@ -50,7 +50,6 @@ extern int UnknownIdIsZero;   /* "LLlex.c"    */
 #endif NOPP
 extern int EoiForNewline;      /* "LLlex.c"    */
 extern int AccFileSpecifier;   /* "LLlex.c"    */
-extern int SkipEscNewline;     /* "LLlex.c"    */
 extern int File_Inserted;      /* "LLlex.c"    */
 
 extern int NoUnstack;          /* buffer.c     */
index 81b0351..c8ceab3 100644 (file)
@@ -342,14 +342,11 @@ equal_type(tp, otp, check_qual)
 {
        if (tp == otp)
                return 1;
-       if (!tp || !otp)
-               return 0;
-
-       if (tp->tp_fund != otp->tp_fund)
-               return 0;
-       if (tp->tp_unsigned != otp->tp_unsigned)
-               return 0;
-       if (tp->tp_align != otp->tp_align)
+       if (!tp
+           || !otp
+           || (tp->tp_fund != otp->tp_fund)
+           || (tp->tp_unsigned != otp->tp_unsigned)
+           || (tp->tp_align != otp->tp_align))
                return 0;
        if (tp->tp_fund != ARRAY /* && tp->tp_fund != STRUCT */ ) {     /* UNION ??? */
                if (tp->tp_size != otp->tp_size)
index 5c5df08..e3bdcad 100644 (file)
@@ -41,8 +41,7 @@
 #define        is_oct(ch)      (isoct[ch])
 #define        is_dig(ch)      (isdig[ch])
 #define        is_hex(ch)      (ishex[ch])
-#define        is_suf(ch)      (issuf[ch])
 #define        is_wsp(ch)      (iswsp[ch])
 
 extern char tkclass[];
-extern char inidf[], isoct[], isdig[], ishex[], issuf[], iswsp[];
+extern char inidf[], isoct[], isdig[], ishex[], iswsp[];
index 86ca4b7..8f0f5a7 100644 (file)
@@ -110,19 +110,22 @@ other_specifier(register struct decspecs *ds;)
        }
 |
        /*      This qualifier applies to the top type.
-               E.g. const float * is a pointer to const float.
+               E.g. volatile float * is a pointer to volatile float.
        */
-       [ VOLATILE | CONST ]
-       {       if (DOT == VOLATILE) {
-                       if (ds->ds_typequal & TQ_VOLATILE)
-                               error("repeated type qualifier");
-                       ds->ds_typequal |= TQ_VOLATILE;
-               }
-               if (DOT == CONST) {
-                       if (ds->ds_typequal & TQ_CONST)
-                               error("repeated type qualifier");
-                       ds->ds_typequal |= TQ_CONST;
-               }
+       VOLATILE
+       {       if (ds->ds_typequal & TQ_VOLATILE)
+                       error("repeated type qualifier");
+               ds->ds_typequal |= TQ_VOLATILE;
+       }
+|
+       /*      This qualifier applies to the top type.
+               E.g. volatile float * is a pointer to volatile float.
+       */
+       CONST
+       {
+               if (ds->ds_typequal & TQ_CONST)
+                       error("repeated type qualifier");
+               ds->ds_typequal |= TQ_CONST;
        }
 ;
 
@@ -692,28 +695,20 @@ pointer(int *qual;)
 /* 3.5.4 */
 type_qualifier_list(int *qual;)
 :
-[
-       [ VOLATILE | CONST ]
-       { *qual = (DOT == VOLATILE) ? TQ_VOLATILE : TQ_CONST; }
+       { *qual = 0; }
        [
-               [ VOLATILE | CONST ]
-               {       if (DOT == VOLATILE) {
-                               if (*qual & TQ_VOLATILE)
-                                       error("repeated type qualifier");
-                               *qual |= TQ_VOLATILE;
-                       }
-                       if (DOT == CONST) {
-                               if (*qual & TQ_CONST)
-                                       error("repeated type qualifier");
-                               *qual |= TQ_CONST;
-                       }
+               VOLATILE
+               {       if (*qual & TQ_VOLATILE)
+                               error("repeated type qualifier");
+                       *qual |= TQ_VOLATILE;
+               }
+       |
+               CONST
+               {       if (*qual & TQ_CONST)
+                               error("repeated type qualifier");
+                       *qual |= TQ_CONST;
                }
-                                       
        ]*
-|
-       empty
-       { *qual = 0; }
-]
 ;
 
 empty:
index cec6df1..bb38e8f 100644 (file)
@@ -52,7 +52,7 @@ GetIdentifier(skiponerr)
        ReplaceMacros = 1;
        UnknownIdIsZero = tmp;
        if (tok != IDENTIFIER) {
-               if (skiponerr && tok != EOI) SkipToNewLine(0);
+               if (skiponerr && tok != EOI) SkipToNewLine();
                return (struct idf *)0;
        }
        return tk.tk_idf;
@@ -108,7 +108,7 @@ domacro()
                        */
                        if (GetToken(&tk) != INTEGER) {
                                error("bad #line syntax");
-                               SkipToNewLine(0);
+                               SkipToNewLine();
                        }
                        else
                                do_line((unsigned int)tk.tk_ival);
@@ -125,7 +125,7 @@ domacro()
                default:
                        /* invalid word seen after the '#'      */
                        lexerror("%s: unknown control", tk.tk_idf->id_text);
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                }
                break;
        case INTEGER:           /* # <integer> [<filespecifier>]?       */
@@ -135,7 +135,7 @@ domacro()
                break;
        default:        /* invalid token following '#'          */
                lexerror("illegal # line");
-               SkipToNewLine(0);
+               SkipToNewLine();
        }
        EoiForNewline = 0;
 }
@@ -167,14 +167,14 @@ int to_endif;
                                return;
                        }
                        UnGetChar();
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                        continue;
                }
                ReplaceMacros = 0;
                toknum = GetToken(&tk);
                ReplaceMacros = 1;
                if (toknum != IDENTIFIER) {
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                        continue;
                }
                /*      an IDENTIFIER: look for #if, #ifdef and #ifndef
@@ -184,13 +184,13 @@ int to_endif;
                */
                switch(tk.tk_idf->id_resmac) {
                default:
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                        break;
                case K_IF:
                case K_IFDEF:
                case K_IFNDEF:
                        push_if();
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                        break;
                case K_ELIF:
                        if (ifstack[nestlevel])
@@ -203,30 +203,30 @@ int to_endif;
                                        return;
                                }
                        }
-                       else SkipToNewLine(0);  /* otherwise done in ifexpr() */
+                       else SkipToNewLine();   /* otherwise done in ifexpr() */
                        break;
                case K_ELSE:
                        if (ifstack[nestlevel])
                                lexerror("#else after #else");
                        ++(ifstack[nestlevel]);
                        if (!to_endif && nestlevel == skiplevel) {
-                               if (SkipToNewLine(1))
+                               if (SkipToNewLine())
                                        strict("garbage following #else");
                                NoUnstack--;
                                return;
                        }
-                       else SkipToNewLine(0);
+                       else SkipToNewLine();
                        break;
                case K_ENDIF:
                        ASSERT(nestlevel > nestlow);
                        if (nestlevel == skiplevel) {
-                               if (SkipToNewLine(1))
+                               if (SkipToNewLine())
                                        strict("garbage following #endif");
                                nestlevel--;
                                NoUnstack--;
                                return;
                        }
-                       else SkipToNewLine(0);
+                       else SkipToNewLine();
                        nestlevel--;
                        break;
                }
@@ -273,7 +273,7 @@ do_include()
                filenm = (char *)0;
        }
        AccFileSpecifier = 0;
-       SkipToNewLine(0);
+       SkipToNewLine();
        inctable[0] = WorkingDir;
        if (filenm) {
                if (!InsertFile(filenm, &inctable[tok==FILESPECIFIER],&result)){
@@ -313,7 +313,7 @@ do_define()
        ch = GetChar();
        if (ch == '(') {
                if ((nformals = getparams(formals, parbuf)) == -1) {
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                        return; /* an error occurred    */
                }
                ch = GetChar();
@@ -348,12 +348,12 @@ do_elif()
 {
        if (nestlevel <= nestlow) {
                lexerror("#elif without corresponding #if");
-               SkipToNewLine(0);
+               SkipToNewLine();
        }
        else {          /* restart at this level as if a #if is detected.  */
                if (ifstack[nestlevel]) {
                        lexerror("#elif after #else");
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                }
                nestlevel--;
                push_if();
@@ -363,7 +363,7 @@ do_elif()
 
 do_else()
 {
-       if (SkipToNewLine(1))
+       if (SkipToNewLine())
                strict("garbage following #else");
        if (nestlevel <= nestlow)
                lexerror("#else without corresponding #if");
@@ -378,7 +378,7 @@ do_else()
 
 do_endif()
 {
-       if (SkipToNewLine(1))
+       if (SkipToNewLine())
                strict("garbage following #endif");
        if (nestlevel <= nestlow)       {
                lexerror("#endif without corresponding #if");
@@ -409,7 +409,7 @@ do_ifdef(how)
        if (how ^ (id && id->id_macro != 0))
                skip_block(0);
        else if (id)
-               SkipToNewLine(0);
+               SkipToNewLine();
 }
 
 do_undef()
@@ -427,7 +427,7 @@ do_undef()
                                id->id_macro = (struct macro *) 0;
                        }
                } /* else: don't complain */
-               SkipToNewLine(0);
+               SkipToNewLine();
        }
        else
                lexerror("illegal #undef construction");
@@ -707,7 +707,7 @@ GetIdentifier(skiponerr)
 
        tok = GetToken(&tk);
        if (tok != IDENTIFIER) {
-               if (skiponerr && tok != EOI) SkipToNewLine(0);
+               if (skiponerr && tok != EOI) SkipToNewLine();
                return (struct idf *)0;
        }
        return tk.tk_idf;
@@ -723,7 +723,7 @@ domacro()
                if (strcmp(tk.tk_idf->id_text, "line")
                    && strcmp(tk.tk_idf->id_text, "pragma")) {
                        error("illegal # line");
-                       SkipToNewLine(0);
+                       SkipToNewLine();
                        return;
                }
                else if ( !strcmp(tk.tk_idf->id_text, "pragma")) {
@@ -735,7 +735,7 @@ domacro()
        }
        if (tok != INTEGER) {
                error("illegal # line");
-               SkipToNewLine(0);
+               SkipToNewLine();
                return;
        }
        do_line((unsigned int) tk.tk_ival);
@@ -752,5 +752,5 @@ do_line(l)
        LineNumber = l - 1;     /* the number of the next input line */
        if (GetToken(&tk) == STRING)    /* is there a filespecifier? */
                FileName = tk.tk_bts;
-       SkipToNewLine(0);
+       SkipToNewLine();
 }
index a927188..cfaff03 100644 (file)
@@ -577,7 +577,7 @@ ch_array(tpp, ex)
        }
        /* throw out the characters of the already prepared string      */
        s = Malloc((unsigned) (length));
-       clear(s, length);
+       clear(s, (unsigned)length);
        i = length <= ex->SG_LEN ? length : ex->SG_LEN;
        to = s; from = ex->SG_VALUE;
        while(--i >= 0) {
index 783e51b..121e86d 100644 (file)
@@ -58,6 +58,6 @@ do_pragma()
                default:
                        break;
                }
-               SkipToNewLine(0);
+               SkipToNewLine();
        }
 }
index 599313e..e4cac9b 100644 (file)
@@ -59,11 +59,10 @@ skipspaces(ch, skipnl)
 }
 #endif NOPP
 
-SkipToNewLine(garbage)
-       int garbage;
+SkipToNewLine()
 {
        register int ch;
-       register int pstrict = 0;
+       register int garbage = 0;
 
        while ((ch = GetChar()) != '\n') {
                if (ch == '/') {
@@ -76,9 +75,9 @@ SkipToNewLine(garbage)
                                continue;
                        }
                }
-               if (garbage && !is_wsp(ch))
-                       pstrict = 1;
+               if (!is_wsp(ch))
+                       garbage = 1;
        }
        ++LineNumber;
-       return pstrict;
+       return garbage;
 }