This file is indexed.

/usr/share/doc/fweb/html-info/Tokens.html is in fweb-doc 1.62-13.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>FWEB: Tokens</title>

<meta name="description" content="FWEB: Tokens">
<meta name="keywords" content="FWEB: Tokens">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-index.html#Concept-index" rel="index" title="Concept index">
<link href="Parameter-index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="FWEB-macros.html#FWEB-macros" rel="up" title="FWEB macros">
<link href="Built_002din-functions.html#Built_002din-functions" rel="next" title="Built-in functions">
<link href="Macro-protection.html#Macro-protection" rel="prev" title="Macro protection">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="Tokens"></a>
<div class="header">
<p>
Next: <a href="Built_002din-functions.html#Built_002din-functions" accesskey="n" rel="next">Built-in functions</a>, Previous: <a href="Macro-features.html#Macro-features" accesskey="p" rel="prev">Macro features</a>, Up: <a href="FWEB-macros.html#FWEB-macros" accesskey="u" rel="up">FWEB macros</a> &nbsp; [<a href="Parameter-index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-index.html#Concept-index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>

<a name="Special-tokens"></a>
<h4 class="subsection">7.2.2 Special tokens</h4>

<a name="index-Macros_002c-special-tokens-for"></a>
<p>The following special tokens may be used in the text of <small>FWEB</small> macro
definitions:
</p>
<a name="ANSI-C_002dcompatible-tokens"></a>
<h4 class="subsubsection">7.2.2.1 ANSI C-compatible tokens</h4>

<div class="example">
<pre class="example"> ##          <span class="roman">&mdash; Paste tokens on either side to form a new identifier.</span>
 #<i>parameter</i>  <span class="roman">&mdash; Convert parameter to string (without expansion).</span>
</pre></div>

<p>For example,
</p>
<div class="example">
<pre class="example">@m FORTRAN(type, name) type _##name()
@m TRACE(where) puts(&quot;At &quot; #where)
@a
FORTRAN(int, fcalc); // <span class="roman">Expands to &lsquo;<samp>int _fcalc();</samp>&rsquo;</span>
TRACE(predictor); // <span class="roman">Expands to &lsquo;<samp>puts(&quot;At &quot; &quot;predictor&quot;);</samp>&rsquo;</span>
</pre></div>

<a name="Extensions-to-ANSI-C-macro-syntax"></a>
<h4 class="subsubsection">7.2.2.2 Extensions to ANSI C macro syntax</h4>

<p>The most frequently used extensions are the following ones associated
with variable arguments: &lsquo;<samp>#0</samp>&rsquo;, &lsquo;<samp>#<i>n</i></samp>&rsquo;, and &lsquo;<samp>#.</samp>&rsquo;.
<small>FORTRAN</small>-77 users should also employ &lsquo;<samp>#:0</samp>&rsquo; to allow symbolic
rather than numeric statement labels.  Try not to use the other
extensions; they are experimental, complicated, and unlikely to work in
all situations. 
</p>
<p>In the following list, the forms &lsquo;<samp>#{n}</samp>&rsquo; and &lsquo;<samp>#[n]</samp>&rsquo; may not
work correctly in complicated situations.  This is a design deficiency
that may be corrected someday.
</p>
<blockquote>
<dl compact="compact">
<dt><code>#*<i>param</i></code></dt>
<dd><p>Like &lsquo;<samp>#<i>parameter</i></samp>&rsquo;, but pass a quoted string through unchanged.
</p></dd>
<dt><code>#!<i>param</i></code></dt>
<dd><p>Don&rsquo;t expand argument.
</p></dd>
<dt><code>#'<i>param</i></code></dt>
<dd><p>Convert parameter to a single-quoted string (no expansion).
</p></dd>
<dt><code>#&quot;<i>param</i></code></dt>
<dd><p>Convert parameter to a double-quoted string (no expansion).
</p></dd>
<dt><code>#0</code></dt>
<dd><p>Number of variable arguments.
</p></dd>
<dt><code>#<i>n</i></code></dt>
<dd><p>n-th variable argument, counting from 1.
</p></dd>
<dt><code>#{0}</code></dt>
<dd><p>Like &lsquo;<samp>#0</samp>&rsquo;, but the argument may be a macro expression known at run time.
</p></dd>
<dt><code>#{<i>n</i>}</code></dt>
<dd><p>Like &lsquo;<samp>#<i>n</i></samp>&rsquo;, but the argument may be a macro expression.
</p></dd>
<dt><code>#[0]</code></dt>
<dd><p>The total number of arguments (fixed + variable).  (The
 argument inside the brackets may be a macro expression.)
</p></dd>
<dt><code>#[<i>n</i>]</code></dt>
<dd><p>The <i>n</i>th argument (including the fixed ones), counting
 from 1.  (The argument inside the brackets may be a macro expressions.
</p></dd>
<dt><code>#.</code></dt>
<dd><p>Comma-separated list of all variable arguments.
</p></dd>
<dt><code>#:0</code></dt>
<dd><p>Unique statement number (expanded in phase 1).
</p></dd>
<dt><code>#:<i>nnn</i></code></dt>
<dd><p>Unique statement number for each invocation of this macro (expanded in phase 2).
</p></dd>
<dt><code>#&lt;</code></dt>
<dd><p>Begin a module name.
</p></dd>
<dt><code>#,</code></dt>
<dd><p>Internal comma; doesn&rsquo;t delimit macro argument.
</p></dd>
</dl>
</blockquote>

<p>A few examples of the more important of these tokens are as follows:
</p>
<div class="example">
<pre class="example">@c
@m FPRINTF(fmt,...) fprintf(fp,fmt,#.) 
        // Use the whole list of variable args.
@m B(...) printf(&quot;There were %i arguments\n&quot;, #0) 
        // Use the number of var args.

@n
@
@m DONE #:0 // Symbolic statement label in FORTRAN.
@a
        goto DONE
        ...
DONE:
        call endup
</pre></div>

<hr>
<div class="header">
<p>
Next: <a href="Built_002din-functions.html#Built_002din-functions" accesskey="n" rel="next">Built-in functions</a>, Previous: <a href="Macro-features.html#Macro-features" accesskey="p" rel="prev">Macro features</a>, Up: <a href="FWEB-macros.html#FWEB-macros" accesskey="u" rel="up">FWEB macros</a> &nbsp; [<a href="Parameter-index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-index.html#Concept-index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>