inweb-bootstrap/docs/inweb/1-bsc.html
2019-03-17 12:53:52 +00:00

103 lines
9 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>P/awwp</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body>
<!--Weave of '1/bsc' generated by 7-->
<ul class="crumbs"><li><a href="../webs.html">&#9733;</a></li><li><a href="index.html">inweb 7</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Basics</b></li></ul><p class="purpose">Some fundamental definitions, mostly setting up for the Foundation module to manage memory for us.</p>
<ul class="toc"><li><a href="#SP1">&#167;1. Build identity</a></li><li><a href="#SP2">&#167;2. Setting up the memory manager</a></li></ul><hr class="tocbar">
<p class="inwebparagraph"><a id="SP1"></a><b>&#167;1. Build identity. </b>First we define the build, using a notation which tangles out to the current
build number as specified in the contents section of this web.
</p>
<pre class="definitions">
<span class="definitionkeyword">define</span> <span class="constant">INTOOL_NAME</span><span class="plain"> </span><span class="string">"inweb"</span>
<span class="definitionkeyword">define</span> <span class="constant">INWEB_BUILD</span><span class="plain"> </span><span class="string">"[[Version Number]]"</span>
</pre>
<p class="inwebparagraph"><a id="SP2"></a><b>&#167;2. Setting up the memory manager. </b>We need to itemise the structures we'll want to allocate. To explicate this
see Foundation, but these are all struct names with either <code class="display"><span class="extract">_MT</span></code> or, in one
case, <code class="display"><span class="extract">_array_MT</span></code> appended. MT stands for "memory type".
</p>
<pre class="definitions">
<span class="definitionkeyword">enum</span> <span class="constant">bibliographic_datum_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">c_structure_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">chapter_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">para_macro_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">enumeration_set_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">function_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">hash_table_entry_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">hash_table_entry_usage_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">macro_usage_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">module_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">module_search_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">nonterminal_variable_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">paragraph_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">paragraph_tagging_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">preform_nonterminal_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">programming_language_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">section_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">source_line_array_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">structure_element_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">tangle_target_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">tex_results_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">text_literal_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">theme_tag_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">weave_format_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">weave_pattern_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">weave_target_MT</span>
<span class="definitionkeyword">enum</span> <span class="constant">web_MT</span>
</pre>
<p class="inwebparagraph"><a id="SP3"></a><b>&#167;3. </b>And then expand the following macros, all defined in Foundation. This
makes all the necessary constructor functions for creating objects of these
types.
</p>
<pre class="display">
<span class="identifier">ALLOCATE_IN_ARRAYS</span><span class="plain">(</span><span class="reserved">source_line</span><span class="plain">, 1000)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">bibliographic_datum</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">c_structure</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">chapter</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">para_macro</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">enumeration_set</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">function</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">hash_table_entry_usage</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">hash_table_entry</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">macro_usage</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">module</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">module_search</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">nonterminal_variable</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">paragraph_tagging</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">preform_nonterminal</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">tex_results</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">section</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">structure_element</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">tangle_target</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">text_literal</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">theme_tag</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="reserved">(weave_format</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="reserved">(weave_pattern</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain">)</span>
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">web</span><span class="plain">)</span>
</pre>
<p class="inwebparagraph"></p>
<hr class="tocbar">
<ul class="toc"><li><i>(This section begins Chapter 1: Top Level.)</i></li><li><a href="1-pc.html">Continue with 'Program Control'</a></li></ul><hr class="tocbar">
<!--End of weave: 79 lines from a web of 21211-->
</body>
</html>