From 5e65f71a85949974a63c8aa039b0e70db558c811 Mon Sep 17 00:00:00 2001 From: Graham Nelson Date: Wed, 8 Apr 2020 12:48:06 +0100 Subject: [PATCH] Added Code In Code Comments Notation and Code In Commentary Notation --- Chapter 5/HTML Formats.w | 2 +- Chapter 5/TeX Format.w | 3 +- Chapter 5/Weave Formats.w | 36 +- Manual/How to Write a Web.w | 24 +- Tangled/inweb.c | 1798 +++++++++-------- docs/foundation-module/8-bdfw.html | 1 + docs/inweb/4-as.html | 2 +- docs/inweb/5-hf.html | 2 +- docs/inweb/5-tf.html | 3 +- docs/inweb/5-wf.html | 40 +- docs/inweb/M-htwaw.html | 30 +- .../Chapter 8/Bibliographic Data for Webs.w | 1 + 12 files changed, 1011 insertions(+), 931 deletions(-) diff --git a/Chapter 5/HTML Formats.w b/Chapter 5/HTML Formats.w index f289507..31b8834 100644 --- a/Chapter 5/HTML Formats.w +++ b/Chapter 5/HTML Formats.w @@ -322,7 +322,7 @@ void HTMLFormat::source_code(weave_format *self, text_stream *OUT, weave_target if (Str::len(concluding_comment) > 0) { if (!starts) WRITE(" "); HTML_OPEN_WITH("span", "class=\"comment\""); - Formats::text(OUT, wv, concluding_comment); + Formats::text_comment(OUT, wv, concluding_comment); HTML_CLOSE("span"); } WRITE("\n"); diff --git a/Chapter 5/TeX Format.w b/Chapter 5/TeX Format.w index 374e3ca..34c3624 100644 --- a/Chapter 5/TeX Format.w +++ b/Chapter 5/TeX Format.w @@ -482,7 +482,8 @@ int TeX::preform_document(weave_format *self, text_stream *OUT, web *W, weave_ta WRITE("\\hfill$\\longrightarrow$ {\\ttninepoint\\it %S}", problem); else if (Str::len(concluding_comment) > 0) { WRITE(" \\hfill{\\ttninepoint\\it "); - if (concluding_comment) Formats::text(OUT, wv, concluding_comment); + if (Str::len(concluding_comment) > 0) + Formats::text_comment(OUT, wv, concluding_comment); WRITE("}"); } WRITE("\n"); diff --git a/Chapter 5/Weave Formats.w b/Chapter 5/Weave Formats.w index c071db8..6a44b30 100644 --- a/Chapter 5/Weave Formats.w +++ b/Chapter 5/Weave Formats.w @@ -370,22 +370,30 @@ as appropriate. = void Formats::text(OUTPUT_STREAM, weave_target *wv, text_stream *id) { - Formats::text_r(OUT, wv, id, FALSE); + Formats::text_r(OUT, wv, id, FALSE, FALSE); +} +void Formats::text_comment(OUTPUT_STREAM, weave_target *wv, text_stream *id) { + Formats::text_r(OUT, wv, id, FALSE, TRUE); } -void Formats::text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, int within) { - for (int i=0; i < Str::len(id); i++) { - if (Str::get_at(id, i) == '\\') i++; - else if (Str::get_at(id, i) == '|') { - TEMPORARY_TEXT(before); - Str::copy(before, id); Str::truncate(before, i); - TEMPORARY_TEXT(after); - Str::substr(after, Str::at(id, i+1), Str::end(id)); - Formats::text_r(OUT, wv, before, within); - Formats::text_r(OUT, wv, after, (within)?FALSE:TRUE); - DISCARD_TEXT(before); - DISCARD_TEXT(after); - return; +void Formats::text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, + int within, int comments) { + text_stream *notation = Bibliographic::get_datum(wv->weave_web->md, + (comments)?(I"Code In Code Comments Notation"):(I"Code In Commentary Notation")); + if (Str::ne(notation, I"Off")) { + for (int i=0; i < Str::len(id); i++) { + if (Str::get_at(id, i) == '\\') i += Str::len(notation) - 1; + else if (ACMESupport::text_at(id, i, notation)) { + TEMPORARY_TEXT(before); + Str::copy(before, id); Str::truncate(before, i); + TEMPORARY_TEXT(after); + Str::substr(after, Str::at(id, i + Str::len(notation)), Str::end(id)); + Formats::text_r(OUT, wv, before, within, comments); + Formats::text_r(OUT, wv, after, (within)?FALSE:TRUE, comments); + DISCARD_TEXT(before); + DISCARD_TEXT(after); + return; + } } } if (within) { diff --git a/Manual/How to Write a Web.w b/Manual/How to Write a Web.w index dd43239..e012a41 100644 --- a/Manual/How to Write a Web.w +++ b/Manual/How to Write a Web.w @@ -281,11 +281,25 @@ indented one tab stop further in, like so: (-d) Pick a song and sing a yellow nectarine. (Scott Weiland) @ Text placed between vertical strokes will be set in a fixed-space, code -style font, |thus|. - -If a series of lines is indented with tab characters and consists entirely -of courier-type code extracts, it will be set as a running-on series of -code lines. +style font, |thus|. This paragraph appears in the web you are reading thus: += (text as Inweb) + @ Text placed between vertical strokes will be set in a fixed-space, code + style font, |thus|. This paragraph appears in the web you are reading thus: += +This notation may be inconvenient if you need the vertical stroke character +for something else, especially as the notation is used both in code comments +and in paragraph commentary. But both notations can be configured in the +Contents page of a web, thus: += (text as Inweb) +Code In Code Comments Notation: Off +Code In Commentary Notation: %% += +This example would turn off the feature in code comments, but allow it in +paragraph commentary; we would then need to write... += (text as Inweb) + @ Text placed between vertical strokes will be set in a fixed-space, code + style font, %%thus%%. This paragraph appears in the web you are reading thus: += @ A line written thus: = (text as Inweb) diff --git a/Tangled/inweb.c b/Tangled/inweb.c index ca5f69b..fc6b384 100644 --- a/Tangled/inweb.c +++ b/Tangled/inweb.c @@ -2994,15 +2994,15 @@ int Bibliographic__datum_can_be_declared(web_md *Wm, text_stream *key) ; int Bibliographic__datum_on_or_off(web_md *Wm, text_stream *key) ; #line 45 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" void Bibliographic__initialise_data(web_md *Wm) ; -#line 79 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 80 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" void Bibliographic__check_required_data(web_md *Wm) ; -#line 92 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 93 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" text_stream * Bibliographic__get_datum(web_md *Wm, text_stream *key) ; -#line 98 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 99 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" int Bibliographic__data_exists(web_md *Wm, text_stream *key) ; -#line 104 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 105 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" web_bibliographic_datum * Bibliographic__look_up_datum(web_md *Wm, text_stream *key) ; -#line 119 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 120 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" web_bibliographic_datum * Bibliographic__set_datum(web_md *Wm, text_stream *key, text_stream *val) ; #line 30 "inweb/foundation-module/Chapter 8/Web Modules.w" module * WebModules__new(text_stream *name, pathname *at, int m) ; @@ -3476,25 +3476,27 @@ void Formats__change_material(OUTPUT_STREAM, weave_target *wv, int old_materia void Formats__change_colour(OUTPUT_STREAM, weave_target *wv, int col, int in_code) ; #line 372 "inweb/Chapter 5/Weave Formats.w" void Formats__text(OUTPUT_STREAM, weave_target *wv, text_stream *id) ; -#line 376 "inweb/Chapter 5/Weave Formats.w" -void Formats__text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, int within) ; -#line 413 "inweb/Chapter 5/Weave Formats.w" +#line 375 "inweb/Chapter 5/Weave Formats.w" +void Formats__text_comment(OUTPUT_STREAM, weave_target *wv, text_stream *id) ; +#line 379 "inweb/Chapter 5/Weave Formats.w" +void Formats__text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, int within, int comments) ; +#line 421 "inweb/Chapter 5/Weave Formats.w" void Formats__text_fragment(OUTPUT_STREAM, weave_target *wv, text_stream *fragment) ; -#line 438 "inweb/Chapter 5/Weave Formats.w" +#line 446 "inweb/Chapter 5/Weave Formats.w" int Formats__preform_document(OUTPUT_STREAM, weave_target *wv, web *W, chapter *C, section *S, source_line *L, text_stream *matter, text_stream *concluding_comment) ; -#line 456 "inweb/Chapter 5/Weave Formats.w" +#line 464 "inweb/Chapter 5/Weave Formats.w" void Formats__endnote(OUTPUT_STREAM, weave_target *wv, int end) ; -#line 471 "inweb/Chapter 5/Weave Formats.w" +#line 479 "inweb/Chapter 5/Weave Formats.w" void Formats__locale(OUTPUT_STREAM, weave_target *wv, paragraph *par1, paragraph *par2) ; -#line 484 "inweb/Chapter 5/Weave Formats.w" +#line 492 "inweb/Chapter 5/Weave Formats.w" void Formats__tail(OUTPUT_STREAM, weave_target *wv, text_stream *comment, section *S) ; -#line 500 "inweb/Chapter 5/Weave Formats.w" +#line 508 "inweb/Chapter 5/Weave Formats.w" void Formats__post_process_weave(weave_target *wv, int open_afterwards) ; -#line 511 "inweb/Chapter 5/Weave Formats.w" +#line 519 "inweb/Chapter 5/Weave Formats.w" void Formats__report_on_post_processing(weave_target *wv) ; -#line 523 "inweb/Chapter 5/Weave Formats.w" +#line 531 "inweb/Chapter 5/Weave Formats.w" int Formats__index_pdfs(text_stream *format) ; -#line 539 "inweb/Chapter 5/Weave Formats.w" +#line 547 "inweb/Chapter 5/Weave Formats.w" int Formats__substitute_post_processing_data(OUTPUT_STREAM, weave_target *wv, text_stream *detail, weave_pattern *pattern) ; #line 9 "inweb/Chapter 5/Plain Text Format.w" void PlainText__create(void) ; @@ -3580,17 +3582,17 @@ void TeX__change_material(weave_format *self, text_stream *OUT, weave_target *w void TeX__tail(weave_format *self, text_stream *OUT, weave_target *wv, text_stream *comment, section *S) ; #line 417 "inweb/Chapter 5/TeX Format.w" int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_target *wv, chapter *C, section *S, source_line *L, text_stream *matter, text_stream *concluding_comment) ; -#line 496 "inweb/Chapter 5/TeX Format.w" +#line 497 "inweb/Chapter 5/TeX Format.w" void TeX__post_process_PDF(weave_format *self, weave_target *wv, int open) ; -#line 499 "inweb/Chapter 5/TeX Format.w" +#line 500 "inweb/Chapter 5/TeX Format.w" void TeX__post_process_DVI(weave_format *self, weave_target *wv, int open) ; -#line 504 "inweb/Chapter 5/TeX Format.w" +#line 505 "inweb/Chapter 5/TeX Format.w" void TeX__post_process_report(weave_format *self, weave_target *wv) ; -#line 509 "inweb/Chapter 5/TeX Format.w" +#line 510 "inweb/Chapter 5/TeX Format.w" int TeX__post_process_substitute(weave_format *self, text_stream *OUT, weave_target *wv, text_stream *detail, weave_pattern *pattern) ; -#line 522 "inweb/Chapter 5/TeX Format.w" +#line 523 "inweb/Chapter 5/TeX Format.w" void TeX__remove_math_mode(OUTPUT_STREAM, text_stream *text) ; -#line 529 "inweb/Chapter 5/TeX Format.w" +#line 530 "inweb/Chapter 5/TeX Format.w" void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int to) ; #line 6 "inweb/Chapter 5/HTML Formats.w" void HTMLFormat__create(void) ; @@ -4175,6 +4177,11 @@ text_stream *TL_IS_464 = NULL; text_stream *TL_IS_465 = NULL; text_stream *TL_IS_466 = NULL; text_stream *TL_IS_467 = NULL; +text_stream *TL_IS_468 = NULL; +text_stream *TL_IS_469 = NULL; +text_stream *TL_IS_470 = NULL; +text_stream *TL_IS_471 = NULL; +text_stream *TL_IS_472 = NULL; void register_tangled_text_literals(void); #line 57 "inweb/foundation-module/Chapter 2/Streams.w" #define WRITE(args...) Writers__printf(OUT, args) @@ -7020,11 +7027,11 @@ int CommandLine__read_pair_p(text_stream *opt, text_stream *opt_val, int N, ; innocuous = TRUE; break; case VERSION_CLSW: { PRINT("inweb"); - char *svn = "7-alpha.1+1A13"; + char *svn = "7-alpha.1+1A14"; if (svn[0]) PRINT(" version %s", svn); char *vname = "Escape to Danger"; if (vname[0]) PRINT(" '%s'", vname); - char *d = "7 April 2020"; + char *d = "8 April 2020"; if (d[0]) PRINT(" (%s)", d); PRINT("\n"); innocuous = TRUE; break; @@ -12785,10 +12792,11 @@ void Bibliographic__initialise_data(web_md *Wm) { bd = Bibliographic__set_datum(Wm, TL_IS_49, TL_IS_50); bd->on_or_off = TRUE; bd = Bibliographic__set_datum(Wm, TL_IS_51, TL_IS_52); bd->on_or_off = TRUE; bd = Bibliographic__set_datum(Wm, TL_IS_53, TL_IS_54); - bd = Bibliographic__set_datum(Wm, TL_IS_55, NULL); + bd = Bibliographic__set_datum(Wm, TL_IS_55, TL_IS_56); + bd = Bibliographic__set_datum(Wm, TL_IS_57, NULL); } -#line 79 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 80 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" void Bibliographic__check_required_data(web_md *Wm) { web_bibliographic_datum *bd; LOOP_OVER_BIBLIOGRAPHIC_DATA(bd, Wm) @@ -12798,7 +12806,7 @@ void Bibliographic__check_required_data(web_md *Wm) { "The web does not specify '%S: ...'", bd->key); } -#line 92 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 93 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" text_stream *Bibliographic__get_datum(web_md *Wm, text_stream *key) { web_bibliographic_datum *bd = Bibliographic__look_up_datum(Wm, key); if (bd) return bd->value; @@ -12821,12 +12829,12 @@ web_bibliographic_datum *Bibliographic__look_up_datum(web_md *Wm, text_stream *k return NULL; } -#line 119 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 120 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" web_bibliographic_datum *Bibliographic__set_datum(web_md *Wm, text_stream *key, text_stream *val) { web_bibliographic_datum *bd = Bibliographic__look_up_datum(Wm, key); if (bd == NULL) { -#line 128 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 129 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" bd = CREATE(web_bibliographic_datum); bd->key = Str__duplicate(key); bd->value = Str__duplicate(val); @@ -12837,21 +12845,21 @@ web_bibliographic_datum *Bibliographic__set_datum(web_md *Wm, text_stream *key, ADD_TO_LINKED_LIST(bd, web_bibliographic_datum, Wm->bibliographic_data); } -#line 121 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 122 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" else Str__copy(bd->value, val); if (Str__eq_wide_string(key, L"Title")) { -#line 143 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 144 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" TEMPORARY_TEXT(recapped); Str__copy(recapped, val); LOOP_THROUGH_TEXT(P, recapped) Str__put(P, toupper(Str__get(P))); - Bibliographic__set_datum(Wm, TL_IS_56, recapped); + Bibliographic__set_datum(Wm, TL_IS_58, recapped); DISCARD_TEXT(recapped); } -#line 123 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" +#line 124 "inweb/foundation-module/Chapter 8/Bibliographic Data for Webs.w" ; return bd; } @@ -12865,14 +12873,14 @@ module *WebModules__new(text_stream *name, pathname *at, int m) { M->module_name = Str__duplicate(name); M->dependencies = NEW_LINKED_LIST(module); M->origin_marker = m; - M->module_tag = TL_IS_57; + M->module_tag = TL_IS_59; M->sections_md = NEW_LINKED_LIST(section_md); return M; } #line 50 "inweb/foundation-module/Chapter 8/Web Modules.w" module *WebModules__create_main_module(web_md *WS) { - return WebModules__new(TL_IS_58, WS->path_to_web, READING_WEB_MOM); + return WebModules__new(TL_IS_60, WS->path_to_web, READING_WEB_MOM); } #line 61 "inweb/foundation-module/Chapter 8/Web Modules.w" @@ -12924,9 +12932,9 @@ int WebModules__exists(pathname *P) { #line 10 "inweb/foundation-module/Chapter 8/Build Files.w" filename *BuildFiles__build_file_for_web(web_md *WS) { - filename *F = Filenames__in_folder(WS->path_to_web, TL_IS_59); + filename *F = Filenames__in_folder(WS->path_to_web, TL_IS_61); if (TextFiles__exists(F)) return F; - F = Filenames__in_folder(NULL, TL_IS_60); + F = Filenames__in_folder(NULL, TL_IS_62); if (TextFiles__exists(F)) return F; return NULL; } @@ -12980,25 +12988,25 @@ void BuildFiles__set_bibliographic_data_for(web_md *WS) { if (F) { build_file_data bfd = BuildFiles__read(F); if (Str__len(bfd.prerelease_text) > 0) - Bibliographic__set_datum(WS, TL_IS_61, bfd.prerelease_text); + Bibliographic__set_datum(WS, TL_IS_63, bfd.prerelease_text); if (Str__len(bfd.build_code) > 0) - Bibliographic__set_datum(WS, TL_IS_62, bfd.build_code); + Bibliographic__set_datum(WS, TL_IS_64, bfd.build_code); if (Str__len(bfd.build_date) > 0) - Bibliographic__set_datum(WS, TL_IS_63, bfd.build_date); + Bibliographic__set_datum(WS, TL_IS_65, bfd.build_date); } } #line 99 "inweb/foundation-module/Chapter 8/Build Files.w" void BuildFiles__deduce_semver(web_md *WS) { TEMPORARY_TEXT(combined); - text_stream *s = Bibliographic__get_datum(WS, TL_IS_64); + text_stream *s = Bibliographic__get_datum(WS, TL_IS_66); if (Str__len(s) > 0) WRITE_TO(combined, "%S", s); else { - text_stream *v = Bibliographic__get_datum(WS, TL_IS_65); + text_stream *v = Bibliographic__get_datum(WS, TL_IS_67); if (Str__len(v) > 0) WRITE_TO(combined, "%S", v); - text_stream *p = Bibliographic__get_datum(WS, TL_IS_66); + text_stream *p = Bibliographic__get_datum(WS, TL_IS_68); if (Str__len(p) > 0) WRITE_TO(combined, "-%S", p); - text_stream *b = Bibliographic__get_datum(WS, TL_IS_67); + text_stream *b = Bibliographic__get_datum(WS, TL_IS_69); if (Str__len(b) > 0) WRITE_TO(combined, "+%S", b); } if (Str__len(combined) > 0) { @@ -13008,7 +13016,7 @@ void BuildFiles__deduce_semver(web_md *WS) { "Combined version '%S' does not comply with the semver standard", combined); } else { - Bibliographic__set_datum(WS, TL_IS_68, combined); + Bibliographic__set_datum(WS, TL_IS_70, combined); } } DISCARD_TEXT(combined); @@ -13137,10 +13145,10 @@ int main(int argc, char **argv) { ; inweb_instructions args = Configuration__read(argc, argv); fundamental_mode = args.inweb_mode; - path_to_inweb = Pathnames__installation_path("INWEB_PATH", TL_IS_70); + path_to_inweb = Pathnames__installation_path("INWEB_PATH", TL_IS_72); if (args.verbose_switch) PRINT("Installation path is %p\n", path_to_inweb); - path_to_inweb_patterns = Pathnames__subfolder(path_to_inweb, TL_IS_71); - path_to_inweb_materials = Pathnames__subfolder(path_to_inweb, TL_IS_72); + path_to_inweb_patterns = Pathnames__subfolder(path_to_inweb, TL_IS_73); + path_to_inweb_materials = Pathnames__subfolder(path_to_inweb, TL_IS_74); Main__follow_instructions(&args); @@ -13171,11 +13179,11 @@ void Main__follow_instructions(inweb_instructions *ins) { { #line 111 "inweb/Chapter 1/Program Control.w" if ((ins->makefile_setting) && (ins->prototype_setting == NULL)) - ins->prototype_setting = Filenames__from_text(TL_IS_73); - if ((ins->gitignore_setting) && (ins->prototype_setting == NULL)) - ins->prototype_setting = Filenames__from_text(TL_IS_74); - if ((ins->writeme_setting) && (ins->prototype_setting == NULL)) ins->prototype_setting = Filenames__from_text(TL_IS_75); + if ((ins->gitignore_setting) && (ins->prototype_setting == NULL)) + ins->prototype_setting = Filenames__from_text(TL_IS_76); + if ((ins->writeme_setting) && (ins->prototype_setting == NULL)) + ins->prototype_setting = Filenames__from_text(TL_IS_77); if (ins->makefile_setting) Makefiles__write(W, ins->prototype_setting, ins->makefile_setting, WebModules__make_search_path(ins->import_setting)); @@ -13255,10 +13263,10 @@ void Main__follow_instructions(inweb_instructions *ins) { { #line 216 "inweb/Chapter 1/Program Control.w" tn = NULL; - if (Bibliographic__data_exists(W->md, TL_IS_76)) - Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_77)); + if (Bibliographic__data_exists(W->md, TL_IS_78)) + Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_79)); else - Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_78)); + Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_80)); Str__concatenate(tangle_leaf, W->main_language->file_extension); } @@ -13300,13 +13308,13 @@ void Main__follow_instructions(inweb_instructions *ins) { { #line 268 "inweb/Chapter 1/Program Control.w" if (ins->weave_into_setting == NULL) { - pathname *docs = Pathnames__subfolder(W->md->path_to_web, TL_IS_79); + pathname *docs = Pathnames__subfolder(W->md->path_to_web, TL_IS_81); Pathnames__create_in_file_system(docs); text_stream *leaf = Str__new(); - if (Bibliographic__data_exists(W->md, TL_IS_80)) - Str__copy(leaf, Bibliographic__get_datum(W->md, TL_IS_81)); + if (Bibliographic__data_exists(W->md, TL_IS_82)) + Str__copy(leaf, Bibliographic__get_datum(W->md, TL_IS_83)); else - Str__copy(leaf, Bibliographic__get_datum(W->md, TL_IS_82)); + Str__copy(leaf, Bibliographic__get_datum(W->md, TL_IS_84)); if (Str__len(leaf) > 0) { ins->weave_into_setting = Pathnames__subfolder(docs, leaf); Pathnames__create_in_file_system(ins->weave_into_setting); @@ -13315,7 +13323,7 @@ void Main__follow_instructions(inweb_instructions *ins) { Pathnames__create_in_file_system(ins->weave_into_setting); } W->redirect_weaves_to = ins->weave_into_setting; - ins->weave_pattern = TL_IS_83; + ins->weave_pattern = TL_IS_85; } #line 235 "inweb/Chapter 1/Program Control.w" @@ -13443,7 +13451,7 @@ inweb_instructions Configuration__read(int argc, char **argv) { L" sections: ditto with sections\n"); CommandLine__begin_group(LANGUAGES_CLSG, - TL_IS_85); + TL_IS_87); CommandLine__declare_switch(LANGUAGE_CLSW, L"read-language", 2, L"read language definition from file X"); CommandLine__declare_switch(LANGUAGES_CLSW, L"read-languages", 2, @@ -13457,7 +13465,7 @@ inweb_instructions Configuration__read(int argc, char **argv) { CommandLine__end_group(); CommandLine__begin_group(ANALYSIS_CLSG, - TL_IS_86); + TL_IS_88); CommandLine__declare_switch(CATALOGUE_CLSW, L"catalogue", 1, L"list the sections in the web"); CommandLine__declare_switch(CATALOGUE_CLSW, L"catalog", 1, @@ -13483,7 +13491,7 @@ inweb_instructions Configuration__read(int argc, char **argv) { CommandLine__end_group(); CommandLine__begin_group(WEAVING_CLSG, - TL_IS_87); + TL_IS_89); CommandLine__declare_switch(WEAVE_DOCS_CLSW, L"weave-docs", 1, L"weave the web for use at GitHub Pages"); CommandLine__declare_switch(WEAVE_CLSW, L"weave", 1, @@ -13507,7 +13515,7 @@ inweb_instructions Configuration__read(int argc, char **argv) { CommandLine__end_group(); CommandLine__begin_group(TANGLING_CLSG, - TL_IS_88); + TL_IS_90); CommandLine__declare_switch(TANGLE_CLSW, L"tangle", 1, L"tangle the web into machine-compilable form"); CommandLine__declare_switch(TANGLE_TO_CLSW, L"tangle-to", 2, @@ -13530,7 +13538,7 @@ inweb_instructions Configuration__read(int argc, char **argv) { args.inweb_mode = NO_MODE; } if (Str__len(args.chosen_range) == 0) { - Str__copy(args.chosen_range, TL_IS_84); + Str__copy(args.chosen_range, TL_IS_86); } return args; } @@ -13674,7 +13682,7 @@ breadcrumb_request *Configuration__breadcrumb(text_stream *arg) { void Configuration__bareword(int id, text_stream *opt, void *state) { inweb_instructions *args = (inweb_instructions *) state; if ((args->chosen_web == NULL) && (args->chosen_file == NULL)) { - if (Str__suffix_eq(opt, TL_IS_89, 6)) + if (Str__suffix_eq(opt, TL_IS_91, 6)) args->chosen_file = Filenames__from_text(opt); else args->chosen_web = Pathnames__from_text(opt); @@ -13693,7 +13701,7 @@ void Configuration__set_range(inweb_instructions *args, text_stream *opt) { } else { if (++args->targets > 1) Errors__fatal("at most one target may be given"); if (Str__eq_wide_string(opt, L"all")) { - Str__copy(args->chosen_range, TL_IS_90); + Str__copy(args->chosen_range, TL_IS_92); } else if (((isalnum(Str__get_first_char(opt))) && (Str__len(opt) == 1)) || (Regexp__match(&mr, opt, L"%i+/%i+"))) { Str__copy(args->chosen_range, opt); @@ -13737,10 +13745,10 @@ weave_pattern *Patterns__find(web *W, text_stream *name) { wp->patterned_for = W; wp->show_abbrevs = TRUE; wp->number_sections = FALSE; - wp->default_range = Str__duplicate(TL_IS_91); - wp->tex_command = Str__duplicate(TL_IS_92); - wp->pdftex_command = Str__duplicate(TL_IS_93); - wp->open_command = Str__duplicate(TL_IS_94); + wp->default_range = Str__duplicate(TL_IS_93); + wp->tex_command = Str__duplicate(TL_IS_94); + wp->pdftex_command = Str__duplicate(TL_IS_95); + wp->open_command = Str__duplicate(TL_IS_96); } #line 40 "inweb/Chapter 1/Patterns.w" @@ -13750,12 +13758,12 @@ weave_pattern *Patterns__find(web *W, text_stream *name) { #line 63 "inweb/Chapter 1/Patterns.w" wp->pattern_location = Pathnames__subfolder( - Pathnames__subfolder(W->md->path_to_web, TL_IS_95), + Pathnames__subfolder(W->md->path_to_web, TL_IS_97), name); - pattern_file = Filenames__in_folder(wp->pattern_location, TL_IS_96); + pattern_file = Filenames__in_folder(wp->pattern_location, TL_IS_98); if (TextFiles__exists(pattern_file) == FALSE) { wp->pattern_location = Pathnames__subfolder(path_to_inweb_patterns, name); - pattern_file = Filenames__in_folder(wp->pattern_location, TL_IS_97); + pattern_file = Filenames__in_folder(wp->pattern_location, TL_IS_99); if (TextFiles__exists(pattern_file) == FALSE) Errors__fatal_with_text("no such weave pattern as '%S'", name); } @@ -13795,22 +13803,22 @@ void Patterns__scan_pattern_line(text_stream *line, text_file_position *tfp, voi if (Regexp__match(&mr, line, L" *(%c+?) = (%c+)")) { #line 107 "inweb/Chapter 1/Patterns.w" - if (Str__eq(mr.exp[0], TL_IS_98)) { + if (Str__eq(mr.exp[0], TL_IS_100)) { wp->pattern_format = Formats__find_by_name(mr.exp[1]); - } else if (Str__eq(mr.exp[0], TL_IS_99)) { - wp->show_abbrevs = Patterns__yes_or_no(mr.exp[1], tfp); - } else if (Str__eq(mr.exp[0], TL_IS_100)) { - wp->number_sections = Patterns__yes_or_no(mr.exp[1], tfp); } else if (Str__eq(mr.exp[0], TL_IS_101)) { - wp->default_range = Str__duplicate(mr.exp[1]); + wp->show_abbrevs = Patterns__yes_or_no(mr.exp[1], tfp); } else if (Str__eq(mr.exp[0], TL_IS_102)) { - wp->tex_command = Str__duplicate(mr.exp[1]); + wp->number_sections = Patterns__yes_or_no(mr.exp[1], tfp); } else if (Str__eq(mr.exp[0], TL_IS_103)) { - wp->pdftex_command = Str__duplicate(mr.exp[1]); + wp->default_range = Str__duplicate(mr.exp[1]); } else if (Str__eq(mr.exp[0], TL_IS_104)) { + wp->tex_command = Str__duplicate(mr.exp[1]); + } else if (Str__eq(mr.exp[0], TL_IS_105)) { + wp->pdftex_command = Str__duplicate(mr.exp[1]); + } else if (Str__eq(mr.exp[0], TL_IS_106)) { wp->open_command = Str__duplicate(mr.exp[1]); } else if ((Bibliographic__data_exists(wp->patterned_for->md, mr.exp[0])) || - (Str__eq(mr.exp[0], TL_IS_105))) { + (Str__eq(mr.exp[0], TL_IS_107))) { Bibliographic__set_datum(wp->patterned_for->md, mr.exp[0], mr.exp[1]); } else { PRINT("Setting: %S\n", mr.exp[0]); @@ -13871,15 +13879,15 @@ void Patterns__scan_pattern_line(text_stream *line, text_file_position *tfp, voi #line 158 "inweb/Chapter 1/Patterns.w" int Patterns__yes_or_no(text_stream *arg, text_file_position *tfp) { - if (Str__eq(arg, TL_IS_106)) return TRUE; - if (Str__eq(arg, TL_IS_107)) return FALSE; + if (Str__eq(arg, TL_IS_108)) return TRUE; + if (Str__eq(arg, TL_IS_109)) return FALSE; Errors__in_text_file("setting must be 'yes' or 'no'", tfp); return FALSE; } #line 176 "inweb/Chapter 1/Patterns.w" filename *Patterns__obtain_filename(weave_pattern *pattern, text_stream *leafname) { - if (Str__prefix_eq(leafname, TL_IS_108, 3)) { + if (Str__prefix_eq(leafname, TL_IS_110, 3)) { Str__delete_first_character(leafname); Str__delete_first_character(leafname); Str__delete_first_character(leafname); @@ -13949,7 +13957,7 @@ web *Reader__load_web(pathname *P, filename *alt_F, module_search *I, int verbos #line 135 "inweb/Chapter 2/The Reader.w" TEMPORARY_TEXT(IB); WRITE_TO(IB, "%s", INWEB_BUILD); - web_bibliographic_datum *bd = Bibliographic__set_datum(W->md, TL_IS_109, IB); + web_bibliographic_datum *bd = Bibliographic__set_datum(W->md, TL_IS_111, IB); bd->declaration_permitted = FALSE; DISCARD_TEXT(IB); @@ -13968,7 +13976,7 @@ web *Reader__load_web(pathname *P, filename *alt_F, module_search *I, int verbos W->redirect_weaves_to = NULL; W->main_language = Languages__default(W); W->no_lines = 0; W->no_paragraphs = 0; - text_stream *language_name = Bibliographic__get_datum(W->md, TL_IS_110); + text_stream *language_name = Bibliographic__get_datum(W->md, TL_IS_112); if (Str__len(language_name) > 0) W->main_language = Languages__find_by_name(language_name, W); main_target = Reader__add_tangle_target(W, W->main_language); @@ -14205,13 +14213,13 @@ void Reader__scan_source_line(text_stream *line, text_file_position *tfp, void * #line 296 "inweb/Chapter 2/The Reader.w" pathname *Reader__woven_folder(web *W) { - pathname *P = Pathnames__subfolder(W->md->path_to_web, TL_IS_111); + pathname *P = Pathnames__subfolder(W->md->path_to_web, TL_IS_113); if (Pathnames__create_in_file_system(P) == FALSE) Errors__fatal_with_path("unable to create Woven subdirectory", P); return P; } pathname *Reader__tangled_folder(web *W) { - pathname *P = Pathnames__subfolder(W->md->path_to_web, TL_IS_112); + pathname *P = Pathnames__subfolder(W->md->path_to_web, TL_IS_114); if (Pathnames__create_in_file_system(P) == FALSE) Errors__fatal_with_path("unable to create Tangled subdirectory", P); return P; @@ -14290,7 +14298,7 @@ int Reader__web_has_one_section(web *W) { #line 430 "inweb/Chapter 2/The Reader.w" void Reader__print_web_statistics(web *W) { - PRINT("web \"%S\": ", Bibliographic__get_datum(W->md, TL_IS_113)); + PRINT("web \"%S\": ", Bibliographic__get_datum(W->md, TL_IS_115)); int c = WebMetadata__chapter_count(W->md); int s = WebMetadata__section_count(W->md); if (W->md->chaptered) PRINT("%d chapter%s : ", @@ -14431,7 +14439,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 129 "inweb/Chapter 2/The Parser.w" - source_line *NL = Lines__new_source_line(TL_IS_116, &(L->source)); + source_line *NL = Lines__new_source_line(TL_IS_118, &(L->source)); PL->next_line = NL; NL->next_line = L; L = PL; @@ -14444,13 +14452,13 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { } if ((PL) && (Regexp__match(&mr, L->text, L"@ *= *"))) { Str__clear(L->text); - Str__copy(L->text, TL_IS_115); + Str__copy(L->text, TL_IS_117); if (S->md->using_syntax < V2_SYNTAX) Parser__wrong_version(S->md->using_syntax, L, "implied paragraph breaks", V2_SYNTAX); { #line 129 "inweb/Chapter 2/The Parser.w" - source_line *NL = Lines__new_source_line(TL_IS_116, &(L->source)); + source_line *NL = Lines__new_source_line(TL_IS_118, &(L->source)); PL->next_line = NL; NL->next_line = L; L = PL; @@ -14704,15 +14712,15 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { } else if (Str__eq_wide_string(command_text, L"Figure")) { if (S->md->using_syntax > V1_SYNTAX) Parser__wrong_version(S->md->using_syntax, L, "[[Figure...]]", V1_SYNTAX); - Tags__add_by_name(L->owning_paragraph, TL_IS_117); + Tags__add_by_name(L->owning_paragraph, TL_IS_119); L->command_code = FIGURE_CMD; } else { if (S->md->using_syntax >= V2_SYNTAX) { - Tags__add_by_name(L->owning_paragraph, TL_IS_118); + Tags__add_by_name(L->owning_paragraph, TL_IS_120); L->command_code = FIGURE_CMD; Str__copy(L->text_operand, full_command); } else { - Main__error_in_web(TL_IS_119, L); + Main__error_in_web(TL_IS_121, L); } } L->is_commentary = TRUE; @@ -14734,7 +14742,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { Str__copy(para_macro_name, mr.exp[0]); L->category = MACRO_DEFINITION_LCAT; if (current_paragraph == NULL) - Main__error_in_web(TL_IS_120, L); + Main__error_in_web(TL_IS_122, L); else Macros__create(S, current_paragraph, L, para_macro_name); comment_mode = FALSE; extract_mode = FALSE; L->is_commentary = FALSE; @@ -14771,9 +14779,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { match_results mr = Regexp__create_mr(); match_results mr2 = Regexp__create_mr(); if (Regexp__match(&mr, L->text, L"= *(%c+) *")) { - if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_121))) { + if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_123))) { current_paragraph->placed_very_early = TRUE; - } else if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_122))) { + } else if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_124))) { current_paragraph->placed_early = TRUE; } else if ((current_paragraph) && (Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text%)"))) { @@ -14781,9 +14789,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 430 "inweb/Chapter 2/The Parser.w" L->plainer = FALSE; - if (Str__eq(mr2.exp[0], TL_IS_125)) L->plainer = TRUE; + if (Str__eq(mr2.exp[0], TL_IS_127)) L->plainer = TRUE; else if (Str__len(mr2.exp[0]) > 0) - Main__error_in_web(TL_IS_126, L); + Main__error_in_web(TL_IS_128, L); } #line 388 "inweb/Chapter 2/The Parser.w" @@ -14797,9 +14805,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 430 "inweb/Chapter 2/The Parser.w" L->plainer = FALSE; - if (Str__eq(mr2.exp[0], TL_IS_125)) L->plainer = TRUE; + if (Str__eq(mr2.exp[0], TL_IS_127)) L->plainer = TRUE; else if (Str__len(mr2.exp[0]) > 0) - Main__error_in_web(TL_IS_126, L); + Main__error_in_web(TL_IS_128, L); } #line 394 "inweb/Chapter 2/The Parser.w" @@ -14813,9 +14821,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 430 "inweb/Chapter 2/The Parser.w" L->plainer = FALSE; - if (Str__eq(mr2.exp[0], TL_IS_125)) L->plainer = TRUE; + if (Str__eq(mr2.exp[0], TL_IS_127)) L->plainer = TRUE; else if (Str__len(mr2.exp[0]) > 0) - Main__error_in_web(TL_IS_126, L); + Main__error_in_web(TL_IS_128, L); } #line 400 "inweb/Chapter 2/The Parser.w" @@ -14829,9 +14837,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 430 "inweb/Chapter 2/The Parser.w" L->plainer = FALSE; - if (Str__eq(mr2.exp[0], TL_IS_125)) L->plainer = TRUE; + if (Str__eq(mr2.exp[0], TL_IS_127)) L->plainer = TRUE; else if (Str__len(mr2.exp[0]) > 0) - Main__error_in_web(TL_IS_126, L); + Main__error_in_web(TL_IS_128, L); } #line 406 "inweb/Chapter 2/The Parser.w" @@ -14853,7 +14861,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { latest->next_line = TL; latest = TL; } - source_line *EEL = Lines__new_source_line(TL_IS_127, &(L->source)); + source_line *EEL = Lines__new_source_line(TL_IS_129, &(L->source)); EEL->next_line = latest->next_line; latest->next_line = EEL; code_lcat_for_body = TEXT_EXTRACT_LCAT; @@ -14868,9 +14876,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 430 "inweb/Chapter 2/The Parser.w" L->plainer = FALSE; - if (Str__eq(mr2.exp[0], TL_IS_125)) L->plainer = TRUE; + if (Str__eq(mr2.exp[0], TL_IS_127)) L->plainer = TRUE; else if (Str__len(mr2.exp[0]) > 0) - Main__error_in_web(TL_IS_126, L); + Main__error_in_web(TL_IS_128, L); } #line 411 "inweb/Chapter 2/The Parser.w" @@ -14892,7 +14900,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { latest->next_line = TL; latest = TL; } - source_line *EEL = Lines__new_source_line(TL_IS_127, &(L->source)); + source_line *EEL = Lines__new_source_line(TL_IS_129, &(L->source)); EEL->next_line = latest->next_line; latest->next_line = EEL; code_lcat_for_body = TEXT_EXTRACT_LCAT; @@ -14907,9 +14915,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { { #line 430 "inweb/Chapter 2/The Parser.w" L->plainer = FALSE; - if (Str__eq(mr2.exp[0], TL_IS_125)) L->plainer = TRUE; + if (Str__eq(mr2.exp[0], TL_IS_127)) L->plainer = TRUE; else if (Str__len(mr2.exp[0]) > 0) - Main__error_in_web(TL_IS_126, L); + Main__error_in_web(TL_IS_128, L); } #line 416 "inweb/Chapter 2/The Parser.w" @@ -14931,7 +14939,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { latest->next_line = TL; latest = TL; } - source_line *EEL = Lines__new_source_line(TL_IS_127, &(L->source)); + source_line *EEL = Lines__new_source_line(TL_IS_129, &(L->source)); EEL->next_line = latest->next_line; latest->next_line = EEL; code_lcat_for_body = TEXT_EXTRACT_LCAT; @@ -14941,10 +14949,10 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { #line 418 "inweb/Chapter 2/The Parser.w" ; } else { - Main__error_in_web(TL_IS_123, L); + Main__error_in_web(TL_IS_125, L); } } else if (Regexp__match(&mr, L->text, L"= *%C%c*")) { - Main__error_in_web(TL_IS_124, L); + Main__error_in_web(TL_IS_126, L); } Regexp__dispose_of(&mr); Regexp__dispose_of(&mr2); @@ -14976,7 +14984,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { if (Str__eq_wide_string(command_text, L"Purpose:")) { #line 510 "inweb/Chapter 2/The Parser.w" - if (before_bar == FALSE) Main__error_in_web(TL_IS_129, L); + if (before_bar == FALSE) Main__error_in_web(TL_IS_131, L); if (S->md->using_syntax >= V2_SYNTAX) Parser__wrong_version(S->md->using_syntax, L, "'@Purpose'", V1_SYNTAX); L->category = PURPOSE_LCAT; @@ -14992,7 +15000,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { #line 519 "inweb/Chapter 2/The Parser.w" if (S->md->using_syntax >= V2_SYNTAX) Parser__wrong_version(S->md->using_syntax, L, "'@Interface'", V1_SYNTAX); - if (before_bar == FALSE) Main__error_in_web(TL_IS_130, L); + if (before_bar == FALSE) Main__error_in_web(TL_IS_132, L); L->category = INTERFACE_LCAT; L->is_commentary = TRUE; source_line *XL = L->next_line; @@ -15011,7 +15019,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { #line 533 "inweb/Chapter 2/The Parser.w" if (S->md->using_syntax >= V2_SYNTAX) Parser__wrong_version(S->md->using_syntax, L, "'@Definitions' headings", V1_SYNTAX); - if (before_bar == FALSE) Main__error_in_web(TL_IS_131, L); + if (before_bar == FALSE) Main__error_in_web(TL_IS_133, L); L->category = DEFINITIONS_LCAT; L->is_commentary = TRUE; before_bar = TRUE; @@ -15025,7 +15033,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { #line 545 "inweb/Chapter 2/The Parser.w" if (S->md->using_syntax >= V2_SYNTAX) Parser__wrong_version(S->md->using_syntax, L, "the bar '----...'", V1_SYNTAX); - if (before_bar == FALSE) Main__error_in_web(TL_IS_132, L); + if (before_bar == FALSE) Main__error_in_web(TL_IS_134, L); L->category = BAR_LCAT; L->is_commentary = TRUE; comment_mode = TRUE; @@ -15148,7 +15156,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { from = mr.exp[1]; Str__copy(L->text_operand, mr.exp[0]); } else if (Regexp__match(&mr, L->text_operand, L"(%C+) (%c+)")) { - Main__error_in_web(TL_IS_133, L); + Main__error_in_web(TL_IS_135, L); } L->text_operand2 = Str__new(); if (inweb_mode == TANGLE_MODE) @@ -15182,7 +15190,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { from = mr.exp[1]; Str__copy(L->text_operand, mr.exp[0]); } else if (Regexp__match(&mr, L->text_operand, L"(%C+) (%c+)")) { - Main__error_in_web(TL_IS_133, L); + Main__error_in_web(TL_IS_135, L); } L->text_operand2 = Str__new(); if (inweb_mode == TANGLE_MODE) @@ -15246,9 +15254,9 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { P->placed_very_early = FALSE; } if ((S->md->using_syntax == V1_SYNTAX) && (before_bar)) - P->ornament = Str__duplicate(TL_IS_134); + P->ornament = Str__duplicate(TL_IS_136); else - P->ornament = Str__duplicate(TL_IS_135); + P->ornament = Str__duplicate(TL_IS_137); WRITE_TO(P->paragraph_number, "%d", next_par_number++); P->parent_paragraph = NULL; P->next_child_number = 1; @@ -15277,7 +15285,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { } #line 502 "inweb/Chapter 2/The Parser.w" - else Main__error_in_web(TL_IS_128, L); + else Main__error_in_web(TL_IS_130, L); } } @@ -15336,7 +15344,7 @@ void Parser__parse_web(web *W, int inweb_mode, int sequential) { if (S->md->using_syntax >= V2_SYNTAX) { source_line *L = S->first_line; if ((L) && (L->category == CHAPTER_HEADING_LCAT)) L = L->next_line; - S->sect_purpose = Parser__extract_purpose(TL_IS_114, L?L->next_line: NULL, S, NULL); + S->sect_purpose = Parser__extract_purpose(TL_IS_116, L?L->next_line: NULL, S, NULL); if (Str__len(S->sect_purpose) > 0) L->next_line->category = PURPOSE_LCAT; } @@ -15427,10 +15435,10 @@ theme_tag *Tags__find_by_name(text_stream *name, int creating_if_necessary) { tag->tag_name = Str__duplicate(name); tag->ifdef_positive = NOT_APPLICABLE; tag->ifdef_symbol = Str__new(); - if (Str__prefix_eq(name, TL_IS_136, 6)) { + if (Str__prefix_eq(name, TL_IS_138, 6)) { Str__substr(tag->ifdef_symbol, Str__at(name, 6), Str__end(name)); tag->ifdef_positive = TRUE; - } else if (Str__prefix_eq(name, TL_IS_137, 7)) { + } else if (Str__prefix_eq(name, TL_IS_139, 7)) { Str__substr(tag->ifdef_symbol, Str__at(name, 7), Str__end(name)); tag->ifdef_positive = FALSE; } @@ -15524,20 +15532,20 @@ void Tags__show_endnote_on_ifdefs(OUTPUT_STREAM, weave_target *wv, paragraph *P) if (c++ == 0) { if (d++ == 0) { Formats__endnote(OUT, wv, 1); - Formats__text(OUT, wv, TL_IS_139); + Formats__text(OUT, wv, TL_IS_141); } else { - Formats__text(OUT, wv, TL_IS_140); + Formats__text(OUT, wv, TL_IS_142); } } else { - Formats__text(OUT, wv, TL_IS_141); + Formats__text(OUT, wv, TL_IS_143); } Formats__text(OUT, wv, pt->the_tag->ifdef_symbol); } if (c > 0) { - if (c == 1) Formats__text(OUT, wv, TL_IS_142); - else Formats__text(OUT, wv, TL_IS_143); - if (sense) Formats__text(OUT, wv, TL_IS_144); + if (c == 1) Formats__text(OUT, wv, TL_IS_144); else Formats__text(OUT, wv, TL_IS_145); + if (sense) Formats__text(OUT, wv, TL_IS_146); + else Formats__text(OUT, wv, TL_IS_147); } } @@ -15555,27 +15563,27 @@ void Tags__show_endnote_on_ifdefs(OUTPUT_STREAM, weave_target *wv, paragraph *P) if (c++ == 0) { if (d++ == 0) { Formats__endnote(OUT, wv, 1); - Formats__text(OUT, wv, TL_IS_139); + Formats__text(OUT, wv, TL_IS_141); } else { - Formats__text(OUT, wv, TL_IS_140); + Formats__text(OUT, wv, TL_IS_142); } } else { - Formats__text(OUT, wv, TL_IS_141); + Formats__text(OUT, wv, TL_IS_143); } Formats__text(OUT, wv, pt->the_tag->ifdef_symbol); } if (c > 0) { - if (c == 1) Formats__text(OUT, wv, TL_IS_142); - else Formats__text(OUT, wv, TL_IS_143); - if (sense) Formats__text(OUT, wv, TL_IS_144); + if (c == 1) Formats__text(OUT, wv, TL_IS_144); else Formats__text(OUT, wv, TL_IS_145); + if (sense) Formats__text(OUT, wv, TL_IS_146); + else Formats__text(OUT, wv, TL_IS_147); } } #line 139 "inweb/Chapter 2/Tags.w" ; if (d > 0) { - Formats__text(OUT, wv, TL_IS_138); + Formats__text(OUT, wv, TL_IS_140); Formats__endnote(OUT, wv, 2); } } @@ -15601,7 +15609,7 @@ void Enumerations__define(OUTPUT_STREAM, text_stream *symbol, match_results mr = Regexp__create_mr(); if (Regexp__match(&mr, symbol, L"%c*_(%C+?)")) Str__copy(pf, mr.exp[0]); else { - Main__error_in_web(TL_IS_146, L); + Main__error_in_web(TL_IS_148, L); WRITE_TO(pf, "BOGUS"); } Regexp__dispose_of(&mr); @@ -15617,7 +15625,7 @@ void Enumerations__define(OUTPUT_STREAM, text_stream *symbol, if (es->stub) WRITE("(%S+", es->stub); WRITE("%d", es->next_free_value++); if (es->stub) WRITE(")"); - } else Main__error_in_web(TL_IS_147, L); + } else Main__error_in_web(TL_IS_149, L); } #line 45 "inweb/Chapter 2/Enumerated Constants.w" @@ -15625,7 +15633,7 @@ void Enumerations__define(OUTPUT_STREAM, text_stream *symbol, else { #line 70 "inweb/Chapter 2/Enumerated Constants.w" - if (es) Main__error_in_web(TL_IS_148, L); + if (es) Main__error_in_web(TL_IS_150, L); else { es = CREATE(enumeration_set); es->postfix = Str__duplicate(pf); @@ -15916,7 +15924,7 @@ void Analyser__analyse_code(web *W) { if ((L->category == INTERFACE_BODY_LCAT) && (L->interface_line_identified == FALSE) && (Regexp__string_is_white_space(L->text) == FALSE)) - Main__error_in_web(TL_IS_149, L); + Main__error_in_web(TL_IS_151, L); } #line 110 "inweb/Chapter 3/The Analyser.w" @@ -16097,16 +16105,16 @@ void Analyser__analyse_find(web *W, source_line *L, text_stream *identifier, int #line 362 "inweb/Chapter 3/The Analyser.w" void Analyser__write_makefile(web *W, filename *F, module_search *I) { - filename *prototype = Filenames__in_folder(W->md->path_to_web, TL_IS_150); + filename *prototype = Filenames__in_folder(W->md->path_to_web, TL_IS_152); if (!(TextFiles__exists(prototype))) - prototype = Filenames__in_folder(path_to_inweb_materials, TL_IS_151); + prototype = Filenames__in_folder(path_to_inweb_materials, TL_IS_153); Makefiles__write(W, prototype, F, I); } void Analyser__write_gitignore(web *W, filename *F) { - filename *prototype = Filenames__in_folder(W->md->path_to_web, TL_IS_152); + filename *prototype = Filenames__in_folder(W->md->path_to_web, TL_IS_154); if (!(TextFiles__exists(prototype))) - prototype = Filenames__in_folder(path_to_inweb_materials, TL_IS_153); + prototype = Filenames__in_folder(path_to_inweb_materials, TL_IS_155); Git__write_gitignore(W, prototype, F); } @@ -16164,7 +16172,7 @@ weave_target *Swarm__weave_subset(web *W, text_stream *range, int open_afterward wt->navigation = navigation; wt->breadcrumbs = breadcrumbs; if (Reader__web_has_one_section(W)) wt->self_contained = TRUE; - Str__copy(wt->cover_sheet_to_use, TL_IS_154); + Str__copy(wt->cover_sheet_to_use, TL_IS_156); TEMPORARY_TEXT(leafname); @@ -16252,14 +16260,14 @@ weave_target *Swarm__weave_subset(web *W, text_stream *range, int open_afterward #line 172 "inweb/Chapter 3/The Swarm.w" void Swarm__weave_index_templates(web *W, text_stream *range, weave_pattern *pattern, int self_contained, pathname *into, filename *F, linked_list *crumbs, int docs) { - if (!(Bibliographic__data_exists(W->md, TL_IS_155))) - Bibliographic__set_datum(W->md, TL_IS_156, TL_IS_157); + if (!(Bibliographic__data_exists(W->md, TL_IS_157))) + Bibliographic__set_datum(W->md, TL_IS_158, TL_IS_159); text_stream *index_leaf = NULL; - if (W->md->chaptered) index_leaf = TL_IS_158; - else index_leaf = TL_IS_159; + if (W->md->chaptered) index_leaf = TL_IS_160; + else index_leaf = TL_IS_161; filename *OUT = Patterns__obtain_filename(pattern, index_leaf); - if (OUT == NULL) OUT = Patterns__obtain_filename(pattern, TL_IS_160); - if (OUT) Indexer__run(W, range, OUT, TL_IS_161, NULL, pattern, into, F, crumbs, docs); + if (OUT == NULL) OUT = Patterns__obtain_filename(pattern, TL_IS_162); + if (OUT) Indexer__run(W, range, OUT, TL_IS_163, NULL, pattern, into, F, crumbs, docs); if (self_contained == FALSE) Patterns__copy_payloads_into_weave(W, pattern); } @@ -16327,7 +16335,7 @@ void Indexer__scan_cover_line(text_stream *line, text_file_position *tfp, void * weave_pattern *saved = state->target->pattern; state->target->pattern = state->target->pattern->based_on; Indexer__cover_sheet_maker(OUT, state->target->weave_web, - TL_IS_162, state->target, + TL_IS_164, state->target, (state->halves & (WEAVE_FIRST_HALF + WEAVE_SECOND_HALF))); state->target->pattern = saved; } else { @@ -16399,11 +16407,11 @@ void Indexer__nav_column(OUTPUT_STREAM, pathname *P, web *W, text_stream *range, Errors__fatal_with_file("unable to find navigation file", nav); } else { if (pattern->hierarchical) { - filename *F = Filenames__in_folder(Pathnames__up(P), TL_IS_163); + filename *F = Filenames__in_folder(Pathnames__up(P), TL_IS_165); if (TextFiles__exists(F)) Indexer__run(W, range, F, NULL, OUT, pattern, P, NULL, NULL, FALSE); } - filename *F = Filenames__in_folder(P, TL_IS_164); + filename *F = Filenames__in_folder(P, TL_IS_166); if (TextFiles__exists(F)) Indexer__run(W, range, F, NULL, OUT, pattern, P, NULL, NULL, FALSE); } @@ -16455,7 +16463,7 @@ void Indexer__run(web *W, text_stream *range, if (STREAM_OPEN_TO_FILE(OUT, Contents, ISO_ENC) == FALSE) Errors__fatal_with_file("unable to write contents file", Contents); if (W->as_ebook) - Epub__note_page(W->as_ebook, Contents, TL_IS_165, TL_IS_166); + Epub__note_page(W->as_ebook, Contents, TL_IS_167, TL_IS_168); PRINT("[Index file: %f]\n", Contents); } @@ -16815,7 +16823,7 @@ void Indexer__list_module(OUTPUT_STREAM, module *M, int list_this) { WRITE("
  • %S - ", M->module_name); TEMPORARY_TEXT(url); WRITE_TO(url, "%p", M->module_location); - Readme__write_var(OUT, url, TL_IS_167); + Readme__write_var(OUT, url, TL_IS_169); DISCARD_TEXT(url); WRITE("

  • "); } @@ -16859,8 +16867,8 @@ int Weaver__weave_source(web *W, weave_target *wv) { { #line 43 "inweb/Chapter 3/The Weaver.w" - if (!(Bibliographic__data_exists(W->md, TL_IS_168))) - Bibliographic__set_datum(W->md, TL_IS_169, wv->booklet_title); + if (!(Bibliographic__data_exists(W->md, TL_IS_170))) + Bibliographic__set_datum(W->md, TL_IS_171, wv->booklet_title); Indexer__cover_sheet_maker(OUT, W, wv->cover_sheet_to_use, wv, WEAVE_FIRST_HALF); } @@ -17013,7 +17021,7 @@ int Weaver__weave_source(web *W, weave_target *wv) { { #line 231 "inweb/Chapter 3/The Weaver.w" if (L->category == DEFINITIONS_LCAT) { - Formats__subheading(OUT, wv, 2, TL_IS_172, NULL); + Formats__subheading(OUT, wv, 2, TL_IS_174, NULL); state->next_heading_without_vertical_skip = TRUE; state->horizontal_rule_just_drawn = FALSE; continue; @@ -17123,19 +17131,19 @@ int Weaver__weave_source(web *W, weave_target *wv) { { #line 595 "inweb/Chapter 3/The Weaver.w" switch (weight) { - case 0: TeX_macro = TL_IS_180; break; - case 1: TeX_macro = TL_IS_181; break; - case 2: TeX_macro = TL_IS_182; break; - default: TeX_macro = TL_IS_183; break; + case 0: TeX_macro = TL_IS_182; break; + case 1: TeX_macro = TL_IS_183; break; + case 2: TeX_macro = TL_IS_184; break; + default: TeX_macro = TL_IS_185; break; } if (wv->theme_match) { #line 614 "inweb/Chapter 3/The Weaver.w" switch (weight) { - case 0: TeX_macro = TL_IS_186; break; - case 1: TeX_macro = TL_IS_187; break; - case 2: TeX_macro = TL_IS_188; break; - default: TeX_macro = TL_IS_189; break; + case 0: TeX_macro = TL_IS_188; break; + case 1: TeX_macro = TL_IS_189; break; + case 2: TeX_macro = TL_IS_190; break; + default: TeX_macro = TL_IS_191; break; } if (weight >= 0) { weight = 0; } text_stream *cap = Tags__retrieve_caption(L->owning_paragraph, wv->theme_match); @@ -17156,8 +17164,8 @@ int Weaver__weave_source(web *W, weave_target *wv) { if ((state->next_heading_without_vertical_skip) && (weight < 2)) { state->next_heading_without_vertical_skip = FALSE; switch (weight) { - case 0: TeX_macro = TL_IS_184; break; - case 1: TeX_macro = TL_IS_185; break; + case 0: TeX_macro = TL_IS_186; break; + case 1: TeX_macro = TL_IS_187; break; } } @@ -17180,7 +17188,7 @@ int Weaver__weave_source(web *W, weave_target *wv) { DISCARD_TEXT(brief_title); Regexp__dispose_of(&mr); } else if ((weight == 2) && (Reader__web_has_one_section(W))) { - Str__copy(heading_text, Bibliographic__get_datum(W->md, TL_IS_190)); + Str__copy(heading_text, Bibliographic__get_datum(W->md, TL_IS_192)); } else { if ((weight == 2) && (wv->pattern->number_sections) && (S->printed_number >= 0)) WRITE_TO(heading_text, "%d. ", S->printed_number); @@ -17262,13 +17270,13 @@ int Weaver__weave_source(web *W, weave_target *wv) { Formats__change_material(OUT, wv, state->kind_of_material, REGULAR_MATERIAL, state->substantive_comment, FALSE); state->kind_of_material = REGULAR_MATERIAL; - Formats__item(OUT, wv, 1, TL_IS_173); + Formats__item(OUT, wv, 1, TL_IS_175); Str__copy(matter, mr.exp[0]); } else if (Regexp__match(&mr, matter, L"%(-...%) (%c*)")) { /* continue double */ Formats__change_material(OUT, wv, state->kind_of_material, REGULAR_MATERIAL, state->substantive_comment, FALSE); state->kind_of_material = REGULAR_MATERIAL; - Formats__item(OUT, wv, 2, TL_IS_174); + Formats__item(OUT, wv, 2, TL_IS_176); Str__copy(matter, mr.exp[0]); } else if (Regexp__match(&mr, matter, L"%((%i+)%) (%c*)")) { /* begin single */ Formats__change_material(OUT, wv, state->kind_of_material, REGULAR_MATERIAL, @@ -17303,12 +17311,12 @@ int Weaver__weave_source(web *W, weave_target *wv) { Str__copy(matter, mr.exp[1]); TEMPORARY_TEXT(colouring); for (int i=0; imd, TL_IS_170))) - Bibliographic__set_datum(W->md, TL_IS_171, wv->booklet_title); + if (!(Bibliographic__data_exists(W->md, TL_IS_172))) + Bibliographic__set_datum(W->md, TL_IS_173, wv->booklet_title); Indexer__cover_sheet_maker(OUT, W, wv->cover_sheet_to_use, wv, WEAVE_SECOND_HALF); } @@ -17576,30 +17584,30 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, { #line 699 "inweb/Chapter 3/The Weaver.w" Formats__endnote(OUT, wv, 1); - Formats__text(OUT, wv, TL_IS_191); + Formats__text(OUT, wv, TL_IS_193); int ct = 0; macro_usage *mu; LOOP_OVER_LINKED_LIST(mu, macro_usage, P->defines_macro->macro_usages) ct++; - if (ct == 1) Formats__text(OUT, wv, TL_IS_192); + if (ct == 1) Formats__text(OUT, wv, TL_IS_194); else { int k = 0, used_flag = FALSE; LOOP_OVER_LINKED_LIST(mu, macro_usage, P->defines_macro->macro_usages) if (P != mu->used_in_paragraph) { if (used_flag) { - if (k < ct-1) Formats__text(OUT, wv, TL_IS_193); - else Formats__text(OUT, wv, TL_IS_194); + if (k < ct-1) Formats__text(OUT, wv, TL_IS_195); + else Formats__text(OUT, wv, TL_IS_196); } else { - Formats__text(OUT, wv, TL_IS_195); + Formats__text(OUT, wv, TL_IS_197); } Formats__locale(OUT, wv, mu->used_in_paragraph, NULL); used_flag = TRUE; k++; switch (mu->multiplicity) { case 1: break; - case 2: Formats__text(OUT, wv, TL_IS_196); break; - case 3: Formats__text(OUT, wv, TL_IS_197); break; - case 4: Formats__text(OUT, wv, TL_IS_198); break; - case 5: Formats__text(OUT, wv, TL_IS_199); break; + case 2: Formats__text(OUT, wv, TL_IS_198); break; + case 3: Formats__text(OUT, wv, TL_IS_199); break; + case 4: Formats__text(OUT, wv, TL_IS_200); break; + case 5: Formats__text(OUT, wv, TL_IS_201); break; default: { TEMPORARY_TEXT(mt); WRITE_TO(mt, " (%d times)", mu->multiplicity); @@ -17610,7 +17618,7 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, } } } - Formats__text(OUT, wv, TL_IS_200); + Formats__text(OUT, wv, TL_IS_202); Formats__endnote(OUT, wv, 2); } @@ -17625,7 +17633,7 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, hash_table_entry *hte = Analyser__find_hash_entry_for_section(fn->function_header_at->owning_section, fn->function_name, FALSE); - Formats__text(OUT, wv, TL_IS_201); + Formats__text(OUT, wv, TL_IS_203); Formats__text(OUT, wv, fn->function_name); int used_flag = FALSE; hash_table_entry_usage *hteu = NULL; @@ -17637,19 +17645,19 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, { #line 762 "inweb/Chapter 3/The Weaver.w" - if (used_flag == FALSE) Formats__text(OUT, wv, TL_IS_205); + if (used_flag == FALSE) Formats__text(OUT, wv, TL_IS_207); used_flag = TRUE; section *S = hteu->usage_recorded_at->under_section; if ((S != last_cited_in) && (S != P->under_section)) { count_under = 0; if (last_cited_in) { - if (last_cited_in != P->under_section) Formats__text(OUT, wv, TL_IS_206); - else Formats__text(OUT, wv, TL_IS_207); + if (last_cited_in != P->under_section) Formats__text(OUT, wv, TL_IS_208); + else Formats__text(OUT, wv, TL_IS_209); } Formats__text(OUT, wv, hteu->usage_recorded_at->under_section->sect_range); - Formats__text(OUT, wv, TL_IS_208); + Formats__text(OUT, wv, TL_IS_210); } - if (count_under++ > 0) Formats__text(OUT, wv, TL_IS_209); + if (count_under++ > 0) Formats__text(OUT, wv, TL_IS_211); Formats__locale(OUT, wv, hteu->usage_recorded_at, NULL); last_cited_in = hteu->usage_recorded_at->under_section; @@ -17661,29 +17669,29 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, { #line 762 "inweb/Chapter 3/The Weaver.w" - if (used_flag == FALSE) Formats__text(OUT, wv, TL_IS_205); + if (used_flag == FALSE) Formats__text(OUT, wv, TL_IS_207); used_flag = TRUE; section *S = hteu->usage_recorded_at->under_section; if ((S != last_cited_in) && (S != P->under_section)) { count_under = 0; if (last_cited_in) { - if (last_cited_in != P->under_section) Formats__text(OUT, wv, TL_IS_206); - else Formats__text(OUT, wv, TL_IS_207); + if (last_cited_in != P->under_section) Formats__text(OUT, wv, TL_IS_208); + else Formats__text(OUT, wv, TL_IS_209); } Formats__text(OUT, wv, hteu->usage_recorded_at->under_section->sect_range); - Formats__text(OUT, wv, TL_IS_208); + Formats__text(OUT, wv, TL_IS_210); } - if (count_under++ > 0) Formats__text(OUT, wv, TL_IS_209); + if (count_under++ > 0) Formats__text(OUT, wv, TL_IS_211); Formats__locale(OUT, wv, hteu->usage_recorded_at, NULL); last_cited_in = hteu->usage_recorded_at->under_section; } #line 754 "inweb/Chapter 3/The Weaver.w" ; - if (used_flag == FALSE) Formats__text(OUT, wv, TL_IS_202); + if (used_flag == FALSE) Formats__text(OUT, wv, TL_IS_204); if ((last_cited_in != P->under_section) && (last_cited_in)) - Formats__text(OUT, wv, TL_IS_203); - Formats__text(OUT, wv, TL_IS_204); + Formats__text(OUT, wv, TL_IS_205); + Formats__text(OUT, wv, TL_IS_206); Formats__endnote(OUT, wv, 2); } @@ -17695,7 +17703,7 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, { #line 779 "inweb/Chapter 3/The Weaver.w" Formats__endnote(OUT, wv, 1); - Formats__text(OUT, wv, TL_IS_210); + Formats__text(OUT, wv, TL_IS_212); Formats__text(OUT, wv, st->structure_name); section *S; @@ -17719,18 +17727,18 @@ void Weaver__show_endnotes_on_previous_paragraph(OUTPUT_STREAM, usage_count++; if (S != P->under_section) external++; } - if (external == 0) Formats__text(OUT, wv, TL_IS_211); + if (external == 0) Formats__text(OUT, wv, TL_IS_213); else { - Formats__text(OUT, wv, TL_IS_212); + Formats__text(OUT, wv, TL_IS_214); int c = 0; LOOP_OVER(S, section) if ((S->scratch_flag) && (S != P->under_section)) { - if (c++ > 0) Formats__text(OUT, wv, TL_IS_213); + if (c++ > 0) Formats__text(OUT, wv, TL_IS_215); Formats__text(OUT, wv, S->sect_range); } - if (P->under_section->scratch_flag) Formats__text(OUT, wv, TL_IS_214); + if (P->under_section->scratch_flag) Formats__text(OUT, wv, TL_IS_216); } - Formats__text(OUT, wv, TL_IS_215); + Formats__text(OUT, wv, TL_IS_217); Formats__endnote(OUT, wv, 2); } @@ -17747,18 +17755,18 @@ 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, TL_IS_216, NULL); + Formats__toc(OUT, wv, 1, S->sect_range, TL_IS_218, NULL); noteworthy = 0; LOOP_OVER_LINKED_LIST(P, paragraph, S->paragraphs) if ((P->weight > 0) && ((S->barred == FALSE) || (P->above_bar == FALSE))) { - if (noteworthy > 0) Formats__toc(OUT, wv, 2, TL_IS_217, TL_IS_218, NULL); + if (noteworthy > 0) Formats__toc(OUT, wv, 2, TL_IS_219, TL_IS_220, NULL); TEMPORARY_TEXT(loc); WRITE_TO(loc, "%S%S", P->ornament, P->paragraph_number); Formats__toc(OUT, wv, 3, loc, P->first_line_in_paragraph->text_operand, P); DISCARD_TEXT(loc); noteworthy++; } - Formats__toc(OUT, wv, 4, TL_IS_219, TL_IS_220, NULL); + Formats__toc(OUT, wv, 4, TL_IS_221, TL_IS_222, NULL); return TRUE; } @@ -17795,7 +17803,7 @@ void Tangler__go(web *W, tangle_target *target, filename *dest_file) { { #line 87 "inweb/Chapter 3/The Tangler.w" - if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_221, L); + if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_223, L); else Tags__open_ifdefs(OUT, L->owning_paragraph); LanguageMethods__start_definition(OUT, lang, L->text_operand, @@ -17817,7 +17825,7 @@ void Tangler__go(web *W, tangle_target *target, filename *dest_file) { { #line 87 "inweb/Chapter 3/The Tangler.w" - if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_221, L); + if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_223, L); else Tags__open_ifdefs(OUT, L->owning_paragraph); LanguageMethods__start_definition(OUT, lang, L->text_operand, @@ -17938,7 +17946,7 @@ void Tangler__tangle_code(OUTPUT_STREAM, text_stream *original, section *S, sour LanguageMethods__after_macro_expansion(OUT, lang, pmac); LanguageMethods__insert_line_marker(OUT, lang, L); } else { - Main__error_in_web(TL_IS_222, L); + Main__error_in_web(TL_IS_224, L); WRITE_TO(STDERR, "Macro is '%S'\n", temp); LanguageMethods__comment(OUT, lang, temp); /* recover by putting macro name in comment */ } @@ -18007,7 +18015,7 @@ programming_language *Languages__find_by_name(text_stream *lname, web *W) { #line 26 "inweb/Chapter 4/Programming Languages.w" filename *F = NULL; if (W) { - pathname *P = Pathnames__subfolder(W->md->path_to_web, TL_IS_223); + pathname *P = Pathnames__subfolder(W->md->path_to_web, TL_IS_225); { #line 39 "inweb/Chapter 4/Programming Languages.w" @@ -18054,7 +18062,7 @@ programming_language *Languages__find_by_name(text_stream *lname, web *W) { #line 50 "inweb/Chapter 4/Programming Languages.w" programming_language *Languages__default(web *W) { - return Languages__find_by_name(TL_IS_224, W); + return Languages__find_by_name(TL_IS_226, W); } void Languages__show(OUTPUT_STREAM) { @@ -18096,7 +18104,7 @@ void Languages__read_definitions(pathname *P) { } pathname *Languages__default_directory(void) { - return Pathnames__subfolder(path_to_inweb, TL_IS_225); + return Pathnames__subfolder(path_to_inweb, TL_IS_227); } #line 141 "inweb/Chapter 4/Programming Languages.w" @@ -18154,7 +18162,7 @@ programming_language *Languages__read_definition(filename *F) { { #line 210 "inweb/Chapter 4/Programming Languages.w" if (pl->C_like) CLike__make_c_like(pl); - if (Str__eq(pl->language_name, TL_IS_226)) InCSupport__add_features(pl); + if (Str__eq(pl->language_name, TL_IS_228)) InCSupport__add_features(pl); ACMESupport__add_fallbacks(pl); } @@ -18176,7 +18184,7 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp, if (state->current_block) { #line 314 "inweb/Chapter 4/Programming Languages.w" - if (Str__eq(line, TL_IS_256)) { + if (Str__eq(line, TL_IS_258)) { state->current_block = state->current_block->parent; } else if (Regexp__match(&mr, line, L"characters {")) { colouring_rule *rule = Languages__new_rule(state->current_block); @@ -18192,7 +18200,7 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp, } else if (Regexp__match(&mr, line, L"runs of (%c+) {")) { colouring_rule *rule = Languages__new_rule(state->current_block); int r = UNQUOTED_COLOUR; - if (Str__ne(mr.exp[0], TL_IS_257)) r = Languages__colour(mr.exp[0], tfp); + if (Str__ne(mr.exp[0], TL_IS_259)) r = Languages__colour(mr.exp[0], tfp); rule->execute_block = Languages__new_block(state->current_block, r); state->current_block = rule->execute_block; } else if (Regexp__match(&mr, line, L"instances of (%c+) {")) { @@ -18247,62 +18255,62 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp, Languages__reserved(pl, Languages__text(mr.exp[0], tfp, FALSE), RESERVED_COLOUR, tfp); } else if (Regexp__match(&mr, line, L"(%c+) *: *(%c+?)")) { text_stream *key = mr.exp[0], *value = Str__duplicate(mr.exp[1]); - if (Str__eq(key, TL_IS_227)) pl->language_name = Languages__text(value, tfp, TRUE); - else if (Str__eq(key, TL_IS_228)) - pl->language_details = Languages__text(value, tfp, TRUE); - else if (Str__eq(key, TL_IS_229)) - pl->file_extension = Languages__text(value, tfp, TRUE); + if (Str__eq(key, TL_IS_229)) pl->language_name = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_230)) - pl->line_comment = Languages__text(value, tfp, TRUE); + pl->language_details = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_231)) - pl->whole_line_comment = Languages__text(value, tfp, TRUE); + pl->file_extension = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_232)) - pl->multiline_comment_open = Languages__text(value, tfp, TRUE); + pl->line_comment = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_233)) - pl->multiline_comment_close = Languages__text(value, tfp, TRUE); + pl->whole_line_comment = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_234)) - pl->string_literal = Languages__text(value, tfp, TRUE); + pl->multiline_comment_open = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_235)) - pl->string_literal_escape = Languages__text(value, tfp, TRUE); + pl->multiline_comment_close = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_236)) - pl->character_literal = Languages__text(value, tfp, TRUE); + pl->string_literal = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_237)) - pl->character_literal_escape = Languages__text(value, tfp, TRUE); + pl->string_literal_escape = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_238)) - pl->binary_literal_prefix = Languages__text(value, tfp, TRUE); + pl->character_literal = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_239)) - pl->octal_literal_prefix = Languages__text(value, tfp, TRUE); + pl->character_literal_escape = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_240)) - pl->hexadecimal_literal_prefix = Languages__text(value, tfp, TRUE); + pl->binary_literal_prefix = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_241)) - pl->negative_literal_prefix = Languages__text(value, tfp, TRUE); + pl->octal_literal_prefix = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_242)) - pl->shebang = Languages__text(value, tfp, TRUE); + pl->hexadecimal_literal_prefix = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_243)) - pl->line_marker = Languages__text(value, tfp, TRUE); + pl->negative_literal_prefix = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_244)) - pl->before_macro_expansion = Languages__text(value, tfp, TRUE); + pl->shebang = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_245)) - pl->after_macro_expansion = Languages__text(value, tfp, TRUE); + pl->line_marker = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_246)) - pl->start_definition = Languages__text(value, tfp, TRUE); + pl->before_macro_expansion = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_247)) - pl->prolong_definition = Languages__text(value, tfp, TRUE); + pl->after_macro_expansion = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_248)) - pl->end_definition = Languages__text(value, tfp, TRUE); + pl->start_definition = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_249)) - pl->start_ifdef = Languages__text(value, tfp, TRUE); + pl->prolong_definition = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_250)) - pl->start_ifndef = Languages__text(value, tfp, TRUE); + pl->end_definition = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_251)) - pl->end_ifdef = Languages__text(value, tfp, TRUE); + pl->start_ifdef = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_252)) - pl->end_ifndef = Languages__text(value, tfp, TRUE); + pl->start_ifndef = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_253)) - pl->C_like = Languages__boolean(value, tfp); + pl->end_ifdef = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_254)) - pl->suppress_disclaimer = Languages__boolean(value, tfp); + pl->end_ifndef = Languages__text(value, tfp, TRUE); else if (Str__eq(key, TL_IS_255)) + pl->C_like = Languages__boolean(value, tfp); + else if (Str__eq(key, TL_IS_256)) + pl->suppress_disclaimer = Languages__boolean(value, tfp); + else if (Str__eq(key, TL_IS_257)) pl->supports_namespaces = Languages__boolean(value, tfp); else { Errors__in_text_file("unknown property name before ':'", tfp); @@ -18412,7 +18420,7 @@ void Languages__parse_rule(language_reader_state *state, text_stream *premiss, { #line 524 "inweb/Chapter 4/Programming Languages.w" - if (Str__eq(action, TL_IS_258)) { + if (Str__eq(action, TL_IS_260)) { rule->execute_block = Languages__new_block(state->current_block, WHOLE_LINE_CRULE_RUN); state->current_block = rule->execute_block; @@ -18425,7 +18433,7 @@ void Languages__parse_rule(language_reader_state *state, text_stream *premiss, rule->set_prefix_to_colour = rule->set_to_colour; } else if (Str__get_first_char(action) == '!') { rule->set_to_colour = Languages__colour(action, tfp); - } else if (Str__eq(action, TL_IS_259)) { + } else if (Str__eq(action, TL_IS_261)) { rule->debug = TRUE; } else { Errors__in_text_file("action after '=>' illegible", tfp); @@ -18460,17 +18468,17 @@ int Languages__colour(text_stream *T, text_file_position *tfp) { Errors__in_text_file("colour names must begin with !", tfp); return PLAIN_COLOUR; } - if (Str__eq(T, TL_IS_260)) return STRING_COLOUR; - else if (Str__eq(T, TL_IS_261)) return FUNCTION_COLOUR; - else if (Str__eq(T, TL_IS_262)) return DEFINITION_COLOUR; - else if (Str__eq(T, TL_IS_263)) return RESERVED_COLOUR; - else if (Str__eq(T, TL_IS_264)) return ELEMENT_COLOUR; - else if (Str__eq(T, TL_IS_265)) return IDENTIFIER_COLOUR; - else if (Str__eq(T, TL_IS_266)) return CHAR_LITERAL_COLOUR; - else if (Str__eq(T, TL_IS_267)) return CONSTANT_COLOUR; - else if (Str__eq(T, TL_IS_268)) return PLAIN_COLOUR; - else if (Str__eq(T, TL_IS_269)) return EXTRACT_COLOUR; - else if (Str__eq(T, TL_IS_270)) return COMMENT_COLOUR; + if (Str__eq(T, TL_IS_262)) return STRING_COLOUR; + else if (Str__eq(T, TL_IS_263)) return FUNCTION_COLOUR; + else if (Str__eq(T, TL_IS_264)) return DEFINITION_COLOUR; + else if (Str__eq(T, TL_IS_265)) return RESERVED_COLOUR; + else if (Str__eq(T, TL_IS_266)) return ELEMENT_COLOUR; + else if (Str__eq(T, TL_IS_267)) return IDENTIFIER_COLOUR; + else if (Str__eq(T, TL_IS_268)) return CHAR_LITERAL_COLOUR; + else if (Str__eq(T, TL_IS_269)) return CONSTANT_COLOUR; + else if (Str__eq(T, TL_IS_270)) return PLAIN_COLOUR; + else if (Str__eq(T, TL_IS_271)) return EXTRACT_COLOUR; + else if (Str__eq(T, TL_IS_272)) return COMMENT_COLOUR; else { Errors__in_text_file("no such !colour", tfp); return PLAIN_COLOUR; @@ -18479,8 +18487,8 @@ int Languages__colour(text_stream *T, text_file_position *tfp) { #line 615 "inweb/Chapter 4/Programming Languages.w" int Languages__boolean(text_stream *T, text_file_position *tfp) { - if (Str__eq(T, TL_IS_271)) return TRUE; - else if (Str__eq(T, TL_IS_272)) return FALSE; + if (Str__eq(T, TL_IS_273)) return TRUE; + else if (Str__eq(T, TL_IS_274)) return FALSE; else { Errors__in_text_file("must be true or false", tfp); return FALSE; @@ -18538,8 +18546,6 @@ text_stream *Languages__text(text_stream *T, text_file_position *tfp, int allow) } if (bareword) { int rw = FALSE; - if (Str__eq(V, TL_IS_273)) rw = TRUE; - if (Str__eq(V, TL_IS_274)) rw = TRUE; if (Str__eq(V, TL_IS_275)) rw = TRUE; if (Str__eq(V, TL_IS_276)) rw = TRUE; if (Str__eq(V, TL_IS_277)) rw = TRUE; @@ -18560,6 +18566,8 @@ text_stream *Languages__text(text_stream *T, text_file_position *tfp, int allow) if (Str__eq(V, TL_IS_292)) rw = TRUE; if (Str__eq(V, TL_IS_293)) rw = TRUE; if (Str__eq(V, TL_IS_294)) rw = TRUE; + if (Str__eq(V, TL_IS_295)) rw = TRUE; + if (Str__eq(V, TL_IS_296)) rw = TRUE; if (rw) { TEMPORARY_TEXT(err); @@ -18676,7 +18684,7 @@ void LanguageMethods__disclaimer(text_stream *OUT, programming_language *pl, web int rv = FALSE; IMETHOD_CALLV(rv, pl, SUPPRESS_DISCLAIMER_TAN_MTID); if (rv == FALSE) - LanguageMethods__comment(OUT, pl, TL_IS_295); + LanguageMethods__comment(OUT, pl, TL_IS_297); } #line 107 "inweb/Chapter 4/Language Methods.w" @@ -18699,7 +18707,7 @@ void LanguageMethods__start_definition(OUTPUT_STREAM, programming_language *pl, int rv = FALSE; IMETHOD_CALL(rv, pl, START_DEFN_TAN_MTID, OUT, term, start, S, L); if (rv == FALSE) - Main__error_in_web(TL_IS_296, L); + Main__error_in_web(TL_IS_298, L); } void LanguageMethods__prolong_definition(OUTPUT_STREAM, programming_language *pl, @@ -18707,7 +18715,7 @@ void LanguageMethods__prolong_definition(OUTPUT_STREAM, programming_language *pl int rv = FALSE; IMETHOD_CALL(rv, pl, PROLONG_DEFN_TAN_MTID, OUT, more, S, L); if (rv == FALSE) - Main__error_in_web(TL_IS_297, L); + Main__error_in_web(TL_IS_299, L); } void LanguageMethods__end_definition(OUTPUT_STREAM, programming_language *pl, @@ -19648,7 +19656,7 @@ void CLike__further_parsing(programming_language *self, web *W) { } #line 104 "inweb/Chapter 4/C-Like Languages.w" ; - Tags__add_by_name(L->owning_paragraph, TL_IS_301); + Tags__add_by_name(L->owning_paragraph, TL_IS_303); } else if ((Str__get_first_char(L->text) == '}') && (current_str)) { current_str->typedef_ends = L; current_str = NULL; @@ -19789,14 +19797,14 @@ void CLike__further_parsing(programming_language *self, web *W) { if ((Regexp__match(&mr, L->text, L" *#ifn*def %c+")) || (Regexp__match(&mr, L->text, L" *#IFN*DEF %c+"))) { if (cc_sp >= MAX_CONDITIONAL_COMPILATION_STACK) - Main__error_in_web(TL_IS_299, L); + Main__error_in_web(TL_IS_301, L); else cc_stack[cc_sp++] = L; } if ((Regexp__match(&mr, L->text, L" *#endif *")) || (Regexp__match(&mr, L->text, L" *#ENDIF *"))) { if (cc_sp <= 0) - Main__error_in_web(TL_IS_300, L); + Main__error_in_web(TL_IS_302, L); else cc_sp--; } @@ -19906,7 +19914,7 @@ void CLike__further_parsing(programming_language *self, web *W) { declared_namespace = mr.exp[0]; fn->within_namespace = TRUE; } else if ((Str__eq_wide_string(fname, L"main")) && (Str__eq_wide_string(S->sect_namespace, L"Main::"))) - declared_namespace = TL_IS_302; + declared_namespace = TL_IS_304; if ((Str__ne(declared_namespace, S->sect_namespace)) && (L->owning_paragraph->placed_very_early == FALSE)) { TEMPORARY_TEXT(err_mess); @@ -19946,7 +19954,7 @@ void CLike__further_parsing(programming_language *self, web *W) { ; } if (cc_sp > 0) - Main__error_in_web(TL_IS_298, NULL); + Main__error_in_web(TL_IS_300, NULL); } #line 132 "inweb/Chapter 4/C-Like Languages.w" @@ -20108,7 +20116,7 @@ void CLike__analyse_code(programming_language *self, web *W) { #line 665 "inweb/Chapter 4/C-Like Languages.w" void CLike__post_analysis(programming_language *self, web *W) { int check_namespaces = FALSE; - if (Str__eq_wide_string(Bibliographic__get_datum(W->md, TL_IS_303), L"On")) check_namespaces = TRUE; + if (Str__eq_wide_string(Bibliographic__get_datum(W->md, TL_IS_305), L"On")) check_namespaces = TRUE; function *fn; LOOP_OVER(fn, function) { hash_table_entry *hte = @@ -20127,11 +20135,11 @@ void CLike__post_analysis(programming_language *self, web *W) { && (fn->call_freely == FALSE)) { if (fn->within_namespace) Main__error_in_web( - TL_IS_304, + TL_IS_306, fn->function_header_at); else Main__error_in_web( - TL_IS_305, + TL_IS_307, fn->function_header_at); } } @@ -20703,8 +20711,8 @@ preform_nonterminal *InCSupport__nonterminal_by_name(text_stream *name) { #line 764 "inweb/Chapter 4/InC Support.w" text_stream *InCSupport__nonterminal_variable_identifier(text_stream *name) { - if (Str__eq_wide_string(name, L"r")) return TL_IS_310; - if (Str__eq_wide_string(name, L"rp")) return TL_IS_311; + if (Str__eq_wide_string(name, L"r")) return TL_IS_312; + if (Str__eq_wide_string(name, L"rp")) return TL_IS_313; nonterminal_variable *ntv; LOOP_OVER(ntv, nonterminal_variable) if (Str__eq(ntv->ntv_name, name)) @@ -20716,7 +20724,7 @@ text_stream *InCSupport__nonterminal_variable_identifier(text_stream *name) { void InCSupport__additional_tangling(programming_language *self, web *W, tangle_target *target) { if (NUMBER_CREATED(preform_nonterminal) > 0) { pathname *P = Reader__tangled_folder(W); - filename *Syntax = Filenames__in_folder(P, TL_IS_312); + filename *Syntax = Filenames__in_folder(P, TL_IS_314); text_stream TO_struct; text_stream *OUT = &TO_struct; @@ -20727,8 +20735,8 @@ void InCSupport__additional_tangling(programming_language *self, web *W, tangle_ WRITE("[Preform syntax generated by inweb: do not edit.]\n\n"); - if (Bibliographic__data_exists(W->md, TL_IS_313)) - WRITE("language %S\n", Bibliographic__get_datum(W->md, TL_IS_314)); + if (Bibliographic__data_exists(W->md, TL_IS_315)) + WRITE("language %S\n", Bibliographic__get_datum(W->md, TL_IS_316)); { @@ -21012,7 +21020,7 @@ void Formats__source_fragment(OUTPUT_STREAM, weave_target *wv, text_stream *frag VMETHOD_CALL(wf, INLINE_CODE_FOR_MTID, OUT, wv, TRUE); TEMPORARY_TEXT(colouring); for (int i=0; i< Str__len(fragment); i++) PUT_TO(colouring, EXTRACT_COLOUR); - Formats__source_code(OUT, wv, 0, TL_IS_315, fragment, colouring, TL_IS_316, FALSE, FALSE, TRUE); + Formats__source_code(OUT, wv, 0, TL_IS_317, fragment, colouring, TL_IS_318, FALSE, FALSE, TRUE); DISCARD_TEXT(colouring); VMETHOD_CALL(wf, INLINE_CODE_FOR_MTID, OUT, wv, FALSE); } @@ -21118,22 +21126,30 @@ void Formats__change_colour(OUTPUT_STREAM, weave_target *wv, int col, int in_cod #line 372 "inweb/Chapter 5/Weave Formats.w" void Formats__text(OUTPUT_STREAM, weave_target *wv, text_stream *id) { - Formats__text_r(OUT, wv, id, FALSE); + Formats__text_r(OUT, wv, id, FALSE, FALSE); +} +void Formats__text_comment(OUTPUT_STREAM, weave_target *wv, text_stream *id) { + Formats__text_r(OUT, wv, id, FALSE, TRUE); } -void Formats__text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, int within) { - for (int i=0; i < Str__len(id); i++) { - if (Str__get_at(id, i) == '\\') i++; - else if (Str__get_at(id, i) == '|') { - TEMPORARY_TEXT(before); - Str__copy(before, id); Str__truncate(before, i); - TEMPORARY_TEXT(after); - Str__substr(after, Str__at(id, i+1), Str__end(id)); - Formats__text_r(OUT, wv, before, within); - Formats__text_r(OUT, wv, after, (within)?FALSE:TRUE); - DISCARD_TEXT(before); - DISCARD_TEXT(after); - return; +void Formats__text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, + int within, int comments) { + text_stream *notation = Bibliographic__get_datum(wv->weave_web->md, + (comments)?(TL_IS_319):(TL_IS_320)); + if (Str__ne(notation, TL_IS_321)) { + for (int i=0; i < Str__len(id); i++) { + if (Str__get_at(id, i) == '\\') i += Str__len(notation) - 1; + else if (ACMESupport__text_at(id, i, notation)) { + TEMPORARY_TEXT(before); + Str__copy(before, id); Str__truncate(before, i); + TEMPORARY_TEXT(after); + Str__substr(after, Str__at(id, i + Str__len(notation)), Str__end(id)); + Formats__text_r(OUT, wv, before, within, comments); + Formats__text_r(OUT, wv, after, (within)?FALSE:TRUE, comments); + DISCARD_TEXT(before); + DISCARD_TEXT(after); + return; + } } } if (within) { @@ -21143,9 +21159,9 @@ void Formats__text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, int withi } } -#line 406 "inweb/Chapter 5/Weave Formats.w" +#line 414 "inweb/Chapter 5/Weave Formats.w" -#line 408 "inweb/Chapter 5/Weave Formats.w" +#line 416 "inweb/Chapter 5/Weave Formats.w" IMETHOD_TYPE(PRESERVE_MATH_MODE_FOR_MTID, weave_format *wf, text_stream *matter, text_stream *id) VMETHOD_TYPE(COMMENTARY_TEXT_FOR_MTID, weave_format *wf, text_stream *OUT, @@ -21156,7 +21172,7 @@ void Formats__text_fragment(OUTPUT_STREAM, weave_target *wv, text_stream *fragme TEMPORARY_TEXT(matter); int rv = TRUE; if (Str__eq_wide_string( - Bibliographic__get_datum(wv->weave_web->md, TL_IS_317), L"On")) { + Bibliographic__get_datum(wv->weave_web->md, TL_IS_322), L"On")) { rv = FALSE; IMETHOD_CALL(rv, wf, PRESERVE_MATH_MODE_FOR_MTID, matter, fragment); } @@ -21166,9 +21182,9 @@ void Formats__text_fragment(OUTPUT_STREAM, weave_target *wv, text_stream *fragme DISCARD_TEXT(matter); } -#line 433 "inweb/Chapter 5/Weave Formats.w" +#line 441 "inweb/Chapter 5/Weave Formats.w" -#line 435 "inweb/Chapter 5/Weave Formats.w" +#line 443 "inweb/Chapter 5/Weave Formats.w" IMETHOD_TYPE(PREFORM_DOCUMENT_FOR_MTID, weave_format *wf, text_stream *OUT, weave_target *wv, web *W, chapter *C, section *S, source_line *L, text_stream *matter, text_stream *concluding_comment) @@ -21182,18 +21198,18 @@ int Formats__preform_document(OUTPUT_STREAM, weave_target *wv, web *W, return rv; } -#line 453 "inweb/Chapter 5/Weave Formats.w" +#line 461 "inweb/Chapter 5/Weave Formats.w" -#line 455 "inweb/Chapter 5/Weave Formats.w" +#line 463 "inweb/Chapter 5/Weave Formats.w" VMETHOD_TYPE(ENDNOTE_FOR_MTID, weave_format *wf, text_stream *OUT, weave_target *wv, int end) void Formats__endnote(OUTPUT_STREAM, weave_target *wv, int end) { weave_format *wf = wv->format; VMETHOD_CALL(wf, ENDNOTE_FOR_MTID, OUT, wv, end); } -#line 467 "inweb/Chapter 5/Weave Formats.w" +#line 475 "inweb/Chapter 5/Weave Formats.w" -#line 469 "inweb/Chapter 5/Weave Formats.w" +#line 477 "inweb/Chapter 5/Weave Formats.w" VMETHOD_TYPE(LOCALE_FOR_MTID, weave_format *wf, text_stream *OUT, weave_target *wv, paragraph *par1, paragraph *par2) void Formats__locale(OUTPUT_STREAM, weave_target *wv, paragraph *par1, paragraph *par2) { @@ -21201,9 +21217,9 @@ void Formats__locale(OUTPUT_STREAM, weave_target *wv, paragraph *par1, paragraph VMETHOD_CALL(wf, LOCALE_FOR_MTID, OUT, wv, par1, par2); } -#line 480 "inweb/Chapter 5/Weave Formats.w" +#line 488 "inweb/Chapter 5/Weave Formats.w" -#line 482 "inweb/Chapter 5/Weave Formats.w" +#line 490 "inweb/Chapter 5/Weave Formats.w" VMETHOD_TYPE(TAIL_FOR_MTID, weave_format *wf, text_stream *OUT, weave_target *wv, text_stream *comment, section *S) void Formats__tail(OUTPUT_STREAM, weave_target *wv, text_stream *comment, section *S) { @@ -21211,25 +21227,25 @@ void Formats__tail(OUTPUT_STREAM, weave_target *wv, text_stream *comment, sectio VMETHOD_CALL(wf, TAIL_FOR_MTID, OUT, wv, comment, S); } -#line 497 "inweb/Chapter 5/Weave Formats.w" +#line 505 "inweb/Chapter 5/Weave Formats.w" -#line 499 "inweb/Chapter 5/Weave Formats.w" +#line 507 "inweb/Chapter 5/Weave Formats.w" VMETHOD_TYPE(POST_PROCESS_POS_MTID, weave_format *wf, weave_target *wv, int open_afterwards) void Formats__post_process_weave(weave_target *wv, int open_afterwards) { VMETHOD_CALL(wv->format, POST_PROCESS_POS_MTID, wv, open_afterwards); } -#line 508 "inweb/Chapter 5/Weave Formats.w" +#line 516 "inweb/Chapter 5/Weave Formats.w" -#line 510 "inweb/Chapter 5/Weave Formats.w" +#line 518 "inweb/Chapter 5/Weave Formats.w" VMETHOD_TYPE(POST_PROCESS_REPORT_POS_MTID, weave_format *wf, weave_target *wv) void Formats__report_on_post_processing(weave_target *wv) { VMETHOD_CALL(wv->format, POST_PROCESS_REPORT_POS_MTID, wv); } -#line 520 "inweb/Chapter 5/Weave Formats.w" +#line 528 "inweb/Chapter 5/Weave Formats.w" -#line 522 "inweb/Chapter 5/Weave Formats.w" +#line 530 "inweb/Chapter 5/Weave Formats.w" IMETHOD_TYPE(INDEX_PDFS_POS_MTID, weave_format *wf) int Formats__index_pdfs(text_stream *format) { weave_format *wf = Formats__find_by_name(format); @@ -21239,9 +21255,9 @@ int Formats__index_pdfs(text_stream *format) { return rv; } -#line 535 "inweb/Chapter 5/Weave Formats.w" +#line 543 "inweb/Chapter 5/Weave Formats.w" -#line 537 "inweb/Chapter 5/Weave Formats.w" +#line 545 "inweb/Chapter 5/Weave Formats.w" IMETHOD_TYPE(POST_PROCESS_SUBSTITUTE_POS_MTID, weave_format *wf, text_stream *OUT, weave_target *wv, text_stream *detail, weave_pattern *pattern) int Formats__substitute_post_processing_data(OUTPUT_STREAM, weave_target *wv, @@ -21253,7 +21269,7 @@ int Formats__substitute_post_processing_data(OUTPUT_STREAM, weave_target *wv, #line 9 "inweb/Chapter 5/Plain Text Format.w" void PlainText__create(void) { - weave_format *wf = Formats__create_weave_format(TL_IS_318, TL_IS_319); + weave_format *wf = Formats__create_weave_format(TL_IS_323, TL_IS_324); METHOD_ADD(wf, TOP_FOR_MTID, PlainText__top); METHOD_ADD(wf, SUBHEADING_FOR_MTID, PlainText__subheading); METHOD_ADD(wf, TOC_FOR_MTID, PlainText__toc); @@ -21397,7 +21413,7 @@ void TeX__create(void) { { #line 16 "inweb/Chapter 5/TeX Format.w" - weave_format *wf = Formats__create_weave_format(TL_IS_320, TL_IS_321); + weave_format *wf = Formats__create_weave_format(TL_IS_325, TL_IS_326); { #line 40 "inweb/Chapter 5/TeX Format.w" @@ -21434,7 +21450,7 @@ void TeX__create(void) { { #line 20 "inweb/Chapter 5/TeX Format.w" - weave_format *wf = Formats__create_weave_format(TL_IS_322, TL_IS_323); + weave_format *wf = Formats__create_weave_format(TL_IS_327, TL_IS_328); { #line 40 "inweb/Chapter 5/TeX Format.w" @@ -21475,7 +21491,7 @@ void TeX__create(void) { { #line 28 "inweb/Chapter 5/TeX Format.w" - weave_format *wf = Formats__create_weave_format(TL_IS_324, TL_IS_325); + weave_format *wf = Formats__create_weave_format(TL_IS_329, TL_IS_330); METHOD_ADD(wf, PARA_MACRO_FOR_MTID, TeX__para_macro_PDF_1); { @@ -21530,7 +21546,7 @@ void TeX__top(weave_format *self, text_stream *OUT, weave_target *wv, text_strea { #line 85 "inweb/Chapter 5/TeX Format.w" - filename *Macros = Patterns__obtain_filename(wv->pattern, TL_IS_326); + filename *Macros = Patterns__obtain_filename(wv->pattern, TL_IS_331); FILE *MACROS = Filenames__fopen(Macros, "r"); if (MACROS == NULL) Errors__fatal_with_file("can't open file of TeX macros", Macros); while (TRUE) { @@ -21927,7 +21943,8 @@ int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_ta WRITE("\\hfill$\\longrightarrow$ {\\ttninepoint\\it %S}", problem); else if (Str__len(concluding_comment) > 0) { WRITE(" \\hfill{\\ttninepoint\\it "); - if (concluding_comment) Formats__text(OUT, wv, concluding_comment); + if (Str__len(concluding_comment) > 0) + Formats__text_comment(OUT, wv, concluding_comment); WRITE("}"); } WRITE("\n"); @@ -21944,7 +21961,7 @@ int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_ta return FALSE; } -#line 496 "inweb/Chapter 5/TeX Format.w" +#line 497 "inweb/Chapter 5/TeX Format.w" void TeX__post_process_PDF(weave_format *self, weave_target *wv, int open) { RunningTeX__post_process_weave(wv, open, FALSE); } @@ -21952,18 +21969,18 @@ void TeX__post_process_DVI(weave_format *self, weave_target *wv, int open) { RunningTeX__post_process_weave(wv, open, TRUE); } -#line 504 "inweb/Chapter 5/TeX Format.w" +#line 505 "inweb/Chapter 5/TeX Format.w" void TeX__post_process_report(weave_format *self, weave_target *wv) { RunningTeX__report_on_post_processing(wv); } -#line 509 "inweb/Chapter 5/TeX Format.w" +#line 510 "inweb/Chapter 5/TeX Format.w" int TeX__post_process_substitute(weave_format *self, text_stream *OUT, weave_target *wv, text_stream *detail, weave_pattern *pattern) { return RunningTeX__substitute_post_processing_data(OUT, wv, detail); } -#line 522 "inweb/Chapter 5/TeX Format.w" +#line 523 "inweb/Chapter 5/TeX Format.w" void TeX__remove_math_mode(OUTPUT_STREAM, text_stream *text) { TEMPORARY_TEXT(math_matter); TeX__remove_math_mode_range(math_matter, text, 0, Str__len(text)-1); @@ -21975,7 +21992,7 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int for (int i=from; i <= to; i++) { { -#line 553 "inweb/Chapter 5/TeX Format.w" +#line 554 "inweb/Chapter 5/TeX Format.w" if ((Str__get_at(text, i) == '\\') && (Str__get_at(text, i+1) == 'o') && (Str__get_at(text, i+2) == 'v') && (Str__get_at(text, i+3) == 'e') && (Str__get_at(text, i+4) == 'r') && @@ -22010,13 +22027,13 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int } } -#line 531 "inweb/Chapter 5/TeX Format.w" +#line 532 "inweb/Chapter 5/TeX Format.w" ; } for (int i=from; i <= to; i++) { { -#line 589 "inweb/Chapter 5/TeX Format.w" +#line 590 "inweb/Chapter 5/TeX Format.w" if ((Str__get_at(text, i) == '{') && (Str__get_at(text, i+1) == '\\') && (((Str__get_at(text, i+2) == 'r') && (Str__get_at(text, i+3) == 'm')) || ((Str__get_at(text, i+2) == 'i') && (Str__get_at(text, i+3) == 't'))) && @@ -22032,11 +22049,11 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int } } -#line 534 "inweb/Chapter 5/TeX Format.w" +#line 535 "inweb/Chapter 5/TeX Format.w" ; { -#line 607 "inweb/Chapter 5/TeX Format.w" +#line 608 "inweb/Chapter 5/TeX Format.w" if ((Str__get_at(text, i) == '\\') && (Str__get_at(text, i+1) == 's') && (Str__get_at(text, i+2) == 'q') && (Str__get_at(text, i+3) == 'r') && (Str__get_at(text, i+4) == 't') && @@ -22067,7 +22084,7 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int } } -#line 535 "inweb/Chapter 5/TeX Format.w" +#line 536 "inweb/Chapter 5/TeX Format.w" ; } int math_mode = FALSE; @@ -22079,21 +22096,21 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int case '~': if (math_mode) WRITE(" "); else WRITE("~"); break; case '\\': { -#line 637 "inweb/Chapter 5/TeX Format.w" +#line 638 "inweb/Chapter 5/TeX Format.w" TEMPORARY_TEXT(macro); i++; while ((i < Str__len(text)) && (Characters__isalpha(Str__get_at(text, i)))) PUT_TO(macro, Str__get_at(text, i++)); - if (Str__eq(macro, TL_IS_327)) + if (Str__eq(macro, TL_IS_332)) { -#line 760 "inweb/Chapter 5/TeX Format.w" +#line 761 "inweb/Chapter 5/TeX Format.w" if (Str__get_at(text, i) == '\\') { Str__clear(macro); i++; while ((i < Str__len(text)) && (Characters__isalpha(Str__get_at(text, i)))) PUT_TO(macro, Str__get_at(text, i++)); - if (Str__eq(macro, TL_IS_423)) PUT((wchar_t) 0x2204); - else if (Str__eq(macro, TL_IS_424)) { PUT((wchar_t) 0x00AC); PUT((wchar_t) 0x2200); } + if (Str__eq(macro, TL_IS_428)) PUT((wchar_t) 0x2204); + else if (Str__eq(macro, TL_IS_429)) { PUT((wchar_t) 0x00AC); PUT((wchar_t) 0x2200); } else { PRINT("Don't know how to apply '\\not' to '\\%S'\n", macro); } @@ -22102,104 +22119,104 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int } } -#line 641 "inweb/Chapter 5/TeX Format.w" +#line 642 "inweb/Chapter 5/TeX Format.w" else { -#line 647 "inweb/Chapter 5/TeX Format.w" - if (Str__eq(macro, TL_IS_328)) WRITE("<="); - else if (Str__eq(macro, TL_IS_329)) WRITE(">="); - else if (Str__eq(macro, TL_IS_330)) WRITE("~"); - else if (Str__eq(macro, TL_IS_331)) WRITE(""); - else if (Str__eq(macro, TL_IS_332)) WRITE(""); - else if (Str__eq(macro, TL_IS_333)) WRITE(""); - else if (Str__eq(macro, TL_IS_334)) WRITE("=>"); - else if (Str__eq(macro, TL_IS_335)) WRITE("<=>"); - else if (Str__eq(macro, TL_IS_336)) WRITE("-->"); - else if (Str__eq(macro, TL_IS_337)) WRITE("-->"); - else if (Str__eq(macro, TL_IS_338)) WRITE("-->"); - else if (Str__eq(macro, TL_IS_339)) WRITE("<--"); - else if (Str__eq(macro, TL_IS_340)) WRITE("<--"); - else if (Str__eq(macro, TL_IS_341)) WRITE("{"); - else if (Str__eq(macro, TL_IS_342)) WRITE("|"); - else if (Str__eq(macro, TL_IS_343)) WRITE("}"); - else if (Str__eq(macro, TL_IS_344)) WRITE("."); - else if (Str__eq(macro, TL_IS_345)) WRITE("..."); - else if (Str__eq(macro, TL_IS_346)) WRITE("..."); - else if (Str__eq(macro, TL_IS_347)) WRITE("*"); - else if (Str__eq(macro, TL_IS_348)) WRITE(" "); - else if (Str__eq(macro, TL_IS_349)) WRITE(" "); - else if (Str__eq(macro, TL_IS_350)) WRITE("TeX"); - else if (Str__eq(macro, TL_IS_351)) WRITE("!="); - else if (Str__eq(macro, TL_IS_352)) WRITE("!="); - else if (Str__eq(macro, TL_IS_353)) WRITE("l"); - else if (Str__eq(macro, TL_IS_354)) WRITE("log"); - else if (Str__eq(macro, TL_IS_355)) WRITE("exp"); - else if (Str__eq(macro, TL_IS_356)) WRITE("sin"); - else if (Str__eq(macro, TL_IS_357)) WRITE("cos"); - else if (Str__eq(macro, TL_IS_358)) WRITE("tan"); - else if (Str__eq(macro, TL_IS_359)) WRITE("T"); - else if (Str__eq(macro, TL_IS_360)) PUT((wchar_t) 0x0391); - else if (Str__eq(macro, TL_IS_361)) PUT((wchar_t) 0x0392); - else if (Str__eq(macro, TL_IS_362)) PUT((wchar_t) 0x0393); - else if (Str__eq(macro, TL_IS_363)) PUT((wchar_t) 0x0394); - else if (Str__eq(macro, TL_IS_364)) PUT((wchar_t) 0x0395); - else if (Str__eq(macro, TL_IS_365)) PUT((wchar_t) 0x0396); - else if (Str__eq(macro, TL_IS_366)) PUT((wchar_t) 0x0397); - else if (Str__eq(macro, TL_IS_367)) PUT((wchar_t) 0x0398); - else if (Str__eq(macro, TL_IS_368)) PUT((wchar_t) 0x0399); - else if (Str__eq(macro, TL_IS_369)) PUT((wchar_t) 0x039A); - else if (Str__eq(macro, TL_IS_370)) PUT((wchar_t) 0x039B); - else if (Str__eq(macro, TL_IS_371)) PUT((wchar_t) 0x039C); - else if (Str__eq(macro, TL_IS_372)) PUT((wchar_t) 0x039D); - else if (Str__eq(macro, TL_IS_373)) PUT((wchar_t) 0x039E); - else if (Str__eq(macro, TL_IS_374)) PUT((wchar_t) 0x039F); - else if (Str__eq(macro, TL_IS_375)) PUT((wchar_t) 0x03A0); - else if (Str__eq(macro, TL_IS_376)) PUT((wchar_t) 0x03A1); - else if (Str__eq(macro, TL_IS_377)) PUT((wchar_t) 0x03A2); - else if (Str__eq(macro, TL_IS_378)) PUT((wchar_t) 0x03A3); - else if (Str__eq(macro, TL_IS_379)) PUT((wchar_t) 0x03A4); - else if (Str__eq(macro, TL_IS_380)) PUT((wchar_t) 0x03A5); - else if (Str__eq(macro, TL_IS_381)) PUT((wchar_t) 0x03A6); - else if (Str__eq(macro, TL_IS_382)) PUT((wchar_t) 0x03A7); - else if (Str__eq(macro, TL_IS_383)) PUT((wchar_t) 0x03A8); - else if (Str__eq(macro, TL_IS_384)) PUT((wchar_t) 0x03A9); - else if (Str__eq(macro, TL_IS_385)) PUT((wchar_t) 0x03B1); - else if (Str__eq(macro, TL_IS_386)) PUT((wchar_t) 0x03B2); - else if (Str__eq(macro, TL_IS_387)) PUT((wchar_t) 0x03B3); - else if (Str__eq(macro, TL_IS_388)) PUT((wchar_t) 0x03B4); - else if (Str__eq(macro, TL_IS_389)) PUT((wchar_t) 0x03B5); - else if (Str__eq(macro, TL_IS_390)) PUT((wchar_t) 0x03B6); - else if (Str__eq(macro, TL_IS_391)) PUT((wchar_t) 0x03B7); - else if (Str__eq(macro, TL_IS_392)) PUT((wchar_t) 0x03B8); - else if (Str__eq(macro, TL_IS_393)) PUT((wchar_t) 0x03B9); - else if (Str__eq(macro, TL_IS_394)) PUT((wchar_t) 0x03BA); - else if (Str__eq(macro, TL_IS_395)) PUT((wchar_t) 0x03BB); - else if (Str__eq(macro, TL_IS_396)) PUT((wchar_t) 0x03BC); - else if (Str__eq(macro, TL_IS_397)) PUT((wchar_t) 0x03BD); - else if (Str__eq(macro, TL_IS_398)) PUT((wchar_t) 0x03BE); - else if (Str__eq(macro, TL_IS_399)) PUT((wchar_t) 0x03BF); - else if (Str__eq(macro, TL_IS_400)) PUT((wchar_t) 0x03C0); - else if (Str__eq(macro, TL_IS_401)) PUT((wchar_t) 0x03C1); - else if (Str__eq(macro, TL_IS_402)) PUT((wchar_t) 0x03C2); - else if (Str__eq(macro, TL_IS_403)) PUT((wchar_t) 0x03C3); - else if (Str__eq(macro, TL_IS_404)) PUT((wchar_t) 0x03C4); - else if (Str__eq(macro, TL_IS_405)) PUT((wchar_t) 0x03C5); - else if (Str__eq(macro, TL_IS_406)) PUT((wchar_t) 0x03C6); - else if (Str__eq(macro, TL_IS_407)) PUT((wchar_t) 0x03C7); - else if (Str__eq(macro, TL_IS_408)) PUT((wchar_t) 0x03C8); - else if (Str__eq(macro, TL_IS_409)) PUT((wchar_t) 0x03C9); - else if (Str__eq(macro, TL_IS_410)) PUT((wchar_t) 0x2203); - else if (Str__eq(macro, TL_IS_411)) PUT((wchar_t) 0x2208); - else if (Str__eq(macro, TL_IS_412)) PUT((wchar_t) 0x2200); - else if (Str__eq(macro, TL_IS_413)) PUT((wchar_t) 0x2229); - else if (Str__eq(macro, TL_IS_414)) PUT((wchar_t) 0x2205); - else if (Str__eq(macro, TL_IS_415)) PUT((wchar_t) 0x2286); - else if (Str__eq(macro, TL_IS_416)) PUT((wchar_t) 0x2227); - else if (Str__eq(macro, TL_IS_417)) PUT((wchar_t) 0x2228); - else if (Str__eq(macro, TL_IS_418)) PUT((wchar_t) 0x00AC); - else if (Str__eq(macro, TL_IS_419)) PUT((wchar_t) 0x03A3); - else if (Str__eq(macro, TL_IS_420)) PUT((wchar_t) 0x03A0); +#line 648 "inweb/Chapter 5/TeX Format.w" + if (Str__eq(macro, TL_IS_333)) WRITE("<="); + else if (Str__eq(macro, TL_IS_334)) WRITE(">="); + else if (Str__eq(macro, TL_IS_335)) WRITE("~"); + else if (Str__eq(macro, TL_IS_336)) WRITE(""); + else if (Str__eq(macro, TL_IS_337)) WRITE(""); + else if (Str__eq(macro, TL_IS_338)) WRITE(""); + else if (Str__eq(macro, TL_IS_339)) WRITE("=>"); + else if (Str__eq(macro, TL_IS_340)) WRITE("<=>"); + else if (Str__eq(macro, TL_IS_341)) WRITE("-->"); + else if (Str__eq(macro, TL_IS_342)) WRITE("-->"); + else if (Str__eq(macro, TL_IS_343)) WRITE("-->"); + else if (Str__eq(macro, TL_IS_344)) WRITE("<--"); + else if (Str__eq(macro, TL_IS_345)) WRITE("<--"); + else if (Str__eq(macro, TL_IS_346)) WRITE("{"); + else if (Str__eq(macro, TL_IS_347)) WRITE("|"); + else if (Str__eq(macro, TL_IS_348)) WRITE("}"); + else if (Str__eq(macro, TL_IS_349)) WRITE("."); + else if (Str__eq(macro, TL_IS_350)) WRITE("..."); + else if (Str__eq(macro, TL_IS_351)) WRITE("..."); + else if (Str__eq(macro, TL_IS_352)) WRITE("*"); + else if (Str__eq(macro, TL_IS_353)) WRITE(" "); + else if (Str__eq(macro, TL_IS_354)) WRITE(" "); + else if (Str__eq(macro, TL_IS_355)) WRITE("TeX"); + else if (Str__eq(macro, TL_IS_356)) WRITE("!="); + else if (Str__eq(macro, TL_IS_357)) WRITE("!="); + else if (Str__eq(macro, TL_IS_358)) WRITE("l"); + else if (Str__eq(macro, TL_IS_359)) WRITE("log"); + else if (Str__eq(macro, TL_IS_360)) WRITE("exp"); + else if (Str__eq(macro, TL_IS_361)) WRITE("sin"); + else if (Str__eq(macro, TL_IS_362)) WRITE("cos"); + else if (Str__eq(macro, TL_IS_363)) WRITE("tan"); + else if (Str__eq(macro, TL_IS_364)) WRITE("T"); + else if (Str__eq(macro, TL_IS_365)) PUT((wchar_t) 0x0391); + else if (Str__eq(macro, TL_IS_366)) PUT((wchar_t) 0x0392); + else if (Str__eq(macro, TL_IS_367)) PUT((wchar_t) 0x0393); + else if (Str__eq(macro, TL_IS_368)) PUT((wchar_t) 0x0394); + else if (Str__eq(macro, TL_IS_369)) PUT((wchar_t) 0x0395); + else if (Str__eq(macro, TL_IS_370)) PUT((wchar_t) 0x0396); + else if (Str__eq(macro, TL_IS_371)) PUT((wchar_t) 0x0397); + else if (Str__eq(macro, TL_IS_372)) PUT((wchar_t) 0x0398); + else if (Str__eq(macro, TL_IS_373)) PUT((wchar_t) 0x0399); + else if (Str__eq(macro, TL_IS_374)) PUT((wchar_t) 0x039A); + else if (Str__eq(macro, TL_IS_375)) PUT((wchar_t) 0x039B); + else if (Str__eq(macro, TL_IS_376)) PUT((wchar_t) 0x039C); + else if (Str__eq(macro, TL_IS_377)) PUT((wchar_t) 0x039D); + else if (Str__eq(macro, TL_IS_378)) PUT((wchar_t) 0x039E); + else if (Str__eq(macro, TL_IS_379)) PUT((wchar_t) 0x039F); + else if (Str__eq(macro, TL_IS_380)) PUT((wchar_t) 0x03A0); + else if (Str__eq(macro, TL_IS_381)) PUT((wchar_t) 0x03A1); + else if (Str__eq(macro, TL_IS_382)) PUT((wchar_t) 0x03A2); + else if (Str__eq(macro, TL_IS_383)) PUT((wchar_t) 0x03A3); + else if (Str__eq(macro, TL_IS_384)) PUT((wchar_t) 0x03A4); + else if (Str__eq(macro, TL_IS_385)) PUT((wchar_t) 0x03A5); + else if (Str__eq(macro, TL_IS_386)) PUT((wchar_t) 0x03A6); + else if (Str__eq(macro, TL_IS_387)) PUT((wchar_t) 0x03A7); + else if (Str__eq(macro, TL_IS_388)) PUT((wchar_t) 0x03A8); + else if (Str__eq(macro, TL_IS_389)) PUT((wchar_t) 0x03A9); + else if (Str__eq(macro, TL_IS_390)) PUT((wchar_t) 0x03B1); + else if (Str__eq(macro, TL_IS_391)) PUT((wchar_t) 0x03B2); + else if (Str__eq(macro, TL_IS_392)) PUT((wchar_t) 0x03B3); + else if (Str__eq(macro, TL_IS_393)) PUT((wchar_t) 0x03B4); + else if (Str__eq(macro, TL_IS_394)) PUT((wchar_t) 0x03B5); + else if (Str__eq(macro, TL_IS_395)) PUT((wchar_t) 0x03B6); + else if (Str__eq(macro, TL_IS_396)) PUT((wchar_t) 0x03B7); + else if (Str__eq(macro, TL_IS_397)) PUT((wchar_t) 0x03B8); + else if (Str__eq(macro, TL_IS_398)) PUT((wchar_t) 0x03B9); + else if (Str__eq(macro, TL_IS_399)) PUT((wchar_t) 0x03BA); + else if (Str__eq(macro, TL_IS_400)) PUT((wchar_t) 0x03BB); + else if (Str__eq(macro, TL_IS_401)) PUT((wchar_t) 0x03BC); + else if (Str__eq(macro, TL_IS_402)) PUT((wchar_t) 0x03BD); + else if (Str__eq(macro, TL_IS_403)) PUT((wchar_t) 0x03BE); + else if (Str__eq(macro, TL_IS_404)) PUT((wchar_t) 0x03BF); + else if (Str__eq(macro, TL_IS_405)) PUT((wchar_t) 0x03C0); + else if (Str__eq(macro, TL_IS_406)) PUT((wchar_t) 0x03C1); + else if (Str__eq(macro, TL_IS_407)) PUT((wchar_t) 0x03C2); + else if (Str__eq(macro, TL_IS_408)) PUT((wchar_t) 0x03C3); + else if (Str__eq(macro, TL_IS_409)) PUT((wchar_t) 0x03C4); + else if (Str__eq(macro, TL_IS_410)) PUT((wchar_t) 0x03C5); + else if (Str__eq(macro, TL_IS_411)) PUT((wchar_t) 0x03C6); + else if (Str__eq(macro, TL_IS_412)) PUT((wchar_t) 0x03C7); + else if (Str__eq(macro, TL_IS_413)) PUT((wchar_t) 0x03C8); + else if (Str__eq(macro, TL_IS_414)) PUT((wchar_t) 0x03C9); + else if (Str__eq(macro, TL_IS_415)) PUT((wchar_t) 0x2203); + else if (Str__eq(macro, TL_IS_416)) PUT((wchar_t) 0x2208); + else if (Str__eq(macro, TL_IS_417)) PUT((wchar_t) 0x2200); + else if (Str__eq(macro, TL_IS_418)) PUT((wchar_t) 0x2229); + else if (Str__eq(macro, TL_IS_419)) PUT((wchar_t) 0x2205); + else if (Str__eq(macro, TL_IS_420)) PUT((wchar_t) 0x2286); + else if (Str__eq(macro, TL_IS_421)) PUT((wchar_t) 0x2227); + else if (Str__eq(macro, TL_IS_422)) PUT((wchar_t) 0x2228); + else if (Str__eq(macro, TL_IS_423)) PUT((wchar_t) 0x00AC); + else if (Str__eq(macro, TL_IS_424)) PUT((wchar_t) 0x03A3); + else if (Str__eq(macro, TL_IS_425)) PUT((wchar_t) 0x03A0); else { if (Str__len(macro) > 0) { int suspect = TRUE; @@ -22209,8 +22226,8 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int if ((c >= 'a') && (c <= 'z')) continue; suspect = FALSE; } - if (Str__eq(macro, TL_IS_421)) suspect = FALSE; - if (Str__eq(macro, TL_IS_422)) suspect = FALSE; + if (Str__eq(macro, TL_IS_426)) suspect = FALSE; + if (Str__eq(macro, TL_IS_427)) suspect = FALSE; if (suspect) PRINT("[Passing through unknown TeX macro \\%S:\n %S\n", macro, text); } @@ -22218,13 +22235,13 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int } } -#line 642 "inweb/Chapter 5/TeX Format.w" +#line 643 "inweb/Chapter 5/TeX Format.w" ; DISCARD_TEXT(macro); i--; } -#line 544 "inweb/Chapter 5/TeX Format.w" +#line 545 "inweb/Chapter 5/TeX Format.w" ; break; default: PUT(Str__get_at(text, i)); break; } @@ -22236,7 +22253,7 @@ void HTMLFormat__create(void) { { #line 12 "inweb/Chapter 5/HTML Formats.w" - weave_format *wf = Formats__create_weave_format(TL_IS_425, TL_IS_426); + weave_format *wf = Formats__create_weave_format(TL_IS_430, TL_IS_431); METHOD_ADD(wf, TOP_FOR_MTID, HTMLFormat__top); { @@ -22270,7 +22287,7 @@ void HTMLFormat__create(void) { { #line 17 "inweb/Chapter 5/HTML Formats.w" - weave_format *wf = Formats__create_weave_format(TL_IS_427, TL_IS_428); + weave_format *wf = Formats__create_weave_format(TL_IS_432, TL_IS_433); METHOD_ADD(wf, TOP_FOR_MTID, HTMLFormat__top_EPUB); { @@ -22384,9 +22401,9 @@ void HTMLFormat__breadcrumb(OUTPUT_STREAM, text_stream *text, text_stream *link) #line 142 "inweb/Chapter 5/HTML Formats.w" void HTMLFormat__top(weave_format *self, text_stream *OUT, weave_target *wv, text_stream *comment) { HTML__declare_as_HTML(OUT, FALSE); - Indexer__cover_sheet_maker(OUT, wv->weave_web, TL_IS_429, wv, WEAVE_FIRST_HALF); + Indexer__cover_sheet_maker(OUT, wv->weave_web, TL_IS_434, wv, WEAVE_FIRST_HALF); if (wv->self_contained == FALSE) { - filename *CSS = Patterns__obtain_filename(wv->pattern, TL_IS_430); + filename *CSS = Patterns__obtain_filename(wv->pattern, TL_IS_435); if (wv->pattern->hierarchical) Patterns__copy_up_file_into_weave(wv->weave_web, CSS); else @@ -22398,8 +22415,8 @@ void HTMLFormat__top(weave_format *self, text_stream *OUT, weave_target *wv, tex void HTMLFormat__top_EPUB(weave_format *self, text_stream *OUT, weave_target *wv, text_stream *comment) { HTML__declare_as_HTML(OUT, TRUE); - Epub__note_page(wv->weave_web->as_ebook, wv->weave_to, wv->booklet_title, TL_IS_431); - Indexer__cover_sheet_maker(OUT, wv->weave_web, TL_IS_432, wv, WEAVE_FIRST_HALF); + Epub__note_page(wv->weave_web->as_ebook, wv->weave_to, wv->booklet_title, TL_IS_436); + Indexer__cover_sheet_maker(OUT, wv->weave_web, TL_IS_437, wv, WEAVE_FIRST_HALF); HTML__comment(OUT, comment); html_in_para = HTML_OUT; } @@ -22478,7 +22495,7 @@ void HTMLFormat__paragraph_heading(weave_format *self, text_stream *OUT, } else { if (wv->self_contained == FALSE) { if (crumbs_dropped == FALSE) { - filename *C = Patterns__obtain_filename(wv->pattern, TL_IS_433); + filename *C = Patterns__obtain_filename(wv->pattern, TL_IS_438); if (wv->pattern->hierarchical) Patterns__copy_up_file_into_weave(wv->weave_web, C); else @@ -22487,11 +22504,11 @@ void HTMLFormat__paragraph_heading(weave_format *self, text_stream *OUT, } HTML_OPEN_WITH("ul", "class=\"crumbs\""); HTMLFormat__drop_initial_breadcrumbs(OUT, wv->breadcrumbs, wv->docs_mode); - text_stream *bct = Bibliographic__get_datum(wv->weave_web->md, TL_IS_434); - if (Str__len(Bibliographic__get_datum(wv->weave_web->md, TL_IS_435)) > 0) { - bct = Bibliographic__get_datum(wv->weave_web->md, TL_IS_436); + text_stream *bct = Bibliographic__get_datum(wv->weave_web->md, TL_IS_439); + if (Str__len(Bibliographic__get_datum(wv->weave_web->md, TL_IS_440)) > 0) { + bct = Bibliographic__get_datum(wv->weave_web->md, TL_IS_441); } - HTMLFormat__breadcrumb(OUT, bct, TL_IS_437); + HTMLFormat__breadcrumb(OUT, bct, TL_IS_442); if (wv->weave_web->md->chaptered) { TEMPORARY_TEXT(chapter_link); @@ -22518,7 +22535,7 @@ void HTMLFormat__drop_initial_breadcrumbs(OUTPUT_STREAM, linked_list *crumbs, in HTMLFormat__breadcrumb(OUT, BR->breadcrumb_text, BR->breadcrumb_link); } } else if (docs_mode) - HTMLFormat__breadcrumb(OUT, TL_IS_438, TL_IS_439); + HTMLFormat__breadcrumb(OUT, TL_IS_443, TL_IS_444); } #line 282 "inweb/Chapter 5/HTML Formats.w" @@ -22532,7 +22549,7 @@ void HTMLFormat__source_code(weave_format *self, text_stream *OUT, weave_target WRITE("%S", prefatory); HTML_CLOSE("span"); WRITE(" "); - if (Str__eq(prefatory, TL_IS_440)) { + if (Str__eq(prefatory, TL_IS_445)) { match_results mr = Regexp__create_mr(); if (Regexp__match(&mr, matter, L"(%c*) from (%C+) *")) { HTMLFormat__source_code(self, OUT, wv, 0, NULL, mr.exp[0], colouring, @@ -22576,7 +22593,7 @@ void HTMLFormat__source_code(weave_format *self, text_stream *OUT, weave_target if (Str__len(concluding_comment) > 0) { if (!starts) WRITE(" "); HTML_OPEN_WITH("span", "class=\"comment\""); - Formats__text(OUT, wv, concluding_comment); + Formats__text_comment(OUT, wv, concluding_comment); HTML_CLOSE("span"); } WRITE("\n"); @@ -22625,7 +22642,7 @@ void HTMLFormat__figure(weave_format *self, text_stream *OUT, weave_target *wv, text_stream *figname, int w, int h, programming_language *pl) { HTMLFormat__exit_current_paragraph(OUT); filename *F = Filenames__in_folder( - Pathnames__subfolder(wv->weave_web->md->path_to_web, TL_IS_441), + Pathnames__subfolder(wv->weave_web->md->path_to_web, TL_IS_446), figname); filename *RF = Filenames__from_text(figname); HTML_OPEN("center"); @@ -22867,8 +22884,8 @@ void HTMLFormat__tail(weave_format *self, text_stream *OUT, weave_target *wv, } HTML__comment(OUT, comment); HTML__completed(OUT); - Bibliographic__set_datum(wv->weave_web->md, TL_IS_442, wv->booklet_title); - Indexer__cover_sheet_maker(OUT, wv->weave_web, TL_IS_443, wv, WEAVE_SECOND_HALF); + Bibliographic__set_datum(wv->weave_web->md, TL_IS_447, wv->booklet_title); + Indexer__cover_sheet_maker(OUT, wv->weave_web, TL_IS_448, wv, WEAVE_SECOND_HALF); } #line 628 "inweb/Chapter 5/HTML Formats.w" @@ -22885,9 +22902,9 @@ void HTMLFormat__sref(OUTPUT_STREAM, weave_target *wv, section *S) { #line 641 "inweb/Chapter 5/HTML Formats.w" int HTMLFormat__begin_weaving_EPUB(weave_format *wf, web *W, weave_pattern *pattern) { TEMPORARY_TEXT(T) - WRITE_TO(T, "%S", Bibliographic__get_datum(W->md, TL_IS_444)); + WRITE_TO(T, "%S", Bibliographic__get_datum(W->md, TL_IS_449)); W->as_ebook = Epub__new(T, "P"); - filename *CSS = Patterns__obtain_filename(pattern, TL_IS_445); + filename *CSS = Patterns__obtain_filename(pattern, TL_IS_450); Epub__use_CSS_throughout(W->as_ebook, CSS); Epub__attach_metadata(W->as_ebook, L"identifier", T); DISCARD_TEXT(T) @@ -23184,7 +23201,7 @@ void Makefiles__scan_makefile_line(text_stream *line, text_file_position *tfp, v { #line 139 "inweb/Chapter 6/Makefiles.w" WRITE("%S", mr.exp[0]); - Makefiles__repeat(OUT, TL_IS_446, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_447); + Makefiles__repeat(OUT, TL_IS_451, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_452); WRITE("%S\n", mr.exp[2]); MS->last_line_was_blank = FALSE; Regexp__dispose_of(&mr); @@ -23206,7 +23223,7 @@ void Makefiles__scan_makefile_line(text_stream *line, text_file_position *tfp, v { #line 139 "inweb/Chapter 6/Makefiles.w" WRITE("%S", mr.exp[0]); - Makefiles__repeat(OUT, TL_IS_446, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_447); + Makefiles__repeat(OUT, TL_IS_451, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_452); WRITE("%S\n", mr.exp[2]); MS->last_line_was_blank = FALSE; Regexp__dispose_of(&mr); @@ -23228,7 +23245,7 @@ void Makefiles__scan_makefile_line(text_stream *line, text_file_position *tfp, v { #line 139 "inweb/Chapter 6/Makefiles.w" WRITE("%S", mr.exp[0]); - Makefiles__repeat(OUT, TL_IS_446, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_447); + Makefiles__repeat(OUT, TL_IS_451, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_452); WRITE("%S\n", mr.exp[2]); MS->last_line_was_blank = FALSE; Regexp__dispose_of(&mr); @@ -23246,7 +23263,7 @@ void Makefiles__scan_makefile_line(text_stream *line, text_file_position *tfp, v { #line 156 "inweb/Chapter 6/Makefiles.w" WRITE("INWEB = "); Makefiles__pathname_slashed(OUT, path_to_inweb); WRITE("/Tangled/inweb\n"); - pathname *path_to_intest = Pathnames__subfolder(Pathnames__up(path_to_inweb), TL_IS_449); + pathname *path_to_intest = Pathnames__subfolder(Pathnames__up(path_to_inweb), TL_IS_454); WRITE("INTEST = "); Makefiles__pathname_slashed(OUT, path_to_intest); WRITE("/Tangled/intest\n"); if (MS->for_web) { WRITE("MYNAME = %S\n", Pathnames__directory_name(MS->for_web->md->path_to_web)); @@ -23263,7 +23280,7 @@ void Makefiles__scan_makefile_line(text_stream *line, text_file_position *tfp, v if (Regexp__match(&mr, line, L" *{platform-settings} *")) { #line 147 "inweb/Chapter 6/Makefiles.w" - filename *prototype = Filenames__in_folder(path_to_inweb, TL_IS_448); + filename *prototype = Filenames__in_folder(path_to_inweb, TL_IS_453); MS->allow_commands = FALSE; TextFiles__read(prototype, FALSE, "can't open make settings file", TRUE, Makefiles__scan_makefile_line, NULL, MS); @@ -23546,7 +23563,7 @@ void Makefiles__repeat(OUTPUT_STREAM, text_stream *prefix, int every_time, text_ int c = 0; LOOP_OVER(M, module) { if ((M->origin_marker == over) && - ((Str__eq(tag, TL_IS_450)) || (Str__eq(tag, M->module_tag)))) { + ((Str__eq(tag, TL_IS_455)) || (Str__eq(tag, M->module_tag)))) { if ((prefix) && ((c++ > 0) || (every_time))) WRITE("%S", prefix); if (matter) { TEMPORARY_TEXT(line); @@ -23600,7 +23617,7 @@ void Git__copy_gitignore_line(text_stream *line, text_file_position *tfp, void * { #line 44 "inweb/Chapter 6/Git Support.w" filename *prototype = - Filenames__in_folder(path_to_inweb_materials, TL_IS_451); + Filenames__in_folder(path_to_inweb_materials, TL_IS_456); TextFiles__read(prototype, FALSE, "can't open make settings file", TRUE, Git__copy_gitignore_line, NULL, MS); Regexp__dispose_of(&mr); @@ -23634,11 +23651,11 @@ void Readme__write(filename *from, filename *to) { write_state ws; ws.current_definition = NULL; ws.known_macros = NEW_LINKED_LIST(macro); - macro *V = Readme__new_macro(TL_IS_452, NULL, NULL); + macro *V = Readme__new_macro(TL_IS_457, NULL, NULL); ADD_TO_LINKED_LIST(V, macro, ws.known_macros); - macro *P = Readme__new_macro(TL_IS_453, NULL, NULL); + macro *P = Readme__new_macro(TL_IS_458, NULL, NULL); ADD_TO_LINKED_LIST(P, macro, ws.known_macros); - macro *A = Readme__new_macro(TL_IS_454, NULL, NULL); + macro *A = Readme__new_macro(TL_IS_459, NULL, NULL); ADD_TO_LINKED_LIST(A, macro, ws.known_macros); ws.stack_frame = NULL; text_stream file_to; @@ -23674,7 +23691,7 @@ void Readme__write_helper(text_stream *text, text_file_position *tfp, void *stat } } else { Readme__expand_material(ws, OUT, text, tfp); - Readme__expand_material(ws, OUT, TL_IS_455, tfp); + Readme__expand_material(ws, OUT, TL_IS_460, tfp); } Regexp__dispose_of(&mr); } @@ -23805,7 +23822,7 @@ void Readme__expand_at(write_state *ws, text_stream *OUT, text_stream *macro_nam #line 204 "inweb/Chapter 6/Readme Writeme.w" void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file_position *tfp) { - if (Str__eq(M->name, TL_IS_456)) + if (Str__eq(M->name, TL_IS_461)) { #line 215 "inweb/Chapter 6/Readme Writeme.w" if (ws->stack_frame->no_pars != 1) @@ -23813,14 +23830,14 @@ void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file else { TEMPORARY_TEXT(program); Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp); - Readme__write_var(OUT, program, TL_IS_459); + Readme__write_var(OUT, program, TL_IS_464); DISCARD_TEXT(program); } } #line 205 "inweb/Chapter 6/Readme Writeme.w" - else if (Str__eq(M->name, TL_IS_457)) + else if (Str__eq(M->name, TL_IS_462)) { #line 225 "inweb/Chapter 6/Readme Writeme.w" if (ws->stack_frame->no_pars != 1) @@ -23828,14 +23845,14 @@ void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file else { TEMPORARY_TEXT(program); Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp); - Readme__write_var(OUT, program, TL_IS_460); + Readme__write_var(OUT, program, TL_IS_465); DISCARD_TEXT(program); } } #line 206 "inweb/Chapter 6/Readme Writeme.w" - else if (Str__eq(M->name, TL_IS_458)) + else if (Str__eq(M->name, TL_IS_463)) { #line 235 "inweb/Chapter 6/Readme Writeme.w" if (ws->stack_frame->no_pars != 2) @@ -23864,8 +23881,8 @@ void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file void Readme__write_var(text_stream *OUT, text_stream *program, text_stream *datum) { writeme_asset *A = Readme__find_asset(program); if (A->if_web) WRITE("%S", Bibliographic__get_datum(A->if_web, datum)); - else if (Str__eq(datum, TL_IS_461)) WRITE("%S", A->date); - else if (Str__eq(datum, TL_IS_462)) WRITE("%S", A->version); + else if (Str__eq(datum, TL_IS_466)) WRITE("%S", A->date); + else if (Str__eq(datum, TL_IS_467)) WRITE("%S", A->version); } #line 273 "inweb/Chapter 6/Readme Writeme.w" @@ -23896,7 +23913,7 @@ writeme_asset *Readme__find_asset(text_stream *program) { A->if_web = WebMetadata__get_without_modules(Pathnames__from_text(program), NULL); } else { filename *I6_vn = Filenames__in_folder( - Pathnames__subfolder(Pathnames__from_text(program), TL_IS_463), TL_IS_464); + Pathnames__subfolder(Pathnames__from_text(program), TL_IS_468), TL_IS_469); if (TextFiles__exists(I6_vn)) { #line 310 "inweb/Chapter 6/Readme Writeme.w" @@ -23906,7 +23923,7 @@ writeme_asset *Readme__find_asset(text_stream *program) { } #line 295 "inweb/Chapter 6/Readme Writeme.w" ; - filename *template_vn = Filenames__in_folder(Pathnames__from_text(program), TL_IS_465); + filename *template_vn = Filenames__in_folder(Pathnames__from_text(program), TL_IS_470); if (TextFiles__exists(template_vn)) { #line 314 "inweb/Chapter 6/Readme Writeme.w" @@ -23916,7 +23933,7 @@ writeme_asset *Readme__find_asset(text_stream *program) { } #line 297 "inweb/Chapter 6/Readme Writeme.w" ; - filename *rmt_vn = Filenames__in_folder(Pathnames__from_text(program), TL_IS_466); + filename *rmt_vn = Filenames__in_folder(Pathnames__from_text(program), TL_IS_471); if (TextFiles__exists(rmt_vn)) { #line 318 "inweb/Chapter 6/Readme Writeme.w" @@ -23926,7 +23943,7 @@ writeme_asset *Readme__find_asset(text_stream *program) { } #line 299 "inweb/Chapter 6/Readme Writeme.w" ; - rmt_vn = Filenames__in_folder(Pathnames__from_text(program), TL_IS_467); + rmt_vn = Filenames__in_folder(Pathnames__from_text(program), TL_IS_472); if (TextFiles__exists(rmt_vn)) { #line 318 "inweb/Chapter 6/Readme Writeme.w" @@ -24050,417 +24067,422 @@ void register_tangled_text_literals(void) { TL_IS_52 = Str__literal(L"On"); TL_IS_53 = Str__literal(L"Code In Commentary Notation"); TL_IS_54 = Str__literal(L"|"); - TL_IS_55 = Str__literal(L"Web Syntax Version"); - TL_IS_56 = Str__literal(L"Capitalized Title"); - TL_IS_57 = Str__literal(L"miscellaneous"); - TL_IS_58 = Str__literal(L"(main)"); - TL_IS_59 = Str__literal(L"build.txt"); - TL_IS_60 = Str__literal(L"build.txt"); - TL_IS_61 = Str__literal(L"Prerelease"); - TL_IS_62 = Str__literal(L"Build Number"); - TL_IS_63 = Str__literal(L"Build Date"); - TL_IS_64 = Str__literal(L"Semantic Version Number"); - TL_IS_65 = Str__literal(L"Version Number"); - TL_IS_66 = Str__literal(L"Prerelease"); - TL_IS_67 = Str__literal(L"Build Number"); - TL_IS_68 = Str__literal(L"Semantic Version Number"); - TL_IS_69 = Str__literal(L"The compiler is not feeling well today."); - TL_IS_70 = Str__literal(L"inweb"); - TL_IS_71 = Str__literal(L"Patterns"); - TL_IS_72 = Str__literal(L"Materials"); - TL_IS_73 = Str__literal(L"makescript.txt"); - TL_IS_74 = Str__literal(L"gitignorescript.txt"); - TL_IS_75 = Str__literal(L"READMEscript.txt"); - TL_IS_76 = Str__literal(L"Short Title"); - TL_IS_77 = Str__literal(L"Short Title"); - TL_IS_78 = Str__literal(L"Title"); - TL_IS_79 = Str__literal(L"docs"); - TL_IS_80 = Str__literal(L"Short Title"); - TL_IS_81 = Str__literal(L"Short Title"); - TL_IS_82 = Str__literal(L"Title"); - TL_IS_83 = Str__literal(L"GitHubPages"); - TL_IS_84 = Str__literal(L"0"); - TL_IS_85 = Str__literal(L"for locating programming language definitions"); - TL_IS_86 = Str__literal(L"for analysing a web"); - TL_IS_87 = Str__literal(L"for weaving a web"); - TL_IS_88 = Str__literal(L"for tangling a web"); - TL_IS_89 = Str__literal(L".inweb"); - TL_IS_90 = Str__literal(L"0"); - TL_IS_91 = Str__literal(L"0"); - TL_IS_92 = Str__literal(L"tex"); - TL_IS_93 = Str__literal(L"pdftex"); - TL_IS_94 = Str__literal(L"open"); - TL_IS_95 = Str__literal(L"Patterns"); - TL_IS_96 = Str__literal(L"pattern.txt"); - TL_IS_97 = Str__literal(L"pattern.txt"); - TL_IS_98 = Str__literal(L"format"); - TL_IS_99 = Str__literal(L"abbrevs"); - TL_IS_100 = Str__literal(L"numbered"); - TL_IS_101 = Str__literal(L"default-range"); - TL_IS_102 = Str__literal(L"tex-command"); - TL_IS_103 = Str__literal(L"pdftex-command"); - TL_IS_104 = Str__literal(L"open-command"); - TL_IS_105 = Str__literal(L"Booklet Title"); - TL_IS_106 = Str__literal(L"yes"); - TL_IS_107 = Str__literal(L"no"); - TL_IS_108 = Str__literal(L"../"); - TL_IS_109 = Str__literal(L"Inweb Version"); - TL_IS_110 = Str__literal(L"Language"); - TL_IS_111 = Str__literal(L"Woven"); - TL_IS_112 = Str__literal(L"Tangled"); - TL_IS_113 = Str__literal(L"Title"); - TL_IS_114 = Str__literal(L""); - TL_IS_115 = Str__literal(L"="); - TL_IS_116 = Str__literal(L"@"); - TL_IS_117 = Str__literal(L"Figures"); - TL_IS_118 = Str__literal(L"Figures"); - TL_IS_119 = Str__literal(L"unknown [[command]]"); - TL_IS_120 = Str__literal(L"<...> definition begins outside of a paragraph"); - TL_IS_121 = Str__literal(L"(very early code)"); - TL_IS_122 = Str__literal(L"(early code)"); - TL_IS_123 = Str__literal(L"unknown bracketed annotation"); - TL_IS_124 = Str__literal(L"unknown material after '='"); - TL_IS_125 = Str__literal(L"undisplayed"); - TL_IS_126 = Str__literal(L"only 'undisplayed' can precede 'text' here"); - TL_IS_127 = Str__literal(L"="); - TL_IS_128 = Str__literal(L"don't understand @command"); - TL_IS_129 = Str__literal(L"Purpose used after bar"); - TL_IS_130 = Str__literal(L"Interface used after bar"); - TL_IS_131 = Str__literal(L"Definitions used after bar"); - TL_IS_132 = Str__literal(L"second bar in the same section"); - TL_IS_133 = Str__literal(L"enumeration constants can't supply a value"); - TL_IS_134 = Str__literal(L"P"); - TL_IS_135 = Str__literal(L"S"); - TL_IS_136 = Str__literal(L"ifdef-"); - TL_IS_137 = Str__literal(L"ifndef-"); - TL_IS_138 = Str__literal(L"."); - TL_IS_139 = Str__literal(L"This paragraph is used only if "); - TL_IS_140 = Str__literal(L" and if "); - TL_IS_141 = Str__literal(L" and "); - TL_IS_142 = Str__literal(L" is"); - TL_IS_143 = Str__literal(L" are"); - TL_IS_144 = Str__literal(L" defined"); - TL_IS_145 = Str__literal(L" undefined"); - TL_IS_146 = Str__literal(L"enumeration constants must belong to a _FAMILY"); - TL_IS_147 = Str__literal(L"this enumeration _FAMILY is unknown"); - TL_IS_148 = Str__literal(L"this enumeration _FAMILY already exists"); - TL_IS_149 = Str__literal(L"unrecognised interface line"); - TL_IS_150 = Str__literal(L"makescript.txt"); - TL_IS_151 = Str__literal(L"makescript.txt"); - TL_IS_152 = Str__literal(L"gitignorescript.txt"); - TL_IS_153 = Str__literal(L"gitignorescript.txt"); - TL_IS_154 = Str__literal(L"cover-sheet"); - TL_IS_155 = Str__literal(L"Version Number"); - TL_IS_156 = Str__literal(L"Version Number"); - TL_IS_157 = Str__literal(L" "); - TL_IS_158 = Str__literal(L"chaptered-index.html"); - TL_IS_159 = Str__literal(L"unchaptered-index.html"); - TL_IS_160 = Str__literal(L"index.html"); - TL_IS_161 = Str__literal(L"index.html"); - TL_IS_162 = Str__literal(L"cover-sheet"); - TL_IS_163 = Str__literal(L"nav.html"); - TL_IS_164 = Str__literal(L"nav.html"); - TL_IS_165 = Str__literal(L"Index"); - TL_IS_166 = Str__literal(L"index"); - TL_IS_167 = Str__literal(L"Purpose"); - TL_IS_168 = Str__literal(L"Booklet Title"); - TL_IS_169 = Str__literal(L"Booklet Title"); + TL_IS_55 = Str__literal(L"Code In Code Comments Notation"); + TL_IS_56 = Str__literal(L"|"); + TL_IS_57 = Str__literal(L"Web Syntax Version"); + TL_IS_58 = Str__literal(L"Capitalized Title"); + TL_IS_59 = Str__literal(L"miscellaneous"); + TL_IS_60 = Str__literal(L"(main)"); + TL_IS_61 = Str__literal(L"build.txt"); + TL_IS_62 = Str__literal(L"build.txt"); + TL_IS_63 = Str__literal(L"Prerelease"); + TL_IS_64 = Str__literal(L"Build Number"); + TL_IS_65 = Str__literal(L"Build Date"); + TL_IS_66 = Str__literal(L"Semantic Version Number"); + TL_IS_67 = Str__literal(L"Version Number"); + TL_IS_68 = Str__literal(L"Prerelease"); + TL_IS_69 = Str__literal(L"Build Number"); + TL_IS_70 = Str__literal(L"Semantic Version Number"); + TL_IS_71 = Str__literal(L"The compiler is not feeling well today."); + TL_IS_72 = Str__literal(L"inweb"); + TL_IS_73 = Str__literal(L"Patterns"); + TL_IS_74 = Str__literal(L"Materials"); + TL_IS_75 = Str__literal(L"makescript.txt"); + TL_IS_76 = Str__literal(L"gitignorescript.txt"); + TL_IS_77 = Str__literal(L"READMEscript.txt"); + TL_IS_78 = Str__literal(L"Short Title"); + TL_IS_79 = Str__literal(L"Short Title"); + TL_IS_80 = Str__literal(L"Title"); + TL_IS_81 = Str__literal(L"docs"); + TL_IS_82 = Str__literal(L"Short Title"); + TL_IS_83 = Str__literal(L"Short Title"); + TL_IS_84 = Str__literal(L"Title"); + TL_IS_85 = Str__literal(L"GitHubPages"); + TL_IS_86 = Str__literal(L"0"); + TL_IS_87 = Str__literal(L"for locating programming language definitions"); + TL_IS_88 = Str__literal(L"for analysing a web"); + TL_IS_89 = Str__literal(L"for weaving a web"); + TL_IS_90 = Str__literal(L"for tangling a web"); + TL_IS_91 = Str__literal(L".inweb"); + TL_IS_92 = Str__literal(L"0"); + TL_IS_93 = Str__literal(L"0"); + TL_IS_94 = Str__literal(L"tex"); + TL_IS_95 = Str__literal(L"pdftex"); + TL_IS_96 = Str__literal(L"open"); + TL_IS_97 = Str__literal(L"Patterns"); + TL_IS_98 = Str__literal(L"pattern.txt"); + TL_IS_99 = Str__literal(L"pattern.txt"); + TL_IS_100 = Str__literal(L"format"); + TL_IS_101 = Str__literal(L"abbrevs"); + TL_IS_102 = Str__literal(L"numbered"); + TL_IS_103 = Str__literal(L"default-range"); + TL_IS_104 = Str__literal(L"tex-command"); + TL_IS_105 = Str__literal(L"pdftex-command"); + TL_IS_106 = Str__literal(L"open-command"); + TL_IS_107 = Str__literal(L"Booklet Title"); + TL_IS_108 = Str__literal(L"yes"); + TL_IS_109 = Str__literal(L"no"); + TL_IS_110 = Str__literal(L"../"); + TL_IS_111 = Str__literal(L"Inweb Version"); + TL_IS_112 = Str__literal(L"Language"); + TL_IS_113 = Str__literal(L"Woven"); + TL_IS_114 = Str__literal(L"Tangled"); + TL_IS_115 = Str__literal(L"Title"); + TL_IS_116 = Str__literal(L""); + TL_IS_117 = Str__literal(L"="); + TL_IS_118 = Str__literal(L"@"); + TL_IS_119 = Str__literal(L"Figures"); + TL_IS_120 = Str__literal(L"Figures"); + TL_IS_121 = Str__literal(L"unknown [[command]]"); + TL_IS_122 = Str__literal(L"<...> definition begins outside of a paragraph"); + TL_IS_123 = Str__literal(L"(very early code)"); + TL_IS_124 = Str__literal(L"(early code)"); + TL_IS_125 = Str__literal(L"unknown bracketed annotation"); + TL_IS_126 = Str__literal(L"unknown material after '='"); + TL_IS_127 = Str__literal(L"undisplayed"); + TL_IS_128 = Str__literal(L"only 'undisplayed' can precede 'text' here"); + TL_IS_129 = Str__literal(L"="); + TL_IS_130 = Str__literal(L"don't understand @command"); + TL_IS_131 = Str__literal(L"Purpose used after bar"); + TL_IS_132 = Str__literal(L"Interface used after bar"); + TL_IS_133 = Str__literal(L"Definitions used after bar"); + TL_IS_134 = Str__literal(L"second bar in the same section"); + TL_IS_135 = Str__literal(L"enumeration constants can't supply a value"); + TL_IS_136 = Str__literal(L"P"); + TL_IS_137 = Str__literal(L"S"); + TL_IS_138 = Str__literal(L"ifdef-"); + TL_IS_139 = Str__literal(L"ifndef-"); + TL_IS_140 = Str__literal(L"."); + TL_IS_141 = Str__literal(L"This paragraph is used only if "); + TL_IS_142 = Str__literal(L" and if "); + TL_IS_143 = Str__literal(L" and "); + TL_IS_144 = Str__literal(L" is"); + TL_IS_145 = Str__literal(L" are"); + TL_IS_146 = Str__literal(L" defined"); + TL_IS_147 = Str__literal(L" undefined"); + TL_IS_148 = Str__literal(L"enumeration constants must belong to a _FAMILY"); + TL_IS_149 = Str__literal(L"this enumeration _FAMILY is unknown"); + TL_IS_150 = Str__literal(L"this enumeration _FAMILY already exists"); + TL_IS_151 = Str__literal(L"unrecognised interface line"); + TL_IS_152 = Str__literal(L"makescript.txt"); + TL_IS_153 = Str__literal(L"makescript.txt"); + TL_IS_154 = Str__literal(L"gitignorescript.txt"); + TL_IS_155 = Str__literal(L"gitignorescript.txt"); + TL_IS_156 = Str__literal(L"cover-sheet"); + TL_IS_157 = Str__literal(L"Version Number"); + TL_IS_158 = Str__literal(L"Version Number"); + TL_IS_159 = Str__literal(L" "); + TL_IS_160 = Str__literal(L"chaptered-index.html"); + TL_IS_161 = Str__literal(L"unchaptered-index.html"); + TL_IS_162 = Str__literal(L"index.html"); + TL_IS_163 = Str__literal(L"index.html"); + TL_IS_164 = Str__literal(L"cover-sheet"); + TL_IS_165 = Str__literal(L"nav.html"); + TL_IS_166 = Str__literal(L"nav.html"); + TL_IS_167 = Str__literal(L"Index"); + TL_IS_168 = Str__literal(L"index"); + TL_IS_169 = Str__literal(L"Purpose"); TL_IS_170 = Str__literal(L"Booklet Title"); TL_IS_171 = Str__literal(L"Booklet Title"); - TL_IS_172 = Str__literal(L"Definitions"); - TL_IS_173 = Str__literal(L""); - TL_IS_174 = Str__literal(L""); + TL_IS_172 = Str__literal(L"Booklet Title"); + TL_IS_173 = Str__literal(L"Booklet Title"); + TL_IS_174 = Str__literal(L"Definitions"); TL_IS_175 = Str__literal(L""); TL_IS_176 = Str__literal(L""); - TL_IS_177 = Str__literal(L"Old-style pipes here"); - TL_IS_178 = Str__literal(L"define"); - TL_IS_179 = Str__literal(L"enum"); - TL_IS_180 = Str__literal(L"weavesection"); - TL_IS_181 = Str__literal(L"weavesections"); - TL_IS_182 = Str__literal(L"weavesectionss"); - TL_IS_183 = Str__literal(L"weavesectionsss"); - TL_IS_184 = Str__literal(L"nsweavesection"); - TL_IS_185 = Str__literal(L"nsweavesections"); - TL_IS_186 = Str__literal(L"tweavesection"); - TL_IS_187 = Str__literal(L"tweavesections"); - TL_IS_188 = Str__literal(L"tweavesectionss"); - TL_IS_189 = Str__literal(L"tweavesectionsss"); - TL_IS_190 = Str__literal(L"Title"); - TL_IS_191 = Str__literal(L"This code is "); - TL_IS_192 = Str__literal(L"never used"); - TL_IS_193 = Str__literal(L", "); - TL_IS_194 = Str__literal(L" and "); - TL_IS_195 = Str__literal(L"used in "); - TL_IS_196 = Str__literal(L" (twice)"); - TL_IS_197 = Str__literal(L" (three times)"); - TL_IS_198 = Str__literal(L" (four times)"); - TL_IS_199 = Str__literal(L" (five times)"); - TL_IS_200 = Str__literal(L"."); - TL_IS_201 = Str__literal(L"The function "); - TL_IS_202 = Str__literal(L" appears nowhere else"); - TL_IS_203 = Str__literal(L")"); - TL_IS_204 = Str__literal(L"."); - TL_IS_205 = Str__literal(L" is used in "); - TL_IS_206 = Str__literal(L"), "); - TL_IS_207 = Str__literal(L", "); - TL_IS_208 = Str__literal(L" ("); + TL_IS_177 = Str__literal(L""); + TL_IS_178 = Str__literal(L""); + TL_IS_179 = Str__literal(L"Old-style pipes here"); + TL_IS_180 = Str__literal(L"define"); + TL_IS_181 = Str__literal(L"enum"); + TL_IS_182 = Str__literal(L"weavesection"); + TL_IS_183 = Str__literal(L"weavesections"); + TL_IS_184 = Str__literal(L"weavesectionss"); + TL_IS_185 = Str__literal(L"weavesectionsss"); + TL_IS_186 = Str__literal(L"nsweavesection"); + TL_IS_187 = Str__literal(L"nsweavesections"); + TL_IS_188 = Str__literal(L"tweavesection"); + TL_IS_189 = Str__literal(L"tweavesections"); + TL_IS_190 = Str__literal(L"tweavesectionss"); + TL_IS_191 = Str__literal(L"tweavesectionsss"); + TL_IS_192 = Str__literal(L"Title"); + TL_IS_193 = Str__literal(L"This code is "); + TL_IS_194 = Str__literal(L"never used"); + TL_IS_195 = Str__literal(L", "); + TL_IS_196 = Str__literal(L" and "); + TL_IS_197 = Str__literal(L"used in "); + TL_IS_198 = Str__literal(L" (twice)"); + TL_IS_199 = Str__literal(L" (three times)"); + TL_IS_200 = Str__literal(L" (four times)"); + TL_IS_201 = Str__literal(L" (five times)"); + TL_IS_202 = Str__literal(L"."); + TL_IS_203 = Str__literal(L"The function "); + TL_IS_204 = Str__literal(L" appears nowhere else"); + TL_IS_205 = Str__literal(L")"); + TL_IS_206 = Str__literal(L"."); + TL_IS_207 = Str__literal(L" is used in "); + TL_IS_208 = Str__literal(L"), "); TL_IS_209 = Str__literal(L", "); - TL_IS_210 = Str__literal(L"The structure "); - TL_IS_211 = Str__literal(L" is private to this section"); - TL_IS_212 = Str__literal(L" is accessed in "); - TL_IS_213 = Str__literal(L", "); - TL_IS_214 = Str__literal(L" and here"); - TL_IS_215 = Str__literal(L"."); - TL_IS_216 = Str__literal(L""); - TL_IS_217 = Str__literal(L""); + TL_IS_210 = Str__literal(L" ("); + TL_IS_211 = Str__literal(L", "); + TL_IS_212 = Str__literal(L"The structure "); + TL_IS_213 = Str__literal(L" is private to this section"); + TL_IS_214 = Str__literal(L" is accessed in "); + TL_IS_215 = Str__literal(L", "); + TL_IS_216 = Str__literal(L" and here"); + TL_IS_217 = Str__literal(L"."); TL_IS_218 = Str__literal(L""); TL_IS_219 = Str__literal(L""); TL_IS_220 = Str__literal(L""); - TL_IS_221 = Str__literal(L"misplaced definition"); - TL_IS_222 = Str__literal(L"unknown macro"); - TL_IS_223 = Str__literal(L"Dialects"); - TL_IS_224 = Str__literal(L"C"); - TL_IS_225 = Str__literal(L"Languages"); - TL_IS_226 = Str__literal(L"InC"); - TL_IS_227 = Str__literal(L"Name"); - TL_IS_228 = Str__literal(L"Details"); - TL_IS_229 = Str__literal(L"Extension"); - TL_IS_230 = Str__literal(L"Line Comment"); - TL_IS_231 = Str__literal(L"Whole Line Comment"); - TL_IS_232 = Str__literal(L"Multiline Comment Open"); - TL_IS_233 = Str__literal(L"Multiline Comment Close"); - TL_IS_234 = Str__literal(L"String Literal"); - TL_IS_235 = Str__literal(L"String Literal Escape"); - TL_IS_236 = Str__literal(L"Character Literal"); - TL_IS_237 = Str__literal(L"Character Literal Escape"); - TL_IS_238 = Str__literal(L"Binary Literal Prefix"); - TL_IS_239 = Str__literal(L"Octal Literal Prefix"); - TL_IS_240 = Str__literal(L"Hexadecimal Literal Prefix"); - TL_IS_241 = Str__literal(L"Negative Literal Prefix"); - TL_IS_242 = Str__literal(L"Shebang"); - TL_IS_243 = Str__literal(L"Line Marker"); - TL_IS_244 = Str__literal(L"Before Named Paragraph Expansion"); - TL_IS_245 = Str__literal(L"After Named Paragraph Expansion"); - TL_IS_246 = Str__literal(L"Start Definition"); - TL_IS_247 = Str__literal(L"Prolong Definition"); - TL_IS_248 = Str__literal(L"End Definition"); - TL_IS_249 = Str__literal(L"Start Ifdef"); - TL_IS_250 = Str__literal(L"Start Ifndef"); - TL_IS_251 = Str__literal(L"End Ifdef"); - TL_IS_252 = Str__literal(L"End Ifndef"); - TL_IS_253 = Str__literal(L"C-Like"); - TL_IS_254 = Str__literal(L"Suppress Disclaimer"); - TL_IS_255 = Str__literal(L"Supports Namespaces"); - TL_IS_256 = Str__literal(L"}"); - TL_IS_257 = Str__literal(L"unquoted"); - TL_IS_258 = Str__literal(L"{"); - TL_IS_259 = Str__literal(L"debug"); - TL_IS_260 = Str__literal(L"!string"); - TL_IS_261 = Str__literal(L"!function"); - TL_IS_262 = Str__literal(L"!definition"); - TL_IS_263 = Str__literal(L"!reserved"); - TL_IS_264 = Str__literal(L"!element"); - TL_IS_265 = Str__literal(L"!identifier"); - TL_IS_266 = Str__literal(L"!character"); - TL_IS_267 = Str__literal(L"!constant"); - TL_IS_268 = Str__literal(L"!plain"); - TL_IS_269 = Str__literal(L"!extract"); - TL_IS_270 = Str__literal(L"!comment"); - TL_IS_271 = Str__literal(L"true"); - TL_IS_272 = Str__literal(L"false"); - TL_IS_273 = Str__literal(L"both"); - TL_IS_274 = Str__literal(L"brackets"); - TL_IS_275 = Str__literal(L"characters"); - TL_IS_276 = Str__literal(L"coloured"); - TL_IS_277 = Str__literal(L"colouring"); - TL_IS_278 = Str__literal(L"debug"); - TL_IS_279 = Str__literal(L"false"); - TL_IS_280 = Str__literal(L"in"); - TL_IS_281 = Str__literal(L"instances"); - TL_IS_282 = Str__literal(L"keyword"); - TL_IS_283 = Str__literal(L"matches"); - TL_IS_284 = Str__literal(L"matching"); - TL_IS_285 = Str__literal(L"not"); - TL_IS_286 = Str__literal(L"of"); - TL_IS_287 = Str__literal(L"on"); - TL_IS_288 = Str__literal(L"optionally"); - TL_IS_289 = Str__literal(L"prefix"); - TL_IS_290 = Str__literal(L"runs"); - TL_IS_291 = Str__literal(L"spaced"); - TL_IS_292 = Str__literal(L"suffix"); - TL_IS_293 = Str__literal(L"true"); - TL_IS_294 = Str__literal(L"unquoted"); - TL_IS_295 = Str__literal(L"Tangled output generated by inweb: do not edit"); - TL_IS_296 = Str__literal(L"this programming language does not support @d"); - TL_IS_297 = Str__literal(L"this programming language does not support multiline @d"); - TL_IS_298 = Str__literal(L"program ended with conditional compilation open"); - TL_IS_299 = Str__literal(L"conditional compilation too deeply nested"); - TL_IS_300 = Str__literal(L"found #endif without #ifdef or #ifndef"); - TL_IS_301 = Str__literal(L"Structures"); - TL_IS_302 = Str__literal(L"Main::"); - TL_IS_303 = Str__literal(L"Namespaces"); - TL_IS_304 = Str__literal(L"Being internally called, this function mustn't belong to a :: namespace"); - TL_IS_305 = Str__literal(L"Being externally called, this function must belong to a :: namespace"); - TL_IS_306 = Str__literal(L"quartz"); - TL_IS_307 = Str__literal(L"quartz"); + TL_IS_221 = Str__literal(L""); + TL_IS_222 = Str__literal(L""); + TL_IS_223 = Str__literal(L"misplaced definition"); + TL_IS_224 = Str__literal(L"unknown macro"); + TL_IS_225 = Str__literal(L"Dialects"); + TL_IS_226 = Str__literal(L"C"); + TL_IS_227 = Str__literal(L"Languages"); + TL_IS_228 = Str__literal(L"InC"); + TL_IS_229 = Str__literal(L"Name"); + TL_IS_230 = Str__literal(L"Details"); + TL_IS_231 = Str__literal(L"Extension"); + TL_IS_232 = Str__literal(L"Line Comment"); + TL_IS_233 = Str__literal(L"Whole Line Comment"); + TL_IS_234 = Str__literal(L"Multiline Comment Open"); + TL_IS_235 = Str__literal(L"Multiline Comment Close"); + TL_IS_236 = Str__literal(L"String Literal"); + TL_IS_237 = Str__literal(L"String Literal Escape"); + TL_IS_238 = Str__literal(L"Character Literal"); + TL_IS_239 = Str__literal(L"Character Literal Escape"); + TL_IS_240 = Str__literal(L"Binary Literal Prefix"); + TL_IS_241 = Str__literal(L"Octal Literal Prefix"); + TL_IS_242 = Str__literal(L"Hexadecimal Literal Prefix"); + TL_IS_243 = Str__literal(L"Negative Literal Prefix"); + TL_IS_244 = Str__literal(L"Shebang"); + TL_IS_245 = Str__literal(L"Line Marker"); + TL_IS_246 = Str__literal(L"Before Named Paragraph Expansion"); + TL_IS_247 = Str__literal(L"After Named Paragraph Expansion"); + TL_IS_248 = Str__literal(L"Start Definition"); + TL_IS_249 = Str__literal(L"Prolong Definition"); + TL_IS_250 = Str__literal(L"End Definition"); + TL_IS_251 = Str__literal(L"Start Ifdef"); + TL_IS_252 = Str__literal(L"Start Ifndef"); + TL_IS_253 = Str__literal(L"End Ifdef"); + TL_IS_254 = Str__literal(L"End Ifndef"); + TL_IS_255 = Str__literal(L"C-Like"); + TL_IS_256 = Str__literal(L"Suppress Disclaimer"); + TL_IS_257 = Str__literal(L"Supports Namespaces"); + TL_IS_258 = Str__literal(L"}"); + TL_IS_259 = Str__literal(L"unquoted"); + TL_IS_260 = Str__literal(L"{"); + TL_IS_261 = Str__literal(L"debug"); + TL_IS_262 = Str__literal(L"!string"); + TL_IS_263 = Str__literal(L"!function"); + TL_IS_264 = Str__literal(L"!definition"); + TL_IS_265 = Str__literal(L"!reserved"); + TL_IS_266 = Str__literal(L"!element"); + TL_IS_267 = Str__literal(L"!identifier"); + TL_IS_268 = Str__literal(L"!character"); + TL_IS_269 = Str__literal(L"!constant"); + TL_IS_270 = Str__literal(L"!plain"); + TL_IS_271 = Str__literal(L"!extract"); + TL_IS_272 = Str__literal(L"!comment"); + TL_IS_273 = Str__literal(L"true"); + TL_IS_274 = Str__literal(L"false"); + TL_IS_275 = Str__literal(L"both"); + TL_IS_276 = Str__literal(L"brackets"); + TL_IS_277 = Str__literal(L"characters"); + TL_IS_278 = Str__literal(L"coloured"); + TL_IS_279 = Str__literal(L"colouring"); + TL_IS_280 = Str__literal(L"debug"); + TL_IS_281 = Str__literal(L"false"); + TL_IS_282 = Str__literal(L"in"); + TL_IS_283 = Str__literal(L"instances"); + TL_IS_284 = Str__literal(L"keyword"); + TL_IS_285 = Str__literal(L"matches"); + TL_IS_286 = Str__literal(L"matching"); + TL_IS_287 = Str__literal(L"not"); + TL_IS_288 = Str__literal(L"of"); + TL_IS_289 = Str__literal(L"on"); + TL_IS_290 = Str__literal(L"optionally"); + TL_IS_291 = Str__literal(L"prefix"); + TL_IS_292 = Str__literal(L"runs"); + TL_IS_293 = Str__literal(L"spaced"); + TL_IS_294 = Str__literal(L"suffix"); + TL_IS_295 = Str__literal(L"true"); + TL_IS_296 = Str__literal(L"unquoted"); + TL_IS_297 = Str__literal(L"Tangled output generated by inweb: do not edit"); + TL_IS_298 = Str__literal(L"this programming language does not support @d"); + TL_IS_299 = Str__literal(L"this programming language does not support multiline @d"); + TL_IS_300 = Str__literal(L"program ended with conditional compilation open"); + TL_IS_301 = Str__literal(L"conditional compilation too deeply nested"); + TL_IS_302 = Str__literal(L"found #endif without #ifdef or #ifndef"); + TL_IS_303 = Str__literal(L"Structures"); + TL_IS_304 = Str__literal(L"Main::"); + TL_IS_305 = Str__literal(L"Namespaces"); + TL_IS_306 = Str__literal(L"Being internally called, this function mustn't belong to a :: namespace"); + TL_IS_307 = Str__literal(L"Being externally called, this function must belong to a :: namespace"); TL_IS_308 = Str__literal(L"quartz"); - TL_IS_309 = Str__literal(L"like this"); - TL_IS_310 = Str__literal(L"most_recent_result"); - TL_IS_311 = Str__literal(L"most_recent_result_p"); - TL_IS_312 = Str__literal(L"Syntax.preform"); - TL_IS_313 = Str__literal(L"Preform Language"); - TL_IS_314 = Str__literal(L"Preform Language"); - TL_IS_315 = Str__literal(L""); - TL_IS_316 = Str__literal(L""); - TL_IS_317 = Str__literal(L"TeX Mathematics Notation"); - TL_IS_318 = Str__literal(L"plain"); - TL_IS_319 = Str__literal(L".txt"); - TL_IS_320 = Str__literal(L"TeX"); - TL_IS_321 = Str__literal(L".tex"); - TL_IS_322 = Str__literal(L"DVI"); - TL_IS_323 = Str__literal(L".tex"); - TL_IS_324 = Str__literal(L"PDF"); - TL_IS_325 = Str__literal(L".tex"); - TL_IS_326 = Str__literal(L"inweb-macros.tex"); - TL_IS_327 = Str__literal(L"not"); - TL_IS_328 = Str__literal(L"leq"); - TL_IS_329 = Str__literal(L"geq"); - TL_IS_330 = Str__literal(L"sim"); - TL_IS_331 = Str__literal(L"hbox"); - TL_IS_332 = Str__literal(L"left"); - TL_IS_333 = Str__literal(L"right"); - TL_IS_334 = Str__literal(L"Rightarrow"); - TL_IS_335 = Str__literal(L"Leftrightarrow"); - TL_IS_336 = Str__literal(L"to"); - TL_IS_337 = Str__literal(L"rightarrow"); - TL_IS_338 = Str__literal(L"longrightarrow"); - TL_IS_339 = Str__literal(L"leftarrow"); - TL_IS_340 = Str__literal(L"longleftarrow"); - TL_IS_341 = Str__literal(L"lbrace"); - TL_IS_342 = Str__literal(L"mid"); - TL_IS_343 = Str__literal(L"rbrace"); - TL_IS_344 = Str__literal(L"cdot"); - TL_IS_345 = Str__literal(L"cdots"); - TL_IS_346 = Str__literal(L"dots"); - TL_IS_347 = Str__literal(L"times"); - TL_IS_348 = Str__literal(L"quad"); - TL_IS_349 = Str__literal(L"qquad"); - TL_IS_350 = Str__literal(L"TeX"); - TL_IS_351 = Str__literal(L"neq"); - TL_IS_352 = Str__literal(L"noteq"); - TL_IS_353 = Str__literal(L"ell"); - TL_IS_354 = Str__literal(L"log"); - TL_IS_355 = Str__literal(L"exp"); - TL_IS_356 = Str__literal(L"sin"); - TL_IS_357 = Str__literal(L"cos"); - TL_IS_358 = Str__literal(L"tan"); - TL_IS_359 = Str__literal(L"top"); - TL_IS_360 = Str__literal(L"Alpha"); - TL_IS_361 = Str__literal(L"Beta"); - TL_IS_362 = Str__literal(L"Gamma"); - TL_IS_363 = Str__literal(L"Delta"); - TL_IS_364 = Str__literal(L"Epsilon"); - TL_IS_365 = Str__literal(L"Zeta"); - TL_IS_366 = Str__literal(L"Eta"); - TL_IS_367 = Str__literal(L"Theta"); - TL_IS_368 = Str__literal(L"Iota"); - TL_IS_369 = Str__literal(L"Kappa"); - TL_IS_370 = Str__literal(L"Lambda"); - TL_IS_371 = Str__literal(L"Mu"); - TL_IS_372 = Str__literal(L"Nu"); - TL_IS_373 = Str__literal(L"Xi"); - TL_IS_374 = Str__literal(L"Omicron"); - TL_IS_375 = Str__literal(L"Pi"); - TL_IS_376 = Str__literal(L"Rho"); - TL_IS_377 = Str__literal(L"Varsigma"); - TL_IS_378 = Str__literal(L"Sigma"); - TL_IS_379 = Str__literal(L"Tau"); - TL_IS_380 = Str__literal(L"Upsilon"); - TL_IS_381 = Str__literal(L"Phi"); - TL_IS_382 = Str__literal(L"Chi"); - TL_IS_383 = Str__literal(L"Psi"); - TL_IS_384 = Str__literal(L"Omega"); - TL_IS_385 = Str__literal(L"alpha"); - TL_IS_386 = Str__literal(L"beta"); - TL_IS_387 = Str__literal(L"gamma"); - TL_IS_388 = Str__literal(L"delta"); - TL_IS_389 = Str__literal(L"epsilon"); - TL_IS_390 = Str__literal(L"zeta"); - TL_IS_391 = Str__literal(L"eta"); - TL_IS_392 = Str__literal(L"theta"); - TL_IS_393 = Str__literal(L"iota"); - TL_IS_394 = Str__literal(L"kappa"); - TL_IS_395 = Str__literal(L"lambda"); - TL_IS_396 = Str__literal(L"mu"); - TL_IS_397 = Str__literal(L"nu"); - TL_IS_398 = Str__literal(L"xi"); - TL_IS_399 = Str__literal(L"omicron"); - TL_IS_400 = Str__literal(L"pi"); - TL_IS_401 = Str__literal(L"rho"); - TL_IS_402 = Str__literal(L"varsigma"); - TL_IS_403 = Str__literal(L"sigma"); - TL_IS_404 = Str__literal(L"tau"); - TL_IS_405 = Str__literal(L"upsilon"); - TL_IS_406 = Str__literal(L"phi"); - TL_IS_407 = Str__literal(L"chi"); - TL_IS_408 = Str__literal(L"psi"); - TL_IS_409 = Str__literal(L"omega"); - TL_IS_410 = Str__literal(L"exists"); - TL_IS_411 = Str__literal(L"in"); - TL_IS_412 = Str__literal(L"forall"); - TL_IS_413 = Str__literal(L"cap"); - TL_IS_414 = Str__literal(L"emptyset"); - TL_IS_415 = Str__literal(L"subseteq"); - TL_IS_416 = Str__literal(L"land"); - TL_IS_417 = Str__literal(L"lor"); - TL_IS_418 = Str__literal(L"lnot"); - TL_IS_419 = Str__literal(L"sum"); - TL_IS_420 = Str__literal(L"prod"); - TL_IS_421 = Str__literal(L"n"); - TL_IS_422 = Str__literal(L"t"); - TL_IS_423 = Str__literal(L"exists"); - TL_IS_424 = Str__literal(L"forall"); - TL_IS_425 = Str__literal(L"HTML"); - TL_IS_426 = Str__literal(L".html"); - TL_IS_427 = Str__literal(L"ePub"); - TL_IS_428 = Str__literal(L".html"); - TL_IS_429 = Str__literal(L"template"); - TL_IS_430 = Str__literal(L"inweb.css"); - TL_IS_431 = Str__literal(L""); - TL_IS_432 = Str__literal(L"template"); - TL_IS_433 = Str__literal(L"crumbs.gif"); - TL_IS_434 = Str__literal(L"Title"); - TL_IS_435 = Str__literal(L"Short Title"); - TL_IS_436 = Str__literal(L"Short Title"); - TL_IS_437 = Str__literal(L"index.html"); - TL_IS_438 = Str__literal(L"★"); - TL_IS_439 = Str__literal(L"../webs.html"); - TL_IS_440 = Str__literal(L"enum"); - TL_IS_441 = Str__literal(L"Figures"); - TL_IS_442 = Str__literal(L"Booklet Title"); - TL_IS_443 = Str__literal(L"template"); - TL_IS_444 = Str__literal(L"Title"); - TL_IS_445 = Str__literal(L"inweb.css"); - TL_IS_446 = Str__literal(L" "); - TL_IS_447 = Str__literal(L"all"); - TL_IS_448 = Str__literal(L"platform-settings.mk"); - TL_IS_449 = Str__literal(L"intest"); - TL_IS_450 = Str__literal(L"all"); - TL_IS_451 = Str__literal(L"gitignorescript.txt"); - TL_IS_452 = Str__literal(L"version"); - TL_IS_453 = Str__literal(L"purpose"); - TL_IS_454 = Str__literal(L"var"); - TL_IS_455 = Str__literal(L"\n"); - TL_IS_456 = Str__literal(L"version"); - TL_IS_457 = Str__literal(L"purpose"); - TL_IS_458 = Str__literal(L"var"); - TL_IS_459 = Str__literal(L"Version Number"); - TL_IS_460 = Str__literal(L"Purpose"); - TL_IS_461 = Str__literal(L"Build Date"); - TL_IS_462 = Str__literal(L"Version Number"); - TL_IS_463 = Str__literal(L"inform6"); - TL_IS_464 = Str__literal(L"header.h"); - TL_IS_465 = Str__literal(L"(manifest).txt"); - TL_IS_466 = Str__literal(L"README.txt"); - TL_IS_467 = Str__literal(L"README.md"); + TL_IS_309 = Str__literal(L"quartz"); + TL_IS_310 = Str__literal(L"quartz"); + TL_IS_311 = Str__literal(L"like this"); + TL_IS_312 = Str__literal(L"most_recent_result"); + TL_IS_313 = Str__literal(L"most_recent_result_p"); + TL_IS_314 = Str__literal(L"Syntax.preform"); + TL_IS_315 = Str__literal(L"Preform Language"); + TL_IS_316 = Str__literal(L"Preform Language"); + TL_IS_317 = Str__literal(L""); + TL_IS_318 = Str__literal(L""); + TL_IS_319 = Str__literal(L"Code In Code Comments Notation"); + TL_IS_320 = Str__literal(L"Code In Commentary Notation"); + TL_IS_321 = Str__literal(L"Off"); + TL_IS_322 = Str__literal(L"TeX Mathematics Notation"); + TL_IS_323 = Str__literal(L"plain"); + TL_IS_324 = Str__literal(L".txt"); + TL_IS_325 = Str__literal(L"TeX"); + TL_IS_326 = Str__literal(L".tex"); + TL_IS_327 = Str__literal(L"DVI"); + TL_IS_328 = Str__literal(L".tex"); + TL_IS_329 = Str__literal(L"PDF"); + TL_IS_330 = Str__literal(L".tex"); + TL_IS_331 = Str__literal(L"inweb-macros.tex"); + TL_IS_332 = Str__literal(L"not"); + TL_IS_333 = Str__literal(L"leq"); + TL_IS_334 = Str__literal(L"geq"); + TL_IS_335 = Str__literal(L"sim"); + TL_IS_336 = Str__literal(L"hbox"); + TL_IS_337 = Str__literal(L"left"); + TL_IS_338 = Str__literal(L"right"); + TL_IS_339 = Str__literal(L"Rightarrow"); + TL_IS_340 = Str__literal(L"Leftrightarrow"); + TL_IS_341 = Str__literal(L"to"); + TL_IS_342 = Str__literal(L"rightarrow"); + TL_IS_343 = Str__literal(L"longrightarrow"); + TL_IS_344 = Str__literal(L"leftarrow"); + TL_IS_345 = Str__literal(L"longleftarrow"); + TL_IS_346 = Str__literal(L"lbrace"); + TL_IS_347 = Str__literal(L"mid"); + TL_IS_348 = Str__literal(L"rbrace"); + TL_IS_349 = Str__literal(L"cdot"); + TL_IS_350 = Str__literal(L"cdots"); + TL_IS_351 = Str__literal(L"dots"); + TL_IS_352 = Str__literal(L"times"); + TL_IS_353 = Str__literal(L"quad"); + TL_IS_354 = Str__literal(L"qquad"); + TL_IS_355 = Str__literal(L"TeX"); + TL_IS_356 = Str__literal(L"neq"); + TL_IS_357 = Str__literal(L"noteq"); + TL_IS_358 = Str__literal(L"ell"); + TL_IS_359 = Str__literal(L"log"); + TL_IS_360 = Str__literal(L"exp"); + TL_IS_361 = Str__literal(L"sin"); + TL_IS_362 = Str__literal(L"cos"); + TL_IS_363 = Str__literal(L"tan"); + TL_IS_364 = Str__literal(L"top"); + TL_IS_365 = Str__literal(L"Alpha"); + TL_IS_366 = Str__literal(L"Beta"); + TL_IS_367 = Str__literal(L"Gamma"); + TL_IS_368 = Str__literal(L"Delta"); + TL_IS_369 = Str__literal(L"Epsilon"); + TL_IS_370 = Str__literal(L"Zeta"); + TL_IS_371 = Str__literal(L"Eta"); + TL_IS_372 = Str__literal(L"Theta"); + TL_IS_373 = Str__literal(L"Iota"); + TL_IS_374 = Str__literal(L"Kappa"); + TL_IS_375 = Str__literal(L"Lambda"); + TL_IS_376 = Str__literal(L"Mu"); + TL_IS_377 = Str__literal(L"Nu"); + TL_IS_378 = Str__literal(L"Xi"); + TL_IS_379 = Str__literal(L"Omicron"); + TL_IS_380 = Str__literal(L"Pi"); + TL_IS_381 = Str__literal(L"Rho"); + TL_IS_382 = Str__literal(L"Varsigma"); + TL_IS_383 = Str__literal(L"Sigma"); + TL_IS_384 = Str__literal(L"Tau"); + TL_IS_385 = Str__literal(L"Upsilon"); + TL_IS_386 = Str__literal(L"Phi"); + TL_IS_387 = Str__literal(L"Chi"); + TL_IS_388 = Str__literal(L"Psi"); + TL_IS_389 = Str__literal(L"Omega"); + TL_IS_390 = Str__literal(L"alpha"); + TL_IS_391 = Str__literal(L"beta"); + TL_IS_392 = Str__literal(L"gamma"); + TL_IS_393 = Str__literal(L"delta"); + TL_IS_394 = Str__literal(L"epsilon"); + TL_IS_395 = Str__literal(L"zeta"); + TL_IS_396 = Str__literal(L"eta"); + TL_IS_397 = Str__literal(L"theta"); + TL_IS_398 = Str__literal(L"iota"); + TL_IS_399 = Str__literal(L"kappa"); + TL_IS_400 = Str__literal(L"lambda"); + TL_IS_401 = Str__literal(L"mu"); + TL_IS_402 = Str__literal(L"nu"); + TL_IS_403 = Str__literal(L"xi"); + TL_IS_404 = Str__literal(L"omicron"); + TL_IS_405 = Str__literal(L"pi"); + TL_IS_406 = Str__literal(L"rho"); + TL_IS_407 = Str__literal(L"varsigma"); + TL_IS_408 = Str__literal(L"sigma"); + TL_IS_409 = Str__literal(L"tau"); + TL_IS_410 = Str__literal(L"upsilon"); + TL_IS_411 = Str__literal(L"phi"); + TL_IS_412 = Str__literal(L"chi"); + TL_IS_413 = Str__literal(L"psi"); + TL_IS_414 = Str__literal(L"omega"); + TL_IS_415 = Str__literal(L"exists"); + TL_IS_416 = Str__literal(L"in"); + TL_IS_417 = Str__literal(L"forall"); + TL_IS_418 = Str__literal(L"cap"); + TL_IS_419 = Str__literal(L"emptyset"); + TL_IS_420 = Str__literal(L"subseteq"); + TL_IS_421 = Str__literal(L"land"); + TL_IS_422 = Str__literal(L"lor"); + TL_IS_423 = Str__literal(L"lnot"); + TL_IS_424 = Str__literal(L"sum"); + TL_IS_425 = Str__literal(L"prod"); + TL_IS_426 = Str__literal(L"n"); + TL_IS_427 = Str__literal(L"t"); + TL_IS_428 = Str__literal(L"exists"); + TL_IS_429 = Str__literal(L"forall"); + TL_IS_430 = Str__literal(L"HTML"); + TL_IS_431 = Str__literal(L".html"); + TL_IS_432 = Str__literal(L"ePub"); + TL_IS_433 = Str__literal(L".html"); + TL_IS_434 = Str__literal(L"template"); + TL_IS_435 = Str__literal(L"inweb.css"); + TL_IS_436 = Str__literal(L""); + TL_IS_437 = Str__literal(L"template"); + TL_IS_438 = Str__literal(L"crumbs.gif"); + TL_IS_439 = Str__literal(L"Title"); + TL_IS_440 = Str__literal(L"Short Title"); + TL_IS_441 = Str__literal(L"Short Title"); + TL_IS_442 = Str__literal(L"index.html"); + TL_IS_443 = Str__literal(L"★"); + TL_IS_444 = Str__literal(L"../webs.html"); + TL_IS_445 = Str__literal(L"enum"); + TL_IS_446 = Str__literal(L"Figures"); + TL_IS_447 = Str__literal(L"Booklet Title"); + TL_IS_448 = Str__literal(L"template"); + TL_IS_449 = Str__literal(L"Title"); + TL_IS_450 = Str__literal(L"inweb.css"); + TL_IS_451 = Str__literal(L" "); + TL_IS_452 = Str__literal(L"all"); + TL_IS_453 = Str__literal(L"platform-settings.mk"); + TL_IS_454 = Str__literal(L"intest"); + TL_IS_455 = Str__literal(L"all"); + TL_IS_456 = Str__literal(L"gitignorescript.txt"); + TL_IS_457 = Str__literal(L"version"); + TL_IS_458 = Str__literal(L"purpose"); + TL_IS_459 = Str__literal(L"var"); + TL_IS_460 = Str__literal(L"\n"); + TL_IS_461 = Str__literal(L"version"); + TL_IS_462 = Str__literal(L"purpose"); + TL_IS_463 = Str__literal(L"var"); + TL_IS_464 = Str__literal(L"Version Number"); + TL_IS_465 = Str__literal(L"Purpose"); + TL_IS_466 = Str__literal(L"Build Date"); + TL_IS_467 = Str__literal(L"Version Number"); + TL_IS_468 = Str__literal(L"inform6"); + TL_IS_469 = Str__literal(L"header.h"); + TL_IS_470 = Str__literal(L"(manifest).txt"); + TL_IS_471 = Str__literal(L"README.txt"); + TL_IS_472 = Str__literal(L"README.md"); } diff --git a/docs/foundation-module/8-bdfw.html b/docs/foundation-module/8-bdfw.html index 6b66de1..09e02ab 100644 --- a/docs/foundation-module/8-bdfw.html +++ b/docs/foundation-module/8-bdfw.html @@ -110,6 +110,7 @@ convenient to store them directly here than to use a dictionary. bd = Bibliographic::set_datum(Wm, I"Strict Usage Rules", I"Off"); bd->on_or_off = TRUE; bd = Bibliographic::set_datum(Wm, I"TeX Mathematics Notation", I"On"); bd->on_or_off = TRUE; bd = Bibliographic::set_datum(Wm, I"Code In Commentary Notation", I"|"); + bd = Bibliographic::set_datum(Wm, I"Code In Code Comments Notation", I"|"); bd = Bibliographic::set_datum(Wm, I"Web Syntax Version", NULL); } diff --git a/docs/inweb/4-as.html b/docs/inweb/4-as.html index 851aeda..3c56561 100644 --- a/docs/inweb/4-as.html +++ b/docs/inweb/4-as.html @@ -280,7 +280,7 @@ files to crash Inweb.)

    The function ACMESupport::parse_comment is used in §1.

    -

    The function ACMESupport::text_at is used in 4/tp (§2.2, §3, §5).

    +

    The function ACMESupport::text_at is used in 4/tp (§2.2, §3, §5), 5/wf (§22).

    §4. This is here so that tangling the Standard Rules extension doesn't insert a spurious comment betraying Inweb's involvement in the process. diff --git a/docs/inweb/5-hf.html b/docs/inweb/5-hf.html index 60522c4..3d070a1 100644 --- a/docs/inweb/5-hf.html +++ b/docs/inweb/5-hf.html @@ -449,7 +449,7 @@ the page, and this drops one. if (Str::len(concluding_comment) > 0) { if (!starts) WRITE(" "); HTML_OPEN_WITH("span", "class=\"comment\""); - Formats::text(OUT, wv, concluding_comment); + Formats::text_comment(OUT, wv, concluding_comment); HTML_CLOSE("span"); } WRITE("\n"); diff --git a/docs/inweb/5-tf.html b/docs/inweb/5-tf.html index 0d7684b..2f2299d 100644 --- a/docs/inweb/5-tf.html +++ b/docs/inweb/5-tf.html @@ -762,7 +762,8 @@ the special Preform grammar document. WRITE("\\hfill$\\longrightarrow$ {\\ttninepoint\\it %S}", problem); else if (Str::len(concluding_comment) > 0) { WRITE(" \\hfill{\\ttninepoint\\it "); - if (concluding_comment) Formats::text(OUT, wv, concluding_comment); + if (Str::len(concluding_comment) > 0) + Formats::text_comment(OUT, wv, concluding_comment); WRITE("}"); } WRITE("\n"); diff --git a/docs/inweb/5-wf.html b/docs/inweb/5-wf.html index caa10b9..04d13f7 100644 --- a/docs/inweb/5-wf.html +++ b/docs/inweb/5-wf.html @@ -594,22 +594,30 @@ as appropriate.

         void Formats::text(OUTPUT_STREAM, weave_target *wv, text_stream *id) {
    -        Formats::text_r(OUT, wv, id, FALSE);
    +        Formats::text_r(OUT, wv, id, FALSE, FALSE);
    +    }
    +    void Formats::text_comment(OUTPUT_STREAM, weave_target *wv, text_stream *id) {
    +        Formats::text_r(OUT, wv, id, FALSE, TRUE);
         }
     
    -    void Formats::text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id, int within) {
    -        for (int i=0; i < Str::len(id); i++) {
    -            if (Str::get_at(id, i) == '\\') i++;
    -            else if (Str::get_at(id, i) == '|') {
    -                TEMPORARY_TEXT(before);
    -                Str::copy(before, id); Str::truncate(before, i);
    -                TEMPORARY_TEXT(after);
    -                Str::substr(after, Str::at(id, i+1), Str::end(id));
    -                Formats::text_r(OUT, wv, before, within);
    -                Formats::text_r(OUT, wv, after, (within)?FALSE:TRUE);
    -                DISCARD_TEXT(before);
    -                DISCARD_TEXT(after);
    -                return;
    +    void Formats::text_r(OUTPUT_STREAM, weave_target *wv, text_stream *id,
    +        int within, int comments) {
    +        text_stream *notation = Bibliographic::get_datum(wv->weave_web->md,
    +            (comments)?(I"Code In Code Comments Notation"):(I"Code In Commentary Notation"));
    +        if (Str::ne(notation, I"Off")) {
    +            for (int i=0; i < Str::len(id); i++) {
    +                if (Str::get_at(id, i) == '\\') i += Str::len(notation) - 1;
    +                else if (ACMESupport::text_at(id, i, notation)) {
    +                    TEMPORARY_TEXT(before);
    +                    Str::copy(before, id); Str::truncate(before, i);
    +                    TEMPORARY_TEXT(after);
    +                    Str::substr(after, Str::at(id, i + Str::len(notation)), Str::end(id));
    +                    Formats::text_r(OUT, wv, before, within, comments);
    +                    Formats::text_r(OUT, wv, after, (within)?FALSE:TRUE, comments);
    +                    DISCARD_TEXT(before);
    +                    DISCARD_TEXT(after);
    +                    return;
    +                }
                 }
             }
             if (within) {
    @@ -622,7 +630,9 @@ as appropriate.
     
     

    -

    The function Formats::text is used in 2/tgs (§7, §7.1), 3/tw (§1.3.3.1.8, §1.3.3.1.8.4, §1.3.3.1.10.5, §2.1, §2.2, §2.2.1, §2.3), 5/ptf (§3), 5/tf (§4, §24.2), 5/hf (§7, §10).

    +

    The function Formats::text is used in 2/tgs (§7, §7.1), 3/tw (§1.3.3.1.8, §1.3.3.1.8.4, §1.3.3.1.10.5, §2.1, §2.2, §2.2.1, §2.3), 5/ptf (§3), 5/tf (§4), 5/hf (§7).

    + +

    The function Formats::text_comment is used in 5/tf (§24.2), 5/hf (§10).

    The function Formats::text_r appears nowhere else.

    diff --git a/docs/inweb/M-htwaw.html b/docs/inweb/M-htwaw.html index ad63aba..aeafab9 100644 --- a/docs/inweb/M-htwaw.html +++ b/docs/inweb/M-htwaw.html @@ -406,14 +406,36 @@ indented one tab stop further in, like so:

    §10. Text placed between vertical strokes will be set in a fixed-space, code -style font, thus. +style font, thus. This paragraph appears in the web you are reading thus:

    -

    If a series of lines is indented with tab characters and consists entirely -of courier-type code extracts, it will be set as a running-on series of -code lines. +

    +        @ Text placed between vertical strokes will be set in a fixed-space, code
    +        style font, |thus|. This paragraph appears in the web you are reading thus:
    +
    + +

    This notation may be inconvenient if you need the vertical stroke character +for something else, especially as the notation is used both in code comments +and in paragraph commentary. But both notations can be configured in the +Contents page of a web, thus:

    +
    +    Code In Code Comments Notation: Off
    +    Code In Commentary Notation: %%
    +
    + +

    This example would turn off the feature in code comments, but allow it in +paragraph commentary; we would then need to write... +

    + +
    +        @ Text placed between vertical strokes will be set in a fixed-space, code
    +        style font, %%thus%%. This paragraph appears in the web you are reading thus:
    +
    + +

    +

    §11. A line written thus:

    diff --git a/foundation-module/Chapter 8/Bibliographic Data for Webs.w b/foundation-module/Chapter 8/Bibliographic Data for Webs.w index 7b7438e..f99c9ed 100755 --- a/foundation-module/Chapter 8/Bibliographic Data for Webs.w +++ b/foundation-module/Chapter 8/Bibliographic Data for Webs.w @@ -69,6 +69,7 @@ void Bibliographic::initialise_data(web_md *Wm) { bd = Bibliographic::set_datum(Wm, I"Strict Usage Rules", I"Off"); bd->on_or_off = TRUE; bd = Bibliographic::set_datum(Wm, I"TeX Mathematics Notation", I"On"); bd->on_or_off = TRUE; bd = Bibliographic::set_datum(Wm, I"Code In Commentary Notation", I"|"); + bd = Bibliographic::set_datum(Wm, I"Code In Code Comments Notation", I"|"); bd = Bibliographic::set_datum(Wm, I"Web Syntax Version", NULL); }