Rudimentary colonies
This commit is contained in:
parent
512adb22a9
commit
ae9df5f137
125 changed files with 5105 additions and 2758 deletions
|
@ -17,6 +17,8 @@ case, |_array_MT| appended. MT stands for "memory type".
|
|||
|
||||
@e breadcrumb_request_MT
|
||||
@e chapter_MT
|
||||
@e colony_MT
|
||||
@e colony_member_MT
|
||||
@e colouring_language_block_MT
|
||||
@e colouring_rule_MT
|
||||
@e enumeration_set_MT
|
||||
|
@ -56,6 +58,8 @@ types.
|
|||
ALLOCATE_IN_ARRAYS(source_line, 1000)
|
||||
ALLOCATE_INDIVIDUALLY(breadcrumb_request)
|
||||
ALLOCATE_INDIVIDUALLY(chapter)
|
||||
ALLOCATE_INDIVIDUALLY(colony)
|
||||
ALLOCATE_INDIVIDUALLY(colony_member)
|
||||
ALLOCATE_INDIVIDUALLY(colouring_language_block)
|
||||
ALLOCATE_INDIVIDUALLY(colouring_rule)
|
||||
ALLOCATE_INDIVIDUALLY(enumeration_set)
|
||||
|
|
|
@ -38,6 +38,7 @@ typedef struct inweb_instructions {
|
|||
struct filename *writeme_setting; /* |-write-me X|: advance build file X */
|
||||
struct filename *prototype_setting; /* |-prototype X|: the pathname X, if supplied */
|
||||
struct filename *navigation_setting; /* |-navigation X|: the filename X, if supplied */
|
||||
struct filename *colony_setting; /* |-colony X|: the filename X, if supplied */
|
||||
struct linked_list *breadcrumb_setting; /* of |breadcrumb_request| */
|
||||
int verbose_switch; /* |-verbose|: print names of files read to stdout */
|
||||
int targets; /* used only for parsing */
|
||||
|
@ -102,6 +103,7 @@ inweb_instructions Configuration::read(int argc, char **argv) {
|
|||
args.writeme_setting = NULL;
|
||||
args.prototype_setting = NULL;
|
||||
args.navigation_setting = NULL;
|
||||
args.colony_setting = NULL;
|
||||
args.breadcrumb_setting = NEW_LINKED_LIST(breadcrumb_request);
|
||||
args.tag_setting = Str::new();
|
||||
args.weave_pattern = Str::new_from_wide_string(L"HTML");
|
||||
|
@ -151,6 +153,7 @@ provides automatically.
|
|||
@e WEAVE_DOCS_CLSW
|
||||
@e BREADCRUMB_CLSW
|
||||
@e NAVIGATION_CLSW
|
||||
@e COLONY_CLSW
|
||||
|
||||
@e TANGLING_CLSG
|
||||
|
||||
|
@ -234,6 +237,8 @@ provides automatically.
|
|||
L"use the text X as a breadcrumb in overhead navigation");
|
||||
CommandLine::declare_switch(NAVIGATION_CLSW, L"navigation", 2,
|
||||
L"use the file X as a column of navigation links");
|
||||
CommandLine::declare_switch(COLONY_CLSW, L"colony", 2,
|
||||
L"use the file X as a list of webs in this colony");
|
||||
CommandLine::end_group();
|
||||
|
||||
CommandLine::begin_group(TANGLING_CLSG,
|
||||
|
@ -341,6 +346,9 @@ void Configuration::switch(int id, int val, text_stream *arg, void *state) {
|
|||
case NAVIGATION_CLSW:
|
||||
args->navigation_setting = Filenames::from_text(arg);
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
case COLONY_CLSW:
|
||||
args->colony_setting = Filenames::from_text(arg);
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
|
||||
/* Tangle-related */
|
||||
case TANGLE_CLSW:
|
||||
|
|
|
@ -242,6 +242,8 @@ which for many small webs will be the entire thing.
|
|||
if ((ins->chosen_range_actually_chosen == FALSE) && (ins->chosen_file == NULL))
|
||||
Configuration::set_range(ins, pattern->default_range);
|
||||
|
||||
if (ins->colony_setting) Colonies::load(ins->colony_setting);
|
||||
|
||||
int r = Formats::begin_weaving(W, pattern);
|
||||
if (r != SWARM_OFF_SWM) ins->swarm_mode = r;
|
||||
@<Assign section numbers for printing purposes@>;
|
||||
|
@ -286,7 +288,7 @@ which for many small webs will be the entire thing.
|
|||
@<Assign section numbers for printing purposes@> =
|
||||
section *S; int k = 1;
|
||||
LOOP_OVER(S, section)
|
||||
if (Reader::range_within(S->sect_range, ins->chosen_range))
|
||||
if (Reader::range_within(S->md->sect_range, ins->chosen_range))
|
||||
S->printed_number = k++;
|
||||
|
||||
@h Error messages.
|
||||
|
|
|
@ -42,7 +42,8 @@ typedef struct source_line {
|
|||
} source_line;
|
||||
|
||||
@ =
|
||||
source_line *Lines::new_source_line(text_stream *line, text_file_position *tfp) {
|
||||
source_line *Lines::new_source_line_in(text_stream *line, text_file_position *tfp,
|
||||
section *S) {
|
||||
source_line *sl = CREATE(source_line);
|
||||
sl->text = Str::duplicate(line);
|
||||
sl->text_operand = Str::new();
|
||||
|
@ -62,7 +63,10 @@ source_line *Lines::new_source_line(text_stream *line, text_file_position *tfp)
|
|||
|
||||
if (tfp) sl->source = *tfp; else sl->source = TextFiles::nowhere();
|
||||
|
||||
sl->owning_section = NULL;
|
||||
sl->owning_section = S;
|
||||
sl->owning_section->sect_extent++;
|
||||
sl->owning_section->owning_chapter->owning_web->web_extent++;
|
||||
|
||||
sl->next_line = NULL;
|
||||
sl->owning_paragraph = NULL;
|
||||
return sl;
|
||||
|
|
|
@ -17,13 +17,9 @@ for it to do anything.
|
|||
void Parser::parse_web(web *W, int inweb_mode, int sequential) {
|
||||
chapter *C;
|
||||
section *S;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters) {
|
||||
int section_counter = 1;
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections) {
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
@<Parse a section@>;
|
||||
section_counter++;
|
||||
}
|
||||
}
|
||||
LanguageMethods::parse_types(W, W->main_language);
|
||||
LanguageMethods::parse_functions(W, W->main_language);
|
||||
LanguageMethods::further_parsing(W, W->main_language);
|
||||
|
@ -130,7 +126,7 @@ immediately adjacent on the same line.
|
|||
reparsing from there.
|
||||
|
||||
@<Insert an implied paragraph break@> =
|
||||
source_line *NL = Lines::new_source_line(I"@", &(L->source));
|
||||
source_line *NL = Lines::new_source_line_in(I"@", &(L->source), S);
|
||||
PL->next_line = NL;
|
||||
NL->next_line = L;
|
||||
L = PL;
|
||||
|
@ -174,110 +170,40 @@ come literally from the source web.
|
|||
L->category = CHAPTER_HEADING_LCAT;
|
||||
}
|
||||
|
||||
@ The top line of a section gives its title and range; in InC, it can
|
||||
also give the namespace for its functions.
|
||||
@ The top line of a section gives its title; in InC, it can also give the
|
||||
namespace for its functions.
|
||||
|
||||
@<Parse the line as a probable section heading@> =
|
||||
match_results mr = Regexp::create_mr();
|
||||
if (Regexp::match(&mr, L->text, L"%[(%C+)%] (%C+/%C+): (%c+).")) {
|
||||
if (S->md->using_syntax >= V2_SYNTAX)
|
||||
Parser::wrong_version(S->md->using_syntax, L,
|
||||
"section range in header line", V1_SYNTAX);
|
||||
S->sect_namespace = Str::duplicate(mr.exp[0]);
|
||||
S->sect_range = Str::duplicate(mr.exp[1]);
|
||||
S->md->sect_range = Str::duplicate(mr.exp[1]);
|
||||
S->md->sect_title = Str::duplicate(mr.exp[2]);
|
||||
L->text_operand = Str::duplicate(mr.exp[2]);
|
||||
L->category = SECTION_HEADING_LCAT;
|
||||
} else if (Regexp::match(&mr, L->text, L"(%C+/%C+): (%c+).")) {
|
||||
S->sect_range = Str::duplicate(mr.exp[0]);
|
||||
if (S->md->using_syntax >= V2_SYNTAX)
|
||||
Parser::wrong_version(S->md->using_syntax, L,
|
||||
"section range in header line", V1_SYNTAX);
|
||||
S->md->sect_range = Str::duplicate(mr.exp[0]);
|
||||
S->md->sect_title = Str::duplicate(mr.exp[1]);
|
||||
L->text_operand = Str::duplicate(mr.exp[1]);
|
||||
L->category = SECTION_HEADING_LCAT;
|
||||
} else if (Regexp::match(&mr, L->text, L"%[(%C+::)%] (%c+).")) {
|
||||
S->sect_namespace = Str::duplicate(mr.exp[0]);
|
||||
S->md->sect_title = Str::duplicate(mr.exp[1]);
|
||||
@<Set the range to an automatic abbreviation of the relative pathname@>;
|
||||
L->text_operand = Str::duplicate(mr.exp[1]);
|
||||
L->category = SECTION_HEADING_LCAT;
|
||||
} else if (Regexp::match(&mr, L->text, L"(%c+).")) {
|
||||
S->md->sect_title = Str::duplicate(mr.exp[0]);
|
||||
@<Set the range to an automatic abbreviation of the relative pathname@>;
|
||||
L->text_operand = Str::duplicate(mr.exp[0]);
|
||||
L->category = SECTION_HEADING_LCAT;
|
||||
}
|
||||
Regexp::dispose_of(&mr);
|
||||
|
||||
@ If no range is supplied, we make one ourselves.
|
||||
|
||||
@<Set the range to an automatic abbreviation of the relative pathname@> =
|
||||
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);
|
||||
|
||||
@<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.
|
||||
|
||||
@<Make the tail using this many consonants from each word@> =
|
||||
int sn = 0, sw = Str::len(S->sect_range);
|
||||
if (Str::get_at(from, sn) == FOLDER_SEPARATOR) sn++;
|
||||
int letters_from_current_word = 0;
|
||||
while ((Str::get_at(from, sn)) && (Str::get_at(from, sn) != '.')) {
|
||||
if (Str::get_at(from, sn) == ' ') letters_from_current_word = 0;
|
||||
else {
|
||||
if (letters_from_current_word < letters_from_each_word) {
|
||||
if (Str::get_at(from, sn) != '-') {
|
||||
int l = tolower(Str::get_at(from, sn));
|
||||
if ((letters_from_current_word == 0) ||
|
||||
((l != 'a') && (l != 'e') && (l != 'i') && (l != 'o') && (l != 'u'))) {
|
||||
Str::put_at(S->sect_range, sw++, l); Str::put_at(S->sect_range, sw, 0);
|
||||
letters_from_current_word++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sn++;
|
||||
}
|
||||
|
||||
@ We never want two sections to have the same range.
|
||||
|
||||
@<Terminate with disambiguating numbers in case of collisions@> =
|
||||
TEMPORARY_TEXT(original_range);
|
||||
Str::copy(original_range, S->sect_range);
|
||||
int disnum = 0, collision = FALSE;
|
||||
do {
|
||||
if (disnum++ > 0) {
|
||||
int ldn = 4;
|
||||
if (disnum >= 1000) ldn = 3;
|
||||
else if (disnum >= 100) ldn = 2;
|
||||
else if (disnum >= 10) ldn = 1;
|
||||
else ldn = 0;
|
||||
Str::clear(S->sect_range);
|
||||
WRITE_TO(S->sect_range, "%S", original_range);
|
||||
Str::truncate(S->sect_range, Str::len(S->sect_range) - ldn);
|
||||
WRITE_TO(S->sect_range, "%d", disnum);
|
||||
}
|
||||
collision = FALSE;
|
||||
chapter *C;
|
||||
section *S2;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S2, section, C->sections)
|
||||
if ((S2 != S) && (Str::eq(S2->sect_range, S->sect_range))) {
|
||||
collision = TRUE; break;
|
||||
}
|
||||
} while (collision);
|
||||
DISCARD_TEXT(original_range);
|
||||
|
||||
@ Version 1 syntax was cluttered up with a number of hardly-used markup
|
||||
syntaxes called "commands", written in double squared brackets |[[Thus]]|.
|
||||
In version 2, this notation is never used.
|
||||
|
@ -471,13 +397,13 @@ division in the current section.
|
|||
text_stream *T;
|
||||
source_line *latest = L;
|
||||
LOOP_OVER_LINKED_LIST(T, text_stream, lines) {
|
||||
source_line *TL = Lines::new_source_line(T, &(L->source));
|
||||
source_line *TL = Lines::new_source_line_in(T, &(L->source), S);
|
||||
TL->next_line = latest->next_line;
|
||||
TL->plainer = L->plainer;
|
||||
latest->next_line = TL;
|
||||
latest = TL;
|
||||
}
|
||||
source_line *EEL = Lines::new_source_line(I"=", &(L->source));
|
||||
source_line *EEL = Lines::new_source_line_in(I"=", &(L->source), S);
|
||||
EEL->next_line = latest->next_line;
|
||||
latest->next_line = EEL;
|
||||
code_lcat_for_body = TEXT_EXTRACT_LCAT;
|
||||
|
|
|
@ -29,7 +29,7 @@ typedef struct web {
|
|||
struct web_md *md;
|
||||
struct linked_list *chapters; /* of |chapter| (including Sections, Preliminaries, etc.) */
|
||||
|
||||
int no_lines; /* total lines in literate source, excluding contents */
|
||||
int web_extent; /* total lines in literate source, excluding contents */
|
||||
int no_paragraphs; /* this will be at least 1 */
|
||||
|
||||
struct programming_language *main_language; /* in which most of the sections are written */
|
||||
|
@ -69,7 +69,6 @@ typedef struct section {
|
|||
|
||||
struct text_stream *sect_namespace; /* e.g., "Text::Languages::" */
|
||||
struct text_stream *sect_purpose; /* e.g., "To manage the zoo, and feed all penguins" */
|
||||
struct text_stream *sect_range; /* e.g., "9/tfto" */
|
||||
int barred; /* if version 1 syntax, contains a dividing bar? */
|
||||
struct programming_language *sect_language; /* in which this section is written */
|
||||
struct tangle_target *sect_target; /* |NULL| unless this section produces a tangle of its own */
|
||||
|
@ -147,7 +146,7 @@ web *Reader::load_web(pathname *P, filename *alt_F, module_search *I, int verbos
|
|||
W->as_ebook = NULL;
|
||||
W->redirect_weaves_to = NULL;
|
||||
W->main_language = Languages::default(W);
|
||||
W->no_lines = 0; W->no_paragraphs = 0;
|
||||
W->web_extent = 0; W->no_paragraphs = 0;
|
||||
text_stream *language_name = Bibliographic::get_datum(W->md, I"Language");
|
||||
if (Str::len(language_name) > 0)
|
||||
W->main_language = Languages::find_by_name(language_name, W);
|
||||
|
@ -188,7 +187,6 @@ 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;
|
||||
|
@ -274,10 +272,9 @@ void Reader::scan_source_line(text_stream *line, text_file_position *tfp, void *
|
|||
}
|
||||
|
||||
@<Accept this as a line belonging to this section and chapter@> =
|
||||
source_line *sl = Lines::new_source_line(line, tfp);
|
||||
source_line *sl = Lines::new_source_line_in(line, tfp, S);
|
||||
|
||||
/* enter this in its section's linked list of lines: */
|
||||
sl->owning_section = S;
|
||||
if (S->first_line == NULL) S->first_line = sl;
|
||||
else S->last_line->next_line = sl;
|
||||
S->last_line = sl;
|
||||
|
@ -285,10 +282,6 @@ void Reader::scan_source_line(text_stream *line, text_file_position *tfp, void *
|
|||
/* we haven't detected paragraph boundaries yet, so: */
|
||||
sl->owning_paragraph = NULL;
|
||||
|
||||
/* and keep count: */
|
||||
sl->owning_section->sect_extent++;
|
||||
sl->owning_section->owning_chapter->owning_web->no_lines++;
|
||||
|
||||
@h Woven and Tangled folders.
|
||||
We abstract these in order to be able to respond well to their not existing:
|
||||
|
||||
|
@ -329,7 +322,7 @@ section *Reader::get_section_for_range(web *W, text_stream *range) {
|
|||
if (W)
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
if (Str::eq(S->sect_range, range))
|
||||
if (Str::eq(S->md->sect_range, range))
|
||||
return S;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -436,7 +429,7 @@ void Reader::print_web_statistics(web *W) {
|
|||
PRINT("%d section%s : %d paragraph%s : %d line%s\n",
|
||||
s, (s == 1)?"":"s",
|
||||
W->no_paragraphs, (W->no_paragraphs == 1)?"":"s",
|
||||
W->no_lines, (W->no_lines == 1)?"":"s");
|
||||
W->web_extent, (W->web_extent == 1)?"":"s");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ void Analyser::catalogue_the_sections(web *W, text_stream *range, int form) {
|
|||
section *S;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections) {
|
||||
if (max_range_width < Str::len(S->sect_range)) max_range_width = Str::len(S->sect_range);
|
||||
if (max_range_width < Str::len(S->md->sect_range)) max_range_width = Str::len(S->md->sect_range);
|
||||
TEMPORARY_TEXT(main_title);
|
||||
WRITE_TO(main_title, "%S/%S", C->md->ch_basic_title, S->md->sect_title);
|
||||
if (max_width < Str::len(main_title)) max_width = Str::len(main_title);
|
||||
|
@ -67,8 +67,8 @@ void Analyser::catalogue_the_sections(web *W, text_stream *range, int form) {
|
|||
LOOP_OVER_LINKED_LIST(S, section, C->sections) {
|
||||
TEMPORARY_TEXT(main_title);
|
||||
WRITE_TO(main_title, "%S/%S", C->md->ch_basic_title, S->md->sect_title);
|
||||
PRINT("%4d %S", S->sect_extent, S->sect_range);
|
||||
for (int i = Str::len(S->sect_range); i<max_range_width+2; i++) PRINT(" ");
|
||||
PRINT("%4d %S", S->sect_extent, S->md->sect_range);
|
||||
for (int i = Str::len(S->md->sect_range); i<max_range_width+2; i++) PRINT(" ");
|
||||
PRINT("%S", main_title);
|
||||
for (int i = Str::len(main_title); i<max_width+2; i++) PRINT(" ");
|
||||
if (form != BASIC_SECTIONCAT)
|
||||
|
|
|
@ -303,8 +303,8 @@ void Indexer::save_template_line(text_stream *line, text_file_position *tfp, voi
|
|||
((chapter *) CONTENT_IN_ITEM(cp->repeat_stack_threshold[j], chapter))->md->ch_range);
|
||||
else if (cp->repeat_stack_level[j] == SECTION_LEVEL)
|
||||
PRINT(" %d: %S/%S",
|
||||
j, ((section *) CONTENT_IN_ITEM(cp->repeat_stack_variable[j], section))->sect_range,
|
||||
((section *) CONTENT_IN_ITEM(cp->repeat_stack_threshold[j], section))->sect_range);
|
||||
j, ((section *) CONTENT_IN_ITEM(cp->repeat_stack_variable[j], section))->md->sect_range,
|
||||
((section *) CONTENT_IN_ITEM(cp->repeat_stack_threshold[j], section))->md->sect_range);
|
||||
}
|
||||
PRINT("\n");
|
||||
|
||||
|
@ -319,7 +319,7 @@ chapter as its value during the sole iteration.
|
|||
section *S;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
if (Str::eq(S->sect_range, mr.exp[0])) {
|
||||
if (Str::eq(S->md->sect_range, mr.exp[0])) {
|
||||
Indexer::start_CI_loop(cp, SECTION_LEVEL, S_item, S_item, lpos);
|
||||
Regexp::dispose_of(&mr);
|
||||
goto CYCLE;
|
||||
|
@ -475,6 +475,10 @@ its square-bracketed parts.
|
|||
cp->restrict_to_range, cp->nav_pattern, cp->nav_file, cp->leafname);
|
||||
} else if (Regexp::match(&mr, varname, L"Breadcrumbs")) {
|
||||
HTMLFormat::drop_initial_breadcrumbs(substituted, cp->crumbs, cp->docs_mode);
|
||||
} else if (Str::eq_wide_string(varname, L"Plugins")) {
|
||||
weave_plugin *wp;
|
||||
LOOP_OVER_LINKED_LIST(wp, weave_plugin, cp->nav_pattern->plugins)
|
||||
WeavePlugins::include(OUT, cp->nav_web, wp, cp->nav_pattern);
|
||||
} else if (Regexp::match(&mr, varname, L"Modules")) {
|
||||
@<Substitute the list of imported modules@>;
|
||||
} else if (Regexp::match(&mr, varname, L"Chapter (%c+)")) {
|
||||
|
@ -543,14 +547,14 @@ its square-bracketed parts.
|
|||
} else if (Str::eq_wide_string(detail, L"Purpose")) {
|
||||
Str::copy(substituted, S->sect_purpose);
|
||||
} else if (Str::eq_wide_string(detail, L"Code")) {
|
||||
Str::copy(substituted, S->sect_range);
|
||||
Str::copy(substituted, S->md->sect_range);
|
||||
} else if (Str::eq_wide_string(detail, L"Lines")) {
|
||||
WRITE_TO(substituted, "%d", S->sect_extent);
|
||||
} else if (Str::eq_wide_string(detail, L"Source")) {
|
||||
WRITE_TO(substituted, "%f", S->md->source_file_for_section);
|
||||
} else if (Str::eq_wide_string(detail, L"Page")) {
|
||||
TEMPORARY_TEXT(linkto);
|
||||
Str::copy(linkto, S->sect_range);
|
||||
Str::copy(linkto, S->md->sect_range);
|
||||
LOOP_THROUGH_TEXT(P, linkto)
|
||||
if ((Str::get(P) == '/') || (Str::get(P) == ' '))
|
||||
Str::put(P, '-');
|
||||
|
|
|
@ -34,9 +34,9 @@ void Swarm::weave(web *W, text_stream *range, int swarm_mode, theme_tag *tag,
|
|||
}
|
||||
if (swarm_mode == SWARM_SECTIONS_SWM)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
if (Reader::range_within(S->sect_range, range))
|
||||
if (Reader::range_within(S->md->sect_range, range))
|
||||
S->sect_weave = Swarm::weave_subset(W,
|
||||
S->sect_range, FALSE, tag, pattern, to, into, docs_mode,
|
||||
S->md->sect_range, FALSE, tag, pattern, to, into, docs_mode,
|
||||
breadcrumbs, navigation);
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@ typedef struct weave_target {
|
|||
section *S;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, W->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
if (Reader::range_within(S->sect_range, wt->weave_range))
|
||||
if (Reader::range_within(S->md->sect_range, wt->weave_range))
|
||||
has_content = TRUE;
|
||||
if (has_content == FALSE)
|
||||
Errors::fatal("no sections match that range");
|
||||
|
|
|
@ -53,7 +53,7 @@ int Weaver::weave_source(web *W, weave_target *wv) {
|
|||
if (C->md->imported == FALSE) {
|
||||
Str::clear(state->chaptermark);
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
if (Reader::range_within(S->sect_range, wv->weave_range)) {
|
||||
if (Reader::range_within(S->md->sect_range, wv->weave_range)) {
|
||||
latest_section = S;
|
||||
@<Wipe the slate clean of footnotes@>;
|
||||
LanguageMethods::begin_weave(S, wv);
|
||||
|
@ -423,8 +423,7 @@ and macro usage is rendered differently.
|
|||
W, C, S, L, matter, concluding_comment)) continue;
|
||||
|
||||
TEMPORARY_TEXT(colouring);
|
||||
LanguageMethods::syntax_colour(OUT, S->sect_language, wv, W, C, S, L,
|
||||
matter, colouring);
|
||||
LanguageMethods::syntax_colour(OUT, S->sect_language, wv, L, matter, colouring);
|
||||
|
||||
int found = 0;
|
||||
@<Find macro usages and adjust syntax colouring accordingly@>;
|
||||
|
@ -623,7 +622,7 @@ in TeX's deeply peculiar font encoding system.
|
|||
if (weight == 2) {
|
||||
Str::copy(state->sectionmark, L->text_operand);
|
||||
if (wv->pattern->show_abbrevs == FALSE) Str::clear(state->chaptermark);
|
||||
else if (Str::len(S->sect_range) > 0) Str::copy(state->chaptermark, S->sect_range);
|
||||
else if (Str::len(S->md->sect_range) > 0) Str::copy(state->chaptermark, S->md->sect_range);
|
||||
if (Str::len(state->chaptermark) > 0) {
|
||||
Str::clear(state->sectionmark);
|
||||
WRITE_TO(state->sectionmark, " - %S", L->text_operand);
|
||||
|
@ -829,7 +828,7 @@ void Weaver::show_endnotes_on_previous_paragraph(OUTPUT_STREAM,
|
|||
LOOP_OVER(S, section)
|
||||
if ((S->scratch_flag) && (S != P->under_section)) {
|
||||
if (c++ > 0) Formats::text(OUT, wv, I", ");
|
||||
Formats::text(OUT, wv, S->sect_range);
|
||||
Formats::text(OUT, wv, S->md->sect_range);
|
||||
}
|
||||
if (P->under_section->scratch_flag) Formats::text(OUT, wv, I" and here");
|
||||
}
|
||||
|
@ -910,7 +909,7 @@ int Weaver::weave_table_of_contents(OUTPUT_STREAM, weave_target *wv, section *S)
|
|||
noteworthy++;
|
||||
if (noteworthy == 0) return FALSE;
|
||||
|
||||
Formats::toc(OUT, wv, 1, S->sect_range, I"", NULL);
|
||||
Formats::toc(OUT, wv, 1, S->md->sect_range, I"", NULL);
|
||||
noteworthy = 0;
|
||||
LOOP_OVER_LINKED_LIST(P, paragraph, S->paragraphs)
|
||||
if ((P->weight > 0) && ((S->barred == FALSE) || (P->above_bar == FALSE))) {
|
||||
|
|
|
@ -276,9 +276,9 @@ void ACMESupport::reset_syntax_colouring(programming_language *pl) {
|
|||
Painter::reset_syntax_colouring(pl);
|
||||
}
|
||||
|
||||
int ACMESupport::syntax_colour(programming_language *pl, text_stream *OUT, weave_target *wv,
|
||||
web *W, chapter *C, section *S, source_line *L, text_stream *matter,
|
||||
text_stream *colouring) {
|
||||
int ACMESupport::syntax_colour(programming_language *pl, text_stream *OUT,
|
||||
weave_target *wv, source_line *L, text_stream *matter, text_stream *colouring) {
|
||||
section *S = L->owning_section;
|
||||
hash_table *ht = &(S->sect_target->symbols);
|
||||
if ((L->category == TEXT_EXTRACT_LCAT) && (pl != S->sect_language))
|
||||
ht = &(pl->built_in_keywords);
|
||||
|
|
|
@ -853,7 +853,7 @@ void InCSupport::weave_grammar_index(OUTPUT_STREAM) {
|
|||
"\\leaders\\hbox to 1em{\\hss.\\hss}\\hfill {\\xreffont %S}}\n",
|
||||
pnt->unangled_name,
|
||||
(pnt->as_function)?" (internal)":"",
|
||||
pnt->where_defined->owning_section->sect_range);
|
||||
pnt->where_defined->owning_section->md->sect_range);
|
||||
int said_something = FALSE;
|
||||
@<List where the nonterminal appears in other Preform declarations@>;
|
||||
@<List where the nonterminal is called from Inform code@>;
|
||||
|
@ -885,7 +885,7 @@ void InCSupport::weave_grammar_index(OUTPUT_STREAM) {
|
|||
LOOP_OVER(S, section)
|
||||
if (S->scratch_flag) {
|
||||
if (c++ > 0) WRITE(", ");
|
||||
WRITE("{\\xreffont %S}", S->sect_range);
|
||||
WRITE("{\\xreffont %S}", S->md->sect_range);
|
||||
}
|
||||
WRITE("\n\n");
|
||||
}
|
||||
|
@ -910,7 +910,7 @@ void InCSupport::weave_grammar_index(OUTPUT_STREAM) {
|
|||
LOOP_OVER(S, section)
|
||||
if (S->scratch_flag) {
|
||||
if (c++ > 0) WRITE(", ");
|
||||
WRITE("{\\xreffont %S}", S->sect_range);
|
||||
WRITE("{\\xreffont %S}", S->md->sect_range);
|
||||
}
|
||||
WRITE("\n\n");
|
||||
}
|
||||
|
|
|
@ -366,17 +366,17 @@ void LanguageMethods::reset_syntax_colouring(programming_language *pl) {
|
|||
=
|
||||
int colouring_state = PLAIN_COLOUR;
|
||||
|
||||
IMETHOD_TYPE(SYNTAX_COLOUR_WEA_MTID, programming_language *pl, text_stream *OUT, weave_target *wv, web *W,
|
||||
chapter *C, section *S, source_line *L, text_stream *matter, text_stream *colouring)
|
||||
int LanguageMethods::syntax_colour(OUTPUT_STREAM, programming_language *pl, weave_target *wv,
|
||||
web *W, chapter *C, section *S, source_line *L, text_stream *matter, text_stream *colouring) {
|
||||
Str::copy(colouring, matter);
|
||||
IMETHOD_TYPE(SYNTAX_COLOUR_WEA_MTID, programming_language *pl, text_stream *OUT,
|
||||
weave_target *wv, source_line *L, text_stream *matter, text_stream *colouring)
|
||||
int LanguageMethods::syntax_colour(OUTPUT_STREAM, programming_language *pl,
|
||||
weave_target *wv, source_line *L, text_stream *matter, text_stream *colouring) {
|
||||
for (int i=0; i < Str::len(matter); i++) Str::put_at(colouring, i, PLAIN_COLOUR);
|
||||
int rv = FALSE;
|
||||
programming_language *colour_as = pl;
|
||||
if (L->category == TEXT_EXTRACT_LCAT) colour_as = L->colour_as;
|
||||
if (colour_as)
|
||||
IMETHOD_CALL(rv, colour_as, SYNTAX_COLOUR_WEA_MTID, OUT, wv, W, C, S, L, matter, colouring);
|
||||
IMETHOD_CALL(rv, colour_as, SYNTAX_COLOUR_WEA_MTID, OUT, wv, L,
|
||||
matter, colouring);
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
|
|
@ -148,6 +148,9 @@ part of the function structure. We'll need it when predeclaring the function.
|
|||
fn->call_freely = FALSE;
|
||||
fn->function_header_at = L;
|
||||
fn->usage_described = FALSE;
|
||||
if ((Str::eq_wide_string(fname, L"main")) &&
|
||||
(L->owning_section->sect_language->C_like))
|
||||
fn->usage_described = TRUE;
|
||||
fn->no_conditionals = 0;
|
||||
|
||||
@<Add the function to its paragraph and line@> =
|
||||
|
|
|
@ -563,8 +563,8 @@ void Formats::text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id,
|
|||
@<Attempt to resolve the cross-reference@> =
|
||||
TEMPORARY_TEXT(url);
|
||||
TEMPORARY_TEXT(title);
|
||||
if (Formats::resolve_reference_in_weave(url, title, wv, reference,
|
||||
wv->current_weave_line)) {
|
||||
if (Colonies::resolve_reference_in_weave(url, title, wv, reference,
|
||||
wv->weave_web->md, wv->current_weave_line)) {
|
||||
Formats::text_r(OUT, wv, before, within, comments);
|
||||
Formats::url(OUT, wv, url, title, FALSE);
|
||||
Formats::text_r(OUT, wv, after, within, comments);
|
||||
|
@ -573,67 +573,6 @@ void Formats::text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id,
|
|||
DISCARD_TEXT(url);
|
||||
DISCARD_TEXT(title);
|
||||
|
||||
@ The following must decide what a reference like "Chapter 3" should refer
|
||||
to: that is, whether it makes unamgiguous sense, and if so, what URL we should
|
||||
link to, and what the full text of the link might be.
|
||||
|
||||
=
|
||||
int Formats::resolve_reference_in_weave(text_stream *url, text_stream *title,
|
||||
weave_target *wv, text_stream *text, source_line *L) {
|
||||
module *found_M = NULL;
|
||||
section_md *found_Sm = NULL;
|
||||
int named_as_module = FALSE;
|
||||
int N = WebModules::named_reference(&found_M, &found_Sm, &named_as_module,
|
||||
title, wv->weave_web->md->as_module, text, FALSE);
|
||||
if (N == 0) {
|
||||
if (L) @<Try references to non-sections@>;
|
||||
Main::error_in_web(I"No section has this name", L);
|
||||
return FALSE;
|
||||
} else if (N > 1) {
|
||||
Main::error_in_web(I"Multiple sections might be meant here", L);
|
||||
WebModules::named_reference(&found_M, &found_Sm, &named_as_module,
|
||||
title, wv->weave_web->md->as_module, text, TRUE);
|
||||
return FALSE;
|
||||
} else {
|
||||
chapter *C;
|
||||
section *S, *found_S = NULL;
|
||||
LOOP_OVER_LINKED_LIST(C, chapter, wv->weave_web->chapters)
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
if (S->md == found_Sm) found_S = S;
|
||||
if (found_S == NULL) internal_error("could not locate S");
|
||||
if (found_M == NULL) internal_error("could not locate M");
|
||||
|
||||
if (found_M != wv->weave_web->md->as_module) {
|
||||
WRITE_TO(url, "../%S-module/", found_M->module_name);
|
||||
}
|
||||
HTMLFormat::section_URL(url, wv, found_S);
|
||||
if ((named_as_module == FALSE) && (found_M != wv->weave_web->md->as_module)) {
|
||||
WRITE_TO(title, " (in %S)", found_M->module_name);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@<Try references to non-sections@> =
|
||||
language_function *fn;
|
||||
LOOP_OVER(fn, language_function) {
|
||||
if (Str::eq_insensitive(fn->function_name, text)) {
|
||||
HTMLFormat::xref(url, wv, fn->function_header_at->owning_paragraph,
|
||||
L->owning_section, TRUE);
|
||||
WRITE_TO(title, "%S", fn->function_name);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
language_type *str;
|
||||
LOOP_OVER(str, language_type) {
|
||||
if (Str::eq_insensitive(str->structure_name, text)) {
|
||||
HTMLFormat::xref(url, wv, str->structure_header_at->owning_paragraph,
|
||||
L->owning_section, TRUE);
|
||||
WRITE_TO(title, "%S", str->structure_name);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@ |COMMENTARY_TEXT_FOR_MTID| straightforwardly weaves out a run of contiguous
|
||||
text. Ordinarily, any formulae written in TeX notation (i.e., in dollar signs
|
||||
used as brackets) will be transmogrified into a plain text paraphrase, but
|
||||
|
|
|
@ -404,8 +404,8 @@ void HTMLFormat::source_code(weave_format *self, text_stream *OUT, weave_target
|
|||
@<Attempt to resolve the cross-reference@> =
|
||||
TEMPORARY_TEXT(url);
|
||||
TEMPORARY_TEXT(title);
|
||||
if (Formats::resolve_reference_in_weave(url, title, wv, reference,
|
||||
wv->current_weave_line)) {
|
||||
if (Colonies::resolve_reference_in_weave(url, title, wv, reference,
|
||||
wv->weave_web->md, wv->current_weave_line)) {
|
||||
Formats::url(OUT, wv, url, title, FALSE);
|
||||
i = j + N;
|
||||
}
|
||||
|
@ -430,7 +430,7 @@ void HTMLFormat::source_code(weave_format *self, text_stream *OUT, weave_target
|
|||
if (wv->current_weave_line == defn_line) {
|
||||
language_function *fn = Analyser::get_function(
|
||||
wv->current_weave_line->owning_section, fname, FUNCTION_COLOUR);
|
||||
if ((defn_line) && (fn)) {
|
||||
if ((defn_line) && (fn) && (fn->usage_described == FALSE)) {
|
||||
Swarm::ensure_plugin(wv, I"Popups");
|
||||
WRITE("%S", fname);
|
||||
WRITE("<button class=\"popup\" onclick=\"togglePopup('usagePopup%d')\">", popup_counter);
|
||||
|
@ -762,7 +762,7 @@ void HTMLFormat::locale(weave_format *self, text_stream *OUT, weave_target *wv,
|
|||
}
|
||||
|
||||
@ =
|
||||
void HTMLFormat::section_URL(OUTPUT_STREAM, weave_target *wv, section *from) {
|
||||
void HTMLFormat::section_URL(OUTPUT_STREAM, weave_target *wv, section_md *from) {
|
||||
TEMPORARY_TEXT(linkto);
|
||||
Str::copy(linkto, from->sect_range);
|
||||
LOOP_THROUGH_TEXT(pos, linkto)
|
||||
|
@ -771,11 +771,12 @@ void HTMLFormat::section_URL(OUTPUT_STREAM, weave_target *wv, section *from) {
|
|||
WRITE_TO(linkto, ".html");
|
||||
WRITE("%S", linkto);
|
||||
}
|
||||
|
||||
void HTMLFormat::xref(OUTPUT_STREAM, weave_target *wv, paragraph *P, section *from,
|
||||
int a_link) {
|
||||
TEMPORARY_TEXT(linkto);
|
||||
if ((from) && (P->under_section != from)) {
|
||||
Str::copy(linkto, P->under_section->sect_range);
|
||||
Str::copy(linkto, P->under_section->md->sect_range);
|
||||
LOOP_THROUGH_TEXT(pos, linkto)
|
||||
if ((Str::get(pos) == '/') || (Str::get(pos) == ' '))
|
||||
Str::put(pos, '-');
|
||||
|
@ -844,7 +845,7 @@ void HTMLFormat::tail(weave_format *self, text_stream *OUT, weave_target *wv,
|
|||
@ =
|
||||
void HTMLFormat::sref(OUTPUT_STREAM, weave_target *wv, section *S) {
|
||||
if (S == NULL) internal_error("unwoven section");
|
||||
LOOP_THROUGH_TEXT(pos, S->sect_range)
|
||||
LOOP_THROUGH_TEXT(pos, S->md->sect_range)
|
||||
if (Str::get(pos) == '/')
|
||||
PUT('-');
|
||||
else
|
||||
|
|
|
@ -59,7 +59,7 @@ void PlainText::chapter_title_page(weave_format *self, text_stream *OUT,
|
|||
section *S;
|
||||
LOOP_OVER_LINKED_LIST(S, section, C->sections)
|
||||
WRITE(" %S: %S\n %S\n",
|
||||
S->sect_range, S->md->sect_title, S->sect_purpose);
|
||||
S->md->sect_range, S->md->sect_title, S->sect_purpose);
|
||||
}
|
||||
|
||||
@ =
|
||||
|
|
|
@ -143,7 +143,7 @@ void TeX::chapter_title_page(weave_format *self, text_stream *OUT, weave_target
|
|||
LOOP_OVER_LINKED_LIST(S, section, C->sections) {
|
||||
WRITE("\\smallskip\\noindent ");
|
||||
if (wv->pattern->number_sections) WRITE("%d. ", S->printed_number);
|
||||
if (wv->pattern->show_abbrevs) WRITE("|%S|: ", S->sect_range);
|
||||
if (wv->pattern->show_abbrevs) WRITE("|%S|: ", S->md->sect_range);
|
||||
WRITE("{\\it %S}\\qquad\n%S", S->md->sect_title, S->sect_purpose);
|
||||
}
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ void TeX::paragraph_heading(weave_format *self, text_stream *OUT, weave_target *
|
|||
TeX_macro, N, modified, mark, orn, NULL);
|
||||
else
|
||||
WRITE("\\%S{%S}{%S}{%S}{\\%S}{%S}%%\n",
|
||||
TeX_macro, N, modified, mark, orn, S->sect_range);
|
||||
TeX_macro, N, modified, mark, orn, S->md->sect_range);
|
||||
DISCARD_TEXT(mark);
|
||||
DISCARD_TEXT(modified);
|
||||
Regexp::dispose_of(&mr);
|
||||
|
|
228
Chapter 6/Colonies.w
Normal file
228
Chapter 6/Colonies.w
Normal file
|
@ -0,0 +1,228 @@
|
|||
[Colonies::] Colonies.
|
||||
|
||||
Cross-referencing multiple webs gathered together.
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
typedef struct colony {
|
||||
struct linked_list *members; /* of |colony_member| */
|
||||
MEMORY_MANAGEMENT
|
||||
} colony;
|
||||
|
||||
typedef struct colony_member {
|
||||
int web_rather_than_module;
|
||||
struct text_stream *name;
|
||||
struct text_stream *path;
|
||||
struct pathname *weave_path;
|
||||
struct web_md *loaded;
|
||||
MEMORY_MANAGEMENT
|
||||
} colony_member;
|
||||
|
||||
@ =
|
||||
void Colonies::load(filename *F) {
|
||||
colony *C = CREATE(colony);
|
||||
C->members = NEW_LINKED_LIST(colony_member);
|
||||
TextFiles::read(F, FALSE, "can't open colony file",
|
||||
TRUE, Colonies::read_line, NULL, (void *) C);
|
||||
}
|
||||
|
||||
void Colonies::read_line(text_stream *line, text_file_position *tfp, void *v_C) {
|
||||
colony *C = (colony *) v_C;
|
||||
|
||||
Str::trim_white_space(line); /* ignore trailing space */
|
||||
if (Str::len(line) == 0) return; /* ignore blank lines */
|
||||
if (Str::get_first_char(line) == '#') return; /* lines opening with |#| are comments */
|
||||
|
||||
match_results mr = Regexp::create_mr();
|
||||
if (Regexp::match(&mr, line, L"(%c*?): \"*(%C+)\" at \"(%c*)\" in \"(%c*)\"")) {
|
||||
colony_member *CM = CREATE(colony_member);
|
||||
if (Str::eq(mr.exp[0], I"web")) CM->web_rather_than_module = TRUE;
|
||||
else if (Str::eq(mr.exp[0], I"module")) CM->web_rather_than_module = FALSE;
|
||||
else {
|
||||
CM->web_rather_than_module = FALSE;
|
||||
Errors::in_text_file("text before ':' must be 'web' or 'module'", tfp);
|
||||
}
|
||||
CM->name = Str::duplicate(mr.exp[1]);
|
||||
CM->path = Str::duplicate(mr.exp[2]);
|
||||
CM->weave_path = Pathnames::from_text(mr.exp[3]);
|
||||
CM->loaded = NULL;
|
||||
ADD_TO_LINKED_LIST(CM, colony_member, C->members);
|
||||
} else {
|
||||
Errors::in_text_file("unable to read colony member", tfp);
|
||||
}
|
||||
Regexp::dispose_of(&mr);
|
||||
}
|
||||
|
||||
@ =
|
||||
colony_member *Colonies::member(text_stream *T) {
|
||||
colony *C;
|
||||
LOOP_OVER(C, colony) {
|
||||
colony_member *CM;
|
||||
LOOP_OVER_LINKED_LIST(CM, colony_member, C->members)
|
||||
if (Str::eq_insensitive(T, CM->name))
|
||||
return CM;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ =
|
||||
module *Colonies::as_module(colony_member *CM, source_line *L, web_md *Wm) {
|
||||
if (CM->loaded == NULL) {
|
||||
if ((Wm) && (Str::eq_insensitive(Wm->as_module->module_name, CM->name)))
|
||||
CM->loaded = Wm;
|
||||
}
|
||||
if (CM->loaded == NULL) {
|
||||
if (Wm) {
|
||||
module *M;
|
||||
LOOP_OVER_LINKED_LIST(M, module, Wm->as_module->dependencies)
|
||||
if (Str::eq_insensitive(M->module_name, CM->name))
|
||||
CM->loaded = Wm;
|
||||
}
|
||||
}
|
||||
if (CM->loaded == NULL) {
|
||||
filename *F = NULL;
|
||||
pathname *P = NULL;
|
||||
if (Str::suffix_eq(CM->path, I".inweb", 6))
|
||||
F = Filenames::from_text(CM->path);
|
||||
else
|
||||
P = Pathnames::from_text(CM->path);
|
||||
PRINT("So %f and %p\n", F, P);
|
||||
CM->loaded = WebMetadata::get_without_modules(P, F);
|
||||
}
|
||||
if (CM->loaded == NULL) {
|
||||
TEMPORARY_TEXT(err);
|
||||
WRITE_TO(err, "unable to load '%S'", CM->name);
|
||||
Main::error_in_web(err, L);
|
||||
return NULL;
|
||||
}
|
||||
return CM->loaded->as_module;
|
||||
}
|
||||
|
||||
@ The following must decide what a reference like "Chapter 3" should refer
|
||||
to: that is, whether it makes unamgiguous sense, and if so, what URL we should
|
||||
link to, and what the full text of the link might be.
|
||||
|
||||
=
|
||||
int Colonies::resolve_reference_in_weave(text_stream *url, text_stream *title,
|
||||
weave_target *wv, text_stream *text, web_md *Wm, source_line *L) {
|
||||
module *from_M = (Wm)?(Wm->as_module):NULL;
|
||||
module *search_M = from_M;
|
||||
colony_member *search_CM = NULL;
|
||||
match_results mr = Regexp::create_mr();
|
||||
int external = FALSE;
|
||||
|
||||
search_CM = Colonies::member(text);
|
||||
if (search_CM) {
|
||||
module *found_M = Colonies::as_module(search_CM, L, Wm);
|
||||
section_md *found_Sm = FIRST_IN_LINKED_LIST(section_md, found_M->sections_md);
|
||||
int bare_module_name = TRUE;
|
||||
@<Resolved@>;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (Regexp::match(&mr, text, L"(%c*?): (%c*)")) {
|
||||
search_M = NULL;
|
||||
external = TRUE;
|
||||
if (search_M == NULL) {
|
||||
search_CM = Colonies::member(mr.exp[0]);
|
||||
if (search_CM) search_M = Colonies::as_module(search_CM, L, Wm);
|
||||
}
|
||||
if (search_M == NULL) {
|
||||
TEMPORARY_TEXT(err);
|
||||
WRITE_TO(err, "unrecognised web/module '%S' - use -colony?", mr.exp[0]);
|
||||
Main::error_in_web(err, L);
|
||||
Regexp::dispose_of(&mr);
|
||||
return FALSE;
|
||||
}
|
||||
text = Str::duplicate(mr.exp[1]);
|
||||
}
|
||||
Regexp::dispose_of(&mr);
|
||||
|
||||
if (search_M == NULL) internal_error("no search module");
|
||||
|
||||
module *found_M = NULL;
|
||||
section_md *found_Sm = NULL;
|
||||
int bare_module_name = FALSE;
|
||||
int N = WebModules::named_reference(&found_M, &found_Sm, &bare_module_name,
|
||||
title, search_M, text, FALSE);
|
||||
if (N == 0) {
|
||||
if ((L) && (external == FALSE)) @<Try references to non-sections@>;
|
||||
Main::error_in_web(I"Can't find this cross-reference", L);
|
||||
return FALSE;
|
||||
} else if (N > 1) {
|
||||
Main::error_in_web(I"Multiple cross-references might be meant here", L);
|
||||
WebModules::named_reference(&found_M, &found_Sm, &bare_module_name,
|
||||
title, search_M, text, TRUE);
|
||||
return FALSE;
|
||||
} else {
|
||||
@<Resolved@>;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@<Try references to non-sections@> =
|
||||
language_function *fn;
|
||||
LOOP_OVER(fn, language_function) {
|
||||
if (Str::eq_insensitive(fn->function_name, text)) {
|
||||
HTMLFormat::xref(url, wv, fn->function_header_at->owning_paragraph,
|
||||
L->owning_section, TRUE);
|
||||
WRITE_TO(title, "%S", fn->function_name);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
language_type *str;
|
||||
LOOP_OVER(str, language_type) {
|
||||
if (Str::eq_insensitive(str->structure_name, text)) {
|
||||
HTMLFormat::xref(url, wv, str->structure_header_at->owning_paragraph,
|
||||
L->owning_section, TRUE);
|
||||
WRITE_TO(title, "%S", str->structure_name);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@<Resolved@> =
|
||||
if (found_M == NULL) internal_error("could not locate M");
|
||||
if (search_CM) {
|
||||
pathname *from = Filenames::get_path_to(wv->weave_to);
|
||||
pathname *to = search_CM->weave_path;
|
||||
int found = FALSE;
|
||||
for (pathname *P = to; P && (found == FALSE); P = Pathnames::up(P)) {
|
||||
TEMPORARY_TEXT(PT);
|
||||
WRITE_TO(PT, "%p", P);
|
||||
int q_up_count = 0;
|
||||
for (pathname *Q = from; Q && (found == FALSE); Q = Pathnames::up(Q)) {
|
||||
TEMPORARY_TEXT(QT);
|
||||
WRITE_TO(QT, "%p", Q);
|
||||
if (Str::eq(PT, QT)) {
|
||||
for (int i=0; i<q_up_count; i++)
|
||||
WRITE_TO(url, "../");
|
||||
TEMPORARY_TEXT(FPT);
|
||||
WRITE_TO(FPT, "%p", to);
|
||||
Str::substr(url, Str::at(FPT, Str::len(PT) + 1), Str::end(FPT));
|
||||
found = TRUE;
|
||||
}
|
||||
DISCARD_TEXT(QT);
|
||||
q_up_count++;
|
||||
}
|
||||
DISCARD_TEXT(PT);
|
||||
}
|
||||
if (found == FALSE) internal_error("no relation made");
|
||||
if (Str::len(url) > 0) WRITE_TO(url, "/");
|
||||
if (bare_module_name)
|
||||
WRITE_TO(url, "index.html");
|
||||
else if (found_Sm)
|
||||
HTMLFormat::section_URL(url, wv, found_Sm);
|
||||
WRITE_TO(title, "%S", search_CM->name);
|
||||
if (bare_module_name == FALSE)
|
||||
WRITE_TO(title, " (in %S)", search_CM->name);
|
||||
} else {
|
||||
if (found_M != from_M) {
|
||||
WRITE_TO(url, "../%S-module/", found_M->module_name);
|
||||
}
|
||||
HTMLFormat::section_URL(url, wv, found_Sm);
|
||||
if ((bare_module_name == FALSE) && (found_M != from_M)) {
|
||||
WRITE_TO(title, " (in %S)", found_M->module_name);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
|
@ -18,6 +18,9 @@ Manual
|
|||
Supporting Programming Languages
|
||||
Reference Card
|
||||
|
||||
Preliminaries
|
||||
How This Program Works
|
||||
|
||||
Chapter 1: Top Level
|
||||
"Dealing with the user, and deciding what is to be done."
|
||||
Basics
|
||||
|
@ -71,3 +74,5 @@ Chapter 6: Extras
|
|||
Makefiles
|
||||
Git Support
|
||||
Readme Writeme
|
||||
Colonies
|
||||
|
||||
|
|
|
@ -8,10 +8,18 @@ It is widely believed that there are an infinite number of twin primes, that
|
|||
is, prime numbers occurring in pairs different by 2. Twins are known to exist
|
||||
at least as far out as $10^{388,342}$ (as of 2016), and there are infinitely
|
||||
many pairs of primes closer together than about 250 (Zhang, 2013; Tao, Maynard,
|
||||
and many others, 2014). This program finds a few small pairs of twins, by the
|
||||
simplest method possible.
|
||||
and many others, 2014).
|
||||
|
||||
@d RANGE 100
|
||||
This program finds a few small pairs of twins, by the simplest method possible,
|
||||
and should print output like so:
|
||||
= (text)
|
||||
3 and 5
|
||||
5 and 7
|
||||
11 and 13
|
||||
...
|
||||
=
|
||||
|
||||
@d RANGE 100 /* the upper limit to the numbers we will consider */
|
||||
|
||||
=
|
||||
#include <stdio.h>
|
||||
|
@ -25,16 +33,13 @@ int main(int argc, char *argv[]) {
|
|||
if ((isprime(i)) && (isprime(i+2)))
|
||||
printf("%d and %d\n", i, i+2);
|
||||
|
||||
@ This ought to print:
|
||||
= (text)
|
||||
3 and 5
|
||||
5 and 7
|
||||
11 and 13
|
||||
...
|
||||
|
||||
@h Primality.
|
||||
This simple and slow test tries to divide by every whole number at least
|
||||
2 and up to the square root: if none divide exactly, the number is prime.
|
||||
A common error with this algorithm is to check where $m^2 < n$, rather
|
||||
than $m^2 \leq n$, thus wrongly considering 4, 9, 25, 49, ... as prime:
|
||||
Cambridge folklore has it that this bug occurred on the first computation
|
||||
of the EDSAC computer on 6 May 1949.
|
||||
|
||||
@d TRUE 1
|
||||
@d FALSE 0
|
||||
|
|
|
@ -40,6 +40,7 @@ for analysing a web:
|
|||
|
||||
for weaving a web:
|
||||
-breadcrumb X use the text X as a breadcrumb in overhead navigation
|
||||
-colony X use the file X as a list of webs in this colony
|
||||
-navigation X use the file X as a column of navigation links
|
||||
-open weave then open woven file
|
||||
-sequential name woven leaves with sequential numbering (default is -no-sequential)
|
||||
|
|
|
@ -6,8 +6,6 @@ What Inweb is, and why it is not CWEB.
|
|||
Inweb is a modern system for literate programming written for the Inform
|
||||
programming language project.
|
||||
|
||||
//Patterns//
|
||||
|
||||
This means that it is a preprocessor and organiser of source code. It reads in
|
||||
a "web", an expression of a program which mixes code with heavy quantities of
|
||||
commentary. Inweb can do two basic things: "weave" the web into a booklet or
|
||||
|
|
56
Preliminaries/How This Program Works.w
Normal file
56
Preliminaries/How This Program Works.w
Normal file
|
@ -0,0 +1,56 @@
|
|||
How This Program Works.
|
||||
|
||||
An overview of how Inweb works, with links to all of its important functions.
|
||||
|
||||
@h How to read this web.
|
||||
Inweb is a program for weaving and tangling literate programs, or "webs",
|
||||
and it is a web itself. Webs are easy to read, which is really the point
|
||||
of them, but they take getting used to, and it may be easiest to begin by
|
||||
skimming the two (deliberately minimal) examples here, //goldbach// and
|
||||
//twinprimes//.
|
||||
|
||||
Inweb is a command-line program written in a modest extension of C. See
|
||||
//The InC Dialect// for full details, but essentially: it's C without
|
||||
function predeclarations or header files, and where functions are organised
|
||||
into namespaces, having names like |Parser::begin()| rather than just |begin()|.
|
||||
|
||||
Programs like Inweb are divided into "modules", each of which is a web in its
|
||||
own right. Inweb has two: the main part of the program, and a library of
|
||||
utility functions called Foundation.
|
||||
|
||||
@h Basics of using Foundation.
|
||||
Foundation provides Unicode text, lists, memory management, file handling,
|
||||
regular expression matching, dictionaries of key-value pairs, and so on.
|
||||
See //foundation// to read it as a web, but you shouldn't need to.
|
||||
|
||||
To a limited extent, Foundation enables C programs like Inweb to have "objects"
|
||||
and "methods". For example, Inweb has a concept of "weave plugins", and these
|
||||
are identified (by reference) using values of type |weave_plugin *|. The
|
||||
relevant section of the Inweb source defines the type //weave_plugin// and
|
||||
gives a constructor function for making new ones, //WeavePlugins::new//.
|
||||
This is then returned as a |weave_plugin *| pointer which has an infinite
|
||||
lifespan: though Foundation can also delete objects, Inweb never asks it to.
|
||||
|
||||
Foundation itself contains many useful types, and the most ubiquitous is
|
||||
//text_stream//. This unifies text files and memory-managed strings of Unicode
|
||||
text. A typical function writing to this might be:
|
||||
= (text as InC)
|
||||
void Hypothetical::writer(text_stream *OUT, text_stream *authority, int N) {
|
||||
WRITE("According to %S, the square of %d is %d.\n", authority, N, N*N);
|
||||
}
|
||||
=
|
||||
Here |WRITE| is a variadic macro rather like |printf|, and note the use of
|
||||
the escape |%S| to write a text stream. It writes formatted output into the
|
||||
stream |OUT|, and is actually an abbreviation for this:
|
||||
= (text as InC)
|
||||
void Hypothetical::writer(text_stream *OUT, text_stream *authority, int N) {
|
||||
WRITE_TO(OUT, "According to %S, the square of %d is %d.\n", authority, N, N*N);
|
||||
}
|
||||
=
|
||||
The function |Hypothetical::writer| can write equally to a text file or to a
|
||||
string, whichever it's given, and doesn't need to worry about memory management
|
||||
or text encodings.
|
||||
|
||||
The standard output and standard error "files" are written |STDOUT| and |STDERR|
|
||||
as streams; |PRINT("...")| is an abbreviation for |WRITE_TO(STDOUT, "...")|.
|
||||
All of these capitalised macros are defined in //Streams//.
|
|
@ -1,6 +1,6 @@
|
|||
# Inweb 7
|
||||
|
||||
v7-alpha.1+1A17 'Escape to Danger' (11 April 2020)
|
||||
v7-alpha.1+1A18 'Escape to Danger' (12 April 2020)
|
||||
|
||||
## About Inweb
|
||||
|
||||
|
|
3543
Tangled/inweb.c
3543
Tangled/inweb.c
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 11 April 2020
|
||||
Build Number: 1A17
|
||||
Build Date: 12 April 2020
|
||||
Build Number: 1A18
|
||||
|
|
5
docs/docs-src/colony.txt
Normal file
5
docs/docs-src/colony.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
web: "inweb" at "inweb" in "inweb/docs/inweb"
|
||||
module: "foundation" at "inweb/foundation-module" in "inweb/docs/foundation-module"
|
||||
web: "foundation-test" at "inweb/foundation-test" in "inweb/docs/foundation-test"
|
||||
web: "goldbach" at "inweb/Examples/goldbach" in "inweb/docs/goldbach"
|
||||
web: "twinprimes" at "inweb/Examples/twinprimes.inweb" in "inweb/docs/twinprimes"
|
|
@ -1,4 +1,4 @@
|
|||
<h1><a href="webs.html">Sources</a></h1>
|
||||
<h1><a href="webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -7,3 +7,8 @@
|
|||
<li><a href="foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -7,3 +7,8 @@
|
|||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
|
|
@ -12,10 +12,12 @@ hood, to see how it works.
|
|||
@ The Inform software uses literate programming, a doctrine invented by Donald
|
||||
Knuth. Under LP, a single program is called a "web", and can either be
|
||||
"woven" for humans to read or "tangled" for computers to compile. You are
|
||||
reading the woven form. There are three webs accessible from this page:
|
||||
reading the woven form. There are five webs accessible from this page:
|
||||
(a) The |inweb| tool.
|
||||
(b) The |foundation| module, which is not a stand-alone program, but is
|
||||
instead a library of utility functions needed by |inweb| and also by some
|
||||
of the programs tangled by it (such as the Inform compiler).
|
||||
(c) A modest unit test tool, which simply exercises some of the functions
|
||||
of |foundation|.
|
||||
(d) Two small example webs: |twinprimes|, which is just a single section,
|
||||
and |goldbach|, which has two sections.
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Foundation Module' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Foundation Module</b></li></ul><p class="purpose">Starting up and shutting down.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Foundation Module</b></li></ul><p class="purpose">Starting up and shutting down.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP2">§2. Basic definitions</a></li><li><a href="#SP8">§8. The beginning and the end</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'POSIX Platforms' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>POSIX Platforms</b></li></ul><p class="purpose">A version of our operating system interface suitable for POSIX-compliant operating systems.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>POSIX Platforms</b></li></ul><p class="purpose">A version of our operating system interface suitable for POSIX-compliant operating systems.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP3">§3. Mac OS X</a></li><li><a href="#SP4">§4. Generic Unix</a></li><li><a href="#SP5">§5. Linux</a></li><li><a href="#SP6">§6. Android</a></li><li><a href="#SP7">§7. Locale</a></li><li><a href="#SP8">§8. Environment variables</a></li><li><a href="#SP9">§9. Executable location</a></li><li><a href="#SP10">§10. Shell commands</a></li><li><a href="#SP12">§12. Directory handling</a></li><li><a href="#SP13">§13. Timestamp</a></li><li><a href="#SP14">§14. Sync</a></li><li><a href="#SP15">§15. Sleep</a></li><li><a href="#SP16">§16. Notifications</a></li><li><a href="#SP18">§18. Concurrency</a></li><li><a href="#SP20">§20. Mutexes</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Windows Platform' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Windows Platform</b></li></ul><p class="purpose">A version of our operating system interface suitable for Microsoft Windows.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Windows Platform</b></li></ul><p class="purpose">A version of our operating system interface suitable for Microsoft Windows.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP2">§2. Microsoft Windows</a></li><li><a href="#SP4">§4. Environment variables</a></li><li><a href="#SP5">§5. Executable location</a></li><li><a href="#SP6">§6. Shell commands</a></li><li><a href="#SP7">§7. Directory handling</a></li><li><a href="#SP8">§8. Sleep</a></li><li><a href="#SP9">§9. Notifications</a></li><li><a href="#SP10">§10. Concurrency</a></li><li><a href="#SP12">§12. Timestamp</a></li><li><a href="#SP13">§13. Mutexes</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Dictionaries' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Dictionaries</b></li></ul><p class="purpose">A simple implementation for a flexible-sized dictionary of key-value pairs.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Dictionaries</b></li></ul><p class="purpose">A simple implementation for a flexible-sized dictionary of key-value pairs.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Storage</a></li><li><a href="#SP2">§2. Creation</a></li><li><a href="#SP3">§3. Logging</a></li><li><a href="#SP4">§4. Hashing</a></li><li><a href="#SP5">§5. Create, find, destroy</a></li><li><a href="#SP8">§8. Accessing entries</a></li><li><a href="#SP11">§11. Disposal</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Debugging Log' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Debugging Log</b></li></ul><p class="purpose">To write to the debugging log, a plain text file which traces what we're doing, in order to assist those lost souls debugging it.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Debugging Log</b></li></ul><p class="purpose">To write to the debugging log, a plain text file which traces what we're doing, in order to assist those lost souls debugging it.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. The DL stream</a></li><li><a href="#SP2">§2. Macros</a></li><li><a href="#SP3">§3. Debugging aspects</a></li><li><a href="#SP6">§6. Subheadings</a></li><li><a href="#SP7">§7. Aspects</a></li><li><a href="#SP10">§10. The starred trace</a></li><li><a href="#SP11">§11. Wrapping up</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Linked Lists and Stacks' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Linked Lists and Stacks</b></li></ul><p class="purpose">A simple implementation for single-linked lists of objects allocated by Foundation's memory manager, and for last-in-first-out stacks of same.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Linked Lists and Stacks</b></li></ul><p class="purpose">A simple implementation for single-linked lists of objects allocated by Foundation's memory manager, and for last-in-first-out stacks of same.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Implementation</a></li><li><a href="#SP6">§6. A function call API</a></li><li><a href="#SP7">§7. A macro-ized API</a></li><li><a href="#SP9">§9. LIFO stacks</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Memory' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Memory</b></li></ul><p class="purpose">To allocate memory suitable for the dynamic creation of objects of different sizes, placing some larger objects automatically into doubly linked lists and assigning each a unique allocation ID number.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Memory</b></li></ul><p class="purpose">To allocate memory suitable for the dynamic creation of objects of different sizes, placing some larger objects automatically into doubly linked lists and assigning each a unique allocation ID number.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Memory manager</a></li><li><a href="#SP6">§6. Architecture</a></li><li><a href="#SP7">§7. Level 1: memory blocks</a></li><li><a href="#SP13">§13. Level 2: memory frames and integrity checking</a></li><li><a href="#SP17">§17. Level 3: managing linked lists of allocated objects</a></li><li><a href="#SP19">§19. Allocator functions created by macros</a></li><li><a href="#SP21">§21. Expanding many macros</a></li><li><a href="#SP22">§22. Simple memory allocations</a></li><li><a href="#SP28">§28. Text storage</a></li><li><a href="#SP32">§32. Memory usage report</a></li><li><a href="#SP36">§36. Run-time pointer type checking</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Methods' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Methods</b></li></ul><p class="purpose">General support for something approximating method calls.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Methods</b></li></ul><p class="purpose">General support for something approximating method calls.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Method sets</a></li><li><a href="#SP4">§4. Declaring methods</a></li><li><a href="#SP6">§6. Adding methods</a></li><li><a href="#SP7">§7. Calling methods</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Streams' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Streams</b></li></ul><p class="purpose">Support for writing structured textual output, perhaps to the screen, to a file, or to a flexible-sized wide string.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Streams</b></li></ul><p class="purpose">Support for writing structured textual output, perhaps to the screen, to a file, or to a flexible-sized wide string.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. About streams</a></li><li><a href="#SP19">§19. Initialising the stream structure</a></li><li><a href="#SP21">§21. Logging</a></li><li><a href="#SP22">§22. Standard I/O wrappers</a></li><li><a href="#SP24">§24. Creating file streams</a></li><li><a href="#SP26">§26. Creating memory streams</a></li><li><a href="#SP28">§28. Converting from C strings</a></li><li><a href="#SP29">§29. Converting to C strings</a></li><li><a href="#SP32">§32. Locale versions</a></li><li><a href="#SP33">§33. Flush and close</a></li><li><a href="#SP35">§35. Writing</a></li><li><a href="#SP39">§39. Memory-stream-only functions</a></li><li><a href="#SP43">§43. Writer</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Writers and Loggers' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Writers and Loggers</b></li></ul><p class="purpose">Formatted text output to streams.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#2">Chapter 2: Memory, Streams and Collections</a></li><li><b>Writers and Loggers</b></li></ul><p class="purpose">Formatted text output to streams.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Registration</a></li><li><a href="#SP6">§6. Writing</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Case-Insensitive Filenames' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Case-Insensitive Filenames</b></li></ul><p class="purpose">On some of the Unix-derived file systems on which Inform runs, filenames are case-sensitive, so that FISH and fish might be different files. This makes extension files, installed by the user, prone to being missed. The code in this section provides a routine to carry out file opening as if filenames are case-insensitive, and is used only for extensions.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Case-Insensitive Filenames</b></li></ul><p class="purpose">On some of the Unix-derived file systems on which Inform runs, filenames are case-sensitive, so that FISH and fish might be different files. This makes extension files, installed by the user, prone to being missed. The code in this section provides a routine to carry out file opening as if filenames are case-insensitive, and is used only for extensions.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP3">§3. The routine</a></li><li><a href="#SP3_1">§3.1. Looking for case-insensitive matches instead</a></li><li><a href="#SP3_3">§3.3. Allocation and deallocation</a></li><li><a href="#SP3_6">§3.6. Pathname hacking</a></li><li><a href="#SP4">§4. Counting matches</a></li><li><a href="#SP5">§5. Non-POSIX tail</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Command Line Arguments' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Command Line Arguments</b></li></ul><p class="purpose">To parse the command line arguments with which inweb was called, and to handle any errors it needs to issue.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Command Line Arguments</b></li></ul><p class="purpose">To parse the command line arguments with which inweb was called, and to handle any errors it needs to issue.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Model</a></li><li><a href="#SP2">§2. Switches</a></li><li><a href="#SP7">§7. Reading the command line</a></li><li><a href="#SP14">§14. Help text</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Directories' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Directories</b></li></ul><p class="purpose">Scanning directories on the host filing system.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Directories</b></li></ul><p class="purpose">Scanning directories on the host filing system.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>All of this abstracts the code already found in the platform definitions.
|
||||
</p>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Error Messages' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Error Messages</b></li></ul><p class="purpose">A basic system for command-line tool error messages.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Error Messages</b></li></ul><p class="purpose">A basic system for command-line tool error messages.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Errors handler</a></li><li><a href="#SP2">§2. Error messages</a></li><li><a href="#SP4">§4. Deliberately crashing</a></li><li><a href="#SP5">§5. Survivable errors</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Filenames' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Filenames</b></li></ul><p class="purpose">Given the different environments in which we might be running, and the large range of files we may need from within a project folder, it's useful to have a section of code simply to deduce filenames.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Filenames</b></li></ul><p class="purpose">Given the different environments in which we might be running, and the large range of files we may need from within a project folder, it's useful to have a section of code simply to deduce filenames.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Storage</a></li><li><a href="#SP2">§2. Creation</a></li><li><a href="#SP3">§3. Strings to filenames</a></li><li><a href="#SP4">§4. The writer</a></li><li><a href="#SP6">§6. Reading off the folder</a></li><li><a href="#SP7">§7. Reading off the leafname</a></li><li><a href="#SP8">§8. Filename extensions</a></li><li><a href="#SP9">§9. Guessing file formats</a></li><li><a href="#SP10">§10. Opening</a></li><li><a href="#SP11">§11. Comparing</a></li><li><a href="#SP12">§12. Timestamps</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Pathnames' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Pathnames</b></li></ul><p class="purpose">To manage references to locations in the host computer's file system.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Pathnames</b></li></ul><p class="purpose">To manage references to locations in the host computer's file system.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. About pathnames</a></li><li><a href="#SP2">§2. Home folder</a></li><li><a href="#SP3">§3. Installation folder</a></li><li><a href="#SP4">§4. Creation</a></li><li><a href="#SP5">§5. Text to pathnames</a></li><li><a href="#SP6">§6. Writer</a></li><li><a href="#SP7">§7. Relative pathnames</a></li><li><a href="#SP8">§8. Existence in the file system</a></li><li><a href="#SP9">§9. Directory synchronisation</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Shell' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Shell</b></li></ul><p class="purpose">Sending commands to the shell, on Unix-like platforms, or simulating this on Windows.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Shell</b></li></ul><p class="purpose">Sending commands to the shell, on Unix-like platforms, or simulating this on Windows.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Operating system interface</a></li><li><a href="#SP5">§5. Actual commands</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Time' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Time</b></li></ul><p class="purpose">Managing how we record and use the current time and date.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#3">Chapter 3: The Operating System</a></li><li><b>Time</b></li></ul><p class="purpose">Managing how we record and use the current time and date.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Clock</a></li><li><a href="#SP3">§3. Calendrical</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Characters' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Characters</b></li></ul><p class="purpose">Individual characters.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Characters</b></li></ul><p class="purpose">Individual characters.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Character classes</a></li><li><a href="#SP4">§4. Unicode composition</a></li><li><a href="#SP5">§5. Accent stripping</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'C Strings' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>C Strings</b></li></ul><p class="purpose">A minimal library for handling C-style strings.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>C Strings</b></li></ul><p class="purpose">A minimal library for handling C-style strings.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>Programs using Foundation store text in <code class="display"><span class="extract">text_stream</span></code> structures almost all
|
||||
of the time, but old-style, null-terminated <code class="display"><span class="extract">char *</span></code> array strings are
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Pattern Matching' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Pattern Matching</b></li></ul><p class="purpose">To provide a limited regular-expression parser.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Pattern Matching</b></li></ul><p class="purpose">To provide a limited regular-expression parser.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Character types</a></li><li><a href="#SP3">§3. Simple parsing</a></li><li><a href="#SP6">§6. A Worse PCRE</a></li><li><a href="#SP14">§14. Replacement</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'String Manipulation' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>String Manipulation</b></li></ul><p class="purpose">Convenient routines for manipulating strings of text.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>String Manipulation</b></li></ul><p class="purpose">Convenient routines for manipulating strings of text.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Strings are streams</a></li><li><a href="#SP2">§2. New strings</a></li><li><a href="#SP4">§4. Converting from C strings</a></li><li><a href="#SP6">§6. Converting to C strings</a></li><li><a href="#SP7">§7. Converting to integers</a></li><li><a href="#SP8">§8. Length</a></li><li><a href="#SP9">§9. Position markers</a></li><li><a href="#SP13">§13. Character operations</a></li><li><a href="#SP15">§15. Truncation</a></li><li><a href="#SP16">§16. Copying</a></li><li><a href="#SP18">§18. Comparisons</a></li><li><a href="#SP22">§22. White space</a></li><li><a href="#SP24">§24. Deleting characters</a></li><li><a href="#SP25">§25. Substrings</a></li><li><a href="#SP26">§26. Shim for literal storage</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -65,7 +70,7 @@ access.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Str::new<button class="popup" onclick="togglePopup('usagePopup266')">...<span class="popuptext" id="usagePopup266">Usage of <b>Str::new</b>:<br><a href="#SP3">§3</a>, Debugging Log - <a href="2-dl.html#SP4_1">§4.1</a><br>Dictionaries - <a href="2-dct.html#SP7_3_1">§7.3.1</a><br>Command Line Arguments - <a href="3-cla.html#SP6">§6</a>, <a href="3-cla.html#SP11">§11</a><br>Epub Ebooks - <a href="5-ee.html#SP5">§5</a><br>Version Numbers - <a href="7-vn.html#SP7">§7</a><br>Web Structure - <a href="8-ws.html#SP5_2">§5.2</a>, <a href="8-ws.html#SP6_1">§6.1</a>, <a href="8-ws.html#SP7_2_1">§7.2.1</a><br>Build Files - <a href="8-bf.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Str::new<button class="popup" onclick="togglePopup('usagePopup266')">...<span class="popuptext" id="usagePopup266">Usage of <b>Str::new</b>:<br><a href="#SP3">§3</a>, Debugging Log - <a href="2-dl.html#SP4_1">§4.1</a><br>Dictionaries - <a href="2-dct.html#SP7_3_1">§7.3.1</a><br>Command Line Arguments - <a href="3-cla.html#SP6">§6</a>, <a href="3-cla.html#SP11">§11</a><br>Epub Ebooks - <a href="5-ee.html#SP5">§5</a><br>Version Numbers - <a href="7-vn.html#SP7">§7</a><br>Web Structure - <a href="8-ws.html#SP5_2">§5.2</a>, <a href="8-ws.html#SP6_1">§6.1</a>, <a href="8-ws.html#SP7_2_1">§7.2.1</a>, <a href="8-ws.html#SP7_2_2_1">§7.2.2.1</a><br>Build Files - <a href="8-bf.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="#SP2">Str::new_with_capacity</a></span><span class="plain">(32);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
|
@ -193,7 +198,7 @@ thing plus a little extra, for efficiency's sake.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Str::len<button class="popup" onclick="togglePopup('usagePopup281')">...<span class="popuptext" id="usagePopup281">Usage of <b>Str::len</b>:<br><a href="#SP3">§3</a>, <a href="#SP7">§7</a>, <a href="#SP10">§10</a>, <a href="#SP11">§11</a>, <a href="#SP12">§12</a>, <a href="#SP13">§13</a>, <a href="#SP14">§14</a>, <a href="#SP15">§15</a>, <a href="#SP16">§16</a>, <a href="#SP18">§18</a>, <a href="#SP19">§19</a>, <a href="#SP20">§20</a>, <a href="#SP21">§21</a>, <a href="#SP23">§23</a>, <a href="#SP24">§24</a>, <a href="#SP25">§25</a>, Debugging Log - <a href="2-dl.html#SP9">§9</a><br>Command Line Arguments - <a href="3-cla.html#SP13">§13</a>, <a href="3-cla.html#SP14">§14</a>, <a href="3-cla.html#SP14_1">§14.1</a><br>Pathnames - <a href="3-pth.html#SP4">§4</a>, <a href="3-pth.html#SP5">§5</a>, <a href="3-pth.html#SP7">§7</a><br>Filenames - <a href="3-fln.html#SP2">§2</a>, <a href="3-fln.html#SP3">§3</a>, <a href="3-fln.html#SP5">§5</a>, <a href="3-fln.html#SP9">§9</a><br>Tries and Avinues - <a href="4-taa.html#SP2_1">§2.1</a><br>Pattern Matching - <a href="4-pm.html#SP3">§3</a>, <a href="4-pm.html#SP4">§4</a>, <a href="4-pm.html#SP10">§10</a>, <a href="4-pm.html#SP11_3">§11.3</a>, <a href="4-pm.html#SP14">§14</a><br>HTML - <a href="5-htm.html#SP7">§7</a>, <a href="5-htm.html#SP15">§15</a><br>Epub Ebooks - <a href="5-ee.html#SP7_1">§7.1</a>, <a href="5-ee.html#SP7_2_3">§7.2.3</a>, <a href="5-ee.html#SP7_2_4">§7.2.4</a><br>Version Numbers - <a href="7-vn.html#SP7">§7</a>, <a href="7-vn.html#SP7_1">§7.1</a>, <a href="7-vn.html#SP10">§10</a><br>Web Structure - <a href="8-ws.html#SP7_3">§7.3</a>, <a href="8-ws.html#SP7_3_3_1">§7.3.3.1</a>, <a href="8-ws.html#SP7_2_2_3_1">§7.2.2.3.1</a>, <a href="8-ws.html#SP7_2_2_4">§7.2.2.4</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP5">§5</a>, <a href="8-bdfw.html#SP6">§6</a><br>Build Files - <a href="8-bf.html#SP3">§3</a>, <a href="8-bf.html#SP4">§4</a>, <a href="8-bf.html#SP5">§5</a>, <a href="8-bf.html#SP6">§6</a>, <a href="8-bf.html#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Str::len<button class="popup" onclick="togglePopup('usagePopup281')">...<span class="popuptext" id="usagePopup281">Usage of <b>Str::len</b>:<br><a href="#SP3">§3</a>, <a href="#SP7">§7</a>, <a href="#SP10">§10</a>, <a href="#SP11">§11</a>, <a href="#SP12">§12</a>, <a href="#SP13">§13</a>, <a href="#SP14">§14</a>, <a href="#SP15">§15</a>, <a href="#SP16">§16</a>, <a href="#SP18">§18</a>, <a href="#SP19">§19</a>, <a href="#SP20">§20</a>, <a href="#SP21">§21</a>, <a href="#SP23">§23</a>, <a href="#SP24">§24</a>, <a href="#SP25">§25</a>, Debugging Log - <a href="2-dl.html#SP9">§9</a><br>Command Line Arguments - <a href="3-cla.html#SP13">§13</a>, <a href="3-cla.html#SP14">§14</a>, <a href="3-cla.html#SP14_1">§14.1</a><br>Pathnames - <a href="3-pth.html#SP4">§4</a>, <a href="3-pth.html#SP5">§5</a>, <a href="3-pth.html#SP7">§7</a><br>Filenames - <a href="3-fln.html#SP2">§2</a>, <a href="3-fln.html#SP3">§3</a>, <a href="3-fln.html#SP5">§5</a>, <a href="3-fln.html#SP9">§9</a><br>Tries and Avinues - <a href="4-taa.html#SP2_1">§2.1</a><br>Pattern Matching - <a href="4-pm.html#SP3">§3</a>, <a href="4-pm.html#SP4">§4</a>, <a href="4-pm.html#SP10">§10</a>, <a href="4-pm.html#SP11_3">§11.3</a>, <a href="4-pm.html#SP14">§14</a><br>HTML - <a href="5-htm.html#SP7">§7</a>, <a href="5-htm.html#SP15">§15</a><br>Epub Ebooks - <a href="5-ee.html#SP7_1">§7.1</a>, <a href="5-ee.html#SP7_2_3">§7.2.3</a>, <a href="5-ee.html#SP7_2_4">§7.2.4</a><br>Version Numbers - <a href="7-vn.html#SP7">§7</a>, <a href="7-vn.html#SP7_1">§7.1</a>, <a href="7-vn.html#SP10">§10</a><br>Web Structure - <a href="8-ws.html#SP5_4">§5.4</a>, <a href="8-ws.html#SP5_4_1">§5.4.1</a>, <a href="8-ws.html#SP5_4_1_1">§5.4.1.1</a>, <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_3">§7.3</a>, <a href="8-ws.html#SP7_3_3_1">§7.3.3.1</a>, <a href="8-ws.html#SP7_2_2_3_1">§7.2.2.3.1</a>, <a href="8-ws.html#SP7_2_2_4">§7.2.2.4</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP5">§5</a>, <a href="8-bdfw.html#SP6">§6</a><br>Build Files - <a href="8-bf.html#SP3">§3</a>, <a href="8-bf.html#SP4">§4</a>, <a href="8-bf.html#SP5">§5</a>, <a href="8-bf.html#SP6">§6</a>, <a href="8-bf.html#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="2-str.html#SP38">Streams::get_position</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -292,7 +297,7 @@ at those positions may well not be, of course.)
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="2-str.html#SP40">Streams::get_char_at_index</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">.</span><span class="element">S</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">.</span><span class="element">index</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="identifier">wchar_t</span><span class="plain"> </span><span class="functiontext">Str::get_at<button class="popup" onclick="togglePopup('usagePopup292')">...<span class="popuptext" id="usagePopup292">Usage of <b>Str::get_at</b>:<br><a href="#SP20">§20</a>, <a href="#SP23">§23</a>, <a href="#SP25">§25</a>, Pathnames - <a href="3-pth.html#SP7">§7</a><br>Filenames - <a href="3-fln.html#SP5">§5</a><br>Tries and Avinues - <a href="4-taa.html#SP2">§2</a><br>Pattern Matching - <a href="4-pm.html#SP3">§3</a>, <a href="4-pm.html#SP4">§4</a>, <a href="4-pm.html#SP11">§11</a>, <a href="4-pm.html#SP11_4">§11.4</a>, <a href="4-pm.html#SP11_6">§11.6</a>, <a href="4-pm.html#SP14">§14</a>, <a href="4-pm.html#SP14_1">§14.1</a><br>Web Structure - <a href="8-ws.html#SP7">§7</a><br>Build Files - <a href="8-bf.html#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">index</span><span class="plain">) {</span>
|
||||
<span class="identifier">wchar_t</span><span class="plain"> </span><span class="functiontext">Str::get_at<button class="popup" onclick="togglePopup('usagePopup292')">...<span class="popuptext" id="usagePopup292">Usage of <b>Str::get_at</b>:<br><a href="#SP20">§20</a>, <a href="#SP23">§23</a>, <a href="#SP25">§25</a>, Pathnames - <a href="3-pth.html#SP7">§7</a><br>Filenames - <a href="3-fln.html#SP5">§5</a><br>Tries and Avinues - <a href="4-taa.html#SP2">§2</a><br>Pattern Matching - <a href="4-pm.html#SP3">§3</a>, <a href="4-pm.html#SP4">§4</a>, <a href="4-pm.html#SP11">§11</a>, <a href="4-pm.html#SP11_4">§11.4</a>, <a href="4-pm.html#SP11_6">§11.6</a>, <a href="4-pm.html#SP14">§14</a>, <a href="4-pm.html#SP14_1">§14.1</a><br>Web Structure - <a href="8-ws.html#SP5_4_1_1">§5.4.1.1</a>, <a href="8-ws.html#SP7">§7</a><br>Build Files - <a href="8-bf.html#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">index</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">S</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) || (</span><span class="identifier">index</span><span class="plain"> < </span><span class="constant">0</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="2-str.html#SP40">Streams::get_char_at_index</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">index</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -325,7 +330,7 @@ at those positions may well not be, of course.)
|
|||
<span class="functiontext"><a href="2-str.html#SP40">Streams::put_char_at_index</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">.</span><span class="element">S</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">.</span><span class="element">index</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::put_at<button class="popup" onclick="togglePopup('usagePopup296')">...<span class="popuptext" id="usagePopup296">Usage of <b>Str::put_at</b>:<br>Text Files - <a href="4-tf.html#SP5_3">§5.3</a>, <a href="4-tf.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">index</span><span class="plain">, </span><span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">C</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::put_at<button class="popup" onclick="togglePopup('usagePopup296')">...<span class="popuptext" id="usagePopup296">Usage of <b>Str::put_at</b>:<br>Text Files - <a href="4-tf.html#SP5_3">§5.3</a>, <a href="4-tf.html#SP6">§6</a><br>Web Structure - <a href="8-ws.html#SP5_4_1_1">§5.4.1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">index</span><span class="plain">, </span><span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">C</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP14">Str::put</a></span><span class="plain">(</span><span class="functiontext"><a href="#SP10">Str::at</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">index</span><span class="plain">), </span><span class="identifier">C</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -335,11 +340,11 @@ at those positions may well not be, of course.)
|
|||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. Truncation. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::clear<button class="popup" onclick="togglePopup('usagePopup297')">...<span class="popuptext" id="usagePopup297">Usage of <b>Str::clear</b>:<br><a href="#SP16">§16</a>, <a href="#SP17">§17</a>, <a href="#SP24">§24</a>, Directories - <a href="3-drc.html#SP2">§2</a><br>Text Files - <a href="4-tf.html#SP6">§6</a><br>Pattern Matching - <a href="4-pm.html#SP11_6">§11.6</a><br>Version Numbers - <a href="7-vn.html#SP7_1">§7.1</a><br>Web Structure - <a href="8-ws.html#SP7_3_2_1">§7.3.2.1</a>, <a href="8-ws.html#SP7_3_3_2">§7.3.3.2</a>, <a href="8-ws.html#SP7_2_2_1">§7.2.2.1</a>, <a href="8-ws.html#SP7_2_2_4">§7.2.2.4</a><br>Build Files - <a href="8-bf.html#SP8">§8</a>, <a href="8-bf.html#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::clear<button class="popup" onclick="togglePopup('usagePopup297')">...<span class="popuptext" id="usagePopup297">Usage of <b>Str::clear</b>:<br><a href="#SP16">§16</a>, <a href="#SP17">§17</a>, <a href="#SP24">§24</a>, Directories - <a href="3-drc.html#SP2">§2</a><br>Text Files - <a href="4-tf.html#SP6">§6</a><br>Pattern Matching - <a href="4-pm.html#SP11_6">§11.6</a><br>Version Numbers - <a href="7-vn.html#SP7_1">§7.1</a><br>Web Structure - <a href="8-ws.html#SP5_4_1">§5.4.1</a>, <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_3_2_1">§7.3.2.1</a>, <a href="8-ws.html#SP7_3_3_2">§7.3.3.2</a>, <a href="8-ws.html#SP7_2_2_1">§7.2.2.1</a>, <a href="8-ws.html#SP7_2_2_4">§7.2.2.4</a><br>Build Files - <a href="8-bf.html#SP8">§8</a>, <a href="8-bf.html#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP15">Str::truncate</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="constant">0</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::truncate<button class="popup" onclick="togglePopup('usagePopup298')">...<span class="popuptext" id="usagePopup298">Usage of <b>Str::truncate</b>:<br><a href="#SP23">§23</a>, <a href="#SP24">§24</a>, Web Structure - <a href="8-ws.html#SP7_3_3_1">§7.3.3.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">len</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::truncate<button class="popup" onclick="togglePopup('usagePopup298')">...<span class="popuptext" id="usagePopup298">Usage of <b>Str::truncate</b>:<br><a href="#SP23">§23</a>, <a href="#SP24">§24</a>, Web Structure - <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_3_3_1">§7.3.3.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">len</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">len</span><span class="plain"> < </span><span class="constant">0</span><span class="plain">) </span><span class="identifier">len</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">len</span><span class="plain"> < </span><span class="functiontext"><a href="#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">)) </span><span class="functiontext"><a href="#SP14">Str::put</a></span><span class="plain">(</span><span class="functiontext"><a href="#SP10">Str::at</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">len</span><span class="plain">), </span><span class="constant">0</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -354,7 +359,7 @@ at those positions may well not be, of course.)
|
|||
<span class="functiontext"><a href="2-str.html#SP42">Streams::copy</a></span><span class="plain">(</span><span class="identifier">S1</span><span class="plain">, </span><span class="identifier">S2</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::copy<button class="popup" onclick="togglePopup('usagePopup300')">...<span class="popuptext" id="usagePopup300">Usage of <b>Str::copy</b>:<br>Command Line Arguments - <a href="3-cla.html#SP12">§12</a><br>Pattern Matching - <a href="4-pm.html#SP14">§14</a><br>Epub Ebooks - <a href="5-ee.html#SP5">§5</a>, <a href="5-ee.html#SP7_1">§7.1</a><br>Web Structure - <a href="8-ws.html#SP7_3_2">§7.3.2</a>, <a href="8-ws.html#SP7_3_3_2">§7.3.3.2</a>, <a href="8-ws.html#SP7_2_2_3">§7.2.2.3</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP7">§7</a>, <a href="8-bdfw.html#SP7_2">§7.2</a><br>Build Files - <a href="8-bf.html#SP8">§8</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S2</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Str::copy<button class="popup" onclick="togglePopup('usagePopup300')">...<span class="popuptext" id="usagePopup300">Usage of <b>Str::copy</b>:<br>Command Line Arguments - <a href="3-cla.html#SP12">§12</a><br>Pattern Matching - <a href="4-pm.html#SP14">§14</a><br>Epub Ebooks - <a href="5-ee.html#SP5">§5</a>, <a href="5-ee.html#SP7_1">§7.1</a><br>Web Structure - <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_3_2">§7.3.2</a>, <a href="8-ws.html#SP7_3_3_2">§7.3.3.2</a>, <a href="8-ws.html#SP7_2_2_3">§7.2.2.3</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP7">§7</a>, <a href="8-bdfw.html#SP7_2">§7.2</a><br>Build Files - <a href="8-bf.html#SP8">§8</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S2</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">S1</span><span class="plain"> == </span><span class="identifier">S2</span><span class="plain">) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">S1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="2-str.html#SP42">Streams::copy</a></span><span class="plain">(</span><span class="identifier">S1</span><span class="plain">, </span><span class="identifier">S2</span><span class="plain">);</span>
|
||||
|
@ -397,7 +402,7 @@ at those positions may well not be, of course.)
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Str::eq<button class="popup" onclick="togglePopup('usagePopup305')">...<span class="popuptext" id="usagePopup305">Usage of <b>Str::eq</b>:<br>Debugging Log - <a href="2-dl.html#SP9">§9</a><br>Dictionaries - <a href="2-dct.html#SP7_3">§7.3</a><br>Pathnames - <a href="3-pth.html#SP3">§3</a><br>Filenames - <a href="3-fln.html#SP11">§11</a><br>Web Structure - <a href="8-ws.html#SP7_1">§7.1</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S2</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Str::eq<button class="popup" onclick="togglePopup('usagePopup305')">...<span class="popuptext" id="usagePopup305">Usage of <b>Str::eq</b>:<br>Debugging Log - <a href="2-dl.html#SP9">§9</a><br>Dictionaries - <a href="2-dct.html#SP7_3">§7.3</a><br>Pathnames - <a href="3-pth.html#SP3">§3</a><br>Filenames - <a href="3-fln.html#SP11">§11</a><br>Web Structure - <a href="8-ws.html#SP5_4">§5.4</a>, <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_1">§7.1</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S2</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext"><a href="#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">S1</span><span class="plain">) == </span><span class="functiontext"><a href="#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">S2</span><span class="plain">)) && (</span><span class="functiontext"><a href="#SP19">Str::cmp</a></span><span class="plain">(</span><span class="identifier">S1</span><span class="plain">, </span><span class="identifier">S2</span><span class="plain">) == </span><span class="constant">0</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Tries and Avinues' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Tries and Avinues</b></li></ul><p class="purpose">To examine heads and tails of text, to see how it may inflect.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Tries and Avinues</b></li></ul><p class="purpose">To examine heads and tails of text, to see how it may inflect.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Tries</a></li><li><a href="#SP5">§5. Avinues</a></li><li><a href="#SP9">§9. Logging</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Text Files' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Text Files</b></li></ul><p class="purpose">To read text files of whatever flavour, one line at a time.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Text Files</b></li></ul><p class="purpose">To read text files of whatever flavour, one line at a time.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Text files</a></li><li><a href="#SP2">§2. Text file positions</a></li><li><a href="#SP5">§5. Text file scanner</a></li><li><a href="#SP8">§8. Reading UTF-8 files</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Wide Strings' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Wide Strings</b></li></ul><p class="purpose">A minimal library for handling wide C strings.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#4">Chapter 4: Text Handling</a></li><li><b>Wide Strings</b></li></ul><p class="purpose">A minimal library for handling wide C strings.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>By "wide string", we mean an array of <code class="display"><span class="extract">wchar_t</span></code>. A pointer to this type
|
||||
is what is returned by an L-literal in ANSI C, such as <code class="display"><span class="extract">L"look, I'm wide"</span></code>.
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Epub Ebooks' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#5">Chapter 5: Generating Websites</a></li><li><b>Epub Ebooks</b></li></ul><p class="purpose">To provide for wrapping up sets of HTML files into ePub ebooks.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#5">Chapter 5: Generating Websites</a></li><li><b>Epub Ebooks</b></li></ul><p class="purpose">To provide for wrapping up sets of HTML files into ePub ebooks.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Ebooks</a></li><li><a href="#SP5">§5. Creation</a></li><li><a href="#SP6">§6. Construction</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'HTML' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#5">Chapter 5: Generating Websites</a></li><li><b>HTML</b></li></ul><p class="purpose">Utility functions for writing HTML.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#5">Chapter 5: Generating Websites</a></li><li><b>HTML</b></li></ul><p class="purpose">Utility functions for writing HTML.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Abstraction</a></li><li><a href="#SP8">§8. Head</a></li><li><a href="#SP10">§10. Scripts and styles</a></li><li><a href="#SP12">§12. Body</a></li><li><a href="#SP13">§13. Divisions</a></li><li><a href="#SP14">§14. Images</a></li><li><a href="#SP15">§15. Links</a></li><li><a href="#SP16">§16. Tables</a></li><li><a href="#SP18">§18. Round-rects</a></li><li><a href="#SP19">§19. Miscellaneous</a></li><li><a href="#SP20">§20. HTML colours</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Binary Files' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#6">Chapter 6: Media</a></li><li><b>Binary Files</b></li></ul><p class="purpose">Routines for reading raw data from binary files.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#6">Chapter 6: Media</a></li><li><b>Binary Files</b></li></ul><p class="purpose">Routines for reading raw data from binary files.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Reading binary data</a></li><li><a href="#SP7">§7. Size</a></li><li><a href="#SP8">§8. Opening</a></li><li><a href="#SP9">§9. Copying</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Image Dimensions' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#6">Chapter 6: Media</a></li><li><b>Image Dimensions</b></li></ul><p class="purpose">These utility routines look at the headers of JPEG and PNG files to find the pixel dimensions of any images supplied by the user for cover art and figures.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#6">Chapter 6: Media</a></li><li><b>Image Dimensions</b></li></ul><p class="purpose">These utility routines look at the headers of JPEG and PNG files to find the pixel dimensions of any images supplied by the user for cover art and figures.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. JPEG files</a></li><li><a href="#SP2">§2. PNG files</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Sound Durations' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#6">Chapter 6: Media</a></li><li><b>Sound Durations</b></li></ul><p class="purpose">These utility routines look at the headers of AIFF, OGG Vorbis or MIDI files to find the durations, and verify that they are what they purport to be.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#6">Chapter 6: Media</a></li><li><b>Sound Durations</b></li></ul><p class="purpose">These utility routines look at the headers of AIFF, OGG Vorbis or MIDI files to find the durations, and verify that they are what they purport to be.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. AIFF files</a></li><li><a href="#SP2">§2. OGG Vorbis files</a></li><li><a href="#SP3">§3. MIDI files</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Version Numbers' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#7">Chapter 7: Semantic Versioning</a></li><li><b>Version Numbers</b></li></ul><p class="purpose">Semantic version numbers such as 3.7.1.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#7">Chapter 7: Semantic Versioning</a></li><li><b>Version Numbers</b></li></ul><p class="purpose">Semantic version numbers such as 3.7.1.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Standard adoption</a></li><li><a href="#SP5">§5. Printing and parsing</a></li><li><a href="#SP8">§8. Precendence</a></li><li><a href="#SP11">§11. Trichotomy</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Version Number Ranges' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#7">Chapter 7: Semantic Versioning</a></li><li><b>Version Number Ranges</b></li></ul><p class="purpose">Ranges of acceptable version numbers.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#7">Chapter 7: Semantic Versioning</a></li><li><b>Version Number Ranges</b></li></ul><p class="purpose">Ranges of acceptable version numbers.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Ranges</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Bibliographic Data for Webs' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Bibliographic Data for Webs</b></li></ul><p class="purpose">To manage key-value pairs of bibliographic data, metadata if you like, associated with a given web.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Bibliographic Data for Webs</b></li></ul><p class="purpose">To manage key-value pairs of bibliographic data, metadata if you like, associated with a given web.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Storing data</a></li><li><a href="#SP4">§4. Initialising a web</a></li><li><a href="#SP6">§6. Reading bibliographic data</a></li><li><a href="#SP7">§7. Writing bibliographic data</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -104,6 +109,7 @@ convenient to store them directly here than to use a dictionary.
|
|||
|
||||
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Declare Section Usage"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-></span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Namespaces"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-></span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Sequential Section Ranges"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-></span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Strict Usage Rules"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Off"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-></span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TeX Mathematics Notation"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"On"</span><span class="plain">); </span><span class="identifier">bd</span><span class="plain">-></span><span class="element">on_or_off</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"TeX Mathematics Plugin"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"MathJax3"</span><span class="plain">);</span>
|
||||
|
@ -140,7 +146,7 @@ to check that all the mandatory declarations have indeed been made:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Bibliographic::get_datum<button class="popup" onclick="togglePopup('usagePopup502')">...<span class="popuptext" id="usagePopup502">Usage of <b>Bibliographic::get_datum</b>:<br>Web Structure - <a href="8-ws.html#SP7_3_3_2_1">§7.3.3.2.1</a>, <a href="8-ws.html#SP7_2_2_3_1">§7.2.2.3.1</a><br>Build Files - <a href="8-bf.html#SP6">§6</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">key</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Bibliographic::get_datum<button class="popup" onclick="togglePopup('usagePopup502')">...<span class="popuptext" id="usagePopup502">Usage of <b>Bibliographic::get_datum</b>:<br>Web Structure - <a href="8-ws.html#SP5_4">§5.4</a>, <a href="8-ws.html#SP7_3_3_2_1">§7.3.3.2.1</a>, <a href="8-ws.html#SP7_2_2_3_1">§7.2.2.3.1</a><br>Build Files - <a href="8-bf.html#SP6">§6</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">key</span><span class="plain">) {</span>
|
||||
<span class="reserved">web_bibliographic_datum</span><span class="plain"> *</span><span class="identifier">bd</span><span class="plain"> = </span><span class="functiontext"><a href="#SP6">Bibliographic::look_up_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">key</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bd</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">bd</span><span class="plain">-></span><span class="element">value</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Build Files' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Build Files</b></li></ul><p class="purpose">Manages the build metadata for an inweb project.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Build Files</b></li></ul><p class="purpose">Manages the build metadata for an inweb project.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. About build files</a></li><li><a href="#SP5">§5. Bibliographic implications</a></li><li><a href="#SP7">§7. Advancing</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Web Modules' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Web Modules</b></li></ul><p class="purpose">To search for included modules, and track dependencies between them.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Web Modules</b></li></ul><p class="purpose">To search for included modules, and track dependencies between them.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Creation</a></li><li><a href="#SP4">§4. Dependencies</a></li><li><a href="#SP5">§5. Searching</a></li><li><a href="#SP9">§9. Resolving cross-reference names</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Web Structure' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Web Structure</b></li></ul><p class="purpose">To read the structure of a literate programming web from a path in the file system.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation</a></li><li><a href="index.html#8">Chapter 8: Literate Programming</a></li><li><b>Web Structure</b></li></ul><p class="purpose">To read the structure of a literate programming web from a path in the file system.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP2">§2. Web MD</a></li><li><a href="#SP5">§5. Reading from the file system</a></li><li><a href="#SP6">§6. Reading the contents page</a></li><li><a href="#SP8">§8. Relative pathnames or filenames</a></li><li><a href="#SP9">§9. Statistics</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -115,6 +120,7 @@ produce the following metadata structure.
|
|||
<pre class="display">
|
||||
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">struct</span><span class="plain"> </span><span class="reserved">section_md</span><span class="plain"> {</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sect_title</span><span class="plain">; </span><span class="comment"> e.g., "Program Control"</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sect_range</span><span class="plain">; </span><span class="comment"> e.g., "2/ct"</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">using_syntax</span><span class="plain">; </span><span class="comment"> which syntax the web is written in</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">is_a_singleton</span><span class="plain">; </span><span class="comment"> is this the only section in its entire web?</span>
|
||||
|
||||
|
@ -152,6 +158,7 @@ case a filename <code class="display"><span class="extract">alt_F</span></code>
|
|||
<span class="functiontext"><a href="#SP6">WebMetadata::read_contents_page</a></span><span class="plain">(</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="identifier">I</span><span class="plain">, </span><span class="identifier">verbosely</span><span class="plain">,</span>
|
||||
<span class="identifier">including_modules</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">path_to_inweb</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Consolidate the bibliographic data</span> <span class="cwebmacronumber">5.3</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Work out the section ranges</span> <span class="cwebmacronumber">5.4</span>><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">Wm</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -217,6 +224,141 @@ case a filename <code class="display"><span class="extract">alt_F</span></code>
|
|||
|
||||
<p class="endnote">This code is used in <a href="#SP5">§5</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP5_4"></a><b>§5.4. </b>If no range is supplied, we make one ourselves.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Work out the section ranges</span> <span class="cwebmacronumber">5.4</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">sequential</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">; </span><span class="comment"> are we numbering sections sequentially?</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::get_datum</a></span><span class="plain">(</span><span class="identifier">Wm</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Sequential Section Ranges"</span><span class="plain">), </span><span class="identifier">I</span><span class="string">"On"</span><span class="plain">))</span>
|
||||
<span class="identifier">sequential</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">chapter_md</span><span class="plain"> *</span><span class="identifier">Cm</span><span class="plain">;</span>
|
||||
<span class="reserved">section_md</span><span class="plain"> *</span><span class="identifier">Sm</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">Cm</span><span class="plain">, </span><span class="reserved">chapter_md</span><span class="plain">, </span><span class="identifier">Wm</span><span class="plain">-></span><span class="element">chapters_md</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">section_counter</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">, </span><span class="reserved">section_md</span><span class="plain">, </span><span class="identifier">Cm</span><span class="plain">-></span><span class="element">sections_md</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">) == </span><span class="constant">0</span><span class="plain">)</span>
|
||||
<<span class="cwebmacro">Concoct a range for section Sm in chapter Cm in web Wm</span> <span class="cwebmacronumber">5.4.1</span>><span class="plain">;</span>
|
||||
<span class="identifier">section_counter</span><span class="plain">++;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP5">§5</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP5_4_1"></a><b>§5.4.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Concoct a range for section Sm in chapter Cm in web Wm</span> <span class="cwebmacronumber">5.4.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<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">Sm</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">Cm</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">Sm</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">Sm</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"> = </span><span class="constant">5</span><span class="plain">;</span>
|
||||
<span class="reserved">do</span><span class="plain"> {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">Sm</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">Sm</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">Cm</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">5.4.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"> == </span><span class="constant">0</span><span class="plain">) </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"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">) > </span><span class="constant">5</span><span class="plain">);</span>
|
||||
|
||||
<<span class="cwebmacro">Terminate with disambiguating numbers in case of collisions</span> <span class="cwebmacronumber">5.4.1.2</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP5_4">§5.4</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP5_4_1_1"></a><b>§5.4.1.1. </b>We collapse words to an initial letter plus consonants: thus "electricity"
|
||||
would be "elctrcty", since we don't count "y" as a vowel here.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Make the tail using this many consonants from each word</span> <span class="cwebmacronumber">5.4.1.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">sn</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">sw</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) == </span><span class="constant">FOLDER_SEPARATOR</span><span class="plain">) </span><span class="identifier">sn</span><span class="plain">++;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">letters_from_current_word</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">while</span><span class="plain"> ((</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">)) && (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) != </span><span class="character">'.'</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) == </span><span class="character">' '</span><span class="plain">) </span><span class="identifier">letters_from_current_word</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">letters_from_current_word</span><span class="plain"> < </span><span class="identifier">letters_from_each_word</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) != </span><span class="character">'-'</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">l</span><span class="plain"> = </span><span class="identifier">tolower</span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">));</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">letters_from_current_word</span><span class="plain"> == </span><span class="constant">0</span><span class="plain">) ||</span>
|
||||
<span class="plain">((</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'a'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'e'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'i'</span><span class="plain">) &&</span>
|
||||
<span class="plain">(</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'o'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'u'</span><span class="plain">))) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP14">Str::put_at</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">, </span><span class="identifier">sw</span><span class="plain">++, </span><span class="identifier">l</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP14">Str::put_at</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">, </span><span class="identifier">sw</span><span class="plain">, </span><span class="constant">0</span><span class="plain">);</span>
|
||||
<span class="identifier">letters_from_current_word</span><span class="plain">++;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">sn</span><span class="plain">++;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP5_4_1">§5.4.1</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP5_4_1_2"></a><b>§5.4.1.2. </b>We never want two sections to have the same range.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Terminate with disambiguating numbers in case of collisions</span> <span class="cwebmacronumber">5.4.1.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">original_range</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">original_range</span><span class="plain">, </span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">disnum</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">collision</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">do</span><span class="plain"> {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain">++ > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">4</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain"> >= </span><span class="constant">1000</span><span class="plain">) </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">3</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain"> >= </span><span class="constant">100</span><span class="plain">) </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">2</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain"> >= </span><span class="constant">10</span><span class="plain">) </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">Sm</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">Sm</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">original_range</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::truncate</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">, </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">) - </span><span class="identifier">ldn</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">, </span><span class="string">"%d"</span><span class="plain">, </span><span class="identifier">disnum</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">collision</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">chapter_md</span><span class="plain"> *</span><span class="identifier">Cm2</span><span class="plain">;</span>
|
||||
<span class="reserved">section_md</span><span class="plain"> *</span><span class="identifier">Sm2</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">Cm2</span><span class="plain">, </span><span class="reserved">chapter_md</span><span class="plain">, </span><span class="identifier">Wm</span><span class="plain">-></span><span class="element">chapters_md</span><span class="plain">)</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">Sm2</span><span class="plain">, </span><span class="reserved">section_md</span><span class="plain">, </span><span class="identifier">Cm2</span><span class="plain">-></span><span class="element">sections_md</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">Sm2</span><span class="plain"> != </span><span class="identifier">Sm</span><span class="plain">) && (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">Sm2</span><span class="plain">-></span><span class="identifier">sect_range</span><span class="plain">, </span><span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">))) {</span>
|
||||
<span class="identifier">collision</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">; </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">} </span><span class="reserved">while</span><span class="plain"> (</span><span class="identifier">collision</span><span class="plain">);</span>
|
||||
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">original_range</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP5_4_1">§5.4.1</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Reading the contents page. </b>Making the web begins by reading the contents section, which really isn't a
|
||||
section at all (and perhaps we shouldn't pretend that it is by the use of the
|
||||
<code class="display"><span class="extract">.w</span></code> file extension, but we probably want it to have the same file extension,
|
||||
|
@ -756,6 +898,7 @@ we also read in and process its file.
|
|||
<span class="identifier">Sm</span><span class="plain">-></span><span class="element">using_syntax</span><span class="plain"> = </span><span class="identifier">syntax</span><span class="plain">;</span>
|
||||
<span class="identifier">Sm</span><span class="plain">-></span><span class="element">is_a_singleton</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">Sm</span><span class="plain">-></span><span class="element">titling_line_to_insert</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">RS</span><span class="plain">-></span><span class="element">titling_line_to_insert</span><span class="plain">);</span>
|
||||
<span class="identifier">Sm</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP2">Str::new</a></span><span class="plain">();</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">RS</span><span class="plain">-></span><span class="element">titling_line_to_insert</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<b>Plugins</b>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -17,12 +17,17 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</nav>
|
||||
<main role="main">
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><b>foundation</b></li></ul>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><b>foundation</b></li></ul>
|
||||
<p class="purpose">A library of common code used by all of the Inform tools. This is version 1.</p>
|
||||
<hr>
|
||||
<ul class="chapterlist">
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Program Control' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation-test</a></li><li><b>Program Control</b></li></ul><p class="purpose">Choosing which unit test to run on the basis of the command-line arguments.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation-test</a></li><li><b>Program Control</b></li></ul><p class="purpose">Choosing which unit test to run on the basis of the command-line arguments.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Main routine</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -45,7 +50,7 @@
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">main<button class="popup" onclick="togglePopup('usagePopup0')">...<span class="popuptext" id="usagePopup0">Usage of <b>main</b>:<br>Web Modules - <a href="8-wm.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> **</span><span class="identifier">argv</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">main</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> **</span><span class="identifier">argv</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="1-fm.html#SP8">Foundation::start</a></span><span class="plain">();</span>
|
||||
<span class="functiontext"><a href="3-cla.html#SP14">CommandLine::declare_heading</a></span><span class="plain">(</span><span class="identifier">L</span><span class="string">"inexample: a tool for testing foundation facilities\n"</span><span class="plain">);</span>
|
||||
|
||||
|
@ -71,7 +76,7 @@
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::respond<button class="popup" onclick="togglePopup('usagePopup1')">...<span class="popuptext" id="usagePopup1">Usage of <b>Main::respond</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">val</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::respond<button class="popup" onclick="togglePopup('usagePopup0')">...<span class="popuptext" id="usagePopup0">Usage of <b>Main::respond</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">val</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="identifier">TEST_STRINGS_CLSW:</span><span class="plain"> </span><span class="functiontext"><a href="S-ut.html#SP1">Unit::test_strings</a></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="identifier">TEST_RE_CLSW:</span><span class="plain"> </span><span class="functiontext"><a href="S-ut.html#SP4">Unit::test_regexp</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
|
@ -84,7 +89,7 @@
|
|||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::ignore<button class="popup" onclick="togglePopup('usagePopup2')">...<span class="popuptext" id="usagePopup2">Usage of <b>Main::ignore</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::ignore<button class="popup" onclick="togglePopup('usagePopup1')">...<span class="popuptext" id="usagePopup1">Usage of <b>Main::ignore</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP2">Errors::fatal</a></span><span class="plain">(</span><span class="string">"only switches may be used at the command line"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,14 +30,14 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Unit Tests' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">foundation-test</a></li><li><b>Unit Tests</b></li></ul><p class="purpose">A selection of tests for, or demonstrations of, foundation features.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">foundation-test</a></li><li><b>Unit Tests</b></li></ul><p class="purpose">A selection of tests for, or demonstrations of, foundation features.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Strings</a></li><li><a href="#SP2">§2. Literals</a></li><li><a href="#SP3">§3. Dictionaries</a></li><li><a href="#SP4">§4. Regexp</a></li><li><a href="#SP5">§5. Replacements</a></li><li><a href="#SP6">§6. Linked lists</a></li><li><a href="#SP7">§7. Stacks</a></li><li><a href="#SP8">§8. Semantic versions</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Strings. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_strings<button class="popup" onclick="togglePopup('usagePopup3')">...<span class="popuptext" id="usagePopup3">Usage of <b>Unit::test_strings</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_strings<button class="popup" onclick="togglePopup('usagePopup2')">...<span class="popuptext" id="usagePopup2">Usage of <b>Unit::test_strings</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP4">Str::new_from_wide_string</a></span><span class="plain">(</span><span class="identifier">L</span><span class="string">"Jack and Jill"</span><span class="plain">);</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"Setup: %S\n"</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">);</span>
|
||||
|
||||
|
@ -69,7 +74,7 @@
|
|||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Literals. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_literals<button class="popup" onclick="togglePopup('usagePopup4')">...<span class="popuptext" id="usagePopup4">Usage of <b>Unit::test_literals</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_literals<button class="popup" onclick="togglePopup('usagePopup3')">...<span class="popuptext" id="usagePopup3">Usage of <b>Unit::test_literals</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"This is \"tricky"</span><span class="plain">); </span><span class="identifier">LOG</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"bananas"</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">z</span><span class="plain"> = </span><span class="character">'"'</span><span class="plain">; </span><span class="identifier">LOG</span><span class="plain">(</span><span class="string">"%S%d"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"peaches"</span><span class="plain">, </span><span class="identifier">z</span><span class="plain">);</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">A</span><span class="plain"> = </span><span class="identifier">I</span><span class="string">"Jackdaws love my big sphinx of quartz"</span><span class="plain">;</span>
|
||||
|
@ -88,7 +93,7 @@
|
|||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. Dictionaries. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_dictionaries<button class="popup" onclick="togglePopup('usagePopup5')">...<span class="popuptext" id="usagePopup5">Usage of <b>Unit::test_dictionaries</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_dictionaries<button class="popup" onclick="togglePopup('usagePopup4')">...<span class="popuptext" id="usagePopup4">Usage of <b>Unit::test_dictionaries</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">dictionary</span><span class="plain"> *</span><span class="identifier">D</span><span class="plain"> = </span><span class="functiontext"><a href="2-dct.html#SP2">Dictionaries::new</a></span><span class="plain">(2, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="2-dct.html#SP3">Dictionaries::log</a></span><span class="plain">(</span><span class="constant">STDOUT</span><span class="plain">, </span><span class="identifier">D</span><span class="plain">);</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP3">Filenames::from_text</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">);</span>
|
||||
|
@ -100,7 +105,7 @@
|
|||
<span class="functiontext"><a href="2-dct.html#SP3">Dictionaries::log</a></span><span class="plain">(</span><span class="constant">STDOUT</span><span class="plain">, </span><span class="identifier">D</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_dictionaries_helper1<button class="popup" onclick="togglePopup('usagePopup6')">...<span class="popuptext" id="usagePopup6">Usage of <b>Unit::test_dictionaries_helper1</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">vD</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_dictionaries_helper1<button class="popup" onclick="togglePopup('usagePopup5')">...<span class="popuptext" id="usagePopup5">Usage of <b>Unit::test_dictionaries_helper1</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">vD</span><span class="plain">) {</span>
|
||||
<span class="reserved">dictionary</span><span class="plain"> *</span><span class="identifier">D</span><span class="plain"> = (</span><span class="reserved">dictionary</span><span class="plain"> *) </span><span class="identifier">vD</span><span class="plain">;</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">" *"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
|
@ -119,7 +124,7 @@
|
|||
<span class="functiontext"><a href="3-em.html#SP5">Errors::in_text_file</a></span><span class="plain">(</span><span class="string">"test case won't parse"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_dictionaries_helper2<button class="popup" onclick="togglePopup('usagePopup7')">...<span class="popuptext" id="usagePopup7">Usage of <b>Unit::test_dictionaries_helper2</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">vD</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_dictionaries_helper2<button class="popup" onclick="togglePopup('usagePopup6')">...<span class="popuptext" id="usagePopup6">Usage of <b>Unit::test_dictionaries_helper2</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">vD</span><span class="plain">) {</span>
|
||||
<span class="reserved">dictionary</span><span class="plain"> *</span><span class="identifier">D</span><span class="plain"> = (</span><span class="reserved">dictionary</span><span class="plain"> *) </span><span class="identifier">vD</span><span class="plain">;</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">" *"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
|
@ -142,13 +147,13 @@
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. Regexp. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_regexp<button class="popup" onclick="togglePopup('usagePopup8')">...<span class="popuptext" id="usagePopup8">Usage of <b>Unit::test_regexp</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_regexp<button class="popup" onclick="togglePopup('usagePopup7')">...<span class="popuptext" id="usagePopup7">Usage of <b>Unit::test_regexp</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP3">Filenames::from_text</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-tf.html#SP5">TextFiles::read</a></span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="string">"unable to read file of test cases"</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">,</span>
|
||||
<span class="plain">&</span><span class="functiontext"><a href="#SP4">Unit::test_regexp_helper</a></span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_regexp_helper<button class="popup" onclick="togglePopup('usagePopup9')">...<span class="popuptext" id="usagePopup9">Usage of <b>Unit::test_regexp_helper</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_regexp_helper<button class="popup" onclick="togglePopup('usagePopup8')">...<span class="popuptext" id="usagePopup8">Usage of <b>Unit::test_regexp_helper</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">" *"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"%'(%c*?)%' %'(%c*)%'"</span><span class="plain">)) {</span>
|
||||
|
@ -177,13 +182,13 @@
|
|||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. Replacements. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_replacement<button class="popup" onclick="togglePopup('usagePopup10')">...<span class="popuptext" id="usagePopup10">Usage of <b>Unit::test_replacement</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_replacement<button class="popup" onclick="togglePopup('usagePopup9')">...<span class="popuptext" id="usagePopup9">Usage of <b>Unit::test_replacement</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP3">Filenames::from_text</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-tf.html#SP5">TextFiles::read</a></span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="string">"unable to read file of test cases"</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">,</span>
|
||||
<span class="plain">&</span><span class="functiontext"><a href="#SP5">Unit::test_replacement_helper</a></span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_replacement_helper<button class="popup" onclick="togglePopup('usagePopup11')">...<span class="popuptext" id="usagePopup11">Usage of <b>Unit::test_replacement_helper</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_replacement_helper<button class="popup" onclick="togglePopup('usagePopup10')">...<span class="popuptext" id="usagePopup10">Usage of <b>Unit::test_replacement_helper</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">" *"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"%'(%c*?)%' %'(%c*?)%' %'(%c*)%'"</span><span class="plain">)) {</span>
|
||||
|
@ -206,7 +211,7 @@
|
|||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Linked lists. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_linked_lists<button class="popup" onclick="togglePopup('usagePopup12')">...<span class="popuptext" id="usagePopup12">Usage of <b>Unit::test_linked_lists</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_linked_lists<button class="popup" onclick="togglePopup('usagePopup11')">...<span class="popuptext" id="usagePopup11">Usage of <b>Unit::test_linked_lists</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">test_list</span><span class="plain"> = </span><span class="identifier">NEW_LINKED_LIST</span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain">);</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"List (which should be empty) contains:\n"</span><span class="plain">);</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">;</span>
|
||||
|
@ -234,7 +239,7 @@
|
|||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. Stacks. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_stacks<button class="popup" onclick="togglePopup('usagePopup13')">...<span class="popuptext" id="usagePopup13">Usage of <b>Unit::test_stacks</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_stacks<button class="popup" onclick="togglePopup('usagePopup12')">...<span class="popuptext" id="usagePopup12">Usage of <b>Unit::test_stacks</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="constant">lifo_stack</span><span class="plain"> *</span><span class="identifier">test_stack</span><span class="plain"> = </span><span class="identifier">NEW_LIFO_STACK</span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain">);</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"Top of stack is: %S\n"</span><span class="plain">, </span><span class="identifier">TOP_OF_LIFO_STACK</span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain">, </span><span class="identifier">test_stack</span><span class="plain">));</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">LIFO_STACK_EMPTY</span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain">, </span><span class="identifier">test_stack</span><span class="plain">)) </span><span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"Stack is empty\n"</span><span class="plain">);</span>
|
||||
|
@ -264,7 +269,7 @@
|
|||
<p class="inwebparagraph"><a id="SP8"></a><b>§8. Semantic versions. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_range<button class="popup" onclick="togglePopup('usagePopup14')">...<span class="popuptext" id="usagePopup14">Usage of <b>Unit::test_range</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_range<button class="popup" onclick="togglePopup('usagePopup13')">...<span class="popuptext" id="usagePopup13">Usage of <b>Unit::test_range</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">semantic_version_number</span><span class="plain"> </span><span class="identifier">V</span><span class="plain"> = </span><span class="functiontext"><a href="7-vn.html#SP7">VersionNumbers::from_text</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">);</span>
|
||||
<span class="reserved">semver_range</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain"> = </span><span class="functiontext"><a href="7-vnr.html#SP4">VersionNumberRanges::compatibility_range</a></span><span class="plain">(</span><span class="identifier">V</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"Compatibility range of %v = "</span><span class="plain">, &</span><span class="identifier">V</span><span class="plain">);</span>
|
||||
|
@ -280,7 +285,7 @@
|
|||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\n"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_intersect<button class="popup" onclick="togglePopup('usagePopup15')">...<span class="popuptext" id="usagePopup15">Usage of <b>Unit::test_intersect</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_intersect<button class="popup" onclick="togglePopup('usagePopup14')">...<span class="popuptext" id="usagePopup14">Usage of <b>Unit::test_intersect</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text1</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">r1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text2</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">r2</span><span class="plain">) {</span>
|
||||
<span class="reserved">semantic_version_number</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain"> = </span><span class="functiontext"><a href="7-vn.html#SP7">VersionNumbers::from_text</a></span><span class="plain">(</span><span class="identifier">text1</span><span class="plain">);</span>
|
||||
<span class="reserved">semver_range</span><span class="plain"> *</span><span class="identifier">R1</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -302,12 +307,12 @@
|
|||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\n"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_read_write<button class="popup" onclick="togglePopup('usagePopup16')">...<span class="popuptext" id="usagePopup16">Usage of <b>Unit::test_read_write</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_read_write<button class="popup" onclick="togglePopup('usagePopup15')">...<span class="popuptext" id="usagePopup15">Usage of <b>Unit::test_read_write</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">semantic_version_number</span><span class="plain"> </span><span class="identifier">V</span><span class="plain"> = </span><span class="functiontext"><a href="7-vn.html#SP7">VersionNumbers::from_text</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"'%S' --> %v\n"</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, &</span><span class="identifier">V</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_precedence<button class="popup" onclick="togglePopup('usagePopup17')">...<span class="popuptext" id="usagePopup17">Usage of <b>Unit::test_precedence</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text2</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_precedence<button class="popup" onclick="togglePopup('usagePopup16')">...<span class="popuptext" id="usagePopup16">Usage of <b>Unit::test_precedence</b>:<br>none</span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text2</span><span class="plain">) {</span>
|
||||
<span class="reserved">semantic_version_number</span><span class="plain"> </span><span class="identifier">V1</span><span class="plain"> = </span><span class="functiontext"><a href="7-vn.html#SP7">VersionNumbers::from_text</a></span><span class="plain">(</span><span class="identifier">text1</span><span class="plain">);</span>
|
||||
<span class="reserved">semantic_version_number</span><span class="plain"> </span><span class="identifier">V2</span><span class="plain"> = </span><span class="functiontext"><a href="7-vn.html#SP7">VersionNumbers::from_text</a></span><span class="plain">(</span><span class="identifier">text2</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">gt</span><span class="plain"> = </span><span class="functiontext"><a href="7-vn.html#SP11">VersionNumbers::gt</a></span><span class="plain">(</span><span class="identifier">V1</span><span class="plain">, </span><span class="identifier">V2</span><span class="plain">);</span>
|
||||
|
@ -319,7 +324,7 @@
|
|||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\n"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_semver<button class="popup" onclick="togglePopup('usagePopup18')">...<span class="popuptext" id="usagePopup18">Usage of <b>Unit::test_semver</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Unit::test_semver<button class="popup" onclick="togglePopup('usagePopup17')">...<span class="popuptext" id="usagePopup17">Usage of <b>Unit::test_semver</b>:<br>Program Control - <a href="S-pc.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP8">Unit::test_read_write</a></span><span class="plain">(</span><span class="constant">STDOUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"1"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP8">Unit::test_read_write</a></span><span class="plain">(</span><span class="constant">STDOUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"1.2"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP8">Unit::test_read_write</a></span><span class="plain">(</span><span class="constant">STDOUT</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"1.2.3"</span><span class="plain">);</span>
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<b>Plugins</b>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -17,12 +17,17 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</nav>
|
||||
<main role="main">
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><b>foundation-test</b></li></ul>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><b>foundation-test</b></li></ul>
|
||||
<p class="purpose">Unit tests for the foundation module. This is version 1.</p>
|
||||
<hr>
|
||||
<ul class="sectionlist">
|
||||
|
|
BIN
docs/goldbach/Letter.jpg
Normal file
BIN
docs/goldbach/Letter.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 107 KiB |
71
docs/goldbach/Popups.css
Normal file
71
docs/goldbach/Popups.css
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* Popup container - can be anything you want */
|
||||
.popup {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/* The actual popup */
|
||||
.popup .popuptext {
|
||||
visibility: hidden;
|
||||
width: 500px;
|
||||
background-color: #eaeaea;
|
||||
border: 1px solid #c3c3c3
|
||||
color: #000;
|
||||
text-align: center;
|
||||
border-radius: 6px;
|
||||
padding: 8px 0;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 125%;
|
||||
left: 50%;
|
||||
margin-left: -250px;
|
||||
font-size: 12pt;
|
||||
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Popup arrow */
|
||||
.popup .popuptext::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #555 transparent transparent transparent;
|
||||
}
|
||||
|
||||
/* Toggle this class - hide and show the popup */
|
||||
.popup .show {
|
||||
visibility: visible;
|
||||
-webkit-animation: fadeIn 1s;
|
||||
animation: fadeIn 1s;
|
||||
}
|
||||
|
||||
/* Add animation (fade in the popup) */
|
||||
@-webkit-keyframes fadeIn {
|
||||
from {opacity: 0;}
|
||||
to {opacity: 1;}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {opacity: 0;}
|
||||
to {opacity:1 ;}
|
||||
}
|
||||
|
||||
.popupCircle {
|
||||
display: inline-block;
|
||||
width: 0.25em;
|
||||
height: 0.25em;
|
||||
margin-right: 0.25em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.popupCircle:last-child {
|
||||
margin-right: 0;
|
||||
}
|
121
docs/goldbach/S-tgc.html
Normal file
121
docs/goldbach/S-tgc.html
Normal file
|
@ -0,0 +1,121 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>The Goldbach Conjecture</title>
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
<h2>Foundation</h2>
|
||||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</nav>
|
||||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Goldbach Conjecture' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">goldbach</a></li><li><b>The Goldbach Conjecture</b></li></ul><p class="purpose">Here we verify the conjecture for small numbers.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. The conjecture</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. The conjecture. </b>So, this is a program to see if even numbers from 4 to 100 can all be written
|
||||
as a sum of two primes. Christian Goldbach asked Euler in 1742 if every even
|
||||
number greater than 2 can be written this way. This remains open, though
|
||||
every even number is a sum of at most six primes (Ramaré, 1995) and every
|
||||
odd number is a sum of at most five (Tao, 2012).
|
||||
</p>
|
||||
|
||||
<center><img src="Letter.jpg"></center>
|
||||
<p class="inwebparagraph">Computer verification has been made up to around \(10^{18}\), but by rather better
|
||||
methods.
|
||||
</p>
|
||||
|
||||
|
||||
<pre class="definitions">
|
||||
<span class="definitionkeyword">define</span> <span class="constant">RANGE</span><span class="plain"> </span><span class="constant">100</span>
|
||||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="plain">#</span><span class="identifier">include</span><span class="plain"> <</span><span class="identifier">stdio</span><span class="plain">.</span><span class="identifier">h</span><span class="plain">></span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">main</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">argv</span><span class="plain">[]) {</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=4; </span><span class="identifier">i</span><span class="plain"><</span><span class="constant">RANGE</span><span class="plain">; </span><span class="identifier">i</span><span class="plain">=</span><span class="identifier">i</span><span class="plain">+2)</span>
|
||||
<<span class="cwebmacro">Solve Goldbach's conjecture for i</span> <span class="cwebmacronumber">1.1</span>><span class="character">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1_1"></a><b>§1.1. </b>This ought to print:
|
||||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="plain">4 = 2+2</span>
|
||||
<span class="plain">6 = 3+3</span>
|
||||
<span class="plain">8 = 3+5</span>
|
||||
<span class="plain">10 = 3+7 5+5</span>
|
||||
<span class="plain">12 = 5+7</span>
|
||||
<span class="plain">14 = 3+11 7+7</span>
|
||||
<span class="plain">...</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph">We'll print each different pair of primes adding up to i. We
|
||||
only check in the range \(2 \leq j \leq i/2\) to avoid counting pairs
|
||||
twice over (thus \(8 = 3+5 = 5+3\), but that's hardly two different ways).
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Solve Goldbach's conjecture for i</span> <span class="cwebmacronumber">1.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">printf</span><span class="plain">(</span><span class="string">"%d ="</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">);</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">j</span><span class="plain">=2; </span><span class="identifier">j</span><span class="plain"><=</span><span class="identifier">i</span><span class="plain">/2; </span><span class="identifier">j</span><span class="plain">++)</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext"><a href="S-tsoe.html#SP2">isprime</a></span><span class="plain">(</span><span class="identifier">j</span><span class="plain">)) && (</span><span class="functiontext"><a href="S-tsoe.html#SP2">isprime</a></span><span class="plain">(</span><span class="identifier">i</span><span class="plain">-</span><span class="identifier">j</span><span class="plain">)))</span>
|
||||
<span class="identifier">printf</span><span class="plain">(</span><span class="string">" %d+%d"</span><span class="plain">, </span><span class="identifier">j</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">-</span><span class="identifier">j</span><span class="plain">);</span>
|
||||
<span class="identifier">printf</span><span class="plain">(</span><span class="string">"\n"</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP1">§1</a>.</p>
|
||||
|
||||
<hr class="tocbar">
|
||||
<ul class="toc"><li><i>(This section begins Sections.)</i></li><li><a href="S-tsoe.html">Continue with 'The Sieve of Eratosthenes'</a></li></ul><hr class="tocbar">
|
||||
<!--End of weave-->
|
||||
<script>
|
||||
MathJax = {
|
||||
tex: {
|
||||
inlineMath: <b>'$', '$'], ['\\(', '\\)'</b>
|
||||
},
|
||||
svg: {
|
||||
fontCache: 'global'
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" id="MathJax-script" async
|
||||
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
|
||||
</script>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
142
docs/goldbach/S-tsoe.html
Normal file
142
docs/goldbach/S-tsoe.html
Normal file
|
@ -0,0 +1,142 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>The Sieve of Eratosthenes</title>
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
<h2>Foundation</h2>
|
||||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</nav>
|
||||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Sieve of Eratosthenes' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">goldbach</a></li><li><b>The Sieve of Eratosthenes</b></li></ul><p class="purpose">A fairly fast way to determine if small numbers are prime, given storage.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Storage</a></li><li><a href="#SP2">§2. Primality</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Storage. </b>This technique, still essentially the best sieve for finding prime
|
||||
numbers, is attributed to Eratosthenes of Cyrene and dates from the 200s BC.
|
||||
Since composite numbers are exactly those numbers which are multiples of
|
||||
something, the idea is to remove everything which is a multiple: whatever
|
||||
is left, must be prime.
|
||||
</p>
|
||||
|
||||
<p class="inwebparagraph">This is very fast (and can be done more quickly than the implementation
|
||||
below), but (a) uses storage to hold the sieve, and (b) has to start right
|
||||
back at 2 - so it can't efficiently test just, say, the eight-digit numbers
|
||||
for primality.
|
||||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">still_in_sieve</span><span class="plain">[</span><span class="constant">RANGE</span><span class="plain"> + </span><span class="constant">1</span><span class="plain">];</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">sieve_performed</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. Primality. </b>We provide this as a function which determines whether a number is prime:
|
||||
</p>
|
||||
|
||||
|
||||
<pre class="definitions">
|
||||
<span class="definitionkeyword">define</span> <span class="constant">TRUE</span><span class="plain"> </span><span class="constant">1</span>
|
||||
<span class="definitionkeyword">define</span> <span class="constant">FALSE</span><span class="plain"> </span><span class="constant">0</span>
|
||||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">isprime<button class="popup" onclick="togglePopup('usagePopup0')">...<span class="popuptext" id="usagePopup0">Usage of <b>isprime</b>:<br>The Goldbach Conjecture - <a href="S-tgc.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">n</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">n</span><span class="plain"> <= </span><span class="constant">1</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">n</span><span class="plain"> > </span><span class="constant">RANGE</span><span class="plain">) { </span><span class="identifier">printf</span><span class="plain">(</span><span class="string">"Out of range!\n"</span><span class="plain">); </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">; }</span>
|
||||
<span class="reserved">if</span><span class="plain"> (!</span><span class="identifier">sieve_performed</span><span class="plain">) </span><<span class="cwebmacro">Perform the sieve</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">still_in_sieve</span><span class="plain">[</span><span class="identifier">n</span><span class="plain">];</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_1"></a><b>§2.1. </b>We save a little time by noting that if a number up to <code class="display"><span class="extract">RANGE</span></code> is composite
|
||||
then one of its factors must be smaller than the square root of <code class="display"><span class="extract">RANGE</span></code>. Thus,
|
||||
in a sieve of size 10000, one only needs to remove multiples of 2 up to 100,
|
||||
for example.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Perform the sieve</span> <span class="cwebmacronumber">2.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<<span class="cwebmacro">Start with all numbers from 2 upwards in the sieve</span> <span class="cwebmacronumber">2.1.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">n</span><span class="plain">=2; </span><span class="identifier">n</span><span class="plain">*</span><span class="identifier">n</span><span class="plain"> <= </span><span class="constant">RANGE</span><span class="plain">; </span><span class="identifier">n</span><span class="plain">++)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">still_in_sieve</span><span class="plain">[</span><span class="identifier">n</span><span class="plain">])</span>
|
||||
<<span class="cwebmacro">Shake out multiples of n</span> <span class="cwebmacronumber">2.1.2</span>><span class="plain">;</span>
|
||||
<span class="identifier">sieve_performed</span><span class="plain"> = </span><span class="constant">TRUE</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">Start with all numbers from 2 upwards in the sieve</span> <span class="cwebmacronumber">2.1.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">still_in_sieve</span><span class="plain">[1] = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">n</span><span class="plain">=2; </span><span class="identifier">n</span><span class="plain"> <= </span><span class="constant">RANGE</span><span class="plain">; </span><span class="identifier">n</span><span class="plain">++) </span><span class="identifier">still_in_sieve</span><span class="plain">[</span><span class="identifier">n</span><span class="plain">] = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2_1">§2.1</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_1_2"></a><b>§2.1.2. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Shake out multiples of n</span> <span class="cwebmacronumber">2.1.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">m</span><span class="plain">= </span><span class="identifier">n</span><span class="plain">+</span><span class="identifier">n</span><span class="plain">; </span><span class="identifier">m</span><span class="plain"> <= </span><span class="constant">RANGE</span><span class="plain">; </span><span class="identifier">m</span><span class="plain"> += </span><span class="identifier">n</span><span class="plain">) </span><span class="identifier">still_in_sieve</span><span class="plain">[</span><span class="identifier">m</span><span class="plain">] = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP2_1">§2.1</a>.</p>
|
||||
|
||||
<hr class="tocbar">
|
||||
<ul class="toc"><li><a href="S-tgc.html">Back to 'The Goldbach Conjecture'</a></li><li><i>(This section ends Sections.)</i></li></ul><hr class="tocbar">
|
||||
<!--End of weave-->
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
48
docs/goldbach/index.html
Normal file
48
docs/goldbach/index.html
Normal file
|
@ -0,0 +1,48 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>goldbach</title>
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
<h2>Foundation</h2>
|
||||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</nav>
|
||||
<main role="main">
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><b>goldbach</b></li></ul>
|
||||
<p class="purpose">A simple test web for inweb. This is version 1.</p>
|
||||
<hr>
|
||||
<ul class="sectionlist">
|
||||
<li>
|
||||
<p><a href="S-tgc.html"><spon class="sectiontitle">The Goldbach Conjecture</span></a> -
|
||||
<span class="purpose">Here we verify the conjecture for small numbers.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="S-tsoe.html"><spon class="sectiontitle">The Sieve of Eratosthenes</span></a> -
|
||||
<span class="purpose">A fairly fast way to determine if small numbers are prime, given storage.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Basics' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Basics</b></li></ul><p class="purpose">Some fundamental definitions, mostly setting up for the Foundation module to manage memory for us.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Basics</b></li></ul><p class="purpose">Some fundamental definitions, mostly setting up for the Foundation module to manage memory for us.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Build identity</a></li><li><a href="#SP2">§2. Setting up the memory manager</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -47,6 +52,8 @@ case, <code class="display"><span class="extract">_array_MT</span></code> append
|
|||
<pre class="definitions">
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">breadcrumb_request_MT</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">chapter_MT</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">colony_MT</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">colony_member_MT</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">colouring_language_block_MT</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">colouring_rule_MT</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">enumeration_set_MT</span>
|
||||
|
@ -87,6 +94,8 @@ types.
|
|||
<span class="identifier">ALLOCATE_IN_ARRAYS</span><span class="plain">(</span><span class="reserved">source_line</span><span class="plain">, </span><span class="constant">1000</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">breadcrumb_request</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">chapter</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">colony</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">colony_member</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">colouring_language_block</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">colouring_rule</span><span class="plain">)</span>
|
||||
<span class="identifier">ALLOCATE_INDIVIDUALLY</span><span class="plain">(</span><span class="reserved">enumeration_set</span><span class="plain">)</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Configuration' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Configuration</b></li></ul><p class="purpose">To parse the command line arguments with which inweb was called, and to handle any errors it needs to issue.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Configuration</b></li></ul><p class="purpose">To parse the command line arguments with which inweb was called, and to handle any errors it needs to issue.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Instructions</a></li><li><a href="#SP2">§2. Reading the command line</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -64,6 +69,7 @@ command line: there will only ever be one of these.
|
|||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">writeme_setting</span><span class="plain">; </span><span class="comment"> <code class="display"><span class="extract">-write-me X</span></code>: advance build file X</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">prototype_setting</span><span class="plain">; </span><span class="comment"> <code class="display"><span class="extract">-prototype 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">navigation_setting</span><span class="plain">; </span><span class="comment"> <code class="display"><span class="extract">-navigation 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">colony_setting</span><span class="plain">; </span><span class="comment"> <code class="display"><span class="extract">-colony X</span></code>: the filename X, if supplied</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">breadcrumb_setting</span><span class="plain">; </span><span class="comment"> of <code class="display"><span class="extract">breadcrumb_request</span></code></span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">verbose_switch</span><span class="plain">; </span><span class="comment"> <code class="display"><span class="extract">-verbose</span></code>: print names of files read to stdout</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">targets</span><span class="plain">; </span><span class="comment"> used only for parsing</span>
|
||||
|
@ -93,7 +99,7 @@ then declare them.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">inweb_instructions</span><span class="plain"> </span><span class="functiontext">Configuration::read<button class="popup" onclick="togglePopup('usagePopup3')">...<span class="popuptext" id="usagePopup3">Usage of <b>Configuration::read</b>:<br>Program Control - <a href="1-pc.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> **</span><span class="identifier">argv</span><span class="plain">) {</span>
|
||||
<span class="reserved">inweb_instructions</span><span class="plain"> </span><span class="functiontext">Configuration::read<button class="popup" onclick="togglePopup('usagePopup2')">...<span class="popuptext" id="usagePopup2">Usage of <b>Configuration::read</b>:<br>Program Control - <a href="1-pc.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> **</span><span class="identifier">argv</span><span class="plain">) {</span>
|
||||
<span class="reserved">inweb_instructions</span><span class="plain"> </span><span class="identifier">args</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Initialise the args</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Declare the command-line switches specific to Inweb</span> <span class="cwebmacronumber">2.3</span>><span class="plain">;</span>
|
||||
|
@ -143,6 +149,7 @@ then declare them.
|
|||
<span class="identifier">args</span><span class="plain">.</span><span class="element">writeme_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="plain">.</span><span class="element">prototype_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="plain">.</span><span class="element">navigation_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="plain">.</span><span class="element">colony_setting</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">args</span><span class="plain">.</span><span class="element">breadcrumb_setting</span><span class="plain"> = </span><span class="identifier">NEW_LINKED_LIST</span><span class="plain">(</span><span class="reserved">breadcrumb_request</span><span class="plain">);</span>
|
||||
<span class="identifier">args</span><span class="plain">.</span><span class="element">tag_setting</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP2">Str::new</a></span><span class="plain">();</span>
|
||||
<span class="identifier">args</span><span class="plain">.</span><span class="element">weave_pattern</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP4">Str::new_from_wide_string</a></span><span class="plain">(</span><span class="identifier">L</span><span class="string">"HTML"</span><span class="plain">);</span>
|
||||
|
@ -194,6 +201,7 @@ provides automatically.
|
|||
<span class="definitionkeyword">enum</span> <span class="constant">WEAVE_DOCS_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">BREADCRUMB_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">NAVIGATION_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">COLONY_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">TANGLING_CLSG</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">TANGLE_CLSW</span>
|
||||
<span class="definitionkeyword">enum</span> <span class="constant">TANGLE_TO_CLSW</span>
|
||||
|
@ -280,6 +288,8 @@ provides automatically.
|
|||
<span class="identifier">L</span><span class="string">"use the text X as a breadcrumb in overhead navigation"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="3-cla.html#SP5">CommandLine::declare_switch</a></span><span class="plain">(</span><span class="constant">NAVIGATION_CLSW</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"navigation"</span><span class="plain">, </span><span class="constant">2</span><span class="plain">,</span>
|
||||
<span class="identifier">L</span><span class="string">"use the file X as a column of navigation links"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="3-cla.html#SP5">CommandLine::declare_switch</a></span><span class="plain">(</span><span class="constant">COLONY_CLSW</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"colony"</span><span class="plain">, </span><span class="constant">2</span><span class="plain">,</span>
|
||||
<span class="identifier">L</span><span class="string">"use the file X as a list of webs in this colony"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="3-cla.html#SP5">CommandLine::end_group</a></span><span class="plain">();</span>
|
||||
|
||||
<span class="functiontext"><a href="3-cla.html#SP5">CommandLine::begin_group</a></span><span class="plain">(</span><span class="constant">TANGLING_CLSG</span><span class="plain">,</span>
|
||||
|
@ -304,7 +314,7 @@ provides automatically.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::switch<button class="popup" onclick="togglePopup('usagePopup4')">...<span class="popuptext" id="usagePopup4">Usage of <b>Configuration::switch</b>:<br><a href="#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">val</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::switch<button class="popup" onclick="togglePopup('usagePopup3')">...<span class="popuptext" id="usagePopup3">Usage of <b>Configuration::switch</b>:<br><a href="#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">val</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">args</span><span class="plain"> = (</span><span class="reserved">inweb_instructions</span><span class="plain"> *) </span><span class="identifier">state</span><span class="plain">;</span>
|
||||
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="comment"> Miscellaneous</span>
|
||||
|
@ -393,6 +403,9 @@ provides automatically.
|
|||
<span class="reserved">case</span><span class="plain"> </span><span class="identifier">NAVIGATION_CLSW:</span>
|
||||
<span class="identifier">args</span><span class="plain">-></span><span class="element">navigation_setting</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP3">Filenames::from_text</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP6">Configuration::set_fundamental_mode</a></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="identifier">COLONY_CLSW:</span>
|
||||
<span class="identifier">args</span><span class="plain">-></span><span class="element">colony_setting</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP3">Filenames::from_text</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP6">Configuration::set_fundamental_mode</a></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="comment"> Tangle-related</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="identifier">TANGLE_CLSW:</span>
|
||||
|
@ -405,7 +418,7 @@ provides automatically.
|
|||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">breadcrumb_request</span><span class="plain"> *</span><span class="functiontext">Configuration::breadcrumb<button class="popup" onclick="togglePopup('usagePopup5')">...<span class="popuptext" id="usagePopup5">Usage of <b>Configuration::breadcrumb</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">breadcrumb_request</span><span class="plain"> *</span><span class="functiontext">Configuration::breadcrumb<button class="popup" onclick="togglePopup('usagePopup4')">...<span class="popuptext" id="usagePopup4">Usage of <b>Configuration::breadcrumb</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">) {</span>
|
||||
<span class="reserved">breadcrumb_request</span><span class="plain"> *</span><span class="identifier">BR</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">breadcrumb_request</span><span class="plain">);</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">arg</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"(%c*?): *(%c*)"</span><span class="plain">)) {</span>
|
||||
|
@ -429,7 +442,7 @@ the <code class="display"><span class="extract">X</span></code> in <code class="
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::bareword<button class="popup" onclick="togglePopup('usagePopup6')">...<span class="popuptext" id="usagePopup6">Usage of <b>Configuration::bareword</b>:<br><a href="#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">opt</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::bareword<button class="popup" onclick="togglePopup('usagePopup5')">...<span class="popuptext" id="usagePopup5">Usage of <b>Configuration::bareword</b>:<br><a href="#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">opt</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">args</span><span class="plain"> = (</span><span class="reserved">inweb_instructions</span><span class="plain"> *) </span><span class="identifier">state</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">args</span><span class="plain">-></span><span class="identifier">chosen_web</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) && (</span><span class="identifier">args</span><span class="plain">-></span><span class="element">chosen_file</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"><a href="4-sm.html#SP20">Str::suffix_eq</a></span><span class="plain">(</span><span class="identifier">opt</span><span class="plain">, </span><span class="identifier">I</span><span class="string">".inweb"</span><span class="plain">, </span><span class="constant">6</span><span class="plain">))</span>
|
||||
|
@ -448,7 +461,7 @@ Otherwise, a range is a chapter number/letter, or a section range.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::set_range<button class="popup" onclick="togglePopup('usagePopup7')">...<span class="popuptext" id="usagePopup7">Usage of <b>Configuration::set_range</b>:<br><a href="#SP4">§4</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></span><span class="plain">(</span><span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">args</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">opt</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::set_range<button class="popup" onclick="togglePopup('usagePopup6')">...<span class="popuptext" id="usagePopup6">Usage of <b>Configuration::set_range</b>:<br><a href="#SP4">§4</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></span><span class="plain">(</span><span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">args</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">opt</span><span class="plain">) {</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">opt</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"index"</span><span class="plain">)) {</span>
|
||||
<span class="identifier">args</span><span class="plain">-></span><span class="element">swarm_mode</span><span class="plain"> = </span><span class="constant">SWARM_INDEX_SWM</span><span class="plain">;</span>
|
||||
|
@ -484,7 +497,7 @@ Otherwise, a range is a chapter number/letter, or a section range.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::set_fundamental_mode<button class="popup" onclick="togglePopup('usagePopup8')">...<span class="popuptext" id="usagePopup8">Usage of <b>Configuration::set_fundamental_mode</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">args</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">new_material</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Configuration::set_fundamental_mode<button class="popup" onclick="togglePopup('usagePopup7')">...<span class="popuptext" id="usagePopup7">Usage of <b>Configuration::set_fundamental_mode</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">args</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">new_material</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">args</span><span class="plain">-></span><span class="identifier">inweb_mode</span><span class="plain"> != </span><span class="constant">NO_MODE</span><span class="plain">) && (</span><span class="identifier">args</span><span class="plain">-></span><span class="element">inweb_mode</span><span class="plain"> != </span><span class="identifier">new_material</span><span class="plain">))</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP2">Errors::fatal</a></span><span class="plain">(</span><span class="string">"can only do one at a time - weaving, tangling or analysing"</span><span class="plain">);</span>
|
||||
<span class="identifier">args</span><span class="plain">-></span><span class="element">inweb_mode</span><span class="plain"> = </span><span class="identifier">new_material</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Program Control' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Program Control</b></li></ul><p class="purpose">The top level, which decides what is to be done and then carries this plan out.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Program Control</b></li></ul><p class="purpose">The top level, which decides what is to be done and then carries this plan out.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP6">§6. Main routine</a></li><li><a href="#SP7">§7. Following instructions</a></li><li><a href="#SP8">§8. Error messages</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -109,7 +114,7 @@ subfolder called <code class="display"><span class="extract">Materials</span></c
|
|||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. Main routine. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">main<button class="popup" onclick="togglePopup('usagePopup0')">...<span class="popuptext" id="usagePopup0">Usage of <b>main</b>:<br><a href="#SP7_4_2">§7.4.2</a>, Web Modules - <a href="8-wm.html#SP3">§3</a><br>Configuration - <a href="1-cnf.html#SP1">§1</a><br>Types and Functions - <a href="4-taf.html#SP7_3">§7.3</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> **</span><span class="identifier">argv</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">main</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">argc</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> **</span><span class="identifier">argv</span><span class="plain">) {</span>
|
||||
<<span class="cwebmacro">Initialise inweb</span> <span class="cwebmacronumber">6.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">inweb_instructions</span><span class="plain"> </span><span class="identifier">args</span><span class="plain"> = </span><span class="functiontext"><a href="1-cnf.html#SP2">Configuration::read</a></span><span class="plain">(</span><span class="identifier">argc</span><span class="plain">, </span><span class="identifier">argv</span><span class="plain">);</span>
|
||||
<span class="identifier">fundamental_mode</span><span class="plain"> = </span><span class="identifier">args</span><span class="plain">.</span><span class="element">inweb_mode</span><span class="plain">;</span>
|
||||
|
@ -159,7 +164,7 @@ program: some input, some thinking, a choice of three forms of output.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::follow_instructions<button class="popup" onclick="togglePopup('usagePopup1')">...<span class="popuptext" id="usagePopup1">Usage of <b>Main::follow_instructions</b>:<br><a href="#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">ins</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::follow_instructions<button class="popup" onclick="togglePopup('usagePopup0')">...<span class="popuptext" id="usagePopup0">Usage of <b>Main::follow_instructions</b>:<br><a href="#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">inweb_instructions</span><span class="plain"> *</span><span class="identifier">ins</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="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">ins</span><span class="plain">-></span><span class="identifier">chosen_web</span><span class="plain">) || (</span><span class="identifier">ins</span><span class="plain">-></span><span class="element">chosen_file</span><span class="plain">)) {</span>
|
||||
<span class="identifier">W</span><span class="plain"> = </span><span class="functiontext"><a href="2-tr.html#SP4">Reader::load_web</a></span><span class="plain">(</span><span class="identifier">ins</span><span class="plain">-></span><span class="element">chosen_web</span><span class="plain">, </span><span class="identifier">ins</span><span class="plain">-></span><span class="element">chosen_file</span><span class="plain">,</span>
|
||||
|
@ -421,6 +426,8 @@ which for many small webs will be the entire thing.
|
|||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">ins</span><span class="plain">-></span><span class="identifier">chosen_range_actually_chosen</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) && (</span><span class="identifier">ins</span><span class="plain">-></span><span class="element">chosen_file</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">))</span>
|
||||
<span class="functiontext"><a href="1-cnf.html#SP5">Configuration::set_range</a></span><span class="plain">(</span><span class="identifier">ins</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">-></span><span class="element">default_range</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ins</span><span class="plain">-></span><span class="element">colony_setting</span><span class="plain">) </span><span class="functiontext"><a href="6-cln.html#SP2">Colonies::load</a></span><span class="plain">(</span><span class="identifier">ins</span><span class="plain">-></span><span class="element">colony_setting</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">r</span><span class="plain"> = </span><span class="functiontext"><a href="5-fm.html#SP4">Formats::begin_weaving</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">r</span><span class="plain"> != </span><span class="constant">SWARM_OFF_SWM</span><span class="plain">) </span><span class="identifier">ins</span><span class="plain">-></span><span class="element">swarm_mode</span><span class="plain"> = </span><span class="identifier">r</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Assign section numbers for printing purposes</span> <span class="cwebmacronumber">7.4.3.2</span>><span class="plain">;</span>
|
||||
|
@ -487,7 +494,7 @@ which for many small webs will be the entire thing.
|
|||
<pre class="displaydefn">
|
||||
<span class="reserved">section</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">; </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">k</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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">ins</span><span class="plain">-></span><span class="element">chosen_range</span><span class="plain">))</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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_range</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">S</span><span class="plain">-></span><span class="element">printed_number</span><span class="plain"> = </span><span class="identifier">k</span><span class="plain">++;</span>
|
||||
</pre>
|
||||
|
||||
|
@ -501,7 +508,7 @@ source:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::error_in_web<button class="popup" onclick="togglePopup('usagePopup2')">...<span class="popuptext" id="usagePopup2">Usage of <b>Main::error_in_web</b>:<br>Configuration - <a href="1-cnf.html#SP5">§5</a><br>The Parser - <a href="2-tp.html#SP1_1_6_3">§1.1.6.3</a>, <a href="2-tp.html#SP1_1_6_4">§1.1.6.4</a>, <a href="2-tp.html#SP1_1_6_7">§1.1.6.7</a>, <a href="2-tp.html#SP1_1_6_7_1">§1.1.6.7.1</a>, <a href="2-tp.html#SP1_1_6_5_1">§1.1.6.5.1</a>, <a href="2-tp.html#SP1_1_6_5_1_1">§1.1.6.5.1.1</a>, <a href="2-tp.html#SP1_1_6_5_1_2">§1.1.6.5.1.2</a>, <a href="2-tp.html#SP1_1_6_5_1_3">§1.1.6.5.1.3</a>, <a href="2-tp.html#SP1_1_6_5_1_4">§1.1.6.5.1.4</a>, <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a>, <a href="2-tp.html#SP3">§3</a><br>Enumerated Constants - <a href="2-ec.html#SP3_1">§3.1</a>, <a href="2-ec.html#SP3_2">§3.2</a>, <a href="2-ec.html#SP3_3">§3.3</a><br>The Analyser - <a href="3-ta.html#SP4_1">§4.1</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5">§1.3.4.1.8.5</a><br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a>, <a href="3-tt.html#SP3_1">§3.1</a><br>Types and Functions - <a href="4-taf.html#SP7_3">§7.3</a><br>Language Methods - <a href="4-lm.html#SP10">§10</a><br>C-Like Languages - <a href="4-cl.html#SP3">§3</a>, <a href="4-cl.html#SP3_1">§3.1</a>, <a href="4-cl.html#SP3_2_2_1">§3.2.2.1</a>, <a href="4-cl.html#SP9">§9</a><br>Format Methods - <a href="5-fm.html#SP28">§28</a><br>HTML Formats - <a href="5-hf.html#SP20">§20</a><br>Weave Plugins - <a href="5-wp.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">sl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Main::error_in_web<button class="popup" onclick="togglePopup('usagePopup1')">...<span class="popuptext" id="usagePopup1">Usage of <b>Main::error_in_web</b>:<br>Configuration - <a href="1-cnf.html#SP5">§5</a><br>The Parser - <a href="2-tp.html#SP1_1_6_3">§1.1.6.3</a>, <a href="2-tp.html#SP1_1_6_4">§1.1.6.4</a>, <a href="2-tp.html#SP1_1_6_7">§1.1.6.7</a>, <a href="2-tp.html#SP1_1_6_7_1">§1.1.6.7.1</a>, <a href="2-tp.html#SP1_1_6_5_1">§1.1.6.5.1</a>, <a href="2-tp.html#SP1_1_6_5_1_1">§1.1.6.5.1.1</a>, <a href="2-tp.html#SP1_1_6_5_1_2">§1.1.6.5.1.2</a>, <a href="2-tp.html#SP1_1_6_5_1_3">§1.1.6.5.1.3</a>, <a href="2-tp.html#SP1_1_6_5_1_4">§1.1.6.5.1.4</a>, <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a>, <a href="2-tp.html#SP3">§3</a><br>Enumerated Constants - <a href="2-ec.html#SP3_1">§3.1</a>, <a href="2-ec.html#SP3_2">§3.2</a>, <a href="2-ec.html#SP3_3">§3.3</a><br>The Analyser - <a href="3-ta.html#SP4_1">§4.1</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5">§1.3.4.1.8.5</a><br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a>, <a href="3-tt.html#SP3_1">§3.1</a><br>Types and Functions - <a href="4-taf.html#SP7_3">§7.3</a><br>Language Methods - <a href="4-lm.html#SP10">§10</a><br>C-Like Languages - <a href="4-cl.html#SP3">§3</a>, <a href="4-cl.html#SP3_1">§3.1</a>, <a href="4-cl.html#SP3_2_2_1">§3.2.2.1</a>, <a href="4-cl.html#SP9">§9</a><br>HTML Formats - <a href="5-hf.html#SP20">§20</a><br>Weave Plugins - <a href="5-wp.html#SP3">§3</a><br>Colonies - <a href="6-cln.html#SP4">§4</a>, <a href="6-cln.html#SP5">§5</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">message</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">sl</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">sl</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP5">Errors::in_text_file_S</a></span><span class="plain">(</span><span class="identifier">message</span><span class="plain">, &(</span><span class="identifier">sl</span><span class="plain">-></span><span class="element">source</span><span class="plain">));</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="constant">STDERR</span><span class="plain">, </span><span class="string">"%07d %S\n"</span><span class="plain">, </span><span class="identifier">sl</span><span class="plain">-></span><span class="element">source</span><span class="plain">.</span><span class="element">line_count</span><span class="plain">, </span><span class="identifier">sl</span><span class="plain">-></span><span class="element">text</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Patterns' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Patterns</b></li></ul><p class="purpose">Managing weave patterns, which are bundled configuration settings for weaving.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Patterns</b></li></ul><p class="purpose">Managing weave patterns, which are bundled configuration settings for weaving.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Reading in</a></li><li><a href="#SP5">§5. Obtaining files</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -68,7 +73,7 @@ to such a name, and to read it in. This structure holds the result:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="functiontext">Patterns::find<button class="popup" onclick="togglePopup('usagePopup9')">...<span class="popuptext" id="usagePopup9">Usage of <b>Patterns::find</b>:<br><a href="#SP3_1">§3.1</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="functiontext">Patterns::find<button class="popup" onclick="togglePopup('usagePopup8')">...<span class="popuptext" id="usagePopup8">Usage of <b>Patterns::find</b>:<br><a href="#SP3_1">§3.1</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">pattern_file</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">wp</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">weave_pattern</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Initialise the pattern structure</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
|
@ -153,7 +158,7 @@ following routine:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::scan_pattern_line<button class="popup" onclick="togglePopup('usagePopup10')">...<span class="popuptext" id="usagePopup10">Usage of <b>Patterns::scan_pattern_line</b>:<br><a href="#SP2_3">§2.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">X</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::scan_pattern_line<button class="popup" onclick="togglePopup('usagePopup9')">...<span class="popuptext" id="usagePopup9">Usage of <b>Patterns::scan_pattern_line</b>:<br><a href="#SP2_3">§2.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">X</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">wp</span><span class="plain"> = (</span><span class="reserved">weave_pattern</span><span class="plain"> *) </span><span class="identifier">X</span><span class="plain">;</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">L</span><span class="string">" *from (%c+)"</span><span class="plain">)) </span><<span class="cwebmacro">This is a from command</span> <span class="cwebmacronumber">3.1</span>><span class="plain">;</span>
|
||||
|
@ -312,7 +317,7 @@ actual location will depend on where the pattern directory is.
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Patterns::yes_or_no<button class="popup" onclick="togglePopup('usagePopup11')">...<span class="popuptext" id="usagePopup11">Usage of <b>Patterns::yes_or_no</b>:<br><a href="#SP3_2">§3.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Patterns::yes_or_no<button class="popup" onclick="togglePopup('usagePopup10')">...<span class="popuptext" id="usagePopup10">Usage of <b>Patterns::yes_or_no</b>:<br><a href="#SP3_2">§3.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">arg</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"yes"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">arg</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"no"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP5">Errors::in_text_file</a></span><span class="plain">(</span><span class="string">"setting must be 'yes' or 'no'"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
|
@ -334,7 +339,7 @@ from each other then this routine will lock up into an infinite loop.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="functiontext">Patterns::obtain_filename<button class="popup" onclick="togglePopup('usagePopup12')">...<span class="popuptext" id="usagePopup12">Usage of <b>Patterns::obtain_filename</b>:<br><a href="#SP6">§6</a>, The Swarm - <a href="3-ts.html#SP4">§4</a><br>The Indexer - <a href="3-ti.html#SP1">§1</a>, <a href="3-ti.html#SP2">§2</a>, <a href="3-ti.html#SP2_1_3">§2.1.3</a>, <a href="3-ti.html#SP5_1">§5.1</a><br>TeX Format - <a href="5-tf.html#SP3_1">§3.1</a><br>HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP9">§9</a>, <a href="5-hf.html#SP32">§32</a></span></button></span><span class="plain">(</span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">leafname</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="functiontext">Patterns::obtain_filename<button class="popup" onclick="togglePopup('usagePopup11')">...<span class="popuptext" id="usagePopup11">Usage of <b>Patterns::obtain_filename</b>:<br><a href="#SP6">§6</a>, The Swarm - <a href="3-ts.html#SP4">§4</a><br>The Indexer - <a href="3-ti.html#SP1">§1</a>, <a href="3-ti.html#SP2">§2</a>, <a href="3-ti.html#SP2_1_3">§2.1.3</a>, <a href="3-ti.html#SP5_1">§5.1</a><br>TeX Format - <a href="5-tf.html#SP3_1">§3.1</a><br>HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP9">§9</a>, <a href="5-hf.html#SP32">§32</a></span></button></span><span class="plain">(</span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">leafname</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP20">Str::prefix_eq</a></span><span class="plain">(</span><span class="identifier">leafname</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"../"</span><span class="plain">, </span><span class="constant">3</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP24">Str::delete_first_character</a></span><span class="plain">(</span><span class="identifier">leafname</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP24">Str::delete_first_character</a></span><span class="plain">(</span><span class="identifier">leafname</span><span class="plain">);</span>
|
||||
|
@ -354,7 +359,7 @@ for payloads to be copied into weave, we make good use of the above:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::copy_payloads_into_weave<button class="popup" onclick="togglePopup('usagePopup13')">...<span class="popuptext" id="usagePopup13">Usage of <b>Patterns::copy_payloads_into_weave</b>:<br>The Swarm - <a href="3-ts.html#SP4">§4</a></span></button></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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::copy_payloads_into_weave<button class="popup" onclick="togglePopup('usagePopup12')">...<span class="popuptext" id="usagePopup12">Usage of <b>Patterns::copy_payloads_into_weave</b>:<br>The Swarm - <a href="3-ts.html#SP4">§4</a></span></button></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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">leafname</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">leafname</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">-></span><span class="element">payloads</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain"> = </span><span class="functiontext"><a href="#SP5">Patterns::obtain_filename</a></span><span class="plain">(</span><span class="identifier">pattern</span><span class="plain">, </span><span class="identifier">leafname</span><span class="plain">);</span>
|
||||
|
@ -380,12 +385,12 @@ for payloads to be copied into weave, we make good use of the above:
|
|||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::copy_file_into_weave<button class="popup" onclick="togglePopup('usagePopup14')">...<span class="popuptext" id="usagePopup14">Usage of <b>Patterns::copy_file_into_weave</b>:<br><a href="#SP6">§6</a>, HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP9">§9</a>, <a href="5-hf.html#SP19">§19</a><br>Weave Plugins - <a href="5-wp.html#SP3">§3</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::copy_file_into_weave<button class="popup" onclick="togglePopup('usagePopup13')">...<span class="popuptext" id="usagePopup13">Usage of <b>Patterns::copy_file_into_weave</b>:<br><a href="#SP6">§6</a>, HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP9">§9</a>, <a href="5-hf.html#SP19">§19</a><br>Weave Plugins - <a href="5-wp.html#SP3">§3</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">H</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="reserved">if</span><span class="plain"> (</span><span class="identifier">H</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">H</span><span class="plain"> = </span><span class="functiontext"><a href="2-tr.html#SP7">Reader::woven_folder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="3-shl.html#SP3">Shell::copy</a></span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="identifier">H</span><span class="plain">, </span><span class="string">""</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::copy_up_file_into_weave<button class="popup" onclick="togglePopup('usagePopup15')">...<span class="popuptext" id="usagePopup15">Usage of <b>Patterns::copy_up_file_into_weave</b>:<br><a href="#SP6">§6</a>, HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP9">§9</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Patterns::copy_up_file_into_weave<button class="popup" onclick="togglePopup('usagePopup14')">...<span class="popuptext" id="usagePopup14">Usage of <b>Patterns::copy_up_file_into_weave</b>:<br><a href="#SP6">§6</a>, HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP9">§9</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">H</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="reserved">if</span><span class="plain"> (</span><span class="identifier">H</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">H</span><span class="plain"> = </span><span class="functiontext"><a href="2-tr.html#SP7">Reader::woven_folder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="identifier">H</span><span class="plain"> = </span><span class="functiontext"><a href="3-pth.html#SP7">Pathnames::up</a></span><span class="plain">(</span><span class="identifier">H</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Enumerated Constants' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Enumerated Constants</b></li></ul><p class="purpose">To define sequentially numbered values for families of constants.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Enumerated Constants</b></li></ul><p class="purpose">To define sequentially numbered values for families of constants.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>The idea here is that each enumeration set is a sequence of named constants
|
||||
with a given postfix: for example, <code class="display"><span class="extract">HARRY_ST</span></code>, <code class="display"><span class="extract">NEVILLE_ST</span></code>, <code class="display"><span class="extract">ANGELINA_ST</span></code>
|
||||
|
@ -57,7 +62,7 @@ compare all against all:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">enumeration_set</span><span class="plain"> *</span><span class="functiontext">Enumerations::find<button class="popup" onclick="togglePopup('usagePopup47')">...<span class="popuptext" id="usagePopup47">Usage of <b>Enumerations::find</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">post</span><span class="plain">) {</span>
|
||||
<span class="reserved">enumeration_set</span><span class="plain"> *</span><span class="functiontext">Enumerations::find<button class="popup" onclick="togglePopup('usagePopup46')">...<span class="popuptext" id="usagePopup46">Usage of <b>Enumerations::find</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">post</span><span class="plain">) {</span>
|
||||
<span class="reserved">enumeration_set</span><span class="plain"> *</span><span class="identifier">es</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">es</span><span class="plain">, </span><span class="reserved">enumeration_set</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">post</span><span class="plain">, </span><span class="identifier">es</span><span class="plain">-></span><span class="element">postfix</span><span class="plain">))</span>
|
||||
|
@ -74,7 +79,7 @@ a further constant in what ought to be an existing set.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Enumerations::define<button class="popup" onclick="togglePopup('usagePopup48')">...<span class="popuptext" id="usagePopup48">Usage of <b>Enumerations::define</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Enumerations::define<button class="popup" onclick="togglePopup('usagePopup47')">...<span class="popuptext" id="usagePopup47">Usage of <b>Enumerations::define</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">pf</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Find the postfix in this symbol name</span> <span class="cwebmacronumber">3.1</span>><span class="plain">;</span>
|
||||
|
@ -165,7 +170,7 @@ the code at the last line on which an <code class="display"><span class="extract
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Enumerations::define_extents<button class="popup" onclick="togglePopup('usagePopup49')">...<span class="popuptext" id="usagePopup49">Usage of <b>Enumerations::define_extents</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1">§1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">lang</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Enumerations::define_extents<button class="popup" onclick="togglePopup('usagePopup48')">...<span class="popuptext" id="usagePopup48">Usage of <b>Enumerations::define_extents</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1">§1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">lang</span><span class="plain">) {</span>
|
||||
<span class="reserved">enumeration_set</span><span class="plain"> *</span><span class="identifier">es</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">es</span><span class="plain">, </span><span class="reserved">enumeration_set</span><span class="plain">) {</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">symbol</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Line Categories' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Line Categories</b></li></ul><p class="purpose">To store individual lines from webs, and to categorise them according to their meaning.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Line Categories</b></li></ul><p class="purpose">To store individual lines from webs, and to categorise them according to their meaning.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Line storage</a></li><li><a href="#SP3">§3. Categories</a></li><li><a href="#SP5">§5. Command codes</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -71,12 +76,13 @@ correspond to one of these:
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure source_line is accessed in 1/pc, 2/tr, 2/tp, 2/pm, 2/ec, 2/pn, 3/ta, 3/tw, 3/tt, 4/taf, 4/lm, 4/as, 4/cl, 4/is, 5/fm, 5/tf, 5/hf and here.</p>
|
||||
<p class="endnote">The structure source_line is accessed in 1/pc, 2/tr, 2/tp, 2/pm, 2/ec, 2/pn, 3/ta, 3/tw, 3/tt, 4/taf, 4/lm, 4/as, 4/cl, 4/is, 5/tf, 5/hf, 6/cln and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="functiontext">Lines::new_source_line<button class="popup" onclick="togglePopup('usagePopup31')">...<span class="popuptext" id="usagePopup31">Usage of <b>Lines::new_source_line</b>:<br>The Reader - <a href="2-tr.html#SP6_1_2">§6.1.2</a><br>The Parser - <a href="2-tp.html#SP1_1_5_1">§1.1.5.1</a>, <a href="2-tp.html#SP1_1_6_7_2">§1.1.6.7.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="functiontext">Lines::new_source_line_in<button class="popup" onclick="togglePopup('usagePopup30')">...<span class="popuptext" id="usagePopup30">Usage of <b>Lines::new_source_line_in</b>:<br>The Reader - <a href="2-tr.html#SP6_1_2">§6.1.2</a><br>The Parser - <a href="2-tp.html#SP1_1_5_1">§1.1.5.1</a>, <a href="2-tp.html#SP1_1_6_7_2">§1.1.6.7.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">sl</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">source_line</span><span class="plain">);</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">text</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">);</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">text_operand</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP2">Str::new</a></span><span class="plain">();</span>
|
||||
|
@ -96,7 +102,10 @@ correspond to one of these:
|
|||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">tfp</span><span class="plain">) </span><span class="identifier">sl</span><span class="plain">-></span><span class="element">source</span><span class="plain"> = *</span><span class="identifier">tfp</span><span class="plain">; </span><span class="reserved">else</span><span class="plain"> </span><span class="identifier">sl</span><span class="plain">-></span><span class="element">source</span><span class="plain"> = </span><span class="functiontext"><a href="4-tf.html#SP4">TextFiles::nowhere</a></span><span class="plain">();</span>
|
||||
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">;</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">sect_extent</span><span class="plain">++;</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">owning_chapter</span><span class="plain">-></span><span class="element">owning_web</span><span class="plain">-></span><span class="element">web_extent</span><span class="plain">++;</span>
|
||||
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_paragraph</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">sl</span><span class="plain">;</span>
|
||||
|
@ -145,7 +154,7 @@ of Inweb:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">char</span><span class="plain"> *</span><span class="functiontext">Lines::category_name<button class="popup" onclick="togglePopup('usagePopup32')">...<span class="popuptext" id="usagePopup32">Usage of <b>Lines::category_name</b>:<br>The Analyser - <a href="3-ta.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">cat</span><span class="plain">) {</span>
|
||||
<span class="reserved">char</span><span class="plain"> *</span><span class="functiontext">Lines::category_name<button class="popup" onclick="togglePopup('usagePopup31')">...<span class="popuptext" id="usagePopup31">Usage of <b>Lines::category_name</b>:<br>The Analyser - <a href="3-ta.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">cat</span><span class="plain">) {</span>
|
||||
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">cat</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="identifier">NO_LCAT:</span><span class="plain"> </span><span class="reserved">return</span><span class="plain"> </span><span class="string">"(uncategorised)"</span><span class="plain">;</span>
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Paragraph Macros' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Paragraph Macros</b></li></ul><p class="purpose">To manage the set of named paragraph macros in a section.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Paragraph Macros</b></li></ul><p class="purpose">To manage the set of named paragraph macros in a section.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP3">§3. Paragraph macro search</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -51,7 +56,7 @@ the usage of these is always a single section.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="functiontext">Macros::create<button class="popup" onclick="togglePopup('usagePopup37')">...<span class="popuptext" id="usagePopup37">Usage of <b>Macros::create</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_4">§1.1.6.4</a></span></button></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="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="functiontext">Macros::create<button class="popup" onclick="togglePopup('usagePopup36')">...<span class="popuptext" id="usagePopup36">Usage of <b>Macros::create</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_4">§1.1.6.4</a></span></button></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="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">para_macro</span><span class="plain">);</span>
|
||||
<span class="identifier">pmac</span><span class="plain">-></span><span class="element">macro_name</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">);</span>
|
||||
<span class="identifier">pmac</span><span class="plain">-></span><span class="element">defining_paragraph</span><span class="plain"> = </span><span class="identifier">P</span><span class="plain">;</span>
|
||||
|
@ -72,7 +77,7 @@ much faster.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="functiontext">Macros::find_by_name<button class="popup" onclick="togglePopup('usagePopup38')">...<span class="popuptext" id="usagePopup38">Usage of <b>Macros::find_by_name</b>:<br>Paragraph Numbering - <a href="2-pn.html#SP1_1">§1.1</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a><br>The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">section</span><span class="plain"> *</span><span class="identifier">scope</span><span class="plain">) {</span>
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="functiontext">Macros::find_by_name<button class="popup" onclick="togglePopup('usagePopup37')">...<span class="popuptext" id="usagePopup37">Usage of <b>Macros::find_by_name</b>:<br>Paragraph Numbering - <a href="2-pn.html#SP1_1">§1.1</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a><br>The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">section</span><span class="plain"> *</span><span class="identifier">scope</span><span class="plain">) {</span>
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">pmac</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain">, </span><span class="identifier">scope</span><span class="plain">-></span><span class="element">macros</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">pmac</span><span class="plain">-></span><span class="element">macro_name</span><span class="plain">))</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Paragraph Numbering' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Paragraph Numbering</b></li></ul><p class="purpose">To work out paragraph numbers within each section.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Paragraph Numbering</b></li></ul><p class="purpose">To work out paragraph numbers within each section.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>Traditional LP tools have numbered paragraphs in the obvious way, starting
|
||||
from 1 and working up to what may be an enormous number. (The web for Knuth's
|
||||
|
@ -44,7 +49,7 @@ because tangled code doesn't need to know its own paragraph numbers.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Numbering::number_web<button class="popup" onclick="togglePopup('usagePopup50')">...<span class="popuptext" id="usagePopup50">Usage of <b>Numbering::number_web</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">void</span><span class="plain"> </span><span class="functiontext">Numbering::number_web<button class="popup" onclick="togglePopup('usagePopup49')">...<span class="popuptext" id="usagePopup49">Usage of <b>Numbering::number_web</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">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>
|
||||
|
@ -266,7 +271,7 @@ chosen by the author, so 2 it is.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Numbering::settle_paragraph_number<button class="popup" onclick="togglePopup('usagePopup51')">...<span class="popuptext" id="usagePopup51">Usage of <b>Numbering::settle_paragraph_number</b>:<br><a href="#SP1_2_5">§1.2.5</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Numbering::settle_paragraph_number<button class="popup" onclick="togglePopup('usagePopup50')">...<span class="popuptext" id="usagePopup50">Usage of <b>Numbering::settle_paragraph_number</b>:<br><a href="#SP1_2_5">§1.2.5</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">-></span><span class="element">paragraph_number</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">-></span><span class="element">paragraph_number</span><span class="plain">, </span><span class="string">"X"</span><span class="plain">); </span><span class="comment"> to prevent malformed sections hanging this</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">-></span><span class="element">parent_paragraph</span><span class="plain">) </span><span class="functiontext"><a href="#SP2">Numbering::settle_paragraph_number</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">-></span><span class="element">parent_paragraph</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Tags' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Tags</b></li></ul><p class="purpose">Thematic tags can be attached to certain paragraphs, some automatically by Inweb, others manually by the author.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>Tags</b></li></ul><p class="purpose">Thematic tags can be attached to certain paragraphs, some automatically by Inweb, others manually by the author.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. </b>A tag really is just a textual name. Each differently-named tag leads
|
||||
to one of the following being created:
|
||||
|
@ -50,7 +55,7 @@ many differently-named tags in a given web.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">theme_tag</span><span class="plain"> *</span><span class="functiontext">Tags::find_by_name<button class="popup" onclick="togglePopup('usagePopup39')">...<span class="popuptext" id="usagePopup39">Usage of <b>Tags::find_by_name</b>:<br><a href="#SP4">§4</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">creating_if_necessary</span><span class="plain">) {</span>
|
||||
<span class="reserved">theme_tag</span><span class="plain"> *</span><span class="functiontext">Tags::find_by_name<button class="popup" onclick="togglePopup('usagePopup38')">...<span class="popuptext" id="usagePopup38">Usage of <b>Tags::find_by_name</b>:<br><a href="#SP4">§4</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">creating_if_necessary</span><span class="plain">) {</span>
|
||||
<span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">tag</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">tag</span><span class="plain">-></span><span class="element">tag_name</span><span class="plain">))</span>
|
||||
|
@ -88,7 +93,7 @@ they're stored as a linked list within each paragraph.
|
|||
<span class="constant">MEMORY_MANAGEMENT</span>
|
||||
<span class="plain">} </span><span class="reserved">paragraph_tagging</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::add_to_paragraph<button class="popup" onclick="togglePopup('usagePopup40')">...<span class="popuptext" id="usagePopup40">Usage of <b>Tags::add_to_paragraph</b>:<br><a href="#SP4">§4</a>, The Parser - <a href="2-tp.html#SP1_1_3">§1.1.3</a><br>InC Support - <a href="4-is.html#SP3_1_3_5">§3.1.3.5</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">caption</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::add_to_paragraph<button class="popup" onclick="togglePopup('usagePopup39')">...<span class="popuptext" id="usagePopup39">Usage of <b>Tags::add_to_paragraph</b>:<br><a href="#SP4">§4</a>, The Parser - <a href="2-tp.html#SP1_1_3">§1.1.3</a><br>InC Support - <a href="4-is.html#SP3_1_3_5">§3.1.3.5</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">caption</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">paragraph_tagging</span><span class="plain"> *</span><span class="identifier">pt</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">paragraph_tagging</span><span class="plain">);</span>
|
||||
<span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain"> = </span><span class="identifier">tag</span><span class="plain">;</span>
|
||||
|
@ -109,7 +114,7 @@ the tag is <code class="display"><span class="extract">History</span></code>, th
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">theme_tag</span><span class="plain"> *</span><span class="functiontext">Tags::add_by_name<button class="popup" onclick="togglePopup('usagePopup41')">...<span class="popuptext" id="usagePopup41">Usage of <b>Tags::add_by_name</b>:<br>The Reader - <a href="2-tr.html#SP4_4">§4.4</a><br>The Parser - <a href="2-tp.html#SP1_1_2">§1.1.2</a>, <a href="2-tp.html#SP1_1_6_3">§1.1.6.3</a>, <a href="2-tp.html#SP1_1_6_7">§1.1.6.7</a><br>Types and Functions - <a href="4-taf.html#SP2_2">§2.2</a><br>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">theme_tag</span><span class="plain"> *</span><span class="functiontext">Tags::add_by_name<button class="popup" onclick="togglePopup('usagePopup40')">...<span class="popuptext" id="usagePopup40">Usage of <b>Tags::add_by_name</b>:<br>The Reader - <a href="2-tr.html#SP4_4">§4.4</a><br>The Parser - <a href="2-tp.html#SP1_1_2">§1.1.2</a>, <a href="2-tp.html#SP1_1_6_3">§1.1.6.3</a>, <a href="2-tp.html#SP1_1_6_7">§1.1.6.7</a><br>Types and Functions - <a href="4-taf.html#SP2_2">§2.2</a><br>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">) == </span><span class="constant">0</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"empty tag name"</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">name</span><span class="plain">); </span><span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">caption</span><span class="plain">);</span>
|
||||
|
@ -133,7 +138,7 @@ the tag is <code class="display"><span class="extract">History</span></code>, th
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Tags::retrieve_caption<button class="popup" onclick="togglePopup('usagePopup42')">...<span class="popuptext" id="usagePopup42">Usage of <b>Tags::retrieve_caption</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_10_3_1">§1.3.4.1.10.3.1</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Tags::retrieve_caption<button class="popup" onclick="togglePopup('usagePopup41')">...<span class="popuptext" id="usagePopup41">Usage of <b>Tags::retrieve_caption</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_10_3_1">§1.3.4.1.10.3.1</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</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">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">paragraph_tagging</span><span class="plain"> *</span><span class="identifier">pt</span><span class="plain">;</span>
|
||||
|
@ -153,7 +158,7 @@ doesn't specify a tag.)
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Tags::tagged_with<button class="popup" onclick="togglePopup('usagePopup43')">...<span class="popuptext" id="usagePopup43">Usage of <b>Tags::tagged_with</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4">§1.3.4</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Tags::tagged_with<button class="popup" onclick="togglePopup('usagePopup42')">...<span class="popuptext" id="usagePopup42">Usage of <b>Tags::tagged_with</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4">§1.3.4</a></span></button></span><span class="plain">(</span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</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">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">paragraph_tagging</span><span class="plain"> *</span><span class="identifier">pt</span><span class="plain">;</span>
|
||||
|
@ -170,7 +175,7 @@ doesn't specify a tag.)
|
|||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::open_ifdefs<button class="popup" onclick="togglePopup('usagePopup44')">...<span class="popuptext" id="usagePopup44">Usage of <b>Tags::open_ifdefs</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a>, <a href="3-tt.html#SP2">§2</a><br>C-Like Languages - <a href="4-cl.html#SP5">§5</a>, <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_3">§6.3</a>, <a href="4-cl.html#SP6_4">§6.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::open_ifdefs<button class="popup" onclick="togglePopup('usagePopup43')">...<span class="popuptext" id="usagePopup43">Usage of <b>Tags::open_ifdefs</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a>, <a href="3-tt.html#SP2">§2</a><br>C-Like Languages - <a href="4-cl.html#SP5">§5</a>, <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_3">§6.3</a>, <a href="4-cl.html#SP6_4">§6.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">paragraph_tagging</span><span class="plain"> *</span><span class="identifier">pt</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">pt</span><span class="plain">, </span><span class="reserved">paragraph_tagging</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">-></span><span class="element">taggings</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_symbol</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">)</span>
|
||||
|
@ -178,7 +183,7 @@ doesn't specify a tag.)
|
|||
<span class="identifier">P</span><span class="plain">-></span><span class="element">under_section</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">, </span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_symbol</span><span class="plain">, </span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_positive</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::close_ifdefs<button class="popup" onclick="togglePopup('usagePopup45')">...<span class="popuptext" id="usagePopup45">Usage of <b>Tags::close_ifdefs</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a>, <a href="3-tt.html#SP2">§2</a><br>C-Like Languages - <a href="4-cl.html#SP5">§5</a>, <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_3">§6.3</a>, <a href="4-cl.html#SP6_4">§6.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::close_ifdefs<button class="popup" onclick="togglePopup('usagePopup44')">...<span class="popuptext" id="usagePopup44">Usage of <b>Tags::close_ifdefs</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a>, <a href="3-tt.html#SP2">§2</a><br>C-Like Languages - <a href="4-cl.html#SP5">§5</a>, <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_3">§6.3</a>, <a href="4-cl.html#SP6_4">§6.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">paragraph_tagging</span><span class="plain"> *</span><span class="identifier">pt</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">pt</span><span class="plain">, </span><span class="reserved">paragraph_tagging</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">-></span><span class="element">taggings</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_symbol</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">)</span>
|
||||
|
@ -186,14 +191,14 @@ doesn't specify a tag.)
|
|||
<span class="identifier">P</span><span class="plain">-></span><span class="element">under_section</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">, </span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_symbol</span><span class="plain">, </span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_positive</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::show_endnote_on_ifdefs<button class="popup" onclick="togglePopup('usagePopup46')">...<span class="popuptext" id="usagePopup46">Usage of <b>Tags::show_endnote_on_ifdefs</b>:<br>The Weaver - <a href="3-tw.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tags::show_endnote_on_ifdefs<button class="popup" onclick="togglePopup('usagePopup45')">...<span class="popuptext" id="usagePopup45">Usage of <b>Tags::show_endnote_on_ifdefs</b>:<br>The Weaver - <a href="3-tw.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">d</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">sense</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Show ifdef endnoting</span> <span class="cwebmacronumber">7.1</span>><span class="plain">;</span>
|
||||
<span class="identifier">sense</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Show ifdef endnoting</span> <span class="cwebmacronumber">7.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">d</span><span class="plain"> > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"."</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -213,7 +218,7 @@ doesn't specify a tag.)
|
|||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pt</span><span class="plain">-></span><span class="element">the_tag</span><span class="plain">-></span><span class="element">ifdef_symbol</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">c</span><span class="plain">++ == </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">d</span><span class="plain">++ == </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"This paragraph is used only if "</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">" and if "</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Parser' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>The Parser</b></li></ul><p class="purpose">To work through the program read in, assigning each line its category, and noting down other useful information as we go.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>The Parser</b></li></ul><p class="purpose">To work through the program read in, assigning each line its category, and noting down other useful information as we go.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Sequence of parsing</a></li><li><a href="#SP1_1_6">§1.1.6. Categorisatiom</a></li><li><a href="#SP3">§3. Version errors</a></li><li><a href="#SP4">§4. Footnote notation</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -41,16 +46,12 @@ for it to do anything.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Parser::parse_web<button class="popup" onclick="togglePopup('usagePopup33')">...<span class="popuptext" id="usagePopup33">Usage of <b>Parser::parse_web</b>:<br>Program Control - <a href="1-pc.html#SP7">§7</a></span></button></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">void</span><span class="plain"> </span><span class="functiontext">Parser::parse_web<button class="popup" onclick="togglePopup('usagePopup32')">...<span class="popuptext" id="usagePopup32">Usage of <b>Parser::parse_web</b>:<br>Program Control - <a href="1-pc.html#SP7">§7</a></span></button></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="reserved">int</span><span class="plain"> </span><span class="identifier">section_counter</span><span class="plain"> = </span><span class="constant">1</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="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"><a href="4-lm.html#SP2">LanguageMethods::parse_types</a></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="functiontext"><a href="4-lm.html#SP3">LanguageMethods::parse_functions</a></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="functiontext"><a href="4-lm.html#SP4">LanguageMethods::further_parsing</a></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>
|
||||
|
@ -237,7 +238,7 @@ reparsing from there.
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">NL</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"@"</span><span class="plain">, &(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">));</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">NL</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line_in</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"@"</span><span class="plain">, &(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">), </span><span class="identifier">S</span><span class="plain">);</span>
|
||||
<span class="identifier">PL</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">NL</span><span class="plain">;</span>
|
||||
<span class="identifier">NL</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">L</span><span class="plain">;</span>
|
||||
<span class="identifier">L</span><span class="plain"> = </span><span class="identifier">PL</span><span class="plain">;</span>
|
||||
|
@ -309,8 +310,8 @@ come literally from the source web.
|
|||
|
||||
<p class="endnote">This code is used in <a href="#SP1_1_6">§1.1.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1_1_6_2"></a><b>§1.1.6.2. </b>The top line of a section gives its title and range; in InC, it can
|
||||
also give the namespace for its functions.
|
||||
<p class="inwebparagraph"><a id="SP1_1_6_2"></a><b>§1.1.6.2. </b>The top line of a section gives its title; in InC, it can also give the
|
||||
namespace for its functions.
|
||||
</p>
|
||||
|
||||
|
||||
|
@ -322,25 +323,29 @@ also give the namespace for its functions.
|
|||
<pre class="displaydefn">
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="element">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"%[(%C+)%] (%C+/%C+): (%c+)."</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="identifier">using_syntax</span><span class="plain"> >= </span><span class="constant">V2_SYNTAX</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="#SP3">Parser::wrong_version</a></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">using_syntax</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="string">"section range in header line"</span><span class="plain">, </span><span class="constant">V1_SYNTAX</span><span class="plain">);</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">sect_namespace</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0]);</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[1]);</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="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">text_operand</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[2]);</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> = </span><span class="constant">SECTION_HEADING_LCAT</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"(%C+/%C+): (%c+)."</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"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0]);</span>
|
||||
<span class="reserved">if</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="identifier">using_syntax</span><span class="plain"> >= </span><span class="constant">V2_SYNTAX</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="#SP3">Parser::wrong_version</a></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">using_syntax</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="string">"section range in header line"</span><span class="plain">, </span><span class="constant">V1_SYNTAX</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_range</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0]);</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="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">text_operand</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> = </span><span class="constant">SECTION_HEADING_LCAT</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"%[(%C+::)%] (%c+)."</span><span class="plain">)) {</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">sect_namespace</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0]);</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="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[1]);</span>
|
||||
<<span class="cwebmacro">Set the range to an automatic abbreviation of the relative pathname</span> <span class="cwebmacronumber">1.1.6.2.1</span>><span class="plain">;</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">text_operand</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[1]);</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> = </span><span class="constant">SECTION_HEADING_LCAT</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"(%c+)."</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="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0]);</span>
|
||||
<<span class="cwebmacro">Set the range to an automatic abbreviation of the relative pathname</span> <span class="cwebmacronumber">1.1.6.2.1</span>><span class="plain">;</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">text_operand</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0]);</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> = </span><span class="constant">SECTION_HEADING_LCAT</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -351,116 +356,6 @@ also give the namespace for its functions.
|
|||
|
||||
<p class="endnote">This code is used in <a href="#SP1_1_6">§1.1.6</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1_1_6_2_1"></a><b>§1.1.6.2.1. </b>If no range is supplied, we make one ourselves.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Set the range to an automatic abbreviation of the relative pathname</span> <span class="cwebmacronumber">1.1.6.2.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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="constant">0</span><span class="plain">) {</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"> = </span><span class="constant">5</span><span class="plain">;</span>
|
||||
<span class="reserved">do</span><span class="plain"> {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></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"> == </span><span class="constant">0</span><span class="plain">) </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"><a href="4-sm.html#SP8">Str::len</a></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="constant">5</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>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP1_1_6_2">§1.1.6.2</a> (twice).</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1_1_6_2_1_1"></a><b>§1.1.6.2.1.1. </b>We collapse words to an initial letter plus consonants: thus "electricity"
|
||||
would be "elctrcty", since we don't count "y" as a vowel here.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Make the tail using this many consonants from each word</span> <span class="cwebmacronumber">1.1.6.2.1.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">sn</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">sw</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) == </span><span class="constant">FOLDER_SEPARATOR</span><span class="plain">) </span><span class="identifier">sn</span><span class="plain">++;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">letters_from_current_word</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">while</span><span class="plain"> ((</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">)) && (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) != </span><span class="character">'.'</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) == </span><span class="character">' '</span><span class="plain">) </span><span class="identifier">letters_from_current_word</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">letters_from_current_word</span><span class="plain"> < </span><span class="identifier">letters_from_each_word</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">) != </span><span class="character">'-'</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">l</span><span class="plain"> = </span><span class="identifier">tolower</span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">sn</span><span class="plain">));</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">letters_from_current_word</span><span class="plain"> == </span><span class="constant">0</span><span class="plain">) ||</span>
|
||||
<span class="plain">((</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'a'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'e'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'i'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'o'</span><span class="plain">) && (</span><span class="identifier">l</span><span class="plain"> != </span><span class="character">'u'</span><span class="plain">))) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP14">Str::put_at</a></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">sw</span><span class="plain">++, </span><span class="identifier">l</span><span class="plain">); </span><span class="functiontext"><a href="4-sm.html#SP14">Str::put_at</a></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">sw</span><span class="plain">, </span><span class="constant">0</span><span class="plain">);</span>
|
||||
<span class="identifier">letters_from_current_word</span><span class="plain">++;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">sn</span><span class="plain">++;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP1_1_6_2_1">§1.1.6.2.1</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1_1_6_2_1_2"></a><b>§1.1.6.2.1.2. </b>We never want two sections to have the same range.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="macrodefinition"><code class="display">
|
||||
<<span class="cwebmacrodefn">Terminate with disambiguating numbers in case of collisions</span> <span class="cwebmacronumber">1.1.6.2.1.2</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">original_range</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">original_range</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="reserved">int</span><span class="plain"> </span><span class="identifier">disnum</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">collision</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">do</span><span class="plain"> {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain">++ > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">4</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain"> >= </span><span class="constant">1000</span><span class="plain">) </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">3</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain"> >= </span><span class="constant">100</span><span class="plain">) </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">2</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disnum</span><span class="plain"> >= </span><span class="constant">10</span><span class="plain">) </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">ldn</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></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">original_range</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::truncate</a></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"><a href="4-sm.html#SP8">Str::len</a></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">ldn</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">"%d"</span><span class="plain">, </span><span class="identifier">disnum</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">collision</span><span class="plain"> = </span><span class="constant">FALSE</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">S2</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">S2</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="reserved">if</span><span class="plain"> ((</span><span class="identifier">S2</span><span class="plain"> != </span><span class="identifier">S</span><span class="plain">) && (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">S2</span><span class="plain">-></span><span class="element">sect_range</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">collision</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">; </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">} </span><span class="reserved">while</span><span class="plain"> (</span><span class="identifier">collision</span><span class="plain">);</span>
|
||||
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">original_range</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP1_1_6_2_1">§1.1.6.2.1</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1_1_6_3"></a><b>§1.1.6.3. </b>Version 1 syntax was cluttered up with a number of hardly-used markup
|
||||
syntaxes called "commands", written in double squared brackets <code class="display"><span class="extract">[[Thus]]</span></code>.
|
||||
In version 2, this notation is never used.
|
||||
|
@ -729,13 +624,13 @@ division in the current section.
|
|||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">;</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">latest</span><span class="plain"> = </span><span class="identifier">L</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain">, </span><span class="identifier">lines</span><span class="plain">) {</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">TL</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, &(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">));</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">TL</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line_in</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, &(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">), </span><span class="identifier">S</span><span class="plain">);</span>
|
||||
<span class="identifier">TL</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">latest</span><span class="plain">-></span><span class="element">next_line</span><span class="plain">;</span>
|
||||
<span class="identifier">TL</span><span class="plain">-></span><span class="element">plainer</span><span class="plain"> = </span><span class="identifier">L</span><span class="plain">-></span><span class="element">plainer</span><span class="plain">;</span>
|
||||
<span class="identifier">latest</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">TL</span><span class="plain">;</span>
|
||||
<span class="identifier">latest</span><span class="plain"> = </span><span class="identifier">TL</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">EEL</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"="</span><span class="plain">, &(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">));</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">EEL</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line_in</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"="</span><span class="plain">, &(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">), </span><span class="identifier">S</span><span class="plain">);</span>
|
||||
<span class="identifier">EEL</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">latest</span><span class="plain">-></span><span class="element">next_line</span><span class="plain">;</span>
|
||||
<span class="identifier">latest</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">EEL</span><span class="plain">;</span>
|
||||
<span class="identifier">code_lcat_for_body</span><span class="plain"> = </span><span class="constant">TEXT_EXTRACT_LCAT</span><span class="plain">;</span>
|
||||
|
@ -1209,7 +1104,7 @@ is not elegant but handles the back end of both possibilities.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Parser::extract_purpose<button class="popup" onclick="togglePopup('usagePopup34')">...<span class="popuptext" id="usagePopup34">Usage of <b>Parser::extract_purpose</b>:<br><a href="#SP1_1_4">§1.1.4</a>, <a href="#SP1_1_6_5_1_1">§1.1.6.5.1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">prologue</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">XL</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="reserved">source_line</span><span class="plain"> **</span><span class="identifier">adjust</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Parser::extract_purpose<button class="popup" onclick="togglePopup('usagePopup33')">...<span class="popuptext" id="usagePopup33">Usage of <b>Parser::extract_purpose</b>:<br><a href="#SP1_1_4">§1.1.4</a>, <a href="#SP1_1_6_5_1_1">§1.1.6.5.1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">prologue</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">XL</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="reserved">source_line</span><span class="plain"> **</span><span class="identifier">adjust</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">prologue</span><span class="plain">);</span>
|
||||
<span class="reserved">while</span><span class="plain"> ((</span><span class="identifier">XL</span><span class="plain">) && (</span><span class="identifier">XL</span><span class="plain">-></span><span class="element">next_line</span><span class="plain">) && (</span><span class="identifier">XL</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain"> == </span><span class="identifier">S</span><span class="plain">) &&</span>
|
||||
<span class="plain">(((</span><span class="identifier">adjust</span><span class="plain">) && (</span><span class="identifier">isalnum</span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_first_char</a></span><span class="plain">(</span><span class="identifier">XL</span><span class="plain">-></span><span class="element">text</span><span class="plain">)))) ||</span>
|
||||
|
@ -1233,7 +1128,7 @@ when it comes to Inweb's exit code, so they will halt a make.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Parser::wrong_version<button class="popup" onclick="togglePopup('usagePopup35')">...<span class="popuptext" id="usagePopup35">Usage of <b>Parser::wrong_version</b>:<br><a href="#SP1_1_1">§1.1.1</a>, <a href="#SP1_1_5">§1.1.5</a>, <a href="#SP1_1_6">§1.1.6</a>, <a href="#SP1_1_6_3">§1.1.6.3</a>, <a href="#SP1_1_6_5_1">§1.1.6.5.1</a>, <a href="#SP1_1_6_5_1_1">§1.1.6.5.1.1</a>, <a href="#SP1_1_6_5_1_2">§1.1.6.5.1.2</a>, <a href="#SP1_1_6_5_1_3">§1.1.6.5.1.3</a>, <a href="#SP1_1_6_5_1_4">§1.1.6.5.1.4</a>, <a href="#SP1_1_6_5_1_5">§1.1.6.5.1.5</a>, The Weaver - <a href="3-tw.html#SP1_3_4_1_2_1">§1.3.4.1.2.1</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">using</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">feature</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">need</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Parser::wrong_version<button class="popup" onclick="togglePopup('usagePopup34')">...<span class="popuptext" id="usagePopup34">Usage of <b>Parser::wrong_version</b>:<br><a href="#SP1_1_1">§1.1.1</a>, <a href="#SP1_1_5">§1.1.5</a>, <a href="#SP1_1_6">§1.1.6</a>, <a href="#SP1_1_6_2">§1.1.6.2</a>, <a href="#SP1_1_6_3">§1.1.6.3</a>, <a href="#SP1_1_6_5_1">§1.1.6.5.1</a>, <a href="#SP1_1_6_5_1_1">§1.1.6.5.1.1</a>, <a href="#SP1_1_6_5_1_2">§1.1.6.5.1.2</a>, <a href="#SP1_1_6_5_1_3">§1.1.6.5.1.3</a>, <a href="#SP1_1_6_5_1_4">§1.1.6.5.1.4</a>, <a href="#SP1_1_6_5_1_5">§1.1.6.5.1.5</a>, The Weaver - <a href="3-tw.html#SP1_3_4_1_2_1">§1.3.4.1.2.1</a></span></button></span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">using</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">char</span><span class="plain"> *</span><span class="identifier">feature</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">need</span><span class="plain">) {</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">warning</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">warning</span><span class="plain">, </span><span class="string">"%s is a feature available only in version %d syntax (you're using version %d)"</span><span class="plain">,</span>
|
||||
<span class="identifier">feature</span><span class="plain">, </span><span class="identifier">need</span><span class="plain">, </span><span class="identifier">using</span><span class="plain">);</span>
|
||||
|
@ -1247,7 +1142,7 @@ when it comes to Inweb's exit code, so they will halt a make.
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. Footnote notation. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Parser::detect_footnote<button class="popup" onclick="togglePopup('usagePopup36')">...<span class="popuptext" id="usagePopup36">Usage of <b>Parser::detect_footnote</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5">§1.3.4.1.8.5</a><br>Format Methods - <a href="5-fm.html#SP27_3">§27.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">before</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Parser::detect_footnote<button class="popup" onclick="togglePopup('usagePopup35')">...<span class="popuptext" id="usagePopup35">Usage of <b>Parser::detect_footnote</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5">§1.3.4.1.8.5</a><br>Format Methods - <a href="5-fm.html#SP27_3">§27.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">before</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">after</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fn_on_notation</span><span class="plain"> =</span>
|
||||
<span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::get_datum</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Footnote Begins Notation"</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Reader' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>The Reader</b></li></ul><p class="purpose">To read the Contents section of the web, and through that each of the other sections in turn, and to collate all of this material.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#2">Chapter 2: Parsing a Web</a></li><li><b>The Reader</b></li></ul><p class="purpose">To read the Contents section of the web, and through that each of the other sections in turn, and to collate all of this material.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Web semantics</a></li><li><a href="#SP5">§5. Web reading</a></li><li><a href="#SP7">§7. Woven and Tangled folders</a></li><li><a href="#SP8">§8. Looking up chapters and sections</a></li><li><a href="#SP10">§10. Ranges and containment</a></li><li><a href="#SP11">§11. Tangle targets</a></li><li><a href="#SP14">§14. Additional header files</a></li><li><a href="#SP15">§15. Extent</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -58,7 +63,7 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">web_md</span><span class="plain"> *</span><span class="identifier">md</span><span class="plain">;</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">chapters</span><span class="plain">; </span><span class="comment"> of <code class="display"><span class="extract">chapter</span></code> (including Sections, Preliminaries, etc.)</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">no_lines</span><span class="plain">; </span><span class="comment"> total lines in literate source, excluding contents</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">web_extent</span><span class="plain">; </span><span class="comment"> total lines in literate source, excluding contents</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">no_paragraphs</span><span class="plain">; </span><span class="comment"> this will be at least 1</span>
|
||||
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">main_language</span><span class="plain">; </span><span class="comment"> in which most of the sections are written</span>
|
||||
|
@ -77,7 +82,7 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure web is accessed in 1/pc, 1/ptt, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/taf, 4/as, 4/cl, 4/is, 5/fm, 5/ptf, 5/tf, 5/hf, 5/wp, 6/mkf, 6/rw and here.</p>
|
||||
<p class="endnote">The structure web is accessed in 1/pc, 1/ptt, 2/lc, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/taf, 4/as, 4/cl, 4/is, 5/fm, 5/ptf, 5/tf, 5/hf, 5/wp, 6/mkf, 6/rw and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>And for a chapter:
|
||||
</p>
|
||||
|
@ -97,7 +102,7 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure chapter is accessed in 1/pc, 1/ptt, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/cl, 4/is, 5/fm, 5/ptf, 5/tf, 5/hf, 5/wp, 6/mkf, 6/rw and here.</p>
|
||||
<p class="endnote">The structure chapter is accessed in 1/pc, 1/ptt, 2/lc, 2/tp, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/cl, 4/is, 5/fm, 5/ptf, 5/tf, 5/hf, 5/wp, 6/mkf, 6/rw and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>And lastly for a section.
|
||||
</p>
|
||||
|
@ -110,7 +115,6 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sect_namespace</span><span class="plain">; </span><span class="comment"> e.g., "Text::Languages::"</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sect_purpose</span><span class="plain">; </span><span class="comment"> e.g., "To manage the zoo, and feed all penguins"</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sect_range</span><span class="plain">; </span><span class="comment"> e.g., "9/tfto"</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">barred</span><span class="plain">; </span><span class="comment"> if version 1 syntax, contains a dividing bar?</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">sect_language</span><span class="plain">; </span><span class="comment"> in which this section is written</span>
|
||||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">tangle_target</span><span class="plain"> *</span><span class="identifier">sect_target</span><span class="plain">; </span><span class="comment"> <code class="display"><span class="extract">NULL</span></code> unless this section produces a tangle of its own</span>
|
||||
|
@ -135,20 +139,20 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure section is accessed in 1/pc, 1/ptt, 2/tp, 2/pm, 2/tgs, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/taf, 4/lm, 4/as, 4/cl, 4/is, 5/fm, 5/ptf, 5/tf, 5/hf, 5/wp, 6/mkf, 6/rw and here.</p>
|
||||
<p class="endnote">The structure section is accessed in 1/pc, 1/ptt, 2/lc, 2/tp, 2/pm, 2/tgs, 2/pn, 3/ta, 3/ts, 3/ti, 3/tw, 3/tt, 4/pl, 4/taf, 4/lm, 4/as, 4/cl, 4/is, 5/fm, 5/ptf, 5/tf, 5/hf, 5/wp, 6/mkf, 6/rw and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>The following routine makes the <code class="display"><span class="extract">web</span></code>-<code class="display"><span class="extract">chapter</span></code>-<code class="display"><span class="extract">section</span></code> tree out of a
|
||||
<code class="display"><span class="extract">web_md</span></code>-<code class="display"><span class="extract">chapter_md</span></code>-<code class="display"><span class="extract">section_md</span></code> tree:
|
||||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">web_md</span><span class="plain"> *</span><span class="functiontext">Reader::load_web_md<button class="popup" onclick="togglePopup('usagePopup16')">...<span class="popuptext" id="usagePopup16">Usage of <b>Reader::load_web_md</b>:<br>Makefiles - <a href="6-mkf.html#SP2_11_1">§2.11.1</a></span></button></span><span class="plain">(</span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">alt_F</span><span class="plain">, </span><span class="reserved">module_search</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">verbosely</span><span class="plain">,</span>
|
||||
<span class="reserved">web_md</span><span class="plain"> *</span><span class="functiontext">Reader::load_web_md<button class="popup" onclick="togglePopup('usagePopup15')">...<span class="popuptext" id="usagePopup15">Usage of <b>Reader::load_web_md</b>:<br>Makefiles - <a href="6-mkf.html#SP2_11_1">§2.11.1</a></span></button></span><span class="plain">(</span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">alt_F</span><span class="plain">, </span><span class="reserved">module_search</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">verbosely</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">including_modules</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="8-ws.html#SP5">WebMetadata::get</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">alt_F</span><span class="plain">, </span><span class="identifier">default_inweb_syntax</span><span class="plain">, </span><span class="identifier">I</span><span class="plain">, </span><span class="identifier">verbosely</span><span class="plain">,</span>
|
||||
<span class="identifier">including_modules</span><span class="plain">, </span><span class="identifier">path_to_inweb</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">web</span><span class="plain"> *</span><span class="functiontext">Reader::load_web<button class="popup" onclick="togglePopup('usagePopup17')">...<span class="popuptext" id="usagePopup17">Usage of <b>Reader::load_web</b>:<br>Program Control - <a href="1-pc.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">alt_F</span><span class="plain">, </span><span class="reserved">module_search</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">verbosely</span><span class="plain">,</span>
|
||||
<span class="reserved">web</span><span class="plain"> *</span><span class="functiontext">Reader::load_web<button class="popup" onclick="togglePopup('usagePopup16')">...<span class="popuptext" id="usagePopup16">Usage of <b>Reader::load_web</b>:<br>Program Control - <a href="1-pc.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">alt_F</span><span class="plain">, </span><span class="reserved">module_search</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">verbosely</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">including_modules</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="identifier">CREATE</span><span class="plain">(</span><span class="reserved">web</span><span class="plain">);</span>
|
||||
|
@ -212,7 +216,7 @@ each of which has a list of <code class="display"><span class="extract">section<
|
|||
<span class="identifier">W</span><span class="plain">-></span><span class="element">as_ebook</span><span class="plain"> = </span><span class="identifier">NULL</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">NULL</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="functiontext"><a href="4-pl.html#SP3">Languages::default</a></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">no_lines</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">; </span><span class="identifier">W</span><span class="plain">-></span><span class="element">no_paragraphs</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="identifier">W</span><span class="plain">-></span><span class="element">web_extent</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">; </span><span class="identifier">W</span><span class="plain">-></span><span class="element">no_paragraphs</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">language_name</span><span class="plain"> = </span><span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::get_datum</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Language"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">language_name</span><span class="plain">) > </span><span class="constant">0</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="functiontext"><a href="4-pl.html#SP2">Languages::find_by_name</a></span><span class="plain">(</span><span class="identifier">language_name</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
|
@ -273,7 +277,6 @@ 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"><a href="4-sm.html#SP8">Str::len</a></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="constant">0</span><span class="plain">)</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">tag_with</span><span class="plain"> = </span><span class="functiontext"><a href="2-tgs.html#SP4">Tags::add_by_name</a></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"><a href="4-sm.html#SP2">Str::new</a></span><span class="plain">();</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -304,7 +307,7 @@ inserted if this is a multi-chapter web.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::read_web<button class="popup" onclick="togglePopup('usagePopup18')">...<span class="popuptext" id="usagePopup18">Usage of <b>Reader::read_web</b>:<br>Program Control - <a href="1-pc.html#SP7">§7</a></span></button></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">verbosely</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::read_web<button class="popup" onclick="togglePopup('usagePopup17')">...<span class="popuptext" id="usagePopup17">Usage of <b>Reader::read_web</b>:<br>Program Control - <a href="1-pc.html#SP7">§7</a></span></button></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">verbosely</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>
|
||||
|
@ -322,7 +325,7 @@ inserted if this is a multi-chapter web.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::read_file<button class="popup" onclick="togglePopup('usagePopup19')">...<span class="popuptext" id="usagePopup19">Usage of <b>Reader::read_file</b>:<br><a href="#SP5">§5</a></span></button></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">chapter</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">titling_line</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::read_file<button class="popup" onclick="togglePopup('usagePopup18')">...<span class="popuptext" id="usagePopup18">Usage of <b>Reader::read_file</b>:<br><a href="#SP5">§5</a></span></button></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">chapter</span><span class="plain"> *</span><span class="identifier">C</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">titling_line</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="reserved">int</span><span class="plain"> </span><span class="identifier">verbosely</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">disregard_top</span><span class="plain">) {</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">owning_chapter</span><span class="plain"> = </span><span class="identifier">C</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">disregard_top</span><span class="plain">)</span>
|
||||
|
@ -389,7 +392,7 @@ tangled for.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::scan_source_line<button class="popup" onclick="togglePopup('usagePopup20')">...<span class="popuptext" id="usagePopup20">Usage of <b>Reader::scan_source_line</b>:<br><a href="#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::scan_source_line<button class="popup" onclick="togglePopup('usagePopup19')">...<span class="popuptext" id="usagePopup19">Usage of <b>Reader::scan_source_line</b>:<br><a href="#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</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="reserved">section</span><span class="plain"> *) </span><span class="identifier">state</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">l</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">) - </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="reserved">while</span><span class="plain"> ((</span><span class="identifier">l</span><span class="plain">>=0) && (</span><span class="functiontext"><a href="4-chr.html#SP2">Characters::is_space_or_tab</a></span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">l</span><span class="plain">)))) </span><span class="functiontext"><a href="4-sm.html#SP15">Str::truncate</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">l</span><span class="plain">--);</span>
|
||||
|
@ -410,20 +413,15 @@ tangled for.
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">sl</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">sl</span><span class="plain"> = </span><span class="functiontext"><a href="2-lc.html#SP2">Lines::new_source_line_in</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">);</span>
|
||||
|
||||
<span class="comment"> enter this in its section's linked list of lines:</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain">-></span><span class="element">first_line</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">S</span><span class="plain">-></span><span class="element">first_line</span><span class="plain"> = </span><span class="identifier">sl</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">-></span><span class="element">last_line</span><span class="plain">-></span><span class="element">next_line</span><span class="plain"> = </span><span class="identifier">sl</span><span class="plain">;</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">last_line</span><span class="plain"> = </span><span class="identifier">sl</span><span class="plain">;</span>
|
||||
|
||||
<span class="comment"> we haven't detected paragraph boundaries yet, so:</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_paragraph</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
||||
<span class="comment"> and keep count:</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">sect_extent</span><span class="plain">++;</span>
|
||||
<span class="identifier">sl</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">owning_chapter</span><span class="plain">-></span><span class="element">owning_web</span><span class="plain">-></span><span class="element">no_lines</span><span class="plain">++;</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -434,13 +432,13 @@ tangled for.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="functiontext">Reader::woven_folder<button class="popup" onclick="togglePopup('usagePopup21')">...<span class="popuptext" id="usagePopup21">Usage of <b>Reader::woven_folder</b>:<br>Patterns - <a href="1-ptt.html#SP7">§7</a><br>The Swarm - <a href="3-ts.html#SP2_2">§2.2</a><br>The Indexer - <a href="3-ti.html#SP5_4">§5.4</a><br>HTML Formats - <a href="5-hf.html#SP32">§32</a></span></button></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">pathname</span><span class="plain"> *</span><span class="functiontext">Reader::woven_folder<button class="popup" onclick="togglePopup('usagePopup20')">...<span class="popuptext" id="usagePopup20">Usage of <b>Reader::woven_folder</b>:<br>Patterns - <a href="1-ptt.html#SP7">§7</a><br>The Swarm - <a href="3-ts.html#SP2_2">§2.2</a><br>The Indexer - <a href="3-ti.html#SP5_4">§5.4</a><br>HTML Formats - <a href="5-hf.html#SP32">§32</a></span></button></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">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext"><a href="3-pth.html#SP4">Pathnames::subfolder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">path_to_web</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Woven"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="3-pth.html#SP8">Pathnames::create_in_file_system</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP2">Errors::fatal_with_path</a></span><span class="plain">(</span><span class="string">"unable to create Woven subdirectory"</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">P</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="functiontext">Reader::tangled_folder<button class="popup" onclick="togglePopup('usagePopup22')">...<span class="popuptext" id="usagePopup22">Usage of <b>Reader::tangled_folder</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a><br>The Tangler - <a href="3-tt.html#SP1_2">§1.2</a><br>InC Support - <a href="4-is.html#SP13">§13</a></span></button></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">pathname</span><span class="plain"> *</span><span class="functiontext">Reader::tangled_folder<button class="popup" onclick="togglePopup('usagePopup21')">...<span class="popuptext" id="usagePopup21">Usage of <b>Reader::tangled_folder</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a><br>The Tangler - <a href="3-tt.html#SP1_2">§1.2</a><br>InC Support - <a href="4-is.html#SP13">§13</a></span></button></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">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext"><a href="3-pth.html#SP4">Pathnames::subfolder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">path_to_web</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Tangled"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="3-pth.html#SP8">Pathnames::create_in_file_system</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP2">Errors::fatal_with_path</a></span><span class="plain">(</span><span class="string">"unable to create Tangled subdirectory"</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
|
@ -459,7 +457,7 @@ in large webs, and lookup is performed only a few times.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">chapter</span><span class="plain"> *</span><span class="functiontext">Reader::get_chapter_for_range<button class="popup" onclick="togglePopup('usagePopup23')">...<span class="popuptext" id="usagePopup23">Usage of <b>Reader::get_chapter_for_range</b>:<br>The Analyser - <a href="3-ta.html#SP1">§1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">) {</span>
|
||||
<span class="reserved">chapter</span><span class="plain"> *</span><span class="functiontext">Reader::get_chapter_for_range<button class="popup" onclick="togglePopup('usagePopup22')">...<span class="popuptext" id="usagePopup22">Usage of <b>Reader::get_chapter_for_range</b>:<br>The Analyser - <a href="3-ta.html#SP1">§1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</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">if</span><span class="plain"> (</span><span class="identifier">W</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>
|
||||
|
@ -468,13 +466,13 @@ in large webs, and lookup is performed only a few times.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">section</span><span class="plain"> *</span><span class="functiontext">Reader::get_section_for_range<button class="popup" onclick="togglePopup('usagePopup24')">...<span class="popuptext" id="usagePopup24">Usage of <b>Reader::get_section_for_range</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a>, <a href="1-pc.html#SP7_4_2_2">§7.4.2.2</a><br>The Analyser - <a href="3-ta.html#SP1">§1</a><br>The Swarm - <a href="3-ts.html#SP2_2_1">§2.2.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">) {</span>
|
||||
<span class="reserved">section</span><span class="plain"> *</span><span class="functiontext">Reader::get_section_for_range<button class="popup" onclick="togglePopup('usagePopup23')">...<span class="popuptext" id="usagePopup23">Usage of <b>Reader::get_section_for_range</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a>, <a href="1-pc.html#SP7_4_2_2">§7.4.2.2</a><br>The Analyser - <a href="3-ta.html#SP1">§1</a><br>The Swarm - <a href="3-ts.html#SP2_2_1">§2.2.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</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="reserved">if</span><span class="plain"> (</span><span class="identifier">W</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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></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">range</span><span class="plain">))</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></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_range</span><span class="plain">, </span><span class="identifier">range</span><span class="plain">))</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">S</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -486,7 +484,7 @@ in large webs, and lookup is performed only a few times.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">section</span><span class="plain"> *</span><span class="functiontext">Reader::section_by_filename<button class="popup" onclick="togglePopup('usagePopup25')">...<span class="popuptext" id="usagePopup25">Usage of <b>Reader::section_by_filename</b>:<br>none</span></button></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">text_stream</span><span class="plain"> *</span><span class="reserved">filename</span><span class="plain">) {</span>
|
||||
<span class="reserved">section</span><span class="plain"> *</span><span class="functiontext">Reader::section_by_filename<button class="popup" onclick="togglePopup('usagePopup24')">...<span class="popuptext" id="usagePopup24">Usage of <b>Reader::section_by_filename</b>:<br>none</span></button></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">text_stream</span><span class="plain"> *</span><span class="reserved">filename</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="reserved">if</span><span class="plain"> (</span><span class="identifier">W</span><span class="plain">)</span>
|
||||
|
@ -511,7 +509,7 @@ translates to when it's used on the command line.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Reader::range_within<button class="popup" onclick="togglePopup('usagePopup26')">...<span class="popuptext" id="usagePopup26">Usage of <b>Reader::range_within</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3_2">§7.4.3.2</a><br>The Swarm - <a href="3-ts.html#SP1">§1</a>, <a href="3-ts.html#SP2_2">§2.2</a><br>The Weaver - <a href="3-tw.html#SP1_3">§1.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">range1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">range2</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Reader::range_within<button class="popup" onclick="togglePopup('usagePopup25')">...<span class="popuptext" id="usagePopup25">Usage of <b>Reader::range_within</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3_2">§7.4.3.2</a><br>The Swarm - <a href="3-ts.html#SP1">§1</a>, <a href="3-ts.html#SP2_2">§2.2</a><br>The Weaver - <a href="3-tw.html#SP1_3">§1.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">range1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">range2</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">range2</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"0"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">range1</span><span class="plain">, </span><span class="identifier">range2</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
|
@ -550,7 +548,7 @@ a web contains just one target, which contains all of the sections.
|
|||
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">tangle_target</span><span class="plain"> *</span><span class="functiontext">Reader::add_tangle_target<button class="popup" onclick="togglePopup('usagePopup27')">...<span class="popuptext" id="usagePopup27">Usage of <b>Reader::add_tangle_target</b>:<br><a href="#SP4_2">§4.2</a>, <a href="#SP4_4">§4.4</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">language</span><span class="plain">) {</span>
|
||||
<span class="reserved">tangle_target</span><span class="plain"> *</span><span class="functiontext">Reader::add_tangle_target<button class="popup" onclick="togglePopup('usagePopup26')">...<span class="popuptext" id="usagePopup26">Usage of <b>Reader::add_tangle_target</b>:<br><a href="#SP4_2">§4.2</a>, <a href="#SP4_4">§4.4</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">language</span><span class="plain">) {</span>
|
||||
<span class="reserved">tangle_target</span><span class="plain"> *</span><span class="identifier">tt</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">tangle_target</span><span class="plain">);</span>
|
||||
<span class="identifier">tt</span><span class="plain">-></span><span class="element">tangle_language</span><span class="plain"> = </span><span class="identifier">language</span><span class="plain">;</span>
|
||||
<span class="identifier">ADD_TO_LINKED_LIST</span><span class="plain">(</span><span class="identifier">tt</span><span class="plain">, </span><span class="reserved">tangle_target</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-></span><span class="element">tangle_targets</span><span class="plain">);</span>
|
||||
|
@ -580,7 +578,7 @@ get around the lack of some POSIX facilities on Windows.)
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::add_imported_header<button class="popup" onclick="togglePopup('usagePopup28')">...<span class="popuptext" id="usagePopup28">Usage of <b>Reader::add_imported_header</b>:<br><a href="#SP4_5">§4.5</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">HF</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::add_imported_header<button class="popup" onclick="togglePopup('usagePopup27')">...<span class="popuptext" id="usagePopup27">Usage of <b>Reader::add_imported_header</b>:<br><a href="#SP4_5">§4.5</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">HF</span><span class="plain">) {</span>
|
||||
<span class="identifier">ADD_TO_LINKED_LIST</span><span class="plain">(</span><span class="identifier">HF</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-></span><span class="element">headers</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -590,7 +588,7 @@ get around the lack of some POSIX facilities on Windows.)
|
|||
<p class="inwebparagraph"><a id="SP15"></a><b>§15. Extent. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Reader::web_has_one_section<button class="popup" onclick="togglePopup('usagePopup29')">...<span class="popuptext" id="usagePopup29">Usage of <b>Reader::web_has_one_section</b>:<br>The Swarm - <a href="3-ts.html#SP2_2">§2.2</a><br>The Weaver - <a href="3-tw.html#SP1">§1</a>, <a href="3-tw.html#SP1_3_4_1_10_4">§1.3.4.1.10.4</a></span></button></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="functiontext">Reader::web_has_one_section<button class="popup" onclick="togglePopup('usagePopup28')">...<span class="popuptext" id="usagePopup28">Usage of <b>Reader::web_has_one_section</b>:<br>The Swarm - <a href="3-ts.html#SP2_2">§2.2</a><br>The Weaver - <a href="3-tw.html#SP1">§1</a>, <a href="3-tw.html#SP1_3_4_1_10_4">§1.3.4.1.10.4</a></span></button></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">if</span><span class="plain"> (</span><span class="functiontext"><a href="8-ws.html#SP9">WebMetadata::section_count</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">) == </span><span class="constant">1</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -602,7 +600,7 @@ get around the lack of some POSIX facilities on Windows.)
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Reader::print_web_statistics<button class="popup" onclick="togglePopup('usagePopup30')">...<span class="popuptext" id="usagePopup30">Usage of <b>Reader::print_web_statistics</b>:<br>Program Control - <a href="1-pc.html#SP7_4">§7.4</a></span></button></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">void</span><span class="plain"> </span><span class="functiontext">Reader::print_web_statistics<button class="popup" onclick="togglePopup('usagePopup29')">...<span class="popuptext" id="usagePopup29">Usage of <b>Reader::print_web_statistics</b>:<br>Program Control - <a href="1-pc.html#SP7_4">§7.4</a></span></button></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="identifier">PRINT</span><span class="plain">(</span><span class="string">"web \"%S\": "</span><span class="plain">, </span><span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::get_datum</a></span><span class="plain">(</span><span class="identifier">W</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">int</span><span class="plain"> </span><span class="identifier">c</span><span class="plain"> = </span><span class="functiontext"><a href="8-ws.html#SP9">WebMetadata::chapter_count</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">s</span><span class="plain"> = </span><span class="functiontext"><a href="8-ws.html#SP9">WebMetadata::section_count</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">);</span>
|
||||
|
@ -611,7 +609,7 @@ get around the lack of some POSIX facilities on Windows.)
|
|||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"%d section%s : %d paragraph%s : %d line%s\n"</span><span class="plain">,</span>
|
||||
<span class="identifier">s</span><span class="plain">, (</span><span class="identifier">s</span><span class="plain"> == </span><span class="constant">1</span><span class="plain">)?</span><span class="string">""</span><span class="plain">:</span><span class="string">"s"</span><span class="plain">,</span>
|
||||
<span class="identifier">W</span><span class="plain">-></span><span class="element">no_paragraphs</span><span class="plain">, (</span><span class="identifier">W</span><span class="plain">-></span><span class="element">no_paragraphs</span><span class="plain"> == </span><span class="constant">1</span><span class="plain">)?</span><span class="string">""</span><span class="plain">:</span><span class="string">"s"</span><span class="plain">,</span>
|
||||
<span class="identifier">W</span><span class="plain">-></span><span class="element">no_lines</span><span class="plain">, (</span><span class="identifier">W</span><span class="plain">-></span><span class="element">no_lines</span><span class="plain"> == </span><span class="constant">1</span><span class="plain">)?</span><span class="string">""</span><span class="plain">:</span><span class="string">"s"</span><span class="plain">);</span>
|
||||
<span class="identifier">W</span><span class="plain">-></span><span class="element">web_extent</span><span class="plain">, (</span><span class="identifier">W</span><span class="plain">-></span><span class="element">web_extent</span><span class="plain"> == </span><span class="constant">1</span><span class="plain">)?</span><span class="string">""</span><span class="plain">:</span><span class="string">"s"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Analyser' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Analyser</b></li></ul><p class="purpose">Here we analyse the code in the web, enabling us to see how functions and data structures are used within the program.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Analyser</b></li></ul><p class="purpose">Here we analyse the code in the web, enabling us to see how functions and data structures are used within the program.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Scanning webs</a></li><li><a href="#SP2">§2. The section catalogue</a></li><li><a href="#SP3">§3. Analysing code</a></li><li><a href="#SP5">§5. Identifier searching</a></li><li><a href="#SP6">§6. The identifier hash table</a></li><li><a href="#SP13">§13. Open-source project support</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -34,7 +39,7 @@ result of reading in and parsing the web:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::scan_line_categories<button class="popup" onclick="togglePopup('usagePopup52')">...<span class="popuptext" id="usagePopup52">Usage of <b>Analyser::scan_line_categories</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::scan_line_categories<button class="popup" onclick="togglePopup('usagePopup51')">...<span class="popuptext" id="usagePopup51">Usage of <b>Analyser::scan_line_categories</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">) {</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"Scan of source lines for '%S'\n"</span><span class="plain">, </span><span class="identifier">range</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">count</span><span class="plain"> = </span><span class="constant">1</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="functiontext"><a href="2-tr.html#SP8">Reader::get_chapter_for_range</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">range</span><span class="plain">);</span>
|
||||
|
@ -91,13 +96,13 @@ so that Chapter 4 contains no assumptions about the language.
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::catalogue_the_sections<button class="popup" onclick="togglePopup('usagePopup53')">...<span class="popuptext" id="usagePopup53">Usage of <b>Analyser::catalogue_the_sections</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">form</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::catalogue_the_sections<button class="popup" onclick="togglePopup('usagePopup52')">...<span class="popuptext" id="usagePopup52">Usage of <b>Analyser::catalogue_the_sections</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">form</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">max_width</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">max_range_width</span><span class="plain"> = </span><span class="constant">0</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="reserved">if</span><span class="plain"> (</span><span class="identifier">max_range_width</span><span class="plain"> < </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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">max_range_width</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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="reserved">if</span><span class="plain"> (</span><span class="identifier">max_range_width</span><span class="plain"> < </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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_range</span><span class="plain">)) </span><span class="identifier">max_range_width</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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_range</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">, </span><span class="string">"%S/%S"</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-></span><span class="identifier">md</span><span class="plain">-></span><span class="element">ch_basic_title</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">if</span><span class="plain"> (</span><span class="identifier">max_width</span><span class="plain"> < </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">)) </span><span class="identifier">max_width</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">);</span>
|
||||
|
@ -109,8 +114,8 @@ so that Chapter 4 contains no assumptions about the language.
|
|||
<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">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">, </span><span class="string">"%S/%S"</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-></span><span class="identifier">md</span><span class="plain">-></span><span class="element">ch_basic_title</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="identifier">PRINT</span><span class="plain">(</span><span class="string">"%4d %S"</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_extent</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="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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">i</span><span class="plain"><</span><span class="identifier">max_range_width</span><span class="plain">+2; </span><span class="identifier">i</span><span class="plain">++) </span><span class="identifier">PRINT</span><span class="plain">(</span><span class="string">" "</span><span class="plain">);</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"%4d %S"</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_extent</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_range</span><span class="plain">);</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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_range</span><span class="plain">); </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">max_range_width</span><span class="plain">+2; </span><span class="identifier">i</span><span class="plain">++) </span><span class="identifier">PRINT</span><span class="plain">(</span><span class="string">" "</span><span class="plain">);</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">main_title</span><span class="plain">);</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">main_title</span><span class="plain">); </span><span class="identifier">i</span><span class="plain"><</span><span class="identifier">max_width</span><span class="plain">+2; </span><span class="identifier">i</span><span class="plain">++) </span><span class="identifier">PRINT</span><span class="plain">(</span><span class="string">" "</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">form</span><span class="plain"> != </span><span class="constant">BASIC_SECTIONCAT</span><span class="plain">)</span>
|
||||
|
@ -152,7 +157,7 @@ taken must be handled by <code class="display"><span class="extract">LanguageMet
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::analyse_code<button class="popup" onclick="togglePopup('usagePopup54')">...<span class="popuptext" id="usagePopup54">Usage of <b>Analyser::analyse_code</b>:<br>The Swarm - <a href="3-ts.html#SP2">§2</a></span></button></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">void</span><span class="plain"> </span><span class="functiontext">Analyser::analyse_code<button class="popup" onclick="togglePopup('usagePopup53')">...<span class="popuptext" id="usagePopup53">Usage of <b>Analyser::analyse_code</b>:<br>The Swarm - <a href="3-ts.html#SP2">§2</a></span></button></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">if</span><span class="plain"> (</span><span class="identifier">W</span><span class="plain">-></span><span class="element">analysed</span><span class="plain">) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
|
||||
<<span class="cwebmacro">Ask language-specific code to identify search targets, and parse the Interfaces</span> <span class="cwebmacronumber">4.1</span>><span class="plain">;</span>
|
||||
|
@ -278,7 +283,7 @@ string of <code class="display"><span class="extract">%i</span></code> character
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::analyse_as_code<button class="popup" onclick="togglePopup('usagePopup55')">...<span class="popuptext" id="usagePopup55">Usage of <b>Analyser::analyse_as_code</b>:<br><a href="#SP4_2">§4.2</a>, <a href="#SP4_3">§4.3</a>, <a href="#SP4_4">§4.4</a></span></button></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">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">mask</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">transf</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::analyse_as_code<button class="popup" onclick="togglePopup('usagePopup54')">...<span class="popuptext" id="usagePopup54">Usage of <b>Analyser::analyse_as_code</b>:<br><a href="#SP4_2">§4.2</a>, <a href="#SP4_3">§4.3</a>, <a href="#SP4_4">§4.4</a></span></button></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">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">mask</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">transf</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">start_at</span><span class="plain"> = -1, </span><span class="identifier">element_follows</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">; </span><span class="identifier">i</span><span class="plain"> < </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">); </span><span class="identifier">i</span><span class="plain">++) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext"><a href="4-pm.html#SP2">Regexp::identifier_char</a></span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">))) ||</span>
|
||||
|
@ -326,7 +331,7 @@ in Aho, Sethi and Ullman, "Compilers: Principles, Techniques and Tools"
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Analyser::hash_code_from_word<button class="popup" onclick="togglePopup('usagePopup56')">...<span class="popuptext" id="usagePopup56">Usage of <b>Analyser::hash_code_from_word</b>:<br><a href="#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Analyser::hash_code_from_word<button class="popup" onclick="togglePopup('usagePopup55')">...<span class="popuptext" id="usagePopup55">Usage of <b>Analyser::hash_code_from_word</b>:<br><a href="#SP9">§9</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">) {</span>
|
||||
<span class="reserved">unsigned</span><span class="plain"> </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">hash_code</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">string_position</span><span class="plain"> </span><span class="identifier">p</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP10">Str::start</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">);</span>
|
||||
<span class="reserved">switch</span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get</a></span><span class="plain">(</span><span class="identifier">p</span><span class="plain">)) {</span>
|
||||
|
@ -388,7 +393,7 @@ of each C function.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::find_hash_entry<button class="popup" onclick="togglePopup('usagePopup57')">...<span class="popuptext" id="usagePopup57">Usage of <b>Analyser::find_hash_entry</b>:<br><a href="#SP10">§10</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">create</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::find_hash_entry<button class="popup" onclick="togglePopup('usagePopup56')">...<span class="popuptext" id="usagePopup56">Usage of <b>Analyser::find_hash_entry</b>:<br><a href="#SP10">§10</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">create</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">h</span><span class="plain"> = </span><span class="functiontext"><a href="#SP6">Analyser::hash_code_from_word</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">h</span><span class="plain"> == </span><span class="constant">NUMBER_HASH</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">HT</span><span class="plain">-></span><span class="element">analysis_hash_initialised</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) {</span>
|
||||
|
@ -413,7 +418,7 @@ of each C function.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::find_hash_entry_for_section<button class="popup" onclick="togglePopup('usagePopup58')">...<span class="popuptext" id="usagePopup58">Usage of <b>Analyser::find_hash_entry_for_section</b>:<br><a href="#SP12">§12</a>, The Weaver - <a href="3-tw.html#SP2_3">§2.3</a>, <a href="3-tw.html#SP3">§3</a><br>C-Like Languages - <a href="4-cl.html#SP8">§8</a>, <a href="4-cl.html#SP9">§9</a><br>InC Support - <a href="4-is.html#SP14_1">§14.1</a>, <a href="4-is.html#SP14_2">§14.2</a>, <a href="4-is.html#SP18">§18</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">,</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::find_hash_entry_for_section<button class="popup" onclick="togglePopup('usagePopup57')">...<span class="popuptext" id="usagePopup57">Usage of <b>Analyser::find_hash_entry_for_section</b>:<br><a href="#SP12">§12</a>, The Weaver - <a href="3-tw.html#SP2_3">§2.3</a>, <a href="3-tw.html#SP3">§3</a><br>C-Like Languages - <a href="4-cl.html#SP8">§8</a>, <a href="4-cl.html#SP9">§9</a><br>InC Support - <a href="4-is.html#SP14_1">§14.1</a>, <a href="4-is.html#SP14_2">§14.2</a>, <a href="4-is.html#SP18">§18</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">create</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="#SP9">Analyser::find_hash_entry</a></span><span class="plain">(&(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">), </span><span class="identifier">text</span><span class="plain">, </span><span class="identifier">create</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -425,7 +430,7 @@ of each C function.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::mark_reserved_word<button class="popup" onclick="togglePopup('usagePopup59')">...<span class="popuptext" id="usagePopup59">Usage of <b>Analyser::mark_reserved_word</b>:<br>Programming Languages - <a href="4-pl.html#SP14">§14</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::mark_reserved_word<button class="popup" onclick="togglePopup('usagePopup58')">...<span class="popuptext" id="usagePopup58">Usage of <b>Analyser::mark_reserved_word</b>:<br>Programming Languages - <a href="4-pl.html#SP14">§14</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> = </span><span class="functiontext"><a href="#SP9">Analyser::find_hash_entry</a></span><span class="plain">(</span><span class="identifier">HT</span><span class="plain">, </span><span class="identifier">p</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">hte</span><span class="plain">-></span><span class="element">reserved_word</span><span class="plain"> |= (1 << </span><span class="identifier">e</span><span class="plain">);</span>
|
||||
<span class="identifier">hte</span><span class="plain">-></span><span class="element">definition_line</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -433,11 +438,11 @@ of each C function.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">hte</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::mark_reserved_word_for_section<button class="popup" onclick="togglePopup('usagePopup60')">...<span class="popuptext" id="usagePopup60">Usage of <b>Analyser::mark_reserved_word_for_section</b>:<br>ACME Support - <a href="4-as.html#SP7">§7</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::mark_reserved_word_for_section<button class="popup" onclick="togglePopup('usagePopup59')">...<span class="popuptext" id="usagePopup59">Usage of <b>Analyser::mark_reserved_word_for_section</b>:<br>ACME Support - <a href="4-as.html#SP7">§7</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP10">Analyser::mark_reserved_word</a></span><span class="plain">(&(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">), </span><span class="identifier">p</span><span class="plain">, </span><span class="identifier">e</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::mark_reserved_word_at_line<button class="popup" onclick="togglePopup('usagePopup61')">...<span class="popuptext" id="usagePopup61">Usage of <b>Analyser::mark_reserved_word_at_line</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_5_1_6">§1.1.6.5.1.6</a>, <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a><br>Types and Functions - <a href="4-taf.html#SP2">§2</a>, <a href="4-taf.html#SP4">§4</a>, <a href="4-taf.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="functiontext">Analyser::mark_reserved_word_at_line<button class="popup" onclick="togglePopup('usagePopup60')">...<span class="popuptext" id="usagePopup60">Usage of <b>Analyser::mark_reserved_word_at_line</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_5_1_6">§1.1.6.5.1.6</a>, <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a><br>Types and Functions - <a href="4-taf.html#SP2">§2</a>, <a href="4-taf.html#SP4">§4</a>, <a href="4-taf.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">L</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no line for rw"</span><span class="plain">);</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> =</span>
|
||||
<span class="functiontext"><a href="#SP10">Analyser::mark_reserved_word</a></span><span class="plain">(&(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">), </span><span class="identifier">p</span><span class="plain">, </span><span class="identifier">e</span><span class="plain">);</span>
|
||||
|
@ -445,23 +450,23 @@ of each C function.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">hte</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Analyser::is_reserved_word<button class="popup" onclick="togglePopup('usagePopup62')">...<span class="popuptext" id="usagePopup62">Usage of <b>Analyser::is_reserved_word</b>:<br>The Painter - <a href="4-tp.html#SP5">§5</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Analyser::is_reserved_word<button class="popup" onclick="togglePopup('usagePopup61')">...<span class="popuptext" id="usagePopup61">Usage of <b>Analyser::is_reserved_word</b>:<br>The Painter - <a href="4-tp.html#SP5">§5</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> = </span><span class="functiontext"><a href="#SP9">Analyser::find_hash_entry</a></span><span class="plain">(</span><span class="identifier">HT</span><span class="plain">, </span><span class="identifier">p</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">hte</span><span class="plain">) && (</span><span class="identifier">hte</span><span class="plain">-></span><span class="element">reserved_word</span><span class="plain"> & (1 << </span><span class="identifier">e</span><span class="plain">))) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Analyser::is_reserved_word_for_section<button class="popup" onclick="togglePopup('usagePopup63')">...<span class="popuptext" id="usagePopup63">Usage of <b>Analyser::is_reserved_word_for_section</b>:<br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Analyser::is_reserved_word_for_section<button class="popup" onclick="togglePopup('usagePopup62')">...<span class="popuptext" id="usagePopup62">Usage of <b>Analyser::is_reserved_word_for_section</b>:<br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="#SP10">Analyser::is_reserved_word</a></span><span class="plain">(&(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">), </span><span class="identifier">p</span><span class="plain">, </span><span class="identifier">e</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="functiontext">Analyser::get_defn_line<button class="popup" onclick="togglePopup('usagePopup64')">...<span class="popuptext" id="usagePopup64">Usage of <b>Analyser::get_defn_line</b>:<br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="functiontext">Analyser::get_defn_line<button class="popup" onclick="togglePopup('usagePopup63')">...<span class="popuptext" id="usagePopup63">Usage of <b>Analyser::get_defn_line</b>:<br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> = </span><span class="functiontext"><a href="#SP9">Analyser::find_hash_entry</a></span><span class="plain">(&(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">), </span><span class="identifier">p</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">hte</span><span class="plain">) && (</span><span class="identifier">hte</span><span class="plain">-></span><span class="element">reserved_word</span><span class="plain"> & (1 << </span><span class="identifier">e</span><span class="plain">))) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">hte</span><span class="plain">-></span><span class="element">definition_line</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="functiontext">Analyser::get_function<button class="popup" onclick="togglePopup('usagePopup65')">...<span class="popuptext" id="usagePopup65">Usage of <b>Analyser::get_function</b>:<br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="functiontext">Analyser::get_function<button class="popup" onclick="togglePopup('usagePopup64')">...<span class="popuptext" id="usagePopup64">Usage of <b>Analyser::get_function</b>:<br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></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="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">p</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">e</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> = </span><span class="functiontext"><a href="#SP9">Analyser::find_hash_entry</a></span><span class="plain">(&(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">), </span><span class="identifier">p</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">hte</span><span class="plain">) && (</span><span class="identifier">hte</span><span class="plain">-></span><span class="element">reserved_word</span><span class="plain"> & (1 << </span><span class="identifier">e</span><span class="plain">))) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">hte</span><span class="plain">-></span><span class="element">as_function</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -494,7 +499,7 @@ same paragraph of code.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::analyse_find<button class="popup" onclick="togglePopup('usagePopup66')">...<span class="popuptext" id="usagePopup66">Usage of <b>Analyser::analyse_find</b>:<br><a href="#SP5">§5</a></span></button></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">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">identifier</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">u</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::analyse_find<button class="popup" onclick="togglePopup('usagePopup65')">...<span class="popuptext" id="usagePopup65">Usage of <b>Analyser::analyse_find</b>:<br><a href="#SP5">§5</a></span></button></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">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">identifier</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">u</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> =</span>
|
||||
<span class="functiontext"><a href="#SP9">Analyser::find_hash_entry_for_section</a></span><span class="plain">(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">, </span><span class="identifier">identifier</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">hte</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
|
@ -519,14 +524,14 @@ folder: failing that, we fall back on a default script belonging to Inweb.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::write_makefile<button class="popup" onclick="togglePopup('usagePopup67')">...<span class="popuptext" id="usagePopup67">Usage of <b>Analyser::write_makefile</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">module_search</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::write_makefile<button class="popup" onclick="togglePopup('usagePopup66')">...<span class="popuptext" id="usagePopup66">Usage of <b>Analyser::write_makefile</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">module_search</span><span class="plain"> *</span><span class="identifier">I</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">prototype</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP2">Filenames::in_folder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">path_to_web</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"makescript.txt"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (!(</span><span class="functiontext"><a href="4-tf.html#SP1">TextFiles::exists</a></span><span class="plain">(</span><span class="identifier">prototype</span><span class="plain">)))</span>
|
||||
<span class="identifier">prototype</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP2">Filenames::in_folder</a></span><span class="plain">(</span><span class="identifier">path_to_inweb_materials</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"makescript.txt"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="6-mkf.html#SP1">Makefiles::write</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">prototype</span><span class="plain">, </span><span class="identifier">F</span><span class="plain">, </span><span class="identifier">I</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::write_gitignore<button class="popup" onclick="togglePopup('usagePopup68')">...<span class="popuptext" id="usagePopup68">Usage of <b>Analyser::write_gitignore</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Analyser::write_gitignore<button class="popup" onclick="togglePopup('usagePopup67')">...<span class="popuptext" id="usagePopup67">Usage of <b>Analyser::write_gitignore</b>:<br>Program Control - <a href="1-pc.html#SP7_4_1">§7.4.1</a></span></button></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">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">prototype</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP2">Filenames::in_folder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">path_to_web</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"gitignorescript.txt"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (!(</span><span class="functiontext"><a href="4-tf.html#SP1">TextFiles::exists</a></span><span class="plain">(</span><span class="identifier">prototype</span><span class="plain">)))</span>
|
||||
<span class="identifier">prototype</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP2">Filenames::in_folder</a></span><span class="plain">(</span><span class="identifier">path_to_inweb_materials</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"gitignorescript.txt"</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Indexer' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Indexer</b></li></ul><p class="purpose">To construct indexes of the material woven, following a template.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Indexer</b></li></ul><p class="purpose">To construct indexes of the material woven, following a template.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Cover sheets</a></li><li><a href="#SP4">§4. Full index pages</a></li><li><a href="#SP5">§5. Running the interpreter</a></li><li><a href="#SP5_2">§5.2. File handling</a></li><li><a href="#SP5_1_1">§5.1.1. The repeat stack and loops</a></li><li><a href="#SP5_1_8">§5.1.8. Variable substitutions</a></li><li><a href="#SP7">§7. Transcribing CSS</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -35,7 +40,7 @@ to call the fuller indexing service if need be, using <code class="display"><spa
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::cover_sheet_maker<button class="popup" onclick="togglePopup('usagePopup73')">...<span class="popuptext" id="usagePopup73">Usage of <b>Indexer::cover_sheet_maker</b>:<br><a href="#SP2_1_1">§2.1.1</a>, The Weaver - <a href="3-tw.html#SP1_2">§1.2</a>, <a href="3-tw.html#SP1_4">§1.4</a><br>HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP30">§30</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</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">text_stream</span><span class="plain"> *</span><span class="identifier">unextended_leafname</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::cover_sheet_maker<button class="popup" onclick="togglePopup('usagePopup72')">...<span class="popuptext" id="usagePopup72">Usage of <b>Indexer::cover_sheet_maker</b>:<br><a href="#SP2_1_1">§2.1.1</a>, The Weaver - <a href="3-tw.html#SP1_2">§1.2</a>, <a href="3-tw.html#SP1_4">§1.4</a><br>HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP30">§30</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</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">text_stream</span><span class="plain"> *</span><span class="identifier">unextended_leafname</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wt</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">halves</span><span class="plain">) {</span>
|
||||
<span class="reserved">cover_sheet_state</span><span class="plain"> </span><span class="identifier">state</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Clear the cover sheet state</span> <span class="cwebmacronumber">1.2</span>><span class="plain">;</span>
|
||||
|
@ -96,7 +101,7 @@ structure.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::scan_cover_line<button class="popup" onclick="togglePopup('usagePopup74')">...<span class="popuptext" id="usagePopup74">Usage of <b>Indexer::scan_cover_line</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">v_state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::scan_cover_line<button class="popup" onclick="togglePopup('usagePopup73')">...<span class="popuptext" id="usagePopup73">Usage of <b>Indexer::scan_cover_line</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">v_state</span><span class="plain">) {</span>
|
||||
<span class="reserved">cover_sheet_state</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain"> = (</span><span class="reserved">cover_sheet_state</span><span class="plain"> *) </span><span class="identifier">v_state</span><span class="plain">;</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain"> = </span><span class="identifier">state</span><span class="plain">-></span><span class="element">WEAVE_COVER_TO</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">include</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
|
@ -237,7 +242,7 @@ structure.
|
|||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::nav_column<button class="popup" onclick="togglePopup('usagePopup75')">...<span class="popuptext" id="usagePopup75">Usage of <b>Indexer::nav_column</b>:<br><a href="#SP2_1_2">§2.1.2</a>, <a href="#SP5_1_8">§5.1.8</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::nav_column<button class="popup" onclick="togglePopup('usagePopup74')">...<span class="popuptext" id="usagePopup74">Usage of <b>Indexer::nav_column</b>:<br><a href="#SP2_1_2">§2.1.2</a>, <a href="#SP5_1_8">§5.1.8</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">nav</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">leafname</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nav</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-tf.html#SP1">TextFiles::exists</a></span><span class="plain">(</span><span class="identifier">nav</span><span class="plain">))</span>
|
||||
|
@ -295,7 +300,7 @@ being accessed directly.
|
|||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">docs_mode</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">contents_processor</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">contents_processor</span><span class="plain"> </span><span class="functiontext">Indexer::new_processor<button class="popup" onclick="togglePopup('usagePopup76')">...<span class="popuptext" id="usagePopup76">Usage of <b>Indexer::new_processor</b>:<br><a href="#SP5">§5</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">) {</span>
|
||||
<span class="reserved">contents_processor</span><span class="plain"> </span><span class="functiontext">Indexer::new_processor<button class="popup" onclick="togglePopup('usagePopup75')">...<span class="popuptext" id="usagePopup75">Usage of <b>Indexer::new_processor</b>:<br><a href="#SP5">§5</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">) {</span>
|
||||
<span class="reserved">contents_processor</span><span class="plain"> </span><span class="identifier">cp</span><span class="plain">;</span>
|
||||
<span class="identifier">cp</span><span class="plain">.</span><span class="element">no_tlines</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="identifier">cp</span><span class="plain">.</span><span class="element">restrict_to_range</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">range</span><span class="plain">);</span>
|
||||
|
@ -317,7 +322,7 @@ being accessed directly.
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::run<button class="popup" onclick="togglePopup('usagePopup77')">...<span class="popuptext" id="usagePopup77">Usage of <b>Indexer::run</b>:<br><a href="#SP2_1_3">§2.1.3</a>, <a href="#SP3">§3</a>, The Swarm - <a href="3-ts.html#SP4">§4</a><br>HTML Formats - <a href="5-hf.html#SP20">§20</a><br>Weave Plugins - <a href="5-wp.html#SP3">§3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::run<button class="popup" onclick="togglePopup('usagePopup76')">...<span class="popuptext" id="usagePopup76">Usage of <b>Indexer::run</b>:<br><a href="#SP2_1_3">§2.1.3</a>, <a href="#SP3">§3</a>, The Swarm - <a href="3-ts.html#SP4">§4</a><br>HTML Formats - <a href="5-hf.html#SP20">§20</a><br>Weave Plugins - <a href="5-wp.html#SP3">§3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">,</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">template_filename</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">contents_page_leafname</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">, </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">nav_file</span><span class="plain">,</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">crumbs</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">docs</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">unlink_selflinks</span><span class="plain">) {</span>
|
||||
|
@ -416,7 +421,7 @@ being accessed directly.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::save_template_line<button class="popup" onclick="togglePopup('usagePopup78')">...<span class="popuptext" id="usagePopup78">Usage of <b>Indexer::save_template_line</b>:<br><a href="#SP5_2">§5.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">void_cp</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::save_template_line<button class="popup" onclick="togglePopup('usagePopup77')">...<span class="popuptext" id="usagePopup77">Usage of <b>Indexer::save_template_line</b>:<br><a href="#SP5_2">§5.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">void_cp</span><span class="plain">) {</span>
|
||||
<span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain"> = (</span><span class="reserved">contents_processor</span><span class="plain"> *) </span><span class="identifier">void_cp</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">no_tlines</span><span class="plain"> < </span><span class="constant">MAX_TEMPLATE_LINES</span><span class="plain">)</span>
|
||||
<span class="identifier">cp</span><span class="plain">-></span><span class="element">tlines</span><span class="plain">[</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">no_tlines</span><span class="plain">++] = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">);</span>
|
||||
|
@ -465,8 +470,8 @@ being accessed directly.
|
|||
<span class="plain">((</span><span class="reserved">chapter</span><span class="plain"> *) </span><span class="identifier">CONTENT_IN_ITEM</span><span class="plain">(</span><span class="identifier">cp</span><span class="plain">-></span><span class="identifier">repeat_stack_threshold</span><span class="plain">[</span><span class="identifier">j</span><span class="plain">], </span><span class="reserved">chapter</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="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">repeat_stack_level</span><span class="plain">[</span><span class="identifier">j</span><span class="plain">] == </span><span class="constant">SECTION_LEVEL</span><span class="plain">)</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">" %d: %S/%S"</span><span class="plain">,</span>
|
||||
<span class="identifier">j</span><span class="plain">, ((</span><span class="reserved">section</span><span class="plain"> *) </span><span class="identifier">CONTENT_IN_ITEM</span><span class="plain">(</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">repeat_stack_variable</span><span class="plain">[</span><span class="identifier">j</span><span class="plain">], </span><span class="reserved">section</span><span class="plain">))-></span><span class="element">sect_range</span><span class="plain">,</span>
|
||||
<span class="plain">((</span><span class="reserved">section</span><span class="plain"> *) </span><span class="identifier">CONTENT_IN_ITEM</span><span class="plain">(</span><span class="identifier">cp</span><span class="plain">-></span><span class="identifier">repeat_stack_threshold</span><span class="plain">[</span><span class="identifier">j</span><span class="plain">], </span><span class="reserved">section</span><span class="plain">))-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="identifier">j</span><span class="plain">, ((</span><span class="reserved">section</span><span class="plain"> *) </span><span class="identifier">CONTENT_IN_ITEM</span><span class="plain">(</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">repeat_stack_variable</span><span class="plain">[</span><span class="identifier">j</span><span class="plain">], </span><span class="reserved">section</span><span class="plain">))-></span><span class="element">md</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">,</span>
|
||||
<span class="plain">((</span><span class="reserved">section</span><span class="plain"> *) </span><span class="identifier">CONTENT_IN_ITEM</span><span class="plain">(</span><span class="identifier">cp</span><span class="plain">-></span><span class="identifier">repeat_stack_threshold</span><span class="plain">[</span><span class="identifier">j</span><span class="plain">], </span><span class="reserved">section</span><span class="plain">))-></span><span class="element">md</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"\n"</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
@ -493,7 +498,7 @@ chapter as its value during the sole iteration.
|
|||
<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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></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">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0])) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></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_range</span><span class="plain">, </span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0])) {</span>
|
||||
<span class="functiontext"><a href="#SP5_1_7">Indexer::start_CI_loop</a></span><span class="plain">(</span><span class="identifier">cp</span><span class="plain">, </span><span class="constant">SECTION_LEVEL</span><span class="plain">, </span><span class="identifier">S_item</span><span class="plain">, </span><span class="identifier">S_item</span><span class="plain">, </span><span class="identifier">lpos</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-pm.html#SP9">Regexp::dispose_of</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">);</span>
|
||||
<span class="reserved">goto</span><span class="plain"> </span><span class="identifier">CYCLE</span><span class="plain">;</span>
|
||||
|
@ -644,7 +649,7 @@ on the stack; and similarly for <code class="display"><span class="extract">SECT
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">linked_list_item</span><span class="plain"> *</span><span class="functiontext">Indexer::heading_topmost_on_stack<button class="popup" onclick="togglePopup('usagePopup79')">...<span class="popuptext" id="usagePopup79">Usage of <b>Indexer::heading_topmost_on_stack</b>:<br><a href="#SP5_1_3">§5.1.3</a>, <a href="#SP5_1_8">§5.1.8</a></span></button></span><span class="plain">(</span><span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
|
||||
<span class="reserved">linked_list_item</span><span class="plain"> *</span><span class="functiontext">Indexer::heading_topmost_on_stack<button class="popup" onclick="togglePopup('usagePopup78')">...<span class="popuptext" id="usagePopup78">Usage of <b>Indexer::heading_topmost_on_stack</b>:<br><a href="#SP5_1_3">§5.1.3</a>, <a href="#SP5_1_8">§5.1.8</a></span></button></span><span class="plain">(</span><span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">) {</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">rstl</span><span class="plain"> = </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">stack_pointer</span><span class="plain">-1; </span><span class="identifier">rstl</span><span class="plain"> >= </span><span class="constant">0</span><span class="plain">; </span><span class="identifier">rstl</span><span class="plain">--)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">repeat_stack_level</span><span class="plain">[</span><span class="identifier">rstl</span><span class="plain">] == </span><span class="identifier">level</span><span class="plain">)</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">cp</span><span class="plain">-></span><span class="identifier">repeat_stack_variable</span><span class="plain">[</span><span class="identifier">rstl</span><span class="plain">];</span>
|
||||
|
@ -659,7 +664,7 @@ similarly for ending it by popping them again:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::start_CI_loop<button class="popup" onclick="togglePopup('usagePopup80')">...<span class="popuptext" id="usagePopup80">Usage of <b>Indexer::start_CI_loop</b>:<br><a href="#SP5_1_2">§5.1.2</a>, <a href="#SP5_1_3">§5.1.3</a></span></button></span><span class="plain">(</span><span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::start_CI_loop<button class="popup" onclick="togglePopup('usagePopup79')">...<span class="popuptext" id="usagePopup79">Usage of <b>Indexer::start_CI_loop</b>:<br><a href="#SP5_1_2">§5.1.2</a>, <a href="#SP5_1_3">§5.1.3</a></span></button></span><span class="plain">(</span><span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">,</span>
|
||||
<span class="reserved">linked_list_item</span><span class="plain"> *</span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">linked_list_item</span><span class="plain"> *</span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">pos</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">stack_pointer</span><span class="plain"> < </span><span class="constant">CI_STACK_CAPACITY</span><span class="plain">) {</span>
|
||||
<span class="identifier">cp</span><span class="plain">-></span><span class="element">repeat_stack_level</span><span class="plain">[</span><span class="identifier">cp</span><span class="plain">-></span><span class="element">stack_pointer</span><span class="plain">] = </span><span class="identifier">level</span><span class="plain">;</span>
|
||||
|
@ -669,7 +674,7 @@ similarly for ending it by popping them again:
|
|||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::end_CI_loop<button class="popup" onclick="togglePopup('usagePopup81')">...<span class="popuptext" id="usagePopup81">Usage of <b>Indexer::end_CI_loop</b>:<br><a href="#SP5_1_4">§5.1.4</a></span></button></span><span class="plain">(</span><span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::end_CI_loop<button class="popup" onclick="togglePopup('usagePopup80')">...<span class="popuptext" id="usagePopup80">Usage of <b>Indexer::end_CI_loop</b>:<br><a href="#SP5_1_4">§5.1.4</a></span></button></span><span class="plain">(</span><span class="reserved">contents_processor</span><span class="plain"> *</span><span class="identifier">cp</span><span class="plain">) {</span>
|
||||
<span class="identifier">cp</span><span class="plain">-></span><span class="element">stack_pointer</span><span class="plain">--;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -707,6 +712,10 @@ its square-bracketed parts.
|
|||
<span class="identifier">cp</span><span class="plain">-></span><span class="element">restrict_to_range</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">nav_pattern</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">nav_file</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">leafname</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Breadcrumbs"</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="5-hf.html#SP9">HTMLFormat::drop_initial_breadcrumbs</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">crumbs</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">docs_mode</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Plugins"</span><span class="plain">)) {</span>
|
||||
<span class="reserved">weave_plugin</span><span class="plain"> *</span><span class="identifier">wp</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">wp</span><span class="plain">, </span><span class="reserved">weave_plugin</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">nav_pattern</span><span class="plain">-></span><span class="element">plugins</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="5-wp.html#SP3">WeavePlugins::include</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">nav_web</span><span class="plain">, </span><span class="identifier">wp</span><span class="plain">, </span><span class="identifier">cp</span><span class="plain">-></span><span class="element">nav_pattern</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Modules"</span><span class="plain">)) {</span>
|
||||
<<span class="cwebmacro">Substitute the list of imported modules</span> <span class="cwebmacronumber">5.1.8.5</span>><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">varname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Chapter (%c+)"</span><span class="plain">)) {</span>
|
||||
|
@ -773,7 +782,7 @@ its square-bracketed parts.
|
|||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">swarm_leader</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="5-fm.html#SP37">Formats::substitute_post_processing_data</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">swarm_leader</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="5-fm.html#SP36">Formats::substitute_post_processing_data</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">swarm_leader</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"%S for complete web"</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
|
@ -797,7 +806,7 @@ its square-bracketed parts.
|
|||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">substituted</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="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Purpose"</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">substituted</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">rubric</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="5-fm.html#SP37">Formats::substitute_post_processing_data</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-></span><span class="element">ch_weave</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">)) {</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="5-fm.html#SP36">Formats::substitute_post_processing_data</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">-></span><span class="element">ch_weave</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">)) {</span>
|
||||
<span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"%S for %S"</span><span class="plain">, </span><span class="identifier">varname</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_title</span><span class="plain">);</span>
|
||||
|
@ -823,14 +832,14 @@ its square-bracketed parts.
|
|||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Purpose"</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_purpose</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Code"</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">substituted</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"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">substituted</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_range</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Lines"</span><span class="plain">)) {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"%d"</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_extent</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Source"</span><span class="plain">)) {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"%f"</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">source_file_for_section</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Page"</span><span class="plain">)) {</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">linkto</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">linkto</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"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">linkto</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_range</span><span class="plain">);</span>
|
||||
<span class="identifier">LOOP_THROUGH_TEXT</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">linkto</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">) == </span><span class="character">'/'</span><span class="plain">) || (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">) == </span><span class="character">' '</span><span class="plain">))</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP14">Str::put</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="character">'-'</span><span class="plain">);</span>
|
||||
|
@ -843,7 +852,7 @@ its square-bracketed parts.
|
|||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">denom</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_paragraphs</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">denom</span><span class="plain"> == </span><span class="constant">0</span><span class="plain">) </span><span class="identifier">denom</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"%d"</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_extent</span><span class="plain">/</span><span class="identifier">denom</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="5-fm.html#SP37">Formats::substitute_post_processing_data</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_weave</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">)) {</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="5-fm.html#SP36">Formats::substitute_post_processing_data</a></span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_weave</span><span class="plain">, </span><span class="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">)) {</span>
|
||||
<span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">substituted</span><span class="plain">, </span><span class="string">"%S for %S"</span><span class="plain">, </span><span class="identifier">varname</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>
|
||||
|
@ -879,7 +888,7 @@ its square-bracketed parts.
|
|||
<p class="inwebparagraph"><a id="SP6"></a><b>§6. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::list_module<button class="popup" onclick="togglePopup('usagePopup82')">...<span class="popuptext" id="usagePopup82">Usage of <b>Indexer::list_module</b>:<br><a href="#SP5_1_8_5">§5.1.8.5</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">module</span><span class="plain"> *</span><span class="identifier">M</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">list_this</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::list_module<button class="popup" onclick="togglePopup('usagePopup81')">...<span class="popuptext" id="usagePopup81">Usage of <b>Indexer::list_module</b>:<br><a href="#SP5_1_8_5">§5.1.8.5</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">module</span><span class="plain"> *</span><span class="identifier">M</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">list_this</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">list_this</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"<li><p>%S - "</span><span class="plain">, </span><span class="identifier">M</span><span class="plain">-></span><span class="element">module_name</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">url</span><span class="plain">);</span>
|
||||
|
@ -899,14 +908,14 @@ its square-bracketed parts.
|
|||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. Transcribing CSS. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::transcribe_CSS<button class="popup" onclick="togglePopup('usagePopup83')">...<span class="popuptext" id="usagePopup83">Usage of <b>Indexer::transcribe_CSS</b>:<br><a href="#SP2">§2</a>, <a href="#SP5_1">§5.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">CSS_file</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::transcribe_CSS<button class="popup" onclick="togglePopup('usagePopup82')">...<span class="popuptext" id="usagePopup82">Usage of <b>Indexer::transcribe_CSS</b>:<br><a href="#SP2">§2</a>, <a href="#SP5_1">§5.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">CSS_file</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"<style type=\"text/css\">\n"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-tf.html#SP5">TextFiles::read</a></span><span class="plain">(</span><span class="identifier">CSS_file</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="string">"can't open CSS file"</span><span class="plain">,</span>
|
||||
<span class="constant">TRUE</span><span class="plain">, </span><span class="functiontext"><a href="#SP7">Indexer::copy_CSS</a></span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\n</style>\n"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::copy_CSS<button class="popup" onclick="togglePopup('usagePopup84')">...<span class="popuptext" id="usagePopup84">Usage of <b>Indexer::copy_CSS</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">X</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Indexer::copy_CSS<button class="popup" onclick="togglePopup('usagePopup83')">...<span class="popuptext" id="usagePopup83">Usage of <b>Indexer::copy_CSS</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">X</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain"> = (</span><span class="reserved">text_stream</span><span class="plain"> *) </span><span class="identifier">X</span><span class="plain">;</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S\n"</span><span class="plain">, </span><span class="identifier">line</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Swarm' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Swarm</b></li></ul><p class="purpose">To feed multiple output requests to the weaver, and to present weaver results, and update indexes or contents pages.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Swarm</b></li></ul><p class="purpose">To feed multiple output requests to the weaver, and to present weaver results, and update indexes or contents pages.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Swarming</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -44,7 +49,7 @@ of Chapter 25 of "On the Banks of Plum Creek".
|
|||
<pre class="display">
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">swarm_leader</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">; </span><span class="comment"> the most inclusive one we weave</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Swarm::weave<button class="popup" onclick="togglePopup('usagePopup69')">...<span class="popuptext" id="usagePopup69">Usage of <b>Swarm::weave</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">swarm_mode</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Swarm::weave<button class="popup" onclick="togglePopup('usagePopup68')">...<span class="popuptext" id="usagePopup68">Usage of <b>Swarm::weave</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">swarm_mode</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">into</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">docs_mode</span><span class="plain">,</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">breadcrumbs</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">navigation</span><span class="plain">) {</span>
|
||||
<span class="identifier">swarm_leader</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -61,9 +66,9 @@ of Chapter 25 of "On the Banks of Plum Creek".
|
|||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">swarm_mode</span><span class="plain"> == </span><span class="constant">SWARM_SECTIONS_SWM</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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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">range</span><span class="plain">))</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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_range</span><span class="plain">, </span><span class="identifier">range</span><span class="plain">))</span>
|
||||
<span class="identifier">S</span><span class="plain">-></span><span class="element">sect_weave</span><span class="plain"> = </span><span class="functiontext"><a href="#SP2">Swarm::weave_subset</a></span><span class="plain">(</span><span class="identifier">W</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="constant">FALSE</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">to</span><span class="plain">, </span><span class="identifier">into</span><span class="plain">, </span><span class="identifier">docs_mode</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_range</span><span class="plain">, </span><span class="constant">FALSE</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">to</span><span class="plain">, </span><span class="identifier">into</span><span class="plain">, </span><span class="identifier">docs_mode</span><span class="plain">,</span>
|
||||
<span class="identifier">breadcrumbs</span><span class="plain">, </span><span class="identifier">navigation</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
|
@ -80,7 +85,7 @@ the call comes from Program Control).
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="functiontext">Swarm::weave_subset<button class="popup" onclick="togglePopup('usagePopup70')">...<span class="popuptext" id="usagePopup70">Usage of <b>Swarm::weave_subset</b>:<br><a href="#SP1">§1</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">open_afterwards</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="functiontext">Swarm::weave_subset<button class="popup" onclick="togglePopup('usagePopup69')">...<span class="popuptext" id="usagePopup69">Usage of <b>Swarm::weave_subset</b>:<br><a href="#SP1">§1</a>, Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">open_afterwards</span><span class="plain">,</span>
|
||||
<span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">, </span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">into</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">docs_mode</span><span class="plain">,</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">breadcrumbs</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">navigation</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wt</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -89,7 +94,7 @@ the call comes from Program Control).
|
|||
<<span class="cwebmacro">Compile a set of instructions for the weaver</span> <span class="cwebmacronumber">2.2</span>><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="3-tw.html#SP1">Weaver::weave_source</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">wt</span><span class="plain">) == </span><span class="constant">0</span><span class="plain">) </span><span class="comment"> i.e., the number of lines woven was zero</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP2">Errors::fatal</a></span><span class="plain">(</span><span class="string">"empty weave request"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP34">Formats::post_process_weave</a></span><span class="plain">(</span><span class="identifier">wt</span><span class="plain">, </span><span class="identifier">open_afterwards</span><span class="plain">); </span><span class="comment"> e.g., run through TeX</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP33">Formats::post_process_weave</a></span><span class="plain">(</span><span class="identifier">wt</span><span class="plain">, </span><span class="identifier">open_afterwards</span><span class="plain">); </span><span class="comment"> e.g., run through TeX</span>
|
||||
<<span class="cwebmacro">Report on the outcome of the weave to the console</span> <span class="cwebmacronumber">2.3</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">wt</span><span class="plain">;</span>
|
||||
|
@ -129,7 +134,7 @@ the call comes from Program Control).
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure weave_target is accessed in 1/ptt, 3/ti, 3/tw, 4/is, 5/fm, 5/tf, 5/hf, 5/rtt and here.</p>
|
||||
<p class="endnote">The structure weave_target is accessed in 1/ptt, 3/ti, 3/tw, 4/is, 5/fm, 5/tf, 5/hf, 5/rtt, 6/cln and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2_2"></a><b>§2.2. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Compile a set of instructions for the weaver</span> <span class="cwebmacronumber">2.2</span>> =
|
||||
|
@ -164,7 +169,7 @@ the call comes from Program Control).
|
|||
<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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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">wt</span><span class="plain">-></span><span class="element">weave_range</span><span class="plain">))</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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_range</span><span class="plain">, </span><span class="identifier">wt</span><span class="plain">-></span><span class="element">weave_range</span><span class="plain">))</span>
|
||||
<span class="identifier">has_content</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">has_content</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP2">Errors::fatal</a></span><span class="plain">(</span><span class="string">"no sections match that range"</span><span class="plain">);</span>
|
||||
|
@ -269,7 +274,7 @@ and details of any cover-sheet to use.
|
|||
|
||||
<pre class="displaydefn">
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"[%S: %S -> %f"</span><span class="plain">, </span><span class="identifier">wt</span><span class="plain">-></span><span class="element">booklet_title</span><span class="plain">, </span><span class="identifier">wt</span><span class="plain">-></span><span class="element">format</span><span class="plain">-></span><span class="element">format_name</span><span class="plain">, </span><span class="identifier">wt</span><span class="plain">-></span><span class="element">weave_to</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP35">Formats::report_on_post_processing</a></span><span class="plain">(</span><span class="identifier">wt</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP34">Formats::report_on_post_processing</a></span><span class="plain">(</span><span class="identifier">wt</span><span class="plain">);</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">"]\n"</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
|
@ -280,7 +285,7 @@ and details of any cover-sheet to use.
|
|||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Swarm::ensure_plugin<button class="popup" onclick="togglePopup('usagePopup71')">...<span class="popuptext" id="usagePopup71">Usage of <b>Swarm::ensure_plugin</b>:<br>HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP10_3">§10.3</a>, <a href="5-hf.html#SP13">§13</a>, <a href="5-hf.html#SP14">§14</a>, <a href="5-hf.html#SP15">§15</a></span></button></span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wt</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Swarm::ensure_plugin<button class="popup" onclick="togglePopup('usagePopup70')">...<span class="popuptext" id="usagePopup70">Usage of <b>Swarm::ensure_plugin</b>:<br>HTML Formats - <a href="5-hf.html#SP6">§6</a>, <a href="5-hf.html#SP10_3">§10.3</a>, <a href="5-hf.html#SP13">§13</a>, <a href="5-hf.html#SP14">§14</a>, <a href="5-hf.html#SP15">§15</a></span></button></span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wt</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_plugin</span><span class="plain"> *</span><span class="identifier">existing</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">existing</span><span class="plain">, </span><span class="reserved">weave_plugin</span><span class="plain">, </span><span class="identifier">wt</span><span class="plain">-></span><span class="element">plugins</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq_insensitive</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">existing</span><span class="plain">-></span><span class="element">plugin_name</span><span class="plain">))</span>
|
||||
|
@ -298,7 +303,7 @@ generic <code class="display"><span class="extract">index.html</span></code> if
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Swarm::weave_index_templates<button class="popup" onclick="togglePopup('usagePopup72')">...<span class="popuptext" id="usagePopup72">Usage of <b>Swarm::weave_index_templates</b>:<br><a href="#SP1">§1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Swarm::weave_index_templates<button class="popup" onclick="togglePopup('usagePopup71')">...<span class="popuptext" id="usagePopup71">Usage of <b>Swarm::weave_index_templates</b>:<br><a href="#SP1">§1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">range</span><span class="plain">, </span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">self_contained</span><span class="plain">, </span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">into</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">crumbs</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">docs</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (!(</span><span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::data_exists</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Version Number"</span><span class="plain">)))</span>
|
||||
<span class="functiontext"><a href="8-bdfw.html#SP7">Bibliographic::set_datum</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Version Number"</span><span class="plain">, </span><span class="identifier">I</span><span class="string">" "</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Tangler' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Tangler</b></li></ul><p class="purpose">To transcribe a version of the text in the web into a form which can be compiled as a program.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Tangler</b></li></ul><p class="purpose">To transcribe a version of the text in the web into a form which can be compiled as a program.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. The Master Tangler</a></li><li><a href="#SP3">§3. The Code Tangler</a></li><li><a href="#SP4">§4. Prinary target</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -37,7 +42,7 @@ here for the tangling to begin...
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tangler::go<button class="popup" onclick="togglePopup('usagePopup89')">...<span class="popuptext" id="usagePopup89">Usage of <b>Tangler::go</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a></span></button></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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">dest_file</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tangler::go<button class="popup" onclick="togglePopup('usagePopup88')">...<span class="popuptext" id="usagePopup88">Usage of <b>Tangler::go</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a></span></button></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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">dest_file</span><span class="plain">) {</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">lang</span><span class="plain"> = </span><span class="identifier">target</span><span class="plain">-></span><span class="element">tangle_language</span><span class="plain">;</span>
|
||||
<span class="identifier">PRINT</span><span class="plain">(</span><span class="string">" tangling <%/f> (written in %S)\n"</span><span class="plain">, </span><span class="identifier">dest_file</span><span class="plain">, </span><span class="identifier">lang</span><span class="plain">-></span><span class="element">language_name</span><span class="plain">);</span>
|
||||
|
||||
|
@ -182,7 +187,7 @@ something quirky has been done to support a language feature.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tangler::tangle_paragraph<button class="popup" onclick="togglePopup('usagePopup90')">...<span class="popuptext" id="usagePopup90">Usage of <b>Tangler::tangle_paragraph</b>:<br><a href="#SP1_1">§1.1</a>, <a href="#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tangler::tangle_paragraph<button class="popup" onclick="togglePopup('usagePopup89')">...<span class="popuptext" id="usagePopup89">Usage of <b>Tangler::tangle_paragraph</b>:<br><a href="#SP1_1">§1.1</a>, <a href="#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="2-tgs.html#SP7">Tags::open_ifdefs</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">contiguous</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain"> = </span><span class="identifier">P</span><span class="plain">-></span><span class="element">first_line_in_paragraph</span><span class="plain">;</span>
|
||||
|
@ -232,7 +237,7 @@ Almost all of the time, it simply prints <code class="display"><span class="extr
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tangler::tangle_code<button class="popup" onclick="togglePopup('usagePopup91')">...<span class="popuptext" id="usagePopup91">Usage of <b>Tangler::tangle_code</b>:<br><a href="#SP2">§2</a>, <a href="#SP3_1">§3.1</a>, <a href="#SP3_2">§3.2</a>, ACME Support - <a href="4-as.html#SP3">§3</a><br>C-Like Languages - <a href="4-cl.html#SP5">§5</a><br>InC Support - <a href="4-is.html#SP9_1_2_1">§9.1.2.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Tangler::tangle_code<button class="popup" onclick="togglePopup('usagePopup90')">...<span class="popuptext" id="usagePopup90">Usage of <b>Tangler::tangle_code</b>:<br><a href="#SP2">§2</a>, <a href="#SP3_1">§3.1</a>, <a href="#SP3_2">§3.2</a>, ACME Support - <a href="4-as.html#SP3">§3</a><br>C-Like Languages - <a href="4-cl.html#SP5">§5</a><br>InC Support - <a href="4-is.html#SP9_1_2_1">§9.1.2.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">mlen</span><span class="plain">, </span><span class="identifier">slen</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">mpos</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP3">Regexp::find_expansion</a></span><span class="plain">(</span><span class="identifier">original</span><span class="plain">, </span><span class="character">'@'</span><span class="plain">, </span><span class="character">'<'</span><span class="plain">, </span><span class="character">'@'</span><span class="plain">, </span><span class="character">'>'</span><span class="plain">, &</span><span class="identifier">mlen</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">spos</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP3">Regexp::find_expansion</a></span><span class="plain">(</span><span class="identifier">original</span><span class="plain">, </span><span class="character">'['</span><span class="plain">, </span><span class="character">'['</span><span class="plain">, </span><span class="character">']'</span><span class="plain">, </span><span class="character">']'</span><span class="plain">, &</span><span class="identifier">slen</span><span class="plain">);</span>
|
||||
|
@ -367,7 +372,7 @@ passes straight through. So <code class="display"><span class="extract">[[water]
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">tangle_target</span><span class="plain"> *</span><span class="functiontext">Tangler::primary_target<button class="popup" onclick="togglePopup('usagePopup92')">...<span class="popuptext" id="usagePopup92">Usage of <b>Tangler::primary_target</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a><br>The Analyser - <a href="3-ta.html#SP4">§4</a>, <a href="3-ta.html#SP4_1">§4.1</a><br>ACME Support - <a href="4-as.html#SP4">§4</a>, <a href="4-as.html#SP5">§5</a><br>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a>, <a href="4-cl.html#SP3">§3</a>, <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_4">§6.4</a><br>InC Support - <a href="4-is.html#SP3">§3</a>, <a href="4-is.html#SP6">§6</a>, <a href="4-is.html#SP7">§7</a></span></button></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">tangle_target</span><span class="plain"> *</span><span class="functiontext">Tangler::primary_target<button class="popup" onclick="togglePopup('usagePopup91')">...<span class="popuptext" id="usagePopup91">Usage of <b>Tangler::primary_target</b>:<br>Program Control - <a href="1-pc.html#SP7_4_2">§7.4.2</a><br>The Analyser - <a href="3-ta.html#SP4">§4</a>, <a href="3-ta.html#SP4_1">§4.1</a><br>ACME Support - <a href="4-as.html#SP4">§4</a>, <a href="4-as.html#SP5">§5</a><br>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a>, <a href="4-cl.html#SP3">§3</a>, <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_4">§6.4</a><br>InC Support - <a href="4-is.html#SP3">§3</a>, <a href="4-is.html#SP6">§6</a>, <a href="4-is.html#SP7">§7</a></span></button></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">if</span><span class="plain"> (</span><span class="identifier">W</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no such web"</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">FIRST_IN_LINKED_LIST</span><span class="plain">(</span><span class="reserved">tangle_target</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-></span><span class="element">tangle_targets</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Weaver' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Weaver</b></li></ul><p class="purpose">To weave a portion of the code into instructions for TeX.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#3">Chapter 3: Outputs</a></li><li><b>The Weaver</b></li></ul><p class="purpose">To weave a portion of the code into instructions for TeX.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. The Master Weaver</a></li><li><a href="#SP1_3_1">§1.3.1. The state</a></li><li><a href="#SP1_3_4">§1.3.4. Weaving a section</a></li><li><a href="#SP1_3_4_1_1">§1.3.4.1.1. Reasons to skip things</a></li><li><a href="#SP1_3_4_1_3">§1.3.4.1.3. Headings</a></li><li><a href="#SP1_3_4_1_8">§1.3.4.1.8. Commentary matter</a></li><li><a href="#SP1_3_4_1_9">§1.3.4.1.9. Code-like matter</a></li><li><a href="#SP1_3_4_1_10">§1.3.4.1.10. How paragraphs begin</a></li><li><a href="#SP1_3_4_2">§1.3.4.2. How paragraphs end</a></li><li><a href="#SP2">§2. Endnotes</a></li><li><a href="#SP4">§4. Section tables of contents</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -40,7 +45,7 @@ where to put the result: and so we arrive at the front door of the routine
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Weaver::weave_source<button class="popup" onclick="togglePopup('usagePopup85')">...<span class="popuptext" id="usagePopup85">Usage of <b>Weaver::weave_source</b>:<br>The Swarm - <a href="3-ts.html#SP2">§2</a></span></button></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">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Weaver::weave_source<button class="popup" onclick="togglePopup('usagePopup84')">...<span class="popuptext" id="usagePopup84">Usage of <b>Weaver::weave_source</b>:<br>The Swarm - <a href="3-ts.html#SP2">§2</a></span></button></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">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> </span><span class="identifier">TO_struct</span><span class="plain">;</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain"> = &</span><span class="identifier">TO_struct</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">STREAM_OPEN_TO_FILE</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="identifier">weave_to</span><span class="plain">, </span><span class="constant">UTF8_ENC</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
|
@ -108,7 +113,7 @@ where to put the result: and so we arrive at the front door of the routine
|
|||
<span class="reserved">if</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="identifier">imported</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">chaptermark</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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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">wv</span><span class="plain">-></span><span class="element">weave_range</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-tr.html#SP10">Reader::range_within</a></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_range</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">weave_range</span><span class="plain">)) {</span>
|
||||
<span class="identifier">latest_section</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Wipe the slate clean of footnotes</span> <span class="cwebmacronumber">1.3.3</span>><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="4-lm.html#SP22">LanguageMethods::begin_weave</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">);</span>
|
||||
|
@ -145,7 +150,7 @@ where to put the result: and so we arrive at the front door of the routine
|
|||
<pre class="displaydefn">
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">rennab</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">rennab</span><span class="plain">, </span><span class="string">"End of weave"</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP33">Formats::tail</a></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="identifier">rennab</span><span class="plain">, </span><span class="identifier">latest_section</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP32">Formats::tail</a></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="identifier">rennab</span><span class="plain">, </span><span class="identifier">latest_section</span><span class="plain">);</span>
|
||||
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">rennab</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
|
@ -739,8 +744,7 @@ and macro usage is rendered differently.
|
|||
<span class="identifier">W</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">concluding_comment</span><span class="plain">)) </span><span class="reserved">continue</span><span class="plain">;</span>
|
||||
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">colouring</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-lm.html#SP25">LanguageMethods::syntax_colour</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="plain"> </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-lm.html#SP25">LanguageMethods::syntax_colour</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">found</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Find macro usages and adjust syntax colouring accordingly</span> <span class="cwebmacronumber">1.3.4.1.9.6</span>><span class="plain">;</span>
|
||||
|
@ -1043,7 +1047,7 @@ in TeX's deeply peculiar font encoding system.
|
|||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">weight</span><span class="plain"> == </span><span class="constant">2</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">sectionmark</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="identifier">text_operand</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">pattern</span><span class="plain">-></span><span class="element">show_abbrevs</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) </span><span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">chaptermark</span><span class="plain">);</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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="constant">0</span><span class="plain">) </span><span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">chaptermark</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="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></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_range</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) </span><span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">chaptermark</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_range</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">chaptermark</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP15">Str::clear</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">sectionmark</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">sectionmark</span><span class="plain">, </span><span class="string">" - %S"</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="element">text_operand</span><span class="plain">);</span>
|
||||
|
@ -1222,7 +1226,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Weaver::show_endnotes_on_previous_paragraph<button class="popup" onclick="togglePopup('usagePopup86')">...<span class="popuptext" id="usagePopup86">Usage of <b>Weaver::show_endnotes_on_previous_paragraph</b>:<br><a href="#SP1_3_4_2">§1.3.4.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Weaver::show_endnotes_on_previous_paragraph<button class="popup" onclick="togglePopup('usagePopup85')">...<span class="popuptext" id="usagePopup85">Usage of <b>Weaver::show_endnotes_on_previous_paragraph</b>:<br><a href="#SP1_3_4_2">§1.3.4.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="2-tgs.html#SP7">Tags::show_endnote_on_ifdefs</a></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="identifier">P</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">-></span><span class="element">defines_macro</span><span class="plain">)</span>
|
||||
|
@ -1244,7 +1248,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"This code is "</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">ct</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">macro_usage</span><span class="plain"> *</span><span class="identifier">mu</span><span class="plain">;</span>
|
||||
|
@ -1261,7 +1265,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"used in "</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP32">Formats::locale</a></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="identifier">mu</span><span class="plain">-></span><span class="element">used_in_paragraph</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::locale</a></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="identifier">mu</span><span class="plain">-></span><span class="element">used_in_paragraph</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="identifier">used_flag</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">; </span><span class="identifier">k</span><span class="plain">++;</span>
|
||||
<span class="reserved">switch</span><span class="plain"> (</span><span class="identifier">mu</span><span class="plain">-></span><span class="element">multiplicity</span><span class="plain">) {</span>
|
||||
<span class="reserved">case</span><span class="plain"> </span><span class="constant">1</span><span class="plain">: </span><span class="reserved">break</span><span class="plain">;</span>
|
||||
|
@ -1280,7 +1284,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"."</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -1294,9 +1298,9 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">fn</span><span class="plain">-></span><span class="element">usage_described</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP3">Weaver::show_function_usage</a></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="identifier">P</span><span class="plain">, </span><span class="identifier">fn</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
|
@ -1310,7 +1314,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">1</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"The structure "</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">st</span><span class="plain">-></span><span class="element">structure_name</span><span class="plain">);</span>
|
||||
|
||||
|
@ -1342,12 +1346,12 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
<span class="identifier">LOOP_OVER</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="reserved">if</span><span class="plain"> ((</span><span class="identifier">S</span><span class="plain">-></span><span class="element">scratch_flag</span><span class="plain">) && (</span><span class="identifier">S</span><span class="plain"> != </span><span class="identifier">P</span><span class="plain">-></span><span class="element">under_section</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">c</span><span class="plain">++ > </span><span class="constant">0</span><span class="plain">) </span><span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">", "</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">S</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">S</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">-></span><span class="element">under_section</span><span class="plain">-></span><span class="element">scratch_flag</span><span class="plain">) </span><span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">" and here"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">"."</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP30">Formats::endnote</a></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="constant">2</span><span class="plain">);</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
@ -1357,7 +1361,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Weaver::show_function_usage<button class="popup" onclick="togglePopup('usagePopup87')">...<span class="popuptext" id="usagePopup87">Usage of <b>Weaver::show_function_usage</b>:<br><a href="#SP2_2">§2.2</a>, HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Weaver::show_function_usage<button class="popup" onclick="togglePopup('usagePopup86')">...<span class="popuptext" id="usagePopup86">Usage of <b>Weaver::show_function_usage</b>:<br><a href="#SP2_2">§2.2</a>, HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">,</span>
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="identifier">fn</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">as_list</span><span class="plain">) {</span>
|
||||
<span class="identifier">fn</span><span class="plain">-></span><span class="element">usage_described</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> =</span>
|
||||
|
@ -1422,7 +1426,7 @@ structure usage, or how <code class="display"><span class="extract">CWEB</span><
|
|||
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">" - "</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">count_under</span><span class="plain">++ > </span><span class="constant">0</span><span class="plain">) </span><span class="functiontext"><a href="5-fm.html#SP27">Formats::text</a></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="identifier">I</span><span class="string">", "</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP32">Formats::locale</a></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="identifier">hteu</span><span class="plain">-></span><span class="element">usage_recorded_at</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP31">Formats::locale</a></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="identifier">hteu</span><span class="plain">-></span><span class="element">usage_recorded_at</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="identifier">last_cited_in</span><span class="plain"> = </span><span class="identifier">hteu</span><span class="plain">-></span><span class="element">usage_recorded_at</span><span class="plain">-></span><span class="element">under_section</span><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
|
@ -1435,7 +1439,7 @@ marked as <code class="display"><span class="extract">@h</span></code> headings.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Weaver::weave_table_of_contents<button class="popup" onclick="togglePopup('usagePopup88')">...<span class="popuptext" id="usagePopup88">Usage of <b>Weaver::weave_table_of_contents</b>:<br><a href="#SP1_3_4_1_3">§1.3.4.1.3</a>, <a href="#SP1_3_4_1_4">§1.3.4.1.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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="reserved">int</span><span class="plain"> </span><span class="functiontext">Weaver::weave_table_of_contents<button class="popup" onclick="togglePopup('usagePopup87')">...<span class="popuptext" id="usagePopup87">Usage of <b>Weaver::weave_table_of_contents</b>:<br><a href="#SP1_3_4_1_3">§1.3.4.1.3</a>, <a href="#SP1_3_4_1_4">§1.3.4.1.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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="reserved">int</span><span class="plain"> </span><span class="identifier">noteworthy</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">paragraphs</span><span class="plain">)</span>
|
||||
|
@ -1443,7 +1447,7 @@ marked as <code class="display"><span class="extract">@h</span></code> headings.
|
|||
<span class="identifier">noteworthy</span><span class="plain">++;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">noteworthy</span><span class="plain"> == </span><span class="constant">0</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
|
||||
<span class="functiontext"><a href="5-fm.html#SP6">Formats::toc</a></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="constant">1</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">I</span><span class="string">""</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="5-fm.html#SP6">Formats::toc</a></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="constant">1</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_range</span><span class="plain">, </span><span class="identifier">I</span><span class="string">""</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="identifier">noteworthy</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">-></span><span class="element">paragraphs</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">P</span><span class="plain">-></span><span class="element">weight</span><span class="plain"> > </span><span class="constant">0</span><span class="plain">) && ((</span><span class="identifier">S</span><span class="plain">-></span><span class="element">barred</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) || (</span><span class="identifier">P</span><span class="plain">-></span><span class="element">above_bar</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">))) {</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'ACME Support' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>ACME Support</b></li></ul><p class="purpose">For generic programming languages by the ACME corporation.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>ACME Support</b></li></ul><p class="purpose">For generic programming languages by the ACME corporation.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. One Dozen ACME Explosive Tennis Balls</a></li><li><a href="#SP3">§3. Tangling methods</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -41,7 +46,7 @@ actually called ACME: the 6502 assembler of the same name.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::add_fallbacks<button class="popup" onclick="togglePopup('usagePopup151')">...<span class="popuptext" id="usagePopup151">Usage of <b>ACMESupport::add_fallbacks</b>:<br>Programming Languages - <a href="4-pl.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::add_fallbacks<button class="popup" onclick="togglePopup('usagePopup150')">...<span class="popuptext" id="usagePopup150">Usage of <b>ACMESupport::add_fallbacks</b>:<br>Programming Languages - <a href="4-pl.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-mth.html#SP6">Methods::provided</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">-></span><span class="identifier">methods</span><span class="plain">, </span><span class="constant">PARSE_TYPES_PAR_MTID</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
<span class="identifier">METHOD_ADD</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PARSE_TYPES_PAR_MTID</span><span class="plain">, </span><span class="functiontext"><a href="#SP4">ACMESupport::parse_types</a></span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-mth.html#SP6">Methods::provided</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">-></span><span class="identifier">methods</span><span class="plain">, </span><span class="constant">PARSE_FUNCTIONS_PAR_MTID</span><span class="plain">) == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
|
@ -87,7 +92,7 @@ files to crash Inweb.)
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::expand<button class="popup" onclick="togglePopup('usagePopup152')">...<span class="popuptext" id="usagePopup152">Usage of <b>ACMESupport::expand</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">prototype</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::expand<button class="popup" onclick="togglePopup('usagePopup151')">...<span class="popuptext" id="usagePopup151">Usage of <b>ACMESupport::expand</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">prototype</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">S</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">prototype</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"><</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">prototype</span><span class="plain">); </span><span class="identifier">i</span><span class="plain">++) {</span>
|
||||
|
@ -114,22 +119,22 @@ files to crash Inweb.)
|
|||
<p class="inwebparagraph"><a id="SP3"></a><b>§3. Tangling methods. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::shebang<button class="popup" onclick="togglePopup('usagePopup153')">...<span class="popuptext" id="usagePopup153">Usage of <b>ACMESupport::shebang</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::shebang<button class="popup" onclick="togglePopup('usagePopup152')">...<span class="popuptext" id="usagePopup152">Usage of <b>ACMESupport::shebang</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">shebang</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::before_macro_expansion<button class="popup" onclick="togglePopup('usagePopup154')">...<span class="popuptext" id="usagePopup154">Usage of <b>ACMESupport::before_macro_expansion</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::before_macro_expansion<button class="popup" onclick="togglePopup('usagePopup153')">...<span class="popuptext" id="usagePopup153">Usage of <b>ACMESupport::before_macro_expansion</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">before_macro_expansion</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::after_macro_expansion<button class="popup" onclick="togglePopup('usagePopup155')">...<span class="popuptext" id="usagePopup155">Usage of <b>ACMESupport::after_macro_expansion</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::after_macro_expansion<button class="popup" onclick="togglePopup('usagePopup154')">...<span class="popuptext" id="usagePopup154">Usage of <b>ACMESupport::after_macro_expansion</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">after_macro_expansion</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::start_definition<button class="popup" onclick="togglePopup('usagePopup156')">...<span class="popuptext" id="usagePopup156">Usage of <b>ACMESupport::start_definition</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::start_definition<button class="popup" onclick="togglePopup('usagePopup155')">...<span class="popuptext" id="usagePopup155">Usage of <b>ACMESupport::start_definition</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">term</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">start</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-lm.html#SP30">LanguageMethods::supports_definitions</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">start_definition</span><span class="plain">, </span><span class="identifier">term</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
|
@ -138,7 +143,7 @@ files to crash Inweb.)
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::prolong_definition<button class="popup" onclick="togglePopup('usagePopup157')">...<span class="popuptext" id="usagePopup157">Usage of <b>ACMESupport::prolong_definition</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::prolong_definition<button class="popup" onclick="togglePopup('usagePopup156')">...<span class="popuptext" id="usagePopup156">Usage of <b>ACMESupport::prolong_definition</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">more</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-lm.html#SP30">LanguageMethods::supports_definitions</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">prolong_definition</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
|
@ -147,7 +152,7 @@ files to crash Inweb.)
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::end_definition<button class="popup" onclick="togglePopup('usagePopup158')">...<span class="popuptext" id="usagePopup158">Usage of <b>ACMESupport::end_definition</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::end_definition<button class="popup" onclick="togglePopup('usagePopup157')">...<span class="popuptext" id="usagePopup157">Usage of <b>ACMESupport::end_definition</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-lm.html#SP30">LanguageMethods::supports_definitions</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">end_definition</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
|
@ -155,25 +160,25 @@ files to crash Inweb.)
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::I6_open_ifdef<button class="popup" onclick="togglePopup('usagePopup159')">...<span class="popuptext" id="usagePopup159">Usage of <b>ACMESupport::I6_open_ifdef</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::I6_open_ifdef<button class="popup" onclick="togglePopup('usagePopup158')">...<span class="popuptext" id="usagePopup158">Usage of <b>ACMESupport::I6_open_ifdef</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">sense</span><span class="plain">) </span><span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">start_ifdef</span><span class="plain">, </span><span class="identifier">symbol</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">start_ifndef</span><span class="plain">, </span><span class="identifier">symbol</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::I6_close_ifdef<button class="popup" onclick="togglePopup('usagePopup160')">...<span class="popuptext" id="usagePopup160">Usage of <b>ACMESupport::I6_close_ifdef</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::I6_close_ifdef<button class="popup" onclick="togglePopup('usagePopup159')">...<span class="popuptext" id="usagePopup159">Usage of <b>ACMESupport::I6_close_ifdef</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">sense</span><span class="plain">) </span><span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">end_ifdef</span><span class="plain">, </span><span class="identifier">symbol</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="reserved">else</span><span class="plain"> </span><span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">end_ifndef</span><span class="plain">, </span><span class="identifier">symbol</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::insert_line_marker<button class="popup" onclick="togglePopup('usagePopup161')">...<span class="popuptext" id="usagePopup161">Usage of <b>ACMESupport::insert_line_marker</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::insert_line_marker<button class="popup" onclick="togglePopup('usagePopup160')">...<span class="popuptext" id="usagePopup160">Usage of <b>ACMESupport::insert_line_marker</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">line_marker</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">,</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">.</span><span class="identifier">line_count</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="element">source</span><span class="plain">.</span><span class="element">text_file_filename</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::comment<button class="popup" onclick="togglePopup('usagePopup162')">...<span class="popuptext" id="usagePopup162">Usage of <b>ACMESupport::comment</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::comment<button class="popup" onclick="togglePopup('usagePopup161')">...<span class="popuptext" id="usagePopup161">Usage of <b>ACMESupport::comment</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comm</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">-></span><span class="element">multiline_comment_open</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP2">ACMESupport::expand</a></span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">multiline_comment_open</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, -1, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
||||
|
@ -189,7 +194,7 @@ files to crash Inweb.)
|
|||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::parse_comment<button class="popup" onclick="togglePopup('usagePopup163')">...<span class="popuptext" id="usagePopup163">Usage of <b>ACMESupport::parse_comment</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::parse_comment<button class="popup" onclick="togglePopup('usagePopup162')">...<span class="popuptext" id="usagePopup162">Usage of <b>ACMESupport::parse_comment</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">part_before_comment</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">part_within_comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">q_mode</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">c_mode</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">non_white_space</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">c_position</span><span class="plain"> = -1, </span><span class="identifier">c_end</span><span class="plain"> = -1;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"><</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">line</span><span class="plain">); </span><span class="identifier">i</span><span class="plain">++) {</span>
|
||||
|
@ -254,7 +259,7 @@ files to crash Inweb.)
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::parse_types<button class="popup" onclick="togglePopup('usagePopup164')">...<span class="popuptext" id="usagePopup164">Usage of <b>ACMESupport::parse_types</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::parse_types<button class="popup" onclick="togglePopup('usagePopup163')">...<span class="popuptext" id="usagePopup163">Usage of <b>ACMESupport::parse_types</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">if</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="element">type_notation</span><span class="plain">[0]) {</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>
|
||||
|
@ -276,7 +281,7 @@ files to crash Inweb.)
|
|||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::parse_functions<button class="popup" onclick="togglePopup('usagePopup165')">...<span class="popuptext" id="usagePopup165">Usage of <b>ACMESupport::parse_functions</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::parse_functions<button class="popup" onclick="togglePopup('usagePopup164')">...<span class="popuptext" id="usagePopup164">Usage of <b>ACMESupport::parse_functions</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">if</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="element">function_notation</span><span class="plain">[0]) {</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>
|
||||
|
@ -301,7 +306,7 @@ a spurious comment betraying Inweb's involvement in the process.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::suppress_disclaimer<button class="popup" onclick="togglePopup('usagePopup166')">...<span class="popuptext" id="usagePopup166">Usage of <b>ACMESupport::suppress_disclaimer</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::suppress_disclaimer<button class="popup" onclick="togglePopup('usagePopup165')">...<span class="popuptext" id="usagePopup165">Usage of <b>ACMESupport::suppress_disclaimer</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">pl</span><span class="plain">-></span><span class="identifier">suppress_disclaimer</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -311,7 +316,7 @@ a spurious comment betraying Inweb's involvement in the process.
|
|||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::begin_weave<button class="popup" onclick="togglePopup('usagePopup167')">...<span class="popuptext" id="usagePopup167">Usage of <b>ACMESupport::begin_weave</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::begin_weave<button class="popup" onclick="togglePopup('usagePopup166')">...<span class="popuptext" id="usagePopup166">Usage of <b>ACMESupport::begin_weave</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">reserved_word</span><span class="plain"> *</span><span class="identifier">rw</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">rw</span><span class="plain">, </span><span class="reserved">reserved_word</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">reserved_words</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="3-ta.html#SP10">Analyser::mark_reserved_word_for_section</a></span><span class="plain">(</span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">rw</span><span class="plain">-></span><span class="element">word</span><span class="plain">, </span><span class="identifier">rw</span><span class="plain">-></span><span class="element">colour</span><span class="plain">);</span>
|
||||
|
@ -324,13 +329,13 @@ a spurious comment betraying Inweb's involvement in the process.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::reset_syntax_colouring<button class="popup" onclick="togglePopup('usagePopup168')">...<span class="popuptext" id="usagePopup168">Usage of <b>ACMESupport::reset_syntax_colouring</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">ACMESupport::reset_syntax_colouring<button class="popup" onclick="togglePopup('usagePopup167')">...<span class="popuptext" id="usagePopup167">Usage of <b>ACMESupport::reset_syntax_colouring</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="4-tp.html#SP1">Painter::reset_syntax_colouring</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::syntax_colour<button class="popup" onclick="togglePopup('usagePopup169')">...<span class="popuptext" id="usagePopup169">Usage of <b>ACMESupport::syntax_colour</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">ACMESupport::syntax_colour<button class="popup" onclick="togglePopup('usagePopup168')">...<span class="popuptext" id="usagePopup168">Usage of <b>ACMESupport::syntax_colour</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</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">L</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">;</span>
|
||||
<span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">ht</span><span class="plain"> = &(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_target</span><span class="plain">-></span><span class="element">symbols</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> == </span><span class="constant">TEXT_EXTRACT_LCAT</span><span class="plain">) && (</span><span class="identifier">pl</span><span class="plain"> != </span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">))</span>
|
||||
<span class="identifier">ht</span><span class="plain"> = &(</span><span class="identifier">pl</span><span class="plain">-></span><span class="identifier">built_in_keywords</span><span class="plain">);</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'C-Like Languages' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>C-Like Languages</b></li></ul><p class="purpose">To provide special features for the whole C family of languages.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>C-Like Languages</b></li></ul><p class="purpose">To provide special features for the whole C family of languages.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. </a></li><li><a href="#SP2">§2. Parsing</a></li><li><a href="#SP2_2">§2.2. Structure dependency</a></li><li><a href="#SP3">§3. Functions</a></li><li><a href="#SP4">§4. Subcategorisation</a></li><li><a href="#SP5">§5. Tangling extras</a></li><li><a href="#SP6">§6. Tangling predeclarations</a></li><li><a href="#SP7">§7. Overriding regular code weaving</a></li><li><a href="#SP8">§8. Analysis</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -34,7 +39,7 @@ This does:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::make_c_like<button class="popup" onclick="togglePopup('usagePopup181')">...<span class="popuptext" id="usagePopup181">Usage of <b>CLike::make_c_like</b>:<br>Programming Languages - <a href="4-pl.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::make_c_like<button class="popup" onclick="togglePopup('usagePopup180')">...<span class="popuptext" id="usagePopup180">Usage of <b>CLike::make_c_like</b>:<br>Programming Languages - <a href="4-pl.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">METHOD_ADD</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PARSE_TYPES_PAR_MTID</span><span class="plain">, </span><span class="functiontext"><a href="#SP2">CLike::parse_types</a></span><span class="plain">);</span>
|
||||
<span class="identifier">METHOD_ADD</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PARSE_FUNCTIONS_PAR_MTID</span><span class="plain">, </span><span class="functiontext"><a href="#SP3">CLike::parse_functions</a></span><span class="plain">);</span>
|
||||
<span class="identifier">METHOD_ADD</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SUBCATEGORISE_LINE_PAR_MTID</span><span class="plain">, </span><span class="functiontext"><a href="#SP4">CLike::subcategorise_code</a></span><span class="plain">);</span>
|
||||
|
@ -55,7 +60,7 @@ is run if the language is "C-like": regular C and InC both qualify.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::parse_types<button class="popup" onclick="togglePopup('usagePopup182')">...<span class="popuptext" id="usagePopup182">Usage of <b>CLike::parse_types</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">CLike::parse_types<button class="popup" onclick="togglePopup('usagePopup181')">...<span class="popuptext" id="usagePopup181">Usage of <b>CLike::parse_types</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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="cwebmacro">Find every typedef struct in the tangle</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Work out which structs contain which others</span> <span class="cwebmacronumber">2.2</span>><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -327,7 +332,7 @@ source line being scanned lies within.
|
|||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">cc_sp</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">cc_stack</span><span class="plain">[</span><span class="constant">MAX_CONDITIONAL_COMPILATION_STACK</span><span class="plain">];</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::parse_functions<button class="popup" onclick="togglePopup('usagePopup183')">...<span class="popuptext" id="usagePopup183">Usage of <b>CLike::parse_functions</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">CLike::parse_functions<button class="popup" onclick="togglePopup('usagePopup182')">...<span class="popuptext" id="usagePopup182">Usage of <b>CLike::parse_functions</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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="identifier">cc_sp</span><span class="plain"> = </span><span class="constant">0</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>
|
||||
|
@ -523,7 +528,7 @@ look for a <code class="display"><span class="extract">#include</span></code> of
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::subcategorise_code<button class="popup" onclick="togglePopup('usagePopup184')">...<span class="popuptext" id="usagePopup184">Usage of <b>CLike::subcategorise_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::subcategorise_code<button class="popup" onclick="togglePopup('usagePopup183')">...<span class="popuptext" id="usagePopup183">Usage of <b>CLike::subcategorise_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="element">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"#include <(%C+)>%c*"</span><span class="plain">)) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">library_file</span><span class="plain"> = </span><span class="identifier">mr</span><span class="plain">.</span><span class="element">exp</span><span class="plain">[0];</span>
|
||||
|
@ -556,7 +561,7 @@ platform-specific details to handle directories without POSIX in Windows.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::additional_early_matter<button class="popup" onclick="togglePopup('usagePopup185')">...<span class="popuptext" id="usagePopup185">Usage of <b>CLike::additional_early_matter</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::additional_early_matter<button class="popup" onclick="togglePopup('usagePopup184')">...<span class="popuptext" id="usagePopup184">Usage of <b>CLike::additional_early_matter</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</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_WITHIN_TANGLE</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">target</span><span class="plain">)</span>
|
||||
|
@ -578,7 +583,7 @@ structures.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::additional_predeclarations<button class="popup" onclick="togglePopup('usagePopup186')">...<span class="popuptext" id="usagePopup186">Usage of <b>CLike::additional_predeclarations</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">void</span><span class="plain"> </span><span class="functiontext">CLike::additional_predeclarations<button class="popup" onclick="togglePopup('usagePopup185')">...<span class="popuptext" id="usagePopup185">Usage of <b>CLike::additional_predeclarations</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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="cwebmacro">Predeclare the structures in a well-founded order</span> <span class="cwebmacronumber">6.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Predeclare simple typedefs</span> <span class="cwebmacronumber">6.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Predeclare the functions</span> <span class="cwebmacronumber">6.4</span>><span class="plain">;</span>
|
||||
|
@ -644,7 +649,7 @@ finished.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::tangle_structure<button class="popup" onclick="togglePopup('usagePopup187')">...<span class="popuptext" id="usagePopup187">Usage of <b>CLike::tangle_structure</b>:<br><a href="#SP6_2">§6.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::tangle_structure<button class="popup" onclick="togglePopup('usagePopup186')">...<span class="popuptext" id="usagePopup186">Usage of <b>CLike::tangle_structure</b>:<br><a href="#SP6_2">§6.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">str</span><span class="plain">-></span><span class="element">tangled</span><span class="plain"> != </span><span class="constant">FALSE</span><span class="plain">) </span><span class="reserved">return</span><span class="plain">;</span>
|
||||
<span class="identifier">str</span><span class="plain">-></span><span class="element">tangled</span><span class="plain"> = </span><span class="constant">NOT_APPLICABLE</span><span class="plain">;</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">embodied</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
@ -729,7 +734,7 @@ are all known to Inweb's hash table of interesting identifiers:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::analyse_code<button class="popup" onclick="togglePopup('usagePopup188')">...<span class="popuptext" id="usagePopup188">Usage of <b>CLike::analyse_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">CLike::analyse_code<button class="popup" onclick="togglePopup('usagePopup187')">...<span class="popuptext" id="usagePopup187">Usage of <b>CLike::analyse_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">language_function</span><span class="plain"> *</span><span class="identifier">fn</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">, </span><span class="reserved">language_function</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="3-ta.html#SP9">Analyser::find_hash_entry_for_section</a></span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">-></span><span class="element">function_header_at</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">,</span>
|
||||
|
@ -755,7 +760,7 @@ bibliographic variable, but don't do that.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">CLike::post_analysis<button class="popup" onclick="togglePopup('usagePopup189')">...<span class="popuptext" id="usagePopup189">Usage of <b>CLike::post_analysis</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">CLike::post_analysis<button class="popup" onclick="togglePopup('usagePopup188')">...<span class="popuptext" id="usagePopup188">Usage of <b>CLike::post_analysis</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">check_namespaces</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::get_datum</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">-></span><span class="element">md</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Namespaces"</span><span class="plain">), </span><span class="identifier">L</span><span class="string">"On"</span><span class="plain">)) </span><span class="identifier">check_namespaces</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="identifier">fn</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'InC Support' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>InC Support</b></li></ul><p class="purpose">To support a modest extension of C called InC.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>InC Support</b></li></ul><p class="purpose">To support a modest extension of C called InC.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Creation</a></li><li><a href="#SP3">§3. Parsing methods</a></li><li><a href="#SP3_1">§3.1. Parsing Preform grammar</a></li><li><a href="#SP3_1_1_1">§3.1.1.1. Parsing the body of Preform grammar</a></li><li><a href="#SP3_2">§3.2. Parsing I-literals</a></li><li><a href="#SP4">§4. Tangling methods</a></li><li><a href="#SP14">§14. Weaving</a></li><li><a href="#SP15">§15. Weaving methods</a></li><li><a href="#SP18">§18. Analysis methods</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -34,7 +39,7 @@ all of those methods, it has a whole lot more of its own.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::add_features<button class="popup" onclick="togglePopup('usagePopup190')">...<span class="popuptext" id="usagePopup190">Usage of <b>InCSupport::add_features</b>:<br>Programming Languages - <a href="4-pl.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::add_features<button class="popup" onclick="togglePopup('usagePopup189')">...<span class="popuptext" id="usagePopup189">Usage of <b>InCSupport::add_features</b>:<br>Programming Languages - <a href="4-pl.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">METHOD_ADD</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">FURTHER_PARSING_PAR_MTID</span><span class="plain">, </span><span class="functiontext"><a href="#SP3">InCSupport::further_parsing</a></span><span class="plain">);</span>
|
||||
|
||||
<span class="identifier">METHOD_ADD</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SUPPRESS_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="functiontext"><a href="#SP4">InCSupport::suppress_expansion</a></span><span class="plain">);</span>
|
||||
|
@ -72,7 +77,7 @@ all of those methods, it has a whole lot more of its own.
|
|||
<pre class="display">
|
||||
<span class="reserved">preform_nonterminal</span><span class="plain"> *</span><span class="identifier">alphabetical_list_of_nonterminals</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::further_parsing<button class="popup" onclick="togglePopup('usagePopup191')">...<span class="popuptext" id="usagePopup191">Usage of <b>InCSupport::further_parsing</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">InCSupport::further_parsing<button class="popup" onclick="togglePopup('usagePopup190')">...<span class="popuptext" id="usagePopup190">Usage of <b>InCSupport::further_parsing</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">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_WITHIN_TANGLE</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="functiontext"><a href="3-tt.html#SP4">Tangler::primary_target</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) {</span>
|
||||
|
@ -600,7 +605,7 @@ comment. (This avoids problems when tangling code that's been commented out.)
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::suppress_expansion<button class="popup" onclick="togglePopup('usagePopup192')">...<span class="popuptext" id="usagePopup192">Usage of <b>InCSupport::suppress_expansion</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">material</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::suppress_expansion<button class="popup" onclick="togglePopup('usagePopup191')">...<span class="popuptext" id="usagePopup191">Usage of <b>InCSupport::suppress_expansion</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">material</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">material</span><span class="plain">, </span><span class="constant">0</span><span class="plain">) == </span><span class="character">'/'</span><span class="plain">) && (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">material</span><span class="plain">, </span><span class="constant">1</span><span class="plain">) == </span><span class="character">'/'</span><span class="plain">))</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
|
@ -631,7 +636,7 @@ in any program using Preform. For the Inform project, that's done in the
|
|||
<ul class="items"><li>(b) <code class="display"><span class="extract">[[textliterals]]</span></code> tangles to code which initialises the I-literals.
|
||||
</li></ul>
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::special_tangle_command<button class="popup" onclick="togglePopup('usagePopup193')">...<span class="popuptext" id="usagePopup193">Usage of <b>InCSupport::special_tangle_command</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">me</span><span class="plain">, </span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">data</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::special_tangle_command<button class="popup" onclick="togglePopup('usagePopup192')">...<span class="popuptext" id="usagePopup192">Usage of <b>InCSupport::special_tangle_command</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">me</span><span class="plain">, </span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">data</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">data</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"nonterminals"</span><span class="plain">)) {</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"register_tangled_nonterminals();\n"</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
|
@ -661,7 +666,7 @@ all integers to zero and all pointers to <code class="display"><span class="extr
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::additional_predeclarations<button class="popup" onclick="togglePopup('usagePopup194')">...<span class="popuptext" id="usagePopup194">Usage of <b>InCSupport::additional_predeclarations</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">void</span><span class="plain"> </span><span class="functiontext">InCSupport::additional_predeclarations<button class="popup" onclick="togglePopup('usagePopup193')">...<span class="popuptext" id="usagePopup193">Usage of <b>InCSupport::additional_predeclarations</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">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_WITHIN_TANGLE</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="functiontext"><a href="3-tt.html#SP4">Tangler::primary_target</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">))</span>
|
||||
|
@ -694,7 +699,7 @@ They make use of macros and data structures defined in the Inform 7 web.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::gnabehs<button class="popup" onclick="togglePopup('usagePopup195')">...<span class="popuptext" id="usagePopup195">Usage of <b>InCSupport::gnabehs</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">void</span><span class="plain"> </span><span class="functiontext">InCSupport::gnabehs<button class="popup" onclick="togglePopup('usagePopup194')">...<span class="popuptext" id="usagePopup194">Usage of <b>InCSupport::gnabehs</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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="identifier">WRITE</span><span class="plain">(</span><span class="string">"void register_tangled_nonterminals(void) {\n"</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>
|
||||
|
@ -733,7 +738,7 @@ in a special way...
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::will_insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup196')">...<span class="popuptext" id="usagePopup196">Usage of <b>InCSupport::will_insert_in_tangle</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::will_insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup195')">...<span class="popuptext" id="usagePopup195">Usage of <b>InCSupport::will_insert_in_tangle</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> == </span><span class="constant">PREFORM_LCAT</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -764,7 +769,7 @@ same rules as for the body of any other C function.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup197')">...<span class="popuptext" id="usagePopup197">Usage of <b>InCSupport::insert_in_tangle</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup196')">...<span class="popuptext" id="usagePopup196">Usage of <b>InCSupport::insert_in_tangle</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">preform_nonterminal</span><span class="plain"> *</span><span class="identifier">pnt</span><span class="plain"> = </span><span class="identifier">L</span><span class="plain">-></span><span class="element">preform_nonterminal_defined</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">pnt</span><span class="plain">-></span><span class="element">as_function</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"int %SR(wording W, int *X, void **XP) {\n"</span><span class="plain">,</span>
|
||||
|
@ -970,7 +975,7 @@ we also provide for some other special extensions to C.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::tangle_code<button class="popup" onclick="togglePopup('usagePopup198')">...<span class="popuptext" id="usagePopup198">Usage of <b>InCSupport::tangle_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::tangle_code<button class="popup" onclick="togglePopup('usagePopup197')">...<span class="popuptext" id="usagePopup197">Usage of <b>InCSupport::tangle_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">fcall_pos</span><span class="plain"> = -1;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">; </span><span class="identifier">i</span><span class="plain"> < </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">original</span><span class="plain">); </span><span class="identifier">i</span><span class="plain">++) {</span>
|
||||
<<span class="cwebmacro">Double-colons are namespace dividers in function names</span> <span class="cwebmacronumber">10.1</span>><span class="plain">;</span>
|
||||
|
@ -1136,7 +1141,7 @@ the size of Inform 7, there's no significant gain from speeding them up
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">preform_nonterminal</span><span class="plain"> *</span><span class="functiontext">InCSupport::nonterminal_by_name<button class="popup" onclick="togglePopup('usagePopup199')">...<span class="popuptext" id="usagePopup199">Usage of <b>InCSupport::nonterminal_by_name</b>:<br><a href="#SP10_3">§10.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">preform_nonterminal</span><span class="plain"> *</span><span class="functiontext">InCSupport::nonterminal_by_name<button class="popup" onclick="togglePopup('usagePopup198')">...<span class="popuptext" id="usagePopup198">Usage of <b>InCSupport::nonterminal_by_name</b>:<br><a href="#SP10_3">§10.3</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">preform_nonterminal</span><span class="plain"> *</span><span class="identifier">pnt</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">pnt</span><span class="plain">, </span><span class="reserved">preform_nonterminal</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">pnt</span><span class="plain">-></span><span class="element">nt_name</span><span class="plain">))</span>
|
||||
|
@ -1154,7 +1159,7 @@ not by Inweb.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">InCSupport::nonterminal_variable_identifier<button class="popup" onclick="togglePopup('usagePopup200')">...<span class="popuptext" id="usagePopup200">Usage of <b>InCSupport::nonterminal_variable_identifier</b>:<br><a href="#SP10_2">§10.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">InCSupport::nonterminal_variable_identifier<button class="popup" onclick="togglePopup('usagePopup199')">...<span class="popuptext" id="usagePopup199">Usage of <b>InCSupport::nonterminal_variable_identifier</b>:<br><a href="#SP10_2">§10.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"r"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">I</span><span class="string">"most_recent_result"</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"rp"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">I</span><span class="string">"most_recent_result_p"</span><span class="plain">;</span>
|
||||
<span class="reserved">nonterminal_variable</span><span class="plain"> *</span><span class="identifier">ntv</span><span class="plain">;</span>
|
||||
|
@ -1180,7 +1185,7 @@ will read in at run-time. This is how that happens:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::additional_tangling<button class="popup" onclick="togglePopup('usagePopup201')">...<span class="popuptext" id="usagePopup201">Usage of <b>InCSupport::additional_tangling</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::additional_tangling<button class="popup" onclick="togglePopup('usagePopup200')">...<span class="popuptext" id="usagePopup200">Usage of <b>InCSupport::additional_tangling</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">NUMBER_CREATED</span><span class="plain">(</span><span class="reserved">preform_nonterminal</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext"><a href="2-tr.html#SP7">Reader::tangled_folder</a></span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">Syntax</span><span class="plain"> = </span><span class="functiontext"><a href="3-fln.html#SP2">Filenames::in_folder</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Syntax.preform"</span><span class="plain">);</span>
|
||||
|
@ -1260,7 +1265,7 @@ nonterminal definitions:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::weave_grammar_index<button class="popup" onclick="togglePopup('usagePopup202')">...<span class="popuptext" id="usagePopup202">Usage of <b>InCSupport::weave_grammar_index</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2">§1.3.4.1.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::weave_grammar_index<button class="popup" onclick="togglePopup('usagePopup201')">...<span class="popuptext" id="usagePopup201">Usage of <b>InCSupport::weave_grammar_index</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2">§1.3.4.1.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\\raggedright\\tolerance=10000"</span><span class="plain">);</span>
|
||||
<span class="reserved">preform_nonterminal</span><span class="plain"> *</span><span class="identifier">pnt</span><span class="plain">;</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="identifier">pnt</span><span class="plain"> = </span><span class="identifier">alphabetical_list_of_nonterminals</span><span class="plain">; </span><span class="identifier">pnt</span><span class="plain">;</span>
|
||||
|
@ -1269,7 +1274,7 @@ nonterminal definitions:
|
|||
<span class="string">"\\leaders\\hbox to 1em{\\hss.\\hss}\\hfill {\\xreffont %S}}\n"</span><span class="plain">,</span>
|
||||
<span class="identifier">pnt</span><span class="plain">-></span><span class="element">unangled_name</span><span class="plain">,</span>
|
||||
<span class="plain">(</span><span class="identifier">pnt</span><span class="plain">-></span><span class="element">as_function</span><span class="plain">)?</span><span class="string">" (internal)"</span><span class="plain">:</span><span class="string">""</span><span class="plain">,</span>
|
||||
<span class="identifier">pnt</span><span class="plain">-></span><span class="element">where_defined</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="identifier">pnt</span><span class="plain">-></span><span class="element">where_defined</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">sect_range</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">said_something</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">List where the nonterminal appears in other Preform declarations</span> <span class="cwebmacronumber">14.2</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">List where the nonterminal is called from Inform code</span> <span class="cwebmacronumber">14.1</span>><span class="plain">;</span>
|
||||
|
@ -1309,7 +1314,7 @@ nonterminal definitions:
|
|||
<span class="identifier">LOOP_OVER</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="reserved">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain">-></span><span class="element">scratch_flag</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">c</span><span class="plain">++ > </span><span class="constant">0</span><span class="plain">) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">", "</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"{\\xreffont %S}"</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</span><span class="plain">(</span><span class="string">"{\\xreffont %S}"</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_range</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\n\n"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -1344,7 +1349,7 @@ nonterminal definitions:
|
|||
<span class="identifier">LOOP_OVER</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="reserved">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain">-></span><span class="element">scratch_flag</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">c</span><span class="plain">++ > </span><span class="constant">0</span><span class="plain">) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">", "</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"{\\xreffont %S}"</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</span><span class="plain">(</span><span class="string">"{\\xreffont %S}"</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_range</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"\n\n"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -1361,7 +1366,7 @@ of C code which appear in <code class="display"><span class="extract">internal</
|
|||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">skipping_internal</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">preform_production_count</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::skip_in_weaving<button class="popup" onclick="togglePopup('usagePopup203')">...<span class="popuptext" id="usagePopup203">Usage of <b>InCSupport::skip_in_weaving</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::skip_in_weaving<button class="popup" onclick="togglePopup('usagePopup202')">...<span class="popuptext" id="usagePopup202">Usage of <b>InCSupport::skip_in_weaving</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">Preform_theme</span><span class="plain">) && (</span><span class="identifier">wv</span><span class="plain">-></span><span class="element">theme_match</span><span class="plain"> == </span><span class="identifier">Preform_theme</span><span class="plain">)) {</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-pm.html#SP10">Regexp::match</a></span><span class="plain">(&</span><span class="identifier">mr</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">-></span><span class="element">text</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"}%c*"</span><span class="plain">)) {</span>
|
||||
|
@ -1380,11 +1385,11 @@ of C code which appear in <code class="display"><span class="extract">internal</
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::weave_code_line<button class="popup" onclick="togglePopup('usagePopup204')">...<span class="popuptext" id="usagePopup204">Usage of <b>InCSupport::weave_code_line</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::weave_code_line<button class="popup" onclick="togglePopup('usagePopup203')">...<span class="popuptext" id="usagePopup203">Usage of <b>InCSupport::weave_code_line</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">Preform_theme</span><span class="plain">) && (</span><span class="identifier">wv</span><span class="plain">-></span><span class="element">theme_match</span><span class="plain"> == </span><span class="identifier">Preform_theme</span><span class="plain">))</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="5-fm.html#SP30">Formats::preform_document</a></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="identifier">W</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="5-fm.html#SP29">Formats::preform_document</a></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="identifier">W</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="identifier">matter</span><span class="plain">, </span><span class="identifier">concluding_comment</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -1398,7 +1403,7 @@ exists. We watch for it here:
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::new_tag_declared<button class="popup" onclick="togglePopup('usagePopup205')">...<span class="popuptext" id="usagePopup205">Usage of <b>InCSupport::new_tag_declared</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::new_tag_declared<button class="popup" onclick="togglePopup('usagePopup204')">...<span class="popuptext" id="usagePopup204">Usage of <b>InCSupport::new_tag_declared</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">tag</span><span class="plain">-></span><span class="element">tag_name</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"Preform"</span><span class="plain">)) </span><span class="identifier">Preform_theme</span><span class="plain"> = </span><span class="identifier">tag</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -1408,14 +1413,14 @@ exists. We watch for it here:
|
|||
<p class="inwebparagraph"><a id="SP18"></a><b>§18. Analysis methods. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">InCSupport::analyse_code<button class="popup" onclick="togglePopup('usagePopup206')">...<span class="popuptext" id="usagePopup206">Usage of <b>InCSupport::analyse_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">void</span><span class="plain"> </span><span class="functiontext">InCSupport::analyse_code<button class="popup" onclick="togglePopup('usagePopup205')">...<span class="popuptext" id="usagePopup205">Usage of <b>InCSupport::analyse_code</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</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">preform_nonterminal</span><span class="plain"> *</span><span class="identifier">pnt</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">pnt</span><span class="plain">, </span><span class="reserved">preform_nonterminal</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="3-ta.html#SP9">Analyser::find_hash_entry_for_section</a></span><span class="plain">(</span><span class="identifier">pnt</span><span class="plain">-></span><span class="element">where_defined</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">,</span>
|
||||
<span class="identifier">pnt</span><span class="plain">-></span><span class="element">unangled_name</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::share_element<button class="popup" onclick="togglePopup('usagePopup207')">...<span class="popuptext" id="usagePopup207">Usage of <b>InCSupport::share_element</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">elname</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">InCSupport::share_element<button class="popup" onclick="togglePopup('usagePopup206')">...<span class="popuptext" id="usagePopup206">Usage of <b>InCSupport::share_element</b>:<br><a href="#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">self</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">elname</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">elname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"word_ref1"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">elname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"word_ref2"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">elname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"next"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Language Methods' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>Language Methods</b></li></ul><p class="purpose">To characterise the relevant differences in behaviour between the various programming languages supported.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>Language Methods</b></li></ul><p class="purpose">To characterise the relevant differences in behaviour between the various programming languages supported.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Introduction</a></li><li><a href="#SP2">§2. Parsing methods</a></li><li><a href="#SP7">§7. Tangling methods</a></li><li><a href="#SP22">§22. Weaving methods</a></li><li><a href="#SP28">§28. Analysis methods</a></li><li><a href="#SP30">§30. What we support</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -66,7 +71,7 @@ need a more detailed picture.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PARSE_TYPES_PAR_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::parse_types<button class="popup" onclick="togglePopup('usagePopup116')">...<span class="popuptext" id="usagePopup116">Usage of <b>LanguageMethods::parse_types</b>:<br>The Parser - <a href="2-tp.html#SP1">§1</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::parse_types<button class="popup" onclick="togglePopup('usagePopup115')">...<span class="popuptext" id="usagePopup115">Usage of <b>LanguageMethods::parse_types</b>:<br>The Parser - <a href="2-tp.html#SP1">§1</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PARSE_TYPES_PAR_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -83,7 +88,7 @@ need a more detailed picture.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PARSE_FUNCTIONS_PAR_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::parse_functions<button class="popup" onclick="togglePopup('usagePopup117')">...<span class="popuptext" id="usagePopup117">Usage of <b>LanguageMethods::parse_functions</b>:<br>The Parser - <a href="2-tp.html#SP1">§1</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::parse_functions<button class="popup" onclick="togglePopup('usagePopup116')">...<span class="popuptext" id="usagePopup116">Usage of <b>LanguageMethods::parse_functions</b>:<br>The Parser - <a href="2-tp.html#SP1">§1</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PARSE_FUNCTIONS_PAR_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -102,7 +107,7 @@ of interest.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">FURTHER_PARSING_PAR_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::further_parsing<button class="popup" onclick="togglePopup('usagePopup118')">...<span class="popuptext" id="usagePopup118">Usage of <b>LanguageMethods::further_parsing</b>:<br>The Parser - <a href="2-tp.html#SP1">§1</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::further_parsing<button class="popup" onclick="togglePopup('usagePopup117')">...<span class="popuptext" id="usagePopup117">Usage of <b>LanguageMethods::further_parsing</b>:<br>The Parser - <a href="2-tp.html#SP1">§1</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">FURTHER_PARSING_PAR_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -122,7 +127,7 @@ otherwise never produce.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SUBCATEGORISE_LINE_PAR_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::subcategorise_line<button class="popup" onclick="togglePopup('usagePopup119')">...<span class="popuptext" id="usagePopup119">Usage of <b>LanguageMethods::subcategorise_line</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_9">§1.1.6.9</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::subcategorise_line<button class="popup" onclick="togglePopup('usagePopup118')">...<span class="popuptext" id="usagePopup118">Usage of <b>LanguageMethods::subcategorise_line</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_9">§1.1.6.9</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SUBCATEGORISE_LINE_PAR_MTID</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -143,7 +148,7 @@ within the comment into the supplied strings.
|
|||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PARSE_COMMENT_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">before</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">within</span><span class="plain">)</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::parse_comment<button class="popup" onclick="togglePopup('usagePopup120')">...<span class="popuptext" id="usagePopup120">Usage of <b>LanguageMethods::parse_comment</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9_4">§1.3.4.1.9.4</a><br>The Painter - <a href="4-tp.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::parse_comment<button class="popup" onclick="togglePopup('usagePopup119')">...<span class="popuptext" id="usagePopup119">Usage of <b>LanguageMethods::parse_comment</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_5_1_7">§1.1.6.5.1.7</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9_4">§1.3.4.1.9.4</a><br>The Painter - <a href="4-tp.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">before</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">within</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PARSE_COMMENT_TAN_MTID</span><span class="plain">, </span><span class="identifier">line</span><span class="plain">, </span><span class="identifier">before</span><span class="plain">, </span><span class="identifier">within</span><span class="plain">);</span>
|
||||
|
@ -169,7 +174,7 @@ For example, Perl prints <code class="display"><span class="extract">#!/usr/bin/
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SHEBANG_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::shebang<button class="popup" onclick="togglePopup('usagePopup121')">...<span class="popuptext" id="usagePopup121">Usage of <b>LanguageMethods::shebang</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::shebang<button class="popup" onclick="togglePopup('usagePopup120')">...<span class="popuptext" id="usagePopup120">Usage of <b>LanguageMethods::shebang</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SHEBANG_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">target</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -187,7 +192,7 @@ at tangled (therefore not original) material.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SUPPRESS_DISCLAIMER_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::disclaimer<button class="popup" onclick="togglePopup('usagePopup122')">...<span class="popuptext" id="usagePopup122">Usage of <b>LanguageMethods::disclaimer</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::disclaimer<button class="popup" onclick="togglePopup('usagePopup121')">...<span class="popuptext" id="usagePopup121">Usage of <b>LanguageMethods::disclaimer</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALLV</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SUPPRESS_DISCLAIMER_TAN_MTID</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rv</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">)</span>
|
||||
|
@ -208,7 +213,7 @@ at tangled (therefore not original) material.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">ADDITIONAL_EARLY_MATTER_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::additional_early_matter<button class="popup" onclick="togglePopup('usagePopup123')">...<span class="popuptext" id="usagePopup123">Usage of <b>LanguageMethods::additional_early_matter</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::additional_early_matter<button class="popup" onclick="togglePopup('usagePopup122')">...<span class="popuptext" id="usagePopup122">Usage of <b>LanguageMethods::additional_early_matter</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">ADDITIONAL_EARLY_MATTER_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">target</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -234,7 +239,7 @@ then subsequent lines are fed in order to <code class="display"><span class="ext
|
|||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PROLONG_DEFN_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">more</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">END_DEFN_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::start_definition<button class="popup" onclick="togglePopup('usagePopup124')">...<span class="popuptext" id="usagePopup124">Usage of <b>LanguageMethods::start_definition</b>:<br>Enumerated Constants - <a href="2-ec.html#SP4">§4</a><br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::start_definition<button class="popup" onclick="togglePopup('usagePopup123')">...<span class="popuptext" id="usagePopup123">Usage of <b>LanguageMethods::start_definition</b>:<br>Enumerated Constants - <a href="2-ec.html#SP4">§4</a><br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">term</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">start</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">START_DEFN_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">term</span><span class="plain">, </span><span class="identifier">start</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
|
@ -242,7 +247,7 @@ then subsequent lines are fed in order to <code class="display"><span class="ext
|
|||
<span class="functiontext"><a href="1-pc.html#SP8">Main::error_in_web</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"this programming language does not support @d"</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::prolong_definition<button class="popup" onclick="togglePopup('usagePopup125')">...<span class="popuptext" id="usagePopup125">Usage of <b>LanguageMethods::prolong_definition</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::prolong_definition<button class="popup" onclick="togglePopup('usagePopup124')">...<span class="popuptext" id="usagePopup124">Usage of <b>LanguageMethods::prolong_definition</b>:<br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">more</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">PROLONG_DEFN_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">more</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
|
@ -250,7 +255,7 @@ then subsequent lines are fed in order to <code class="display"><span class="ext
|
|||
<span class="functiontext"><a href="1-pc.html#SP8">Main::error_in_web</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"this programming language does not support multiline @d"</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::end_definition<button class="popup" onclick="togglePopup('usagePopup126')">...<span class="popuptext" id="usagePopup126">Usage of <b>LanguageMethods::end_definition</b>:<br>Enumerated Constants - <a href="2-ec.html#SP4">§4</a><br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::end_definition<button class="popup" onclick="togglePopup('usagePopup125')">...<span class="popuptext" id="usagePopup125">Usage of <b>LanguageMethods::end_definition</b>:<br>Enumerated Constants - <a href="2-ec.html#SP4">§4</a><br>The Tangler - <a href="3-tt.html#SP1_1_1_1">§1.1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">END_DEFN_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
|
@ -270,7 +275,7 @@ automatically predeclare all functions, obviating the need for header files.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">ADDITIONAL_PREDECLARATIONS_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::additional_predeclarations<button class="popup" onclick="togglePopup('usagePopup127')">...<span class="popuptext" id="usagePopup127">Usage of <b>LanguageMethods::additional_predeclarations</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::additional_predeclarations<button class="popup" onclick="togglePopup('usagePopup126')">...<span class="popuptext" id="usagePopup126">Usage of <b>LanguageMethods::additional_predeclarations</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">ADDITIONAL_PREDECLARATIONS_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -291,7 +296,7 @@ the more routine matter, tangling ordinary paragraphs into code.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SUPPRESS_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">material</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::allow_expansion<button class="popup" onclick="togglePopup('usagePopup128')">...<span class="popuptext" id="usagePopup128">Usage of <b>LanguageMethods::allow_expansion</b>:<br>The Tangler - <a href="3-tt.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">material</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::allow_expansion<button class="popup" onclick="togglePopup('usagePopup127')">...<span class="popuptext" id="usagePopup127">Usage of <b>LanguageMethods::allow_expansion</b>:<br>The Tangler - <a href="3-tt.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">material</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SUPPRESS_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="identifier">material</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> (</span><span class="identifier">rv</span><span class="plain">)?</span><span class="identifier">FALSE:TRUE</span><span class="plain">;</span>
|
||||
|
@ -313,7 +318,7 @@ as follows, which return <code class="display"><span class="extract">TRUE</span>
|
|||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">TANGLE_COMMAND_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">data</span><span class="plain">)</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::special_tangle_command<button class="popup" onclick="togglePopup('usagePopup129')">...<span class="popuptext" id="usagePopup129">Usage of <b>LanguageMethods::special_tangle_command</b>:<br>The Tangler - <a href="3-tt.html#SP3_2">§3.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">data</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::special_tangle_command<button class="popup" onclick="togglePopup('usagePopup128')">...<span class="popuptext" id="usagePopup128">Usage of <b>LanguageMethods::special_tangle_command</b>:<br>The Tangler - <a href="3-tt.html#SP3_2">§3.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">data</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">TANGLE_COMMAND_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">data</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain">;</span>
|
||||
|
@ -337,12 +342,12 @@ do so, we should then act on that basis.
|
|||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">WILL_TANGLE_EXTRA_LINE_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">TANGLE_EXTRA_LINE_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::will_insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup130')">...<span class="popuptext" id="usagePopup130">Usage of <b>LanguageMethods::will_insert_in_tangle</b>:<br>The Tangler - <a href="3-tt.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::will_insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup129')">...<span class="popuptext" id="usagePopup129">Usage of <b>LanguageMethods::will_insert_in_tangle</b>:<br>The Tangler - <a href="3-tt.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">WILL_TANGLE_EXTRA_LINE_TAN_MTID</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup131')">...<span class="popuptext" id="usagePopup131">Usage of <b>LanguageMethods::insert_in_tangle</b>:<br>The Tangler - <a href="3-tt.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::insert_in_tangle<button class="popup" onclick="togglePopup('usagePopup130')">...<span class="popuptext" id="usagePopup130">Usage of <b>LanguageMethods::insert_in_tangle</b>:<br>The Tangler - <a href="3-tt.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">TANGLE_EXTRA_LINE_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -362,7 +367,7 @@ from the given file; we generate this automatically.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">INSERT_LINE_MARKER_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::insert_line_marker<button class="popup" onclick="togglePopup('usagePopup132')">...<span class="popuptext" id="usagePopup132">Usage of <b>LanguageMethods::insert_line_marker</b>:<br>The Tangler - <a href="3-tt.html#SP2_1">§2.1</a>, <a href="3-tt.html#SP3_1">§3.1</a><br>C-Like Languages - <a href="4-cl.html#SP6_3">§6.3</a>, <a href="4-cl.html#SP6_4">§6.4</a><br>InC Support - <a href="4-is.html#SP6">§6</a>, <a href="4-is.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::insert_line_marker<button class="popup" onclick="togglePopup('usagePopup131')">...<span class="popuptext" id="usagePopup131">Usage of <b>LanguageMethods::insert_line_marker</b>:<br>The Tangler - <a href="3-tt.html#SP2_1">§2.1</a>, <a href="3-tt.html#SP3_1">§3.1</a><br>C-Like Languages - <a href="4-cl.html#SP6_3">§6.3</a>, <a href="4-cl.html#SP6_4">§6.4</a><br>InC Support - <a href="4-is.html#SP6">§6</a>, <a href="4-is.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">INSERT_LINE_MARKER_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -383,10 +388,10 @@ splice <code class="display"><span class="extract">{</span></code> and <code cla
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">BEFORE_MACRO_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">)</span>
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">AFTER_MACRO_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::before_macro_expansion<button class="popup" onclick="togglePopup('usagePopup133')">...<span class="popuptext" id="usagePopup133">Usage of <b>LanguageMethods::before_macro_expansion</b>:<br>The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::before_macro_expansion<button class="popup" onclick="togglePopup('usagePopup132')">...<span class="popuptext" id="usagePopup132">Usage of <b>LanguageMethods::before_macro_expansion</b>:<br>The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">BEFORE_MACRO_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pmac</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::after_macro_expansion<button class="popup" onclick="togglePopup('usagePopup134')">...<span class="popuptext" id="usagePopup134">Usage of <b>LanguageMethods::after_macro_expansion</b>:<br>The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::after_macro_expansion<button class="popup" onclick="togglePopup('usagePopup133')">...<span class="popuptext" id="usagePopup133">Usage of <b>LanguageMethods::after_macro_expansion</b>:<br>The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">AFTER_MACRO_EXPANSION_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">pmac</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -407,10 +412,10 @@ for a preprocessor to conditionally read: that is, to tangle code which contains
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">OPEN_IFDEF_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">)</span>
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">CLOSE_IFDEF_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::open_ifdef<button class="popup" onclick="togglePopup('usagePopup135')">...<span class="popuptext" id="usagePopup135">Usage of <b>LanguageMethods::open_ifdef</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a><br>The Tangler - <a href="3-tt.html#SP1_1_1">§1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::open_ifdef<button class="popup" onclick="togglePopup('usagePopup134')">...<span class="popuptext" id="usagePopup134">Usage of <b>LanguageMethods::open_ifdef</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a><br>The Tangler - <a href="3-tt.html#SP1_1_1">§1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">OPEN_IFDEF_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">symbol</span><span class="plain">, </span><span class="identifier">sense</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::close_ifdef<button class="popup" onclick="togglePopup('usagePopup136')">...<span class="popuptext" id="usagePopup136">Usage of <b>LanguageMethods::close_ifdef</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a><br>The Tangler - <a href="3-tt.html#SP1_1_1">§1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::close_ifdef<button class="popup" onclick="togglePopup('usagePopup135')">...<span class="popuptext" id="usagePopup135">Usage of <b>LanguageMethods::close_ifdef</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a><br>The Tangler - <a href="3-tt.html#SP1_1_1">§1.1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">symbol</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">sense</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">CLOSE_IFDEF_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">symbol</span><span class="plain">, </span><span class="identifier">sense</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -427,7 +432,7 @@ for a preprocessor to conditionally read: that is, to tangle code which contains
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">COMMENT_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comm</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::comment<button class="popup" onclick="togglePopup('usagePopup137')">...<span class="popuptext" id="usagePopup137">Usage of <b>LanguageMethods::comment</b>:<br><a href="#SP8">§8</a>, The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comm</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::comment<button class="popup" onclick="togglePopup('usagePopup136')">...<span class="popuptext" id="usagePopup136">Usage of <b>LanguageMethods::comment</b>:<br><a href="#SP8">§8</a>, The Tangler - <a href="3-tt.html#SP3_1">§3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comm</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">COMMENT_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">comm</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -446,7 +451,7 @@ passes the code straight through, printing <code class="display"><span class="ex
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">TANGLE_CODE_UNUSUALLY_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::tangle_code<button class="popup" onclick="togglePopup('usagePopup138')">...<span class="popuptext" id="usagePopup138">Usage of <b>LanguageMethods::tangle_code</b>:<br>The Tangler - <a href="3-tt.html#SP3">§3</a>, <a href="3-tt.html#SP3_1">§3.1</a>, <a href="3-tt.html#SP3_2">§3.2</a><br>C-Like Languages - <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_4">§6.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::tangle_code<button class="popup" onclick="togglePopup('usagePopup137')">...<span class="popuptext" id="usagePopup137">Usage of <b>LanguageMethods::tangle_code</b>:<br>The Tangler - <a href="3-tt.html#SP3">§3</a>, <a href="3-tt.html#SP3_1">§3.1</a>, <a href="3-tt.html#SP3_2">§3.2</a><br>C-Like Languages - <a href="4-cl.html#SP6_1">§6.1</a>, <a href="4-cl.html#SP6_4">§6.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">original</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">TANGLE_CODE_UNUSUALLY_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">original</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rv</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">original</span><span class="plain">);</span>
|
||||
|
@ -465,7 +470,7 @@ passes the code straight through, printing <code class="display"><span class="ex
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">GNABEHS_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::gnabehs<button class="popup" onclick="togglePopup('usagePopup139')">...<span class="popuptext" id="usagePopup139">Usage of <b>LanguageMethods::gnabehs</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::gnabehs<button class="popup" onclick="togglePopup('usagePopup138')">...<span class="popuptext" id="usagePopup138">Usage of <b>LanguageMethods::gnabehs</b>:<br>The Tangler - <a href="3-tt.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">GNABEHS_TAN_MTID</span><span class="plain">, </span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -484,7 +489,7 @@ them the opportunity.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">ADDITIONAL_TANGLING_TAN_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::additional_tangling<button class="popup" onclick="togglePopup('usagePopup140')">...<span class="popuptext" id="usagePopup140">Usage of <b>LanguageMethods::additional_tangling</b>:<br>The Tangler - <a href="3-tt.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::additional_tangling<button class="popup" onclick="togglePopup('usagePopup139')">...<span class="popuptext" id="usagePopup139">Usage of <b>LanguageMethods::additional_tangling</b>:<br>The Tangler - <a href="3-tt.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">tangle_target</span><span class="plain"> *</span><span class="identifier">target</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">ADDITIONAL_TANGLING_TAN_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">target</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -502,7 +507,7 @@ anything that the language in question might need later.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">BEGIN_WEAVE_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::begin_weave<button class="popup" onclick="togglePopup('usagePopup141')">...<span class="popuptext" id="usagePopup141">Usage of <b>LanguageMethods::begin_weave</b>:<br>The Weaver - <a href="3-tw.html#SP1_3">§1.3</a></span></button></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="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::begin_weave<button class="popup" onclick="togglePopup('usagePopup140')">...<span class="popuptext" id="usagePopup140">Usage of <b>LanguageMethods::begin_weave</b>:<br>The Weaver - <a href="3-tw.html#SP1_3">§1.3</a></span></button></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="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">S</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">, </span><span class="constant">BEGIN_WEAVE_WEA_MTID</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -519,7 +524,7 @@ anything that the language in question might need later.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SKIP_IN_WEAVING_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::skip_in_weaving<button class="popup" onclick="togglePopup('usagePopup142')">...<span class="popuptext" id="usagePopup142">Usage of <b>LanguageMethods::skip_in_weaving</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4">§1.3.4</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::skip_in_weaving<button class="popup" onclick="togglePopup('usagePopup141')">...<span class="popuptext" id="usagePopup141">Usage of <b>LanguageMethods::skip_in_weaving</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4">§1.3.4</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SKIP_IN_WEAVING_WEA_MTID</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain">;</span>
|
||||
|
@ -541,7 +546,7 @@ sake, which minimises the knock-on effect of any colouring mistakes.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">RESET_SYNTAX_COLOURING_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::reset_syntax_colouring<button class="popup" onclick="togglePopup('usagePopup143')">...<span class="popuptext" id="usagePopup143">Usage of <b>LanguageMethods::reset_syntax_colouring</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_1">§1.3.4.1.1</a>, <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a>, <a href="3-tw.html#SP1_3_4_1_10">§1.3.4.1.10</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::reset_syntax_colouring<button class="popup" onclick="togglePopup('usagePopup142')">...<span class="popuptext" id="usagePopup142">Usage of <b>LanguageMethods::reset_syntax_colouring</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_1">§1.3.4.1.1</a>, <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a>, <a href="3-tw.html#SP1_3_4_1_10">§1.3.4.1.10</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALLV</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">RESET_SYNTAX_COLOURING_WEA_MTID</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -559,17 +564,17 @@ sake, which minimises the knock-on effect of any colouring mistakes.
|
|||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">colouring_state</span><span class="plain"> = </span><span class="constant">PLAIN_COLOUR</span><span class="plain">;</span>
|
||||
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SYNTAX_COLOUR_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::syntax_colour<button class="popup" onclick="togglePopup('usagePopup144')">...<span class="popuptext" id="usagePopup144">Usage of <b>LanguageMethods::syntax_colour</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="4-sm.html#SP16">Str::copy</a></span><span class="plain">(</span><span class="identifier">colouring</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">);</span>
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SYNTAX_COLOUR_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::syntax_colour<button class="popup" onclick="togglePopup('usagePopup143')">...<span class="popuptext" id="usagePopup143">Usage of <b>LanguageMethods::syntax_colour</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">) {</span>
|
||||
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">=0; </span><span class="identifier">i</span><span class="plain"> < </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">); </span><span class="identifier">i</span><span class="plain">++) </span><span class="functiontext"><a href="4-sm.html#SP14">Str::put_at</a></span><span class="plain">(</span><span class="identifier">colouring</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">, </span><span class="constant">PLAIN_COLOUR</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">colour_as</span><span class="plain"> = </span><span class="identifier">pl</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">L</span><span class="plain">-></span><span class="element">category</span><span class="plain"> == </span><span class="constant">TEXT_EXTRACT_LCAT</span><span class="plain">) </span><span class="identifier">colour_as</span><span class="plain"> = </span><span class="identifier">L</span><span class="plain">-></span><span class="element">colour_as</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">colour_as</span><span class="plain">)</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">colour_as</span><span class="plain">, </span><span class="constant">SYNTAX_COLOUR_WEA_MTID</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="identifier">W</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">);</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">colour_as</span><span class="plain">, </span><span class="constant">SYNTAX_COLOUR_WEA_MTID</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="identifier">L</span><span class="plain">,</span>
|
||||
<span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -589,7 +594,7 @@ method has already woven something more attractive.
|
|||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">WEAVE_CODE_LINE_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::weave_code_line<button class="popup" onclick="togglePopup('usagePopup145')">...<span class="popuptext" id="usagePopup145">Usage of <b>LanguageMethods::weave_code_line</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::weave_code_line<button class="popup" onclick="togglePopup('usagePopup144')">...<span class="popuptext" id="usagePopup144">Usage of <b>LanguageMethods::weave_code_line</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">WEAVE_CODE_LINE_WEA_MTID</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="identifier">W</span><span class="plain">, </span><span class="identifier">C</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">concluding_comment</span><span class="plain">);</span>
|
||||
|
@ -609,7 +614,7 @@ method has already woven something more attractive.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">NOTIFY_NEW_TAG_WEA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::new_tag_declared<button class="popup" onclick="togglePopup('usagePopup146')">...<span class="popuptext" id="usagePopup146">Usage of <b>LanguageMethods::new_tag_declared</b>:<br>Tags - <a href="2-tgs.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::new_tag_declared<button class="popup" onclick="togglePopup('usagePopup145')">...<span class="popuptext" id="usagePopup145">Usage of <b>LanguageMethods::new_tag_declared</b>:<br>Tags - <a href="2-tgs.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">theme_tag</span><span class="plain"> *</span><span class="identifier">tag</span><span class="plain">) {</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain">)</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">NOTIFY_NEW_TAG_WEA_MTID</span><span class="plain">, </span><span class="identifier">tag</span><span class="plain">);</span>
|
||||
|
@ -639,10 +644,10 @@ colouring purposes.)
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">EARLY_PREWEAVE_ANALYSIS_ANA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">LATE_PREWEAVE_ANALYSIS_ANA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::early_preweave_analysis<button class="popup" onclick="togglePopup('usagePopup147')">...<span class="popuptext" id="usagePopup147">Usage of <b>LanguageMethods::early_preweave_analysis</b>:<br>The Analyser - <a href="3-ta.html#SP4_1">§4.1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::early_preweave_analysis<button class="popup" onclick="togglePopup('usagePopup146')">...<span class="popuptext" id="usagePopup146">Usage of <b>LanguageMethods::early_preweave_analysis</b>:<br>The Analyser - <a href="3-ta.html#SP4_1">§4.1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">EARLY_PREWEAVE_ANALYSIS_ANA_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::late_preweave_analysis<button class="popup" onclick="togglePopup('usagePopup148')">...<span class="popuptext" id="usagePopup148">Usage of <b>LanguageMethods::late_preweave_analysis</b>:<br>The Analyser - <a href="3-ta.html#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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">void</span><span class="plain"> </span><span class="functiontext">LanguageMethods::late_preweave_analysis<button class="popup" onclick="togglePopup('usagePopup147')">...<span class="popuptext" id="usagePopup147">Usage of <b>LanguageMethods::late_preweave_analysis</b>:<br>The Analyser - <a href="3-ta.html#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</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="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">LATE_PREWEAVE_ANALYSIS_ANA_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -660,7 +665,7 @@ special treatment, and this method decides which.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SHARE_ELEMENT_ANA_MTID</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">element_name</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::share_element<button class="popup" onclick="togglePopup('usagePopup149')">...<span class="popuptext" id="usagePopup149">Usage of <b>LanguageMethods::share_element</b>:<br>Types and Functions - <a href="4-taf.html#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">element_name</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::share_element<button class="popup" onclick="togglePopup('usagePopup148')">...<span class="popuptext" id="usagePopup148">Usage of <b>LanguageMethods::share_element</b>:<br>Types and Functions - <a href="4-taf.html#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">element_name</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">, </span><span class="constant">SHARE_ELEMENT_ANA_MTID</span><span class="plain">, </span><span class="identifier">element_name</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain">;</span>
|
||||
|
@ -672,7 +677,7 @@ special treatment, and this method decides which.
|
|||
<p class="inwebparagraph"><a id="SP30"></a><b>§30. What we support. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::supports_definitions<button class="popup" onclick="togglePopup('usagePopup150')">...<span class="popuptext" id="usagePopup150">Usage of <b>LanguageMethods::supports_definitions</b>:<br>ACME Support - <a href="4-as.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">LanguageMethods::supports_definitions<button class="popup" onclick="togglePopup('usagePopup149')">...<span class="popuptext" id="usagePopup149">Usage of <b>LanguageMethods::supports_definitions</b>:<br>ACME Support - <a href="4-as.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">-></span><span class="element">start_definition</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">-></span><span class="element">prolong_definition</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">-></span><span class="element">end_definition</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Programming Languages' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>Programming Languages</b></li></ul><p class="purpose">Defining the programming languages supported by Inweb, loading in their definitions from files.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>Programming Languages</b></li></ul><p class="purpose">Defining the programming languages supported by Inweb, loading in their definitions from files.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Languages</a></li><li><a href="#SP9">§9. Blocks</a></li><li><a href="#SP11">§11. Colouring Rules</a></li><li><a href="#SP14">§14. Reserved words</a></li><li><a href="#SP15">§15. Expressions</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -35,7 +40,7 @@
|
|||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="functiontext">Languages::find_by_name<button class="popup" onclick="togglePopup('usagePopup93')">...<span class="popuptext" id="usagePopup93">Usage of <b>Languages::find_by_name</b>:<br><a href="#SP3">§3</a>, The Reader - <a href="2-tr.html#SP4_2">§4.2</a>, <a href="2-tr.html#SP4_3">§4.3</a>, <a href="2-tr.html#SP4_4">§4.4</a><br>The Parser - <a href="2-tp.html#SP1_1_6_7">§1.1.6.7</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2_1">§1.3.4.1.2.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">lname</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">programming_language</span><span class="plain"> *</span><span class="functiontext">Languages::find_by_name<button class="popup" onclick="togglePopup('usagePopup92')">...<span class="popuptext" id="usagePopup92">Usage of <b>Languages::find_by_name</b>:<br><a href="#SP3">§3</a>, The Reader - <a href="2-tr.html#SP4_2">§4.2</a>, <a href="2-tr.html#SP4_3">§4.3</a>, <a href="2-tr.html#SP4_4">§4.4</a><br>The Parser - <a href="2-tp.html#SP1_1_6_7">§1.1.6.7</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2_1">§1.3.4.1.2.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">lname</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">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">;</span>
|
||||
<<span class="cwebmacro">If this is the name of a language already known, return that</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Read the language definition file with this name</span> <span class="cwebmacronumber">2.2</span>><span class="plain">;</span>
|
||||
|
@ -109,11 +114,11 @@
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="functiontext">Languages::default<button class="popup" onclick="togglePopup('usagePopup94')">...<span class="popuptext" id="usagePopup94">Usage of <b>Languages::default</b>:<br>The Reader - <a href="2-tr.html#SP4_2">§4.2</a></span></button></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">programming_language</span><span class="plain"> *</span><span class="functiontext">Languages::default<button class="popup" onclick="togglePopup('usagePopup93')">...<span class="popuptext" id="usagePopup93">Usage of <b>Languages::default</b>:<br>The Reader - <a href="2-tr.html#SP4_2">§4.2</a></span></button></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">return</span><span class="plain"> </span><span class="functiontext"><a href="#SP2">Languages::find_by_name</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"C"</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::show<button class="popup" onclick="togglePopup('usagePopup95')">...<span class="popuptext" id="usagePopup95">Usage of <b>Languages::show</b>:<br>Program Control - <a href="1-pc.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::show<button class="popup" onclick="togglePopup('usagePopup94')">...<span class="popuptext" id="usagePopup94">Usage of <b>Languages::show</b>:<br>Program Control - <a href="1-pc.html#SP7_2">§7.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"Inweb can see the following programming language definitions:\n\n"</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">NUMBER_CREATED</span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain">);</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> **</span><span class="identifier">sorted_table</span><span class="plain"> =</span>
|
||||
|
@ -135,7 +140,7 @@
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::compare_names<button class="popup" onclick="togglePopup('usagePopup96')">...<span class="popuptext" id="usagePopup96">Usage of <b>Languages::compare_names</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">const</span><span class="plain"> </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">ent1</span><span class="plain">, </span><span class="reserved">const</span><span class="plain"> </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">ent2</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::compare_names<button class="popup" onclick="togglePopup('usagePopup95')">...<span class="popuptext" id="usagePopup95">Usage of <b>Languages::compare_names</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">const</span><span class="plain"> </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">ent1</span><span class="plain">, </span><span class="reserved">const</span><span class="plain"> </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">ent2</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">tx1</span><span class="plain"> = (*((</span><span class="reserved">const</span><span class="plain"> </span><span class="reserved">programming_language</span><span class="plain"> **) </span><span class="identifier">ent1</span><span class="plain">))-></span><span class="element">language_name</span><span class="plain">;</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">tx2</span><span class="plain"> = (*((</span><span class="reserved">const</span><span class="plain"> </span><span class="reserved">programming_language</span><span class="plain"> **) </span><span class="identifier">ent2</span><span class="plain">))-></span><span class="element">language_name</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="4-sm.html#SP19">Str::cmp_insensitive</a></span><span class="plain">(</span><span class="identifier">tx1</span><span class="plain">, </span><span class="identifier">tx2</span><span class="plain">);</span>
|
||||
|
@ -148,7 +153,7 @@
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::read_definitions<button class="popup" onclick="togglePopup('usagePopup97')">...<span class="popuptext" id="usagePopup97">Usage of <b>Languages::read_definitions</b>:<br>Program Control - <a href="1-pc.html#SP7_2">§7.2</a><br>Configuration - <a href="1-cnf.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::read_definitions<button class="popup" onclick="togglePopup('usagePopup96')">...<span class="popuptext" id="usagePopup96">Usage of <b>Languages::read_definitions</b>:<br>Program Control - <a href="1-pc.html#SP7_2">§7.2</a><br>Configuration - <a href="1-cnf.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">pathname</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">P</span><span class="plain"> = </span><span class="functiontext"><a href="#SP5">Languages::default_directory</a></span><span class="plain">();</span>
|
||||
<span class="reserved">scan_directory</span><span class="plain"> *</span><span class="identifier">D</span><span class="plain"> = </span><span class="functiontext"><a href="3-drc.html#SP2">Directories::open</a></span><span class="plain">(</span><span class="identifier">P</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">leafname</span><span class="plain">);</span>
|
||||
|
@ -162,7 +167,7 @@
|
|||
<span class="functiontext"><a href="3-drc.html#SP2">Directories::close</a></span><span class="plain">(</span><span class="identifier">D</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="functiontext">Languages::default_directory<button class="popup" onclick="togglePopup('usagePopup98')">...<span class="popuptext" id="usagePopup98">Usage of <b>Languages::default_directory</b>:<br><a href="#SP2_2">§2.2</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">pathname</span><span class="plain"> *</span><span class="functiontext">Languages::default_directory<button class="popup" onclick="togglePopup('usagePopup97')">...<span class="popuptext" id="usagePopup97">Usage of <b>Languages::default_directory</b>:<br><a href="#SP2_2">§2.2</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext"><a href="3-pth.html#SP4">Pathnames::subfolder</a></span><span class="plain">(</span><span class="identifier">path_to_inweb</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"Languages"</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -235,7 +240,7 @@ currently inside.
|
|||
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">current_block</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">language_reader_state</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="functiontext">Languages::read_definition<button class="popup" onclick="togglePopup('usagePopup99')">...<span class="popuptext" id="usagePopup99">Usage of <b>Languages::read_definition</b>:<br><a href="#SP2_2">§2.2</a>, <a href="#SP5">§5</a>, Configuration - <a href="1-cnf.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="functiontext">Languages::read_definition<button class="popup" onclick="togglePopup('usagePopup98')">...<span class="popuptext" id="usagePopup98">Usage of <b>Languages::read_definition</b>:<br><a href="#SP2_2">§2.2</a>, <a href="#SP5">§5</a>, Configuration - <a href="1-cnf.html#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Initialise the language to a plain-text state</span> <span class="cwebmacronumber">7.1</span>><span class="plain">;</span>
|
||||
<span class="reserved">language_reader_state</span><span class="plain"> </span><span class="identifier">lrs</span><span class="plain">;</span>
|
||||
|
@ -329,7 +334,7 @@ adds generic method calls to give effect to the settings in the definition.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::read_definition_line<button class="popup" onclick="togglePopup('usagePopup100')">...<span class="popuptext" id="usagePopup100">Usage of <b>Languages::read_definition_line</b>:<br><a href="#SP7">§7</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">v_state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::read_definition_line<button class="popup" onclick="togglePopup('usagePopup99')">...<span class="popuptext" id="usagePopup99">Usage of <b>Languages::read_definition_line</b>:<br><a href="#SP7">§7</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">line</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">v_state</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_reader_state</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain"> = (</span><span class="reserved">language_reader_state</span><span class="plain"> *) </span><span class="identifier">v_state</span><span class="plain">;</span>
|
||||
<span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain"> = </span><span class="identifier">state</span><span class="plain">-></span><span class="element">defining</span><span class="plain">;</span>
|
||||
|
||||
|
@ -548,7 +553,7 @@ represents a complete program.
|
|||
<p class="inwebparagraph"><a id="SP10"></a><b>§10. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="functiontext">Languages::new_block<button class="popup" onclick="togglePopup('usagePopup101')">...<span class="popuptext" id="usagePopup101">Usage of <b>Languages::new_block</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_2">§13.2</a></span></button></span><span class="plain">(</span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">within</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">r</span><span class="plain">) {</span>
|
||||
<span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="functiontext">Languages::new_block<button class="popup" onclick="togglePopup('usagePopup100')">...<span class="popuptext" id="usagePopup100">Usage of <b>Languages::new_block</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_2">§13.2</a></span></button></span><span class="plain">(</span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">within</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">r</span><span class="plain">) {</span>
|
||||
<span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">block</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">colouring_language_block</span><span class="plain">);</span>
|
||||
<span class="identifier">block</span><span class="plain">-></span><span class="element">rules</span><span class="plain"> = </span><span class="identifier">NEW_LINKED_LIST</span><span class="plain">(</span><span class="reserved">colouring_rule</span><span class="plain">);</span>
|
||||
<span class="identifier">block</span><span class="plain">-></span><span class="element">parent</span><span class="plain"> = </span><span class="identifier">within</span><span class="plain">;</span>
|
||||
|
@ -615,7 +620,7 @@ little context before it (where available).
|
|||
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="functiontext">Languages::new_rule<button class="popup" onclick="togglePopup('usagePopup102')">...<span class="popuptext" id="usagePopup102">Usage of <b>Languages::new_rule</b>:<br><a href="#SP8_2">§8.2</a>, <a href="#SP13">§13</a></span></button></span><span class="plain">(</span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">within</span><span class="plain">) {</span>
|
||||
<span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="functiontext">Languages::new_rule<button class="popup" onclick="togglePopup('usagePopup101')">...<span class="popuptext" id="usagePopup101">Usage of <b>Languages::new_rule</b>:<br><a href="#SP8_2">§8.2</a>, <a href="#SP13">§13</a></span></button></span><span class="plain">(</span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">within</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">within</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"rule outside block"</span><span class="plain">);</span>
|
||||
<span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">colouring_rule</span><span class="plain">);</span>
|
||||
<span class="identifier">ADD_TO_LINKED_LIST</span><span class="plain">(</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain">, </span><span class="identifier">within</span><span class="plain">-></span><span class="element">rules</span><span class="plain">);</span>
|
||||
|
@ -644,7 +649,7 @@ little context before it (where available).
|
|||
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::parse_rule<button class="popup" onclick="togglePopup('usagePopup103')">...<span class="popuptext" id="usagePopup103">Usage of <b>Languages::parse_rule</b>:<br><a href="#SP8_2">§8.2</a></span></button></span><span class="plain">(</span><span class="reserved">language_reader_state</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">premiss</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::parse_rule<button class="popup" onclick="togglePopup('usagePopup102')">...<span class="popuptext" id="usagePopup102">Usage of <b>Languages::parse_rule</b>:<br><a href="#SP8_2">§8.2</a></span></button></span><span class="plain">(</span><span class="reserved">language_reader_state</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">premiss</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">action</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">match_results</span><span class="plain"> </span><span class="identifier">mr</span><span class="plain"> = </span><span class="functiontext"><a href="4-pm.html#SP9">Regexp::create_mr</a></span><span class="plain">();</span>
|
||||
<span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain"> = </span><span class="functiontext"><a href="#SP12">Languages::new_rule</a></span><span class="plain">(</span><span class="identifier">state</span><span class="plain">-></span><span class="element">current_block</span><span class="plain">);</span>
|
||||
|
@ -747,7 +752,7 @@ little context before it (where available).
|
|||
<span class="constant">MEMORY_MANAGEMENT</span>
|
||||
<span class="plain">} </span><span class="reserved">reserved_word</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">reserved_word</span><span class="plain"> *</span><span class="functiontext">Languages::reserved<button class="popup" onclick="togglePopup('usagePopup104')">...<span class="popuptext" id="usagePopup104">Usage of <b>Languages::reserved</b>:<br><a href="#SP8_1">§8.1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</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">C</span><span class="plain">,</span>
|
||||
<span class="reserved">reserved_word</span><span class="plain"> *</span><span class="functiontext">Languages::reserved<button class="popup" onclick="togglePopup('usagePopup103')">...<span class="popuptext" id="usagePopup103">Usage of <b>Languages::reserved</b>:<br><a href="#SP8_1">§8.1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">text_stream</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">C</span><span class="plain">,</span>
|
||||
<span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">reserved_word</span><span class="plain"> *</span><span class="identifier">rw</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">rw</span><span class="plain">, </span><span class="reserved">reserved_word</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">-></span><span class="element">reserved_words</span><span class="plain">)</span>
|
||||
|
@ -791,7 +796,7 @@ but which are not expressible in the syntax of this file.
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::colour<button class="popup" onclick="togglePopup('usagePopup105')">...<span class="popuptext" id="usagePopup105">Usage of <b>Languages::colour</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_1">§13.1</a>, <a href="#SP13_2">§13.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::colour<button class="popup" onclick="togglePopup('usagePopup104')">...<span class="popuptext" id="usagePopup104">Usage of <b>Languages::colour</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_1">§13.1</a>, <a href="#SP13_2">§13.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_first_char</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">) != </span><span class="character">'!'</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="3-em.html#SP5">Errors::in_text_file</a></span><span class="plain">(</span><span class="string">"colour names must begin with !"</span><span class="plain">, </span><span class="identifier">tfp</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">PLAIN_COLOUR</span><span class="plain">;</span>
|
||||
|
@ -820,7 +825,7 @@ but which are not expressible in the syntax of this file.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::boolean<button class="popup" onclick="togglePopup('usagePopup106')">...<span class="popuptext" id="usagePopup106">Usage of <b>Languages::boolean</b>:<br><a href="#SP8_1">§8.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::boolean<button class="popup" onclick="togglePopup('usagePopup105')">...<span class="popuptext" id="usagePopup105">Usage of <b>Languages::boolean</b>:<br><a href="#SP8_1">§8.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"true"</span><span class="plain">)) </span><span class="reserved">return</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="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="identifier">I</span><span class="string">"false"</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">else</span><span class="plain"> {</span>
|
||||
|
@ -838,7 +843,7 @@ literal backslash.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Languages::text<button class="popup" onclick="togglePopup('usagePopup107')">...<span class="popuptext" id="usagePopup107">Usage of <b>Languages::text</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_1">§13.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">allow</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Languages::text<button class="popup" onclick="togglePopup('usagePopup106')">...<span class="popuptext" id="usagePopup106">Usage of <b>Languages::text</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_1">§13.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">allow</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">V</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP2">Str::new</a></span><span class="plain">();</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">bareword</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">, </span><span class="identifier">spaced</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">, </span><span class="identifier">from</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">to</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">)-1;</span>
|
||||
|
@ -929,7 +934,7 @@ literal backslash.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::regexp<button class="popup" onclick="togglePopup('usagePopup108')">...<span class="popuptext" id="usagePopup108">Usage of <b>Languages::regexp</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_1">§13.1</a></span></button></span><span class="plain">(</span><span class="identifier">wchar_t</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Languages::regexp<button class="popup" onclick="togglePopup('usagePopup107')">...<span class="popuptext" id="usagePopup107">Usage of <b>Languages::regexp</b>:<br><a href="#SP8_1">§8.1</a>, <a href="#SP8_2">§8.2</a>, <a href="#SP13_1">§13.1</a></span></button></span><span class="plain">(</span><span class="identifier">wchar_t</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">T</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">write_to</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no buffer"</span><span class="plain">);</span>
|
||||
<span class="identifier">write_to</span><span class="plain">[0] = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">T</span><span class="plain">) > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
|
@ -979,12 +984,12 @@ literal backslash.
|
|||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::add_to_regexp<button class="popup" onclick="togglePopup('usagePopup109')">...<span class="popuptext" id="usagePopup109">Usage of <b>Languages::add_to_regexp</b>:<br>none</span></button></span><span class="plain">(</span><span class="identifier">wchar_t</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">c</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::add_to_regexp<button class="popup" onclick="togglePopup('usagePopup108')">...<span class="popuptext" id="usagePopup108">Usage of <b>Languages::add_to_regexp</b>:<br>none</span></button></span><span class="plain">(</span><span class="identifier">wchar_t</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">c</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">i</span><span class="plain"> < </span><span class="constant">MAX_ILDF_REGEXP_LENGTH</span><span class="plain">) </span><span class="identifier">write_to</span><span class="plain">[</span><span class="identifier">i</span><span class="plain">++] = </span><span class="identifier">c</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::add_escape_to_regexp<button class="popup" onclick="togglePopup('usagePopup110')">...<span class="popuptext" id="usagePopup110">Usage of <b>Languages::add_escape_to_regexp</b>:<br>none</span></button></span><span class="plain">(</span><span class="identifier">wchar_t</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">c</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Languages::add_escape_to_regexp<button class="popup" onclick="togglePopup('usagePopup109')">...<span class="popuptext" id="usagePopup109">Usage of <b>Languages::add_escape_to_regexp</b>:<br>none</span></button></span><span class="plain">(</span><span class="identifier">wchar_t</span><span class="plain"> *</span><span class="identifier">write_to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">c</span><span class="plain">) {</span>
|
||||
<span class="identifier">i</span><span class="plain"> = </span><span class="functiontext"><a href="#SP18">Languages::add_to_regexp</a></span><span class="plain">(</span><span class="identifier">write_to</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">, </span><span class="character">'%'</span><span class="plain">);</span>
|
||||
<span class="identifier">i</span><span class="plain"> = </span><span class="functiontext"><a href="#SP18">Languages::add_to_regexp</a></span><span class="plain">(</span><span class="identifier">write_to</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">, </span><span class="identifier">c</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Types and Functions' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>Types and Functions</b></li></ul><p class="purpose">Basic support for languages to recognise structure and function declarations.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>Types and Functions</b></li></ul><p class="purpose">Basic support for languages to recognise structure and function declarations.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP6">§6. Functions</a></li><li><a href="#SP8">§8. Cataloguing</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -47,14 +52,14 @@
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure language_type is accessed in 3/tw, 4/cl, 5/fm and here.</p>
|
||||
<p class="endnote">The structure language_type is accessed in 3/tw, 4/cl, 6/cln and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">first_cst_alphabetically</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="functiontext">Functions::new_struct<button class="popup" onclick="togglePopup('usagePopup111')">...<span class="popuptext" id="usagePopup111">Usage of <b>Functions::new_struct</b>:<br>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="functiontext">Functions::new_struct<button class="popup" onclick="togglePopup('usagePopup110')">...<span class="popuptext" id="usagePopup110">Usage of <b>Functions::new_struct</b>:<br>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a></span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">language_type</span><span class="plain">);</span>
|
||||
<<span class="cwebmacro">Initialise the language type structure</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="3-ta.html#SP10">Analyser::mark_reserved_word_at_line</a></span><span class="plain">(</span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">str</span><span class="plain">-></span><span class="element">structure_name</span><span class="plain">, </span><span class="constant">RESERVED_COLOUR</span><span class="plain">);</span>
|
||||
|
@ -160,7 +165,7 @@ affects the reports in the woven code about where structures are used.
|
|||
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">structure_element</span><span class="plain"> *</span><span class="functiontext">Functions::new_element<button class="popup" onclick="togglePopup('usagePopup112')">...<span class="popuptext" id="usagePopup112">Usage of <b>Functions::new_element</b>:<br>C-Like Languages - <a href="4-cl.html#SP2_1_1">§2.1.1</a></span></button></span><span class="plain">(</span><span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">elname</span><span class="plain">,</span>
|
||||
<span class="reserved">structure_element</span><span class="plain"> *</span><span class="functiontext">Functions::new_element<button class="popup" onclick="togglePopup('usagePopup111')">...<span class="popuptext" id="usagePopup111">Usage of <b>Functions::new_element</b>:<br>C-Like Languages - <a href="4-cl.html#SP2_1_1">§2.1.1</a></span></button></span><span class="plain">(</span><span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">elname</span><span class="plain">,</span>
|
||||
<span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="3-ta.html#SP10">Analyser::mark_reserved_word_at_line</a></span><span class="plain">(</span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">elname</span><span class="plain">, </span><span class="constant">ELEMENT_COLOUR</span><span class="plain">);</span>
|
||||
<span class="reserved">structure_element</span><span class="plain"> *</span><span class="identifier">elt</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">structure_element</span><span class="plain">);</span>
|
||||
|
@ -179,7 +184,7 @@ affects the reports in the woven code about where structures are used.
|
|||
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="functiontext">Functions::find_structure<button class="popup" onclick="togglePopup('usagePopup113')">...<span class="popuptext" id="usagePopup113">Usage of <b>Functions::find_structure</b>:<br>none</span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="functiontext">Functions::find_structure<button class="popup" onclick="togglePopup('usagePopup112')">...<span class="popuptext" id="usagePopup112">Usage of <b>Functions::find_structure</b>:<br>none</span></button></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">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER_LINKED_LIST</span><span class="plain">(</span><span class="identifier">str</span><span class="plain">, </span><span class="reserved">language_type</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">-></span><span class="element">language_types</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">str</span><span class="plain">-></span><span class="element">structure_name</span><span class="plain">))</span>
|
||||
|
@ -211,12 +216,12 @@ affects the reports in the woven code about where structures are used.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">The structure language_function is accessed in 3/tw, 4/cl, 5/fm and here.</p>
|
||||
<p class="endnote">The structure language_function is accessed in 3/tw, 4/cl, 5/hf, 6/cln and here.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="functiontext">Functions::new_function<button class="popup" onclick="togglePopup('usagePopup114')">...<span class="popuptext" id="usagePopup114">Usage of <b>Functions::new_function</b>:<br>ACME Support - <a href="4-as.html#SP4">§4</a>, <a href="4-as.html#SP5">§5</a><br>C-Like Languages - <a href="4-cl.html#SP3_2_2">§3.2.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fname</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="functiontext">Functions::new_function<button class="popup" onclick="togglePopup('usagePopup113')">...<span class="popuptext" id="usagePopup113">Usage of <b>Functions::new_function</b>:<br>ACME Support - <a href="4-as.html#SP4">§4</a>, <a href="4-as.html#SP5">§5</a><br>C-Like Languages - <a href="4-cl.html#SP3_2_2">§3.2.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fname</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">hash_table_entry</span><span class="plain"> *</span><span class="identifier">hte</span><span class="plain"> =</span>
|
||||
<span class="functiontext"><a href="3-ta.html#SP10">Analyser::mark_reserved_word_at_line</a></span><span class="plain">(</span><span class="identifier">L</span><span class="plain">, </span><span class="identifier">fname</span><span class="plain">, </span><span class="constant">FUNCTION_COLOUR</span><span class="plain">);</span>
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="identifier">fn</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">language_function</span><span class="plain">);</span>
|
||||
|
@ -250,6 +255,9 @@ part of the function structure. We'll need it when predeclaring the function.
|
|||
<span class="identifier">fn</span><span class="plain">-></span><span class="element">call_freely</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">fn</span><span class="plain">-></span><span class="element">function_header_at</span><span class="plain"> = </span><span class="identifier">L</span><span class="plain">;</span>
|
||||
<span class="identifier">fn</span><span class="plain">-></span><span class="element">usage_described</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext"><a href="4-sm.html#SP21">Str::eq_wide_string</a></span><span class="plain">(</span><span class="identifier">fname</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"main"</span><span class="plain">)) &&</span>
|
||||
<span class="plain">(</span><span class="identifier">L</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">-></span><span class="element">sect_language</span><span class="plain">-></span><span class="element">C_like</span><span class="plain">))</span>
|
||||
<span class="identifier">fn</span><span class="plain">-></span><span class="element">usage_described</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="identifier">fn</span><span class="plain">-></span><span class="element">no_conditionals</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">;</span>
|
||||
</pre>
|
||||
|
||||
|
@ -314,7 +322,7 @@ forms of section catalogue.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Functions::catalogue<button class="popup" onclick="togglePopup('usagePopup115')">...<span class="popuptext" id="usagePopup115">Usage of <b>Functions::catalogue</b>:<br>The Analyser - <a href="3-ta.html#SP2">§2</a></span></button></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="reserved">int</span><span class="plain"> </span><span class="identifier">functions_too</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Functions::catalogue<button class="popup" onclick="togglePopup('usagePopup114')">...<span class="popuptext" id="usagePopup114">Usage of <b>Functions::catalogue</b>:<br>The Analyser - <a href="3-ta.html#SP2">§2</a></span></button></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="reserved">int</span><span class="plain"> </span><span class="identifier">functions_too</span><span class="plain">) {</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">str</span><span class="plain">, </span><span class="reserved">language_type</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">str</span><span class="plain">-></span><span class="element">structure_header_at</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain"> == </span><span class="identifier">S</span><span class="plain">)</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,7 +30,7 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'The Painter' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>The Painter</b></li></ul><p class="purpose">A simple syntax-colouring engine.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#4">Chapter 4: Languages</a></li><li><b>The Painter</b></li></ul><p class="purpose">A simple syntax-colouring engine.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP7">§7. Painting a file</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -43,7 +48,7 @@ to <code class="display"><span class="extract">Painter::syntax_colour</span></co
|
|||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">painter_count</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::reset_syntax_colouring<button class="popup" onclick="togglePopup('usagePopup170')">...<span class="popuptext" id="usagePopup170">Usage of <b>Painter::reset_syntax_colouring</b>:<br><a href="#SP7">§7</a>, ACME Support - <a href="4-as.html#SP8">§8</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::reset_syntax_colouring<button class="popup" onclick="togglePopup('usagePopup169')">...<span class="popuptext" id="usagePopup169">Usage of <b>Painter::reset_syntax_colouring</b>:<br><a href="#SP7">§7</a>, ACME Support - <a href="4-as.html#SP8">§8</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="identifier">colouring_state</span><span class="plain"> = </span><span class="constant">PLAIN_COLOUR</span><span class="plain">;</span>
|
||||
<span class="identifier">painter_count</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -74,7 +79,7 @@ its colouring program.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Painter::syntax_colour<button class="popup" onclick="togglePopup('usagePopup171')">...<span class="popuptext" id="usagePopup171">Usage of <b>Painter::syntax_colour</b>:<br><a href="#SP7">§7</a>, ACME Support - <a href="4-as.html#SP8">§8</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Painter::syntax_colour<button class="popup" onclick="togglePopup('usagePopup170')">...<span class="popuptext" id="usagePopup170">Usage of <b>Painter::syntax_colour</b>:<br><a href="#SP7">§7</a>, ACME Support - <a href="4-as.html#SP8">§8</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">with_comments</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">, </span><span class="identifier">to</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP8">Str::len</a></span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">) - </span><span class="constant">1</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">with_comments</span><span class="plain">) {</span>
|
||||
|
@ -94,7 +99,7 @@ its colouring program.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::syntax_colour_inner<button class="popup" onclick="togglePopup('usagePopup172')">...<span class="popuptext" id="usagePopup172">Usage of <b>Painter::syntax_colour_inner</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::syntax_colour_inner<button class="popup" onclick="togglePopup('usagePopup171')">...<span class="popuptext" id="usagePopup171">Usage of <b>Painter::syntax_colour_inner</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">to</span><span class="plain">) {</span>
|
||||
<<span class="cwebmacro">Spot identifiers, literal text and character constants</span> <span class="cwebmacronumber">2.1</span>><span class="plain">;</span>
|
||||
<<span class="cwebmacro">Spot literal numerical constants</span> <span class="cwebmacronumber">2.2</span>><span class="plain">;</span>
|
||||
|
@ -230,7 +235,7 @@ can contain a <code class="display"><span class="extract">::</span></code> names
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Painter::identifier_at<button class="popup" onclick="togglePopup('usagePopup173')">...<span class="popuptext" id="usagePopup173">Usage of <b>Painter::identifier_at</b>:<br><a href="#SP2_1">§2.1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Painter::identifier_at<button class="popup" onclick="togglePopup('usagePopup172')">...<span class="popuptext" id="usagePopup172">Usage of <b>Painter::identifier_at</b>:<br><a href="#SP2_1">§2.1</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">) {</span>
|
||||
<span class="identifier">wchar_t</span><span class="plain"> </span><span class="identifier">c</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">i</span><span class="plain"> > </span><span class="constant">0</span><span class="plain">) && (</span><span class="functiontext"><a href="4-sm.html#SP13">Str::get_at</a></span><span class="plain">(</span><span class="identifier">colouring</span><span class="plain">, </span><span class="identifier">i</span><span class="plain">-1) == </span><span class="constant">IDENTIFIER_COLOUR</span><span class="plain">)) {</span>
|
||||
|
@ -279,7 +284,7 @@ rule across the whole snippet before moving on to the next.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::execute<button class="popup" onclick="togglePopup('usagePopup174')">...<span class="popuptext" id="usagePopup174">Usage of <b>Painter::execute</b>:<br><a href="#SP2_4">§2.4</a>, <a href="#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">block</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::execute<button class="popup" onclick="togglePopup('usagePopup173')">...<span class="popuptext" id="usagePopup173">Usage of <b>Painter::execute</b>:<br><a href="#SP2_4">§2.4</a>, <a href="#SP6">§6</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_language_block</span><span class="plain"> *</span><span class="identifier">block</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">block</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no block"</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">colouring_at_start</span><span class="plain">);</span>
|
||||
|
@ -364,7 +369,7 @@ rule across the whole snippet before moving on to the next.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::execute_rule<button class="popup" onclick="togglePopup('usagePopup175')">...<span class="popuptext" id="usagePopup175">Usage of <b>Painter::execute_rule</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::execute_rule<button class="popup" onclick="togglePopup('usagePopup174')">...<span class="popuptext" id="usagePopup174">Usage of <b>Painter::execute_rule</b>:<br><a href="#SP3">§3</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="#SP5">Painter::satisfies</a></span><span class="plain">(</span><span class="identifier">HT</span><span class="plain">, </span><span class="identifier">rule</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">, </span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">to</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">) == </span><span class="identifier">rule</span><span class="plain">-></span><span class="element">sense</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="#SP6">Painter::follow</a></span><span class="plain">(</span><span class="identifier">HT</span><span class="plain">, </span><span class="identifier">rule</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">, </span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">to</span><span class="plain">);</span>
|
||||
|
@ -387,7 +392,7 @@ rule across the whole snippet before moving on to the next.
|
|||
</pre>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Painter::satisfies<button class="popup" onclick="togglePopup('usagePopup176')">...<span class="popuptext" id="usagePopup176">Usage of <b>Painter::satisfies</b>:<br><a href="#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Painter::satisfies<button class="popup" onclick="togglePopup('usagePopup175')">...<span class="popuptext" id="usagePopup175">Usage of <b>Painter::satisfies</b>:<br><a href="#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rule</span><span class="plain">-></span><span class="identifier">number</span><span class="plain"> > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rule</span><span class="plain">-></span><span class="identifier">number_of</span><span class="plain"> > </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
|
@ -455,7 +460,7 @@ rule across the whole snippet before moving on to the next.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::follow<button class="popup" onclick="togglePopup('usagePopup177')">...<span class="popuptext" id="usagePopup177">Usage of <b>Painter::follow</b>:<br><a href="#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::follow<button class="popup" onclick="togglePopup('usagePopup176')">...<span class="popuptext" id="usagePopup176">Usage of <b>Painter::follow</b>:<br><a href="#SP4">§4</a></span></button></span><span class="plain">(</span><span class="reserved">hash_table</span><span class="plain"> *</span><span class="identifier">HT</span><span class="plain">, </span><span class="reserved">colouring_rule</span><span class="plain"> *</span><span class="identifier">rule</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">to</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rule</span><span class="plain">-></span><span class="identifier">execute_block</span><span class="plain">)</span>
|
||||
<span class="functiontext"><a href="#SP3">Painter::execute</a></span><span class="plain">(</span><span class="identifier">HT</span><span class="plain">, </span><span class="identifier">rule</span><span class="plain">-></span><span class="element">execute_block</span><span class="plain">, </span><span class="identifier">matter</span><span class="plain">, </span><span class="identifier">colouring</span><span class="plain">, </span><span class="identifier">from</span><span class="plain">, </span><span class="identifier">to</span><span class="plain">, </span><span class="constant">0</span><span class="plain">);</span>
|
||||
|
@ -495,7 +500,7 @@ rule across the whole snippet before moving on to the next.
|
|||
<p class="inwebparagraph"><a id="SP7"></a><b>§7. Painting a file. </b></p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="functiontext">Painter::lines<button class="popup" onclick="togglePopup('usagePopup178')">...<span class="popuptext" id="usagePopup178">Usage of <b>Painter::lines</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_7_2">§1.1.6.7.2</a></span></button></span><span class="plain">(</span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="functiontext">Painter::lines<button class="popup" onclick="togglePopup('usagePopup177')">...<span class="popuptext" id="usagePopup177">Usage of <b>Painter::lines</b>:<br>The Parser - <a href="2-tp.html#SP1_1_6_7_2">§1.1.6.7.2</a></span></button></span><span class="plain">(</span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">) {</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain"> = </span><span class="identifier">NEW_LINKED_LIST</span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="4-tf.html#SP5">TextFiles::read</a></span><span class="plain">(</span><span class="identifier">F</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">, </span><span class="string">"unable to read file of textual extract"</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">,</span>
|
||||
<span class="plain">&</span><span class="functiontext"><a href="#SP7">Painter::text_file_helper</a></span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
|
@ -517,12 +522,12 @@ rule across the whole snippet before moving on to the next.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">L</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::text_file_helper<button class="popup" onclick="togglePopup('usagePopup179')">...<span class="popuptext" id="usagePopup179">Usage of <b>Painter::text_file_helper</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::text_file_helper<button class="popup" onclick="togglePopup('usagePopup178')">...<span class="popuptext" id="usagePopup178">Usage of <b>Painter::text_file_helper</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">text_file_position</span><span class="plain"> *</span><span class="identifier">tfp</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">state</span><span class="plain">) {</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain"> = (</span><span class="reserved">linked_list</span><span class="plain"> *) </span><span class="identifier">state</span><span class="plain">;</span>
|
||||
<span class="identifier">ADD_TO_LINKED_LIST</span><span class="plain">(</span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">text</span><span class="plain">), </span><span class="reserved">text_stream</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::colour_file<button class="popup" onclick="togglePopup('usagePopup180')">...<span class="popuptext" id="usagePopup180">Usage of <b>Painter::colour_file</b>:<br>Program Control - <a href="1-pc.html#SP7_3">§7.3</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">coloured</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Painter::colour_file<button class="popup" onclick="togglePopup('usagePopup179')">...<span class="popuptext" id="usagePopup179">Usage of <b>Painter::colour_file</b>:<br>Program Control - <a href="1-pc.html#SP7_3">§7.3</a></span></button></span><span class="plain">(</span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">, </span><span class="reserved">filename</span><span class="plain"> *</span><span class="identifier">F</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">to</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">coloured</span><span class="plain">) {</span>
|
||||
<span class="reserved">linked_list</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain"> = </span><span class="functiontext"><a href="#SP7">Painter::lines</a></span><span class="plain">(</span><span class="identifier">F</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">pl</span><span class="plain">) </span><span class="functiontext"><a href="#SP1">Painter::reset_syntax_colouring</a></span><span class="plain">(</span><span class="identifier">pl</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">c</span><span class="plain"> = </span><span class="constant">1</span><span class="plain">;</span>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<nav role="navigation">
|
||||
<h1><a href="../webs.html">Sources</a></h1>
|
||||
<h1><a href="../webs.html">Inweb Source</a></h1>
|
||||
<ul>
|
||||
<li><a href="../inweb/index.html">inweb</a></li>
|
||||
</ul>
|
||||
|
@ -18,6 +18,11 @@
|
|||
<ul>
|
||||
<li><a href="../foundation-module/index.html">foundation-module</a></li>
|
||||
<li><a href="../foundation-test/index.html">foundation-test</a></li>
|
||||
</ul>
|
||||
<h2>Example Webs</h2>
|
||||
<ul>
|
||||
<li><a href="../goldbach/index.html">goldbach</a></li>
|
||||
<li><a href="../twinprimes/twinprimes.html">twinprimes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -25,9 +30,9 @@
|
|||
<main role="main">
|
||||
|
||||
<!--Weave of 'Format Methods' generated by 7-->
|
||||
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#5">Chapter 5: Formats</a></li><li><b>Format Methods</b></li></ul><p class="purpose">To characterise the relevant differences in behaviour between the various weaving formats offered, such as HTML, ePub, or TeX.</p>
|
||||
<ul class="crumbs"><li><a href="../webs.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#5">Chapter 5: Formats</a></li><li><b>Format Methods</b></li></ul><p class="purpose">To characterise the relevant differences in behaviour between the various weaving formats offered, such as HTML, ePub, or TeX.</p>
|
||||
|
||||
<ul class="toc"><li><a href="#SP1">§1. Formats</a></li><li><a href="#SP3">§3. Creation</a></li><li><a href="#SP4">§4. Methods</a></li><li><a href="#SP34">§34. Post-processing</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="#SP1">§1. Formats</a></li><li><a href="#SP3">§3. Creation</a></li><li><a href="#SP4">§4. Methods</a></li><li><a href="#SP33">§33. Post-processing</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Formats. </b>Exactly as in the previous chapter, each format expresses its behaviour
|
||||
through optional method calls.
|
||||
|
@ -41,7 +46,7 @@ through optional method calls.
|
|||
<span class="constant">MEMORY_MANAGEMENT</span>
|
||||
<span class="plain">} </span><span class="reserved">weave_format</span><span class="plain">;</span>
|
||||
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="functiontext">Formats::create_weave_format<button class="popup" onclick="togglePopup('usagePopup208')">...<span class="popuptext" id="usagePopup208">Usage of <b>Formats::create_weave_format</b>:<br>Plain Text Format - <a href="5-ptf.html#SP1">§1</a><br>TeX Format - <a href="5-tf.html#SP1_1">§1.1</a>, <a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a><br>HTML Formats - <a href="5-hf.html#SP1_1">§1.1</a>, <a href="5-hf.html#SP1_2">§1.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">ext</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="functiontext">Formats::create_weave_format<button class="popup" onclick="togglePopup('usagePopup207')">...<span class="popuptext" id="usagePopup207">Usage of <b>Formats::create_weave_format</b>:<br>Plain Text Format - <a href="5-ptf.html#SP1">§1</a><br>TeX Format - <a href="5-tf.html#SP1_1">§1.1</a>, <a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a><br>HTML Formats - <a href="5-hf.html#SP1_1">§1.1</a>, <a href="5-hf.html#SP1_2">§1.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">ext</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">weave_format</span><span class="plain">);</span>
|
||||
<span class="identifier">wf</span><span class="plain">-></span><span class="element">format_name</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">);</span>
|
||||
<span class="identifier">wf</span><span class="plain">-></span><span class="element">woven_extension</span><span class="plain"> = </span><span class="functiontext"><a href="4-sm.html#SP3">Str::duplicate</a></span><span class="plain">(</span><span class="identifier">ext</span><span class="plain">);</span>
|
||||
|
@ -49,7 +54,7 @@ through optional method calls.
|
|||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">wf</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="functiontext">Formats::find_by_name<button class="popup" onclick="togglePopup('usagePopup209')">...<span class="popuptext" id="usagePopup209">Usage of <b>Formats::find_by_name</b>:<br><a href="#SP36">§36</a>, Patterns - <a href="1-ptt.html#SP3_2">§3.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="functiontext">Formats::find_by_name<button class="popup" onclick="togglePopup('usagePopup208')">...<span class="popuptext" id="usagePopup208">Usage of <b>Formats::find_by_name</b>:<br><a href="#SP35">§35</a>, Patterns - <a href="1-ptt.html#SP3_2">§3.2</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">name</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain">)</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq_insensitive</a></span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">wf</span><span class="plain">-></span><span class="element">format_name</span><span class="plain">))</span>
|
||||
|
@ -69,7 +74,7 @@ stage produces, even though we will later end up with a <code class="display"><s
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Formats::file_extension<button class="popup" onclick="togglePopup('usagePopup210')">...<span class="popuptext" id="usagePopup210">Usage of <b>Formats::file_extension</b>:<br>The Swarm - <a href="3-ts.html#SP2_2_1">§2.2.1</a><br>The Indexer - <a href="3-ti.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="functiontext">Formats::file_extension<button class="popup" onclick="togglePopup('usagePopup209')">...<span class="popuptext" id="usagePopup209">Usage of <b>Formats::file_extension</b>:<br>The Swarm - <a href="3-ts.html#SP2_2_1">§2.2.1</a><br>The Indexer - <a href="3-ti.html#SP1">§1</a></span></button></span><span class="plain">(</span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">) {</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">wf</span><span class="plain">-></span><span class="identifier">woven_extension</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -80,7 +85,7 @@ stage produces, even though we will later end up with a <code class="display"><s
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::create_weave_formats<button class="popup" onclick="togglePopup('usagePopup211')">...<span class="popuptext" id="usagePopup211">Usage of <b>Formats::create_weave_formats</b>:<br>Program Control - <a href="1-pc.html#SP6_1">§6.1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::create_weave_formats<button class="popup" onclick="togglePopup('usagePopup210')">...<span class="popuptext" id="usagePopup210">Usage of <b>Formats::create_weave_formats</b>:<br>Program Control - <a href="1-pc.html#SP6_1">§6.1</a></span></button></span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="5-tf.html#SP1">TeX::create</a></span><span class="plain">();</span>
|
||||
<span class="functiontext"><a href="5-ptf.html#SP1">PlainText::create</a></span><span class="plain">();</span>
|
||||
<span class="functiontext"><a href="5-hf.html#SP1">HTMLFormat::create</a></span><span class="plain">();</span>
|
||||
|
@ -111,13 +116,13 @@ this is helpful for EPUB weaving.
|
|||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">BEGIN_WEAVING_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">)</span>
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">END_WEAVING_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::begin_weaving<button class="popup" onclick="togglePopup('usagePopup212')">...<span class="popuptext" id="usagePopup212">Usage of <b>Formats::begin_weaving</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::begin_weaving<button class="popup" onclick="togglePopup('usagePopup211')">...<span class="popuptext" id="usagePopup211">Usage of <b>Formats::begin_weaving</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">-></span><span class="element">pattern_format</span><span class="plain">, </span><span class="constant">BEGIN_WEAVING_FOR_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rv</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain">;</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">SWARM_OFF_SWM</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::end_weaving<button class="popup" onclick="togglePopup('usagePopup213')">...<span class="popuptext" id="usagePopup213">Usage of <b>Formats::end_weaving</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::end_weaving<button class="popup" onclick="togglePopup('usagePopup212')">...<span class="popuptext" id="usagePopup212">Usage of <b>Formats::end_weaving</b>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button></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">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">pattern</span><span class="plain">-></span><span class="element">pattern_format</span><span class="plain">, </span><span class="constant">END_WEAVING_FOR_MTID</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -140,7 +145,7 @@ HTML comment.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">TOP_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comment</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::top<button class="popup" onclick="togglePopup('usagePopup214')">...<span class="popuptext" id="usagePopup214">Usage of <b>Formats::top</b>:<br>The Weaver - <a href="3-tw.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::top<button class="popup" onclick="togglePopup('usagePopup213')">...<span class="popuptext" id="usagePopup213">Usage of <b>Formats::top</b>:<br>The Weaver - <a href="3-tw.html#SP1_1">§1.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">TOP_FOR_MTID</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="identifier">comment</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -167,7 +172,7 @@ It is called with four possible values of <code class="display"><span class="ext
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">TOC_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">stage</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text1</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text2</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::toc<button class="popup" onclick="togglePopup('usagePopup215')">...<span class="popuptext" id="usagePopup215">Usage of <b>Formats::toc</b>:<br>The Weaver - <a href="3-tw.html#SP4">§4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">stage</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text1</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::toc<button class="popup" onclick="togglePopup('usagePopup214')">...<span class="popuptext" id="usagePopup214">Usage of <b>Formats::toc</b>:<br>The Weaver - <a href="3-tw.html#SP4">§4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">stage</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text1</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text2</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">TOC_FOR_MTID</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="identifier">stage</span><span class="plain">, </span><span class="identifier">text1</span><span class="plain">, </span><span class="identifier">text2</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
|
||||
|
@ -188,7 +193,7 @@ interstitial material. This is how:
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">CHAPTER_TP_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">void</span><span class="plain"> </span><span class="functiontext">Formats::chapter_title_page<button class="popup" onclick="togglePopup('usagePopup216')">...<span class="popuptext" id="usagePopup216">Usage of <b>Formats::chapter_title_page</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_10">§1.3.4.1.10</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">void</span><span class="plain"> </span><span class="functiontext">Formats::chapter_title_page<button class="popup" onclick="togglePopup('usagePopup215')">...<span class="popuptext" id="usagePopup215">Usage of <b>Formats::chapter_title_page</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_10">§1.3.4.1.10</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">CHAPTER_TP_FOR_MTID</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="identifier">C</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -219,7 +224,7 @@ some supplementary text, used in some cases for running heads.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">SUBHEADING_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">heading</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">addendum</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::subheading<button class="popup" onclick="togglePopup('usagePopup217')">...<span class="popuptext" id="usagePopup217">Usage of <b>Formats::subheading</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_3">§1.3.4.1.3</a>, <a href="3-tw.html#SP1_3_4_1_6">§1.3.4.1.6</a>, <a href="3-tw.html#SP1_3_4_1_10_3_1">§1.3.4.1.10.3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::subheading<button class="popup" onclick="togglePopup('usagePopup216')">...<span class="popuptext" id="usagePopup216">Usage of <b>Formats::subheading</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_3">§1.3.4.1.3</a>, <a href="3-tw.html#SP1_3_4_1_6">§1.3.4.1.6</a>, <a href="3-tw.html#SP1_3_4_1_10_3_1">§1.3.4.1.10.3.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">heading</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">addendum</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">SUBHEADING_FOR_MTID</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="identifier">level</span><span class="plain">, </span><span class="identifier">heading</span><span class="plain">, </span><span class="identifier">addendum</span><span class="plain">);</span>
|
||||
|
@ -255,7 +260,7 @@ the benefit of the TeX format, and all other formats can leave them be.
|
|||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PARAGRAPH_HEADING_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">TeX_macro</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="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">heading_text</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">chaptermark</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sectionmark</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">weight</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::paragraph_heading<button class="popup" onclick="togglePopup('usagePopup218')">...<span class="popuptext" id="usagePopup218">Usage of <b>Formats::paragraph_heading</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_10">§1.3.4.1.10</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">TeX_macro</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::paragraph_heading<button class="popup" onclick="togglePopup('usagePopup217')">...<span class="popuptext" id="usagePopup217">Usage of <b>Formats::paragraph_heading</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_10">§1.3.4.1.10</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">TeX_macro</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="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">heading_text</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">chaptermark</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">sectionmark</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">weight</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
|
@ -283,7 +288,7 @@ been syntax-coloured; there can also be some indentation, and perhaps even some
|
|||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">starts</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">finishes</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">code_mode</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">linked</span><span class="plain">)</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::source_code<button class="popup" onclick="togglePopup('usagePopup219')">...<span class="popuptext" id="usagePopup219">Usage of <b>Formats::source_code</b>:<br><a href="#SP11">§11</a>, The Weaver - <a href="3-tw.html#SP1_3_4_1_8_4">§1.3.4.1.8.4</a>, <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a>, <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">tab_stops_of_indentation</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::source_code<button class="popup" onclick="togglePopup('usagePopup218')">...<span class="popuptext" id="usagePopup218">Usage of <b>Formats::source_code</b>:<br><a href="#SP11">§11</a>, The Weaver - <a href="3-tw.html#SP1_3_4_1_8_4">§1.3.4.1.8.4</a>, <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a>, <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">tab_stops_of_indentation</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">prefatory</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">colouring</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">starts</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">finishes</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">code_mode</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">linked</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
|
@ -306,7 +311,7 @@ drably in a uniform <code class="display"><span class="extract">EXTRACT_COLOUR</
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">INLINE_CODE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">pre</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::source_fragment<button class="popup" onclick="togglePopup('usagePopup220')">...<span class="popuptext" id="usagePopup220">Usage of <b>Formats::source_fragment</b>:<br><a href="#SP27">§27</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fragment</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::source_fragment<button class="popup" onclick="togglePopup('usagePopup219')">...<span class="popuptext" id="usagePopup219">Usage of <b>Formats::source_fragment</b>:<br><a href="#SP27">§27</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fragment</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">INLINE_CODE_FOR_MTID</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="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">colouring</span><span class="plain">);</span>
|
||||
|
@ -330,7 +335,7 @@ drably in a uniform <code class="display"><span class="extract">EXTRACT_COLOUR</
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">URL_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">url</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">content</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">external</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::url<button class="popup" onclick="togglePopup('usagePopup221')">...<span class="popuptext" id="usagePopup221">Usage of <b>Formats::url</b>:<br><a href="#SP27_2">§27.2</a>, <a href="#SP27_4_1">§27.4.1</a>, HTML Formats - <a href="5-hf.html#SP10_1">§10.1</a>, <a href="5-hf.html#SP10_2_1">§10.2.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">url</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::url<button class="popup" onclick="togglePopup('usagePopup220')">...<span class="popuptext" id="usagePopup220">Usage of <b>Formats::url</b>:<br><a href="#SP27_2">§27.2</a>, <a href="#SP27_4_1">§27.4.1</a>, HTML Formats - <a href="5-hf.html#SP10_1">§10.1</a>, <a href="5-hf.html#SP10_2_1">§10.2.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">url</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">content</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">external</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-mth.html#SP6">Methods::provided</a></span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">-></span><span class="identifier">methods</span><span class="plain">, </span><span class="constant">URL_FOR_MTID</span><span class="plain">)) {</span>
|
||||
|
@ -354,7 +359,7 @@ drably in a uniform <code class="display"><span class="extract">EXTRACT_COLOUR</
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">FOOTNOTE_CUE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::footnote_cue<button class="popup" onclick="togglePopup('usagePopup222')">...<span class="popuptext" id="usagePopup222">Usage of <b>Formats::footnote_cue</b>:<br><a href="#SP27_3">§27.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::footnote_cue<button class="popup" onclick="togglePopup('usagePopup221')">...<span class="popuptext" id="usagePopup221">Usage of <b>Formats::footnote_cue</b>:<br><a href="#SP27_3">§27.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-mth.html#SP6">Methods::provided</a></span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">-></span><span class="identifier">methods</span><span class="plain">, </span><span class="constant">FOOTNOTE_CUE_FOR_MTID</span><span class="plain">)) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">FOOTNOTE_CUE_FOR_MTID</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="identifier">cue</span><span class="plain">);</span>
|
||||
|
@ -377,7 +382,7 @@ drably in a uniform <code class="display"><span class="extract">EXTRACT_COLOUR</
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">BEGIN_FOOTNOTE_TEXT_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::begin_footnote_text<button class="popup" onclick="togglePopup('usagePopup223')">...<span class="popuptext" id="usagePopup223">Usage of <b>Formats::begin_footnote_text</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5">§1.3.4.1.8.5</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::begin_footnote_text<button class="popup" onclick="togglePopup('usagePopup222')">...<span class="popuptext" id="usagePopup222">Usage of <b>Formats::begin_footnote_text</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5">§1.3.4.1.8.5</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-mth.html#SP6">Methods::provided</a></span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">-></span><span class="identifier">methods</span><span class="plain">, </span><span class="constant">BEGIN_FOOTNOTE_TEXT_FOR_MTID</span><span class="plain">)) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">BEGIN_FOOTNOTE_TEXT_FOR_MTID</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="identifier">cue</span><span class="plain">);</span>
|
||||
|
@ -401,7 +406,7 @@ in pairs and do not nest.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">END_FOOTNOTE_TEXT_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::end_footnote_text<button class="popup" onclick="togglePopup('usagePopup224')">...<span class="popuptext" id="usagePopup224">Usage of <b>Formats::end_footnote_text</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5_1">§1.3.4.1.8.5.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::end_footnote_text<button class="popup" onclick="togglePopup('usagePopup223')">...<span class="popuptext" id="usagePopup223">Usage of <b>Formats::end_footnote_text</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_5_1">§1.3.4.1.8.5.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">cue</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="2-mth.html#SP6">Methods::provided</a></span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">-></span><span class="identifier">methods</span><span class="plain">, </span><span class="constant">END_FOOTNOTE_TEXT_FOR_MTID</span><span class="plain">)) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">END_FOOTNOTE_TEXT_FOR_MTID</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="identifier">cue</span><span class="plain">);</span>
|
||||
|
@ -425,7 +430,7 @@ a convenience for Inform 7 code commentary.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">DISPLAY_LINE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::display_line<button class="popup" onclick="togglePopup('usagePopup225')">...<span class="popuptext" id="usagePopup225">Usage of <b>Formats::display_line</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_1">§1.3.4.1.8.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::display_line<button class="popup" onclick="togglePopup('usagePopup224')">...<span class="popuptext" id="usagePopup224">Usage of <b>Formats::display_line</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_1">§1.3.4.1.8.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">DISPLAY_LINE_FOR_MTID</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="identifier">from</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -457,7 +462,7 @@ indentation but not weave any bracketed marker.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">ITEM_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">depth</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">label</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::item<button class="popup" onclick="togglePopup('usagePopup226')">...<span class="popuptext" id="usagePopup226">Usage of <b>Formats::item</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_3">§1.3.4.1.8.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">depth</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">label</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::item<button class="popup" onclick="togglePopup('usagePopup225')">...<span class="popuptext" id="usagePopup225">Usage of <b>Formats::item</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_3">§1.3.4.1.8.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">depth</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">label</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">ITEM_FOR_MTID</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="identifier">depth</span><span class="plain">, </span><span class="identifier">label</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -476,7 +481,7 @@ very old webs nowadays. New formats really needn't implement this.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">BAR_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::bar<button class="popup" onclick="togglePopup('usagePopup227')">...<span class="popuptext" id="usagePopup227">Usage of <b>Formats::bar</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_7">§1.3.4.1.7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::bar<button class="popup" onclick="togglePopup('usagePopup226')">...<span class="popuptext" id="usagePopup226">Usage of <b>Formats::bar</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_7">§1.3.4.1.7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">BAR_FOR_MTID</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="plain">}</span>
|
||||
|
@ -497,7 +502,7 @@ of the web.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">FIGURE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">figname</span><span class="plain">, </span><span class="reserved">int</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">h</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::figure<button class="popup" onclick="togglePopup('usagePopup228')">...<span class="popuptext" id="usagePopup228">Usage of <b>Formats::figure</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2_1">§1.3.4.1.2.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">figname</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::figure<button class="popup" onclick="togglePopup('usagePopup227')">...<span class="popuptext" id="usagePopup227">Usage of <b>Formats::figure</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2_1">§1.3.4.1.2.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">figname</span><span class="plain">,</span>
|
||||
<span class="reserved">int</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">h</span><span class="plain">, </span><span class="reserved">programming_language</span><span class="plain"> *</span><span class="identifier">pl</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">FIGURE_FOR_MTID</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="identifier">figname</span><span class="plain">, </span><span class="identifier">w</span><span class="plain">, </span><span class="identifier">h</span><span class="plain">, </span><span class="identifier">pl</span><span class="plain">);</span>
|
||||
|
@ -519,7 +524,7 @@ that service uses to identify the video/audio in question.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">EMBED_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">service</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">ID</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::embed<button class="popup" onclick="togglePopup('usagePopup229')">...<span class="popuptext" id="usagePopup229">Usage of <b>Formats::embed</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2_2">§1.3.4.1.2.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">service</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::embed<button class="popup" onclick="togglePopup('usagePopup228')">...<span class="popuptext" id="usagePopup228">Usage of <b>Formats::embed</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2_2">§1.3.4.1.2.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">service</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">ID</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">EMBED_FOR_MTID</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="identifier">service</span><span class="plain">, </span><span class="identifier">ID</span><span class="plain">);</span>
|
||||
|
@ -541,7 +546,7 @@ thing is to render some sort of equals sign after it, if so.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PARA_MACRO_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">defn</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::para_macro<button class="popup" onclick="togglePopup('usagePopup230')">...<span class="popuptext" id="usagePopup230">Usage of <b>Formats::para_macro</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">defn</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::para_macro<button class="popup" onclick="togglePopup('usagePopup229')">...<span class="popuptext" id="usagePopup229">Usage of <b>Formats::para_macro</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9_6">§1.3.4.1.9.6</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">para_macro</span><span class="plain"> *</span><span class="identifier">pmac</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">defn</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">PARA_MACRO_FOR_MTID</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="identifier">pmac</span><span class="plain">, </span><span class="identifier">defn</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -561,7 +566,7 @@ at that), so no harm is done if there's no visual indication here.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PAGEBREAK_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::pagebreak<button class="popup" onclick="togglePopup('usagePopup231')">...<span class="popuptext" id="usagePopup231">Usage of <b>Formats::pagebreak</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2">§1.3.4.1.2</a>, <a href="3-tw.html#SP1_3_4_1_10_1">§1.3.4.1.10.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::pagebreak<button class="popup" onclick="togglePopup('usagePopup230')">...<span class="popuptext" id="usagePopup230">Usage of <b>Formats::pagebreak</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_2">§1.3.4.1.2</a>, <a href="3-tw.html#SP1_3_4_1_10_1">§1.3.4.1.10.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">PAGEBREAK_FOR_MTID</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="plain">}</span>
|
||||
|
@ -583,7 +588,7 @@ information.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">BLANK_LINE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">in_comment</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::blank_line<button class="popup" onclick="togglePopup('usagePopup232')">...<span class="popuptext" id="usagePopup232">Usage of <b>Formats::blank_line</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_2">§1.3.4.1.8.2</a>, <a href="3-tw.html#SP1_3_4_1_9_2">§1.3.4.1.9.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">in_comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::blank_line<button class="popup" onclick="togglePopup('usagePopup231')">...<span class="popuptext" id="usagePopup231">Usage of <b>Formats::blank_line</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8_2">§1.3.4.1.8.2</a>, <a href="3-tw.html#SP1_3_4_1_9_2">§1.3.4.1.9.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">in_comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">BLANK_LINE_FOR_MTID</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="identifier">in_comment</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -604,7 +609,7 @@ the definitions.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">AFTER_DEFINITIONS_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::after_definitions<button class="popup" onclick="togglePopup('usagePopup233')">...<span class="popuptext" id="usagePopup233">Usage of <b>Formats::after_definitions</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::after_definitions<button class="popup" onclick="togglePopup('usagePopup232')">...<span class="popuptext" id="usagePopup232">Usage of <b>Formats::after_definitions</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_9">§1.3.4.1.9</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">AFTER_DEFINITIONS_FOR_MTID</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="plain">}</span>
|
||||
|
@ -627,7 +632,7 @@ weaver and turned into something else (such as list items).
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">CHANGE_MATERIAL_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">old_material</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">new_material</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">content</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">plainly</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::change_material<button class="popup" onclick="togglePopup('usagePopup234')">...<span class="popuptext" id="usagePopup234">Usage of <b>Formats::change_material</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_1">§1.3.4.1.1</a>, <a href="3-tw.html#SP1_3_4_1_8_3">§1.3.4.1.8.3</a>, <a href="3-tw.html#SP1_3_4_1_8_4">§1.3.4.1.8.4</a>, <a href="3-tw.html#SP1_3_4_1_9_1">§1.3.4.1.9.1</a>, <a href="3-tw.html#SP1_3_4_2">§1.3.4.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::change_material<button class="popup" onclick="togglePopup('usagePopup233')">...<span class="popuptext" id="usagePopup233">Usage of <b>Formats::change_material</b>:<br>The Weaver - <a href="3-tw.html#SP1_3_4_1_1">§1.3.4.1.1</a>, <a href="3-tw.html#SP1_3_4_1_8_3">§1.3.4.1.8.3</a>, <a href="3-tw.html#SP1_3_4_1_8_4">§1.3.4.1.8.4</a>, <a href="3-tw.html#SP1_3_4_1_9_1">§1.3.4.1.9.1</a>, <a href="3-tw.html#SP1_3_4_2">§1.3.4.2</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">old_material</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">new_material</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">content</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">plainly</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">CHANGE_MATERIAL_FOR_MTID</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="identifier">old_material</span><span class="plain">, </span><span class="identifier">new_material</span><span class="plain">,</span>
|
||||
|
@ -651,7 +656,7 @@ nothing.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">CHANGE_COLOUR_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">col</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">in_code</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::change_colour<button class="popup" onclick="togglePopup('usagePopup235')">...<span class="popuptext" id="usagePopup235">Usage of <b>Formats::change_colour</b>:<br>TeX Format - <a href="5-tf.html#SP8_2">§8.2</a>, <a href="5-tf.html#SP15">§15</a><br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">col</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">in_code</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::change_colour<button class="popup" onclick="togglePopup('usagePopup234')">...<span class="popuptext" id="usagePopup234">Usage of <b>Formats::change_colour</b>:<br>TeX Format - <a href="5-tf.html#SP8_2">§8.2</a>, <a href="5-tf.html#SP15">§15</a><br>HTML Formats - <a href="5-hf.html#SP10_3">§10.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">col</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">in_code</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">CHANGE_COLOUR_FOR_MTID</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="identifier">col</span><span class="plain">, </span><span class="identifier">in_code</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -666,14 +671,14 @@ as appropriate.
|
|||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text<button class="popup" onclick="togglePopup('usagePopup236')">...<span class="popuptext" id="usagePopup236">Usage of <b>Formats::text</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a>, <a href="2-tgs.html#SP7_1">§7.1</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8">§1.3.4.1.8</a>, <a href="3-tw.html#SP1_3_4_1_8_4">§1.3.4.1.8.4</a>, <a href="3-tw.html#SP1_3_4_1_10_5">§1.3.4.1.10.5</a>, <a href="3-tw.html#SP2_1">§2.1</a>, <a href="3-tw.html#SP2_3">§2.3</a>, <a href="3-tw.html#SP3">§3</a>, <a href="3-tw.html#SP3_1">§3.1</a><br>Plain Text Format - <a href="5-ptf.html#SP3">§3</a><br>TeX Format - <a href="5-tf.html#SP4">§4</a><br>HTML Formats - <a href="5-hf.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text<button class="popup" onclick="togglePopup('usagePopup235')">...<span class="popuptext" id="usagePopup235">Usage of <b>Formats::text</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a>, <a href="2-tgs.html#SP7_1">§7.1</a><br>The Weaver - <a href="3-tw.html#SP1_3_4_1_8">§1.3.4.1.8</a>, <a href="3-tw.html#SP1_3_4_1_8_4">§1.3.4.1.8.4</a>, <a href="3-tw.html#SP1_3_4_1_10_5">§1.3.4.1.10.5</a>, <a href="3-tw.html#SP2_1">§2.1</a>, <a href="3-tw.html#SP2_3">§2.3</a>, <a href="3-tw.html#SP3">§3</a>, <a href="3-tw.html#SP3_1">§3.1</a><br>Plain Text Format - <a href="5-ptf.html#SP3">§3</a><br>TeX Format - <a href="5-tf.html#SP4">§4</a><br>HTML Formats - <a href="5-hf.html#SP7">§7</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP27">Formats::text_r</a></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="identifier">id</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="plain">}</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_comment<button class="popup" onclick="togglePopup('usagePopup237')">...<span class="popuptext" id="usagePopup237">Usage of <b>Formats::text_comment</b>:<br>TeX Format - <a href="5-tf.html#SP24_2">§24.2</a><br>HTML Formats - <a href="5-hf.html#SP10">§10</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_comment<button class="popup" onclick="togglePopup('usagePopup236')">...<span class="popuptext" id="usagePopup236">Usage of <b>Formats::text_comment</b>:<br>TeX Format - <a href="5-tf.html#SP24_2">§24.2</a><br>HTML Formats - <a href="5-hf.html#SP10">§10</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">id</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="#SP27">Formats::text_r</a></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="identifier">id</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="plain">}</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_r<button class="popup" onclick="togglePopup('usagePopup238')">...<span class="popuptext" id="usagePopup238">Usage of <b>Formats::text_r</b>:<br><a href="#SP27_1">§27.1</a>, <a href="#SP27_2">§27.2</a>, <a href="#SP27_3">§27.3</a>, <a href="#SP27_4_1">§27.4.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">id</span><span class="plain">,</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_r<button class="popup" onclick="togglePopup('usagePopup237')">...<span class="popuptext" id="usagePopup237">Usage of <b>Formats::text_r</b>:<br><a href="#SP27_1">§27.1</a>, <a href="#SP27_2">§27.2</a>, <a href="#SP27_3">§27.3</a>, <a href="#SP27_4_1">§27.4.1</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">id</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">within</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">comments</span><span class="plain">) {</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">code_in_comments_notation</span><span class="plain"> =</span>
|
||||
<span class="functiontext"><a href="8-bdfw.html#SP6">Bibliographic::get_datum</a></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>
|
||||
|
@ -690,7 +695,7 @@ as appropriate.
|
|||
<span class="functiontext"><a href="#SP11">Formats::source_fragment</a></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="identifier">id</span><span class="plain">);</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
|
||||
<<span class="cwebmacro">Detect use of footnotes</span> <span class="cwebmacronumber">27.3</span>><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="#SP29">Formats::text_fragment</a></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="identifier">id</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP28">Formats::text_fragment</a></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="identifier">id</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
@ -825,8 +830,8 @@ as appropriate.
|
|||
<pre class="displaydefn">
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">url</span><span class="plain">);</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">title</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="#SP28">Formats::resolve_reference_in_weave</a></span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="identifier">title</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">reference</span><span class="plain">,</span>
|
||||
<span class="identifier">wv</span><span class="plain">-></span><span class="element">current_weave_line</span><span class="plain">)) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="6-cln.html#SP5">Colonies::resolve_reference_in_weave</a></span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="identifier">title</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">reference</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">wv</span><span class="plain">-></span><span class="element">current_weave_line</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="#SP27">Formats::text_r</a></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="identifier">before</span><span class="plain">, </span><span class="identifier">within</span><span class="plain">, </span><span class="identifier">comments</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP12">Formats::url</a></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="identifier">url</span><span class="plain">, </span><span class="identifier">title</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="#SP27">Formats::text_r</a></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="identifier">after</span><span class="plain">, </span><span class="identifier">within</span><span class="plain">, </span><span class="identifier">comments</span><span class="plain">);</span>
|
||||
|
@ -840,82 +845,7 @@ as appropriate.
|
|||
|
||||
<p class="endnote">This code is used in <a href="#SP27_4">§27.4</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP28"></a><b>§28. </b>The following must decide what a reference like "Chapter 3" should refer
|
||||
to: that is, whether it makes unamgiguous sense, and if so, what URL we should
|
||||
link to, and what the full text of the link might be.
|
||||
</p>
|
||||
|
||||
<pre class="display">
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::resolve_reference_in_weave<button class="popup" onclick="togglePopup('usagePopup239')">...<span class="popuptext" id="usagePopup239">Usage of <b>Formats::resolve_reference_in_weave</b>:<br><a href="#SP27_4_1">§27.4.1</a>, HTML Formats - <a href="5-hf.html#SP10_2_1">§10.2.1</a></span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">url</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">title</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">text</span><span class="plain">, </span><span class="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">) {</span>
|
||||
<span class="reserved">module</span><span class="plain"> *</span><span class="identifier">found_M</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">section_md</span><span class="plain"> *</span><span class="identifier">found_Sm</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">named_as_module</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext"><a href="8-wm.html#SP9">WebModules::named_reference</a></span><span class="plain">(&</span><span class="identifier">found_M</span><span class="plain">, &</span><span class="identifier">found_Sm</span><span class="plain">, &</span><span class="identifier">named_as_module</span><span class="plain">,</span>
|
||||
<span class="identifier">title</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">-></span><span class="identifier">weave_web</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">as_module</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="constant">FALSE</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain"> == </span><span class="constant">0</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">L</span><span class="plain">) </span><<span class="cwebmacro">Try references to non-sections</span> <span class="cwebmacronumber">28.1</span>><span class="plain">;</span>
|
||||
<span class="functiontext"><a href="1-pc.html#SP8">Main::error_in_web</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"No section has this name"</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain"> > </span><span class="constant">1</span><span class="plain">) {</span>
|
||||
<span class="functiontext"><a href="1-pc.html#SP8">Main::error_in_web</a></span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Multiple sections might be meant here"</span><span class="plain">, </span><span class="identifier">L</span><span class="plain">);</span>
|
||||
<span class="functiontext"><a href="8-wm.html#SP9">WebModules::named_reference</a></span><span class="plain">(&</span><span class="identifier">found_M</span><span class="plain">, &</span><span class="identifier">found_Sm</span><span class="plain">, &</span><span class="identifier">named_as_module</span><span class="plain">,</span>
|
||||
<span class="identifier">title</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">-></span><span class="identifier">weave_web</span><span class="plain">-></span><span class="element">md</span><span class="plain">-></span><span class="element">as_module</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="plain">} </span><span class="reserved">else</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">found_S</span><span class="plain"> = </span><span class="identifier">NULL</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">wv</span><span class="plain">-></span><span class="element">weave_web</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="reserved">if</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="identifier">found_Sm</span><span class="plain">) </span><span class="identifier">found_S</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">;</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">found_S</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"could not locate S"</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">found_M</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"could not locate M"</span><span class="plain">);</span>
|
||||
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">found_M</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">as_module</span><span class="plain">) {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="string">"../%S-module/"</span><span class="plain">, </span><span class="identifier">found_M</span><span class="plain">-></span><span class="element">module_name</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="functiontext"><a href="5-hf.html#SP29">HTMLFormat::section_URL</a></span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">found_S</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">named_as_module</span><span class="plain"> == </span><span class="constant">FALSE</span><span class="plain">) && (</span><span class="identifier">found_M</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">as_module</span><span class="plain">)) {</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">title</span><span class="plain">, </span><span class="string">" (in %S)"</span><span class="plain">, </span><span class="identifier">found_M</span><span class="plain">-></span><span class="element">module_name</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP28_1"></a><b>§28.1. </b><code class="display">
|
||||
<<span class="cwebmacrodefn">Try references to non-sections</span> <span class="cwebmacronumber">28.1</span>> =
|
||||
</code></p>
|
||||
|
||||
|
||||
<pre class="displaydefn">
|
||||
<span class="reserved">language_function</span><span class="plain"> *</span><span class="identifier">fn</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">, </span><span class="reserved">language_function</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq_insensitive</a></span><span class="plain">(</span><span class="identifier">fn</span><span class="plain">-></span><span class="element">function_name</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="5-hf.html#SP29">HTMLFormat::xref</a></span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">fn</span><span class="plain">-></span><span class="element">function_header_at</span><span class="plain">-></span><span class="element">owning_paragraph</span><span class="plain">,</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">title</span><span class="plain">, </span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">fn</span><span class="plain">-></span><span class="element">function_name</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="reserved">language_type</span><span class="plain"> *</span><span class="identifier">str</span><span class="plain">;</span>
|
||||
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">str</span><span class="plain">, </span><span class="reserved">language_type</span><span class="plain">) {</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext"><a href="4-sm.html#SP18">Str::eq_insensitive</a></span><span class="plain">(</span><span class="identifier">str</span><span class="plain">-></span><span class="element">structure_name</span><span class="plain">, </span><span class="identifier">text</span><span class="plain">)) {</span>
|
||||
<span class="functiontext"><a href="5-hf.html#SP29">HTMLFormat::xref</a></span><span class="plain">(</span><span class="identifier">url</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">str</span><span class="plain">-></span><span class="element">structure_header_at</span><span class="plain">-></span><span class="element">owning_paragraph</span><span class="plain">,</span>
|
||||
<span class="identifier">L</span><span class="plain">-></span><span class="element">owning_section</span><span class="plain">, </span><span class="constant">TRUE</span><span class="plain">);</span>
|
||||
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">title</span><span class="plain">, </span><span class="string">"%S"</span><span class="plain">, </span><span class="identifier">str</span><span class="plain">-></span><span class="element">structure_name</span><span class="plain">);</span>
|
||||
<span class="reserved">return</span><span class="plain"> </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
<span class="plain">}</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="endnote">This code is used in <a href="#SP28">§28</a>.</p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP29"></a><b>§29. </b><code class="display"><span class="extract">COMMENTARY_TEXT_FOR_MTID</span></code> straightforwardly weaves out a run of contiguous
|
||||
<p class="inwebparagraph"><a id="SP28"></a><b>§28. </b><code class="display"><span class="extract">COMMENTARY_TEXT_FOR_MTID</span></code> straightforwardly weaves out a run of contiguous
|
||||
text. Ordinarily, any formulae written in TeX notation (i.e., in dollar signs
|
||||
used as brackets) will be transmogrified into a plain text paraphrase, but
|
||||
the <code class="display"><span class="extract">PRESERVE_MATH_MODE_FOR_MTID</span></code> can prevent this. (And of course the TeX
|
||||
|
@ -934,7 +864,7 @@ format does, because it wants to keep the formulae in all their glory.)
|
|||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">COMMENTARY_TEXT_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">)</span>
|
||||
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_fragment<button class="popup" onclick="togglePopup('usagePopup240')">...<span class="popuptext" id="usagePopup240">Usage of <b>Formats::text_fragment</b>:<br><a href="#SP27">§27</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fragment</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::text_fragment<button class="popup" onclick="togglePopup('usagePopup238')">...<span class="popuptext" id="usagePopup238">Usage of <b>Formats::text_fragment</b>:<br><a href="#SP27">§27</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">fragment</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">matter</span><span class="plain">);</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">TRUE</span><span class="plain">;</span>
|
||||
|
@ -952,7 +882,7 @@ format does, because it wants to keep the formulae in all their glory.)
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP30"></a><b>§30. </b>The weaver has special typographical support for the stand-alone Inform
|
||||
<p class="inwebparagraph"><a id="SP29"></a><b>§29. </b>The weaver has special typographical support for the stand-alone Inform
|
||||
document of Preform grammar, and this is the hook for it. Most formats
|
||||
should ignore it.
|
||||
</p>
|
||||
|
@ -966,7 +896,7 @@ should ignore it.
|
|||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">PREFORM_DOCUMENT_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::preform_document<button class="popup" onclick="togglePopup('usagePopup241')">...<span class="popuptext" id="usagePopup241">Usage of <b>Formats::preform_document</b>:<br>InC Support - <a href="4-is.html#SP16">§16</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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="functiontext">Formats::preform_document<button class="popup" onclick="togglePopup('usagePopup239')">...<span class="popuptext" id="usagePopup239">Usage of <b>Formats::preform_document</b>:<br>InC Support - <a href="4-is.html#SP16">§16</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</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">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="reserved">source_line</span><span class="plain"> *</span><span class="identifier">L</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">matter</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">concluding_comment</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
|
@ -979,7 +909,7 @@ should ignore it.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP31"></a><b>§31. </b>When the weaver adds one of its endnotes — "This function is used in...",
|
||||
<p class="inwebparagraph"><a id="SP30"></a><b>§30. </b>When the weaver adds one of its endnotes — "This function is used in...",
|
||||
or some such — it calls this method twice, once before the start, with
|
||||
<code class="display"><span class="extract">end</span></code> set to 1, and once after the end, with <code class="display"><span class="extract">end</span></code> set to 2.
|
||||
</p>
|
||||
|
@ -991,7 +921,7 @@ or some such — it calls this method twice, once before the start, with
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">ENDNOTE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">end</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::endnote<button class="popup" onclick="togglePopup('usagePopup242')">...<span class="popuptext" id="usagePopup242">Usage of <b>Formats::endnote</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a>, <a href="2-tgs.html#SP7_1">§7.1</a><br>The Weaver - <a href="3-tw.html#SP2_1">§2.1</a>, <a href="3-tw.html#SP2_2">§2.2</a>, <a href="3-tw.html#SP2_3">§2.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">end</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::endnote<button class="popup" onclick="togglePopup('usagePopup240')">...<span class="popuptext" id="usagePopup240">Usage of <b>Formats::endnote</b>:<br>Tags - <a href="2-tgs.html#SP7">§7</a>, <a href="2-tgs.html#SP7_1">§7.1</a><br>The Weaver - <a href="3-tw.html#SP2_1">§2.1</a>, <a href="3-tw.html#SP2_2">§2.2</a>, <a href="3-tw.html#SP2_3">§2.3</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">end</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">ENDNOTE_FOR_MTID</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="identifier">end</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -999,7 +929,7 @@ or some such — it calls this method twice, once before the start, with
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP32"></a><b>§32. </b>"Locale" here isn't used in the Unix sense. It means text which describes
|
||||
<p class="inwebparagraph"><a id="SP31"></a><b>§31. </b>"Locale" here isn't used in the Unix sense. It means text which describes
|
||||
a range of numbered paragraphs, from <code class="display"><span class="extract">par1</span></code> to <code class="display"><span class="extract">par2</span></code>, though <code class="display"><span class="extract">par2</span></code> can
|
||||
instead be null, in which case the description is of just one para. (This
|
||||
is often used in endnotes.)
|
||||
|
@ -1013,7 +943,7 @@ is often used in endnotes.)
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">LOCALE_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">par1</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">par2</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::locale<button class="popup" onclick="togglePopup('usagePopup243')">...<span class="popuptext" id="usagePopup243">Usage of <b>Formats::locale</b>:<br>The Weaver - <a href="3-tw.html#SP2_1">§2.1</a>, <a href="3-tw.html#SP3_1">§3.1</a><br>Plain Text Format - <a href="5-ptf.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">par1</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">par2</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::locale<button class="popup" onclick="togglePopup('usagePopup241')">...<span class="popuptext" id="usagePopup241">Usage of <b>Formats::locale</b>:<br>The Weaver - <a href="3-tw.html#SP2_1">§2.1</a>, <a href="3-tw.html#SP3_1">§3.1</a><br>Plain Text Format - <a href="5-ptf.html#SP6">§6</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">par1</span><span class="plain">, </span><span class="reserved">paragraph</span><span class="plain"> *</span><span class="identifier">par2</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">LOCALE_FOR_MTID</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="identifier">par1</span><span class="plain">, </span><span class="identifier">par2</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -1021,7 +951,7 @@ is often used in endnotes.)
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP33"></a><b>§33. </b>And finally: the bottom of the woven file. The <code class="display"><span class="extract">comment</span></code> is, again, not
|
||||
<p class="inwebparagraph"><a id="SP32"></a><b>§32. </b>And finally: the bottom of the woven file. The <code class="display"><span class="extract">comment</span></code> is, again, not
|
||||
intended for human eyes, and will be some sort of "End of weave" remark.
|
||||
</p>
|
||||
|
||||
|
@ -1033,7 +963,7 @@ intended for human eyes, and will be some sort of "End of weave" remark.
|
|||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">TAIL_FOR_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comment</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="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::tail<button class="popup" onclick="togglePopup('usagePopup244')">...<span class="popuptext" id="usagePopup244">Usage of <b>Formats::tail</b>:<br>The Weaver - <a href="3-tw.html#SP1_5">§1.5</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comment</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="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::tail<button class="popup" onclick="togglePopup('usagePopup242')">...<span class="popuptext" id="usagePopup242">Usage of <b>Formats::tail</b>:<br>The Weaver - <a href="3-tw.html#SP1_5">§1.5</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">comment</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="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">;</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wf</span><span class="plain">, </span><span class="constant">TAIL_FOR_MTID</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="identifier">comment</span><span class="plain">, </span><span class="identifier">S</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
|
@ -1041,7 +971,7 @@ intended for human eyes, and will be some sort of "End of weave" remark.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP34"></a><b>§34. Post-processing. </b>Consider what happens when Inweb makes a PDF, via TeX. The initial weave is
|
||||
<p class="inwebparagraph"><a id="SP33"></a><b>§33. Post-processing. </b>Consider what happens when Inweb makes a PDF, via TeX. The initial weave is
|
||||
to a TeX file; it's then "post-processing" which will turn this into a PDF.
|
||||
The following method calls allow such two-stage formats to function; in
|
||||
this case, it would be the PDF format which provides the necessary methods
|
||||
|
@ -1055,14 +985,14 @@ to turn TeX into PDF. The important method is this one:
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">POST_PROCESS_POS_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">open_afterwards</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::post_process_weave<button class="popup" onclick="togglePopup('usagePopup245')">...<span class="popuptext" id="usagePopup245">Usage of <b>Formats::post_process_weave</b>:<br>The Swarm - <a href="3-ts.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">open_afterwards</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::post_process_weave<button class="popup" onclick="togglePopup('usagePopup243')">...<span class="popuptext" id="usagePopup243">Usage of <b>Formats::post_process_weave</b>:<br>The Swarm - <a href="3-ts.html#SP2">§2</a></span></button></span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">open_afterwards</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">, </span><span class="constant">POST_PROCESS_POS_MTID</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">, </span><span class="identifier">open_afterwards</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP35"></a><b>§35. </b>Optionally, a fancy report can be printed out, to describe what has been
|
||||
<p class="inwebparagraph"><a id="SP34"></a><b>§34. </b>Optionally, a fancy report can be printed out, to describe what has been
|
||||
done:
|
||||
</p>
|
||||
|
||||
|
@ -1073,14 +1003,14 @@ done:
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">VMETHOD_TYPE</span><span class="plain">(</span><span class="constant">POST_PROCESS_REPORT_POS_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">)</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::report_on_post_processing<button class="popup" onclick="togglePopup('usagePopup246')">...<span class="popuptext" id="usagePopup246">Usage of <b>Formats::report_on_post_processing</b>:<br>The Swarm - <a href="3-ts.html#SP2_3">§2.3</a></span></button></span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Formats::report_on_post_processing<button class="popup" onclick="togglePopup('usagePopup244')">...<span class="popuptext" id="usagePopup244">Usage of <b>Formats::report_on_post_processing</b>:<br>The Swarm - <a href="3-ts.html#SP2_3">§2.3</a></span></button></span><span class="plain">(</span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">) {</span>
|
||||
<span class="identifier">VMETHOD_CALL</span><span class="plain">(</span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">, </span><span class="constant">POST_PROCESS_REPORT_POS_MTID</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">);</span>
|
||||
<span class="plain">}</span>
|
||||
</pre>
|
||||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP36"></a><b>§36. </b>After post-processing, an index file is sometimes needed. For example, if a
|
||||
<p class="inwebparagraph"><a id="SP35"></a><b>§35. </b>After post-processing, an index file is sometimes needed. For example, if a
|
||||
big web is woven to a swarm of PDFs, one for each section, then we also want
|
||||
to make an index page in HTML which provides annotated links to those PDFs.
|
||||
</p>
|
||||
|
@ -1092,7 +1022,7 @@ to make an index page in HTML which provides annotated links to those PDFs.
|
|||
|
||||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">INDEX_PDFS_POS_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::index_pdfs<button class="popup" onclick="togglePopup('usagePopup247')">...<span class="popuptext" id="usagePopup247">Usage of <b>Formats::index_pdfs</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">format</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::index_pdfs<button class="popup" onclick="togglePopup('usagePopup245')">...<span class="popuptext" id="usagePopup245">Usage of <b>Formats::index_pdfs</b>:<br>none</span></button></span><span class="plain">(</span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">format</span><span class="plain">) {</span>
|
||||
<span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain"> = </span><span class="functiontext"><a href="#SP1">Formats::find_by_name</a></span><span class="plain">(</span><span class="identifier">format</span><span class="plain">);</span>
|
||||
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">wf</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
|
@ -1103,7 +1033,7 @@ to make an index page in HTML which provides annotated links to those PDFs.
|
|||
|
||||
<p class="inwebparagraph"></p>
|
||||
|
||||
<p class="inwebparagraph"><a id="SP37"></a><b>§37. </b>And in that index file, we may want to substitute in values for placeholder
|
||||
<p class="inwebparagraph"><a id="SP36"></a><b>§36. </b>And in that index file, we may want to substitute in values for placeholder
|
||||
text like <code class="display"><span class="extract">[[PDF Size]]</span></code> in the template file. This is the <code class="display"><span class="extract">detail</span></code>.
|
||||
</p>
|
||||
|
||||
|
@ -1115,7 +1045,7 @@ text like <code class="display"><span class="extract">[[PDF Size]]</span></code>
|
|||
<pre class="display">
|
||||
<span class="identifier">IMETHOD_TYPE</span><span class="plain">(</span><span class="constant">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain">, </span><span class="reserved">weave_format</span><span class="plain"> *</span><span class="identifier">wf</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">OUT</span><span class="plain">,</span>
|
||||
<span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">, </span><span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">detail</span><span class="plain">, </span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">)</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::substitute_post_processing_data<button class="popup" onclick="togglePopup('usagePopup248')">...<span class="popuptext" id="usagePopup248">Usage of <b>Formats::substitute_post_processing_data</b>:<br>The Indexer - <a href="3-ti.html#SP5_1_8_2">§5.1.8.2</a>, <a href="3-ti.html#SP5_1_8_3">§5.1.8.3</a>, <a href="3-ti.html#SP5_1_8_4">§5.1.8.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Formats::substitute_post_processing_data<button class="popup" onclick="togglePopup('usagePopup246')">...<span class="popuptext" id="usagePopup246">Usage of <b>Formats::substitute_post_processing_data</b>:<br>The Indexer - <a href="3-ti.html#SP5_1_8_2">§5.1.8.2</a>, <a href="3-ti.html#SP5_1_8_3">§5.1.8.3</a>, <a href="3-ti.html#SP5_1_8_4">§5.1.8.4</a></span></button></span><span class="plain">(</span><span class="constant">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">weave_target</span><span class="plain"> *</span><span class="identifier">wv</span><span class="plain">,</span>
|
||||
<span class="reserved">text_stream</span><span class="plain"> *</span><span class="identifier">detail</span><span class="plain">, </span><span class="reserved">weave_pattern</span><span class="plain"> *</span><span class="identifier">pattern</span><span class="plain">) {</span>
|
||||
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rv</span><span class="plain"> = </span><span class="constant">FALSE</span><span class="plain">;</span>
|
||||
<span class="identifier">IMETHOD_CALL</span><span class="plain">(</span><span class="identifier">rv</span><span class="plain">, </span><span class="identifier">wv</span><span class="plain">-></span><span class="element">format</span><span class="plain">, </span><span class="constant">POST_PROCESS_SUBSTITUTE_POS_MTID</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="identifier">detail</span><span class="plain">, </span><span class="identifier">pattern</span><span class="plain">);</span>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue