mirror of
https://github.com/ganelson/inform.git
synced 2024-07-17 06:24:24 +03:00
620 lines
127 KiB
HTML
620 lines
127 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>27/in</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 '27/pc' generated by 7-->
|
|
<ul class="crumbs"><li><a href="../webs.html">★</a></li><li><a href="index.html">core</a></li><li><a href="index.html#27">Chapter 27: Bridge to Inter Module</a></li><li><b>Packaging</b></li></ul><p class="inwebparagraph"><a id="SP1"></a><b>§1. Package types. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">plain_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">code_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">module_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">function_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">verb_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">mverb_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">to_phrase_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">rule_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">request_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">closure_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">response_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">adjective_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">adjective_meaning_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">instance_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">property_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">variable_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">kind_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">action_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">activity_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">rulebook_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">table_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">table_column_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">relation_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">test_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">outcome_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">data_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">external_file_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">label_storage_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Packaging::emit_types</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="identifier">plain_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_plain"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">plain_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">code_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_code"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">code_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">module_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_module"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">module_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">function_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_function"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">function_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">verb_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_verb"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">verb_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">mverb_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_mverb"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">mverb_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">to_phrase_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_phrase"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">to_phrase_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">rule_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_rule"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">rule_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">request_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_request"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">request_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">closure_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_closure"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">closure_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">response_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_response"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">response_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">adjective_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_adjective"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">adjective_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">adjective_meaning_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_adjective_meaning"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">adjective_meaning_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">instance_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_instance"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">instance_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">property_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_property"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">property_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">variable_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_variable"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">variable_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">kind_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_kind"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">kind_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">action_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_action"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">action_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">activity_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_activity"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">activity_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">rulebook_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_rulebook"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">rulebook_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">table_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_table"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">table_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">table_column_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_table_column"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">table_column_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">relation_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_relation"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">relation_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">test_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_test"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">test_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">outcome_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_outcome"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">outcome_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">data_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_data"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">data_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">external_file_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_external_file"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">external_file_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="identifier">label_storage_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_label_storage"</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">label_storage_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Packaging::emit_types is used in 27/ei (<a href="27-ei.html#SP3">§3</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
|
|
|
|
|
<pre class="definitions">
|
|
<span class="definitionkeyword">enum</span> <span class="constant">VERB_PR_COUNTER</span><span class="definitionkeyword"> from </span><span class="constant">0</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">MVERB_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">FUNCTION_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">FORM_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">BLOCK_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">TO_PHRASE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">RULE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">REQUEST_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">CLOSURE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">RESPONSE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">ADJECTIVE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">ADJECTIVE_MEANING_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">TASK_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">BLOCK_CONSTANT_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">LITERAL_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">PROPOSITION_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">INSTANCE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">INLINE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">PROPERTY_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">VARIABLE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">KIND_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">ACTION_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">ACTIVITY_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">RULEBOOK_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">TABLE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">TABLE_COLUMN_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">RELATION_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">SUBSTITUTION_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">SUBSTITUTIONF_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">MISC_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">DATA_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">OUTCOME_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">TEST_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">EXTERNAL_FILE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">LABEL_STORAGE_PR_COUNTER</span>
|
|
<span class="definitionkeyword">enum</span> <span class="constant">MAX_PR_COUNTER</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">package_request</span><span class="plain"> {</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">eventual_name</span><span class="plain">;</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">eventual_type</span><span class="plain">;</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">inter_package</span><span class="plain"> *</span><span class="identifier">actual_package</span><span class="plain">;</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">parent_request</span><span class="plain">;</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">inter_reading_state</span><span class="plain"> </span><span class="identifier">write_position</span><span class="plain">;</span>
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">counters</span><span class="plain">[</span><span class="constant">MAX_PR_COUNTER</span><span class="plain">];</span>
|
|
<span class="identifier">MEMORY_MANAGEMENT</span>
|
|
<span class="plain">} </span><span class="reserved">package_request</span><span class="plain">;</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The structure package_request is accessed in 26/iti, 27/ei and here.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">parent</span><span class="plain">, </span><span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">pt</span><span class="plain">) {</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain">);</span>
|
|
<span class="identifier">R</span><span class="plain">-</span><span class="element">>eventual_name</span><span class="plain"> = </span><span class="identifier">name</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">parent</span><span class="plain">) </span><span class="identifier">name</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain"> = </span><span class="identifier">parent</span><span class="plain">;</span>
|
|
<span class="identifier">R</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> = </span><span class="identifier">pt</span><span class="plain">;</span>
|
|
<span class="identifier">R</span><span class="plain">-</span><span class="element">>actual_package</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain"> = </span><span class="identifier">parent</span><span class="plain">;</span>
|
|
<span class="identifier">R</span><span class="plain">-</span><span class="element">>write_position</span><span class="plain"> = </span><span class="identifier">Inter::Bookmarks::new_IRS</span><span class="plain">(</span><span class="functiontext">Emit::repository</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"><</span><span class="constant">MAX_PR_COUNTER</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) </span><span class="identifier">R</span><span class="plain">-</span><span class="element">>counters</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">] = 0;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">R</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Packaging::log</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">LOG</span><span class="plain">(</span><span class="string">"<null-package>"</span><span class="plain">);</span>
|
|
<span class="reserved">else</span><span class="plain"> {</span>
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">c</span><span class="plain"> = 0;</span>
|
|
<span class="reserved">while</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">c</span><span class="plain">++ > 0) </span><span class="identifier">LOG</span><span class="plain">(</span><span class="string">"\</span><span class="plain">\</span><span class="string">"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>actual_package</span><span class="plain">) </span><span class="identifier">LOG</span><span class="plain">(</span><span class="string">"%S(%d)"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-</span><span class="element">>actual_package</span><span class="plain">-></span><span class="identifier">package_name</span><span class="plain">-></span><span class="identifier">symbol_name</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-></span><span class="identifier">allocation_id</span><span class="plain">);</span>
|
|
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">LOG</span><span class="plain">(</span><span class="string">"--(%d)"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-></span><span class="identifier">allocation_id</span><span class="plain">);</span>
|
|
<span class="identifier">R</span><span class="plain"> = </span><span class="identifier">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
<span class="plain">}</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Packaging::request is used in <a href="#SP7">§7</a>, <a href="#SP7_1">§7.1</a>, <a href="#SP8">§8</a>, 5/ins (<a href="5-ins.html#SP14">§14</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP31">§31</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/ma (<a href="15-ma.html#SP11_3">§11.3</a>), 17/rs (<a href="17-rs.html#SP5">§5</a>), 19/tc (<a href="19-tc.html#SP9">§9</a>), 19/tb (<a href="19-tb.html#SP9">§9</a>), 21/rl (<a href="21-rl.html#SP5">§5</a>), 21/rl2 (<a href="21-rl2.html#SP10">§10</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>), 22/pav (<a href="22-pav.html#SP7">§7</a>), 22/tp (<a href="22-tp.html#SP5">§5</a>, <a href="22-tp.html#SP7">§7</a>), 26/jl (<a href="26-jl.html#SP3">§3</a>), 26/ts (<a href="26-ts.html#SP9_1">§9.1</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/cm (<a href="27-cm.html#SP2">§2</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::log is used in 1/cm (<a href="1-cm.html#SP5">§5</a>, <a href="1-cm.html#SP6_6">§6.6</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">current_enclosure</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
|
|
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">struct</span><span class="plain"> </span><span class="reserved">packaging_state</span><span class="plain"> {</span>
|
|
<span class="identifier">inter_reading_state</span><span class="plain"> *</span><span class="identifier">saved_IRS</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">saved_enclosure</span><span class="plain">;</span>
|
|
<span class="plain">} </span><span class="reserved">packaging_state</span><span class="plain">;</span>
|
|
|
|
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="functiontext">Packaging::stateless</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">PS</span><span class="plain">;</span>
|
|
<span class="identifier">PS</span><span class="element">.saved_IRS</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">PS</span><span class="element">.saved_enclosure</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">PS</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::home_of</span><span class="plain">(</span><span class="reserved">inter_name</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="identifier">N</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="reserved">inter_name</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">Packaging::enter</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::enter</span><span class="plain">(</span><span class="identifier">current_enclosure</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">current_enclosure</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Packaging::stateless is used in 15/epv (<a href="15-epv.html#SP2">§2</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">§5</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP4">§4</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP1">§1</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::enter_current_enclosure is used in 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>), 17/tl (<a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::current_enclosure is used in 12/dtd (<a href="12-dtd.html#SP4">§4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">§19</a>), 17/tl (<a href="17-tl.html#SP7">§7</a>, <a href="17-tl.html#SP10_2_1">§10.2.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP8">§8</a>, <a href="17-ts.html#SP8_1">§8.1</a>), 18/lc (<a href="18-lc.html#SP5">§5</a>, <a href="18-lc.html#SP11">§11</a>), 26/iti (<a href="26-iti.html#SP9">§9</a>).</p>
|
|
|
|
<p class="endnote">The structure packaging_state is private to this section.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b></p>
|
|
|
|
|
|
<pre class="definitions">
|
|
<span class="definitionkeyword">define</span> <span class="constant">MAX_PACKAGING_ENTRY_DEPTH</span><span class="plain"> 32</span>
|
|
</pre>
|
|
|
|
<pre class="display">
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">packaging_entry_sp</span><span class="plain"> = 0;</span>
|
|
<span class="identifier">inter_reading_state</span><span class="plain"> </span><span class="identifier">packaging_entry_stack</span><span class="plain">[</span><span class="constant">MAX_PACKAGING_ENTRY_DEPTH</span><span class="plain">];</span>
|
|
|
|
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="functiontext">Packaging::enter</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain">) {</span>
|
|
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">PACKAGING</span><span class="plain">, </span><span class="string">"Entering $X\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
|
|
|
|
<span class="identifier">inter_reading_state</span><span class="plain"> *</span><span class="identifier">IRS</span><span class="plain"> = </span><span class="functiontext">Emit::IRS</span><span class="plain">();</span>
|
|
<span class="functiontext">Packaging::incarnate</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::move_write_position</span><span class="plain">(&(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>write_position</span><span class="plain">));</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">packaging_entry_sp</span><span class="plain"> >= </span><span class="constant">MAX_PACKAGING_ENTRY_DEPTH</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"packaging entry too deep"</span><span class="plain">);</span>
|
|
<span class="identifier">packaging_entry_stack</span><span class="plain">[</span><span class="identifier">packaging_entry_sp</span><span class="plain">] = </span><span class="functiontext">Emit::bookmark_bubble</span><span class="plain">();</span>
|
|
<span class="functiontext">Emit::move_write_position</span><span class="plain">(&</span><span class="identifier">packaging_entry_stack</span><span class="plain">[</span><span class="identifier">packaging_entry_sp</span><span class="plain">]);</span>
|
|
<span class="identifier">packaging_entry_sp</span><span class="plain">++;</span>
|
|
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">PS</span><span class="plain">;</span>
|
|
<span class="identifier">PS</span><span class="element">.saved_IRS</span><span class="plain"> = </span><span class="identifier">IRS</span><span class="plain">;</span>
|
|
<span class="identifier">PS</span><span class="element">.saved_enclosure</span><span class="plain"> = </span><span class="identifier">current_enclosure</span><span class="plain">;</span>
|
|
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain"> = </span><span class="identifier">R</span><span class="plain">; </span><span class="identifier">S</span><span class="plain">; </span><span class="identifier">S</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">)</span>
|
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">function_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">instance_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">property_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">variable_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">action_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">kind_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">relation_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">table_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">table_column_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">data_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">outcome_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">external_file_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">adjective_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">test_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">closure_ptype</span><span class="plain">) ||</span>
|
|
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)) {</span>
|
|
<span class="identifier">current_enclosure</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">;</span>
|
|
<span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">PACKAGING</span><span class="plain">, </span><span class="string">"[%d] Current enclosure is $X\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">packaging_entry_sp</span><span class="plain">, </span><span class="identifier">current_enclosure</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">PS</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">PS</span><span class="plain">) {</span>
|
|
<span class="identifier">current_enclosure</span><span class="plain"> = </span><span class="identifier">PS</span><span class="element">.saved_enclosure</span><span class="plain">;</span>
|
|
<span class="identifier">packaging_entry_sp</span><span class="plain">--;</span>
|
|
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">PACKAGING</span><span class="plain">, </span><span class="string">"[%d] Back to $X\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">packaging_entry_sp</span><span class="plain">, </span><span class="identifier">current_enclosure</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::move_write_position</span><span class="plain">(</span><span class="identifier">PS</span><span class="element">.saved_IRS</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="identifier">inter_package</span><span class="plain"> *</span><span class="functiontext">Packaging::incarnate</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"can't incarnate null request"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>actual_package</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
|
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">PACKAGING</span><span class="plain">, </span><span class="string">"Request to make incarnate $X\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">) </span><span class="functiontext">Packaging::incarnate</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">);</span>
|
|
|
|
<span class="identifier">inter_reading_state</span><span class="plain"> *</span><span class="identifier">save_IRS</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">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">)</span>
|
|
<span class="identifier">save_IRS</span><span class="plain"> = </span><span class="functiontext">Emit::move_write_position</span><span class="plain">(&(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">-</span><span class="element">>write_position</span><span class="plain">));</span>
|
|
<span class="identifier">inter_reading_state</span><span class="plain"> </span><span class="identifier">snapshot</span><span class="plain"> = </span><span class="functiontext">Emit::bookmark_bubble</span><span class="plain">();</span>
|
|
<span class="identifier">inter_reading_state</span><span class="plain"> *</span><span class="identifier">save_save_IRS</span><span class="plain"> = </span><span class="functiontext">Emit::move_write_position</span><span class="plain">(&</span><span class="identifier">snapshot</span><span class="plain">);</span>
|
|
<span class="functiontext">Emit::package</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>eventual_name</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain">, &(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>actual_package</span><span class="plain">));</span>
|
|
<span class="identifier">R</span><span class="plain">-</span><span class="element">>write_position</span><span class="plain"> = </span><span class="functiontext">Emit::bookmark_bubble</span><span class="plain">();</span>
|
|
<span class="functiontext">Emit::move_write_position</span><span class="plain">(</span><span class="identifier">save_save_IRS</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>parent_request</span><span class="plain">)</span>
|
|
<span class="functiontext">Emit::move_write_position</span><span class="plain">(</span><span class="identifier">save_IRS</span><span class="plain">);</span>
|
|
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">PACKAGING</span><span class="plain">, </span><span class="string">"Made incarnate $X bookmark $5\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">, &(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>write_position</span><span class="plain">));</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">R</span><span class="plain">-</span><span class="element">>actual_package</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="identifier">inter_symbols_table</span><span class="plain"> *</span><span class="functiontext">Packaging::scope</span><span class="plain">(</span><span class="identifier">inter_repository</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"can't determine scope of null name"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">-</span><span class="element">>eventual_owner</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">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">());</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">Inter::Packages::scope</span><span class="plain">(</span><span class="functiontext">Packaging::incarnate</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">));</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">§5</a>, 4/am (<a href="4-am.html#SP34_2">§34.2</a>), 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/epv (<a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP20">§20</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">§34</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP42">§42</a>), 6/rlt (<a href="6-rlt.html#SP14">§14</a>, <a href="6-rlt.html#SP15_1">§15.1</a>, <a href="6-rlt.html#SP20">§20</a>, <a href="6-rlt.html#SP20_3">§20.3</a>), 6/nv (<a href="6-nv.html#SP18">§18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">§2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">§5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">§4</a>, <a href="13-rsfk.html#SP16_1">§16.1</a>, <a href="13-rsfk.html#SP16_2">§16.2</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">§1.1.2</a>, <a href="15-epv.html#SP2">§2</a>), 16/ic (<a href="16-ic.html#SP10">§10</a>), 17/tl (<a href="17-tl.html#SP14_1">§14.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>, <a href="17-tl.html#SP16">§16</a>), 17/ts (<a href="17-ts.html#SP8_1">§8.1</a>, <a href="17-ts.html#SP11">§11</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>, <a href="17-rs.html#SP7_1">§7.1</a>, <a href="17-rs.html#SP7_3">§7.3</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>, <a href="18-lc.html#SP12_1">§12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">§1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">§1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">§1.2</a>, <a href="19-rsft.html#SP1_3">§1.3</a>), 21/rl (<a href="21-rl.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP14">§14</a>, <a href="21-rl2.html#SP20">§20</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>, <a href="21-ac.html#SP8">§8</a>, <a href="21-ac.html#SP14">§14</a>), 22/cs (<a href="22-cs.html#SP8">§8</a>), 22/ph (<a href="22-ph.html#SP12">§12</a>), 22/pav (<a href="22-pav.html#SP8_1">§8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">§4</a>), 24/ch (<a href="24-ch.html#SP6">§6</a>, <a href="24-ch.html#SP8">§8</a>), 26/vm (<a href="26-vm.html#SP8">§8</a>), 26/uo (<a href="26-uo.html#SP21">§21</a>), 26/lt (<a href="26-lt.html#SP4_1">§4.1</a>), 26/jl (<a href="26-jl.html#SP6">§6</a>), 26/rt (<a href="26-rt.html#SP4">§4</a>), 26/iti (<a href="26-iti.html#SP10">§10</a>), 26/pl (<a href="26-pl.html#SP12">§12</a>), 26/ts (<a href="26-ts.html#SP10">§10</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP5">§5</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::incarnate is used in 21/rl (<a href="21-rl.html#SP9">§9</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::scope is used in 27/in (<a href="27-in.html#SP2">§2</a>).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">main_pr</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request_main</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">main_pr</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
|
|
<span class="identifier">main_pr</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"main"</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">plain_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">main_pr</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">resources_pr</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request_resources</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">resources_pr</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
|
|
<span class="identifier">resources_pr</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span>
|
|
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"resources"</span><span class="plain">, </span><span class="functiontext">Packaging::request_main</span><span class="plain">()),</span>
|
|
<span class="functiontext">Packaging::request_main</span><span class="plain">(), </span><span class="identifier">plain_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">resources_pr</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">generic_pr</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request_generic</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">generic_pr</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
|
|
<span class="identifier">generic_pr</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span>
|
|
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"generic"</span><span class="plain">, </span><span class="functiontext">Packaging::request_resources</span><span class="plain">()),</span>
|
|
<span class="functiontext">Packaging::request_resources</span><span class="plain">(), </span><span class="identifier">module_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">generic_pr</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">template_pr</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request_template</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">template_pr</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
|
|
<span class="identifier">template_pr</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span>
|
|
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"template"</span><span class="plain">, </span><span class="functiontext">Packaging::request_resources</span><span class="plain">()),</span>
|
|
<span class="functiontext">Packaging::request_resources</span><span class="plain">(), </span><span class="identifier">module_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">template_pr</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">synoptic_pr</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request_synoptic</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">synoptic_pr</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)</span>
|
|
<span class="identifier">synoptic_pr</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span>
|
|
<span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"synoptic"</span><span class="plain">, </span><span class="functiontext">Packaging::request_resources</span><span class="plain">()),</span>
|
|
<span class="functiontext">Packaging::request_resources</span><span class="plain">(), </span><span class="identifier">module_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">synoptic_pr</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">struct</span><span class="plain"> </span><span class="reserved">subpackage_requests</span><span class="plain"> {</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">subs</span><span class="plain">[</span><span class="constant">MAX_SUBMODULE</span><span class="plain">];</span>
|
|
<span class="plain">} </span><span class="reserved">subpackage_requests</span><span class="plain">;</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Packaging::initialise_subpackages</span><span class="plain">(</span><span class="reserved">subpackage_requests</span><span class="plain"> *</span><span class="identifier">SR</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"><</span><span class="constant">MAX_SUBMODULE</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">++) </span><span class="identifier">SR</span><span class="plain">-</span><span class="element">>subs</span><span class="plain">[</span><span class="identifier">i</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="identifier">generic_subpackages_initialised</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
|
<span class="reserved">subpackage_requests</span><span class="plain"> </span><span class="identifier">generic_subpackages</span><span class="plain">;</span>
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">synoptic_subpackages_initialised</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
|
<span class="reserved">subpackage_requests</span><span class="plain"> </span><span class="identifier">synoptic_subpackages</span><span class="plain">;</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::request_resource</span><span class="plain">(</span><span class="reserved">compilation_module</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">ix</span><span class="plain">) {</span>
|
|
<span class="reserved">subpackage_requests</span><span class="plain"> *</span><span class="identifier">SR</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">parent</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">C</span><span class="plain">) {</span>
|
|
<span class="identifier">SR</span><span class="plain"> = </span><span class="functiontext">Modules::subpackages</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">);</span>
|
|
<span class="identifier">parent</span><span class="plain"> = </span><span class="identifier">C</span><span class="plain">-</span><span class="element">>resources</span><span class="plain">;</span>
|
|
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">generic_subpackages_initialised</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) {</span>
|
|
<span class="identifier">generic_subpackages_initialised</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
|
<span class="functiontext">Packaging::initialise_subpackages</span><span class="plain">(&</span><span class="identifier">generic_subpackages</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="identifier">SR</span><span class="plain"> = &</span><span class="identifier">generic_subpackages</span><span class="plain">;</span>
|
|
<span class="identifier">parent</span><span class="plain"> = </span><span class="functiontext">Packaging::request_generic</span><span class="plain">();</span>
|
|
<span class="plain">}</span>
|
|
<<span class="cwebmacro">Handle the resource request</span> <span class="cwebmacronumber">7.1</span>><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::local_resource</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">ix</span><span class="plain">) {</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::request_resource</span><span class="plain">(</span><span class="functiontext">Modules::find</span><span class="plain">(</span><span class="identifier">current_sentence</span><span class="plain">), </span><span class="identifier">ix</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::generic_resource</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">ix</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">generic_subpackages_initialised</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) {</span>
|
|
<span class="identifier">generic_subpackages_initialised</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
|
<span class="functiontext">Packaging::initialise_subpackages</span><span class="plain">(&</span><span class="identifier">generic_subpackages</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">subpackage_requests</span><span class="plain"> *</span><span class="identifier">SR</span><span class="plain"> = &</span><span class="identifier">generic_subpackages</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">parent</span><span class="plain"> = </span><span class="functiontext">Packaging::request_generic</span><span class="plain">();</span>
|
|
<<span class="cwebmacro">Handle the resource request</span> <span class="cwebmacronumber">7.1</span>><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="functiontext">Packaging::synoptic_resource</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">ix</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">synoptic_subpackages_initialised</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) {</span>
|
|
<span class="identifier">synoptic_subpackages_initialised</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
|
|
<span class="functiontext">Packaging::initialise_subpackages</span><span class="plain">(&</span><span class="identifier">synoptic_subpackages</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">subpackage_requests</span><span class="plain"> *</span><span class="identifier">SR</span><span class="plain"> = &</span><span class="identifier">synoptic_subpackages</span><span class="plain">;</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">parent</span><span class="plain"> = </span><span class="functiontext">Packaging::request_synoptic</span><span class="plain">();</span>
|
|
<<span class="cwebmacro">Handle the resource request</span> <span class="cwebmacronumber">7.1</span>><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Packaging::request_main is used in 19/tc (<a href="19-tc.html#SP9">§9</a>), 26/rt (<a href="26-rt.html#SP3">§3</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/in (<a href="27-in.html#SP2">§2</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::request_resources is used in 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/cm (<a href="27-cm.html#SP2">§2</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::request_generic appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Packaging::request_template is used in 15/ep (<a href="15-ep.html#SP4">§4</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>), 27/hr (<a href="27-hr.html#SP2_43">§2.43</a>, <a href="27-hr.html#SP6">§6</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::request_synoptic appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function Packaging::initialise_subpackages is used in 27/cm (<a href="27-cm.html#SP2">§2</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::request_resource is used in 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP31">§31</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/ma (<a href="15-ma.html#SP11_3">§11.3</a>), 19/tb (<a href="19-tb.html#SP9">§9</a>), 21/rl2 (<a href="21-rl2.html#SP10">§10</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 22/ph (<a href="22-ph.html#SP11">§11</a>), 22/tp (<a href="22-tp.html#SP5">§5</a>), 26/ts (<a href="26-ts.html#SP9_1">§9.1</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::local_resource is used in 5/ins (<a href="5-ins.html#SP14">§14</a>), 20/eq (<a href="20-eq.html#SP10_1">§10.1</a>), 21/rl (<a href="21-rl.html#SP5">§5</a>), 24/ch (<a href="24-ch.html#SP3">§3</a>), 26/lt (<a href="26-lt.html#SP3">§3</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::generic_resource is used in 21/ac (<a href="21-ac.html#SP6">§6</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>), 27/hr (<a href="27-hr.html#SP2_2">§2.2</a>, <a href="27-hr.html#SP2_6">§2.6</a>, <a href="27-hr.html#SP2_8">§2.8</a>, <a href="27-hr.html#SP2_12">§2.12</a>, <a href="27-hr.html#SP2_20">§2.20</a>, <a href="27-hr.html#SP2_27">§2.27</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::synoptic_resource is used in 26/jl (<a href="26-jl.html#SP3">§3</a>), 27/hr (<a href="27-hr.html#SP2_4">§2.4</a>, <a href="27-hr.html#SP2_10">§2.10</a>, <a href="27-hr.html#SP2_14">§2.14</a>, <a href="27-hr.html#SP2_16">§2.16</a>, <a href="27-hr.html#SP2_18">§2.18</a>, <a href="27-hr.html#SP2_21">§2.21</a>, <a href="27-hr.html#SP2_23">§2.23</a>, <a href="27-hr.html#SP2_25">§2.25</a>, <a href="27-hr.html#SP2_29">§2.29</a>, <a href="27-hr.html#SP2_31">§2.31</a>, <a href="27-hr.html#SP2_33">§2.33</a>, <a href="27-hr.html#SP2_35">§2.35</a>, <a href="27-hr.html#SP2_37">§2.37</a>, <a href="27-hr.html#SP2_39">§2.39</a>).</p>
|
|
|
|
<p class="endnote">The structure subpackage_requests is private to this section.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP7_1"></a><b>§7.1. </b><code class="display">
|
|
<<span class="cwebmacrodefn">Handle the resource request</span> <span class="cwebmacronumber">7.1</span>> =
|
|
</code></p>
|
|
|
|
|
|
<pre class="displaydefn">
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">SR</span><span class="plain">-</span><span class="element">>subs</span><span class="plain">[</span><span class="identifier">ix</span><span class="plain">] == </span><span class="identifier">NULL</span><span class="plain">) {</span>
|
|
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::submodule_name</span><span class="plain">(</span><span class="identifier">ix</span><span class="plain">);</span>
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">parent</span><span class="plain">);</span>
|
|
<span class="identifier">SR</span><span class="plain">-</span><span class="element">>subs</span><span class="plain">[</span><span class="identifier">ix</span><span class="plain">] = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">parent</span><span class="plain">, </span><span class="identifier">plain_ptype</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">SR</span><span class="plain">-</span><span class="element">>subs</span><span class="plain">[</span><span class="identifier">ix</span><span class="plain">];</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">This code is used in <a href="#SP7">§7</a> (three times).</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP8"></a><b>§8. </b></p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">what_for</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no request"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">what_for</span><span class="plain"> < 0) || (</span><span class="identifier">what_for</span><span class="plain"> >= </span><span class="constant">MAX_PR_COUNTER</span><span class="plain">)) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"out of range"</span><span class="plain">);</span>
|
|
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">);</span>
|
|
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">what_for</span><span class="plain">) {</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">VERB_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"verb"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">MVERB_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"mverb"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">FUNCTION_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"function"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">FORM_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"form"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">BLOCK_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"code_block"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TO_PHRASE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"phrase"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RULE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"rule"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">REQUEST_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"request"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">CLOSURE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"closure"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RESPONSE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"response"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">ADJECTIVE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"adjective"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">ADJECTIVE_MEANING_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"adjective_meaning"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TASK_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"task"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">LITERAL_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"literal"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">BLOCK_CONSTANT_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"block_constant"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">PROPOSITION_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"proposition"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">INSTANCE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"instance"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">INLINE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"inline_pval"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">PROPERTY_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"property"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">VARIABLE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"variable"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">KIND_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"kind"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">ACTION_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"action"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">ACTIVITY_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"activity"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RULEBOOK_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"rulebook"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TABLE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"table"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TABLE_COLUMN_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"table_column"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">RELATION_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"relation"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SUBSTITUTION_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"ts"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SUBSTITUTIONF_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"ts_fn"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">MISC_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"misc_const"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">TEST_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"test"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">OUTCOME_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"rulebook_outcome"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">DATA_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"data"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">EXTERNAL_FILE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"external_file"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">case</span><span class="plain"> </span><span class="constant">LABEL_STORAGE_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"label_associated_storage"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
|
<span class="reserved">default</span><span class="plain">: </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"unimplemented"</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"_%d"</span><span class="plain">, ++(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">>counters</span><span class="plain">[</span><span class="identifier">what_for</span><span class="plain">]));</span>
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
|
|
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">function_iname</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R2</span><span class="plain">, </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">temp_iname</span><span class="plain">) {</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R3</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="identifier">function_iname</span><span class="plain">, </span><span class="identifier">R2</span><span class="plain">, </span><span class="identifier">function_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"call"</span><span class="plain">, </span><span class="identifier">R3</span><span class="plain">);</span>
|
|
<span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">R3</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">temp_iname</span><span class="plain">) {</span>
|
|
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">);</span>
|
|
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="string">"%n"</span><span class="plain">, </span><span class="identifier">temp_iname</span><span class="plain">);</span>
|
|
<span class="identifier">Inter::Symbols::set_translate</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">), </span><span class="identifier">T</span><span class="plain">);</span>
|
|
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Packaging::function_text</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">function_iname</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R2</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">translation</span><span class="plain">) {</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R3</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="identifier">function_iname</span><span class="plain">, </span><span class="identifier">R2</span><span class="plain">, </span><span class="identifier">function_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"call"</span><span class="plain">, </span><span class="identifier">R3</span><span class="plain">);</span>
|
|
<span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">R3</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">translation</span><span class="plain">) {</span>
|
|
<span class="identifier">Inter::Symbols::set_translate</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">), </span><span class="identifier">translation</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Packaging::datum_text</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">function_iname</span><span class="plain">, </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R2</span><span class="plain">, </span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">translation</span><span class="plain">) {</span>
|
|
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">R3</span><span class="plain"> = </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="identifier">function_iname</span><span class="plain">, </span><span class="identifier">R2</span><span class="plain">, </span><span class="identifier">data_ptype</span><span class="plain">);</span>
|
|
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">translation</span><span class="plain">, </span><span class="identifier">R3</span><span class="plain">);</span>
|
|
<span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">R3</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain">, </span><span class="reserved">package_request</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">iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"can't house null name"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">at</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"can't house nowhere"</span><span class="plain">);</span>
|
|
<span class="identifier">iname</span><span class="plain">-</span><span class="element">>eventual_owner</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">Packaging::house_with</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain">, </span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">landlord</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"can't house null name"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">landlord</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"can't house with nobody"</span><span class="plain">);</span>
|
|
<span class="identifier">iname</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain"> = </span><span class="identifier">landlord</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Packaging::houseed_in_function</span><span class="plain">(</span><span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">iname</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">FALSE</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">iname</span><span class="plain">-</span><span class="element">>eventual_owner</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">FALSE</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">iname</span><span class="plain">-</span><span class="element">>eventual_owner</span><span class="plain">-</span><span class="element">>eventual_type</span><span class="plain"> == </span><span class="identifier">function_ptype</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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function Packaging::supply_iname is used in 4/am (<a href="4-am.html#SP6">§6</a>), 5/ins (<a href="5-ins.html#SP14">§14</a>), 5/nv (<a href="5-nv.html#SP16">§16</a>), 6/bp (<a href="6-bp.html#SP31">§31</a>), 6/rlt (<a href="6-rlt.html#SP15_1_2">§15.1.2</a>), 12/dtd (<a href="12-dtd.html#SP4">§4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">§19</a>), 15/pr (<a href="15-pr.html#SP27">§27</a>), 15/ma (<a href="15-ma.html#SP11_3">§11.3</a>), 17/tl (<a href="17-tl.html#SP7">§7</a>, <a href="17-tl.html#SP10_2_1">§10.2.1</a>, <a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP5">§5</a>), 17/rs (<a href="17-rs.html#SP5">§5</a>), 18/lc (<a href="18-lc.html#SP11">§11</a>), 19/tc (<a href="19-tc.html#SP9">§9</a>), 19/tb (<a href="19-tb.html#SP9">§9</a>), 21/rl (<a href="21-rl.html#SP5">§5</a>), 21/rl2 (<a href="21-rl2.html#SP10">§10</a>), 21/fao (<a href="21-fao.html#SP10">§10</a>), 21/ac (<a href="21-ac.html#SP6">§6</a>), 22/pav (<a href="22-pav.html#SP7">§7</a>), 22/tp (<a href="22-tp.html#SP5">§5</a>, <a href="22-tp.html#SP7">§7</a>), 26/jl (<a href="26-jl.html#SP3">§3</a>), 26/ts (<a href="26-ts.html#SP9_1">§9.1</a>), 27/ei (<a href="27-ei.html#SP3">§3</a>, <a href="27-ei.html#SP4">§4</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::function is used in 6/bp (<a href="6-bp.html#SP32">§32</a>), 6/rlt (<a href="6-rlt.html#SP9">§9</a>, <a href="6-rlt.html#SP9_13">§9.13</a>), 12/dtd (<a href="12-dtd.html#SP4">§4</a>), 13/rsfk (<a href="13-rsfk.html#SP15">§15</a>), 15/ma (<a href="15-ma.html#SP11_3">§11.3</a>), 17/tl (<a href="17-tl.html#SP14_2">§14.2</a>), 17/ts (<a href="17-ts.html#SP5">§5</a>), 17/rs (<a href="17-rs.html#SP6_1">§6.1</a>), 20/eq (<a href="20-eq.html#SP10_1">§10.1</a>), 21/rl (<a href="21-rl.html#SP19">§19</a>), 21/rl2 (<a href="21-rl2.html#SP10">§10</a>, <a href="21-rl2.html#SP14">§14</a>), 21/ac (<a href="21-ac.html#SP8">§8</a>), 22/ph (<a href="22-ph.html#SP11">§11</a>), 22/pu (<a href="22-pu.html#SP6">§6</a>), 22/pav (<a href="22-pav.html#SP9">§9</a>), 22/tp (<a href="22-tp.html#SP7">§7</a>), 24/ch (<a href="24-ch.html#SP3">§3</a>), 26/lt (<a href="26-lt.html#SP3">§3</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::function_text is used in 21/rl (<a href="21-rl.html#SP9">§9</a>), 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::datum_text is used in 27/hl (<a href="27-hl.html#SP1">§1</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP13_1_1">§13.1.1</a>, <a href="13-rsfk.html#SP26">§26</a>), 15/ep (<a href="15-ep.html#SP4">§4</a>), 27/in (<a href="27-in.html#SP4">§4</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::house_with is used in 26/rt (<a href="26-rt.html#SP4">§4</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>), 27/in (<a href="27-in.html#SP3">§3</a>).</p>
|
|
|
|
<p class="endnote">The function Packaging::houseed_in_function is used in 26/rt (<a href="26-rt.html#SP4">§4</a>), 27/ei (<a href="27-ei.html#SP4">§4</a>).</p>
|
|
|
|
<hr class="tocbar">
|
|
<ul class="toc"><li><a href="27-in.html">Back to 'Inter Namespace'</a></li><li><a href="27-hl.html">Continue with 'Hierarchy Locations'</a></li></ul><hr class="tocbar">
|
|
<!--End of weave-->
|
|
</body>
|
|
</html>
|
|
|