Newsgroups: comp.sources.unix From: ross@spam.adelaide.edu.au (Ross Williams) Subject: v26i121: funnelweb - a tool for literate programming in C, Part01/20 Sender: unix-sources-moderator@vix.com Approved: paul@vix.com Submitted-By: ross@spam.adelaide.edu.au (Ross Williams) Posting-Number: Volume 26, Issue 121 Archive-Name: funnelweb/part01 [ i wrote a top-level README and a Makefile for the 'sources' subdirectory. i'm letting this out without a man page because there's enough documentation in the 'userman' subdirectory, it's just not in nroff format and i don't know enough about TeX to convert it. --vix ] FunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. It provides a macro facility, and assists in the production of typeset documentation. FunnelWeb runs on most popular machines (Sun, VAX, Mac, PC) and its highly portable source code in C is freely available under a GNU license. Features: + Provides a simple macro preprocessor facility. + Assists in the generation of typeset documentation. + Runs on Sun, VMS VAX, Macintosh, and PC. + Portable C source code distributed under GNU licence. + Comprehensive user's manual (115 pages). + Input-programming-language independent. + Allows complete control over the output text. + Regression test suite with over 200 tests. - Requires TeX to produce typeset documentation. - Typesets program code using TT font only. ross@spam.adelaide.edu.au (Ross Williams) #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh '0readme.txt' <<'END_OF_FILE' XFUNNELWEB 0README FILE X====================== This is the first file you should read after obtaining a copy of XFunnelWeb. X XFunnelWeb is well documented and the best thing you can do at this stage to get started is to LaTeX and print out the FunnelWeb User's Manual. The LaTeX sources for the manual can be found in the directory X X...../fwdir/userman/ X The file to LaTeX is u_manual.tex. The FunnelWeb User's Manual contains full installation instructions. X If you are in a hurry to install FunnelWeb, print out u_ch4.tex in text form and follow the instructions. X END_OF_FILE if test 564 -ne `wc -c <'0readme.txt'`; then echo shar: \"'0readme.txt'\" unpacked with wrong size! fi chmod +x '0readme.txt' # end of '0readme.txt' fi if test -f 'MANIFEST' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST'\" else echo shar: Extracting \"'MANIFEST'\" \(9383 characters\) sed "s/^X//" >'MANIFEST' <<'END_OF_FILE' X File Name Archive # Description X----------------------------------------------------------- X 0readme.txt 1 X MANIFEST 1 This shipping list X README 1 X admin 1 X admin/0readme.txt 1 X admin/ad.txt 1 X admin/fixeols.fws 1 X admin/gnu2.txt 9 X admin/makescript 1 X admin/vms_bld.com 2 X answers 1 X answers/0license.txt 1 X answers/an01.lis 1 X answers/an02.lis 1 X answers/an03.lis 2 X answers/an04.lis 1 X answers/ex01.lis 1 X answers/ex02.lis 1 X answers/ex03.lis 1 X answers/ex04.lis 1 X answers/ex05.lis 1 X answers/ex06.lis 1 X answers/ex07.lis 1 X answers/ex08.lis 1 X answers/ex09.lis 1 X answers/ex10.lis 1 X answers/ex11.lis 1 X answers/ex11.tex 7 X answers/ex12.lis 1 X answers/ex12.tex 7 X answers/ex13.lis 1 X answers/ex13.tex 10 X answers/ex14.lis 1 X answers/ex14.tex 7 X answers/ex15.lis 1 X answers/ex15.tex 7 X answers/ex16.lis 1 X answers/ex16.tex 9 X answers/generate.lis 1 X answers/hi01.lis 1 X answers/hi02.lis 1 X answers/hi03.lis 1 X answers/hi04.lis 1 X answers/hi05.lis 1 X answers/hi06.lis 1 X answers/hi07.lis 1 X answers/hi08.lis 1 X answers/hi09.lis 1 X answers/hi10.lis 1 X answers/pr01.lis 6 X answers/pr02.lis 3 X answers/pr03.lis 6 X answers/pr04.lis 11 X answers/pr05.lis 13 X answers/pr06.lis 11 X answers/pr07.lis 10 X answers/pr08.lis 15 X answers/pr09.lis 16 X answers/pr10.lis 5 X answers/sc01.lis 1 X answers/sc02.lis 2 X answers/sc03.lis 2 X answers/sc04.lis 2 X answers/sc05.lis 2 X answers/sc06.lis 2 X answers/sc07.lis 4 X answers/sc08.lis 2 X answers/sc09.lis 3 X answers/sc10.lis 14 X answers/sc11.lis 12 X answers/sc12.lis 2 X answers/sc13.lis 8 X answers/sc14.lis 12 X answers/sc15.lis 10 X answers/sc16.lis 10 X answers/sc17.lis 6 X answers/sc18.lis 5 X answers/sc19.lis 2 X answers/sc20.lis 2 X answers/sc21.lis 10 X answers/sc22.lis 3 X answers/sc23.lis 4 X answers/sc24.lis 3 X answers/sc25.lis 2 X answers/sc26.lis 2 X answers/sc27.lis 3 X answers/sc28.lis 6 X answers/sc29.lis 3 X answers/tg01.lis 1 X answers/tg02.lis 1 X answers/tg03.lis 1 X answers/tg04.lis 1 X answers/tg05.lis 1 X answers/tg06.lis 1 X answers/tg07.lis 1 X answers/tg08.lis 1 X answers/tg09.lis 1 X answers/wv01.lis 1 X answers/wv01.tex 6 X answers/wv02.lis 1 X answers/wv02.tex 9 X answers/wv03.lis 1 X answers/wv03.tex 11 X answers/wv04.lis 1 X answers/wv04.tex 8 X answers/wv05.lis 1 X answers/wv05.tex 8 X answers/wv06.lis 1 X answers/wv06.tex 8 X hackman 1 X hackman/h_ch0.tex 3 X hackman/h_ch1.tex 14 X hackman/h_ch2.tex 9 X hackman/h_ch3.tex 12 X hackman/h_ch4.tex 9 X hackman/h_cha.tex 11 X hackman/h_manual.aux 3 X hackman/h_manual.idx 4 X hackman/h_manual.log 3 X hackman/h_manual.sin 4 X hackman/h_manual.tex 4 X hackman/h_manual.toc 2 X results 1 X scripts 1 X scripts/0license.txt 1 X scripts/master.fws 4 X scripts/test_gen.fws 1 X scripts/test_l.fws 1 X scripts/test_ld.fws 1 X scripts/test_lo.fws 1 X scripts/test_lo2.fws 1 X scripts/test_lot.fws 1 X scripts/test_lt.fws 1 X sources 1 X sources/Makefile 1 X sources/analyse.c 5 X sources/analyse.h 2 X sources/as.c 2 X sources/as.h 3 X sources/clock.c 2 X sources/clock.h 3 X sources/command.c 18 X sources/command.h 2 X sources/data.c 2 X sources/data.h 12 X sources/dump.c 12 X sources/dump.h 2 X sources/environ.h 5 X sources/help.c 13 X sources/help.h 4 X sources/help_gnu.c 3 X sources/help_gnu.ctx 11 X sources/help_gnu.h 2 X sources/help_gnu.txt 9 X sources/list.c 4 X sources/list.h 5 X sources/lister.c 5 X sources/lister.h 2 X sources/machin.c 5 X sources/machin.h 6 X sources/main.c 2 X sources/mapper.c 8 X sources/mapper.h 2 X sources/memory.c 6 X sources/memory.h 3 X sources/misc.c 3 X sources/misc.h 3 X sources/option.c 7 X sources/option.h 3 X sources/parser.c 15 X sources/parser.h 2 X sources/scanner.c 17 X sources/scanner.h 2 X sources/section.c 2 X sources/section.h 3 X sources/style.h 6 X sources/table.c 7 X sources/table.h 4 X sources/tangle.c 9 X sources/tangle.h 2 X sources/texhead.c 3 X sources/texhead.ctx 7 X sources/texhead.h 3 X sources/texhead.tex 5 X sources/weave.c 13 X sources/weave.h 2 X sources/writfile.c 4 X sources/writfile.h 5 X tests 1 X tests/0license.txt 1 X tests/an01.fw 1 X tests/an02.fw 1 X tests/an03.fw 1 X tests/an04.fw 1 X tests/ex01.fw 1 X tests/ex02.fw 1 X tests/ex03.fw 1 X tests/ex04.fw 1 X tests/ex05.fw 1 X tests/ex06.fw 1 X tests/ex07.fw 1 X tests/ex08.fw 1 X tests/ex09.fw 1 X tests/ex09a.fwi 1 X tests/ex10.fw 1 X tests/ex10a.fwi 1 X tests/ex11.fw 1 X tests/ex12.fw 1 X tests/ex13.fw 1 X tests/ex14.fw 1 X tests/ex15.fw 1 X tests/ex16.fw 2 X tests/generate.fw 2 X tests/hi01.fw 1 X tests/hi02.fw 1 X tests/hi03.fw 1 X tests/hi04.fw 1 X tests/hi05.fw 1 X tests/hi06.fw 1 X tests/hi07.fw 1 X tests/hi08.fw 1 X tests/hi09.fw 2 X tests/hi10.fw 2 X tests/pr01.fw 1 X tests/pr02.fw 1 X tests/pr03.fw 1 X tests/pr04.fw 1 X tests/pr05.fw 1 X tests/pr06.fw 1 X tests/pr07.fw 1 X tests/pr08.fw 2 X tests/pr09.fw 2 X tests/pr10.fw 1 X tests/sc01_note.fw 1 X tests/sc02.fw 1 X tests/sc03.fw 1 X tests/sc04.fw 1 X tests/sc05.fw 1 X tests/sc06.fw 1 X tests/sc07.fw 1 X tests/sc08.fw 1 X tests/sc09.fw 1 X tests/sc10.fw 2 X tests/sc11.fw 2 X tests/sc12.fw 1 X tests/sc13.fw 1 X tests/sc13a.fwi 1 X tests/sc13b.fwi 1 X tests/sc13c.fwi 1 X tests/sc13d.fwi 1 X tests/sc13e.fwi 1 X tests/sc13f.fwi 1 X tests/sc14.fw 1 X tests/sc15.fw 1 X tests/sc15a.fwi 1 X tests/sc16.fw 1 X tests/sc17.fw 1 X tests/sc18.fw 1 X tests/sc19.fw 1 X tests/sc20.fw 1 X tests/sc21.fw 1 X tests/sc22.fw 1 X tests/sc23.fw 1 X tests/sc24.fw 1 X tests/sc25.fw 1 X tests/sc26.fw 1 X tests/sc27.fw 1 X tests/sc28.fw 1 X tests/sc29.fw 1 X tests/tg01.fw 1 X tests/tg02.fw 1 X tests/tg03.fw 1 X tests/tg04.fw 1 X tests/tg05.fw 1 X tests/tg06.fw 1 X tests/tg07.fw 1 X tests/tg08.fw 1 X tests/tg08a.fwi 1 X tests/tg09.fw 1 X tests/wv01.fw 1 X tests/wv02.fw 1 X tests/wv03.fw 1 X tests/wv04.fw 1 X tests/wv05.fw 1 X tests/wv06.fw 1 X userman 1 X userman/u_ch0.tex 4 X userman/u_ch1.tex 19 X userman/u_ch2.tex 16 X userman/u_ch3.tex 20 X userman/u_ch4.tex 8 X userman/u_ch5.tex 8 X userman/u_cha.tex 4 X userman/u_manual.aux 10 X userman/u_manual.idx 14 X userman/u_manual.log 2 X userman/u_manual.sin 13 X userman/u_manual.tex 4 X userman/u_manual.toc 5 END_OF_FILE if test 9383 -ne `wc -c <'MANIFEST'`; then echo shar: \"'MANIFEST'\" unpacked with wrong size! fi # end of 'MANIFEST' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(86 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' to understand this, read 0readme.txt. X to build this, go to "sources" and type "make" END_OF_FILE if test 86 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test ! -d 'admin' ; then echo shar: Creating directory \"'admin'\" mkdir 'admin' fi if test -f 'admin/0readme.txt' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'admin/0readme.txt'\" else echo shar: Extracting \"'admin/0readme.txt'\" \(461 characters\) sed "s/^X//" >'admin/0readme.txt' <<'END_OF_FILE' X XFUNNELWEB INSTALLATION X====================== Chapter 4 of the FunnelWeb User's Manual contains full installation instructions for FunnelWeb in LaTeX format. Ideally you should print out the entire FunnelWeb User's Manual and then read the installation chapter for installation instructions. The LaTeX files for the User's Manual are in fwdir/userman/ X If you are in a hurry, print out fwdir/userman/u_ch4.tex in text form and follow the instructions within. X END_OF_FILE if test 461 -ne `wc -c <'admin/0readme.txt'`; then echo shar: \"'admin/0readme.txt'\" unpacked with wrong size! fi # end of 'admin/0readme.txt' fi if test -f 'admin/ad.txt' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'admin/ad.txt'\" else echo shar: Extracting \"'admin/ad.txt'\" \(1332 characters\) sed "s/^X//" >'admin/ad.txt' <<'END_OF_FILE' X ANNOUNCING FUNNELWEB X==================== Author : Ross Williams (ross@spam.adelaide.edu.au). Date : 27-May-1992. X XFunnelWeb is a production-quality literate-programming tool that emphasises simplicity and reliability. It provides a macro facility, and assists in the production of typeset documentation. FunnelWeb runs on most popular machines X(Sun, VAX, Mac, PC) and its highly portable source code in C is freely available under a GNU license. X XFeatures: X + Provides a simple macro preprocessor facility. X + Assists in the generation of typeset documentation. X + Runs on Sun, VMS VAX, Macintosh, and PC. X + Portable C source code distributed under GNU licence. X + Comprehensive user's manual (115 pages). X + Input programming language independent. X + Allows complete control over the output text. X + Regression test suite with over 200 tests. X - Requires TeX to produce typeset documentation. X - Typesets program code using TT font only. X How to Obtain FunnelWeb X----------------------- XFunnelWeb can be obtained by anonymous FTP from: X Machine : sirius.itd.adelaide.edu.au [IP=129.127.40.3]. Directory: ~pub/funnelweb/ (or a directory of similar name). X It is not clear at the time of writing whether FunnelWeb will be presented as a TAR file or as a directory tree or both. X X---- END_OF_FILE if test 1332 -ne `wc -c <'admin/ad.txt'`; then echo shar: \"'admin/ad.txt'\" unpacked with wrong size! fi # end of 'admin/ad.txt' fi if test -f 'admin/fixeols.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'admin/fixeols.fws'\" else echo shar: Extracting \"'admin/fixeols.fws'\" \(1286 characters\) sed "s/^X//" >'admin/fixeols.fws' <<'END_OF_FILE' X! This scrip is useful for cleaning up the source code if you X! already have a working version of FunnelWeb. X trace on define 1 "slartibartfast:funnelweb:funnelweb-2:sources:" X fixeols $1analyse.h fixeols $1analyse.c fixeols $1as.h fixeols $1as.c fixeols $1clock.h fixeols $1clock.c fixeols $1command.h fixeols $1command.c fixeols $1data.h fixeols $1data.c fixeols $1dump.h fixeols $1dump.c fixeols $1environ.h fixeols $1help.h fixeols $1help.c fixeols $1help_gnu.h fixeols $1help_gnu.c fixeols $1help_gnu.txt fixeols $1help_gnu.ctx fixeols $1list.h fixeols $1list.c fixeols $1lister.h fixeols $1lister.c fixeols $1machin.h fixeols $1machin.c fixeols $1main.c fixeols $1mapper.h fixeols $1mapper.c fixeols $1memory.h fixeols $1memory.c fixeols $1misc.h fixeols $1misc.c fixeols $1option.h fixeols $1option.c fixeols $1parser.h fixeols $1parser.c fixeols $1scanner.h fixeols $1scanner.c fixeols $1section.h fixeols $1section.c fixeols $1style.h fixeols $1table.h fixeols $1table.c fixeols $1tangle.h fixeols $1tangle.c fixeols $1texhead.h fixeols $1texhead.c fixeols $1texhead.ctx fixeols $1texhead.tex fixeols $1weave.h fixeols $1weave.c fixeols $1writfile.h fixeols $1writfile.c X X!Now for the test scripts. fixeols $1master.fws X!The other scripts are cleaned just before they are run. END_OF_FILE if test 1286 -ne `wc -c <'admin/fixeols.fws'`; then echo shar: \"'admin/fixeols.fws'\" unpacked with wrong size! fi # end of 'admin/fixeols.fws' fi if test -f 'admin/makescript' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'admin/makescript'\" else echo shar: Extracting \"'admin/makescript'\" \(120 characters\) sed "s/^X//" >'admin/makescript' <<'END_OF_FILE' X#!/bin/csh X# Choose betwen GNU C (gcc), or the default C (cc) on your system. gcc -o fw -g -Wall *.c X# X#cc -o fw -g *.c END_OF_FILE if test 120 -ne `wc -c <'admin/makescript'`; then echo shar: \"'admin/makescript'\" unpacked with wrong size! fi # end of 'admin/makescript' fi if test ! -d 'answers' ; then echo shar: Creating directory \"'answers'\" mkdir 'answers' fi if test -f 'answers/0license.txt' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/0license.txt'\" else echo shar: Extracting \"'answers/0license.txt'\" \(1290 characters\) sed "s/^X//" >'answers/0license.txt' <<'END_OF_FILE' X XFUNNNELWEB COPYRIGHT X==================== XFunnelWeb is a literate-programming macro preprocessor. X The files in this directory are: X Copyright (C) 1992 Ross N. Williams. X X Ross N. Williams X ross@spam.adelaide.edu.au X 16 Lerwick Avenue, Hazelwood Park 5066, Australia. X This program is free software; you can redistribute it and/or modify it under the terms of Version 2 of the GNU General Public License as published by the Free Software Foundation. X This program is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2 of the GNU General Public License for more details. X You should have received a copy of Version 2 of the GNU General Public License along with this program. If not, you can FTP the license from prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X Section 2a of the license requires that all changes to this file be recorded prominently in this file. Please record all changes here. X Programmers: X RNW Ross N. Williams ross@spam.adelaide.edu.au X Changes: X 07-May-1992 RNW Program prepared for release under GNU GPL V2. X X############################################################################### X END_OF_FILE if test 1290 -ne `wc -c <'answers/0license.txt'`; then echo shar: \"'answers/0license.txt'\" unpacked with wrong size! fi # end of 'answers/0license.txt' fi if test -f 'answers/an01.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/an01.lis'\" else echo shar: Extracting \"'answers/an01.lis'\" \(327 characters\) sed "s/^X//" >'answers/an01.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X XE: No macros defined. XE: No output files specified. X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X There were 2 Errors. END_OF_FILE if test 327 -ne `wc -c <'answers/an01.lis'`; then echo shar: \"'answers/an01.lis'\" unpacked with wrong size! fi # end of 'answers/an01.lis' fi if test -f 'answers/an02.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/an02.lis'\" else echo shar: Extracting \"'answers/an02.lis'\" \(303 characters\) sed "s/^X//" >'answers/an02.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X XE: No output files specified. X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X There was 1 Error. END_OF_FILE if test 303 -ne `wc -c <'answers/an02.lis'`; then echo shar: \"'answers/an02.lis'\" unpacked with wrong size! fi # end of 'answers/an02.lis' fi if test -f 'answers/an04.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/an04.lis'\" else echo shar: Extracting \"'answers/an04.lis'\" \(1044 characters\) sed "s/^X//" >'answers/an04.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X XE: No output files specified. X Global Local| Input File X------------+------------------------------------------------------------------- X 1 1| AN04: Test document list checks. X 2 2| X 3 3| 1. Test for sections with no names. X 4 4| X 5 5| @A@ X 6 6| @$@@Z@{@} X 7 7| X 8 8| @A@ X 9 9| X 10 10| @A X 11 11| @$@@Z@{@} X 12 12| X 13 13| @A This section has no name and no macro to inherit one from. X Error|.^This section has no name. X |.^You can give it one explicitly (As in @A@) or implicitly by X |.^defining a macro (whose name will be inherited) within the section. X 14 14| X | X------------+------------------------------------------------------------------- X There were 2 Errors. END_OF_FILE if test 1044 -ne `wc -c <'answers/an04.lis'`; then echo shar: \"'answers/an04.lis'\" unpacked with wrong size! fi # end of 'answers/an04.lis' fi if test -f 'answers/ex01.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex01.lis'\" else echo shar: Extracting \"'answers/ex01.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex01.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex01.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex01.lis'`; then echo shar: \"'answers/ex01.lis'\" unpacked with wrong size! fi # end of 'answers/ex01.lis' fi if test -f 'answers/ex02.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex02.lis'\" else echo shar: Extracting \"'answers/ex02.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex02.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex02.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex02.lis'`; then echo shar: \"'answers/ex02.lis'\" unpacked with wrong size! fi # end of 'answers/ex02.lis' fi if test -f 'answers/ex03.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex03.lis'\" else echo shar: Extracting \"'answers/ex03.lis'\" \(1516 characters\) sed "s/^X//" >'answers/ex03.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X 1 1| EX03: An example containing errors to do with the number of times X 2 2| that macros are called. X 3 3| X 4 4| @O@==@{@- X 5 5| @ X 6 6| @ X 7 7| @
X 8 8| @} X 9 9| X 10 10| @$@
==@{@- X 11 11| main() X 12 12| { X 13 13| doit(); X 14 14| } X 15 15| @} X 16 16| X 17 17| @$@==@{@- X Error|.^This macro is never used (and has no @Z). X 18 18| void doit() X 19 19| { X 20 20| int i; X 21 21| for (i=0;i<10;i++) X 22 22| { X 23 23| @ X 24 24| @ X 25 25| } X 26 26| }@} X 27 27| X 28 28| @$@==@{@- X Error|.^This macro is used more than once (and has no @M). X 29 29| printf("Hello World!"); X 30 30| printf("\n");@} X 31 31| X 32 32| @$@==@{scanf@} X Error|.^This macro is never used (and has no @Z). X 33 33| X 34 34| @$@==@{@- X Error|.^This macro is used more than once (and has no @M). X 35 35| #include X 36 36| #include @} X | X------------+------------------------------------------------------------------- X There were 4 Errors. END_OF_FILE if test 1516 -ne `wc -c <'answers/ex03.lis'`; then echo shar: \"'answers/ex03.lis'\" unpacked with wrong size! fi # end of 'answers/ex03.lis' fi if test -f 'answers/ex04.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex04.lis'\" else echo shar: Extracting \"'answers/ex04.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex04.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex04.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex04.lis'`; then echo shar: \"'answers/ex04.lis'\" unpacked with wrong size! fi # end of 'answers/ex04.lis' fi if test -f 'answers/ex05.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex05.lis'\" else echo shar: Extracting \"'answers/ex05.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex05.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex05.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex05.lis'`; then echo shar: \"'answers/ex05.lis'\" unpacked with wrong size! fi # end of 'answers/ex05.lis' fi if test -f 'answers/ex06.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex06.lis'\" else echo shar: Extracting \"'answers/ex06.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex06.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex06.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex06.lis'`; then echo shar: \"'answers/ex06.lis'\" unpacked with wrong size! fi # end of 'answers/ex06.lis' fi if test -f 'answers/ex07.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex07.lis'\" else echo shar: Extracting \"'answers/ex07.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex07.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex07.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex07.lis'`; then echo shar: \"'answers/ex07.lis'\" unpacked with wrong size! fi # end of 'answers/ex07.lis' fi if test -f 'answers/ex08.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex08.lis'\" else echo shar: Extracting \"'answers/ex08.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex08.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex08.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex08.lis'`; then echo shar: \"'answers/ex08.lis'\" unpacked with wrong size! fi # end of 'answers/ex08.lis' fi if test -f 'answers/ex09.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex09.lis'\" else echo shar: Extracting \"'answers/ex09.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex09.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex09.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex09.lis'`; then echo shar: \"'answers/ex09.lis'\" unpacked with wrong size! fi # end of 'answers/ex09.lis' fi if test -f 'answers/ex10.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex10.lis'\" else echo shar: Extracting \"'answers/ex10.lis'\" \(308 characters\) sed "s/^X//" >'answers/ex10.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex10.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/ex10.lis'`; then echo shar: \"'answers/ex10.lis'\" unpacked with wrong size! fi # end of 'answers/ex10.lis' fi if test -f 'answers/ex11.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex11.lis'\" else echo shar: Extracting \"'answers/ex11.lis'\" \(313 characters\) sed "s/^X//" >'answers/ex11.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/ex11.lis'`; then echo shar: \"'answers/ex11.lis'\" unpacked with wrong size! fi # end of 'answers/ex11.lis' fi if test -f 'answers/ex12.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex12.lis'\" else echo shar: Extracting \"'answers/ex12.lis'\" \(313 characters\) sed "s/^X//" >'answers/ex12.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/ex12.lis'`; then echo shar: \"'answers/ex12.lis'\" unpacked with wrong size! fi # end of 'answers/ex12.lis' fi if test -f 'answers/ex13.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex13.lis'\" else echo shar: Extracting \"'answers/ex13.lis'\" \(313 characters\) sed "s/^X//" >'answers/ex13.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/ex13.lis'`; then echo shar: \"'answers/ex13.lis'\" unpacked with wrong size! fi # end of 'answers/ex13.lis' fi if test -f 'answers/ex14.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex14.lis'\" else echo shar: Extracting \"'answers/ex14.lis'\" \(313 characters\) sed "s/^X//" >'answers/ex14.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/ex14.lis'`; then echo shar: \"'answers/ex14.lis'\" unpacked with wrong size! fi # end of 'answers/ex14.lis' fi if test -f 'answers/ex15.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex15.lis'\" else echo shar: Extracting \"'answers/ex15.lis'\" \(313 characters\) sed "s/^X//" >'answers/ex15.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/ex15.lis'`; then echo shar: \"'answers/ex15.lis'\" unpacked with wrong size! fi # end of 'answers/ex15.lis' fi if test -f 'answers/ex16.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/ex16.lis'\" else echo shar: Extracting \"'answers/ex16.lis'\" \(341 characters\) sed "s/^X//" >'answers/ex16.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed ex16.out. Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 341 -ne `wc -c <'answers/ex16.lis'`; then echo shar: \"'answers/ex16.lis'\" unpacked with wrong size! fi # end of 'answers/ex16.lis' fi if test -f 'answers/generate.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/generate.lis'\" else echo shar: Extracting \"'answers/generate.lis'\" \(390 characters\) sed "s/^X//" >'answers/generate.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed sc06.fw. Tangle: Completed sc08.fw. Tangle: Completed sc09.fw. Tangle: Completed sc13e.fwi. X SUCCESS: No diagnostics. END_OF_FILE if test 390 -ne `wc -c <'answers/generate.lis'`; then echo shar: \"'answers/generate.lis'\" unpacked with wrong size! fi # end of 'answers/generate.lis' fi if test -f 'answers/hi01.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi01.lis'\" else echo shar: Extracting \"'answers/hi01.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi01.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi01.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi01.lis'`; then echo shar: \"'answers/hi01.lis'\" unpacked with wrong size! fi # end of 'answers/hi01.lis' fi if test -f 'answers/hi02.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi02.lis'\" else echo shar: Extracting \"'answers/hi02.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi02.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi02.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi02.lis'`; then echo shar: \"'answers/hi02.lis'\" unpacked with wrong size! fi # end of 'answers/hi02.lis' fi if test -f 'answers/hi03.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi03.lis'\" else echo shar: Extracting \"'answers/hi03.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi03.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi03.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi03.lis'`; then echo shar: \"'answers/hi03.lis'\" unpacked with wrong size! fi # end of 'answers/hi03.lis' fi if test -f 'answers/hi04.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi04.lis'\" else echo shar: Extracting \"'answers/hi04.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi04.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi04.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi04.lis'`; then echo shar: \"'answers/hi04.lis'\" unpacked with wrong size! fi # end of 'answers/hi04.lis' fi if test -f 'answers/hi05.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi05.lis'\" else echo shar: Extracting \"'answers/hi05.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi05.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi05.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi05.lis'`; then echo shar: \"'answers/hi05.lis'\" unpacked with wrong size! fi # end of 'answers/hi05.lis' fi if test -f 'answers/hi06.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi06.lis'\" else echo shar: Extracting \"'answers/hi06.lis'\" \(338 characters\) sed "s/^X//" >'answers/hi06.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi06a.out. Tangle: Completed hi06b.out. X SUCCESS: No diagnostics. END_OF_FILE if test 338 -ne `wc -c <'answers/hi06.lis'`; then echo shar: \"'answers/hi06.lis'\" unpacked with wrong size! fi # end of 'answers/hi06.lis' fi if test -f 'answers/hi07.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi07.lis'\" else echo shar: Extracting \"'answers/hi07.lis'\" \(338 characters\) sed "s/^X//" >'answers/hi07.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi07a.out. Tangle: Completed hi07b.out. X SUCCESS: No diagnostics. END_OF_FILE if test 338 -ne `wc -c <'answers/hi07.lis'`; then echo shar: \"'answers/hi07.lis'\" unpacked with wrong size! fi # end of 'answers/hi07.lis' fi if test -f 'answers/hi08.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi08.lis'\" else echo shar: Extracting \"'answers/hi08.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi08.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi08.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi08.lis'`; then echo shar: \"'answers/hi08.lis'\" unpacked with wrong size! fi # end of 'answers/hi08.lis' fi if test -f 'answers/hi09.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi09.lis'\" else echo shar: Extracting \"'answers/hi09.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi09.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi09.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi09.lis'`; then echo shar: \"'answers/hi09.lis'\" unpacked with wrong size! fi # end of 'answers/hi09.lis' fi if test -f 'answers/hi10.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/hi10.lis'\" else echo shar: Extracting \"'answers/hi10.lis'\" \(308 characters\) sed "s/^X//" >'answers/hi10.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed hi10.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/hi10.lis'`; then echo shar: \"'answers/hi10.lis'\" unpacked with wrong size! fi # end of 'answers/hi10.lis' fi if test -f 'answers/sc01.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/sc01.lis'\" else echo shar: Extracting \"'answers/sc01.lis'\" \(1128 characters\) sed "s/^X//" >'answers/sc01.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X S: Error opening input file "<>". X X=========================== Start of LINE LIST DUMP ============================ X Globl Local| Text X-----------+-------------------------------------------------------------------- X00001 00001| <010> X-----------+-------------------------------------------------------------------- Globl Local| Text X X============================ End of LINE LIST DUMP ============================= X X X=========================== Start of TOKEN LIST DUMP =========================== X Summary: There are 1 tokens in the token list. X Line[Column]: Token Description X------------------------------- X X0001[01]: End Of File. X============================ End of TOKEN LIST DUMP ============================ X Macro table dump skipped (Parser was not invoked). Document list dump skipped (Parser was not invoked). X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X There was 1 Severe error. END_OF_FILE if test 1128 -ne `wc -c <'answers/sc01.lis'`; then echo shar: \"'answers/sc01.lis'\" unpacked with wrong size! fi # end of 'answers/sc01.lis' fi if test -f 'answers/tg01.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg01.lis'\" else echo shar: Extracting \"'answers/tg01.lis'\" \(304 characters\) sed "s/^X//" >'answers/tg01.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed .out. X SUCCESS: No diagnostics. END_OF_FILE if test 304 -ne `wc -c <'answers/tg01.lis'`; then echo shar: \"'answers/tg01.lis'\" unpacked with wrong size! fi # end of 'answers/tg01.lis' fi if test -f 'answers/tg02.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg02.lis'\" else echo shar: Extracting \"'answers/tg02.lis'\" \(308 characters\) sed "s/^X//" >'answers/tg02.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed tg02.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/tg02.lis'`; then echo shar: \"'answers/tg02.lis'\" unpacked with wrong size! fi # end of 'answers/tg02.lis' fi if test -f 'answers/tg03.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg03.lis'\" else echo shar: Extracting \"'answers/tg03.lis'\" \(308 characters\) sed "s/^X//" >'answers/tg03.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed tg03.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/tg03.lis'`; then echo shar: \"'answers/tg03.lis'\" unpacked with wrong size! fi # end of 'answers/tg03.lis' fi if test -f 'answers/tg04.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg04.lis'\" else echo shar: Extracting \"'answers/tg04.lis'\" \(308 characters\) sed "s/^X//" >'answers/tg04.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed tg04.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/tg04.lis'`; then echo shar: \"'answers/tg04.lis'\" unpacked with wrong size! fi # end of 'answers/tg04.lis' fi if test -f 'answers/tg05.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg05.lis'\" else echo shar: Extracting \"'answers/tg05.lis'\" \(553 characters\) sed "s/^X//" >'answers/tg05.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X XE: Product file line is too long (line 4 of "<>"). X Product file line length limit is 80 characters. X Note: You can change the limit by specifying. X @p maximum_output_line_length = X somewhere in the input file. Tangle: Completed tg05.out. X There was 1 Error. END_OF_FILE if test 553 -ne `wc -c <'answers/tg05.lis'`; then echo shar: \"'answers/tg05.lis'\" unpacked with wrong size! fi # end of 'answers/tg05.lis' fi if test -f 'answers/tg06.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg06.lis'\" else echo shar: Extracting \"'answers/tg06.lis'\" \(553 characters\) sed "s/^X//" >'answers/tg06.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X XE: Product file line is too long (line 6 of "<>"). X Product file line length limit is 60 characters. X Note: You can change the limit by specifying. X @p maximum_output_line_length = X somewhere in the input file. Tangle: Completed tg06.out. X There was 1 Error. END_OF_FILE if test 553 -ne `wc -c <'answers/tg06.lis'`; then echo shar: \"'answers/tg06.lis'\" unpacked with wrong size! fi # end of 'answers/tg06.lis' fi if test -f 'answers/tg07.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg07.lis'\" else echo shar: Extracting \"'answers/tg07.lis'\" \(308 characters\) sed "s/^X//" >'answers/tg07.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed tg07.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/tg07.lis'`; then echo shar: \"'answers/tg07.lis'\" unpacked with wrong size! fi # end of 'answers/tg07.lis' fi if test -f 'answers/tg08.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg08.lis'\" else echo shar: Extracting \"'answers/tg08.lis'\" \(308 characters\) sed "s/^X//" >'answers/tg08.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed tg08.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/tg08.lis'`; then echo shar: \"'answers/tg08.lis'\" unpacked with wrong size! fi # end of 'answers/tg08.lis' fi if test -f 'answers/tg09.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/tg09.lis'\" else echo shar: Extracting \"'answers/tg09.lis'\" \(308 characters\) sed "s/^X//" >'answers/tg09.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Tangle: Completed tg09.out. X SUCCESS: No diagnostics. END_OF_FILE if test 308 -ne `wc -c <'answers/tg09.lis'`; then echo shar: \"'answers/tg09.lis'\" unpacked with wrong size! fi # end of 'answers/tg09.lis' fi if test -f 'answers/wv01.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/wv01.lis'\" else echo shar: Extracting \"'answers/wv01.lis'\" \(313 characters\) sed "s/^X//" >'answers/wv01.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/wv01.lis'`; then echo shar: \"'answers/wv01.lis'\" unpacked with wrong size! fi # end of 'answers/wv01.lis' fi if test -f 'answers/wv02.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/wv02.lis'\" else echo shar: Extracting \"'answers/wv02.lis'\" \(313 characters\) sed "s/^X//" >'answers/wv02.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/wv02.lis'`; then echo shar: \"'answers/wv02.lis'\" unpacked with wrong size! fi # end of 'answers/wv02.lis' fi if test -f 'answers/wv03.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/wv03.lis'\" else echo shar: Extracting \"'answers/wv03.lis'\" \(313 characters\) sed "s/^X//" >'answers/wv03.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/wv03.lis'`; then echo shar: \"'answers/wv03.lis'\" unpacked with wrong size! fi # end of 'answers/wv03.lis' fi if test -f 'answers/wv04.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/wv04.lis'\" else echo shar: Extracting \"'answers/wv04.lis'\" \(313 characters\) sed "s/^X//" >'answers/wv04.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/wv04.lis'`; then echo shar: \"'answers/wv04.lis'\" unpacked with wrong size! fi # end of 'answers/wv04.lis' fi if test -f 'answers/wv05.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/wv05.lis'\" else echo shar: Extracting \"'answers/wv05.lis'\" \(313 characters\) sed "s/^X//" >'answers/wv05.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/wv05.lis'`; then echo shar: \"'answers/wv05.lis'\" unpacked with wrong size! fi # end of 'answers/wv05.lis' fi if test -f 'answers/wv06.lis' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'answers/wv06.lis'\" else echo shar: Extracting \"'answers/wv06.lis'\" \(313 characters\) sed "s/^X//" >'answers/wv06.lis' <<'END_OF_FILE' XFUNNELWEB LISTING FILE X====================== X X Global Local| Input File X------------+------------------------------------------------------------------- X................. X------------+------------------------------------------------------------------- X Weave: Completed <>. X SUCCESS: No diagnostics. END_OF_FILE if test 313 -ne `wc -c <'answers/wv06.lis'`; then echo shar: \"'answers/wv06.lis'\" unpacked with wrong size! fi # end of 'answers/wv06.lis' fi if test ! -d 'hackman' ; then echo shar: Creating directory \"'hackman'\" mkdir 'hackman' fi if test ! -d 'results' ; then echo shar: Creating directory \"'results'\" mkdir 'results' fi if test ! -d 'scripts' ; then echo shar: Creating directory \"'scripts'\" mkdir 'scripts' fi if test -f 'scripts/0license.txt' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/0license.txt'\" else echo shar: Extracting \"'scripts/0license.txt'\" \(1290 characters\) sed "s/^X//" >'scripts/0license.txt' <<'END_OF_FILE' X XFUNNNELWEB COPYRIGHT X==================== XFunnelWeb is a literate-programming macro preprocessor. X The files in this directory are: X Copyright (C) 1992 Ross N. Williams. X X Ross N. Williams X ross@spam.adelaide.edu.au X 16 Lerwick Avenue, Hazelwood Park 5066, Australia. X This program is free software; you can redistribute it and/or modify it under the terms of Version 2 of the GNU General Public License as published by the Free Software Foundation. X This program is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2 of the GNU General Public License for more details. X You should have received a copy of Version 2 of the GNU General Public License along with this program. If not, you can FTP the license from prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X Section 2a of the license requires that all changes to this file be recorded prominently in this file. Please record all changes here. X Programmers: X RNW Ross N. Williams ross@spam.adelaide.edu.au X Changes: X 07-May-1992 RNW Program prepared for release under GNU GPL V2. X X############################################################################### X END_OF_FILE if test 1290 -ne `wc -c <'scripts/0license.txt'`; then echo shar: \"'scripts/0license.txt'\" unpacked with wrong size! fi # end of 'scripts/0license.txt' fi if test -f 'scripts/test_gen.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_gen.fws'\" else echo shar: Extracting \"'scripts/test_gen.fws'\" \(1554 characters\) sed "s/^X//" >'scripts/test_gen.fws' <<'END_OF_FILE' X!===================================================== X! X! Generate Tricky Input Files X! --------------------------- X! This script processes the "generate.fw" test file which not only tests X! FunnelWeb to some extent, but also generates a few ".fw" input test X! files which are tested later on in the test suite process. X! X! Inputs: None. X! Outputs: X! Listing file. X! Product files (which appear in the input $I directory as .fw files). X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Basic Test and Generate Some Tricky Input Files" X X! Delete any previous output files. eneo $Isc06.fw eneo $Isc08.fw eneo $Isc09.fw eneo $Isc13e.fwi eneo $Ogenerate.log eneo $Ogenerate.lis eneo $Ogenerate.tex eneo $Ogenerate.out X X! Check input and answer files. exists $Igenerate.fw exists $Agenerate.lis absent $Agenerate.out absent $Agenerate.tex X X! Clean input and answer files. fixeols $Igenerate.fw fixeols $Agenerate.lis X X! Perform the actual FunnelWeb run. fw $Igenerate.fw +L$Ogenerate.lis +O$I X X! Ensure that the correct files were generated. absent $Ogenerate.log absent $Ogenerate.tex absent $Ogenerate.out exists $Ogenerate.lis exists $Isc06.fw exists $Isc08.fw exists $Isc09.fw exists $Isc13e.fwi X X! Compare the listing file with the correct answer. X! We can't check the other files because of the original problem this whole X! generation script is designed to solve! diff $Ogenerate.lis $Agenerate.lis $D X X!======================================================= END_OF_FILE if test 1554 -ne `wc -c <'scripts/test_gen.fws'`; then echo shar: \"'scripts/test_gen.fws'\" unpacked with wrong size! fi # end of 'scripts/test_gen.fws' fi if test -f 'scripts/test_l.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_l.fws'\" else echo shar: Extracting \"'scripts/test_l.fws'\" \(1186 characters\) sed "s/^X//" >'scripts/test_l.fws' <<'END_OF_FILE' X!======================================================= X! X! Test With A Plain Listing File X! ------------------------------ X! Inputs: X! $1 = Name of the .fw file to be tested (e.g. $1="sc01"). X! $I = Directory containing .fw files. X! $A = Directory containing Answer files. X! $O = Directory to place Result files. X! $D = Name of the differences file. X! Outputs: X! Listing file. X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Performing Test $1" X X! Delete any previous output files. eneo $O$1.log eneo $O$1.lis eneo $O$1.tex eneo $O$1.out X X! Check input and answer files. exists $I$1.fw exists $A$1.lis absent $A$1.out absent $A$1.tex X X! Clean input and answer files. fixeols $I$1.fw fixeols $A$1.lis X X! Perform the actual FunnelWeb run. X! Tolerate means "don't abort on warning, error, or severe". tolerate fw $I$1.fw +l$O$1.lis X X! Ensure that only a listing file was generated. absent $O$1.log absent $O$1.tex absent $O$1.out exists $O$1.lis X X! Compare the listing file with the answer file. diff $O$1.lis $A$1.lis $D X X!========================================================= END_OF_FILE if test 1186 -ne `wc -c <'scripts/test_l.fws'`; then echo shar: \"'scripts/test_l.fws'\" unpacked with wrong size! fi # end of 'scripts/test_l.fws' fi if test -f 'scripts/test_ld.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_ld.fws'\" else echo shar: Extracting \"'scripts/test_ld.fws'\" \(1481 characters\) sed "s/^X//" >'scripts/test_ld.fws' <<'END_OF_FILE' X!====================================================== X! X! Test With Listing File and Scanner Dumps X! ---------------------------------------- X! Inputs: X! $1 = Name of the .fw file to be tested (e.g. $1="sc01"). X! $2 = Empty ("") or "!" to suppress FIXEOLing and existence check X! of input file. X! $I = Directory containing .fw files. X! $A = Directory containing Answer files. X! $O = Directory to place Result files. X! $D = Name of the differences file. X! Outputs: X! Listing file containing dumps. X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Performing Test $1" X X! Delete any previous output files. eneo $O$1.log eneo $O$1.lis eneo $O$1.tex eneo $O$1.out X X! Check input and answer files. X$2exists $I$1.fw exists $A$1.lis absent $A$1.out absent $A$1.tex X X! Clean input and answer files. X$2fixeols $I$1.fw fixeols $A$1.lis X X! Perform the actual FunnelWeb run. X! Tolerate means "don't abort on warning, error, or severe". X! Options: X! +b1 Dump input file map. X! +b2 Dump line list. X! +b3 Dump token list. X! +b4 Dump macro table. X! +b5 Dump document list. tolerate fw $I$1.fw +l$O$1.lis +b12345 X X! Ensure that only a listing file was generated. absent $O$1.log absent $O$1.tex absent $O$1.out exists $O$1.lis X X! Compare the listing file with the answer file. diff $O$1.lis $A$1.lis $D X X!======================================================== END_OF_FILE if test 1481 -ne `wc -c <'scripts/test_ld.fws'`; then echo shar: \"'scripts/test_ld.fws'\" unpacked with wrong size! fi # end of 'scripts/test_ld.fws' fi if test -f 'scripts/test_lo.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_lo.fws'\" else echo shar: Extracting \"'scripts/test_lo.fws'\" \(1284 characters\) sed "s/^X//" >'scripts/test_lo.fws' <<'END_OF_FILE' X!====================================================== X! X! Test With Listing File and Product File X! --------------------------------------- X! Inputs: X! $1 = Name of the .fw file to be tested (e.g. $1="sc01"). X! $I = Directory containing .fw files. X! $A = Directory containing Answer files. X! $O = Directory to place Result files. X! $D = Name of the differences file. X! Outputs: X! Listing file. X! Product file. X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Performing Test $1" X X! Delete any previous output files. eneo $O$1.log eneo $O$1.lis eneo $O$1.tex eneo $O$1.out X X! Check input and answer files. exists $I$1.fw exists $A$1.lis exists $A$1.out absent $A$1.tex X X! Clean input and answer files. fixeols $I$1.fw fixeols $A$1.lis fixeols $A$1.out X X! Perform the actual FunnelWeb run. X! Tolerate means "don't abort on warning, error, or severe". tolerate fw $I$1.fw +l$O$1.lis +o$O$1.out X X! Ensure that only a listing and an product file were generated. absent $O$1.log absent $O$1.tex exists $O$1.lis exists $O$1.out X X! Compare the results with the answers. diff $O$1.lis $A$1.lis $D diff $O$1.out $A$1.out $D X X!======================================================== END_OF_FILE if test 1284 -ne `wc -c <'scripts/test_lo.fws'`; then echo shar: \"'scripts/test_lo.fws'\" unpacked with wrong size! fi # end of 'scripts/test_lo.fws' fi if test -f 'scripts/test_lo2.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_lo2.fws'\" else echo shar: Extracting \"'scripts/test_lo2.fws'\" \(1422 characters\) sed "s/^X//" >'scripts/test_lo2.fws' <<'END_OF_FILE' X!===================================================== X! X! Test With Listing File and Two Product Files X! -------------------------------------------- X! Inputs: X! $1 = Name of the .fw file to be tested (e.g. $1="sc01"). X! $I = Directory containing .fw files. X! $A = Directory containing Answer files. X! $O = Directory to place Result files. X! $D = Name of the differences file. X! Outputs: X! Listing file. X! Product file a. X! Product file b. X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Performing Test $1" X X! Delete any previous output files. eneo $O$1.log eneo $O$1.lis eneo $O$1.tex eneo $O$1a.out eneo $O$1b.out X X! Check input and answer files. exists $I$1.fw exists $A$1.lis exists $A$1a.out exists $A$1b.out absent $A$1.tex X X! Clean input and answer files. fixeols $I$1.fw fixeols $A$1.lis fixeols $A$1a.out fixeols $A$1b.out X X! Perform the actual FunnelWeb run. X! Tolerate means "don't abort on warning, error, or severe". tolerate fw $I$1.fw +l$O$1.lis +o$O$1.out X X! Ensure that only a listing and two product files were generated. absent $O$1.log absent $O$1.tex exists $O$1.lis exists $O$1a.out exists $O$1b.out X X! Compare the results with the answers. diff $O$1.lis $A$1.lis $D diff $O$1a.out $A$1a.out $D diff $O$1b.out $A$1b.out $D X X!======================================================= END_OF_FILE if test 1422 -ne `wc -c <'scripts/test_lo2.fws'`; then echo shar: \"'scripts/test_lo2.fws'\" unpacked with wrong size! fi # end of 'scripts/test_lo2.fws' fi if test -f 'scripts/test_lot.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_lot.fws'\" else echo shar: Extracting \"'scripts/test_lot.fws'\" \(1374 characters\) sed "s/^X//" >'scripts/test_lot.fws' <<'END_OF_FILE' X!===================================================== X! X! Test With Listing File and Product File and Typeset File X! -------------------------------------------------------- X! Inputs: X! $1 = Name of the .fw file to be tested (e.g. $1="sc01"). X! $I = Directory containing .fw files. X! $A = Directory containing Answer files. X! $O = Directory to place Result files. X! $D = Name of the differences file. X! Outputs: X! Listing file. X! Product file. X! Typeset file. X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Performing Test $1" X X! Delete any previous output files. eneo $O$1.log eneo $O$1.lis eneo $O$1.tex eneo $O$1.out X X! Check input and answer files. exists $I$1.fw exists $A$1.lis exists $A$1.tex exists $A$1.out X X! Clean input and answer files. fixeols $I$1.fw fixeols $A$1.lis fixeols $A$1.tex fixeols $A$1.out X X! Perform the actual FunnelWeb run. X! Tolerate means "don't abort on warning, error, or severe". tolerate fw $I$1.fw +l$O$1.lis +o$O +t$O$1.tex X X! Ensure that all three output files were generated. absent $O$1.log exists $O$1.out exists $O$1.lis exists $O$1.tex X X! Compare the results with the answers. diff $O$1.lis $A$1.lis $D diff $O$1.out $A$1.out $D diff $O$1.tex $A$1.tex $D X X!======================================================= END_OF_FILE if test 1374 -ne `wc -c <'scripts/test_lot.fws'`; then echo shar: \"'scripts/test_lot.fws'\" unpacked with wrong size! fi # end of 'scripts/test_lot.fws' fi if test -f 'scripts/test_lt.fws' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'scripts/test_lt.fws'\" else echo shar: Extracting \"'scripts/test_lt.fws'\" \(1283 characters\) sed "s/^X//" >'scripts/test_lt.fws' <<'END_OF_FILE' X!====================================================== X! X! Test With Listing File and Typeset File X! --------------------------------------- X! Inputs: X! $1 = Name of the .fw file to be tested (e.g. $1="sc01"). X! $I = Directory containing .fw files. X! $A = Directory containing Answer files. X! $O = Directory to place Result files. X! $D = Name of the differences file. X! Outputs: X! Listing file. X! Typeset file. X! Appendage to differences file. X X! Announce this test. write "" write "" writeu "Performing Test $1" X X! Delete any previous output files. eneo $O$1.log eneo $O$1.lis eneo $O$1.tex eneo $O$1.out X X! Check input and answer files. exists $I$1.fw exists $A$1.lis exists $A$1.tex absent $A$1.out X X! Clean input and answer files. fixeols $I$1.fw fixeols $A$1.lis fixeols $A$1.tex X X! Perform the actual FunnelWeb run. X! Tolerate means "don't abort on warning, error, or severe". tolerate fw $I$1.fw +l$O$1.lis +t$O$1.tex X X! Ensure that only a listing and a typeset file were generated. absent $O$1.log absent $O$1.out exists $O$1.lis exists $O$1.tex X X! Compare the results with the answers. diff $O$1.lis $A$1.lis $D diff $O$1.tex $A$1.tex $D X X!======================================================== END_OF_FILE if test 1283 -ne `wc -c <'scripts/test_lt.fws'`; then echo shar: \"'scripts/test_lt.fws'\" unpacked with wrong size! fi # end of 'scripts/test_lt.fws' fi if test ! -d 'sources' ; then echo shar: Creating directory \"'sources'\" mkdir 'sources' fi if test -f 'sources/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/Makefile'\" else echo shar: Extracting \"'sources/Makefile'\" \(639 characters\) sed "s/^X//" >'sources/Makefile' <<'END_OF_FILE' DESTROOT= DESTBIN=$(DESTROOT)/usr/local/bin X SRC = analyse.c as.c clock.c command.c data.c dump.c help.c help_gnu.c list.c \ X lister.c machin.c main.c mapper.c memory.c misc.c option.c parser.c \ X scanner.c section.c table.c tangle.c texhead.c weave.c writfile.c X OBJ = analyse.o as.o clock.o command.o data.o dump.o help.o help_gnu.o list.o \ X lister.o machin.o main.o mapper.o memory.o misc.o option.o parser.o \ X scanner.o section.o table.o tangle.o texhead.o weave.o writfile.o X fw: $(OBJ) X $(CC) -o fw $(OBJ) X clean: X rm -f $(OBJ) fw X rm -f *.BAK *.CKP *~ #*# X rm -f core a.out trace.dump X install: fw X install -s -c fw $(DESTBIN)/fw END_OF_FILE if test 639 -ne `wc -c <'sources/Makefile'`; then echo shar: \"'sources/Makefile'\" unpacked with wrong size! fi # end of 'sources/Makefile' fi if test ! -d 'tests' ; then echo shar: Creating directory \"'tests'\" mkdir 'tests' fi if test -f 'tests/0license.txt' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/0license.txt'\" else echo shar: Extracting \"'tests/0license.txt'\" \(1290 characters\) sed "s/^X//" >'tests/0license.txt' <<'END_OF_FILE' X XFUNNNELWEB COPYRIGHT X==================== XFunnelWeb is a literate-programming macro preprocessor. X The files in this directory are: X Copyright (C) 1992 Ross N. Williams. X X Ross N. Williams X ross@spam.adelaide.edu.au X 16 Lerwick Avenue, Hazelwood Park 5066, Australia. X This program is free software; you can redistribute it and/or modify it under the terms of Version 2 of the GNU General Public License as published by the Free Software Foundation. X This program is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2 of the GNU General Public License for more details. X You should have received a copy of Version 2 of the GNU General Public License along with this program. If not, you can FTP the license from prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X Section 2a of the license requires that all changes to this file be recorded prominently in this file. Please record all changes here. X Programmers: X RNW Ross N. Williams ross@spam.adelaide.edu.au X Changes: X 07-May-1992 RNW Program prepared for release under GNU GPL V2. X X############################################################################### X END_OF_FILE if test 1290 -ne `wc -c <'tests/0license.txt'`; then echo shar: \"'tests/0license.txt'\" unpacked with wrong size! fi # end of 'tests/0license.txt' fi if test -f 'tests/an01.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/an01.fw'\" else echo shar: Extracting \"'tests/an01.fw'\" \(35 characters\) sed "s/^X//" >'tests/an01.fw' <<'END_OF_FILE' AN01: Test with no macros at all. X END_OF_FILE if test 35 -ne `wc -c <'tests/an01.fw'`; then echo shar: \"'tests/an01.fw'\" unpacked with wrong size! fi # end of 'tests/an01.fw' fi if test -f 'tests/an02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/an02.fw'\" else echo shar: Extracting \"'tests/an02.fw'\" \(65 characters\) sed "s/^X//" >'tests/an02.fw' <<'END_OF_FILE' AN02: Test with one macro but no output file. X X@$@@Z@{@} END_OF_FILE if test 65 -ne `wc -c <'tests/an02.fw'`; then echo shar: \"'tests/an02.fw'\" unpacked with wrong size! fi # end of 'tests/an02.fw' fi if test -f 'tests/an03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/an03.fw'\" else echo shar: Extracting \"'tests/an03.fw'\" \(1011 characters\) sed "s/^X//" >'tests/an03.fw' <<'END_OF_FILE' AN03: Test semantics checking of macros. X XFirst define some macros to call. X@$@@Z@M@{@} X@$@@(@1@)@Z@M@{@} X@$@@(@2@)@Z@M@{@} X X1. Test call to undefined macro. X@$@@Z==@{@@} X X2. Test calls with wrong number of parameters. X@$@@Z==@{ X@ X@@(@) X@@(@,@) X@ X@@(@) X@@(Walrus@,@) X@@(Sloth@) X@} X X3. Test call to file macro. X@O@@{@} X@$@@Z@{@@} X X4. Test macro never used and has Z. X@$@@Z@{@} X X5. Test macro often used and has M. X@$@@M@{@} X@$@@Z@{@@@} X X6. Test macro never used and no Z X@$@@{@} X X7. Test multiply used and no M. X@$@@{@} X@$@@Z@{@@@} X X8. Test directly recursive macro. X@$@@{@@} X X9. Test indirectly recursive macro. X@$@@M@{@@} X@$@@{@@} X X10. Test callers of recursive macros. X@$@@Z@{@@} END_OF_FILE if test 1011 -ne `wc -c <'tests/an03.fw'`; then echo shar: \"'tests/an03.fw'\" unpacked with wrong size! fi # end of 'tests/an03.fw' fi if test -f 'tests/an04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/an04.fw'\" else echo shar: Extracting \"'tests/an04.fw'\" \(326 characters\) sed "s/^X//" >'tests/an04.fw' <<'END_OF_FILE' AN04: Test document list checks. X X1. Test for sections with no names. X X@A@ X@$@@Z@{@} X X@A@ X X@A X@$@@Z@{@} X X@A This section has no name and no macro to inherit one from. X END_OF_FILE if test 326 -ne `wc -c <'tests/an04.fw'`; then echo shar: \"'tests/an04.fw'\" unpacked with wrong size! fi # end of 'tests/an04.fw' fi if test -f 'tests/ex01.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex01.fw'\" else echo shar: Extracting \"'tests/ex01.fw'\" \(69 characters\) sed "s/^X//" >'tests/ex01.fw' <<'END_OF_FILE' XEX01: A simple hello world program. X X@O@@{Hello World@+@} END_OF_FILE if test 69 -ne `wc -c <'tests/ex01.fw'`; then echo shar: \"'tests/ex01.fw'\" unpacked with wrong size! fi # end of 'tests/ex01.fw' fi if test -f 'tests/ex02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex02.fw'\" else echo shar: Extracting \"'tests/ex02.fw'\" \(169 characters\) sed "s/^X//" >'tests/ex02.fw' <<'END_OF_FILE' XEX02: An example that demonstrates the use of simple macros. X X@O@@{@@+@} X X@$@==@{Hello@} X@$@==@{World@} X X@$@==@{@ @@} END_OF_FILE if test 169 -ne `wc -c <'tests/ex02.fw'`; then echo shar: \"'tests/ex02.fw'\" unpacked with wrong size! fi # end of 'tests/ex02.fw' fi if test -f 'tests/ex03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex03.fw'\" else echo shar: Extracting \"'tests/ex03.fw'\" \(481 characters\) sed "s/^X//" >'tests/ex03.fw' <<'END_OF_FILE' XEX03: An example containing errors to do with the number of times X that macros are called. X X@O@==@{@- X@ X@ X@
X@} X X@$@
==@{@- main() X{ X doit(); X} X@} X X@$@==@{@- void doit() X{ X int i; X for (i=0;i<10;i++) X { X @ X @ X } X}@} X X@$@==@{@- printf("Hello World!"); printf("\n");@} X X@$@==@{scanf@} X X@$@==@{@- X#include X#include @} END_OF_FILE if test 481 -ne `wc -c <'tests/ex03.fw'`; then echo shar: \"'tests/ex03.fw'\" unpacked with wrong size! fi # end of 'tests/ex03.fw' fi if test -f 'tests/ex04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex04.fw'\" else echo shar: Extracting \"'tests/ex04.fw'\" \(433 characters\) sed "s/^X//" >'tests/ex04.fw' <<'END_OF_FILE' XEX04: The same as EX03, but with the errors fixed. X X@O@==@{@- X@ X@ X@
X@} X X@$@
==@{@- main() X{ X doit(); X} X@} X X@$@==@{@- void doit() X{ X int i; X for (i=0;i<10;i++) X { X @ X @ X } X}@} X X@$@@M==@{@- printf("Hello World!"); printf("\n");@} X X@$@@Z==@{scanf@} X X@$@==@{@- X#include X#include @} END_OF_FILE if test 433 -ne `wc -c <'tests/ex04.fw'`; then echo shar: \"'tests/ex04.fw'\" unpacked with wrong size! fi # end of 'tests/ex04.fw' fi if test -f 'tests/ex05.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex05.fw'\" else echo shar: Extracting \"'tests/ex05.fw'\" \(1137 characters\) sed "s/^X//" >'tests/ex05.fw' <<'END_OF_FILE' XEX05: An example in which Pascal program text is rearranged to form an ADT. X This example demonstrates the use of additive macros. X X@!****************************** X X@O@==@{@- program adt(input,output); X@ X@ X@ begin startproc; end. X@} X X@!****************************** X X@$@+=@{@- type buffer_type = X record X length : integer; X buf : array[1..100] of char; X end; X@} X X@$@+=@{@- bigbuf : buffer_type; X@} X X@$@+=@{@- procedure buf_init (var b : buffer_type ) {Body of buf_init} procedure buf_add (var b : buffer_type; ch : char) {Body of buf_add} procedure buf_get (var b : buffer_type; var ch : char) {Body of buf_get} X@} X X@!****************************** X X@$@+=@{@- type complex_type = record r,i : real; end; X@} X X@$@+=@{@- procedure cm_set (var c: complex_type; a,b: real) {Body of cm_set} procedure cm_add (a,b: complex_type; var c: complex_type) {Body of cm_add} X{Other procedures and functions} X@} X X@!****************************** X X{...more pieces of program...} X X@!****************************** END_OF_FILE if test 1137 -ne `wc -c <'tests/ex05.fw'`; then echo shar: \"'tests/ex05.fw'\" unpacked with wrong size! fi # end of 'tests/ex05.fw' fi if test -f 'tests/ex06.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex06.fw'\" else echo shar: Extracting \"'tests/ex06.fw'\" \(1271 characters\) sed "s/^X//" >'tests/ex06.fw' <<'END_OF_FILE' XEX06: An example in which Pascal program text is rearranged to form an ADT. X This example achieves what EX05 does, but without additive macros. X X@!****************************** X X@O@==@{@- program adt(input,output); X@ X@ X@ begin startproc; end. X@} X X@$@==@{@- X@ X@ X@} X X@$@==@{@- X@ X@} X X@$@==@{@- X@ X@ X@} X X@!****************************** X X@$@==@{@- type buffer_type = record X length : integer; X buf : array[1..100] of char; X end; X@} X X@$@==@{@- bigbuf : buffer_type; X@} X X@$@==@{@- procedure buf_init(var b : buffer_type) {Body of buf_init} procedure buf_add(var b : buffer_type; ch : char) {Body of buf_add} procedure buf_get(var b : buffer_type; var ch : char) {Body of buf_get} X@} X X@!****************************** X X@$@==@{@- type complex_type = record r,i : real; end; X@} X X@$@+=@{@- procedure cm_set(var c: complex_type; a,b : real) {Body of cm_set} procedure cm_add(a,b : complex_type; var c: complex_type) {Body of cm_add} X{Other procedures and functions} X@} END_OF_FILE if test 1271 -ne `wc -c <'tests/ex06.fw'`; then echo shar: \"'tests/ex06.fw'\" unpacked with wrong size! fi # end of 'tests/ex06.fw' fi if test -f 'tests/ex07.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex07.fw'\" else echo shar: Extracting \"'tests/ex07.fw'\" \(718 characters\) sed "s/^X//" >'tests/ex07.fw' <<'END_OF_FILE' XEX07: This example demonstrates the use of macro parameters. X X@O@==@{@@+@} X X@$@@(@3@)@M==@{@- X@1 while (@2) X { X @3 X } X@} X X@$@==@{ X X@! First form of actual parameters without whitespace and double quotes. X@@(x=1;@,x<=10@,printf("X=%u\n",x);@) X X@! Second form of actual parameters. The double quotes allow non-active X@! whitespace that helps to lay out the actual parameters neatly. X@! This call is functionally identical to the one above. X@@( X @"x:=1;@" @, X @"x<=10@" @, X @"printf("X=%u\n",x);@" @) X X@! The two forms can be mixed in a single call. X@@(x=1;@,x<=10@, X @"printf("X=%u\n",x);@" @) X X@} END_OF_FILE if test 718 -ne `wc -c <'tests/ex07.fw'`; then echo shar: \"'tests/ex07.fw'\" unpacked with wrong size! fi # end of 'tests/ex07.fw' fi if test -f 'tests/ex08.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex08.fw'\" else echo shar: Extracting \"'tests/ex08.fw'\" \(1334 characters\) sed "s/^X//" >'tests/ex08.fw' <<'END_OF_FILE' XEX08: This example demonstrates the use of parameterized macros. X X@O@==@{@- The Twelve Bugs of Christmas X---------------------------- X@@(@"first@" @,@<1@>@) X@@(@"second@" @,@<2@>@) X@@(@"third@" @,@<3@>@) X@@(@"fourth@" @,@<4@>@) X@@(@"fifth@" @,@<5@>@) X@@(@"sixth@" @,@<6@>@) X@@(@"seventh@" @,@<7@>@) X@@(@"eighth@" @,@<8@>@) X@@(@"ninth@" @,@<9@>@) X@@(@"tenth@" @,@@) X@@(@"eleventh@" @,@@) X@@(@"twelfth@" @,@@) X This song appeared in the internet newsgroup rec.humor.funny on 24-Dec-1991. It was contributed by Pat Scannell (scannell@@darkstar.ma30.bull.com). X@} X X@$@@(@2@)@M==@{@- XFor the @1 bug of Christmas, my manager said to me X @2 X@} X X@$@<1@>@M==@{See if they can do it again.@} X@$@<2@>@M==@{Ask them how they did it and@+@<1@>@} X@$@<3@>@M==@{Try to reproduce it@+@<2@>@} X@$@<4@>@M==@{Run with the debugger@+@<3@>@} X@$@<5@>@M==@{Ask for a dump@+@<4@>@} X@$@<6@>@M==@{Reinstall the software@+@<5@>@} X@$@<7@>@M==@{Say they need an upgrade@+@<6@>@} X@$@<8@>@M==@{Find a way around it@+@<7@>@} X@$@<9@>@M==@{Blame it on the hardware@+@<8@>@} X@$@@M==@{Change the documentation@+@<9@>@} X@$@@M==@{Say it's not supported@+@@} X@$@@M==@{Tell them it's a feature@+@@} END_OF_FILE if test 1334 -ne `wc -c <'tests/ex08.fw'`; then echo shar: \"'tests/ex08.fw'\" unpacked with wrong size! fi # end of 'tests/ex08.fw' fi if test -f 'tests/ex09.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex09.fw'\" else echo shar: Extracting \"'tests/ex09.fw'\" \(210 characters\) sed "s/^X//" >'tests/ex09.fw' <<'END_OF_FILE' XEX09: This example demonstrates the use of include files. X X@O@==@{ I like to go shooting, it's a whole lot of fun, X@i ex09a.fwi Cos they know my camera isn't loaded with lead. X- RNW, 04-Jan-1991. X@} END_OF_FILE if test 210 -ne `wc -c <'tests/ex09.fw'`; then echo shar: \"'tests/ex09.fw'\" unpacked with wrong size! fi # end of 'tests/ex09.fw' fi if test -f 'tests/ex09a.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex09a.fwi'\" else echo shar: Extracting \"'tests/ex09a.fwi'\" \(85 characters\) sed "s/^X//" >'tests/ex09a.fwi' <<'END_OF_FILE' X'Cos I shoot with a camera instead of a gun. The animals flock to be petted and fed, END_OF_FILE if test 85 -ne `wc -c <'tests/ex09a.fwi'`; then echo shar: \"'tests/ex09a.fwi'\" unpacked with wrong size! fi # end of 'tests/ex09a.fwi' fi if test -f 'tests/ex10.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex10.fw'\" else echo shar: Extracting \"'tests/ex10.fw'\" \(150 characters\) sed "s/^X//" >'tests/ex10.fw' <<'END_OF_FILE' XEX10: This example demonstrates the level at which include files are included. X X@O@==@{@- X@i ex10a This is the text of the sloth macro. X@} END_OF_FILE if test 150 -ne `wc -c <'tests/ex10.fw'`; then echo shar: \"'tests/ex10.fw'\" unpacked with wrong size! fi # end of 'tests/ex10.fw' fi if test -f 'tests/ex10a.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex10a.fwi'\" else echo shar: Extracting \"'tests/ex10a.fwi'\" \(32 characters\) sed "s/^X//" >'tests/ex10a.fwi' <<'END_OF_FILE' X@ X@} X X@$@==@{@- END_OF_FILE if test 32 -ne `wc -c <'tests/ex10a.fwi'`; then echo shar: \"'tests/ex10a.fwi'\" unpacked with wrong size! fi # end of 'tests/ex10a.fwi' fi if test -f 'tests/ex11.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex11.fw'\" else echo shar: Extracting \"'tests/ex11.fw'\" \(665 characters\) sed "s/^X//" >'tests/ex11.fw' <<'END_OF_FILE' XEX11: This example shows how FunnelWeb typesets macros, typesetter commands X and free text. X You are reading some free text before the macro. Free text can consist of any text (not containing the FunnelWeb special character) including typesetter commands such as $, %, #, and \TeX{} which will be typeset to appear exactly as they do in the input file! Look out! Here comes a macro! X X@O@==@{@- This text is part of a macro definition. X@} X This is free text following the macro. This sentence contains two @{inline@} typesetter @/directives@/. Now here is a non-inline typesetting directive. X X@t new_page X This sentence will appear on the next page. END_OF_FILE if test 665 -ne `wc -c <'tests/ex11.fw'`; then echo shar: \"'tests/ex11.fw'\" unpacked with wrong size! fi # end of 'tests/ex11.fw' fi if test -f 'tests/ex12.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex12.fw'\" else echo shar: Extracting \"'tests/ex12.fw'\" \(499 characters\) sed "s/^X//" >'tests/ex12.fw' <<'END_OF_FILE' XEX12: This example gives some simple headings and demonstrates heading name X inheritance. X X@O@==@{dummy text@} X X@A@ X@B@ X@C@ X@C@ X@B@ X@C@ X@C@ X X@C This heading hasn't been given an explicit name, but will inherit the name \p{Save the rest of the world} from the macro definition below. X X@$@@Z==@{...@} END_OF_FILE if test 499 -ne `wc -c <'tests/ex12.fw'`; then echo shar: \"'tests/ex12.fw'\" unpacked with wrong size! fi # end of 'tests/ex12.fw' fi if test -f 'tests/ex13.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex13.fw'\" else echo shar: Extracting \"'tests/ex13.fw'\" \(1290 characters\) sed "s/^X//" >'tests/ex13.fw' <<'END_OF_FILE' XEX13: This example is used to generate typeset documentation which is X discussed in the tutorial in the FunnelWeb user's manual. X X X@A@ X X@t table_of_contents X X@A@ X The following macro contain comments that provide moral support in the output code. X X@$@@M==@{ X-- Shift to the left! X-- Shift to the right! X-- Pop up, push down! X-- Byte! Byte! Byte! X-- (From "The New Hacker's Dictionary"). X@} X The next macro is similar but is distributed throughout the program. X@$@+=@{@+-- Pointer to the left@+@} X X@A@ X X@B@ X@$@+=@{-- Pointer to the right@+@} X@$@@Z==@{type stack = record ... end;@} X X@B@ X@$@+=@{-- Hack that code@+@} X@$@@Z==@{@- procedure push(var b:stack; v:value); @ {...}@} X X@B@ X@$@+=@{-- Tight! Tight! Tight!@+@} X@$@@Z==@{@- procedure pop(var b:stack); @ {...}@} X X@B@ X@$@+=@{-- (RNW, 04-Jan-1991).@+@} X@$@@Z==@{@- procedure rough(var b:stack); @ {...}@} X X@O@==@{dummy@+@} END_OF_FILE if test 1290 -ne `wc -c <'tests/ex13.fw'`; then echo shar: \"'tests/ex13.fw'\" unpacked with wrong size! fi # end of 'tests/ex13.fw' fi if test -f 'tests/ex14.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex14.fw'\" else echo shar: Extracting \"'tests/ex14.fw'\" \(293 characters\) sed "s/^X//" >'tests/ex14.fw' <<'END_OF_FILE' XEX14: This example demonstrates the literal and emphasis typesetting constructs. X The following procedure @{put_sloth@} writes the @{sloth@} variable to the output file. Note: @/The output file must be opened for writing at this point or the program will crash!@/ X X@O@==@{dummy@+@} END_OF_FILE if test 293 -ne `wc -c <'tests/ex14.fw'`; then echo shar: \"'tests/ex14.fw'\" unpacked with wrong size! fi # end of 'tests/ex14.fw' fi if test -f 'tests/ex15.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/ex15.fw'\" else echo shar: Extracting \"'tests/ex15.fw'\" \(521 characters\) sed "s/^X//" >'tests/ex15.fw' <<'END_OF_FILE' XEX15: This example demonstrates some of FunnelWeb's generic typesetting X constructs. X X@t vskip 40 mm X@t title titlefont centre "Hairy Wombat" X@t title titlefont centre "Simulation" X@t vskip 10 mm X@t title smalltitlefont centre "A Program in Six Parts" X@t title smalltitlefont centre "Simulating the Life of Some Hairy Wombats" X@t vskip 20 mm X@t title normalfont left "By Zqitzypbuswapzra Ypongtatoslrtzz" X@t new_page X@t table_of_contents X@t new_page X X@A@
X@A@
X X@O@==@{Dummy@+@} END_OF_FILE if test 521 -ne `wc -c <'tests/ex15.fw'`; then echo shar: \"'tests/ex15.fw'\" unpacked with wrong size! fi # end of 'tests/ex15.fw' fi if test -f 'tests/hi01.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi01.fw'\" else echo shar: Extracting \"'tests/hi01.fw'\" \(291 characters\) sed "s/^X//" >'tests/hi01.fw' <<'END_OF_FILE' HI01: This example demonstrates a problem with managing end of line markers. X X@O@==@{ while the_walrus_is_sleepy do X begin X writeln('zzzzzzz'); X @ X writeln('Umpharumpha...'); X end; X@} X X@$@==@{ wake_up_the_walrus(the_walrus); X@} END_OF_FILE if test 291 -ne `wc -c <'tests/hi01.fw'`; then echo shar: \"'tests/hi01.fw'\" unpacked with wrong size! fi # end of 'tests/hi01.fw' fi if test -f 'tests/hi02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi02.fw'\" else echo shar: Extracting \"'tests/hi02.fw'\" \(794 characters\) sed "s/^X//" >'tests/hi02.fw' <<'END_OF_FILE' HI02: This example shows how FunnelWeb's macro facility can be used to X fudge conditionals. X X@O@==@{ X@ X@} X X@A@ X The following macro determines whether debug code will be included in the program. All lines of debug code commence with a call to this macro and so we can turn all that code on or off here by defining this macro to be either empty or the single-line comment symbol (\p{--}). Note the use of a quick macro name. X X@$@#D@M==@{@} @! Turns the debug code ON. X@! Use this definition to turn the debug code OFF: @$@#D==@{--@} X X X@$@==@{@- while sloth=walrus!!!!!!!"); X @#D assert(timer=timermax!!!"); X inc(sloth); end loop@} END_OF_FILE if test 794 -ne `wc -c <'tests/hi02.fw'`; then echo shar: \"'tests/hi02.fw'\" unpacked with wrong size! fi # end of 'tests/hi02.fw' fi if test -f 'tests/hi03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi03.fw'\" else echo shar: Extracting \"'tests/hi03.fw'\" \(779 characters\) sed "s/^X//" >'tests/hi03.fw' <<'END_OF_FILE' HI03: This example shows how FunnelWeb's macro facility can be used to X fudge conditionals. This method is different to HI02. X X@O@==@{ X@ X@} X X@A@ X The following macro determines whether debug code will be included in the program. All debug code is wrapped by a call to this macro and so we can turn all the debug code on or off here by defining this macro to be either empty or its parameter. X X@$@#D@(@1@)@M==@{@1@} @! Turns the debug code ON. X@! Use this definition to turn the debug code OFF: @$@#D@(@1@)==@{@} X X X X@$@==@{@- while sloth=walrus!!!!!!!"); X assert(timer=timermax!!!");@) X inc(sloth); end loop@} END_OF_FILE if test 779 -ne `wc -c <'tests/hi03.fw'`; then echo shar: \"'tests/hi03.fw'\" unpacked with wrong size! fi # end of 'tests/hi03.fw' fi if test -f 'tests/hi04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi04.fw'\" else echo shar: Extracting \"'tests/hi04.fw'\" \(821 characters\) sed "s/^X//" >'tests/hi04.fw' <<'END_OF_FILE' HI04: This example shows how FunnelWeb's macro facility can be used to X fudge a multi-way conditional. X X@O@==@{@
@} X X@A This module contains non-portable code that must execute on Hewlett Packard, Sun, and DEC workstations. The following FunnelWeb macro is defined to choose between these three. The first parameter is the HP code, the second is the Sun code, and the third is the DEC code. Whichever parameter constitutes the body of this macro determines which machine the code is being targetted for. X X@$@@(@3@)@M==@{@1@} @! Configure for HP. X X@$@
==@{@- X------- X@@( X@"get_command_line(comline)@" @, @! HP. X@"scan_command_line(128,comline);@" @, @! Sun. X@"dcl_get_command_line(comline,256);@" @) @! DEC. X X------- X@} END_OF_FILE if test 821 -ne `wc -c <'tests/hi04.fw'`; then echo shar: \"'tests/hi04.fw'\" unpacked with wrong size! fi # end of 'tests/hi04.fw' fi if test -f 'tests/hi05.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi05.fw'\" else echo shar: Extracting \"'tests/hi05.fw'\" \(537 characters\) sed "s/^X//" >'tests/hi05.fw' <<'END_OF_FILE' HI05: This example shows how FunnelWeb can be used to dissect a file. X X@O@==@{@- Unreadable Postscript code X@ Unreadable Postscript code X@ Unreadable Postscript code X@} X X@A This routine looks as if it does this, but really is does that, blah, blah blah. X X@$@==@{@- X/print { push pop pop push turn around and jump up and down and print it} def X@} X X@A This routine zaps the... X X@$@==@{@- X/zap { push pop pop push turn around and jump up and down and print it} def X@} X END_OF_FILE if test 537 -ne `wc -c <'tests/hi05.fw'`; then echo shar: \"'tests/hi05.fw'\" unpacked with wrong size! fi # end of 'tests/hi05.fw' fi if test -f 'tests/hi06.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi06.fw'\" else echo shar: Extracting \"'tests/hi06.fw'\" \(565 characters\) sed "s/^X//" >'tests/hi06.fw' <<'END_OF_FILE' HI06: This example shows how FunnelWeb can be used to allow compile time information sharing between two cooperating programs written in different programming languages. X X@A The following macro contains the temporary file name used to allow the two shellscripts to transfer each file to be printed. X X@$@@M==@{printme.txt@} X X@A Here are the scripts for the local VMS node and the remote UNIX node. X X@O@==@{@- DCL commands copy @ unixnode:: DCL commands X@} X X@O@==@{@- unix commands print @ unix commands X@} END_OF_FILE if test 565 -ne `wc -c <'tests/hi06.fw'`; then echo shar: \"'tests/hi06.fw'\" unpacked with wrong size! fi # end of 'tests/hi06.fw' fi if test -f 'tests/hi07.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi07.fw'\" else echo shar: Extracting \"'tests/hi07.fw'\" \(455 characters\) sed "s/^X//" >'tests/hi07.fw' <<'END_OF_FILE' HI07: This example demonstrates how FunnelWeb can be used to allow text sharing between documents. X X@O@==@{@@+@} X@O@==@{@@+@} X X@$@+=@{@@} X@$@+=@{@@} X@$@@M==@{First lump of text shared by both documents.@+@} X X@$@+=@{Text for first document@+@} X@$@+=@{Text for second document@+@} X X@$@+=@{@@} X@$@+=@{@@} X@$@@M==@{Second lump of text shared by both documents.@+@} END_OF_FILE if test 455 -ne `wc -c <'tests/hi07.fw'`; then echo shar: \"'tests/hi07.fw'\" unpacked with wrong size! fi # end of 'tests/hi07.fw' fi if test -f 'tests/hi08.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/hi08.fw'\" else echo shar: Extracting \"'tests/hi08.fw'\" \(805 characters\) sed "s/^X//" >'tests/hi08.fw' <<'END_OF_FILE' HI08: This example shows how parameterized macros can be used to choose X between alternative texts. X X@! Set the definition of @#D to X@! @1 to create the shareholders report. X@! @2 to create the customers report. X@$@#D@(@2@)@M==@{@1@} X X@O@==@{@- X1992 ANNUAL REPORT TO @#D@(Shareholders@,Customers@) X======================@#D@(============@,=========@) This has been a very good year for The Very Big Corporation of America. With your help, we have been able to successfully X@#D@(@"screw the customers for every cent they have@"@, X @"knock the shareholders into submission to bring you lower prices@"@). With gross earnings approaching six trillion dollars, we have been able to X@#D@(@"increase dividends@"@, X @"lower prices@"@). We expect to have an even better year next year. X@} END_OF_FILE if test 805 -ne `wc -c <'tests/hi08.fw'`; then echo shar: \"'tests/hi08.fw'\" unpacked with wrong size! fi # end of 'tests/hi08.fw' fi if test -f 'tests/pr01.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr01.fw'\" else echo shar: Extracting \"'tests/pr01.fw'\" \(646 characters\) sed "s/^X//" >'tests/pr01.fw' <<'END_OF_FILE' PR01: Test the inline typesetting features. X X1. First we test the legal use of the @{literal@} construct. X X2.Test @{@} (illegal). X@A@ X X3. Test the construct @{across X more than one line@}. X X4. Now we test the construct with non-text following it. X @{@@} X@A@ X @{ @> @} X@A@ X X5. Test the legal use of the @/emphasis@/ construct. X X6.Test @/@/ (illegal). X@A@ X X7. Test the construct @/across X more than one line@/. X X8. Now we test the construct with non-text following it. X @/@@/ X@A@ X @/ @< @/ X X X END_OF_FILE if test 646 -ne `wc -c <'tests/pr01.fw'`; then echo shar: \"'tests/pr01.fw'\" unpacked with wrong size! fi # end of 'tests/pr01.fw' fi if test -f 'tests/pr02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr02.fw'\" else echo shar: Extracting \"'tests/pr02.fw'\" \(293 characters\) sed "s/^X//" >'tests/pr02.fw' <<'END_OF_FILE' PR02: Test the parsing of typesetter directives. X X1. Test parsing of new page directive. X@t new_page X X2. Test parsing of table of contents directive. X@t table_of_contents X X3. Test parsing of vskip directive. X@t vskip 32 mm X X4. Test parsing of title directive. X@t title titlefont left "Sloth" X END_OF_FILE if test 293 -ne `wc -c <'tests/pr02.fw'`; then echo shar: \"'tests/pr02.fw'\" unpacked with wrong size! fi # end of 'tests/pr02.fw' fi if test -f 'tests/pr03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr03.fw'\" else echo shar: Extracting \"'tests/pr03.fw'\" \(547 characters\) sed "s/^X//" >'tests/pr03.fw' <<'END_OF_FILE' PR03: Test the parsing and semantics of sections. X X4. Test first section of document is not A. X@B@ X X1. Test section with no name. X@A This section has no name. X@$@@{Walrus@} X X2. Test section with a name X@A@ X X3. Test the entire hierarchy. X@A@ X@B@ X@C@ X@D@ X@E@ X X5. Test detection of discontinuity in levels. X@A@ X@C@ X@E@ X X@A@ X@B@ X@D@ END_OF_FILE if test 547 -ne `wc -c <'tests/pr03.fw'`; then echo shar: \"'tests/pr03.fw'\" unpacked with wrong size! fi # end of 'tests/pr03.fw' fi if test -f 'tests/pr04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr04.fw'\" else echo shar: Extracting \"'tests/pr04.fw'\" \(1111 characters\) sed "s/^X//" >'tests/pr04.fw' <<'END_OF_FILE' PR04: Test the definition of ordinary macros. X X1. Test an ordinary macro definition. X@$@@{The text of ordinary@} X X2. Test an ordinary definition using a quickname. X@$@#|@{The text of ordinary@} X X3. Test a name that includes EOL. X@$@@{And people who cross lions tend to get eaten.@} X@A@ X X4. Test the minimum length name (the empty name). X@$@<@>@{The empty macro name is quite legal in FunnelWeb.@} X X5. Test a name at the maximum name length limit (80). ONly the second of the two macros should generate an error. X@p maximum_input_line_length = 100 X@$@<12345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@} X@$@<123456789012345678901234567890123456789012345678901234567890123456789012345678901@>@{@} X@A@ X X6. Test names with all legal characters. There should be no errors. X@$@< !"#$%'()*+,-./0123456789:;<=>?@>@{@} X@$@@{@} X@$@@{@} X X7. Test a name that has inserted text sequences. X X@$@<@^D(065)@@@>==@{@} X X END_OF_FILE if test 1111 -ne `wc -c <'tests/pr04.fw'`; then echo shar: \"'tests/pr04.fw'\" unpacked with wrong size! fi # end of 'tests/pr04.fw' fi if test -f 'tests/pr05.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr05.fw'\" else echo shar: Extracting \"'tests/pr05.fw'\" \(997 characters\) sed "s/^X//" >'tests/pr05.fw' <<'END_OF_FILE' PR05: Test the parsing of formal parameter lists. X XFirst trip the parser so we don't get past the parser. X@> X X1. Test macro definition with no formal parameters. X@$@@{Slothtext@} X X2. Test macro definition with one formal parameter. X@$@@(@1@)@{Slothtext@} X X3. Test macro definition with many formal parameters. X@$@@(@2@)@{Slothtext@} X@$@@(@3@)@{Slothtext@} X@$@@(@4@)@{Slothtext@} X@$@@(@5@)@{Slothtext@} X@$@@(@6@)@{Slothtext@} X@$@@(@7@)@{Slothtext@} X@$@@(@8@)@{Slothtext@} X@$@@(@9@)@{Slothtext@} X X4. Test with syntax errors in the parameter list. X X@$@@(@+@9@)@{Slothtext@} X@A@ X X@$@@9@)@{Slothtext@} X@A@ X X@$@@(9@)@{Slothtext@} X@A@ X X@$@@9@)@{Slothtext@} X@A@ X X@$@@(@9@)@)@{Slothtext@} X@A@ X X X END_OF_FILE if test 997 -ne `wc -c <'tests/pr05.fw'`; then echo shar: \"'tests/pr05.fw'\" unpacked with wrong size! fi # end of 'tests/pr05.fw' fi if test -f 'tests/pr06.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr06.fw'\" else echo shar: Extracting \"'tests/pr06.fw'\" \(885 characters\) sed "s/^X//" >'tests/pr06.fw' <<'END_OF_FILE' PR06: Test the parsing on invocation number constraints. X Trip the parser so we don't get past it. X@> X X1. Test with no zero and no many. X@$@@{No zero and no many in this macro@} X X2. Test with a zero. X@$@@Z@{Can be called from 0 to 1 times.@} X X3. Test with a many. X@$@@M@{Can be called from 1 to infinity times.@} X X4. Test with a zero and a many. X@$@@Z@M@{Can be called from 0 to infinity times.@} X X5. Test with a zero and a many but out of order (should give error). X@$@@M@Z@{Oops.@} X@A@ X X6. Test with syntactic errors. X X@$@ @M @Z @{Oops.@} X@A@ X X@$@@Z@Z@{Oops.@} X@A@ X X@$@@{Oops.@} X@A@ X X@$@Z@{Oops.@} X@A@ X X@$@@ZM@{Oops.@} X@A@ X X END_OF_FILE if test 885 -ne `wc -c <'tests/pr06.fw'`; then echo shar: \"'tests/pr06.fw'\" unpacked with wrong size! fi # end of 'tests/pr06.fw' fi if test -f 'tests/pr07.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr07.fw'\" else echo shar: Extracting \"'tests/pr07.fw'\" \(878 characters\) sed "s/^X//" >'tests/pr07.fw' <<'END_OF_FILE' PR07: Test the parsing of == and += in macro definitions. X Trip the parser so we don't get any further. X@> X X1. Test with no equals. X@$@@{No equals in this macro definition.@} X X2. Test with ==. X@$@==@{No equals in this macro definition.@} X X3. Test with +=. X@$@+=@{No equals in this macro definition.@} X X4. Test with syntax errors. X X@$@++@{No equals in this macro definition.@} X@A@ X X@$@@+=@{No equals in this macro definition.@} X@A@ X X@$@+==+@{No equals in this macro definition.@} X@A@ X X@$@=+@{No equals in this macro definition.@} X@A@ X X@$@@=@=@{No equals in this macro definition.@} X@A@ X X@$@@+@=@{No equals in this macro definition.@} X@A@ X X X END_OF_FILE if test 878 -ne `wc -c <'tests/pr07.fw'`; then echo shar: \"'tests/pr07.fw'\" unpacked with wrong size! fi # end of 'tests/pr07.fw' fi if test -f 'tests/pr10.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/pr10.fw'\" else echo shar: Extracting \"'tests/pr10.fw'\" \(564 characters\) sed "s/^X//" >'tests/pr10.fw' <<'END_OF_FILE' PR10: Test syntactic error recovery. X X1. Test recovery at top parsing level. X@< X X@A@ X X2. Test recovery inside macro definition. X X@$@@>==@{ Walrus@} X X@$@==@{ X@ X X3. Test recovery inside actual parameter list in macro definition. X@$@==@{ X@@(@"aardvark@> X@} X@A@ X X4. Test EOF in the middle of a complicated construct. The following makes the end of the file looked chopped off, but it is actually intentional. X@$@==@{ X@@(@"aardva END_OF_FILE if test 564 -ne `wc -c <'tests/pr10.fw'`; then echo shar: \"'tests/pr10.fw'\" unpacked with wrong size! fi # end of 'tests/pr10.fw' fi if test -f 'tests/sc01_note.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc01_note.fw'\" else echo shar: Extracting \"'tests/sc01_note.fw'\" \(123 characters\) sed "s/^X//" >'tests/sc01_note.fw' <<'END_OF_FILE' SC01: The first test tests what happens when FunnelWeb cannot find the specified input file. And so the file cannot exist! END_OF_FILE if test 123 -ne `wc -c <'tests/sc01_note.fw'`; then echo shar: \"'tests/sc01_note.fw'\" unpacked with wrong size! fi # end of 'tests/sc01_note.fw' fi if test -f 'tests/sc02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc02.fw'\" else echo shar: Extracting \"'tests/sc02.fw'\" \(0 characters\) sed "s/^X//" >'tests/sc02.fw' <<'END_OF_FILE' END_OF_FILE if test 0 -ne `wc -c <'tests/sc02.fw'`; then echo shar: \"'tests/sc02.fw'\" unpacked with wrong size! fi # end of 'tests/sc02.fw' fi if test -f 'tests/sc03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc03.fw'\" else echo shar: Extracting \"'tests/sc03.fw'\" \(1 character\) sed "s/^X//" >'tests/sc03.fw' <<'END_OF_FILE' X END_OF_FILE if test 1 -ne `wc -c <'tests/sc03.fw'`; then echo shar: \"'tests/sc03.fw'\" unpacked with wrong size! fi # end of 'tests/sc03.fw' fi if test -f 'tests/sc04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc04.fw'\" else echo shar: Extracting \"'tests/sc04.fw'\" \(2 characters\) sed "s/^X//" >'tests/sc04.fw' <<'END_OF_FILE' X X END_OF_FILE if test 2 -ne `wc -c <'tests/sc04.fw'`; then echo shar: \"'tests/sc04.fw'\" unpacked with wrong size! fi # end of 'tests/sc04.fw' fi if test -f 'tests/sc05.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc05.fw'\" else echo shar: Extracting \"'tests/sc05.fw'\" \(67 characters\) sed "s/^X//" >'tests/sc05.fw' <<'END_OF_FILE' SC05: This input file contains a single line containing this text! END_OF_FILE if test 67 -ne `wc -c <'tests/sc05.fw'`; then echo shar: \"'tests/sc05.fw'\" unpacked with wrong size! fi # end of 'tests/sc05.fw' fi if test -f 'tests/sc06.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc06.fw'\" else echo shar: Extracting \"'tests/sc06.fw'\" \(141 characters\) sed "s/^X//" >'tests/sc06.fw' <<'END_OF_FILE' SC06: Test FunnelWeb on a file whose last line is not terminated properly with an end of line marker. X Here is the improper termination!---->END_OF_FILE if test 141 -ne `wc -c <'tests/sc06.fw'`; then echo shar: \"'tests/sc06.fw'\" unpacked with wrong size! fi # end of 'tests/sc06.fw' fi if test -f 'tests/sc07.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc07.fw'\" else echo shar: Extracting \"'tests/sc07.fw'\" \(964 characters\) sed "s/^X//" >'tests/sc07.fw' <<'END_OF_FILE' SC07: Processing of long lines. X SC07.1: Detection of a line longer than the default limit. X The default limit is 80 characters so we will test on either side of that: X 1 2 3 4 5 6 7 8 X12345678901234567890123456789012345678901234567890123456789012345678901234567890 The above should not trigger a "line too long error". But this line should!------ X SC07.3: Test the limit set at infinity. X X@p maximum_input_line_length = infinity X X 1 2 3 4 5 6 7 8 X12345678901234567890123456789012345678901234567890123456789012345678901234567890 The above should not trigger a "line too long error". Nor should this one!------- X SC07.3: Test the limit set lower. X X@p maximum_input_line_length = 50 X X 1 2 3 4 5 X12345678901234567890123456789012345678901234567890 No error for the above but this line will!--------- END_OF_FILE if test 964 -ne `wc -c <'tests/sc07.fw'`; then echo shar: \"'tests/sc07.fw'\" unpacked with wrong size! fi # end of 'tests/sc07.fw' fi if test -f 'tests/sc08.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc08.fw'\" else echo shar: Extracting \"'tests/sc08.fw'\" \(195 characters\) sed "s/^X//" >'tests/sc08.fw' <<'END_OF_FILE' SC08: Detection of trailing spaces. X This line has zero trailing spaces | This line has one trailing space | This line has two trailing spaces | This line has three trailing spaces | END_OF_FILE if test 195 -ne `wc -c <'tests/sc08.fw'`; then echo shar: \"'tests/sc08.fw'\" unpacked with wrong size! fi # end of 'tests/sc08.fw' fi if test -f 'tests/sc09.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc09.fw'\" else echo shar: Extracting \"'tests/sc09.fw'\" \(404 characters\) sed "s/^X//" >'tests/sc09.fw' <<'END_OF_FILE' SC09: Detection of control characters. X SC09.1 Test that control characters are detected and replaced by "?". SC09.2 Test non printable that has a mnemonic. X There is a tab between these two bars | | which should come out as "?". The above error message should contain the mnemonic "HT". X SC09.3 Test non printable that has no mnemonic. X There is a non-mnemonic control character between these bars |ê|. END_OF_FILE if test 404 -ne `wc -c <'tests/sc09.fw'`; then echo shar: \"'tests/sc09.fw'\" unpacked with wrong size! fi # end of 'tests/sc09.fw' fi if test -f 'tests/sc12.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc12.fw'\" else echo shar: Extracting \"'tests/sc12.fw'\" \(177 characters\) sed "s/^X//" >'tests/sc12.fw' <<'END_OF_FILE' SC12: Include file cannot be found. Test person: DONT create sc12a.inc. It is not supposed to exist! The following include should yield a "file not found error." X X@i sc12a.inc X END_OF_FILE if test 177 -ne `wc -c <'tests/sc12.fw'`; then echo shar: \"'tests/sc12.fw'\" unpacked with wrong size! fi # end of 'tests/sc12.fw' fi if test -f 'tests/sc13.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13.fw'\" else echo shar: Extracting \"'tests/sc13.fw'\" \(637 characters\) sed "s/^X//" >'tests/sc13.fw' <<'END_OF_FILE' SC13: Various kinds of include file. X X1. Include file is empty. Before include X@i sc13a After include X X2. Include file contains a single blank line. Before include X@i sc13b After include X X3. Include file contains two blank lines. Before include X@i sc13c After include X X4. Include file contains a single line with text on it. Before include X@i sc13d After include X X5. Include file's last line is not properly terminated. Before include X@i sc13e After include X X6. Include file is ordinary. Before include X@i sc13f After include X X7. Test upper case I and file extension inheritance. Before include X@I sc13f After include X XEnd of test File. END_OF_FILE if test 637 -ne `wc -c <'tests/sc13.fw'`; then echo shar: \"'tests/sc13.fw'\" unpacked with wrong size! fi # end of 'tests/sc13.fw' fi if test -f 'tests/sc13a.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13a.fwi'\" else echo shar: Extracting \"'tests/sc13a.fwi'\" \(0 characters\) sed "s/^X//" >'tests/sc13a.fwi' <<'END_OF_FILE' END_OF_FILE if test 0 -ne `wc -c <'tests/sc13a.fwi'`; then echo shar: \"'tests/sc13a.fwi'\" unpacked with wrong size! fi # end of 'tests/sc13a.fwi' fi if test -f 'tests/sc13b.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13b.fwi'\" else echo shar: Extracting \"'tests/sc13b.fwi'\" \(1 character\) sed "s/^X//" >'tests/sc13b.fwi' <<'END_OF_FILE' X END_OF_FILE if test 1 -ne `wc -c <'tests/sc13b.fwi'`; then echo shar: \"'tests/sc13b.fwi'\" unpacked with wrong size! fi # end of 'tests/sc13b.fwi' fi if test -f 'tests/sc13c.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13c.fwi'\" else echo shar: Extracting \"'tests/sc13c.fwi'\" \(2 characters\) sed "s/^X//" >'tests/sc13c.fwi' <<'END_OF_FILE' X X END_OF_FILE if test 2 -ne `wc -c <'tests/sc13c.fwi'`; then echo shar: \"'tests/sc13c.fwi'\" unpacked with wrong size! fi # end of 'tests/sc13c.fwi' fi if test -f 'tests/sc13d.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13d.fwi'\" else echo shar: Extracting \"'tests/sc13d.fwi'\" \(74 characters\) sed "s/^X//" >'tests/sc13d.fwi' <<'END_OF_FILE' This is the include file for test SC13d. Just a file containing one line. END_OF_FILE if test 74 -ne `wc -c <'tests/sc13d.fwi'`; then echo shar: \"'tests/sc13d.fwi'\" unpacked with wrong size! fi # end of 'tests/sc13d.fwi' fi if test -f 'tests/sc13e.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13e.fwi'\" else echo shar: Extracting \"'tests/sc13e.fwi'\" \(185 characters\) sed "s/^X//" >'tests/sc13e.fwi' <<'END_OF_FILE' This is the include file for test SC13e. The test is to see how FunnelWeb copes with an include file that has an improperly terminated last line. X Here is the improper termination!---->END_OF_FILE if test 185 -ne `wc -c <'tests/sc13e.fwi'`; then echo shar: \"'tests/sc13e.fwi'\" unpacked with wrong size! fi # end of 'tests/sc13e.fwi' fi if test -f 'tests/sc13f.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc13f.fwi'\" else echo shar: Extracting \"'tests/sc13f.fwi'\" \(108 characters\) sed "s/^X//" >'tests/sc13f.fwi' <<'END_OF_FILE' This is the include file for tests SC13.6 and SC13.7. There are only two lines, and this is the second one. END_OF_FILE if test 108 -ne `wc -c <'tests/sc13f.fwi'`; then echo shar: \"'tests/sc13f.fwi'\" unpacked with wrong size! fi # end of 'tests/sc13f.fwi' fi if test -f 'tests/sc14.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc14.fw'\" else echo shar: Extracting \"'tests/sc14.fw'\" \(170 characters\) sed "s/^X//" >'tests/sc14.fw' <<'END_OF_FILE' SC14: Test that the maximum number of levels of include file is 10. This is most easily done with a recursive inclusion. X Before the include X@i sc14.fw After the include END_OF_FILE if test 170 -ne `wc -c <'tests/sc14.fw'`; then echo shar: \"'tests/sc14.fw'\" unpacked with wrong size! fi # end of 'tests/sc14.fw' fi if test -f 'tests/sc15.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc15.fw'\" else echo shar: Extracting \"'tests/sc15.fw'\" \(1003 characters\) sed "s/^X//" >'tests/sc15.fw' <<'END_OF_FILE' SC15: Test that certain attributes are saved across inclusions. X X1. Maximum input line length. X2. Special character. X3. Local line number. X To test this, we first set the first two attributes away from the default. This will enable us to be sure that when they are restored that they are being restored to their former values and not just set to the default. X X@=* *! Change the special character. X*p maximum_input_line_length = 75 X Before include. X*i sc15a After include. X If the maximum input line length has been correctly restored then the second of the following two lines should give an error, but not the first. X123456789012345678901234567890123456789012345678901234567890123456789012345 X1234567890123456789012345678901234567890123456789012345678901234567890123456 X If the special character has been preserved, then the following should generate an error. X X* - This should generate an error if all is well. X Preservation of the local line number can be checked by looking at the listing file. END_OF_FILE if test 1003 -ne `wc -c <'tests/sc15.fw'`; then echo shar: \"'tests/sc15.fw'\" unpacked with wrong size! fi # end of 'tests/sc15.fw' fi if test -f 'tests/sc15a.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc15a.fwi'\" else echo shar: Extracting \"'tests/sc15a.fwi'\" \(973 characters\) sed "s/^X//" >'tests/sc15a.fwi' <<'END_OF_FILE' This is the include file for test SC15. The SC15 test checks to make sure that FunnelWeb is saving and restoring three scanning attributes across include files. We also want to make sure that the scanner is initializing these attributes correctly within the include file. X SC15.4: Make sure that the special character is AT at the start of include files. X X@ - This should yield an error. X SC15.5 Ensure that the maximum input line length is 80 at the start of an include file. If all is well, only the second of the following two lines will provoke a "line too long" error. X X12345678901234567890123456789012345678901234567890123456789012345678901234567890 X123456789012345678901234567890123456789012345678901234567890123456789012345678901 X Now that we have checked the default attributes on entering an include file, we want to stuff them up so as to make sure that the attributes prevailing when the include was hit are restored. X X@p maximum_input_line_length = 65 X@=+ X END_OF_FILE if test 973 -ne `wc -c <'tests/sc15a.fwi'`; then echo shar: \"'tests/sc15a.fwi'\" unpacked with wrong size! fi # end of 'tests/sc15a.fwi' fi if test -f 'tests/sc16.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc16.fw'\" else echo shar: Extracting \"'tests/sc16.fw'\" \(1127 characters\) sed "s/^X//" >'tests/sc16.fw' <<'END_OF_FILE' SC16: Test ^ sequence. X X1. Test that all base characters work (in both cases). X These should provoke no errors. X X @^B(00000000) @^b(00000000) X @^O(000) @^o(000) X @^Q(000) @^q(000) X @^D(000) @^d(000) X @^H(00) @^h(00) X @^X(00) @^x(00) X X2. Test that some other base characters generate an error. X X @^u(0) X @^y X @^# X @^( X X3. Test that an error is generated if parenthesis is missing. X X @^D34) X X4. Test legal digits in each base. X X @^B(00001111) X @^O(012) @^O(034) @^O(056) @^O(077) X @^D(012) @^D(034) @^D(056) @^D(078) @^D(099) X @^H(01) @^H(23) @^H(45) @^H(67) X @^H(89) @^H(AB) @^X(CD) @^X(EF) @^x(af) X X5. Test illegal digits in each base. X X @^B(00000002) X @^O(008) X @^D(00A) X @^H(0G) X X6. Test what happens if there are the wrong number of digits X (too few, too many). X X @^B(1) X @^O(1) X @^D(1) X @^H(1) X X @^B(000000001) X @^O(0004) X @^D(0001) X @^H(005) X X7. Test that an error is generated for a missing closing parenthesis. X X @^B(00000000 X @^D(045( X X8. Test what happens in number is out of the range [0,255]. X X @^D(255) X @^D(256) X @^D(999) X END_OF_FILE if test 1127 -ne `wc -c <'tests/sc16.fw'`; then echo shar: \"'tests/sc16.fw'\" unpacked with wrong size! fi # end of 'tests/sc16.fw' fi if test -f 'tests/sc17.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc17.fw'\" else echo shar: Extracting \"'tests/sc17.fw'\" \(676 characters\) sed "s/^X//" >'tests/sc17.fw' <<'END_OF_FILE' SC17: Test #. X XFirst we trip up the scanner so no further passes take place. X X@ X X1. Test with all possible printable characters. X X@#! @#" @## @#$ @#% @#& @#' @#( @#) @#* @#+ @#, @#- @#. @#/ X@#0 @#1 @#2 @#3 @#4 @#5 @#6 @#7 @#8 @#9 @#: @#; @#< @#= @#> X@#? @#@ @#A @#B @#C @#D @#E @#F @#G @#H @#I @#J @#K @#L @#M X@#N @#O @#P @#Q @#R @#S @#T @#U @#V @#W @#X @#Y @#Z @#[ @#\ X@#] @#^ @#_ @#` @#a @#b @#c @#d @#e @#f @#g @#h @#i @#j @#k X@#l @#m @#n @#o @#p @#q @#r @#s @#t @#u @#v @#w @#x @#y @#z X@#{ @#| @#} @#~ X X2. Test that # is flagged as an error. X X @# @! Should be flagged as an error. X X3. Test that #EOL is flagged as an error. X X @# X END_OF_FILE if test 676 -ne `wc -c <'tests/sc17.fw'`; then echo shar: \"'tests/sc17.fw'\" unpacked with wrong size! fi # end of 'tests/sc17.fw' fi if test -f 'tests/sc18.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc18.fw'\" else echo shar: Extracting \"'tests/sc18.fw'\" \(680 characters\) sed "s/^X//" >'tests/sc18.fw' <<'END_OF_FILE' SC18: Test #= X XFirst we trip up the scanner so no further passes take place. X X@ X X1. Test with all possible printable characters. X X@=! !=" "=# #=$ $=% %=& &=' '=( (=) )=* *=+ +=, ,=- -=. .=/ X/=0 0=1 1=2 2=3 3=4 4=5 5=6 6=7 7=8 8=9 9=: :=; ;=< <== ==> X>=? ?=@ @=A A=B B=C C=D D=E E=F F=G G=H H=I I=J J=K K=L L=M M=N N=O O=P P=Q Q=R R=S S=T T=U U=V V=W W=X X=Y Y=Z Z=[ [=\ X\=] ]=^ ^=_ _=` `=a a=b b=c c=d d=e e=f f=g g=h h=i i=j j=k k=l l=m m=n n=o o=p p=q q=r r=s s=t t=u u=v v=w w=x x=y y=z z={ {=| |=} }=~ ~=@ X X2. Test that = is flagged as an error. X X @= @! Should be flagged as an error. X X3. Test that =EOL is flagged as an error. X X @= X END_OF_FILE if test 680 -ne `wc -c <'tests/sc18.fw'`; then echo shar: \"'tests/sc18.fw'\" unpacked with wrong size! fi # end of 'tests/sc18.fw' fi if test -f 'tests/sc19.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc19.fw'\" else echo shar: Extracting \"'tests/sc19.fw'\" \(216 characters\) sed "s/^X//" >'tests/sc19.fw' <<'END_OF_FILE' SC19: Test - X X1. Test that error is flagged if sequence is not at the end of a line. X This is a line containing @- the end of line suppressor. X X2. Test the sequence followed by trailing blanks. X X @- X END_OF_FILE if test 216 -ne `wc -c <'tests/sc19.fw'`; then echo shar: \"'tests/sc19.fw'\" unpacked with wrong size! fi # end of 'tests/sc19.fw' fi if test -f 'tests/sc20.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc20.fw'\" else echo shar: Extracting \"'tests/sc20.fw'\" \(260 characters\) sed "s/^X//" >'tests/sc20.fw' <<'END_OF_FILE' SC20: Test @! X X1. Test at the start of a line. X X@! This is a comment and we can stick any sort of rubbish in it. X@! @# @i @^ds;af;lsdmf;land other @ rubbish. X X2. Test halfway through a line. X This is a line @! whose second half never sees the daylight. @i @< X END_OF_FILE if test 260 -ne `wc -c <'tests/sc20.fw'`; then echo shar: \"'tests/sc20.fw'\" unpacked with wrong size! fi # end of 'tests/sc20.fw' fi if test -f 'tests/sc21.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc21.fw'\" else echo shar: Extracting \"'tests/sc21.fw'\" \(1071 characters\) sed "s/^X//" >'tests/sc21.fw' <<'END_OF_FILE' SC21: Test generic syntax checking of pragmas and typesetter directives. X X1. Test pragma not at the start of line. X @p X @t X X2. Test character following p is not a blank. X@px X@tx X@p X@t X X3. Test pragma line is too long (limit is 100) X 1 2 3 4 5 6 7 8 9 1 X@p 4567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 X@p 45678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 X@t 4567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 X@t 45678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 X X4. Test various different pragma lines. X@p $#%@ 2525 sloth X@t $#%@ 2525 sloth X X5. Test pragma with no arguments. (Will get a trailing blanks error.). X@p X@t X X6. Test pragma with too many arguments. X@p a b c d e f g h i j k l m n o p q r s t u v w x y z X@t a b c d e f g h i j k l m n o p q r s t u v w x y z X END_OF_FILE if test 1071 -ne `wc -c <'tests/sc21.fw'`; then echo shar: \"'tests/sc21.fw'\" unpacked with wrong size! fi # end of 'tests/sc21.fw' fi if test -f 'tests/sc22.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc22.fw'\" else echo shar: Extracting \"'tests/sc22.fw'\" \(574 characters\) sed "s/^X//" >'tests/sc22.fw' <<'END_OF_FILE' SC22: Test syntax checking of input line length pragma. X X1. Test not three arguments. X@p maximum_input_line_length X@p maximum_input_line_length = X@p maximum_input_line_length = xxx yyy X X2. Test second argument not "=". X@p maximum_input_line_length x sloth X X3. Test value of infinity. X@p maximum_input_line_length = infinity X X4. Test non-decimal digit in number. X@p maximum_input_line_length = 2ef X X5. Test number is more than eight digits long. X@p maximum_input_line_length = 123456789 X X6. Test number is exactly eight digits long. X@p maximum_input_line_length = 12345678 X X END_OF_FILE if test 574 -ne `wc -c <'tests/sc22.fw'`; then echo shar: \"'tests/sc22.fw'\" unpacked with wrong size! fi # end of 'tests/sc22.fw' fi if test -f 'tests/sc23.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc23.fw'\" else echo shar: Extracting \"'tests/sc23.fw'\" \(708 characters\) sed "s/^X//" >'tests/sc23.fw' <<'END_OF_FILE' SC23: Test syntax checking of output line length pragma. X X1. Test not three arguments. X@p maximum_output_line_length X@p maximum_output_line_length = X@p maximum_output_line_length = xxx yyy X X2. Test second argument not "=". X@p maximum_output_line_length x sloth X X3. Test value of infinity. X@p maximum_output_line_length = infinity X X4. Test non-decimal digit in number. X@p maximum_output_line_length = 2ef X X5. Test number is more than eight digits long. X@p maximum_output_line_length = 123456789 X X6. Test number is exactly eight digits long. X7. Test pragma opposing earlier pragma. X@p maximum_output_line_length = 12345678 X X8. Test pragma not opposing earlier pragma. X@p maximum_output_line_length = infinity X END_OF_FILE if test 708 -ne `wc -c <'tests/sc23.fw'`; then echo shar: \"'tests/sc23.fw'\" unpacked with wrong size! fi # end of 'tests/sc23.fw' fi if test -f 'tests/sc24.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc24.fw'\" else echo shar: Extracting \"'tests/sc24.fw'\" \(477 characters\) sed "s/^X//" >'tests/sc24.fw' <<'END_OF_FILE' SC23: Test syntax checking of indentation pragma. X X1. Test not three arguments. X@p indentation X@p indentation = X@p indentation = xxx yyy X X2. Test second argument not "=". X@p indentation x sloth X X3. Test third argument is not legal. X@p indentation = sloth X X4. Test third argument is none. X@p indentation = none X X5. Test third argument is blank. X6. Test pragma opposes earlier pragma. X@p indentation = blank X X7. Test pragma does not oppose earlier pragma. X@p indentation = none X END_OF_FILE if test 477 -ne `wc -c <'tests/sc24.fw'`; then echo shar: \"'tests/sc24.fw'\" unpacked with wrong size! fi # end of 'tests/sc24.fw' fi if test -f 'tests/sc25.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc25.fw'\" else echo shar: Extracting \"'tests/sc25.fw'\" \(198 characters\) sed "s/^X//" >'tests/sc25.fw' <<'END_OF_FILE' SC25: Test syntax checking of new page typesetter directive. X X1. Make sure that a legal new page directive is OK. X@t new_page X X2. Check that it doesn't stand for any nonsense. X@t new_page nonsense X END_OF_FILE if test 198 -ne `wc -c <'tests/sc25.fw'`; then echo shar: \"'tests/sc25.fw'\" unpacked with wrong size! fi # end of 'tests/sc25.fw' fi if test -f 'tests/sc26.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc26.fw'\" else echo shar: Extracting \"'tests/sc26.fw'\" \(232 characters\) sed "s/^X//" >'tests/sc26.fw' <<'END_OF_FILE' SC26: Test syntax checking of table of contents typesetting pragma. X X1. Make sure that a legal table of contents directive is OK. X@t table_of_contents X X2. Check that it doesn't stand for any nonsense. X@t table_of_contents nonsense X END_OF_FILE if test 232 -ne `wc -c <'tests/sc26.fw'`; then echo shar: \"'tests/sc26.fw'\" unpacked with wrong size! fi # end of 'tests/sc26.fw' fi if test -f 'tests/sc27.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc27.fw'\" else echo shar: Extracting \"'tests/sc27.fw'\" \(371 characters\) sed "s/^X//" >'tests/sc27.fw' <<'END_OF_FILE' SC27: Test syntax checking of vskip typesetting directive. X X1. Test not exactly three arguments (includes vskip). X@t vskip X@t vskip one X@t vskip one two three four X X2. Test third argument not "mm". X@t vskip 32 xx X X3. Test second argument has bad digit. X@t vskip 3f mm X X4. Test number has more than three digits X X@t vskip 4355 mm X X5. Test a legal one too. X@t vskip 20 mm X END_OF_FILE if test 371 -ne `wc -c <'tests/sc27.fw'`; then echo shar: \"'tests/sc27.fw'\" unpacked with wrong size! fi # end of 'tests/sc27.fw' fi if test -f 'tests/sc28.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc28.fw'\" else echo shar: Extracting \"'tests/sc28.fw'\" \(1089 characters\) sed "s/^X//" >'tests/sc28.fw' <<'END_OF_FILE' SC28: Test syntax checking of title typesetting directive. X X1. Test less than four arguments (includes title). Note: The title command pulls a hack treating the rest of the line after two arguments as the string. So it can't detect an EXCESS of arguments! X@t title X@t title two X@t title two three X X2. Test out bad font. X@t title slothfont left "Sloth" X X3. Test out bad alignment. X@t title titlefont westward "Sloth" X X4. Test out funny strings. X@t title titlefont left " X@t title titlefont left "" X@! Note: The following, believe it or not, is actually LEGAL! X@t title titlefont left "sloth"sloth" X X5. Test out all combinations of font and alignment. X@t title titlefont left "Sloth" X@t title titlefont centre "Sloth" X@t title titlefont right "Sloth" X@t title smalltitlefont left "Sloth" X@t title smalltitlefont centre "Sloth" X@t title smalltitlefont right "Sloth" X@t title normalfont left "Sloth" X@t title normalfont centre "Sloth" X@t title normalfont right "Sloth" X X6. Test misspelling of centre (Ross's revenge). X@t title normalfont center "Sloth" END_OF_FILE if test 1089 -ne `wc -c <'tests/sc28.fw'`; then echo shar: \"'tests/sc28.fw'\" unpacked with wrong size! fi # end of 'tests/sc28.fw' fi if test -f 'tests/sc29.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/sc29.fw'\" else echo shar: Extracting \"'tests/sc29.fw'\" \(464 characters\) sed "s/^X//" >'tests/sc29.fw' <<'END_OF_FILE' SC29: Test syntax checking of typesetter pragma. X X1. Test not three arguments. X@p typesetter X@p typesetter = X@p typesetter = xxx yyy X X2. Test second argument not "=". X@p typesetter x sloth X X3. Test third argument is not legal. X@p typesetter = sloth X X4. Test third argument is none. X@p typesetter = none X X5. Test third argument is tex. X6. Test pragma opposes earlier pragma. X@p typesetter = tex X X7. Test pragma does not oppose earlier pragma. X@p typesetter = none X END_OF_FILE if test 464 -ne `wc -c <'tests/sc29.fw'`; then echo shar: \"'tests/sc29.fw'\" unpacked with wrong size! fi # end of 'tests/sc29.fw' fi if test -f 'tests/tg01.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg01.fw'\" else echo shar: Extracting \"'tests/tg01.fw'\" \(239 characters\) sed "s/^X//" >'tests/tg01.fw' <<'END_OF_FILE' TG01: Test basic output file mechanism and filename inheritance. X The file written will be directory:tg01.out X@O@<.out@>==@{@- Patterson's prayer: X "There is nothing I would rather be, than chairman of the ABC." X - Les Patterson X@} END_OF_FILE if test 239 -ne `wc -c <'tests/tg01.fw'`; then echo shar: \"'tests/tg01.fw'\" unpacked with wrong size! fi # end of 'tests/tg01.fw' fi if test -f 'tests/tg02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg02.fw'\" else echo shar: Extracting \"'tests/tg02.fw'\" \(1242 characters\) sed "s/^X//" >'tests/tg02.fw' <<'END_OF_FILE' TG02: Test expansions with no indentation. X X@p indentation = none X X@O@@{@- X@ X X@ X@} X X@!****************************************************************************** X X@A@ X X@$@@{@- The other day upon the stair, X@ I think he's from the CIA.@} X X@$@@{@- I met a man who wasn't there. X@@} X X@$@@{He wasn't there @ today,@} X X@$@@{again@} X X@!****************************************************************************** X X@A@ X X@$@@{@- In the output begin0 should be at the left margin, then begin1 to begin wayout should be indented by three spaces. Then the "It's scary" should be positioned over the "a" ofd margin. The rest should be at the left margin. X begin0 X @ end0@} X X X@$@@{@- begin1 X @ end1@} X X@$@@{@- begin2 X @ end2@} X X@$@@{@- begin3 X @ end3@} X X@$@@{@- begin4 X @ end4@} X X@$@@{@- begin wayout----------V X @ end wayout----------^@} X X@$@@{@- It's scary out here So far from the left margin.@} X X@!****************************************************************************** END_OF_FILE if test 1242 -ne `wc -c <'tests/tg02.fw'`; then echo shar: \"'tests/tg02.fw'\" unpacked with wrong size! fi # end of 'tests/tg02.fw' fi if test -f 'tests/tg03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg03.fw'\" else echo shar: Extracting \"'tests/tg03.fw'\" \(1085 characters\) sed "s/^X//" >'tests/tg03.fw' <<'END_OF_FILE' TG03: Test expansions with indentation. X X@p indentation = blank X X@O@@{@- X@ X X@ X@} X X@!****************************************************************************** X X@A@ X X@$@@{@- The other day upon the stair, X@ I think he's from the CIA.@} X X@$@@{@- I met a man who wasn't there. X@@} X X@$@@{He wasn't there @ today,@} X X@$@@{again@} X X@!****************************************************************************** X X@A@ X X@$@@{@- The following nest of begin and ends should be indented in a nest. X begin0 X @ end0@} X X X@$@@{@- begin1 X @ end1@} X X@$@@{@- begin2 X @ end2@} X X@$@@{@- begin3 X @ end3@} X X@$@@{@- begin4 X @ end4@} X X@$@@{@- begin wayout----------V X @ end wayout----------^@} X X@$@@{@- It's scary out here So far from the left margin.@} X X@!****************************************************************************** END_OF_FILE if test 1085 -ne `wc -c <'tests/tg03.fw'`; then echo shar: \"'tests/tg03.fw'\" unpacked with wrong size! fi # end of 'tests/tg03.fw' fi if test -f 'tests/tg04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg04.fw'\" else echo shar: Extracting \"'tests/tg04.fw'\" \(662 characters\) sed "s/^X//" >'tests/tg04.fw' <<'END_OF_FILE' TG04: Test macro expansions. X X@$@@{Teapot@} X@$@@(@1@)@M@{Left @1 Right@} X@$@@(@2@)@M@{Left @1 Middle @2 Right@} X@$@@(@1@)@M@{[@1]@} X X@O@@{ X X1. Test macro call with no parameters. X"Teapot" = X"@" X X2. Test macro call with one parameter. X"Left Testing Right" = X"@@(@"Testing@"@)" X X3. Test macro call with many parameters. X"Left x Middle y Right" = X"@@(x@,y@)" X X4. Test macro call as a parameter of another macro call. X"Left Ostrich Middle Left Wombat Right Right" = X"@@(Ostrich@,@@(Wombat@)@)" X X5. Test expression recursive macro call. X"[X[[Walrus]]Y]" = X"@@(X@@(@@(Walrus@)@)Y@)" X X@} END_OF_FILE if test 662 -ne `wc -c <'tests/tg04.fw'`; then echo shar: \"'tests/tg04.fw'\" unpacked with wrong size! fi # end of 'tests/tg04.fw' fi if test -f 'tests/tg05.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg05.fw'\" else echo shar: Extracting \"'tests/tg05.fw'\" \(319 characters\) sed "s/^X//" >'tests/tg05.fw' <<'END_OF_FILE' TG05: Checking of the output line length. X X@$@@M@{1234567890@} X X@O@@{@- We test the default limit of 80 characters. Only the second of the following two lines should provoke an error. X@@@@@@@@ X@@@@@@@@1 X@} END_OF_FILE if test 319 -ne `wc -c <'tests/tg05.fw'`; then echo shar: \"'tests/tg05.fw'\" unpacked with wrong size! fi # end of 'tests/tg05.fw' fi if test -f 'tests/tg06.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg06.fw'\" else echo shar: Extracting \"'tests/tg06.fw'\" \(405 characters\) sed "s/^X//" >'tests/tg06.fw' <<'END_OF_FILE' TG06: Test the setting of the line length limit. X X@p maximum_output_line_length = 60 X@O@@{@- We test the user-set limit of 60 characters. Only the third of the following three lines should provoke an error. X 1 2 3 4 5 6 X123456789012345678901234567890123456789012345678901234567890 X1234567890123456789012345678901234567890123456789012345678901 X@} END_OF_FILE if test 405 -ne `wc -c <'tests/tg06.fw'`; then echo shar: \"'tests/tg06.fw'\" unpacked with wrong size! fi # end of 'tests/tg06.fw' fi if test -f 'tests/tg07.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg07.fw'\" else echo shar: Extracting \"'tests/tg07.fw'\" \(321 characters\) sed "s/^X//" >'tests/tg07.fw' <<'END_OF_FILE' TG07: Checking the setting of the maximum line length to infinity. X X@p maximum_output_line_length = infinity X X@$@@M@{1234567890123456789012345678901234567890@} X X@O@@{@- The following long line should not blow the line length limit. X@@@@@@@@@@@@@@ X@} END_OF_FILE if test 321 -ne `wc -c <'tests/tg07.fw'`; then echo shar: \"'tests/tg07.fw'\" unpacked with wrong size! fi # end of 'tests/tg07.fw' fi if test -f 'tests/tg08.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg08.fw'\" else echo shar: Extracting \"'tests/tg08.fw'\" \(238 characters\) sed "s/^X//" >'tests/tg08.fw' <<'END_OF_FILE' TG08: Test include files and output generation. X X@O@@{@- X@ X X@ X@} X X@$@@{@- Now might I drink hot jolt cola X@i tg08a Its contours moulded for my hand? Come, let me clutch thee!@} X END_OF_FILE if test 238 -ne `wc -c <'tests/tg08.fw'`; then echo shar: \"'tests/tg08.fw'\" unpacked with wrong size! fi # end of 'tests/tg08.fw' fi if test -f 'tests/tg08a.fwi' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg08a.fwi'\" else echo shar: Extracting \"'tests/tg08a.fwi'\" \(123 characters\) sed "s/^X//" >'tests/tg08a.fwi' <<'END_OF_FILE' And create hacks in C That would not bear witness of the Sun.@} X X@$@@{@- Is this a mouse I see before me? END_OF_FILE if test 123 -ne `wc -c <'tests/tg08a.fwi'`; then echo shar: \"'tests/tg08a.fwi'\" unpacked with wrong size! fi # end of 'tests/tg08a.fwi' fi if test -f 'tests/tg09.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/tg09.fw'\" else echo shar: Extracting \"'tests/tg09.fw'\" \(710 characters\) sed "s/^X//" >'tests/tg09.fw' <<'END_OF_FILE' TG09: Test some special sequences. X1. ^ X2. - X3. ! X X@O@@{@- X@! This line and the next line should not come out in the output file. X@! This line is a comment line. A Megastar's Mantras X-------------------- X(Things that Mean a Lot to Me) X X@^D(065) is for Austr@- alia The land I adore; It's so spot@- less and clean You can eat off the floor. X X@^X(42) is for Boomerang, Which our qua@- int Abos launch In the hope it will bring back A roast quok@- ka's haunch. X X@^B(01000011) is for Culture Which blossoms unch@- ecked, You can't move in my homeland for Beckett and Brecht. X X...more... X X- Dame Edna Everage, X"Neglected Poems and Other Creatures" by Barry Humphries, 1991. X@} END_OF_FILE if test 710 -ne `wc -c <'tests/tg09.fw'`; then echo shar: \"'tests/tg09.fw'\" unpacked with wrong size! fi # end of 'tests/tg09.fw' fi if test -f 'tests/wv01.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/wv01.fw'\" else echo shar: Extracting \"'tests/wv01.fw'\" \(149 characters\) sed "s/^X//" >'tests/wv01.fw' <<'END_OF_FILE' WV01: Test basic typeset file output mechanism. X X@A@ X X@O@@{@- Some text for no particular reason. X@} END_OF_FILE if test 149 -ne `wc -c <'tests/wv01.fw'`; then echo shar: \"'tests/wv01.fw'\" unpacked with wrong size! fi # end of 'tests/wv01.fw' fi if test -f 'tests/wv02.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/wv02.fw'\" else echo shar: Extracting \"'tests/wv02.fw'\" \(667 characters\) sed "s/^X//" >'tests/wv02.fw' <<'END_OF_FILE' WV05: Test typesetting features. X X@O@@{ X@} X X1. Test all five levels of headings with explicit titles. X X@A@ X@B@ X@C@ X@D@ X@E@ X X2. Test all five levels of headings with implicit titles. X X@A X@$@@Z@{Sloth@} X X@B X@$@@Z@{Walrus@} X X@C X@$@@Z@{Aardvark@} X X@D X@$@@Z@{Teapot@} X X@E X@$@@Z@{Emu@} X X3. Test the table of contents directive. X@t table_of_contents X X4. Test the newpage directive. X@t new_page X X5. Test the vskip directive. X@t vskip 50 mm X X6. Test the title directive. X@t title titlefont centre "This is a test Title" X X END_OF_FILE if test 667 -ne `wc -c <'tests/wv02.fw'`; then echo shar: \"'tests/wv02.fw'\" unpacked with wrong size! fi # end of 'tests/wv02.fw' fi if test -f 'tests/wv03.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/wv03.fw'\" else echo shar: Extracting \"'tests/wv03.fw'\" \(1233 characters\) sed "s/^X//" >'tests/wv03.fw' <<'END_OF_FILE' WV03: Test the typesetting of various kinds of macros. X XFirst create an output file to keep the analyser happy. X@O@@{@} X X1. Test macro never used. X@$@@Z@{@} X X2. Test a macro used once. X@$@@{@} X X3. Test a macro used twice. X@$@@M@{@} X X4. Test a macro used three times. X@$@@M@{@} X X5. Test a macro used five times. X@$@@M@{@} X Here is the macro that does all the calling for the above. X@$@@Z@{@- X@ X@ X@ X@ X@} X X@$@@Z@{@- X@ X@ X@ X@} X X@$@@Z@{@- X@ X@ X@} X X@$@@Z@{@- X@ X@} X X@$@@Z@{@- X@ X@} X X6. Test a macro with two body parts. X@$@@Z+=@{Sloth@} X@$@+=@{Walrus@} X X7. Test a macro with three body parts. X@$@@Z+=@{Sloth@} X@$@+=@{Walrus@} X@$@+=@{Aardvaark@} X X8. Test a macro with five body parts. X@$@@Z+=@{Sloth@} X@$@+=@{Walrus@} X@$@+=@{@@} X@$@+=@{Aardvaark@} X@$@+=@{@@} X X END_OF_FILE if test 1233 -ne `wc -c <'tests/wv03.fw'`; then echo shar: \"'tests/wv03.fw'\" unpacked with wrong size! fi # end of 'tests/wv03.fw' fi if test -f 'tests/wv04.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/wv04.fw'\" else echo shar: Extracting \"'tests/wv04.fw'\" \(569 characters\) sed "s/^X//" >'tests/wv04.fw' <<'END_OF_FILE' WV04: Test ugly string processing. X X@! We need this to keep the analyser happy. X@O@@{@} X X1. Test ugly string in section name. X@A@< !"#$%'()*+,-./0123456789:;<=>?@> X@A@ X@A@ X X2. Test ugly string in macro name. X@$@< !"#$%'()*+,-./0123456789:;<=>?@>@Z@{@} X@$@@Z@{@} X@$@@Z@{@} X X3. Test ugly string in literal section. X@{ !"#$%'()*+,-./0123456789:;<=>?@} X@{ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@} X@{abcdefghijklmnopqrstuvwxyz{|}~@} X END_OF_FILE if test 569 -ne `wc -c <'tests/wv04.fw'`; then echo shar: \"'tests/wv04.fw'\" unpacked with wrong size! fi # end of 'tests/wv04.fw' fi if test -f 'tests/wv05.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/wv05.fw'\" else echo shar: Extracting \"'tests/wv05.fw'\" \(1236 characters\) sed "s/^X//" >'tests/wv05.fw' <<'END_OF_FILE' WV05: Test processing of ugly strings as ordinary and protected text with no typesetter set. X X@! We need this to keep the analyser happy. X@O@@{@} X A paragraph in ordinary mode. X X33 con!text X34 con"text X35 con#text X36 con$text X37 con%text X38 con&text X39 con'text X40 con(text X41 con)text X42 con*text X43 con+text X44 con,text X45 con-text X46 con.text X47 con/text X48-57 con0123456789text X58 con:text X59 con;text X60 context X63 con?text X64 con@@text X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext X91 con[text X92 con\text X93 con]text X94 con^text X95 con_text X96 con`text X97-122 conabcdefghijklmnopqrstuvwxyztext X123 con{text X124 con|text X125 con}text X126 con~text X Now again, but this time inside protective braces. X X@{ X33 con!text X34 con"text X35 con#text X36 con$text X37 con%text X38 con&text X39 con'text X40 con(text X41 con)text X42 con*text X43 con+text X44 con,text X45 con-text X46 con.text X47 con/text X48-57 con0123456789text X58 con:text X59 con;text X60 context X63 con?text X64 con@@text X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext X91 con[text X92 con\text X93 con]text X94 con^text X95 con_text X96 con`text X97-122 conabcdefghijklmnopqrstuvwxyztext X123 con{text X124 con|text X125 con}text X126 con~text X@} END_OF_FILE if test 1236 -ne `wc -c <'tests/wv05.fw'`; then echo shar: \"'tests/wv05.fw'\" unpacked with wrong size! fi # end of 'tests/wv05.fw' fi if test -f 'tests/wv06.fw' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tests/wv06.fw'\" else echo shar: Extracting \"'tests/wv06.fw'\" \(1256 characters\) sed "s/^X//" >'tests/wv06.fw' <<'END_OF_FILE' WV06: Test processing of ugly strings as ordinary and protected text with typesetter = tex. X X@p typesetter = tex X X@! We need this to keep the analyser happy. X@O@@{@} X A paragraph in ordinary mode. X X33 con!text X34 con"text X35 con#text X36 con$text X37 con%text X38 con&text X39 con'text X40 con(text X41 con)text X42 con*text X43 con+text X44 con,text X45 con-text X46 con.text X47 con/text X48-57 con0123456789text X58 con:text X59 con;text X60 context X63 con?text X64 con@@text X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext X91 con[text X92 con\text X93 con]text X94 con^text X95 con_text X96 con`text X97-122 conabcdefghijklmnopqrstuvwxyztext X123 con{text X124 con|text X125 con}text X126 con~text X Now again, but this time inside protective braces. X X@{ X33 con!text X34 con"text X35 con#text X36 con$text X37 con%text X38 con&text X39 con'text X40 con(text X41 con)text X42 con*text X43 con+text X44 con,text X45 con-text X46 con.text X47 con/text X48-57 con0123456789text X58 con:text X59 con;text X60 context X63 con?text X64 con@@text X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext X91 con[text X92 con\text X93 con]text X94 con^text X95 con_text X96 con`text X97-122 conabcdefghijklmnopqrstuvwxyztext X123 con{text X124 con|text X125 con}text X126 con~text X@} END_OF_FILE if test 1256 -ne `wc -c <'tests/wv06.fw'`; then echo shar: \"'tests/wv06.fw'\" unpacked with wrong size! fi # end of 'tests/wv06.fw' fi if test ! -d 'userman' ; then echo shar: Creating directory \"'userman'\" mkdir 'userman' fi echo shar: End of archive 1 \(of 20\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 20 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0