From fbead7a2332cc50b920b300dffb5efd06a668947 Mon Sep 17 00:00:00 2001
From: Graham Nelson
Date: Sun, 28 Nov 2021 23:33:48 +0000
Subject: [PATCH] Added simple tangler to foundation module
---
README.md | 2 +-
Tangled/inweb.c | 2642 ++++++++++--------
build.txt | 4 +-
docs/foundation-module/3-cla.html | 2 +-
docs/foundation-module/3-fln.html | 4 +-
docs/foundation-module/3-pth.html | 2 +-
docs/foundation-module/4-pm.html | 6 +-
docs/foundation-module/4-sm.html | 44 +-
docs/foundation-module/5-htm.html | 2 +-
docs/foundation-module/8-bdfw.html | 2 +-
docs/foundation-module/8-bf.html | 2 +-
docs/foundation-module/8-st.html | 435 +++
docs/foundation-module/8-wm.html | 4 +-
docs/foundation-module/8-ws.html | 18 +-
docs/foundation-module/index.html | 5 +
docs/goldbach/goldbach.pdf | Bin 251998 -> 251986 bytes
foundation-module/Chapter 5/HTML.w | 2 +-
foundation-module/Chapter 8/Simple Tangler.w | 323 +++
foundation-module/Contents.w | 2 +
19 files changed, 2332 insertions(+), 1169 deletions(-)
create mode 100644 docs/foundation-module/8-st.html
create mode 100644 foundation-module/Chapter 8/Simple Tangler.w
diff --git a/README.md b/README.md
index f35faad..6392522 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Inweb 7
-v7-alpha.1+1A76 'Escape to Danger' (11 August 2021)
+v7-alpha.1+1A77 'Escape to Danger' (28 November 2021)
## About Inweb
diff --git a/Tangled/inweb.c b/Tangled/inweb.c
index e21e54c..2ab4dab 100644
--- a/Tangled/inweb.c
+++ b/Tangled/inweb.c
@@ -760,6 +760,13 @@ struct Win32_Mutex { INIT_ONCE init; CRITICAL_SECTION crit; };
#define MAKEFILE_TOOL_MOM 1
#define MAKEFILE_WEB_MOM 2
#define MAKEFILE_MODULE_MOM 3
+#define INWEB_PARAGRAPH_SYNTAX 1
+#define INWEB_CODE_SYNTAX 2
+#define INWEB_DASH_SYNTAX 3
+#define INWEB_PURPOSE_SYNTAX 4
+#define INWEB_FIGURE_SYNTAX 5
+#define INWEB_EQUALS_SYNTAX 6
+#define INWEB_EXTRACT_SYNTAX 7
#define PROGRAM_NAME "inweb"
#define asset_rule_CLASS 38
#define breadcrumb_request_CLASS 39
@@ -1524,6 +1531,16 @@ typedef struct build_file_data {
struct text_stream *build_code;
struct text_stream *build_date;
} build_file_data;
+#line 20 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+typedef struct simple_tangle_docket {
+ void (*raw_callback)(struct text_stream *, struct simple_tangle_docket *);
+ void (*command_callback)(struct text_stream *, struct text_stream *,
+ struct text_stream *, struct simple_tangle_docket *);
+ void (*bplus_callback)(struct text_stream *, struct simple_tangle_docket *);
+ void (*error_callback)(char *, struct text_stream *);
+ void *state;
+ struct pathname *web_path;
+} simple_tangle_docket;
#line 11 "inweb/Chapter 1/Configuration.w"
typedef struct inweb_instructions {
int inweb_mode; /* our main mode of operation: one of the |*_MODE| constants */
@@ -3720,6 +3737,22 @@ void BuildFiles__advance(filename *F) ;
int BuildFiles__dated_today(text_stream *dateline) ;
#line 174 "inweb/foundation-module/Chapter 8/Build Files.w"
void BuildFiles__increment(text_stream *T) ;
+#line 31 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+simple_tangle_docket SimpleTangler__new_docket( void (*A)(struct text_stream *, struct simple_tangle_docket *), void (*B)(struct text_stream *, struct text_stream *, struct text_stream *, struct simple_tangle_docket *), void (*C)(struct text_stream *, struct simple_tangle_docket *), void (*D)(char *, struct text_stream *), pathname *web_path, void *initial_state) ;
+#line 53 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_text(simple_tangle_docket *docket, text_stream *text) ;
+#line 57 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_file(simple_tangle_docket *docket, filename *F) ;
+#line 61 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_section(simple_tangle_docket *docket, text_stream *leafname) ;
+#line 65 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_web(simple_tangle_docket *docket) ;
+#line 70 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_L1(simple_tangle_docket *docket, text_stream *text, filename *F, text_stream *leafname, int whole_web) ;
+#line 81 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_L2(OUTPUT_STREAM, text_stream *text, filename *F, text_stream *leafname, simple_tangle_docket *docket, int whole_web) ;
+#line 102 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_L3(OUTPUT_STREAM, text_stream *text, text_stream *leafname, simple_tangle_docket *docket, filename *F) ;
#line 64 "inweb/Chapter 1/Program Control.w"
int main(int argc, char **argv) ;
#line 95 "inweb/Chapter 1/Program Control.w"
@@ -5137,6 +5170,7 @@ text_stream *TL_IS_648 = NULL;
text_stream *TL_IS_649 = NULL;
text_stream *TL_IS_650 = NULL;
text_stream *TL_IS_651 = NULL;
+text_stream *TL_IS_652 = NULL;
void register_tangled_text_literals(void);
#line 57 "inweb/foundation-module/Chapter 2/Streams.w"
#define WRITE(args...) Writers__printf(OUT, args)
@@ -12395,7 +12429,7 @@ wchar_t *HTML__translate_colour_name(wchar_t *original) {
#line 881 "inweb/foundation-module/Chapter 5/HTML.w"
void HTML__begin_colour(OUTPUT_STREAM, text_stream *col) {
- HTML_OPEN_WITH("span", "style=\"color:#%S\"", col);
+ HTML_OPEN_WITH("span", "style='color:#%S'", col);
}
void HTML__end_colour(OUTPUT_STREAM) {
HTML_CLOSE("span");
@@ -15376,6 +15410,369 @@ void BuildFiles__increment(text_stream *T) {
}
}
+#line 29 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+
+#line 31 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+simple_tangle_docket SimpleTangler__new_docket(
+ void (*A)(struct text_stream *, struct simple_tangle_docket *),
+ void (*B)(struct text_stream *, struct text_stream *,
+ struct text_stream *, struct simple_tangle_docket *),
+ void (*C)(struct text_stream *, struct simple_tangle_docket *),
+ void (*D)(char *, struct text_stream *),
+ pathname *web_path, void *initial_state) {
+ simple_tangle_docket docket;
+ docket.raw_callback = A;
+ docket.command_callback = B;
+ docket.bplus_callback = C;
+ docket.error_callback = D;
+ docket.state = initial_state;
+ docket.web_path = web_path;
+ return docket;
+}
+
+#line 53 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_text(simple_tangle_docket *docket, text_stream *text) {
+ SimpleTangler__tangle_L1(docket, text, NULL, NULL, FALSE);
+}
+
+void SimpleTangler__tangle_file(simple_tangle_docket *docket, filename *F) {
+ SimpleTangler__tangle_L1(docket, NULL, F, NULL, FALSE);
+}
+
+void SimpleTangler__tangle_section(simple_tangle_docket *docket, text_stream *leafname) {
+ SimpleTangler__tangle_L1(docket, NULL, NULL, leafname, FALSE);
+}
+
+void SimpleTangler__tangle_web(simple_tangle_docket *docket) {
+ SimpleTangler__tangle_L1(docket, NULL, NULL, NULL, TRUE);
+}
+
+#line 70 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_L1(simple_tangle_docket *docket, text_stream *text,
+ filename *F, text_stream *leafname, int whole_web) {
+ TEMPORARY_TEXT(T)
+ SimpleTangler__tangle_L2(T, text, F, leafname, docket, whole_web);
+ (*(docket->raw_callback))(T, docket);
+ DISCARD_TEXT(T)
+}
+
+#line 81 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_L2(OUTPUT_STREAM, text_stream *text, filename *F,
+ text_stream *leafname, simple_tangle_docket *docket, int whole_web) {
+ if (whole_web) {
+ web_md *Wm = WebMetadata__get(docket->web_path, NULL, V2_SYNTAX, NULL, FALSE, TRUE, NULL);
+ chapter_md *Cm;
+ LOOP_OVER_LINKED_LIST(Cm, chapter_md, Wm->chapters_md) {
+ section_md *Sm;
+ LOOP_OVER_LINKED_LIST(Sm, section_md, Cm->sections_md) {
+ filename *SF = Sm->source_file_for_section;
+ SimpleTangler__tangle_L3(OUT, text, Sm->sect_title, docket, SF);
+ }
+ }
+ } else {
+ SimpleTangler__tangle_L3(OUT, text, leafname, docket, F);
+ }
+}
+
+#line 102 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+void SimpleTangler__tangle_L3(OUTPUT_STREAM, text_stream *text,
+ text_stream *leafname, simple_tangle_docket *docket, filename *F) {
+ int comment = FALSE;
+ FILE *Input_File = NULL;
+ if ((Str__len(leafname) > 0) || (F)) {
+
+{
+#line 118 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (F) {
+ Input_File = Filenames__fopen(F, "r");
+ } else if (Str__len(leafname) > 0) {
+ pathname *P = Pathnames__down(docket->web_path, TL_IS_87);
+ Input_File = Filenames__fopen(Filenames__in(P, leafname), "r");
+ }
+ if (Input_File == NULL)
+ (*(docket->error_callback))("unable to open the file '%S'", leafname);
+
+}
+#line 107 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ comment = TRUE;
+ }
+
+{
+#line 128 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ TEMPORARY_TEXT(command)
+ TEMPORARY_TEXT(argument)
+ int skip_part = FALSE, extract = FALSE;
+ int col = 1, cr, sfp = 0;
+ do {
+ Str__clear(command);
+ Str__clear(argument);
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 135 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ NewCharacter: if (cr == EOF) break;
+ if (((cr == '@') || (cr == '=')) && (col == 1)) {
+ int inweb_syntax = -1;
+ if (cr == '=')
+{
+#line 214 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ TEMPORARY_TEXT(equals_cmd)
+ while (TRUE) {
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 216 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if ((cr == 10) || (cr == 13)) break;
+ PUT_TO(equals_cmd, cr);
+ }
+ match_results mr = Regexp__create_mr();
+ if (Regexp__match(&mr, equals_cmd, L" %(text%c*%) *")) {
+ inweb_syntax = INWEB_EXTRACT_SYNTAX;
+ } else if (Regexp__match(&mr, equals_cmd, L" %(figure%c*%) *")) {
+ inweb_syntax = INWEB_FIGURE_SYNTAX;
+ } else if (Regexp__match(&mr, equals_cmd, L" %(%c*%) *")) {
+ (*(docket->error_callback))(
+ "unsupported '= (...)' marker at column 0", NULL);
+ } else {
+ inweb_syntax = INWEB_EQUALS_SYNTAX;
+ }
+ Regexp__dispose_of(&mr);
+ DISCARD_TEXT(equals_cmd)
+
+}
+#line 139 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+
+ else
+{
+#line 174 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ TEMPORARY_TEXT(at_cmd)
+ int committed = FALSE, unacceptable_character = FALSE;
+ while (TRUE) {
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 177 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if ((committed == FALSE) && ((cr == 10) || (cr == 13) || (cr == ' '))) {
+ if (Str__eq_wide_string(at_cmd, L"p"))
+ inweb_syntax = INWEB_PARAGRAPH_SYNTAX;
+ else if (Str__eq_wide_string(at_cmd, L"h"))
+ inweb_syntax = INWEB_PARAGRAPH_SYNTAX;
+ else if (Str__eq_wide_string(at_cmd, L"c"))
+ inweb_syntax = INWEB_CODE_SYNTAX;
+ else if (Str__get_first_char(at_cmd) == '-')
+ inweb_syntax = INWEB_DASH_SYNTAX;
+ else if (Str__begins_with_wide_string(at_cmd, L"Purpose:"))
+ inweb_syntax = INWEB_PURPOSE_SYNTAX;
+ committed = TRUE;
+ if (inweb_syntax == -1) {
+ if (unacceptable_character == FALSE) {
+ PUT_TO(OUT, '@');
+ WRITE_TO(OUT, "%S", at_cmd);
+ PUT_TO(OUT, cr);
+ break;
+ } else {
+ LOG("heading begins: <%S>\n", at_cmd);
+ (*(docket->error_callback))(
+ "unknown '@...' marker at column 0: '%S'", at_cmd);
+ }
+ }
+ }
+ if (!(((cr >= 'A') && (cr <= 'Z')) || ((cr >= 'a') && (cr <= 'z'))
+ || ((cr >= '0') && (cr <= '9'))
+ || (cr == '-') || (cr == '>') || (cr == ':') || (cr == '_')))
+ unacceptable_character = TRUE;
+ if ((cr == 10) || (cr == 13)) break;
+ PUT_TO(at_cmd, cr);
+ }
+ Str__copy(command, at_cmd);
+ DISCARD_TEXT(at_cmd)
+
+}
+#line 140 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+
+{
+#line 235 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ switch (inweb_syntax) {
+ case INWEB_PARAGRAPH_SYNTAX: {
+ TEMPORARY_TEXT(heading_name)
+ Str__copy_tail(heading_name, command, 2);
+ int c;
+ while (((c = Str__get_last_char(heading_name)) != 0) &&
+ ((c == ' ') || (c == '\t') || (c == '.')))
+ Str__delete_last_character(heading_name);
+ if (Str__len(heading_name) == 0)
+ (*(docket->error_callback))("Empty heading name", NULL);
+ DISCARD_TEXT(heading_name)
+ extract = FALSE;
+ comment = TRUE; skip_part = FALSE;
+ break;
+ }
+ case INWEB_CODE_SYNTAX:
+ extract = FALSE;
+ if (skip_part == FALSE) comment = FALSE;
+ break;
+ case INWEB_EQUALS_SYNTAX:
+ if (extract) {
+ comment = TRUE; extract = FALSE;
+ } else {
+ if (skip_part == FALSE) comment = FALSE;
+ }
+ break;
+ case INWEB_EXTRACT_SYNTAX:
+ comment = TRUE; extract = TRUE;
+ break;
+ case INWEB_DASH_SYNTAX: break;
+ case INWEB_PURPOSE_SYNTAX: break;
+ case INWEB_FIGURE_SYNTAX: break;
+ }
+
+}
+#line 141 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ continue;
+ }
+ if (comment == FALSE)
+{
+#line 270 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (cr == '{') {
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 271 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if ((cr == '-') && (docket->command_callback)) {
+
+{
+#line 299 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ Str__clear(command);
+ Str__clear(argument);
+ int com_mode = TRUE;
+ while (TRUE) {
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 303 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if ((cr == '}') || (cr == EOF)) break;
+ if ((cr == ':') && (com_mode)) { com_mode = FALSE; continue; }
+ if (com_mode) PUT_TO(command, cr);
+ else PUT_TO(argument, cr);
+ }
+
+}
+#line 273 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if (Str__get_first_char(command) == '!') continue;
+ (*(docket->command_callback))(OUT, command, argument, docket);
+ continue;
+ } else { /* otherwise the open brace was a literal */
+ PUT_TO(OUT, '{');
+ goto NewCharacter;
+ }
+ }
+ if ((cr == '(') && (docket->bplus_callback)) {
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 283 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if (cr == '+') {
+
+{
+#line 314 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ TEMPORARY_TEXT(material)
+ while (TRUE) {
+
+{
+#line 156 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str__get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+}
+#line 316 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if (cr == EOF) break;
+ if ((cr == ')') && (Str__get_last_char(material) == '+')) {
+ Str__delete_last_character(material); break; }
+ PUT_TO(material, cr);
+ }
+ (*(docket->bplus_callback))(material, docket);
+ DISCARD_TEXT(material)
+
+}
+#line 285 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ continue;
+ } else { /* otherwise the open bracket was a literal */
+ PUT_TO(OUT, '(');
+ goto NewCharacter;
+ }
+ }
+ PUT_TO(OUT, cr);
+
+}
+#line 144 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ } while (cr != EOF);
+ DISCARD_TEXT(command)
+ DISCARD_TEXT(argument)
+
+}
+#line 110 "inweb/foundation-module/Chapter 8/Simple Tangler.w"
+;
+ if (Input_File) fclose(Input_File);
+}
+
#line 101 "inweb/Chapter 1/Basics.w"
DECLARE_CLASS_ALLOCATED_IN_ARRAYS(source_line, 1000)
DECLARE_CLASS(asset_rule)
@@ -15495,13 +15892,13 @@ int main(int argc, char **argv) {
inweb_instructions args = Configuration__read(argc, argv);
verbose_mode = args.verbose_switch;
fundamental_mode = args.inweb_mode;
- path_to_inweb = Pathnames__installation_path("INWEB_PATH", TL_IS_87);
+ path_to_inweb = Pathnames__installation_path("INWEB_PATH", TL_IS_88);
if (verbose_mode) {
PRINT("Installation path is %p\n", path_to_inweb);
Locales__write_locales(STDOUT);
}
- path_to_inweb_patterns = Pathnames__down(path_to_inweb, TL_IS_88);
- path_to_inweb_materials = Pathnames__down(path_to_inweb, TL_IS_89);
+ path_to_inweb_patterns = Pathnames__down(path_to_inweb, TL_IS_89);
+ path_to_inweb_materials = Pathnames__down(path_to_inweb, TL_IS_90);
Main__follow_instructions(&args);
@@ -15531,11 +15928,11 @@ void Main__follow_instructions(inweb_instructions *ins) {
{
#line 115 "inweb/Chapter 1/Program Control.w"
if ((ins->makefile_setting) && (ins->prototype_setting == NULL))
- ins->prototype_setting = Filenames__from_text(TL_IS_90);
- if ((ins->gitignore_setting) && (ins->prototype_setting == NULL))
ins->prototype_setting = Filenames__from_text(TL_IS_91);
- if ((ins->writeme_setting) && (ins->prototype_setting == NULL))
+ if ((ins->gitignore_setting) && (ins->prototype_setting == NULL))
ins->prototype_setting = Filenames__from_text(TL_IS_92);
+ if ((ins->writeme_setting) && (ins->prototype_setting == NULL))
+ ins->prototype_setting = Filenames__from_text(TL_IS_93);
if (ins->makefile_setting)
Makefiles__write(W, ins->prototype_setting, ins->makefile_setting,
WebModules__make_search_path(ins->import_setting));
@@ -15615,10 +16012,10 @@ void Main__follow_instructions(inweb_instructions *ins) {
{
#line 221 "inweb/Chapter 1/Program Control.w"
tn = NULL;
- if (Bibliographic__data_exists(W->md, TL_IS_93))
- Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_94));
- else
+ if (Bibliographic__data_exists(W->md, TL_IS_94))
Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_95));
+ else
+ Str__copy(tangle_leaf, Bibliographic__get_datum(W->md, TL_IS_96));
Str__concatenate(tangle_leaf, W->main_language->file_extension);
}
@@ -15774,7 +16171,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
L" sections: ditto with sections\n");
CommandLine__begin_group(LANGUAGES_CLSG,
- TL_IS_97);
+ TL_IS_98);
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,
@@ -15788,7 +16185,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
CommandLine__end_group();
CommandLine__begin_group(ANALYSIS_CLSG,
- TL_IS_98);
+ TL_IS_99);
CommandLine__declare_switch(CATALOGUE_CLSW, L"catalogue", 1,
L"list the sections in the web");
CommandLine__declare_switch(CATALOGUE_CLSW, L"catalog", 1,
@@ -15814,7 +16211,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
CommandLine__end_group();
CommandLine__begin_group(WEAVING_CLSG,
- TL_IS_99);
+ TL_IS_100);
CommandLine__declare_switch(WEAVE_CLSW, L"weave", 1,
L"weave the web into human-readable form");
CommandLine__declare_switch(WEAVE_INTO_CLSW, L"weave-into", 2,
@@ -15834,7 +16231,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
CommandLine__end_group();
CommandLine__begin_group(TANGLING_CLSG,
- TL_IS_100);
+ TL_IS_101);
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,
@@ -15846,7 +16243,7 @@ inweb_instructions Configuration__read(int argc, char **argv) {
CommandLine__end_group();
CommandLine__begin_group(COLONIAL_CLSG,
- TL_IS_101);
+ TL_IS_102);
CommandLine__declare_switch(COLONY_CLSW, L"colony", 2,
L"use the file X as a list of webs in this colony");
CommandLine__declare_switch(MEMBER_CLSW, L"member", 2,
@@ -15871,7 +16268,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_96);
+ Str__copy(args.chosen_range, TL_IS_97);
}
return args;
}
@@ -16030,7 +16427,7 @@ void Configuration__member_and_colony(inweb_instructions *args) {
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_102, 6))
+ if (Str__suffix_eq(opt, TL_IS_103, 6))
args->chosen_file = Filenames__from_text(opt);
else
args->chosen_web = Pathnames__from_text(opt);
@@ -16049,7 +16446,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_103);
+ Str__copy(args->chosen_range, TL_IS_104);
} 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);
@@ -16147,7 +16544,7 @@ weave_order *Swarm__weave_subset(web *W, text_stream *range, int open_afterwards
match_results mr = Regexp__create_mr();
if (Str__eq_wide_string(range, L"0")) {
if (W->md->single_file) {
- wv->booklet_title = Str__duplicate(Bibliographic__get_datum(W->md, TL_IS_104));
+ wv->booklet_title = Str__duplicate(Bibliographic__get_datum(W->md, TL_IS_105));
Filenames__write_unextended_leafname(leafname, W->md->single_file);
} else {
wv->booklet_title = Str__new_from_wide_string(L"Complete Program");
@@ -16183,7 +16580,7 @@ weave_order *Swarm__weave_subset(web *W, text_stream *range, int open_afterwards
else Str__copy(wv->booklet_title, range);
Str__copy(leafname, range);
}
- Bibliographic__set_datum(W->md, TL_IS_105, wv->booklet_title);
+ Bibliographic__set_datum(W->md, TL_IS_106, wv->booklet_title);
LOOP_THROUGH_TEXT(P, leafname)
if ((Str__get(P) == '/') || (Str__get(P) == ' '))
Str__put(P, '-');
@@ -16250,12 +16647,12 @@ colour_scheme *Swarm__ensure_colour_scheme(weave_order *wv, text_stream *name,
return existing;
colour_scheme *cs = Assets__find_colour_scheme(wv->pattern, name, pre);
if (cs == NULL) {
- if (Str__eq(name, TL_IS_106)) {
+ if (Str__eq(name, TL_IS_107)) {
TEMPORARY_TEXT(err)
WRITE_TO(err, "No CSS file for the colour scheme '%S' can be found", name);
Main__error_in_web(err, NULL);
} else {
- return Swarm__ensure_colour_scheme(wv, TL_IS_107, TL_IS_108);
+ return Swarm__ensure_colour_scheme(wv, TL_IS_108, TL_IS_109);
}
}
if (cs) ADD_TO_LINKED_LIST(cs, colour_scheme, wv->colour_schemes);
@@ -16274,18 +16671,18 @@ void Swarm__include_plugins(OUTPUT_STREAM, web *W, weave_order *wv, filename *fr
#line 231 "inweb/Chapter 1/The Swarm.w"
void Swarm__weave_index_templates(web *W, text_stream *range, weave_pattern *pattern,
pathname *into, filename *nav, linked_list *crumbs) {
- if (!(Bibliographic__data_exists(W->md, TL_IS_109)))
- Bibliographic__set_datum(W->md, TL_IS_110, TL_IS_111);
- filename *INF = Patterns__find_template(pattern, TL_IS_112);
+ if (!(Bibliographic__data_exists(W->md, TL_IS_110)))
+ Bibliographic__set_datum(W->md, TL_IS_111, TL_IS_112);
+ filename *INF = Patterns__find_template(pattern, TL_IS_113);
if (INF) {
pathname *H = W->redirect_weaves_to;
if (H == NULL) H = Reader__woven_folder(W);
- filename *Contents = Filenames__in(H, TL_IS_113);
+ filename *Contents = Filenames__in(H, TL_IS_114);
text_stream TO_struct; text_stream *OUT = &TO_struct;
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_114, TL_IS_115);
+ Epub__note_page(W->as_ebook, Contents, TL_IS_115, TL_IS_116);
PRINT("[Index file: %f]\n", Contents);
Collater__collate(OUT, W, range, INF, pattern, nav, crumbs, NULL, Contents);
STREAM_CLOSE(OUT);
@@ -16311,7 +16708,7 @@ weave_pattern *Patterns__find(web *W, text_stream *name) {
wp->number_sections = FALSE;
wp->footnotes_plugin = NULL;
wp->mathematics_plugin = NULL;
- wp->default_range = Str__duplicate(TL_IS_116);
+ wp->default_range = Str__duplicate(TL_IS_117);
wp->initial_extension = NULL;
wp->post_commands = NEW_LINKED_LIST(text_stream);
wp->blocked_templates = NEW_LINKED_LIST(text_stream);
@@ -16328,19 +16725,19 @@ weave_pattern *Patterns__find(web *W, text_stream *name) {
pathname *CP = Colonies__patterns_path();
if (CP) {
wp->pattern_location = Pathnames__down(CP, name);
- pattern_file = Filenames__in(wp->pattern_location, TL_IS_117);
+ pattern_file = Filenames__in(wp->pattern_location, TL_IS_118);
if (TextFiles__exists(pattern_file) == FALSE) wp->pattern_location = NULL;
}
if (wp->pattern_location == NULL) {
wp->pattern_location = Pathnames__down(
- Pathnames__down(W->md->path_to_web, TL_IS_118), name);
- pattern_file = Filenames__in(wp->pattern_location, TL_IS_119);
+ Pathnames__down(W->md->path_to_web, TL_IS_119), name);
+ pattern_file = Filenames__in(wp->pattern_location, TL_IS_120);
if (TextFiles__exists(pattern_file) == FALSE) wp->pattern_location = NULL;
}
if (wp->pattern_location == NULL) {
wp->pattern_location = Pathnames__down(
path_to_inweb_patterns, name);
- pattern_file = Filenames__in(wp->pattern_location, TL_IS_120);
+ pattern_file = Filenames__in(wp->pattern_location, TL_IS_121);
if (TextFiles__exists(pattern_file) == FALSE) wp->pattern_location = NULL;
}
if (wp->pattern_location == NULL)
@@ -16378,7 +16775,7 @@ void Patterns__scan_pattern_line(text_stream *line, text_file_position *tfp, voi
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, line, L"(%c+) *: *(%c+?)")) {
text_stream *key = mr.exp[0], *value = Str__duplicate(mr.exp[1]);
- if ((Str__eq_insensitive(key, TL_IS_121)) && (wp->commands == 1)) {
+ if ((Str__eq_insensitive(key, TL_IS_122)) && (wp->commands == 1)) {
match_results mr2 = Regexp__create_mr();
if (Regexp__match(&mr2, value, L"(%c+?) based on (%c+)")) {
if (Str__ne_insensitive(mr2.exp[0], wp->pattern_name)) {
@@ -16397,29 +16794,29 @@ void Patterns__scan_pattern_line(text_stream *line, text_file_position *tfp, voi
}
Regexp__dispose_of(&mr2);
wp->name_command_given = TRUE;
- } else if (Str__eq_insensitive(key, TL_IS_122)) {
+ } else if (Str__eq_insensitive(key, TL_IS_123)) {
text_stream *name = Patterns__plugin_name(value, tfp);
if (Str__len(name) > 0) {
weave_plugin *plugin = Assets__new(name);
ADD_TO_LINKED_LIST(plugin, weave_plugin, wp->plugins);
}
- } else if (Str__eq_insensitive(key, TL_IS_123)) {
- wp->pattern_format = Formats__find_by_name(value);
} else if (Str__eq_insensitive(key, TL_IS_124)) {
- wp->number_sections = Patterns__yes_or_no(value, tfp);
+ wp->pattern_format = Formats__find_by_name(value);
} else if (Str__eq_insensitive(key, TL_IS_125)) {
- wp->default_range = Str__duplicate(value);
+ wp->number_sections = Patterns__yes_or_no(value, tfp);
} else if (Str__eq_insensitive(key, TL_IS_126)) {
- wp->initial_extension = Str__duplicate(value);
+ wp->default_range = Str__duplicate(value);
} else if (Str__eq_insensitive(key, TL_IS_127)) {
- wp->mathematics_plugin = Patterns__plugin_name(value, tfp);
+ wp->initial_extension = Str__duplicate(value);
} else if (Str__eq_insensitive(key, TL_IS_128)) {
- wp->footnotes_plugin = Patterns__plugin_name(value, tfp);
+ wp->mathematics_plugin = Patterns__plugin_name(value, tfp);
} else if (Str__eq_insensitive(key, TL_IS_129)) {
- ADD_TO_LINKED_LIST(Str__duplicate(value), text_stream, wp->blocked_templates);
+ wp->footnotes_plugin = Patterns__plugin_name(value, tfp);
} else if (Str__eq_insensitive(key, TL_IS_130)) {
- ADD_TO_LINKED_LIST(Str__duplicate(value), text_stream, wp->post_commands);
+ ADD_TO_LINKED_LIST(Str__duplicate(value), text_stream, wp->blocked_templates);
} else if (Str__eq_insensitive(key, TL_IS_131)) {
+ ADD_TO_LINKED_LIST(Str__duplicate(value), text_stream, wp->post_commands);
+ } else if (Str__eq_insensitive(key, TL_IS_132)) {
match_results mr2 = Regexp__create_mr();
if (Regexp__match(&mr2, value, L"(%c+?) = (%c+)")) {
Bibliographic__set_datum(wp->patterned_for->md, mr2.exp[0], mr2.exp[1]);
@@ -16427,7 +16824,7 @@ void Patterns__scan_pattern_line(text_stream *line, text_file_position *tfp, voi
Errors__in_text_file("syntax is 'bibliographic data: X = Y'", tfp);
}
Regexp__dispose_of(&mr2);
- } else if (Str__eq_insensitive(key, TL_IS_132)) {
+ } else if (Str__eq_insensitive(key, TL_IS_133)) {
match_results mr2 = Regexp__create_mr();
if (Regexp__match(&mr2, value, L"(.%C+?) (%c+)")) {
Assets__add_asset_rule(wp->asset_rules, mr2.exp[0], mr2.exp[1], tfp);
@@ -16446,8 +16843,8 @@ void Patterns__scan_pattern_line(text_stream *line, text_file_position *tfp, voi
#line 184 "inweb/Chapter 1/Patterns.w"
int Patterns__yes_or_no(text_stream *arg, text_file_position *tfp) {
- if (Str__eq(arg, TL_IS_133)) return TRUE;
- if (Str__eq(arg, TL_IS_134)) return FALSE;
+ if (Str__eq(arg, TL_IS_134)) return TRUE;
+ if (Str__eq(arg, TL_IS_135)) return FALSE;
Errors__in_text_file("setting must be 'yes' or 'no'", tfp);
return FALSE;
}
@@ -16455,7 +16852,7 @@ int Patterns__yes_or_no(text_stream *arg, text_file_position *tfp) {
text_stream *Patterns__plugin_name(text_stream *arg, text_file_position *tfp) {
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, arg, L"(%i+)")) {
- if (Str__eq_insensitive(arg, TL_IS_135)) return NULL;
+ if (Str__eq_insensitive(arg, TL_IS_136)) return NULL;
} else {
Errors__in_text_file("plugin names must be single alphanumeric words", tfp);
arg = NULL;
@@ -16471,10 +16868,10 @@ void Patterns__post_process(weave_pattern *pattern, weave_order *wv) {
filename *last_F = NULL;
TEMPORARY_TEXT(cmd)
for (int i=0; iweave_to));
i += 8;
- } else if (Str__includes_at(T, i, TL_IS_137)) {
+ } else if (Str__includes_at(T, i, TL_IS_138)) {
filename *W = wv->weave_to;
i += 5;
if (Str__get_at(T, i) == '.') {
@@ -16490,7 +16887,7 @@ void Patterns__post_process(weave_pattern *pattern, weave_order *wv) {
i--;
} else PUT_TO(cmd, Str__get_at(T, i));
}
- if ((Str__includes_at(cmd, 0, TL_IS_138)) && (last_F)) {
+ if ((Str__includes_at(cmd, 0, TL_IS_139)) && (last_F)) {
TeXUtilities__post_process_weave(wv, last_F);
} else {
if (verbose_mode) PRINT("(%S)\n", cmd);
@@ -16562,8 +16959,8 @@ colour_scheme *Assets__find_colour_scheme(weave_pattern *pattern,
return cs;
TEMPORARY_TEXT(css)
WRITE_TO(css, "%S.css", name);
- filename *F = Patterns__find_file_in_subdirectory(pattern, TL_IS_139, css);
- if (F == NULL) F = Patterns__find_file_in_subdirectory(pattern, TL_IS_140, css);
+ filename *F = Patterns__find_file_in_subdirectory(pattern, TL_IS_140, css);
+ if (F == NULL) F = Patterns__find_file_in_subdirectory(pattern, TL_IS_141, css);
DISCARD_TEXT(css)
if (F == NULL) return NULL;
cs = CREATE(colour_scheme);
@@ -16629,8 +17026,8 @@ void Assets__include_colour_scheme(OUTPUT_STREAM, web *W, colour_scheme *cs,
if (verbose_mode) PRINT("Include colour scheme '%S'\n", cs->scheme_name);
TEMPORARY_TEXT(css)
WRITE_TO(css, "%S.css", cs->scheme_name);
- filename *F = Patterns__find_file_in_subdirectory(pattern, TL_IS_141, css);
- if (F == NULL) F = Patterns__find_file_in_subdirectory(pattern, TL_IS_142, css);
+ filename *F = Patterns__find_file_in_subdirectory(pattern, TL_IS_142, css);
+ if (F == NULL) F = Patterns__find_file_in_subdirectory(pattern, TL_IS_143, css);
if (F == NULL) {
TEMPORARY_TEXT(err)
WRITE_TO(err, "No CSS file for the colour scheme '%S' can be found",
@@ -16650,7 +17047,7 @@ void Assets__include_colour_scheme(OUTPUT_STREAM, web *W, colour_scheme *cs,
#line 184 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
linked_list *Assets__new_asset_rules_list(void) {
linked_list *L = NEW_LINKED_LIST(asset_rule);
- Assets__add_asset_rule(L, TL_IS_143, TL_IS_144, NULL);
+ Assets__add_asset_rule(L, TL_IS_144, TL_IS_145, NULL);
return L;
}
@@ -16677,7 +17074,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
cmd = mr.exp[0];
detail = mr.exp[1];
}
- if (Str__eq(cmd, TL_IS_145)) {
+ if (Str__eq(cmd, TL_IS_146)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16689,7 +17086,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 231 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = COPY_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_146)) {
+ } else if (Str__eq(cmd, TL_IS_147)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16701,7 +17098,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 233 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = PRIVATE_COPY_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_147)) {
+ } else if (Str__eq(cmd, TL_IS_148)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16713,7 +17110,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 235 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = EMBED_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_148)) {
+ } else if (Str__eq(cmd, TL_IS_149)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16725,11 +17122,11 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 237 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = COLLATE_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_149)) {
- R->pre = Str__duplicate(detail);
} else if (Str__eq(cmd, TL_IS_150)) {
- R->post = Str__duplicate(detail);
+ R->pre = Str__duplicate(detail);
} else if (Str__eq(cmd, TL_IS_151)) {
+ R->post = Str__duplicate(detail);
+ } else if (Str__eq(cmd, TL_IS_152)) {
R->transform_names = TRUE;
} else Errors__in_text_file("no such asset command", tfp);
Regexp__dispose_of(&mr);
@@ -16762,7 +17159,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
cmd = mr.exp[0];
detail = mr.exp[1];
}
- if (Str__eq(cmd, TL_IS_145)) {
+ if (Str__eq(cmd, TL_IS_146)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16774,7 +17171,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 231 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = COPY_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_146)) {
+ } else if (Str__eq(cmd, TL_IS_147)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16786,7 +17183,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 233 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = PRIVATE_COPY_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_147)) {
+ } else if (Str__eq(cmd, TL_IS_148)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16798,7 +17195,7 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 235 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = EMBED_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_148)) {
+ } else if (Str__eq(cmd, TL_IS_149)) {
{
#line 217 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
@@ -16810,11 +17207,11 @@ asset_rule *Assets__new_rule(linked_list *L, text_stream *ext, text_stream *line
}
#line 237 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
; R->method = COLLATE_ASSET_METHOD;
- } else if (Str__eq(cmd, TL_IS_149)) {
- R->pre = Str__duplicate(detail);
} else if (Str__eq(cmd, TL_IS_150)) {
- R->post = Str__duplicate(detail);
+ R->pre = Str__duplicate(detail);
} else if (Str__eq(cmd, TL_IS_151)) {
+ R->post = Str__duplicate(detail);
+ } else if (Str__eq(cmd, TL_IS_152)) {
R->transform_names = TRUE;
} else Errors__in_text_file("no such asset command", tfp);
Regexp__dispose_of(&mr);
@@ -16837,7 +17234,7 @@ asset_rule *Assets__applicable_rule(weave_pattern *pattern, filename *F) {
}
asset_rule *R;
LOOP_OVER_LINKED_LIST(R, asset_rule, pattern->asset_rules)
- if (Str__eq_insensitive(R->applies_to, TL_IS_152))
+ if (Str__eq_insensitive(R->applies_to, TL_IS_153))
return R;
internal_error("no default asset rule");
return NULL;
@@ -16857,7 +17254,7 @@ pathname *Assets__include_asset(OUTPUT_STREAM, asset_rule *R, web *W, filename *
{
#line 296 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
for (int i=0; ipre); i++) {
- if (Str__includes_at(R->pre, i, TL_IS_153)) {
+ if (Str__includes_at(R->pre, i, TL_IS_154)) {
WRITE("%S", url);
i += 2;
} else PUT(Str__get_at(R->pre, i));
@@ -16943,7 +17340,7 @@ pathname *Assets__include_asset(OUTPUT_STREAM, asset_rule *R, web *W, filename *
{
#line 334 "inweb/Chapter 1/Assets, Plugins and Colour Schemes.w"
for (int i=0; ipost); i++) {
- if (Str__includes_at(R->post, i, TL_IS_154)) {
+ if (Str__includes_at(R->post, i, TL_IS_155)) {
WRITE("%S", url);
i += 2;
} else PUT(Str__get_at(R->post, i));
@@ -17011,7 +17408,7 @@ web *Reader__load_web(pathname *P, filename *alt_F, module_search *I,
#line 134 "inweb/Chapter 2/The Reader.w"
TEMPORARY_TEXT(IB)
WRITE_TO(IB, "7");
- web_bibliographic_datum *bd = Bibliographic__set_datum(W->md, TL_IS_155, IB);
+ web_bibliographic_datum *bd = Bibliographic__set_datum(W->md, TL_IS_156, IB);
bd->declaration_permitted = FALSE;
DISCARD_TEXT(IB)
@@ -17030,7 +17427,7 @@ web *Reader__load_web(pathname *P, filename *alt_F, module_search *I,
W->redirect_weaves_to = NULL;
W->main_language = Languages__default(W);
W->web_extent = 0; W->no_paragraphs = 0;
- text_stream *language_name = Bibliographic__get_datum(W->md, TL_IS_156);
+ text_stream *language_name = Bibliographic__get_datum(W->md, TL_IS_157);
if (Str__len(language_name) > 0)
W->main_language = Languages__find_by_name(language_name, W, TRUE);
main_target = Reader__add_tangle_target(W, W->main_language);
@@ -17204,7 +17601,7 @@ void Reader__read_file(web *W, chapter *C, filename *F, text_stream *titling_lin
}
#line 253 "inweb/Chapter 2/The Reader.w"
;
- text_stream *purpose = Bibliographic__get_datum(W->md, TL_IS_157);
+ text_stream *purpose = Bibliographic__get_datum(W->md, TL_IS_158);
if (Str__len(purpose) > 0) {
Str__clear(line);
WRITE_TO(line, "Implied Purpose: %S", purpose);
@@ -17283,13 +17680,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__down(W->md->path_to_web, TL_IS_158);
+ pathname *P = Pathnames__down(W->md->path_to_web, TL_IS_159);
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__down(W->md->path_to_web, TL_IS_159);
+ pathname *P = Pathnames__down(W->md->path_to_web, TL_IS_160);
if (Pathnames__create_in_file_system(P) == FALSE)
Errors__fatal_with_path("unable to create Tangled subdirectory", P);
return P;
@@ -17368,7 +17765,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_160));
+ PRINT("web \"%S\": ", Bibliographic__get_datum(W->md, TL_IS_161));
int c = WebMetadata__chapter_count(W->md);
int s = WebMetadata__section_count(W->md);
if (W->md->chaptered) PRINT("%d chapter%s : ",
@@ -17519,7 +17916,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
{
#line 141 "inweb/Chapter 2/The Parser.w"
- source_line *NL = Lines__new_source_line_in(TL_IS_163, &(L->source), S);
+ source_line *NL = Lines__new_source_line_in(TL_IS_164, &(L->source), S);
PL->next_line = NL;
NL->next_line = L;
L = PL;
@@ -17532,13 +17929,13 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
if ((PL) && (Regexp__match(&mr, L->text, L"@ *= *"))) {
Str__clear(L->text);
- Str__copy(L->text, TL_IS_162);
+ Str__copy(L->text, TL_IS_163);
if (S->md->using_syntax < V2_SYNTAX)
Parser__wrong_version(S->md->using_syntax, L, "implied paragraph breaks", V2_SYNTAX);
{
#line 141 "inweb/Chapter 2/The Parser.w"
- source_line *NL = Lines__new_source_line_in(TL_IS_163, &(L->source), S);
+ source_line *NL = Lines__new_source_line_in(TL_IS_164, &(L->source), S);
PL->next_line = NL;
NL->next_line = L;
L = PL;
@@ -17650,10 +18047,10 @@ void Parser__parse_web(web *W, int inweb_mode) {
} 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_164);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_165);
L->command_code = FIGURE_CMD;
} else {
- Main__error_in_web(TL_IS_165, L);
+ Main__error_in_web(TL_IS_166, L);
}
L->is_commentary = TRUE;
DISCARD_TEXT(command_text)
@@ -17674,7 +18071,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
Str__copy(para_macro_name, mr.exp[0]);
L->category = MACRO_DEFINITION_LCAT;
if (current_paragraph == NULL)
- Main__error_in_web(TL_IS_166, L);
+ Main__error_in_web(TL_IS_167, L);
else Macros__create(S, current_paragraph, L, para_macro_name);
comment_mode = FALSE; extract_mode = FALSE;
L->is_commentary = FALSE;
@@ -17716,9 +18113,9 @@ void Parser__parse_web(web *W, int inweb_mode) {
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_167))) {
+ if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_168))) {
current_paragraph->placed_very_early = TRUE;
- } else if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_168))) {
+ } else if ((current_paragraph) && (Str__eq(mr.exp[0], TL_IS_169))) {
current_paragraph->placed_early = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text%)"))) {
@@ -17728,11 +18125,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17755,11 +18152,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17772,7 +18169,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
code_destination = Str__duplicate(mr2.exp[1]);
- code_pl_for_body = Languages__find_by_name(TL_IS_169, W, TRUE);
+ code_pl_for_body = Languages__find_by_name(TL_IS_170, W, TRUE);
extract_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text as code%)"))) {
@@ -17782,11 +18179,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17809,11 +18206,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17836,11 +18233,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17870,7 +18267,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
latest->next_line = TL;
latest = TL;
}
- source_line *EEL = Lines__new_source_line_in(TL_IS_186, &(L->source), S);
+ source_line *EEL = Lines__new_source_line_in(TL_IS_187, &(L->source), S);
EEL->next_line = latest->next_line;
latest->next_line = EEL;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
@@ -17887,11 +18284,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17921,7 +18318,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
latest->next_line = TL;
latest = TL;
}
- source_line *EEL = Lines__new_source_line_in(TL_IS_186, &(L->source), S);
+ source_line *EEL = Lines__new_source_line_in(TL_IS_187, &(L->source), S);
EEL->next_line = latest->next_line;
latest->next_line = EEL;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
@@ -17938,11 +18335,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
match_results mr3 = Regexp__create_mr();
while (TRUE) {
if (Regexp__match(&mr3, mr2.exp[0], L" *(%C+) *(%c*?)")) {
- if (Str__eq(mr3.exp[0], TL_IS_183)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_184)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_184)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_185)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_185, L);
+ TL_IS_186, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -17972,7 +18369,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
latest->next_line = TL;
latest = TL;
}
- source_line *EEL = Lines__new_source_line_in(TL_IS_186, &(L->source), S);
+ source_line *EEL = Lines__new_source_line_in(TL_IS_187, &(L->source), S);
EEL->next_line = latest->next_line;
latest->next_line = EEL;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
@@ -17983,7 +18380,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(figure (%c+)%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_170);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_171);
L->command_code = FIGURE_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -17991,7 +18388,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(audio (%c+)%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_171);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_172);
L->command_code = AUDIO_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -17999,7 +18396,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(video (%c+)%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_172);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_173);
L->command_code = VIDEO_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18007,7 +18404,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(download (%c+) \"(%c*)\"%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_173);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_174);
L->command_code = DOWNLOAD_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18016,7 +18413,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(download (%c+)%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_174);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_175);
L->command_code = DOWNLOAD_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18025,7 +18422,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(carousel%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_175);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_176);
L->command_code = CAROUSEL_UNCAPTIONED_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18033,7 +18430,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(carousel \"(%c+)\" below%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_176);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_177);
L->command_code = CAROUSEL_BELOW_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18041,7 +18438,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(carousel \"(%c+)\" above%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_177);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_178);
L->command_code = CAROUSEL_ABOVE_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18049,7 +18446,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(carousel \"(%c+)\"%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_178);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_179);
L->command_code = CAROUSEL_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18057,7 +18454,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp__match(&mr2, mr.exp[0], L"%(carousel end%)"))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_179);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_180);
L->command_code = CAROUSEL_END_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18065,7 +18462,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
} else if ((current_paragraph) &&
((Regexp__match(&mr2, mr.exp[0], L"%(embedded (%C+) video (%c+)%)")) ||
(Regexp__match(&mr2, mr.exp[0], L"%(embedded (%C+) audio (%c+)%)")))) {
- Tags__add_by_name(L->owning_paragraph, TL_IS_180);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_181);
L->command_code = EMBED_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -18073,10 +18470,10 @@ void Parser__parse_web(web *W, int inweb_mode) {
L->text_operand2 = Str__duplicate(mr2.exp[1]);
comment_mode = TRUE;
} else {
- Main__error_in_web(TL_IS_181, L);
+ Main__error_in_web(TL_IS_182, L);
}
} else if (Regexp__match(&mr, L->text, L"= *%C%c*")) {
- Main__error_in_web(TL_IS_182, L);
+ Main__error_in_web(TL_IS_183, L);
}
code_plainness_for_body = L->plainer;
hyperlink_body = L->enable_hyperlinks;
@@ -18110,7 +18507,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
if (Str__eq_wide_string(command_text, L"Purpose:"))
{
#line 578 "inweb/Chapter 2/The Parser.w"
- if (before_bar == FALSE) Main__error_in_web(TL_IS_188, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_189, L);
if (S->md->using_syntax >= V2_SYNTAX)
Parser__wrong_version(S->md->using_syntax, L, "'@Purpose'", V1_SYNTAX);
L->category = PURPOSE_LCAT;
@@ -18126,7 +18523,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
#line 587 "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_189, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_190, L);
L->category = INTERFACE_LCAT;
L->owning_paragraph = NULL;
L->is_commentary = TRUE;
@@ -18146,7 +18543,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
#line 602 "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_190, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_191, L);
L->category = DEFINITIONS_LCAT;
L->owning_paragraph = NULL;
L->is_commentary = TRUE;
@@ -18161,7 +18558,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
#line 615 "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_191, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_192, L);
L->category = BAR_LCAT;
L->owning_paragraph = NULL;
L->is_commentary = TRUE;
@@ -18290,7 +18687,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
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_192, L);
+ Main__error_in_web(TL_IS_193, L);
}
L->text_operand2 = Str__new();
if (inweb_mode == TANGLE_MODE)
@@ -18325,7 +18722,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
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_192, L);
+ Main__error_in_web(TL_IS_193, L);
}
L->text_operand2 = Str__new();
if (inweb_mode == TANGLE_MODE)
@@ -18390,13 +18787,13 @@ void Parser__parse_web(web *W, int inweb_mode) {
P->placed_very_early = FALSE;
}
P->invisible = FALSE;
- if (Str__eq(Bibliographic__get_datum(W->md, TL_IS_193), TL_IS_194))
+ if (Str__eq(Bibliographic__get_datum(W->md, TL_IS_194), TL_IS_195))
P->invisible = TRUE;
P->heading_text = Str__duplicate(L->text_operand);
if ((S->md->using_syntax == V1_SYNTAX) && (before_bar))
- P->ornament = Str__duplicate(TL_IS_195);
- else
P->ornament = Str__duplicate(TL_IS_196);
+ else
+ P->ornament = Str__duplicate(TL_IS_197);
WRITE_TO(P->paragraph_number, "%d", next_par_number++);
P->parent_paragraph = NULL;
P->next_child_number = 1;
@@ -18426,7 +18823,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
#line 570 "inweb/Chapter 2/The Parser.w"
- else Main__error_in_web(TL_IS_187, L);
+ else Main__error_in_web(TL_IS_188, L);
}
}
@@ -18491,7 +18888,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
source_line *L = S->first_line;
if ((L) && (L->category == CHAPTER_HEADING_LCAT)) L = L->next_line;
if (Str__len(S->sect_purpose) == 0) {
- S->sect_purpose = Parser__extract_purpose(TL_IS_161, L?L->next_line: NULL, S, NULL);
+ S->sect_purpose = Parser__extract_purpose(TL_IS_162, L?L->next_line: NULL, S, NULL);
if (Str__len(S->sect_purpose) > 0) L->next_line->category = PURPOSE_LCAT;
}
}
@@ -18605,10 +19002,10 @@ text_stream *Parser__extract_purpose(text_stream *prologue, source_line *XL, sec
int Parser__detect_footnote(web *W, text_stream *matter, text_stream *before,
text_stream *cue, text_stream *after) {
text_stream *fn_on_notation =
- Bibliographic__get_datum(W->md, TL_IS_197);
- text_stream *fn_off_notation =
Bibliographic__get_datum(W->md, TL_IS_198);
- if (Str__ne(fn_on_notation, TL_IS_199)) {
+ text_stream *fn_off_notation =
+ Bibliographic__get_datum(W->md, TL_IS_199);
+ if (Str__ne(fn_on_notation, TL_IS_200)) {
int N1 = Str__len(fn_on_notation);
int N2 = Str__len(fn_off_notation);
if ((N1 > 0) && (N2 > 0))
@@ -18743,10 +19140,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_200, 6)) {
+ if (Str__prefix_eq(name, TL_IS_201, 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_201, 7)) {
+ } else if (Str__prefix_eq(name, TL_IS_202, 7)) {
Str__substr(tag->ifdef_symbol, Str__at(name, 7), Str__end(name));
tag->ifdef_positive = FALSE;
}
@@ -18841,20 +19238,20 @@ void Tags__show_endnote_on_ifdefs(heterogeneous_tree *tree, tree_node *ap, parag
if (d++ == 0) {
tree_node *E = WeaveTree__endnote(tree);
Trees__make_child(E, ap); ap = E;
- TextWeaver__commentary_text(tree, ap, TL_IS_203);
- } else {
TextWeaver__commentary_text(tree, ap, TL_IS_204);
+ } else {
+ TextWeaver__commentary_text(tree, ap, TL_IS_205);
}
} else {
- TextWeaver__commentary_text(tree, ap, TL_IS_205);
+ TextWeaver__commentary_text(tree, ap, TL_IS_206);
}
TextWeaver__commentary_text(tree, ap, pt->the_tag->ifdef_symbol);
}
if (c > 0) {
- if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_206);
- else TextWeaver__commentary_text(tree, ap, TL_IS_207);
- if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_208);
- else TextWeaver__commentary_text(tree, ap, TL_IS_209);
+ if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_207);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_208);
+ if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_209);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_210);
}
}
@@ -18873,26 +19270,26 @@ void Tags__show_endnote_on_ifdefs(heterogeneous_tree *tree, tree_node *ap, parag
if (d++ == 0) {
tree_node *E = WeaveTree__endnote(tree);
Trees__make_child(E, ap); ap = E;
- TextWeaver__commentary_text(tree, ap, TL_IS_203);
- } else {
TextWeaver__commentary_text(tree, ap, TL_IS_204);
+ } else {
+ TextWeaver__commentary_text(tree, ap, TL_IS_205);
}
} else {
- TextWeaver__commentary_text(tree, ap, TL_IS_205);
+ TextWeaver__commentary_text(tree, ap, TL_IS_206);
}
TextWeaver__commentary_text(tree, ap, pt->the_tag->ifdef_symbol);
}
if (c > 0) {
- if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_206);
- else TextWeaver__commentary_text(tree, ap, TL_IS_207);
- if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_208);
- else TextWeaver__commentary_text(tree, ap, TL_IS_209);
+ if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_207);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_208);
+ if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_209);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_210);
}
}
#line 139 "inweb/Chapter 2/Tags.w"
;
- if (d > 0) TextWeaver__commentary_text(tree, ap, TL_IS_202);
+ if (d > 0) TextWeaver__commentary_text(tree, ap, TL_IS_203);
}
#line 22 "inweb/Chapter 2/Enumerated Constants.w"
@@ -18916,7 +19313,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_210, L);
+ Main__error_in_web(TL_IS_211, L);
WRITE_TO(pf, "BOGUS");
}
Regexp__dispose_of(&mr);
@@ -18932,7 +19329,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_211, L);
+ } else Main__error_in_web(TL_IS_212, L);
}
#line 45 "inweb/Chapter 2/Enumerated Constants.w"
@@ -18940,7 +19337,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_212, L);
+ if (es) Main__error_in_web(TL_IS_213, L);
else {
es = CREATE(enumeration_set);
es->postfix = Str__duplicate(pf);
@@ -19230,7 +19627,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_213, L);
+ Main__error_in_web(TL_IS_214, L);
}
#line 109 "inweb/Chapter 3/The Analyser.w"
@@ -19465,23 +19862,23 @@ void Analyser__analyse_find(web *W, source_line *L, text_stream *identifier, int
#line 392 "inweb/Chapter 3/The Analyser.w"
void Analyser__write_makefile(web *W, filename *F, module_search *I) {
- filename *prototype = Filenames__in(W->md->path_to_web, TL_IS_214);
+ filename *prototype = Filenames__in(W->md->path_to_web, TL_IS_215);
if (!(TextFiles__exists(prototype)))
- prototype = Filenames__in(path_to_inweb_materials, TL_IS_215);
+ prototype = Filenames__in(path_to_inweb_materials, TL_IS_216);
Makefiles__write(W, prototype, F, I);
}
void Analyser__write_gitignore(web *W, filename *F) {
- filename *prototype = Filenames__in(W->md->path_to_web, TL_IS_216);
+ filename *prototype = Filenames__in(W->md->path_to_web, TL_IS_217);
if (!(TextFiles__exists(prototype)))
- prototype = Filenames__in(path_to_inweb_materials, TL_IS_217);
+ prototype = Filenames__in(path_to_inweb_materials, TL_IS_218);
Git__write_gitignore(W, prototype, F);
}
#line 19 "inweb/Chapter 3/The Collater.w"
void Collater__for_web_and_pattern(text_stream *OUT, web *W,
weave_pattern *pattern, filename *F, filename *into) {
- Collater__collate(OUT, W, TL_IS_218, F, pattern, NULL, NULL, NULL, into);
+ Collater__collate(OUT, W, TL_IS_219, F, pattern, NULL, NULL, NULL, into);
}
void Collater__for_order(text_stream *OUT, weave_order *wv,
@@ -19636,33 +20033,33 @@ void Collater__process(text_stream *OUT, collater_state *cls) {
if (Regexp__match(&mr, command, L"If (%c*)")) {
text_stream *condition = mr.exp[0];
int level = IF_FALSE_LEVEL;
- if (Str__eq(condition, TL_IS_219)) {
+ if (Str__eq(condition, TL_IS_220)) {
if (cls->for_web->md->chaptered) level = IF_TRUE_LEVEL;
- } else if (Str__eq(condition, TL_IS_220)) {
+ } else if (Str__eq(condition, TL_IS_221)) {
if (LinkedLists__len(cls->modules) > 0)
level = IF_TRUE_LEVEL;
- } else if (Str__eq(condition, TL_IS_221)) {
+ } else if (Str__eq(condition, TL_IS_222)) {
module *M = CONTENT_IN_ITEM(
Collater__heading_topmost_on_stack(cls, MODULE_LEVEL), module);
if ((M) && (Colonies__find(M->module_name)))
level = IF_TRUE_LEVEL;
- } else if (Str__eq(condition, TL_IS_222)) {
+ } else if (Str__eq(condition, TL_IS_223)) {
module *M = CONTENT_IN_ITEM(
Collater__heading_topmost_on_stack(cls, MODULE_LEVEL), module);
if (M) {
TEMPORARY_TEXT(url)
TEMPORARY_TEXT(purpose)
WRITE_TO(url, "%p", M->module_location);
- Readme__write_var(purpose, url, TL_IS_223);
+ Readme__write_var(purpose, url, TL_IS_224);
if (Str__len(purpose) > 0) level = IF_TRUE_LEVEL;
DISCARD_TEXT(url)
DISCARD_TEXT(purpose)
}
- } else if (Str__eq(condition, TL_IS_224)) {
+ } else if (Str__eq(condition, TL_IS_225)) {
chapter *C = CONTENT_IN_ITEM(
Collater__heading_topmost_on_stack(cls, CHAPTER_LEVEL), chapter);
if ((C) && (Str__len(C->md->rubric) > 0)) level = IF_TRUE_LEVEL;
- } else if (Str__eq(condition, TL_IS_225)) {
+ } else if (Str__eq(condition, TL_IS_226)) {
section *S = CONTENT_IN_ITEM(
Collater__heading_topmost_on_stack(cls, SECTION_LEVEL), section);
if ((S) && (Str__len(S->sect_purpose) > 0)) level = IF_TRUE_LEVEL;
@@ -19993,7 +20390,7 @@ void Collater__process(text_stream *OUT, collater_state *cls) {
} else if (Str__eq_wide_string(detail, L"Purpose")) {
TEMPORARY_TEXT(url)
WRITE_TO(url, "%p", M->module_location);
- Readme__write_var(substituted, url, TL_IS_226);
+ Readme__write_var(substituted, url, TL_IS_227);
DISCARD_TEXT(url)
} else {
WRITE_TO(substituted, "%S for %S", varname, M->module_name);
@@ -20193,7 +20590,7 @@ void Collater__process(text_stream *OUT, collater_state *cls) {
#line 720 "inweb/Chapter 3/The Collater.w"
;
WRITE_TO(substituted, "");
- } else if (Str__eq(url, TL_IS_227)) {
+ } else if (Str__eq(url, TL_IS_228)) {
WRITE_TO(substituted, "", url);
WRITE_TO(substituted, "");
@@ -20294,7 +20691,7 @@ void Collater__process(text_stream *OUT, collater_state *cls) {
#line 720 "inweb/Chapter 3/The Collater.w"
;
WRITE_TO(substituted, " ");
- } else if (Str__eq(url, TL_IS_227)) {
+ } else if (Str__eq(url, TL_IS_228)) {
WRITE_TO(substituted, " ", url);
WRITE_TO(substituted, "");
@@ -20433,11 +20830,11 @@ int Collater__cmp_owners(text_stream *O1, text_stream *O2) {
return 0;
}
if (Str__len(O2) == 0) return 1;
- if (Str__eq_insensitive(O1, TL_IS_228)) {
- if (Str__eq_insensitive(O2, TL_IS_229) == FALSE) return 1;
+ if (Str__eq_insensitive(O1, TL_IS_229)) {
+ if (Str__eq_insensitive(O2, TL_IS_230) == FALSE) return 1;
return 0;
}
- if (Str__eq_insensitive(O2, TL_IS_230)) return -1;
+ if (Str__eq_insensitive(O2, TL_IS_231)) return -1;
return Str__cmp_insensitive(O1, O2);
}
@@ -20449,7 +20846,7 @@ int Weaver__weave(weave_order *wv) {
tree_node *H = WeaveTree__head(tree, banner);
DISCARD_TEXT(banner)
tree_node *B = WeaveTree__body(tree);
- tree_node *T = WeaveTree__tail(tree, TL_IS_231);
+ tree_node *T = WeaveTree__tail(tree, TL_IS_232);
Trees__make_child(H, tree->root);
Trees__make_child(B, tree->root);
Trees__make_child(T, tree->root);
@@ -20563,7 +20960,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
continue;
}
if (LLL->category == DEFINITIONS_LCAT) {
- Weaver__weave_subheading(tree, wv, state->ap, TL_IS_232);
+ Weaver__weave_subheading(tree, wv, state->ap, TL_IS_233);
state->next_heading_without_vertical_skip = TRUE;
state->horizontal_rule_just_drawn = FALSE;
continue;
@@ -20603,7 +21000,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
source_line *L = LLL;
if ((L->category != HEADING_START_LCAT) &&
(L->category != PARAGRAPH_START_LCAT))
- Main__error_in_web(TL_IS_233, L); /* should never happen */
+ Main__error_in_web(TL_IS_234, L); /* should never happen */
{
@@ -20824,11 +21221,11 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, matter, L"%(-...%) (%c*)")) { /* continue double */
Weaver__change_material(tree, state, COMMENTARY_MATERIAL, FALSE, NULL, NULL);
- Trees__make_child(WeaveTree__weave_item_node(tree, 2, TL_IS_234), state->ap);
+ Trees__make_child(WeaveTree__weave_item_node(tree, 2, TL_IS_235), state->ap);
Str__copy(matter, mr.exp[0]);
} else if (Regexp__match(&mr, matter, L"%(...%) (%c*)")) { /* continue single */
Weaver__change_material(tree, state, COMMENTARY_MATERIAL, FALSE, NULL, NULL);
- Trees__make_child(WeaveTree__weave_item_node(tree, 1, TL_IS_235), state->ap);
+ Trees__make_child(WeaveTree__weave_item_node(tree, 1, TL_IS_236), state->ap);
Str__copy(matter, mr.exp[0]);
} else if (Regexp__match(&mr, matter, L"%(-([a-zA-Z0-9*]+)%) (%c*)")) { /* begin double */
Weaver__change_material(tree, state, COMMENTARY_MATERIAL, FALSE, NULL, NULL);
@@ -20877,7 +21274,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
footnote *F = L->footnote_text;
tree_node *FN = WeaveTree__footnote(tree, F->cue_text);
Trees__make_child(FN, state->material_node);
- if (F->cued_already == FALSE) Main__error_in_web(TL_IS_236, L);
+ if (F->cued_already == FALSE) Main__error_in_web(TL_IS_237, L);
state->ap = FN;
}
@@ -20911,10 +21308,10 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
programming_language *pl = L->colour_as;
if (pl == NULL) pl = S->sect_language;
if (will_be != CODE_MATERIAL) pl = NULL;
- theme_tag *T = Tags__find_by_name(TL_IS_237, FALSE);
+ theme_tag *T = Tags__find_by_name(TL_IS_238, FALSE);
if ((T) && (Tags__tagged_with(L->owning_paragraph, T))) {
programming_language *prepl =
- Languages__find_by_name(TL_IS_238, wv->weave_web, FALSE);
+ Languages__find_by_name(TL_IS_239, wv->weave_web, FALSE);
if (prepl) pl = prepl;
}
text_stream *note = NULL;
@@ -20974,14 +21371,14 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
match_results mr = Regexp__create_mr();
if ((Regexp__match(&mr, matter, L"@d (%c*)")) ||
(Regexp__match(&mr, matter, L"@define (%c*)"))) {
- Str__copy(prefatory, TL_IS_239);
+ Str__copy(prefatory, TL_IS_240);
Str__copy(matter, mr.exp[0]);
} else if (Regexp__match(&mr, matter, L"@default (%c*)")) {
- Str__copy(prefatory, TL_IS_240);
+ Str__copy(prefatory, TL_IS_241);
Str__copy(matter, mr.exp[0]);
} else if ((Regexp__match(&mr, matter, L"@e (%c*)")) ||
(Regexp__match(&mr, matter, L"@enum (%c*)"))) {
- Str__copy(prefatory, TL_IS_241);
+ Str__copy(prefatory, TL_IS_242);
Str__copy(matter, mr.exp[0]);
}
Regexp__dispose_of(&mr);
@@ -21108,23 +21505,23 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
weave_order *wv, tree_node *ap, paragraph *P) {
tree_node *body = ap;
- theme_tag *T = Tags__find_by_name(TL_IS_242, FALSE);
+ theme_tag *T = Tags__find_by_name(TL_IS_243, FALSE);
if ((T) && (Tags__tagged_with(P, T)))
{
#line 592 "inweb/Chapter 3/The Weaver.w"
tree_node *E = WeaveTree__endnote(tree);
Trees__make_child(E, body); ap = E;
- TextWeaver__commentary_text(tree, ap, TL_IS_243);
+ TextWeaver__commentary_text(tree, ap, TL_IS_244);
TEMPORARY_TEXT(url)
int ext = FALSE;
if (Colonies__resolve_reference_in_weave(url, NULL, wv->weave_to,
- TL_IS_244, wv->weave_web->md, NULL, &ext))
- Trees__make_child(WeaveTree__url(tree, url, TL_IS_245, ext), ap);
+ TL_IS_245, wv->weave_web->md, NULL, &ext))
+ Trees__make_child(WeaveTree__url(tree, url, TL_IS_246, ext), ap);
else
- TextWeaver__commentary_text(tree, ap, TL_IS_246);
+ TextWeaver__commentary_text(tree, ap, TL_IS_247);
DISCARD_TEXT(url)
- TextWeaver__commentary_text(tree, ap, TL_IS_247);
+ TextWeaver__commentary_text(tree, ap, TL_IS_248);
}
#line 579 "inweb/Chapter 3/The Weaver.w"
@@ -21136,30 +21533,30 @@ void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
#line 606 "inweb/Chapter 3/The Weaver.w"
tree_node *E = WeaveTree__endnote(tree);
Trees__make_child(E, body); ap = E;
- TextWeaver__commentary_text(tree, ap, TL_IS_248);
+ TextWeaver__commentary_text(tree, ap, TL_IS_249);
int ct = 0;
macro_usage *mu;
LOOP_OVER_LINKED_LIST(mu, macro_usage, P->defines_macro->macro_usages)
ct++;
- if (ct == 1) TextWeaver__commentary_text(tree, ap, TL_IS_249);
+ if (ct == 1) TextWeaver__commentary_text(tree, ap, TL_IS_250);
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) TextWeaver__commentary_text(tree, ap, TL_IS_250);
- else TextWeaver__commentary_text(tree, ap, TL_IS_251);
+ if (k < ct-1) TextWeaver__commentary_text(tree, ap, TL_IS_251);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_252);
} else {
- TextWeaver__commentary_text(tree, ap, TL_IS_252);
+ TextWeaver__commentary_text(tree, ap, TL_IS_253);
}
Trees__make_child(WeaveTree__locale(tree, mu->used_in_paragraph, NULL), ap);
used_flag = TRUE; k++;
switch (mu->multiplicity) {
case 1: break;
- case 2: TextWeaver__commentary_text(tree, ap, TL_IS_253); break;
- case 3: TextWeaver__commentary_text(tree, ap, TL_IS_254); break;
- case 4: TextWeaver__commentary_text(tree, ap, TL_IS_255); break;
- case 5: TextWeaver__commentary_text(tree, ap, TL_IS_256); break;
+ case 2: TextWeaver__commentary_text(tree, ap, TL_IS_254); break;
+ case 3: TextWeaver__commentary_text(tree, ap, TL_IS_255); break;
+ case 4: TextWeaver__commentary_text(tree, ap, TL_IS_256); break;
+ case 5: TextWeaver__commentary_text(tree, ap, TL_IS_257); break;
default: {
TEMPORARY_TEXT(mt)
WRITE_TO(mt, " (%d times)", mu->multiplicity);
@@ -21170,7 +21567,7 @@ void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
}
}
}
- TextWeaver__commentary_text(tree, ap, TL_IS_257);
+ TextWeaver__commentary_text(tree, ap, TL_IS_258);
}
#line 582 "inweb/Chapter 3/The Weaver.w"
@@ -21193,7 +21590,7 @@ void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
#line 649 "inweb/Chapter 3/The Weaver.w"
tree_node *E = WeaveTree__endnote(tree);
Trees__make_child(E, body); ap = E;
- TextWeaver__commentary_text(tree, ap, TL_IS_258);
+ TextWeaver__commentary_text(tree, ap, TL_IS_259);
TextWeaver__commentary_text(tree, ap, st->structure_name);
section *S;
@@ -21217,18 +21614,18 @@ void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
usage_count++;
if (S != P->under_section) external++;
}
- if (external == 0) TextWeaver__commentary_text(tree, ap, TL_IS_259);
+ if (external == 0) TextWeaver__commentary_text(tree, ap, TL_IS_260);
else {
- TextWeaver__commentary_text(tree, ap, TL_IS_260);
+ TextWeaver__commentary_text(tree, ap, TL_IS_261);
int c = 0;
LOOP_OVER(S, section)
if ((S->scratch_flag) && (S != P->under_section)) {
- if (c++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_261);
+ if (c++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_262);
TextWeaver__commentary_text(tree, ap, S->md->sect_range);
}
- if (P->under_section->scratch_flag) TextWeaver__commentary_text(tree, ap, TL_IS_262);
+ if (P->under_section->scratch_flag) TextWeaver__commentary_text(tree, ap, TL_IS_263);
}
- TextWeaver__commentary_text(tree, ap, TL_IS_263);
+ TextWeaver__commentary_text(tree, ap, TL_IS_264);
}
#line 588 "inweb/Chapter 3/The Weaver.w"
@@ -21246,7 +21643,7 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
if (as_list == FALSE) {
tree_node *E = WeaveTree__endnote(tree);
Trees__make_child(E, body); ap = E;
- TextWeaver__commentary_text(tree, ap, TL_IS_264);
+ TextWeaver__commentary_text(tree, ap, TL_IS_265);
TextWeaver__commentary_text(tree, ap, fn->function_name);
}
int used_flag = FALSE;
@@ -21260,7 +21657,7 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
{
#line 728 "inweb/Chapter 3/The Weaver.w"
if (as_list == FALSE) {
- if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_269);
+ if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_270);
}
used_flag = TRUE;
section *S = hteu->usage_recorded_at->under_section;
@@ -21268,17 +21665,17 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
count_under = 0;
if (last_cited_in) {
if (as_list == FALSE) {
- if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_270);
- else TextWeaver__commentary_text(tree, ap, TL_IS_271);
+ if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_271);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_272);
} else {
Trees__make_child(WeaveTree__linebreak(tree), ap);
}
}
TextWeaver__commentary_text(tree, ap, hteu->usage_recorded_at->under_section->md->sect_title);
- if (as_list == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_272);
- else TextWeaver__commentary_text(tree, ap, TL_IS_273);
+ if (as_list == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_273);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_274);
}
- if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_274);
+ if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_275);
Trees__make_child(WeaveTree__locale(tree, hteu->usage_recorded_at, NULL), ap);
last_cited_in = hteu->usage_recorded_at->under_section;
@@ -21291,7 +21688,7 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
{
#line 728 "inweb/Chapter 3/The Weaver.w"
if (as_list == FALSE) {
- if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_269);
+ if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_270);
}
used_flag = TRUE;
section *S = hteu->usage_recorded_at->under_section;
@@ -21299,17 +21696,17 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
count_under = 0;
if (last_cited_in) {
if (as_list == FALSE) {
- if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_270);
- else TextWeaver__commentary_text(tree, ap, TL_IS_271);
+ if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_271);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_272);
} else {
Trees__make_child(WeaveTree__linebreak(tree), ap);
}
}
TextWeaver__commentary_text(tree, ap, hteu->usage_recorded_at->under_section->md->sect_title);
- if (as_list == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_272);
- else TextWeaver__commentary_text(tree, ap, TL_IS_273);
+ if (as_list == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_273);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_274);
}
- if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_274);
+ if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_275);
Trees__make_child(WeaveTree__locale(tree, hteu->usage_recorded_at, NULL), ap);
last_cited_in = hteu->usage_recorded_at->under_section;
@@ -21318,15 +21715,15 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
;
if (used_flag == FALSE) {
if (as_list == FALSE) {
- TextWeaver__commentary_text(tree, ap, TL_IS_265);
- } else {
TextWeaver__commentary_text(tree, ap, TL_IS_266);
+ } else {
+ TextWeaver__commentary_text(tree, ap, TL_IS_267);
}
}
if (as_list == FALSE) {
if ((last_cited_in != P->under_section) && (last_cited_in))
- TextWeaver__commentary_text(tree, ap, TL_IS_267);
- TextWeaver__commentary_text(tree, ap, TL_IS_268);
+ TextWeaver__commentary_text(tree, ap, TL_IS_268);
+ TextWeaver__commentary_text(tree, ap, TL_IS_269);
}
}
@@ -21408,8 +21805,8 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
weave_order *wv = C->wv;
text_stream *code_in_comments_notation =
Bibliographic__get_datum(wv->weave_web->md,
- (in_code)?(TL_IS_275):(TL_IS_276));
- if (Str__ne(code_in_comments_notation, TL_IS_277))
+ (in_code)?(TL_IS_276):(TL_IS_277));
+ if (Str__ne(code_in_comments_notation, TL_IS_278))
{
#line 51 "inweb/Chapter 3/The Weaver of Text.w"
for (int i=0; i < Str__len(matter); i++) {
@@ -21434,8 +21831,8 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
int display_flag = TRUE;
text_stream *tex_notation = Bibliographic__get_datum(wv->weave_web->md,
- TL_IS_278);
- if (Str__ne(tex_notation, TL_IS_279))
+ TL_IS_279);
+ if (Str__ne(tex_notation, TL_IS_280))
{
#line 99 "inweb/Chapter 3/The Weaver of Text.w"
int N = Str__len(tex_notation);
@@ -21470,8 +21867,8 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
;
display_flag = FALSE;
tex_notation = Bibliographic__get_datum(wv->weave_web->md,
- TL_IS_280);
- if (Str__ne(tex_notation, TL_IS_281))
+ TL_IS_281);
+ if (Str__ne(tex_notation, TL_IS_282))
{
#line 99 "inweb/Chapter 3/The Weaver of Text.w"
int N = Str__len(tex_notation);
@@ -21506,8 +21903,8 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
;
text_stream *xref_notation = Bibliographic__get_datum(wv->weave_web->md,
- TL_IS_282);
- if (Str__ne(xref_notation, TL_IS_283))
+ TL_IS_283);
+ if (Str__ne(xref_notation, TL_IS_284))
{
#line 150 "inweb/Chapter 3/The Weaver of Text.w"
int N = Str__len(xref_notation);
@@ -21567,8 +21964,8 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
{
#line 68 "inweb/Chapter 3/The Weaver of Text.w"
for (int i=0; i < Str__len(matter); i++) {
- if ((Str__includes_at(matter, i, TL_IS_284)) ||
- (Str__includes_at(matter, i, TL_IS_285))) {
+ if ((Str__includes_at(matter, i, TL_IS_285)) ||
+ (Str__includes_at(matter, i, TL_IS_286))) {
TEMPORARY_TEXT(before)
Str__copy(before, matter); Str__truncate(before, i);
TEMPORARY_TEXT(after)
@@ -21616,7 +22013,7 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
Trees__make_child(WeaveTree__footnote_cue(tree, F->cue_text), ap);
TextWeaver__commentary_r(tree, ap, after, within, in_code);
} else {
- Main__error_in_web(TL_IS_286, wv->current_weave_line);
+ Main__error_in_web(TL_IS_287, wv->current_weave_line);
}
}
DISCARD_TEXT(before)
@@ -21670,8 +22067,8 @@ void TextWeaver__source_code(heterogeneous_tree *tree, tree_node *ap,
{
#line 261 "inweb/Chapter 3/The Weaver of Text.w"
- if ((Str__includes_at(matter, i, TL_IS_289)) ||
- (Str__includes_at(matter, i, TL_IS_290))) {
+ if ((Str__includes_at(matter, i, TL_IS_290)) ||
+ (Str__includes_at(matter, i, TL_IS_291))) {
TEMPORARY_TEXT(after)
Str__substr(after, Str__at(matter, i), Str__end(matter));
match_results mr = Regexp__create_mr();
@@ -21689,8 +22086,8 @@ void TextWeaver__source_code(heterogeneous_tree *tree, tree_node *ap,
#line 237 "inweb/Chapter 3/The Weaver of Text.w"
;
text_stream *xref_notation = Bibliographic__get_datum(wv->weave_web->md,
- TL_IS_287);
- if (Str__ne(xref_notation, TL_IS_288))
+ TL_IS_288);
+ if (Str__ne(xref_notation, TL_IS_289))
{
#line 277 "inweb/Chapter 3/The Weaver of Text.w"
@@ -21827,7 +22224,7 @@ void Tangler__tangle(web *W, tangle_target *target, filename *dest_file) {
{
#line 88 "inweb/Chapter 3/The Tangler.w"
- if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_291, L);
+ if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_292, L);
else Tags__open_ifdefs(OUT, L->owning_paragraph);
LanguageMethods__start_definition(OUT, lang,
L->text_operand,
@@ -21849,7 +22246,7 @@ void Tangler__tangle(web *W, tangle_target *target, filename *dest_file) {
{
#line 88 "inweb/Chapter 3/The Tangler.w"
- if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_291, L);
+ if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_292, L);
else Tags__open_ifdefs(OUT, L->owning_paragraph);
LanguageMethods__start_definition(OUT, lang,
L->text_operand,
@@ -22000,7 +22397,7 @@ void Tangler__tangle_line(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_292, L);
+ Main__error_in_web(TL_IS_293, L);
WRITE_TO(STDERR, "Macro is '%S'\n", temp);
LanguageMethods__comment(OUT, lang, temp); /* recover by putting macro name in comment */
}
@@ -22070,7 +22467,7 @@ programming_language *Languages__find_by_name(text_stream *lname, web *W,
#line 27 "inweb/Chapter 4/Programming Languages.w"
filename *F = NULL;
if (W) {
- pathname *P = Pathnames__down(W->md->path_to_web, TL_IS_293);
+ pathname *P = Pathnames__down(W->md->path_to_web, TL_IS_294);
{
#line 43 "inweb/Chapter 4/Programming Languages.w"
@@ -22120,7 +22517,7 @@ programming_language *Languages__find_by_name(text_stream *lname, web *W,
#line 54 "inweb/Chapter 4/Programming Languages.w"
programming_language *Languages__default(web *W) {
- return Languages__find_by_name(TL_IS_294, W, TRUE);
+ return Languages__find_by_name(TL_IS_295, W, TRUE);
}
void Languages__show(OUTPUT_STREAM) {
@@ -22162,7 +22559,7 @@ void Languages__read_definitions(pathname *P) {
}
pathname *Languages__default_directory(void) {
- return Pathnames__down(path_to_inweb, TL_IS_295);
+ return Pathnames__down(path_to_inweb, TL_IS_296);
}
#line 148 "inweb/Chapter 4/Programming Languages.w"
@@ -22222,7 +22619,7 @@ programming_language *Languages__read_definition(filename *F) {
{
#line 219 "inweb/Chapter 4/Programming Languages.w"
if (pl->C_like) CLike__make_c_like(pl);
- if (Str__eq(pl->language_name, TL_IS_296)) InCSupport__add_features(pl);
+ if (Str__eq(pl->language_name, TL_IS_297)) InCSupport__add_features(pl);
ACMESupport__add_fallbacks(pl);
}
@@ -22244,7 +22641,7 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp,
if (state->current_block)
{
#line 327 "inweb/Chapter 4/Programming Languages.w"
- if (Str__eq(line, TL_IS_328)) {
+ if (Str__eq(line, TL_IS_329)) {
state->current_block = state->current_block->parent;
} else if (Regexp__match(&mr, line, L"characters {")) {
colouring_rule *rule = Languages__new_rule(state->current_block);
@@ -22260,7 +22657,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);
wchar_t r = UNQUOTED_COLOUR;
- if (Str__ne(mr.exp[0], TL_IS_329)) r = Languages__colour(mr.exp[0], tfp);
+ if (Str__ne(mr.exp[0], TL_IS_330)) r = Languages__colour(mr.exp[0], tfp);
rule->execute_block = Languages__new_block(state->current_block, (int) r);
state->current_block = rule->execute_block;
} else if (Regexp__match(&mr, line, L"instances of (%c+) {")) {
@@ -22315,66 +22712,66 @@ 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_297)) pl->language_name = Languages__text(value, tfp, TRUE);
- else if (Str__eq(key, TL_IS_298))
- pl->language_details = Languages__text(value, tfp, TRUE);
+ if (Str__eq(key, TL_IS_298)) pl->language_name = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_299))
- pl->file_extension = Languages__text(value, tfp, TRUE);
+ pl->language_details = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_300))
- pl->line_comment = Languages__text(value, tfp, TRUE);
+ pl->file_extension = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_301))
- pl->whole_line_comment = Languages__text(value, tfp, TRUE);
+ pl->line_comment = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_302))
- pl->multiline_comment_open = Languages__text(value, tfp, TRUE);
+ pl->whole_line_comment = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_303))
- pl->multiline_comment_close = Languages__text(value, tfp, TRUE);
+ pl->multiline_comment_open = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_304))
- pl->string_literal = Languages__text(value, tfp, TRUE);
+ pl->multiline_comment_close = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_305))
- pl->string_literal_escape = Languages__text(value, tfp, TRUE);
+ pl->string_literal = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_306))
- pl->character_literal = Languages__text(value, tfp, TRUE);
+ pl->string_literal_escape = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_307))
- pl->character_literal_escape = Languages__text(value, tfp, TRUE);
+ pl->character_literal = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_308))
- pl->binary_literal_prefix = Languages__text(value, tfp, TRUE);
+ pl->character_literal_escape = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_309))
- pl->octal_literal_prefix = Languages__text(value, tfp, TRUE);
+ pl->binary_literal_prefix = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_310))
- pl->hexadecimal_literal_prefix = Languages__text(value, tfp, TRUE);
+ pl->octal_literal_prefix = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_311))
- pl->negative_literal_prefix = Languages__text(value, tfp, TRUE);
+ pl->hexadecimal_literal_prefix = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_312))
- pl->shebang = Languages__text(value, tfp, TRUE);
+ pl->negative_literal_prefix = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_313))
- pl->line_marker = Languages__text(value, tfp, TRUE);
+ pl->shebang = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_314))
- pl->before_macro_expansion = Languages__text(value, tfp, TRUE);
+ pl->line_marker = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_315))
- pl->after_macro_expansion = Languages__text(value, tfp, TRUE);
+ pl->before_macro_expansion = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_316))
- pl->start_definition = Languages__text(value, tfp, TRUE);
+ pl->after_macro_expansion = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_317))
- pl->prolong_definition = Languages__text(value, tfp, TRUE);
+ pl->start_definition = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_318))
- pl->end_definition = Languages__text(value, tfp, TRUE);
+ pl->prolong_definition = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_319))
- pl->start_ifdef = Languages__text(value, tfp, TRUE);
+ pl->end_definition = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_320))
- pl->start_ifndef = Languages__text(value, tfp, TRUE);
+ pl->start_ifdef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_321))
- pl->end_ifdef = Languages__text(value, tfp, TRUE);
+ pl->start_ifndef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_322))
- pl->end_ifndef = Languages__text(value, tfp, TRUE);
+ pl->end_ifdef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_323))
- pl->C_like = Languages__boolean(value, tfp);
+ pl->end_ifndef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_324))
- pl->suppress_disclaimer = Languages__boolean(value, tfp);
+ pl->C_like = Languages__boolean(value, tfp);
else if (Str__eq(key, TL_IS_325))
- pl->supports_namespaces = Languages__boolean(value, tfp);
+ pl->suppress_disclaimer = Languages__boolean(value, tfp);
else if (Str__eq(key, TL_IS_326))
- Languages__regexp(pl->function_notation, value, tfp);
+ pl->supports_namespaces = Languages__boolean(value, tfp);
else if (Str__eq(key, TL_IS_327))
+ Languages__regexp(pl->function_notation, value, tfp);
+ else if (Str__eq(key, TL_IS_328))
Languages__regexp(pl->type_notation, value, tfp);
else {
Errors__in_text_file("unknown property name before ':'", tfp);
@@ -22484,7 +22881,7 @@ void Languages__parse_rule(language_reader_state *state, text_stream *premiss,
{
#line 537 "inweb/Chapter 4/Programming Languages.w"
- if (Str__eq(action, TL_IS_330)) {
+ if (Str__eq(action, TL_IS_331)) {
rule->execute_block =
Languages__new_block(state->current_block, WHOLE_LINE_CRULE_RUN);
state->current_block = rule->execute_block;
@@ -22497,7 +22894,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_331)) {
+ } else if (Str__eq(action, TL_IS_332)) {
rule->debug = TRUE;
} else {
Errors__in_text_file("action after '=>' illegible", tfp);
@@ -22532,17 +22929,17 @@ wchar_t 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_332)) return STRING_COLOUR;
- else if (Str__eq(T, TL_IS_333)) return FUNCTION_COLOUR;
- else if (Str__eq(T, TL_IS_334)) return DEFINITION_COLOUR;
- else if (Str__eq(T, TL_IS_335)) return RESERVED_COLOUR;
- else if (Str__eq(T, TL_IS_336)) return ELEMENT_COLOUR;
- else if (Str__eq(T, TL_IS_337)) return IDENTIFIER_COLOUR;
- else if (Str__eq(T, TL_IS_338)) return CHARACTER_COLOUR;
- else if (Str__eq(T, TL_IS_339)) return CONSTANT_COLOUR;
- else if (Str__eq(T, TL_IS_340)) return PLAIN_COLOUR;
- else if (Str__eq(T, TL_IS_341)) return EXTRACT_COLOUR;
- else if (Str__eq(T, TL_IS_342)) return COMMENT_COLOUR;
+ if (Str__eq(T, TL_IS_333)) return STRING_COLOUR;
+ else if (Str__eq(T, TL_IS_334)) return FUNCTION_COLOUR;
+ else if (Str__eq(T, TL_IS_335)) return DEFINITION_COLOUR;
+ else if (Str__eq(T, TL_IS_336)) return RESERVED_COLOUR;
+ else if (Str__eq(T, TL_IS_337)) return ELEMENT_COLOUR;
+ else if (Str__eq(T, TL_IS_338)) return IDENTIFIER_COLOUR;
+ else if (Str__eq(T, TL_IS_339)) return CHARACTER_COLOUR;
+ else if (Str__eq(T, TL_IS_340)) return CONSTANT_COLOUR;
+ else if (Str__eq(T, TL_IS_341)) return PLAIN_COLOUR;
+ else if (Str__eq(T, TL_IS_342)) return EXTRACT_COLOUR;
+ else if (Str__eq(T, TL_IS_343)) return COMMENT_COLOUR;
else {
Errors__in_text_file("no such !colour", tfp);
return PLAIN_COLOUR;
@@ -22551,8 +22948,8 @@ wchar_t Languages__colour(text_stream *T, text_file_position *tfp) {
#line 628 "inweb/Chapter 4/Programming Languages.w"
int Languages__boolean(text_stream *T, text_file_position *tfp) {
- if (Str__eq(T, TL_IS_343)) return TRUE;
- else if (Str__eq(T, TL_IS_344)) return FALSE;
+ if (Str__eq(T, TL_IS_344)) return TRUE;
+ else if (Str__eq(T, TL_IS_345)) return FALSE;
else {
Errors__in_text_file("must be true or false", tfp);
return FALSE;
@@ -22610,7 +23007,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_345)) rw = TRUE;
if (Str__eq(V, TL_IS_346)) rw = TRUE;
if (Str__eq(V, TL_IS_347)) rw = TRUE;
if (Str__eq(V, TL_IS_348)) rw = TRUE;
@@ -22632,6 +23028,7 @@ text_stream *Languages__text(text_stream *T, text_file_position *tfp, int allow)
if (Str__eq(V, TL_IS_364)) rw = TRUE;
if (Str__eq(V, TL_IS_365)) rw = TRUE;
if (Str__eq(V, TL_IS_366)) rw = TRUE;
+ if (Str__eq(V, TL_IS_367)) rw = TRUE;
if (rw) {
TEMPORARY_TEXT(err)
@@ -22730,7 +23127,7 @@ language_type *Functions__new_struct(web *W, text_stream *name, source_line *L)
{
#line 40 "inweb/Chapter 4/Types and Functions.w"
- Tags__add_by_name(L->owning_paragraph, TL_IS_367);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_368);
ADD_TO_LINKED_LIST(str, language_type, W->language_types);
ADD_TO_LINKED_LIST(str, language_type, L->owning_paragraph->structures);
@@ -22843,7 +23240,7 @@ language_function *Functions__new_function(text_stream *fname, source_line *L) {
fn->within_namespace = TRUE;
} else if ((Str__eq_wide_string(fname, L"main")) &&
(Str__eq_wide_string(ambient_namespace, L"Main::")))
- declared_namespace = TL_IS_368;
+ declared_namespace = TL_IS_369;
if ((Str__ne(declared_namespace, ambient_namespace)) &&
(L->owning_paragraph->placed_very_early == FALSE)) {
TEMPORARY_TEXT(err_mess)
@@ -22956,7 +23353,7 @@ void LanguageMethods__disclaimer(text_stream *OUT, programming_language *pl, web
int rv = FALSE;
INT_METHOD_CALL_WITHOUT_ARGUMENTS(rv, pl, SUPPRESS_DISCLAIMER_TAN_MTID);
if (rv == FALSE)
- LanguageMethods__comment(OUT, pl, TL_IS_369);
+ LanguageMethods__comment(OUT, pl, TL_IS_370);
}
#line 127 "inweb/Chapter 4/Language Methods.w"
@@ -22979,7 +23376,7 @@ void LanguageMethods__start_definition(OUTPUT_STREAM, programming_language *pl,
int rv = FALSE;
INT_METHOD_CALL(rv, pl, START_DEFN_TAN_MTID, OUT, term, start, S, L);
if (rv == FALSE)
- Main__error_in_web(TL_IS_370, L);
+ Main__error_in_web(TL_IS_371, L);
}
void LanguageMethods__prolong_definition(OUTPUT_STREAM, programming_language *pl,
@@ -22987,7 +23384,7 @@ void LanguageMethods__prolong_definition(OUTPUT_STREAM, programming_language *pl
int rv = FALSE;
INT_METHOD_CALL(rv, pl, PROLONG_DEFN_TAN_MTID, OUT, more, S, L);
if (rv == FALSE)
- Main__error_in_web(TL_IS_371, L);
+ Main__error_in_web(TL_IS_372, L);
}
void LanguageMethods__end_definition(OUTPUT_STREAM, programming_language *pl,
@@ -23144,9 +23541,9 @@ int LanguageMethods__syntax_colour(programming_language *pl,
int rv = FALSE;
programming_language *colour_as = pl;
if (L->category == TEXT_EXTRACT_LCAT) colour_as = L->colour_as;
- theme_tag *T = Tags__find_by_name(TL_IS_372, FALSE);
+ theme_tag *T = Tags__find_by_name(TL_IS_373, FALSE);
if ((T) && (Tags__tagged_with(L->owning_paragraph, T))) {
- programming_language *prepl = Languages__find_by_name(TL_IS_373, wv->weave_web, FALSE);
+ programming_language *prepl = Languages__find_by_name(TL_IS_374, wv->weave_web, FALSE);
if ((L->category == PREFORM_LCAT) || (L->category == PREFORM_GRAMMAR_LCAT))
if (prepl) colour_as = prepl;
}
@@ -23485,7 +23882,7 @@ void ACMESupport__parse_functions(programming_language *self, web *W) {
#line 287 "inweb/Chapter 4/ACME Support.w"
void ACMESupport__post_analysis(programming_language *self, web *W) {
int check_namespaces = FALSE;
- if (Str__eq_wide_string(Bibliographic__get_datum(W->md, TL_IS_374), L"On"))
+ if (Str__eq_wide_string(Bibliographic__get_datum(W->md, TL_IS_375), L"On"))
check_namespaces = TRUE;
language_function *fn;
LOOP_OVER(fn, language_function) {
@@ -23505,11 +23902,11 @@ void ACMESupport__post_analysis(programming_language *self, web *W) {
&& (fn->call_freely == FALSE)) {
if (fn->within_namespace)
Main__error_in_web(
- TL_IS_375,
+ TL_IS_376,
fn->function_header_at);
else
Main__error_in_web(
- TL_IS_376,
+ TL_IS_377,
fn->function_header_at);
}
}
@@ -23984,7 +24381,7 @@ void CLike__parse_types(programming_language *self, web *W) {
if (Regexp__match(&mr, L->text, L"typedef struct (%i+) %c*{%c*")) {
current_str = Functions__new_struct(W, mr.exp[0], L);
- Tags__add_by_name(L->owning_paragraph, TL_IS_377);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_378);
} else if ((Str__get_first_char(L->text) == '}') && (current_str)) {
current_str->typedef_ends = L;
current_str = NULL;
@@ -24120,14 +24517,14 @@ void CLike__parse_functions(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_379, L);
+ Main__error_in_web(TL_IS_380, 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_380, L);
+ Main__error_in_web(TL_IS_381, L);
else
cc_sp--;
}
@@ -24221,7 +24618,7 @@ void CLike__parse_functions(programming_language *self, web *W) {
;
}
if (cc_sp > 0)
- Main__error_in_web(TL_IS_378, NULL);
+ Main__error_in_web(TL_IS_379, NULL);
}
#line 316 "inweb/Chapter 4/C-Like Languages.w"
@@ -24395,7 +24792,7 @@ void InCSupport__further_parsing(programming_language *self, web *W) {
{
#line 218 "inweb/Chapter 4/InC Support.w"
- Tags__add_by_name(L->owning_paragraph, TL_IS_381);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_382);
source_line *AL;
for (AL = L; (AL) && (AL->category == CODE_BODY_LCAT); AL = AL->next_line) {
if (Regexp__string_is_white_space(AL->text)) break;
@@ -24823,7 +25220,7 @@ void InCSupport__expand_formula(text_stream *OUT, source_line *AL, preform_nonte
(Str__get_at(formula, i+2) == '[') &&
(isdigit(Str__get_at(formula, i+3))) && (Str__get_at(formula, i+4) == ']')) {
if (pnt == NULL) {
- Main__error_in_web(TL_IS_382, AL);
+ Main__error_in_web(TL_IS_383, AL);
if (AL == NULL) WRITE_TO(STDERR, "%S\n", formula);
} else {
WRITE_TO(expanded,
@@ -24901,25 +25298,25 @@ void InCSupport__tangle_line_inner(text_stream *OUT, source_line *AL, preform_no
if (clauses == 1)
{
#line 764 "inweb/Chapter 4/InC Support.w"
- if (Str__eq(clause[0], TL_IS_384)) {
+ if (Str__eq(clause[0], TL_IS_385)) {
clause[1] = Str__new(); clauses = 2;
WRITE_TO(extra, "return FAIL_NONTERMINAL;");
Str__clear(clause[0]);
WRITE_TO(clause[0], "-");
WRITE_TO(clause[1], "-");
- } else if (Str__eq(clause[0], TL_IS_385)) {
- clause[1] = Str__new(); clauses = 2;
- WRITE_TO(extra, "return FALSE;");
- Str__clear(clause[0]);
- WRITE_TO(clause[0], "-");
- WRITE_TO(clause[1], "-");
} else if (Str__eq(clause[0], TL_IS_386)) {
clause[1] = Str__new(); clauses = 2;
WRITE_TO(extra, "return FALSE;");
Str__clear(clause[0]);
WRITE_TO(clause[0], "-");
WRITE_TO(clause[1], "-");
- } else if (Str__prefix_eq(clause[0], TL_IS_387, 8)) {
+ } else if (Str__eq(clause[0], TL_IS_387)) {
+ clause[1] = Str__new(); clauses = 2;
+ WRITE_TO(extra, "return FALSE;");
+ Str__clear(clause[0]);
+ WRITE_TO(clause[0], "-");
+ WRITE_TO(clause[1], "-");
+ } else if (Str__prefix_eq(clause[0], TL_IS_388, 8)) {
clause[1] = Str__new(); clauses = 2;
WRITE_TO(extra, "return FAIL_NONTERMINAL + ");
Str__substr(extra, Str__at(clause[0], 8), Str__end(clause[0]));
@@ -24927,7 +25324,7 @@ void InCSupport__tangle_line_inner(text_stream *OUT, source_line *AL, preform_no
Str__clear(clause[0]);
WRITE_TO(clause[0], "0");
WRITE_TO(clause[1], "NULL");
- } else if (Str__prefix_eq(clause[0], TL_IS_388, 5)) {
+ } else if (Str__prefix_eq(clause[0], TL_IS_389, 5)) {
clause[1] = Str__new(); clauses = 2;
TEMPORARY_TEXT(from)
Str__substr(from, Str__at(clause[0], 5), Str__end(clause[0]));
@@ -24935,7 +25332,7 @@ void InCSupport__tangle_line_inner(text_stream *OUT, source_line *AL, preform_no
WRITE_TO(clause[0], "R[%S]", from);
WRITE_TO(clause[1], "RP[%S]", from);
DISCARD_TEXT(from)
- } else if (Str__eq(clause[0], TL_IS_389)) {
+ } else if (Str__eq(clause[0], TL_IS_390)) {
clause[1] = Str__new(); clauses = 2;
Str__clear(clause[0]);
WRITE_TO(clause[0], "0");
@@ -24951,7 +25348,7 @@ void InCSupport__tangle_line_inner(text_stream *OUT, source_line *AL, preform_no
{
#line 814 "inweb/Chapter 4/InC Support.w"
for (int c=0; cntv_name, name))
@@ -25085,7 +25482,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(P, TL_IS_394);
+ filename *Syntax = Filenames__in(P, TL_IS_395);
text_stream TO_struct;
text_stream *OUT = &TO_struct;
@@ -25096,8 +25493,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_395))
- WRITE("language %S\n", Bibliographic__get_datum(W->md, TL_IS_396));
+ if (Bibliographic__data_exists(W->md, TL_IS_396))
+ WRITE("language %S\n", Bibliographic__get_datum(W->md, TL_IS_397));
{
@@ -25398,99 +25795,99 @@ tree_node_type *weave_maths_node_type = NULL;
heterogeneous_tree *WeaveTree__new_tree(weave_order *wv) {
if (weave_tree_type == NULL) {
- weave_tree_type = Trees__new_type(TL_IS_397, NULL);
+ weave_tree_type = Trees__new_type(TL_IS_398, NULL);
weave_document_node_type =
- Trees__new_node_type(TL_IS_398, weave_document_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_399, weave_document_node_CLASS, NULL);
weave_head_node_type =
- Trees__new_node_type(TL_IS_399, weave_head_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_400, weave_head_node_CLASS, NULL);
weave_body_node_type =
- Trees__new_node_type(TL_IS_400, weave_body_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_401, weave_body_node_CLASS, NULL);
weave_tail_node_type =
- Trees__new_node_type(TL_IS_401, weave_tail_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_402, weave_tail_node_CLASS, NULL);
weave_chapter_footer_node_type =
- Trees__new_node_type(TL_IS_402, weave_chapter_footer_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_403, weave_chapter_footer_node_CLASS, NULL);
weave_chapter_header_node_type =
- Trees__new_node_type(TL_IS_403, weave_chapter_header_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_404, weave_chapter_header_node_CLASS, NULL);
weave_section_footer_node_type =
- Trees__new_node_type(TL_IS_404, weave_section_footer_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_405, weave_section_footer_node_CLASS, NULL);
weave_section_header_node_type =
- Trees__new_node_type(TL_IS_405, weave_section_header_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_406, weave_section_header_node_CLASS, NULL);
weave_section_purpose_node_type =
- Trees__new_node_type(TL_IS_406, weave_section_purpose_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_407, weave_section_purpose_node_CLASS, NULL);
weave_subheading_node_type =
- Trees__new_node_type(TL_IS_407, weave_subheading_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_408, weave_subheading_node_CLASS, NULL);
weave_bar_node_type =
- Trees__new_node_type(TL_IS_408, weave_bar_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_409, weave_bar_node_CLASS, NULL);
weave_pagebreak_node_type =
- Trees__new_node_type(TL_IS_409, weave_pagebreak_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_410, weave_pagebreak_node_CLASS, NULL);
weave_linebreak_node_type =
- Trees__new_node_type(TL_IS_410, weave_linebreak_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_411, weave_linebreak_node_CLASS, NULL);
weave_paragraph_heading_node_type =
- Trees__new_node_type(TL_IS_411, weave_paragraph_heading_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_412, weave_paragraph_heading_node_CLASS, NULL);
weave_endnote_node_type =
- Trees__new_node_type(TL_IS_412, weave_endnote_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_413, weave_endnote_node_CLASS, NULL);
weave_figure_node_type =
- Trees__new_node_type(TL_IS_413, weave_figure_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_414, weave_figure_node_CLASS, NULL);
weave_audio_node_type =
- Trees__new_node_type(TL_IS_414, weave_audio_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_415, weave_audio_node_CLASS, NULL);
weave_video_node_type =
- Trees__new_node_type(TL_IS_415, weave_video_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_416, weave_video_node_CLASS, NULL);
weave_download_node_type =
- Trees__new_node_type(TL_IS_416, weave_download_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_417, weave_download_node_CLASS, NULL);
weave_material_node_type =
- Trees__new_node_type(TL_IS_417, weave_material_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_418, weave_material_node_CLASS, NULL);
weave_embed_node_type =
- Trees__new_node_type(TL_IS_418, weave_embed_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_419, weave_embed_node_CLASS, NULL);
weave_pmac_node_type =
- Trees__new_node_type(TL_IS_419, weave_pmac_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_420, weave_pmac_node_CLASS, NULL);
weave_vskip_node_type =
- Trees__new_node_type(TL_IS_420, weave_vskip_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_421, weave_vskip_node_CLASS, NULL);
weave_chapter_node_type =
- Trees__new_node_type(TL_IS_421, weave_chapter_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_422, weave_chapter_node_CLASS, NULL);
weave_section_node_type =
- Trees__new_node_type(TL_IS_422, weave_section_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_423, weave_section_node_CLASS, NULL);
weave_code_line_node_type =
- Trees__new_node_type(TL_IS_423, weave_code_line_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_424, weave_code_line_node_CLASS, NULL);
weave_function_usage_node_type =
- Trees__new_node_type(TL_IS_424, weave_function_usage_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_425, weave_function_usage_node_CLASS, NULL);
weave_commentary_node_type =
- Trees__new_node_type(TL_IS_425, weave_commentary_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_426, weave_commentary_node_CLASS, NULL);
weave_carousel_slide_node_type =
- Trees__new_node_type(TL_IS_426, weave_carousel_slide_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_427, weave_carousel_slide_node_CLASS, NULL);
weave_toc_node_type =
- Trees__new_node_type(TL_IS_427, weave_toc_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_428, weave_toc_node_CLASS, NULL);
weave_toc_line_node_type =
- Trees__new_node_type(TL_IS_428, weave_toc_line_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_429, weave_toc_line_node_CLASS, NULL);
weave_chapter_title_page_node_type =
- Trees__new_node_type(TL_IS_429, weave_chapter_title_page_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_430, weave_chapter_title_page_node_CLASS, NULL);
weave_defn_node_type =
- Trees__new_node_type(TL_IS_430, weave_defn_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_431, weave_defn_node_CLASS, NULL);
weave_source_code_node_type =
- Trees__new_node_type(TL_IS_431, weave_source_code_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_432, weave_source_code_node_CLASS, NULL);
weave_url_node_type =
- Trees__new_node_type(TL_IS_432, weave_url_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_433, weave_url_node_CLASS, NULL);
weave_footnote_cue_node_type =
- Trees__new_node_type(TL_IS_433, weave_footnote_cue_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_434, weave_footnote_cue_node_CLASS, NULL);
weave_begin_footnote_text_node_type =
- Trees__new_node_type(TL_IS_434, weave_begin_footnote_text_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_435, weave_begin_footnote_text_node_CLASS, NULL);
weave_display_line_node_type =
- Trees__new_node_type(TL_IS_435, weave_display_line_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_436, weave_display_line_node_CLASS, NULL);
weave_function_defn_node_type =
- Trees__new_node_type(TL_IS_436, weave_function_defn_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_437, weave_function_defn_node_CLASS, NULL);
weave_item_node_type =
- Trees__new_node_type(TL_IS_437, weave_item_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_438, weave_item_node_CLASS, NULL);
weave_grammar_index_node_type =
- Trees__new_node_type(TL_IS_438, weave_grammar_index_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_439, weave_grammar_index_node_CLASS, NULL);
weave_inline_node_type =
- Trees__new_node_type(TL_IS_439, weave_inline_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_440, weave_inline_node_CLASS, NULL);
weave_locale_node_type =
- Trees__new_node_type(TL_IS_440, weave_locale_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_441, weave_locale_node_CLASS, NULL);
weave_maths_node_type =
- Trees__new_node_type(TL_IS_441, weave_maths_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_442, weave_maths_node_CLASS, NULL);
weave_verbatim_node_type =
- Trees__new_node_type(TL_IS_442, weave_verbatim_node_CLASS, NULL);
+ Trees__new_node_type(TL_IS_443, weave_verbatim_node_CLASS, NULL);
}
heterogeneous_tree *tree = Trees__new(weave_tree_type);
Trees__make_root(tree, WeaveTree__document(tree, wv));
@@ -25922,7 +26319,7 @@ void Formats__render(text_stream *OUT, heterogeneous_tree *tree, filename *into)
filename *F = Patterns__find_template(C->wv->pattern, template);
TEMPORARY_TEXT(interior)
VOID_METHOD_CALL(wf, RENDER_FOR_MTID, interior, tree);
- Bibliographic__set_datum(C->wv->weave_web->md, TL_IS_443, interior);
+ Bibliographic__set_datum(C->wv->weave_web->md, TL_IS_444, interior);
if (F) Collater__for_order(OUT, C->wv, F, into);
else WRITE("%S", interior);
DISCARD_TEXT(interior)
@@ -25976,7 +26373,7 @@ int Formats__substitute_post_processing_data(OUTPUT_STREAM, weave_order *wv,
#line 9 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__create(void) {
- weave_format *wf = Formats__create_weave_format(TL_IS_444, TL_IS_445);
+ weave_format *wf = Formats__create_weave_format(TL_IS_445, TL_IS_446);
METHOD_ADD(wf, RENDER_FOR_MTID, PlainText__render);
}
@@ -26300,7 +26697,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
#line 9 "inweb/Chapter 5/TeX Format.w"
void TeX__create(void) {
- weave_format *wf = Formats__create_weave_format(TL_IS_446, TL_IS_447);
+ weave_format *wf = Formats__create_weave_format(TL_IS_447, TL_IS_448);
METHOD_ADD(wf, RENDER_FOR_MTID, TeX__render_TeX);
METHOD_ADD(wf, PREFORM_DOCUMENT_FOR_MTID, TeX__preform_document);
}
@@ -26378,7 +26775,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
{
#line 115 "inweb/Chapter 5/TeX Format.w"
weave_chapter_header_node *C = RETRIEVE_POINTER_weave_chapter_header_node(N->content);
- if (Str__ne(C->chap->md->ch_range, TL_IS_448)) {
+ if (Str__ne(C->chap->md->ch_range, TL_IS_449)) {
TeX__general_heading(OUT, trs->wv,
FIRST_IN_LINKED_LIST(section, C->chap->sections), NULL, C->chap->md->ch_title,
3, FALSE);
@@ -26452,7 +26849,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
weave_paragraph_heading_node *C =
RETRIEVE_POINTER_weave_paragraph_heading_node(N->content);
TeX__general_heading(OUT, trs->wv, C->para->under_section,
- C->para, TL_IS_449, 0, FALSE);
+ C->para, TL_IS_450, 0, FALSE);
}
#line 76 "inweb/Chapter 5/TeX Format.w"
@@ -26482,7 +26879,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
#line 172 "inweb/Chapter 5/TeX Format.w"
weave_figure_node *C = RETRIEVE_POINTER_weave_figure_node(N->content);
filename *F = Filenames__in(
- Pathnames__down(trs->wv->weave_web->md->path_to_web, TL_IS_450),
+ Pathnames__down(trs->wv->weave_web->md->path_to_web, TL_IS_451),
C->figname);
WRITE("\\pdfximage");
if (C->w >= 0) WRITE(" width %d cm{%f}\n", C->w/POINTS_PER_CM, F);
@@ -26889,23 +27286,23 @@ void TeX__general_heading(text_stream *OUT, weave_order *wv,
{
#line 443 "inweb/Chapter 5/TeX Format.w"
switch (weight) {
- case 0: TeX_macro = TL_IS_451; break;
- case 1: TeX_macro = TL_IS_452; break;
- case 2: TeX_macro = TL_IS_453; break;
- default: TeX_macro = TL_IS_454; break;
+ case 0: TeX_macro = TL_IS_452; break;
+ case 1: TeX_macro = TL_IS_453; break;
+ case 2: TeX_macro = TL_IS_454; break;
+ default: TeX_macro = TL_IS_455; break;
}
if (wv->theme_match) {
switch (weight) {
- case 0: TeX_macro = TL_IS_455; break;
- case 1: TeX_macro = TL_IS_456; break;
- case 2: TeX_macro = TL_IS_457; break;
- default: TeX_macro = TL_IS_458; break;
+ case 0: TeX_macro = TL_IS_456; break;
+ case 1: TeX_macro = TL_IS_457; break;
+ case 2: TeX_macro = TL_IS_458; break;
+ default: TeX_macro = TL_IS_459; break;
}
}
if (no_skip) {
switch (weight) {
- case 0: TeX_macro = TL_IS_459; break;
- case 1: TeX_macro = TL_IS_460; break;
+ case 0: TeX_macro = TL_IS_460; break;
+ case 1: TeX_macro = TL_IS_461; break;
}
}
@@ -27142,7 +27539,7 @@ void HTMLFormat__create(void) {
{
#line 15 "inweb/Chapter 5/HTML Formats.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_461, TL_IS_462);
+ weave_format *wf = Formats__create_weave_format(TL_IS_462, TL_IS_463);
METHOD_ADD(wf, RENDER_FOR_MTID, HTMLFormat__render);
}
@@ -27151,7 +27548,7 @@ void HTMLFormat__create(void) {
{
#line 19 "inweb/Chapter 5/HTML Formats.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_463, TL_IS_464);
+ weave_format *wf = Formats__create_weave_format(TL_IS_464, TL_IS_465);
METHOD_ADD(wf, RENDER_FOR_MTID, HTMLFormat__render_EPUB);
METHOD_ADD(wf, BEGIN_WEAVING_FOR_MTID, HTMLFormat__begin_weaving_EPUB);
METHOD_ADD(wf, END_WEAVING_FOR_MTID, HTMLFormat__end_weaving_EPUB);
@@ -27175,10 +27572,10 @@ HTML_render_state HTMLFormat__initial_state(text_stream *OUT, weave_order *wv,
hrs.carousel_number = 1;
hrs.slide_number = -1;
hrs.slide_of = -1;
- hrs.copy_rule = Assets__new_rule(NULL, TL_IS_465, TL_IS_466, NULL);
+ hrs.copy_rule = Assets__new_rule(NULL, TL_IS_466, TL_IS_467, NULL);
- Swarm__ensure_plugin(wv, TL_IS_467);
- hrs.colours = Swarm__ensure_colour_scheme(wv, TL_IS_468, TL_IS_469);
+ Swarm__ensure_plugin(wv, TL_IS_468);
+ hrs.colours = Swarm__ensure_colour_scheme(wv, TL_IS_469, TL_IS_470);
return hrs;
}
@@ -27195,7 +27592,7 @@ void HTMLFormat__render_EPUB(weave_format *self, text_stream *OUT, heterogeneous
HTML__declare_as_HTML(OUT, TRUE);
HTML_render_state hrs = HTMLFormat__initial_state(OUT, C->wv, TRUE, C->wv->weave_to);
Trees__traverse_from(tree->root, &HTMLFormat__render_visit, (void *) &hrs, 0);
- Epub__note_page(C->wv->weave_web->as_ebook, C->wv->weave_to, C->wv->booklet_title, TL_IS_470);
+ Epub__note_page(C->wv->weave_web->as_ebook, C->wv->weave_to, C->wv->booklet_title, TL_IS_471);
HTML__completed(OUT);
}
@@ -27252,16 +27649,16 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (hrs->EPUB_flag == FALSE) {
weave_section_header_node *C =
RETRIEVE_POINTER_weave_section_header_node(N->content);
- Swarm__ensure_plugin(hrs->wv, TL_IS_471);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_472);
HTML_OPEN_WITH("div", "class=\"breadcrumbs\"");
HTML_OPEN_WITH("ul", "class=\"crumbs\"");
Colonies__drop_initial_breadcrumbs(OUT,
hrs->wv->weave_to, hrs->wv->breadcrumbs);
- text_stream *bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_472);
- if (Str__len(Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_473)) > 0)
- bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_474);
+ text_stream *bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_473);
+ if (Str__len(Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_474)) > 0)
+ bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_475);
if (hrs->wv->self_contained == FALSE) {
- Colonies__write_breadcrumb(OUT, bct, TL_IS_475);
+ Colonies__write_breadcrumb(OUT, bct, TL_IS_476);
if (hrs->wv->weave_web->md->chaptered) {
TEMPORARY_TEXT(chapter_link)
WRITE_TO(chapter_link, "index.html#%s%S",
@@ -27324,7 +27721,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
chapter *Ch;
LOOP_OVER_LINKED_LIST(Ch, chapter, hrs->wv->weave_web->chapters) {
if (Ch->md->imported == FALSE) {
- if (Str__ne(Ch->md->ch_range, TL_IS_476)) {
+ if (Str__ne(Ch->md->ch_range, TL_IS_477)) {
if (Ch == C->sect->owning_chapter) {
HTML_OPEN_WITH("li", "class=\"progresscurrentchapter\"");
} else {
@@ -27355,7 +27752,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (on) PUT_TO(label, Str__get(pos));
}
if (Str__eq(Bibliographic__get_datum(hrs->wv->weave_web->md,
- TL_IS_477), TL_IS_478))
+ TL_IS_478), TL_IS_479))
Str__delete_first_character(label);
if (S == C->sect) {
HTML_OPEN_WITH("li", "class=\"progresscurrent\"");
@@ -27482,7 +27879,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
#line 317 "inweb/Chapter 5/HTML Formats.w"
weave_figure_node *C = RETRIEVE_POINTER_weave_figure_node(N->content);
filename *F = Filenames__in(
- Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_479),
+ Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_480),
C->figname);
filename *RF = Filenames__from_text(C->figname);
HTML_OPEN_WITH("p", "class=\"center-p\"");
@@ -27500,7 +27897,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
#line 330 "inweb/Chapter 5/HTML Formats.w"
weave_audio_node *C = RETRIEVE_POINTER_weave_audio_node(N->content);
filename *F = Filenames__in(
- Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_480),
+ Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_481),
C->audio_name);
Assets__include_asset(OUT, hrs->copy_rule, hrs->wv->weave_web, F, NULL,
hrs->wv->pattern, hrs->wv->weave_to);
@@ -27520,7 +27917,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
#line 345 "inweb/Chapter 5/HTML Formats.w"
weave_video_node *C = RETRIEVE_POINTER_weave_video_node(N->content);
filename *F = Filenames__in(
- Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_481),
+ Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_482),
C->video_name);
Assets__include_asset(OUT, hrs->copy_rule, hrs->wv->weave_web, F, NULL,
hrs->wv->pattern, hrs->wv->weave_to);
@@ -27546,14 +27943,14 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
{
#line 367 "inweb/Chapter 5/HTML Formats.w"
weave_download_node *C = RETRIEVE_POINTER_weave_download_node(N->content);
- pathname *P = Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_482);
+ pathname *P = Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_483);
filename *F = Filenames__in(P, C->download_name);
- filename *TF = Patterns__find_file_in_subdirectory(hrs->wv->pattern, TL_IS_483,
- TL_IS_484);
+ filename *TF = Patterns__find_file_in_subdirectory(hrs->wv->pattern, TL_IS_484,
+ TL_IS_485);
if (TF == NULL) {
- Main__error_in_web(TL_IS_485, hrs->wv->current_weave_line);
+ Main__error_in_web(TL_IS_486, hrs->wv->current_weave_line);
} else {
- Swarm__ensure_plugin(hrs->wv, TL_IS_486);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_487);
pathname *TOP =
Assets__include_asset(OUT, hrs->copy_rule, hrs->wv->weave_web, F, NULL,
hrs->wv->pattern, hrs->wv->weave_to);
@@ -27569,11 +27966,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
WRITE_TO(size, " (");
if (Str__len(C->filetype) > 0) WRITE_TO(size, "%S, ", C->filetype);
int x = 0, y = 0;
- text_stream *unit = TL_IS_491; x = N; y = 0;
- if (N > 1) { unit = TL_IS_492; }
- if (N >= 1024) { unit = TL_IS_493; x = 10*N/1024; y = x%10; x = x/10; }
- if (N >= 1024*1024) { unit = TL_IS_494; x = 10*N/1024/1024; y = x%10; x = x/10; }
- if (N >= 1024*1024*1024) { unit = TL_IS_495; x = 10*N/1024/1024/1024; y = x%10; x = x/10; }
+ text_stream *unit = TL_IS_492; x = N; y = 0;
+ if (N > 1) { unit = TL_IS_493; }
+ if (N >= 1024) { unit = TL_IS_494; x = 10*N/1024; y = x%10; x = x/10; }
+ if (N >= 1024*1024) { unit = TL_IS_495; x = 10*N/1024/1024; y = x%10; x = x/10; }
+ if (N >= 1024*1024*1024) { unit = TL_IS_496; x = 10*N/1024/1024/1024; y = x%10; x = x/10; }
WRITE_TO(size, "%d", x);
if (y > 0) WRITE_TO(size, ".%d", y);
WRITE_TO(size, "%S", unit);
@@ -27582,13 +27979,13 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
#line 385 "inweb/Chapter 5/HTML Formats.w"
- else Main__error_in_web(TL_IS_487,
+ else Main__error_in_web(TL_IS_488,
hrs->wv->current_weave_line);
filename *D = Filenames__from_text(C->download_name);
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_488,
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_489,
Filenames__get_leafname(D));
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_489, url);
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_490, size);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_490, url);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_491, size);
Collater__for_web_and_pattern(OUT, hrs->wv->weave_web, hrs->wv->pattern,
TF, hrs->into_file);
WRITE("\n");
@@ -27865,20 +28262,20 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
{
#line 544 "inweb/Chapter 5/HTML Formats.w"
weave_embed_node *C = RETRIEVE_POINTER_weave_embed_node(N->content);
- text_stream *CH = TL_IS_496;
- text_stream *CW = TL_IS_497;
+ text_stream *CH = TL_IS_497;
+ text_stream *CW = TL_IS_498;
if (C->w > 0) { Str__clear(CW); WRITE_TO(CW, "%d", C->w); }
if (C->h > 0) { Str__clear(CH); WRITE_TO(CH, "%d", C->h); }
TEMPORARY_TEXT(embed_leaf)
WRITE_TO(embed_leaf, "%S.html", C->service);
- filename *F = Patterns__find_file_in_subdirectory(hrs->wv->pattern, TL_IS_498, embed_leaf);
+ filename *F = Patterns__find_file_in_subdirectory(hrs->wv->pattern, TL_IS_499, embed_leaf);
DISCARD_TEXT(embed_leaf)
if (F == NULL) {
- Main__error_in_web(TL_IS_499, hrs->wv->current_weave_line);
+ Main__error_in_web(TL_IS_500, hrs->wv->current_weave_line);
} else {
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_500, C->ID);
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_501, CW);
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_502, CH);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_501, C->ID);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_502, CW);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_503, CH);
HTML_OPEN_WITH("p", "class=\"center-p\"");
Collater__for_web_and_pattern(OUT, hrs->wv->weave_web, hrs->wv->pattern,
F, hrs->into_file);
@@ -27898,7 +28295,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (C->defn == FALSE) {
TEMPORARY_TEXT(url)
Colonies__paragraph_URL(url, P, hrs->wv->weave_to);
- HTML__begin_link_with_class(OUT, TL_IS_503, url);
+ HTML__begin_link_with_class(OUT, TL_IS_504, url);
DISCARD_TEXT(url)
}
HTML_OPEN_WITH("span", "class=\"%s\"",
@@ -27958,7 +28355,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
{
#line 604 "inweb/Chapter 5/HTML Formats.w"
weave_function_usage_node *C = RETRIEVE_POINTER_weave_function_usage_node(N->content);
- HTML__begin_link_with_class(OUT, TL_IS_504, C->url);
+ HTML__begin_link_with_class(OUT, TL_IS_505, C->url);
HTMLFormat__change_colour(OUT, FUNCTION_COLOUR, hrs->colours);
WRITE("%S", C->fn->function_name);
HTMLFormat__change_colour(OUT, -1, hrs->colours);
@@ -27996,17 +28393,17 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
{
#line 632 "inweb/Chapter 5/HTML Formats.w"
weave_carousel_slide_node *C = RETRIEVE_POINTER_weave_carousel_slide_node(N->content);
- Swarm__ensure_plugin(hrs->wv, TL_IS_505);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_506);
TEMPORARY_TEXT(carousel_id)
TEMPORARY_TEXT(carousel_dots_id)
text_stream *caption_class = NULL;
- text_stream *slide_count_class = TL_IS_506;
+ text_stream *slide_count_class = TL_IS_507;
switch (C->caption_command) {
- case CAROUSEL_CMD: caption_class = TL_IS_507; break;
- case CAROUSEL_ABOVE_CMD: caption_class = TL_IS_508;
- slide_count_class = TL_IS_509; break;
- case CAROUSEL_BELOW_CMD: caption_class = TL_IS_510;
- slide_count_class = TL_IS_511; break;
+ case CAROUSEL_CMD: caption_class = TL_IS_508; break;
+ case CAROUSEL_ABOVE_CMD: caption_class = TL_IS_509;
+ slide_count_class = TL_IS_510; break;
+ case CAROUSEL_BELOW_CMD: caption_class = TL_IS_511;
+ slide_count_class = TL_IS_512; break;
}
WRITE_TO(carousel_id, "carousel-no-%d", hrs->carousel_number);
WRITE_TO(carousel_dots_id, "carousel-dots-no-%d", hrs->carousel_number);
@@ -28167,7 +28564,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
{
#line 758 "inweb/Chapter 5/HTML Formats.w"
weave_url_node *C = RETRIEVE_POINTER_weave_url_node(N->content);
- HTML__begin_link_with_class(OUT, (C->external)?TL_IS_512:TL_IS_513, C->url);
+ HTML__begin_link_with_class(OUT, (C->external)?TL_IS_513:TL_IS_514, C->url);
WRITE("%S", C->content);
HTML__end_link(OUT);
@@ -28247,7 +28644,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
weave_function_defn_node *C =
RETRIEVE_POINTER_weave_function_defn_node(N->content);
if ((Functions__used_elsewhere(C->fn)) && (hrs->EPUB_flag == FALSE)) {
- Swarm__ensure_plugin(hrs->wv, TL_IS_514);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_515);
HTMLFormat__change_colour(OUT, FUNCTION_COLOUR, hrs->colours);
WRITE("%S", C->fn->function_name);
WRITE(" ");
@@ -28289,7 +28686,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
{
#line 839 "inweb/Chapter 5/HTML Formats.w"
weave_item_node *C = RETRIEVE_POINTER_weave_item_node(N->content);
- if (Str__eq(C->label, TL_IS_515)) WRITE("● ");
+ if (Str__eq(C->label, TL_IS_516)) WRITE("● ");
else if (Str__len(C->label) > 0) WRITE("(%S) ", C->label);
else WRITE(" ");
@@ -28398,7 +28795,7 @@ void HTMLFormat__go_to_depth(HTML_render_state *hrs, int from_depth, int to_dept
void HTMLFormat__paragraph_number(text_stream *OUT, paragraph *P) {
TEMPORARY_TEXT(TEMP)
Colonies__paragraph_anchor(TEMP, P);
- HTML__anchor_with_class(OUT, TEMP, TL_IS_516);
+ HTML__anchor_with_class(OUT, TEMP, TL_IS_517);
DISCARD_TEXT(TEMP)
if (P->invisible == FALSE) {
HTML_OPEN("b");
@@ -28446,9 +28843,9 @@ void HTMLFormat__escape_text(text_stream *OUT, text_stream *id) {
#line 978 "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_517));
+ WRITE_TO(T, "%S", Bibliographic__get_datum(W->md, TL_IS_518));
W->as_ebook = Epub__new(T, "P");
- filename *CSS = Patterns__find_file_in_subdirectory(pattern, TL_IS_518, TL_IS_519);
+ filename *CSS = Patterns__find_file_in_subdirectory(pattern, TL_IS_519, TL_IS_520);
Epub__use_CSS_throughout(W->as_ebook, CSS);
Epub__attach_metadata(W->as_ebook, L"identifier", T);
DISCARD_TEXT(T)
@@ -28465,7 +28862,7 @@ void HTMLFormat__end_weaving_EPUB(weave_format *wf, web *W, weave_pattern *patte
#line 9 "inweb/Chapter 5/Debugging Format.w"
void Debugging__create(void) {
- weave_format *wf = Formats__create_weave_format(TL_IS_520, TL_IS_521);
+ weave_format *wf = Formats__create_weave_format(TL_IS_521, TL_IS_522);
METHOD_ADD(wf, RENDER_FOR_MTID, Debugging__render);
}
@@ -28939,7 +29336,7 @@ tex_results *TeXUtilities__new_results(weave_order *wv, filename *CF) {
res->tex_error_count = 0;
res->page_count = 0;
res->pdf_size = 0;
- res->PDF_filename = Filenames__set_extension(CF, TL_IS_522);
+ res->PDF_filename = Filenames__set_extension(CF, TL_IS_523);
return res;
}
@@ -29135,7 +29532,7 @@ void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int
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_523))
+ if (Str__eq(macro, TL_IS_524))
{
#line 364 "inweb/Chapter 5/TeX Utilities.w"
if (Str__get_at(text, i) == '\\') {
@@ -29143,8 +29540,8 @@ void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int
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_619)) PUT((wchar_t) 0x2204);
- else if (Str__eq(macro, TL_IS_620)) { PUT((wchar_t) 0x00AC); PUT((wchar_t) 0x2200); }
+ if (Str__eq(macro, TL_IS_620)) PUT((wchar_t) 0x2204);
+ else if (Str__eq(macro, TL_IS_621)) { PUT((wchar_t) 0x00AC); PUT((wchar_t) 0x2200); }
else {
PRINT("Don't know how to apply '\\not' to '\\%S'\n", macro);
}
@@ -29158,99 +29555,99 @@ void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int
else
{
#line 251 "inweb/Chapter 5/TeX Utilities.w"
- if (Str__eq(macro, TL_IS_524)) WRITE("<=");
- else if (Str__eq(macro, TL_IS_525)) WRITE(">=");
- else if (Str__eq(macro, TL_IS_526)) WRITE("~");
- else if (Str__eq(macro, TL_IS_527)) WRITE("");
+ if (Str__eq(macro, TL_IS_525)) WRITE("<=");
+ else if (Str__eq(macro, TL_IS_526)) WRITE(">=");
+ else if (Str__eq(macro, TL_IS_527)) WRITE("~");
else if (Str__eq(macro, TL_IS_528)) WRITE("");
else if (Str__eq(macro, TL_IS_529)) WRITE("");
- else if (Str__eq(macro, TL_IS_530)) WRITE("=>");
- else if (Str__eq(macro, TL_IS_531)) WRITE("<=>");
- else if (Str__eq(macro, TL_IS_532)) WRITE("-->");
+ else if (Str__eq(macro, TL_IS_530)) WRITE("");
+ else if (Str__eq(macro, TL_IS_531)) WRITE("=>");
+ else if (Str__eq(macro, TL_IS_532)) WRITE("<=>");
else if (Str__eq(macro, TL_IS_533)) WRITE("-->");
else if (Str__eq(macro, TL_IS_534)) WRITE("-->");
- else if (Str__eq(macro, TL_IS_535)) WRITE("<--");
+ else if (Str__eq(macro, TL_IS_535)) WRITE("-->");
else if (Str__eq(macro, TL_IS_536)) WRITE("<--");
- else if (Str__eq(macro, TL_IS_537)) WRITE("{");
- else if (Str__eq(macro, TL_IS_538)) WRITE("|");
- else if (Str__eq(macro, TL_IS_539)) WRITE("}");
- else if (Str__eq(macro, TL_IS_540)) WRITE(".");
- else if (Str__eq(macro, TL_IS_541)) WRITE("...");
+ else if (Str__eq(macro, TL_IS_537)) WRITE("<--");
+ else if (Str__eq(macro, TL_IS_538)) WRITE("{");
+ else if (Str__eq(macro, TL_IS_539)) WRITE("|");
+ else if (Str__eq(macro, TL_IS_540)) WRITE("}");
+ else if (Str__eq(macro, TL_IS_541)) WRITE(".");
else if (Str__eq(macro, TL_IS_542)) WRITE("...");
- else if (Str__eq(macro, TL_IS_543)) WRITE("*");
- else if (Str__eq(macro, TL_IS_544)) WRITE(" ");
- else if (Str__eq(macro, TL_IS_545)) WRITE(" ");
- else if (Str__eq(macro, TL_IS_546)) WRITE("TeX");
- else if (Str__eq(macro, TL_IS_547)) WRITE("!=");
+ else if (Str__eq(macro, TL_IS_543)) WRITE("...");
+ else if (Str__eq(macro, TL_IS_544)) WRITE("*");
+ else if (Str__eq(macro, TL_IS_545)) WRITE(" ");
+ else if (Str__eq(macro, TL_IS_546)) WRITE(" ");
+ else if (Str__eq(macro, TL_IS_547)) WRITE("TeX");
else if (Str__eq(macro, TL_IS_548)) WRITE("!=");
- else if (Str__eq(macro, TL_IS_549)) WRITE("l");
- else if (Str__eq(macro, TL_IS_550)) WRITE("log");
- else if (Str__eq(macro, TL_IS_551)) WRITE("exp");
- else if (Str__eq(macro, TL_IS_552)) WRITE("sin");
- else if (Str__eq(macro, TL_IS_553)) WRITE("cos");
- else if (Str__eq(macro, TL_IS_554)) WRITE("tan");
- else if (Str__eq(macro, TL_IS_555)) WRITE("T");
- else if (Str__eq(macro, TL_IS_556)) PUT((wchar_t) 0x0391);
- else if (Str__eq(macro, TL_IS_557)) PUT((wchar_t) 0x0392);
- else if (Str__eq(macro, TL_IS_558)) PUT((wchar_t) 0x0393);
- else if (Str__eq(macro, TL_IS_559)) PUT((wchar_t) 0x0394);
- else if (Str__eq(macro, TL_IS_560)) PUT((wchar_t) 0x0395);
- else if (Str__eq(macro, TL_IS_561)) PUT((wchar_t) 0x0396);
- else if (Str__eq(macro, TL_IS_562)) PUT((wchar_t) 0x0397);
- else if (Str__eq(macro, TL_IS_563)) PUT((wchar_t) 0x0398);
- else if (Str__eq(macro, TL_IS_564)) PUT((wchar_t) 0x0399);
- else if (Str__eq(macro, TL_IS_565)) PUT((wchar_t) 0x039A);
- else if (Str__eq(macro, TL_IS_566)) PUT((wchar_t) 0x039B);
- else if (Str__eq(macro, TL_IS_567)) PUT((wchar_t) 0x039C);
- else if (Str__eq(macro, TL_IS_568)) PUT((wchar_t) 0x039D);
- else if (Str__eq(macro, TL_IS_569)) PUT((wchar_t) 0x039E);
- else if (Str__eq(macro, TL_IS_570)) PUT((wchar_t) 0x039F);
- else if (Str__eq(macro, TL_IS_571)) PUT((wchar_t) 0x03A0);
- else if (Str__eq(macro, TL_IS_572)) PUT((wchar_t) 0x03A1);
- else if (Str__eq(macro, TL_IS_573)) PUT((wchar_t) 0x03A2);
- else if (Str__eq(macro, TL_IS_574)) PUT((wchar_t) 0x03A3);
- else if (Str__eq(macro, TL_IS_575)) PUT((wchar_t) 0x03A4);
- else if (Str__eq(macro, TL_IS_576)) PUT((wchar_t) 0x03A5);
- else if (Str__eq(macro, TL_IS_577)) PUT((wchar_t) 0x03A6);
- else if (Str__eq(macro, TL_IS_578)) PUT((wchar_t) 0x03A7);
- else if (Str__eq(macro, TL_IS_579)) PUT((wchar_t) 0x03A8);
- else if (Str__eq(macro, TL_IS_580)) PUT((wchar_t) 0x03A9);
- else if (Str__eq(macro, TL_IS_581)) PUT((wchar_t) 0x03B1);
- else if (Str__eq(macro, TL_IS_582)) PUT((wchar_t) 0x03B2);
- else if (Str__eq(macro, TL_IS_583)) PUT((wchar_t) 0x03B3);
- else if (Str__eq(macro, TL_IS_584)) PUT((wchar_t) 0x03B4);
- else if (Str__eq(macro, TL_IS_585)) PUT((wchar_t) 0x03B5);
- else if (Str__eq(macro, TL_IS_586)) PUT((wchar_t) 0x03B6);
- else if (Str__eq(macro, TL_IS_587)) PUT((wchar_t) 0x03B7);
- else if (Str__eq(macro, TL_IS_588)) PUT((wchar_t) 0x03B8);
- else if (Str__eq(macro, TL_IS_589)) PUT((wchar_t) 0x03B9);
- else if (Str__eq(macro, TL_IS_590)) PUT((wchar_t) 0x03BA);
- else if (Str__eq(macro, TL_IS_591)) PUT((wchar_t) 0x03BB);
- else if (Str__eq(macro, TL_IS_592)) PUT((wchar_t) 0x03BC);
- else if (Str__eq(macro, TL_IS_593)) PUT((wchar_t) 0x03BD);
- else if (Str__eq(macro, TL_IS_594)) PUT((wchar_t) 0x03BE);
- else if (Str__eq(macro, TL_IS_595)) PUT((wchar_t) 0x03BF);
- else if (Str__eq(macro, TL_IS_596)) PUT((wchar_t) 0x03C0);
- else if (Str__eq(macro, TL_IS_597)) PUT((wchar_t) 0x03C1);
- else if (Str__eq(macro, TL_IS_598)) PUT((wchar_t) 0x03C2);
- else if (Str__eq(macro, TL_IS_599)) PUT((wchar_t) 0x03C3);
- else if (Str__eq(macro, TL_IS_600)) PUT((wchar_t) 0x03C4);
- else if (Str__eq(macro, TL_IS_601)) PUT((wchar_t) 0x03C5);
- else if (Str__eq(macro, TL_IS_602)) PUT((wchar_t) 0x03C6);
- else if (Str__eq(macro, TL_IS_603)) PUT((wchar_t) 0x03C7);
- else if (Str__eq(macro, TL_IS_604)) PUT((wchar_t) 0x03C8);
- else if (Str__eq(macro, TL_IS_605)) PUT((wchar_t) 0x03C9);
- else if (Str__eq(macro, TL_IS_606)) PUT((wchar_t) 0x2203);
- else if (Str__eq(macro, TL_IS_607)) PUT((wchar_t) 0x2208);
- else if (Str__eq(macro, TL_IS_608)) PUT((wchar_t) 0x2200);
- else if (Str__eq(macro, TL_IS_609)) PUT((wchar_t) 0x2229);
- else if (Str__eq(macro, TL_IS_610)) PUT((wchar_t) 0x2205);
- else if (Str__eq(macro, TL_IS_611)) PUT((wchar_t) 0x2286);
- else if (Str__eq(macro, TL_IS_612)) PUT((wchar_t) 0x2227);
- else if (Str__eq(macro, TL_IS_613)) PUT((wchar_t) 0x2228);
- else if (Str__eq(macro, TL_IS_614)) PUT((wchar_t) 0x00AC);
- else if (Str__eq(macro, TL_IS_615)) PUT((wchar_t) 0x03A3);
- else if (Str__eq(macro, TL_IS_616)) PUT((wchar_t) 0x03A0);
+ else if (Str__eq(macro, TL_IS_549)) WRITE("!=");
+ else if (Str__eq(macro, TL_IS_550)) WRITE("l");
+ else if (Str__eq(macro, TL_IS_551)) WRITE("log");
+ else if (Str__eq(macro, TL_IS_552)) WRITE("exp");
+ else if (Str__eq(macro, TL_IS_553)) WRITE("sin");
+ else if (Str__eq(macro, TL_IS_554)) WRITE("cos");
+ else if (Str__eq(macro, TL_IS_555)) WRITE("tan");
+ else if (Str__eq(macro, TL_IS_556)) WRITE("T");
+ else if (Str__eq(macro, TL_IS_557)) PUT((wchar_t) 0x0391);
+ else if (Str__eq(macro, TL_IS_558)) PUT((wchar_t) 0x0392);
+ else if (Str__eq(macro, TL_IS_559)) PUT((wchar_t) 0x0393);
+ else if (Str__eq(macro, TL_IS_560)) PUT((wchar_t) 0x0394);
+ else if (Str__eq(macro, TL_IS_561)) PUT((wchar_t) 0x0395);
+ else if (Str__eq(macro, TL_IS_562)) PUT((wchar_t) 0x0396);
+ else if (Str__eq(macro, TL_IS_563)) PUT((wchar_t) 0x0397);
+ else if (Str__eq(macro, TL_IS_564)) PUT((wchar_t) 0x0398);
+ else if (Str__eq(macro, TL_IS_565)) PUT((wchar_t) 0x0399);
+ else if (Str__eq(macro, TL_IS_566)) PUT((wchar_t) 0x039A);
+ else if (Str__eq(macro, TL_IS_567)) PUT((wchar_t) 0x039B);
+ else if (Str__eq(macro, TL_IS_568)) PUT((wchar_t) 0x039C);
+ else if (Str__eq(macro, TL_IS_569)) PUT((wchar_t) 0x039D);
+ else if (Str__eq(macro, TL_IS_570)) PUT((wchar_t) 0x039E);
+ else if (Str__eq(macro, TL_IS_571)) PUT((wchar_t) 0x039F);
+ else if (Str__eq(macro, TL_IS_572)) PUT((wchar_t) 0x03A0);
+ else if (Str__eq(macro, TL_IS_573)) PUT((wchar_t) 0x03A1);
+ else if (Str__eq(macro, TL_IS_574)) PUT((wchar_t) 0x03A2);
+ else if (Str__eq(macro, TL_IS_575)) PUT((wchar_t) 0x03A3);
+ else if (Str__eq(macro, TL_IS_576)) PUT((wchar_t) 0x03A4);
+ else if (Str__eq(macro, TL_IS_577)) PUT((wchar_t) 0x03A5);
+ else if (Str__eq(macro, TL_IS_578)) PUT((wchar_t) 0x03A6);
+ else if (Str__eq(macro, TL_IS_579)) PUT((wchar_t) 0x03A7);
+ else if (Str__eq(macro, TL_IS_580)) PUT((wchar_t) 0x03A8);
+ else if (Str__eq(macro, TL_IS_581)) PUT((wchar_t) 0x03A9);
+ else if (Str__eq(macro, TL_IS_582)) PUT((wchar_t) 0x03B1);
+ else if (Str__eq(macro, TL_IS_583)) PUT((wchar_t) 0x03B2);
+ else if (Str__eq(macro, TL_IS_584)) PUT((wchar_t) 0x03B3);
+ else if (Str__eq(macro, TL_IS_585)) PUT((wchar_t) 0x03B4);
+ else if (Str__eq(macro, TL_IS_586)) PUT((wchar_t) 0x03B5);
+ else if (Str__eq(macro, TL_IS_587)) PUT((wchar_t) 0x03B6);
+ else if (Str__eq(macro, TL_IS_588)) PUT((wchar_t) 0x03B7);
+ else if (Str__eq(macro, TL_IS_589)) PUT((wchar_t) 0x03B8);
+ else if (Str__eq(macro, TL_IS_590)) PUT((wchar_t) 0x03B9);
+ else if (Str__eq(macro, TL_IS_591)) PUT((wchar_t) 0x03BA);
+ else if (Str__eq(macro, TL_IS_592)) PUT((wchar_t) 0x03BB);
+ else if (Str__eq(macro, TL_IS_593)) PUT((wchar_t) 0x03BC);
+ else if (Str__eq(macro, TL_IS_594)) PUT((wchar_t) 0x03BD);
+ else if (Str__eq(macro, TL_IS_595)) PUT((wchar_t) 0x03BE);
+ else if (Str__eq(macro, TL_IS_596)) PUT((wchar_t) 0x03BF);
+ else if (Str__eq(macro, TL_IS_597)) PUT((wchar_t) 0x03C0);
+ else if (Str__eq(macro, TL_IS_598)) PUT((wchar_t) 0x03C1);
+ else if (Str__eq(macro, TL_IS_599)) PUT((wchar_t) 0x03C2);
+ else if (Str__eq(macro, TL_IS_600)) PUT((wchar_t) 0x03C3);
+ else if (Str__eq(macro, TL_IS_601)) PUT((wchar_t) 0x03C4);
+ else if (Str__eq(macro, TL_IS_602)) PUT((wchar_t) 0x03C5);
+ else if (Str__eq(macro, TL_IS_603)) PUT((wchar_t) 0x03C6);
+ else if (Str__eq(macro, TL_IS_604)) PUT((wchar_t) 0x03C7);
+ else if (Str__eq(macro, TL_IS_605)) PUT((wchar_t) 0x03C8);
+ else if (Str__eq(macro, TL_IS_606)) PUT((wchar_t) 0x03C9);
+ else if (Str__eq(macro, TL_IS_607)) PUT((wchar_t) 0x2203);
+ else if (Str__eq(macro, TL_IS_608)) PUT((wchar_t) 0x2208);
+ else if (Str__eq(macro, TL_IS_609)) PUT((wchar_t) 0x2200);
+ else if (Str__eq(macro, TL_IS_610)) PUT((wchar_t) 0x2229);
+ else if (Str__eq(macro, TL_IS_611)) PUT((wchar_t) 0x2205);
+ else if (Str__eq(macro, TL_IS_612)) PUT((wchar_t) 0x2286);
+ else if (Str__eq(macro, TL_IS_613)) PUT((wchar_t) 0x2227);
+ else if (Str__eq(macro, TL_IS_614)) PUT((wchar_t) 0x2228);
+ else if (Str__eq(macro, TL_IS_615)) PUT((wchar_t) 0x00AC);
+ else if (Str__eq(macro, TL_IS_616)) PUT((wchar_t) 0x03A3);
+ else if (Str__eq(macro, TL_IS_617)) PUT((wchar_t) 0x03A0);
else {
if (Str__len(macro) > 0) {
int suspect = TRUE;
@@ -29260,8 +29657,8 @@ void TeXUtilities__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int
if ((c >= 'a') && (c <= 'z')) continue;
suspect = FALSE;
}
- if (Str__eq(macro, TL_IS_617)) suspect = FALSE;
if (Str__eq(macro, TL_IS_618)) suspect = FALSE;
+ if (Str__eq(macro, TL_IS_619)) suspect = FALSE;
if (suspect)
PRINT("[Passing through unknown TeX macro \\%S:\n %S\n", macro, text);
}
@@ -29418,7 +29815,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_621, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_622);
+ Makefiles__repeat(OUT, TL_IS_622, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_623);
WRITE("%S\n", mr.exp[2]);
MS->last_line_was_blank = FALSE;
Regexp__dispose_of(&mr);
@@ -29440,7 +29837,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_621, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_622);
+ Makefiles__repeat(OUT, TL_IS_622, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_623);
WRITE("%S\n", mr.exp[2]);
MS->last_line_was_blank = FALSE;
Regexp__dispose_of(&mr);
@@ -29462,7 +29859,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_621, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_622);
+ Makefiles__repeat(OUT, TL_IS_622, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_623);
WRITE("%S\n", mr.exp[2]);
MS->last_line_was_blank = FALSE;
Regexp__dispose_of(&mr);
@@ -29480,7 +29877,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__down(Pathnames__up(path_to_inweb), TL_IS_624);
+ pathname *path_to_intest = Pathnames__down(Pathnames__up(path_to_inweb), TL_IS_625);
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));
@@ -29497,7 +29894,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(path_to_inweb, TL_IS_623);
+ filename *prototype = Filenames__in(path_to_inweb, TL_IS_624);
MS->allow_commands = FALSE;
TextFiles__read(prototype, FALSE, "can't open make settings file",
TRUE, Makefiles__scan_makefile_line, NULL, MS);
@@ -29784,7 +30181,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_625)) || (Str__eq(tag, M->module_tag)))) {
+ ((Str__eq(tag, TL_IS_626)) || (Str__eq(tag, M->module_tag)))) {
if ((prefix) && ((c++ > 0) || (every_time))) WRITE("%S", prefix);
if (matter) {
TEMPORARY_TEXT(line)
@@ -29838,7 +30235,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(path_to_inweb_materials, TL_IS_626);
+ Filenames__in(path_to_inweb_materials, TL_IS_627);
TextFiles__read(prototype, FALSE, "can't open make settings file",
TRUE, Git__copy_gitignore_line, NULL, MS);
Regexp__dispose_of(&mr);
@@ -29873,7 +30270,7 @@ void Ctags__write(web *W, filename *F) {
P = Filenames__up(F);
} else {
P = W->md->path_to_web;
- F = Filenames__in(P, TL_IS_627);
+ F = Filenames__in(P, TL_IS_628);
}
text_stream *OUT = &ctags_file;
if (STREAM_OPEN_TO_FILE(OUT, F, UTF8_ENC) == FALSE)
@@ -29979,11 +30376,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_628, NULL, NULL);
+ macro *V = Readme__new_macro(TL_IS_629, NULL, NULL);
ADD_TO_LINKED_LIST(V, macro, ws.known_macros);
- macro *P = Readme__new_macro(TL_IS_629, NULL, NULL);
+ macro *P = Readme__new_macro(TL_IS_630, NULL, NULL);
ADD_TO_LINKED_LIST(P, macro, ws.known_macros);
- macro *A = Readme__new_macro(TL_IS_630, NULL, NULL);
+ macro *A = Readme__new_macro(TL_IS_631, NULL, NULL);
ADD_TO_LINKED_LIST(A, macro, ws.known_macros);
ws.stack_frame = NULL;
text_stream file_to;
@@ -30019,7 +30416,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_631, tfp);
+ Readme__expand_material(ws, OUT, TL_IS_632, tfp);
}
Regexp__dispose_of(&mr);
}
@@ -30150,26 +30547,11 @@ 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_632))
+ if (Str__eq(M->name, TL_IS_633))
{
#line 215 "inweb/Chapter 6/Readme Writeme.w"
if (ws->stack_frame->no_pars != 1)
Errors__in_text_file("@version takes 1 parameter", tfp);
- else {
- TEMPORARY_TEXT(program)
- Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp);
- Readme__write_var(OUT, program, TL_IS_635);
- DISCARD_TEXT(program)
- }
-
-}
-#line 205 "inweb/Chapter 6/Readme Writeme.w"
-
- else if (Str__eq(M->name, TL_IS_633))
-{
-#line 225 "inweb/Chapter 6/Readme Writeme.w"
- if (ws->stack_frame->no_pars != 1)
- Errors__in_text_file("@purpose takes 1 parameter", tfp);
else {
TEMPORARY_TEXT(program)
Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp);
@@ -30178,10 +30560,25 @@ void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file
}
}
-#line 206 "inweb/Chapter 6/Readme Writeme.w"
+#line 205 "inweb/Chapter 6/Readme Writeme.w"
else if (Str__eq(M->name, TL_IS_634))
{
+#line 225 "inweb/Chapter 6/Readme Writeme.w"
+ if (ws->stack_frame->no_pars != 1)
+ Errors__in_text_file("@purpose takes 1 parameter", tfp);
+ else {
+ TEMPORARY_TEXT(program)
+ Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp);
+ Readme__write_var(OUT, program, TL_IS_637);
+ DISCARD_TEXT(program)
+ }
+
+}
+#line 206 "inweb/Chapter 6/Readme Writeme.w"
+
+ else if (Str__eq(M->name, TL_IS_635))
+{
#line 235 "inweb/Chapter 6/Readme Writeme.w"
if (ws->stack_frame->no_pars != 2)
Errors__in_text_file("@var takes 2 parameters", tfp);
@@ -30209,8 +30606,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_637)) WRITE("%S", A->date);
- else if (Str__eq(datum, TL_IS_638)) WRITE("%S", A->version);
+ else if (Str__eq(datum, TL_IS_638)) WRITE("%S", A->date);
+ else if (Str__eq(datum, TL_IS_639)) WRITE("%S", A->version);
}
#line 273 "inweb/Chapter 6/Readme Writeme.w"
@@ -30241,7 +30638,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(
- Pathnames__down(Pathnames__from_text(program), TL_IS_639), TL_IS_640);
+ Pathnames__down(Pathnames__from_text(program), TL_IS_640), TL_IS_641);
if (TextFiles__exists(I6_vn))
{
#line 310 "inweb/Chapter 6/Readme Writeme.w"
@@ -30251,7 +30648,7 @@ writeme_asset *Readme__find_asset(text_stream *program) {
}
#line 295 "inweb/Chapter 6/Readme Writeme.w"
;
- filename *template_vn = Filenames__in(Pathnames__from_text(program), TL_IS_641);
+ filename *template_vn = Filenames__in(Pathnames__from_text(program), TL_IS_642);
if (TextFiles__exists(template_vn))
{
#line 314 "inweb/Chapter 6/Readme Writeme.w"
@@ -30261,7 +30658,7 @@ writeme_asset *Readme__find_asset(text_stream *program) {
}
#line 297 "inweb/Chapter 6/Readme Writeme.w"
;
- filename *rmt_vn = Filenames__in(Pathnames__from_text(program), TL_IS_642);
+ filename *rmt_vn = Filenames__in(Pathnames__from_text(program), TL_IS_643);
if (TextFiles__exists(rmt_vn))
{
#line 318 "inweb/Chapter 6/Readme Writeme.w"
@@ -30271,7 +30668,7 @@ writeme_asset *Readme__find_asset(text_stream *program) {
}
#line 299 "inweb/Chapter 6/Readme Writeme.w"
;
- rmt_vn = Filenames__in(Pathnames__from_text(program), TL_IS_643);
+ rmt_vn = Filenames__in(Pathnames__from_text(program), TL_IS_644);
if (TextFiles__exists(rmt_vn))
{
#line 318 "inweb/Chapter 6/Readme Writeme.w"
@@ -30346,7 +30743,7 @@ void Readme__readme_harvester(text_stream *text, text_file_position *tfp, void *
void Colonies__load(filename *F) {
colony *C = CREATE(colony);
C->members = NEW_LINKED_LIST(colony_member);
- C->home = TL_IS_644;
+ C->home = TL_IS_645;
C->assets_path = NULL;
C->patterns_path = NULL;
colony_reader_state crs;
@@ -30370,8 +30767,8 @@ void Colonies__read_line(text_stream *line, text_file_position *tfp, void *v_crs
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, line, L"(%c*?): \"*(%C+)\" at \"(%c*)\" in \"(%c*)\"")) {
colony_member *CM = CREATE(colony_member);
- if (Str__eq(mr.exp[0], TL_IS_645)) CM->web_rather_than_module = TRUE;
- else if (Str__eq(mr.exp[0], TL_IS_646)) CM->web_rather_than_module = FALSE;
+ if (Str__eq(mr.exp[0], TL_IS_646)) CM->web_rather_than_module = TRUE;
+ else if (Str__eq(mr.exp[0], TL_IS_647)) CM->web_rather_than_module = FALSE;
else {
CM->web_rather_than_module = FALSE;
Errors__in_text_file("text before ':' must be 'web' or 'module'", tfp);
@@ -30379,7 +30776,7 @@ void Colonies__read_line(text_stream *line, text_file_position *tfp, void *v_crs
CM->name = Str__duplicate(mr.exp[1]);
CM->path = Str__duplicate(mr.exp[2]);
CM->home_leaf = Str__new();
- if (Str__suffix_eq(CM->path, TL_IS_647, 6)) {
+ if (Str__suffix_eq(CM->path, TL_IS_648, 6)) {
filename *F = Filenames__from_text(CM->path);
Filenames__write_unextended_leafname(CM->home_leaf, F);
WRITE_TO(CM->home_leaf, ".html");
@@ -30519,7 +30916,7 @@ module *Colonies__as_module(colony_member *CM, source_line *L, web_md *Wm) {
#line 254 "inweb/Chapter 6/Colonies.w"
filename *F = NULL;
pathname *P = NULL;
- if (Str__suffix_eq(CM->path, TL_IS_648, 6))
+ if (Str__suffix_eq(CM->path, TL_IS_649, 6))
F = Filenames__from_text(CM->path);
else
P = Pathnames__from_text(CM->path);
@@ -30546,7 +30943,7 @@ text_stream *Colonies__home(void) {
colony *C;
LOOP_OVER(C, colony)
return C->home;
- return TL_IS_649;
+ return TL_IS_650;
}
pathname *Colonies__assets_path(void) {
@@ -30737,7 +31134,7 @@ int Colonies__resolve_reference_in_weave_inner(text_stream *url, text_stream *ti
return FALSE;
}
if (N > 1) {
- Main__error_in_web(TL_IS_650, L);
+ Main__error_in_web(TL_IS_651, L);
WebModules__named_reference(&found_M, &found_Sm, &bare_module_name,
title, search_M, text, TRUE, FALSE);
return FALSE;
@@ -30819,7 +31216,7 @@ void Colonies__paragraph_URL(OUTPUT_STREAM, paragraph *P, filename *from) {
if (P == NULL) internal_error("no para");
section *to_S = P->under_section;
module *to_M = to_S->md->owning_module;
- if (Str__ne(to_M->module_name, TL_IS_651)) {
+ if (Str__ne(to_M->module_name, TL_IS_652)) {
colony_member *to_C = Colonies__find(to_M->module_name);
if (to_C) {
pathname *from_path = Filenames__up(from);
@@ -30935,569 +31332,570 @@ void register_tangled_text_literals(void) {
TL_IS_84 = Str__literal(L"Prerelease");
TL_IS_85 = Str__literal(L"Build Number");
TL_IS_86 = Str__literal(L"Semantic Version Number");
- TL_IS_87 = Str__literal(L"inweb");
- TL_IS_88 = Str__literal(L"Patterns");
- TL_IS_89 = Str__literal(L"Materials");
- TL_IS_90 = Str__literal(L"makescript.txt");
- TL_IS_91 = Str__literal(L"gitignorescript.txt");
- TL_IS_92 = Str__literal(L"READMEscript.txt");
- TL_IS_93 = Str__literal(L"Short Title");
+ TL_IS_87 = Str__literal(L"Sections");
+ TL_IS_88 = Str__literal(L"inweb");
+ TL_IS_89 = Str__literal(L"Patterns");
+ TL_IS_90 = Str__literal(L"Materials");
+ TL_IS_91 = Str__literal(L"makescript.txt");
+ TL_IS_92 = Str__literal(L"gitignorescript.txt");
+ TL_IS_93 = Str__literal(L"READMEscript.txt");
TL_IS_94 = Str__literal(L"Short Title");
- TL_IS_95 = Str__literal(L"Title");
- TL_IS_96 = Str__literal(L"0");
- TL_IS_97 = Str__literal(L"for locating programming language definitions");
- TL_IS_98 = Str__literal(L"for analysing a web");
- TL_IS_99 = Str__literal(L"for weaving a web");
- TL_IS_100 = Str__literal(L"for tangling a web");
- TL_IS_101 = Str__literal(L"for dealing with colonies of webs together");
- TL_IS_102 = Str__literal(L".inweb");
- TL_IS_103 = Str__literal(L"0");
- TL_IS_104 = Str__literal(L"Title");
- TL_IS_105 = Str__literal(L"Booklet Title");
- TL_IS_106 = Str__literal(L"Colours");
+ TL_IS_95 = Str__literal(L"Short Title");
+ TL_IS_96 = Str__literal(L"Title");
+ TL_IS_97 = Str__literal(L"0");
+ TL_IS_98 = Str__literal(L"for locating programming language definitions");
+ TL_IS_99 = Str__literal(L"for analysing a web");
+ TL_IS_100 = Str__literal(L"for weaving a web");
+ TL_IS_101 = Str__literal(L"for tangling a web");
+ TL_IS_102 = Str__literal(L"for dealing with colonies of webs together");
+ TL_IS_103 = Str__literal(L".inweb");
+ TL_IS_104 = Str__literal(L"0");
+ TL_IS_105 = Str__literal(L"Title");
+ TL_IS_106 = Str__literal(L"Booklet Title");
TL_IS_107 = Str__literal(L"Colours");
- TL_IS_108 = Str__literal(L"");
- TL_IS_109 = Str__literal(L"Version Number");
+ TL_IS_108 = Str__literal(L"Colours");
+ TL_IS_109 = Str__literal(L"");
TL_IS_110 = Str__literal(L"Version Number");
- TL_IS_111 = Str__literal(L" ");
- TL_IS_112 = Str__literal(L"template-index.html");
- TL_IS_113 = Str__literal(L"index.html");
- TL_IS_114 = Str__literal(L"Index");
- TL_IS_115 = Str__literal(L"index");
- TL_IS_116 = Str__literal(L"0");
- TL_IS_117 = Str__literal(L"pattern.txt");
- TL_IS_118 = Str__literal(L"Patterns");
- TL_IS_119 = Str__literal(L"pattern.txt");
+ TL_IS_111 = Str__literal(L"Version Number");
+ TL_IS_112 = Str__literal(L" ");
+ TL_IS_113 = Str__literal(L"template-index.html");
+ TL_IS_114 = Str__literal(L"index.html");
+ TL_IS_115 = Str__literal(L"Index");
+ TL_IS_116 = Str__literal(L"index");
+ TL_IS_117 = Str__literal(L"0");
+ TL_IS_118 = Str__literal(L"pattern.txt");
+ TL_IS_119 = Str__literal(L"Patterns");
TL_IS_120 = Str__literal(L"pattern.txt");
- TL_IS_121 = Str__literal(L"name");
- TL_IS_122 = Str__literal(L"plugin");
- TL_IS_123 = Str__literal(L"format");
- TL_IS_124 = Str__literal(L"number sections");
- TL_IS_125 = Str__literal(L"default range");
- TL_IS_126 = Str__literal(L"initial extension");
- TL_IS_127 = Str__literal(L"mathematics plugin");
- TL_IS_128 = Str__literal(L"footnotes plugin");
- TL_IS_129 = Str__literal(L"block template");
- TL_IS_130 = Str__literal(L"command");
- TL_IS_131 = Str__literal(L"bibliographic data");
- TL_IS_132 = Str__literal(L"assets");
- TL_IS_133 = Str__literal(L"yes");
- TL_IS_134 = Str__literal(L"no");
- TL_IS_135 = Str__literal(L"none");
- TL_IS_136 = Str__literal(L"WOVENPATH");
- TL_IS_137 = Str__literal(L"WOVEN");
- TL_IS_138 = Str__literal(L"PROCESS ");
- TL_IS_139 = Str__literal(L"Colouring");
- TL_IS_140 = Str__literal(L"Coloring");
- TL_IS_141 = Str__literal(L"Colouring");
- TL_IS_142 = Str__literal(L"Coloring");
- TL_IS_143 = Str__literal(L"");
- TL_IS_144 = Str__literal(L"copy");
+ TL_IS_121 = Str__literal(L"pattern.txt");
+ TL_IS_122 = Str__literal(L"name");
+ TL_IS_123 = Str__literal(L"plugin");
+ TL_IS_124 = Str__literal(L"format");
+ TL_IS_125 = Str__literal(L"number sections");
+ TL_IS_126 = Str__literal(L"default range");
+ TL_IS_127 = Str__literal(L"initial extension");
+ TL_IS_128 = Str__literal(L"mathematics plugin");
+ TL_IS_129 = Str__literal(L"footnotes plugin");
+ TL_IS_130 = Str__literal(L"block template");
+ TL_IS_131 = Str__literal(L"command");
+ TL_IS_132 = Str__literal(L"bibliographic data");
+ TL_IS_133 = Str__literal(L"assets");
+ TL_IS_134 = Str__literal(L"yes");
+ TL_IS_135 = Str__literal(L"no");
+ TL_IS_136 = Str__literal(L"none");
+ TL_IS_137 = Str__literal(L"WOVENPATH");
+ TL_IS_138 = Str__literal(L"WOVEN");
+ TL_IS_139 = Str__literal(L"PROCESS ");
+ TL_IS_140 = Str__literal(L"Colouring");
+ TL_IS_141 = Str__literal(L"Coloring");
+ TL_IS_142 = Str__literal(L"Colouring");
+ TL_IS_143 = Str__literal(L"Coloring");
+ TL_IS_144 = Str__literal(L"");
TL_IS_145 = Str__literal(L"copy");
- TL_IS_146 = Str__literal(L"private copy");
- TL_IS_147 = Str__literal(L"embed");
- TL_IS_148 = Str__literal(L"collate");
- TL_IS_149 = Str__literal(L"prefix");
- TL_IS_150 = Str__literal(L"suffix");
- TL_IS_151 = Str__literal(L"transform names");
- TL_IS_152 = Str__literal(L"");
- TL_IS_153 = Str__literal(L"URL");
+ TL_IS_146 = Str__literal(L"copy");
+ TL_IS_147 = Str__literal(L"private copy");
+ TL_IS_148 = Str__literal(L"embed");
+ TL_IS_149 = Str__literal(L"collate");
+ TL_IS_150 = Str__literal(L"prefix");
+ TL_IS_151 = Str__literal(L"suffix");
+ TL_IS_152 = Str__literal(L"transform names");
+ TL_IS_153 = Str__literal(L"");
TL_IS_154 = Str__literal(L"URL");
- TL_IS_155 = Str__literal(L"Inweb Version");
- TL_IS_156 = Str__literal(L"Language");
- TL_IS_157 = Str__literal(L"Purpose");
- TL_IS_158 = Str__literal(L"Woven");
- TL_IS_159 = Str__literal(L"Tangled");
- TL_IS_160 = Str__literal(L"Title");
- TL_IS_161 = Str__literal(L"");
- TL_IS_162 = Str__literal(L"=");
- TL_IS_163 = Str__literal(L"@");
- TL_IS_164 = Str__literal(L"Figures");
- TL_IS_165 = Str__literal(L"unknown [[command]]");
- TL_IS_166 = Str__literal(L"<...> definition begins outside of a paragraph");
- TL_IS_167 = Str__literal(L"(very early code)");
- TL_IS_168 = Str__literal(L"(early code)");
- TL_IS_169 = Str__literal(L"Extracts");
- TL_IS_170 = Str__literal(L"Figures");
- TL_IS_171 = Str__literal(L"Audio");
- TL_IS_172 = Str__literal(L"Video");
- TL_IS_173 = Str__literal(L"Download");
+ TL_IS_155 = Str__literal(L"URL");
+ TL_IS_156 = Str__literal(L"Inweb Version");
+ TL_IS_157 = Str__literal(L"Language");
+ TL_IS_158 = Str__literal(L"Purpose");
+ TL_IS_159 = Str__literal(L"Woven");
+ TL_IS_160 = Str__literal(L"Tangled");
+ TL_IS_161 = Str__literal(L"Title");
+ TL_IS_162 = Str__literal(L"");
+ TL_IS_163 = Str__literal(L"=");
+ TL_IS_164 = Str__literal(L"@");
+ TL_IS_165 = Str__literal(L"Figures");
+ TL_IS_166 = Str__literal(L"unknown [[command]]");
+ TL_IS_167 = Str__literal(L"<...> definition begins outside of a paragraph");
+ TL_IS_168 = Str__literal(L"(very early code)");
+ TL_IS_169 = Str__literal(L"(early code)");
+ TL_IS_170 = Str__literal(L"Extracts");
+ TL_IS_171 = Str__literal(L"Figures");
+ TL_IS_172 = Str__literal(L"Audio");
+ TL_IS_173 = Str__literal(L"Video");
TL_IS_174 = Str__literal(L"Download");
- TL_IS_175 = Str__literal(L"Carousels");
+ TL_IS_175 = Str__literal(L"Download");
TL_IS_176 = Str__literal(L"Carousels");
TL_IS_177 = Str__literal(L"Carousels");
TL_IS_178 = Str__literal(L"Carousels");
TL_IS_179 = Str__literal(L"Carousels");
- TL_IS_180 = Str__literal(L"Videos");
- TL_IS_181 = Str__literal(L"unknown bracketed annotation");
- TL_IS_182 = Str__literal(L"unknown material after '='");
- TL_IS_183 = Str__literal(L"undisplayed");
- TL_IS_184 = Str__literal(L"hyperlinked");
- TL_IS_185 = Str__literal(L"only 'undisplayed' and/or 'hyperlinked' can precede 'text' here");
- TL_IS_186 = Str__literal(L"=");
- TL_IS_187 = Str__literal(L"don't understand @command");
- TL_IS_188 = Str__literal(L"Purpose used after bar");
- TL_IS_189 = Str__literal(L"Interface used after bar");
- TL_IS_190 = Str__literal(L"Definitions used after bar");
- TL_IS_191 = Str__literal(L"second bar in the same section");
- TL_IS_192 = Str__literal(L"enumeration constants can't supply a value");
- TL_IS_193 = Str__literal(L"Paragraph Numbers Visibility");
- TL_IS_194 = Str__literal(L"Off");
- TL_IS_195 = Str__literal(L"P");
- TL_IS_196 = Str__literal(L"S");
- TL_IS_197 = Str__literal(L"Footnote Begins Notation");
- TL_IS_198 = Str__literal(L"Footnote Ends Notation");
- TL_IS_199 = Str__literal(L"Off");
- TL_IS_200 = Str__literal(L"ifdef-");
- TL_IS_201 = Str__literal(L"ifndef-");
- TL_IS_202 = Str__literal(L".");
- TL_IS_203 = Str__literal(L"This paragraph is used only if ");
- TL_IS_204 = Str__literal(L" and if ");
- TL_IS_205 = Str__literal(L" and ");
- TL_IS_206 = Str__literal(L" is");
- TL_IS_207 = Str__literal(L" are");
- TL_IS_208 = Str__literal(L" defined");
- TL_IS_209 = Str__literal(L" undefined");
- TL_IS_210 = Str__literal(L"enumeration constants must belong to a _FAMILY");
- TL_IS_211 = Str__literal(L"this enumeration _FAMILY is unknown");
- TL_IS_212 = Str__literal(L"this enumeration _FAMILY already exists");
- TL_IS_213 = Str__literal(L"unrecognised interface line");
- TL_IS_214 = Str__literal(L"makescript.txt");
+ TL_IS_180 = Str__literal(L"Carousels");
+ TL_IS_181 = Str__literal(L"Videos");
+ TL_IS_182 = Str__literal(L"unknown bracketed annotation");
+ TL_IS_183 = Str__literal(L"unknown material after '='");
+ TL_IS_184 = Str__literal(L"undisplayed");
+ TL_IS_185 = Str__literal(L"hyperlinked");
+ TL_IS_186 = Str__literal(L"only 'undisplayed' and/or 'hyperlinked' can precede 'text' here");
+ TL_IS_187 = Str__literal(L"=");
+ TL_IS_188 = Str__literal(L"don't understand @command");
+ TL_IS_189 = Str__literal(L"Purpose used after bar");
+ TL_IS_190 = Str__literal(L"Interface used after bar");
+ TL_IS_191 = Str__literal(L"Definitions used after bar");
+ TL_IS_192 = Str__literal(L"second bar in the same section");
+ TL_IS_193 = Str__literal(L"enumeration constants can't supply a value");
+ TL_IS_194 = Str__literal(L"Paragraph Numbers Visibility");
+ TL_IS_195 = Str__literal(L"Off");
+ TL_IS_196 = Str__literal(L"P");
+ TL_IS_197 = Str__literal(L"S");
+ TL_IS_198 = Str__literal(L"Footnote Begins Notation");
+ TL_IS_199 = Str__literal(L"Footnote Ends Notation");
+ TL_IS_200 = Str__literal(L"Off");
+ TL_IS_201 = Str__literal(L"ifdef-");
+ TL_IS_202 = Str__literal(L"ifndef-");
+ TL_IS_203 = Str__literal(L".");
+ TL_IS_204 = Str__literal(L"This paragraph is used only if ");
+ TL_IS_205 = Str__literal(L" and if ");
+ TL_IS_206 = Str__literal(L" and ");
+ TL_IS_207 = Str__literal(L" is");
+ TL_IS_208 = Str__literal(L" are");
+ TL_IS_209 = Str__literal(L" defined");
+ TL_IS_210 = Str__literal(L" undefined");
+ TL_IS_211 = Str__literal(L"enumeration constants must belong to a _FAMILY");
+ TL_IS_212 = Str__literal(L"this enumeration _FAMILY is unknown");
+ TL_IS_213 = Str__literal(L"this enumeration _FAMILY already exists");
+ TL_IS_214 = Str__literal(L"unrecognised interface line");
TL_IS_215 = Str__literal(L"makescript.txt");
- TL_IS_216 = Str__literal(L"gitignorescript.txt");
+ TL_IS_216 = Str__literal(L"makescript.txt");
TL_IS_217 = Str__literal(L"gitignorescript.txt");
- TL_IS_218 = Str__literal(L"");
- TL_IS_219 = Str__literal(L"Chapters");
- TL_IS_220 = Str__literal(L"Modules");
- TL_IS_221 = Str__literal(L"Module Page");
- TL_IS_222 = Str__literal(L"Module Purpose");
- TL_IS_223 = Str__literal(L"Purpose");
- TL_IS_224 = Str__literal(L"Chapter Purpose");
- TL_IS_225 = Str__literal(L"Section Purpose");
- TL_IS_226 = Str__literal(L"Purpose");
- TL_IS_227 = Str__literal(L"index.html");
- TL_IS_228 = Str__literal(L"inweb");
+ TL_IS_218 = Str__literal(L"gitignorescript.txt");
+ TL_IS_219 = Str__literal(L"");
+ TL_IS_220 = Str__literal(L"Chapters");
+ TL_IS_221 = Str__literal(L"Modules");
+ TL_IS_222 = Str__literal(L"Module Page");
+ TL_IS_223 = Str__literal(L"Module Purpose");
+ TL_IS_224 = Str__literal(L"Purpose");
+ TL_IS_225 = Str__literal(L"Chapter Purpose");
+ TL_IS_226 = Str__literal(L"Section Purpose");
+ TL_IS_227 = Str__literal(L"Purpose");
+ TL_IS_228 = Str__literal(L"index.html");
TL_IS_229 = Str__literal(L"inweb");
TL_IS_230 = Str__literal(L"inweb");
- TL_IS_231 = Str__literal(L"End of weave");
- TL_IS_232 = Str__literal(L"Definitions");
- TL_IS_233 = Str__literal(L"bad start to paragraph");
- TL_IS_234 = Str__literal(L"");
+ TL_IS_231 = Str__literal(L"inweb");
+ TL_IS_232 = Str__literal(L"End of weave");
+ TL_IS_233 = Str__literal(L"Definitions");
+ TL_IS_234 = Str__literal(L"bad start to paragraph");
TL_IS_235 = Str__literal(L"");
- TL_IS_236 = Str__literal(L"footnote never cued");
- TL_IS_237 = Str__literal(L"Preform");
+ TL_IS_236 = Str__literal(L"");
+ TL_IS_237 = Str__literal(L"footnote never cued");
TL_IS_238 = Str__literal(L"Preform");
- TL_IS_239 = Str__literal(L"define");
- TL_IS_240 = Str__literal(L"default");
- TL_IS_241 = Str__literal(L"enum");
- TL_IS_242 = Str__literal(L"Preform");
- TL_IS_243 = Str__literal(L"This is ");
- TL_IS_244 = Str__literal(L"words: About Preform");
- TL_IS_245 = Str__literal(L"Preform grammar");
+ TL_IS_239 = Str__literal(L"Preform");
+ TL_IS_240 = Str__literal(L"define");
+ TL_IS_241 = Str__literal(L"default");
+ TL_IS_242 = Str__literal(L"enum");
+ TL_IS_243 = Str__literal(L"Preform");
+ TL_IS_244 = Str__literal(L"This is ");
+ TL_IS_245 = Str__literal(L"words: About Preform");
TL_IS_246 = Str__literal(L"Preform grammar");
- TL_IS_247 = Str__literal(L", not regular C code.");
- TL_IS_248 = Str__literal(L"This code is ");
- TL_IS_249 = Str__literal(L"never used");
- TL_IS_250 = Str__literal(L", ");
- TL_IS_251 = Str__literal(L" and ");
- TL_IS_252 = Str__literal(L"used in ");
- TL_IS_253 = Str__literal(L" (twice)");
- TL_IS_254 = Str__literal(L" (three times)");
- TL_IS_255 = Str__literal(L" (four times)");
- TL_IS_256 = Str__literal(L" (five times)");
- TL_IS_257 = Str__literal(L".");
- TL_IS_258 = Str__literal(L"The structure ");
- TL_IS_259 = Str__literal(L" is private to this section");
- TL_IS_260 = Str__literal(L" is accessed in ");
- TL_IS_261 = Str__literal(L", ");
- TL_IS_262 = Str__literal(L" and here");
- TL_IS_263 = Str__literal(L".");
- TL_IS_264 = Str__literal(L"The function ");
- TL_IS_265 = Str__literal(L" appears nowhere else");
- TL_IS_266 = Str__literal(L"none");
- TL_IS_267 = Str__literal(L")");
- TL_IS_268 = Str__literal(L".");
- TL_IS_269 = Str__literal(L" is used in ");
- TL_IS_270 = Str__literal(L"), ");
- TL_IS_271 = Str__literal(L", ");
- TL_IS_272 = Str__literal(L" (");
- TL_IS_273 = Str__literal(L" - ");
- TL_IS_274 = Str__literal(L", ");
- TL_IS_275 = Str__literal(L"Code In Code Comments Notation");
- TL_IS_276 = Str__literal(L"Code In Commentary Notation");
- TL_IS_277 = Str__literal(L"Off");
- TL_IS_278 = Str__literal(L"TeX Mathematics Displayed Notation");
- TL_IS_279 = Str__literal(L"Off");
- TL_IS_280 = Str__literal(L"TeX Mathematics Notation");
- TL_IS_281 = Str__literal(L"Off");
- TL_IS_282 = Str__literal(L"Cross-References Notation");
- TL_IS_283 = Str__literal(L"Off");
- TL_IS_284 = Str__literal(L"http://");
- TL_IS_285 = Str__literal(L"https://");
- TL_IS_286 = Str__literal(L"this is a cue for a missing note");
- TL_IS_287 = Str__literal(L"Cross-References Notation");
- TL_IS_288 = Str__literal(L"Off");
- TL_IS_289 = Str__literal(L"http://");
- TL_IS_290 = Str__literal(L"https://");
- TL_IS_291 = Str__literal(L"misplaced definition");
- TL_IS_292 = Str__literal(L"unknown macro");
- TL_IS_293 = Str__literal(L"Dialects");
- TL_IS_294 = Str__literal(L"C");
- TL_IS_295 = Str__literal(L"Languages");
- TL_IS_296 = Str__literal(L"InC");
- TL_IS_297 = Str__literal(L"Name");
- TL_IS_298 = Str__literal(L"Details");
- TL_IS_299 = Str__literal(L"Extension");
- TL_IS_300 = Str__literal(L"Line Comment");
- TL_IS_301 = Str__literal(L"Whole Line Comment");
- TL_IS_302 = Str__literal(L"Multiline Comment Open");
- TL_IS_303 = Str__literal(L"Multiline Comment Close");
- TL_IS_304 = Str__literal(L"String Literal");
- TL_IS_305 = Str__literal(L"String Literal Escape");
- TL_IS_306 = Str__literal(L"Character Literal");
- TL_IS_307 = Str__literal(L"Character Literal Escape");
- TL_IS_308 = Str__literal(L"Binary Literal Prefix");
- TL_IS_309 = Str__literal(L"Octal Literal Prefix");
- TL_IS_310 = Str__literal(L"Hexadecimal Literal Prefix");
- TL_IS_311 = Str__literal(L"Negative Literal Prefix");
- TL_IS_312 = Str__literal(L"Shebang");
- TL_IS_313 = Str__literal(L"Line Marker");
- TL_IS_314 = Str__literal(L"Before Named Paragraph Expansion");
- TL_IS_315 = Str__literal(L"After Named Paragraph Expansion");
- TL_IS_316 = Str__literal(L"Start Definition");
- TL_IS_317 = Str__literal(L"Prolong Definition");
- TL_IS_318 = Str__literal(L"End Definition");
- TL_IS_319 = Str__literal(L"Start Ifdef");
- TL_IS_320 = Str__literal(L"Start Ifndef");
- TL_IS_321 = Str__literal(L"End Ifdef");
- TL_IS_322 = Str__literal(L"End Ifndef");
- TL_IS_323 = Str__literal(L"C-Like");
- TL_IS_324 = Str__literal(L"Suppress Disclaimer");
- TL_IS_325 = Str__literal(L"Supports Namespaces");
- TL_IS_326 = Str__literal(L"Function Declaration Notation");
- TL_IS_327 = Str__literal(L"Type Declaration Notation");
- TL_IS_328 = Str__literal(L"}");
- TL_IS_329 = Str__literal(L"unquoted");
- TL_IS_330 = Str__literal(L"{");
- TL_IS_331 = Str__literal(L"debug");
- TL_IS_332 = Str__literal(L"!string");
- TL_IS_333 = Str__literal(L"!function");
- TL_IS_334 = Str__literal(L"!definition");
- TL_IS_335 = Str__literal(L"!reserved");
- TL_IS_336 = Str__literal(L"!element");
- TL_IS_337 = Str__literal(L"!identifier");
- TL_IS_338 = Str__literal(L"!character");
- TL_IS_339 = Str__literal(L"!constant");
- TL_IS_340 = Str__literal(L"!plain");
- TL_IS_341 = Str__literal(L"!extract");
- TL_IS_342 = Str__literal(L"!comment");
- TL_IS_343 = Str__literal(L"true");
- TL_IS_344 = Str__literal(L"false");
- TL_IS_345 = Str__literal(L"both");
- TL_IS_346 = Str__literal(L"brackets");
- TL_IS_347 = Str__literal(L"characters");
- TL_IS_348 = Str__literal(L"coloured");
- TL_IS_349 = Str__literal(L"colouring");
- TL_IS_350 = Str__literal(L"debug");
- TL_IS_351 = Str__literal(L"false");
- TL_IS_352 = Str__literal(L"in");
- TL_IS_353 = Str__literal(L"instances");
- TL_IS_354 = Str__literal(L"keyword");
- TL_IS_355 = Str__literal(L"matches");
- TL_IS_356 = Str__literal(L"matching");
- TL_IS_357 = Str__literal(L"not");
- TL_IS_358 = Str__literal(L"of");
- TL_IS_359 = Str__literal(L"on");
- TL_IS_360 = Str__literal(L"optionally");
- TL_IS_361 = Str__literal(L"prefix");
- TL_IS_362 = Str__literal(L"runs");
- TL_IS_363 = Str__literal(L"spaced");
- TL_IS_364 = Str__literal(L"suffix");
- TL_IS_365 = Str__literal(L"true");
- TL_IS_366 = Str__literal(L"unquoted");
- TL_IS_367 = Str__literal(L"Structures");
- TL_IS_368 = Str__literal(L"Main::");
- TL_IS_369 = Str__literal(L"Tangled output generated by inweb: do not edit");
- TL_IS_370 = Str__literal(L"this programming language does not support @d");
- TL_IS_371 = Str__literal(L"this programming language does not support multiline @d");
- TL_IS_372 = Str__literal(L"Preform");
+ TL_IS_247 = Str__literal(L"Preform grammar");
+ TL_IS_248 = Str__literal(L", not regular C code.");
+ TL_IS_249 = Str__literal(L"This code is ");
+ TL_IS_250 = Str__literal(L"never used");
+ TL_IS_251 = Str__literal(L", ");
+ TL_IS_252 = Str__literal(L" and ");
+ TL_IS_253 = Str__literal(L"used in ");
+ TL_IS_254 = Str__literal(L" (twice)");
+ TL_IS_255 = Str__literal(L" (three times)");
+ TL_IS_256 = Str__literal(L" (four times)");
+ TL_IS_257 = Str__literal(L" (five times)");
+ TL_IS_258 = Str__literal(L".");
+ TL_IS_259 = Str__literal(L"The structure ");
+ TL_IS_260 = Str__literal(L" is private to this section");
+ TL_IS_261 = Str__literal(L" is accessed in ");
+ TL_IS_262 = Str__literal(L", ");
+ TL_IS_263 = Str__literal(L" and here");
+ TL_IS_264 = Str__literal(L".");
+ TL_IS_265 = Str__literal(L"The function ");
+ TL_IS_266 = Str__literal(L" appears nowhere else");
+ TL_IS_267 = Str__literal(L"none");
+ TL_IS_268 = Str__literal(L")");
+ TL_IS_269 = Str__literal(L".");
+ TL_IS_270 = Str__literal(L" is used in ");
+ TL_IS_271 = Str__literal(L"), ");
+ TL_IS_272 = Str__literal(L", ");
+ TL_IS_273 = Str__literal(L" (");
+ TL_IS_274 = Str__literal(L" - ");
+ TL_IS_275 = Str__literal(L", ");
+ TL_IS_276 = Str__literal(L"Code In Code Comments Notation");
+ TL_IS_277 = Str__literal(L"Code In Commentary Notation");
+ TL_IS_278 = Str__literal(L"Off");
+ TL_IS_279 = Str__literal(L"TeX Mathematics Displayed Notation");
+ TL_IS_280 = Str__literal(L"Off");
+ TL_IS_281 = Str__literal(L"TeX Mathematics Notation");
+ TL_IS_282 = Str__literal(L"Off");
+ TL_IS_283 = Str__literal(L"Cross-References Notation");
+ TL_IS_284 = Str__literal(L"Off");
+ TL_IS_285 = Str__literal(L"http://");
+ TL_IS_286 = Str__literal(L"https://");
+ TL_IS_287 = Str__literal(L"this is a cue for a missing note");
+ TL_IS_288 = Str__literal(L"Cross-References Notation");
+ TL_IS_289 = Str__literal(L"Off");
+ TL_IS_290 = Str__literal(L"http://");
+ TL_IS_291 = Str__literal(L"https://");
+ TL_IS_292 = Str__literal(L"misplaced definition");
+ TL_IS_293 = Str__literal(L"unknown macro");
+ TL_IS_294 = Str__literal(L"Dialects");
+ TL_IS_295 = Str__literal(L"C");
+ TL_IS_296 = Str__literal(L"Languages");
+ TL_IS_297 = Str__literal(L"InC");
+ TL_IS_298 = Str__literal(L"Name");
+ TL_IS_299 = Str__literal(L"Details");
+ TL_IS_300 = Str__literal(L"Extension");
+ TL_IS_301 = Str__literal(L"Line Comment");
+ TL_IS_302 = Str__literal(L"Whole Line Comment");
+ TL_IS_303 = Str__literal(L"Multiline Comment Open");
+ TL_IS_304 = Str__literal(L"Multiline Comment Close");
+ TL_IS_305 = Str__literal(L"String Literal");
+ TL_IS_306 = Str__literal(L"String Literal Escape");
+ TL_IS_307 = Str__literal(L"Character Literal");
+ TL_IS_308 = Str__literal(L"Character Literal Escape");
+ TL_IS_309 = Str__literal(L"Binary Literal Prefix");
+ TL_IS_310 = Str__literal(L"Octal Literal Prefix");
+ TL_IS_311 = Str__literal(L"Hexadecimal Literal Prefix");
+ TL_IS_312 = Str__literal(L"Negative Literal Prefix");
+ TL_IS_313 = Str__literal(L"Shebang");
+ TL_IS_314 = Str__literal(L"Line Marker");
+ TL_IS_315 = Str__literal(L"Before Named Paragraph Expansion");
+ TL_IS_316 = Str__literal(L"After Named Paragraph Expansion");
+ TL_IS_317 = Str__literal(L"Start Definition");
+ TL_IS_318 = Str__literal(L"Prolong Definition");
+ TL_IS_319 = Str__literal(L"End Definition");
+ TL_IS_320 = Str__literal(L"Start Ifdef");
+ TL_IS_321 = Str__literal(L"Start Ifndef");
+ TL_IS_322 = Str__literal(L"End Ifdef");
+ TL_IS_323 = Str__literal(L"End Ifndef");
+ TL_IS_324 = Str__literal(L"C-Like");
+ TL_IS_325 = Str__literal(L"Suppress Disclaimer");
+ TL_IS_326 = Str__literal(L"Supports Namespaces");
+ TL_IS_327 = Str__literal(L"Function Declaration Notation");
+ TL_IS_328 = Str__literal(L"Type Declaration Notation");
+ TL_IS_329 = Str__literal(L"}");
+ TL_IS_330 = Str__literal(L"unquoted");
+ TL_IS_331 = Str__literal(L"{");
+ TL_IS_332 = Str__literal(L"debug");
+ TL_IS_333 = Str__literal(L"!string");
+ TL_IS_334 = Str__literal(L"!function");
+ TL_IS_335 = Str__literal(L"!definition");
+ TL_IS_336 = Str__literal(L"!reserved");
+ TL_IS_337 = Str__literal(L"!element");
+ TL_IS_338 = Str__literal(L"!identifier");
+ TL_IS_339 = Str__literal(L"!character");
+ TL_IS_340 = Str__literal(L"!constant");
+ TL_IS_341 = Str__literal(L"!plain");
+ TL_IS_342 = Str__literal(L"!extract");
+ TL_IS_343 = Str__literal(L"!comment");
+ TL_IS_344 = Str__literal(L"true");
+ TL_IS_345 = Str__literal(L"false");
+ TL_IS_346 = Str__literal(L"both");
+ TL_IS_347 = Str__literal(L"brackets");
+ TL_IS_348 = Str__literal(L"characters");
+ TL_IS_349 = Str__literal(L"coloured");
+ TL_IS_350 = Str__literal(L"colouring");
+ TL_IS_351 = Str__literal(L"debug");
+ TL_IS_352 = Str__literal(L"false");
+ TL_IS_353 = Str__literal(L"in");
+ TL_IS_354 = Str__literal(L"instances");
+ TL_IS_355 = Str__literal(L"keyword");
+ TL_IS_356 = Str__literal(L"matches");
+ TL_IS_357 = Str__literal(L"matching");
+ TL_IS_358 = Str__literal(L"not");
+ TL_IS_359 = Str__literal(L"of");
+ TL_IS_360 = Str__literal(L"on");
+ TL_IS_361 = Str__literal(L"optionally");
+ TL_IS_362 = Str__literal(L"prefix");
+ TL_IS_363 = Str__literal(L"runs");
+ TL_IS_364 = Str__literal(L"spaced");
+ TL_IS_365 = Str__literal(L"suffix");
+ TL_IS_366 = Str__literal(L"true");
+ TL_IS_367 = Str__literal(L"unquoted");
+ TL_IS_368 = Str__literal(L"Structures");
+ TL_IS_369 = Str__literal(L"Main::");
+ TL_IS_370 = Str__literal(L"Tangled output generated by inweb: do not edit");
+ TL_IS_371 = Str__literal(L"this programming language does not support @d");
+ TL_IS_372 = Str__literal(L"this programming language does not support multiline @d");
TL_IS_373 = Str__literal(L"Preform");
- TL_IS_374 = Str__literal(L"Namespaces");
- TL_IS_375 = Str__literal(L"Being internally called, this function mustn't belong to a :: namespace");
- TL_IS_376 = Str__literal(L"Being externally called, this function must belong to a :: namespace");
- TL_IS_377 = Str__literal(L"Structures");
- TL_IS_378 = Str__literal(L"program ended with conditional compilation open");
- TL_IS_379 = Str__literal(L"conditional compilation too deeply nested");
- TL_IS_380 = Str__literal(L"found #endif without #ifdef or #ifndef");
- TL_IS_381 = Str__literal(L"Preform");
- TL_IS_382 = Str__literal(L"'WR[...]' notation unavailable");
- TL_IS_383 = Str__literal(L"malformed '{ , }' formula");
- TL_IS_384 = Str__literal(L"fail");
- TL_IS_385 = Str__literal(L"fail production");
- TL_IS_386 = Str__literal(L"fail nonterminal");
- TL_IS_387 = Str__literal(L"advance ");
- TL_IS_388 = Str__literal(L"pass ");
- TL_IS_389 = Str__literal(L"lookahead");
- TL_IS_390 = Str__literal(L"-");
+ TL_IS_374 = Str__literal(L"Preform");
+ TL_IS_375 = Str__literal(L"Namespaces");
+ TL_IS_376 = Str__literal(L"Being internally called, this function mustn't belong to a :: namespace");
+ TL_IS_377 = Str__literal(L"Being externally called, this function must belong to a :: namespace");
+ TL_IS_378 = Str__literal(L"Structures");
+ TL_IS_379 = Str__literal(L"program ended with conditional compilation open");
+ TL_IS_380 = Str__literal(L"conditional compilation too deeply nested");
+ TL_IS_381 = Str__literal(L"found #endif without #ifdef or #ifndef");
+ TL_IS_382 = Str__literal(L"Preform");
+ TL_IS_383 = Str__literal(L"'WR[...]' notation unavailable");
+ TL_IS_384 = Str__literal(L"malformed '{ , }' formula");
+ TL_IS_385 = Str__literal(L"fail");
+ TL_IS_386 = Str__literal(L"fail production");
+ TL_IS_387 = Str__literal(L"fail nonterminal");
+ TL_IS_388 = Str__literal(L"advance ");
+ TL_IS_389 = Str__literal(L"pass ");
+ TL_IS_390 = Str__literal(L"lookahead");
TL_IS_391 = Str__literal(L"-");
- TL_IS_392 = Str__literal(L"most_recent_result");
- TL_IS_393 = Str__literal(L"most_recent_result_p");
- TL_IS_394 = Str__literal(L"Syntax.preform");
- TL_IS_395 = Str__literal(L"Preform Language");
+ TL_IS_392 = Str__literal(L"-");
+ TL_IS_393 = Str__literal(L"most_recent_result");
+ TL_IS_394 = Str__literal(L"most_recent_result_p");
+ TL_IS_395 = Str__literal(L"Syntax.preform");
TL_IS_396 = Str__literal(L"Preform Language");
- TL_IS_397 = Str__literal(L"weave tree");
- TL_IS_398 = Str__literal(L"document");
- TL_IS_399 = Str__literal(L"head");
- TL_IS_400 = Str__literal(L"body");
- TL_IS_401 = Str__literal(L"tail");
- TL_IS_402 = Str__literal(L"chapter footer");
- TL_IS_403 = Str__literal(L"chapter header");
- TL_IS_404 = Str__literal(L"section footer");
- TL_IS_405 = Str__literal(L"section header");
- TL_IS_406 = Str__literal(L"section purpose");
- TL_IS_407 = Str__literal(L"subheading");
- TL_IS_408 = Str__literal(L"bar");
- TL_IS_409 = Str__literal(L"pagebreak");
- TL_IS_410 = Str__literal(L"linebreak");
- TL_IS_411 = Str__literal(L"paragraph");
- TL_IS_412 = Str__literal(L"endnote");
- TL_IS_413 = Str__literal(L"figure");
- TL_IS_414 = Str__literal(L"audio");
- TL_IS_415 = Str__literal(L"video");
- TL_IS_416 = Str__literal(L"download");
- TL_IS_417 = Str__literal(L"material");
- TL_IS_418 = Str__literal(L"embed");
- TL_IS_419 = Str__literal(L"pmac");
- TL_IS_420 = Str__literal(L"vskip");
- TL_IS_421 = Str__literal(L"chapter");
- TL_IS_422 = Str__literal(L"section");
- TL_IS_423 = Str__literal(L"code line");
- TL_IS_424 = Str__literal(L"function usage");
- TL_IS_425 = Str__literal(L"commentary");
- TL_IS_426 = Str__literal(L"carousel slide");
- TL_IS_427 = Str__literal(L"toc");
- TL_IS_428 = Str__literal(L"toc line");
- TL_IS_429 = Str__literal(L"chapter_title_page");
- TL_IS_430 = Str__literal(L"defn");
- TL_IS_431 = Str__literal(L"source_code");
- TL_IS_432 = Str__literal(L"url");
- TL_IS_433 = Str__literal(L"footnote_cue");
- TL_IS_434 = Str__literal(L"footnote");
- TL_IS_435 = Str__literal(L"display line");
- TL_IS_436 = Str__literal(L"function defn");
- TL_IS_437 = Str__literal(L"item");
- TL_IS_438 = Str__literal(L"grammar index");
- TL_IS_439 = Str__literal(L"inline");
- TL_IS_440 = Str__literal(L"locale");
- TL_IS_441 = Str__literal(L"mathematics");
- TL_IS_442 = Str__literal(L"verbatim");
- TL_IS_443 = Str__literal(L"Weave Content");
- TL_IS_444 = Str__literal(L"plain");
- TL_IS_445 = Str__literal(L".txt");
- TL_IS_446 = Str__literal(L"TeX");
- TL_IS_447 = Str__literal(L".tex");
- TL_IS_448 = Str__literal(L"S");
- TL_IS_449 = Str__literal(L"");
- TL_IS_450 = Str__literal(L"Figures");
- TL_IS_451 = Str__literal(L"weavesection");
- TL_IS_452 = Str__literal(L"weavesections");
- TL_IS_453 = Str__literal(L"weavesectionss");
- TL_IS_454 = Str__literal(L"weavesectionsss");
- TL_IS_455 = Str__literal(L"tweavesection");
- TL_IS_456 = Str__literal(L"tweavesections");
- TL_IS_457 = Str__literal(L"tweavesectionss");
- TL_IS_458 = Str__literal(L"tweavesectionsss");
- TL_IS_459 = Str__literal(L"nsweavesection");
- TL_IS_460 = Str__literal(L"nsweavesections");
- TL_IS_461 = Str__literal(L"HTML");
- TL_IS_462 = Str__literal(L".html");
- TL_IS_463 = Str__literal(L"ePub");
- TL_IS_464 = Str__literal(L".html");
- TL_IS_465 = Str__literal(L"");
- TL_IS_466 = Str__literal(L"private copy");
- TL_IS_467 = Str__literal(L"Base");
- TL_IS_468 = Str__literal(L"Colours");
- TL_IS_469 = Str__literal(L"");
+ TL_IS_397 = Str__literal(L"Preform Language");
+ TL_IS_398 = Str__literal(L"weave tree");
+ TL_IS_399 = Str__literal(L"document");
+ TL_IS_400 = Str__literal(L"head");
+ TL_IS_401 = Str__literal(L"body");
+ TL_IS_402 = Str__literal(L"tail");
+ TL_IS_403 = Str__literal(L"chapter footer");
+ TL_IS_404 = Str__literal(L"chapter header");
+ TL_IS_405 = Str__literal(L"section footer");
+ TL_IS_406 = Str__literal(L"section header");
+ TL_IS_407 = Str__literal(L"section purpose");
+ TL_IS_408 = Str__literal(L"subheading");
+ TL_IS_409 = Str__literal(L"bar");
+ TL_IS_410 = Str__literal(L"pagebreak");
+ TL_IS_411 = Str__literal(L"linebreak");
+ TL_IS_412 = Str__literal(L"paragraph");
+ TL_IS_413 = Str__literal(L"endnote");
+ TL_IS_414 = Str__literal(L"figure");
+ TL_IS_415 = Str__literal(L"audio");
+ TL_IS_416 = Str__literal(L"video");
+ TL_IS_417 = Str__literal(L"download");
+ TL_IS_418 = Str__literal(L"material");
+ TL_IS_419 = Str__literal(L"embed");
+ TL_IS_420 = Str__literal(L"pmac");
+ TL_IS_421 = Str__literal(L"vskip");
+ TL_IS_422 = Str__literal(L"chapter");
+ TL_IS_423 = Str__literal(L"section");
+ TL_IS_424 = Str__literal(L"code line");
+ TL_IS_425 = Str__literal(L"function usage");
+ TL_IS_426 = Str__literal(L"commentary");
+ TL_IS_427 = Str__literal(L"carousel slide");
+ TL_IS_428 = Str__literal(L"toc");
+ TL_IS_429 = Str__literal(L"toc line");
+ TL_IS_430 = Str__literal(L"chapter_title_page");
+ TL_IS_431 = Str__literal(L"defn");
+ TL_IS_432 = Str__literal(L"source_code");
+ TL_IS_433 = Str__literal(L"url");
+ TL_IS_434 = Str__literal(L"footnote_cue");
+ TL_IS_435 = Str__literal(L"footnote");
+ TL_IS_436 = Str__literal(L"display line");
+ TL_IS_437 = Str__literal(L"function defn");
+ TL_IS_438 = Str__literal(L"item");
+ TL_IS_439 = Str__literal(L"grammar index");
+ TL_IS_440 = Str__literal(L"inline");
+ TL_IS_441 = Str__literal(L"locale");
+ TL_IS_442 = Str__literal(L"mathematics");
+ TL_IS_443 = Str__literal(L"verbatim");
+ TL_IS_444 = Str__literal(L"Weave Content");
+ TL_IS_445 = Str__literal(L"plain");
+ TL_IS_446 = Str__literal(L".txt");
+ TL_IS_447 = Str__literal(L"TeX");
+ TL_IS_448 = Str__literal(L".tex");
+ TL_IS_449 = Str__literal(L"S");
+ TL_IS_450 = Str__literal(L"");
+ TL_IS_451 = Str__literal(L"Figures");
+ TL_IS_452 = Str__literal(L"weavesection");
+ TL_IS_453 = Str__literal(L"weavesections");
+ TL_IS_454 = Str__literal(L"weavesectionss");
+ TL_IS_455 = Str__literal(L"weavesectionsss");
+ TL_IS_456 = Str__literal(L"tweavesection");
+ TL_IS_457 = Str__literal(L"tweavesections");
+ TL_IS_458 = Str__literal(L"tweavesectionss");
+ TL_IS_459 = Str__literal(L"tweavesectionsss");
+ TL_IS_460 = Str__literal(L"nsweavesection");
+ TL_IS_461 = Str__literal(L"nsweavesections");
+ TL_IS_462 = Str__literal(L"HTML");
+ TL_IS_463 = Str__literal(L".html");
+ TL_IS_464 = Str__literal(L"ePub");
+ TL_IS_465 = Str__literal(L".html");
+ TL_IS_466 = Str__literal(L"");
+ TL_IS_467 = Str__literal(L"private copy");
+ TL_IS_468 = Str__literal(L"Base");
+ TL_IS_469 = Str__literal(L"Colours");
TL_IS_470 = Str__literal(L"");
- TL_IS_471 = Str__literal(L"Breadcrumbs");
- TL_IS_472 = Str__literal(L"Title");
- TL_IS_473 = Str__literal(L"Short Title");
+ TL_IS_471 = Str__literal(L"");
+ TL_IS_472 = Str__literal(L"Breadcrumbs");
+ TL_IS_473 = Str__literal(L"Title");
TL_IS_474 = Str__literal(L"Short Title");
- TL_IS_475 = Str__literal(L"index.html");
- TL_IS_476 = Str__literal(L"S");
- TL_IS_477 = Str__literal(L"Sequential Section Ranges");
- TL_IS_478 = Str__literal(L"On");
- TL_IS_479 = Str__literal(L"Figures");
- TL_IS_480 = Str__literal(L"Audio");
- TL_IS_481 = Str__literal(L"Video");
- TL_IS_482 = Str__literal(L"Downloads");
- TL_IS_483 = Str__literal(L"Embedding");
- TL_IS_484 = Str__literal(L"Download.html");
- TL_IS_485 = Str__literal(L"Downloads are not supported");
- TL_IS_486 = Str__literal(L"Downloads");
- TL_IS_487 = Str__literal(L"Download file missing or empty");
- TL_IS_488 = Str__literal(L"File Name");
- TL_IS_489 = Str__literal(L"File URL");
- TL_IS_490 = Str__literal(L"File Details");
- TL_IS_491 = Str__literal(L" byte");
- TL_IS_492 = Str__literal(L" bytes");
- TL_IS_493 = Str__literal(L"kB");
- TL_IS_494 = Str__literal(L"MB");
- TL_IS_495 = Str__literal(L"GB");
- TL_IS_496 = Str__literal(L"405");
- TL_IS_497 = Str__literal(L"720");
- TL_IS_498 = Str__literal(L"Embedding");
- TL_IS_499 = Str__literal(L"This is not a supported service");
- TL_IS_500 = Str__literal(L"Content ID");
- TL_IS_501 = Str__literal(L"Content Width");
- TL_IS_502 = Str__literal(L"Content Height");
- TL_IS_503 = Str__literal(L"named-paragraph-link");
- TL_IS_504 = Str__literal(L"function-link");
- TL_IS_505 = Str__literal(L"Carousel");
- TL_IS_506 = Str__literal(L"carousel-number");
- TL_IS_507 = Str__literal(L"carousel-caption");
- TL_IS_508 = Str__literal(L"carousel-caption-above");
- TL_IS_509 = Str__literal(L"carousel-number-above");
- TL_IS_510 = Str__literal(L"carousel-caption-below");
- TL_IS_511 = Str__literal(L"carousel-number-below");
- TL_IS_512 = Str__literal(L"external");
- TL_IS_513 = Str__literal(L"internal");
- TL_IS_514 = Str__literal(L"Popups");
- TL_IS_515 = Str__literal(L"*");
- TL_IS_516 = Str__literal(L"paragraph-anchor");
- TL_IS_517 = Str__literal(L"Title");
- TL_IS_518 = Str__literal(L"Base");
- TL_IS_519 = Str__literal(L"Base.css");
- TL_IS_520 = Str__literal(L"TestingInweb");
- TL_IS_521 = Str__literal(L".txt");
- TL_IS_522 = Str__literal(L".pdf");
- TL_IS_523 = Str__literal(L"not");
- TL_IS_524 = Str__literal(L"leq");
- TL_IS_525 = Str__literal(L"geq");
- TL_IS_526 = Str__literal(L"sim");
- TL_IS_527 = Str__literal(L"hbox");
- TL_IS_528 = Str__literal(L"left");
- TL_IS_529 = Str__literal(L"right");
- TL_IS_530 = Str__literal(L"Rightarrow");
- TL_IS_531 = Str__literal(L"Leftrightarrow");
- TL_IS_532 = Str__literal(L"to");
- TL_IS_533 = Str__literal(L"rightarrow");
- TL_IS_534 = Str__literal(L"longrightarrow");
- TL_IS_535 = Str__literal(L"leftarrow");
- TL_IS_536 = Str__literal(L"longleftarrow");
- TL_IS_537 = Str__literal(L"lbrace");
- TL_IS_538 = Str__literal(L"mid");
- TL_IS_539 = Str__literal(L"rbrace");
- TL_IS_540 = Str__literal(L"cdot");
- TL_IS_541 = Str__literal(L"cdots");
- TL_IS_542 = Str__literal(L"dots");
- TL_IS_543 = Str__literal(L"times");
- TL_IS_544 = Str__literal(L"quad");
- TL_IS_545 = Str__literal(L"qquad");
- TL_IS_546 = Str__literal(L"TeX");
- TL_IS_547 = Str__literal(L"neq");
- TL_IS_548 = Str__literal(L"noteq");
- TL_IS_549 = Str__literal(L"ell");
- TL_IS_550 = Str__literal(L"log");
- TL_IS_551 = Str__literal(L"exp");
- TL_IS_552 = Str__literal(L"sin");
- TL_IS_553 = Str__literal(L"cos");
- TL_IS_554 = Str__literal(L"tan");
- TL_IS_555 = Str__literal(L"top");
- TL_IS_556 = Str__literal(L"Alpha");
- TL_IS_557 = Str__literal(L"Beta");
- TL_IS_558 = Str__literal(L"Gamma");
- TL_IS_559 = Str__literal(L"Delta");
- TL_IS_560 = Str__literal(L"Epsilon");
- TL_IS_561 = Str__literal(L"Zeta");
- TL_IS_562 = Str__literal(L"Eta");
- TL_IS_563 = Str__literal(L"Theta");
- TL_IS_564 = Str__literal(L"Iota");
- TL_IS_565 = Str__literal(L"Kappa");
- TL_IS_566 = Str__literal(L"Lambda");
- TL_IS_567 = Str__literal(L"Mu");
- TL_IS_568 = Str__literal(L"Nu");
- TL_IS_569 = Str__literal(L"Xi");
- TL_IS_570 = Str__literal(L"Omicron");
- TL_IS_571 = Str__literal(L"Pi");
- TL_IS_572 = Str__literal(L"Rho");
- TL_IS_573 = Str__literal(L"Varsigma");
- TL_IS_574 = Str__literal(L"Sigma");
- TL_IS_575 = Str__literal(L"Tau");
- TL_IS_576 = Str__literal(L"Upsilon");
- TL_IS_577 = Str__literal(L"Phi");
- TL_IS_578 = Str__literal(L"Chi");
- TL_IS_579 = Str__literal(L"Psi");
- TL_IS_580 = Str__literal(L"Omega");
- TL_IS_581 = Str__literal(L"alpha");
- TL_IS_582 = Str__literal(L"beta");
- TL_IS_583 = Str__literal(L"gamma");
- TL_IS_584 = Str__literal(L"delta");
- TL_IS_585 = Str__literal(L"epsilon");
- TL_IS_586 = Str__literal(L"zeta");
- TL_IS_587 = Str__literal(L"eta");
- TL_IS_588 = Str__literal(L"theta");
- TL_IS_589 = Str__literal(L"iota");
- TL_IS_590 = Str__literal(L"kappa");
- TL_IS_591 = Str__literal(L"lambda");
- TL_IS_592 = Str__literal(L"mu");
- TL_IS_593 = Str__literal(L"nu");
- TL_IS_594 = Str__literal(L"xi");
- TL_IS_595 = Str__literal(L"omicron");
- TL_IS_596 = Str__literal(L"pi");
- TL_IS_597 = Str__literal(L"rho");
- TL_IS_598 = Str__literal(L"varsigma");
- TL_IS_599 = Str__literal(L"sigma");
- TL_IS_600 = Str__literal(L"tau");
- TL_IS_601 = Str__literal(L"upsilon");
- TL_IS_602 = Str__literal(L"phi");
- TL_IS_603 = Str__literal(L"chi");
- TL_IS_604 = Str__literal(L"psi");
- TL_IS_605 = Str__literal(L"omega");
- TL_IS_606 = Str__literal(L"exists");
- TL_IS_607 = Str__literal(L"in");
- TL_IS_608 = Str__literal(L"forall");
- TL_IS_609 = Str__literal(L"cap");
- TL_IS_610 = Str__literal(L"emptyset");
- TL_IS_611 = Str__literal(L"subseteq");
- TL_IS_612 = Str__literal(L"land");
- TL_IS_613 = Str__literal(L"lor");
- TL_IS_614 = Str__literal(L"lnot");
- TL_IS_615 = Str__literal(L"sum");
- TL_IS_616 = Str__literal(L"prod");
- TL_IS_617 = Str__literal(L"n");
- TL_IS_618 = Str__literal(L"t");
- TL_IS_619 = Str__literal(L"exists");
- TL_IS_620 = Str__literal(L"forall");
- TL_IS_621 = Str__literal(L" ");
- TL_IS_622 = Str__literal(L"all");
- TL_IS_623 = Str__literal(L"platform-settings.mk");
- TL_IS_624 = Str__literal(L"intest");
- TL_IS_625 = Str__literal(L"all");
- TL_IS_626 = Str__literal(L"gitignorescript.txt");
- TL_IS_627 = Str__literal(L"tags");
- TL_IS_628 = Str__literal(L"version");
- TL_IS_629 = Str__literal(L"purpose");
- TL_IS_630 = Str__literal(L"var");
- TL_IS_631 = Str__literal(L"\n");
- TL_IS_632 = Str__literal(L"version");
- TL_IS_633 = Str__literal(L"purpose");
- TL_IS_634 = Str__literal(L"var");
- TL_IS_635 = Str__literal(L"Version Number");
- TL_IS_636 = Str__literal(L"Purpose");
- TL_IS_637 = Str__literal(L"Build Date");
- TL_IS_638 = Str__literal(L"Version Number");
- TL_IS_639 = Str__literal(L"inform6");
- TL_IS_640 = Str__literal(L"header.h");
- TL_IS_641 = Str__literal(L"(manifest).txt");
- TL_IS_642 = Str__literal(L"README.txt");
- TL_IS_643 = Str__literal(L"README.md");
- TL_IS_644 = Str__literal(L"docs");
- TL_IS_645 = Str__literal(L"web");
- TL_IS_646 = Str__literal(L"module");
- TL_IS_647 = Str__literal(L".inweb");
+ TL_IS_475 = Str__literal(L"Short Title");
+ TL_IS_476 = Str__literal(L"index.html");
+ TL_IS_477 = Str__literal(L"S");
+ TL_IS_478 = Str__literal(L"Sequential Section Ranges");
+ TL_IS_479 = Str__literal(L"On");
+ TL_IS_480 = Str__literal(L"Figures");
+ TL_IS_481 = Str__literal(L"Audio");
+ TL_IS_482 = Str__literal(L"Video");
+ TL_IS_483 = Str__literal(L"Downloads");
+ TL_IS_484 = Str__literal(L"Embedding");
+ TL_IS_485 = Str__literal(L"Download.html");
+ TL_IS_486 = Str__literal(L"Downloads are not supported");
+ TL_IS_487 = Str__literal(L"Downloads");
+ TL_IS_488 = Str__literal(L"Download file missing or empty");
+ TL_IS_489 = Str__literal(L"File Name");
+ TL_IS_490 = Str__literal(L"File URL");
+ TL_IS_491 = Str__literal(L"File Details");
+ TL_IS_492 = Str__literal(L" byte");
+ TL_IS_493 = Str__literal(L" bytes");
+ TL_IS_494 = Str__literal(L"kB");
+ TL_IS_495 = Str__literal(L"MB");
+ TL_IS_496 = Str__literal(L"GB");
+ TL_IS_497 = Str__literal(L"405");
+ TL_IS_498 = Str__literal(L"720");
+ TL_IS_499 = Str__literal(L"Embedding");
+ TL_IS_500 = Str__literal(L"This is not a supported service");
+ TL_IS_501 = Str__literal(L"Content ID");
+ TL_IS_502 = Str__literal(L"Content Width");
+ TL_IS_503 = Str__literal(L"Content Height");
+ TL_IS_504 = Str__literal(L"named-paragraph-link");
+ TL_IS_505 = Str__literal(L"function-link");
+ TL_IS_506 = Str__literal(L"Carousel");
+ TL_IS_507 = Str__literal(L"carousel-number");
+ TL_IS_508 = Str__literal(L"carousel-caption");
+ TL_IS_509 = Str__literal(L"carousel-caption-above");
+ TL_IS_510 = Str__literal(L"carousel-number-above");
+ TL_IS_511 = Str__literal(L"carousel-caption-below");
+ TL_IS_512 = Str__literal(L"carousel-number-below");
+ TL_IS_513 = Str__literal(L"external");
+ TL_IS_514 = Str__literal(L"internal");
+ TL_IS_515 = Str__literal(L"Popups");
+ TL_IS_516 = Str__literal(L"*");
+ TL_IS_517 = Str__literal(L"paragraph-anchor");
+ TL_IS_518 = Str__literal(L"Title");
+ TL_IS_519 = Str__literal(L"Base");
+ TL_IS_520 = Str__literal(L"Base.css");
+ TL_IS_521 = Str__literal(L"TestingInweb");
+ TL_IS_522 = Str__literal(L".txt");
+ TL_IS_523 = Str__literal(L".pdf");
+ TL_IS_524 = Str__literal(L"not");
+ TL_IS_525 = Str__literal(L"leq");
+ TL_IS_526 = Str__literal(L"geq");
+ TL_IS_527 = Str__literal(L"sim");
+ TL_IS_528 = Str__literal(L"hbox");
+ TL_IS_529 = Str__literal(L"left");
+ TL_IS_530 = Str__literal(L"right");
+ TL_IS_531 = Str__literal(L"Rightarrow");
+ TL_IS_532 = Str__literal(L"Leftrightarrow");
+ TL_IS_533 = Str__literal(L"to");
+ TL_IS_534 = Str__literal(L"rightarrow");
+ TL_IS_535 = Str__literal(L"longrightarrow");
+ TL_IS_536 = Str__literal(L"leftarrow");
+ TL_IS_537 = Str__literal(L"longleftarrow");
+ TL_IS_538 = Str__literal(L"lbrace");
+ TL_IS_539 = Str__literal(L"mid");
+ TL_IS_540 = Str__literal(L"rbrace");
+ TL_IS_541 = Str__literal(L"cdot");
+ TL_IS_542 = Str__literal(L"cdots");
+ TL_IS_543 = Str__literal(L"dots");
+ TL_IS_544 = Str__literal(L"times");
+ TL_IS_545 = Str__literal(L"quad");
+ TL_IS_546 = Str__literal(L"qquad");
+ TL_IS_547 = Str__literal(L"TeX");
+ TL_IS_548 = Str__literal(L"neq");
+ TL_IS_549 = Str__literal(L"noteq");
+ TL_IS_550 = Str__literal(L"ell");
+ TL_IS_551 = Str__literal(L"log");
+ TL_IS_552 = Str__literal(L"exp");
+ TL_IS_553 = Str__literal(L"sin");
+ TL_IS_554 = Str__literal(L"cos");
+ TL_IS_555 = Str__literal(L"tan");
+ TL_IS_556 = Str__literal(L"top");
+ TL_IS_557 = Str__literal(L"Alpha");
+ TL_IS_558 = Str__literal(L"Beta");
+ TL_IS_559 = Str__literal(L"Gamma");
+ TL_IS_560 = Str__literal(L"Delta");
+ TL_IS_561 = Str__literal(L"Epsilon");
+ TL_IS_562 = Str__literal(L"Zeta");
+ TL_IS_563 = Str__literal(L"Eta");
+ TL_IS_564 = Str__literal(L"Theta");
+ TL_IS_565 = Str__literal(L"Iota");
+ TL_IS_566 = Str__literal(L"Kappa");
+ TL_IS_567 = Str__literal(L"Lambda");
+ TL_IS_568 = Str__literal(L"Mu");
+ TL_IS_569 = Str__literal(L"Nu");
+ TL_IS_570 = Str__literal(L"Xi");
+ TL_IS_571 = Str__literal(L"Omicron");
+ TL_IS_572 = Str__literal(L"Pi");
+ TL_IS_573 = Str__literal(L"Rho");
+ TL_IS_574 = Str__literal(L"Varsigma");
+ TL_IS_575 = Str__literal(L"Sigma");
+ TL_IS_576 = Str__literal(L"Tau");
+ TL_IS_577 = Str__literal(L"Upsilon");
+ TL_IS_578 = Str__literal(L"Phi");
+ TL_IS_579 = Str__literal(L"Chi");
+ TL_IS_580 = Str__literal(L"Psi");
+ TL_IS_581 = Str__literal(L"Omega");
+ TL_IS_582 = Str__literal(L"alpha");
+ TL_IS_583 = Str__literal(L"beta");
+ TL_IS_584 = Str__literal(L"gamma");
+ TL_IS_585 = Str__literal(L"delta");
+ TL_IS_586 = Str__literal(L"epsilon");
+ TL_IS_587 = Str__literal(L"zeta");
+ TL_IS_588 = Str__literal(L"eta");
+ TL_IS_589 = Str__literal(L"theta");
+ TL_IS_590 = Str__literal(L"iota");
+ TL_IS_591 = Str__literal(L"kappa");
+ TL_IS_592 = Str__literal(L"lambda");
+ TL_IS_593 = Str__literal(L"mu");
+ TL_IS_594 = Str__literal(L"nu");
+ TL_IS_595 = Str__literal(L"xi");
+ TL_IS_596 = Str__literal(L"omicron");
+ TL_IS_597 = Str__literal(L"pi");
+ TL_IS_598 = Str__literal(L"rho");
+ TL_IS_599 = Str__literal(L"varsigma");
+ TL_IS_600 = Str__literal(L"sigma");
+ TL_IS_601 = Str__literal(L"tau");
+ TL_IS_602 = Str__literal(L"upsilon");
+ TL_IS_603 = Str__literal(L"phi");
+ TL_IS_604 = Str__literal(L"chi");
+ TL_IS_605 = Str__literal(L"psi");
+ TL_IS_606 = Str__literal(L"omega");
+ TL_IS_607 = Str__literal(L"exists");
+ TL_IS_608 = Str__literal(L"in");
+ TL_IS_609 = Str__literal(L"forall");
+ TL_IS_610 = Str__literal(L"cap");
+ TL_IS_611 = Str__literal(L"emptyset");
+ TL_IS_612 = Str__literal(L"subseteq");
+ TL_IS_613 = Str__literal(L"land");
+ TL_IS_614 = Str__literal(L"lor");
+ TL_IS_615 = Str__literal(L"lnot");
+ TL_IS_616 = Str__literal(L"sum");
+ TL_IS_617 = Str__literal(L"prod");
+ TL_IS_618 = Str__literal(L"n");
+ TL_IS_619 = Str__literal(L"t");
+ TL_IS_620 = Str__literal(L"exists");
+ TL_IS_621 = Str__literal(L"forall");
+ TL_IS_622 = Str__literal(L" ");
+ TL_IS_623 = Str__literal(L"all");
+ TL_IS_624 = Str__literal(L"platform-settings.mk");
+ TL_IS_625 = Str__literal(L"intest");
+ TL_IS_626 = Str__literal(L"all");
+ TL_IS_627 = Str__literal(L"gitignorescript.txt");
+ TL_IS_628 = Str__literal(L"tags");
+ TL_IS_629 = Str__literal(L"version");
+ TL_IS_630 = Str__literal(L"purpose");
+ TL_IS_631 = Str__literal(L"var");
+ TL_IS_632 = Str__literal(L"\n");
+ TL_IS_633 = Str__literal(L"version");
+ TL_IS_634 = Str__literal(L"purpose");
+ TL_IS_635 = Str__literal(L"var");
+ TL_IS_636 = Str__literal(L"Version Number");
+ TL_IS_637 = Str__literal(L"Purpose");
+ TL_IS_638 = Str__literal(L"Build Date");
+ TL_IS_639 = Str__literal(L"Version Number");
+ TL_IS_640 = Str__literal(L"inform6");
+ TL_IS_641 = Str__literal(L"header.h");
+ TL_IS_642 = Str__literal(L"(manifest).txt");
+ TL_IS_643 = Str__literal(L"README.txt");
+ TL_IS_644 = Str__literal(L"README.md");
+ TL_IS_645 = Str__literal(L"docs");
+ TL_IS_646 = Str__literal(L"web");
+ TL_IS_647 = Str__literal(L"module");
TL_IS_648 = Str__literal(L".inweb");
- TL_IS_649 = Str__literal(L"docs");
- TL_IS_650 = Str__literal(L"Multiple cross-references might be meant here");
- TL_IS_651 = Str__literal(L"(main)");
+ TL_IS_649 = Str__literal(L".inweb");
+ TL_IS_650 = Str__literal(L"docs");
+ TL_IS_651 = Str__literal(L"Multiple cross-references might be meant here");
+ TL_IS_652 = Str__literal(L"(main)");
}
diff --git a/build.txt b/build.txt
index 6d165bc..6f98f6c 100644
--- a/build.txt
+++ b/build.txt
@@ -1,3 +1,3 @@
Prerelease: alpha.1
-Build Date: 11 August 2021
-Build Number: 1A76
+Build Date: 28 November 2021
+Build Number: 1A77
diff --git a/docs/foundation-module/3-cla.html b/docs/foundation-module/3-cla.html
index d8315e2..bf49f3e 100644
--- a/docs/foundation-module/3-cla.html
+++ b/docs/foundation-module/3-cla.html
@@ -282,7 +282,7 @@ through the file if one has by that point been provided.
}
}
-The structure clf_reader_state is accessed in 2/dl, 2/mmr, 6/id, 6/sd, 8/ws and here.
+The structure clf_reader_state is accessed in 2/dl, 2/mmr, 6/id, 6/sd, 8/ws, 8/st and here.
diff --git a/docs/foundation-module/3-fln.html b/docs/foundation-module/3-fln.html
index af78ac7..43e7f1c 100644
--- a/docs/foundation-module/3-fln.html
+++ b/docs/foundation-module/3-fln.html
@@ -70,7 +70,7 @@ as Unicode code points, regardless of what text encoding the locale has.)
-filename * Filenames::in ( pathname * P , text_stream * file_name ) {
+filename * Filenames::in ( pathname * P , text_stream * file_name ) {
return Filenames::primitive ( file_name , 0 , Str::len ( file_name ), P );
}
@@ -283,7 +283,7 @@ we call ,
-FILE * Filenames::fopen ( filename * F , char * usage ) {
+FILE * Filenames::fopen ( filename * F , char * usage ) {
char transcoded_pathname [4* MAX_FILENAME_LENGTH ];
TEMPORARY_TEXT ( FN )
WRITE_TO ( FN , "%f" , F );
diff --git a/docs/foundation-module/3-pth.html b/docs/foundation-module/3-pth.html
index 32b53d9..398d98e 100644
--- a/docs/foundation-module/3-pth.html
+++ b/docs/foundation-module/3-pth.html
@@ -153,7 +153,7 @@ then going one level deeper, using the supplied name.
-pathname * Pathnames::down ( pathname * P , text_stream * dir_name ) {
+pathname * Pathnames::down ( pathname * P , text_stream * dir_name ) {
return Pathnames::primitive ( dir_name , 0 , Str::len ( dir_name ), P );
}
diff --git a/docs/foundation-module/4-pm.html b/docs/foundation-module/4-pm.html
index 80a55f5..a9398be 100644
--- a/docs/foundation-module/4-pm.html
+++ b/docs/foundation-module/4-pm.html
@@ -204,7 +204,7 @@ deallocate.
-match_results Regexp::create_mr ( void ) {
+match_results Regexp::create_mr ( void ) {
match_results mr ;
mr . no_matched_texts = 0 ;
for ( int i =0; i < MAX_BRACKETED_SUBEXPRESSIONS ; i ++) {
@@ -214,7 +214,7 @@ deallocate.
return mr ;
}
-void Regexp::dispose_of ( match_results * mr ) {
+void Regexp::dispose_of ( match_results * mr ) {
if ( mr ) {
for ( int i =0; i < MAX_BRACKETED_SUBEXPRESSIONS ; i ++)
if ( mr -> exp [ i ]) {
@@ -229,7 +229,7 @@ deallocate.
-int Regexp::match ( match_results * mr , text_stream * text , wchar_t * pattern ) {
+int Regexp::match ( match_results * mr , text_stream * text , wchar_t * pattern ) {
if ( mr ) Regexp::prepare ( mr );
int rv = ( Regexp::match_r ( mr , text , pattern , NULL , FALSE ) >= 0 )? TRUE:FALSE ;
if (( mr ) && ( rv == FALSE )) Regexp::dispose_of ( mr );
diff --git a/docs/foundation-module/4-sm.html b/docs/foundation-module/4-sm.html
index 93664db..4e1c66b 100644
--- a/docs/foundation-module/4-sm.html
+++ b/docs/foundation-module/4-sm.html
@@ -198,7 +198,7 @@ thing plus a little extra, for efficiency's sake.
-int Str::len ( text_stream * S ) {
+int Str::len ( text_stream * S ) {
return Streams::get_position ( S );
}
@@ -282,16 +282,16 @@ at those positions may well not be, of course.)
return Streams::get_char_at_index ( P . S , P . index );
}
-wchar_t Str::get_at ( text_stream * S , int index ) {
+wchar_t Str::get_at ( text_stream * S , int index ) {
if (( S == NULL ) || ( index < 0 )) return 0 ;
return Streams::get_char_at_index ( S , index );
}
-wchar_t Str::get_first_char ( text_stream * S ) {
+wchar_t Str::get_first_char ( text_stream * S ) {
return Str::get ( Str::at ( S , 0 ));
}
-wchar_t Str::get_last_char ( text_stream * S ) {
+wchar_t Str::get_last_char ( text_stream * S ) {
int L = Str::len ( S );
if ( L == 0 ) return 0 ;
return Str::get ( Str::at ( S , L -1));
@@ -319,7 +319,7 @@ at those positions may well not be, of course.)
-void Str::clear ( text_stream * S ) {
+void Str::clear ( text_stream * S ) {
Str::truncate ( S , 0 );
}
@@ -374,13 +374,13 @@ at those positions may well not be, of course.)
Streams::copy ( S1 , S2 );
}
-void Str::copy ( text_stream * S1 , text_stream * S2 ) {
+void Str::copy ( text_stream * S1 , text_stream * S2 ) {
if ( S1 == S2 ) return ;
Str::clear ( S1 );
Streams::copy ( S1 , S2 );
}
-void Str::copy_tail ( text_stream * S1 , text_stream * S2 , int from ) {
+void Str::copy_tail ( text_stream * S1 , text_stream * S2 , int from ) {
Str::clear ( S1 );
int L = Str::len ( S2 );
if ( from < L )
@@ -411,17 +411,17 @@ at those positions may well not be, of course.)
-int Str::eq ( text_stream * S1 , text_stream * S2 ) {
+int Str::eq ( text_stream * S1 , text_stream * S2 ) {
if (( Str::len ( S1 ) == Str::len ( S2 )) && ( Str::cmp ( S1 , S2 ) == 0 )) return TRUE ;
return FALSE ;
}
-int Str::eq_insensitive ( text_stream * S1 , text_stream * S2 ) {
+int Str::eq_insensitive ( text_stream * S1 , text_stream * S2 ) {
if (( Str::len ( S1 ) == Str::len ( S2 )) && ( Str::cmp_insensitive ( S1 , S2 ) == 0 )) return TRUE ;
return FALSE ;
}
-int Str::ne ( text_stream * S1 , text_stream * S2 ) {
+int Str::ne ( text_stream * S1 , text_stream * S2 ) {
if (( Str::len ( S1 ) != Str::len ( S2 )) || ( Str::cmp ( S1 , S2 ) != 0 )) return TRUE ;
return FALSE ;
}
@@ -436,7 +436,7 @@ alphabetic sorting, like
- The structure module is accessed in 8/ws and here.
+The structure module is accessed in 8/ws, 8/st and here.
@@ -296,7 +296,7 @@ section of code you are now reading.
This code is used in §9.1 .
+
diff --git a/docs/foundation-module/8-ws.html b/docs/foundation-module/8-ws.html
index de5659b..e5be965 100644
--- a/docs/foundation-module/8-ws.html
+++ b/docs/foundation-module/8-ws.html
@@ -95,7 +95,7 @@ produce the following metadata structure.
CLASS_DEFINITION
} web_md ;
-The structure web_md is accessed in 8/bdfw, 8/wm, 8/bf and here.
+The structure web_md is accessed in 8/bdfw, 8/wm, 8/bf, 8/st and here.
@@ -115,7 +115,7 @@ produce the following metadata structure.
CLASS_DEFINITION
} chapter_md ;
-The structure chapter_md is accessed in 8/wm and here.
+The structure chapter_md is accessed in 8/wm, 8/st and here.
@@ -137,7 +137,7 @@ produce the following metadata structure.
CLASS_DEFINITION
} section_md ;
-The structure section_md is accessed in 5/htm, 8/wm and here.
+The structure section_md is accessed in 5/htm, 8/wm, 8/st and here.
-void WebMetadata::read_contents_line ( text_stream * line , text_file_position * tfp , void * X ) {
+void WebMetadata::read_contents_line ( text_stream * line , text_file_position * tfp , void * X ) {
reader_state * RS = ( reader_state *) X ;
if ( RS -> halted ) return ;
@@ -834,11 +834,11 @@ the extension needs to be
+
diff --git a/docs/foundation-module/index.html b/docs/foundation-module/index.html
index 5b04016..6c82521 100644
--- a/docs/foundation-module/index.html
+++ b/docs/foundation-module/index.html
@@ -299,6 +299,11 @@
Build Files -
Manages the build metadata for an inweb project.
+
+
+ Simple Tangler -
+ Unravelling (a simple version of) Inweb's literate programming notation to access the tangled content.
+
diff --git a/docs/goldbach/goldbach.pdf b/docs/goldbach/goldbach.pdf
index 92e9841a46762a30094482645cee899edbe76aa3..c6c3e23d5099322348e9e639fb8cb33b83204d07 100644
GIT binary patch
delta 333
zcmcb&f&bD5{)QID7N#xCJSQ~_4UH^}jE#*9jiWTV^nLSFToOxC6*OF|j0}tnktDY}
zoMc|k>uhS_YGmr_>g42V?BwL;Xldr`>|*F-X<*>&Waw<<>T0K8LrBSVt?SHT^-GL9
zRTJ2c2?=)|X^@x^+2W$pX!HKb^yhQt%<1UZFA^x$qV&q~?SXxteosEG?E3UjXcLd;
zLh1M47O+Nd;Qf0+-FDvZCA{qg46-*`jNTk#;BgXt6)gw;t1pv$w
Bf(SlvI*9pH!;vw|V~LiHpmhr5&3TL<0GVP_6#c9dvhk}}{?
zHsDG&;1f3B3^vfMz49mD?bpwevs$70vBh3%tIe+OxpZ`Aw&TlnZ=*u0c9!aD*2?dm
zHnscE)6$l~6*!HJxl~nM{oS|#
DdQ5v}
diff --git a/foundation-module/Chapter 5/HTML.w b/foundation-module/Chapter 5/HTML.w
index 6aa5b92..9942f74 100644
--- a/foundation-module/Chapter 5/HTML.w
+++ b/foundation-module/Chapter 5/HTML.w
@@ -879,7 +879,7 @@ wchar_t *HTML::translate_colour_name(wchar_t *original) {
@ =
void HTML::begin_colour(OUTPUT_STREAM, text_stream *col) {
- HTML_OPEN_WITH("span", "style=\"color:#%S\"", col);
+ HTML_OPEN_WITH("span", "style='color:#%S'", col);
}
void HTML::end_colour(OUTPUT_STREAM) {
HTML_CLOSE("span");
diff --git a/foundation-module/Chapter 8/Simple Tangler.w b/foundation-module/Chapter 8/Simple Tangler.w
new file mode 100644
index 0000000..d7274cb
--- /dev/null
+++ b/foundation-module/Chapter 8/Simple Tangler.w
@@ -0,0 +1,323 @@
+[SimpleTangler::] Simple Tangler.
+
+Unravelling (a simple version of) Inweb's literate programming notation to
+access the tangled content.
+
+@ Suppose we have a simple form of a web, in the sense of Inweb: one which
+makes no use of macros, definitions or enumerations.[1] Because the syntax
+used is a subset of Inweb syntax, there's no problem weaving such a web:
+Inweb can be used for that. But now suppose we want to tangle the web, within
+some application. We don't really want to embed the whole of Inweb into such
+a program: something much simpler would surely be sufficient. And here it is.
+
+[1] Why might we have this? Because kits of Inter code take this form.
+
+@ The simple tangler is controlled using a parcel of settings. Note also the
+|state|, which is not used by the reader itself, but instead allows the callback
+functions to have a shared state of their own.
+
+=
+typedef struct simple_tangle_docket {
+ void (*raw_callback)(struct text_stream *, struct simple_tangle_docket *);
+ void (*command_callback)(struct text_stream *, struct text_stream *,
+ struct text_stream *, struct simple_tangle_docket *);
+ void (*bplus_callback)(struct text_stream *, struct simple_tangle_docket *);
+ void (*error_callback)(char *, struct text_stream *);
+ void *state;
+ struct pathname *web_path;
+} simple_tangle_docket;
+
+@ =
+simple_tangle_docket SimpleTangler::new_docket(
+ void (*A)(struct text_stream *, struct simple_tangle_docket *),
+ void (*B)(struct text_stream *, struct text_stream *,
+ struct text_stream *, struct simple_tangle_docket *),
+ void (*C)(struct text_stream *, struct simple_tangle_docket *),
+ void (*D)(char *, struct text_stream *),
+ pathname *web_path, void *initial_state) {
+ simple_tangle_docket docket;
+ docket.raw_callback = A;
+ docket.command_callback = B;
+ docket.bplus_callback = C;
+ docket.error_callback = D;
+ docket.state = initial_state;
+ docket.web_path = web_path;
+ return docket;
+}
+
+@ We can tangle either text already in memory, or a file (which the tangler
+should open), or a section (which the tangler should find and open), or a
+whole web of section files (ditto):
+
+=
+void SimpleTangler::tangle_text(simple_tangle_docket *docket, text_stream *text) {
+ SimpleTangler::tangle_L1(docket, text, NULL, NULL, FALSE);
+}
+
+void SimpleTangler::tangle_file(simple_tangle_docket *docket, filename *F) {
+ SimpleTangler::tangle_L1(docket, NULL, F, NULL, FALSE);
+}
+
+void SimpleTangler::tangle_section(simple_tangle_docket *docket, text_stream *leafname) {
+ SimpleTangler::tangle_L1(docket, NULL, NULL, leafname, FALSE);
+}
+
+void SimpleTangler::tangle_web(simple_tangle_docket *docket) {
+ SimpleTangler::tangle_L1(docket, NULL, NULL, NULL, TRUE);
+}
+
+@ =
+void SimpleTangler::tangle_L1(simple_tangle_docket *docket, text_stream *text,
+ filename *F, text_stream *leafname, int whole_web) {
+ TEMPORARY_TEXT(T)
+ SimpleTangler::tangle_L2(T, text, F, leafname, docket, whole_web);
+ (*(docket->raw_callback))(T, docket);
+ DISCARD_TEXT(T)
+}
+
+@ First, dispose of the "whole web" possibility.
+
+=
+void SimpleTangler::tangle_L2(OUTPUT_STREAM, text_stream *text, filename *F,
+ text_stream *leafname, simple_tangle_docket *docket, int whole_web) {
+ if (whole_web) {
+ web_md *Wm = WebMetadata::get(docket->web_path, NULL, V2_SYNTAX, NULL, FALSE, TRUE, NULL);
+ chapter_md *Cm;
+ LOOP_OVER_LINKED_LIST(Cm, chapter_md, Wm->chapters_md) {
+ section_md *Sm;
+ LOOP_OVER_LINKED_LIST(Sm, section_md, Cm->sections_md) {
+ filename *SF = Sm->source_file_for_section;
+ SimpleTangler::tangle_L3(OUT, text, Sm->sect_title, docket, SF);
+ }
+ }
+ } else {
+ SimpleTangler::tangle_L3(OUT, text, leafname, docket, F);
+ }
+}
+
+@ When tangling a file, we begin in |comment| mode; when tangling other matter,
+not so much.
+
+=
+void SimpleTangler::tangle_L3(OUTPUT_STREAM, text_stream *text,
+ text_stream *leafname, simple_tangle_docket *docket, filename *F) {
+ int comment = FALSE;
+ FILE *Input_File = NULL;
+ if ((Str::len(leafname) > 0) || (F)) {
+ @;
+ comment = TRUE;
+ }
+ @;
+ if (Input_File) fclose(Input_File);
+}
+
+@ Note that if we are looking for an explicit section -- say, |Juggling.i6t| --
+from a web |W|, we translate that into the path |W/Sections/Juggling.i6t|.
+
+@ =
+ if (F) {
+ Input_File = Filenames::fopen(F, "r");
+ } else if (Str::len(leafname) > 0) {
+ pathname *P = Pathnames::down(docket->web_path, I"Sections");
+ Input_File = Filenames::fopen(Filenames::in(P, leafname), "r");
+ }
+ if (Input_File == NULL)
+ (*(docket->error_callback))("unable to open the file '%S'", leafname);
+
+@ =
+ TEMPORARY_TEXT(command)
+ TEMPORARY_TEXT(argument)
+ int skip_part = FALSE, extract = FALSE;
+ int col = 1, cr, sfp = 0;
+ do {
+ Str::clear(command);
+ Str::clear(argument);
+ @;
+ NewCharacter: if (cr == EOF) break;
+ if (((cr == '@') || (cr == '=')) && (col == 1)) {
+ int inweb_syntax = -1;
+ if (cr == '=') @
+ else @;
+ @;
+ continue;
+ }
+ if (comment == FALSE) @;
+ } while (cr != EOF);
+ DISCARD_TEXT(command)
+ DISCARD_TEXT(argument)
+
+@ Our text files are encoded as ISO Latin-1, not as Unicode UTF-8, so ordinary
+|fgetc| is used, and no BOM marker is parsed. Lines are assumed to be terminated
+with either |0x0a| or |0x0d|. (Since blank lines are harmless, we take no
+trouble over |0a0d| or |0d0a| combinations.) The built-in template files, almost
+always the only ones used, are line terminated |0x0a| in Unix fashion.
+
+@ =
+ if (Input_File) cr = fgetc(Input_File);
+ else if (text) {
+ cr = Str::get_at(text, sfp); if (cr == 0) cr = EOF; else sfp++;
+ } else cr = EOF;
+ col++; if ((cr == 10) || (cr == 13)) col = 0;
+
+@ Here we see the limited range of Inweb syntaxes allowed; but some |@| and |=|
+commands can be used, at least.
+
+@d INWEB_PARAGRAPH_SYNTAX 1
+@d INWEB_CODE_SYNTAX 2
+@d INWEB_DASH_SYNTAX 3
+@d INWEB_PURPOSE_SYNTAX 4
+@d INWEB_FIGURE_SYNTAX 5
+@d INWEB_EQUALS_SYNTAX 6
+@d INWEB_EXTRACT_SYNTAX 7
+
+@ =
+ TEMPORARY_TEXT(at_cmd)
+ int committed = FALSE, unacceptable_character = FALSE;
+ while (TRUE) {
+ @;
+ if ((committed == FALSE) && ((cr == 10) || (cr == 13) || (cr == ' '))) {
+ if (Str::eq_wide_string(at_cmd, L"p"))
+ inweb_syntax = INWEB_PARAGRAPH_SYNTAX;
+ else if (Str::eq_wide_string(at_cmd, L"h"))
+ inweb_syntax = INWEB_PARAGRAPH_SYNTAX;
+ else if (Str::eq_wide_string(at_cmd, L"c"))
+ inweb_syntax = INWEB_CODE_SYNTAX;
+ else if (Str::get_first_char(at_cmd) == '-')
+ inweb_syntax = INWEB_DASH_SYNTAX;
+ else if (Str::begins_with_wide_string(at_cmd, L"Purpose:"))
+ inweb_syntax = INWEB_PURPOSE_SYNTAX;
+ committed = TRUE;
+ if (inweb_syntax == -1) {
+ if (unacceptable_character == FALSE) {
+ PUT_TO(OUT, '@');
+ WRITE_TO(OUT, "%S", at_cmd);
+ PUT_TO(OUT, cr);
+ break;
+ } else {
+ LOG("heading begins: <%S>\n", at_cmd);
+ (*(docket->error_callback))(
+ "unknown '@...' marker at column 0: '%S'", at_cmd);
+ }
+ }
+ }
+ if (!(((cr >= 'A') && (cr <= 'Z')) || ((cr >= 'a') && (cr <= 'z'))
+ || ((cr >= '0') && (cr <= '9'))
+ || (cr == '-') || (cr == '>') || (cr == ':') || (cr == '_')))
+ unacceptable_character = TRUE;
+ if ((cr == 10) || (cr == 13)) break;
+ PUT_TO(at_cmd, cr);
+ }
+ Str::copy(command, at_cmd);
+ DISCARD_TEXT(at_cmd)
+
+@ =
+ TEMPORARY_TEXT(equals_cmd)
+ while (TRUE) {
+ @;
+ if ((cr == 10) || (cr == 13)) break;
+ PUT_TO(equals_cmd, cr);
+ }
+ match_results mr = Regexp::create_mr();
+ if (Regexp::match(&mr, equals_cmd, L" %(text%c*%) *")) {
+ inweb_syntax = INWEB_EXTRACT_SYNTAX;
+ } else if (Regexp::match(&mr, equals_cmd, L" %(figure%c*%) *")) {
+ inweb_syntax = INWEB_FIGURE_SYNTAX;
+ } else if (Regexp::match(&mr, equals_cmd, L" %(%c*%) *")) {
+ (*(docket->error_callback))(
+ "unsupported '= (...)' marker at column 0", NULL);
+ } else {
+ inweb_syntax = INWEB_EQUALS_SYNTAX;
+ }
+ Regexp::dispose_of(&mr);
+ DISCARD_TEXT(equals_cmd)
+
+@ =
+ switch (inweb_syntax) {
+ case INWEB_PARAGRAPH_SYNTAX: {
+ TEMPORARY_TEXT(heading_name)
+ Str::copy_tail(heading_name, command, 2);
+ int c;
+ while (((c = Str::get_last_char(heading_name)) != 0) &&
+ ((c == ' ') || (c == '\t') || (c == '.')))
+ Str::delete_last_character(heading_name);
+ if (Str::len(heading_name) == 0)
+ (*(docket->error_callback))("Empty heading name", NULL);
+ DISCARD_TEXT(heading_name)
+ extract = FALSE;
+ comment = TRUE; skip_part = FALSE;
+ break;
+ }
+ case INWEB_CODE_SYNTAX:
+ extract = FALSE;
+ if (skip_part == FALSE) comment = FALSE;
+ break;
+ case INWEB_EQUALS_SYNTAX:
+ if (extract) {
+ comment = TRUE; extract = FALSE;
+ } else {
+ if (skip_part == FALSE) comment = FALSE;
+ }
+ break;
+ case INWEB_EXTRACT_SYNTAX:
+ comment = TRUE; extract = TRUE;
+ break;
+ case INWEB_DASH_SYNTAX: break;
+ case INWEB_PURPOSE_SYNTAX: break;
+ case INWEB_FIGURE_SYNTAX: break;
+ }
+
+@ =
+ if (cr == '{') {
+ @;
+ if ((cr == '-') && (docket->command_callback)) {
+ @;
+ if (Str::get_first_char(command) == '!') continue;
+ (*(docket->command_callback))(OUT, command, argument, docket);
+ continue;
+ } else { /* otherwise the open brace was a literal */
+ PUT_TO(OUT, '{');
+ goto NewCharacter;
+ }
+ }
+ if ((cr == '(') && (docket->bplus_callback)) {
+ @;
+ if (cr == '+') {
+ @;
+ continue;
+ } else { /* otherwise the open bracket was a literal */
+ PUT_TO(OUT, '(');
+ goto NewCharacter;
+ }
+ }
+ PUT_TO(OUT, cr);
+
+@ And here we read a normal command. The command name must not include |}|
+or |:|. If there is no |:| then the argument is left unset (so that it will
+be the empty string: see above). The argument must not include |}|.
+
+@ =
+ Str::clear(command);
+ Str::clear(argument);
+ int com_mode = TRUE;
+ while (TRUE) {
+ @;
+ if ((cr == '}') || (cr == EOF)) break;
+ if ((cr == ':') && (com_mode)) { com_mode = FALSE; continue; }
+ if (com_mode) PUT_TO(command, cr);
+ else PUT_TO(argument, cr);
+ }
+
+@ And similarly, for the |(+| ... |+)| notation which was once used to mark
+I7 material within I6:
+
+@ =
+ TEMPORARY_TEXT(material)
+ while (TRUE) {
+ @;
+ if (cr == EOF) break;
+ if ((cr == ')') && (Str::get_last_char(material) == '+')) {
+ Str::delete_last_character(material); break; }
+ PUT_TO(material, cr);
+ }
+ (*(docket->bplus_callback))(material, docket);
+ DISCARD_TEXT(material)
diff --git a/foundation-module/Contents.w b/foundation-module/Contents.w
index 8ea073b..cc6f671 100644
--- a/foundation-module/Contents.w
+++ b/foundation-module/Contents.w
@@ -68,3 +68,5 @@ Chapter 8: Literate Programming
Bibliographic Data for Webs
Web Modules
Build Files
+ Simple Tangler
+