home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / dev / misc / cweb / ctangle-p.ch < prev    next >
Text File  |  1993-12-21  |  18KB  |  557 lines

  1.                                 -*-Web-*-
  2. This file, CTANGLE-P.CH, is part of CWEB-p.
  3. It is a changefile for CTANGLE.W, Version 3.0.
  4.  
  5. Authors and Contributors:
  6. (H2B) Hans-Hermann Bode, Universität Osnabrück,
  7.   (hhbode@@dosuni1.rz.uni-osnabrueck.de or HHBODE@@DOSUNI1.BITNET).
  8.  
  9. (KG) Klaus Guntermann, TH Darmstadt,
  10.   (guntermann@@iti.informatik.th-darmstadt.de).
  11.  
  12. (AS) Andreas Scherer,
  13.   Abt-Wolf-Straße 17, 96215 Lichtenfels, Germany.
  14.  
  15. (CS) Carsten Steger, Universität München,
  16.   carsten.steger@informatik.tu-muenchen.de
  17.  
  18. Caveat utilitor:  Some of the source code introduced by this change file is
  19. made conditional to the use of specific compilers on specific systems.
  20. This applies to places marked with `#ifdef __TURBOC__' and `#ifdef _AMIGA'.
  21.  
  22. This program is distributed WITHOUT ANY WARRANTY, express or implied.
  23.  
  24. The following copyright notice extends to this changefile only, not to
  25. the masterfile CTANGLE.W.
  26.  
  27. Copyright (C) 1993 Andreas Scherer
  28. Copyright (C) 1991, 1993 Carsten Steger
  29. Copyright (C) 1991, 1992 Hans-Hermann Bode
  30.  
  31. Permission is granted to make and distribute verbatim copies of this
  32. document provided that the copyright notice and this permission notice
  33. are preserved on all copies.
  34.  
  35. Permission is granted to copy and distribute modified versions of this
  36. document under the conditions for verbatim copying, provided that the
  37. entire resulting derived work is distributed under the terms of a
  38. permission notice identical to this one.
  39.  
  40. Version history:
  41.  
  42. Version    Date        Author    Comment
  43. a1/t1    10 Oct 1991    H2B    First attempt for CTANGLE.W 2.0.
  44. p2    13 Feb 1992    H2B    Updated for CTANGLE.W 2.2, ANSI and Turbo
  45.                 changefiles merged together.
  46. p3    16 Apr 1992    H2B    Updated for CTANGLE.W 2.4.
  47. p4    21 Jun 1992    H2B    Nothing changed.
  48. p5    18 Jul 1992    H2B    Extensions for C++ implemented.
  49. p5a    24 Jul 1992    KG    adaptions for other ANSI C compiler
  50. p5b    28 Jul 1992    H2B    Remaining headers converted to ANSI style.
  51. p6    06 Sep 1992    H2B    Updated for CTANGLE.W 2.7, |dot_dot_dot|
  52.                 added, parsing of @@'\'' fixed (due to KG),
  53.                 @@<Copy an ASCII constant@@> extended,
  54.                 (nonfatal) confusion in processing short
  55.                 comments fixed.
  56. p6a     15 Mar 1993     AS      Re-changing some of the TC stuff to SAS/C
  57. p6b     27 Jul 1993     AS      new patch level in accordance with CWeave
  58. p6c    04 Sep 1993    AS    new patch level in accordance with Common
  59. p6d    09 Oct 1993    AS    Updated for CTANGLE.W 2.8. (This was p7)
  60. p7    13 Nov 1992    H2B    Converted to master change file, updated for
  61.                 ctangle.w 2.8. [Not released.]
  62. p7.5    29 Nov 1992    H2B    Updated for ctangle.w 2.9beta. [Not released.]
  63. p8    08 Dec 1992    H2B    Updated for ctangle.w 2.9++ (stuff went into
  64.                 the source file), ANSI bug in <Get a constant>
  65.                 fixed. [Not released.]
  66. p8a    10 Mar 1993    H2B    Restructured for public release.
  67.                 [Not released.]
  68. p8b    14 Apr 1993    H2B    Updated for ctangle.w 3.0beta. [Not released.]
  69. p8c    21 Jun 1993    H2B    Updated for final ctangle.w 3.0.
  70. p8d    25 Oct 1993    AS    Incorporated into Amiga version 2.8 [p7] and
  71.                 updated to version 3.0.
  72. ------------------------------------------------------------------------------
  73. @x l.1
  74. % This file is part of CWEB.
  75. % This program by Silvio Levy and Donald E. Knuth
  76. % is based on a program by Knuth.
  77. % It is distributed WITHOUT ANY WARRANTY, express or implied.
  78. % Version 3.0 --- June 1993
  79.  
  80. % Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
  81. @y
  82. % This file, CTANGLE.W, is part of CWEB-p.
  83. % This program by Silvio Levy and Donald E. Knuth
  84. % is based on a program by Knuth.
  85. % It is distributed WITHOUT ANY WARRANTY, express or implied.
  86. % Version 2.4 --- Don Knuth, April 1992
  87. % Version 2.4 [p5] --- Hans-Hermann Bode, July 1992
  88. % Version 2.4 [p5a] --- Klaus Guntermann, July 1992
  89. % Version 2.4 [p5b] --- Hans-Hermann Bode, July 1992
  90. % Version 2.7 --- Don Knuth, July 1992
  91. % Version 2.7 [p6] --- Hans-Hermann Bode, September 1992
  92. % Version 2.7 [p6a] --- Andreas Scherer, March 1993
  93. % Version 2.7 [p6b] --- Andreas Scherer, July 1993
  94. % Version 2.7 [p6c] --- Andreas Scherer, September 1993
  95. % Version 2.8 --- Don Knuth, September 1992
  96. % Version 2.8 [p7] --- Andreas Scherer, October 1993
  97. % Version 3.0 --- Don Knuth, June 1993
  98. % Version 3.0 [p8c] --- Hans-Hermann Bode, June 1993
  99. % Version 3.0 [p8d] --- Andreas Scherer, October 1993
  100.  
  101. % Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
  102. % Copyright (C) 1991,1992,1993 Hans-Hermann Bode
  103. % Copyright (C) 1993 Andreas Scherer
  104. @z
  105. ------------------------------------------------------------------------------
  106. @x l.25
  107. \def\title{CTANGLE (Version 3.0)}
  108. @y
  109. \def\title{CTANGLE (Version 3.0 [p8d])}
  110. @z
  111. ------------------------------------------------------------------------------
  112. @x l.29
  113.   \centerline{(Version 3.0)}
  114. @y
  115.   \centerline{(Version 3.0 [p8d])}
  116. @z
  117. ------------------------------------------------------------------------------
  118. @x l.33
  119. Copyright \copyright\ 1987, 1990, 1993 Silvio Levy and Donald E. Knuth
  120. @y
  121. Copyright \copyright\ 1987, 1990, 1993 Silvio Levy and Donald E. Knuth
  122. \smallskip\noindent
  123. Copyright \copyright\ 1991, 1992, 1993 Hans-Hermann Bode
  124. \smallskip\noindent
  125. Copyright \copyright\ 1993 Andreas Scherer
  126. @z
  127. ------------------------------------------------------------------------------
  128. Activate this, if only the changed modules should be printed.
  129. x l.46
  130. \let\maybe=\iftrue
  131. y
  132. \let\maybe=\iffalse
  133. z
  134. ------------------------------------------------------------------------------
  135. @x l.49
  136. This is the \.{CTANGLE} program by Silvio Levy and Donald E. Knuth,
  137. based on \.{TANGLE} by Knuth.
  138. @y
  139. This is the \.{CTANGLE} program by Silvio Levy and Donald E. Knuth,
  140. based on \.{TANGLE} by Knuth, with {\mc ANSI-C} conforming changes
  141. and {\mc TURBO}-\CPLUSPLUS/ implementation made by Hans-Hermann Bode.
  142. {\mc SAS/C~6.0} implementation made by Andreas Scherer.
  143. @z
  144. ------------------------------------------------------------------------------
  145. @x l.59
  146. @d banner "This is CTANGLE (Version 3.0)\n"
  147. @y
  148. @d banner "This is CTANGLE (Version 3.0 [p8d])\n"
  149. @z
  150. ------------------------------------------------------------------------------
  151. @x l.74
  152. @<Predecl...@>=
  153. extern int strlen(); /* length of string */
  154. extern int strcmp(); /* compare strings lexicographically */
  155. extern char* strcpy(); /* copy one string to another */
  156. extern int strncmp(); /* compare up to $n$ string characters */
  157. extern char* strncpy(); /* copy up to $n$ string characters */
  158. @y
  159. @<Include files@>=
  160. #include <string.h>
  161. @z
  162. ------------------------------------------------------------------------------
  163. @x l.89
  164. int main (ac, av)
  165. int ac;
  166. char **av;
  167. @y
  168. int main (int ac, char **av)
  169. @z
  170. ------------------------------------------------------------------------------
  171. Blow the fuck out of {\mc MULTIPLE SCLEROSIS};
  172. any decent system is capable of using the defaults.
  173. x l.103
  174. @ The following parameters were sufficient in the original \.{TANGLE} to
  175. handle \TEX/,
  176. so they should be sufficient for most applications of \.{CTANGLE}.
  177. y
  178. @ In the following, due to memory limitations of {\mc MS-DOS} systems, the
  179. value of |max_toks| is reduced to~$1\over2$ of its value in the original
  180. \.{CTANGLE}, the remaining parameters were sufficient in the original
  181. \.{CTANGLE} to handle \TEX/; nevertheless, even |max_toks| should be sufficient
  182. for most applications of \.{CTANGLE}.
  183. @^system dependencies@>
  184. z
  185. ------------------------------------------------------------------------------
  186. x l.111
  187. @d max_toks 270000 /* number of bytes in compressed \Cee\ code */
  188. y
  189. @d max_toks 135000 /* number of bytes in compressed \Cee\ code */
  190. z
  191. ------------------------------------------------------------------------------
  192. @x l.124
  193. @i common.h
  194. @y
  195. @i common-p.h
  196. @z
  197. ------------------------------------------------------------------------------
  198. @x l.151
  199.   eight_bits *tok_start; /* pointer into |tok_mem| */
  200. @y
  201.   eight_bits HUGE *tok_start; /* pointer into |tok_mem| */
  202. @z
  203. ------------------------------------------------------------------------------
  204. @x l.160
  205. eight_bits tok_mem[max_toks];
  206. eight_bits *tok_mem_end=tok_mem+max_toks-1;
  207. eight_bits *tok_ptr; /* first unused position in |tok_mem| */
  208. @y
  209. #ifdef __TURBOC__
  210. eight_bits HUGE *tok_mem;
  211. eight_bits HUGE *tok_mem_end;
  212. #else
  213. eight_bits tok_mem[max_toks];
  214. eight_bits *tok_mem_end=tok_mem+max_toks-1;
  215. #endif
  216. eight_bits HUGE *tok_ptr; /* first unused position in |tok_mem| */
  217. @z
  218. --------