% This file generates the user manual; TeX it, don't read it! \def\tangref{3} % where the main explanation of CTANGLing is given \input cwebmac \def\page{\box255 } \normalbottom \parskip 0pt plus 1pt \def\RA{\char'31 } % right arrow \def\hang{\hangindent 4em\ignorespaces} \font\eightrm=cmr8 \font\ninerm=cmr9 \font\ninett=cmtt9 \font\eighttt=cmtt8 \font\twelvett=cmtt12 \font\quoterm=cmssq8 \font\quoteit=cmssqi8 \font\authorfont=cmr12 \font\sectionfont=cmbx12 \def\pb{\.{|...|}} \def\v{\.{\char'174}} % vertical (|) in typewriter font \def\lpile{\def\cr{\hfill\endline}\matrix} % I only use \lpile by itself \abovedisplayskip=.5\abovedisplayskip \belowdisplayskip=.5\belowdisplayskip \abovedisplayshortskip=.5\abovedisplayshortskip \belowdisplayshortskip=.5\belowdisplayshortskip \advance\baselineskip by -.5pt \advance\pageheight by \baselineskip % the manual just got a bit longer \advance\fullpageheight by \baselineskip \setpage \outer\def\section #1.{\penalty-500\bigskip \centerline{\sectionfont\def\.##1{{\twelvett##1}} #1}\nobreak\vskip 6pt \everypar{\hskip-\parindent\everypar{}}} \def\lheader{\mainfont\the\pageno\hfill\sc\runninghead\hfill} \def\rheader{\hfill\sc\runninghead\hfill\mainfont\the\pageno} \def\runninghead{ğóêîâîäñòâî ïîëüçîâàòåëß {\tentt CWEB} (âåğñèß 3.0)} % This verbatim mode assumes that ! marks are !! in the text being copied. \def\verbatim{\begingroup \def\do##1{\catcode`##1=12 } \dospecials \parskip 0pt \parindent 0pt \let\!=! \catcode`\ =13 \catcode`\^^M=13 \tt \catcode`\!=0 \verbatimdefs \verbatimgobble} {\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par}\let =\ }} % \gdef\verbatimgobble#1^^M{}} \null\vfill \centerline{\titlefont The {\ttitlefont CWEB} System of Structured Documentation} \vskip 18pt\centerline{(Version 3.0)} \vskip 24pt \centerline{\authorfont Donald E. Knuth and Silvio Levy} \vfill \noindent \TeX\ is a trademark of the American Mathematical Society. \bigskip\noindent The printed form of this manual is copyright \copyright\ 1994 by Addison-Wesley Publishing Company, Inc. All rights reserved. \smallskip\noindent The electronic form is copyright \copyright\ 1987, 1990, 1993 by Silvio Levy and Donald E. Knuth. \smallskip\noindent The russian translation is copyright \copyright\ 1999 by Sergey V. Korop \.{} \bigskip\noindent Permission is granted to make and distribute verbatim copies of the electronic form of this document provided that the electronic copyright notice and this permission notice are preserved on all copies. \smallskip\noindent Permission is granted to copy and distribute modified versions of the electronic form of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. \smallskip\noindent Individuals may make copies of the documentation from the electronic files for their own personal use. \pageno=0 \titletrue\eject \null\vfill \centerline{\titlefont ñˆ‘’…Œ€ ‘’“Š’“ƒ „Š“Œ…’ˆ‚€ˆŸ {\ttitlefont CWEB}} \vskip 18pt\centerline{(â…‘ˆŸ 3.0)} \vskip 24pt \centerline{\authorfont 䀋œ„ ı. ê“’ ˆ ñˆ‹œ‚ˆ ë…‚ˆ} \vfill \noindent \TeX\ Ÿ‚‹Ÿ…’‘Ÿ ’ƒ‚‰ Œ€Š‰ American Mathematical Society. \bigskip\noindent \copyright\ 1994. €Œˆ € ˆ‡„€ˆ… ’ƒ “Š‚„‘’‚€ ‹€„€…’ Addison-Wesley Publishing Company, Inc. â‘… €‚€ ‘•€…›. \smallskip\noindent \copyright\ 1987, 1990, 1993. € € ‹…Š’“ ”Œ“ ’ƒ “Š‚„‘’‚€ ˆ€„‹…†€’ ñˆ‹œ‚ˆ ë…‚ˆ ˆ 䀋œ„“ ı. ê“’“. \smallskip\noindent \copyright\ 1999. ï……‚„ € “‘‘Šˆ‰ Ÿ‡›Š: ñ…ƒ…‰ ê \.{} \bigskip\noindent â ‘‹“—€… Š”‹ˆŠ’€ “‘‘Šƒ ……‚„€ “‘‹‚ˆ‰ €‘‘’€…ˆŸ ‘ ˆ• €ƒ‹ˆ‰‘ŠˆŒ ‚€ˆ€’Œ, ˆˆ’…’Œ ‹œ‡“…’‘Ÿ ˆƒˆ€‹. \bigskip\noindent Permission is granted to make and distribute verbatim copies of the electronic form of this document provided that the electronic copyright notice and this permission notice are preserved on all copies. \smallskip\noindent Permission is granted to copy and distribute modified versions of the electronic form of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. \smallskip\noindent Individuals may make copies of the documentation from the electronic files for their own personal use. \smallskip\noindent ğ€‡…˜€…’‘Ÿ €‘‘’€…ˆ… ’—›• Šˆ‰ ‹…Š’‰ ‚…‘ˆˆ ’ƒ „Š“Œ…’€ ˆ “‘‹‚ˆˆ, —’ ‘™…ˆ… €‚’‘Šˆ• €‚€• € ‹…Š’“ ‚…‘ˆ ˆ ’ €‡…˜…ˆ… ˆ‘“’‘’‚“…’ ‚ ‚‘…• ŠˆŸ•. \smallskip\noindent ğ€‡…˜€…’‘Ÿ €‘‘’€…ˆ… ˆ‡Œ……›• Šˆ‰ ‹…Š’‰ ‚…‘ˆˆ ’ƒ „Š“Œ…’€ € “‘‹‚ˆŸ• ’—ƒ Šˆ‚€ˆŸ, ˆ ˆ “‘‹‚ˆˆ, —’ ˆ‡‚„€Ÿ €’€ €‘‘’€Ÿ…’‘Ÿ € “‘‹‚ˆŸ•, ˆ„…’ˆ—›• ’ˆŒ. \smallskip\noindent ÷€‘’›… ‹ˆ–€ Œƒ“’ „…‹€’œ Šˆˆ „Š“Œ…’€–ˆˆ ˆ‡ ‹…Š’›• ”€‰‹‚ „‹Ÿ ‹ˆ—ƒ ˆ‘‹œ‡‚€ˆŸ. \pageno=0 \titletrue\eject \titletrue \centerline{\titlefont ñˆ‘’…Œ€ ‘’“Š’“ƒ „Š“Œ…’ˆ‚€ˆŸ {\ttitlefont CWEB}} \vskip 15pt plus 3pt minus 3pt \centerline{\authorfont 䀋œ„ ı. ê“’ ˆ ñˆ‹œ‚ˆ ë…‚ˆ} \vskip 24pt plus 3pt minus 3pt \noindent ı’’ „Š“Œ…’ Ÿ‚‹Ÿ…’‘Ÿ ˆ‘€ˆ…Œ ‚…‘ˆˆ ‘ˆ‘’…Œ› \.{WEB} ä.~ê“’€, €„€’ˆ‚€‰ Š Ÿ‡›Š“ \CEE/ ñˆ‹œ‚ˆ ë…‚ˆ. ñ ŒŒ…’€ ‘‚…ƒ ‘‡„€ˆŸ ‚ 1987~ƒ., \.{CWEB} ‘‚Œ…‘’›Œˆ “‘ˆ‹ˆŸŒˆ ê“’€ ˆ ë…‚ˆ ‚ ŒƒŒ ›‹ Œ„ˆ”ˆ–ˆ‚€ ˆ “‹“—˜…. â €‘’Ÿ™ˆ‰ ŒŒ…’ Œ› ‹€ƒ€…Œ …ƒ ‚‹–ˆ ‹ˆ‡Š‰ Š ‡€‚…˜…ˆ, ’…Œ … Œ………, ‘™…ˆŸ ˜ˆŠ€•, …„‹†…ˆŸ ˆ ŠŒŒ…’€ˆˆ ‚…‘œŒ€ †…‹€’…‹œ› ˆ Œƒ“’ €€‚‹Ÿ’œ‘Ÿ ë…‚ˆ (\.{levy@math.berkeley.edu}). ÷ˆ’€’…‹ˆ, ‡€ŠŒ›… ‘ Œ…Œ€„“ŒŒ ``The \.{WEB} System of Structured Documentation'' ê“’€, Œƒ“’ ‹ˆ˜œ …ƒ‹ ‡€ŠŒˆ’œ‘Ÿ ‘ ’ˆŒ „Š“Œ…’Œ, ‘Š‹œŠ“ \.{CWEB} ˆ \.{WEB} ˆŒ…’ ™“ ”ˆ‹‘”ˆ ˆ (‚ ‘‚Œ) ‘ˆ’€Š‘ˆ‘. â …Š’›• ‚‘€• \.{CWEB} Ÿ‚‹Ÿ…’‘Ÿ “™…ˆ…Œ \.{WEB}: €ˆŒ…, \.{CWEB} … “†„€…’‘Ÿ ‚ Œ…•€ˆ‡Œ€• …„…‹…ˆŸ Œ€Š‘‚ ˆ €’Šˆ ‘’Š \.{WEB}, ‘Š‹œŠ“ Ÿ‡›Š \CEE/ ˆ …ƒ …–…‘‘ …“’ ’“ €’“ € ‘…Ÿ. à€‹ƒˆ—, ‘ƒ‹€˜…ˆŸ \.{WEB} ’‘ˆ’…‹œ ”Œ€’€ ‚‘œŒˆˆ—›• ˆ ˜…‘’€„–€’ˆˆ—›• —ˆ‘…‹ \.{@'77} ˆ \.{@"3f} ‡€Œ……› ˆŸ’›Œˆ ‚ Ÿ‡›Š… \CEE/ \.{077} ˆ \.{0x3f}. â‘… —ˆ… ‚‡Œ†‘’ˆ \.{WEB} ‘•€…› ˆ €‘˜ˆ…›. ì› ‚›€†€…Œ ‘‚ ‹€ƒ„€‘’œ ‚‘…Œ, Š’ ‘‚ˆŒˆ †…‹€ˆŸŒˆ ˆ ‡€Œ…—€ˆŸŒˆ “—€‘’‚‚€‹ ‚ €‡€’Š… \.{CWEB}. î‘“ ˆ‡€’…‹œ‘’œ Œ› ˆ‘ˆŒ Steve Avery, Nelson Beebe, Hans-Hermann Bode, Klaus Guntermann, Norman Ramsey ˆ Joachim Schnitter, Š’›… …„‘’€‚ˆ‹ˆ ƒ€ŒŒ›‰ Š„, € ’€Š†… Cameron Smith, ‡€ Œ†…‘’‚ …„‹†…ˆ‰ „Š“Œ…’€–ˆˆ. Ramsey ‘„…‹€‹ "ƒ€Œ’… ƒ€ŒŒˆ‚€ˆ…" ("literate programming",---’€Š ä. ê“’ €‡›‚€…’ Œ…’„ˆŠ“ ƒ€ŒŒˆ‚€ˆŸ ‘ ˆ‘‹œ‡‚€ˆ…Œ \.{CWEB}---{\sl ˆŒ. ……‚.\/}) „‘’“›Œ „‹Ÿ „“ƒˆ• Ÿ‡›Š‚ ‘‚…‰ ‘ˆ‘’…Œ‰ \.{SPIDER} [‘Œ. {\sl Communications of the ACM\/ \bf32} (1989), 1051--1055]. Bode €„€’ˆ‚€‹ \.{CWEB} Š Ÿ‡›Š“ \CPLUSPLUS/, ’€Š —’ „€‹…… ’…Š‘’“ ‚‘… ‘‘›‹Šˆ € \CEE/ „€‡“Œ…‚€’ ˆ \CPLUSPLUS/. \section â‚…„…ˆ…. ñ“’œ ”ˆ‹‘”ˆˆ \.{CWEB} ‚ ’Œ, —’ ƒ€ŒŒˆ‘’›, †…‹€™ˆ… ‘€„ˆ’œ ‘‚ ƒ€ŒŒ“ €ˆ‹“—˜…‰ „Š“Œ…’€–ˆ…‰, „‹†› „‚…Œ… ‹œ‡‚€’œ‘Ÿ Ÿ‡›ŠŒ, „›Œ \TeX{}, „‹Ÿ „ƒ’‚Šˆ „Š“Œ…’€–ˆˆ ˆ Ÿ‡›ŠŒ, „›Œ \CEE/, „‹Ÿ ƒ€ŒŒˆ‚€ˆŸ. íˆ ’’, ˆ „“ƒ‰ ‘€Œ ‘…… … …„‘’€‚‹Ÿ…’ ‚‘…ƒ …•„ˆŒƒ, “„“—ˆ „‹†›Œ €‡Œ ®…„ˆ…›, Š€‡›‚€’‘Ÿ Š“„€ ‹…… ‹…‡›Œˆ, —…Œ ‡œ. ñ’“Š’“€ ŠŒœ’…‰ ƒ€ŒŒ› Œ†…’ ›’œ …„‘’€‚‹…€, Š€Š ``‘…’œ'' (``web'' --- ``€“’ˆ€''), ‘‘’Ÿ™€Ÿ ˆ‡ Œ†…‘’‚€ ‚‡€ˆŒ ‡€‚ˆ‘ˆŒ›• —€‘’…‰. ÷’› „Š“Œ…’ˆ‚€’œ ’€Š“ ƒ€ŒŒ“, …•„ˆŒ ˆ‘€’œ Š€†„“ ’€Š“ —€‘’œ ˆ …… ‚‡€ˆŒ’˜…ˆŸ ‘ „“ƒˆŒˆ. ñ…„‘’‚€ €’Šˆ ’…Š‘’‚, …„‘’€‚‹Ÿ…Œ›… \TeX{}, ‡‚‹Ÿ’ €Œ ˆ‘€’œ ‹Š€‹œ“ ‘’“Š’““ Š€†„‰ —€‘’ˆ ƒ€ŒŒ›, € ‘…„‘’‚€ ƒ€ŒŒˆ‚€ˆŸ Ÿ‡›Š€ \CEE/ --- ”Œ€‹œ ˆ „‡€— ‘…–ˆ”ˆ–ˆ‚€’œ €‹ƒˆ’Œ›. î®…„ˆˆ‚ ˆ•, Œ› ‹“—€…Œ ‘’ˆ‹œ ƒ€ŒŒˆ‚€ˆŸ, Œ€Š‘ˆŒ€‹œ ‘‘‘’‚“™ˆ‰ ˆŒ€ˆ ‘’“Š’“› ‘‹†›• ƒ€ŒŒ, ˆ „‚…Œ… --- •˜ „Š“Œ…’ˆ‚€›… ƒ€ŒŒ›, „‹Ÿ Š’›• €‚’Œ€’ˆ—…‘Šˆ …‘…—ˆ‚€…’‘Ÿ ‚‡€ˆŒ… ‘’‚…’‘’‚ˆ… ƒ€ŒŒ› ˆ „Š“Œ…’€–ˆˆ. ñˆ‘’…Œ€ \.{CWEB} ‘‘’ˆ’ ˆ‡ „‚“• ƒ€ŒŒ, €‡‚€›• \.{CWEAVE} ˆ \.{CTANGLE}. ïˆ ƒ€ŒŒˆ‚€ˆˆ ‚ ‘ˆ‘’…Œ… \.{CWEB} ƒ€ŒŒ€ € Ÿ‡›Š… \CEE/ ˆ „Š“Œ…’€–ˆŸ Š …‰ ®…„ˆ…› ‚ „Œ ”€‰‹…, €‡›‚€…ŒŒ \.{CWEB}-”€‰‹, ‘ ˆŒ……Œ ‚„… \.{something.w}. ꌀ„€ `\.{cweave} \.{something}' ‘‡„€…’ ”€‰‹ \.{something.tex}, Š’›‰ ‘ Œ™œ \TeX{} …‚€™€…’‘Ÿ ‚ Š€‘ˆ‚ ”Œ‹…“ (``pretty printed'') ‚…‘ˆ \.{something.w}, Š’€Ÿ ‘‹„€…’ ‚‘… ’ˆƒ€”‘Šˆ… ‘ƒ‹€˜…ˆŸ, ’€Šˆ… Š€Š „ˆ‡€‰ ‘’€ˆ–›, ˆ‘‹œ‡‚€ˆ… ’‘’“‚, Š“‘ˆ‚›• ˆ †ˆ›• ˜ˆ”’‚, Œ€’…Œ€’ˆ—…‘Šˆ• ‘ˆŒ‚‹‚. 䋈’…‹œ €‚’Œ€’ˆ—…‘Šˆ ‘’ˆ’‘Ÿ ‘ˆ‘’…Œ€ ……Š…‘’›• ‘‘›‹Š. à€‹ƒˆ—, ŠŒ€„€ `\.{ctangle} \.{something}' †„€…’ ƒ€ŒŒ“ € Ÿ‡›Š… \CEE/ \.{something.c}, Š’€Ÿ Œ†…’ ›’œ ’ŠŒˆ‹ˆ‚€€ ‚ ˆ‘‹ˆŒ›‰ Š„. Œ …„‘’€‚‹…ˆŸ “„ƒ ‘…„‘’‚€ „Š“Œ…’ˆ‚€ˆŸ, \.{CWEB} €‘˜ˆŸ…’ Ÿ‡›Š \CEE/ ‚‡Œ†‘’œ Œ…Ÿ’œ Œ…‘’€Œˆ —€‘’ˆ ’…Š‘’€ ƒ€ŒŒ›, ’€Š —’ ‹œ˜ˆ… ƒ€ŒŒ›… ‘ˆ‘’…Œ› Œƒ“’ ›’œ ‚‘ˆŸ’› –…‹ˆŠŒ ‚ ’…Œˆ€• …‹œ˜ˆ• ‘…Š–ˆ‰ ˆ ˆ• ‹Š€‹œ›• ‚‡€ˆŒ‘‚Ÿ‡…‰. ŒŒ€ \.{CTANGLE} €‡‚€€ ’€Š ’Œ“, —’ € €‘‘’€‚‹Ÿ…’ ‘…Š–ˆˆ web-‘’“Š’“› ‚ Ÿ„Š…, ’…“…ŒŒ \CEE/; …ˆŒ“™…‘’‚Œ ƒ€ŒŒˆ‚€ˆŸ ‚ \.{CWEB} Ÿ‚‹Ÿ…’‘Ÿ ’, —’ €‹ƒˆ’Œ› Œƒ“’ ›’œ ‚›€†…› ‚ "€‡‚…“’‰" ”Œ…, ‚ Š’‰ Š€†„€Ÿ ‘…Š–ˆŸ ®Ÿ‘Ÿ…’‘Ÿ ’„…‹œ ’ „“ƒˆ•. ŒŒ€ \.{CWEAVE}, ‚ ‘’‚…’‘’‚ˆˆ ‘‚…Œ“ €‡‚€ˆ, "‘‹…’€…’" ‘„…†€™ˆ…‘Ÿ ‚ Š€†„‰ ‘…Š–ˆˆ \TeX ˆ \CEE/-—€‘’ˆ ‚ ‘’“Š’“ˆ‚€›‰ „Š“Œ…’. ⇌†, … ‘‹“—€‰ …Œ…–ŠˆŒ Š‚ˆ‚€‹…’Œ ``weave'' Ÿ‚‹Ÿ…’‘Ÿ ``{\it webe\/}'', € ‘’‚…’‘’‚“™ˆ‰ ˆŒ ‹€’ˆ‘Šˆ‰ ˆŒ…€’ˆ‚ --- ``{\it texe\/}''! ï‹œ‡‚€’…‹œ \.{CWEB} „‹†… ›’œ •˜ ‡€ŠŒ ‘ Ÿ‡›ŠŒ \CEE/. 숈Œ€‹œ… ‡€ŠŒ‘’‚ ‘ \TeX{} ’€Š†… †…‹€’…‹œ, ”€Š’ˆ—…‘Šˆ Œ†…’ ›’œ ‹“—… “†… ‚ –…‘‘… €’› ‘ \.{CWEB}, ‘Š‹œŠ“ ‘’‰ ’…Š‘’ „ƒ’€‚‹ˆ‚€…’‘Ÿ ‚ \TeX{} €Š’ˆ—…‘Šˆ …‡ Š€Šƒ-‹ˆ ‡€ˆŸ …ƒ Ÿ‡›Š€. ò…Œ, Š’ •˜ ‡€ŠŒ ‘ …ˆŒˆ ‘ˆ‘’…Œ€Œˆ ’…“’‘Ÿ ‘‚‘…Œ …‹œ˜ˆ… “‘ˆ‹ˆŸ, —’› ˆ‡“—ˆ’œ ŠŒ€„› \.{CWEB}. \section î‡. ñ„…†ˆŒ›Œ ”€‰‹‚ \.{CWEB} Œ†…’ ›’œ \TeX{}-’…Š‘’ ˆ \CEE/-’…Š‘’. \.{CWEB}-ƒ€ŒŒˆ‘’ „‹†… —…’Š …„‘’€‚‹Ÿ’œ ‚‘… ˆ‘•„Ÿ™…… ‘ ˆŒˆ Š€Š ‚ –…‘‘… ƒ……€–ˆˆ „Š“Œ…’€–ˆˆ, ’€Š ˆ ƒ€ŒŒ›, ’.…. ‡€’œ ‘“’œ ‚‘…• ’…• „…‰‘’‚ˆ‰, Š’›… “„“’ ˆ‡‚„ˆ’œ‘Ÿ €„ \.{CWEB}-”€‰‹Œ ƒ€ŒŒ€Œˆ \.{CWEAVE} ˆ \.{CTANGLE}. ò…Š‘’ ‚ ”Œ€’… \TeX{} ‹‘’œ Šˆ“…’‘Ÿ ƒ€ŒŒ‰ \.{CWEAVE} ˆ ˆƒˆ“…’‘Ÿ \.{CTANGLE}, ’ "—ˆ‘’€Ÿ „Š“Œ…’€–ˆŸ". ñ „“ƒ‰ ‘’›, \CEE/-ƒ€ŒŒ€ ”Œ€’ˆ“…’‘Ÿ \.{CWEAVE} ˆ …€‡“…’‘Ÿ \.{CTANGLE} €‚ˆ‹€Œ, Š’›… “„“’ ‘’ƒ …„…‹…› ‡„……. â €‘’Ÿ™ˆ‰ ŒŒ…’ „‘’€’— Ÿ’œ, —’ ‘“™…‘’‚“…’ „‚… €‡‚ˆ„‘’ˆ ’…Š‘’€. ñ‡„€ˆ… \.{CWEB}-ƒ€ŒŒ› ‚ —…Œ-’ ‘•†… ‘ „ƒ’‚Š‰ „Š“Œ…’€ \TeX{} ‘ ˆ‘‹œ‡‚€ˆ…Œ „‹ˆ’…‹œ‰ ``\CEE/-Œ„›'', „‰ ˆŒ…™ˆŒ‘Ÿ ‚ \TeX{} ƒˆ‡’€‹œ‰, ‚…’ˆŠ€‹œ‰ ˆ Œ€’…Œ€’ˆ—…‘Š‰ Œ„€Œ. \.{CWEB}-”€‰‹ ‘„…†ˆ’ {\sl ‘…Š–ˆˆ\/}, Š’›… ‹…… ˆ‹ˆ Œ……… ‘€Œ„‘’€’—›. ꀆ„€Ÿ ‘…Š–ˆŸ ‘‘’ˆ’ ˆ‡ ’…• —€‘’…‰: \yskip\item{$\bullet$} \TEX/-—€‘’œ, ‘„…†€™€Ÿ Œ€’…ˆ€‹, €‡®Ÿ‘Ÿ™ˆ‰ ‘“’œ ‘„…†ˆŒƒ ‘…Š–ˆˆ. \item{$\bullet$} †“’—€Ÿ (middle) —€‘’œ ‘„…†ˆ’ Œ€Š…„…‹…ˆŸ, ‘‹“†€™ˆ… ‘Š€™…ˆŸŒˆ „‹Ÿ \CEE/-Š‘’“Š–ˆ‰, Š’›… …“„ ‚›ˆ‘›‚€’œ Š€†„›‰ €‡ ‡€‚. îˆ …€‡“’‘Ÿ \.{CTANGLE} ‚ Œ€Š‘› …–…‘‘€. \item{$\bullet$} \CEE/-—€‘’œ, ‘„…†€™€Ÿ —€‘’œ ƒ€ŒŒ›, ƒ……ˆ“…Œ‰ \.{CTANGLE}. 䋈€ \CEE/-—€‘’ˆ ‚ ˆ„…€‹… … „‹†€ …‚›˜€’œ „†ˆ› ‘’—…Š, —’› € ‘‘’€‚‹Ÿ‹€ ‡€Š—…›‰ ”€ƒŒ…’ ƒ€ŒŒ› ˆ ›‹€ ‹…ƒŠ ˆŒ€…Œ‰. \yskip\noindent òˆ —€‘’ˆ Š€†„‰ ‘…Š–ˆˆ „‹†› €‘‹€ƒ€’œ‘Ÿ ‚ ’Œ Ÿ„Š…, ’.…. \TeX-ŠŒŒ…’€ˆ‰ „‹†… ‘‹…„‚€’œ …‚›Œ, ‡€’…Œ Œ…†“’—€Ÿ —€‘’œ ˆ, €Š…–, \CEE/-Š„. 뀟 ˆ‡ ’ˆ• —€‘’…‰ Œ†…’ ›’œ “‘’‰. ñ…Š–ˆŸ €—ˆ€…’‘Ÿ ‹ˆ `\.{@\ }', ‹ˆ `\.{@*}', ƒ„… `\.{\ }' ‡€—€…’ ‘ˆŒ‚‹ "…‹". ñ…Š–ˆŸ ‡€Š€—ˆ‚€…’‘Ÿ €—€‹Œ ‘‹…„“™…‰ ‘…Š–ˆˆ, ’.…. ‘‹…„“™ˆŒ `\.{@\ }' ˆ‹ˆ `\.{@*}', ‹ˆ Š–Œ ”€‰‹€. \.{CWEB}-”€‰‹ Œ†…’ ‘„…†€’œ ˆ‡‚‹œ›‰ ’…Š‘’, €‘‹€ƒ€™ˆ‰‘Ÿ ……„ €—€‹Œ …‚‰ ‘…Š–ˆˆ ˆ … ‚•„Ÿ™ˆ‰ ˆ ‚ „“ ˆ‡ ‘…Š–ˆ‰. ï„›‰ ’…Š‘’ „€‹…… “„…Œ ˆŒ…‚€’œ "…€Œ“‹‰" (``in limbo''), ˆƒˆ“…’‘Ÿ \.{CTANGLE} ˆ ‹‘’œ Šˆ“…’‘Ÿ \.{CWEAVE}, ’€Š —’ …ƒ €‡€—…ˆ… ‘‘’ˆ’ ‚ …„…‹…ˆˆ ˆ‡‚‹œ›• ˆ‘’“Š–ˆ‰ \TeX'€. ꀊ €‚ˆ‹, ’ˆ ˆ‘’“Š–ˆˆ ‡€ƒ“†€’ ’…“…Œ›… ˜ˆ”’›, …„…‹Ÿ’ Œ€Š‘›, ˆ‡Œ…Ÿ’ €‡Œ…› ‘’€ˆ–› ˆ/ˆ‹ˆ ƒ……ˆ“’ ’ˆ’“‹œ›‰ ‹ˆ‘’. ñ…Š–ˆˆ “Œ…“’‘Ÿ ‘‹…„‚€’…‹œ, €—ˆ€Ÿ ‘~1. ı’ˆ Œ…€ Ÿ‚‹Ÿ’‘Ÿ ‚ €—€‹… Š€†„‰ ‘…Š–ˆˆ ‚ \TeX-„Š“Œ…’…, ‹“—…Œ \.{CWEAVE}, € ’€Š†… ‚ ŠŒŒ…’€ˆŸ•, ’Œ…—€™ˆ• €—€‹ ˆ Š…– Š€†„‰ ‘…Š–ˆˆ ‚ \CEE/-ƒ€ŒŒ…, ‘ƒ……ˆ‚€‰ \.{CTANGLE}. \section 茅€ ‘…Š–ˆ‰. ê ‘—€‘’œ, …’ ˆŠ€Š‰ €„‘’ˆ “Œ…‚€’œ ‘…Š–ˆˆ ‚“—“. ï‘’ Œ…‘’ˆ’… `\.{@\ }' ‹ˆ `\.{@*}' ‚ €—€‹… Š€†„‰ ‚‰ ‘…Š–ˆˆ, ˆ ˆ• Œ…€ “„“’ ‘ƒ……ˆ‚€› \.{CWEAVE} ˆ \.{CTANGLE} €‚’Œ€’ˆ—…‘Šˆ. ïˆ …•„ˆŒ‘’ˆ ‘…Š–ˆˆ Œ†…’ ›’œ ˆ‘‚… {\sl ˆŒŸ} ‚Œ…‘’ Œ…€. 茟 €—ˆ€…’‘Ÿ `\.{@<}', „€‹…… ‘‹…„“…’ ˆ‡‚‹œ›‰ ’…Š‘’ \TEX/, € ‡€’…Œ --- `\.{@>}'. ꃄ€ \.{CWEAVE} ‚›‚„ˆ’ ˆŒŸ ‘…Š–ˆˆ, `\.{@<}' ˆ `\.{@>}' ‡€Œ…Ÿ’‘Ÿ “ƒ‹‚›Œˆ ‘ŠŠ€Œˆ, ˆ „€‚‹Ÿ…’‘Ÿ Œ… ‘…Š–ˆˆ ‹…… Œ…‹ŠˆŒ ˜ˆ”’Œ. ï’Œ“, Šƒ„€ ‚› —ˆ’€…’… ‚›‚„ \.{CWEAVE}, ‹…ƒŠ ‘‹…„ˆ’œ ‚‘… ‚‡€ˆŒ‘‚Ÿ‡ˆ Œ…†„“ ‘…Š–ˆŸŒˆ. ä‹Ÿ €ƒ‹Ÿ„‘’ˆ ˆŒŸ ‘…Š–ˆˆ „‹† ›’œ •˜ˆŒ ˆ‘€ˆ…Œ ‘„…†ˆŒƒ ‘…Š–ˆˆ, ’.…. Ÿ‘Ÿ’œ €‘’€Š–ˆ, …„‘’€‚‹…“ ‘…Š–ˆ…‰. â‘‹…„‘’‚ˆ… ‘…Š–ˆŸ Œ†…’ ›’œ "‚‘’…€" ‚ „“ƒˆ… ‘…Š–ˆˆ ’€Š, —’ Œ€‹‡€—ˆŒ›… „…’€‹ˆ …… …€‹ˆ‡€–ˆˆ Š€†“’‘Ÿ ‘Š›’›Œˆ. 茟 ‘…Š–ˆˆ, ‘‹…„‚€’…‹œ, „‹† ›’œ „‘’€’— „‹ˆ›Œ, —’› ‚›€‡ˆ’œ ˆ ’Œ …… ‘“’œ. ê ‘†€‹…ˆ, “’Œˆ’…‹œ ˆ —…‚€’ ˜ˆŠ€Œˆ ˆ‘€’œ „‹ˆ… ˆŒŸ ‘…Š–ˆˆ ‘‚€ ˆ ‘‚€. ï’Œ“ \.{CTANGLE} ˆ \.{CWEAVE} ‡‚‹Ÿ’ ˆ‘‹œ‡‚€’œ ‘Š€™…ˆŸ. â‘ŸŠˆ‰ €‡, Šƒ„€ ‚ \.{CWEB}-”€‰‹… „‹† Ÿ‚ˆ’œ‘Ÿ ˆŒŸ ‘…Š–ˆˆ, ‚› Œ†…’… ˆ‘‹œ‡‚€’œ `\.{@<$\alpha$...@>}', ƒ„… $\alpha$ --- ‹€Ÿ ‘’Š€, Ÿ‚‹Ÿ™€Ÿ‘Ÿ …”ˆŠ‘Œ ‹ƒ ˆŒ…ˆ. 퀈Œ…, `\.{@}' Œ†…’ ›’œ ‘Š€™… „ `\.{@}', …‘‹ˆ ˆŠ€Š… „“ƒ… ˆŒŸ ‘…Š–ˆˆ … €—ˆ€…’‘Ÿ ‘ `\.{Clear}'. à€‹ƒˆ— Œ† ˆ‘‹œ‡‚€’œ ‘Š€™…ˆ… `\.{@}' ˆ ’.„. 茅€ ‘…Š–ˆ‰ ‚ —ˆ• ‘‹“—€Ÿ• „‹†› ‘‚€„€’œ ‘ˆŒ‚‹œ, ‡€ ˆ‘Š‹—…ˆ…Œ ‘‹…„‚€’…‹œ‘’…‰ …‹œ›• ‘ˆŒ‚‹‚ (‘‘’‚… …‹€, ‘ˆŒ‚‹‚ ’€“‹Ÿ–ˆˆ, Š–€ ‘’Šˆ ˆ/ˆ‹ˆ ‘’€ˆ–›), Š’›… ’€Š’“’‘Ÿ Š€Š „ˆ …‹. â €—€‹… ˆ Š–… ˆŒ…ˆ ‚‘… …‹œ›… ‘ˆŒ‚‹› “„“’ ’˜…›. ò€Š, `\.{@< Clear { }the arrays @>}' “„…’ ‘’‚…’‘’‚‚€’œ ˆŒ…ˆ ‚ …„›„“™…Œ ˆŒ……. ï…‹œ›… ‘ˆŒ‚‹› ‘‹… Œƒ’—ˆŸ ’€Š†… “„“’ ˆƒˆ‚€’œ‘Ÿ, … ……„ ˆŒ, ’€Š —’ `\.{@}' … ‘’‚…’‘’‚“…’ `\.{@}'. \section ÷’ „…‹€…’ \.{CTANGLE}. ꀊ ›‹ ‘Š€‡€ ‚›˜…, ‘…Š–ˆŸ €—ˆ€…’‘Ÿ `\.{@\ }' ‹ˆ `\.{@*}', ˆ—…ƒ --- ’Œ, Š€Š € „…‹ˆ’‘Ÿ € \TeX-—€‘’œ, Œ…†“’—“ ˆ \CEE/-—€‘’ˆ. †“’—€Ÿ —€‘’œ €—ˆ€…’‘Ÿ ‘ …‚›Œ Ÿ‚‹…ˆ…Œ ‚ ’…‹… ‘…Š–ˆˆ `\.{@d}' ‹ˆ `\.{@f}', € \CEE/-—€‘’œ €—ˆ€…’‘Ÿ …‚›Œ `\.{@c}' ˆ‹ˆ `\.{@
=}'. â ‘‹…„…Œ ‘‹“—€… ˆŒŸ ˆ‘‚€ˆ‚€…’‘Ÿ „€‰ \CEE/-‘…Š–ˆˆ, …‘‹ˆ †… ‘…Š–ˆŸ €—€’€ `\.{@c}', ’ € “„…’ {\sl …ˆŒ…‚€‰}. ê‘’“Š–ˆŸ `\.{@
}' Œ†…’ Ÿ‚ˆ’œ‘Ÿ ‚ ’…‹… \CEE/-‘…Š–ˆˆ ˆ‡‚‹œ… Š‹ˆ—…‘’‚ €‡: ‘‹…„“™ˆ… ‘‘›‹Šˆ € ˆŒŸ ‡€—€’ …ƒ "ˆ‘‹œ‡‚€ˆ…", € … "®Ÿ‚‹…ˆ…", ’.…. —’ ˆŒ…‚€€Ÿ ‘…Š–ˆŸ, …„…‹…€Ÿ ƒ„…-‹ˆ …™…, „‹†€ ›’œ ‚‘’€‚‹…€ ‚ ’ Œ…‘’ \CEE/-ƒ€ŒŒ›. ä…‰‘’‚ˆ’…‹œ, ‘‚€Ÿ ˆ„…Ÿ \.{CTANGLE} --- ‘‡„€’œ ƒ€ŒŒ“, ®…„ˆˆ‚ …Š’… Š‹ˆ—…‘’‚ ˆŒ…‚€›• ˆ …ˆŒ…‚€›• ‘…Š–ˆ‰. ò—›… €‚ˆ‹€ ’€Šƒ ®…„ˆ…ˆŸ ’€Š‚›: ‚€—€‹… ‚‘… Œ€Š…„…‹…ˆŸ, ’Œ…—…›… `\.{@d}' …€‡“’‘Ÿ ‚ ˆ‘’“Š–ˆˆ …–…‘‘€ ˆ ‘ˆ€’‘Ÿ ‚ €—€‹… ”€‰‹€. 䀋…… ’“„€ Šˆ“’‘Ÿ …ˆŒ…‚€›… \CEE/-‘…Š–ˆˆ. ò€Š €‡“…’‘Ÿ …‚… ˆ‹ˆ†…ˆ… ’…Š‘’€ ƒ€ŒŒ› („‹†€ ‘“™…‘’‚‚€’œ •’Ÿ › „€ …ˆŒ…‚€€Ÿ ‘…Š–ˆŸ). 瀒…Œ ‚‘… ˆŒ…€ ‘…Š–ˆ‰, €‰„…›… ‚ ‹“—…Œ ’…Š‘’…, ‡€Œ…Ÿ’‘Ÿ \CEE/-—€‘’ŸŒˆ ‘’‚…’‘’‚“™ˆ• ‘…Š–ˆ‰ ˆ ’’ –…‘‘ „‘’€‚Šˆ „‹†€…’‘Ÿ „ €‡…˜…ˆŸ ‚‘…• ‘‘›‹Š. â‘… ŠŒŒ…’€ˆˆ “„€‹Ÿ’‘Ÿ, ‘Š‹œŠ“ ‹“—…€Ÿ ƒ€ŒŒ€ € \CEE/ … …„€‡€—€…’‘Ÿ „‹Ÿ —’…ˆŸ —…‹‚…ŠŒ. å‘‹ˆ „ ˆ ’ †… ˆŒŸ ›‹ „€ ‹…… —…Œ „‰ ‘…Š–ˆˆ, \CEE/-”€ƒŒ…’ ‹“—€…’‘Ÿ ®…„ˆ…ˆ…Œ \CEE/-—€‘’…‰ ‚‘…• ’€Šˆ• ‘…Š–ˆ‰. ı’ Š€‡›‚€…’‘Ÿ ‹…‡›Œ, €ˆŒ…, …‘‹ˆ ˆŒ……’‘Ÿ ‘…Š–ˆŸ ‘ ˆŒ……Œ `Global variables', ‚ Š’‰ “„“’ ‘€› ‚‘… ƒ‹€‹œ›… ……Œ…›…, ƒ„… › ˆ ˆ ›‹ˆ ®Ÿ‚‹…›. ꃄ€ …‘Š‹œŠ ‘…Š–ˆ‰ ˆŒ…’ „ˆ€Š‚… ˆŒŸ, \.{CWEAVE} ‹€ƒ€…’ Œ… …‚‰ ˆ‡ ˆ• Œ…Œ, ‘’‚…’‘’‚“™ˆŒ ’Œ“ ˆŒ…ˆ, ˆ € ‚‘’€‚‹Ÿ…’ ‚ Š…– ‘…Š–ˆˆ ‘‘›‹Š“: `See also sections~\dots' ("ñŒ. ’€Š†… ‘…Š–ˆˆ~\dots"), ‚ Š’‰ ……—ˆ‘‹…› Œ…€ ‚‘…• ‘’€‹œ›• ‘…Š–ˆ‰, ˆŒ…™ˆ• ’ †… ˆŒŸ. ñ’‚…’‘’‚“™ˆ‰ \CEE/-’…Š‘’ ”Œ€’ˆ“…’‘Ÿ \.{CWEAVE} ’€Š, —’ ‚Œ…‘’ ‡€Š€ €‚…‘’‚€ ‚ ‚›•„Œ „Š“Œ…’… ˆ‘“’‘’‚“…’ ‡€Š Š‚ˆ‚€‹…’‘’ˆ, ’.…. `$\langle\,$section name$\,\rangle\equiv\null$\CEE/ text'. ïˆ ’Œ ‚ ‘‹…„“™ˆ• ‘…Š–ˆŸ• ‘ ’ˆŒ ˆŒ……Œ ‡€Š `$\equiv$' ‡€Œ…Ÿ…’‘Ÿ € `$\mathrel+\equiv$', “Š€‡›‚€™ˆŒ € ’, —’ \CEE/-”€ƒŒ…’ ’‰ ‘…Š–ˆˆ “„…’ „€‚‹… Š ”€ƒŒ…’“ „“ƒ‰ ‘…Š–ˆˆ. ꃄ€ \.{CTANGLE} €—ˆ€…’ ˆ Š€—ˆ‚€…’ €’Š“ ‘…Š–ˆˆ, € ‚‘’€‚‹Ÿ…’ ‚ ‚›•„‰ ”€‰‹ „ˆ…Š’ˆ‚› …–…‘‘€ \.{\#line}, ’€Š —’ Œ…€ ‘’Š ‚ ‘™…ˆŸ• ˜ˆŠ€• ˆ ˆ ’‹€„Š… ƒ€ŒŒ› “„“’ ‘‘›‹€’œ‘Ÿ € ˆ‘•„›‰ \.{CWEB}-”€‰‹. á‹€ƒ„€Ÿ ’Œ“, ‚ ‹œ˜ˆ‘’‚… ‘‹“—€…‚ ‹“—€…ŒŒ \CEE/-”€‰‹… Œ† ‘’ ‡€›’œ. \section ÷’ „…‹€…’ \.{CWEAVE}. Ÿ ˆ„…Ÿ \.{CWEAVE} --- ‘‡„€’œ ˆ‡ ”€‰‹€ \.{CWEB} ”€‰‹ \.{.tex} ’€ŠˆŒ €‡Œ: …‚€Ÿ ‘’Š€ ‹“—€…Œƒ ”€‰‹€ \.{.tex} “Š€‡›‚€…’ \TeX'“ ‡€ƒ“‡ˆ’œ ”€‰‹ Œ€Š…„…‹…ˆ‰, ˆ‘›‚€™ˆ• ”Œ€’ \.{CWEB}-„Š“Œ…’‚. 䀋…… ‚ \.{tex}-”€‰‹ Šˆ“…’‘Ÿ ’…Š‘’ …€Œ“‹›, €‘‹†…›‰ ……„ …‚‰ ‘…Š–ˆ…‰. 瀒…Œ ‘‹…„“…’ —……„ˆ ‚›‚„ Š€†„‰ ‘…Š–ˆˆ, ‚‡Œ† ‚……Œ…˜Š“ ‘ ŠŒ€„€Œˆ Š—€ˆŸ ‘’€ˆ–›. 퀊…–, \.{CWEAVE} ƒ……ˆ“…’ ‘ˆ‘’…Œ“ ……Š…‘’›• ‘‘›‹Š: „‹Ÿ Š€†„ƒ \CEE/-ˆ„…’ˆ”ˆŠ€’€ “Š€‡›‚€’‘Ÿ Œ…€ ‚‘…• ‘…Š–ˆ‰, ‚ Š’›• ˆ‘‹œ‡“…’‘Ÿ, € ’€Š†… ‘’ˆ’‘Ÿ €‹”€‚ˆ’›‰ ‘ˆ‘Š ‚‘…• ˆŒ… ‘…Š–ˆ‰, € ’€Š†… ƒ‹€‚‹…ˆ…, ‘„…†€™…… Œ…€ ‘’€ˆ– ˆ ‘…Š–ˆ‰ „‹Ÿ ‚‘…• ``‡€ƒ‹€‚›•'' ‘…Š–ˆ‰. â› ‘‘ˆ’…, —’ ’€Š… ``‡€ƒ‹€‚€Ÿ'' ‘…Š–ˆŸ (``starred-section'')? ñ…Š–ˆˆ, Š’›… €—ˆ€’‘Ÿ `\.{@*}' ‚Œ…‘’ `\.{@\ }' ‡€—€’ €—€‹ ‚‰ ƒ“› ‘…Š–ˆ‰. ï‘‹… `\.{@*}' “Š€‡›‚€…’‘Ÿ ˆŒŸ ƒ“›, Š€—ˆ‚€™……‘Ÿ ’—Š‰. ò€Šˆ… ƒ“› ‚ „Š“Œ…’… \TEX/ ‚‘…ƒ„€ €—ˆ€’ ‚“ ‘’€ˆ–“, ˆ ˆ• ˆŒŸ ˆ‘‹œ‡“…’‘Ÿ ‚ Š‹’ˆ’“‹… ‚‘…• ‘‹…„“™ˆ• ‘’€ˆ– „ Ÿ‚‹…ˆŸ —……„‰ ‡€ƒ‹€‚‰ ‘…Š–ˆˆ. 茟 ƒ“› ’€Š†… ‡€‘ˆ’‘Ÿ ‚ ƒ‹€‚‹…ˆ… ˆ …—€’€…’‘Ÿ ‚ €—€‹… ‘…Š–ˆˆ †ˆ›Œ ˜ˆ”’Œ. ï…„‘’……†…ˆ…: … ˆ‘‹œ‡“‰’… ‚ ’€Šˆ• ˆŒ…€• “€‚‹Ÿ™ˆ• …„‹†…ˆ‰ \TeX'€, …‘‹ˆ ‚› … “‚……›, —’ Œ€Š…„…‹…ˆŸ ˆ‡ \.{cwebmac} … Š”‹ˆŠ’“’ ‘ ˆŒˆ. ˆ‰ ’Œ“ ‘‹“†ˆ’ ’, —’ ˆŒŸ ƒ“› “„…’ …€‡‚€ ‚ ‚…•ˆ‰ …ƒˆ‘’, Šƒ„€ Ÿ‚‹Ÿ…’‘Ÿ ‚ Š‹’ˆ’“‹…, € ’€Š†… “„…’ ‚›‚…„… †ˆ›Œ ˜ˆ”’Œ ‚ €—€‹… ‘…Š–ˆˆ ˆ ‡€ˆ‘€ ‚ ‚…Œ…›‰ ”€‰‹-ƒ‹€‚‹…ˆ…, ’€Š —’ ˆ‘‹œ‡“…Œ›… ŠŒ€„› „‹†› €’€’œ €‚ˆ‹œ ‚ ‚‘…• ’ˆ• …†ˆŒ€•. \TeX-”€‰‹, ‹“—…›‰ ‘ Œ™œ \.{CWEAVE}, „‹Ÿ Š€†„‰ ‘…Š–ˆˆ ‘„…†ˆ’ ‘‹…„“™……: ‚-…‚›•, Œ… ‘…Š–ˆˆ (’.…. `\.{\\M123.}' ‚ €—€‹… ‘…Š–ˆˆ Œ… 123, ‡€ ˆ‘Š‹—…ˆ…Œ ‡€ƒ‹€‚›• ‘…Š–ˆ‰, ‚ €—€‹… Š’›• ‚Œ…‘’ `\.{\\M}' ‘‹…„“…’ `\.{\\N}'). 䀋…… ‘‹…„“…’ \TeX-—€‘’œ ‘…Š–ˆˆ, ‘Šˆ‚€€Ÿ —’ˆ „‘‹‚, Š€Š ˆ‘€ ˆ†…. â‘‹…„ ‡€ ’ˆŒ ˆ„“’ Œ…†“’—€Ÿ ˆ \CEE/-—€‘’ˆ ‘…Š–ˆˆ, €‡„…‹…›… …‹œ˜ˆŒ Œ…†“’ŠŒ, …‘‹ˆ ˆ … …“‘’›…. ı’ˆ „‚… —€‘’ˆ ‹“—…› ‚‘’€‚Š‰ Œ†…‘’‚€ ‡€’…‰‹ˆ‚›• \TeX-Œ€Š‘‚ ‚ \CEE/-ƒ€ŒŒ“. ı’ˆ Œ€Š‘› “€‚‹Ÿ’ ’ˆƒ€”‘ŠˆŒˆ „‘’ŸŒˆ, ’€ŠˆŒˆ, Š€Š ˜ˆ”’›, €‚ˆ‹œ€Ÿ €‘‘’€‚Š€ …‹‚ ‚ Œ€’…Œ€’ˆ—…‘Šˆ• ”Œ“‹€•, €‡ˆ…ˆ… € ‘’Šˆ ˆ ’‘’“›. \section \CEE/-Š„ ‚ ’…Š‘’… \TeX'€ ˆ €’. ꃄ€ ‚› €ˆ€…’… \TeX-’…Š‘’, ‚‡Œ†, —’ ‚€Œ €„ˆ’‘Ÿ ‘‘‹€’œ‘Ÿ € ……Œ…›… ˆ „“ƒˆ… ®…Š’› \CEE/-ƒ€ŒŒ›, ˆ—…Œ †…‹€’…‹œ, —’› ˆ• ”Œ‹…ˆ… ‘’‚…’‘’‚‚€‹ ’Œ“, —’ ˆ‘‹œ‡“…’‘Ÿ ‚ ƒ€ŒŒ…. ä‹Ÿ ’ƒ \.{CWEB} …„“‘Œ€’ˆ‚€…’ ‚‡Œ†‘’œ €‡Œ…‘’ˆ’œ ‚ ’…‹… \TeX-’…Š‘’€ Š‘’“Š–ˆˆ Ÿ‡›Š€ \CEE/, ƒ€ˆ—ˆ‚ ˆ• ‘ˆŒ‚‹€Œˆ `\.|'. 퀈Œ…, “‘’œ Œ› •’ˆŒ €ˆ‘€’œ —’-’ ‚„… $$\hbox{ If \\{pa} is declared as `\&{int} ${}{*}\\{pa}$', the assignment $\\{pa}\K{\AND}\|a[\T{0}]$ makes \\{pa} point to the zeroth element of \|a.}$$ ò…Š‘’ € Ÿ‡›Š… \TeX\ ‚ \.{CWEB}-”€‰‹… “„…’ ’€ŠˆŒ: $$\lpile{\.{If |pa| is declared as `|int *pa|', the}\cr \.{assignment |pa=\&a[0]| makes |pa| point to the zeroth element of |a|.}\cr}$$ è €Š…–, \.{CWEAVE} …€‡“…’ …ƒ ‚ …—’ ’€Š…, —’ ˆŠŒ“ … ‡€•’…‹‘œ › ‚‚„ˆ’œ ‚“—“: $$\lpile{\.{If \\\\\{pa\} is declared as `\\\&\{int\} \$\{\}\{*\}\\\\\{pa\}\$',}\cr \.{the assignment \$\\\\\{pa\}\\K\{\\AND\}\\|a[\\T\{0\}]\$}\cr \.{makes \\\\\{pa\} point to the zeroth element of \\|a.}\cr}$$ î’Œ…’ˆŒ, —’ ’€‹ˆ–€ ……Š…‘’›• ‘‘›‹Š, ‘‡„€€Ÿ \.{CWEAVE}, „‹Ÿ „ƒ ŠŒŒ…’€ˆŸ “„…’ ‚Š‹—€’œ Œ… ’…Š“™…‰ ‘…Š–ˆˆ ‚ ‘ˆ‘Š… ‘‘›‹Š € \\{pa} …‘Œ’Ÿ € ’, —’ \\{pa} Œ†…’ ˆ … Ÿ‚ˆ’œ‘Ÿ ‚ \CEE/-—€‘’ˆ ’‰ ‘…Š–ˆˆ. ä…‰‘’‚ˆ’…‹œ, ˆ„…Š‘ ‚Š‹—€…’ ‘‘›‹Šˆ € ˆ„…’ˆ”ˆŠ€’› ‚ Ÿ‘Ÿ™ˆ• ŠŒŒ…’€ˆŸ• ’€Š †…, Š€Š ˆ ‚ ‘€Œ‰ ƒ€ŒŒ…; —’› –…ˆ’œ ’“ ‚‡Œ†‘’œ … ’…“…’‘Ÿ Œƒ ‚…Œ…ˆ. â ’ †… ‚…ŒŸ, ˆ„…’ˆ”ˆŠ€’› \&{int} ˆ \|a\ ‚ ˆ„…Š‘ … €„“’, ’Œ“ —’ \.{CWEAVE} … Œ…™€…’ ‚ ˆ„…Š‘ ‡€…‡…‚ˆ‚€›… ‘‹‚€ ˆ „“Š‚…›… ˆ„…’ˆ”ˆŠ€’›. ò€Šˆ… ˆ„…’ˆ”ˆŠ€’› ‹€ƒ€’‘Ÿ ‘’‹œ ‚…‡„…‘“™ˆŒˆ, —’ …’ ‘Œ›‘‹€ ……—ˆ‘‹Ÿ’œ ‚‘… Œ…‘’€, ƒ„… ˆ ‚‘’…—€’‘Ÿ. í…‘Œ’Ÿ € ’, —’ ‘…Š–ˆŸ €—ˆ€…’‘Ÿ \TEX/-—€‘’œ ˆ ‡€Š€—ˆ‚€…’‘Ÿ \CEE/-—€‘’œ, ƒ€ˆ–€ Œ…†„“ ˆŒˆ ’— … …„…‹…€, ‘Š‹œŠ“ \CEE/-Š„ Œ†…’ ›’œ ‚Š‹—… ‚ ’…Š‘’ \TEX/, …‘‹ˆ ƒ€ˆ—… `\pb'. à€‹ƒˆ—, ’…Š‘’ \TEX/ ‡€—€‘’“ Ÿ‚‹Ÿ…’‘Ÿ ‚“’ˆ \CEE/-Š„€, ‘Š‹œŠ“ ‚‘…, —’ ‘—ˆ’€…’‘Ÿ ŠŒŒ…’€ˆ…Œ (’.…. ‚‘… ‚“’ˆ \.{/*} ˆ \.{*/}, ‹ˆ ‘‹… \.{//}) ˆ’……’ˆ“…’‘Ÿ Š€Š ’…Š‘’ \TEX/. ò— ’€Š †… ˆŒŸ ‘…Š–ˆˆ ‘„…†ˆ’ ’…Š‘’ \TEX/, Š‘’“Š–ˆŸ \.{@<ˆŒŸ ‘…Š–ˆˆ@>} –…‹ˆŠŒ Œ†…’ ˆ‘‹œ‡‚€’œ‘Ÿ ‚ \CEE/-Š„…; ‘‹…„‚€’…‹œ, ……•„ Œ…†„“ …†ˆŒ€Œˆ \CEE/ ˆ~\TEX/ ‘“™…‘’‚‹Ÿ…’‘Ÿ …‘’…‘’‚…, Š€Š ‚ ’ˆ• ˆŒ…€•: $$ \displaylines{ \hbox{\.{if} \.{(x==0)} \.{@}} \cr \hbox{\.{...} \.{using} \.{the} \.{algorithm} \.{in} \.{|@|.}} } $$ ï…‚›‰ ˆ‡ ˆ• Œ†…’ ›’œ €‰„… ‚ \CEE/-—€‘’ˆ ‘…Š–ˆˆ, ‚ Š’“ “„…’ ‚‘’€‚‹… Š„ ˆ‡ ‘…Š–ˆˆ, €‡‚€‰ ``Empty the \\{buffer} array''. â’‰ ˆŒ… ˆ‡ \TEX/-—€‘’ˆ ‘…Š–ˆˆ, Š’€Ÿ ‹ˆ˜œ ‘‘›‹€…’‘Ÿ € „“ƒ“ ‘…Š–ˆ, … …„…‹Ÿ…’ ˆ … ˆ‘‹œ‡“…’ ……. (ˆ’… ‚ˆŒ€ˆ… € `\pb' ‚Š“ƒ ˆŒ…ˆ ‘…Š–ˆˆ ‚ ’Œ ‘‹“—€….) \section 쀊…„…‹…ˆŸ. 󀂋Ÿ™ˆ‰ Š„ \.{@d}, ‡€ Š’›Œ ‘‹…„“…’ $$\\{identifier}\.{ }\hbox{\CEE/-Š„}\qquad\hbox{‹ˆ}\qquad \\{identifier}\.(\\{par}_1,\ldots,\\{par}_n\.{) }\hbox{\CEE/-Š„}$$ (\\{identifier} ˆ ‘ŠŠ€ ‚ ‚’Œ ‘‹“—€… … „‹†› €‡„…‹Ÿ’œ‘Ÿ …‹€Œˆ) …€‡“…’‘Ÿ \.{CTANGLE} ‚ „ˆ…Š’ˆ‚“ …–…‘‘€ \.{\#define}, Š’›… €‘‹€ƒ€’‘Ÿ ‚ €—€‹… ƒ……ˆ“…Œ‰ \CEE/-ƒ€ŒŒ›, Š€Š ˆ‘€ €……. 쀊…„…‹…ˆ… `\.{@d}' Œ†…’ ›’œ €‡ˆ’ € …‘Š‹œŠ ‘’Š, ˆ—…Œ … “† ‘’€‚ˆ’œ ‚ Š–… ‘’Šˆ `\.{\\}' --- ˆ• €‚’Œ€’ˆ—…‘Šˆ ‚‘’€‚ˆ’ \.{CTANGLE}. å‘‹ˆ Š€Š‰-’ ˆ—ˆ… ’…“…’‘Ÿ „ˆ…Š’ˆ‚€ \.{\#define} ‚ ŠŠ…’‰ ’—Š… \CEE/-”€‰‹€, Œ† ‡€„€’œ …… ‚ \CEE/-Š„…, € … ‘ Œ™œ \.{CWEB}, ‚ ’Œ ‘‹“—€… ˆ„…’‘Ÿ Œ€‘Šˆ‚€’œ ‘ˆŒ‚‹› ……‚„€ ‘’Šˆ ‘€Œ‘’Ÿ’…‹œ. \section ñ’Šˆ ˆ Š‘’€’›. å‘‹ˆ ‚€Œ “†€ ‚ \CEE/-Š„… ‘’Š‚€Ÿ Š‘’€’€, ƒ€ˆ—…€Ÿ \.' ˆ‹ˆ \.", …… Œ† ‡€„€’œ Š€Š ›—, ‡€ ˆ‘Š‹—…ˆ…Œ ’ƒ, —’ ‘ˆŒ‚‹ `\.@' „‹†… ›’œ …„‘’€‚‹… `\.{@@}' (’ …„ˆ‘’‚…›‰ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹, Š’›‰ Œ†…’ Ÿ‚‹Ÿ’œ‘Ÿ ‚“’ˆ ‘’Šˆ, ‘Œ. „€‹……). ñ’Š‚›… Š‘’€’› … „‹†› ‘„…†€’œ ‘ˆŒ‚‹‚ ……‚„€ ‘’Šˆ, …‘‹ˆ ˆ … ‡€Œ€‘Šˆ‚€›~`\.{\\}'. \TEX/ ˆ \CEE/ …„‹€ƒ€’ €‡‹ˆ—›… ‘‘› ‡€„€ˆŸ ‚‘œŒ…ˆ—›• ˆ ˜…‘’€„–€’ˆˆ—›• Š‘’€’, ‘Š‹œŠ“ \TEX/ ˆ…’ˆ‚€ € „ƒ’‚Š“ ’…Š‘’€ —…‹‚…ŠŒ, € \CEE/ --- € Œ€˜ˆ“ €’Š“. â \TEX/ Š‘’€’€ ®Ÿ‚‹Ÿ…’‘Ÿ ‚‘œŒ…ˆ—‰ ˆ‹ˆ ˜…‘’€„–€’ˆˆ—‰ ‘ Œ™œ …”ˆŠ‘€ \.' ‹ˆ~\." ‘’‚…’‘’‚…; ‚ \CEE/ …”ˆŠ‘› ˆŒ…’ ‚ˆ„ \.0 ˆ \.{0x}. â~\.{CWEB} €‡…˜… ˆ‘‹œ‡‚€’œ € ‘ƒ‹€˜…ˆŸ ’€Œ, ƒ„… ˆ ˆŸ’›: ‚ \CEE/-Š„… —’› ‹“—ˆ’œ $40_8$ ‡€„€…’‘Ÿ `\.{040}' ˆ \.{CTANGLE} …‡ ˆ‡Œ……ˆ‰ Šˆ“…’ ’ ‚ \CEE/-”€‰‹ Š “„‚‹œ‘’‚ˆ ŠŒˆ‹Ÿ’€, € \.{CWEAVE} …—€’€…’ Š€Š $\T{\~40}$. à€‹ƒˆ—, \.{CWEAVE} …—€’€…’ ˜…‘’€„–€’ˆˆ—“ \CEE/-Š‘’€’“ `\.{0x20}' Š€Š \T{\^20}. è‘‹œ‡‚€ˆ… Š“‘ˆ‚€ „‹Ÿ ‚‘œŒ…ˆ—›• –ˆ” ˆ ˜ˆ”’€ ˆ˜“™…‰ Œ€˜ˆŠˆ „‹Ÿ ˜…‘’€„–€’ˆˆ—›• “‹“—˜€…’ ‚‘ˆŸ’ˆ… ’ˆ• Š‘’€’ ‚ „Š“Œ…’…. ä‹Ÿ ‘•€…ˆŸ ™‘’ˆ Œ† ˆ‘‹œ‡‚€’œ `\.{|040|}' ˆ~`\.{|0x20|}' ‚ \TEX/-—€‘’ˆ ‘…Š–ˆˆ. \section 󀂋Ÿ™ˆ… ‘ˆŒ‚‹›. {\sl 󀂋Ÿ™ˆ‰ ‘ˆŒ‚‹ (control code)\/} \.{CWEB} --- ’ ŠŒˆ€–ˆŸ „‚“• ‘ˆŒ‚‹‚, ˆ‡ Š’›• …‚›‰ `\.@'. ì› “†… ‡€ŠŒˆ‹ˆ‘œ ‘ €‡€—…ˆ…Œ …Š’›• ˆ‡ ˆ•, € ’……œ ˆ‡‹†ˆŒ ’ ‹…… ’—. â ˆ†…‘‹…„“™…Œ ‘ˆ‘Š… “Š‚› ‚ Š‚€„€’›• ‘ŠŠ€• “Š€‡›‚€’ Š’…Š‘’, ‚ Š’Œ Š€†„›‰ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ˆŒ……’ ‘Œ›‘‹. $L$ ‡€—€…’, —’ ‘ˆŒ‚‹ „“‘’ˆŒ ‚ …€Œ“‹…, $T$ (\TEX/), $M$ (middle) ˆ $C$ --- ‚ Š€†„‰ ˆ‡ ’…• —€‘’…‰ ‘…Š–ˆˆ € ‚…•…Œ “‚… (’.…. ‚‚… Š‘’“Š–ˆˆ `\pb' ˆ ˆŒ… ‘…Š–ˆ‰). ñ’…‹Š€ $\to$ ‡€—€…’, —’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ‡€‚…˜€…’ ’…Š“™“ —€‘’œ \.{CWEB}-”€‰‹€ ˆ €—ˆ€…’ ‘‹…„“™“ —€‘’œ, “Š€‡€“ “Š‚‰ ‘‹… ‘’…‹Šˆ. 퀈Œ…, $[LTMC\to T]$ ‘‹… \.{@\ } ‡€—ˆ’, —’ “€‚‹Ÿ™ˆ‰ Š„ Œ†…’ Ÿ‚ˆ’œ‘Ÿ ‚ …€Œ“‹… ‹ˆ ‚ ‹‰ ˆ‡ ’…• —€‘’…‰ ‘…Š–ˆˆ, ˆ —’ €—ˆ€…’ \TEX/-—€‘’œ (‚‡Œ† “‘’“) ’…Š“™…‰ ‘…Š–ˆˆ. å™… „‚€ ‘Š€™…ˆŸ Œƒ“’ ›’œ “Š€‡€› ‚ ’ˆ• Š‚€„€’›• ‘ŠŠ€•: á“Š‚€~$r$ ‡€—€…’ {\it ƒ€ˆ—…›‰ Š’…Š‘’ (restricted context)}, ’ …‘’œ, ‘„…†ˆŒ… \CEE/-ŠŒŒ…’€ˆ…‚, ˆŒ… ‘…Š–ˆ‰, \CEE/-‘’Š ˆ “€‚‹Ÿ™ˆ• ’…Š‘’‚ (…„…‹…› „€‹……). á“Š‚€ $c$ --- ’ {\it ‚“’…ˆ‰ \CEE/-Š’…Š‘’ (inner \CEE/ context)} ˆ‹ˆ \CEE/-Š„ ‚“’ˆ`\pb' (‚Š‹—€Ÿ ŠŒŒ…’€ˆˆ ‚“’ˆ `\pb', … ‚ „“ƒˆ• ƒ€ˆ—…›• Š’…Š‘’€•). ç‚…‡„—Š€ $*$ ‘‹… ‘ŠŠ “Š€‡›‚€…’, —’ ’ˆŒ “€‚‹Ÿ™ˆŒ ‘ˆŒ‚‹Œ €—ˆ€…’‘Ÿ ƒ€ˆ—…›‰ Š’…Š‘’, Š’›‰ ‡€‚…˜€…’‘Ÿ €‰ \.{@>} á“Š‚› ‚ “€‚‹Ÿ™ˆ• ‘ˆŒ‚‹€• … €‡‹ˆ—€’‘Ÿ …ƒˆ‘’“. ò€Š, \.{@d} ‡€—€…’ ’ †… ‘€Œ…, —’ ˆ \.{@D}. 䀋…… €‘‘Œ’…› ’‹œŠ ‘ˆŒ‚‹› ‘ “Š‚€Œˆ ˆ†…ƒ …ƒˆ‘’€. \gdef\@#1[#2] {\penalty-50\yskip\hangindent 2em\noindent\.{@#1\unskip \spacefactor1000{ }}$[#2]$\quad} \def\more{\hangindent 2em \hangafter0} \def\subsec{\penalty-300\medskip\noindent} \@@ [LTMCrc]  ‘ˆŒ‚‹‚ \.@ …„‘’€‚‹Ÿ…’ ‘€Œ ‘ˆŒ‚‹ `\.@'. ı’ …„ˆ‘’‚…›‰ “€‚‹Ÿ™ˆ‰ Š„, Š’›‰ „…‰‘’‚“…’ ‚‘„“. 瀌…’ˆŒ, —’ ‚€Œ ˆ„…’‘Ÿ ˆ‘‹œ‡‚€’œ ’ ‘ƒ‹€˜…ˆ…, …‘‹ˆ ‚› “Š€‡›‚€…’… email-€„…‘ ‚ \.{CWEB}-”€‰‹… (€ˆŒ…, \.{levy@@geom.umn.edu}). \subsec ñ‹…„“™ˆ… Š„› …„‘’€‚‹Ÿ’ \TEX/-—€‘’œ ‘…Š–ˆˆ. \@\ [LTMC\to T] —€…’ €—€‹ ‚‰ (… ‡€ƒ‹€‚‰) ‘…Š–ˆˆ. ñˆŒ‚‹ ’€“‹Ÿ–ˆˆ, ƒ€ ‘’€ˆ–› ˆ‹ˆ Š–€ ‘’Šˆ, ‘‹…„“™ˆ… ‡€ ‡€ŠŒ \.@, Š‚ˆ‚€‹…’› …‹“ (Š€Š ˆ ‚ ‹œ˜ˆ‘’‚… „“ƒˆ• ‘‹“—€…‚). \@* [LTMC\to T] î’Œ…—€…’ €—€‹ ‚‰ ‡€ƒ‹€‚‰ ‘…Š–ˆˆ, ’.…. ‘…Š–ˆˆ, €—ˆ€™…‰ ‚“ ƒ““. 퀇‚€ˆ… ’‰ ƒ“› „‹† ‘‹…„‚€’œ ‡€ \.{@*} ˆ ‡€‚…˜€’œ‘Ÿ ’—Š‰. ꀊ “Š€‡€ ‚›˜…, ‚ …Œ … „‹†› ˆ‘‹œ‡‚€’œ‘Ÿ “€‚‹Ÿ™ˆ… ‘‹…„‚€’…‹œ‘’ˆ \TEX/'€, ŠŒ… „‘’€’— ‘’›•. ꃄ€ \.{CWEAVE} ˆ \.{CTANGLE} ‘—ˆ’›‚€’ \.{@*}, ˆ ‚›‚„Ÿ’ € ’…Œˆ€‹ ‘ˆŒ‚‹ `*' ˆ Œ… ’…Š“™…‰ ‘…Š–ˆˆ, ’€Š —’ ‹œ‡‚€’…‹œ Œ†…’ ‚ˆ‡“€‹œ ‘‹…„ˆ’œ ‡€ „‚ˆ†…ˆ…Œ €’›. ñ€Œ€Ÿ …‚€Ÿ ‘…Š–ˆŸ †…‹€’…‹œ „‹†€ ›’œ ‡€ƒ‹€‚‰. \more â› Œ†…’… “Š€‡€’œ ``ƒ‹“ˆ“'' ‡€ƒ‹€‚‰ ‘…Š–ˆˆ, ‚‚„Ÿ \.* ‹ˆ „…‘Ÿ’ˆˆ—… —ˆ‘‹ ‘‹… \.{@*}, ’Œ…—€Ÿ ’ˆŒ ’‘ˆ’…‹œ… €‘‹†…ˆ… ’…Š“™…‰ ƒ“› ‘…Š–ˆ‰ ‚ ˆ…€•ˆˆ ƒ€ŒŒ›. ÷€‘’ˆ ƒ€ŒŒ› ‚…•…ƒ “‚Ÿ, ‡€—…›… \.{@**}, ‚›„…‹Ÿ’‘Ÿ ‚ ƒ‹€‚‹…ˆˆ †ˆ›Œ ˜ˆ”’Œ: “„…Œ ƒ‚ˆ’œ, —’ ˆ• ƒ‹“ˆ€~$-1$. â ’ˆ‚Œ ‘‹“—€…, ƒ‹“ˆ€ …„‘’€‚‹Ÿ…’ ‘‰ …’ˆ–€’…‹œ… —ˆ‘‹, Š’… …„…‹Ÿ…’ ‚…‹ˆ—ˆ“ ’‘’“€ ‚ ƒ‹€‚‹…ˆˆ. ï„›… ’‘’“› Œƒ€’ Ÿ‘ˆ’œ ‘’“Š’““ „‹ˆ‰ ƒ€ŒŒ›. å‘‹ˆ ƒ‹“ˆ€ … “Š€‡€€ Ÿ‚, € ‹€ƒ€…’‘Ÿ €‚‰ 0. å‘‹ˆ ‚€˜€ ƒ€ŒŒ€ Š’Š€, ’, -‚ˆ„ˆŒŒ“, ‚‡Œ† “„…’ ‘’€‚ˆ’œ ‡€—…ˆ… ƒ‹“ˆ› “‹…‚›Œ. 瀃‹€‚›… ‘…Š–ˆˆ ‚‘…ƒ„€ €‘‹€ƒ€’‘Ÿ € ‚‰ ‘’€ˆ–… ‚›‚„€, …‘‹ˆ ’‹œŠ ƒ‹“ˆ€ … …‚›˜€…’~1. \subsec †“’—€Ÿ —€‘’œ Š€†„‰ ‘…Š–ˆˆ ‘„…†ˆ’ ˆ‡‚‹œ… Š‹ˆ—…‘’‚ Œ€Š…„…‹…ˆ‰ (€—ˆ€™ˆ•‘Ÿ ‘ \.{@d}) ˆ …„…‹…ˆ‰ ”Œ€’‚ (…„‚€Ÿ…Œ›• \.{@f} ‹ˆ \.{@s}), €‘‹†…›• ‚ ˆ‡‚‹œŒ Ÿ„Š…. \@d [TM\to M] 쀊…„…‹…ˆ…: €—ˆ€…’‘Ÿ \.{@d}, ‡€ Š’›Œ ˆ„“’ ˆ„…’ˆ”ˆŠ€’, …Ÿ‡€’…‹œ›… €€Œ…’› ˆ \CEE/-Š„, Š€Š ˆ‘€ €……. \@f [TM\to M] î…„…‹…ˆ… ”Œ€’€: €—ˆ€…’‘Ÿ \.{@f}; ˆ “Š€‡›‚€’ \.{CWEAVE} €€’›‚€’œ ˆ„…’ˆ”ˆŠ€’› ‘›Œ €‡Œ, Šƒ„€ ˆ ‚‘’…—€’‘Ÿ ‚ \CEE/-Š„…. ‰ ‚ˆ„ …„…‹…ˆŸ ”Œ€’€ --- `\.{@f} \|l \|r', „€‹…… ‘‹…„“…’ …Ÿ‡€’…‹œ›‰ ŠŒŒ…’€ˆ‰, ƒ€ˆ—…›‰ \.{/*} ˆ \.{*/}, ƒ„… \|l ˆ \|r --- ˆ„…’ˆ”ˆŠ€’›: \.{CWEAVE} ‚ „€‹œ…‰˜…Œ “„…’ €‘‘Œ€’ˆ‚€’œ ˆ„…’ˆ”ˆŠ€’ \|l ’€Š, Š€Š ’ „…‹€…’ ‚ €‘’Ÿ™ˆ‰ ŒŒ…’ „‹Ÿ \|r. ı’ „€…’ \.{CWEB}-ƒ€ŒŒˆ‘’“ ‚‡Œ†‘’œ ‚‚„ˆ’œ ‚›… ‡€…‡…‚ˆ‚€›… ‘‹‚€ ˆ/ˆ‹ˆ ’Œ…Ÿ’œ …‡…‚ˆ‚€ˆ… …Š’›• ˆ„…’ˆ”ˆŠ€’‚ Ÿ‡›ŠŒ \CEE/. å‘‹ˆ \|r --- ‘…–ˆ€‹œ›‰ ˆ„…’ˆ”ˆŠ€’ `\\{TeX}', ˆ„…’ˆ”ˆŠ€’ \|l “„…’ ’”Œ€’ˆ‚€ Š€Š “€‚‹Ÿ™€Ÿ ‘‹…„‚€’…‹œ‘’œ \TEX/. 퀈Œ…, `\.{@f foo TeX}' ‚ \.{CWEB}-”€‰‹… ˆ‚…„…’ Š ’Œ“, —’ ˆ„…’ˆ”ˆŠ€’ \\{foo} “„…’ ‚›‚„ˆ’œ‘Ÿ \.{CWEAVE} Š€Š \.{\\foo}. ŒŒˆ‘’ „‹†… …„…‹ˆ’œ \.{\\foo} ‘‚…Œ“ “‘Œ’…ˆ, ‹€ƒ€Ÿ, —’ \TEX/ €•„ˆ’‘Ÿ ‚ Œ€’…Œ€’ˆ—…‘Š‰ Œ„…. (ꀆ„›‰ ‘ˆŒ‚‹ „—…Šˆ‚€ˆŸ …€‡“…’‘Ÿ ‚ \.{x}, Šƒ„€ ‘‡„€…’‘Ÿ “€‚‹Ÿ™€Ÿ ‘‹…„‚€’…‹œ‘’œ \TEX/; ’€Š, \\{foo\_bar} ‘’€‚ˆ’‘Ÿ \.{\\fooxbar}. ï—ˆ… ‘ˆŒ‚‹›, ‚Š‹—€Ÿ –ˆ”›, … ’€‘‹ˆ“’‘Ÿ, ’€Š —’ \TEX/ “„…’ ‹€ƒ€’œ ˆ• €€Œ…’€Œˆ Œ€Š‘€, € … —€‘’œ ‘€Œ‰ “€‚‹Ÿ™…‰ ‘‹…„‚€’…‹œ‘’ˆ. 퀈Œ…, $$\.{\\def\\x\#1\{x\_\{\#1\}\} @f x1 TeX @f x2 TeX}$$ “„…’ ‚›‚„ˆ’œ \.{x1} ˆ \.{x2} … Š€Š \\{x1} ˆ \\{x2}, € Š€Š $x_1$ ˆ $x_2$. \more \.{CWEAVE} €‚’Œ€’ˆ—…‘Šˆ ”Œ€’ˆ“…’ ˆ„…’ˆ”ˆŠ€’›, ‚‚…„…›… ‘…„‘’‚Œ \&{typedef}, Š€Š ‡€…‡…‚ˆ‚€›… ‘‹‚€, ’Œ“ ‚€Œ … ˆ„…’‘Ÿ …„…‹Ÿ’œ ”Œ€’› ‘‹ˆ˜ŠŒ —€‘’. \@s [TM\to M;\;L] à€‹ƒˆ— \.{@f}, \.{CWEAVE} … ’€†€…’ …„…‹…ˆŸ ”Œ€’‚ ‚ ‘‚…Œ ‚›‚„…, ˆ …Ÿ‡€’…‹œ›‰ \CEE/-ŠŒŒ…’€ˆ‰ …„“‘’ˆŒ. è‘‹œ‡“…’‘Ÿ ƒ‹€‚›Œ €‡Œ ‚ \.{@i}-”€‰‹€•. \subsec ñ‹…„“™ˆ… Š„› “€‚‹Ÿ’ \CEE/-—€‘’œ ‘…Š–ˆˆ. \@{c @p} [TM\to C] \CEE/-—€‘’œ …ˆŒ…‚€‰ ‘…Š–ˆˆ €—ˆ€…’‘Ÿ \.{@c} (‹ˆ \.{@p}, ’.…. ``program''; € “€‚‹Ÿ™ˆ• ‘ˆŒ‚‹€ „…‹€’ „ ˆ ’ †…). ı’ ‡€‘’€‚‹Ÿ…’ \.{CTANGLE} „‹ˆ’œ ‘‹…„“™ˆŒ \CEE/-Š„Œ …‚… ˆ‹ˆ†…ˆ… ’…Š‘’€ ƒ€ŒŒ›, Š€Š ˆ‘€ € ‘’€ˆ–…~\tangref. 瀌…’ˆŒ, —’ \.{CWEAVE} … Œ…™€…’ `\.{@c}' ‚ \TEX/-‚›‚„, ’€Š —’ …‘‹ˆ ‚› ‘‡„€…’… ”€‰‹ \.{CWEB}, ‘‚›‚€Ÿ‘œ € €‘…—€’€‰ \TEX/'Œ \.{CWEB}-„Š“Œ…’€–ˆˆ, … ‡€“„œ’… “Š€‡€’œ \.{@c} ‚ ‘’‚…’‘’‚“™ˆ• Œ…‘’€• …ˆŒ…‚€›• ‘…Š–ˆ‰. \@< [TM\to C;\; C;\; c] $*$ ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ …„‘’€‚‹Ÿ…’ ˆŒŸ ‘…Š–ˆˆ (‹ˆ “ˆŠ€‹œ›‰ …”ˆŠ‘, Š€Š “Š€‡€ ‚›˜…), ‘„…†€™…… ’…Š‘’ \TEX/ ˆ ‡€‚…˜€™……‘Ÿ \.{@>}. ê‘’“Š–ˆŸ \.{@<...@>} ‚ –…‹Œ Š–…’“€‹œ Ÿ‚‹Ÿ…’‘Ÿ ‹…Œ…’Œ \CEE/-Š„€. å… ‚…„…ˆ… ‡€‚ˆ‘ˆ’ ’ Š’…Š‘’€: \more ñˆŒ‚‹ \.{@<} ‚ Š’…Š‘’€• $T$ ˆ $M$ ‘‚Ÿ‡›‚€…’ ‘‹…„“™…… „€‹…… ˆŒŸ ‘…Š–ˆˆ ‘ ’…Š“™…‰ ‘…Š–ˆ…‰, ˆ ’Š›‚€…’ \CEE/-—€‘’œ ‘…Š–ˆˆ. 茟 ‡€‚…˜€…’‘Ÿ \.{@>}, ‡€ Š’›Œ ‘‹…„“…’ \.{=} ˆ‹ˆ \.{+=}. \more â Š’…Š‘’… $C$, \.{@<} “Š€‡›‚€…’, —’ ‘…Š–ˆŸ ‡„…‘œ ˆ‘‹œ‡“…’‘Ÿ --- …… \CEE/-…„…‹…ˆŸ “„“’ Œ…™…› ‘„€ \.{CTANGLE}, Š€Š ˆ‘€ € ‘’€ˆ–…~\tangref. ä‹Ÿ ‹…… ‹ƒ ‚›Ÿ‚‹…ˆŸ ˜ˆŠ \.{CTANGLE} ˆ \.{CWEAVE} …„“‘Œ€’ˆ‚€’ ‚›‚„ ‘™…ˆŸ ‚ ‘‹“—€…, …‘‹ˆ ‡€ ’€ŠˆŒ ˆŒ……Œ ‘…Š–ˆˆ ‘‹…„“…’ \.=, ‘Š‹œŠ“ ’ ‘Š…… ‚‘…ƒ ‡€—€…’ …„…‹…ˆ… ‚‰ ‘…Š–ˆˆ, ˆ ’Œ“ „‹† …„‚€Ÿ’œ‘Ÿ \.{@\ }. å‘‹ˆ ‚€Œ „…‰‘’‚ˆ’…‹œ “† €ˆ‘€’œ $\langle\,$foo$\,\rangle=\\{bar}$, ƒ„… $\langle\,$foo$\,\rangle$ ˆ‘‹œ‡“…’‘Ÿ, € … …„…‹Ÿ…’‘Ÿ, Œ…‘’ˆ’… \.= € ‚‰ ‘’Š…. \more 퀊…–, ‚ ‚“’……Œ \CEE/-Š’…Š‘’… (’.…., ‚“’ˆ `\pb' ‚ \TEX/-—€‘’ˆ ‘…Š–ˆˆ ˆ‹ˆ ‚ ŠŒŒ…’€ˆˆ), \.{@<...@>} ‡€—€…’, —’ ’€ ‘…–ˆŸ –ˆ’ˆ“…’‘Ÿ. ò€Š… ˆ‘‹œ‡‚€ˆ… ˆƒˆ“…’‘Ÿ \.{CTANGLE}. î’Œ…’ˆŒ, —’ „€†… ‚ ’Œ ‘‹“—€… Œ› ’€Š’“…Œ ˆŒŸ ‘…Š–ˆˆ Š€Š ‹…Œ…’ \CEE/, ’€Š Š€Š ƒ€ˆ—… \pb. \@( [TM\to C;\;C;\;c] $*$ 茟 ‘…Š–ˆˆ Œ†…’ €—ˆ€’œ‘Ÿ \.{@(}. â‘… “„…’ €’€’œ, Š€Š ˆ „‹Ÿ \.{@<}, ‘ ’…Œ ˆ‘Š‹—…ˆ…Œ, —’ \CEE/-Š„ ‘…Š–ˆˆ, €‡‚€‰ \.{@(foo@>} “„…’ ‡€ˆ‘€ \.{CTANGLE} ‚ ”€‰‹ \.{foo}. ò…Œ ‘€Œ›Œ Œ› Œ†…Œ ‹“—ˆ’œ ˆ‡ „ƒ ”€‰‹€ \.{CWEB} …‘Š‹œŠ ‚›•„›• ”€‰‹‚. (î…„…‹…ˆŸ \.{@d} … €„€’ ‚ ’€Šˆ… ”€‰‹›, € ‹ˆ˜œ ‚ ‘‚‰ \.{.c}-”€‰‹.) î„ ˆ‡ …„€‡€—…ˆ‰ ’‰ ‚‡Œ†‘’ˆ ‚ ’Œ, —’› ‘‡„€’œ ‡€ƒ‹‚—›… ”€‰‹› „‹Ÿ ƒ€ŒŒ›• Œ„“‹…‰. 䓃ˆŒ ˆŒ…Œ …… ˆ‘‹œ‡‚€ˆŸ ‘‹“†ˆ’ ƒ……€–ˆŸ ’…‘’‚, €‘‘’€Ÿ…Œ›• ‘ ‚€˜…‰ ƒ€ŒŒ‰. ñ•€ŸŸ ˆ‘•„›… ’…Š‘’› ƒ€ŒŒ›, …… ‡€ƒ‹‚—›… ”€‰‹› ˆ ’…‘’‚›… –…„“› ‘‚Œ…‘’, Œ› ˆŒ……Œ ‹œ˜… ˜€‘‚ „„…†€’œ ˆ• ‘ƒ‹€‘‚€‘’œ. î’Œ…’ˆŒ, —’ ˆŒ…‚€€Ÿ ‘…Š–ˆŸ Œ†…’ ›’œ ‚›‚…„…€ ‚ …‘Š‹œŠ €‡‹ˆ—›• ‚›•„›• ”€‰‹‚, ‘Š‹œŠ“ ‚› Œ†…’… “ŒŸ“’œ \.{@} Š€Š ‚ \.{@(bar1@>}, ’€Š ˆ ‚ \.{@(bar2@>}. \@h [Cc] ï…„ˆ‘›‚€…’ \.{CTANGLE} ‚‘’€‚ˆ’œ ‚ ’“ ’—Š“ …„…‹…ˆŸ \.{\#define} ˆ‡ Œ…†“’—›• —€‘’…‰ ‚‘…• ‘…Š–ˆ‰ ˆ {\it …\/} ‡€ˆ‘›‚€’œ ˆ• ‚ €—€‹ \CEE/-”€‰‹€. ï‹…‡, Š ˆŒ…“, ˆ …•„ˆŒ‘’ˆ €‡Œ…‘’ˆ’œ Œ€Š…„…‹…ˆŸ ‘‹… ‚Š‹—€…Œ›• ”€‰‹‚. (胈“…’‘Ÿ \.{CTANGLE} ‚“’ˆ `\pb'.) \subsec í…‘Š‹œŠ ‘‹…„“™ˆ• “€‚‹Ÿ™ˆ• ‘ˆŒ‚‹‚ €—ˆ€’ ``“€‚‹Ÿ™ˆ… ’…Š‘’›'' (``control texts''), ‡€‚…˜€™ˆ…‘Ÿ `\.{@>}'. 瀊›‚€™€Ÿ `\.{@>}' „‹†€ ›’œ € ’‰ †… ‘’Š… \.{CWEB} ”€‰‹€, —’ ˆ €—€‹ “€‚‹Ÿ™…ƒ ’…Š‘’€. ê’…Š‘’, €—ˆ€™ˆ‰‘Ÿ ’ˆŒˆ “€‚‹Ÿ™ˆŒˆ ‘ˆŒ‚‹€Œˆ ˆ Š€—ˆ‚€™ˆ‰‘Ÿ \.{@>}, Ÿ‚‹Ÿ…’‘Ÿ ƒ€ˆ—…›Œ. \@\^ [TMCc] $*$ 䀋œ…‰˜ˆ‰ “€‚‹Ÿ™ˆ‰ ’…Š‘’, ‚‹’œ „ `\.{@>}', “„…’ Œ…™… ‚ ˆ„…Š‘ €Ÿ„“ ‘ ˆ„…’ˆ”ˆŠ€’€Œˆ \CEE/-ƒ€ŒŒ›; ’’ ’…Š‘’ “„…’ €€ Œ€‘ŠˆŒ ˜ˆ”’Œ. 퀈Œ…, —’› Œ…‘’ˆ’œ ”€‡“ ``system dependencies'' (‘ˆ‘’…Œ›… ‡€‚ˆ‘ˆŒ‘’ˆ) ‚ ˆ„…Š‘, ƒ……ˆ“…Œ›‰ \.{CWEAVE}, Œ…‘’ˆ’… `\.{@\^system dependencies@>}' ‚ Š€†„‰ ‘…Š–ˆˆ, Š’“ ‚› •’ˆ’… ’Œ…’ˆ’œ Š€Š ‘ˆ‘’…Œ-‡€‚ˆ‘ˆŒ“. \@. [TMCc] $*$ ï‘‹…„“™ˆ‰ “€‚‹Ÿ™ˆ‰ ’…Š‘’ “„…’ Œ…™… ‚ ˆ„…Š‘ ‚ ‘’ˆ‹… ˆ˜“™…‰ Œ€˜ˆŠˆ (\.{typewriter} \.{type}). \@: [TMCc] $*$ ñ’‚…’‘’‚“™ˆ‰ ’…Š‘’ “„…’ Œ…™… ‚ ˆ„…Š‘ ‚ ”Œ€’…, ˆ‘€Œ \TEX/-Œ€Š‘Œ `\.{\\9}', Š’›‰ ‚› „‹†› …„…‹ˆ’œ ’€Š, Š€Š ’ …•„ˆŒ. \@t [MCc] $*$ 䀋œ…‰˜ˆ‰ “€‚‹Ÿ™ˆ‰ ’…Š‘’ “„…’ ‡€Š‹—… ‚ \TEX/ \.{\\hbox} ˆ ’”Œ€’ˆ‚€ Š€Š —€‘’œ Š“†€™…‰ …ƒ \CEE/-ƒ€ŒŒ›. ı’’ ’…Š‘’ ˆƒˆ“…’‘Ÿ \.{CTANGLE}, Œ†…’ ˆ‘‹œ‡‚€’œ‘Ÿ ‚ €‡‹ˆ—›• –…‹Ÿ• \.{CWEAVE}. 퀈Œ…, ‚› Œ†…’… „…‹€’œ ŠŒŒ…’€ˆˆ, Š’›… ‘—…’€’ \CEE/ ˆ Š‹€‘‘ˆ—…‘Š“ Œ€’…Œ€’ˆŠ“, ‚„… `$\\{size}<2^{15}$', ‚‚„Ÿ `\.{|size < 2@t\$\^\{15\}\$@>|}'. \@= [MCc] $*$ 󀂋Ÿ™ˆ‰ ’…Š‘’ “„…’ „‘‹‚ ‚›‚…„… ‚ \CEE/-ƒ€ŒŒ“. \@q [LTMCc] $*$ 󀂋Ÿ™ˆ‰ ’…Š‘’ ‹‘’œ ˆƒˆ“…’‘Ÿ --- ’ ŠŒŒ…’€ˆ‰ ˆ‘Š‹—ˆ’…‹œ „‹Ÿ —ˆ’€’…‹…‰ \.{CWEB}-”€‰‹€. ô€‰‹, …„€‡€—…›‰ „‹Ÿ ‚Š‹—…ˆŸ ‚ …€Œ“‹“ ‘ Œ™œ \.{@i}, Œ†…’ ‘„…†€’œ ˆ”Œ€–ˆ ‘…… ‘€ŒŒ ‚ \.{@q} ŠŒŒ…’€ˆˆ. 䓃ˆŒ ˆ‘‹œ‡‚€ˆ…Œ ’‰ Š‘’“Š–ˆˆ Œ†…’ ›’œ ‚‘‘’€‚‹…ˆ… €‹€‘€ ‘ŠŠ ‚“’ˆ C-‘’Š, —’› ’…Š‘’‚›… …„€Š’›, ’‘‹…†ˆ‚€™ˆ… ˆ• €‘’œ, "… €„€‹ˆ ‚ ˜’" („€, ˆŒ… ’€Š: "go into a tailspin" --- {\sl . ……‚.\/}). \@! [TMCc] $*$ 팅 ‘…Š–ˆˆ ‚ ˆ„…Š‘… “„…’ „—…Š“’, …‘‹ˆ `\.{@!}' …‘…„‘’‚… …„˜…‘’‚“…’ ˆ„…’ˆ”ˆŠ€’“ ‹ˆ “€‚‹Ÿ™…Œ“ ’…Š‘’“, Œ…™€…ŒŒ“ ‚ ˆ„…Š‘. ı’ ‘ƒ‹€˜…ˆ… ˆ‘‹œ‡“’, —’› €‡‹ˆ—€’œ ‘…Š–ˆˆ, ‚ Š’›• ˆ„…’ˆ”ˆŠ€’ …„…‹… ‹ˆ ®Ÿ‘Ÿ…’‘Ÿ …Š’›Œ ‘›Œ €‡Œ, ’ ‘…Š–ˆ‰, ƒ„… ˆ‘‹œ‡‚€. ñ‘›‹Šˆ € ‡€…‡…‚ˆ‚€›… ‘‹‚€ ‹ˆ „‘ˆŒ‚‹œ›… ˆ„…’ˆ”ˆŠ€’› ‚ ˆ„…Š‘ … Œ…™€’‘Ÿ, ‡€ ˆ‘Š‹—…ˆ…Œ „—…Š“’›•. `\.{@!}' …Ÿ‚ ‚‘’€‚‹Ÿ…’‘Ÿ \.{CWEAVE} Šƒ„€ ˆ„…’ˆ”ˆŠ€’ ®Ÿ‚‹Ÿ…’‘Ÿ ‹ˆ …„…‹Ÿ…’‘Ÿ ‚ \CEE/-Š„…; €ˆŒ…, …„…‹…ˆ… $$\hbox{\&{int} \\{array}[\\{max\_dim}], \\{count}${}=\\{old\_count};$}$$ Œ…™€…’ ‚ ˆ„…Š‘ ˆŒ…€ \\{array} ˆ \\{count}, ‚›„…‹ŸŸ ˆ• „—…Šˆ‚€ˆ…Œ. ì…’Šˆ, …„…‹…ˆŸ ”“Š–ˆ‰, „›… \\{main}(\&{int}~\\{argc},\,\&{char}~$*$\\{argv}[\,]), ˆ …„…‹…ˆŸ \&{typedef} ’€Š†… „€‡“Œ…‚€’ „—…Šˆ‚€ˆ…. î…„…‹…ˆŸ ”“Š–ˆ‰ ‘’€ƒ ‘’ˆ‹Ÿ (…‡ ’’ˆ€) … …„…‹Ÿ’ ˆ• €ƒ“Œ…’‚, ’…Œ … Œ………, €ƒ“Œ…’› “„“’ ‹€ƒ€’œ‘Ÿ …„…‹…›Œˆ (ˆ “„“’ ’€†€’œ‘Ÿ ‚ ˆ„…Š‘… ‘ „—…Šˆ‚€ˆ…Œ), …‘‹ˆ ˆ• ’ˆ› ®Ÿ‚‹…› ……„ ’…‹Œ ”“Š–ˆˆ ›—›Œ €‡Œ, (€ˆŒ…, `\&{int}~\\{argc}; \&{char}~${*}\\{argv}[\,]$; $\{\,\ldots\,\}$'). \subsec ï……‰„…Œ, €Š…–, Š “€‚‹Ÿ™ˆŒ ‘ˆŒ‚‹€Œ, Š’›… ‚‹ˆŸ’ ’‹œŠ € €’“ \.{CTANGLE}. \@' [MCc] è‘‹œ‡‚€ˆ… ’ƒ “€‚‹Ÿ™…ƒ ‘ˆŒ‚‹€ €‘, ‘Š‹œŠ“ …ƒ ‡€—…ˆ… ‚ \.{CWEB} ‘“™…‘’‚… ’‹ˆ—€…’‘Ÿ ’ …ƒ €‡€ ‚ \.{WEB}. â \.{CWEB} €‘Š›‚€…’‘Ÿ ‚ „…‘Ÿ’ˆˆ—“ Š‘’€’“, ‘’‚…’‘’‚“™“ ASCII-Š„“ ‘’Šˆ …„ˆˆ—‰ „‹ˆ› (’.…. \.{@'a'} …€‡“…’‘Ÿ \.{CTANGLE} ‚ \.{97}, € \.{@'\\t'} --- ‚ \.9). â› Œ†…’… ‚‘‹œ‡‚€’œ‘Ÿ ’ˆŒ, …‘‹ˆ •’ˆ’… €’€’œ ‘ ASCII € Œ€˜ˆ…, … ˆ‘‹œ‡“™…‰ ’“ Š„ˆ‚Š“, ‚ ‹œ˜ˆ‘’‚… ‘‹“—€…‚ ‘…„‘’‚€ Ÿ‡›Š€ \CEE/, …„…‹…›… ‚ \.{}, ‚‹… „‘’€’—› „‹Ÿ “‘’€…ˆŸ ‡€‚ˆ‘ˆŒ‘’ˆ ’ Š„ˆ‚Šˆ ‘ˆŒ‚‹‚. \@\& [MCc] î…€–ˆŸ \.{@\&} ‘–…‹Ÿ…’ ’…Š‘’ ‘‹…‚€ ’ ‘…Ÿ ‘ ’…Š‘’Œ ‘€‚€ ˆ ‚›‚„ˆ’ ‚ \CEE/-”€‰‹ ’€Š, —’ ˆ …‹›, ˆ Œ€Š…› Š–€ ‘’Šˆ … “„“’ ‚‘’€‚‹…› Œ…†„“ ˆŒˆ. \@l [L] \.{CWEB}-ƒ€ŒŒˆ‘’› ‚‹œ› ˆ‘‹œ‡‚€’œ ‚ \TEX/’… ‹‰ 8-ˆ’›‰ ‘ˆŒ‚‹œ›‰ Š„ ˆ‡ ……„Š ‡€…’ƒ „ˆ€€‡€ 128--255; ’ˆ ‘ˆŒ‚‹› ’€Š†… „“‘’ˆŒ› ‚ ‘’Š€• ˆ „€†… ‚ ˆ„…’ˆ”ˆŠ€’€• \CEE/-ƒ€ŒŒ›. â €‡‹ˆ—›• €‘˜ˆ…ˆŸ• €‡‚ƒ ‘’€„€’€ ASCII ˆ†ŸŸ —€‘’œ ’€‹ˆ–› (Š„›, ‹œ˜ˆ… 128) ‘’‚…’‘’‚“…’ “Š‚€Œ ‘ „ˆ€Šˆ’ˆ—…‘ŠˆŒˆ ‡€Š€Œˆ, ‘ˆŒ‚‹€Œ … ‹€’ˆ‘Šˆ• €‹”€‚ˆ’‚ ˆ ’.„. ꃄ€ ’€Šˆ… ‘ˆŒ‚‹› Ÿ‚‹Ÿ’‘Ÿ ‚ ˆ„…’ˆ”ˆŠ€’€•, \.{CTANGLE} ‡€Œ…Ÿ…’ ˆ• ‘’€„€’›Œˆ €‹”€‚ˆ’-–ˆ”‚›Œˆ ‘ˆŒ‚‹€Œˆ ASCII ‹ˆ \.{\_}, —’› ˆŒ…€ ‘’‚…’‘’‚‚€‹ˆ ‘ƒ‹€˜…ˆŸŒ Ÿ‡›Š€ \CEE/. ïˆ ’Œ ˆŒ…Ÿ…’‘Ÿ ’€‹ˆ–€ ……Š„ˆ‚Šˆ, Š’€Ÿ “Œ‹—€ˆ ‘‘’€‚‹Ÿ…’ ‘ Š€†„›Œ ‘ˆŒ‚‹Œ, ˆŒ…™ˆŒ ASCII-Š„ \T{\^}$ab$ (ƒ„… $a$ ˆ $b$ --- ˜…‘’€„–€’…ˆ—›… –ˆ”› ˆ $a\ge8$) ‘’Š“ \.{Xab}. ‘’ˆ‚ ‚ …€Œ“‹… Š‘’“Š–ˆ \.{@l\ ab\ newstring}, ‚› “Š€†…’… \.{CTANGLE} ‡€Œ…Ÿ’œ ’’ ‘ˆŒ‚‹ ‘’Š‰ \.{newstring}. 퀈Œ…, ‚ Š„ˆ‚Š… ISO Latin-1 “Š‚€ `\"u' ˆŒ……’ Š„ \T{\^FC} (‹ˆ \.{'\char`\\374'}), ˆ \.{CTANGLE} “Œ‹—€ˆ ‡€Œ…Ÿ…’ ‚ ˆ„…’ˆ”ˆŠ€’€• ’’ Š„ ‘‹…„‚€’…‹œ‘’œ ‘ˆŒ‚‹‚ \.{XFC}. å‘‹ˆ ‚› ‡€„€„ˆ’… \.{@l} \.{fc} \.{ue}, ’ „€‹…… ‚Œ…‘’ ’‰ “Š‚› “„…’ „‘’€‚‹Ÿ’œ‘Ÿ \.{ue}. \more \.{CWEAVE} “‘Š€…’ 8-ˆ’›… ‘ˆŒ‚‹› ŸŒ ‚ \TEX/ …‡ ’€‘‹ˆ’…€–ˆˆ; ˆ ’Œ \TEX/ „‹†… ›’œ, ‚ ‘‚ —……„œ, „ƒ’‚‹… Š ˆ• €’Š…. å‘‹ˆ ‚› ”Œ€’ˆ“…’… ‚‘… …‘’€„€’›… ˆ„…’ˆ”ˆŠ€’› Š€Š ‘›… (``custom'') “€‚‹Ÿ™ˆ… ‘‹…„‚€’…‹œ‘’ˆ, ‘‹…„“…’ €‘’ˆ’œ \TEX/ ’€Š, —’› ‚‘ˆˆŒ€‹ ‚‘… ˆ• ‘ˆŒ‚‹› Š€Š “Š‚›. â ’ˆ‚Œ ‘‹“—€… ‘‹…„“…’ ‹ˆ ®Ÿ‚ˆ’œ ‚ \TEX/'… 8-ˆ’›… ‘ˆŒ‚‹› ``€Š’ˆ‚›Œˆ'', ‹ˆ ‡€ƒ“‡ˆ’œ ˜ˆ”’›, ‘„…†€™ˆ… ‚ ‘’‚…’‘’‚“™…‰ ‡ˆ–ˆˆ “†›… ‘…–ˆ€‹œ›… ‘ˆŒ‚‹›. (ä‹Ÿ ˆ„…’ˆ”ˆŠ€’‚ ˆ‘‹œ‡“…’‘Ÿ ˜ˆ”’, ‚›ˆ€…Œ›‰ ŠŒ€„‰ \TEX/'€ \.{\\it}.) 虈’… ‘…–ˆ€‹œ›… Œ€Š€Š…’›, €ˆ‘€›… „‹Ÿ ˆ‘‹œ‡‚€ˆŸ ‚ \.{CWEB} ‚€˜…ƒ Ÿ‡›Š€ ‹ˆ, …‘‹ˆ … ˆ’…‘œ ’“„‘’…‰, €ˆ˜ˆ’… ‘‚‰ ‘‘’‚…›‰. \subsec ñ‹…„“™ˆ… ‚‘…Œœ “€‚‹Ÿ™ˆ• ‘ˆŒ‚‹‚ (€ ˆŒ…, `\.{@,}', `\.{@/}', `\.{@|}', `\.{@\#}', `\.{@+}', `\.{@;}', `\.{@[}', ˆ `\.{@]}') … ‚‹ˆŸ’ € ƒ……€–ˆ \CEE/-ƒ€ŒŒ› \.{CTANGLE}, ‚ …Š’›• …›—›• ‘‹“—€Ÿ• Œƒ“’ Œ—œ “‹“—˜ˆ’œ —ˆ’€…Œ‘’œ …… \TEX/-…„‘’€‚‹…ˆŸ, ‹“—…ƒ \.{CWEAVE}. â‘’…›‰ €‹ƒˆ’Œ ”Œ€’ˆ‚€ˆŸ ‚…‘œŒ€ •˜, Šƒ„€ ˆŒ…Ÿ…’‘Ÿ Š ‘ˆ’€Š‘ˆ—…‘Šˆ €‚ˆ‹œ‰ ƒ€ŒŒ…, … Œ†…’ “—…‘’œ ‚‘…• ‚‡Œ†›• ‘ˆ’“€–ˆ‰, ’Œ“ —’ €’€…’ ‘ ”€ƒŒ…’€Œˆ ’…Š‘’€, ‚Š‹—€™ˆŒˆ Œ€Š‘› ˆ ˆŒ…€ ‘…Š–ˆ‰; ’€Šˆ… ”€ƒŒ…’› … ‚‘…ƒ„€ ‘‹„€’ ‘ˆ’€Š‘ˆ‘. í…‘Œ’Ÿ € ’, —’ \.{CWEB} ‡‚‹Ÿ…’ ……Š›‚€’œ €‚’Œ€’ˆ—…‘Š… ”Œ€’ˆ‚€ˆ…, ‹“—˜…‰ ‘’€’…ƒˆ…‰ “„…’ €—€’œ ‘ …ƒ, ‘Š‹œŠ“ Œ†…’ Š€‡€’œ‘Ÿ, —’ €„Ÿ’‘Ÿ ‹ˆ˜œ …‘Š‹œŠ Œ…‹Šˆ• Š…Š’ˆ‚. \@, [MCc] ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ‚‘’€‚‹Ÿ…’ ’Šˆ‰ …‹ (thin space) ‚ ‚›‚„ \.{CWEAVE}. 胄€ „‹ˆ’…‹œ›‰ …‹ Œ†…’ €„ˆ’œ‘Ÿ ˆ …›—Œ ˆ‘‹œ‡‚€ˆˆ Œ€Š‘‚, €ˆŒ…, Šƒ„€ „‚€ ˆ„…’ˆ”ˆŠ€’€ €‘‹†…› Ÿ„Œ. \@/ [MC] ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ‚›‡›‚€…’ €‡›‚ ‘’Šˆ ‚ \CEE/-ƒ€ŒŒ…, ’”Œ€’ˆ‚€‰ \.{CWEAVE}. ğ€‡›‚› ‘’Š €‚’Œ€’ˆ—…‘Šˆ ‚›ˆ€’‘Ÿ \TEX/'Œ ‘•…Œ…, €’€™…‰ Š…Š’ ‚ 99\%\ ‘‹“—€…‚, ˆƒ„€ …•„ˆŒ Ÿ‚… “Š€‡€ˆ…, —’› €‡ˆ…ˆ… ‘’‚…’‘’‚‚€‹, ŒˆŒ ‚…˜…‰ ˆ‚‹…Š€’…‹œ‘’ˆ, ‹ƒˆŠ… ƒ€ŒŒ›. 퀈Œ…, ˆ‘‹œ‡“‰’… `\.{@/@,}' ……„ ŠŒŒ…’€ˆŸŒˆ, —’› ˆ €—ˆ€‹ˆ‘œ ‘ ‚‰ ‘’Šˆ. \@| [MC] ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ‡€„€…’ …Ÿ‡€’…‹œ›‰ €‡›‚ ‘’Šˆ ‘…„ˆ ‚›€†…ˆŸ. 퀈Œ…, …‘‹ˆ ˆŒ……’‘Ÿ „‹ˆ… ‚›€†…ˆ… ‚ €‚‰ —€‘’ˆ ˆ‘‚€ˆ‚€ˆŸ, ‘ Œ™œ `\.{@|}' Œ† “Š€‡€’œ ‚ …Œ ‚‡Œ†›… ’—Šˆ €‡›‚€, Š’›… “„“’ ‹“—˜… „—…Šˆ‚€’œ ‹ƒˆŠ“ ƒ€ŒŒ›, …†…‹ˆ ‚›€›… \TEX/'Œ €‚’Œ€’ˆ—…‘Šˆ. \@\# [MC] ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ‚›‡›‚€…’ €‡›‚ ‘’Šˆ „ \.{@/}, € ’€Š†… ‚‘’€‚‹Ÿ…’ …‹œ˜‰ „‹ˆ’…‹œ›‰ …‹ ‚ ’—Š“ €‡›‚€. î Œ†…’ ˆ‘‹œ‡‚€’œ‘Ÿ, €ˆŒ…, Œ…†„“ ‹ƒˆ—…‘Šˆ €‡‹ˆ—›Œˆ ƒ“€Œˆ Œ€Š‘‚, €‡Œ…™…›Œˆ ‚ „‰ ‘…Š–ˆˆ. \.{CWEB} €‚’Œ€’ˆ—…‘Šˆ ‚‘’€‚‹Ÿ…’ ’€Š‰ „‹ˆ’…‹œ›‰ …‹ Œ…†„“ ”“Š–ˆŸŒˆ, ‚…˜ˆŒˆ ®Ÿ‚‹…ˆŸŒˆ ˆ ”“Š–ˆŸŒˆ, € ’€Š†… Œ…†„“ ®Ÿ‚‹…ˆŸŒˆ ˆ …€’€Œˆ ‚ ’…‹… ”“Š–ˆˆ. \@+ [MC] ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ Œ€‘Šˆ“…’ €‡›‚ ‘’Šˆ, Š’›‰ „‹†… ›’œ ‘„…‹€ \.{CWEAVE}, €ˆŒ…, ……„ `\&{else}', …‘‹ˆ ‚› •’ˆ’… €‡Œ…‘’ˆ’œ Š’Š“ if--else Š‘’“Š–ˆ € „‰ ‘’Š…. å‘‹ˆ “Š€‡€’œ `\.{\{@+}' ‚ €—€‹… ‘‘’€‚ƒ …€’€, Ÿ‚‹Ÿ™…ƒ‘Ÿ ’…‹Œ ”“Š–ˆˆ, ’ …‚… ®Ÿ‚‹…ˆ… ˆ‹ˆ …€’ ”“Š–ˆˆ “„“’ €‘‹†…› € ’‰ †… ‘’Š…, —’ ˆ ’Š›‚€™€Ÿ ‘ŠŠ€, ˆ ‘ ’‘’“Œ, Š’›‰ “„…’ …„˜…‘’‚‚€’œ ‚’Œ“ …€’“ ˆ‹ˆ ®Ÿ‚‹…ˆ € ‘‹…„“™…‰ ‘’Š…. \@; [MC] ı’’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ ˆ ”Œ€’ˆ‚€ˆˆ €€‹ƒˆ—… ’—Š… ‘ ‡€Ÿ’‰, …‚ˆ„ˆŒ. â› Œ†…’… ‚‘‹œ‡‚€’œ‘Ÿ ˆŒ, €ˆŒ…, ‘‹… ˆŒ…ˆ ‘…Š–ˆˆ ˆ‹ˆ Œ€Š‘€, Šƒ„€ \CEE/-Š„, …„‘’€‚‹…›‰ ‚ ’‰ ‘…Š–ˆˆ ˆ‹ˆ Œ€Š‘…, …‘’œ ‘‘’€‚‰ …€’ ‹ˆ Š€—ˆ‚€…’‘Ÿ ’—Š‰ ‘ ‡€Ÿ’‰. …Œ ’€Š‰ Š‘’“Š–ˆˆ Ÿ‚‹Ÿ…’‘Ÿ $$\lpile{\.{if (condition) macro @;}\cr \.{else break;}\cr}$$ ƒ„… …„…‹…ˆ…Œ \\{macro} ‘‹“†ˆ’ ‘‘’€‚‰ …€’ (‡€Š‹—…›‰ ‚ ”ˆƒ“›… ‘ŠŠˆ). ı’ •˜ ˆ‡‚…‘’›‰ …„‘’€’Š ‘ˆ’€Š‘ˆ‘€ \CEE/. \@{[} [MC] ñŒ. \.{@]}. \@] [MC] ‘’ˆ’… Š‚€„€’›… ‘ŠŠˆ \.{@[...@]} ‚Š“ƒ ’…Š‘’€ ƒ€ŒŒ›, Š’›‰ „‹†… ›’œ ’”Œ€’ˆ‚€ \.{CWEAVE} Š€Š ‚›€†…ˆ…, …‘‹ˆ ’ƒ … ˆ‡˜‹. (ò€Š… ˆƒ„€ ‘‹“—€…’‘Ÿ ‘ …›—›Œˆ €ƒ“Œ…’€Œˆ Œ€Š‘‚.) ò€Š†… ‚‘’€‚‹Ÿ‰’… `\.{@[@]}' Œ…†„“ ˆŒ……Œ ’ˆ€ ˆ ‹…‚‰ ‘ŠŠ‰, Šƒ„€ ®Ÿ‚‹Ÿ…’… “Š€‡€’…‹œ € ”“Š–ˆ, ‚„…, $$\.{int @[@] (*f)();}$$ ‚ ’ˆ‚Œ ‘‹“—€… \.{CWEAVE} ‘“’€…’ …‚“ —€‘’œ ’ƒ …„…‹…ˆŸ ‘ ‚›€†…ˆ…Œ \CPLUSPLUS/ `\&{int}($*f$)'. \subsec î‘’€‹œ›… “€‚‹Ÿ™ˆ… ‘ˆŒ‚‹› \.{CWEB} “Š‚„Ÿ’ ‚‚„Œ „€›•. \@{x @y @z}[\\{change\_file}] \.{CWEAVE} ˆ \.{CTANGLE} …„€‡€—…› „‹Ÿ €’› ‘ „‚“ŒŸ ‚•„›Œˆ ”€‰‹€Œˆ, €‡›‚€…Œ›Œˆ \\{web\_file} ˆ ”€‰‹ ˆ‡Œ……ˆ‰ \\{change\_file}, ƒ„… \\{change\_file} ‘„…†ˆ’ „€›…, ‡€Œ…™€™ˆ… ’„…‹œ›… —€‘’ˆ \\{web\_file}. ğ…‡“‹œ’ˆ“™ˆ‰ ’…Š‘’ ˆ …‘’œ ’’ ‘€Œ›‰ ”€‰‹ \.{CWEB}, Š’›‰ “Œˆ€…’‘Ÿ ‚‘…Œ…‘’ ‚ ’Œ “Š‚„‘’‚…. \more ꀊ ’ €’€…’: ”€‰‹ ˆ‡Œ……ˆ‰ ‘„…†ˆ’ “‹œ ˆ ‹…… ``Š…Š’ˆ‚'', ƒ„… Š…Š’ˆ‚€ ˆŒ……’ ‚ˆ„ `\.{@x}$\langle$‘’€›… ‘’Šˆ$\rangle$\.{@y}$\langle$% ‚›… ‘’Šˆ$\rangle$\.{@z}'. ñ…–ˆ€‹œ›… “€‚‹Ÿ™ˆ… ‘ˆŒ‚‹› \.{@x}, \.{@y}, \.{@z}, „“‘’ˆŒ›… ’‹œŠ ‚ ”€‰‹€• ˆ‡Œ……ˆ‰, „‹†› Ÿ‚‹Ÿ’œ‘Ÿ ‚ €—€‹… ‘’Šˆ, ‘’€’Š ’€Š‰ ‘’Šˆ ˆƒˆ“…’‘Ÿ. ñ„…†ˆŒ… $\langle$‘’€›… ‘’Šˆ$\rangle$ …„‘’€‚‹Ÿ…’ Œ€’…ˆ€‹, Š’›‰ ’— ‘’‚…’‘’‚“…’ ‘‹…„‚€’…‹œ›Œ ‘’Š€Œ \\{web\_file}; € $\langle$‚›… ‘’Šˆ$\rangle$ ‘„…†ˆ’ “‹œ ˆ‹ˆ ‹…… ‘’Š, Š’›Œˆ …„‹€ƒ€…’‘Ÿ ‡€Œ…ˆ’œ ‘’€›…. ꀊ ’‹œŠ …‚€Ÿ ``‘’€€Ÿ ‘’Š€'' Š…Š’ˆ‚› Š€‡›‚€…’‘Ÿ ‘‚€„€™…‰ ‘ ‘’Š‰ ‚~\\{web\_file}, ‚‘… ‘’€‹œ›… ‘’Šˆ ’‰ Š…Š’ˆ‚› ’€Š†… „‹†› ‘‚€‘’œ. \more ì…†„“ Š…Š’ˆ‚€Œˆ, ……„ …‚‰ Š…Š’ˆ‚‰ ˆ ‘‹… ‘‹…„…‰ Š…Š’ˆ‚› ”€‰‹ ˆ‡Œ……ˆ‰ Œ†…’ ‘„…†€’œ ‹… Š‹ˆ—…‘’‚ ‘’Š, … €—ˆ€™ˆ•‘Ÿ `\.{@x}', `\.{@y}', ‹ˆ~`\.{@z}'. ò€Šˆ… ‘’Šˆ “‘Š€’‘Ÿ ˆ … ˆ‘‹œ‡“’‘Ÿ ‚ ‘‘’€‚‹…ˆˆ. \more ò€Š€Ÿ ‚‡Œ†‘’œ ‹…‡€, Šƒ„€ €’€…˜œ ‘ ˆƒˆ€‹œ›Œ \.{CWEB}-”€‰‹Œ, ‹“—…›Œ ’Š“„€-‹ˆ (€ˆŒ…, \.{tangle.w} ˆ \.{weave.w} ‹ˆ \.{tex.web}), Š’›‰ …•„ˆŒ ˆ‡Œ…ˆ’œ „‹Ÿ €„€’€–ˆˆ ƒ€ŒŒ› Š ‘…‘’ŸŒ ‚€˜…‰ ‘ˆ‘’…Œ›. â› Œ†…’… ’‹€†ˆ‚€’œ ‘‚ˆ ‘ˆ‘’…Œ-‡€‚ˆ‘ˆŒ›… ˆ‡Œ……ˆŸ, … ˆ‘€‚‹ŸŸ ‘‚ƒ ”€‰‹€; ˆ Š€Š ’‹œŠ ˆ ‡€€’€’, ˆ• Œ† “„…’ ‹…ƒŠ ‚Š‹—€’œ ‚ ‚›… ‚…‘ˆˆ ‘‚ƒ ”€‰‹€, Š’›… “„“’ Ÿ‚‹Ÿ’œ‘Ÿ ‚…ŒŸ ’ ‚…Œ…ˆ. \@i [\\{web\_file}] â ‘‚ —……„œ, \\{web\_file} ‘€Œ ‘…… Œ†…’ ›’œ ŠŒˆ€–ˆ…‰ …‘Š‹œŠˆ• ”€‰‹‚. ꃄ€ \.{CWEAVE} ‹ˆ \.{CTANGLE}, ‘—ˆ’›‚€Ÿ ”€‰‹, €“†ˆ‚€’ “€‚‹Ÿ™ˆ‰ ‘ˆŒ‚‹ \.{@i} ‚ €—€‹… ‘’Šˆ, ˆ …›‚€’ —’…ˆ… ˆ €—ˆ€’ €’Š“ ”€‰‹€, ˆŒŸ Š’ƒ ‘‹…„“…’ ‡€ \.{@i}, „ …–…‘‘“ ŠŒˆ‹Ÿ’€ \CEE/, €€’›‚€™…Œ“ „ˆ…Š’ˆ‚“ \.{\#include}. ï‘‹… ‡€‚…˜…ˆŸ —’…ˆŸ ‚Š‹—€…Œƒ ”€‰‹€ ƒ€ŒŒ€ ……•„ˆ’ Š ‘‹…„“™…‰ ‘’Š… ˆ‘•„ƒ ”€‰‹€. 茟 ”€‰‹€, ‘‹…„“™…… ‡€ \.{@i}, Œ†…’ Š“†€’œ‘Ÿ ‘ˆŒ‚‹€Œˆ \.", ’ …Ÿ‡€’…‹œ. ⊋—…ˆ… Œ†…’ ›’œ ‚‹†…›Œ. \more ô€‰‹› ˆ‡Œ……ˆ‰ Œƒ“’ ˆŒ…’œ ‘’Šˆ, €—ˆ€™ˆ…‘Ÿ \.{@i}. ò€ŠˆŒ ‘‘Œ ‚› Œ†…’… „Œ…Ÿ’œ „ˆ ‚Š‹—€…Œ›‰ ”€‰‹ „“ƒˆŒ. ê–…’“€‹œ, ˆ‘€›‰ ‚›˜… Œ…•€ˆ‡Œ „‘’€‚Šˆ „…‰‘’‚“…’ …‚›Œ, € ‡€’…Œ ‚ …ƒ ‚›‚„… €€’›‚€’‘Ÿ „ˆ…Š’ˆ‚› \.{@i}. å‘‹ˆ \.{@i} \.{foo} Ÿ‚ˆ’‘Ÿ Œ…†„“ \.{@y} ˆ \.{@z} ‚ ”€‰‹… ˆ‡Œ……ˆ‰, ’„…‹œ›… ‘’Šˆ ”€‰‹€ \.{foo} ˆ ”€‰‹›, Š’›… ‚Š‹—€…’, … ˆ‡Œ…Ÿ’‘Ÿ; Œ„ˆ”ˆŠ€–ˆˆ Œƒ“’ ›’œ ‚…‘…› ‚ ‘’Šˆ, Š’›… ‚Š‹—€‹ˆ‘œ … ˆ‡Œ……‰ „ˆ…Š’ˆ‚‰ input. \more â ‘ˆ‘’…Œ… UNIX (ˆ „“ƒˆ•, „„…†ˆ‚€™ˆ• ……Œ…›… Š“†…ˆŸ), …‘‹ˆ “‘’€‚‹…€ ……Œ…€Ÿ \.{CWEBINPUTS}, ‹ˆ …‘‹ˆ „ˆŒ…… …„…‹…ˆ… ›‹ ‡€„€ ˆ ŠŒˆ‹Ÿ–ˆˆ, \.{CWEB} “„…’ ˆ‘‹œ‡‚€’œ …… ‡€—…ˆ… ‚ Š€—…‘’‚… ˆŒ…ˆ Š€’€‹ƒ€, ‚ Š’Œ “„…’ ˆ‘•„ˆ’œ ˆ‘Š ‚Š‹—€…Œ›• ”€‰‹‚, …‘‹ˆ ˆ … “„“’ €‰„…› ‚ ’…Š“™…Œ Š€’€‹ƒ…. \section 䋈’…‹œ›… ‚‡Œ†‘’ˆ ˆ …„‘’……†…ˆŸ. 1. â …Š’›• …€‹ˆ‡€–ˆŸ• \.{CWEB}, Š’›… {\def\\#1#2{`{\tentex\char'#1#2}'}% „“‘Š€’ ˆ‘‹œ‡‚€ˆ… €‘˜ˆ…ƒ ‘ˆŒ‚‹œƒ €€, ‘ˆŒ‚‹› \\13, \\01, \\31, \\32, \\34, \\35, \\36, \\37, \\04, \\20 ˆ~\\21} Œƒ“’ ˆŒ…Ÿ’œ‘Ÿ Š€Š ‘Š€™…ˆŸ „‹Ÿ `\.{++}', `\.{--}', `\.{->}', `\.{!=}', `\.{<=}', `\.{>=}', `\.{==}', `\.{\v\v}', `\.{\&\&}', `\.{<<}' ˆ~`\.{>>}' ‘’‚…’‘’‚…. 2. å‘‹ˆ ‚€˜€ ‘ˆ‘’…Œ€ ˆŒ……’ €‘˜ˆ…›‰ € ‘ˆŒ‚‹‚, Œ†…’ ›’œ ˆ‘‹œ‡‚€ ‘ ŒˆˆŒ€‹œ›Œˆ ƒ€ˆ—…ˆŸŒˆ, Š€Š ’ ˆ‘€ ‚›˜… ˆ ‘“†„…ˆˆ \.{@l}. í ‚€Œ ‘‹…„“…’ ˆ„…†ˆ‚€’œ‘Ÿ ‘’€„€’›• ‘ˆŒ‚‹‚ ASCII, …‘‹ˆ ‚› •’ˆ’… ˆ‘€’œ ƒ€ŒŒ›, Š’›… Š€†“’‘Ÿ ‹…‡›Œˆ ˆ ’…Œ, ŠŒ“ ’€Š… €‘˜ˆ…ˆ… …„‘’“. 3. 䊓Œ…’ \TEX/, ˆ‡‚…„…›‰ \.{CWEAVE}, €‡ˆ‚€…’‘Ÿ € ‘’Šˆ ‘ Œ€Š‘ˆŒ€‹œ‰ „‹ˆ‰ 80 ‘ˆŒ‚‹‚. ꃄ€ ’…Š‘’ \TEX/ Šˆ“…’‘Ÿ, ‚‘ˆ‡‚„Ÿ’‘Ÿ ˆ ‘“™…‘’‚“™ˆ… €‡›‚› ‘’Š. å‘‹ˆ ‚› … „…‹€…’… ˆ—…ƒ ‘‹ˆ˜ŠŒ •ˆ’ƒ, \.{CWEAVE} €‘‡€…’, Šƒ„€ ŠŒŒ…’€ˆ‰ \TEX/'€ €‡ˆ‚€…’‘Ÿ € …‘Š‹œŠ ‘’Š, ˆ „€‚ˆ’ `\.\%' ‚ €—€‹ Š€†„‰ ’€Š‰ ‘’Šˆ. 4. \CEE/-’…Š‘’ ’€‘‹ˆ“…’‘Ÿ ``‚‘•„Ÿ™…‰'' (``bottom up'') –…„“‰, Š’€Ÿ €‘‡€…’ Š€†„“ ‹…Š‘…Œ“ Š€Š ``—€‘’œ …—ˆ'' (``part of speech'') ˆ ŠŒˆˆ“…’ ’ˆ —€‘’ˆ ‚ ‚‘… \'‹œ˜ˆ… ˆ \'‹œ˜ˆ… ”€‡›, Š€ ’ ‚‡Œ†, ‘ƒ‹€‘ ‘…–ˆ€‹œ‰ ƒ€ŒŒ€’ˆŠ…, ˆ‘€‰ ‚ „Š“Œ…’€–ˆˆ Š~\.{CWEAVE}. ë…ƒŠ Ÿ’œ ‘•…Œ“, ˆŒ…Ÿ…Œ“ Š ‘’›Œ Š‘’“Š–ˆŸŒ, ’€ŠˆŒ Š€Š ’„…‹œ›… ˆ„…’ˆ”ˆŠ€’› ˆ Š’Šˆ… ‚›€†…ˆŸ, ‘’ ˆ‡“—ˆ‚ …‘Š‹œŠ ˆŒ…Œ ‚›‚„€ \.{CWEAVE}, ™ˆ‰ Œ…•€ˆ‡Œ …‘Š‹œŠ ‘‹†……, ‘Š‹œŠ“ „‹†… €€’›‚€’œ …—’ ‹œ˜……, —…Œ ‘’ \CEE/. Œ ’ƒ, ‚›‚„ ‘„…†ˆ’ ŠŒ€„›, Š’›… ‡€‘’€‚‹Ÿ’ \TEX/ „…‹€’œ ’‘’“› ˆ €‡›‚› ‘’Š ƒ„… …•„ˆŒ, ‘’‚…’‘’‚… ˆ‘‹œ‡‚€›Œ ˜ˆ”’€Œ ˆ €‡Œ…“ ‘’€ˆ–›. ä‹Ÿ „‘’ˆ†…ˆŸ €ˆ‹“—˜ˆ• …‡“‹œ’€’‚ ‹€ƒ€‡“Œ ˆ‡…ƒ€’œ ‡€Š‹—…ˆŸ „‹ˆ›• \CEE/-’…Š‘’‚ ‚ \pb, ‘Š‹œŠ“ ’‘’“› ˆ Œ€Š…› Š–€ ‘’Šˆ ˆƒˆ“’‘Ÿ, Šƒ„€ ‘„…†ˆŒ… \pb\ ’€‘‹ˆ“…’‘Ÿ ‘ \CEE/ ‚ \TEX/. ñ’…Œˆ’…‘œ Š ‘’’… ‚›€†…ˆ‰ ˆ …€’‚. å‘‹ˆ „ˆ…Š’ˆ‚€ …–…‘‘€ ‡€Š‹—…€ ‚ \pb, ’ €—ˆ€™ˆ‰ …… \.\# „‹†… €‘‹€ƒ€’œ‘Ÿ ‚ €—€‹… ‘’Šˆ, ˆ€—… \.{CWEAVE} … €…—€’€…’ …… €‚ˆ‹œ. 5. ꌌ…’€ˆˆ ‚ \pb-’…Š‘’… …„“‘’ˆŒ›. ï‘‹… `\.|', “Š€‡›‚€™…ƒ € ……•„ ’ ’…Š‘’€ \TEX/ Š \CEE/, ‘‹…„“™ˆ‰ `\.|', Š’›‰ … Ÿ‚‹Ÿ…’‘Ÿ —€‘’œ ‘’Šˆ, “€‚‹Ÿ™…ƒ ’…Š‘’€ ‹ˆ ˆŒ…ˆ ‘…Š–ˆˆ, ‡€‚…˜€…’ \CEE/-’…Š‘’. 6. ꌌ…’€ˆ‰ „‹†… ˆŒ…’œ €‚ˆ‹œ… ‚‹†…ˆ… ”ˆƒ“›• ‘ŠŠ, ‚ ’ˆ‚Œ ‘‹“—€… \.{CWEAVE} ‚›€‡ˆ’ ‘‚… …„‚‹œ‘’‚, ˆ ’Œ ‘„…‹€…’ ›’Š“ ‚‘‘’€‚ˆ’œ €‹€‘ ‘ŠŠ, ’€Š —’ \TEX/'“ … ˆ„…’‘Ÿ ‘‹ˆ˜ŠŒ ’“„. 7. å‘‹ˆ ‚ ‚…ŒŸ ’‹€„Šˆ ƒ€ŒŒ› ‚‡ˆŠ€…’ …•„ˆŒ‘’œ “‘’ˆ’œ …Š’“ —€‘’œ \CEE/-Š„€, íå ‘‹…„“…’ ›’€’œ‘Ÿ ‘’ …ƒ ``‡€ŠŒŒ…’ˆ‚€’œ''. ò€Šˆ… ŠŒŒ…’€ˆˆ … ‚ „“•… \.{CWEB}; —ˆ’€’…‹ŸŒ ˆ Š€†“’‘Ÿ Ÿ‘…ˆŸŒˆ Š ‘’€‹œ›Œ ˆ‘’“Š–ˆŸŒ. ꌅ ’ƒ, ŠŒŒ…’€ˆˆ „‹†› ›’œ Š…Š’› ‘ ’—Šˆ ‡…ˆŸ \TEX/'€; ‘‹…„‚€’…‹œ, \.{CWEAVE} “„…’ ‚ ‡€’“„…ˆˆ, …‘‹ˆ ‚› ‡€Š‹—ˆ’… …„‹†…ˆŸ \CEE/ ‚ \.{/*...*/} ‚Œ…‘’ \.{/*|...|*/}. å‘‹ˆ —€‘’œ \CEE/-Š„€ „‹†€ ›’œ ``‡€ŠŒŒ…’ˆ‚€€'', ‚› Œ†…’… ƒ€ˆ—ˆ’œ …… „ˆ…Š’ˆ‚€Œˆ …–…‘‘€, „›Œˆ \.{\#if 0==1} ˆ \.{\#endif}. 8. ïˆ Œ™ˆ \.{@f} ‚‡Œ† …„…‹ˆ’œ „ˆ ˆ„…’ˆ”ˆŠ€’ ’€Š, —’› ‚…‹ ‘…Ÿ „ „“ƒŒ“, ˆ ’ˆ …„…‹…ˆŸ ”Œ€’€ ˆŒ…Ÿ’‘Ÿ ‘‹…„‚€’…‹œ. â™… ƒ‚Ÿ, „€›‰ ˆ„…’ˆ”ˆŠ€’ ˆŒ……’ …„ˆ‘’‚…›‰ ”Œ€’ ‚›‚„€ € ’Ÿ†…ˆˆ ‚‘…ƒ „Š“Œ…’€, ˆ ’’ ”Œ€’ ˆ‘‹œ‡“…’‘Ÿ „€†… „ ’ƒ, Š€Š “„…’ …„…‹… ‘…„‘’‚Œ \.{@f}. ı’ ®Ÿ‘Ÿ…’‘Ÿ ’…Œ, —’ \.{CWEAVE} €’€…’ ‚ „‚€ •„€; € …‚Œ •„… €€’›‚€’‘Ÿ „ˆ…Š’ˆ‚› \.{@f} ˆ ……Š…‘’›… ‘‘›‹Šˆ, € € ‚’Œ ˆ‡‚„ˆ’‘Ÿ ‚›‚„. (ò…Œ … Œ………, ˆ„…’ˆ”ˆŠ€’›, ‚‚…„…›… \.{typedef}, Š’›Œ …Ÿ‚ ˆ‘‚€ˆ‚€…’‘Ÿ ”Œ€’ ‚›‚„€ †ˆ›Œ ˜ˆ”’Œ, … ‘‹…„“’ ’Œ“ €‚ˆ‹“: ˆ ‚›‚„Ÿ’‘Ÿ -€‡Œ“ „ ˆ ‘‹… ‘’‚…’‘’‚“™…ƒ \.{typedef}. ı’ €‡—€‚›‚€…’, —’-‹ˆ ˆ‘€‚ˆ’œ ‡€’“„ˆ’…‹œ. â› Œ†…’… ‰’ˆ ’ ƒ€ˆ—…ˆ…, ˆ‘‹œ‡“Ÿ \.{@s}, „ ‹ˆ ‘‹… \.{typedef}.) 9. 胄€ †…‹€’…‹œ ‚‘’€‚ˆ’œ ‚ ’”Œ€’ˆ‚€›‰ \CEE/-Š„ …‹, ’‹ˆ—›‰ ’ …„‘’€‚‹Ÿ…Œƒ `\.{@,}'. ä‹Ÿ ’ƒ Œ† ‚‘‹œ‡‚€’œ‘Ÿ \.{@t}; €ˆŒ…, `\.{@t\\hskip 1in@>}' „€…’ …‹ „‹ˆ‰ 1~„‰Œ. ꌅ ’ƒ, `\.{@t\\4@>}' Œ†…’ ˆ‘‹œ‡‚€’œ‘Ÿ „‹Ÿ ‚‡‚€’€ € „“ …„ˆˆ–“ ’‘’“€, ‘Š‹œŠ“ “€‚‹Ÿ™€Ÿ ‘‹…„‚€’…‹œ‘’œ \.{\\4} …„…‹…€ ‚ \.{cwebmac} ’€Š, —’› „…‹€’œ ’€Š‰ ‚‡‚€’. (î€ ˆ‘‹œ‡“…’‘Ÿ, Š ˆŒ…“, ‚ €—€‹… ‘’Š, Š’›… ‘„…†€’ Œ…—…›… …€’›, ’€Š —’ Œ…’Š€ “„…’ …Œƒ ‘Œ…™…€ ‚‹…‚.) â› ’€Š†… Œ†…’… ˆ‘‹œ‡‚€’œ `\.{@t\}\\3\{-5@>}' „‹Ÿ ˆ“„ˆ’…‹œƒ €‡›‚€ ‘’Šˆ ‘…„ˆ ‚›€†…ˆŸ. 10. ꀆ„›‰ ˆ„…’ˆ”ˆŠ€’ ‚ \.{CWEB} ˆŒ……’ „ˆ ‘’ˆ‹œ ”Œ€’ˆ‚€ˆŸ. ï’Œ“ ‚› … „‹†› ˆ‘‹œ‡‚€’œ „ ˆ ’ †… ˆŒŸ „‹Ÿ „‚…Œ…ƒ ‡€—…ˆŸ, €ˆŒ…, ˆŒ…ˆ ’ˆ€ ˆ ‹Ÿ \.{struct}, …‘Œ’Ÿ € ’, —’ \CEE/ ‡‚‹Ÿ…’ ’. \section 瀓‘Š ƒ€ŒŒ. ꌀ„€Ÿ ‘’Š€ \UNIX/ Š€Š „‹Ÿ \.{CTANGLE}, ’€Š ˆ „‹Ÿ \.{CWEAVE} ˆŒ……’ ‚ˆ„ $$\.{ctangle [options] web\_file[.w] [\{change\_file[.ch]|-\} [out\_file]]}$$ å‘‹ˆ ”€‰‹ ˆ‡Œ……ˆ‰ “™… ‹ˆ ‡€„€ `\.-', ‹€ƒ€…’‘Ÿ “‘’›Œ. ğ€‘˜ˆ…ˆŸ \.{.w} ˆ \.{.ch} „€‚‹Ÿ’‘Ÿ ’‹œŠ ‚ ’Œ ‘‹“—€…, …‘‹ˆ ‡€„€›… ˆŒ…€ ”€‰‹‚ … ‘„…†€’ ’—…Š. å‘‹ˆ ”€‰‹ ‘ ’€ŠˆŒ ˆŒ……Œ … €‰„…, “„…’ ˆ‘‚€ €‘˜ˆ…ˆ… \.{.web}. 퀈Œ…, `\.{cweave} \.{cob}' ›’€…’‘Ÿ —ˆ’€’œ \.{cob.w}; …‘‹ˆ ’ … “„€…’‘Ÿ, “„…’ ˆ‘‚€ \.{cob.web} ……„ €‚€ˆ‰›Œ ‡€‚…˜…ˆ…Œ €’›. å‘‹ˆ ˆŒŸ ‚›•„ƒ ”€‰‹€ … ‡€„€, ˆŒŸ \CEE/-”€‰‹€, ƒ……ˆ“…Œƒ \.{CTANGLE}, ‹“—€…’‘Ÿ „€‚‹…ˆ…Œ €‘˜ˆ…ˆŸ \.{.c}; ˆŒŸ \TEX/-”€‰‹€, ˆ‡‚…„…ƒ \.{CWEAVE}, ‹“—ˆ’ €‘˜ˆ…ˆ… \.{.tex}. â ˆ„…Š‘›• ”€‰‹€•, †„€…Œ›• \.{CWEAVE}, \.{.tex} ‡€Œ…Ÿ…’‘Ÿ \.{.idx} ˆ \.{.scn}. …†…–› ‹€Šˆ—‘’ˆ Œƒ“’ ’€Š €‘’ˆ’œ ‘‚‰ ŠŒ€„›‰ ˆ’……’€’, —’ `\.{wv}' “„…’ ‡€—€’œ `\.{cweave -bhp}'; ’ „€‚‹Ÿ…’ ‚…‘œ ‚›‚„ \.{CWEAVE} € ’…Œˆ€‹, ‡€ ˆ‘Š‹—…ˆ…Œ ‘™…ˆ‰ ˜ˆŠ€•. Œ…’›-–ˆˆ €—ˆ€’‘Ÿ ‹ˆ ‘ˆŒ‚‹Œ `\.-', ‡€…™€™ˆŒ „…‰‘’‚ˆ… –ˆˆ, ‹ˆ `\.+', Š’›‰ …ƒ €‡…˜€…’. 퀈Œ…, `\.{-fb}' ‡€…™€…’ –ˆˆ \.f ˆ \.b; `\.{+s}' €‡…˜€…’ –ˆ \.s. î–ˆˆ Œƒ“’ ‡€„€‚€’œ‘Ÿ ……„ ˆŒ…€Œˆ ”€‰‹‚, ‘‹… ˆ•, ‹ˆ ˆ ’, ˆ „“ƒ…. â €‘’Ÿ™ˆ‰ ŒŒ…’ „„…†ˆ‚€’‘Ÿ ‘‹…„“™ˆ… –ˆˆ: \yskip \def\option#1 {\textindent{\.#1}\hangindent2\parindent} \option b ⛂„ˆ’œ ‘™…ˆ… ˆ ‘’€’…. (ğ€‡…˜… “Œ‹—€ˆ.) \option f †„€…’ ‡€‚…˜€’œ Š€†„›‰ …€’ \CEE/, ’”Œ€’ˆ‚€›‰ \.{CWEAVE}, Œ€Š…Œ Š–€ ‘’Šˆ. (ğ€‡…˜… “Œ‹—€ˆ; \.{-f} ŠŒˆ’ “Œ€ƒ“, Œƒˆ… ‹€ƒ€’, —’ ’€Š‰ ‘’ˆ‹œ ”Œ€’ˆ‚€ˆŸ ƒ€ŒŒ› ‚›ƒ‹Ÿ„ˆ’ ‚ \CEE/ "……‘’…‘’‚…".) (í… ‚‹ˆŸ…’ € \.{CTANGLE}.) \option h ⛂„ ‘™…ˆŸ Œ€‹œŒ ‡€‚…˜…ˆˆ ƒ€ŒŒ›. (ğ€‡…˜… “Œ‹—€ˆ.) \option p î’€†€’œ ‚ ‚…ŒŸ €’› ƒ€ŒŒ› ‘™…ˆŸ …… ƒ…‘‘…. (ğ€‡…˜… “Œ‹—€ˆ.) \option s ⛄€…’ ‘’€’ˆ‘’ˆŠ“ ˆ‘‹œ‡‚€ˆŸ €ŒŸ’ˆ Š—€ˆˆ €’› ƒ€ŒŒ›. (瀅™… “Œ‹—€ˆ.) å‘‹ˆ ‚€˜ˆ \.{CWEB}-”€‰‹› ‹ˆ ‘…Š–ˆˆ ‚…‹ˆŠˆ, Œ†…’ Š€‡€’œ‘Ÿ ‹…‡›Œ “‚ˆ„…’œ, €‘Š‹œŠ ‚› ‹ˆ‡Šˆ Š ˆ‘—…€ˆ …‘“‘‚ \.{CTANGLE} ˆ/ˆ‹ˆ \.{CWEAVE}. \option x ⊋—€’œ ˆ„…Š‘ ˆ ƒ‹€‚‹…ˆ… ‚ \TEX/-”€‰‹, ‚›‚„ˆŒ›‰ \.{CWEAVE}. (ğ€‡…˜… “Œ‹—€ˆ.) (í… ‚‹ˆŸ…’ € \.{CTANGLE}.) \section 䋈’…‹œ›… ‘‚…„…ˆŸ ”Œ€’ˆ‚€ˆˆ. ‌ Œ†…’ … €‚ˆ’œ‘Ÿ, Š€Š \.{CWEAVE} €€’›‚€…’ …Š’›… ‘ˆ’“€–ˆˆ. å‘‹ˆ “ ‚€‘ …’ „“ƒƒ ‚›•„€, ‚› Œ†…’… €‘’ˆ’œ \.{CWEAVE} ˆ‡Œ…ŸŸ …ƒ ƒ€ŒŒ€’ˆŠ“. ı’ ’…“…’ Œ„ˆ”ˆŠ€–ˆˆ ˆ‘•„›• ’…Š‘’‚, €’›, Š’€Ÿ Œ†…’ Š€‡€’œ‘Ÿ ‡€ˆŒ€’…‹œ‰. ò€‹ˆ–€ ƒ€ŒŒ€’ˆ—…‘Šˆ• €‚ˆ‹ ‘„…†ˆ’‘Ÿ ‚ ˆ‘•„›• ’…Š‘’€• \.{CWEAVE}, ˆ ‚› Œ†…’… ‘„…‹€’œ ’„…‹œ“ Šˆ ’‰ ’€‹ˆ–›, ‘Šˆ‚€‚ ”€‰‹~\.{prod.w}, €‰„…›‰ ‚ ˆ‘•„›• ’…Š‘’€• \.{CWEB} ˆ ‘ŠŒ€„‚€‚ `\.{cweave}~\.{-x}~\.{prod}' ˆ `\.{tex}~\.{prod}'. â› Œ†…’… ’— “‡€’œ, Š€Š \.{CWEAVE} €‡ˆ€…’ ‚€˜ \CEE/-Š„, …‘‹ˆ Œ…‘’ˆ’… ……„ ˆŒ ‘’Š“ `\.{@ @c @2}'. (󀂋Ÿ™ˆ‰ Š„ `\.{@2}' €Š’ˆ‚ˆ‡ˆ“…’ ``‘‹…„Ÿ™ˆ‰'' (``peeping'') …†ˆŒ €’›, € `\.{@0}' ’Œ…Ÿ…’ …ƒ.) 퀈Œ…, …‘‹ˆ “‘’ˆ’œ —……‡ \.{CWEAVE} ”€‰‹ \medskip \begingroup \verbatim @ @c @2 main (argc,argv) char **argv; { for (;argc>0;argc--) printf("%s\n",argv[argc-1]); } !endgroup \endgroup \medskip\noindent € Š€ “„…’ ‚›‚…„…€ ‘‹…„“™€Ÿ ’€€€™ˆ€: \medskip \begingroup \verbatim [...] 4:*exp ( +exp+ )... 11:*exp +exp+ int... 5:*+exp+ int +unorbinop+... [...] 60: +fn_decl+*+{+ -stmt- +}- 55:*+fn_decl+ -stmt- 52:*+function- [...] !endgroup \endgroup \medskip ï…‚€Ÿ ‘’Š€ “Š€‡›‚€…’, —’ ›‹ ˆŒ…… €‚ˆ‹ Œ… 4, ˆ \.{CWEAVE} ‚ €‘’Ÿ™ˆ‰ ŒŒ…’ ‘„…†ˆ’ ‚ ‘‚…‰ €ŒŸ’ˆ ‘‹…„‚€’…‹œ‘’œ ”€ƒŒ…’‚ (chunk) ’…Š‘’€ ‚ ”Œ€’… \TEX/ (€‡›‚€…Œ›• ``‚›…‡Š€Œˆ'', ``scraps''), ˆŒ…™ˆ• ‘’‚…’‘’‚… ’ˆ \\{exp} („‹Ÿ ‚›€†…ˆ‰), ’Š›‚€™€Ÿ ‘ŠŠ€, ‘‚€ \\{exp}, ‡€Š›‚€™€Ÿ ‘ŠŠ€, ˆ ‘‹…„“™ˆ… ‚›…‡Šˆ, Š’›… … ›‹ˆ …™… ‘—ˆ’€› ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’Œ. (瀊ˆ \.+ ˆ \.- “Š€‡›‚€’, —’ \TEX/ „‹†… ‚‰’ˆ ‚ Œ€’…Œ€’ˆ—…‘Š“ Œ„“ ‹ˆ ‚›‰’ˆ ˆ‡ …… € ƒ€ˆ–… ‚›…‡Šˆ. ñˆŒ‚‹ \.* ’Œ…—€…’ ’…Š“™“ ‡ˆ–ˆ €€‹ˆ‡€’€.) 䀋…… ˆŒ…Ÿ…’‘Ÿ €‚ˆ‹ 11, ˆ ‘‹…„‚€’…‹œ‘’œ $(\,exp\,)$ ‘‚…’›‚€…’‘Ÿ „ \\{exp} ˆ ’€Š „€‹……. â Š–… Š–‚ ‚…‘œ \CEE/-’…Š‘’ Š€‡›‚€…’‘Ÿ „‰ ‹œ˜‰ ‚›…‡Š‰ ’ˆ€ \\{function}. 胄€ ‚‘… ˆ„…’ … ’€Š ƒ‹€„Š, ˆ ‚› ‹“—€…’… ƒ““ ‘’Š, ‘‚€‹…›• ‚ „“ Š“—“. ı’ ‡€—ˆ’, —’ \.{CWEAVE} … ‘Œƒ ……‚€ˆ’œ —’-’ ‚ ‚€˜…Œ \CEE/-Š„…. 퀈Œ…, “‘’œ `\.{@}' ‡€‰Œ…’ Œ…‘’ `\.{char **argv;}' ‚ ƒ€ŒŒ…, “ŒŸ“’‰ ‚›˜…. â ’Œ ‘‹“—€… \.{CWEAVE} “„…’ ‘‹…ƒŠ€ ‡€„€—…, ‘Š‹œŠ“ ‘—ˆ’€…’, —’ ˆŒ…€ ‘…Š–ˆ‰ ‚‘…ƒ ‹ˆ˜œ ’‹œŠ \\{exp}. ï’Œ“ \TEX/'“ “„…’ …„ˆ‘€ ‚›‚…‘’ˆ `\X2:Argument declarations\X' ‚ ’‰ †… ‘€Œ‰ ‘’Š…, —’ ˆ `$\\{main}(\\{argc},\39\\{argv}{}$)'. â ’Œ ‘‹“—€… Œ† Œ—œ \.{CWEAVE}, Œ…™€Ÿ `\.{@/}' ‘‹… `\.{main(argc,argv)}'. \.{CWEAVE} €‚’Œ€’ˆ—…‘Šˆ ‚‘’€‚‹Ÿ…’ …‹œ˜‰ Œ…†“’Š Œ…†„“ ˆ‘€ˆŸŒˆ ˆ …‚›Œ …€’Œ ‹Š€. â’ „ˆ ‘‘ ‹Š€‹œ …ƒ ’Œ…ˆ’œ: $$\vbox{\halign{#\hfil\cr \.{int x;@+@t\}\\6\{@>}\cr \.{@@;@\#}\cr}}$$ `\.{@\#}' Œ…‘’ˆ’ „‹ˆ’…‹œ›‰ …‹ ‘‹… `$\langle\,$Other locals$\,\rangle$'. \section †…ˆŸ. ꀊ ˆŒ… …€‹œ‰ ƒ€ŒŒ›, €ˆ‘€‰ ‚ \.{CWEB}, †…ˆ…~A ‘„…†ˆ’ ”€ƒŒ…’› ƒ€ŒŒ, ‚•„Ÿ™ˆ• ‚ ‘‘’€‚ ‘€Œ‰ ‘ˆ‘’…Œ› \.{CWEB}. ò… ˆ‡ —ˆ’€’…‹…‰, Š’ ’™€’…‹œ ˆ‡“—€’ ‹ˆ‘’ˆƒˆ ‚ ’Œ ˆ‹†…ˆˆ, ‘Œƒ“’ ƒ‹“Š —“‚‘’‚‚€’œ ‘‚›… ˆ„…ˆ \.{CWEB}. †…ˆ…~B --- ’ ”€‰‹ …„…‹…ˆ‰, Š’›… €‘’€ˆ‚€’ \TEX/ € €’“ ‘ ‚›‚„Œ \.{CWEAVE}, € ‚ †…ˆˆ~C ‘“†„€…’‘Ÿ, Š€Š ˆ‘‹œ‡‚€’œ …Š’›… ˆ‡ ’ˆ• Œ€Š‘‚ „‹Ÿ ˆ‡Œ……ˆŸ ”Œ€’€ ‚›‚„€. ``ï‹€Ÿ'' ‚…‘ˆŸ ’ƒ “Š‚„‘’‚€, Š’€Ÿ Œ†…’ ›’œ ‘ƒ……ˆ‚€€ ˆ‡ ˆ‘•„›• ’…Š‘’‚ \.{CWEB} ŠŒ€„‰ \UNIX/ \.{make} \.{fullmanual}, ‘„…†ˆ’ ’€Š†… ˆ‹†…ˆŸ D, E, ˆ~F, …„‘’€‚‹Ÿ™ˆ… ‘‰ ‹›… ˆ‘•„›… ’…Š‘’› \.{CTANGLE} ˆ \.{CWEAVE}. \vfil\eject\titletrue \def\runninghead{†…ˆ… A --- ”Œ€’ ˆ‘•„ƒ ”€‰‹€ {\tentt CWEB}} \section †…ˆ…~A: ô€ƒŒ…’› ƒ€ŒŒ \.{CWEB}. ı’ ˆ‹†…ˆ… ‘„…†ˆ’ —…’›… ‹ˆ‘’ˆƒ€. ï…‚›‰ ‘„…†ˆ’ ‚•„›… „€›… „‹Ÿ \.{CWEB}, Š’›Œ ƒ……ˆ“’‘Ÿ ‘…Š–ˆˆ~12--15 ”€‰‹€~\.{common.w}, Š’›‰ ‘„…†ˆ’ „ƒ€ŒŒ›, ™ˆ… „‹Ÿ \.{CWEAVE} ˆ~\.{CTANGLE}. î’Œ…’ˆŒ, —’ …Š’›… ‘’Šˆ ‘„…†€’ ’‘’“›, „—…Šˆ‚€™ˆ… ‘’“Š’““ ƒ€ŒŒ›; ’‘’“› ’ˆ ˆƒˆ“’‘Ÿ Š€Š \.{CWEAVE}, ’€Š ˆ \.{CTANGLE}, ‹œ‡‚€’…‹ˆ €•„Ÿ’, —’ ”€‰‹› \.{CWEB} ƒ€‡„ ‹…ƒ—… ‚‘ˆˆŒ€’‘Ÿ, …‘‹ˆ ‚ ˆ• ˆŒ…’‘Ÿ ’€Šˆ… ’‘’“›. â’‰ ˆ ’…’ˆ‰ ‹ˆ‘’ˆƒˆ ‘„…†€’ ‘’‚…’‘’‚“™ˆ… ”€ƒŒ…’› \CEE/-Š„€, ‘ƒ……ˆ‚€ƒ \.{CTANGLE} ˆ ’…Š‘’€ ‚ ”Œ€’… \TEX/, ‹“—…ƒ \.{CWEAVE} ˆ €’Š… \.{common.w}. ÷…’‚…’›‰ ‹ˆ‘’ˆƒ „…Œ‘’ˆ“…’, Š€Š “„…’ ‚›ƒ‹Ÿ„…’œ ’’ ‚›•„‰ ”€‰‹ € “Œ€ƒ…. \vskip 6pt \begingroup \def\tt{\eighttt} \baselineskip9pt \verbatim @ Procedure |prime_the_change_buffer| sets |change_buffer| in preparation for the next matching operation. Since blank lines in the change file are not used for matching, we have |(change_limit==change_buffer && !!changing)| if and only if the change file is exhausted. This procedure is called only when |changing| is 1; hence error messages will be reported correctly. @c void prime_the_change_buffer() { change_limit=change_buffer; /* this value is used if the change file ends */ @; @; @; } @ While looking for a line that begins with \.{@@x} in the change file, we allow lines that begin with \.{@@}, as long as they don't begin with \.{@@y}, \.{@@z} or \.{@@i} (which would probably mean that the change file is fouled up). @= while(1) { change_line++; if (!!input_ln(change_file)) return; if (limit } } @ Here we are looking at lines following the \.{@@x}. @= do { change_line++; if (!!input_ln(change_file)) { err_print("!! Change file ended after @@x"); @.Change file ended...@> return; } } while (limit==buffer); @ @= { change_limit=change_buffer-buffer+limit; strncpy(change_buffer,buffer,limit-buffer+1); } !endgroup \endgroup \vfill\eject \def\runninghead{†…ˆ… A --- ‚›‚„ {\tentt CTANGLE}} ç„…‘œ ˆ‚…„…€ –ˆŸ \CEE/-Š„€, ‘ƒ……ˆ‚€ƒ \.{CTANGLE}, Š’›‰ ‘’‚…’‘’‚“…’ ˆ‘•„Œ“ ’…Š‘’“ € …„›„“™…‰ ‘’€ˆ–…. ˆ’… ‚ˆŒ€ˆ…, —’ ‘…Š–ˆˆ~13, 14 ˆ~15 ›‹ˆ "‚‹…’…›" ‚ ‘…Š–ˆ~12. \vskip6pt \begingroup \def\tt{\eighttt} \baselineskip9pt \verbatim /*:9*//*12:*/ #line 247 "common.w" void prime_the_change_buffer() { change_limit= change_buffer; /*13:*/ #line 261 "common.w" while(1){ change_line++; if(!!input_ln(change_file))return; if(limit}', €Œ Œ…˜€…’ ‘ˆŒ‚‹ `\.{\\}', ˆ ’’ ‹…Œ…’ ˆ„…Š‘€ … Ÿ‚ˆ’‘Ÿ ‚Œ…‘’… ‘ „“ƒˆŒˆ, €—ˆ€™ˆŒˆ‘Ÿ € T. ğ…˜…ˆ…Œ “„…’ ˆ‘‹œ‡‚€’œ Š‘’“Š–ˆ `\.{@:}', …„…‹ˆ‚ Œ€Š‘, Š’›‰ ‘’ “„€‹Ÿ…’ Š‹—: $$\.{\\def\\9\#1\{\}}$$ â› Œ†…’… ‡€„€’œ, Š ˆŒ…“, `\.{@:TeX\}\{\\TeX@>}' ‚ ‘‚…Œ \.{CWEB}-”€‰‹…; \.{CWEAVE} Œ…‘’ˆ’ ’ ‚ ˆ„…Š‘ ‚ €‹”€‚ˆ’Œ Ÿ„Š…, ‘’‚…’‘’‚… Š‹—“, ˆ ‘ƒ……ˆ“…’ Œ€Š‚›‡‚ `\.{\\9\{TeX\}\{\\TeX\}}', Š’›‰ ƒ€€’ˆ“…’, —’ Š‹— … “„…’ €…—€’€. à€‹ƒˆ— ‚ ˆŒ…€ ‘…Š–ˆ‰ Œ†…’ Œ…™€’œ‘Ÿ ‘Š›’›‰ Œ€’…ˆ€‹, ’€Š —’ ˆ Œƒ“’ ›’œ ‘’ˆ‚€› ‚ ‹Œ …•„ˆŒŒ Ÿ„Š…. í…Š’›… ‹„ˆ €‡›‚€’ „›… ’Šˆ ``special refinements''; „“ƒˆ… ‡‚“’ ˆ• ``kludges''. \point 12. ꌀ„Œ“ ‘‹‚“ \.{\\secno} ˆ‘‚€ˆ‚€…’‘Ÿ Œ… ’…Š“™…‰ €€’›‚€…Œ‰ ‘…Š–ˆˆ. \point 13. å‘‹ˆ ‚› •’ˆ’… ‚›‚…‘’ˆ € …—€’œ ’‹œŠ ‘…Š–ˆˆ, Š’›… ›‹ˆ ˆ‡Œ……› (‘ Œ™œ ”€‰‹€ Š…Š’ˆ‚) ˆ ƒ‹€‚‹…ˆ…, Œ…‘’ˆ’… ŠŒ€„“ `\.{\\let\\maybe=\\iffalse}' ‚ …€Œ“‹“, ……„ …‚‰ ‘…Š–ˆ…‰ ”€‰‹€ \.{CWEB}. î™…ˆŸ’‰ €Š’ˆŠ‰ Ÿ‚‹Ÿ…’‘Ÿ ‘„…‹€’œ …… …‚‰ Š…Š’ˆ‚‰. \point 14. ä‹Ÿ …—€’ˆ € „“ƒˆ• Ÿ‡›Š€• (… -€ƒ‹ˆ‰‘Šˆ), ………„…‹ˆ’… Œ€Š‘› \.{\\A}, \.{\\ET}, \.{\\Q}, \.{\\U}, \.{\\ch}, \.{\\fin}, \.{\\con}, \.{\\today}, \.{\\datethis}, ˆ \.{\\datecontentspage}. ñ‘’‚… \.{CWEAVE} ˆ‡Œ…Ÿ’œ … ’…“…’‘Ÿ. \point 15. ⛂„ ’„…‹œ›• —€‘’…‰ „Š“Œ…’€ Œ†…’ ›’œ ˆ‡ˆ€’…‹œ ‡€…™… ‘ Œ™œ \.{\\noatl}, \.{\\noinx}, \.{\\nosecs}, \.{\\nocon}. \point 16. â‘… „ˆ€Šˆ’ˆ—…‘Šˆ… ‡€Šˆ ˆ „“ƒˆ… ‘…–ˆ€‹œ›… ’…Š‘’‚›… ‘ˆŒ‚‹› ”Œ€’€ plain \TEX/ “„“’ €’€’œ ‚ „Š“Œ…’€• \.{CWEB} ‚ ’—‘’ˆ ’€Š, Š€Š ’ ˆ‘€ ‚ ƒ‹€‚…~9 {\sl The \TEX/book}, ‘ „ˆŒ ˆ‘Š‹—…ˆ…Œ. àŠ–…’ "’—Š€" (›— \.{\\.}) „‹†… ‚‚„ˆ’œ‘Ÿ Š€Š \.{\\:}. \point 17. "瀊ŒŒ…’ˆ‚€›…" ‘’Šˆ \.{cwebmac.tex} …„‹€ƒ€’ …Š’›… „‹ˆ’…‹œ›… ‚‡Œ†‘’ˆ, Š’›… Œƒ“’ ˆƒ„ˆ’œ‘Ÿ ‹œ‡‚€’…‹ŸŒ. 퀈Œ…, „€ ˆ‡ ˆ• ‚‘’€‚‹Ÿ…’ “‘’“ ‘’€ˆ–“, …‘‹ˆ “ ‚€‘ „“‹…Š‘›‰ ˆ’…. †…ˆŸ D, E, ˆ F ‚ ‹‰ ‚…‘ˆˆ ’ƒ “Š‚„‘’‚€ €…—€’€› ‘ ˆ‘‹œ‡‚€ˆ…Œ ‡€ŠŒŒ…’ˆ‚€‰ –ˆˆ, Š’€Ÿ ‡€Œ…Ÿ…’ `$\gets$' € `$=$' ‚ ‹ˆ‘’ˆƒ€• ƒ€ŒŒ. â› Œ†…’… ‘Œ’…’œ ’ˆ ˆ‹†…ˆŸ, —’› …˜ˆ’œ, Š€Š‰ ”Œ€’ ‚€Œ ‹œ˜… €‚ˆ’‘Ÿ. \vfill\end