File: output.hweb

package info (click to toggle)
fweb 1.60beta-11
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 4,348 kB
  • ctags: 5,018
  • sloc: ansic: 38,347; makefile: 393; sh: 163
file content (75 lines) | stat: -rw-r--r-- 3,434 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@z --- output.hweb ---

FWEB version 1.60-beta (January 1, 1997)

Based on version 0.5 of S. Levy's CWEB [copyright (C) 1987 Princeton University]

@x-----------------------------------------------------------------------------

@ The token lists for translated \TeX\ output contain some special control
symbols as well as ordinary characters. These control symbols are
interpreted by \.{WEAVE} before they are written to the output file.

\yskip\hang |break_space| denotes an optional line break or an en space;

\yskip\hang |force| denotes a line break;

\yskip\hang |big_force| denotes a line break with additional vertical space;

\yskip\hang |opt| denotes an optional line break (with the continuation
line indented two ems with respect to the normal starting position)---this
code is followed by an integer~|n|, and the break will occur with
penalty~$10n$; 

\yskip\hang |backup| denotes a backspace of one em;

\yskip\hang |cancel| obliterates any |break_space| or |force| or
|big_force| tokens that immediately precede or follow it and also cancels
any |backup| tokens that follow it;

\yskip\hang |indent| causes future lines to be indented one more em;

\yskip\hang |outdent| causes future lines to be indented one less em.

\yskip\noindent All of these tokens are removed from the \TeX\ output that
comes from \cee\ text between \Cb\ signs; |break_space| and |force| and
|big_force| become single spaces in this mode. The translation of other
\cee\ texts results in \TeX\ control sequences~\.{\\1}, \.{\\2}, \.{\\3},
\.{\\4}, \.{\\5}, \.{\\6}, and~\.{\\7} corresponding respectively to
|indent|, |outdent|, |opt|, |backup|, |break_space|, |force|, and
|big_force|. However, a sequence of consecutive~`\.\ ', |break_space|,
|force|, and/or |big_force| tokens is first replaced by a single token (the
maximum of the given ones).

The tokens |math_rel| and |math_bin| will be translated into
\.{\\mathrel\{} and \.{\\mathbin\{}, respectively.  Other control sequences
in the \TeX\ output will be `\.{\\\vertbar}', which prefaces single-letter
identifiers, `\.{\\\\\{}$\,\ldots\,$\.\}' surrounding
identifiers, `\.{\\\&\{}$\,\ldots\,$\.\}' surrounding reserved words,
`\.{\\\@@\{\dots\}}' surrounding names of intrinsic functions,
`\.{\\.\{}$\,\ldots\,$\.\}' surrounding strings,
`\.{\\WC\{}$\,\ldots\,$\.\}$\,$|force|' surrounding comments, and
`\.{\\WX$n$:}$\,\ldots\,$\.{\\X}\.{\ }$\ell$\.{\\X}' surrounding module
names, where |n|~is the module number and $\ell$~is the language symbol.

@d math_bin OCTAL(345)
@d math_rel OCTAL(346)

@d toggle_meta OCTAL(347)

/* --- Non-math tokens (see |big_app| in \.{prod.web}) --- */
@d big_cancel OCTAL(360) // Like |cancel|; also overrides spaces.
@d cancel OCTAL(361) // Override |backup|, |break_space|, |force|, |big_force|.

/* \bf The numerical order of the following must be preserved!! */
@d indent OCTAL(362) // One more tab (\.{\\1}).
@d outdent OCTAL(363) // One less tab (\.{\\2}).
@d opt OCTAL(364) // Optional break in mid-statement (\.{\\3}).
@d backup OCTAL(365) // Stick out one unit to the left (\.{\\4}).
@d break_space OCTAL(366) // Optional break between statements (\.{\\5}).
@d force OCTAL(367) // Forced break between statements (\.{\\6}).
@d big_force OCTAL(370) // Forced break with additional space (\.{\\7}).

@d out_force OCTAL(371) // Output biggest force command to this point.

@d end_translation OCTAL(377) // Special sentinel token at end of list.