<ulclass="crumbs"><li><ahref="../webs.html">★</a></li><li><ahref="index.html">inweb 7</a></li><li><ahref="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Paragraph Macros</b></li></ul><pclass="purpose">To manage the set of named paragraph macros in a section.</p>
<spanclass="reserved">struct</span><spanclass="plain"></span><spanclass="reserved">text_stream</span><spanclass="plain"> *</span><spanclass="identifier">macro_name</span><spanclass="plain">; </span><spanclass="comment">usually long, like "Create a paragraph macro here"</span>
<spanclass="reserved">struct</span><spanclass="plain"></span><spanclass="reserved">paragraph</span><spanclass="plain"> *</span><spanclass="identifier">defining_paragraph</span><spanclass="plain">; </span><spanclass="comment">as printed in small type after the name in any usage</span>
<spanclass="reserved">struct</span><spanclass="plain"></span><spanclass="reserved">source_line</span><spanclass="plain"> *</span><spanclass="identifier">defn_start</span><spanclass="plain">; </span><spanclass="comment">it ends at the end of its defining paragraph</span>
<spanclass="reserved">struct</span><spanclass="plain"></span><spanclass="reserved">linked_list</span><spanclass="plain"> *</span><spanclass="identifier">macro_usages</span><spanclass="plain">; </span><spanclass="comment">of <codeclass="display"><spanclass="extract">macro_usage</span></code>: only computed for weaves</span>
<pclass="endnote">The function Macros::create is used in 2/tp (<ahref="2-tp.html#SP1_1_6_4">§1.1.6.4</a>).</p>
<pclass="inwebparagraph"><aid="SP3"></a><b>§3. Paragraph macro search. </b>The scope for looking up paragraph macro names is a single section, not the
entire web. So you can't expand a macro from another section, but then again,
you can use the same macro name twice in different sections; and lookup is
<pclass="endnote">The function Macros::find_by_name is used in 2/pn (<ahref="2-pn.html#SP1_1">§1.1</a>), 3/tw (<ahref="3-tw.html#SP1_3_3_1_9_6">§1.3.3.1.9.6</a>), 3/tt (<ahref="3-tt.html#SP3_1">§3.1</a>).</p>