Further work on makescripts
This commit is contained in:
parent
162b0283f3
commit
e6a2631e0c
13 changed files with 2644 additions and 1669 deletions
|
@ -30,7 +30,8 @@ see //foundation: A Brief Guide to Foundation//.
|
|||
@e macro_usage_CLASS
|
||||
@e makefile_macro_CLASS
|
||||
@e makefile_macro_parameter_CLASS
|
||||
@e makefile_macro_playback_CLASS
|
||||
@e makefile_variable_CLASS
|
||||
@e makefile_variable_set_CLASS
|
||||
@e nonterminal_variable_CLASS
|
||||
@e para_macro_CLASS
|
||||
@e paragraph_CLASS
|
||||
|
@ -123,7 +124,8 @@ DECLARE_CLASS(macro_usage)
|
|||
DECLARE_CLASS(macro)
|
||||
DECLARE_CLASS(makefile_macro)
|
||||
DECLARE_CLASS(makefile_macro_parameter)
|
||||
DECLARE_CLASS(makefile_macro_playback)
|
||||
DECLARE_CLASS(makefile_variable)
|
||||
DECLARE_CLASS(makefile_variable_set)
|
||||
DECLARE_CLASS(nonterminal_variable)
|
||||
DECLARE_CLASS(para_macro)
|
||||
DECLARE_CLASS(paragraph_tagging)
|
||||
|
|
|
@ -153,7 +153,7 @@ void Main::follow_instructions(inweb_instructions *ins) {
|
|||
@ But otherwise we do something with the given web:
|
||||
|
||||
@<Analyse, tangle or weave an existing web@> =
|
||||
Reader::print_web_statistics(W);
|
||||
if (ins->inweb_mode != ANALYSE_MODE) Reader::print_web_statistics(W);
|
||||
if (ins->inweb_mode == ANALYSE_MODE) @<Analyse the web@>;
|
||||
if (ins->inweb_mode == TANGLE_MODE) @<Tangle the web@>;
|
||||
if (ins->inweb_mode == WEAVE_MODE) @<Weave the web@>;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,3 @@
|
|||
web "The Twin Primes Conjecture": 1 section : 3 paragraphs : 55 lines
|
||||
Scan of source lines for '0'
|
||||
0000001 SECTION_HEADING..... Main.
|
||||
0000002 COMMENT_BODY........
|
||||
|
|
1844
Tangled/inweb.c
1844
Tangled/inweb.c
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -71,7 +71,8 @@ see <a href="../foundation-module/P-abgtf.html" class="internal">A Brief Guide t
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">macro_usage_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">makefile_macro_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">makefile_macro_parameter_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">makefile_macro_playback_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">makefile_variable_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">makefile_variable_set_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">nonterminal_variable_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">para_macro_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">paragraph_CLASS</span>
|
||||
|
@ -164,7 +165,8 @@ see <a href="../foundation-module/P-abgtf.html" class="internal">A Brief Guide t
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">makefile_macro</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">makefile_macro_parameter</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">makefile_macro_playback</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">makefile_variable</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">makefile_variable_set</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">nonterminal_variable</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">para_macro</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">paragraph_tagging</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -186,7 +186,7 @@ program: some input, some thinking, a choice of three forms of output.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">writeme_setting</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">prototype_setting</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">prototype_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"READMEscript.txt"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">makefile_setting</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="6-mkf.html#SP1" class="function-link"><span class="function-syntax">Makefiles::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="identifier-syntax">prototype_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">makefile_setting</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="6-mkf.html#SP2" class="function-link"><span class="function-syntax">Makefiles::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="identifier-syntax">prototype_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">makefile_setting</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/8-wm.html#SP6" class="function-link"><span class="function-syntax">WebModules::make_search_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">import_setting</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">gitignore_setting</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="6-gs.html#SP1" class="function-link"><span class="function-syntax">Git::write_gitignore</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">prototype_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">gitignore_setting</span><span class="plain-syntax">);</span>
|
||||
|
@ -235,7 +235,7 @@ program: some input, some thinking, a choice of three forms of output.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="2-tr.html#SP16" class="function-link"><span class="function-syntax">Reader::print_web_statistics</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> != </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">) </span><a href="2-tr.html#SP16" class="function-link"><span class="function-syntax">Reader::print_web_statistics</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> == </span><span class="constant-syntax">ANALYSE_MODE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="1-pc.html#SP7_4_1" class="named-paragraph-link"><span class="named-paragraph">Analyse the web</span><span class="named-paragraph-number">7.4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> == </span><span class="constant-syntax">TANGLE_MODE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="1-pc.html#SP7_4_2" class="named-paragraph-link"><span class="named-paragraph">Tangle the web</span><span class="named-paragraph-number">7.4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">inweb_mode</span><span class="plain-syntax"> == </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="1-pc.html#SP7_4_3" class="named-paragraph-link"><span class="named-paragraph">Weave the web</span><span class="named-paragraph-number">7.4.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -152,7 +152,7 @@ each of which has a list of <span class="extract"><span class="extract-syntax">s
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">web_md</span><span class="plain-syntax"> *</span><span class="function-syntax">Reader::load_web_md</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Reader::load_web_md</span></span>:<br/>Makefiles - <a href="6-mkf.html#SP2_15_1">§2.15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alt_F</span><span class="plain-syntax">, </span><span class="reserved-syntax">module_search</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">web_md</span><span class="plain-syntax"> *</span><span class="function-syntax">Reader::load_web_md</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Reader::load_web_md</span></span>:<br/>Makefiles - <a href="6-mkf.html#SP15_4">§15.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alt_F</span><span class="plain-syntax">, </span><span class="reserved-syntax">module_search</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">including_modules</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../foundation-module/8-ws.html#SP5" class="function-link"><span class="function-syntax">WebMetadata::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">alt_F</span><span class="plain-syntax">, </span><span class="identifier-syntax">default_inweb_syntax</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">verbose_mode</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">including_modules</span><span class="plain-syntax">, </span><span class="identifier-syntax">path_to_inweb</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -489,7 +489,7 @@ folder: failing that, we fall back on a default script belonging to Inweb.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><a href="../foundation-module/4-tf.html#SP1" class="function-link"><span class="function-syntax">TextFiles::exists</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prototype</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prototype</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">path_to_inweb_materials</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"default.mkscript"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-mkf.html#SP1" class="function-link"><span class="function-syntax">Makefiles::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">prototype</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-mkf.html#SP2" class="function-link"><span class="function-syntax">Makefiles::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">prototype</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Analyser::write_gitignore</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Analyser::write_gitignore</span></span>:<br/>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -87,7 +87,7 @@ uses these extra macros, is expanded to the final file, which does not.
|
|||
<span class="plain-syntax"> </span><a href="../foundation-module/2-str.html#SP34" class="function-link"><span class="function-syntax">Streams::close</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">file_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure write_state is accessed in 1/apacs, 5/ptf, 5/tf, 5/hf, 5/df and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure write_state is accessed in 1/apacs, 5/ptf, 5/tf, 5/hf, 5/df, 6/mkf and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>The file consists of definitions of macros, made one at a time, and
|
||||
starting with <span class="extract"><span class="extract-syntax">@define</span></span> and finishing with <span class="extract"><span class="extract-syntax">@end</span></span>, and actual material.
|
||||
</p>
|
||||
|
|
|
@ -163,7 +163,6 @@ for example:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">web "The Twin Primes Conjecture": 1 section : 3 paragraphs : 55 lines</span>
|
||||
<span class="plain-syntax">Scan of source lines for '0'</span>
|
||||
<span class="plain-syntax">0000001 SECTION_HEADING..... Main.</span>
|
||||
<span class="plain-syntax">0000002 COMMENT_BODY........ </span>
|
||||
|
@ -679,7 +678,7 @@ the abstract and for no particular web.
|
|||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Translation mode. </b>Or, finally, we're in <span class="extract"><span class="extract-syntax">TRANSLATE_MODE</span></span>. We can:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>(a) make a makefile by calling <a href="6-mkf.html#SP1" class="internal">Makefiles::write</a>;
|
||||
<ul class="items"><li>(a) make a makefile by calling <a href="6-mkf.html#SP2" class="internal">Makefiles::write</a>;
|
||||
</li><li>(b) make a <span class="extract"><span class="extract-syntax">.gitignore</span></span> file by calling <a href="6-gs.html#SP1" class="internal">Git::write_gitignore</a>;
|
||||
</li><li>(c) advance the build number in a build file, by calling out to the
|
||||
Foundation code at <a href="../foundation-module/8-bf.html#SP7" class="internal">BuildFiles::advance</a>;
|
||||
|
|
Loading…
Reference in a new issue