home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / unix / volume26 / funnlweb / part01 < prev    next >
Encoding:
Text File  |  1993-04-10  |  154.5 KB  |  5,329 lines

  1. Newsgroups: comp.sources.unix
  2. From: ross@spam.adelaide.edu.au (Ross Williams)
  3. Subject: v26i121: funnelweb - a tool for literate programming in C, Part01/20
  4. Sender: unix-sources-moderator@vix.com
  5. Approved: paul@vix.com
  6.  
  7. Submitted-By: ross@spam.adelaide.edu.au (Ross Williams)
  8. Posting-Number: Volume 26, Issue 121
  9. Archive-Name: funnelweb/part01
  10.  
  11. [ i wrote a top-level README and a Makefile for the 'sources' subdirectory.
  12.   i'm letting this out without a man page because there's enough documentation
  13.   in the 'userman' subdirectory, it's just not in nroff format and i don't
  14.   know enough about TeX to convert it.                    --vix ]
  15.  
  16. FunnelWeb is a production-quality literate-programming tool that emphasises
  17. simplicity and reliability. It provides a macro facility, and assists in
  18. the production of typeset documentation. FunnelWeb runs on most popular
  19. machines (Sun, VAX, Mac, PC) and its highly portable source code in C is
  20. freely available under a GNU license.
  21.  
  22. Features:
  23.    + Provides a simple macro preprocessor facility.
  24.    + Assists in the generation of typeset documentation.
  25.    + Runs on Sun, VMS VAX, Macintosh, and PC.
  26.    + Portable C source code distributed under GNU licence.
  27.    + Comprehensive user's manual (115 pages).
  28.    + Input-programming-language independent.
  29.    + Allows complete control over the output text.
  30.    + Regression test suite with over 200 tests.
  31.    - Requires TeX to produce typeset documentation.
  32.    - Typesets program code using TT font only.
  33.  
  34.     ross@spam.adelaide.edu.au (Ross Williams)
  35.  
  36. #! /bin/sh
  37. # This is a shell archive.  Remove anything before this line, then unpack
  38. # it by saving it into a file and typing "sh file".  To overwrite existing
  39. # files, type "sh file -c".  You can also feed this as standard input via
  40. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  41. # will see the following message at the end:
  42. #        "End of archive 1 (of 20)."
  43. # Contents:  0readme.txt MANIFEST README admin admin/0readme.txt
  44. #   admin/ad.txt admin/fixeols.fws admin/makescript answers
  45. #   answers/0license.txt answers/an01.lis answers/an02.lis
  46. #   answers/an04.lis answers/ex01.lis answers/ex02.lis
  47. #   answers/ex03.lis answers/ex04.lis answers/ex05.lis
  48. #   answers/ex06.lis answers/ex07.lis answers/ex08.lis
  49. #   answers/ex09.lis answers/ex10.lis answers/ex11.lis
  50. #   answers/ex12.lis answers/ex13.lis answers/ex14.lis
  51. #   answers/ex15.lis answers/ex16.lis answers/generate.lis
  52. #   answers/hi01.lis answers/hi02.lis answers/hi03.lis
  53. #   answers/hi04.lis answers/hi05.lis answers/hi06.lis
  54. #   answers/hi07.lis answers/hi08.lis answers/hi09.lis
  55. #   answers/hi10.lis answers/sc01.lis answers/tg01.lis
  56. #   answers/tg02.lis answers/tg03.lis answers/tg04.lis
  57. #   answers/tg05.lis answers/tg06.lis answers/tg07.lis
  58. #   answers/tg08.lis answers/tg09.lis answers/wv01.lis
  59. #   answers/wv02.lis answers/wv03.lis answers/wv04.lis
  60. #   answers/wv05.lis answers/wv06.lis hackman results scripts
  61. #   scripts/0license.txt scripts/test_gen.fws scripts/test_l.fws
  62. #   scripts/test_ld.fws scripts/test_lo.fws scripts/test_lo2.fws
  63. #   scripts/test_lot.fws scripts/test_lt.fws sources sources/Makefile
  64. #   tests tests/0license.txt tests/an01.fw tests/an02.fw tests/an03.fw
  65. #   tests/an04.fw tests/ex01.fw tests/ex02.fw tests/ex03.fw
  66. #   tests/ex04.fw tests/ex05.fw tests/ex06.fw tests/ex07.fw
  67. #   tests/ex08.fw tests/ex09.fw tests/ex09a.fwi tests/ex10.fw
  68. #   tests/ex10a.fwi tests/ex11.fw tests/ex12.fw tests/ex13.fw
  69. #   tests/ex14.fw tests/ex15.fw tests/hi01.fw tests/hi02.fw
  70. #   tests/hi03.fw tests/hi04.fw tests/hi05.fw tests/hi06.fw
  71. #   tests/hi07.fw tests/hi08.fw tests/pr01.fw tests/pr02.fw
  72. #   tests/pr03.fw tests/pr04.fw tests/pr05.fw tests/pr06.fw
  73. #   tests/pr07.fw tests/pr10.fw tests/sc01_note.fw tests/sc02.fw
  74. #   tests/sc03.fw tests/sc04.fw tests/sc05.fw tests/sc06.fw
  75. #   tests/sc07.fw tests/sc08.fw tests/sc09.fw tests/sc12.fw
  76. #   tests/sc13.fw tests/sc13a.fwi tests/sc13b.fwi tests/sc13c.fwi
  77. #   tests/sc13d.fwi tests/sc13e.fwi tests/sc13f.fwi tests/sc14.fw
  78. #   tests/sc15.fw tests/sc15a.fwi tests/sc16.fw tests/sc17.fw
  79. #   tests/sc18.fw tests/sc19.fw tests/sc20.fw tests/sc21.fw
  80. #   tests/sc22.fw tests/sc23.fw tests/sc24.fw tests/sc25.fw
  81. #   tests/sc26.fw tests/sc27.fw tests/sc28.fw tests/sc29.fw
  82. #   tests/tg01.fw tests/tg02.fw tests/tg03.fw tests/tg04.fw
  83. #   tests/tg05.fw tests/tg06.fw tests/tg07.fw tests/tg08.fw
  84. #   tests/tg08a.fwi tests/tg09.fw tests/wv01.fw tests/wv02.fw
  85. #   tests/wv03.fw tests/wv04.fw tests/wv05.fw tests/wv06.fw userman
  86. # Wrapped by vixie@gw.home.vix.com on Sun Apr 11 11:00:04 1993
  87. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  88. if test -f '0readme.txt' -a "${1}" != "-c" ; then 
  89.   echo shar: Will not clobber existing file \"'0readme.txt'\"
  90. else
  91. echo shar: Extracting \"'0readme.txt'\" \(564 characters\)
  92. sed "s/^X//" >'0readme.txt' <<'END_OF_FILE'
  93. XFUNNELWEB 0README FILE
  94. X======================
  95. This is the first file you should read after obtaining a copy of
  96. XFunnelWeb.
  97. X
  98. XFunnelWeb is well documented and the best thing you can do at this
  99. stage to get started is to LaTeX and print out the FunnelWeb User's
  100. Manual. The LaTeX sources for the manual can be found in the directory
  101. X
  102. X...../fwdir/userman/
  103. X
  104. The file to LaTeX is u_manual.tex. The FunnelWeb User's Manual
  105. contains full installation instructions.
  106. X
  107. If you are in a hurry to install FunnelWeb, print out u_ch4.tex in
  108. text form and follow the instructions.
  109. X
  110. END_OF_FILE
  111. if test 564 -ne `wc -c <'0readme.txt'`; then
  112.     echo shar: \"'0readme.txt'\" unpacked with wrong size!
  113. fi
  114. chmod +x '0readme.txt'
  115. # end of '0readme.txt'
  116. fi
  117. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  118.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  119. else
  120. echo shar: Extracting \"'MANIFEST'\" \(9383 characters\)
  121. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  122. X   File Name        Archive #    Description
  123. X-----------------------------------------------------------
  124. X 0readme.txt                1    
  125. X MANIFEST                   1    This shipping list
  126. X README                     1    
  127. X admin                      1    
  128. X admin/0readme.txt          1    
  129. X admin/ad.txt               1    
  130. X admin/fixeols.fws          1    
  131. X admin/gnu2.txt             9    
  132. X admin/makescript           1    
  133. X admin/vms_bld.com          2    
  134. X answers                    1    
  135. X answers/0license.txt       1    
  136. X answers/an01.lis           1    
  137. X answers/an02.lis           1    
  138. X answers/an03.lis           2    
  139. X answers/an04.lis           1    
  140. X answers/ex01.lis           1    
  141. X answers/ex02.lis           1    
  142. X answers/ex03.lis           1    
  143. X answers/ex04.lis           1    
  144. X answers/ex05.lis           1    
  145. X answers/ex06.lis           1    
  146. X answers/ex07.lis           1    
  147. X answers/ex08.lis           1    
  148. X answers/ex09.lis           1    
  149. X answers/ex10.lis           1    
  150. X answers/ex11.lis           1    
  151. X answers/ex11.tex           7    
  152. X answers/ex12.lis           1    
  153. X answers/ex12.tex           7    
  154. X answers/ex13.lis           1    
  155. X answers/ex13.tex          10    
  156. X answers/ex14.lis           1    
  157. X answers/ex14.tex           7    
  158. X answers/ex15.lis           1    
  159. X answers/ex15.tex           7    
  160. X answers/ex16.lis           1    
  161. X answers/ex16.tex           9    
  162. X answers/generate.lis       1    
  163. X answers/hi01.lis           1    
  164. X answers/hi02.lis           1    
  165. X answers/hi03.lis           1    
  166. X answers/hi04.lis           1    
  167. X answers/hi05.lis           1    
  168. X answers/hi06.lis           1    
  169. X answers/hi07.lis           1    
  170. X answers/hi08.lis           1    
  171. X answers/hi09.lis           1    
  172. X answers/hi10.lis           1    
  173. X answers/pr01.lis           6    
  174. X answers/pr02.lis           3    
  175. X answers/pr03.lis           6    
  176. X answers/pr04.lis          11    
  177. X answers/pr05.lis          13    
  178. X answers/pr06.lis          11    
  179. X answers/pr07.lis          10    
  180. X answers/pr08.lis          15    
  181. X answers/pr09.lis          16    
  182. X answers/pr10.lis           5    
  183. X answers/sc01.lis           1    
  184. X answers/sc02.lis           2    
  185. X answers/sc03.lis           2    
  186. X answers/sc04.lis           2    
  187. X answers/sc05.lis           2    
  188. X answers/sc06.lis           2    
  189. X answers/sc07.lis           4    
  190. X answers/sc08.lis           2    
  191. X answers/sc09.lis           3    
  192. X answers/sc10.lis          14    
  193. X answers/sc11.lis          12    
  194. X answers/sc12.lis           2    
  195. X answers/sc13.lis           8    
  196. X answers/sc14.lis          12    
  197. X answers/sc15.lis          10    
  198. X answers/sc16.lis          10    
  199. X answers/sc17.lis           6    
  200. X answers/sc18.lis           5    
  201. X answers/sc19.lis           2    
  202. X answers/sc20.lis           2    
  203. X answers/sc21.lis          10    
  204. X answers/sc22.lis           3    
  205. X answers/sc23.lis           4    
  206. X answers/sc24.lis           3    
  207. X answers/sc25.lis           2    
  208. X answers/sc26.lis           2    
  209. X answers/sc27.lis           3    
  210. X answers/sc28.lis           6    
  211. X answers/sc29.lis           3    
  212. X answers/tg01.lis           1    
  213. X answers/tg02.lis           1    
  214. X answers/tg03.lis           1    
  215. X answers/tg04.lis           1    
  216. X answers/tg05.lis           1    
  217. X answers/tg06.lis           1    
  218. X answers/tg07.lis           1    
  219. X answers/tg08.lis           1    
  220. X answers/tg09.lis           1    
  221. X answers/wv01.lis           1    
  222. X answers/wv01.tex           6    
  223. X answers/wv02.lis           1    
  224. X answers/wv02.tex           9    
  225. X answers/wv03.lis           1    
  226. X answers/wv03.tex          11    
  227. X answers/wv04.lis           1    
  228. X answers/wv04.tex           8    
  229. X answers/wv05.lis           1    
  230. X answers/wv05.tex           8    
  231. X answers/wv06.lis           1    
  232. X answers/wv06.tex           8    
  233. X hackman                    1    
  234. X hackman/h_ch0.tex          3    
  235. X hackman/h_ch1.tex         14    
  236. X hackman/h_ch2.tex          9    
  237. X hackman/h_ch3.tex         12    
  238. X hackman/h_ch4.tex          9    
  239. X hackman/h_cha.tex         11    
  240. X hackman/h_manual.aux       3    
  241. X hackman/h_manual.idx       4    
  242. X hackman/h_manual.log       3    
  243. X hackman/h_manual.sin       4    
  244. X hackman/h_manual.tex       4    
  245. X hackman/h_manual.toc       2    
  246. X results                    1    
  247. X scripts                    1    
  248. X scripts/0license.txt       1    
  249. X scripts/master.fws         4    
  250. X scripts/test_gen.fws       1    
  251. X scripts/test_l.fws         1    
  252. X scripts/test_ld.fws        1    
  253. X scripts/test_lo.fws        1    
  254. X scripts/test_lo2.fws       1    
  255. X scripts/test_lot.fws       1    
  256. X scripts/test_lt.fws        1    
  257. X sources                    1    
  258. X sources/Makefile           1    
  259. X sources/analyse.c          5    
  260. X sources/analyse.h          2    
  261. X sources/as.c               2    
  262. X sources/as.h               3    
  263. X sources/clock.c            2    
  264. X sources/clock.h            3    
  265. X sources/command.c         18    
  266. X sources/command.h          2    
  267. X sources/data.c             2    
  268. X sources/data.h            12    
  269. X sources/dump.c            12    
  270. X sources/dump.h             2    
  271. X sources/environ.h          5    
  272. X sources/help.c            13    
  273. X sources/help.h             4    
  274. X sources/help_gnu.c         3    
  275. X sources/help_gnu.ctx      11    
  276. X sources/help_gnu.h         2    
  277. X sources/help_gnu.txt       9    
  278. X sources/list.c             4    
  279. X sources/list.h             5    
  280. X sources/lister.c           5    
  281. X sources/lister.h           2    
  282. X sources/machin.c           5    
  283. X sources/machin.h           6    
  284. X sources/main.c             2    
  285. X sources/mapper.c           8    
  286. X sources/mapper.h           2    
  287. X sources/memory.c           6    
  288. X sources/memory.h           3    
  289. X sources/misc.c             3    
  290. X sources/misc.h             3    
  291. X sources/option.c           7    
  292. X sources/option.h           3    
  293. X sources/parser.c          15    
  294. X sources/parser.h           2    
  295. X sources/scanner.c         17    
  296. X sources/scanner.h          2    
  297. X sources/section.c          2    
  298. X sources/section.h          3    
  299. X sources/style.h            6    
  300. X sources/table.c            7    
  301. X sources/table.h            4    
  302. X sources/tangle.c           9    
  303. X sources/tangle.h           2    
  304. X sources/texhead.c          3    
  305. X sources/texhead.ctx        7    
  306. X sources/texhead.h          3    
  307. X sources/texhead.tex        5    
  308. X sources/weave.c           13    
  309. X sources/weave.h            2    
  310. X sources/writfile.c         4    
  311. X sources/writfile.h         5    
  312. X tests                      1    
  313. X tests/0license.txt         1    
  314. X tests/an01.fw              1    
  315. X tests/an02.fw              1    
  316. X tests/an03.fw              1    
  317. X tests/an04.fw              1    
  318. X tests/ex01.fw              1    
  319. X tests/ex02.fw              1    
  320. X tests/ex03.fw              1    
  321. X tests/ex04.fw              1    
  322. X tests/ex05.fw              1    
  323. X tests/ex06.fw              1    
  324. X tests/ex07.fw              1    
  325. X tests/ex08.fw              1    
  326. X tests/ex09.fw              1    
  327. X tests/ex09a.fwi            1    
  328. X tests/ex10.fw              1    
  329. X tests/ex10a.fwi            1    
  330. X tests/ex11.fw              1    
  331. X tests/ex12.fw              1    
  332. X tests/ex13.fw              1    
  333. X tests/ex14.fw              1    
  334. X tests/ex15.fw              1    
  335. X tests/ex16.fw              2    
  336. X tests/generate.fw          2    
  337. X tests/hi01.fw              1    
  338. X tests/hi02.fw              1    
  339. X tests/hi03.fw              1    
  340. X tests/hi04.fw              1    
  341. X tests/hi05.fw              1    
  342. X tests/hi06.fw              1    
  343. X tests/hi07.fw              1    
  344. X tests/hi08.fw              1    
  345. X tests/hi09.fw              2    
  346. X tests/hi10.fw              2    
  347. X tests/pr01.fw              1    
  348. X tests/pr02.fw              1    
  349. X tests/pr03.fw              1    
  350. X tests/pr04.fw              1    
  351. X tests/pr05.fw              1    
  352. X tests/pr06.fw              1    
  353. X tests/pr07.fw              1    
  354. X tests/pr08.fw              2    
  355. X tests/pr09.fw              2    
  356. X tests/pr10.fw              1    
  357. X tests/sc01_note.fw         1    
  358. X tests/sc02.fw              1    
  359. X tests/sc03.fw              1    
  360. X tests/sc04.fw              1    
  361. X tests/sc05.fw              1    
  362. X tests/sc06.fw              1    
  363. X tests/sc07.fw              1    
  364. X tests/sc08.fw              1    
  365. X tests/sc09.fw              1    
  366. X tests/sc10.fw              2    
  367. X tests/sc11.fw              2    
  368. X tests/sc12.fw              1    
  369. X tests/sc13.fw              1    
  370. X tests/sc13a.fwi            1    
  371. X tests/sc13b.fwi            1    
  372. X tests/sc13c.fwi            1    
  373. X tests/sc13d.fwi            1    
  374. X tests/sc13e.fwi            1    
  375. X tests/sc13f.fwi            1    
  376. X tests/sc14.fw              1    
  377. X tests/sc15.fw              1    
  378. X tests/sc15a.fwi            1    
  379. X tests/sc16.fw              1    
  380. X tests/sc17.fw              1    
  381. X tests/sc18.fw              1    
  382. X tests/sc19.fw              1    
  383. X tests/sc20.fw              1    
  384. X tests/sc21.fw              1    
  385. X tests/sc22.fw              1    
  386. X tests/sc23.fw              1    
  387. X tests/sc24.fw              1    
  388. X tests/sc25.fw              1    
  389. X tests/sc26.fw              1    
  390. X tests/sc27.fw              1    
  391. X tests/sc28.fw              1    
  392. X tests/sc29.fw              1    
  393. X tests/tg01.fw              1    
  394. X tests/tg02.fw              1    
  395. X tests/tg03.fw              1    
  396. X tests/tg04.fw              1    
  397. X tests/tg05.fw              1    
  398. X tests/tg06.fw              1    
  399. X tests/tg07.fw              1    
  400. X tests/tg08.fw              1    
  401. X tests/tg08a.fwi            1    
  402. X tests/tg09.fw              1    
  403. X tests/wv01.fw              1    
  404. X tests/wv02.fw              1    
  405. X tests/wv03.fw              1    
  406. X tests/wv04.fw              1    
  407. X tests/wv05.fw              1    
  408. X tests/wv06.fw              1    
  409. X userman                    1    
  410. X userman/u_ch0.tex          4    
  411. X userman/u_ch1.tex         19    
  412. X userman/u_ch2.tex         16    
  413. X userman/u_ch3.tex         20    
  414. X userman/u_ch4.tex          8    
  415. X userman/u_ch5.tex          8    
  416. X userman/u_cha.tex          4    
  417. X userman/u_manual.aux      10    
  418. X userman/u_manual.idx      14    
  419. X userman/u_manual.log       2    
  420. X userman/u_manual.sin      13    
  421. X userman/u_manual.tex       4    
  422. X userman/u_manual.toc       5    
  423. END_OF_FILE
  424. if test 9383 -ne `wc -c <'MANIFEST'`; then
  425.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  426. fi
  427. # end of 'MANIFEST'
  428. fi
  429. if test -f 'README' -a "${1}" != "-c" ; then 
  430.   echo shar: Will not clobber existing file \"'README'\"
  431. else
  432. echo shar: Extracting \"'README'\" \(86 characters\)
  433. sed "s/^X//" >'README' <<'END_OF_FILE'
  434. to understand this, read 0readme.txt.
  435. X
  436. to build this, go to "sources" and type "make"
  437. END_OF_FILE
  438. if test 86 -ne `wc -c <'README'`; then
  439.     echo shar: \"'README'\" unpacked with wrong size!
  440. fi
  441. # end of 'README'
  442. fi
  443. if test ! -d 'admin' ; then
  444.     echo shar: Creating directory \"'admin'\"
  445.     mkdir 'admin'
  446. fi
  447. if test -f 'admin/0readme.txt' -a "${1}" != "-c" ; then 
  448.   echo shar: Will not clobber existing file \"'admin/0readme.txt'\"
  449. else
  450. echo shar: Extracting \"'admin/0readme.txt'\" \(461 characters\)
  451. sed "s/^X//" >'admin/0readme.txt' <<'END_OF_FILE'
  452. X
  453. XFUNNELWEB INSTALLATION
  454. X======================
  455. Chapter 4 of the FunnelWeb User's Manual contains full installation
  456. instructions for FunnelWeb in LaTeX format. Ideally you should print out
  457. the entire FunnelWeb User's Manual and then read the installation chapter
  458. for installation instructions. The LaTeX files for the User's Manual are in
  459. fwdir/userman/
  460. X
  461. If you are in a hurry, print out fwdir/userman/u_ch4.tex in text form and
  462. follow the instructions within.
  463. X
  464. END_OF_FILE
  465. if test 461 -ne `wc -c <'admin/0readme.txt'`; then
  466.     echo shar: \"'admin/0readme.txt'\" unpacked with wrong size!
  467. fi
  468. # end of 'admin/0readme.txt'
  469. fi
  470. if test -f 'admin/ad.txt' -a "${1}" != "-c" ; then 
  471.   echo shar: Will not clobber existing file \"'admin/ad.txt'\"
  472. else
  473. echo shar: Extracting \"'admin/ad.txt'\" \(1332 characters\)
  474. sed "s/^X//" >'admin/ad.txt' <<'END_OF_FILE'
  475. X
  476. ANNOUNCING FUNNELWEB
  477. X====================
  478. Author : Ross Williams (ross@spam.adelaide.edu.au).
  479. Date   : 27-May-1992.
  480. X
  481. XFunnelWeb is a production-quality literate-programming tool that emphasises
  482. simplicity and reliability. It provides a macro facility, and assists in the
  483. production of typeset documentation. FunnelWeb runs on most popular machines
  484. X(Sun, VAX, Mac, PC) and its highly portable source code in C is freely
  485. available under a GNU license.
  486. X
  487. XFeatures:
  488. X   + Provides a simple macro preprocessor facility.
  489. X   + Assists in the generation of typeset documentation.
  490. X   + Runs on Sun, VMS VAX, Macintosh, and PC.
  491. X   + Portable C source code distributed under GNU licence.
  492. X   + Comprehensive user's manual (115 pages).
  493. X   + Input programming language independent.
  494. X   + Allows complete control over the output text.
  495. X   + Regression test suite with over 200 tests.
  496. X   - Requires TeX to produce typeset documentation.
  497. X   - Typesets program code using TT font only.
  498. X
  499. How to Obtain FunnelWeb
  500. X-----------------------
  501. XFunnelWeb can be obtained by anonymous FTP from:
  502. X
  503. Machine  : sirius.itd.adelaide.edu.au [IP=129.127.40.3].
  504. Directory: ~pub/funnelweb/   (or a directory of similar name).
  505. X
  506. It is not clear at the time of writing whether FunnelWeb will be
  507. presented as a TAR file or as a directory tree or both.
  508. X
  509. X--<End of Announcement>--
  510. END_OF_FILE
  511. if test 1332 -ne `wc -c <'admin/ad.txt'`; then
  512.     echo shar: \"'admin/ad.txt'\" unpacked with wrong size!
  513. fi
  514. # end of 'admin/ad.txt'
  515. fi
  516. if test -f 'admin/fixeols.fws' -a "${1}" != "-c" ; then 
  517.   echo shar: Will not clobber existing file \"'admin/fixeols.fws'\"
  518. else
  519. echo shar: Extracting \"'admin/fixeols.fws'\" \(1286 characters\)
  520. sed "s/^X//" >'admin/fixeols.fws' <<'END_OF_FILE'
  521. X! This scrip is useful for cleaning up the source code if you
  522. X! already have a working version of FunnelWeb.
  523. X
  524. trace on
  525. define 1 "slartibartfast:funnelweb:funnelweb-2:sources:"
  526. X
  527. fixeols $1analyse.h
  528. fixeols $1analyse.c
  529. fixeols $1as.h
  530. fixeols $1as.c
  531. fixeols $1clock.h
  532. fixeols $1clock.c
  533. fixeols $1command.h
  534. fixeols $1command.c
  535. fixeols $1data.h
  536. fixeols $1data.c
  537. fixeols $1dump.h
  538. fixeols $1dump.c
  539. fixeols $1environ.h
  540. fixeols $1help.h
  541. fixeols $1help.c
  542. fixeols $1help_gnu.h
  543. fixeols $1help_gnu.c
  544. fixeols $1help_gnu.txt
  545. fixeols $1help_gnu.ctx
  546. fixeols $1list.h
  547. fixeols $1list.c
  548. fixeols $1lister.h
  549. fixeols $1lister.c
  550. fixeols $1machin.h
  551. fixeols $1machin.c
  552. fixeols $1main.c
  553. fixeols $1mapper.h
  554. fixeols $1mapper.c
  555. fixeols $1memory.h
  556. fixeols $1memory.c
  557. fixeols $1misc.h
  558. fixeols $1misc.c
  559. fixeols $1option.h
  560. fixeols $1option.c
  561. fixeols $1parser.h
  562. fixeols $1parser.c
  563. fixeols $1scanner.h
  564. fixeols $1scanner.c
  565. fixeols $1section.h
  566. fixeols $1section.c
  567. fixeols $1style.h
  568. fixeols $1table.h
  569. fixeols $1table.c
  570. fixeols $1tangle.h
  571. fixeols $1tangle.c
  572. fixeols $1texhead.h
  573. fixeols $1texhead.c
  574. fixeols $1texhead.ctx
  575. fixeols $1texhead.tex
  576. fixeols $1weave.h
  577. fixeols $1weave.c
  578. fixeols $1writfile.h
  579. fixeols $1writfile.c
  580. X
  581. X!Now for the test scripts.
  582. fixeols $1master.fws
  583. X!The other scripts are cleaned just before they are run.
  584. END_OF_FILE
  585. if test 1286 -ne `wc -c <'admin/fixeols.fws'`; then
  586.     echo shar: \"'admin/fixeols.fws'\" unpacked with wrong size!
  587. fi
  588. # end of 'admin/fixeols.fws'
  589. fi
  590. if test -f 'admin/makescript' -a "${1}" != "-c" ; then 
  591.   echo shar: Will not clobber existing file \"'admin/makescript'\"
  592. else
  593. echo shar: Extracting \"'admin/makescript'\" \(120 characters\)
  594. sed "s/^X//" >'admin/makescript' <<'END_OF_FILE'
  595. X#!/bin/csh
  596. X# Choose betwen GNU C (gcc), or the default C (cc) on your system.
  597. gcc -o fw -g -Wall *.c
  598. X#
  599. X#cc -o fw -g *.c
  600. END_OF_FILE
  601. if test 120 -ne `wc -c <'admin/makescript'`; then
  602.     echo shar: \"'admin/makescript'\" unpacked with wrong size!
  603. fi
  604. # end of 'admin/makescript'
  605. fi
  606. if test ! -d 'answers' ; then
  607.     echo shar: Creating directory \"'answers'\"
  608.     mkdir 'answers'
  609. fi
  610. if test -f 'answers/0license.txt' -a "${1}" != "-c" ; then 
  611.   echo shar: Will not clobber existing file \"'answers/0license.txt'\"
  612. else
  613. echo shar: Extracting \"'answers/0license.txt'\" \(1290 characters\)
  614. sed "s/^X//" >'answers/0license.txt' <<'END_OF_FILE'
  615. X
  616. XFUNNNELWEB COPYRIGHT
  617. X====================
  618. XFunnelWeb is a literate-programming macro preprocessor.
  619. X
  620. The files in this directory are:
  621. X
  622. Copyright (C) 1992 Ross N. Williams.
  623. X
  624. X   Ross N. Williams
  625. X   ross@spam.adelaide.edu.au
  626. X   16 Lerwick Avenue, Hazelwood Park 5066, Australia.
  627. X
  628. This program is free software; you can redistribute it and/or modify
  629. it under the terms of Version 2 of the GNU General Public License as
  630. published by the Free Software Foundation.
  631. X
  632. This program is distributed WITHOUT ANY WARRANTY; without even the implied
  633. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  634. See Version 2 of the GNU General Public License for more details.
  635. X
  636. You should have received a copy of Version 2 of the GNU General Public
  637. License along with this program. If not, you can FTP the license from
  638. prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software
  639. XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  640. X
  641. Section 2a of the license requires that all changes to this file be
  642. recorded prominently in this file. Please record all changes here.
  643. X
  644. Programmers:
  645. X   RNW  Ross N. Williams  ross@spam.adelaide.edu.au
  646. X
  647. Changes:
  648. X   07-May-1992  RNW  Program prepared for release under GNU GPL V2.
  649. X
  650. X###############################################################################
  651. X
  652. END_OF_FILE
  653. if test 1290 -ne `wc -c <'answers/0license.txt'`; then
  654.     echo shar: \"'answers/0license.txt'\" unpacked with wrong size!
  655. fi
  656. # end of 'answers/0license.txt'
  657. fi
  658. if test -f 'answers/an01.lis' -a "${1}" != "-c" ; then 
  659.   echo shar: Will not clobber existing file \"'answers/an01.lis'\"
  660. else
  661. echo shar: Extracting \"'answers/an01.lis'\" \(327 characters\)
  662. sed "s/^X//" >'answers/an01.lis' <<'END_OF_FILE'
  663. XFUNNELWEB LISTING FILE
  664. X======================
  665. X
  666. XE: No macros defined.
  667. XE: No output files specified.
  668. X
  669. Global Local| Input File
  670. X------------+-------------------------------------------------------------------
  671. X.................
  672. X------------+-------------------------------------------------------------------
  673. X
  674. There were 2 Errors.
  675. END_OF_FILE
  676. if test 327 -ne `wc -c <'answers/an01.lis'`; then
  677.     echo shar: \"'answers/an01.lis'\" unpacked with wrong size!
  678. fi
  679. # end of 'answers/an01.lis'
  680. fi
  681. if test -f 'answers/an02.lis' -a "${1}" != "-c" ; then 
  682.   echo shar: Will not clobber existing file \"'answers/an02.lis'\"
  683. else
  684. echo shar: Extracting \"'answers/an02.lis'\" \(303 characters\)
  685. sed "s/^X//" >'answers/an02.lis' <<'END_OF_FILE'
  686. XFUNNELWEB LISTING FILE
  687. X======================
  688. X
  689. XE: No output files specified.
  690. X
  691. Global Local| Input File
  692. X------------+-------------------------------------------------------------------
  693. X.................
  694. X------------+-------------------------------------------------------------------
  695. X
  696. There was 1 Error.
  697. END_OF_FILE
  698. if test 303 -ne `wc -c <'answers/an02.lis'`; then
  699.     echo shar: \"'answers/an02.lis'\" unpacked with wrong size!
  700. fi
  701. # end of 'answers/an02.lis'
  702. fi
  703. if test -f 'answers/an04.lis' -a "${1}" != "-c" ; then 
  704.   echo shar: Will not clobber existing file \"'answers/an04.lis'\"
  705. else
  706. echo shar: Extracting \"'answers/an04.lis'\" \(1044 characters\)
  707. sed "s/^X//" >'answers/an04.lis' <<'END_OF_FILE'
  708. XFUNNELWEB LISTING FILE
  709. X======================
  710. X
  711. XE: No output files specified.
  712. X
  713. Global Local| Input File
  714. X------------+-------------------------------------------------------------------
  715. X     1     1| AN04: Test document list checks.
  716. X     2     2| 
  717. X     3     3| 1. Test for sections with no names.
  718. X     4     4| 
  719. X     5     5| @A@<This section has both a name and a macro@>
  720. X     6     6| @$@<Sloth@>@Z@{@}
  721. X     7     7| 
  722. X     8     8| @A@<This section has an explicit name but no macro@>
  723. X     9     9| 
  724. X    10    10| @A
  725. X    11    11| @$@<This section has no explicit name but does have a macro@>@Z@{@}
  726. X    12    12| 
  727. X    13    13| @A This section has no name and no macro to inherit one from.
  728. X       Error|.^This section has no name.
  729. X            |.^You can give it one explicitly (As in @A@<Sloth@>) or implicitly by
  730. X            |.^defining a macro (whose name will be inherited) within the section.
  731. X    14    14| 
  732. X            | <End-Of-File>
  733. X------------+-------------------------------------------------------------------
  734. X
  735. There were 2 Errors.
  736. END_OF_FILE
  737. if test 1044 -ne `wc -c <'answers/an04.lis'`; then
  738.     echo shar: \"'answers/an04.lis'\" unpacked with wrong size!
  739. fi
  740. # end of 'answers/an04.lis'
  741. fi
  742. if test -f 'answers/ex01.lis' -a "${1}" != "-c" ; then 
  743.   echo shar: Will not clobber existing file \"'answers/ex01.lis'\"
  744. else
  745. echo shar: Extracting \"'answers/ex01.lis'\" \(308 characters\)
  746. sed "s/^X//" >'answers/ex01.lis' <<'END_OF_FILE'
  747. XFUNNELWEB LISTING FILE
  748. X======================
  749. X
  750. X
  751. Global Local| Input File
  752. X------------+-------------------------------------------------------------------
  753. X.................
  754. X------------+-------------------------------------------------------------------
  755. X
  756. Tangle: Completed ex01.out.
  757. X
  758. SUCCESS: No diagnostics.
  759. END_OF_FILE
  760. if test 308 -ne `wc -c <'answers/ex01.lis'`; then
  761.     echo shar: \"'answers/ex01.lis'\" unpacked with wrong size!
  762. fi
  763. # end of 'answers/ex01.lis'
  764. fi
  765. if test -f 'answers/ex02.lis' -a "${1}" != "-c" ; then 
  766.   echo shar: Will not clobber existing file \"'answers/ex02.lis'\"
  767. else
  768. echo shar: Extracting \"'answers/ex02.lis'\" \(308 characters\)
  769. sed "s/^X//" >'answers/ex02.lis' <<'END_OF_FILE'
  770. XFUNNELWEB LISTING FILE
  771. X======================
  772. X
  773. X
  774. Global Local| Input File
  775. X------------+-------------------------------------------------------------------
  776. X.................
  777. X------------+-------------------------------------------------------------------
  778. X
  779. Tangle: Completed ex02.out.
  780. X
  781. SUCCESS: No diagnostics.
  782. END_OF_FILE
  783. if test 308 -ne `wc -c <'answers/ex02.lis'`; then
  784.     echo shar: \"'answers/ex02.lis'\" unpacked with wrong size!
  785. fi
  786. # end of 'answers/ex02.lis'
  787. fi
  788. if test -f 'answers/ex03.lis' -a "${1}" != "-c" ; then 
  789.   echo shar: Will not clobber existing file \"'answers/ex03.lis'\"
  790. else
  791. echo shar: Extracting \"'answers/ex03.lis'\" \(1516 characters\)
  792. sed "s/^X//" >'answers/ex03.lis' <<'END_OF_FILE'
  793. XFUNNELWEB LISTING FILE
  794. X======================
  795. X
  796. X
  797. Global Local| Input File
  798. X------------+-------------------------------------------------------------------
  799. X     1     1| EX03: An example containing errors to do with the number of times
  800. X     2     2|       that macros are called.
  801. X     3     3| 
  802. X     4     4| @O@<ex03.out@>==@{@-
  803. X     5     5| @<Include Files@>
  804. X     6     6| @<Include Files@>
  805. X     7     7| @<Main Program@>
  806. X     8     8| @}
  807. X     9     9| 
  808. X    10    10| @$@<Main Program@>==@{@-
  809. X    11    11| main()
  810. X    12    12| {
  811. X    13    13|  doit();
  812. X    14    14| }
  813. X    15    15| @}
  814. X    16    16| 
  815. X    17    17| @$@<Subroutine@>==@{@-
  816. X       Error|.^This macro is never used (and has no @Z).
  817. X    18    18| void doit()
  818. X    19    19| {
  819. X    20    20|  int i;
  820. X    21    21|  for (i=0;i<10;i++)
  821. X    22    22|    {
  822. X    23    23|     @<Print@>
  823. X    24    24|     @<Print@>
  824. X    25    25|    }
  825. X    26    26| }@}
  826. X    27    27| 
  827. X    28    28| @$@<Print@>==@{@-
  828. X       Error|.^This macro is used more than once (and has no @M).
  829. X    29    29| printf("Hello World!");
  830. X    30    30| printf("\n");@}
  831. X    31    31| 
  832. X    32    32| @$@<Scan@>==@{scanf@}
  833. X       Error|.^This macro is never used (and has no @Z).
  834. X    33    33| 
  835. X    34    34| @$@<Include Files@>==@{@-
  836. X       Error|.^This macro is used more than once (and has no @M).
  837. X    35    35| #include <stdio.h>
  838. X    36    36| #include <stdlib.h>@}
  839. X            | <End-Of-File>
  840. X------------+-------------------------------------------------------------------
  841. X
  842. There were 4 Errors.
  843. END_OF_FILE
  844. if test 1516 -ne `wc -c <'answers/ex03.lis'`; then
  845.     echo shar: \"'answers/ex03.lis'\" unpacked with wrong size!
  846. fi
  847. # end of 'answers/ex03.lis'
  848. fi
  849. if test -f 'answers/ex04.lis' -a "${1}" != "-c" ; then 
  850.   echo shar: Will not clobber existing file \"'answers/ex04.lis'\"
  851. else
  852. echo shar: Extracting \"'answers/ex04.lis'\" \(308 characters\)
  853. sed "s/^X//" >'answers/ex04.lis' <<'END_OF_FILE'
  854. XFUNNELWEB LISTING FILE
  855. X======================
  856. X
  857. X
  858. Global Local| Input File
  859. X------------+-------------------------------------------------------------------
  860. X.................
  861. X------------+-------------------------------------------------------------------
  862. X
  863. Tangle: Completed ex04.out.
  864. X
  865. SUCCESS: No diagnostics.
  866. END_OF_FILE
  867. if test 308 -ne `wc -c <'answers/ex04.lis'`; then
  868.     echo shar: \"'answers/ex04.lis'\" unpacked with wrong size!
  869. fi
  870. # end of 'answers/ex04.lis'
  871. fi
  872. if test -f 'answers/ex05.lis' -a "${1}" != "-c" ; then 
  873.   echo shar: Will not clobber existing file \"'answers/ex05.lis'\"
  874. else
  875. echo shar: Extracting \"'answers/ex05.lis'\" \(308 characters\)
  876. sed "s/^X//" >'answers/ex05.lis' <<'END_OF_FILE'
  877. XFUNNELWEB LISTING FILE
  878. X======================
  879. X
  880. X
  881. Global Local| Input File
  882. X------------+-------------------------------------------------------------------
  883. X.................
  884. X------------+-------------------------------------------------------------------
  885. X
  886. Tangle: Completed ex05.out.
  887. X
  888. SUCCESS: No diagnostics.
  889. END_OF_FILE
  890. if test 308 -ne `wc -c <'answers/ex05.lis'`; then
  891.     echo shar: \"'answers/ex05.lis'\" unpacked with wrong size!
  892. fi
  893. # end of 'answers/ex05.lis'
  894. fi
  895. if test -f 'answers/ex06.lis' -a "${1}" != "-c" ; then 
  896.   echo shar: Will not clobber existing file \"'answers/ex06.lis'\"
  897. else
  898. echo shar: Extracting \"'answers/ex06.lis'\" \(308 characters\)
  899. sed "s/^X//" >'answers/ex06.lis' <<'END_OF_FILE'
  900. XFUNNELWEB LISTING FILE
  901. X======================
  902. X
  903. X
  904. Global Local| Input File
  905. X------------+-------------------------------------------------------------------
  906. X.................
  907. X------------+-------------------------------------------------------------------
  908. X
  909. Tangle: Completed ex06.out.
  910. X
  911. SUCCESS: No diagnostics.
  912. END_OF_FILE
  913. if test 308 -ne `wc -c <'answers/ex06.lis'`; then
  914.     echo shar: \"'answers/ex06.lis'\" unpacked with wrong size!
  915. fi
  916. # end of 'answers/ex06.lis'
  917. fi
  918. if test -f 'answers/ex07.lis' -a "${1}" != "-c" ; then 
  919.   echo shar: Will not clobber existing file \"'answers/ex07.lis'\"
  920. else
  921. echo shar: Extracting \"'answers/ex07.lis'\" \(308 characters\)
  922. sed "s/^X//" >'answers/ex07.lis' <<'END_OF_FILE'
  923. XFUNNELWEB LISTING FILE
  924. X======================
  925. X
  926. X
  927. Global Local| Input File
  928. X------------+-------------------------------------------------------------------
  929. X.................
  930. X------------+-------------------------------------------------------------------
  931. X
  932. Tangle: Completed ex07.out.
  933. X
  934. SUCCESS: No diagnostics.
  935. END_OF_FILE
  936. if test 308 -ne `wc -c <'answers/ex07.lis'`; then
  937.     echo shar: \"'answers/ex07.lis'\" unpacked with wrong size!
  938. fi
  939. # end of 'answers/ex07.lis'
  940. fi
  941. if test -f 'answers/ex08.lis' -a "${1}" != "-c" ; then 
  942.   echo shar: Will not clobber existing file \"'answers/ex08.lis'\"
  943. else
  944. echo shar: Extracting \"'answers/ex08.lis'\" \(308 characters\)
  945. sed "s/^X//" >'answers/ex08.lis' <<'END_OF_FILE'
  946. XFUNNELWEB LISTING FILE
  947. X======================
  948. X
  949. X
  950. Global Local| Input File
  951. X------------+-------------------------------------------------------------------
  952. X.................
  953. X------------+-------------------------------------------------------------------
  954. X
  955. Tangle: Completed ex08.out.
  956. X
  957. SUCCESS: No diagnostics.
  958. END_OF_FILE
  959. if test 308 -ne `wc -c <'answers/ex08.lis'`; then
  960.     echo shar: \"'answers/ex08.lis'\" unpacked with wrong size!
  961. fi
  962. # end of 'answers/ex08.lis'
  963. fi
  964. if test -f 'answers/ex09.lis' -a "${1}" != "-c" ; then 
  965.   echo shar: Will not clobber existing file \"'answers/ex09.lis'\"
  966. else
  967. echo shar: Extracting \"'answers/ex09.lis'\" \(308 characters\)
  968. sed "s/^X//" >'answers/ex09.lis' <<'END_OF_FILE'
  969. XFUNNELWEB LISTING FILE
  970. X======================
  971. X
  972. X
  973. Global Local| Input File
  974. X------------+-------------------------------------------------------------------
  975. X.................
  976. X------------+-------------------------------------------------------------------
  977. X
  978. Tangle: Completed ex09.out.
  979. X
  980. SUCCESS: No diagnostics.
  981. END_OF_FILE
  982. if test 308 -ne `wc -c <'answers/ex09.lis'`; then
  983.     echo shar: \"'answers/ex09.lis'\" unpacked with wrong size!
  984. fi
  985. # end of 'answers/ex09.lis'
  986. fi
  987. if test -f 'answers/ex10.lis' -a "${1}" != "-c" ; then 
  988.   echo shar: Will not clobber existing file \"'answers/ex10.lis'\"
  989. else
  990. echo shar: Extracting \"'answers/ex10.lis'\" \(308 characters\)
  991. sed "s/^X//" >'answers/ex10.lis' <<'END_OF_FILE'
  992. XFUNNELWEB LISTING FILE
  993. X======================
  994. X
  995. X
  996. Global Local| Input File
  997. X------------+-------------------------------------------------------------------
  998. X.................
  999. X------------+-------------------------------------------------------------------
  1000. X
  1001. Tangle: Completed ex10.out.
  1002. X
  1003. SUCCESS: No diagnostics.
  1004. END_OF_FILE
  1005. if test 308 -ne `wc -c <'answers/ex10.lis'`; then
  1006.     echo shar: \"'answers/ex10.lis'\" unpacked with wrong size!
  1007. fi
  1008. # end of 'answers/ex10.lis'
  1009. fi
  1010. if test -f 'answers/ex11.lis' -a "${1}" != "-c" ; then 
  1011.   echo shar: Will not clobber existing file \"'answers/ex11.lis'\"
  1012. else
  1013. echo shar: Extracting \"'answers/ex11.lis'\" \(313 characters\)
  1014. sed "s/^X//" >'answers/ex11.lis' <<'END_OF_FILE'
  1015. XFUNNELWEB LISTING FILE
  1016. X======================
  1017. X
  1018. X
  1019. Global Local| Input File
  1020. X------------+-------------------------------------------------------------------
  1021. X.................
  1022. X------------+-------------------------------------------------------------------
  1023. X
  1024. Weave: Completed <<Suppressed>>.
  1025. X
  1026. SUCCESS: No diagnostics.
  1027. END_OF_FILE
  1028. if test 313 -ne `wc -c <'answers/ex11.lis'`; then
  1029.     echo shar: \"'answers/ex11.lis'\" unpacked with wrong size!
  1030. fi
  1031. # end of 'answers/ex11.lis'
  1032. fi
  1033. if test -f 'answers/ex12.lis' -a "${1}" != "-c" ; then 
  1034.   echo shar: Will not clobber existing file \"'answers/ex12.lis'\"
  1035. else
  1036. echo shar: Extracting \"'answers/ex12.lis'\" \(313 characters\)
  1037. sed "s/^X//" >'answers/ex12.lis' <<'END_OF_FILE'
  1038. XFUNNELWEB LISTING FILE
  1039. X======================
  1040. X
  1041. X
  1042. Global Local| Input File
  1043. X------------+-------------------------------------------------------------------
  1044. X.................
  1045. X------------+-------------------------------------------------------------------
  1046. X
  1047. Weave: Completed <<Suppressed>>.
  1048. X
  1049. SUCCESS: No diagnostics.
  1050. END_OF_FILE
  1051. if test 313 -ne `wc -c <'answers/ex12.lis'`; then
  1052.     echo shar: \"'answers/ex12.lis'\" unpacked with wrong size!
  1053. fi
  1054. # end of 'answers/ex12.lis'
  1055. fi
  1056. if test -f 'answers/ex13.lis' -a "${1}" != "-c" ; then 
  1057.   echo shar: Will not clobber existing file \"'answers/ex13.lis'\"
  1058. else
  1059. echo shar: Extracting \"'answers/ex13.lis'\" \(313 characters\)
  1060. sed "s/^X//" >'answers/ex13.lis' <<'END_OF_FILE'
  1061. XFUNNELWEB LISTING FILE
  1062. X======================
  1063. X
  1064. X
  1065. Global Local| Input File
  1066. X------------+-------------------------------------------------------------------
  1067. X.................
  1068. X------------+-------------------------------------------------------------------
  1069. X
  1070. Weave: Completed <<Suppressed>>.
  1071. X
  1072. SUCCESS: No diagnostics.
  1073. END_OF_FILE
  1074. if test 313 -ne `wc -c <'answers/ex13.lis'`; then
  1075.     echo shar: \"'answers/ex13.lis'\" unpacked with wrong size!
  1076. fi
  1077. # end of 'answers/ex13.lis'
  1078. fi
  1079. if test -f 'answers/ex14.lis' -a "${1}" != "-c" ; then 
  1080.   echo shar: Will not clobber existing file \"'answers/ex14.lis'\"
  1081. else
  1082. echo shar: Extracting \"'answers/ex14.lis'\" \(313 characters\)
  1083. sed "s/^X//" >'answers/ex14.lis' <<'END_OF_FILE'
  1084. XFUNNELWEB LISTING FILE
  1085. X======================
  1086. X
  1087. X
  1088. Global Local| Input File
  1089. X------------+-------------------------------------------------------------------
  1090. X.................
  1091. X------------+-------------------------------------------------------------------
  1092. X
  1093. Weave: Completed <<Suppressed>>.
  1094. X
  1095. SUCCESS: No diagnostics.
  1096. END_OF_FILE
  1097. if test 313 -ne `wc -c <'answers/ex14.lis'`; then
  1098.     echo shar: \"'answers/ex14.lis'\" unpacked with wrong size!
  1099. fi
  1100. # end of 'answers/ex14.lis'
  1101. fi
  1102. if test -f 'answers/ex15.lis' -a "${1}" != "-c" ; then 
  1103.   echo shar: Will not clobber existing file \"'answers/ex15.lis'\"
  1104. else
  1105. echo shar: Extracting \"'answers/ex15.lis'\" \(313 characters\)
  1106. sed "s/^X//" >'answers/ex15.lis' <<'END_OF_FILE'
  1107. XFUNNELWEB LISTING FILE
  1108. X======================
  1109. X
  1110. X
  1111. Global Local| Input File
  1112. X------------+-------------------------------------------------------------------
  1113. X.................
  1114. X------------+-------------------------------------------------------------------
  1115. X
  1116. Weave: Completed <<Suppressed>>.
  1117. X
  1118. SUCCESS: No diagnostics.
  1119. END_OF_FILE
  1120. if test 313 -ne `wc -c <'answers/ex15.lis'`; then
  1121.     echo shar: \"'answers/ex15.lis'\" unpacked with wrong size!
  1122. fi
  1123. # end of 'answers/ex15.lis'
  1124. fi
  1125. if test -f 'answers/ex16.lis' -a "${1}" != "-c" ; then 
  1126.   echo shar: Will not clobber existing file \"'answers/ex16.lis'\"
  1127. else
  1128. echo shar: Extracting \"'answers/ex16.lis'\" \(341 characters\)
  1129. sed "s/^X//" >'answers/ex16.lis' <<'END_OF_FILE'
  1130. XFUNNELWEB LISTING FILE
  1131. X======================
  1132. X
  1133. X
  1134. Global Local| Input File
  1135. X------------+-------------------------------------------------------------------
  1136. X.................
  1137. X------------+-------------------------------------------------------------------
  1138. X
  1139. Tangle: Completed ex16.out.
  1140. Weave: Completed <<Suppressed>>.
  1141. X
  1142. SUCCESS: No diagnostics.
  1143. END_OF_FILE
  1144. if test 341 -ne `wc -c <'answers/ex16.lis'`; then
  1145.     echo shar: \"'answers/ex16.lis'\" unpacked with wrong size!
  1146. fi
  1147. # end of 'answers/ex16.lis'
  1148. fi
  1149. if test -f 'answers/generate.lis' -a "${1}" != "-c" ; then 
  1150.   echo shar: Will not clobber existing file \"'answers/generate.lis'\"
  1151. else
  1152. echo shar: Extracting \"'answers/generate.lis'\" \(390 characters\)
  1153. sed "s/^X//" >'answers/generate.lis' <<'END_OF_FILE'
  1154. XFUNNELWEB LISTING FILE
  1155. X======================
  1156. X
  1157. X
  1158. Global Local| Input File
  1159. X------------+-------------------------------------------------------------------
  1160. X.................
  1161. X------------+-------------------------------------------------------------------
  1162. X
  1163. Tangle: Completed sc06.fw.
  1164. Tangle: Completed sc08.fw.
  1165. Tangle: Completed sc09.fw.
  1166. Tangle: Completed sc13e.fwi.
  1167. X
  1168. SUCCESS: No diagnostics.
  1169. END_OF_FILE
  1170. if test 390 -ne `wc -c <'answers/generate.lis'`; then
  1171.     echo shar: \"'answers/generate.lis'\" unpacked with wrong size!
  1172. fi
  1173. # end of 'answers/generate.lis'
  1174. fi
  1175. if test -f 'answers/hi01.lis' -a "${1}" != "-c" ; then 
  1176.   echo shar: Will not clobber existing file \"'answers/hi01.lis'\"
  1177. else
  1178. echo shar: Extracting \"'answers/hi01.lis'\" \(308 characters\)
  1179. sed "s/^X//" >'answers/hi01.lis' <<'END_OF_FILE'
  1180. XFUNNELWEB LISTING FILE
  1181. X======================
  1182. X
  1183. X
  1184. Global Local| Input File
  1185. X------------+-------------------------------------------------------------------
  1186. X.................
  1187. X------------+-------------------------------------------------------------------
  1188. X
  1189. Tangle: Completed hi01.out.
  1190. X
  1191. SUCCESS: No diagnostics.
  1192. END_OF_FILE
  1193. if test 308 -ne `wc -c <'answers/hi01.lis'`; then
  1194.     echo shar: \"'answers/hi01.lis'\" unpacked with wrong size!
  1195. fi
  1196. # end of 'answers/hi01.lis'
  1197. fi
  1198. if test -f 'answers/hi02.lis' -a "${1}" != "-c" ; then 
  1199.   echo shar: Will not clobber existing file \"'answers/hi02.lis'\"
  1200. else
  1201. echo shar: Extracting \"'answers/hi02.lis'\" \(308 characters\)
  1202. sed "s/^X//" >'answers/hi02.lis' <<'END_OF_FILE'
  1203. XFUNNELWEB LISTING FILE
  1204. X======================
  1205. X
  1206. X
  1207. Global Local| Input File
  1208. X------------+-------------------------------------------------------------------
  1209. X.................
  1210. X------------+-------------------------------------------------------------------
  1211. X
  1212. Tangle: Completed hi02.out.
  1213. X
  1214. SUCCESS: No diagnostics.
  1215. END_OF_FILE
  1216. if test 308 -ne `wc -c <'answers/hi02.lis'`; then
  1217.     echo shar: \"'answers/hi02.lis'\" unpacked with wrong size!
  1218. fi
  1219. # end of 'answers/hi02.lis'
  1220. fi
  1221. if test -f 'answers/hi03.lis' -a "${1}" != "-c" ; then 
  1222.   echo shar: Will not clobber existing file \"'answers/hi03.lis'\"
  1223. else
  1224. echo shar: Extracting \"'answers/hi03.lis'\" \(308 characters\)
  1225. sed "s/^X//" >'answers/hi03.lis' <<'END_OF_FILE'
  1226. XFUNNELWEB LISTING FILE
  1227. X======================
  1228. X
  1229. X
  1230. Global Local| Input File
  1231. X------------+-------------------------------------------------------------------
  1232. X.................
  1233. X------------+-------------------------------------------------------------------
  1234. X
  1235. Tangle: Completed hi03.out.
  1236. X
  1237. SUCCESS: No diagnostics.
  1238. END_OF_FILE
  1239. if test 308 -ne `wc -c <'answers/hi03.lis'`; then
  1240.     echo shar: \"'answers/hi03.lis'\" unpacked with wrong size!
  1241. fi
  1242. # end of 'answers/hi03.lis'
  1243. fi
  1244. if test -f 'answers/hi04.lis' -a "${1}" != "-c" ; then 
  1245.   echo shar: Will not clobber existing file \"'answers/hi04.lis'\"
  1246. else
  1247. echo shar: Extracting \"'answers/hi04.lis'\" \(308 characters\)
  1248. sed "s/^X//" >'answers/hi04.lis' <<'END_OF_FILE'
  1249. XFUNNELWEB LISTING FILE
  1250. X======================
  1251. X
  1252. X
  1253. Global Local| Input File
  1254. X------------+-------------------------------------------------------------------
  1255. X.................
  1256. X------------+-------------------------------------------------------------------
  1257. X
  1258. Tangle: Completed hi04.out.
  1259. X
  1260. SUCCESS: No diagnostics.
  1261. END_OF_FILE
  1262. if test 308 -ne `wc -c <'answers/hi04.lis'`; then
  1263.     echo shar: \"'answers/hi04.lis'\" unpacked with wrong size!
  1264. fi
  1265. # end of 'answers/hi04.lis'
  1266. fi
  1267. if test -f 'answers/hi05.lis' -a "${1}" != "-c" ; then 
  1268.   echo shar: Will not clobber existing file \"'answers/hi05.lis'\"
  1269. else
  1270. echo shar: Extracting \"'answers/hi05.lis'\" \(308 characters\)
  1271. sed "s/^X//" >'answers/hi05.lis' <<'END_OF_FILE'
  1272. XFUNNELWEB LISTING FILE
  1273. X======================
  1274. X
  1275. X
  1276. Global Local| Input File
  1277. X------------+-------------------------------------------------------------------
  1278. X.................
  1279. X------------+-------------------------------------------------------------------
  1280. X
  1281. Tangle: Completed hi05.out.
  1282. X
  1283. SUCCESS: No diagnostics.
  1284. END_OF_FILE
  1285. if test 308 -ne `wc -c <'answers/hi05.lis'`; then
  1286.     echo shar: \"'answers/hi05.lis'\" unpacked with wrong size!
  1287. fi
  1288. # end of 'answers/hi05.lis'
  1289. fi
  1290. if test -f 'answers/hi06.lis' -a "${1}" != "-c" ; then 
  1291.   echo shar: Will not clobber existing file \"'answers/hi06.lis'\"
  1292. else
  1293. echo shar: Extracting \"'answers/hi06.lis'\" \(338 characters\)
  1294. sed "s/^X//" >'answers/hi06.lis' <<'END_OF_FILE'
  1295. XFUNNELWEB LISTING FILE
  1296. X======================
  1297. X
  1298. X
  1299. Global Local| Input File
  1300. X------------+-------------------------------------------------------------------
  1301. X.................
  1302. X------------+-------------------------------------------------------------------
  1303. X
  1304. Tangle: Completed hi06a.out.
  1305. Tangle: Completed hi06b.out.
  1306. X
  1307. SUCCESS: No diagnostics.
  1308. END_OF_FILE
  1309. if test 338 -ne `wc -c <'answers/hi06.lis'`; then
  1310.     echo shar: \"'answers/hi06.lis'\" unpacked with wrong size!
  1311. fi
  1312. # end of 'answers/hi06.lis'
  1313. fi
  1314. if test -f 'answers/hi07.lis' -a "${1}" != "-c" ; then 
  1315.   echo shar: Will not clobber existing file \"'answers/hi07.lis'\"
  1316. else
  1317. echo shar: Extracting \"'answers/hi07.lis'\" \(338 characters\)
  1318. sed "s/^X//" >'answers/hi07.lis' <<'END_OF_FILE'
  1319. XFUNNELWEB LISTING FILE
  1320. X======================
  1321. X
  1322. X
  1323. Global Local| Input File
  1324. X------------+-------------------------------------------------------------------
  1325. X.................
  1326. X------------+-------------------------------------------------------------------
  1327. X
  1328. Tangle: Completed hi07a.out.
  1329. Tangle: Completed hi07b.out.
  1330. X
  1331. SUCCESS: No diagnostics.
  1332. END_OF_FILE
  1333. if test 338 -ne `wc -c <'answers/hi07.lis'`; then
  1334.     echo shar: \"'answers/hi07.lis'\" unpacked with wrong size!
  1335. fi
  1336. # end of 'answers/hi07.lis'
  1337. fi
  1338. if test -f 'answers/hi08.lis' -a "${1}" != "-c" ; then 
  1339.   echo shar: Will not clobber existing file \"'answers/hi08.lis'\"
  1340. else
  1341. echo shar: Extracting \"'answers/hi08.lis'\" \(308 characters\)
  1342. sed "s/^X//" >'answers/hi08.lis' <<'END_OF_FILE'
  1343. XFUNNELWEB LISTING FILE
  1344. X======================
  1345. X
  1346. X
  1347. Global Local| Input File
  1348. X------------+-------------------------------------------------------------------
  1349. X.................
  1350. X------------+-------------------------------------------------------------------
  1351. X
  1352. Tangle: Completed hi08.out.
  1353. X
  1354. SUCCESS: No diagnostics.
  1355. END_OF_FILE
  1356. if test 308 -ne `wc -c <'answers/hi08.lis'`; then
  1357.     echo shar: \"'answers/hi08.lis'\" unpacked with wrong size!
  1358. fi
  1359. # end of 'answers/hi08.lis'
  1360. fi
  1361. if test -f 'answers/hi09.lis' -a "${1}" != "-c" ; then 
  1362.   echo shar: Will not clobber existing file \"'answers/hi09.lis'\"
  1363. else
  1364. echo shar: Extracting \"'answers/hi09.lis'\" \(308 characters\)
  1365. sed "s/^X//" >'answers/hi09.lis' <<'END_OF_FILE'
  1366. XFUNNELWEB LISTING FILE
  1367. X======================
  1368. X
  1369. X
  1370. Global Local| Input File
  1371. X------------+-------------------------------------------------------------------
  1372. X.................
  1373. X------------+-------------------------------------------------------------------
  1374. X
  1375. Tangle: Completed hi09.out.
  1376. X
  1377. SUCCESS: No diagnostics.
  1378. END_OF_FILE
  1379. if test 308 -ne `wc -c <'answers/hi09.lis'`; then
  1380.     echo shar: \"'answers/hi09.lis'\" unpacked with wrong size!
  1381. fi
  1382. # end of 'answers/hi09.lis'
  1383. fi
  1384. if test -f 'answers/hi10.lis' -a "${1}" != "-c" ; then 
  1385.   echo shar: Will not clobber existing file \"'answers/hi10.lis'\"
  1386. else
  1387. echo shar: Extracting \"'answers/hi10.lis'\" \(308 characters\)
  1388. sed "s/^X//" >'answers/hi10.lis' <<'END_OF_FILE'
  1389. XFUNNELWEB LISTING FILE
  1390. X======================
  1391. X
  1392. X
  1393. Global Local| Input File
  1394. X------------+-------------------------------------------------------------------
  1395. X.................
  1396. X------------+-------------------------------------------------------------------
  1397. X
  1398. Tangle: Completed hi10.out.
  1399. X
  1400. SUCCESS: No diagnostics.
  1401. END_OF_FILE
  1402. if test 308 -ne `wc -c <'answers/hi10.lis'`; then
  1403.     echo shar: \"'answers/hi10.lis'\" unpacked with wrong size!
  1404. fi
  1405. # end of 'answers/hi10.lis'
  1406. fi
  1407. if test -f 'answers/sc01.lis' -a "${1}" != "-c" ; then 
  1408.   echo shar: Will not clobber existing file \"'answers/sc01.lis'\"
  1409. else
  1410. echo shar: Extracting \"'answers/sc01.lis'\" \(1128 characters\)
  1411. sed "s/^X//" >'answers/sc01.lis' <<'END_OF_FILE'
  1412. XFUNNELWEB LISTING FILE
  1413. X======================
  1414. X
  1415. S: Error opening input file "<<Suppressed>>".
  1416. X
  1417. X=========================== Start of LINE LIST DUMP ============================
  1418. X
  1419. Globl Local| Text
  1420. X-----------+--------------------------------------------------------------------
  1421. X00001 00001| <End-Of-File><010>
  1422. X-----------+--------------------------------------------------------------------
  1423. Globl Local| Text
  1424. X
  1425. X============================ End of LINE LIST DUMP =============================
  1426. X
  1427. X
  1428. X=========================== Start of TOKEN LIST DUMP ===========================
  1429. X
  1430. Summary: There are 1 tokens in the token list.
  1431. X
  1432. Line[Column]: Token Description
  1433. X-------------------------------
  1434. X
  1435. X0001[01]: End Of File. 
  1436. X============================ End of TOKEN LIST DUMP ============================
  1437. X
  1438. Macro table dump skipped (Parser was not invoked).
  1439. Document list dump skipped (Parser was not invoked).
  1440. X
  1441. Global Local| Input File
  1442. X------------+-------------------------------------------------------------------
  1443. X.................
  1444. X------------+-------------------------------------------------------------------
  1445. X
  1446. There was 1 Severe error.
  1447. END_OF_FILE
  1448. if test 1128 -ne `wc -c <'answers/sc01.lis'`; then
  1449.     echo shar: \"'answers/sc01.lis'\" unpacked with wrong size!
  1450. fi
  1451. # end of 'answers/sc01.lis'
  1452. fi
  1453. if test -f 'answers/tg01.lis' -a "${1}" != "-c" ; then 
  1454.   echo shar: Will not clobber existing file \"'answers/tg01.lis'\"
  1455. else
  1456. echo shar: Extracting \"'answers/tg01.lis'\" \(304 characters\)
  1457. sed "s/^X//" >'answers/tg01.lis' <<'END_OF_FILE'
  1458. XFUNNELWEB LISTING FILE
  1459. X======================
  1460. X
  1461. X
  1462. Global Local| Input File
  1463. X------------+-------------------------------------------------------------------
  1464. X.................
  1465. X------------+-------------------------------------------------------------------
  1466. X
  1467. Tangle: Completed .out.
  1468. X
  1469. SUCCESS: No diagnostics.
  1470. END_OF_FILE
  1471. if test 304 -ne `wc -c <'answers/tg01.lis'`; then
  1472.     echo shar: \"'answers/tg01.lis'\" unpacked with wrong size!
  1473. fi
  1474. # end of 'answers/tg01.lis'
  1475. fi
  1476. if test -f 'answers/tg02.lis' -a "${1}" != "-c" ; then 
  1477.   echo shar: Will not clobber existing file \"'answers/tg02.lis'\"
  1478. else
  1479. echo shar: Extracting \"'answers/tg02.lis'\" \(308 characters\)
  1480. sed "s/^X//" >'answers/tg02.lis' <<'END_OF_FILE'
  1481. XFUNNELWEB LISTING FILE
  1482. X======================
  1483. X
  1484. X
  1485. Global Local| Input File
  1486. X------------+-------------------------------------------------------------------
  1487. X.................
  1488. X------------+-------------------------------------------------------------------
  1489. X
  1490. Tangle: Completed tg02.out.
  1491. X
  1492. SUCCESS: No diagnostics.
  1493. END_OF_FILE
  1494. if test 308 -ne `wc -c <'answers/tg02.lis'`; then
  1495.     echo shar: \"'answers/tg02.lis'\" unpacked with wrong size!
  1496. fi
  1497. # end of 'answers/tg02.lis'
  1498. fi
  1499. if test -f 'answers/tg03.lis' -a "${1}" != "-c" ; then 
  1500.   echo shar: Will not clobber existing file \"'answers/tg03.lis'\"
  1501. else
  1502. echo shar: Extracting \"'answers/tg03.lis'\" \(308 characters\)
  1503. sed "s/^X//" >'answers/tg03.lis' <<'END_OF_FILE'
  1504. XFUNNELWEB LISTING FILE
  1505. X======================
  1506. X
  1507. X
  1508. Global Local| Input File
  1509. X------------+-------------------------------------------------------------------
  1510. X.................
  1511. X------------+-------------------------------------------------------------------
  1512. X
  1513. Tangle: Completed tg03.out.
  1514. X
  1515. SUCCESS: No diagnostics.
  1516. END_OF_FILE
  1517. if test 308 -ne `wc -c <'answers/tg03.lis'`; then
  1518.     echo shar: \"'answers/tg03.lis'\" unpacked with wrong size!
  1519. fi
  1520. # end of 'answers/tg03.lis'
  1521. fi
  1522. if test -f 'answers/tg04.lis' -a "${1}" != "-c" ; then 
  1523.   echo shar: Will not clobber existing file \"'answers/tg04.lis'\"
  1524. else
  1525. echo shar: Extracting \"'answers/tg04.lis'\" \(308 characters\)
  1526. sed "s/^X//" >'answers/tg04.lis' <<'END_OF_FILE'
  1527. XFUNNELWEB LISTING FILE
  1528. X======================
  1529. X
  1530. X
  1531. Global Local| Input File
  1532. X------------+-------------------------------------------------------------------
  1533. X.................
  1534. X------------+-------------------------------------------------------------------
  1535. X
  1536. Tangle: Completed tg04.out.
  1537. X
  1538. SUCCESS: No diagnostics.
  1539. END_OF_FILE
  1540. if test 308 -ne `wc -c <'answers/tg04.lis'`; then
  1541.     echo shar: \"'answers/tg04.lis'\" unpacked with wrong size!
  1542. fi
  1543. # end of 'answers/tg04.lis'
  1544. fi
  1545. if test -f 'answers/tg05.lis' -a "${1}" != "-c" ; then 
  1546.   echo shar: Will not clobber existing file \"'answers/tg05.lis'\"
  1547. else
  1548. echo shar: Extracting \"'answers/tg05.lis'\" \(553 characters\)
  1549. sed "s/^X//" >'answers/tg05.lis' <<'END_OF_FILE'
  1550. XFUNNELWEB LISTING FILE
  1551. X======================
  1552. X
  1553. X
  1554. Global Local| Input File
  1555. X------------+-------------------------------------------------------------------
  1556. X.................
  1557. X------------+-------------------------------------------------------------------
  1558. X
  1559. XE: Product file line is too long (line 4 of "<<Suppressed>>").
  1560. X   Product file line length limit is 80 characters.
  1561. X   Note: You can change the limit by specifying.
  1562. X      @p maximum_output_line_length = <desired length>
  1563. X   somewhere in the input file.
  1564. Tangle: Completed tg05.out.
  1565. X
  1566. There was 1 Error.
  1567. END_OF_FILE
  1568. if test 553 -ne `wc -c <'answers/tg05.lis'`; then
  1569.     echo shar: \"'answers/tg05.lis'\" unpacked with wrong size!
  1570. fi
  1571. # end of 'answers/tg05.lis'
  1572. fi
  1573. if test -f 'answers/tg06.lis' -a "${1}" != "-c" ; then 
  1574.   echo shar: Will not clobber existing file \"'answers/tg06.lis'\"
  1575. else
  1576. echo shar: Extracting \"'answers/tg06.lis'\" \(553 characters\)
  1577. sed "s/^X//" >'answers/tg06.lis' <<'END_OF_FILE'
  1578. XFUNNELWEB LISTING FILE
  1579. X======================
  1580. X
  1581. X
  1582. Global Local| Input File
  1583. X------------+-------------------------------------------------------------------
  1584. X.................
  1585. X------------+-------------------------------------------------------------------
  1586. X
  1587. XE: Product file line is too long (line 6 of "<<Suppressed>>").
  1588. X   Product file line length limit is 60 characters.
  1589. X   Note: You can change the limit by specifying.
  1590. X      @p maximum_output_line_length = <desired length>
  1591. X   somewhere in the input file.
  1592. Tangle: Completed tg06.out.
  1593. X
  1594. There was 1 Error.
  1595. END_OF_FILE
  1596. if test 553 -ne `wc -c <'answers/tg06.lis'`; then
  1597.     echo shar: \"'answers/tg06.lis'\" unpacked with wrong size!
  1598. fi
  1599. # end of 'answers/tg06.lis'
  1600. fi
  1601. if test -f 'answers/tg07.lis' -a "${1}" != "-c" ; then 
  1602.   echo shar: Will not clobber existing file \"'answers/tg07.lis'\"
  1603. else
  1604. echo shar: Extracting \"'answers/tg07.lis'\" \(308 characters\)
  1605. sed "s/^X//" >'answers/tg07.lis' <<'END_OF_FILE'
  1606. XFUNNELWEB LISTING FILE
  1607. X======================
  1608. X
  1609. X
  1610. Global Local| Input File
  1611. X------------+-------------------------------------------------------------------
  1612. X.................
  1613. X------------+-------------------------------------------------------------------
  1614. X
  1615. Tangle: Completed tg07.out.
  1616. X
  1617. SUCCESS: No diagnostics.
  1618. END_OF_FILE
  1619. if test 308 -ne `wc -c <'answers/tg07.lis'`; then
  1620.     echo shar: \"'answers/tg07.lis'\" unpacked with wrong size!
  1621. fi
  1622. # end of 'answers/tg07.lis'
  1623. fi
  1624. if test -f 'answers/tg08.lis' -a "${1}" != "-c" ; then 
  1625.   echo shar: Will not clobber existing file \"'answers/tg08.lis'\"
  1626. else
  1627. echo shar: Extracting \"'answers/tg08.lis'\" \(308 characters\)
  1628. sed "s/^X//" >'answers/tg08.lis' <<'END_OF_FILE'
  1629. XFUNNELWEB LISTING FILE
  1630. X======================
  1631. X
  1632. X
  1633. Global Local| Input File
  1634. X------------+-------------------------------------------------------------------
  1635. X.................
  1636. X------------+-------------------------------------------------------------------
  1637. X
  1638. Tangle: Completed tg08.out.
  1639. X
  1640. SUCCESS: No diagnostics.
  1641. END_OF_FILE
  1642. if test 308 -ne `wc -c <'answers/tg08.lis'`; then
  1643.     echo shar: \"'answers/tg08.lis'\" unpacked with wrong size!
  1644. fi
  1645. # end of 'answers/tg08.lis'
  1646. fi
  1647. if test -f 'answers/tg09.lis' -a "${1}" != "-c" ; then 
  1648.   echo shar: Will not clobber existing file \"'answers/tg09.lis'\"
  1649. else
  1650. echo shar: Extracting \"'answers/tg09.lis'\" \(308 characters\)
  1651. sed "s/^X//" >'answers/tg09.lis' <<'END_OF_FILE'
  1652. XFUNNELWEB LISTING FILE
  1653. X======================
  1654. X
  1655. X
  1656. Global Local| Input File
  1657. X------------+-------------------------------------------------------------------
  1658. X.................
  1659. X------------+-------------------------------------------------------------------
  1660. X
  1661. Tangle: Completed tg09.out.
  1662. X
  1663. SUCCESS: No diagnostics.
  1664. END_OF_FILE
  1665. if test 308 -ne `wc -c <'answers/tg09.lis'`; then
  1666.     echo shar: \"'answers/tg09.lis'\" unpacked with wrong size!
  1667. fi
  1668. # end of 'answers/tg09.lis'
  1669. fi
  1670. if test -f 'answers/wv01.lis' -a "${1}" != "-c" ; then 
  1671.   echo shar: Will not clobber existing file \"'answers/wv01.lis'\"
  1672. else
  1673. echo shar: Extracting \"'answers/wv01.lis'\" \(313 characters\)
  1674. sed "s/^X//" >'answers/wv01.lis' <<'END_OF_FILE'
  1675. XFUNNELWEB LISTING FILE
  1676. X======================
  1677. X
  1678. X
  1679. Global Local| Input File
  1680. X------------+-------------------------------------------------------------------
  1681. X.................
  1682. X------------+-------------------------------------------------------------------
  1683. X
  1684. Weave: Completed <<Suppressed>>.
  1685. X
  1686. SUCCESS: No diagnostics.
  1687. END_OF_FILE
  1688. if test 313 -ne `wc -c <'answers/wv01.lis'`; then
  1689.     echo shar: \"'answers/wv01.lis'\" unpacked with wrong size!
  1690. fi
  1691. # end of 'answers/wv01.lis'
  1692. fi
  1693. if test -f 'answers/wv02.lis' -a "${1}" != "-c" ; then 
  1694.   echo shar: Will not clobber existing file \"'answers/wv02.lis'\"
  1695. else
  1696. echo shar: Extracting \"'answers/wv02.lis'\" \(313 characters\)
  1697. sed "s/^X//" >'answers/wv02.lis' <<'END_OF_FILE'
  1698. XFUNNELWEB LISTING FILE
  1699. X======================
  1700. X
  1701. X
  1702. Global Local| Input File
  1703. X------------+-------------------------------------------------------------------
  1704. X.................
  1705. X------------+-------------------------------------------------------------------
  1706. X
  1707. Weave: Completed <<Suppressed>>.
  1708. X
  1709. SUCCESS: No diagnostics.
  1710. END_OF_FILE
  1711. if test 313 -ne `wc -c <'answers/wv02.lis'`; then
  1712.     echo shar: \"'answers/wv02.lis'\" unpacked with wrong size!
  1713. fi
  1714. # end of 'answers/wv02.lis'
  1715. fi
  1716. if test -f 'answers/wv03.lis' -a "${1}" != "-c" ; then 
  1717.   echo shar: Will not clobber existing file \"'answers/wv03.lis'\"
  1718. else
  1719. echo shar: Extracting \"'answers/wv03.lis'\" \(313 characters\)
  1720. sed "s/^X//" >'answers/wv03.lis' <<'END_OF_FILE'
  1721. XFUNNELWEB LISTING FILE
  1722. X======================
  1723. X
  1724. X
  1725. Global Local| Input File
  1726. X------------+-------------------------------------------------------------------
  1727. X.................
  1728. X------------+-------------------------------------------------------------------
  1729. X
  1730. Weave: Completed <<Suppressed>>.
  1731. X
  1732. SUCCESS: No diagnostics.
  1733. END_OF_FILE
  1734. if test 313 -ne `wc -c <'answers/wv03.lis'`; then
  1735.     echo shar: \"'answers/wv03.lis'\" unpacked with wrong size!
  1736. fi
  1737. # end of 'answers/wv03.lis'
  1738. fi
  1739. if test -f 'answers/wv04.lis' -a "${1}" != "-c" ; then 
  1740.   echo shar: Will not clobber existing file \"'answers/wv04.lis'\"
  1741. else
  1742. echo shar: Extracting \"'answers/wv04.lis'\" \(313 characters\)
  1743. sed "s/^X//" >'answers/wv04.lis' <<'END_OF_FILE'
  1744. XFUNNELWEB LISTING FILE
  1745. X======================
  1746. X
  1747. X
  1748. Global Local| Input File
  1749. X------------+-------------------------------------------------------------------
  1750. X.................
  1751. X------------+-------------------------------------------------------------------
  1752. X
  1753. Weave: Completed <<Suppressed>>.
  1754. X
  1755. SUCCESS: No diagnostics.
  1756. END_OF_FILE
  1757. if test 313 -ne `wc -c <'answers/wv04.lis'`; then
  1758.     echo shar: \"'answers/wv04.lis'\" unpacked with wrong size!
  1759. fi
  1760. # end of 'answers/wv04.lis'
  1761. fi
  1762. if test -f 'answers/wv05.lis' -a "${1}" != "-c" ; then 
  1763.   echo shar: Will not clobber existing file \"'answers/wv05.lis'\"
  1764. else
  1765. echo shar: Extracting \"'answers/wv05.lis'\" \(313 characters\)
  1766. sed "s/^X//" >'answers/wv05.lis' <<'END_OF_FILE'
  1767. XFUNNELWEB LISTING FILE
  1768. X======================
  1769. X
  1770. X
  1771. Global Local| Input File
  1772. X------------+-------------------------------------------------------------------
  1773. X.................
  1774. X------------+-------------------------------------------------------------------
  1775. X
  1776. Weave: Completed <<Suppressed>>.
  1777. X
  1778. SUCCESS: No diagnostics.
  1779. END_OF_FILE
  1780. if test 313 -ne `wc -c <'answers/wv05.lis'`; then
  1781.     echo shar: \"'answers/wv05.lis'\" unpacked with wrong size!
  1782. fi
  1783. # end of 'answers/wv05.lis'
  1784. fi
  1785. if test -f 'answers/wv06.lis' -a "${1}" != "-c" ; then 
  1786.   echo shar: Will not clobber existing file \"'answers/wv06.lis'\"
  1787. else
  1788. echo shar: Extracting \"'answers/wv06.lis'\" \(313 characters\)
  1789. sed "s/^X//" >'answers/wv06.lis' <<'END_OF_FILE'
  1790. XFUNNELWEB LISTING FILE
  1791. X======================
  1792. X
  1793. X
  1794. Global Local| Input File
  1795. X------------+-------------------------------------------------------------------
  1796. X.................
  1797. X------------+-------------------------------------------------------------------
  1798. X
  1799. Weave: Completed <<Suppressed>>.
  1800. X
  1801. SUCCESS: No diagnostics.
  1802. END_OF_FILE
  1803. if test 313 -ne `wc -c <'answers/wv06.lis'`; then
  1804.     echo shar: \"'answers/wv06.lis'\" unpacked with wrong size!
  1805. fi
  1806. # end of 'answers/wv06.lis'
  1807. fi
  1808. if test ! -d 'hackman' ; then
  1809.     echo shar: Creating directory \"'hackman'\"
  1810.     mkdir 'hackman'
  1811. fi
  1812. if test ! -d 'results' ; then
  1813.     echo shar: Creating directory \"'results'\"
  1814.     mkdir 'results'
  1815. fi
  1816. if test ! -d 'scripts' ; then
  1817.     echo shar: Creating directory \"'scripts'\"
  1818.     mkdir 'scripts'
  1819. fi
  1820. if test -f 'scripts/0license.txt' -a "${1}" != "-c" ; then 
  1821.   echo shar: Will not clobber existing file \"'scripts/0license.txt'\"
  1822. else
  1823. echo shar: Extracting \"'scripts/0license.txt'\" \(1290 characters\)
  1824. sed "s/^X//" >'scripts/0license.txt' <<'END_OF_FILE'
  1825. X
  1826. XFUNNNELWEB COPYRIGHT
  1827. X====================
  1828. XFunnelWeb is a literate-programming macro preprocessor.
  1829. X
  1830. The files in this directory are:
  1831. X
  1832. Copyright (C) 1992 Ross N. Williams.
  1833. X
  1834. X   Ross N. Williams
  1835. X   ross@spam.adelaide.edu.au
  1836. X   16 Lerwick Avenue, Hazelwood Park 5066, Australia.
  1837. X
  1838. This program is free software; you can redistribute it and/or modify
  1839. it under the terms of Version 2 of the GNU General Public License as
  1840. published by the Free Software Foundation.
  1841. X
  1842. This program is distributed WITHOUT ANY WARRANTY; without even the implied
  1843. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  1844. See Version 2 of the GNU General Public License for more details.
  1845. X
  1846. You should have received a copy of Version 2 of the GNU General Public
  1847. License along with this program. If not, you can FTP the license from
  1848. prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software
  1849. XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1850. X
  1851. Section 2a of the license requires that all changes to this file be
  1852. recorded prominently in this file. Please record all changes here.
  1853. X
  1854. Programmers:
  1855. X   RNW  Ross N. Williams  ross@spam.adelaide.edu.au
  1856. X
  1857. Changes:
  1858. X   07-May-1992  RNW  Program prepared for release under GNU GPL V2.
  1859. X
  1860. X###############################################################################
  1861. X
  1862. END_OF_FILE
  1863. if test 1290 -ne `wc -c <'scripts/0license.txt'`; then
  1864.     echo shar: \"'scripts/0license.txt'\" unpacked with wrong size!
  1865. fi
  1866. # end of 'scripts/0license.txt'
  1867. fi
  1868. if test -f 'scripts/test_gen.fws' -a "${1}" != "-c" ; then 
  1869.   echo shar: Will not clobber existing file \"'scripts/test_gen.fws'\"
  1870. else
  1871. echo shar: Extracting \"'scripts/test_gen.fws'\" \(1554 characters\)
  1872. sed "s/^X//" >'scripts/test_gen.fws' <<'END_OF_FILE'
  1873. X!==========================<Start of test_gen Script>===========================
  1874. X!
  1875. X! Generate Tricky Input Files
  1876. X! ---------------------------
  1877. X! This script processes the "generate.fw" test file which not only tests
  1878. X! FunnelWeb to some extent, but also generates a few ".fw" input test
  1879. X! files which are tested later on in the test suite process.
  1880. X!
  1881. X! Inputs: None.
  1882. X! Outputs:
  1883. X!    Listing file.
  1884. X!    Product files (which appear in the input $I directory as .fw files).
  1885. X!    Appendage to differences file.
  1886. X
  1887. X! Announce this test.
  1888. write ""
  1889. write ""
  1890. writeu "Basic Test and Generate Some Tricky Input Files"
  1891. X
  1892. X! Delete any previous output files.
  1893. eneo $Isc06.fw
  1894. eneo $Isc08.fw
  1895. eneo $Isc09.fw
  1896. eneo $Isc13e.fwi
  1897. eneo $Ogenerate.log
  1898. eneo $Ogenerate.lis
  1899. eneo $Ogenerate.tex
  1900. eneo $Ogenerate.out
  1901. X
  1902. X! Check input and answer files.
  1903. exists $Igenerate.fw
  1904. exists $Agenerate.lis
  1905. absent $Agenerate.out
  1906. absent $Agenerate.tex
  1907. X
  1908. X! Clean input and answer files.
  1909. fixeols $Igenerate.fw
  1910. fixeols $Agenerate.lis
  1911. X
  1912. X! Perform the actual FunnelWeb run.
  1913. fw $Igenerate.fw +L$Ogenerate.lis +O$I
  1914. X
  1915. X! Ensure that the correct files were generated.
  1916. absent $Ogenerate.log
  1917. absent $Ogenerate.tex
  1918. absent $Ogenerate.out
  1919. exists $Ogenerate.lis
  1920. exists $Isc06.fw
  1921. exists $Isc08.fw
  1922. exists $Isc09.fw
  1923. exists $Isc13e.fwi
  1924. X
  1925. X! Compare the listing file with the correct answer.
  1926. X! We can't check the other files because of the original problem this whole
  1927. X! generation script is designed to solve!
  1928. diff $Ogenerate.lis $Agenerate.lis $D
  1929. X
  1930. X!===========================<End of test_gen Script>============================
  1931. END_OF_FILE
  1932. if test 1554 -ne `wc -c <'scripts/test_gen.fws'`; then
  1933.     echo shar: \"'scripts/test_gen.fws'\" unpacked with wrong size!
  1934. fi
  1935. # end of 'scripts/test_gen.fws'
  1936. fi
  1937. if test -f 'scripts/test_l.fws' -a "${1}" != "-c" ; then 
  1938.   echo shar: Will not clobber existing file \"'scripts/test_l.fws'\"
  1939. else
  1940. echo shar: Extracting \"'scripts/test_l.fws'\" \(1186 characters\)
  1941. sed "s/^X//" >'scripts/test_l.fws' <<'END_OF_FILE'
  1942. X!===========================<Start of test_l Script>============================
  1943. X!
  1944. X! Test With A Plain Listing File
  1945. X! ------------------------------
  1946. X! Inputs:
  1947. X!    $1 = Name of the .fw file to be tested (e.g. $1="sc01").
  1948. X!    $I = Directory containing .fw   files.
  1949. X!    $A = Directory containing Answer files.
  1950. X!    $O = Directory to place   Result files.
  1951. X!    $D = Name of the differences file.
  1952. X! Outputs:
  1953. X!    Listing file.
  1954. X!    Appendage to differences file.
  1955. X
  1956. X! Announce this test.
  1957. write ""
  1958. write ""
  1959. writeu "Performing Test $1"
  1960. X
  1961. X! Delete any previous output files.
  1962. eneo $O$1.log
  1963. eneo $O$1.lis
  1964. eneo $O$1.tex
  1965. eneo $O$1.out
  1966. X
  1967. X! Check input and answer files.
  1968. exists $I$1.fw
  1969. exists $A$1.lis
  1970. absent $A$1.out
  1971. absent $A$1.tex
  1972. X
  1973. X! Clean input and answer files.
  1974. fixeols $I$1.fw
  1975. fixeols $A$1.lis
  1976. X
  1977. X! Perform the actual FunnelWeb run.
  1978. X! Tolerate means "don't abort on warning, error, or severe".
  1979. tolerate
  1980. fw $I$1.fw +l$O$1.lis
  1981. X
  1982. X! Ensure that only a listing file was generated.
  1983. absent $O$1.log
  1984. absent $O$1.tex
  1985. absent $O$1.out
  1986. exists $O$1.lis
  1987. X
  1988. X! Compare the listing file with the answer file.
  1989. diff $O$1.lis $A$1.lis $D
  1990. X
  1991. X!============================<End of Test_l Script>=============================
  1992. END_OF_FILE
  1993. if test 1186 -ne `wc -c <'scripts/test_l.fws'`; then
  1994.     echo shar: \"'scripts/test_l.fws'\" unpacked with wrong size!
  1995. fi
  1996. # end of 'scripts/test_l.fws'
  1997. fi
  1998. if test -f 'scripts/test_ld.fws' -a "${1}" != "-c" ; then 
  1999.   echo shar: Will not clobber existing file \"'scripts/test_ld.fws'\"
  2000. else
  2001. echo shar: Extracting \"'scripts/test_ld.fws'\" \(1481 characters\)
  2002. sed "s/^X//" >'scripts/test_ld.fws' <<'END_OF_FILE'
  2003. X!===========================<Start of test_ld Script>===========================
  2004. X!
  2005. X! Test With Listing File and Scanner Dumps
  2006. X! ----------------------------------------
  2007. X! Inputs:
  2008. X!    $1 = Name of the .fw file to be tested (e.g. $1="sc01").
  2009. X!    $2 = Empty ("") or "!" to suppress FIXEOLing and existence check
  2010. X!            of input file.
  2011. X!    $I = Directory containing .fw   files.
  2012. X!    $A = Directory containing Answer files.
  2013. X!    $O = Directory to place   Result files.
  2014. X!    $D = Name of the differences file.
  2015. X! Outputs:
  2016. X!    Listing file containing dumps.
  2017. X!    Appendage to differences file.
  2018. X
  2019. X! Announce this test.
  2020. write ""
  2021. write ""
  2022. writeu "Performing Test $1"
  2023. X
  2024. X! Delete any previous output files.
  2025. eneo $O$1.log
  2026. eneo $O$1.lis
  2027. eneo $O$1.tex
  2028. eneo $O$1.out
  2029. X
  2030. X! Check input and answer files.
  2031. X$2exists $I$1.fw
  2032. exists $A$1.lis
  2033. absent $A$1.out
  2034. absent $A$1.tex
  2035. X
  2036. X! Clean input and answer files.
  2037. X$2fixeols $I$1.fw
  2038. fixeols $A$1.lis
  2039. X
  2040. X! Perform the actual FunnelWeb run.
  2041. X! Tolerate means "don't abort on warning, error, or severe".
  2042. X! Options:
  2043. X!    +b1 Dump input file map.
  2044. X!    +b2 Dump line list.
  2045. X!    +b3 Dump token list.
  2046. X!    +b4 Dump macro table.
  2047. X!    +b5 Dump document list.
  2048. tolerate
  2049. fw $I$1.fw +l$O$1.lis +b12345
  2050. X
  2051. X! Ensure that only a listing file was generated.
  2052. absent $O$1.log
  2053. absent $O$1.tex
  2054. absent $O$1.out
  2055. exists $O$1.lis
  2056. X
  2057. X! Compare the listing file with the answer file.
  2058. diff $O$1.lis $A$1.lis $D
  2059. X
  2060. X!============================<End of test_ld Script>============================
  2061. END_OF_FILE
  2062. if test 1481 -ne `wc -c <'scripts/test_ld.fws'`; then
  2063.     echo shar: \"'scripts/test_ld.fws'\" unpacked with wrong size!
  2064. fi
  2065. # end of 'scripts/test_ld.fws'
  2066. fi
  2067. if test -f 'scripts/test_lo.fws' -a "${1}" != "-c" ; then 
  2068.   echo shar: Will not clobber existing file \"'scripts/test_lo.fws'\"
  2069. else
  2070. echo shar: Extracting \"'scripts/test_lo.fws'\" \(1284 characters\)
  2071. sed "s/^X//" >'scripts/test_lo.fws' <<'END_OF_FILE'
  2072. X!===========================<Start of test_lo Script>===========================
  2073. X!
  2074. X! Test With Listing File and Product File
  2075. X! ---------------------------------------
  2076. X! Inputs:
  2077. X!    $1 = Name of the .fw file to be tested (e.g. $1="sc01").
  2078. X!    $I = Directory containing .fw   files.
  2079. X!    $A = Directory containing Answer files.
  2080. X!    $O = Directory to place   Result files.
  2081. X!    $D = Name of the differences file.
  2082. X! Outputs:
  2083. X!    Listing file.
  2084. X!    Product file.
  2085. X!    Appendage to differences file.
  2086. X
  2087. X! Announce this test.
  2088. write ""
  2089. write ""
  2090. writeu "Performing Test $1"
  2091. X
  2092. X! Delete any previous output files.
  2093. eneo $O$1.log
  2094. eneo $O$1.lis
  2095. eneo $O$1.tex
  2096. eneo $O$1.out
  2097. X
  2098. X! Check input and answer files.
  2099. exists $I$1.fw
  2100. exists $A$1.lis
  2101. exists $A$1.out
  2102. absent $A$1.tex
  2103. X
  2104. X! Clean input and answer files.
  2105. fixeols $I$1.fw
  2106. fixeols $A$1.lis
  2107. fixeols $A$1.out
  2108. X
  2109. X! Perform the actual FunnelWeb run.
  2110. X! Tolerate means "don't abort on warning, error, or severe".
  2111. tolerate
  2112. fw $I$1.fw +l$O$1.lis +o$O$1.out
  2113. X
  2114. X! Ensure that only a listing and an product file were generated.
  2115. absent $O$1.log
  2116. absent $O$1.tex
  2117. exists $O$1.lis
  2118. exists $O$1.out
  2119. X
  2120. X! Compare the results with the answers.
  2121. diff $O$1.lis $A$1.lis $D
  2122. diff $O$1.out $A$1.out $D
  2123. X
  2124. X!============================<End of test_lo Script>============================
  2125. END_OF_FILE
  2126. if test 1284 -ne `wc -c <'scripts/test_lo.fws'`; then
  2127.     echo shar: \"'scripts/test_lo.fws'\" unpacked with wrong size!
  2128. fi
  2129. # end of 'scripts/test_lo.fws'
  2130. fi
  2131. if test -f 'scripts/test_lo2.fws' -a "${1}" != "-c" ; then 
  2132.   echo shar: Will not clobber existing file \"'scripts/test_lo2.fws'\"
  2133. else
  2134. echo shar: Extracting \"'scripts/test_lo2.fws'\" \(1422 characters\)
  2135. sed "s/^X//" >'scripts/test_lo2.fws' <<'END_OF_FILE'
  2136. X!===========================<Start of test_lo2 Script>==========================
  2137. X!
  2138. X! Test With Listing File and Two Product Files
  2139. X! --------------------------------------------
  2140. X! Inputs:
  2141. X!    $1 = Name of the .fw file to be tested (e.g. $1="sc01").
  2142. X!    $I = Directory containing .fw   files.
  2143. X!    $A = Directory containing Answer files.
  2144. X!    $O = Directory to place   Result files.
  2145. X!    $D = Name of the differences file.
  2146. X! Outputs:
  2147. X!    Listing file.
  2148. X!    Product file a.
  2149. X!    Product file b.
  2150. X!    Appendage to differences file.
  2151. X
  2152. X! Announce this test.
  2153. write ""
  2154. write ""
  2155. writeu "Performing Test $1"
  2156. X
  2157. X! Delete any previous output files.
  2158. eneo $O$1.log
  2159. eneo $O$1.lis
  2160. eneo $O$1.tex
  2161. eneo $O$1a.out
  2162. eneo $O$1b.out
  2163. X
  2164. X! Check input and answer files.
  2165. exists $I$1.fw
  2166. exists $A$1.lis
  2167. exists $A$1a.out
  2168. exists $A$1b.out
  2169. absent $A$1.tex
  2170. X
  2171. X! Clean input and answer files.
  2172. fixeols $I$1.fw
  2173. fixeols $A$1.lis
  2174. fixeols $A$1a.out
  2175. fixeols $A$1b.out
  2176. X
  2177. X! Perform the actual FunnelWeb run.
  2178. X! Tolerate means "don't abort on warning, error, or severe".
  2179. tolerate
  2180. fw $I$1.fw +l$O$1.lis +o$O$1.out
  2181. X
  2182. X! Ensure that only a listing and two product files were generated.
  2183. absent $O$1.log
  2184. absent $O$1.tex
  2185. exists $O$1.lis
  2186. exists $O$1a.out
  2187. exists $O$1b.out
  2188. X
  2189. X! Compare the results with the answers.
  2190. diff $O$1.lis  $A$1.lis  $D
  2191. diff $O$1a.out $A$1a.out $D
  2192. diff $O$1b.out $A$1b.out $D
  2193. X
  2194. X!============================<End of test_lo2 Script>===========================
  2195. END_OF_FILE
  2196. if test 1422 -ne `wc -c <'scripts/test_lo2.fws'`; then
  2197.     echo shar: \"'scripts/test_lo2.fws'\" unpacked with wrong size!
  2198. fi
  2199. # end of 'scripts/test_lo2.fws'
  2200. fi
  2201. if test -f 'scripts/test_lot.fws' -a "${1}" != "-c" ; then 
  2202.   echo shar: Will not clobber existing file \"'scripts/test_lot.fws'\"
  2203. else
  2204. echo shar: Extracting \"'scripts/test_lot.fws'\" \(1374 characters\)
  2205. sed "s/^X//" >'scripts/test_lot.fws' <<'END_OF_FILE'
  2206. X!==========================<Start of test_lot Script>===========================
  2207. X!
  2208. X! Test With Listing File and Product File and Typeset File
  2209. X! --------------------------------------------------------
  2210. X! Inputs:
  2211. X!    $1 = Name of the .fw file to be tested (e.g. $1="sc01").
  2212. X!    $I = Directory containing .fw    files.
  2213. X!    $A = Directory containing Answer files.
  2214. X!    $O = Directory to place   Result files.
  2215. X!    $D = Name of the differences file.
  2216. X! Outputs:
  2217. X!    Listing file.
  2218. X!    Product file.
  2219. X!    Typeset file.
  2220. X!    Appendage to differences file.
  2221. X
  2222. X! Announce this test.
  2223. write ""
  2224. write ""
  2225. writeu "Performing Test $1"
  2226. X
  2227. X! Delete any previous output files.
  2228. eneo $O$1.log
  2229. eneo $O$1.lis
  2230. eneo $O$1.tex
  2231. eneo $O$1.out
  2232. X
  2233. X! Check input and answer files.
  2234. exists $I$1.fw
  2235. exists $A$1.lis
  2236. exists $A$1.tex
  2237. exists $A$1.out
  2238. X
  2239. X! Clean input and answer files.
  2240. fixeols $I$1.fw
  2241. fixeols $A$1.lis
  2242. fixeols $A$1.tex
  2243. fixeols $A$1.out
  2244. X
  2245. X! Perform the actual FunnelWeb run.
  2246. X! Tolerate means "don't abort on warning, error, or severe".
  2247. tolerate
  2248. fw $I$1.fw +l$O$1.lis +o$O +t$O$1.tex
  2249. X
  2250. X! Ensure that all three output files were generated.
  2251. absent $O$1.log
  2252. exists $O$1.out
  2253. exists $O$1.lis
  2254. exists $O$1.tex
  2255. X
  2256. X! Compare the results with the answers.
  2257. diff $O$1.lis $A$1.lis $D
  2258. diff $O$1.out $A$1.out $D
  2259. diff $O$1.tex $A$1.tex $D
  2260. X
  2261. X!===========================<End of Test_lot Script>============================
  2262. END_OF_FILE
  2263. if test 1374 -ne `wc -c <'scripts/test_lot.fws'`; then
  2264.     echo shar: \"'scripts/test_lot.fws'\" unpacked with wrong size!
  2265. fi
  2266. # end of 'scripts/test_lot.fws'
  2267. fi
  2268. if test -f 'scripts/test_lt.fws' -a "${1}" != "-c" ; then 
  2269.   echo shar: Will not clobber existing file \"'scripts/test_lt.fws'\"
  2270. else
  2271. echo shar: Extracting \"'scripts/test_lt.fws'\" \(1283 characters\)
  2272. sed "s/^X//" >'scripts/test_lt.fws' <<'END_OF_FILE'
  2273. X!===========================<Start of test_lt Script>===========================
  2274. X!
  2275. X! Test With Listing File and Typeset File
  2276. X! ---------------------------------------
  2277. X! Inputs:
  2278. X!    $1 = Name of the .fw file to be tested (e.g. $1="sc01").
  2279. X!    $I = Directory containing .fw   files.
  2280. X!    $A = Directory containing Answer files.
  2281. X!    $O = Directory to place   Result files.
  2282. X!    $D = Name of the differences file.
  2283. X! Outputs:
  2284. X!    Listing file.
  2285. X!    Typeset file.
  2286. X!    Appendage to differences file.
  2287. X
  2288. X! Announce this test.
  2289. write ""
  2290. write ""
  2291. writeu "Performing Test $1"
  2292. X
  2293. X! Delete any previous output files.
  2294. eneo $O$1.log
  2295. eneo $O$1.lis
  2296. eneo $O$1.tex
  2297. eneo $O$1.out
  2298. X
  2299. X! Check input and answer files.
  2300. exists $I$1.fw
  2301. exists $A$1.lis
  2302. exists $A$1.tex
  2303. absent $A$1.out
  2304. X
  2305. X! Clean input and answer files.
  2306. fixeols $I$1.fw
  2307. fixeols $A$1.lis
  2308. fixeols $A$1.tex
  2309. X
  2310. X! Perform the actual FunnelWeb run.
  2311. X! Tolerate means "don't abort on warning, error, or severe".
  2312. tolerate
  2313. fw $I$1.fw +l$O$1.lis +t$O$1.tex
  2314. X
  2315. X! Ensure that only a listing and a typeset file were generated.
  2316. absent $O$1.log
  2317. absent $O$1.out
  2318. exists $O$1.lis
  2319. exists $O$1.tex
  2320. X
  2321. X! Compare the results with the answers.
  2322. diff $O$1.lis $A$1.lis $D
  2323. diff $O$1.tex $A$1.tex $D
  2324. X
  2325. X!============================<End of test_lt Script>============================
  2326. END_OF_FILE
  2327. if test 1283 -ne `wc -c <'scripts/test_lt.fws'`; then
  2328.     echo shar: \"'scripts/test_lt.fws'\" unpacked with wrong size!
  2329. fi
  2330. # end of 'scripts/test_lt.fws'
  2331. fi
  2332. if test ! -d 'sources' ; then
  2333.     echo shar: Creating directory \"'sources'\"
  2334.     mkdir 'sources'
  2335. fi
  2336. if test -f 'sources/Makefile' -a "${1}" != "-c" ; then 
  2337.   echo shar: Will not clobber existing file \"'sources/Makefile'\"
  2338. else
  2339. echo shar: Extracting \"'sources/Makefile'\" \(639 characters\)
  2340. sed "s/^X//" >'sources/Makefile' <<'END_OF_FILE'
  2341. DESTROOT=
  2342. DESTBIN=$(DESTROOT)/usr/local/bin
  2343. X
  2344. SRC = analyse.c as.c clock.c command.c data.c dump.c help.c help_gnu.c list.c \
  2345. X    lister.c machin.c main.c mapper.c memory.c misc.c option.c parser.c \
  2346. X    scanner.c section.c table.c tangle.c texhead.c weave.c writfile.c
  2347. X
  2348. OBJ = analyse.o as.o clock.o command.o data.o dump.o help.o help_gnu.o list.o \
  2349. X    lister.o machin.o main.o mapper.o memory.o misc.o option.o parser.o \
  2350. X    scanner.o section.o table.o tangle.o texhead.o weave.o writfile.o
  2351. X
  2352. fw: $(OBJ)
  2353. X    $(CC) -o fw $(OBJ)
  2354. X
  2355. clean:
  2356. X    rm -f $(OBJ) fw
  2357. X    rm -f *.BAK *.CKP *~ #*#
  2358. X    rm -f core a.out trace.dump
  2359. X
  2360. install: fw
  2361. X    install -s -c fw $(DESTBIN)/fw
  2362. END_OF_FILE
  2363. if test 639 -ne `wc -c <'sources/Makefile'`; then
  2364.     echo shar: \"'sources/Makefile'\" unpacked with wrong size!
  2365. fi
  2366. # end of 'sources/Makefile'
  2367. fi
  2368. if test ! -d 'tests' ; then
  2369.     echo shar: Creating directory \"'tests'\"
  2370.     mkdir 'tests'
  2371. fi
  2372. if test -f 'tests/0license.txt' -a "${1}" != "-c" ; then 
  2373.   echo shar: Will not clobber existing file \"'tests/0license.txt'\"
  2374. else
  2375. echo shar: Extracting \"'tests/0license.txt'\" \(1290 characters\)
  2376. sed "s/^X//" >'tests/0license.txt' <<'END_OF_FILE'
  2377. X
  2378. XFUNNNELWEB COPYRIGHT
  2379. X====================
  2380. XFunnelWeb is a literate-programming macro preprocessor.
  2381. X
  2382. The files in this directory are:
  2383. X
  2384. Copyright (C) 1992 Ross N. Williams.
  2385. X
  2386. X   Ross N. Williams
  2387. X   ross@spam.adelaide.edu.au
  2388. X   16 Lerwick Avenue, Hazelwood Park 5066, Australia.
  2389. X
  2390. This program is free software; you can redistribute it and/or modify
  2391. it under the terms of Version 2 of the GNU General Public License as
  2392. published by the Free Software Foundation.
  2393. X
  2394. This program is distributed WITHOUT ANY WARRANTY; without even the implied
  2395. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  2396. See Version 2 of the GNU General Public License for more details.
  2397. X
  2398. You should have received a copy of Version 2 of the GNU General Public
  2399. License along with this program. If not, you can FTP the license from
  2400. prep.ai.mit.edu/pub/gnu/COPYING-2 or write to the Free Software
  2401. XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2402. X
  2403. Section 2a of the license requires that all changes to this file be
  2404. recorded prominently in this file. Please record all changes here.
  2405. X
  2406. Programmers:
  2407. X   RNW  Ross N. Williams  ross@spam.adelaide.edu.au
  2408. X
  2409. Changes:
  2410. X   07-May-1992  RNW  Program prepared for release under GNU GPL V2.
  2411. X
  2412. X###############################################################################
  2413. X
  2414. END_OF_FILE
  2415. if test 1290 -ne `wc -c <'tests/0license.txt'`; then
  2416.     echo shar: \"'tests/0license.txt'\" unpacked with wrong size!
  2417. fi
  2418. # end of 'tests/0license.txt'
  2419. fi
  2420. if test -f 'tests/an01.fw' -a "${1}" != "-c" ; then 
  2421.   echo shar: Will not clobber existing file \"'tests/an01.fw'\"
  2422. else
  2423. echo shar: Extracting \"'tests/an01.fw'\" \(35 characters\)
  2424. sed "s/^X//" >'tests/an01.fw' <<'END_OF_FILE'
  2425. AN01: Test with no macros at all.
  2426. X
  2427. END_OF_FILE
  2428. if test 35 -ne `wc -c <'tests/an01.fw'`; then
  2429.     echo shar: \"'tests/an01.fw'\" unpacked with wrong size!
  2430. fi
  2431. # end of 'tests/an01.fw'
  2432. fi
  2433. if test -f 'tests/an02.fw' -a "${1}" != "-c" ; then 
  2434.   echo shar: Will not clobber existing file \"'tests/an02.fw'\"
  2435. else
  2436. echo shar: Extracting \"'tests/an02.fw'\" \(65 characters\)
  2437. sed "s/^X//" >'tests/an02.fw' <<'END_OF_FILE'
  2438. AN02: Test with one macro but no output file.
  2439. X
  2440. X@$@<Sloth@>@Z@{@}
  2441. END_OF_FILE
  2442. if test 65 -ne `wc -c <'tests/an02.fw'`; then
  2443.     echo shar: \"'tests/an02.fw'\" unpacked with wrong size!
  2444. fi
  2445. # end of 'tests/an02.fw'
  2446. fi
  2447. if test -f 'tests/an03.fw' -a "${1}" != "-c" ; then 
  2448.   echo shar: Will not clobber existing file \"'tests/an03.fw'\"
  2449. else
  2450. echo shar: Extracting \"'tests/an03.fw'\" \(1011 characters\)
  2451. sed "s/^X//" >'tests/an03.fw' <<'END_OF_FILE'
  2452. AN03: Test semantics checking of macros.
  2453. X
  2454. XFirst define some macros to call.
  2455. X@$@<Zero@>@Z@M@{@}
  2456. X@$@<One@>@(@1@)@Z@M@{@}
  2457. X@$@<Two@>@(@2@)@Z@M@{@}
  2458. X
  2459. X1. Test call to undefined macro.
  2460. X@$@<Sloth1@>@Z==@{@<Walrus@>@}
  2461. X
  2462. X2. Test calls with wrong number of parameters.
  2463. X@$@<Sloth2@>@Z==@{
  2464. X@<Zero@>
  2465. X@<Zero@>@(@)
  2466. X@<Zero@>@(@,@)
  2467. X@<One@>
  2468. X@<One@>@(@)
  2469. X@<One@>@(Walrus@,@)
  2470. X@<Two@>@(Sloth@)
  2471. X@}
  2472. X
  2473. X3. Test call to file macro.
  2474. X@O@<deleteme.txt@>@{@}
  2475. X@$@<Teapot@>@Z@{@<deleteme.txt@>@}
  2476. X
  2477. X4. Test macro never used and has <special>Z.
  2478. X@$@<Elephant@>@Z@{@}
  2479. X
  2480. X5. Test macro often used and has <special>M.
  2481. X@$@<Giraffe@>@M@{@}
  2482. X@$@<Use Giraffe@>@Z@{@<Giraffe@>@<Giraffe@>@}
  2483. X
  2484. X6. Test macro never used and no <special>Z
  2485. X@$@<Zebra@>@{@}
  2486. X
  2487. X7. Test multiply used and no <special>M.
  2488. X@$@<Monkey@>@{@}
  2489. X@$@<Use Monkey@>@Z@{@<Monkey@>@<Monkey@>@}
  2490. X
  2491. X8. Test directly recursive macro.
  2492. X@$@<Who do ya call?@>@{@<Who do ya call?@>@}
  2493. X
  2494. X9. Test indirectly recursive macro.
  2495. X@$@<X@>@M@{@<Y@>@}
  2496. X@$@<Y@>@{@<X@>@}
  2497. X
  2498. X10. Test callers of recursive macros.
  2499. X@$@<Z@>@Z@{@<X@>@}
  2500. END_OF_FILE
  2501. if test 1011 -ne `wc -c <'tests/an03.fw'`; then
  2502.     echo shar: \"'tests/an03.fw'\" unpacked with wrong size!
  2503. fi
  2504. # end of 'tests/an03.fw'
  2505. fi
  2506. if test -f 'tests/an04.fw' -a "${1}" != "-c" ; then 
  2507.   echo shar: Will not clobber existing file \"'tests/an04.fw'\"
  2508. else
  2509. echo shar: Extracting \"'tests/an04.fw'\" \(326 characters\)
  2510. sed "s/^X//" >'tests/an04.fw' <<'END_OF_FILE'
  2511. AN04: Test document list checks.
  2512. X
  2513. X1. Test for sections with no names.
  2514. X
  2515. X@A@<This section has both a name and a macro@>
  2516. X@$@<Sloth@>@Z@{@}
  2517. X
  2518. X@A@<This section has an explicit name but no macro@>
  2519. X
  2520. X@A
  2521. X@$@<This section has no explicit name but does have a macro@>@Z@{@}
  2522. X
  2523. X@A This section has no name and no macro to inherit one from.
  2524. X
  2525. END_OF_FILE
  2526. if test 326 -ne `wc -c <'tests/an04.fw'`; then
  2527.     echo shar: \"'tests/an04.fw'\" unpacked with wrong size!
  2528. fi
  2529. # end of 'tests/an04.fw'
  2530. fi
  2531. if test -f 'tests/ex01.fw' -a "${1}" != "-c" ; then 
  2532.   echo shar: Will not clobber existing file \"'tests/ex01.fw'\"
  2533. else
  2534. echo shar: Extracting \"'tests/ex01.fw'\" \(69 characters\)
  2535. sed "s/^X//" >'tests/ex01.fw' <<'END_OF_FILE'
  2536. XEX01: A simple hello world program.
  2537. X
  2538. X@O@<ex01.out@>@{Hello World@+@}
  2539. END_OF_FILE
  2540. if test 69 -ne `wc -c <'tests/ex01.fw'`; then
  2541.     echo shar: \"'tests/ex01.fw'\" unpacked with wrong size!
  2542. fi
  2543. # end of 'tests/ex01.fw'
  2544. fi
  2545. if test -f 'tests/ex02.fw' -a "${1}" != "-c" ; then 
  2546.   echo shar: Will not clobber existing file \"'tests/ex02.fw'\"
  2547. else
  2548. echo shar: Extracting \"'tests/ex02.fw'\" \(169 characters\)
  2549. sed "s/^X//" >'tests/ex02.fw' <<'END_OF_FILE'
  2550. XEX02: An example that demonstrates the use of simple macros.
  2551. X
  2552. X@O@<ex02.out@>@{@<Greetings@>@+@}
  2553. X
  2554. X@$@<H@>==@{Hello@}
  2555. X@$@<W@>==@{World@}
  2556. X
  2557. X@$@<Greetings@>==@{@<H@> @<W@>@}
  2558. END_OF_FILE
  2559. if test 169 -ne `wc -c <'tests/ex02.fw'`; then
  2560.     echo shar: \"'tests/ex02.fw'\" unpacked with wrong size!
  2561. fi
  2562. # end of 'tests/ex02.fw'
  2563. fi
  2564. if test -f 'tests/ex03.fw' -a "${1}" != "-c" ; then 
  2565.   echo shar: Will not clobber existing file \"'tests/ex03.fw'\"
  2566. else
  2567. echo shar: Extracting \"'tests/ex03.fw'\" \(481 characters\)
  2568. sed "s/^X//" >'tests/ex03.fw' <<'END_OF_FILE'
  2569. XEX03: An example containing errors to do with the number of times
  2570. X      that macros are called.
  2571. X
  2572. X@O@<ex03.out@>==@{@-
  2573. X@<Include Files@>
  2574. X@<Include Files@>
  2575. X@<Main Program@>
  2576. X@}
  2577. X
  2578. X@$@<Main Program@>==@{@-
  2579. main()
  2580. X{
  2581. X doit();
  2582. X}
  2583. X@}
  2584. X
  2585. X@$@<Subroutine@>==@{@-
  2586. void doit()
  2587. X{
  2588. X int i;
  2589. X for (i=0;i<10;i++)
  2590. X   {
  2591. X    @<Print@>
  2592. X    @<Print@>
  2593. X   }
  2594. X}@}
  2595. X
  2596. X@$@<Print@>==@{@-
  2597. printf("Hello World!");
  2598. printf("\n");@}
  2599. X
  2600. X@$@<Scan@>==@{scanf@}
  2601. X
  2602. X@$@<Include Files@>==@{@-
  2603. X#include <stdio.h>
  2604. X#include <stdlib.h>@}
  2605. END_OF_FILE
  2606. if test 481 -ne `wc -c <'tests/ex03.fw'`; then
  2607.     echo shar: \"'tests/ex03.fw'\" unpacked with wrong size!
  2608. fi
  2609. # end of 'tests/ex03.fw'
  2610. fi
  2611. if test -f 'tests/ex04.fw' -a "${1}" != "-c" ; then 
  2612.   echo shar: Will not clobber existing file \"'tests/ex04.fw'\"
  2613. else
  2614. echo shar: Extracting \"'tests/ex04.fw'\" \(433 characters\)
  2615. sed "s/^X//" >'tests/ex04.fw' <<'END_OF_FILE'
  2616. XEX04: The same as EX03, but with the errors fixed.
  2617. X
  2618. X@O@<ex04.out@>==@{@-
  2619. X@<Include Files@>
  2620. X@<Function@>
  2621. X@<Main Program@>
  2622. X@}
  2623. X
  2624. X@$@<Main Program@>==@{@-
  2625. main()
  2626. X{
  2627. X doit();
  2628. X}
  2629. X@}
  2630. X
  2631. X@$@<Function@>==@{@-
  2632. void doit()
  2633. X{
  2634. X int i;
  2635. X for (i=0;i<10;i++)
  2636. X   {
  2637. X    @<Print@>
  2638. X    @<Print@>
  2639. X   }
  2640. X}@}
  2641. X
  2642. X@$@<Print@>@M==@{@-
  2643. printf("Hello World!");
  2644. printf("\n");@}
  2645. X
  2646. X@$@<Scan@>@Z==@{scanf@}
  2647. X
  2648. X@$@<Include Files@>==@{@-
  2649. X#include <stdio.h>
  2650. X#include <stdlib.h>@}
  2651. END_OF_FILE
  2652. if test 433 -ne `wc -c <'tests/ex04.fw'`; then
  2653.     echo shar: \"'tests/ex04.fw'\" unpacked with wrong size!
  2654. fi
  2655. # end of 'tests/ex04.fw'
  2656. fi
  2657. if test -f 'tests/ex05.fw' -a "${1}" != "-c" ; then 
  2658.   echo shar: Will not clobber existing file \"'tests/ex05.fw'\"
  2659. else
  2660. echo shar: Extracting \"'tests/ex05.fw'\" \(1137 characters\)
  2661. sed "s/^X//" >'tests/ex05.fw' <<'END_OF_FILE'
  2662. XEX05: An example in which Pascal program text is rearranged to form an ADT.
  2663. X      This example demonstrates the use of additive macros.
  2664. X
  2665. X@!******************************
  2666. X
  2667. X@O@<ex05.out@>==@{@-
  2668. program adt(input,output);
  2669. X@<Types@>
  2670. X@<Variables@>
  2671. X@<Procedures@>
  2672. begin startproc; end.
  2673. X@}
  2674. X
  2675. X@!******************************
  2676. X
  2677. X@$@<Types@>+=@{@-
  2678. type buffer_type =
  2679. X   record
  2680. X   length : integer;
  2681. X   buf : array[1..100] of char;
  2682. X   end;
  2683. X@}
  2684. X
  2685. X@$@<Variables@>+=@{@-
  2686. bigbuf : buffer_type;
  2687. X@}
  2688. X
  2689. X@$@<Procedures@>+=@{@-
  2690. procedure buf_init (var b : buffer_type               ) {Body of buf_init}
  2691. procedure buf_add  (var b : buffer_type;     ch : char) {Body of buf_add}
  2692. procedure buf_get  (var b : buffer_type; var ch : char) {Body of buf_get}
  2693. X@}
  2694. X
  2695. X@!******************************
  2696. X
  2697. X@$@<Types@>+=@{@-
  2698. type complex_type = record r,i : real; end;
  2699. X@}
  2700. X
  2701. X@$@<Procedures@>+=@{@-
  2702. procedure cm_set (var c: complex_type; a,b: real)         {Body of cm_set}
  2703. procedure cm_add (a,b: complex_type; var c: complex_type) {Body of cm_add}
  2704. X{Other procedures and functions}
  2705. X@}
  2706. X
  2707. X@!******************************
  2708. X
  2709. X{...more pieces of program...}
  2710. X
  2711. X@!******************************
  2712. END_OF_FILE
  2713. if test 1137 -ne `wc -c <'tests/ex05.fw'`; then
  2714.     echo shar: \"'tests/ex05.fw'\" unpacked with wrong size!
  2715. fi
  2716. # end of 'tests/ex05.fw'
  2717. fi
  2718. if test -f 'tests/ex06.fw' -a "${1}" != "-c" ; then 
  2719.   echo shar: Will not clobber existing file \"'tests/ex06.fw'\"
  2720. else
  2721. echo shar: Extracting \"'tests/ex06.fw'\" \(1271 characters\)
  2722. sed "s/^X//" >'tests/ex06.fw' <<'END_OF_FILE'
  2723. XEX06: An example in which Pascal program text is rearranged to form an ADT.
  2724. X      This example achieves what EX05 does, but without additive macros.
  2725. X
  2726. X@!******************************
  2727. X
  2728. X@O@<ex06.out@>==@{@-
  2729. program adt(input,output);
  2730. X@<Types@>
  2731. X@<Variables@>
  2732. X@<Procedures@>
  2733. begin startproc; end.
  2734. X@}
  2735. X
  2736. X@$@<Types@>==@{@-
  2737. X@<Buffer type@>
  2738. X@<Complex type@>
  2739. X@}
  2740. X
  2741. X@$@<Variables@>==@{@-
  2742. X@<Buffer variable@>
  2743. X@}
  2744. X
  2745. X@$@<Procedures@>==@{@-
  2746. X@<Buffer procedures@>
  2747. X@<Complex procedures@>
  2748. X@}
  2749. X
  2750. X@!******************************
  2751. X
  2752. X@$@<Buffer type@>==@{@-
  2753. type buffer_type = record
  2754. X                   length : integer;
  2755. X                   buf : array[1..100] of char;
  2756. X                   end;
  2757. X@}
  2758. X
  2759. X@$@<Buffer variable@>==@{@-
  2760. bigbuf : buffer_type;
  2761. X@}
  2762. X
  2763. X@$@<Buffer procedures@>==@{@-
  2764. procedure buf_init(var b : buffer_type) {Body of buf_init}
  2765. procedure buf_add(var b : buffer_type; ch : char) {Body of buf_add}
  2766. procedure buf_get(var b : buffer_type; var ch : char) {Body of buf_get}
  2767. X@}
  2768. X
  2769. X@!******************************
  2770. X
  2771. X@$@<Complex type@>==@{@-
  2772. type complex_type = record r,i : real; end;
  2773. X@}
  2774. X
  2775. X@$@<Complex procedures@>+=@{@-
  2776. procedure cm_set(var c: complex_type; a,b : real)  {Body of cm_set}
  2777. procedure cm_add(a,b : complex_type; var c: complex_type) {Body of cm_add}
  2778. X{Other procedures and functions}
  2779. X@}
  2780. END_OF_FILE
  2781. if test 1271 -ne `wc -c <'tests/ex06.fw'`; then
  2782.     echo shar: \"'tests/ex06.fw'\" unpacked with wrong size!
  2783. fi
  2784. # end of 'tests/ex06.fw'
  2785. fi
  2786. if test -f 'tests/ex07.fw' -a "${1}" != "-c" ; then 
  2787.   echo shar: Will not clobber existing file \"'tests/ex07.fw'\"
  2788. else
  2789. echo shar: Extracting \"'tests/ex07.fw'\" \(718 characters\)
  2790. sed "s/^X//" >'tests/ex07.fw' <<'END_OF_FILE'
  2791. XEX07: This example demonstrates the use of macro parameters.
  2792. X
  2793. X@O@<ex07.out@>==@{@<While user code@>@+@}
  2794. X
  2795. X@$@<While loop@>@(@3@)@M==@{@-
  2796. X@1
  2797. while (@2)
  2798. X  {
  2799. X   @3
  2800. X  }
  2801. X@}
  2802. X
  2803. X@$@<While user code@>==@{
  2804. X
  2805. X@! First form of actual parameters without whitespace and double quotes.
  2806. X@<While loop@>@(x=1;@,x<=10@,printf("X=%u\n",x);@)
  2807. X
  2808. X@! Second form of actual parameters. The double quotes allow non-active
  2809. X@! whitespace that helps to lay out the actual parameters neatly.
  2810. X@! This call is functionally identical to the one above.
  2811. X@<While loop@>@(
  2812. X   @"x:=1;@" @,
  2813. X   @"x<=10@" @,
  2814. X   @"printf("X=%u\n",x);@" @)
  2815. X
  2816. X@! The two forms can be mixed in a single call.
  2817. X@<While loop@>@(x=1;@,x<=10@,
  2818. X              @"printf("X=%u\n",x);@" @)
  2819. X
  2820. X@}
  2821. END_OF_FILE
  2822. if test 718 -ne `wc -c <'tests/ex07.fw'`; then
  2823.     echo shar: \"'tests/ex07.fw'\" unpacked with wrong size!
  2824. fi
  2825. # end of 'tests/ex07.fw'
  2826. fi
  2827. if test -f 'tests/ex08.fw' -a "${1}" != "-c" ; then 
  2828.   echo shar: Will not clobber existing file \"'tests/ex08.fw'\"
  2829. else
  2830. echo shar: Extracting \"'tests/ex08.fw'\" \(1334 characters\)
  2831. sed "s/^X//" >'tests/ex08.fw' <<'END_OF_FILE'
  2832. XEX08: This example demonstrates the use of parameterized macros.
  2833. X
  2834. X@O@<ex08.out@>==@{@-
  2835. The Twelve Bugs of Christmas
  2836. X----------------------------
  2837. X@<Verse@>@(@"first@"    @,@<1@>@)
  2838. X@<Verse@>@(@"second@"   @,@<2@>@)
  2839. X@<Verse@>@(@"third@"    @,@<3@>@)
  2840. X@<Verse@>@(@"fourth@"   @,@<4@>@)
  2841. X@<Verse@>@(@"fifth@"    @,@<5@>@)
  2842. X@<Verse@>@(@"sixth@"    @,@<6@>@)
  2843. X@<Verse@>@(@"seventh@"  @,@<7@>@)
  2844. X@<Verse@>@(@"eighth@"   @,@<8@>@)
  2845. X@<Verse@>@(@"ninth@"    @,@<9@>@)
  2846. X@<Verse@>@(@"tenth@"    @,@<A@>@)
  2847. X@<Verse@>@(@"eleventh@" @,@<B@>@)
  2848. X@<Verse@>@(@"twelfth@"  @,@<C@>@)
  2849. X
  2850. This song appeared in the internet newsgroup rec.humor.funny on 24-Dec-1991.
  2851. It was contributed by Pat Scannell (scannell@@darkstar.ma30.bull.com).
  2852. X@}
  2853. X
  2854. X@$@<Verse@>@(@2@)@M==@{@-
  2855. XFor the @1 bug of Christmas, my manager said to me
  2856. X     @2
  2857. X@}
  2858. X
  2859. X@$@<1@>@M==@{See if they can do it again.@}
  2860. X@$@<2@>@M==@{Ask them how they did it and@+@<1@>@}
  2861. X@$@<3@>@M==@{Try to reproduce it@+@<2@>@}
  2862. X@$@<4@>@M==@{Run with the debugger@+@<3@>@}
  2863. X@$@<5@>@M==@{Ask for a dump@+@<4@>@}
  2864. X@$@<6@>@M==@{Reinstall the software@+@<5@>@}
  2865. X@$@<7@>@M==@{Say they need an upgrade@+@<6@>@}
  2866. X@$@<8@>@M==@{Find a way around it@+@<7@>@}
  2867. X@$@<9@>@M==@{Blame it on the hardware@+@<8@>@}
  2868. X@$@<A@>@M==@{Change the documentation@+@<9@>@}
  2869. X@$@<B@>@M==@{Say it's not supported@+@<A@>@}
  2870. X@$@<C@>@M==@{Tell them it's a feature@+@<B@>@}
  2871. END_OF_FILE
  2872. if test 1334 -ne `wc -c <'tests/ex08.fw'`; then
  2873.     echo shar: \"'tests/ex08.fw'\" unpacked with wrong size!
  2874. fi
  2875. # end of 'tests/ex08.fw'
  2876. fi
  2877. if test -f 'tests/ex09.fw' -a "${1}" != "-c" ; then 
  2878.   echo shar: Will not clobber existing file \"'tests/ex09.fw'\"
  2879. else
  2880. echo shar: Extracting \"'tests/ex09.fw'\" \(210 characters\)
  2881. sed "s/^X//" >'tests/ex09.fw' <<'END_OF_FILE'
  2882. XEX09: This example demonstrates the use of include files.
  2883. X
  2884. X@O@<ex09.out@>==@{
  2885. I like to go shooting, it's a whole lot of fun,
  2886. X@i ex09a.fwi
  2887. Cos they know my camera isn't loaded with lead.
  2888. X- RNW, 04-Jan-1991.
  2889. X@}
  2890. END_OF_FILE
  2891. if test 210 -ne `wc -c <'tests/ex09.fw'`; then
  2892.     echo shar: \"'tests/ex09.fw'\" unpacked with wrong size!
  2893. fi
  2894. # end of 'tests/ex09.fw'
  2895. fi
  2896. if test -f 'tests/ex09a.fwi' -a "${1}" != "-c" ; then 
  2897.   echo shar: Will not clobber existing file \"'tests/ex09a.fwi'\"
  2898. else
  2899. echo shar: Extracting \"'tests/ex09a.fwi'\" \(85 characters\)
  2900. sed "s/^X//" >'tests/ex09a.fwi' <<'END_OF_FILE'
  2901. X'Cos I shoot with a camera instead of a gun.
  2902. The animals flock to be petted and fed,
  2903. END_OF_FILE
  2904. if test 85 -ne `wc -c <'tests/ex09a.fwi'`; then
  2905.     echo shar: \"'tests/ex09a.fwi'\" unpacked with wrong size!
  2906. fi
  2907. # end of 'tests/ex09a.fwi'
  2908. fi
  2909. if test -f 'tests/ex10.fw' -a "${1}" != "-c" ; then 
  2910.   echo shar: Will not clobber existing file \"'tests/ex10.fw'\"
  2911. else
  2912. echo shar: Extracting \"'tests/ex10.fw'\" \(150 characters\)
  2913. sed "s/^X//" >'tests/ex10.fw' <<'END_OF_FILE'
  2914. XEX10: This example demonstrates the level at which include files are included.
  2915. X
  2916. X@O@<ex10.out@>==@{@-
  2917. X@i ex10a
  2918. This is the text of the sloth macro.
  2919. X@}
  2920. END_OF_FILE
  2921. if test 150 -ne `wc -c <'tests/ex10.fw'`; then
  2922.     echo shar: \"'tests/ex10.fw'\" unpacked with wrong size!
  2923. fi
  2924. # end of 'tests/ex10.fw'
  2925. fi
  2926. if test -f 'tests/ex10a.fwi' -a "${1}" != "-c" ; then 
  2927.   echo shar: Will not clobber existing file \"'tests/ex10a.fwi'\"
  2928. else
  2929. echo shar: Extracting \"'tests/ex10a.fwi'\" \(32 characters\)
  2930. sed "s/^X//" >'tests/ex10a.fwi' <<'END_OF_FILE'
  2931. X@<Sloth@>
  2932. X@}
  2933. X
  2934. X@$@<Sloth@>==@{@-
  2935. END_OF_FILE
  2936. if test 32 -ne `wc -c <'tests/ex10a.fwi'`; then
  2937.     echo shar: \"'tests/ex10a.fwi'\" unpacked with wrong size!
  2938. fi
  2939. # end of 'tests/ex10a.fwi'
  2940. fi
  2941. if test -f 'tests/ex11.fw' -a "${1}" != "-c" ; then 
  2942.   echo shar: Will not clobber existing file \"'tests/ex11.fw'\"
  2943. else
  2944. echo shar: Extracting \"'tests/ex11.fw'\" \(665 characters\)
  2945. sed "s/^X//" >'tests/ex11.fw' <<'END_OF_FILE'
  2946. XEX11: This example shows how FunnelWeb typesets macros, typesetter commands
  2947. X      and free text.
  2948. X
  2949. You are reading some free text before the macro. Free text can consist
  2950. of any text (not containing the FunnelWeb special character) including
  2951. typesetter commands
  2952. such as $, %, #, and \TeX{} which
  2953. will be typeset to appear exactly as they do in the input file!
  2954. Look out! Here comes a macro!
  2955. X
  2956. X@O@<ex11.out@>==@{@-
  2957. This text is part of
  2958. a macro definition.
  2959. X@}
  2960. X
  2961. This is free text following the macro. This sentence contains
  2962. two @{inline@} typesetter @/directives@/.
  2963. Now here is a non-inline typesetting directive.
  2964. X
  2965. X@t new_page
  2966. X
  2967. This sentence will appear on the next page.
  2968. END_OF_FILE
  2969. if test 665 -ne `wc -c <'tests/ex11.fw'`; then
  2970.     echo shar: \"'tests/ex11.fw'\" unpacked with wrong size!
  2971. fi
  2972. # end of 'tests/ex11.fw'
  2973. fi
  2974. if test -f 'tests/ex12.fw' -a "${1}" != "-c" ; then 
  2975.   echo shar: Will not clobber existing file \"'tests/ex12.fw'\"
  2976. else
  2977. echo shar: Extracting \"'tests/ex12.fw'\" \(499 characters\)
  2978. sed "s/^X//" >'tests/ex12.fw' <<'END_OF_FILE'
  2979. XEX12: This example gives some simple headings and demonstrates heading name
  2980. X      inheritance.
  2981. X
  2982. X@O@<ex12.out@>==@{dummy text@}
  2983. X
  2984. X@A@<Feed the Penguins and Save the World@>
  2985. X@B@<Feed the Penguins@>
  2986. X@C@<Feed the little penguins@>
  2987. X@C@<Feed the big penguins@>
  2988. X@B@<Save the World@>
  2989. X@C@<Save Europe@>
  2990. X@C@<Save Africa@>
  2991. X
  2992. X@C This heading hasn't been given an explicit name, but will inherit the
  2993. name \p{Save the rest of the world} from the macro definition below.
  2994. X
  2995. X@$@<Save the rest of the world@>@Z==@{...@}
  2996. END_OF_FILE
  2997. if test 499 -ne `wc -c <'tests/ex12.fw'`; then
  2998.     echo shar: \"'tests/ex12.fw'\" unpacked with wrong size!
  2999. fi
  3000. # end of 'tests/ex12.fw'
  3001. fi
  3002. if test -f 'tests/ex13.fw' -a "${1}" != "-c" ; then 
  3003.   echo shar: Will not clobber existing file \"'tests/ex13.fw'\"
  3004. else
  3005. echo shar: Extracting \"'tests/ex13.fw'\" \(1290 characters\)
  3006. sed "s/^X//" >'tests/ex13.fw' <<'END_OF_FILE'
  3007. XEX13: This example is used to generate typeset documentation which is
  3008. X      discussed in the tutorial in the FunnelWeb user's manual.
  3009. X
  3010. X
  3011. X@A@<Table of Contents@>
  3012. X
  3013. X@t table_of_contents
  3014. X
  3015. X@A@<Macros for Moral Support@>
  3016. X
  3017. The following macro contain comments that provide moral support in the
  3018. output code.
  3019. X
  3020. X@$@<Programmer's Cheer@>@M==@{
  3021. X-- Shift to the left!
  3022. X-- Shift to the right!
  3023. X-- Pop up, push down!
  3024. X-- Byte! Byte! Byte!
  3025. X-- (From "The New Hacker's Dictionary").
  3026. X@}
  3027. X
  3028. The next macro is similar but is distributed throughout the program.
  3029. X@$@<Hacker's Cheer@>+=@{@+-- Pointer to the left@+@}
  3030. X
  3031. X@A@<An Extremely Imperative Stack Abstraction@>
  3032. X
  3033. X@B@<Define the Stack@>
  3034. X@$@<Hacker's Cheer@>+=@{-- Pointer to the right@+@}
  3035. X@$@<Stack Type@>@Z==@{type stack = record ... end;@}
  3036. X
  3037. X@B@<Push the Stack@>
  3038. X@$@<Hacker's Cheer@>+=@{-- Hack that code@+@}
  3039. X@$@<Push Procedure@>@Z==@{@-
  3040. procedure push(var b:stack; v:value); @<Programmer's Cheer@> {...}@}
  3041. X
  3042. X@B@<Pop the Stack@>
  3043. X@$@<Hacker's Cheer@>+=@{-- Tight! Tight! Tight!@+@}
  3044. X@$@<Pop Procedure@>@Z==@{@-
  3045. procedure pop(var b:stack); @<Programmer's Cheer@> {...}@}
  3046. X
  3047. X@B@<Rough the Stack Up a Bit@>
  3048. X@$@<Hacker's Cheer@>+=@{-- (RNW, 04-Jan-1991).@+@}
  3049. X@$@<Rough Procedure@>@Z==@{@-
  3050. procedure rough(var b:stack); @<Hacker's Cheer@> {...}@}
  3051. X
  3052. X@O@<dummy.txt@>==@{dummy@+@}
  3053. END_OF_FILE
  3054. if test 1290 -ne `wc -c <'tests/ex13.fw'`; then
  3055.     echo shar: \"'tests/ex13.fw'\" unpacked with wrong size!
  3056. fi
  3057. # end of 'tests/ex13.fw'
  3058. fi
  3059. if test -f 'tests/ex14.fw' -a "${1}" != "-c" ; then 
  3060.   echo shar: Will not clobber existing file \"'tests/ex14.fw'\"
  3061. else
  3062. echo shar: Extracting \"'tests/ex14.fw'\" \(293 characters\)
  3063. sed "s/^X//" >'tests/ex14.fw' <<'END_OF_FILE'
  3064. XEX14: This example demonstrates the literal and emphasis typesetting constructs.
  3065. X
  3066. The following procedure @{put_sloth@} writes the @{sloth@} variable to
  3067. the output file. Note: @/The output file must be opened for writing
  3068. at this point or the program will crash!@/
  3069. X
  3070. X@O@<ex14.out@>==@{dummy@+@}
  3071. END_OF_FILE
  3072. if test 293 -ne `wc -c <'tests/ex14.fw'`; then
  3073.     echo shar: \"'tests/ex14.fw'\" unpacked with wrong size!
  3074. fi
  3075. # end of 'tests/ex14.fw'
  3076. fi
  3077. if test -f 'tests/ex15.fw' -a "${1}" != "-c" ; then 
  3078.   echo shar: Will not clobber existing file \"'tests/ex15.fw'\"
  3079. else
  3080. echo shar: Extracting \"'tests/ex15.fw'\" \(521 characters\)
  3081. sed "s/^X//" >'tests/ex15.fw' <<'END_OF_FILE'
  3082. XEX15: This example demonstrates some of FunnelWeb's generic typesetting
  3083. X      constructs.
  3084. X
  3085. X@t vskip 40 mm
  3086. X@t title titlefont centre "Hairy Wombat"
  3087. X@t title titlefont centre "Simulation"
  3088. X@t vskip 10 mm
  3089. X@t title smalltitlefont centre "A Program in Six Parts"
  3090. X@t title smalltitlefont centre "Simulating the Life of Some Hairy Wombats"
  3091. X@t vskip 20 mm
  3092. X@t title normalfont left "By Zqitzypbuswapzra Ypongtatoslrtzz"
  3093. X@t new_page
  3094. X@t table_of_contents
  3095. X@t new_page
  3096. X
  3097. X@A@<Section One@>
  3098. X@A@<Section Two@>
  3099. X
  3100. X@O@<ex15.out@>==@{Dummy@+@}
  3101. END_OF_FILE
  3102. if test 521 -ne `wc -c <'tests/ex15.fw'`; then
  3103.     echo shar: \"'tests/ex15.fw'\" unpacked with wrong size!
  3104. fi
  3105. # end of 'tests/ex15.fw'
  3106. fi
  3107. if test -f 'tests/hi01.fw' -a "${1}" != "-c" ; then 
  3108.   echo shar: Will not clobber existing file \"'tests/hi01.fw'\"
  3109. else
  3110. echo shar: Extracting \"'tests/hi01.fw'\" \(291 characters\)
  3111. sed "s/^X//" >'tests/hi01.fw' <<'END_OF_FILE'
  3112. HI01: This example demonstrates a problem with managing end of line markers.
  3113. X
  3114. X@O@<hi01.out@>==@{
  3115. while the_walrus_is_sleepy do
  3116. X   begin
  3117. X   writeln('zzzzzzz');
  3118. X   @<Wake up the walrus@>
  3119. X   writeln('Umpharumpha...');
  3120. X   end;
  3121. X@}
  3122. X
  3123. X@$@<Wake up the walrus@>==@{
  3124. wake_up_the_walrus(the_walrus);
  3125. X@}
  3126. END_OF_FILE
  3127. if test 291 -ne `wc -c <'tests/hi01.fw'`; then
  3128.     echo shar: \"'tests/hi01.fw'\" unpacked with wrong size!
  3129. fi
  3130. # end of 'tests/hi01.fw'
  3131. fi
  3132. if test -f 'tests/hi02.fw' -a "${1}" != "-c" ; then 
  3133.   echo shar: Will not clobber existing file \"'tests/hi02.fw'\"
  3134. else
  3135. echo shar: Extracting \"'tests/hi02.fw'\" \(794 characters\)
  3136. sed "s/^X//" >'tests/hi02.fw' <<'END_OF_FILE'
  3137. HI02: This example shows how FunnelWeb's macro facility can be used to
  3138. X      fudge conditionals.
  3139. X
  3140. X@O@<hi02.out@>==@{
  3141. X@<Sloth incrementing loop@>
  3142. X@}
  3143. X
  3144. X@A@<Debug Macro@>
  3145. X
  3146. The following macro determines whether debug code will be included in the
  3147. program. All lines of debug code commence with a call to this macro and so
  3148. we can turn all that code on or off here by defining this macro to be either
  3149. empty or the single-line comment symbol (\p{--}). Note the use of a
  3150. quick macro name.
  3151. X
  3152. X@$@#D@M==@{@}     @! Turns the debug code ON.
  3153. X@! Use this definition to turn the debug code OFF: @$@#D==@{--@}
  3154. X
  3155. X
  3156. X@$@<Sloth incrementing loop@>==@{@-
  3157. while sloth<walrus loop
  3158. X   @#D assert(sloth<walrus,"AWK! sloth>=walrus!!!!!!!");
  3159. X   @#D assert(timer<timermax,"AWK! timer>=timermax!!!");
  3160. X   inc(sloth);
  3161. end loop@}
  3162. END_OF_FILE
  3163. if test 794 -ne `wc -c <'tests/hi02.fw'`; then
  3164.     echo shar: \"'tests/hi02.fw'\" unpacked with wrong size!
  3165. fi
  3166. # end of 'tests/hi02.fw'
  3167. fi
  3168. if test -f 'tests/hi03.fw' -a "${1}" != "-c" ; then 
  3169.   echo shar: Will not clobber existing file \"'tests/hi03.fw'\"
  3170. else
  3171. echo shar: Extracting \"'tests/hi03.fw'\" \(779 characters\)
  3172. sed "s/^X//" >'tests/hi03.fw' <<'END_OF_FILE'
  3173. HI03: This example shows how FunnelWeb's macro facility can be used to
  3174. X      fudge conditionals. This method is different to HI02.
  3175. X
  3176. X@O@<hi03.out@>==@{
  3177. X@<Sloth incrementing loop@>
  3178. X@}
  3179. X
  3180. X@A@<Debug Macro@>
  3181. X
  3182. The following macro determines whether debug code will be included in the
  3183. program. All debug code is wrapped by a call to this macro and so
  3184. we can turn all the debug code on or off here by defining this macro to be
  3185. either empty or its parameter.
  3186. X
  3187. X@$@#D@(@1@)@M==@{@1@}     @! Turns the debug code ON.
  3188. X@! Use this definition to turn the debug code OFF: @$@#D@(@1@)==@{@}
  3189. X
  3190. X
  3191. X
  3192. X@$@<Sloth incrementing loop@>==@{@-
  3193. while sloth<walrus loop
  3194. X   @#D@(assert(sloth<walrus,"AWK! sloth>=walrus!!!!!!!");
  3195. X        assert(timer<timermax,"AWK! timer>=timermax!!!");@)
  3196. X   inc(sloth);
  3197. end loop@}
  3198. END_OF_FILE
  3199. if test 779 -ne `wc -c <'tests/hi03.fw'`; then
  3200.     echo shar: \"'tests/hi03.fw'\" unpacked with wrong size!
  3201. fi
  3202. # end of 'tests/hi03.fw'
  3203. fi
  3204. if test -f 'tests/hi04.fw' -a "${1}" != "-c" ; then 
  3205.   echo shar: Will not clobber existing file \"'tests/hi04.fw'\"
  3206. else
  3207. echo shar: Extracting \"'tests/hi04.fw'\" \(821 characters\)
  3208. sed "s/^X//" >'tests/hi04.fw' <<'END_OF_FILE'
  3209. HI04: This example shows how FunnelWeb's macro facility can be used to
  3210. X      fudge a multi-way conditional.
  3211. X
  3212. X@O@<hi04.out@>==@{@<Main code@>@}
  3213. X
  3214. X@A This module contains non-portable code that must execute on Hewlett
  3215. Packard, Sun, and DEC workstations. The following FunnelWeb macro is
  3216. defined to choose between these three. The first parameter is the HP code,
  3217. the second is the Sun code, and the third is the DEC code. Whichever
  3218. parameter constitutes the body of this macro determines which
  3219. machine the code is being targetted for.
  3220. X
  3221. X@$@<Machine specific code@>@(@3@)@M==@{@1@}  @! Configure for HP.
  3222. X
  3223. X@$@<Main code@>==@{@-
  3224. X-------
  3225. X@<Machine specific code@>@(
  3226. X@"get_command_line(comline)@"           @, @! HP.
  3227. X@"scan_command_line(128,comline);@"     @, @! Sun.
  3228. X@"dcl_get_command_line(comline,256);@"  @) @! DEC.
  3229. X
  3230. X-------
  3231. X@}
  3232. END_OF_FILE
  3233. if test 821 -ne `wc -c <'tests/hi04.fw'`; then
  3234.     echo shar: \"'tests/hi04.fw'\" unpacked with wrong size!
  3235. fi
  3236. # end of 'tests/hi04.fw'
  3237. fi
  3238. if test -f 'tests/hi05.fw' -a "${1}" != "-c" ; then 
  3239.   echo shar: Will not clobber existing file \"'tests/hi05.fw'\"
  3240. else
  3241. echo shar: Extracting \"'tests/hi05.fw'\" \(537 characters\)
  3242. sed "s/^X//" >'tests/hi05.fw' <<'END_OF_FILE'
  3243. HI05: This example shows how FunnelWeb can be used to dissect a file.
  3244. X
  3245. X@O@<hi05.out@>==@{@-
  3246. Unreadable Postscript code
  3247. X@<Print routine@>
  3248. Unreadable Postscript code
  3249. X@<Zap routine@>
  3250. Unreadable Postscript code
  3251. X@}
  3252. X
  3253. X@A This routine looks as if it does this, but really is does that,
  3254. blah, blah blah.
  3255. X
  3256. X@$@<Print routine@>==@{@-
  3257. X/print { push pop pop push turn around and jump up and down and print it} def
  3258. X@}
  3259. X
  3260. X@A This routine zaps the...
  3261. X
  3262. X@$@<Zap routine@>==@{@-
  3263. X/zap { push pop pop push turn around and jump up and down and print it} def
  3264. X@}
  3265. X
  3266. END_OF_FILE
  3267. if test 537 -ne `wc -c <'tests/hi05.fw'`; then
  3268.     echo shar: \"'tests/hi05.fw'\" unpacked with wrong size!
  3269. fi
  3270. # end of 'tests/hi05.fw'
  3271. fi
  3272. if test -f 'tests/hi06.fw' -a "${1}" != "-c" ; then 
  3273.   echo shar: Will not clobber existing file \"'tests/hi06.fw'\"
  3274. else
  3275. echo shar: Extracting \"'tests/hi06.fw'\" \(565 characters\)
  3276. sed "s/^X//" >'tests/hi06.fw' <<'END_OF_FILE'
  3277. HI06: This example shows how FunnelWeb can be used to allow compile
  3278. time information sharing between two cooperating programs written in
  3279. different programming languages.
  3280. X
  3281. X@A The following macro contains the temporary file name used to allow the
  3282. two shellscripts to transfer each file to be printed.
  3283. X
  3284. X@$@<printfile@>@M==@{printme.txt@}
  3285. X
  3286. X@A Here are the scripts for the local VMS node and the remote UNIX node.
  3287. X
  3288. X@O@<hi06a.out@>==@{@-
  3289. DCL commands
  3290. copy @<printfile@> unixnode::
  3291. DCL commands
  3292. X@}
  3293. X
  3294. X@O@<hi06b.out@>==@{@-
  3295. unix commands
  3296. print @<printfile@>
  3297. unix commands
  3298. X@}
  3299. END_OF_FILE
  3300. if test 565 -ne `wc -c <'tests/hi06.fw'`; then
  3301.     echo shar: \"'tests/hi06.fw'\" unpacked with wrong size!
  3302. fi
  3303. # end of 'tests/hi06.fw'
  3304. fi
  3305. if test -f 'tests/hi07.fw' -a "${1}" != "-c" ; then 
  3306.   echo shar: Will not clobber existing file \"'tests/hi07.fw'\"
  3307. else
  3308. echo shar: Extracting \"'tests/hi07.fw'\" \(455 characters\)
  3309. sed "s/^X//" >'tests/hi07.fw' <<'END_OF_FILE'
  3310. HI07: This example demonstrates how FunnelWeb can be used to allow text
  3311. sharing between documents.
  3312. X
  3313. X@O@<hi07a.out@>==@{@<M1@>@+@}
  3314. X@O@<hi07b.out@>==@{@<M2@>@+@}
  3315. X
  3316. X@$@<M1@>+=@{@<T1@>@}
  3317. X@$@<M2@>+=@{@<T1@>@}
  3318. X@$@<T1@>@M==@{First lump of text shared by both documents.@+@}
  3319. X
  3320. X@$@<M1@>+=@{Text for first document@+@}
  3321. X@$@<M2@>+=@{Text for second document@+@}
  3322. X
  3323. X@$@<M1@>+=@{@<T2@>@}
  3324. X@$@<M2@>+=@{@<T2@>@}
  3325. X@$@<T2@>@M==@{Second lump of text shared by both documents.@+@}
  3326. END_OF_FILE
  3327. if test 455 -ne `wc -c <'tests/hi07.fw'`; then
  3328.     echo shar: \"'tests/hi07.fw'\" unpacked with wrong size!
  3329. fi
  3330. # end of 'tests/hi07.fw'
  3331. fi
  3332. if test -f 'tests/hi08.fw' -a "${1}" != "-c" ; then 
  3333.   echo shar: Will not clobber existing file \"'tests/hi08.fw'\"
  3334. else
  3335. echo shar: Extracting \"'tests/hi08.fw'\" \(805 characters\)
  3336. sed "s/^X//" >'tests/hi08.fw' <<'END_OF_FILE'
  3337. HI08: This example shows how parameterized macros can be used to choose
  3338. X between alternative texts.
  3339. X
  3340. X@! Set the definition of @#D to
  3341. X@!    @1 to create the shareholders report.
  3342. X@!    @2 to create the customers report.
  3343. X@$@#D@(@2@)@M==@{@1@}
  3344. X
  3345. X@O@<hi08.out@>==@{@-
  3346. X1992 ANNUAL REPORT TO @#D@(Shareholders@,Customers@)
  3347. X======================@#D@(============@,=========@)
  3348. This has been a very good year for The Very Big Corporation of America.
  3349. With your help, we have been able to successfully
  3350. X@#D@(@"screw the customers for every cent they have@"@,
  3351. X     @"knock the shareholders into submission to bring you lower prices@"@).
  3352. With gross earnings approaching six trillion dollars, we have been able to
  3353. X@#D@(@"increase dividends@"@,
  3354. X     @"lower prices@"@).
  3355. We expect to have an even better year next year.
  3356. X@}
  3357. END_OF_FILE
  3358. if test 805 -ne `wc -c <'tests/hi08.fw'`; then
  3359.     echo shar: \"'tests/hi08.fw'\" unpacked with wrong size!
  3360. fi
  3361. # end of 'tests/hi08.fw'
  3362. fi
  3363. if test -f 'tests/pr01.fw' -a "${1}" != "-c" ; then 
  3364.   echo shar: Will not clobber existing file \"'tests/pr01.fw'\"
  3365. else
  3366. echo shar: Extracting \"'tests/pr01.fw'\" \(646 characters\)
  3367. sed "s/^X//" >'tests/pr01.fw' <<'END_OF_FILE'
  3368. PR01: Test the inline typesetting features.
  3369. X
  3370. X1. First we test the legal use of the @{literal@} construct.
  3371. X
  3372. X2.Test @{@} (illegal).
  3373. X@A@<Error Recovery Point@>
  3374. X
  3375. X3. Test the construct @{across
  3376. X   more than one line@}.
  3377. X
  3378. X4. Now we test the construct with non-text following it.
  3379. X   @{@<sloth@>@}
  3380. X@A@<Error Recovery Point@>
  3381. X   @{     @>   @}
  3382. X@A@<Error Recovery Point@>
  3383. X
  3384. X5. Test the legal use of the @/emphasis@/ construct.
  3385. X
  3386. X6.Test @/@/ (illegal).
  3387. X@A@<Error Recovery Point@>
  3388. X
  3389. X7. Test the construct @/across
  3390. X   more than one line@/.
  3391. X
  3392. X8. Now we test the construct with non-text following it.
  3393. X   @/@<sloth@>@/
  3394. X@A@<Error Recovery Point@>
  3395. X   @/     @<   @/
  3396. X
  3397. X
  3398. X
  3399. END_OF_FILE
  3400. if test 646 -ne `wc -c <'tests/pr01.fw'`; then
  3401.     echo shar: \"'tests/pr01.fw'\" unpacked with wrong size!
  3402. fi
  3403. # end of 'tests/pr01.fw'
  3404. fi
  3405. if test -f 'tests/pr02.fw' -a "${1}" != "-c" ; then 
  3406.   echo shar: Will not clobber existing file \"'tests/pr02.fw'\"
  3407. else
  3408. echo shar: Extracting \"'tests/pr02.fw'\" \(293 characters\)
  3409. sed "s/^X//" >'tests/pr02.fw' <<'END_OF_FILE'
  3410. PR02: Test the parsing of typesetter directives.
  3411. X
  3412. X1. Test parsing of new page directive.
  3413. X@t new_page
  3414. X
  3415. X2. Test parsing of table of contents directive.
  3416. X@t table_of_contents
  3417. X
  3418. X3. Test parsing of vskip directive.
  3419. X@t vskip 32 mm
  3420. X
  3421. X4. Test parsing of title directive.
  3422. X@t title titlefont left "Sloth"
  3423. X
  3424. END_OF_FILE
  3425. if test 293 -ne `wc -c <'tests/pr02.fw'`; then
  3426.     echo shar: \"'tests/pr02.fw'\" unpacked with wrong size!
  3427. fi
  3428. # end of 'tests/pr02.fw'
  3429. fi
  3430. if test -f 'tests/pr03.fw' -a "${1}" != "-c" ; then 
  3431.   echo shar: Will not clobber existing file \"'tests/pr03.fw'\"
  3432. else
  3433. echo shar: Extracting \"'tests/pr03.fw'\" \(547 characters\)
  3434. sed "s/^X//" >'tests/pr03.fw' <<'END_OF_FILE'
  3435. PR03: Test the parsing and semantics of sections.
  3436. X
  3437. X4. Test first section of document is not <special>A.
  3438. X@B@<This section is out of order (and so is this test!)@>
  3439. X
  3440. X1. Test section with no name.
  3441. X@A This section has no name.
  3442. X@$@<The section name inherits the name of this macro@>@{Walrus@}
  3443. X
  3444. X2. Test section with a name
  3445. X@A@<This section has no name.@>
  3446. X
  3447. X3. Test the entire hierarchy.
  3448. X@A@<One@>
  3449. X@B@<Two@>
  3450. X@C@<Three@>
  3451. X@D@<Four@>
  3452. X@E@<Five@>
  3453. X
  3454. X5. Test detection of discontinuity in levels.
  3455. X@A@<One@>
  3456. X@C@<Three@>
  3457. X@E@<Five@>
  3458. X
  3459. X@A@<One@>
  3460. X@B@<Three@>
  3461. X@D@<Five@>
  3462. END_OF_FILE
  3463. if test 547 -ne `wc -c <'tests/pr03.fw'`; then
  3464.     echo shar: \"'tests/pr03.fw'\" unpacked with wrong size!
  3465. fi
  3466. # end of 'tests/pr03.fw'
  3467. fi
  3468. if test -f 'tests/pr04.fw' -a "${1}" != "-c" ; then 
  3469.   echo shar: Will not clobber existing file \"'tests/pr04.fw'\"
  3470. else
  3471. echo shar: Extracting \"'tests/pr04.fw'\" \(1111 characters\)
  3472. sed "s/^X//" >'tests/pr04.fw' <<'END_OF_FILE'
  3473. PR04: Test the definition of ordinary macros.
  3474. X
  3475. X1. Test an ordinary macro definition.
  3476. X@$@<Ordinary@>@{The text of ordinary@}
  3477. X
  3478. X2. Test an ordinary definition using a quickname.
  3479. X@$@#|@{The text of ordinary@}
  3480. X
  3481. X3. Test a name that includes EOL.
  3482. X@$@<This name is illegal because
  3483. it crosses a lion@>@{And people who cross lions tend to get eaten.@}
  3484. X@A@<Error Recovery Point@>
  3485. X
  3486. X4. Test the minimum length name (the empty name).
  3487. X@$@<@>@{The empty macro name is quite legal in FunnelWeb.@}
  3488. X
  3489. X5. Test a name at the maximum name length limit (80).
  3490. ONly the second of the two macros should generate an error.
  3491. X@p maximum_input_line_length = 100
  3492. X@$@<12345678901234567890123456789012345678901234567890123456789012345678901234567890@>@{@}
  3493. X@$@<123456789012345678901234567890123456789012345678901234567890123456789012345678901@>@{@}
  3494. X@A@<Error Recovery Point@>
  3495. X
  3496. X6. Test names with all legal characters. There should be no errors.
  3497. X@$@< !"#$%'()*+,-./0123456789:;<=>?@>@{@}
  3498. X@$@<ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@>@{@}
  3499. X@$@<abcdefghijklmnopqrstuvwxyz{|}~@>@{@}
  3500. X
  3501. X7. Test a name that has inserted text sequences.
  3502. X
  3503. X@$@<@^D(065)@@@>==@{@}
  3504. X
  3505. X
  3506. END_OF_FILE
  3507. if test 1111 -ne `wc -c <'tests/pr04.fw'`; then
  3508.     echo shar: \"'tests/pr04.fw'\" unpacked with wrong size!
  3509. fi
  3510. # end of 'tests/pr04.fw'
  3511. fi
  3512. if test -f 'tests/pr05.fw' -a "${1}" != "-c" ; then 
  3513.   echo shar: Will not clobber existing file \"'tests/pr05.fw'\"
  3514. else
  3515. echo shar: Extracting \"'tests/pr05.fw'\" \(997 characters\)
  3516. sed "s/^X//" >'tests/pr05.fw' <<'END_OF_FILE'
  3517. PR05: Test the parsing of formal parameter lists.
  3518. X
  3519. XFirst trip the parser so we don't get past the parser.
  3520. X@>
  3521. X
  3522. X1. Test macro definition with no formal parameters.
  3523. X@$@<Sloth@>@{Slothtext@}
  3524. X
  3525. X2. Test macro definition with one formal parameter.
  3526. X@$@<Sloth with one@>@(@1@)@{Slothtext@}
  3527. X
  3528. X3. Test macro definition with many formal parameters.
  3529. X@$@<Sloth with 2@>@(@2@)@{Slothtext@}
  3530. X@$@<Sloth with 3@>@(@3@)@{Slothtext@}
  3531. X@$@<Sloth with 4@>@(@4@)@{Slothtext@}
  3532. X@$@<Sloth with 5@>@(@5@)@{Slothtext@}
  3533. X@$@<Sloth with 6@>@(@6@)@{Slothtext@}
  3534. X@$@<Sloth with 7@>@(@7@)@{Slothtext@}
  3535. X@$@<Sloth with 8@>@(@8@)@{Slothtext@}
  3536. X@$@<Sloth with 9@>@(@9@)@{Slothtext@}
  3537. X
  3538. X4. Test with syntax errors in the parameter list.
  3539. X
  3540. X@$@<Sloth a@>@(@+@9@)@{Slothtext@}
  3541. X@A@<Error recovery point@>
  3542. X
  3543. X@$@<Sloth b@>@9@)@{Slothtext@}
  3544. X@A@<Error recovery point@>
  3545. X
  3546. X@$@<Sloth c@>@(9@)@{Slothtext@}
  3547. X@A@<Error recovery point@>
  3548. X
  3549. X@$@<Sloth d@>@9@)@{Slothtext@}
  3550. X@A@<Error recovery point@>
  3551. X
  3552. X@$@<Sloth e@>@(@9@)@)@{Slothtext@}
  3553. X@A@<Error recovery point@>
  3554. X
  3555. X
  3556. X
  3557. END_OF_FILE
  3558. if test 997 -ne `wc -c <'tests/pr05.fw'`; then
  3559.     echo shar: \"'tests/pr05.fw'\" unpacked with wrong size!
  3560. fi
  3561. # end of 'tests/pr05.fw'
  3562. fi
  3563. if test -f 'tests/pr06.fw' -a "${1}" != "-c" ; then 
  3564.   echo shar: Will not clobber existing file \"'tests/pr06.fw'\"
  3565. else
  3566. echo shar: Extracting \"'tests/pr06.fw'\" \(885 characters\)
  3567. sed "s/^X//" >'tests/pr06.fw' <<'END_OF_FILE'
  3568. PR06: Test the parsing on invocation number constraints.
  3569. X
  3570. Trip the parser so we don't get past it.
  3571. X@>
  3572. X
  3573. X1. Test with no zero and no many.
  3574. X@$@<Sloth@>@{No zero and no many in this macro@}
  3575. X
  3576. X2. Test with a zero.
  3577. X@$@<Sloth zero@>@Z@{Can be called from 0 to 1 times.@}
  3578. X
  3579. X3. Test with a many.
  3580. X@$@<Sloth many@>@M@{Can be called from 1 to infinity times.@}
  3581. X
  3582. X4. Test with a zero and a many.
  3583. X@$@<Sloth zeromany@>@Z@M@{Can be called from 0 to infinity times.@}
  3584. X
  3585. X5. Test with a zero and a many but out of order (should give error).
  3586. X@$@<Sloth manyzero@>@M@Z@{Oops.@}
  3587. X@A@<Error recovery point@>
  3588. X
  3589. X6. Test with syntactic errors.
  3590. X
  3591. X@$@<Sloth a@> @M @Z @{Oops.@}
  3592. X@A@<Error recovery point@>
  3593. X
  3594. X@$@<Sloth b@>@Z@Z@{Oops.@}
  3595. X@A@<Error recovery point@>
  3596. X
  3597. X@$@<Sloth c@Z@>@{Oops.@}
  3598. X@A@<Error recovery point@>
  3599. X
  3600. X@$@<Sloth d@>Z@{Oops.@}
  3601. X@A@<Error recovery point@>
  3602. X
  3603. X@$@<Sloth d@>@ZM@{Oops.@}
  3604. X@A@<Error recovery point@>
  3605. X
  3606. X
  3607. END_OF_FILE
  3608. if test 885 -ne `wc -c <'tests/pr06.fw'`; then
  3609.     echo shar: \"'tests/pr06.fw'\" unpacked with wrong size!
  3610. fi
  3611. # end of 'tests/pr06.fw'
  3612. fi
  3613. if test -f 'tests/pr07.fw' -a "${1}" != "-c" ; then 
  3614.   echo shar: Will not clobber existing file \"'tests/pr07.fw'\"
  3615. else
  3616. echo shar: Extracting \"'tests/pr07.fw'\" \(878 characters\)
  3617. sed "s/^X//" >'tests/pr07.fw' <<'END_OF_FILE'
  3618. PR07: Test the parsing of == and += in macro definitions.
  3619. X
  3620. Trip the parser so we don't get any further.
  3621. X@>
  3622. X
  3623. X1. Test with no equals.
  3624. X@$@<Sloth@>@{No equals in this macro definition.@}
  3625. X
  3626. X2. Test with ==.
  3627. X@$@<Sloth with equals@>==@{No equals in this macro definition.@}
  3628. X
  3629. X3. Test with +=.
  3630. X@$@<Sloth with plus@>+=@{No equals in this macro definition.@}
  3631. X
  3632. X4. Test with syntax errors.
  3633. X
  3634. X@$@<Error1@>++@{No equals in this macro definition.@}
  3635. X@A@<Error recovery point@>
  3636. X
  3637. X@$@<Error2@>@+=@{No equals in this macro definition.@}
  3638. X@A@<Error recovery point@>
  3639. X
  3640. X@$@<Error3@>+==+@{No equals in this macro definition.@}
  3641. X@A@<Error recovery point@>
  3642. X
  3643. X@$@<Error4@>=+@{No equals in this macro definition.@}
  3644. X@A@<Error recovery point@>
  3645. X
  3646. X@$@<Error4@>@=@=@{No equals in this macro definition.@}
  3647. X@A@<Error recovery point@>
  3648. X
  3649. X@$@<Error4@>@+@=@{No equals in this macro definition.@}
  3650. X@A@<Error recovery point@>
  3651. X
  3652. X
  3653. X
  3654. END_OF_FILE
  3655. if test 878 -ne `wc -c <'tests/pr07.fw'`; then
  3656.     echo shar: \"'tests/pr07.fw'\" unpacked with wrong size!
  3657. fi
  3658. # end of 'tests/pr07.fw'
  3659. fi
  3660. if test -f 'tests/pr10.fw' -a "${1}" != "-c" ; then 
  3661.   echo shar: Will not clobber existing file \"'tests/pr10.fw'\"
  3662. else
  3663. echo shar: Extracting \"'tests/pr10.fw'\" \(564 characters\)
  3664. sed "s/^X//" >'tests/pr10.fw' <<'END_OF_FILE'
  3665. PR10: Test syntactic error recovery.
  3666. X
  3667. X1. Test recovery at top parsing level.
  3668. X@<
  3669. X
  3670. X@A@<Error recovery point@>
  3671. X
  3672. X2. Test recovery inside macro definition.
  3673. X
  3674. X@$@<Sloth1@>@>==@{
  3675. Walrus@}
  3676. X
  3677. X@$@<Sloth2@>==@{
  3678. X@<Walrus@<
  3679. X@}
  3680. X@A@<Error recovery point@>
  3681. X
  3682. X3. Test recovery inside actual parameter list in macro definition.
  3683. X@$@<Sloth3@>==@{
  3684. X@<Walrus@>@(@"aardvark@>
  3685. X@}
  3686. X@A@<Error recovery point@>
  3687. X
  3688. X4. Test EOF in the middle of a complicated construct.
  3689. The following makes the end of the file looked chopped off, but it is
  3690. actually intentional.
  3691. X@$@<Sloth4@>==@{
  3692. X@<Walrus@>@(@"aardva
  3693. END_OF_FILE
  3694. if test 564 -ne `wc -c <'tests/pr10.fw'`; then
  3695.     echo shar: \"'tests/pr10.fw'\" unpacked with wrong size!
  3696. fi
  3697. # end of 'tests/pr10.fw'
  3698. fi
  3699. if test -f 'tests/sc01_note.fw' -a "${1}" != "-c" ; then 
  3700.   echo shar: Will not clobber existing file \"'tests/sc01_note.fw'\"
  3701. else
  3702. echo shar: Extracting \"'tests/sc01_note.fw'\" \(123 characters\)
  3703. sed "s/^X//" >'tests/sc01_note.fw' <<'END_OF_FILE'
  3704. SC01: The first test tests what happens when FunnelWeb cannot find the
  3705. specified input file. And so the file cannot exist!
  3706. END_OF_FILE
  3707. if test 123 -ne `wc -c <'tests/sc01_note.fw'`; then
  3708.     echo shar: \"'tests/sc01_note.fw'\" unpacked with wrong size!
  3709. fi
  3710. # end of 'tests/sc01_note.fw'
  3711. fi
  3712. if test -f 'tests/sc02.fw' -a "${1}" != "-c" ; then 
  3713.   echo shar: Will not clobber existing file \"'tests/sc02.fw'\"
  3714. else
  3715. echo shar: Extracting \"'tests/sc02.fw'\" \(0 characters\)
  3716. sed "s/^X//" >'tests/sc02.fw' <<'END_OF_FILE'
  3717. END_OF_FILE
  3718. if test 0 -ne `wc -c <'tests/sc02.fw'`; then
  3719.     echo shar: \"'tests/sc02.fw'\" unpacked with wrong size!
  3720. fi
  3721. # end of 'tests/sc02.fw'
  3722. fi
  3723. if test -f 'tests/sc03.fw' -a "${1}" != "-c" ; then 
  3724.   echo shar: Will not clobber existing file \"'tests/sc03.fw'\"
  3725. else
  3726. echo shar: Extracting \"'tests/sc03.fw'\" \(1 character\)
  3727. sed "s/^X//" >'tests/sc03.fw' <<'END_OF_FILE'
  3728. X
  3729. END_OF_FILE
  3730. if test 1 -ne `wc -c <'tests/sc03.fw'`; then
  3731.     echo shar: \"'tests/sc03.fw'\" unpacked with wrong size!
  3732. fi
  3733. # end of 'tests/sc03.fw'
  3734. fi
  3735. if test -f 'tests/sc04.fw' -a "${1}" != "-c" ; then 
  3736.   echo shar: Will not clobber existing file \"'tests/sc04.fw'\"
  3737. else
  3738. echo shar: Extracting \"'tests/sc04.fw'\" \(2 characters\)
  3739. sed "s/^X//" >'tests/sc04.fw' <<'END_OF_FILE'
  3740. X
  3741. X
  3742. END_OF_FILE
  3743. if test 2 -ne `wc -c <'tests/sc04.fw'`; then
  3744.     echo shar: \"'tests/sc04.fw'\" unpacked with wrong size!
  3745. fi
  3746. # end of 'tests/sc04.fw'
  3747. fi
  3748. if test -f 'tests/sc05.fw' -a "${1}" != "-c" ; then 
  3749.   echo shar: Will not clobber existing file \"'tests/sc05.fw'\"
  3750. else
  3751. echo shar: Extracting \"'tests/sc05.fw'\" \(67 characters\)
  3752. sed "s/^X//" >'tests/sc05.fw' <<'END_OF_FILE'
  3753. SC05: This input file contains a single line containing this text!
  3754. END_OF_FILE
  3755. if test 67 -ne `wc -c <'tests/sc05.fw'`; then
  3756.     echo shar: \"'tests/sc05.fw'\" unpacked with wrong size!
  3757. fi
  3758. # end of 'tests/sc05.fw'
  3759. fi
  3760. if test -f 'tests/sc06.fw' -a "${1}" != "-c" ; then 
  3761.   echo shar: Will not clobber existing file \"'tests/sc06.fw'\"
  3762. else
  3763. echo shar: Extracting \"'tests/sc06.fw'\" \(141 characters\)
  3764. sed "s/^X//" >'tests/sc06.fw' <<'END_OF_FILE'
  3765. SC06: Test FunnelWeb on a file whose last line is not terminated properly
  3766. with an end of line marker.
  3767. X
  3768. Here is the improper termination!---->END_OF_FILE
  3769. if test 141 -ne `wc -c <'tests/sc06.fw'`; then
  3770.     echo shar: \"'tests/sc06.fw'\" unpacked with wrong size!
  3771. fi
  3772. # end of 'tests/sc06.fw'
  3773. fi
  3774. if test -f 'tests/sc07.fw' -a "${1}" != "-c" ; then 
  3775.   echo shar: Will not clobber existing file \"'tests/sc07.fw'\"
  3776. else
  3777. echo shar: Extracting \"'tests/sc07.fw'\" \(964 characters\)
  3778. sed "s/^X//" >'tests/sc07.fw' <<'END_OF_FILE'
  3779. SC07: Processing of long lines.
  3780. X
  3781. SC07.1: Detection of a line longer than the default limit.
  3782. X
  3783. The default limit is 80 characters so we will test on either side of
  3784. that:
  3785. X         1         2         3         4         5         6         7         8
  3786. X12345678901234567890123456789012345678901234567890123456789012345678901234567890
  3787. The above should not trigger a "line too long error". But this line should!------
  3788. X
  3789. SC07.3: Test the limit set at infinity.
  3790. X
  3791. X@p maximum_input_line_length = infinity
  3792. X
  3793. X         1         2         3         4         5         6         7         8
  3794. X12345678901234567890123456789012345678901234567890123456789012345678901234567890
  3795. The above should not trigger a "line too long error". Nor should this one!-------
  3796. X
  3797. SC07.3: Test the limit set lower.
  3798. X
  3799. X@p maximum_input_line_length = 50
  3800. X
  3801. X         1         2         3         4         5
  3802. X12345678901234567890123456789012345678901234567890
  3803. No error for the above but this line will!---------
  3804. END_OF_FILE
  3805. if test 964 -ne `wc -c <'tests/sc07.fw'`; then
  3806.     echo shar: \"'tests/sc07.fw'\" unpacked with wrong size!
  3807. fi
  3808. # end of 'tests/sc07.fw'
  3809. fi
  3810. if test -f 'tests/sc08.fw' -a "${1}" != "-c" ; then 
  3811.   echo shar: Will not clobber existing file \"'tests/sc08.fw'\"
  3812. else
  3813. echo shar: Extracting \"'tests/sc08.fw'\" \(195 characters\)
  3814. sed "s/^X//" >'tests/sc08.fw' <<'END_OF_FILE'
  3815. SC08: Detection of trailing spaces.
  3816. X
  3817. This line has zero  trailing spaces |
  3818. This line has one   trailing space  | 
  3819. This line has two   trailing spaces |  
  3820. This line has three trailing spaces |   
  3821. END_OF_FILE
  3822. if test 195 -ne `wc -c <'tests/sc08.fw'`; then
  3823.     echo shar: \"'tests/sc08.fw'\" unpacked with wrong size!
  3824. fi
  3825. # end of 'tests/sc08.fw'
  3826. fi
  3827. if test -f 'tests/sc09.fw' -a "${1}" != "-c" ; then 
  3828.   echo shar: Will not clobber existing file \"'tests/sc09.fw'\"
  3829. else
  3830. echo shar: Extracting \"'tests/sc09.fw'\" \(404 characters\)
  3831. sed "s/^X//" >'tests/sc09.fw' <<'END_OF_FILE'
  3832. SC09: Detection of control characters.
  3833. X
  3834. SC09.1 Test that control characters are detected and replaced by "?".
  3835. SC09.2 Test non printable that has a mnemonic.
  3836. X
  3837. There is a tab between these two bars |    | which should come out as "?".
  3838. The above error message should contain the mnemonic "HT".
  3839. X
  3840. SC09.3 Test non printable that has no mnemonic.
  3841. X
  3842. There is a non-mnemonic control character between these bars |Ω|.
  3843. END_OF_FILE
  3844. if test 404 -ne `wc -c <'tests/sc09.fw'`; then
  3845.     echo shar: \"'tests/sc09.fw'\" unpacked with wrong size!
  3846. fi
  3847. # end of 'tests/sc09.fw'
  3848. fi
  3849. if test -f 'tests/sc12.fw' -a "${1}" != "-c" ; then 
  3850.   echo shar: Will not clobber existing file \"'tests/sc12.fw'\"
  3851. else
  3852. echo shar: Extracting \"'tests/sc12.fw'\" \(177 characters\)
  3853. sed "s/^X//" >'tests/sc12.fw' <<'END_OF_FILE'
  3854. SC12: Include file cannot be found.
  3855. Test person: DONT create sc12a.inc. It is not supposed to exist!
  3856. The following include should yield a "file not found error."
  3857. X
  3858. X@i sc12a.inc
  3859. X
  3860. END_OF_FILE
  3861. if test 177 -ne `wc -c <'tests/sc12.fw'`; then
  3862.     echo shar: \"'tests/sc12.fw'\" unpacked with wrong size!
  3863. fi
  3864. # end of 'tests/sc12.fw'
  3865. fi
  3866. if test -f 'tests/sc13.fw' -a "${1}" != "-c" ; then 
  3867.   echo shar: Will not clobber existing file \"'tests/sc13.fw'\"
  3868. else
  3869. echo shar: Extracting \"'tests/sc13.fw'\" \(637 characters\)
  3870. sed "s/^X//" >'tests/sc13.fw' <<'END_OF_FILE'
  3871. SC13: Various kinds of include file.
  3872. X
  3873. X1. Include file is empty.
  3874. Before include
  3875. X@i sc13a
  3876. After include
  3877. X
  3878. X2. Include file contains a single blank line.
  3879. Before include
  3880. X@i sc13b
  3881. After include
  3882. X
  3883. X3. Include file contains two blank lines.
  3884. Before include
  3885. X@i sc13c
  3886. After include
  3887. X
  3888. X4. Include file contains a single line with text on it.
  3889. Before include
  3890. X@i sc13d
  3891. After include
  3892. X
  3893. X5. Include file's last line is not properly terminated.
  3894. Before include
  3895. X@i sc13e
  3896. After include
  3897. X
  3898. X6. Include file is ordinary.
  3899. Before include
  3900. X@i sc13f
  3901. After include
  3902. X
  3903. X7. Test upper case I and file extension inheritance.
  3904. Before include
  3905. X@I sc13f
  3906. After include
  3907. X
  3908. XEnd of test File.
  3909. END_OF_FILE
  3910. if test 637 -ne `wc -c <'tests/sc13.fw'`; then
  3911.     echo shar: \"'tests/sc13.fw'\" unpacked with wrong size!
  3912. fi
  3913. # end of 'tests/sc13.fw'
  3914. fi
  3915. if test -f 'tests/sc13a.fwi' -a "${1}" != "-c" ; then 
  3916.   echo shar: Will not clobber existing file \"'tests/sc13a.fwi'\"
  3917. else
  3918. echo shar: Extracting \"'tests/sc13a.fwi'\" \(0 characters\)
  3919. sed "s/^X//" >'tests/sc13a.fwi' <<'END_OF_FILE'
  3920. END_OF_FILE
  3921. if test 0 -ne `wc -c <'tests/sc13a.fwi'`; then
  3922.     echo shar: \"'tests/sc13a.fwi'\" unpacked with wrong size!
  3923. fi
  3924. # end of 'tests/sc13a.fwi'
  3925. fi
  3926. if test -f 'tests/sc13b.fwi' -a "${1}" != "-c" ; then 
  3927.   echo shar: Will not clobber existing file \"'tests/sc13b.fwi'\"
  3928. else
  3929. echo shar: Extracting \"'tests/sc13b.fwi'\" \(1 character\)
  3930. sed "s/^X//" >'tests/sc13b.fwi' <<'END_OF_FILE'
  3931. X
  3932. END_OF_FILE
  3933. if test 1 -ne `wc -c <'tests/sc13b.fwi'`; then
  3934.     echo shar: \"'tests/sc13b.fwi'\" unpacked with wrong size!
  3935. fi
  3936. # end of 'tests/sc13b.fwi'
  3937. fi
  3938. if test -f 'tests/sc13c.fwi' -a "${1}" != "-c" ; then 
  3939.   echo shar: Will not clobber existing file \"'tests/sc13c.fwi'\"
  3940. else
  3941. echo shar: Extracting \"'tests/sc13c.fwi'\" \(2 characters\)
  3942. sed "s/^X//" >'tests/sc13c.fwi' <<'END_OF_FILE'
  3943. X
  3944. X
  3945. END_OF_FILE
  3946. if test 2 -ne `wc -c <'tests/sc13c.fwi'`; then
  3947.     echo shar: \"'tests/sc13c.fwi'\" unpacked with wrong size!
  3948. fi
  3949. # end of 'tests/sc13c.fwi'
  3950. fi
  3951. if test -f 'tests/sc13d.fwi' -a "${1}" != "-c" ; then 
  3952.   echo shar: Will not clobber existing file \"'tests/sc13d.fwi'\"
  3953. else
  3954. echo shar: Extracting \"'tests/sc13d.fwi'\" \(74 characters\)
  3955. sed "s/^X//" >'tests/sc13d.fwi' <<'END_OF_FILE'
  3956. This is the include file for test SC13d. Just a file containing one line.
  3957. END_OF_FILE
  3958. if test 74 -ne `wc -c <'tests/sc13d.fwi'`; then
  3959.     echo shar: \"'tests/sc13d.fwi'\" unpacked with wrong size!
  3960. fi
  3961. # end of 'tests/sc13d.fwi'
  3962. fi
  3963. if test -f 'tests/sc13e.fwi' -a "${1}" != "-c" ; then 
  3964.   echo shar: Will not clobber existing file \"'tests/sc13e.fwi'\"
  3965. else
  3966. echo shar: Extracting \"'tests/sc13e.fwi'\" \(185 characters\)
  3967. sed "s/^X//" >'tests/sc13e.fwi' <<'END_OF_FILE'
  3968. This is the include file for test SC13e. The test is to see how FunnelWeb
  3969. copes with an include file that has an improperly terminated last line.
  3970. X
  3971. Here is the improper termination!---->END_OF_FILE
  3972. if test 185 -ne `wc -c <'tests/sc13e.fwi'`; then
  3973.     echo shar: \"'tests/sc13e.fwi'\" unpacked with wrong size!
  3974. fi
  3975. # end of 'tests/sc13e.fwi'
  3976. fi
  3977. if test -f 'tests/sc13f.fwi' -a "${1}" != "-c" ; then 
  3978.   echo shar: Will not clobber existing file \"'tests/sc13f.fwi'\"
  3979. else
  3980. echo shar: Extracting \"'tests/sc13f.fwi'\" \(108 characters\)
  3981. sed "s/^X//" >'tests/sc13f.fwi' <<'END_OF_FILE'
  3982. This is the include file for tests SC13.6 and SC13.7.
  3983. There are only two lines, and this is the second one.
  3984. END_OF_FILE
  3985. if test 108 -ne `wc -c <'tests/sc13f.fwi'`; then
  3986.     echo shar: \"'tests/sc13f.fwi'\" unpacked with wrong size!
  3987. fi
  3988. # end of 'tests/sc13f.fwi'
  3989. fi
  3990. if test -f 'tests/sc14.fw' -a "${1}" != "-c" ; then 
  3991.   echo shar: Will not clobber existing file \"'tests/sc14.fw'\"
  3992. else
  3993. echo shar: Extracting \"'tests/sc14.fw'\" \(170 characters\)
  3994. sed "s/^X//" >'tests/sc14.fw' <<'END_OF_FILE'
  3995. SC14: Test that the maximum number of levels of include file is 10.
  3996. This is most easily done with a recursive inclusion.
  3997. X
  3998. Before the include
  3999. X@i sc14.fw
  4000. After the include
  4001. END_OF_FILE
  4002. if test 170 -ne `wc -c <'tests/sc14.fw'`; then
  4003.     echo shar: \"'tests/sc14.fw'\" unpacked with wrong size!
  4004. fi
  4005. # end of 'tests/sc14.fw'
  4006. fi
  4007. if test -f 'tests/sc15.fw' -a "${1}" != "-c" ; then 
  4008.   echo shar: Will not clobber existing file \"'tests/sc15.fw'\"
  4009. else
  4010. echo shar: Extracting \"'tests/sc15.fw'\" \(1003 characters\)
  4011. sed "s/^X//" >'tests/sc15.fw' <<'END_OF_FILE'
  4012. SC15: Test that certain attributes are saved across inclusions.
  4013. X
  4014. X1. Maximum input line length.
  4015. X2. Special character.
  4016. X3. Local line number.
  4017. X
  4018. To test this, we first set the first two attributes away from the
  4019. default. This will enable us to be sure that when they are restored that
  4020. they are being restored to their former values and not just set to the
  4021. default.
  4022. X
  4023. X@=*   *! Change the special character.
  4024. X*p maximum_input_line_length = 75
  4025. X
  4026. Before include.
  4027. X*i sc15a
  4028. After include.
  4029. X
  4030. If the maximum input line length has been correctly restored then the
  4031. second of the following two lines should give an error, but not the first.
  4032. X123456789012345678901234567890123456789012345678901234567890123456789012345
  4033. X1234567890123456789012345678901234567890123456789012345678901234567890123456
  4034. X
  4035. If the special character has been preserved, then the following should
  4036. generate an error.
  4037. X
  4038. X*   - This should generate an error if all is well.
  4039. X
  4040. Preservation of the local line number can be checked by looking at the
  4041. listing file.
  4042. END_OF_FILE
  4043. if test 1003 -ne `wc -c <'tests/sc15.fw'`; then
  4044.     echo shar: \"'tests/sc15.fw'\" unpacked with wrong size!
  4045. fi
  4046. # end of 'tests/sc15.fw'
  4047. fi
  4048. if test -f 'tests/sc15a.fwi' -a "${1}" != "-c" ; then 
  4049.   echo shar: Will not clobber existing file \"'tests/sc15a.fwi'\"
  4050. else
  4051. echo shar: Extracting \"'tests/sc15a.fwi'\" \(973 characters\)
  4052. sed "s/^X//" >'tests/sc15a.fwi' <<'END_OF_FILE'
  4053. This is the include file for test SC15. The SC15 test checks to make
  4054. sure that FunnelWeb is saving and restoring three scanning
  4055. attributes across include files. We also want to make sure
  4056. that the scanner is initializing these attributes correctly within
  4057. the include file.
  4058. X
  4059. SC15.4: Make sure that the special character is AT at the start of
  4060. include files.
  4061. X
  4062. X@    - This should yield an error.
  4063. X
  4064. SC15.5 Ensure that the maximum input line length is 80 at the start
  4065. of an include file. If all is well, only the second of the following two
  4066. lines will provoke a "line too long" error.
  4067. X
  4068. X12345678901234567890123456789012345678901234567890123456789012345678901234567890
  4069. X123456789012345678901234567890123456789012345678901234567890123456789012345678901
  4070. X
  4071. Now that we have checked the default attributes on entering an include file,
  4072. we want to stuff them up so as to make sure that the attributes
  4073. prevailing when the include was hit are restored.
  4074. X
  4075. X@p maximum_input_line_length = 65
  4076. X@=+
  4077. X
  4078. END_OF_FILE
  4079. if test 973 -ne `wc -c <'tests/sc15a.fwi'`; then
  4080.     echo shar: \"'tests/sc15a.fwi'\" unpacked with wrong size!
  4081. fi
  4082. # end of 'tests/sc15a.fwi'
  4083. fi
  4084. if test -f 'tests/sc16.fw' -a "${1}" != "-c" ; then 
  4085.   echo shar: Will not clobber existing file \"'tests/sc16.fw'\"
  4086. else
  4087. echo shar: Extracting \"'tests/sc16.fw'\" \(1127 characters\)
  4088. sed "s/^X//" >'tests/sc16.fw' <<'END_OF_FILE'
  4089. SC16: Test <special>^ sequence.
  4090. X
  4091. X1. Test that all base characters work (in both cases).
  4092. X   These should provoke no errors.
  4093. X
  4094. X   @^B(00000000)   @^b(00000000)
  4095. X   @^O(000)   @^o(000)
  4096. X   @^Q(000)   @^q(000)
  4097. X   @^D(000)   @^d(000)
  4098. X   @^H(00)    @^h(00)
  4099. X   @^X(00)    @^x(00)
  4100. X
  4101. X2. Test that some other base characters generate an error.
  4102. X
  4103. X   @^u(0)
  4104. X   @^y
  4105. X   @^#
  4106. X   @^(
  4107. X
  4108. X3. Test that an error is generated if parenthesis is missing.
  4109. X
  4110. X   @^D34)
  4111. X
  4112. X4. Test legal digits in each base.
  4113. X
  4114. X   @^B(00001111)
  4115. X   @^O(012)  @^O(034) @^O(056) @^O(077)
  4116. X   @^D(012)  @^D(034) @^D(056) @^D(078) @^D(099)
  4117. X   @^H(01) @^H(23) @^H(45) @^H(67)
  4118. X   @^H(89) @^H(AB) @^X(CD) @^X(EF)  @^x(af)
  4119. X
  4120. X5. Test illegal digits in each base.
  4121. X
  4122. X   @^B(00000002)
  4123. X   @^O(008)
  4124. X   @^D(00A)
  4125. X   @^H(0G)
  4126. X
  4127. X6. Test what happens if there are the wrong number of digits
  4128. X   (too few, too many).
  4129. X
  4130. X   @^B(1)
  4131. X   @^O(1)
  4132. X   @^D(1)
  4133. X   @^H(1)
  4134. X
  4135. X   @^B(000000001)
  4136. X   @^O(0004)
  4137. X   @^D(0001)
  4138. X   @^H(005)
  4139. X
  4140. X7. Test that an error is generated for a missing closing parenthesis.
  4141. X
  4142. X  @^B(00000000
  4143. X  @^D(045(
  4144. X
  4145. X8. Test what happens in number is out of the range [0,255].
  4146. X
  4147. X  @^D(255)
  4148. X  @^D(256)
  4149. X  @^D(999)
  4150. X
  4151. END_OF_FILE
  4152. if test 1127 -ne `wc -c <'tests/sc16.fw'`; then
  4153.     echo shar: \"'tests/sc16.fw'\" unpacked with wrong size!
  4154. fi
  4155. # end of 'tests/sc16.fw'
  4156. fi
  4157. if test -f 'tests/sc17.fw' -a "${1}" != "-c" ; then 
  4158.   echo shar: Will not clobber existing file \"'tests/sc17.fw'\"
  4159. else
  4160. echo shar: Extracting \"'tests/sc17.fw'\" \(676 characters\)
  4161. sed "s/^X//" >'tests/sc17.fw' <<'END_OF_FILE'
  4162. SC17: Test <special>#.
  4163. X
  4164. XFirst we trip up the scanner so no further passes take place.
  4165. X
  4166. X@
  4167. X
  4168. X1. Test with all possible printable characters.
  4169. X
  4170. X@#! @#" @## @#$ @#% @#& @#' @#( @#) @#* @#+ @#, @#- @#. @#/
  4171. X@#0 @#1 @#2 @#3 @#4 @#5 @#6 @#7 @#8 @#9 @#: @#; @#< @#= @#>
  4172. X@#? @#@ @#A @#B @#C @#D @#E @#F @#G @#H @#I @#J @#K @#L @#M
  4173. X@#N @#O @#P @#Q @#R @#S @#T @#U @#V @#W @#X @#Y @#Z @#[ @#\
  4174. X@#] @#^ @#_ @#` @#a @#b @#c @#d @#e @#f @#g @#h @#i @#j @#k
  4175. X@#l @#m @#n @#o @#p @#q @#r @#s @#t @#u @#v @#w @#x @#y @#z
  4176. X@#{ @#| @#} @#~
  4177. X
  4178. X2. Test that <special>#<space> is flagged as an error.
  4179. X
  4180. X   @#     @! Should be flagged as an error.
  4181. X
  4182. X3. Test that <special>#EOL is flagged as an error.
  4183. X
  4184. X   @#
  4185. X
  4186. END_OF_FILE
  4187. if test 676 -ne `wc -c <'tests/sc17.fw'`; then
  4188.     echo shar: \"'tests/sc17.fw'\" unpacked with wrong size!
  4189. fi
  4190. # end of 'tests/sc17.fw'
  4191. fi
  4192. if test -f 'tests/sc18.fw' -a "${1}" != "-c" ; then 
  4193.   echo shar: Will not clobber existing file \"'tests/sc18.fw'\"
  4194. else
  4195. echo shar: Extracting \"'tests/sc18.fw'\" \(680 characters\)
  4196. sed "s/^X//" >'tests/sc18.fw' <<'END_OF_FILE'
  4197. SC18: Test <special>#=
  4198. X
  4199. XFirst we trip up the scanner so no further passes take place.
  4200. X
  4201. X@
  4202. X
  4203. X1. Test with all possible printable characters.
  4204. X
  4205. X@=! !=" "=# #=$ $=% %=& &=' '=( (=) )=* *=+ +=, ,=- -=. .=/
  4206. X/=0 0=1 1=2 2=3 3=4 4=5 5=6 6=7 7=8 8=9 9=: :=; ;=< <== ==>
  4207. 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
  4208. 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=[ [=\
  4209. X\=] ]=^ ^=_ _=` `=a a=b b=c c=d d=e e=f f=g g=h h=i i=j j=k
  4210. 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
  4211. z={ {=| |=} }=~ ~=@
  4212. X
  4213. X2. Test that <special>=<space> is flagged as an error.
  4214. X
  4215. X   @=     @! Should be flagged as an error.
  4216. X
  4217. X3. Test that <special>=EOL is flagged as an error.
  4218. X
  4219. X   @=
  4220. X
  4221. END_OF_FILE
  4222. if test 680 -ne `wc -c <'tests/sc18.fw'`; then
  4223.     echo shar: \"'tests/sc18.fw'\" unpacked with wrong size!
  4224. fi
  4225. # end of 'tests/sc18.fw'
  4226. fi
  4227. if test -f 'tests/sc19.fw' -a "${1}" != "-c" ; then 
  4228.   echo shar: Will not clobber existing file \"'tests/sc19.fw'\"
  4229. else
  4230. echo shar: Extracting \"'tests/sc19.fw'\" \(216 characters\)
  4231. sed "s/^X//" >'tests/sc19.fw' <<'END_OF_FILE'
  4232. SC19: Test <special>-
  4233. X
  4234. X1. Test that error is flagged if sequence is not at the end of a line.
  4235. X
  4236. This is a line containing @- the end of line suppressor.
  4237. X
  4238. X2. Test the sequence followed by trailing blanks.
  4239. X
  4240. X     @-   
  4241. X
  4242. END_OF_FILE
  4243. if test 216 -ne `wc -c <'tests/sc19.fw'`; then
  4244.     echo shar: \"'tests/sc19.fw'\" unpacked with wrong size!
  4245. fi
  4246. # end of 'tests/sc19.fw'
  4247. fi
  4248. if test -f 'tests/sc20.fw' -a "${1}" != "-c" ; then 
  4249.   echo shar: Will not clobber existing file \"'tests/sc20.fw'\"
  4250. else
  4251. echo shar: Extracting \"'tests/sc20.fw'\" \(260 characters\)
  4252. sed "s/^X//" >'tests/sc20.fw' <<'END_OF_FILE'
  4253. SC20: Test @!
  4254. X
  4255. X1. Test at the start of a line.
  4256. X
  4257. X@! This is a comment and we can stick any sort of rubbish in it.
  4258. X@! @# @i @^ds;af;lsdmf;land other @ rubbish.
  4259. X
  4260. X2. Test halfway through a line.
  4261. X
  4262. This is a line @! whose second half never sees the daylight. @i @<
  4263. X
  4264. END_OF_FILE
  4265. if test 260 -ne `wc -c <'tests/sc20.fw'`; then
  4266.     echo shar: \"'tests/sc20.fw'\" unpacked with wrong size!
  4267. fi
  4268. # end of 'tests/sc20.fw'
  4269. fi
  4270. if test -f 'tests/sc21.fw' -a "${1}" != "-c" ; then 
  4271.   echo shar: Will not clobber existing file \"'tests/sc21.fw'\"
  4272. else
  4273. echo shar: Extracting \"'tests/sc21.fw'\" \(1071 characters\)
  4274. sed "s/^X//" >'tests/sc21.fw' <<'END_OF_FILE'
  4275. SC21: Test generic syntax checking of pragmas and typesetter directives.
  4276. X
  4277. X1. Test pragma not at the start of line.
  4278. X   @p
  4279. X   @t
  4280. X
  4281. X2. Test character following <special>p is not a blank.
  4282. X@px
  4283. X@tx
  4284. X@p
  4285. X@t
  4286. X
  4287. X3. Test pragma line is too long (limit is 100)
  4288. X         1         2         3         4         5         6         7         8         9         1
  4289. X@p 4567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
  4290. X@p 45678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
  4291. X@t 4567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
  4292. X@t 45678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
  4293. X
  4294. X4. Test various different pragma lines.
  4295. X@p $#%@ 2525  sloth
  4296. X@t $#%@ 2525  sloth
  4297. X
  4298. X5. Test pragma with no arguments. (Will get a trailing blanks error.).
  4299. X@p    
  4300. X@t    
  4301. X
  4302. X6. Test pragma with too many arguments.
  4303. 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
  4304. 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
  4305. X
  4306. END_OF_FILE
  4307. if test 1071 -ne `wc -c <'tests/sc21.fw'`; then
  4308.     echo shar: \"'tests/sc21.fw'\" unpacked with wrong size!
  4309. fi
  4310. # end of 'tests/sc21.fw'
  4311. fi
  4312. if test -f 'tests/sc22.fw' -a "${1}" != "-c" ; then 
  4313.   echo shar: Will not clobber existing file \"'tests/sc22.fw'\"
  4314. else
  4315. echo shar: Extracting \"'tests/sc22.fw'\" \(574 characters\)
  4316. sed "s/^X//" >'tests/sc22.fw' <<'END_OF_FILE'
  4317. SC22: Test syntax checking of input line length pragma.
  4318. X
  4319. X1. Test not three arguments.
  4320. X@p maximum_input_line_length
  4321. X@p maximum_input_line_length =
  4322. X@p maximum_input_line_length = xxx yyy
  4323. X
  4324. X2. Test second argument not "=".
  4325. X@p maximum_input_line_length x sloth
  4326. X
  4327. X3. Test value of infinity.
  4328. X@p maximum_input_line_length = infinity
  4329. X
  4330. X4. Test non-decimal digit in number.
  4331. X@p maximum_input_line_length = 2ef
  4332. X
  4333. X5. Test number is more than eight digits long.
  4334. X@p maximum_input_line_length = 123456789
  4335. X
  4336. X6. Test number is exactly eight digits long.
  4337. X@p maximum_input_line_length = 12345678
  4338. X
  4339. X
  4340. END_OF_FILE
  4341. if test 574 -ne `wc -c <'tests/sc22.fw'`; then
  4342.     echo shar: \"'tests/sc22.fw'\" unpacked with wrong size!
  4343. fi
  4344. # end of 'tests/sc22.fw'
  4345. fi
  4346. if test -f 'tests/sc23.fw' -a "${1}" != "-c" ; then 
  4347.   echo shar: Will not clobber existing file \"'tests/sc23.fw'\"
  4348. else
  4349. echo shar: Extracting \"'tests/sc23.fw'\" \(708 characters\)
  4350. sed "s/^X//" >'tests/sc23.fw' <<'END_OF_FILE'
  4351. SC23: Test syntax checking of output line length pragma.
  4352. X
  4353. X1. Test not three arguments.
  4354. X@p maximum_output_line_length
  4355. X@p maximum_output_line_length =
  4356. X@p maximum_output_line_length = xxx yyy
  4357. X
  4358. X2. Test second argument not "=".
  4359. X@p maximum_output_line_length x sloth
  4360. X
  4361. X3. Test value of infinity.
  4362. X@p maximum_output_line_length = infinity
  4363. X
  4364. X4. Test non-decimal digit in number.
  4365. X@p maximum_output_line_length = 2ef
  4366. X
  4367. X5. Test number is more than eight digits long.
  4368. X@p maximum_output_line_length = 123456789
  4369. X
  4370. X6. Test number is exactly eight digits long.
  4371. X7. Test pragma opposing earlier pragma.
  4372. X@p maximum_output_line_length = 12345678
  4373. X
  4374. X8. Test pragma not opposing earlier pragma.
  4375. X@p maximum_output_line_length = infinity
  4376. X
  4377. END_OF_FILE
  4378. if test 708 -ne `wc -c <'tests/sc23.fw'`; then
  4379.     echo shar: \"'tests/sc23.fw'\" unpacked with wrong size!
  4380. fi
  4381. # end of 'tests/sc23.fw'
  4382. fi
  4383. if test -f 'tests/sc24.fw' -a "${1}" != "-c" ; then 
  4384.   echo shar: Will not clobber existing file \"'tests/sc24.fw'\"
  4385. else
  4386. echo shar: Extracting \"'tests/sc24.fw'\" \(477 characters\)
  4387. sed "s/^X//" >'tests/sc24.fw' <<'END_OF_FILE'
  4388. SC23: Test syntax checking of indentation pragma.
  4389. X
  4390. X1. Test not three arguments.
  4391. X@p indentation
  4392. X@p indentation =
  4393. X@p indentation = xxx yyy
  4394. X
  4395. X2. Test second argument not "=".
  4396. X@p indentation x sloth
  4397. X
  4398. X3. Test third argument is not legal.
  4399. X@p indentation = sloth
  4400. X
  4401. X4. Test third argument is none.
  4402. X@p indentation = none
  4403. X
  4404. X5. Test third argument is blank.
  4405. X6. Test pragma opposes earlier pragma.
  4406. X@p indentation = blank
  4407. X
  4408. X7. Test pragma does not oppose earlier pragma.
  4409. X@p indentation = none
  4410. X
  4411. END_OF_FILE
  4412. if test 477 -ne `wc -c <'tests/sc24.fw'`; then
  4413.     echo shar: \"'tests/sc24.fw'\" unpacked with wrong size!
  4414. fi
  4415. # end of 'tests/sc24.fw'
  4416. fi
  4417. if test -f 'tests/sc25.fw' -a "${1}" != "-c" ; then 
  4418.   echo shar: Will not clobber existing file \"'tests/sc25.fw'\"
  4419. else
  4420. echo shar: Extracting \"'tests/sc25.fw'\" \(198 characters\)
  4421. sed "s/^X//" >'tests/sc25.fw' <<'END_OF_FILE'
  4422. SC25: Test syntax checking of new page typesetter directive.
  4423. X
  4424. X1. Make sure that a legal new page directive is OK.
  4425. X@t new_page
  4426. X
  4427. X2. Check that it doesn't stand for any nonsense.
  4428. X@t new_page nonsense
  4429. X
  4430. END_OF_FILE
  4431. if test 198 -ne `wc -c <'tests/sc25.fw'`; then
  4432.     echo shar: \"'tests/sc25.fw'\" unpacked with wrong size!
  4433. fi
  4434. # end of 'tests/sc25.fw'
  4435. fi
  4436. if test -f 'tests/sc26.fw' -a "${1}" != "-c" ; then 
  4437.   echo shar: Will not clobber existing file \"'tests/sc26.fw'\"
  4438. else
  4439. echo shar: Extracting \"'tests/sc26.fw'\" \(232 characters\)
  4440. sed "s/^X//" >'tests/sc26.fw' <<'END_OF_FILE'
  4441. SC26: Test syntax checking of table of contents typesetting pragma.
  4442. X
  4443. X1. Make sure that a legal table of contents directive is OK.
  4444. X@t table_of_contents
  4445. X
  4446. X2. Check that it doesn't stand for any nonsense.
  4447. X@t table_of_contents nonsense
  4448. X
  4449. END_OF_FILE
  4450. if test 232 -ne `wc -c <'tests/sc26.fw'`; then
  4451.     echo shar: \"'tests/sc26.fw'\" unpacked with wrong size!
  4452. fi
  4453. # end of 'tests/sc26.fw'
  4454. fi
  4455. if test -f 'tests/sc27.fw' -a "${1}" != "-c" ; then 
  4456.   echo shar: Will not clobber existing file \"'tests/sc27.fw'\"
  4457. else
  4458. echo shar: Extracting \"'tests/sc27.fw'\" \(371 characters\)
  4459. sed "s/^X//" >'tests/sc27.fw' <<'END_OF_FILE'
  4460. SC27: Test syntax checking of vskip typesetting directive.
  4461. X
  4462. X1. Test not exactly three arguments (includes vskip).
  4463. X@t vskip
  4464. X@t vskip one
  4465. X@t vskip one two three four
  4466. X
  4467. X2. Test third argument not "mm".
  4468. X@t vskip 32 xx
  4469. X
  4470. X3. Test second argument has bad digit.
  4471. X@t vskip 3f mm
  4472. X
  4473. X4. Test number has more than three digits
  4474. X
  4475. X@t vskip 4355 mm
  4476. X
  4477. X5. Test a legal one too.
  4478. X@t vskip 20 mm
  4479. X
  4480. END_OF_FILE
  4481. if test 371 -ne `wc -c <'tests/sc27.fw'`; then
  4482.     echo shar: \"'tests/sc27.fw'\" unpacked with wrong size!
  4483. fi
  4484. # end of 'tests/sc27.fw'
  4485. fi
  4486. if test -f 'tests/sc28.fw' -a "${1}" != "-c" ; then 
  4487.   echo shar: Will not clobber existing file \"'tests/sc28.fw'\"
  4488. else
  4489. echo shar: Extracting \"'tests/sc28.fw'\" \(1089 characters\)
  4490. sed "s/^X//" >'tests/sc28.fw' <<'END_OF_FILE'
  4491. SC28: Test syntax checking of title typesetting directive.
  4492. X
  4493. X1. Test less than four arguments (includes title).
  4494. Note: The title command pulls a hack treating the rest of the line after
  4495. two arguments as the string. So it can't detect an EXCESS of arguments!
  4496. X@t title
  4497. X@t title two
  4498. X@t title two three
  4499. X
  4500. X2. Test out bad font.
  4501. X@t title slothfont left "Sloth"
  4502. X
  4503. X3. Test out bad alignment.
  4504. X@t title titlefont westward "Sloth"
  4505. X
  4506. X4. Test out funny strings.
  4507. X@t title titlefont left "
  4508. X@t title titlefont left ""
  4509. X@! Note: The following, believe it or not, is actually LEGAL!
  4510. X@t title titlefont left "sloth"sloth"
  4511. X
  4512. X5. Test out all combinations of font and alignment.
  4513. X@t title titlefont      left   "Sloth"
  4514. X@t title titlefont      centre "Sloth"
  4515. X@t title titlefont      right  "Sloth"
  4516. X@t title smalltitlefont left   "Sloth"
  4517. X@t title smalltitlefont centre "Sloth"
  4518. X@t title smalltitlefont right  "Sloth"
  4519. X@t title normalfont     left   "Sloth"
  4520. X@t title normalfont     centre "Sloth"
  4521. X@t title normalfont     right  "Sloth"
  4522. X
  4523. X6. Test misspelling of centre (Ross's revenge).
  4524. X@t title normalfont     center "Sloth"
  4525. END_OF_FILE
  4526. if test 1089 -ne `wc -c <'tests/sc28.fw'`; then
  4527.     echo shar: \"'tests/sc28.fw'\" unpacked with wrong size!
  4528. fi
  4529. # end of 'tests/sc28.fw'
  4530. fi
  4531. if test -f 'tests/sc29.fw' -a "${1}" != "-c" ; then 
  4532.   echo shar: Will not clobber existing file \"'tests/sc29.fw'\"
  4533. else
  4534. echo shar: Extracting \"'tests/sc29.fw'\" \(464 characters\)
  4535. sed "s/^X//" >'tests/sc29.fw' <<'END_OF_FILE'
  4536. SC29: Test syntax checking of typesetter pragma.
  4537. X
  4538. X1. Test not three arguments.
  4539. X@p typesetter
  4540. X@p typesetter =
  4541. X@p typesetter = xxx yyy
  4542. X
  4543. X2. Test second argument not "=".
  4544. X@p typesetter x sloth
  4545. X
  4546. X3. Test third argument is not legal.
  4547. X@p typesetter = sloth
  4548. X
  4549. X4. Test third argument is none.
  4550. X@p typesetter = none
  4551. X
  4552. X5. Test third argument is tex.
  4553. X6. Test pragma opposes earlier pragma.
  4554. X@p typesetter = tex
  4555. X
  4556. X7. Test pragma does not oppose earlier pragma.
  4557. X@p typesetter = none
  4558. X
  4559. END_OF_FILE
  4560. if test 464 -ne `wc -c <'tests/sc29.fw'`; then
  4561.     echo shar: \"'tests/sc29.fw'\" unpacked with wrong size!
  4562. fi
  4563. # end of 'tests/sc29.fw'
  4564. fi
  4565. if test -f 'tests/tg01.fw' -a "${1}" != "-c" ; then 
  4566.   echo shar: Will not clobber existing file \"'tests/tg01.fw'\"
  4567. else
  4568. echo shar: Extracting \"'tests/tg01.fw'\" \(239 characters\)
  4569. sed "s/^X//" >'tests/tg01.fw' <<'END_OF_FILE'
  4570. TG01: Test basic output file mechanism and filename inheritance.
  4571. X
  4572. The file written will be directory:tg01.out
  4573. X@O@<.out@>==@{@-
  4574. Patterson's prayer:
  4575. X   "There is nothing I would rather be, than chairman of the ABC."
  4576. X      - Les Patterson
  4577. X@}
  4578. END_OF_FILE
  4579. if test 239 -ne `wc -c <'tests/tg01.fw'`; then
  4580.     echo shar: \"'tests/tg01.fw'\" unpacked with wrong size!
  4581. fi
  4582. # end of 'tests/tg01.fw'
  4583. fi
  4584. if test -f 'tests/tg02.fw' -a "${1}" != "-c" ; then 
  4585.   echo shar: Will not clobber existing file \"'tests/tg02.fw'\"
  4586. else
  4587. echo shar: Extracting \"'tests/tg02.fw'\" \(1242 characters\)
  4588. sed "s/^X//" >'tests/tg02.fw' <<'END_OF_FILE'
  4589. TG02: Test expansions with no indentation.
  4590. X
  4591. X@p indentation = none
  4592. X
  4593. X@O@<tg02.out@>@{@-
  4594. X@<Poem@>
  4595. X
  4596. X@<Indentation test@>
  4597. X@}
  4598. X
  4599. X@!******************************************************************************
  4600. X
  4601. X@A@<Poem Section@>
  4602. X
  4603. X@$@<Poem@>@{@-
  4604. The other day upon the stair,
  4605. X@<Middle@>
  4606. I think he's from the CIA.@}
  4607. X
  4608. X@$@<Middle@>@{@-
  4609. I met a man who wasn't there.
  4610. X@<Second line of middle@>@}
  4611. X
  4612. X@$@<Second line of middle@>@{He wasn't there @<again@> today,@}
  4613. X
  4614. X@$@<again@>@{again@}
  4615. X
  4616. X@!******************************************************************************
  4617. X
  4618. X@A@<Program Section@>
  4619. X
  4620. X@$@<Indentation test@>@{@-
  4621. In the output begin0 should be at the left margin, then begin1 to begin wayout
  4622. should be indented by three spaces. Then the "It's scary" should be
  4623. positioned over the "a" ofd margin. The rest should be at the left margin.
  4624. X
  4625. begin0
  4626. X   @<A@>
  4627. end0@}
  4628. X
  4629. X
  4630. X@$@<A@>@{@-
  4631. begin1
  4632. X   @<B@>
  4633. end1@}
  4634. X
  4635. X@$@<B@>@{@-
  4636. begin2
  4637. X   @<C@>
  4638. end2@}
  4639. X
  4640. X@$@<C@>@{@-
  4641. begin3
  4642. X   @<D@>
  4643. end3@}
  4644. X
  4645. X@$@<D@>@{@-
  4646. begin4
  4647. X   @<E@>
  4648. end4@}
  4649. X
  4650. X@$@<E@>@{@-
  4651. begin wayout----------V
  4652. X                      @<wayout@>
  4653. end   wayout----------^@}
  4654. X
  4655. X@$@<wayout@>@{@-
  4656. It's scary out here
  4657. So far from the left margin.@}
  4658. X
  4659. X@!******************************************************************************
  4660. END_OF_FILE
  4661. if test 1242 -ne `wc -c <'tests/tg02.fw'`; then
  4662.     echo shar: \"'tests/tg02.fw'\" unpacked with wrong size!
  4663. fi
  4664. # end of 'tests/tg02.fw'
  4665. fi
  4666. if test -f 'tests/tg03.fw' -a "${1}" != "-c" ; then 
  4667.   echo shar: Will not clobber existing file \"'tests/tg03.fw'\"
  4668. else
  4669. echo shar: Extracting \"'tests/tg03.fw'\" \(1085 characters\)
  4670. sed "s/^X//" >'tests/tg03.fw' <<'END_OF_FILE'
  4671. TG03: Test expansions with indentation.
  4672. X
  4673. X@p indentation = blank
  4674. X
  4675. X@O@<tg03.out@>@{@-
  4676. X@<Poem@>
  4677. X
  4678. X@<Indentation test@>
  4679. X@}
  4680. X
  4681. X@!******************************************************************************
  4682. X
  4683. X@A@<Poem Section@>
  4684. X
  4685. X@$@<Poem@>@{@-
  4686. The other day upon the stair,
  4687. X@<Middle@>
  4688. I think he's from the CIA.@}
  4689. X
  4690. X@$@<Middle@>@{@-
  4691. I met a man who wasn't there.
  4692. X@<Second line of middle@>@}
  4693. X
  4694. X@$@<Second line of middle@>@{He wasn't there @<again@> today,@}
  4695. X
  4696. X@$@<again@>@{again@}
  4697. X
  4698. X@!******************************************************************************
  4699. X
  4700. X@A@<Program Section@>
  4701. X
  4702. X@$@<Indentation test@>@{@-
  4703. The following nest of begin and ends should be indented in a nest.
  4704. X
  4705. begin0
  4706. X   @<A@>
  4707. end0@}
  4708. X
  4709. X
  4710. X@$@<A@>@{@-
  4711. begin1
  4712. X   @<B@>
  4713. end1@}
  4714. X
  4715. X@$@<B@>@{@-
  4716. begin2
  4717. X   @<C@>
  4718. end2@}
  4719. X
  4720. X@$@<C@>@{@-
  4721. begin3
  4722. X   @<D@>
  4723. end3@}
  4724. X
  4725. X@$@<D@>@{@-
  4726. begin4
  4727. X   @<E@>
  4728. end4@}
  4729. X
  4730. X@$@<E@>@{@-
  4731. begin wayout----------V
  4732. X                      @<wayout@>
  4733. end   wayout----------^@}
  4734. X
  4735. X@$@<wayout@>@{@-
  4736. It's scary out here
  4737. So far from the left margin.@}
  4738. X
  4739. X@!******************************************************************************
  4740. END_OF_FILE
  4741. if test 1085 -ne `wc -c <'tests/tg03.fw'`; then
  4742.     echo shar: \"'tests/tg03.fw'\" unpacked with wrong size!
  4743. fi
  4744. # end of 'tests/tg03.fw'
  4745. fi
  4746. if test -f 'tests/tg04.fw' -a "${1}" != "-c" ; then 
  4747.   echo shar: Will not clobber existing file \"'tests/tg04.fw'\"
  4748. else
  4749. echo shar: Extracting \"'tests/tg04.fw'\" \(662 characters\)
  4750. sed "s/^X//" >'tests/tg04.fw' <<'END_OF_FILE'
  4751. TG04: Test macro expansions.
  4752. X
  4753. X@$@<Teapot@>@{Teapot@}
  4754. X@$@<One@>@(@1@)@M@{Left @1 Right@}
  4755. X@$@<Two@>@(@2@)@M@{Left @1 Middle @2 Right@}
  4756. X@$@<A@>@(@1@)@M@{[@1]@}
  4757. X
  4758. X@O@<tg04.out@>@{
  4759. X
  4760. X1. Test macro call with no parameters.
  4761. X"Teapot" =
  4762. X"@<Teapot@>"
  4763. X
  4764. X2. Test macro call with one parameter.
  4765. X"Left Testing Right" =
  4766. X"@<One@>@(@"Testing@"@)"
  4767. X
  4768. X3. Test macro call with many parameters.
  4769. X"Left x Middle y Right" =
  4770. X"@<Two@>@(x@,y@)"
  4771. X
  4772. X4. Test macro call as a parameter of another macro call.
  4773. X"Left Ostrich Middle Left Wombat Right Right" =
  4774. X"@<Two@>@(Ostrich@,@<One@>@(Wombat@)@)"
  4775. X
  4776. X5. Test expression recursive macro call.
  4777. X"[X[[Walrus]]Y]" =
  4778. X"@<A@>@(X@<A@>@(@<A@>@(Walrus@)@)Y@)"
  4779. X
  4780. X@}
  4781. END_OF_FILE
  4782. if test 662 -ne `wc -c <'tests/tg04.fw'`; then
  4783.     echo shar: \"'tests/tg04.fw'\" unpacked with wrong size!
  4784. fi
  4785. # end of 'tests/tg04.fw'
  4786. fi
  4787. if test -f 'tests/tg05.fw' -a "${1}" != "-c" ; then 
  4788.   echo shar: Will not clobber existing file \"'tests/tg05.fw'\"
  4789. else
  4790. echo shar: Extracting \"'tests/tg05.fw'\" \(319 characters\)
  4791. sed "s/^X//" >'tests/tg05.fw' <<'END_OF_FILE'
  4792. TG05: Checking of the output line length.
  4793. X
  4794. X@$@<Ten@>@M@{1234567890@}
  4795. X
  4796. X@O@<tg05.out@>@{@-
  4797. We test the default limit of 80 characters.
  4798. Only the second of the following two lines should provoke an error.
  4799. X@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>
  4800. X@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>@<Ten@>1
  4801. X@}
  4802. END_OF_FILE
  4803. if test 319 -ne `wc -c <'tests/tg05.fw'`; then
  4804.     echo shar: \"'tests/tg05.fw'\" unpacked with wrong size!
  4805. fi
  4806. # end of 'tests/tg05.fw'
  4807. fi
  4808. if test -f 'tests/tg06.fw' -a "${1}" != "-c" ; then 
  4809.   echo shar: Will not clobber existing file \"'tests/tg06.fw'\"
  4810. else
  4811. echo shar: Extracting \"'tests/tg06.fw'\" \(405 characters\)
  4812. sed "s/^X//" >'tests/tg06.fw' <<'END_OF_FILE'
  4813. TG06: Test the setting of the line length limit.
  4814. X
  4815. X@p maximum_output_line_length = 60
  4816. X@O@<tg06.out@>@{@-
  4817. We test the user-set limit of 60 characters.
  4818. Only the third of the following three lines
  4819. should provoke an error.
  4820. X         1         2         3         4         5         6
  4821. X123456789012345678901234567890123456789012345678901234567890
  4822. X1234567890123456789012345678901234567890123456789012345678901
  4823. X@}
  4824. END_OF_FILE
  4825. if test 405 -ne `wc -c <'tests/tg06.fw'`; then
  4826.     echo shar: \"'tests/tg06.fw'\" unpacked with wrong size!
  4827. fi
  4828. # end of 'tests/tg06.fw'
  4829. fi
  4830. if test -f 'tests/tg07.fw' -a "${1}" != "-c" ; then 
  4831.   echo shar: Will not clobber existing file \"'tests/tg07.fw'\"
  4832. else
  4833. echo shar: Extracting \"'tests/tg07.fw'\" \(321 characters\)
  4834. sed "s/^X//" >'tests/tg07.fw' <<'END_OF_FILE'
  4835. TG07: Checking the setting of the maximum line length to infinity.
  4836. X
  4837. X@p maximum_output_line_length = infinity
  4838. X
  4839. X@$@<A@>@M@{1234567890123456789012345678901234567890@}
  4840. X
  4841. X@O@<tg07.out@>@{@-
  4842. The following long line should not blow the line length limit.
  4843. X@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>@<A@>
  4844. X@}
  4845. END_OF_FILE
  4846. if test 321 -ne `wc -c <'tests/tg07.fw'`; then
  4847.     echo shar: \"'tests/tg07.fw'\" unpacked with wrong size!
  4848. fi
  4849. # end of 'tests/tg07.fw'
  4850. fi
  4851. if test -f 'tests/tg08.fw' -a "${1}" != "-c" ; then 
  4852.   echo shar: Will not clobber existing file \"'tests/tg08.fw'\"
  4853. else
  4854. echo shar: Extracting \"'tests/tg08.fw'\" \(238 characters\)
  4855. sed "s/^X//" >'tests/tg08.fw' <<'END_OF_FILE'
  4856. TG08: Test include files and output generation.
  4857. X
  4858. X@O@<tg08.out@>@{@-
  4859. X@<Macbeth ripoff@>
  4860. X
  4861. X@<Hamlet ripoff@>
  4862. X@}
  4863. X
  4864. X@$@<Hamlet ripoff@>@{@-
  4865. Now might I drink hot jolt cola
  4866. X@i tg08a
  4867. Its contours moulded for my hand?
  4868. Come, let me clutch thee!@}
  4869. X
  4870. END_OF_FILE
  4871. if test 238 -ne `wc -c <'tests/tg08.fw'`; then
  4872.     echo shar: \"'tests/tg08.fw'\" unpacked with wrong size!
  4873. fi
  4874. # end of 'tests/tg08.fw'
  4875. fi
  4876. if test -f 'tests/tg08a.fwi' -a "${1}" != "-c" ; then 
  4877.   echo shar: Will not clobber existing file \"'tests/tg08a.fwi'\"
  4878. else
  4879. echo shar: Extracting \"'tests/tg08a.fwi'\" \(123 characters\)
  4880. sed "s/^X//" >'tests/tg08a.fwi' <<'END_OF_FILE'
  4881. And create hacks in C
  4882. That would not bear witness of the Sun.@}
  4883. X
  4884. X@$@<Macbeth ripoff@>@{@-
  4885. Is this a mouse I see before me?
  4886. END_OF_FILE
  4887. if test 123 -ne `wc -c <'tests/tg08a.fwi'`; then
  4888.     echo shar: \"'tests/tg08a.fwi'\" unpacked with wrong size!
  4889. fi
  4890. # end of 'tests/tg08a.fwi'
  4891. fi
  4892. if test -f 'tests/tg09.fw' -a "${1}" != "-c" ; then 
  4893.   echo shar: Will not clobber existing file \"'tests/tg09.fw'\"
  4894. else
  4895. echo shar: Extracting \"'tests/tg09.fw'\" \(710 characters\)
  4896. sed "s/^X//" >'tests/tg09.fw' <<'END_OF_FILE'
  4897. TG09: Test some special sequences.
  4898. X1. <special>^
  4899. X2. <special>-
  4900. X3. <special>!
  4901. X
  4902. X@O@<tg09.out@>@{@-
  4903. X@! This line and the next line should not come out in the output file.
  4904. X@! This line is a comment line.
  4905. A Megastar's Mantras
  4906. X--------------------
  4907. X(Things that Mean a Lot to Me)
  4908. X
  4909. X@^D(065) is for Austr@-
  4910. alia
  4911. The land I adore;
  4912. It's so spot@-
  4913. less and clean
  4914. You can eat off the floor.
  4915. X
  4916. X@^X(42) is for Boomerang,
  4917. Which our qua@-
  4918. int Abos launch
  4919. In the hope it will bring back
  4920. A roast quok@-
  4921. ka's haunch.
  4922. X
  4923. X@^B(01000011) is for Culture
  4924. Which blossoms unch@-
  4925. ecked,
  4926. You can't move in my homeland
  4927. for Beckett and Brecht.
  4928. X
  4929. X...more...
  4930. X
  4931. X- Dame Edna Everage,
  4932. X"Neglected Poems and Other Creatures" by Barry Humphries, 1991.
  4933. X@}
  4934. END_OF_FILE
  4935. if test 710 -ne `wc -c <'tests/tg09.fw'`; then
  4936.     echo shar: \"'tests/tg09.fw'\" unpacked with wrong size!
  4937. fi
  4938. # end of 'tests/tg09.fw'
  4939. fi
  4940. if test -f 'tests/wv01.fw' -a "${1}" != "-c" ; then 
  4941.   echo shar: Will not clobber existing file \"'tests/wv01.fw'\"
  4942. else
  4943. echo shar: Extracting \"'tests/wv01.fw'\" \(149 characters\)
  4944. sed "s/^X//" >'tests/wv01.fw' <<'END_OF_FILE'
  4945. WV01: Test basic typeset file output mechanism.
  4946. X
  4947. X@A@<A section for no particular reason@>
  4948. X
  4949. X@O@<wv01.out@>@{@-
  4950. Some text for no particular reason.
  4951. X@}
  4952. END_OF_FILE
  4953. if test 149 -ne `wc -c <'tests/wv01.fw'`; then
  4954.     echo shar: \"'tests/wv01.fw'\" unpacked with wrong size!
  4955. fi
  4956. # end of 'tests/wv01.fw'
  4957. fi
  4958. if test -f 'tests/wv02.fw' -a "${1}" != "-c" ; then 
  4959.   echo shar: Will not clobber existing file \"'tests/wv02.fw'\"
  4960. else
  4961. echo shar: Extracting \"'tests/wv02.fw'\" \(667 characters\)
  4962. sed "s/^X//" >'tests/wv02.fw' <<'END_OF_FILE'
  4963. WV05: Test typesetting features.
  4964. X
  4965. X@O@<wv05.out@>@{
  4966. X@}
  4967. X
  4968. X1. Test all five levels of headings with explicit titles.
  4969. X
  4970. X@A@<One@>
  4971. X@B@<Two@>
  4972. X@C@<Three@>
  4973. X@D@<Four@>
  4974. X@E@<Five@>
  4975. X
  4976. X2. Test all five levels of headings with implicit titles.
  4977. X
  4978. X@A
  4979. X@$@<Macro at level one@>@Z@{Sloth@}
  4980. X
  4981. X@B
  4982. X@$@<Macro at level two@>@Z@{Walrus@}
  4983. X
  4984. X@C
  4985. X@$@<Macro at level three@>@Z@{Aardvark@}
  4986. X
  4987. X@D
  4988. X@$@<Macro at level four@>@Z@{Teapot@}
  4989. X
  4990. X@E
  4991. X@$@<Macro at level five@>@Z@{Emu@}
  4992. X
  4993. X3. Test the table of contents directive.
  4994. X@t table_of_contents
  4995. X
  4996. X4. Test the newpage directive.
  4997. X@t new_page
  4998. X
  4999. X5. Test the vskip directive.
  5000. X@t vskip 50 mm
  5001. X
  5002. X6. Test the title directive.
  5003. X@t title titlefont centre "This is a test Title"
  5004. X
  5005. X
  5006. END_OF_FILE
  5007. if test 667 -ne `wc -c <'tests/wv02.fw'`; then
  5008.     echo shar: \"'tests/wv02.fw'\" unpacked with wrong size!
  5009. fi
  5010. # end of 'tests/wv02.fw'
  5011. fi
  5012. if test -f 'tests/wv03.fw' -a "${1}" != "-c" ; then 
  5013.   echo shar: Will not clobber existing file \"'tests/wv03.fw'\"
  5014. else
  5015. echo shar: Extracting \"'tests/wv03.fw'\" \(1233 characters\)
  5016. sed "s/^X//" >'tests/wv03.fw' <<'END_OF_FILE'
  5017. WV03: Test the typesetting of various kinds of macros.
  5018. X
  5019. XFirst create an output file to keep the analyser happy.
  5020. X@O@<wv03.out@>@{@}
  5021. X
  5022. X1. Test macro never used.
  5023. X@$@<Never Used@>@Z@{@}
  5024. X
  5025. X2. Test a macro used once.
  5026. X@$@<Used Once@>@{@}
  5027. X
  5028. X3. Test a macro used twice.
  5029. X@$@<Used Twice@>@M@{@}
  5030. X
  5031. X4. Test a macro used three times.
  5032. X@$@<Used Thrice@>@M@{@}
  5033. X
  5034. X5. Test a macro used five times.
  5035. X@$@<Used Quice@>@M@{@}
  5036. X
  5037. Here is the macro that does all the calling for the above.
  5038. X@$@<Dummy1@>@Z@{@-
  5039. X@<Used Once@>
  5040. X@<Used Twice@>
  5041. X@<Used Thrice@>
  5042. X@<Used Quice@>
  5043. X@}
  5044. X
  5045. X@$@<Dummy2@>@Z@{@-
  5046. X@<Used Twice@>
  5047. X@<Used Thrice@>
  5048. X@<Used Quice@>
  5049. X@}
  5050. X
  5051. X@$@<Dummy3@>@Z@{@-
  5052. X@<Used Thrice@>
  5053. X@<Used Quice@>
  5054. X@}
  5055. X
  5056. X@$@<Dummy4@>@Z@{@-
  5057. X@<Used Quice@>
  5058. X@}
  5059. X
  5060. X@$@<Dummy5@>@Z@{@-
  5061. X@<Used Quice@>
  5062. X@}
  5063. X
  5064. X6. Test a macro with two body parts.
  5065. X@$@<Two body parts@>@Z+=@{Sloth@}
  5066. X@$@<Two body parts@>+=@{Walrus@}
  5067. X
  5068. X7. Test a macro with three body parts.
  5069. X@$@<Three body parts@>@Z+=@{Sloth@}
  5070. X@$@<Three body parts@>+=@{Walrus@}
  5071. X@$@<Three body parts@>+=@{Aardvaark@}
  5072. X
  5073. X8. Test a macro with five body parts.
  5074. X@$@<Five body parts@>@Z+=@{Sloth@}
  5075. X@$@<Five body parts@>+=@{Walrus@}
  5076. X@$@<Five body parts@>+=@{@<Three body parts@>@}
  5077. X@$@<Five body parts@>+=@{Aardvaark@}
  5078. X@$@<Five body parts@>+=@{@<Two body parts@>@}
  5079. X
  5080. X
  5081. END_OF_FILE
  5082. if test 1233 -ne `wc -c <'tests/wv03.fw'`; then
  5083.     echo shar: \"'tests/wv03.fw'\" unpacked with wrong size!
  5084. fi
  5085. # end of 'tests/wv03.fw'
  5086. fi
  5087. if test -f 'tests/wv04.fw' -a "${1}" != "-c" ; then 
  5088.   echo shar: Will not clobber existing file \"'tests/wv04.fw'\"
  5089. else
  5090. echo shar: Extracting \"'tests/wv04.fw'\" \(569 characters\)
  5091. sed "s/^X//" >'tests/wv04.fw' <<'END_OF_FILE'
  5092. WV04: Test ugly string processing.
  5093. X
  5094. X@! We need this to keep the analyser happy.
  5095. X@O@<wv04.out@>@{@}
  5096. X
  5097. X1. Test ugly string in section name.
  5098. X@A@< !"#$%'()*+,-./0123456789:;<=>?@>
  5099. X@A@<ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@>
  5100. X@A@<abcdefghijklmnopqrstuvwxyz{|}~@>
  5101. X
  5102. X2. Test ugly string in macro name.
  5103. X@$@< !"#$%'()*+,-./0123456789:;<=>?@>@Z@{@}
  5104. X@$@<ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@>@Z@{@}
  5105. X@$@<abcdefghijklmnopqrstuvwxyz{|}~@>@Z@{@}
  5106. X
  5107. X3. Test ugly string in literal section.
  5108. X@{ !"#$%'()*+,-./0123456789:;<=>?@}
  5109. X@{ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@}
  5110. X@{abcdefghijklmnopqrstuvwxyz{|}~@}
  5111. X
  5112. END_OF_FILE
  5113. if test 569 -ne `wc -c <'tests/wv04.fw'`; then
  5114.     echo shar: \"'tests/wv04.fw'\" unpacked with wrong size!
  5115. fi
  5116. # end of 'tests/wv04.fw'
  5117. fi
  5118. if test -f 'tests/wv05.fw' -a "${1}" != "-c" ; then 
  5119.   echo shar: Will not clobber existing file \"'tests/wv05.fw'\"
  5120. else
  5121. echo shar: Extracting \"'tests/wv05.fw'\" \(1236 characters\)
  5122. sed "s/^X//" >'tests/wv05.fw' <<'END_OF_FILE'
  5123. WV05: Test processing of ugly strings as ordinary and protected text
  5124. with no typesetter set.
  5125. X
  5126. X@! We need this to keep the analyser happy.
  5127. X@O@<wv05.out@>@{@}
  5128. X
  5129. A paragraph in ordinary mode.
  5130. X
  5131. X33 con!text
  5132. X34 con"text
  5133. X35 con#text
  5134. X36 con$text
  5135. X37 con%text
  5136. X38 con&text
  5137. X39 con'text
  5138. X40 con(text
  5139. X41 con)text
  5140. X42 con*text
  5141. X43 con+text
  5142. X44 con,text
  5143. X45 con-text
  5144. X46 con.text
  5145. X47 con/text
  5146. X48-57 con0123456789text
  5147. X58 con:text
  5148. X59 con;text
  5149. X60 con<text
  5150. X61 con=text
  5151. X62 con>text
  5152. X63 con?text
  5153. X64 con@@text
  5154. X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext
  5155. X91 con[text
  5156. X92 con\text
  5157. X93 con]text
  5158. X94 con^text
  5159. X95 con_text
  5160. X96 con`text
  5161. X97-122 conabcdefghijklmnopqrstuvwxyztext
  5162. X123 con{text
  5163. X124 con|text
  5164. X125 con}text
  5165. X126 con~text
  5166. X
  5167. Now again, but this time inside protective braces.
  5168. X
  5169. X@{
  5170. X33 con!text
  5171. X34 con"text
  5172. X35 con#text
  5173. X36 con$text
  5174. X37 con%text
  5175. X38 con&text
  5176. X39 con'text
  5177. X40 con(text
  5178. X41 con)text
  5179. X42 con*text
  5180. X43 con+text
  5181. X44 con,text
  5182. X45 con-text
  5183. X46 con.text
  5184. X47 con/text
  5185. X48-57 con0123456789text
  5186. X58 con:text
  5187. X59 con;text
  5188. X60 con<text
  5189. X61 con=text
  5190. X62 con>text
  5191. X63 con?text
  5192. X64 con@@text
  5193. X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext
  5194. X91 con[text
  5195. X92 con\text
  5196. X93 con]text
  5197. X94 con^text
  5198. X95 con_text
  5199. X96 con`text
  5200. X97-122 conabcdefghijklmnopqrstuvwxyztext
  5201. X123 con{text
  5202. X124 con|text
  5203. X125 con}text
  5204. X126 con~text
  5205. X@}
  5206. END_OF_FILE
  5207. if test 1236 -ne `wc -c <'tests/wv05.fw'`; then
  5208.     echo shar: \"'tests/wv05.fw'\" unpacked with wrong size!
  5209. fi
  5210. # end of 'tests/wv05.fw'
  5211. fi
  5212. if test -f 'tests/wv06.fw' -a "${1}" != "-c" ; then 
  5213.   echo shar: Will not clobber existing file \"'tests/wv06.fw'\"
  5214. else
  5215. echo shar: Extracting \"'tests/wv06.fw'\" \(1256 characters\)
  5216. sed "s/^X//" >'tests/wv06.fw' <<'END_OF_FILE'
  5217. WV06: Test processing of ugly strings as ordinary and protected text
  5218. with typesetter = tex.
  5219. X
  5220. X@p typesetter = tex
  5221. X
  5222. X@! We need this to keep the analyser happy.
  5223. X@O@<wv06.out@>@{@}
  5224. X
  5225. A paragraph in ordinary mode.
  5226. X
  5227. X33 con!text
  5228. X34 con"text
  5229. X35 con#text
  5230. X36 con$text
  5231. X37 con%text
  5232. X38 con&text
  5233. X39 con'text
  5234. X40 con(text
  5235. X41 con)text
  5236. X42 con*text
  5237. X43 con+text
  5238. X44 con,text
  5239. X45 con-text
  5240. X46 con.text
  5241. X47 con/text
  5242. X48-57 con0123456789text
  5243. X58 con:text
  5244. X59 con;text
  5245. X60 con<text
  5246. X61 con=text
  5247. X62 con>text
  5248. X63 con?text
  5249. X64 con@@text
  5250. X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext
  5251. X91 con[text
  5252. X92 con\text
  5253. X93 con]text
  5254. X94 con^text
  5255. X95 con_text
  5256. X96 con`text
  5257. X97-122 conabcdefghijklmnopqrstuvwxyztext
  5258. X123 con{text
  5259. X124 con|text
  5260. X125 con}text
  5261. X126 con~text
  5262. X
  5263. Now again, but this time inside protective braces.
  5264. X
  5265. X@{
  5266. X33 con!text
  5267. X34 con"text
  5268. X35 con#text
  5269. X36 con$text
  5270. X37 con%text
  5271. X38 con&text
  5272. X39 con'text
  5273. X40 con(text
  5274. X41 con)text
  5275. X42 con*text
  5276. X43 con+text
  5277. X44 con,text
  5278. X45 con-text
  5279. X46 con.text
  5280. X47 con/text
  5281. X48-57 con0123456789text
  5282. X58 con:text
  5283. X59 con;text
  5284. X60 con<text
  5285. X61 con=text
  5286. X62 con>text
  5287. X63 con?text
  5288. X64 con@@text
  5289. X65-90 conABCDEFGHIJKLMNOPQRSTUVWXYZtext
  5290. X91 con[text
  5291. X92 con\text
  5292. X93 con]text
  5293. X94 con^text
  5294. X95 con_text
  5295. X96 con`text
  5296. X97-122 conabcdefghijklmnopqrstuvwxyztext
  5297. X123 con{text
  5298. X124 con|text
  5299. X125 con}text
  5300. X126 con~text
  5301. X@}
  5302. END_OF_FILE
  5303. if test 1256 -ne `wc -c <'tests/wv06.fw'`; then
  5304.     echo shar: \"'tests/wv06.fw'\" unpacked with wrong size!
  5305. fi
  5306. # end of 'tests/wv06.fw'
  5307. fi
  5308. if test ! -d 'userman' ; then
  5309.     echo shar: Creating directory \"'userman'\"
  5310.     mkdir 'userman'
  5311. fi
  5312. echo shar: End of archive 1 \(of 20\).
  5313. cp /dev/null ark1isdone
  5314. MISSING=""
  5315. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ; do
  5316.     if test ! -f ark${I}isdone ; then
  5317.     MISSING="${MISSING} ${I}"
  5318.     fi
  5319. done
  5320. if test "${MISSING}" = "" ; then
  5321.     echo You have unpacked all 20 archives.
  5322.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  5323. else
  5324.     echo You still need to unpack the following archives:
  5325.     echo "        " ${MISSING}
  5326. fi
  5327. ##  End of shell archive.
  5328. exit 0
  5329.