From b9b73bcbc8ebb89f8b3d063449c5e311710cfb9c Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Fri, 3 Feb 2017 00:49:35 +1100 Subject: [PATCH] Post-ansification changes for lib/cpp --- .gitignore | 8 +- bin/cc.c | 2 + lib/cpp/cpp.c | 87 ++++++--- lib/cpp/cpp.h | 12 +- lib/cpp/cpy.c | 477 ----------------------------------------------- lib/cpp/cpy.y | 10 +- n.sh | 2 + scripts/make.sh | 6 + scripts/make0.sh | 5 - 9 files changed, 90 insertions(+), 519 deletions(-) delete mode 100644 lib/cpp/cpy.c create mode 100755 scripts/make.sh delete mode 100755 scripts/make0.sh diff --git a/.gitignore b/.gitignore index b55d3a2..f48e165 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/bin/cc.c b/bin/cc.c index c1fbc5a..1b87a8b 100644 --- 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"); diff --git a/lib/cpp/cpp.c b/lib/cpp/cpp.c index 36cd014..516ea7b 100644 --- a/lib/cpp/cpp.c +++ b/lib/cpp/cpp.c @@ -12,6 +12,10 @@ #endif #include "cpp.h" +#ifdef X_ +#include +#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 */ -/*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 +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"); diff --git a/lib/cpp/cpp.h b/lib/cpp/cpp.h index ecf223e..ef538bb 100644 --- a/lib/cpp/cpp.h +++ b/lib/cpp/cpp.h @@ -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 index f62ffec..0000000 --- a/lib/cpp/cpy.c +++ /dev/null @@ -1,477 +0,0 @@ -#include -#include -#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 */ - - } diff --git a/lib/cpp/cpy.y b/lib/cpp/cpy.y index c180f6c..aa12ed2 100644 --- a/lib/cpp/cpy.y +++ b/lib/cpp/cpy.y @@ -80,7 +80,11 @@ term: | number ={$$= $1;} %% -# include "cpp.h" +#include +#include +#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 --- 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 index 0000000..552163e --- /dev/null +++ b/scripts/make.sh @@ -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 index ae35161..0000000 --- a/scripts/make0.sh +++ /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 "$@" -- 2.34.1