Post-ansification changes for lib/cpp
authorNick Downing <downing.nick@gmail.com>
Thu, 2 Feb 2017 13:49:35 +0000 (00:49 +1100)
committerNick Downing <downing.nick@gmail.com>
Thu, 2 Feb 2017 14:06:03 +0000 (01:06 +1100)
.gitignore
bin/cc.c
lib/cpp/cpp.c
lib/cpp/cpp.h
lib/cpp/cpy.c [deleted file]
lib/cpp/cpy.y
n.sh
scripts/make.sh [new file with mode: 0755]
scripts/make0.sh [deleted file]

index b55d3a2..f48e165 100644 (file)
@@ -76,8 +76,8 @@ cproto-4.6/cproto
 cproto-4.6/lex.yy.c
 cproto-4.6/stamp-h
 cproto-4.6/y.tab.c
-stage0
-stage1
+lib/cpp/cpp
+lib/cpp/cpy.c
 lib/libc/compat-4.1/compat-4.1lib
 lib/libc/compat-4.1/compat-4.1lib_p
 lib/libc/compat-sys5/compat-sys5lib
@@ -109,6 +109,8 @@ lib/libc/xx*
 scripts/newline
 scripts/nocomment
 scripts/nostring
+stage0
+stage1
 test/hello
 test/hello.txt
 usr.bin/ar11
@@ -125,9 +127,9 @@ usr.bin/file
 usr.bin/find/bigram
 usr.bin/find/code
 usr.bin/find/find
+usr.bin/join
 usr.bin/lex/lex
 usr.bin/lex/y.tab.c
-usr.bin/join
 usr.bin/look
 usr.bin/mesg
 usr.bin/ptx
index c1fbc5a..1b87a8b 100644 (file)
--- a/bin/cc.c
+++ b/bin/cc.c
@@ -441,7 +441,9 @@ int callsys(f, v) char *f; char **v; {
        v[0] = f; /* we have to tell cpp and ld where they are located */
 #endif
        if (debug) {
+#ifndef X_
                fprintf(stderr, "%s:", f);
+#endif
                for (cpp = v; *cpp != 0; cpp++)
                        fprintf(stderr, " %s", *cpp);
                fprintf(stderr, "\n");
index 36cd014..516ea7b 100644 (file)
 #endif
 #include "cpp.h"
 
+#ifdef X_
+#include <sys/stat.h>
+#endif
+
 #if defined(DOSCCS) && !defined(lint)
 static char sccsid[] = "@(#)cpp.c      1.14 4/27/86";
 #endif
@@ -32,6 +36,10 @@ static char sccsid[] = "@(#)cpp.c    1.14 4/27/86";
 /* July/August 1978
 */
 
+#ifdef X_
+char   include[MAXPATHLEN];
+#endif
+
 #define FIRSTOPEN -2
 #define STDIN 0
 #define READ 0
@@ -185,19 +193,19 @@ char **prund = punspc;
 int    exfail;
 struct symtab *lastsym;
 
-/*# if gcos*/
-/*#include <setjmp.h>*/
-/*static jmp_buf env;*/
-/*# define main        mainpp*/
-/*# undef exit*/
-/*# define exit(S)     longjmp(env, 1)*/
-/*# define open(S,D)   fileno(fopen(S, "r"))*/
-/*# define close(F)    fclose(_f[F])*/
-/*extern FILE *_f[];*/
-/*# define symsiz 500*/
-/*# else*/
+# if gcos
+#include <setjmp.h>
+static jmp_buf env;
+# define main  mainpp
+# undef exit
+# define exit(S)       longjmp(env, 1)
+# define open(S,D)     fileno(fopen(S, "r"))
+# define close(F)      fclose(_f[F])
+extern FILE *_f[];
+# define symsiz 500
+# else
 # define symsiz 2000           /* std = 500, wnj aug 1979 */
-/*# endif*/
+# endif
 struct symtab stab[symsiz];
 
 struct symtab *defloc;
@@ -217,7 +225,7 @@ struct symtab *identloc;    /* Sys 5r3 compatibility */
 int    trulvl;
 int    flslvl;
 
-int sayline(where) int where; {
+void sayline(where) int where; {
        if (mflag && where==START) fprintf(mout, "%s: %s\n", infile, fnames[ifno]);
        if (pflag==0) fprintf(fout,"# %d \"%s\"\n", lineno[ifno], fnames[ifno]);
 }
@@ -275,13 +283,17 @@ int sayline(where) int where; {
 /* are available for use.
 */
 
-int dump() {
+void dump() {
 /* write part of buffer which lies between  outp  and  inp .
 /* this should be a direct call to 'write', but the system slows to a crawl
 /* if it has to do an unaligned copy.  thus we buffer.  this silly loop
 /* is 15% of the total time, thus even the 'putc' macro is too slow.
 */
-       register char *p1,*p2; register FILE *f;
+       register char *p1;
+#if tgp
+       register char *p2;
+#endif
+       register FILE *f;
        if ((p1=outp)==inp || flslvl!=0) return;
 #if tgp
 #define MAXOUT 80
@@ -880,7 +892,7 @@ struct symtab *ppsym(s) char *s; {/* kluge */
        cinit=0; return(sp);
 }
 
-int vpperror(s, argp) char *s; va_list argp; {
+void vpperror(s, argp) char *s; va_list argp; {
        if (fnames[ifno][0]) fprintf(stderr,
 # if gcos
                        "*%c*   \"%s\", line ", exfail >= 0 ? 'F' : 'W',
@@ -895,42 +907,42 @@ int vpperror(s, argp) char *s; va_list argp; {
 }
 
 #ifdef __STDC__
-int pperror(char *s, ...)
+void pperror(char *s, ...)
 #else
-int pperror(s, va_alist) char *s; va_dcl
+void pperror(s, va_alist) char *s; va_dcl
 #endif
 {
        va_list argp;
 
-       _va_start(argp, fmt);
+       _va_start(argp, s);
        vpperror(s,argp);
        va_end(argp);
 }
 
 #ifdef __STDC__
-int yyerror(char *s, ...)
+void yyerror(char *s, ...)
 #else
-int yyerror(s, va_alist) char *s; va_dcl
+void yyerror(s, va_alist) char *s; va_dcl
 #endif
 {
        va_list argp;
 
-       _va_start(argp, fmt);
+       _va_start(argp, s);
        vpperror(s,argp);
        va_end(argp);
 }
 
 #ifdef __STDC__
-int ppwarn(char *s, ...)
+void ppwarn(char *s, ...)
 #else
-int ppwarn(s, va_alist) char *s; va_dcl
+void ppwarn(s, va_alist) char *s; va_dcl
 #endif
 {
        va_list argp;
 
        int fail = exfail;
        exfail = -1;
-       _va_start(argp, fmt);
+       _va_start(argp, s);
        vpperror(s,argp);
        va_end(argp);
        exfail = fail;
@@ -1083,6 +1095,27 @@ int main(argc, argv) int argc; char *argv[]; {
        register int i,c;
        register char *p;
        char *tf,**cp2;
+#ifdef X_
+       char *pathptr;
+       struct stat statbuf;
+
+       for (i = strlen(argv[0]); i > 0 && argv[0][i - 1] != '/'; --i) ;
+       if (i)
+               bcopy(argv[0], include, i);
+       else if ((pathptr = getenv("PATH")) != 0)
+               do {
+                       for (; pathptr[i] && pathptr[i] != ':'; ++i)
+                               ;
+                       bcopy(pathptr, include, i);
+                       include[i++] = '/';
+                       strcpy(include + i, argv[0]);
+                       if (stat(include, &statbuf) == 0)
+                               break;
+                       pathptr += i;
+                       i = 0;
+               } while (pathptr[-1]);
+       strcpy(include + i, "../usr/include");
+#endif
 
 # if gcos
        if (setjmp(env)) return (exfail);
@@ -1227,6 +1260,9 @@ int main(argc, argv) int argc; char *argv[]; {
        fins[ifno]=fin;
        exfail = 0;
                /* after user -I files here are the standard include libraries */
+#ifdef X_
+       dirs[nd++] = include;
+#else
 # if unix
        dirs[nd++] = "/usr/include";
 # endif
@@ -1242,6 +1278,7 @@ int main(argc, argv) int argc; char *argv[]; {
        dirs[nd++] = intss() ?  "SYS3.C." : "" ;
 # endif
        /* dirs[nd++] = "/compool"; */
+#endif
        dirs[nd++] = 0;
        defloc=ppsym("define");
        udfloc=ppsym("undef");
index ecf223e..ef538bb 100644 (file)
@@ -27,8 +27,8 @@ extern int passcom;
 #endif
 
 /* cpp.c */
-int sayline __P((int where));
-int dump __P((void));
+void sayline __P((int where));
+void dump __P((void));
 char *refill __P((register char *p));
 char *cotoken __P((register char *p));
 char *skipbl __P((register char *p));
@@ -40,10 +40,10 @@ char *control __P((register char *p));
 char *savestring __P((register char *start, register char *finish));
 struct symtab *stsym __P((register char *s));
 struct symtab *ppsym __P((char *s));
-int vpperror __P((char *s, va_list argp));
-int pperror __P((char *s, ...));
-int yyerror __P((char *s, ...));
-int ppwarn __P((char *s, ...));
+void vpperror __P((char *s, va_list argp));
+void pperror __P((char *s, ...));
+void yyerror __P((char *s, ...));
+void ppwarn __P((char *s, ...));
 struct symtab *lookup __P((char *namep, int enterf));
 struct symtab *slookup __P((register char *p1, register char *p2, int enterf));
 char *subst __P((register char *p, struct symtab *sp));
diff --git a/lib/cpp/cpy.c b/lib/cpp/cpy.c
deleted file mode 100644 (file)
index f62ffec..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-#include <stdio.h>
-#include <strings.h>
-#include "cpp.h"
-
-# define number 257
-# define stop 258
-# define DEFINED 259
-# define EQ 260
-# define NE 261
-# define LE 262
-# define GE 263
-# define LS 264
-# define RS 265
-# define ANDAND 266
-# define OROR 267
-# define UMINUS 268
-#define yyclearin yychar = -1
-#define yyerrok yyerrflag = 0
-extern int yychar;
-extern short yyerrflag;
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 150
-#endif
-#ifndef YYSTYPE
-#define YYSTYPE int
-#endif
-YYSTYPE yylval, yyval;
-# define YYERRCODE 256
-
-# line 82 "cpy.y"
-
-/*# include "cpp.h"*/
-
-#define isid(a)  ((fastab+COFF)[a]&IB)
-#define IB 1
-/*     #if '\377' < 0          it would be nice if this worked properly!!!!! */
-#if pdp11 | vax | mc68000
-#define COFF 128
-#else
-#define COFF 0
-#endif
-
-int yylex() {
-       static int ifdef=0;
-       static char *op2[]={"||",  "&&" , ">>", "<<", ">=", "<=", "!=", "=="};
-       static int  val2[]={OROR, ANDAND,  RS,   LS,   GE,   LE,   NE,   EQ};
-       static char *opc="b\bt\tn\nf\fr\r\\\\";
-       register char savc, *s; int val;
-       register char **p2;
-       struct symtab *sp;
-
-for (;;) {
-       int opt_passcom = passcom;      /* this crap makes #if's work */
-       passcom = 0;                    /* even with -C option */
-       newp=skipbl(newp);              /* (else comments make syntax errs) */
-       passcom = opt_passcom;          /* nb: lint uses -C so its useful! */
-       if (*inp=='\n') return(stop);   /* end of #if */
-       savc= *newp; *newp='\0';
-       for (p2=op2+8; --p2>=op2; )     /* check 2-char ops */
-               if (0==strcmp(*p2,inp)) {val=val2[p2-op2]; goto ret;}
-       s="+-*/%<>&^|?:!~(),";  /* check 1-char ops */
-       while (*s) if (*s++== *inp) {val= *--s; goto ret;}
-       if (*inp<='9' && *inp>='0') {/* a number */
-               if (*inp=='0') yylval= (inp[1]=='x' || inp[1]=='X') ?
-                       tobinary(inp+2,16) : tobinary(inp+1,8);
-               else yylval=tobinary(inp,10);
-               val=number;
-       } else if (isid(*inp)) {
-               if (0==strcmp(inp,"defined")) {ifdef=1; ++flslvl; val=DEFINED;}
-               else {
-                       sp=lookup(inp,-1); if (ifdef!=0) {ifdef=0; --flslvl;}
-                       yylval= (sp->value==0) ? 0 : 1;
-                       val=number;
-               }
-       } else  if (*inp=='\'') {/* character constant */
-               val=number;
-               if (inp[1]=='\\') {/* escaped */
-                       char c; if (newp[-1]=='\'') newp[-1]='\0';
-                       s=opc;
-                       while (*s) if (*s++!=inp[2]) ++s; else {yylval= *s; goto ret;}
-                       if (inp[2]<='9' && inp[2]>='0') yylval=c=tobinary(inp+2,8);
-                       else yylval=inp[2];
-               } else yylval=inp[1];
-       } else if (0==strcmp("\\\n",inp)) {*newp=savc; continue;}
-       else {
-               *newp=savc; pperror("Illegal character %c in preprocessor if", *inp);
-               continue;
-       }
-ret:
-       *newp=savc; outp=inp=newp; return(val);
-}
-}
-
-int tobinary(st, b) char *st; int b; {
-       int n, c, t;
-       char *s;
-       n=0;
-       s=st;
-       while (c = *s++) {
-       switch(c) {
-               case '0': case '1': case '2': case '3': case '4': 
-               case '5': case '6': case '7': case '8': case '9': 
-                       t = c-'0'; break;
-               case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': 
-                       t = c-'a'+10; if (b>10) break;
-               case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': 
-                       t = c - 'A'+10; if (b>10) break;
-               default:
-                       t = -1;
-                       if ( c=='l' || c=='L') if (*s=='\0') break;
-                       pperror("Illegal number %s", st);
-       }
-       if (t<0) break;
-       n = n*b+t;
-       }
-return(n);
-}
-short yyexca[] ={
--1, 1,
-       0, -1,
-       -2, 0,
--1, 44,
-       262, 0,
-       263, 0,
-       60, 0,
-       62, 0,
-       -2, 9,
--1, 45,
-       262, 0,
-       263, 0,
-       60, 0,
-       62, 0,
-       -2, 10,
--1, 46,
-       262, 0,
-       263, 0,
-       60, 0,
-       62, 0,
-       -2, 11,
--1, 47,
-       262, 0,
-       263, 0,
-       60, 0,
-       62, 0,
-       -2, 12,
--1, 48,
-       260, 0,
-       261, 0,
-       -2, 13,
--1, 49,
-       260, 0,
-       261, 0,
-       -2, 14,
-       };
-# define YYNPROD 30
-# define YYLAST 363
-short yyact[]={
-
-  13,  24,  35,  58,  13,  11,  14,  30,  15,  11,
-  12,  60,  13,  24,  12,   1,  57,  11,  14,  30,
-  15,  59,  12,  18,  13,  19,  29,   0,   0,  11,
-  14,   0,  15,   0,  12,  18,   3,  19,  29,  13,
-  24,  31,  32,  33,  11,  14,  30,  15,   0,  12,
-  13,  24,   0,   0,   0,  11,  14,  25,  15,   5,
-  12,   0,  18,   0,  19,  29,   7,   0,   0,  25,
-   0,   4,   0,  18,   0,  19,  29,   0,  13,  24,
-   0,   0,   0,  11,  14,   0,  15,  26,  12,   0,
-   0,   0,  13,  24,   0,   0,  25,  11,  14,  26,
-  15,  18,  12,  19,  13,  24,   0,  25,   0,  11,
-  14,   0,  15,  13,  12,  18,   0,  19,  11,  14,
-   0,  15,   0,  12,   0,   0,  26,  18,   0,  19,
-   0,   0,   0,   0,  13,  25,  18,  26,  19,  11,
-  14,   0,  15,   0,  12,  13,   0,   0,   0,  25,
-  11,  14,   6,  15,   0,  12,   0,  18,   0,  19,
-   0,   0,   0,   0,   0,  26,   0,   0,   0,   0,
-   0,   0,   2,   0,   0,   0,   0,   0,   0,  26,
-  34,   0,   0,   0,  37,  38,  39,  40,  41,  42,
-  43,  44,  45,  46,  47,  48,  49,  50,  51,  52,
-  53,  54,  55,  56,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0,  36,
-   0,   0,   0,  22,  23,  20,  21,  16,  17,  27,
-  28,   0,  61,   0,   0,  22,  23,  20,  21,  16,
-  17,  27,  28,   0,   0,   0,   0,   0,   0,   0,
-   0,  16,  17,   0,   0,   0,   0,   0,   0,   0,
-  10,   0,  22,  23,  20,  21,  16,  17,  27,  28,
-   0,   0,   0,  22,  23,  20,  21,  16,  17,  27,
-  28,   0,   0,   9,   0,   8,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,  22,  23,  20,  21,  16,  17,  27,   0,   0,
-   0,   0,   0,   0,   0,  22,  23,  20,  21,  16,
-  17,   0,   0,   0,   0,   0,   0,  22,  23,  20,
-  21,  16,  17,   0,   0,   0,  22,  23,  20,  21,
-  16,  17,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0,  20,
-  21,  16,  17 };
-short yypact[]={
-
-  26,-1000,   2,-1000,  26,  26,  26,  26, -38,-1000,
--1000,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-  26,-1000,-1000,-1000, -25,-254,-1000,-1000,-1000,-1000,
- -33, -33, 108, 108, -13, -13, -13, -13,  97,  97,
-  76,  67,  67,  55,  41, -37,  13,-1000, -30,  26,
--1000,  13 };
-short yypgo[]={
-
-   0,  15, 172,  36 };
-short yyr1[]={
-
-   0,   1,   2,   2,   2,   2,   2,   2,   2,   2,
-   2,   2,   2,   2,   2,   2,   2,   2,   2,   2,
-   2,   2,   2,   3,   3,   3,   3,   3,   3,   3 };
-short yyr2[]={
-
-   0,   2,   3,   3,   3,   3,   3,   3,   3,   3,
-   3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
-   5,   3,   1,   2,   2,   2,   3,   4,   2,   1 };
-short yychk[]={
-
--1000,  -1,  -2,  -3,  45,  33, 126,  40, 259, 257,
- 258,  42,  47,  37,  43,  45, 264, 265,  60,  62,
- 262, 263, 260, 261,  38,  94, 124, 266, 267,  63,
-  44,  -3,  -3,  -3,  -2,  40, 257,  -2,  -2,  -2,
-  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -2,
-  -2,  -2,  -2,  -2,  -2,  -2,  -2,  41, 257,  58,
-  41,  -2 };
-short yydef[]={
-
-   0,  -2,   0,  22,   0,   0,   0,   0,   0,  29,
-   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-   0,  23,  24,  25,   0,   0,  28,   2,   3,   4,
-   5,   6,   7,   8,  -2,  -2,  -2,  -2,  -2,  -2,
-  15,  16,  17,  18,  19,   0,  21,  26,   0,   0,
-  27,  20 };
-#pragma ifdef __GNUC__
-#pragma pragma GCC diagnostic ignored "-Wunused-label"
-#pragma endif
-#if defined(DOSCCS) && !defined(lint)
-static char yaccpar_sccsid[] = "@(#)yaccpar    4.1     (Berkeley)      2/11/83";
-#endif
-
-#
-# define YYFLAG -1000
-# define YYERROR goto yyerrlab
-# define YYACCEPT return(0)
-# define YYABORT return(1)
-
-/*     parser for yacc output  */
-
-#ifdef YYDEBUG
-int yydebug = 0; /* 1 for debugging */
-#endif
-YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
-int yychar = -1; /* current input token number */
-int yynerrs = 0;  /* number of errors */
-short yyerrflag = 0;  /* error recovery flag */
-
-int yyparse() {
-
-       short yys[YYMAXDEPTH];
-       short yyj, yym;
-       register YYSTYPE *yypvt;
-       register short yystate, *yyps, yyn;
-       register YYSTYPE *yypv;
-       register short *yyxi;
-
-       yystate = 0;
-       yychar = -1;
-       yynerrs = 0;
-       yyerrflag = 0;
-       yyps= &yys[-1];
-       yypv= &yyv[-1];
-
- yystack:    /* put a state and value onto the stack */
-
-#ifdef YYDEBUG
-       if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
-#endif
-               if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }
-               *yyps = yystate;
-               ++yypv;
-               *yypv = yyval;
-
- yynewstate:
-
-       yyn = yypact[yystate];
-
-       if( yyn<= YYFLAG ) goto yydefault; /* simple state */
-
-       if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
-       if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
-
-       if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
-               yychar = -1;
-               yyval = yylval;
-               yystate = yyn;
-               if( yyerrflag > 0 ) --yyerrflag;
-               goto yystack;
-               }
-
- yydefault:
-       /* default state action */
-
-       if( (yyn=yydef[yystate]) == -2 ) {
-               if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
-               /* look through exception table */
-
-               for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
-
-               while( *(yyxi+=2) >= 0 ){
-                       if( *yyxi == yychar ) break;
-                       }
-               if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
-               }
-
-       if( yyn == 0 ){ /* error */
-               /* error ... attempt to resume parsing */
-
-               switch( yyerrflag ){
-
-               case 0:   /* brand new error */
-
-                       yyerror( "syntax error" );
-               yyerrlab:
-                       ++yynerrs;
-
-               case 1:
-               case 2: /* incompletely recovered error ... try again */
-
-                       yyerrflag = 3;
-
-                       /* find a state where "error" is a legal shift action */
-
-                       while ( yyps >= yys ) {
-                          yyn = yypact[*yyps] + YYERRCODE;
-                          if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
-                             yystate = yyact[yyn];  /* simulate a shift of "error" */
-                             goto yystack;
-                             }
-                          yyn = yypact[*yyps];
-
-                          /* the current yyps has no shift onn "error", pop stack */
-
-#ifdef YYDEBUG
-                          if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
-#endif
-                          --yyps;
-                          --yypv;
-                          }
-
-                       /* there is no state on the stack with an error shift ... abort */
-
-       yyabort:
-                       return(1);
-
-               case 3:  /* no shift yet; clobber input char */
-
-#ifdef YYDEBUG
-                       if( yydebug ) printf( "error recovery discards char %d\n", yychar );
-#endif
-
-                       if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
-                       yychar = -1;
-                       goto yynewstate;   /* try again in the same state */
-
-                       }
-
-               }
-
-       /* reduction by production yyn */
-
-#ifdef YYDEBUG
-               if( yydebug ) printf("reduce %d\n",yyn);
-#endif
-               yyps -= yyr2[yyn];
-               yypvt = yypv;
-               yypv -= yyr2[yyn];
-               yyval = yypv[1];
-               yym=yyn;
-                       /* consult goto table to find next state */
-               yyn = yyr1[yyn];
-               yyj = yypgo[yyn] + *yyps + 1;
-               if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
-               switch(yym){
-                       
-case 1:
-# line 22 "cpy.y"
-{return(yypvt[-1]);} break;
-case 2:
-# line 26 "cpy.y"
-{yyval = yypvt[-2] * yypvt[-0];} break;
-case 3:
-# line 28 "cpy.y"
-{yyval = yypvt[-2] / yypvt[-0];} break;
-case 4:
-# line 30 "cpy.y"
-{yyval = yypvt[-2] % yypvt[-0];} break;
-case 5:
-# line 32 "cpy.y"
-{yyval = yypvt[-2] + yypvt[-0];} break;
-case 6:
-# line 34 "cpy.y"
-{yyval = yypvt[-2] - yypvt[-0];} break;
-case 7:
-# line 36 "cpy.y"
-{yyval = yypvt[-2] << yypvt[-0];} break;
-case 8:
-# line 38 "cpy.y"
-{yyval = yypvt[-2] >> yypvt[-0];} break;
-case 9:
-# line 40 "cpy.y"
-{yyval = yypvt[-2] < yypvt[-0];} break;
-case 10:
-# line 42 "cpy.y"
-{yyval = yypvt[-2] > yypvt[-0];} break;
-case 11:
-# line 44 "cpy.y"
-{yyval = yypvt[-2] <= yypvt[-0];} break;
-case 12:
-# line 46 "cpy.y"
-{yyval = yypvt[-2] >= yypvt[-0];} break;
-case 13:
-# line 48 "cpy.y"
-{yyval = yypvt[-2] == yypvt[-0];} break;
-case 14:
-# line 50 "cpy.y"
-{yyval = yypvt[-2] != yypvt[-0];} break;
-case 15:
-# line 52 "cpy.y"
-{yyval = yypvt[-2] & yypvt[-0];} break;
-case 16:
-# line 54 "cpy.y"
-{yyval = yypvt[-2] ^ yypvt[-0];} break;
-case 17:
-# line 56 "cpy.y"
-{yyval = yypvt[-2] | yypvt[-0];} break;
-case 18:
-# line 58 "cpy.y"
-{yyval = yypvt[-2] && yypvt[-0];} break;
-case 19:
-# line 60 "cpy.y"
-{yyval = yypvt[-2] || yypvt[-0];} break;
-case 20:
-# line 62 "cpy.y"
-{yyval = yypvt[-4] ? yypvt[-2] : yypvt[-0];} break;
-case 21:
-# line 64 "cpy.y"
-{yyval = yypvt[-0];} break;
-case 22:
-# line 66 "cpy.y"
-{yyval = yypvt[-0];} break;
-case 23:
-# line 69 "cpy.y"
-{yyval = -yypvt[-0];} break;
-case 24:
-# line 71 "cpy.y"
-{yyval = !yypvt[-0];} break;
-case 25:
-# line 73 "cpy.y"
-{yyval = ~yypvt[-0];} break;
-case 26:
-# line 75 "cpy.y"
-{yyval = yypvt[-1];} break;
-case 27:
-# line 77 "cpy.y"
-{yyval= yypvt[-1];} break;
-case 28:
-# line 79 "cpy.y"
-{yyval = yypvt[-0];} break;
-case 29:
-# line 81 "cpy.y"
-{yyval= yypvt[-0];} break;
-               }
-               goto yystack;  /* stack new state and value */
-
-       }
index c180f6c..aa12ed2 100644 (file)
@@ -80,7 +80,11 @@ term:
        | number
                ={$$= $1;}
 %%
-# include "cpp.h"
+#include <stdio.h>
+#include <strings.h>
+#include "cpp.h"
+/*# include "cpp.h"*/
 
 #define isid(a)  ((fastab+COFF)[a]&IB)
 #define IB 1
@@ -91,7 +95,7 @@ term:
 #define COFF 0
 #endif
 
-yylex() {
+int yylex() {
        static int ifdef=0;
        static char *op2[]={"||",  "&&" , ">>", "<<", ">=", "<=", "!=", "=="};
        static int  val2[]={OROR, ANDAND,  RS,   LS,   GE,   LE,   NE,   EQ};
@@ -142,7 +146,7 @@ ret:
 }
 }
 
-tobinary(st, b) char *st; {
+int tobinary(st, b) char *st; int b; {
        int n, c, t;
        char *s;
        n=0;
diff --git a/n.sh b/n.sh
index cb74ba6..93a70bd 100755 (executable)
--- a/n.sh
+++ b/n.sh
@@ -69,3 +69,5 @@ mkdir -p $STAGE1/usr/lib
 
 (cd bin && make clean && make SUBDIR="as csh diff sed sh tp" NSTD= KMEM= && make DESTDIR=$STAGE1 SUBDIR="as csh diff sed sh tp" NSTD= KMEM= install)
 (cd usr.bin && make clean && make SUBDIR="find lex yacc" NSTD= KMEM= && make DESTDIR=$STAGE1 SUBDIR="find lex yacc" NSTD= KMEM= install)
+(cd lib/cpp && make clean && make && make DESTDIR=$STAGE1 install)
+(cd include && make SHARED=copies DESTDIR=$STAGE1 install)
diff --git a/scripts/make.sh b/scripts/make.sh
new file mode 100755 (executable)
index 0000000..552163e
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+ROOT=`dirname $0`/..
+ROOT=`cd $ROOT && pwd`
+STAGE0=$ROOT/stage0
+STAGE1=$ROOT/stage1
+PATH=$STAGE0/bin:$STAGE0/usr/bin:$PATH make DESTDIR=$STAGE1 "$@"
diff --git a/scripts/make0.sh b/scripts/make0.sh
deleted file mode 100755 (executable)
index ae35161..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-ROOT=`dirname $0`/..
-ROOT=`cd $ROOT && pwd`
-STAGE0=$ROOT/stage0
-PATH=$STAGE0/bin:$STAGE0/usr/bin:$PATH make DESTDIR=$STAGE0 "$@"