% 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