Added -sequential section range option
This commit is contained in:
parent
42dd3daf62
commit
97e7ee892c
19 changed files with 646 additions and 533 deletions
|
@ -29,6 +29,7 @@ typedef struct inweb_instructions {
|
|||
int scan_switch; /* |-scan|: simply show the syntactic scan of the source */
|
||||
struct filename *weave_to_setting; /* |-weave-to X|: the pathname X, if supplied */
|
||||
struct pathname *weave_into_setting; /* |-weave-into X|: the pathname X, if supplied */
|
||||
int sequential; /* give the sections sequential sigils */
|
||||
struct filename *tangle_setting; /* |-tangle-to X|: the pathname X, if supplied */
|
||||
struct filename *makefile_setting; /* |-makefile X|: the filename X, if supplied */
|
||||
struct filename *gitignore_setting; /* |-gitignore X|: the filename X, if supplied */
|
||||
|
@ -89,6 +90,7 @@ inweb_instructions Configuration::read(int argc, char **argv) {
|
|||
args.tangle_setting = NULL;
|
||||
args.weave_to_setting = NULL;
|
||||
args.weave_into_setting = NULL;
|
||||
args.sequential = FALSE;
|
||||
args.makefile_setting = NULL;
|
||||
args.gitignore_setting = NULL;
|
||||
args.advance_setting = NULL;
|
||||
|
@ -123,6 +125,7 @@ provides automatically.
|
|||
@e WEAVE_CLSW
|
||||
@e WEAVE_INTO_CLSW
|
||||
@e WEAVE_TO_CLSW
|
||||
@e SEQUENTIAL_CLSW
|
||||
@e OPEN_CLSW
|
||||
@e WEAVE_AS_CLSW
|
||||
@e WEAVE_TAG_CLSW
|
||||
|
@ -183,6 +186,8 @@ provides automatically.
|
|||
L"weave, but into directory X");
|
||||
CommandLine::declare_switch(WEAVE_TO_CLSW, L"weave-to", 2,
|
||||
L"weave, but to filename X (for single files only)");
|
||||
CommandLine::declare_boolean_switch(SEQUENTIAL_CLSW, L"sequential", 1,
|
||||
L"name woven leaves with sequential numbering", FALSE);
|
||||
CommandLine::declare_switch(OPEN_CLSW, L"open", 1,
|
||||
L"weave then open woven file");
|
||||
CommandLine::declare_switch(WEAVE_AS_CLSW, L"weave-as", 2,
|
||||
|
@ -258,6 +263,8 @@ void Configuration::switch(int id, int val, text_stream *arg, void *state) {
|
|||
case WEAVE_TO_CLSW:
|
||||
args->weave_to_setting = Filenames::from_text(arg);
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
case SEQUENTIAL_CLSW:
|
||||
args->sequential = val; break;
|
||||
case OPEN_CLSW:
|
||||
args->open_pdf_switch = TRUE;
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
|
|
|
@ -96,7 +96,7 @@ void Main::follow_instructions(inweb_instructions *ins) {
|
|||
TRUE);
|
||||
W->redirect_weaves_to = ins->weave_into_setting;
|
||||
Reader::read_web(W, ins->verbose_switch);
|
||||
Parser::parse_web(W, ins->inweb_mode);
|
||||
Parser::parse_web(W, ins->inweb_mode, ins->sequential);
|
||||
}
|
||||
if (no_inweb_errors == 0) {
|
||||
if (ins->inweb_mode == TRANSLATE_MODE) @<Translate a makefile@>
|
||||
|
@ -228,7 +228,6 @@ which for many small webs will be the entire thing.
|
|||
if (Str::len(pattern->open_command) > 0) shall_we_open = TRUE;
|
||||
else shall_we_open = FALSE;
|
||||
}
|
||||
if (tag) PRINT("Tag!\n");
|
||||
Swarm::weave_subset(W, ins->chosen_range, shall_we_open, tag, pattern,
|
||||
ins->weave_to_setting, ins->weave_into_setting, ins->weave_docs,
|
||||
ins->breadcrumb_setting, ins->navigation_setting);
|
||||
|
|
|
@ -14,12 +14,16 @@ function definitions are recognised in C programs.) There is no requirement
|
|||
for it to do anything.
|
||||
|
||||
=
|
||||
void Parser::parse_web(web *W, int inweb_mode) {
|
||||
void Parser::parse_web(web *W, int inweb_mode, int sequential) {
|
||||
chapter *C;
|
||||
section *S;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters) {
|
||||
int section_counter = 1;
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections) {
|
||||
@<Parse a section@>;
|
||||
section_counter++;
|
||||
}
|
||||
}
|
||||
Languages::further_parsing(W, W->main_language);
|
||||
}
|
||||
|
||||
|
@ -196,18 +200,23 @@ also give the namespace for its functions.
|
|||
@ If no range is supplied, we make one ourselves.
|
||||
|
||||
@<Set the range to an automatic abbreviation of the relative pathname@> =
|
||||
S->sect_range = Str::new();
|
||||
if (Str::len(S->sect_range) == 0) {
|
||||
if (sequential) {
|
||||
WRITE_TO(S->sect_range, "%S/", C->md->ch_range);
|
||||
WRITE_TO(S->sect_range, "s%d", section_counter);
|
||||
} else {
|
||||
text_stream *from = S->md->sect_title;
|
||||
int letters_from_each_word = 5;
|
||||
do {
|
||||
Str::clear(S->sect_range);
|
||||
WRITE_TO(S->sect_range, "%S/", C->md->ch_range);
|
||||
@<Make the tail using this many consonants from each word@>;
|
||||
if (--letters_from_each_word == 0) break;
|
||||
} while (Str::len(S->sect_range) > 5);
|
||||
|
||||
text_stream *from = S->md->sect_title;
|
||||
int letters_from_each_word = 5;
|
||||
do {
|
||||
Str::clear(S->sect_range);
|
||||
WRITE_TO(S->sect_range, "%S/", C->md->ch_range);
|
||||
@<Make the tail using this many consonants from each word@>;
|
||||
if (--letters_from_each_word == 0) break;
|
||||
} while (Str::len(S->sect_range) > 5);
|
||||
|
||||
@<Terminate with disambiguating numbers in case of collisions@>;
|
||||
@<Terminate with disambiguating numbers in case of collisions@>;
|
||||
}
|
||||
}
|
||||
|
||||
@ We collapse words to an initial letter plus consonants: thus "electricity"
|
||||
would be "elctrcty", since we don't count "y" as a vowel here.
|
||||
|
|
|
@ -188,6 +188,7 @@ web *Reader::load_web(pathname *P, filename *alt_F, module_search *I, int verbos
|
|||
S->tag_with = NULL;
|
||||
if (Str::len(Sm->tag_name) > 0)
|
||||
S->tag_with = Tags::add_by_name(NULL, Sm->tag_name);
|
||||
S->sect_range = Str::new();
|
||||
|
||||
@<Add the imported headers@> =
|
||||
filename *HF;
|
||||
|
|
|
@ -244,9 +244,11 @@ void HTMLFormat::paragraph_heading(weave_format *self, text_stream *OUT,
|
|||
}
|
||||
HTML_OPEN_WITH("ul", "class=\"crumbs\"");
|
||||
HTMLFormat::drop_initial_breadcrumbs(OUT, wv->breadcrumbs, wv->docs_mode);
|
||||
|
||||
HTMLFormat::breadcrumb(OUT,
|
||||
Bibliographic::get_datum(wv->weave_web->md, I"Title"), I"index.html");
|
||||
text_stream *bct = Bibliographic::get_datum(wv->weave_web->md, I"Title");
|
||||
if (Str::len(Bibliographic::get_datum(wv->weave_web->md, I"Short Title")) > 0) {
|
||||
bct = Bibliographic::get_datum(wv->weave_web->md, I"Short Title");
|
||||
}
|
||||
HTMLFormat::breadcrumb(OUT, bct, I"index.html");
|
||||
|
||||
if (wv->weave_web->md->chaptered) {
|
||||
TEMPORARY_TEXT(chapter_link);
|
||||
|
|
|
@ -90,27 +90,21 @@ void Makefiles::scan_makefile_line(text_stream *line, text_file_position *tfp, v
|
|||
}
|
||||
|
||||
@<Begin a repeat tool block@> =
|
||||
if (MS->inside_block) Errors::in_text_file("nested repeat blocks are not allowed", tfp);
|
||||
MS->inside_block = TRUE;
|
||||
MS->repeat_scope = MAKEFILE_TOOL_MOM;
|
||||
MS->repeat_tag = Str::duplicate(mr.exp[0]);
|
||||
Str::clear(MS->repeat_block);
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
int marker = MAKEFILE_TOOL_MOM;
|
||||
@<Begin a repeat block@>;
|
||||
|
||||
@<Begin a repeat web block@> =
|
||||
if (MS->inside_block) Errors::in_text_file("nested repeat blocks are not allowed", tfp);
|
||||
MS->inside_block = TRUE;
|
||||
MS->repeat_scope = MAKEFILE_WEB_MOM;
|
||||
MS->repeat_tag = Str::duplicate(mr.exp[0]);
|
||||
Str::clear(MS->repeat_block);
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
int marker = MAKEFILE_WEB_MOM;
|
||||
@<Begin a repeat block@>;
|
||||
|
||||
@<Begin a repeat module block@> =
|
||||
int marker = MAKEFILE_MODULE_MOM;
|
||||
@<Begin a repeat block@>;
|
||||
|
||||
@<Begin a repeat block@> =
|
||||
if (MS->inside_block) Errors::in_text_file("nested repeat blocks are not allowed", tfp);
|
||||
MS->inside_block = TRUE;
|
||||
MS->repeat_scope = MAKEFILE_MODULE_MOM;
|
||||
MS->repeat_scope = marker;
|
||||
MS->repeat_tag = Str::duplicate(mr.exp[0]);
|
||||
Str::clear(MS->repeat_block);
|
||||
Regexp::dispose_of(&mr);
|
||||
|
@ -130,24 +124,20 @@ void Makefiles::scan_makefile_line(text_stream *line, text_file_position *tfp, v
|
|||
return;
|
||||
|
||||
@<Deal with a repeat span@> =
|
||||
WRITE("%S", mr.exp[0]);
|
||||
Makefiles::repeat(OUT, I" ", FALSE, mr.exp[1], FALSE, NULL, tfp, MS, MAKEFILE_TOOL_MOM, I"all");
|
||||
WRITE("%S\n", mr.exp[2]);
|
||||
MS->last_line_was_blank = FALSE;
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
int marker = MAKEFILE_TOOL_MOM;
|
||||
@<Begin a repeat span@>;
|
||||
|
||||
@<Deal with a repeat web span@> =
|
||||
WRITE("%S", mr.exp[0]);
|
||||
Makefiles::repeat(OUT, I" ", FALSE, mr.exp[1], FALSE, NULL, tfp, MS, MAKEFILE_WEB_MOM, I"all");
|
||||
WRITE("%S\n", mr.exp[2]);
|
||||
MS->last_line_was_blank = FALSE;
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
int marker = MAKEFILE_WEB_MOM;
|
||||
@<Begin a repeat span@>;
|
||||
|
||||
@<Deal with a repeat module span@> =
|
||||
int marker = MAKEFILE_MODULE_MOM;
|
||||
@<Begin a repeat span@>;
|
||||
|
||||
@<Begin a repeat span@> =
|
||||
WRITE("%S", mr.exp[0]);
|
||||
Makefiles::repeat(OUT, I" ", FALSE, mr.exp[1], FALSE, NULL, tfp, MS, MAKEFILE_MODULE_MOM, I"all");
|
||||
Makefiles::repeat(OUT, I" ", FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, I"all");
|
||||
WRITE("%S\n", mr.exp[2]);
|
||||
MS->last_line_was_blank = FALSE;
|
||||
Regexp::dispose_of(&mr);
|
||||
|
@ -176,21 +166,18 @@ void Makefiles::scan_makefile_line(text_stream *line, text_file_position *tfp, v
|
|||
return;
|
||||
|
||||
@<Declare a tool@> =
|
||||
WRITE("%SLEAF = %S\n", mr.exp[0], mr.exp[1]);
|
||||
WRITE("%SWEB = %S\n", mr.exp[0], mr.exp[2]);
|
||||
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", mr.exp[0], mr.exp[0], mr.exp[1]);
|
||||
WRITE("%SX = $(%SWEB)/Tangled/%S\n", mr.exp[0], mr.exp[0], mr.exp[1]);
|
||||
MS->last_line_was_blank = FALSE;
|
||||
web_md *Wm = Reader::load_web_md(Pathnames::from_text(mr.exp[2]), NULL, MS->search_path, FALSE, TRUE);
|
||||
Wm->as_module->module_name = Str::duplicate(mr.exp[0]);
|
||||
Wm->as_module->module_tag = Str::duplicate(mr.exp[3]);
|
||||
Wm->as_module->origin_marker = MAKEFILE_TOOL_MOM;
|
||||
Dictionaries::create(MS->tools_dictionary, mr.exp[0]);
|
||||
Dictionaries::write_value(MS->tools_dictionary, mr.exp[0], Wm);
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
int marker = MAKEFILE_TOOL_MOM;
|
||||
@<Declare something@>;
|
||||
|
||||
@<Declare a web@> =
|
||||
int marker = MAKEFILE_WEB_MOM;
|
||||
@<Declare something@>;
|
||||
|
||||
@<Declare a module@> =
|
||||
int marker = MAKEFILE_MODULE_MOM;
|
||||
@<Declare something@>;
|
||||
|
||||
@<Declare something@> =
|
||||
WRITE("%SLEAF = %S\n", mr.exp[0], mr.exp[1]);
|
||||
WRITE("%SWEB = %S\n", mr.exp[0], mr.exp[2]);
|
||||
WRITE("%SMAKER = $(%SWEB)/%S.mk\n", mr.exp[0], mr.exp[0], mr.exp[1]);
|
||||
|
@ -199,22 +186,9 @@ void Makefiles::scan_makefile_line(text_stream *line, text_file_position *tfp, v
|
|||
web_md *Wm = Reader::load_web_md(Pathnames::from_text(mr.exp[2]), NULL, MS->search_path, FALSE, TRUE);
|
||||
Wm->as_module->module_name = Str::duplicate(mr.exp[0]);
|
||||
Wm->as_module->module_tag = Str::duplicate(mr.exp[3]);
|
||||
Wm->as_module->origin_marker = MAKEFILE_WEB_MOM;
|
||||
Dictionaries::create(MS->webs_dictionary, mr.exp[0]);
|
||||
Dictionaries::write_value(MS->webs_dictionary, mr.exp[0], Wm);
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
|
||||
@<Declare a module@> =
|
||||
WRITE("%SLEAF = %S\n", mr.exp[0], mr.exp[1]);
|
||||
WRITE("%SWEB = %S\n", mr.exp[0], mr.exp[2]);
|
||||
MS->last_line_was_blank = FALSE;
|
||||
web_md *Wm = Reader::load_web_md(Pathnames::from_text(mr.exp[2]), NULL, MS->search_path, FALSE, FALSE);
|
||||
Wm->as_module->module_name = Str::duplicate(mr.exp[0]);
|
||||
Wm->as_module->origin_marker = MAKEFILE_MODULE_MOM;
|
||||
Wm->as_module->module_tag = Str::duplicate(mr.exp[3]);
|
||||
Dictionaries::create(MS->modules_dictionary, mr.exp[0]);
|
||||
Dictionaries::write_value(MS->modules_dictionary, mr.exp[0], Wm);
|
||||
Wm->as_module->origin_marker = marker;
|
||||
Dictionaries::create(MS->tools_dictionary, mr.exp[0]);
|
||||
Dictionaries::write_value(MS->tools_dictionary, mr.exp[0], Wm);
|
||||
Regexp::dispose_of(&mr);
|
||||
return;
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ You can also, or instead, specify:
|
|||
-open weave then open woven file
|
||||
-prototype X translate makefile from prototype X
|
||||
-scan scan the web
|
||||
-sequential name woven leaves with sequential numbering (default is -no-sequential)
|
||||
-structures catalogue the structures in the web
|
||||
-tangle tangle the web into machine-compilable form
|
||||
-tangle-to X tangle, but to filename X
|
||||
|
|
|
@ -368,7 +368,9 @@ quite the same as |all|: the cover sheet (a sort of title page) is omitted.
|
|||
example, |S/tgc| and |S/tsoe| in the Goldbach web example, or |2/ec| for
|
||||
the "Enumerated Constants" section of Chapter 2 of Inweb itself. Note that
|
||||
running Inweb with |-catalogue| shows all the sections of a web, and their
|
||||
abbreviations.
|
||||
abbreviations. If it's a nuisance that these section ranges are hard to
|
||||
predict, run with |-sequential| to have them simply be |X/s1|, |X/s2|, ...,
|
||||
within each chapter, where |X| is the chapter range.
|
||||
|
||||
@h Weave tags.
|
||||
An alternative to a range is to specify a tag. Rather than weaving contiguous
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Inweb 7
|
||||
|
||||
v7 'Escape to Danger' (2 April 2020)
|
||||
v7 'Escape to Danger' (3 April 2020)
|
||||
|
||||
## About Inweb
|
||||
|
||||
|
|
833
Tangled/inweb.c
833
Tangled/inweb.c
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 2 April 2020
|
||||
Build Number: 1A08
|
||||
Build Date: 3 April 2020
|
||||
Build Number: 1A09
|
||||
|
|
|
@ -55,6 +55,7 @@ command line: there will only ever be one of these.
|
|||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">scan_switch</span><span class="plain">; </span> <span class="comment"><code class="display"><span class="extract">-scan</span></code>: simply show the syntactic scan of the source</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">weave_to_setting</span><span class="plain">; </span> <span class="comment"><code class="display"><span class="extract">-weave-to X</span></code>: the pathname X, if supplied</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">weave_into_setting</span><span class="plain">; </span> <span class="comment"><code class="display"><span class="extract">-weave-into X</span></code>: the pathname X, if supplied</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">sequential</span><span class="plain">; </span> <span class="comment">give the sections sequential sigils</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">tangle_setting</span><span class="plain">; </span> <span class="comment"><code class="display"><span class="extract">-tangle-to X</span></code>: the pathname X, if supplied</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">makefile_setting</span><span class="plain">; </span> <span class="comment"><code class="display"><span class="extract">-makefile X</span></code>: the filename X, if supplied</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">gitignore_setting</span><span class="plain">; </span> <span class="comment"><code class="display"><span class="extract">-gitignore X</span></code>: the filename X, if supplied</span>
|
||||
|
@ -133,6 +134,7 @@ then declare them.
|
|||
<span class="identifier">args</span><span class="element">.tangle_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="element">.weave_to_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="element">.weave_into_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="element">.sequential</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="element">.makefile_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="element">.gitignore_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="element">.advance_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -173,6 +175,7 @@ provides automatically.
|
|||
<span class="definitionkeyword">enum</span> <span class="constant">WEAVE_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">WEAVE_INTO_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">WEAVE_TO_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">SEQUENTIAL_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">OPEN_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">WEAVE_AS_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">WEAVE_TAG_CLSW</span>
|
||||
|
@ -238,6 +241,8 @@ provides automatically.
|
|||
<span class="identifier">L</span><span class="string">"weave, but into directory X"</span><span class="plain">);</span>
|
||||
<span class="functiontext">CommandLine::declare_switch</span><span class="plain">(</span><span class="constant">WEAVE_TO_CLSW</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"weave-to"</span><span class="plain">, 2,</span>
|
||||
<span class="identifier">L</span><span class="string">"weave, but to filename X (for single files only)"</span><span class="plain">);</span>
|
||||
<span class="functiontext">CommandLine::declare_boolean_switch</span><span class="plain">(</span><span class="constant">SEQUENTIAL_CLSW</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"sequential"</span><span class="plain">, 1,</span>
|
||||
<span class="identifier">L</span><span class="string">"name woven leaves with sequential numbering"</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="functiontext">CommandLine::declare_switch</span><span class="plain">(</span><span class="constant">OPEN_CLSW</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"open"</span><span class="plain">, 1,</span>
|
||||
<span class="identifier">L</span><span class="string">"weave then open woven file"</span><span class="plain">);</span>
|
||||
<span class="functiontext">CommandLine::declare_switch</span><span class="plain">(</span><span class="constant">WEAVE_AS_CLSW</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"weave-as"</span><span class="plain">, 2,</span>
|
||||
|
@ -320,6 +325,8 @@ provides automatically.
|
|||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">WEAVE_TO_CLSW</span><span class="plain">:</span>
|
||||
<span class="identifier">args</span><span class="plain">-</span><span class="element">>weave_to_setting</span><span class="plain"> = </span><span class="functiontext">Filenames::from_text</span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">);</span>
|
||||
<span class="functiontext">Configuration::set_fundamental_mode</span><span class="plain">(</span><span class="identifier">args</span><span class="plain">, </span><span class="constant">WEAVE_MODE</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">SEQUENTIAL_CLSW</span><span class="plain">:</span>
|
||||
<span class="identifier">args</span><span class="plain">-</span><span class="element">>sequential</span><span class="plain"> = </span><span class="identifier">val</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">OPEN_CLSW</span><span class="plain">:</span>
|
||||
<span class="identifier">args</span><span class="plain">-</span><span class="element">>open_pdf_switch</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="functiontext">Configuration::set_fundamental_mode</span><span class="plain">(</span><span class="identifier">args</span><span class="plain">, </span><span class="constant">WEAVE_MODE</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
|
|
|
@ -174,7 +174,7 @@ program: some input, some thinking, a choice of three forms of output.
|
|||
<span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">W</span><span class="plain">-</span><span class="element">>redirect_weaves_to</span><span class="plain"> = </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>weave_into_setting</span><span class="plain">;</span>
|
||||
<span class="functiontext">Reader::read_web</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>verbose_switch</span><span class="plain">);</span>
|
||||
<span class="functiontext">Parser::parse_web</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>inweb_mode</span><span class="plain">);</span>
|
||||
<span class="functiontext">Parser::parse_web</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>inweb_mode</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>sequential</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">no_inweb_errors</span><span class="plain"> == 0) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>inweb_mode</span><span class="plain"> == </span><span class="constant">TRANSLATE_MODE</span><span class="plain">) </span><<span class="cwebmacro">Translate a makefile</span> <span class="cwebmacronumber">7.1</span>>
|
||||
|
@ -391,7 +391,6 @@ which for many small webs will be the entire thing.
|
|||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Str::len</span><span class="plain">(</span><span class="identifier">pattern</span><span class="plain">-</span><span class="element">>open_command</span><span class="plain">) > 0) </span><span class="identifier">shall_we_open</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">shall_we_open</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">tag</span><span class="plain">) </span><span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"Tag!\</span><span class="plain">n</span><span class="string">"</span><span class="plain">);</span>
|
||||
<span class="functiontext">Swarm::weave_subset</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>chosen_range</span><span class="plain">, </span><span class="identifier">shall_we_open</span><span class="plain">, </span><span class="identifier">tag</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">,</span>
|
||||
<span class="identifier">ins</span><span class="plain">-</span><span class="element">>weave_to_setting</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>weave_into_setting</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>weave_docs</span><span class="plain">,</span>
|
||||
<span class="identifier">ins</span><span class="plain">-</span><span class="element">>breadcrumb_setting</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-</span><span class="element">>navigation_setting</span><span class="plain">);</span>
|
||||
|
|
|
@ -41,12 +41,16 @@ for it to do anything.
|
|||
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Parser::parse_web</span><span class="plain">(</span><span class="reserved">web</span><span class="plain"> *</span><span class="identifier">W</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">inweb_mode</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Parser::parse_web</span><span class="plain">(</span><span class="reserved">web</span><span class="plain"> *</span><span class="identifier">W</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">inweb_mode</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sequential</span><span class="plain">) {</span>
|
||||
<span class="reserved">chapter</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">;</span>
|
||||
<span class="reserved">section</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">, </span><span class="reserved">chapter</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-</span><span class="element">>chapters</span><span class="plain">)</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">section</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-</span><span class="element">>sections</span><span class="plain">)</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">, </span><span class="reserved">chapter</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-</span><span class="element">>chapters</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">section_counter</span><span class="plain"> = 1;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">section</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-</span><span class="element">>sections</span><span class="plain">) {</span>
|
||||
<<span class="cwebmacro">Parse a section</span> <span class="cwebmacronumber">1.1</span>><span class="plain">;</span>
|
||||
<span class="identifier">section_counter</span><span class="plain">++;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext">Languages::further_parsing</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-</span><span class="element">>main_language</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -352,18 +356,23 @@ also give the namespace for its functions.
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain"> = </span><span class="functiontext">Str::new</span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Str::len</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">) == 0) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">sequential</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">, </span><span class="string">"%S/"</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-</span><span class="element">>md</span><span class="plain">-</span><span class="element">>ch_range</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">, </span><span class="string">"s%d"</span><span class="plain">, </span><span class="identifier">section_counter</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">from</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">-</span><span class="element">>md</span><span class="plain">-</span><span class="element">>sect_title</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">letters_from_each_word</span><span class="plain"> = 5;</span>
|
||||
<span class="reserved">do</span><span class="plain"> {</span>
|
||||
<span class="functiontext">Str::clear</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">, </span><span class="string">"%S/"</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-</span><span class="element">>md</span><span class="plain">-</span><span class="element">>ch_range</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Make the tail using this many consonants from each word</span> <span class="cwebmacronumber">1.1.6.2.1.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (--</span><span class="identifier">letters_from_each_word</span><span class="plain"> == 0) </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">while</span><span class="plain"> (</span><span class="functiontext">Str::len</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">) > 5);</span>
|
||||
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">from</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">-</span><span class="element">>md</span><span class="plain">-</span><span class="element">>sect_title</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">letters_from_each_word</span><span class="plain"> = 5;</span>
|
||||
<span class="reserved">do</span><span class="plain"> {</span>
|
||||
<span class="functiontext">Str::clear</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">, </span><span class="string">"%S/"</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-</span><span class="element">>md</span><span class="plain">-</span><span class="element">>ch_range</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Make the tail using this many consonants from each word</span> <span class="cwebmacronumber">1.1.6.2.1.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (--</span><span class="identifier">letters_from_each_word</span><span class="plain"> == 0) </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">while</span><span class="plain"> (</span><span class="functiontext">Str::len</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain">) > 5);</span>
|
||||
|
||||
<<span class="cwebmacro">Terminate with disambiguating numbers in case of collisions</span> <span class="cwebmacronumber">1.1.6.2.1.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Terminate with disambiguating numbers in case of collisions</span> <span class="cwebmacronumber">1.1.6.2.1.2</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
|
|
@ -184,7 +184,7 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Reader::load_web_md is used in 6/mkf (<a href="6-mkf.html#SP2_11">§2.11</a>, <a href="6-mkf.html#SP2_12">§2.12</a>, <a href="6-mkf.html#SP2_13">§2.13</a>).</p>
|
||||
<p class="endnote">The function Reader::load_web_md is used in 6/mkf (<a href="6-mkf.html#SP2_11_1">§2.11.1</a>).</p>
|
||||
|
||||
<p class="endnote">The function Reader::load_web is used in 1/pc (<a href="1-pc.html#SP7">§7</a>).</p>
|
||||
|
||||
|
@ -280,6 +280,7 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
<span class="identifier">S</span><span class="plain">-</span><span class="element">>tag_with</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="functiontext">Str::len</span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-</span><span class="element">>tag_name</span><span class="plain">) > 0)</span>
|
||||
<span class="identifier">S</span><span class="plain">-</span><span class="element">>tag_with</span><span class="plain"> = </span><span class="functiontext">Tags::add_by_name</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">Sm</span><span class="plain">-</span><span class="element">>tag_name</span><span class="plain">);</span>
|
||||
<span class="identifier">S</span><span class="plain">-</span><span class="element">>sect_range</span><span class="plain"> = </span><span class="functiontext">Str::new</span><span class="plain">();</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
|
|
@ -370,9 +370,11 @@ the page, and this drops one.
|
|||
<span class="plain">}</span>
|
||||
<span class="identifier">HTML_OPEN_WITH</span><span class="plain">(</span><span class="string">"ul"</span><span class="plain">, </span><span class="string">"class=\</span><span class="plain">"</span><span class="string">crumbs\</span><span class="plain">"</span><span class="string">"</span><span class="plain">);</span>
|
||||
<span class="functiontext">HTMLFormat::drop_initial_breadcrumbs</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>breadcrumbs</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>docs_mode</span><span class="plain">);</span>
|
||||
|
||||
<span class="functiontext">HTMLFormat::breadcrumb</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="functiontext">Bibliographic::get_datum</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>weave_web</span><span class="plain">-</span><span class="element">>md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Title"</span><span class="plain">), </span><span class="identifier">I</span><span class="string">"index.html"</span><span class="plain">);</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">bct</span><span class="plain"> = </span><span class="functiontext">Bibliographic::get_datum</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>weave_web</span><span class="plain">-</span><span class="element">>md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Title"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Str::len</span><span class="plain">(</span><span class="functiontext">Bibliographic::get_datum</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>weave_web</span><span class="plain">-</span><span class="element">>md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Short Title"</span><span class="plain">)) > 0) {</span>
|
||||
<span class="identifier">bct</span><span class="plain"> = </span><span class="functiontext">Bibliographic::get_datum</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>weave_web</span><span class="plain">-</span><span class="element">>md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Short Title"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext">HTMLFormat::breadcrumb</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">bct</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"index.html"</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">wv</span><span class="plain">-</span><span class="element">>weave_web</span><span class="plain">-</span><span class="element">>md</span><span class="plain">-</span><span class="element">>chaptered</span><span class="plain">) {</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">chapter_link</span><span class="plain">);</span>
|
||||
|
|
|
@ -136,13 +136,8 @@ following a "prototype".
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>inside_block</span><span class="plain">) </span><span class="functiontext">Errors::in_text_file</span><span class="plain">(</span><span class="string">"nested repeat blocks are not allowed"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>inside_block</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_scope</span><span class="plain"> = </span><span class="constant">MAKEFILE_TOOL_MOM</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_tag</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Str::clear</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_block</span><span class="plain">);</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_TOOL_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Begin a repeat block</span> <span class="cwebmacronumber">2.1.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -155,13 +150,8 @@ following a "prototype".
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>inside_block</span><span class="plain">) </span><span class="functiontext">Errors::in_text_file</span><span class="plain">(</span><span class="string">"nested repeat blocks are not allowed"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>inside_block</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_scope</span><span class="plain"> = </span><span class="constant">MAKEFILE_WEB_MOM</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_tag</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Str::clear</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_block</span><span class="plain">);</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_WEB_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Begin a repeat block</span> <span class="cwebmacronumber">2.1.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -173,10 +163,24 @@ following a "prototype".
|
|||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_MODULE_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Begin a repeat block</span> <span class="cwebmacronumber">2.1.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_1_1"></a><b>§2.1.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Begin a repeat block</span> <span class="cwebmacronumber">2.1.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>inside_block</span><span class="plain">) </span><span class="functiontext">Errors::in_text_file</span><span class="plain">(</span><span class="string">"nested repeat blocks are not allowed"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>inside_block</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_scope</span><span class="plain"> = </span><span class="constant">MAKEFILE_MODULE_MOM</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_scope</span><span class="plain"> = </span><span class="identifier">marker</span><span class="plain">;</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_tag</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Str::clear</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>repeat_block</span><span class="plain">);</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
|
@ -185,7 +189,7 @@ following a "prototype".
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP2_1">§2.1</a>, <a href="#SP2_2">§2.2</a>, <a href="#SP2_3">§2.3</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_4"></a><b>§2.4. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Deal with a line in a repeat block</span> <span class="cwebmacronumber">2.4</span>> =
|
||||
|
@ -226,12 +230,8 @@ following a "prototype".
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Makefiles::repeat</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">" "</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1], </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">, </span><span class="constant">MAKEFILE_TOOL_MOM</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"all"</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>last_line_was_blank</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_TOOL_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Begin a repeat span</span> <span class="cwebmacronumber">2.6.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -244,12 +244,8 @@ following a "prototype".
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Makefiles::repeat</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">" "</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1], </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">, </span><span class="constant">MAKEFILE_WEB_MOM</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"all"</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>last_line_was_blank</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_WEB_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Begin a repeat span</span> <span class="cwebmacronumber">2.6.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -261,9 +257,23 @@ following a "prototype".
|
|||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_MODULE_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Begin a repeat span</span> <span class="cwebmacronumber">2.6.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_6_1"></a><b>§2.6.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Begin a repeat span</span> <span class="cwebmacronumber">2.6.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Makefiles::repeat</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">" "</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1], </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">, </span><span class="constant">MAKEFILE_MODULE_MOM</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"all"</span><span class="plain">);</span>
|
||||
<span class="functiontext">Makefiles::repeat</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">" "</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1], </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">, </span><span class="identifier">marker</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"all"</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>last_line_was_blank</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
|
@ -272,7 +282,7 @@ following a "prototype".
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP2_6">§2.6</a>, <a href="#SP2_7">§2.7</a>, <a href="#SP2_8">§2.8</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_9"></a><b>§2.9. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Expand platform-settings</span> <span class="cwebmacronumber">2.9</span>> =
|
||||
|
@ -322,19 +332,8 @@ following a "prototype".
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SLEAF = %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SWEB = %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SMAKER = $(%SWEB)/%S.mk\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SX = $(%SWEB)/Tangled/%S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>last_line_was_blank</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">web_md</span><span class="plain"> *</span><span class="identifier">Wm</span><span class="plain"> = </span><span class="functiontext">Reader::load_web_md</span><span class="plain">(</span><span class="functiontext">Pathnames::from_text</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]), </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>search_path</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>module_name</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>module_tag</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[3]);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>origin_marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_TOOL_MOM</span><span class="plain">;</span>
|
||||
<span class="functiontext">Dictionaries::create</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>tools_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>tools_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">Wm</span><span class="plain">);</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_TOOL_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Declare something</span> <span class="cwebmacronumber">2.11.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -347,19 +346,8 @@ following a "prototype".
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SLEAF = %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SWEB = %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SMAKER = $(%SWEB)/%S.mk\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SX = $(%SWEB)/Tangled/%S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>last_line_was_blank</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">web_md</span><span class="plain"> *</span><span class="identifier">Wm</span><span class="plain"> = </span><span class="functiontext">Reader::load_web_md</span><span class="plain">(</span><span class="functiontext">Pathnames::from_text</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]), </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>search_path</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>module_name</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>module_tag</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[3]);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>origin_marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_WEB_MOM</span><span class="plain">;</span>
|
||||
<span class="functiontext">Dictionaries::create</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>webs_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>webs_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">Wm</span><span class="plain">);</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_WEB_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Declare something</span> <span class="cwebmacronumber">2.11.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -371,23 +359,39 @@ following a "prototype".
|
|||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_MODULE_MOM</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Declare something</span> <span class="cwebmacronumber">2.11.1</span>><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_11_1"></a><b>§2.11.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Declare something</span> <span class="cwebmacronumber">2.11.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SLEAF = %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SWEB = %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SMAKER = $(%SWEB)/%S.mk\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%SX = $(%SWEB)/Tangled/%S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">MS</span><span class="plain">-</span><span class="element">>last_line_was_blank</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">web_md</span><span class="plain"> *</span><span class="identifier">Wm</span><span class="plain"> = </span><span class="functiontext">Reader::load_web_md</span><span class="plain">(</span><span class="functiontext">Pathnames::from_text</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]), </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>search_path</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">web_md</span><span class="plain"> *</span><span class="identifier">Wm</span><span class="plain"> = </span><span class="functiontext">Reader::load_web_md</span><span class="plain">(</span><span class="functiontext">Pathnames::from_text</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[2]), </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>search_path</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>module_name</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>origin_marker</span><span class="plain"> = </span><span class="constant">MAKEFILE_MODULE_MOM</span><span class="plain">;</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>module_tag</span><span class="plain"> = </span><span class="functiontext">Str::duplicate</span><span class="plain">(</span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[3]);</span>
|
||||
<span class="functiontext">Dictionaries::create</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>modules_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>modules_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">Wm</span><span class="plain">);</span>
|
||||
<span class="identifier">Wm</span><span class="plain">-</span><span class="element">>as_module</span><span class="plain">-</span><span class="element">>origin_marker</span><span class="plain"> = </span><span class="identifier">marker</span><span class="plain">;</span>
|
||||
<span class="functiontext">Dictionaries::create</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>tools_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0]);</span>
|
||||
<span class="functiontext">Dictionaries::write_value</span><span class="plain">(</span><span class="identifier">MS</span><span class="plain">-</span><span class="element">>tools_dictionary</span><span class="plain">, </span><span class="identifier">mr</span><span class="element">.exp</span><span class="plain">[0], </span><span class="identifier">Wm</span><span class="plain">);</span>
|
||||
<span class="functiontext">Regexp::dispose_of</span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2">§2</a>.</p>
|
||||
<p class="endnote">This code is used in <a href="#SP2_11">§2.11</a>, <a href="#SP2_12">§2.12</a>, <a href="#SP2_13">§2.13</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_14"></a><b>§2.14. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Expand dependent-files</span> <span class="cwebmacronumber">2.14</span>> =
|
||||
|
@ -611,7 +615,7 @@ following a "prototype".
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The function Makefiles::repeat is used in <a href="#SP2_5">§2.5</a>, <a href="#SP2_6">§2.6</a>, <a href="#SP2_7">§2.7</a>, <a href="#SP2_8">§2.8</a>.</p>
|
||||
<p class="endnote">The function Makefiles::repeat is used in <a href="#SP2_5">§2.5</a>, <a href="#SP2_6_1">§2.6.1</a>.</p>
|
||||
|
||||
<hr class="tocbar">
|
||||
<ul class="toc"><li><i>(This section begins Chapter 6: Extras.)</i></li><li><a href="6-gs.html">Continue with 'Git Support'</a></li></ul><hr class="tocbar">
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
-open weave then open woven file
|
||||
-prototype X translate makefile from prototype X
|
||||
-scan scan the web
|
||||
-sequential name woven leaves with sequential numbering (default is -no-sequential)
|
||||
-structures catalogue the structures in the web
|
||||
-tangle tangle the web into machine-compilable form
|
||||
-tangle-to X tangle, but to filename X
|
||||
|
|
|
@ -590,7 +590,9 @@ quite the same as <code class="display"><span class="extract">all</span></code>:
|
|||
example, <code class="display"><span class="extract">S/tgc</span></code> and <code class="display"><span class="extract">S/tsoe</span></code> in the Goldbach web example, or <code class="display"><span class="extract">2/ec</span></code> for
|
||||
the "Enumerated Constants" section of Chapter 2 of Inweb itself. Note that
|
||||
running Inweb with <code class="display"><span class="extract">-catalogue</span></code> shows all the sections of a web, and their
|
||||
abbreviations.
|
||||
abbreviations. If it's a nuisance that these section ranges are hard to
|
||||
predict, run with <code class="display"><span class="extract">-sequential</span></code> to have them simply be <code class="display"><span class="extract">X/s1</span></code>, <code class="display"><span class="extract">X/s2</span></code>, ...,
|
||||
within each chapter, where <code class="display"><span class="extract">X</span></code> is the chapter range.
|
||||
</li></ul>
|
||||
<p class="inwebparagraph"><a id="SP13"></a><b>§13. Weave tags. </b>An alternative to a range is to specify a tag. Rather than weaving contiguous
|
||||
pieces of the web, this collates together all those paragraphs with a given
|
||||
|
|
Loading…
Reference in a new issue