From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- web/spiderweb/patches/001 | 32 ++++++++ web/spiderweb/patches/002 | 95 +++++++++++++++++++++++ web/spiderweb/patches/003 | 179 +++++++++++++++++++++++++++++++++++++++++++ web/spiderweb/patches/004 | 70 +++++++++++++++++ web/spiderweb/patches/005 | 74 ++++++++++++++++++ web/spiderweb/patches/006 | 92 +++++++++++++++++++++++ web/spiderweb/patches/007 | 188 ++++++++++++++++++++++++++++++++++++++++++++++ web/spiderweb/patches/008 | 29 +++++++ web/spiderweb/patches/009 | 44 +++++++++++ web/spiderweb/patches/010 | 36 +++++++++ 10 files changed, 839 insertions(+) create mode 100644 web/spiderweb/patches/001 create mode 100644 web/spiderweb/patches/002 create mode 100644 web/spiderweb/patches/003 create mode 100644 web/spiderweb/patches/004 create mode 100644 web/spiderweb/patches/005 create mode 100644 web/spiderweb/patches/006 create mode 100644 web/spiderweb/patches/007 create mode 100644 web/spiderweb/patches/008 create mode 100644 web/spiderweb/patches/009 create mode 100644 web/spiderweb/patches/010 (limited to 'web/spiderweb/patches') diff --git a/web/spiderweb/patches/001 b/web/spiderweb/patches/001 new file mode 100644 index 0000000000..02a21aedd8 --- /dev/null +++ b/web/spiderweb/patches/001 @@ -0,0 +1,32 @@ +*** WebMakefile~ Thu Apr 6 19:53:39 1989 +--- WebMakefile Sat Apr 8 12:32:06 1989 +*************** +*** 134,139 **** +--- 134,140 ---- + boot: + cd ../master; rm -f *.o; for i in $(COMMONC); do \ + cc $(CFLAGS) -c $$i; \ ++ mv *.o $(OBDIR) ; \ + done; cd ../c + cc $(CFLAGS) -c $(TANGLESRC).c; \ + cc $(CFLAGS) -o $(DEST)/$(THETANGLE) $(COMMONOBJS) $(TANGLESRC).o +*** spider.web~ Thu Apr 6 13:57:13 1989 +--- spider.web Sat Apr 8 12:49:58 1989 +*************** +*** 1133,1139 **** + if (tempfile==ttokfile) { ## output to \.{TANGLE} + # ## already defined in \.{TANGLE} +! temp = temp + #'37 - highesttoken ## hackety hack! + } + printf "@d %s = %s\n", tokenname[t], temp > tempfile + } +--- 1133,1140 ---- + if (tempfile==ttokfile) { ## output to \.{TANGLE} + # ## already defined in \.{TANGLE} +! temp = temp + #'37 + 3 - highesttoken ## hackety hack! +! ## +3 because three highest are already defined! + } + printf "@d %s = %s\n", tokenname[t], temp > tempfile + } diff --git a/web/spiderweb/patches/002 b/web/spiderweb/patches/002 new file mode 100644 index 0000000000..c120280709 --- /dev/null +++ b/web/spiderweb/patches/002 @@ -0,0 +1,95 @@ +*** README.old Sat Apr 8 12:55:24 1989 +--- README Mon Apr 10 12:16:25 1989 +*************** +*** 33,38 **** +--- 33,44 ---- + + 6) Go into WEBROOT and type `make boot' + ++ Once this is successful you will have executable versions of tangle for ++ C and Awk, which is the minumum needed to make other things. After you've ++ done this, you can afford to `make clean', which will remove the .c and ++ .awk source you used to bootstrap yourself. You can always make them over ++ again using the executable versions (`make source'). ++ + 7) Move webkernel.tex into a place where TeX can find it + + +*** Makefile.old Mon Apr 10 12:10:11 1989 +--- Makefile Mon Apr 10 12:14:16 1989 +*************** +*** 2,11 **** + # Not to be sold, but may be used freely for any purpose + # For more information, see file COPYRIGHT in the parent directory + +! # This is a SUN OS 4 Makefile. Sorry. + + MAKE=make $(MFLAGS) + DIRECTORIES=ada awk c dijkstra larch penelope ssl doc master + clean: + @for i in $(DIRECTORIES); do \ + cd $$i; \ +--- 2,16 ---- + # Not to be sold, but may be used freely for any purpose + # For more information, see file COPYRIGHT in the parent directory + +! # This is a SUN OS 4 Makefile. Sorry. Makefiles in subdirectories +! # should work under any reasonable Make. + + MAKE=make $(MFLAGS) + DIRECTORIES=ada awk c dijkstra larch penelope ssl doc master ++ ++ # Removes excess junk from the world, except it doesn't remove ++ # common object files from ./master ++ # This destroys the sources, so don't make clean until you've made boot. + clean: + @for i in $(DIRECTORIES); do \ + cd $$i; \ +*************** +*** 16,34 **** + rm -f *~ + @echo "All done." + + source: + cd c ; $(MAKE) source ; cd .. + cd awk ; $(MAKE) source ; cd .. + + distribution: + # $(MAKE) clean + # $(MAKE) source +! tar cvhf spiderweb.tar README COPYRIGHT BUGS webkernel.tex Makefile $(DIRECTORIES) + + boot: + cd c; $(MAKE) boot; cd .. + cd awk; $(MAKE) boot; cd .. + + all: + @for i in $(DIRECTORIES); do \ + cd $$i; \ +--- 21,46 ---- + rm -f *~ + @echo "All done." + ++ # This creates the minimum sources in preparation for `make distribution' + source: + cd c ; $(MAKE) source ; cd .. + cd awk ; $(MAKE) source ; cd .. + ++ # Put everything into a tar file. Must `make source' first, and should clean + distribution: + # $(MAKE) clean ++ cd master ; make superclean ; cd .. # remove common .o from master + # $(MAKE) source +! tar cvhf spiderweb.tar README COPYRIGHT BUGS webkernel.tex \ +! Makefile $(DIRECTORIES) + ++ # Used to bring up the system when first installing it. Requires sources, ++ # either from the distribution tarfile or from `make source' + boot: + cd c; $(MAKE) boot; cd .. + cd awk; $(MAKE) boot; cd .. + ++ # Make all known webs. For lunatics only. + all: + @for i in $(DIRECTORIES); do \ + cd $$i; \ diff --git a/web/spiderweb/patches/003 b/web/spiderweb/patches/003 new file mode 100644 index 0000000000..e5d5931076 --- /dev/null +++ b/web/spiderweb/patches/003 @@ -0,0 +1,179 @@ +*** doc/cacm.tex.old Thu Apr 6 14:01:25 1989 +--- doc/cacm.tex Mon Apr 10 14:47:13 1989 +*************** +*** 182,188 **** + \put(125,30){\line(-1,-1){10}} + \put(115,20){\vector(-1,0){25}} + +! \put(104,21.5){\makebox(0,0)[b]{\scriptsize\sl CWEAVE}} + + \put(60,15){\framebox(30,10){xtangle.c}} + \put(60,-25){\framebox(30,10){xweave.c}} +--- 182,188 ---- + \put(125,30){\line(-1,-1){10}} + \put(115,20){\vector(-1,0){25}} + +! \put(104,21.5){\makebox(0,0)[b]{\scriptsize\sl CTANGLE}} + + \put(60,15){\framebox(30,10){xtangle.c}} + \put(60,-25){\framebox(30,10){xweave.c}} +*** Makefile.old Mon Apr 10 11:14:16 1989 +--- Makefile Tue Apr 11 11:51:42 1989 +*************** +*** 29,35 **** + # Put everything into a tar file. Must `make source' first, and should clean + distribution: + # $(MAKE) clean +- cd master ; make superclean ; cd .. # remove common .o from master + # $(MAKE) source + tar cvhf spiderweb.tar README COPYRIGHT BUGS webkernel.tex \ + Makefile $(DIRECTORIES) +--- 29,34 ---- +*** master/Makefile.old Thu Apr 6 19:37:11 1989 +--- master/Makefile Tue Apr 11 11:55:29 1989 +*************** +*** 2,12 **** + # Not to be sold, but may be used freely for any purpose + # For more information, see file COPYRIGHT in the parent directory + + clean: + -rm -f *.tex *.dvi *.log *.wlog *~ *.toc + + superclean: +! -rm -f *.c *.o + -rm -f *.tex *.dvi *.log *~ *.toc +- -rm -f sun3/*.o vax/*.o + +--- 2,18 ---- + # Not to be sold, but may be used freely for any purpose + # For more information, see file COPYRIGHT in the parent directory + ++ OBJECTDIRS=sun3 vax ++ + clean: + -rm -f *.tex *.dvi *.log *.wlog *~ *.toc ++ @-for i in $(OBJECTDIRS); do \ ++ rm -f $$i/*.o; \ ++ done ++ -rm -f *.o + + superclean: +! -rm -f sun3/*.o vax/*.o *.o +! -rm -f *.c + -rm -f *.tex *.dvi *.log *~ *.toc + +*** master/spider.web.old Tue Apr 11 13:19:58 1989 +--- master/spider.web Tue Apr 11 14:02:06 1989 +*************** +*** 1939,1945 **** + if (n%5==0) + print "@ @=" \ + > grammarfile ## avoids overflowing \.{WEAVE} of \.{WEAVE} +! # + # + printf "if (%s) {\n\t/* %d: {\\tt %s} */\n%s",\ + prodtest[n],n,this_string,prodtrans[n] > grammarfile +--- 1939,1945 ---- + if (n%5==0) + print "@ @=" \ + > grammarfile ## avoids overflowing \.{WEAVE} of \.{WEAVE} +! # + # + printf "if (%s) {\n\t/* %d: {\\tt %s} */\n%s",\ + prodtest[n],n,this_string,prodtrans[n] > grammarfile +*************** +*** 1991,2005 **** + # It's desirable to put the production in a comment, but we have to + get rid of the confusing \vert, or \.{WEAVE} will think it introduces + code. +! #= +! this_string = inputline[n] + tempi = index(this_string,"|") +! while (tempi != 0) { +! tempa = substr(this_string,1,tempi-1) +! tempb = substr(this_string,tempi+1) +! this_string = tempa "\\vert " tempb +! tempi = index(this_string,"|") +! } + + + # We have to keep these productions from making an input line too long. +--- 1991,2025 ---- + # It's desirable to put the production in a comment, but we have to + get rid of the confusing \vert, or \.{WEAVE} will think it introduces + code. +! We also have to escape underscores and sharp signs, otherwise \TeX\ will +! think we want math mode. +! #= +! this_string = inputline[n] +! tempi = index(this_string,"|") +! while (tempi != 0) { +! tempa = substr(this_string,1,tempi-1) +! tempb = substr(this_string,tempi+1) +! this_string = tempa "\\vert " tempb + tempi = index(this_string,"|") +! } +! templ = ""; tempr = this_string +! tempi = index(tempr,"_") +! while (tempi != 0) { +! tempa = substr(tempr,1,tempi-1) +! tempr = substr(tempr,tempi+1) +! templ = templ tempa "\\_" +! tempi = index(tempr,"_") +! } +! this_string = templ tempr +! templ = ""; tempr = this_string +! tempi = index(tempr,"##") +! while (tempi != 0) { +! tempa = substr(tempr,1,tempi-1) +! tempr = substr(tempr,tempi+1) +! templ = templ tempa "\\##" +! tempi = index(tempr,"##") +! } +! this_string = templ tempr + + + # We have to keep these productions from making an input line too long. +*** doc/spiderwebman.tex.old Thu Apr 6 14:01:32 1989 +--- doc/spiderwebman.tex Tue Apr 11 14:24:39 1989 +*************** +*** 579,599 **** + can define two kinds of macros to make the programs shorter and more + readable. + +! \yskip\hang`\.{@d} \\{identifier} \PASCAL\ text' defines a {\sl + simple\/} macro, where the identifier will be replaced by the \PASCAL\ text + when \.{TANGLE} produces its output. + +! \yskip\hang`\.{@d} \\{identifier}\.{(\\{ actual identifiers})} \PASCAL\ text' defines a + {\sl parametric\/} macro, where the identifier will be replaced by the \PASCAL\ + text and where occurrences of the \\{identifiers} in that \PASCAL\ text will be + replaced by arguments. + +! C programmers will recognize the C macro processor. +! The implementation relies on the C preprocessor to expand the macros. +! The author of \.{Spider} \.{WEB} intends to correct this unfortunate +! historical accident at the earliest opportunity, by restoring +! \.{WEB}'s built-in macro processor. +! + + + +--- 579,595 ---- + can define two kinds of macros to make the programs shorter and more + readable. + +! \yskip\hang`\.{@d} \\{identifier} = \PASCAL\ text' defines a {\sl + simple\/} macro, where the identifier will be replaced by the \PASCAL\ text + when \.{TANGLE} produces its output. + +! \yskip\hang`\.{@d} \\{identifier}\.{(\\{ actual identifiers})} = \PASCAL\ text' defines a + {\sl parametric\/} macro, where the identifier will be replaced by the \PASCAL\ + text and where occurrences of the \\{identifiers} in that \PASCAL\ text will be + replaced by arguments. + +! For C programmers, this is similar to the C macro processor. +! \endnewstuff + + + diff --git a/web/spiderweb/patches/004 b/web/spiderweb/patches/004 new file mode 100644 index 0000000000..72dee88b34 --- /dev/null +++ b/web/spiderweb/patches/004 @@ -0,0 +1,70 @@ +*** master/weave.web.old Fri Apr 14 12:31:34 1989 +--- master/weave.web Fri Apr 14 12:33:28 1989 +*************** +*** 353,359 **** + + @d ignore = 0 /* control code of no interest to \.{CWEAVE} */ + @d verbatim = @'2 /* extended ASCII alpha will not appear */ +! @d tangle_force_line = @'3 /* extended ASCII beta will not appear */ + @d begin_comment = @'10 /* ASCII tab mark will not appear */ + @d octal = @'14 /* ASCII carriage return will not appear */ + @d hex = @'15 /* ASCII form feed will not appear */ +--- 353,359 ---- + + @d ignore = 0 /* control code of no interest to \.{CWEAVE} */ + @d verbatim = @'2 /* extended ASCII alpha will not appear */ +! /* extended ASCII beta will not appear */ + @d begin_comment = @'10 /* ASCII tab mark will not appear */ + @d octal = @'14 /* ASCII carriage return will not appear */ + @d hex = @'15 /* ASCII form feed will not appear */ +*************** +*** 395,401 **** + ccode['-']=line_break; + ccode['#']=big_line_break; + ccode['=']=verbatim; +- ccode['\\']=tangle_force_line; + ccode['d']=ccode['D']=definition; + ccode['f']=ccode['F']=format; + ccode['c']=ccode['C']=begin_unnamed; +--- 395,400 ---- +*************** +*** 2026,2032 **** + break; + case xref_roman: case xref_wildcard: case xref_typewriter: + break; +- case tangle_force_line: app_str("\\]"); app_scrap(SP_ignore_scrap,yes_math); break; + case thin_space: app_str("\\,"); app_scrap(SP_ignore_scrap,yes_math); break; + case math_break: + small_app(opt); app_str("0"); app_scrap(SP_ignore_scrap,yes_math); break; +--- 2025,2030 ---- +*** doc/spiderwebman.tex.old Fri Apr 14 12:32:11 1989 +--- doc/spiderwebman.tex Fri Apr 14 12:39:57 1989 +*************** +*** 952,958 **** + \@= [\PAS] The ``control text'' that follows, up to the next `\.{@>}', will + be passed verbatim to the \PASCAL\ program. + +! \@\\ [\PAS] Force end-of-line here in the \PASCAL\ program file. + + \@! [\PAS,T] The module number in an index entry will be underlined if `\.{@!}' + immediately precedes the identifier or control text being indexed. +--- 952,958 ---- + \@= [\PAS] The ``control text'' that follows, up to the next `\.{@>}', will + be passed verbatim to the \PASCAL\ program. + +! %%% \@\\ [\PAS] Force end-of-line here in the \PASCAL\ program file. + + \@! [\PAS,T] The module number in an index entry will be underlined if `\.{@!}' + immediately precedes the identifier or control text being indexed. +*************** +*** 982,987 **** +--- 982,990 ---- + \@? + [\PAS,T] This cancels an implicit (or explicit) `\.{@!}', so that the next + index entry will not be underlined. ++ ++ \newstuff This is not implemented in the current version of Spidery \.{WEB}. ++ \endnewstuff + + \@, [\PAS] This control code inserts a thin space in \.{WEAVE}'s output; it is + ignored by \.{TANGLE}. diff --git a/web/spiderweb/patches/005 b/web/spiderweb/patches/005 new file mode 100644 index 0000000000..52f9a47999 --- /dev/null +++ b/web/spiderweb/patches/005 @@ -0,0 +1,74 @@ +*** master/spider.web~ Tue Apr 11 14:02:06 1989 +--- master/spider.web Mon Jul 3 12:46:05 1989 +*************** +*** 772,778 **** + } else if (length($2)>1) { + # + } else { +! temp = sprintf "'%s'", $2 + tokenname[$2] = temp + tokenlength[$2]=1 + } +--- 772,778 ---- + } else if (length($2)>1) { + # + } else { +! temp = sprintf("'%s'", $2) + tokenname[$2] = temp + tokenlength[$2]=1 + } +*************** +*** 791,797 **** + tokennumbers[$2]=tokennumber + tokennumber-- + ## figure out how to recognize the token +! temp = sprintf "strncmp(\"%s\",loc-1,%d)==0", $2, length($2) + tokentest[$2]=temp + tokenlength[$2]=length($2) + +--- 791,797 ---- + tokennumbers[$2]=tokennumber + tokennumber-- + ## figure out how to recognize the token +! temp = sprintf( "strncmp(\"%s\",loc-1,%d)==0", $2, length($2)) + tokentest[$2]=temp + tokenlength[$2]=length($2) + +*************** +*** 1738,1744 **** + $i = substr($i,2) ## peel off the \## + # + targetcategory[prodnum]="Unnamed category" +! temp = sprintf "(pp+%d)->cat", $i-1 + unnamed_cat[prodnum]=temp + } else if ($i ~ #=/[a-z][a-z_]*/#>) { ## a category + targetcategory[prodnum]=$i +--- 1738,1744 ---- + $i = substr($i,2) ## peel off the \## + # + targetcategory[prodnum]="Unnamed category" +! temp = sprintf("(pp+%d)->cat", $i-1) + unnamed_cat[prodnum]=temp + } else if ($i ~ #=/[a-z][a-z_]*/#>) { ## a category + targetcategory[prodnum]=$i +*** webkernel.tex.old Mon Jun 26 12:32:33 1989 +--- webkernel.tex Mon Jun 26 12:35:38 1989 +*************** +*** 218,224 **** + \global\output{\normaloutput\page\lheader\rheader\lfooter\rfooter}} + \setpage + \vbox to \vsize{} % the first \topmark won't be null +! \eject + \write\cont{\string\catcode`\string\@=11}% a hack to make contents + % take stuff in \.{---} + +--- 218,226 ---- + \global\output{\normaloutput\page\lheader\rheader\lfooter\rfooter}} + \setpage + \vbox to \vsize{} % the first \topmark won't be null +! % Delete as per bug report from kademan@stat.wisc.edu +! % Causes headings on first page to be missing +! % \eject + \write\cont{\string\catcode`\string\@=11}% a hack to make contents + % take stuff in \.{---} + diff --git a/web/spiderweb/patches/006 b/web/spiderweb/patches/006 new file mode 100644 index 0000000000..361103571a --- /dev/null +++ b/web/spiderweb/patches/006 @@ -0,0 +1,92 @@ +*** master/spider.web.old Mon Jul 3 12:46:05 1989 +--- master/spider.web Thu Jul 20 19:00:04 1989 +*************** +*** 1532,1537 **** +--- 1532,1541 ---- + each scrap is true, the whole production will fire. + If we're called upon to make a scrap underlined or reserved, we'll add + to |trans[pos]|. ++ ++ If a category is negated we add an extra clause to make ++ sure nothing matches the zero category, since {\tt WEAVE} assumes ++ no production ever matches a scrap with category zero. + #= + field[pos]=$i ## save this field to compare RHS + # +*************** +*** 1540,1548 **** + cat = $i + categories[cat]=1 ## remember |cat| is a category + if (negation==0) { +! test[pos]=sprintf("(pp+%d)->cat==SP_%s",pos-1,cat) + } else { +! test[pos]=sprintf("(pp+%d)->cat!=SP_%s",pos-1,cat) + } + # + # +--- 1544,1553 ---- + cat = $i + categories[cat]=1 ## remember |cat| is a category + if (negation==0) { +! test[pos]=sprintf("(pp+%d)->cat==SP_%s",pos-1,cat) + } else { +! test[pos]=sprintf("((pp+%d)->cat!=SP_%s && (pp+%d)->cat != 0)",\ +! pos-1,cat,pos-1) + } + # + # +*************** +*** 1551,1556 **** +--- 1556,1565 ---- + categories are separated by vertical bars. + We have to make the test for these things a disjunction, but + processing is more or less like the processing for a single category. ++ ++ If a list of alternatives is negated we add an extra clause to make ++ sure nothing matches the zero category, since {\tt WEAVE} assumes ++ no production ever matches a scrap with category zero. + #= + field[pos]=$i ## save this field to compare RHS + # +*************** +*** 1557,1563 **** + if (negation==0) { + test[pos]="(" ## open for a list of good alternatives + } else { +! test[pos]="!(" ## open for a list of bad alternatives + } + # +--- 1566,1573 ---- + if (negation==0) { + test[pos]="(" ## open for a list of good alternatives + } else { +! temp=sprintf("(pp+%d)->cat==0",pos-1) +! test[pos]="!(" temp "||" ## open for a list of bad alternatives + } + # +*************** +*** 1635,1644 **** + # + } + +! # Wild cards are easy to process + #= + field[pos]=$i ## save this field to compare RHS +! test[pos]="(1)" ## anything matches + highwildcard=pos ## we don't really need this? + # + +--- 1645,1655 ---- + # + } + +! # Wild cards are easy to process, but we do have to remember that +! not even a wild card matches a scrap of category zero. + #= + field[pos]=$i ## save this field to compare RHS +! test[pos]=sprintf("(pp+%d)->cat!=0",pos-1) ## anything nonzero matches + highwildcard=pos ## we don't really need this? + # + diff --git a/web/spiderweb/patches/007 b/web/spiderweb/patches/007 new file mode 100644 index 0000000000..0dc52bbdad --- /dev/null +++ b/web/spiderweb/patches/007 @@ -0,0 +1,188 @@ +*** master/spider.web.old Wed Aug 23 14:08:45 1989 +--- master/spider.web Wed Aug 23 14:03:12 1989 +*************** +*** 314,322 **** + + # If the macro facility worked right, + we would use the following patterns to recognize items as they occur: +! #d cat_pattern = #=/[a-z][a-z_]*/#> +! #d trans_pattern = #=/<(([0-9]|[a-z][a-z_]*|"([^"]*\\")*[^"]*"|\*)-)*#>#& +! #=([0-9]|[a-z][a-z_]*|"([^"]*\\")*[^"]*"|\*)>/#> + + # Here's where we swallow a translation and spit out the \.{WEAVE} code + to handle that translation. +--- 314,322 ---- + + # If the macro facility worked right, + we would use the following patterns to recognize items as they occur: +! #d cat_pattern = #=/[a-zA-Z][a-zA-Z_]*/#> +! #d trans_pattern = #=/<(([0-9]|[a-zA-Z][a-zA-Z_]*|"([^"]*\\")*[^"]*"|\*)-)*#>#& +! #=([0-9]|[a-zA-Z][a-zA-Z_]*|"([^"]*\\")*[^"]*"|\*)>/#> + + # Here's where we swallow a translation and spit out the \.{WEAVE} code + to handle that translation. +*************** +*** 341,347 **** + if (alternate ~ #=/^[0-9]$/#>) { ## digit + temp = sprintf("\tapp_str(\"%s\");\n",alternate) + outstring=outstring temp +! } else if (alternate ~ #=/^[a-z_]+$/#>) { ## key word + translation_keywords[alternate]=1 ## remember + temp = sprintf("\t%s(%s);\n",append_keyword,alternate) + ##Call |app| or |small_app| depending whether we're reducing or creating scraps +--- 341,347 ---- + if (alternate ~ #=/^[0-9]$/#>) { ## digit + temp = sprintf("\tapp_str(\"%s\");\n",alternate) + outstring=outstring temp +! } else if (alternate ~ #=/^[a-zA-Z_]+$/#>) { ## key word + translation_keywords[alternate]=1 ## remember + temp = sprintf("\t%s(%s);\n",append_keyword,alternate) + ##Call |app| or |small_app| depending whether we're reducing or creating scraps +*************** +*** 394,400 **** + if (alternate ~ #=/^[0-9]$/#>) { ## digit + print "Digit not allowed in restricted translation", wherestring + exitcode = -1 +! } else if (alternate ~ #=/^[a-z_]+$/#>) { ## key word + print "Key word not allowed in restricted translation", wherestring + exitcode = -1 + } else if (alternate ~ #=/^\"([^"]*\\\")*[^"]*\"$/#>) { ## string +--- 394,400 ---- + if (alternate ~ #=/^[0-9]$/#>) { ## digit + print "Digit not allowed in restricted translation", wherestring + exitcode = -1 +! } else if (alternate ~ #=/^[a-zA-Z_]+$/#>) { ## key word + print "Key word not allowed in restricted translation", wherestring + exitcode = -1 + } else if (alternate ~ #=/^\"([^"]*\\\")*[^"]*\"$/#>) { ## string +*************** +*** 576,582 **** + # + } else if ($2=="pseudo_semi") { + # +! } else if ($2 ~ #=/[a-zA-Z0-9]+/#>) { + ## we recognize no other names + print "Error: unknown token species:", $2 + # +--- 576,582 ---- + # + } else if ($2=="pseudo_semi") { + # +! } else if ($2 ~ #=/[a-zA-ZA-Z0-9]+/#>) { + ## we recognize no other names + print "Error: unknown token species:", $2 + # +*************** +*** 1200,1206 **** + that an item of ilk |fish_like| will get category |fish|. + + #= +! if ($2 ~ #=/^[a-z_]+_like$/#> && $0 !~ #=/ category /#>) { + ## give default category + this_category = substr($2,1,length($2)-5) + categories[this_category]=1 +--- 1200,1206 ---- + that an item of ilk |fish_like| will get category |fish|. + + #= +! if ($2 ~ #=/^[a-zA-Z_]+_like$/#> && $0 !~ #=/ category /#>) { + ## give default category + this_category = substr($2,1,length($2)-5) + categories[this_category]=1 +*************** +*** 1490,1498 **** + for (i=1; i<=NF; i++) { + if ($i ~ #=/<.*>/#>) { ## should be |trans_pattern| + # +! } else if ($i ~ #=/^!?[a-z_]+(\*\*?)?$/#>) { ## |cat_pattern| + # +! } else if ($i ~ #=/^!?\(([a-z_]+\|)*[a-z_]+\)(\*\*?)?$/#>){ + # + } else if ($i == "?") { + # +--- 1490,1498 ---- + for (i=1; i<=NF; i++) { + if ($i ~ #=/<.*>/#>) { ## should be |trans_pattern| + # +! } else if ($i ~ #=/^!?[a-zA-Z_]+(\*\*?)?$/#>) { ## |cat_pattern| + # +! } else if ($i ~ #=/^!?\(([a-zA-Z_]+\|)*[a-zA-Z_]+\)(\*\*?)?$/#>){ + # + } else if ($i == "?") { + # +*************** +*** 1632,1642 **** + + #= +! if ($i ~ #=/^([a-z_]+|\(([a-z_]+\|)*[a-z_]+\))\*\*$/#>) { ## it's double-starred + temp = sprintf("\tmake_underlined(pp+%d);\n",pos-1) + trans[pos] = trans[pos] temp + $i = substr($i,1,length($i)-2) +! } else if ($i ~ #=/^([a-z_]+|\(([a-z_]+\|)*[a-z_]+\))\*$/#>) { ## it's starred + temp = sprintf("\tmake_underlined(pp+%d);\n",pos-1) + trans[pos] = trans[pos] temp + $i = substr($i,1,length($i)-1) +--- 1632,1642 ---- + + #= +! if ($i ~ #=/^([a-zA-Z_]+|\(([a-zA-Z_]+\|)*[a-zA-Z_]+\))\*\*$/#>) { ## it's double-starred + temp = sprintf("\tmake_underlined(pp+%d);\n",pos-1) + trans[pos] = trans[pos] temp + $i = substr($i,1,length($i)-2) +! } else if ($i ~ #=/^([a-zA-Z_]+|\(([a-zA-Z_]+\|)*[a-zA-Z_]+\))\*$/#>) { ## it's starred + temp = sprintf("\tmake_underlined(pp+%d);\n",pos-1) + trans[pos] = trans[pos] temp + $i = substr($i,1,length($i)-1) +*************** +*** 1751,1757 **** + targetcategory[prodnum]="Unnamed category" + temp = sprintf("(pp+%d)->cat", $i-1) + unnamed_cat[prodnum]=temp +! } else if ($i ~ #=/[a-z][a-z_]*/#>) { ## a category + targetcategory[prodnum]=$i + categories[$i]=1 ## remember this is a category + } else { +--- 1751,1757 ---- + targetcategory[prodnum]="Unnamed category" + temp = sprintf("(pp+%d)->cat", $i-1) + unnamed_cat[prodnum]=temp +! } else if ($i ~ #=/[a-zA-Z][a-zA-Z_]*/#>) { ## a category + targetcategory[prodnum]=$i + categories[$i]=1 ## remember this is a category + } else { +*************** +*** 1827,1833 **** + temp = field[pos] + tempa = substr(temp,1,1) + if (tempa != "!") { +! if (temp ~ #=/^\(([a-z_]+\|)*[a-z_]+\)(\*\*?)?$/#>) { + ## list of alternatives + # + temp = substr(temp,2,length(temp)-2) +--- 1827,1833 ---- + temp = field[pos] + tempa = substr(temp,1,1) + if (tempa != "!") { +! if (temp ~ #=/^\(([a-zA-Z_]+\|)*[a-zA-Z_]+\)(\*\*?)?$/#>) { + ## list of alternatives + # + temp = substr(temp,2,length(temp)-2) +*************** +*** 1836,1842 **** + alternate = tok[j] + reduced[alternate]=1 + } +! } else if (temp ~ #=/^[a-z_]+(\*\*?)?$/#>) { + # + reduced[temp]=1 + } else if (temp != "?") { +--- 1836,1842 ---- + alternate = tok[j] + reduced[alternate]=1 + } +! } else if (temp ~ #=/^[a-zA-Z_]+(\*\*?)?$/#>) { + # + reduced[temp]=1 + } else if (temp != "?") { diff --git a/web/spiderweb/patches/008 b/web/spiderweb/patches/008 new file mode 100644 index 0000000000..d0e0615e3a --- /dev/null +++ b/web/spiderweb/patches/008 @@ -0,0 +1,29 @@ +*** c/c.spider.old Wed Nov 29 22:48:59 1989 +--- c/c.spider Wed Nov 29 21:55:48 1989 +*************** +*** 18,28 **** + + token + category unorbinop + token - category unorbinop +! token * category unorbinop translation <"{*}"> + token / category dot + token < category less translation <> + token > category greater translation <> + token = category equals translation <"\\leftarrow"> tangleto <"="-space> + token . category dot + token ~ category unop translation <"\\TI"> + token & category unorbinop translation <"\\amp"> +--- 18,30 ---- + + token + category unorbinop + token - category unorbinop +! token * category unorbinop translation <"{*}"> tangleto +! # avoid inadvertant /* + token / category dot + token < category less translation <> + token > category greater translation <> + token = category equals translation <"\\leftarrow"> tangleto <"="-space> ++ # avoid inadvertant =- + token . category dot + token ~ category unop translation <"\\TI"> + token & category unorbinop translation <"\\amp"> diff --git a/web/spiderweb/patches/009 b/web/spiderweb/patches/009 new file mode 100644 index 0000000000..ce36467111 --- /dev/null +++ b/web/spiderweb/patches/009 @@ -0,0 +1,44 @@ +*** master/WebMakefile.old Mon Jan 22 13:26:49 1990 +--- master/WebMakefile Mon Jan 22 13:32:40 1990 +*************** +*** 70,76 **** + $(MASTER)/common.c: $(MASTER)/common.web # no change file + $(CTANGLE) $(MASTER)/common + +! $(OBDIR)/common.o: $(MASTER)/common.c + $(CC) $(CFLAGS) -c $(MASTER)/common.c + mv common.o $(OBDIR) + +--- 70,76 ---- + $(MASTER)/common.c: $(MASTER)/common.web # no change file + $(CTANGLE) $(MASTER)/common + +! $(OBDIR)/common.o: $(MASTER)/common.c $(OBDIR) + $(CC) $(CFLAGS) -c $(MASTER)/common.c + mv common.o $(OBDIR) + +*************** +*** 79,88 **** + $(CTANGLE) $(MASTER)/pathopen + mv pathopen.h $(MASTER) + +! $(OBDIR)/pathopen.o: $(MASTER)/pathopen.c + $(CC) $(CFLAGS) -c $(MASTER)/pathopen.c + mv pathopen.o $(OBDIR) + + + ## Now we make the tangle and weave source locally + +--- 79,90 ---- + $(CTANGLE) $(MASTER)/pathopen + mv pathopen.h $(MASTER) + +! $(OBDIR)/pathopen.o: $(MASTER)/pathopen.c $(OBDIR) + $(CC) $(CFLAGS) -c $(MASTER)/pathopen.c + mv pathopen.o $(OBDIR) + ++ $(OBDIR): ++ if /bin/test ! -d $(OBDIR) ; then mkdir $(OBDIR) ; fi + + ## Now we make the tangle and weave source locally + diff --git a/web/spiderweb/patches/010 b/web/spiderweb/patches/010 new file mode 100644 index 0000000000..fca8083e4c --- /dev/null +++ b/web/spiderweb/patches/010 @@ -0,0 +1,36 @@ +*** master/weave.web.old Thu Feb 8 12:55:12 1990 +--- master/weave.web Thu Feb 8 12:55:50 1990 +*************** +*** 254,260 **** + (mod_xref_switch==file_flag && q->num < file_flag)) { + printf("\n! You can't use <"); print_id(p); + printf("> both as a file and as a named module"); mark_harmless; +! @.{You can't use
both as a file...@> + + } + } +--- 254,260 ---- + (mod_xref_switch==file_flag && q->num < file_flag)) { + printf("\n! You can't use <"); print_id(p); + printf("> both as a file and as a named module"); mark_harmless; +! @.You can't use
both as a file...@> + + } + } +*************** +*** 968,974 **** + if ((cur_xref->num)/def_flag != level) { + printf("\n! You can't use <"); print_id(p); + printf("> both as a file and as a named module"); mark_harmless; +! @.{You can't use
both as a file...@> + } + cur_xref=cur_xref->xlink; + } +--- 968,974 ---- + if ((cur_xref->num)/def_flag != level) { + printf("\n! You can't use <"); print_id(p); + printf("> both as a file and as a named module"); mark_harmless; +! @.You can't use
both as a file...@> + } + cur_xref=cur_xref->xlink; + } -- cgit v1.2.3