1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-08 18:14:21 +03:00
inform7/docs/inter-module/2-in.html
2019-09-07 20:43:31 +01:00

428 lines
85 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>2/bkm</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 '2/in' generated by 7-->
<ul class="crumbs"><li><a href="../webs.html">&#9733;</a></li><li><a href="index.html">inter</a></li><li><a href="index.html#2">Chapter 2: Interoperability</a></li><li><b>Inter Nodes</b></li></ul><p class="purpose">To create nodes of inter code, and manage everything about them except their tree locations.</p>
<ul class="toc"><li><a href="#SP1">&#167;1. Bytecode definition</a></li><li><a href="#SP2">&#167;2. Chunks</a></li><li><a href="#SP3">&#167;3. Frames</a></li></ul><hr class="tocbar">
<p class="inwebparagraph"><a id="SP1"></a><b>&#167;1. Bytecode definition. </b></p>
<pre class="definitions">
<span class="definitionkeyword">define</span> <span class="constant">inter_t</span><span class="plain"> </span><span class="reserved">unsigned</span><span class="plain"> </span><span class="reserved">int</span>
<span class="definitionkeyword">define</span> <span class="constant">signed_inter_t</span><span class="plain"> </span><span class="reserved">int</span>
</pre>
<pre class="display">
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree_node</span><span class="plain"> {</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">tree</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_package</span><span class="plain"> *</span><span class="identifier">package</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">parent_itn</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">first_child_itn</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">last_child_itn</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">previous_itn</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">next_itn</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">warehouse_floor_space</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">;</span>
<span class="plain">} </span><span class="reserved">inter_tree_node</span><span class="plain">;</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::new</span><span class="plain">(</span><span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">warehouse_floor_space</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">) {</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">itn</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain">);</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;tree</span><span class="plain"> = </span><span class="identifier">I</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;package</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;parent_itn</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;first_child_itn</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;last_child_itn</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;previous_itn</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;next_itn</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">itn</span><span class="plain">-</span><span class="element">&gt;W</span><span class="plain"> = </span><span class="identifier">W</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">itn</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Inter::Node::new is used in 2/tw (<a href="2-tw.html#SP3">&#167;3</a>).</p>
<p class="endnote">The structure inter_tree_node is accessed in 2/it, 2/bkm, 2/st, 2/pck, 2/sym, 2/trn, 3/dfn, 3/iibf, 3/iitf, 3/vi, 3/idt, 4/tmc, 4/tvc, 4/tpc, 4/tlc, 4/tac, 4/tpc2, 4/tpc3, 4/tkc, 4/tdc, 4/tvc2, 4/tcc2, 4/trc, 4/tic, 4/tpc4, 4/tpc5, 4/tpc6, 4/tpc7, 5/tlc, 5/tlc2, 5/tic, 5/trc, 5/tvc, 5/tlc3, 5/tcc, 5/tec, 5/trc2, 5/tcc2, 5/tsc and here.</p>
<p class="inwebparagraph"><a id="SP2"></a><b>&#167;2. Chunks. </b></p>
<pre class="definitions">
<span class="definitionkeyword">define</span> <span class="constant">IST_SIZE</span><span class="plain"> 100</span>
<span class="definitionkeyword">define</span> <span class="constant">SYMBOL_BASE_VAL</span><span class="plain"> 0</span><span class="identifier">x40000000</span>
<span class="definitionkeyword">define</span> <span class="constant">PREFRAME_SKIP_AMOUNT</span><span class="plain"> 0</span>
<span class="definitionkeyword">define</span> <span class="constant">PREFRAME_VERIFICATION_COUNT</span><span class="plain"> 1</span>
<span class="definitionkeyword">define</span> <span class="constant">PREFRAME_ORIGIN</span><span class="plain"> 2</span>
<span class="definitionkeyword">define</span> <span class="constant">PREFRAME_COMMENT</span><span class="plain"> 3</span>
<span class="definitionkeyword">define</span> <span class="constant">PREFRAME_SIZE</span><span class="plain"> 4</span>
</pre>
<p class="inwebparagraph"><a id="SP3"></a><b>&#167;3. Frames. </b></p>
<pre class="display">
<span class="constant">inter_t</span><span class="plain"> </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">at</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> 0;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;bytecode</span><span class="plain">[</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain"> + </span><span class="identifier">at</span><span class="plain">];</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">at</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">) </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;bytecode</span><span class="plain">[</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain"> + </span><span class="identifier">at</span><span class="plain">] = </span><span class="identifier">V</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_warehouse</span><span class="plain"> *</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;owning_warehouse</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_symbols_table</span><span class="plain"> *</span><span class="functiontext">Inter::Node::ID_to_symbols_table</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">ID</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Warehouse::get_symbols_table</span><span class="plain">(</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">), </span><span class="identifier">ID</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="functiontext">Inter::Node::ID_to_text</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">ID</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Warehouse::get_text</span><span class="plain">(</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">), </span><span class="identifier">ID</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_package</span><span class="plain"> *</span><span class="functiontext">Inter::Node::ID_to_package</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">ID</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ID</span><span class="plain"> == 0) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">; </span> <span class="comment">yes?</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Warehouse::get_package</span><span class="plain">(</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">), </span><span class="identifier">ID</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_node_list</span><span class="plain"> *</span><span class="functiontext">Inter::Node::ID_to_frame_list</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Warehouse::get_frame_list</span><span class="plain">(</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">), </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> *</span><span class="functiontext">Inter::Node::ID_to_ref</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Warehouse::get_ref</span><span class="plain">(</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">), </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_symbols_table</span><span class="plain"> *</span><span class="functiontext">Inter::Node::globals</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Tree::global_scope</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;tree</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Inter::Node::eq</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F1</span><span class="plain">, </span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F2</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">F1</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) || (</span><span class="identifier">F2</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F1</span><span class="plain"> == </span><span class="identifier">F2</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F1</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain"> != </span><span class="identifier">F2</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F1</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain"> != </span><span class="identifier">F2</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Inter::Node::get_metadata is used in <a href="#SP5">&#167;5</a>, <a href="#SP6">&#167;6</a>.</p>
<p class="endnote">The function Inter::Node::set_metadata is used in <a href="#SP5">&#167;5</a>, <a href="#SP6">&#167;6</a>, 2/tw (<a href="2-tw.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Inter::Node::warehouse is used in <a href="#SP6">&#167;6</a>.</p>
<p class="endnote">The function Inter::Node::ID_to_symbols_table is used in 4/tpc3 (<a href="4-tpc3.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::ID_to_text is used in 3/dfn (<a href="3-dfn.html#SP3">&#167;3</a>, <a href="3-dfn.html#SP4">&#167;4</a>), 3/idt (<a href="3-idt.html#SP3">&#167;3</a>), 4/tpc (<a href="4-tpc.html#SP2">&#167;2</a>), 4/tlc (<a href="4-tlc.html#SP2">&#167;2</a>), 4/tac (<a href="4-tac.html#SP2">&#167;2</a>), 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>), 5/tic (<a href="5-tic.html#SP2">&#167;2</a>), 5/tsc (<a href="5-tsc.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::ID_to_package is used in 4/tpc3 (<a href="4-tpc3.html#SP2">&#167;2</a>), 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::ID_to_frame_list is used in 4/tpc5 (<a href="4-tpc5.html#SP2">&#167;2</a>), 4/tpc6 (<a href="4-tpc6.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::ID_to_ref appears nowhere else.</p>
<p class="endnote">The function Inter::Node::globals is used in 2/st (<a href="2-st.html#SP7">&#167;7</a>, <a href="2-st.html#SP9">&#167;9</a>), 2/pck (<a href="2-pck.html#SP3">&#167;3</a>), 3/vi (<a href="3-vi.html#SP1">&#167;1</a>), 4/tpc3 (<a href="4-tpc3.html#SP2">&#167;2</a>), 4/tpc7 (<a href="4-tpc7.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::eq is used in 3/vi (<a href="3-vi.html#SP1">&#167;1</a>).</p>
<p class="inwebparagraph"><a id="SP4"></a><b>&#167;4. </b></p>
<pre class="display">
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::root_frame</span><span class="plain">(</span><span class="reserved">inter_warehouse</span><span class="plain"> *</span><span class="identifier">warehouse</span><span class="plain">, </span><span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">) {</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="identifier">warehouse</span><span class="plain">, </span><span class="identifier">I</span><span class="plain">, 2, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="constant">NOP_IST</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = 0;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_0</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 2, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_1</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 3, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_2</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 4, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_3</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V3</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 5, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 2] = </span><span class="identifier">V3</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_4</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V3</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V4</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 6, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 2] = </span><span class="identifier">V3</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 3] = </span><span class="identifier">V4</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_5</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V3</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V4</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V5</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 7, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 2] = </span><span class="identifier">V3</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 3] = </span><span class="identifier">V4</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 4] = </span><span class="identifier">V5</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_6</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V3</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V4</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V5</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V6</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 8, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 2] = </span><span class="identifier">V3</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 3] = </span><span class="identifier">V4</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 4] = </span><span class="identifier">V5</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 5] = </span><span class="identifier">V6</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_7</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V3</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V4</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V5</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V6</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V7</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 9, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 2] = </span><span class="identifier">V3</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 3] = </span><span class="identifier">V4</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 4] = </span><span class="identifier">V5</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 5] = </span><span class="identifier">V6</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 6] = </span><span class="identifier">V7</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="functiontext">Inter::Node::fill_8</span><span class="plain">(</span><span class="reserved">inter_bookmark</span><span class="plain"> *</span><span class="identifier">IBM</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V3</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V4</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V5</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V6</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V7</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">V8</span><span class="plain">, </span><span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
<span class="reserved">inter_tree</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain"> = </span><span class="functiontext">Inter::Bookmarks::tree</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">);</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room</span><span class="plain">(</span><span class="functiontext">Inter::Tree::warehouse</span><span class="plain">(</span><span class="identifier">I</span><span class="plain">), </span><span class="identifier">I</span><span class="plain">, 10, </span><span class="identifier">eloc</span><span class="plain">, </span><span class="functiontext">Inter::Bookmarks::package</span><span class="plain">(</span><span class="identifier">IBM</span><span class="plain">));</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] = (</span><span class="constant">inter_t</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">LEVEL_IFLD</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain">] = </span><span class="identifier">V1</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 1] = </span><span class="identifier">V2</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 2] = </span><span class="identifier">V3</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 3] = </span><span class="identifier">V4</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 4] = </span><span class="identifier">V5</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 5] = </span><span class="identifier">V6</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 6] = </span><span class="identifier">V7</span><span class="plain">;</span>
<span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">DATA_IFLD</span><span class="plain"> + 7] = </span><span class="identifier">V8</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Inter::Node::root_frame is used in 2/it (<a href="2-it.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_0 is used in 4/tnc (<a href="4-tnc.html#SP1">&#167;1</a>), 4/tcc (<a href="4-tcc.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Inter::Node::fill_1 is used in 2/trn (<a href="2-trn.html#SP3_1_1">&#167;3.1.1</a>), 4/tvc (<a href="4-tvc.html#SP2">&#167;2</a>), 4/tpc2 (<a href="4-tpc2.html#SP2">&#167;2</a>), 4/tpc7 (<a href="4-tpc7.html#SP2">&#167;2</a>), 5/tcc (<a href="5-tcc.html#SP2">&#167;2</a>), 5/tec (<a href="5-tec.html#SP2">&#167;2</a>), 5/trc2 (<a href="5-trc2.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_2 is used in 4/tpc (<a href="4-tpc.html#SP2">&#167;2</a>), 4/tac (<a href="4-tac.html#SP2">&#167;2</a>), 5/tlc (<a href="5-tlc.html#SP2">&#167;2</a>), 5/tlc3 (<a href="5-tlc3.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_3 is used in 4/tmc (<a href="4-tmc.html#SP2">&#167;2</a>), 4/tpc3 (<a href="4-tpc3.html#SP2">&#167;2</a>), 4/tdc (<a href="4-tdc.html#SP2">&#167;2</a>), 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>), 4/tpc4 (<a href="4-tpc4.html#SP2">&#167;2</a>), 5/tlc2 (<a href="5-tlc2.html#SP2">&#167;2</a>), 5/tic (<a href="5-tic.html#SP2">&#167;2</a>), 5/tcc2 (<a href="5-tcc2.html#SP2">&#167;2</a>), 5/tsc (<a href="5-tsc.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_4 is used in 4/tvc2 (<a href="4-tvc2.html#SP2">&#167;2</a>), 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>), 4/tpc5 (<a href="4-tpc5.html#SP2">&#167;2</a>), 4/tpc6 (<a href="4-tpc6.html#SP2">&#167;2</a>), 5/trc (<a href="5-trc.html#SP2">&#167;2</a>), 5/tvc (<a href="5-tvc.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_5 is used in 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>), 4/trc (<a href="4-trc.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_6 is used in 4/tlc (<a href="4-tlc.html#SP2">&#167;2</a>), 4/tic (<a href="4-tic.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::fill_7 appears nowhere else.</p>
<p class="endnote">The function Inter::Node::fill_8 is used in 4/tkc (<a href="4-tkc.html#SP2">&#167;2</a>).</p>
<p class="inwebparagraph"><a id="SP5"></a><b>&#167;5. </b></p>
<pre class="display">
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Inter::Node::extend</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">by</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">by</span><span class="plain"> == 0) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain"> + </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.extent</span><span class="plain"> + </span><span class="constant">PREFRAME_SIZE</span><span class="plain"> &lt; </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;size</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;next_room</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;size</span><span class="plain"> + (</span><span class="reserved">int</span><span class="plain">) </span><span class="identifier">by</span><span class="plain"> &lt;= </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;capacity</span><span class="plain">) {</span>
<span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_SKIP_AMOUNT</span><span class="plain">,</span>
<span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_SKIP_AMOUNT</span><span class="plain">) + </span><span class="identifier">by</span><span class="plain">);</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;size</span><span class="plain"> += </span><span class="identifier">by</span><span class="plain">;</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.extent</span><span class="plain"> += </span><span class="identifier">by</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">next_size</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::enlarge_size</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;capacity</span><span class="plain">, </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.extent</span><span class="plain"> + </span><span class="constant">PREFRAME_SIZE</span><span class="plain"> + (</span><span class="reserved">int</span><span class="plain">) </span><span class="identifier">by</span><span class="plain">);</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;next_room</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::new_room</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;owning_warehouse</span><span class="plain">,</span>
<span class="identifier">next_size</span><span class="plain">, </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">);</span>
<span class="reserved">warehouse_floor_space</span><span class="plain"> </span><span class="identifier">W</span><span class="plain"> = </span><span class="functiontext">Inter::Warehouse::find_room_in_room</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;next_room</span><span class="plain">, </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.extent</span><span class="plain"> + (</span><span class="reserved">int</span><span class="plain">) </span><span class="identifier">by</span><span class="plain">);</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;size</span><span class="plain"> = </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain">;</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;capacity</span><span class="plain"> = </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain">;</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> = </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_VERIFICATION_COUNT</span><span class="plain">);</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">b</span><span class="plain"> = </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_ORIGIN</span><span class="plain">);</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">c</span><span class="plain"> = </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_COMMENT</span><span class="plain">);</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain"> = </span><span class="identifier">W</span><span class="element">.index</span><span class="plain">;</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain"> = </span><span class="identifier">W</span><span class="element">.repo_segment</span><span class="plain">;</span>
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain">&lt;</span><span class="identifier">W</span><span class="element">.extent</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++)</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain"> &lt; </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.extent</span><span class="plain">)</span>
<span class="identifier">W</span><span class="element">.data</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">] = </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">];</span>
<span class="reserved">else</span>
<span class="identifier">W</span><span class="element">.data</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">] = 0;</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain"> = </span><span class="identifier">W</span><span class="element">.data</span><span class="plain">;</span>
<span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.extent</span><span class="plain"> = </span><span class="identifier">W</span><span class="element">.extent</span><span class="plain">;</span>
<span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_VERIFICATION_COUNT</span><span class="plain">, </span><span class="identifier">a</span><span class="plain">);</span>
<span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_ORIGIN</span><span class="plain">, </span><span class="identifier">b</span><span class="plain">);</span>
<span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_COMMENT</span><span class="plain">, </span><span class="identifier">c</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="functiontext">Inter::Node::vcount</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">v</span><span class="plain"> = </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_VERIFICATION_COUNT</span><span class="plain">);</span>
<span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_VERIFICATION_COUNT</span><span class="plain">, </span><span class="identifier">v</span><span class="plain"> + 1);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">v</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="functiontext">Inter::Node::to_index</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) || (</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain"> &lt; 0)) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no index for null frame"</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.repo_segment</span><span class="plain">-</span><span class="element">&gt;index_offset</span><span class="plain">) + (</span><span class="constant">inter_t</span><span class="plain">) (</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.index</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Inter::Node::extend is used in 2/trn (<a href="2-trn.html#SP3_1_1">&#167;3.1.1</a>), 4/tkc (<a href="4-tkc.html#SP2">&#167;2</a>), 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>), 4/tpc7 (<a href="4-tpc7.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::vcount is used in 4/tac (<a href="4-tac.html#SP2">&#167;2</a>), 4/tic (<a href="4-tic.html#SP2">&#167;2</a>), 4/tpc5 (<a href="4-tpc5.html#SP2">&#167;2</a>), 4/tpc6 (<a href="4-tpc6.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::to_index appears nowhere else.</p>
<p class="inwebparagraph"><a id="SP6"></a><b>&#167;6. </b></p>
<pre class="display">
<span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="functiontext">Inter::Node::retrieve_origin</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Warehouse::retrieve_origin</span><span class="plain">(</span><span class="functiontext">Inter::Node::warehouse</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">), </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_ORIGIN</span><span class="plain">));</span>
<span class="plain">}</span>
<span class="reserved">inter_error_message</span><span class="plain"> *</span><span class="functiontext">Inter::Node::error</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">err</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">quote</span><span class="plain">) {</span>
<span class="reserved">inter_error_message</span><span class="plain"> *</span><span class="identifier">iem</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">inter_error_message</span><span class="plain">);</span>
<span class="reserved">inter_error_location</span><span class="plain"> *</span><span class="identifier">eloc</span><span class="plain"> = </span><span class="functiontext">Inter::Node::retrieve_origin</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">eloc</span><span class="plain">)</span>
<span class="identifier">iem</span><span class="plain">-</span><span class="element">&gt;error_at</span><span class="plain"> = *</span><span class="identifier">eloc</span><span class="plain">;</span>
<span class="reserved">else</span>
<span class="identifier">iem</span><span class="plain">-</span><span class="element">&gt;error_at</span><span class="plain"> = </span><span class="functiontext">Inter::Errors::file_location</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">iem</span><span class="plain">-</span><span class="element">&gt;error_body</span><span class="plain"> = </span><span class="identifier">err</span><span class="plain">;</span>
<span class="identifier">iem</span><span class="plain">-</span><span class="element">&gt;error_quote</span><span class="plain"> = </span><span class="identifier">quote</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">iem</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="functiontext">Inter::Node::get_comment</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Inter::Node::get_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_COMMENT</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> 0;</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Inter::Node::attach_comment</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">inter_t</span><span class="plain"> </span><span class="identifier">ID</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">) </span><span class="functiontext">Inter::Node::set_metadata</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">PREFRAME_COMMENT</span><span class="plain">, </span><span class="identifier">ID</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_package</span><span class="plain"> *</span><span class="functiontext">Inter::Node::get_package</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;package</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="constant">inter_t</span><span class="plain"> </span><span class="functiontext">Inter::Node::get_package_alt</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">X</span><span class="plain">) {</span>
<span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain"> = </span><span class="identifier">X</span><span class="plain">;</span>
<span class="reserved">while</span><span class="plain"> (</span><span class="identifier">TRUE</span><span class="plain">) {</span>
<span class="identifier">F</span><span class="plain"> = </span><span class="functiontext">Inter::Tree::parent</span><span class="plain">(</span><span class="identifier">F</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">ID_IFLD</span><span class="plain">] == </span><span class="constant">PACKAGE_IST</span><span class="plain">)</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;W.data</span><span class="plain">[</span><span class="constant">PID_PACKAGE_IFLD</span><span class="plain">];</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> 0;</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Inter::Node::attach_package</span><span class="plain">(</span><span class="reserved">inter_tree_node</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">inter_package</span><span class="plain"> *</span><span class="identifier">pack</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain">) </span><span class="identifier">F</span><span class="plain">-</span><span class="element">&gt;package</span><span class="plain"> = </span><span class="identifier">pack</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Inter::Node::retrieve_origin appears nowhere else.</p>
<p class="endnote">The function Inter::Node::error is used in 3/dfn (<a href="3-dfn.html#SP4">&#167;4</a>), 3/vi (<a href="3-vi.html#SP1">&#167;1</a>), 3/idt (<a href="3-idt.html#SP2">&#167;2</a>), 4/tmc (<a href="4-tmc.html#SP2">&#167;2</a>), 4/tvc (<a href="4-tvc.html#SP2">&#167;2</a>), 4/tpc (<a href="4-tpc.html#SP2">&#167;2</a>), 4/tlc (<a href="4-tlc.html#SP2">&#167;2</a>), 4/tac (<a href="4-tac.html#SP2">&#167;2</a>), 4/tpc2 (<a href="4-tpc2.html#SP2">&#167;2</a>), 4/tpc3 (<a href="4-tpc3.html#SP2">&#167;2</a>), 4/tkc (<a href="4-tkc.html#SP2">&#167;2</a>), 4/tdc (<a href="4-tdc.html#SP2">&#167;2</a>), 4/tvc2 (<a href="4-tvc2.html#SP2">&#167;2</a>), 4/tcc2 (<a href="4-tcc2.html#SP2">&#167;2</a>), 4/trc (<a href="4-trc.html#SP2">&#167;2</a>), 4/tic (<a href="4-tic.html#SP2">&#167;2</a>), 4/tpc4 (<a href="4-tpc4.html#SP2">&#167;2</a>), 4/tpc5 (<a href="4-tpc5.html#SP2">&#167;2</a>), 4/tpc6 (<a href="4-tpc6.html#SP2">&#167;2</a>), 4/tpc7 (<a href="4-tpc7.html#SP2">&#167;2</a>), 5/tlc (<a href="5-tlc.html#SP2">&#167;2</a>), 5/tlc2 (<a href="5-tlc2.html#SP2">&#167;2</a>), 5/tic (<a href="5-tic.html#SP2">&#167;2</a>), 5/trc (<a href="5-trc.html#SP2">&#167;2</a>), 5/tvc (<a href="5-tvc.html#SP2">&#167;2</a>), 5/tlc3 (<a href="5-tlc3.html#SP2">&#167;2</a>), 5/tcc (<a href="5-tcc.html#SP2">&#167;2</a>), 5/tec (<a href="5-tec.html#SP2">&#167;2</a>), 5/trc2 (<a href="5-trc2.html#SP2">&#167;2</a>), 5/tcc2 (<a href="5-tcc2.html#SP2">&#167;2</a>), 5/tsc (<a href="5-tsc.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::get_comment is used in 3/dfn (<a href="3-dfn.html#SP4">&#167;4</a>), 3/iibf (<a href="3-iibf.html#SP2">&#167;2</a>), 4/tcc (<a href="4-tcc.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Inter::Node::attach_comment is used in 3/iibf (<a href="3-iibf.html#SP1_6">&#167;1.6</a>), 4/tcc (<a href="4-tcc.html#SP1">&#167;1</a>), 5/tlc2 (<a href="5-tlc2.html#SP2">&#167;2</a>), 5/tsc (<a href="5-tsc.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::get_package is used in 2/pck (<a href="2-pck.html#SP3">&#167;3</a>), 3/iibf (<a href="3-iibf.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Inter::Node::get_package_alt appears nowhere else.</p>
<p class="endnote">The function Inter::Node::attach_package is used in 2/tw (<a href="2-tw.html#SP3">&#167;3</a>).</p>
<hr class="tocbar">
<ul class="toc"><li><a href="2-bkm.html">Back to 'Bookmarks'</a></li><li><a href="2-tw.html">Continue with 'The Warehouse'</a></li></ul><hr class="tocbar">
<!--End of weave-->
</body>
</html>