diff --git a/Audio/SP014.mp3 b/Audio/SP014.mp3
new file mode 100644
index 0000000..7f4c41c
Binary files /dev/null and b/Audio/SP014.mp3 differ
diff --git a/Chapter 1/Basics.w b/Chapter 1/Basics.w
index 51a02c5..86b361e 100755
--- a/Chapter 1/Basics.w
+++ b/Chapter 1/Basics.w
@@ -64,6 +64,7 @@ see //foundation: A Brief Guide to Foundation//.
@e weave_endnote_node_MT
@e weave_material_node_MT
@e weave_figure_node_MT
+@e weave_audio_node_MT
@e weave_embed_node_MT
@e weave_pmac_node_MT
@e weave_vskip_node_MT
@@ -146,6 +147,7 @@ ALLOCATE_INDIVIDUALLY(weave_paragraph_heading_node)
ALLOCATE_INDIVIDUALLY(weave_endnote_node)
ALLOCATE_INDIVIDUALLY(weave_material_node)
ALLOCATE_INDIVIDUALLY(weave_figure_node)
+ALLOCATE_INDIVIDUALLY(weave_audio_node)
ALLOCATE_INDIVIDUALLY(weave_embed_node)
ALLOCATE_INDIVIDUALLY(weave_pmac_node)
ALLOCATE_INDIVIDUALLY(weave_vskip_node)
diff --git a/Chapter 2/Line Categories.w b/Chapter 2/Line Categories.w
index 1d777bd..188611a 100644
--- a/Chapter 2/Line Categories.w
+++ b/Chapter 2/Line Categories.w
@@ -154,6 +154,7 @@ some of these fell into disuse in version 2 syntax.
@e PAGEBREAK_CMD
@e GRAMMAR_INDEX_CMD
@e FIGURE_CMD
+@e AUDIO_CMD
@e CAROUSEL_CMD
@e CAROUSEL_ABOVE_CMD
@e CAROUSEL_BELOW_CMD
diff --git a/Chapter 2/The Parser.w b/Chapter 2/The Parser.w
index a8d9944..e54a51b 100644
--- a/Chapter 2/The Parser.w
+++ b/Chapter 2/The Parser.w
@@ -375,6 +375,14 @@ division in the current section.
code_lcat_for_body = COMMENT_BODY_LCAT;
L->text_operand = Str::duplicate(mr2.exp[0]);
comment_mode = TRUE;
+ } else if ((current_paragraph) &&
+ (Regexp::match(&mr2, mr.exp[0], L"%(audio (%c+)%)"))) {
+ Tags::add_by_name(L->owning_paragraph, I"Audio");
+ L->command_code = AUDIO_CMD;
+ L->category = COMMAND_LCAT;
+ code_lcat_for_body = COMMENT_BODY_LCAT;
+ L->text_operand = Str::duplicate(mr2.exp[0]);
+ comment_mode = TRUE;
} else if ((current_paragraph) &&
(Regexp::match(&mr2, mr.exp[0], L"%(carousel%)"))) {
Tags::add_by_name(L->owning_paragraph, I"Carousels");
diff --git a/Chapter 3/The Weaver.w b/Chapter 3/The Weaver.w
index b2b6c22..84ecc96 100644
--- a/Chapter 3/The Weaver.w
+++ b/Chapter 3/The Weaver.w
@@ -279,6 +279,7 @@ at us; but we don't weave them into the output, that's for sure.
if (L->command_code == GRAMMAR_INDEX_CMD)
Trees::make_child(WeaveTree::grammar_index(tree), state->ap);
if (L->command_code == FIGURE_CMD) @;
+ if (L->command_code == AUDIO_CMD) @;
if (L->command_code == EMBED_CMD) @;
if (L->command_code == CAROUSEL_CMD) @;
if (L->command_code == CAROUSEL_ABOVE_CMD) @;
@@ -294,6 +295,11 @@ at us; but we don't weave them into the output, that's for sure.
text_stream *figname = Weaver::dimensions(L->text_operand, &w, &h, L);
Trees::make_child(WeaveTree::figure(tree, figname, w, h), state->ap);
+@ =
+ int w, h;
+ text_stream *figname = Weaver::dimensions(L->text_operand, &w, &h, L);
+ Trees::make_child(WeaveTree::audio(tree, figname, w), state->ap);
+
@ =
int w, h;
text_stream *ID = Weaver::dimensions(L->text_operand2, &w, &h, L);
diff --git a/Chapter 5/Debugging Format.w b/Chapter 5/Debugging Format.w
index e128615..f384f37 100644
--- a/Chapter 5/Debugging Format.w
+++ b/Chapter 5/Debugging Format.w
@@ -49,6 +49,7 @@ int Debugging::render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type) @
else if (N->type == weave_endnote_node_type) @
else if (N->type == weave_figure_node_type) @
+ else if (N->type == weave_audio_node_type) @
else if (N->type == weave_material_node_type) @
else if (N->type == weave_embed_node_type) @
else if (N->type == weave_pmac_node_type) @
@@ -140,6 +141,10 @@ int Debugging::render_visit(tree_node *N, void *state, int L) {
weave_figure_node *C = RETRIEVE_POINTER_weave_figure_node(N->content);
WRITE(" <%S> %d by %d", C->figname, C->w, C->h);
+@ =
+ weave_audio_node *C = RETRIEVE_POINTER_weave_audio_node(N->content);
+ WRITE(" <%S> %d", C->audio_name, C->w);
+
@ =
weave_material_node *C = RETRIEVE_POINTER_weave_material_node(N->content);
WRITE(" ");
diff --git a/Chapter 5/HTML Formats.w b/Chapter 5/HTML Formats.w
index 5c6c4c9..17bd94f 100644
--- a/Chapter 5/HTML Formats.w
+++ b/Chapter 5/HTML Formats.w
@@ -104,6 +104,7 @@ int HTMLFormat::render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type) @
else if (N->type == weave_endnote_node_type) @
else if (N->type == weave_figure_node_type) @
+ else if (N->type == weave_audio_node_type) @
else if (N->type == weave_material_node_type) @
else if (N->type == weave_embed_node_type) @
else if (N->type == weave_pmac_node_type) @
@@ -249,6 +250,20 @@ int HTMLFormat::render_visit(tree_node *N, void *state, int L) {
HTML_CLOSE("center");
WRITE("\n");
+@ =
+ 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, I"Audio"),
+ C->audio_name);
+ Patterns::copy_file_into_weave(hrs->wv->weave_web, F, NULL, NULL);
+ HTML_OPEN("center");
+ WRITE("\n");
+ WRITE("\n", C->audio_name);
+ WRITE("Your browser does not support the audio element.\n");
+ WRITE(" \n");
+ HTML_CLOSE("center");
+ WRITE("\n");
+
@ =
weave_material_node *C = RETRIEVE_POINTER_weave_material_node(N->content);
paragraph *first_in_para = NULL;
diff --git a/Chapter 5/Plain Text Format.w b/Chapter 5/Plain Text Format.w
index 3626c9b..ae48a85 100644
--- a/Chapter 5/Plain Text Format.w
+++ b/Chapter 5/Plain Text Format.w
@@ -48,6 +48,7 @@ int PlainText::render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type) @
else if (N->type == weave_endnote_node_type) @
else if (N->type == weave_figure_node_type) @
+ else if (N->type == weave_audio_node_type) @
else if (N->type == weave_material_node_type) @
else if (N->type == weave_embed_node_type) @
else if (N->type == weave_pmac_node_type) @
diff --git a/Chapter 5/TeX Format.w b/Chapter 5/TeX Format.w
index b92c954..4e073e8 100644
--- a/Chapter 5/TeX Format.w
+++ b/Chapter 5/TeX Format.w
@@ -88,6 +88,7 @@ int TeX::render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type) @
else if (N->type == weave_endnote_node_type) @
else if (N->type == weave_figure_node_type) @
+ else if (N->type == weave_audio_node_type) @
else if (N->type == weave_material_node_type) @
else if (N->type == weave_embed_node_type) @
else if (N->type == weave_pmac_node_type) @
diff --git a/Chapter 5/Weave Tree.w b/Chapter 5/Weave Tree.w
index 529669b..f8db38b 100644
--- a/Chapter 5/Weave Tree.w
+++ b/Chapter 5/Weave Tree.w
@@ -77,6 +77,12 @@ typedef struct weave_figure_node {
MEMORY_MANAGEMENT
} weave_figure_node;
+typedef struct weave_audio_node {
+ struct text_stream *audio_name;
+ int w;
+ MEMORY_MANAGEMENT
+} weave_audio_node;
+
typedef struct weave_material_node {
int material_type;
int plainly;
@@ -238,6 +244,7 @@ tree_node_type *weave_pagebreak_node_type = NULL;
tree_node_type *weave_paragraph_heading_node_type = NULL;
tree_node_type *weave_endnote_node_type = NULL;
tree_node_type *weave_figure_node_type = NULL;
+tree_node_type *weave_audio_node_type = NULL;
tree_node_type *weave_material_node_type = NULL;
tree_node_type *weave_embed_node_type = NULL;
tree_node_type *weave_pmac_node_type = NULL;
@@ -298,6 +305,8 @@ heterogeneous_tree *WeaveTree::new_tree(weave_order *wv) {
Trees::new_node_type(I"endnote", weave_endnote_node_MT, NULL);
weave_figure_node_type =
Trees::new_node_type(I"figure", weave_figure_node_MT, NULL);
+ weave_audio_node_type =
+ Trees::new_node_type(I"audio", weave_audio_node_MT, NULL);
weave_material_node_type =
Trees::new_node_type(I"material", weave_material_node_MT, NULL);
weave_embed_node_type =
@@ -475,6 +484,15 @@ tree_node *WeaveTree::figure(heterogeneous_tree *tree,
STORE_POINTER_weave_figure_node(C));
}
+tree_node *WeaveTree::audio(heterogeneous_tree *tree,
+ text_stream *audio_name, int w) {
+ weave_audio_node *C = CREATE(weave_audio_node);
+ C->audio_name = Str::duplicate(audio_name);
+ C->w = w;
+ return Trees::new_node(tree, weave_audio_node_type,
+ STORE_POINTER_weave_audio_node(C));
+}
+
tree_node *WeaveTree::material(heterogeneous_tree *tree, int material_type, int plainly,
programming_language *styling) {
weave_material_node *C = CREATE(weave_material_node);
diff --git a/Manual/How to Write a Web.w b/Manual/How to Write a Web.w
index 0f56e40..b0e707a 100644
--- a/Manual/How to Write a Web.w
+++ b/Manual/How to Write a Web.w
@@ -476,6 +476,15 @@ correspond. If you really want to monkey with the aspect ratio,
= (figure Whatever.jpg at 20 by 100)
=
+@h Audio.
+To include audio samples, place them as MP3 files in the subdirectory |Audio|
+of the web. For example, in the present web,
+= (text as Inweb)
+ = (audio SP014.mp3)
+=
+produces Space Patrol episode 14, from 1953: "Brain Bank And Space Binoculars" --
+= (audio SP014.mp3)
+
@h Carousels.
A carousel is a slide-show of (usually but not always) figures; there's a
set of slides with captions, only one of which is visible at a time.
diff --git a/Tangled/inweb.c b/Tangled/inweb.c
index dd1e110..77250e9 100644
--- a/Tangled/inweb.c
+++ b/Tangled/inweb.c
@@ -774,30 +774,31 @@ void __stdcall LeaveCriticalSection(struct Win32_Critical_Section* cs);
#define weave_endnote_node_MT 86
#define weave_material_node_MT 87
#define weave_figure_node_MT 88
-#define weave_embed_node_MT 89
-#define weave_pmac_node_MT 90
-#define weave_vskip_node_MT 91
-#define weave_chapter_node_MT 92
-#define weave_section_node_MT 93
-#define weave_code_line_node_MT 94
-#define weave_function_usage_node_MT 95
-#define weave_commentary_node_MT 96
-#define weave_carousel_slide_node_MT 97
-#define weave_toc_node_MT 98
-#define weave_toc_line_node_MT 99
-#define weave_chapter_title_page_node_MT 100
-#define weave_defn_node_MT 101
-#define weave_source_code_node_MT 102
-#define weave_url_node_MT 103
-#define weave_footnote_cue_node_MT 104
-#define weave_begin_footnote_text_node_MT 105
-#define weave_display_line_node_MT 106
-#define weave_function_defn_node_MT 107
-#define weave_item_node_MT 108
-#define weave_grammar_index_node_MT 109
-#define weave_inline_node_MT 110
-#define weave_locale_node_MT 111
-#define weave_maths_node_MT 112
+#define weave_audio_node_MT 89
+#define weave_embed_node_MT 90
+#define weave_pmac_node_MT 91
+#define weave_vskip_node_MT 92
+#define weave_chapter_node_MT 93
+#define weave_section_node_MT 94
+#define weave_code_line_node_MT 95
+#define weave_function_usage_node_MT 96
+#define weave_commentary_node_MT 97
+#define weave_carousel_slide_node_MT 98
+#define weave_toc_node_MT 99
+#define weave_toc_line_node_MT 100
+#define weave_chapter_title_page_node_MT 101
+#define weave_defn_node_MT 102
+#define weave_source_code_node_MT 103
+#define weave_url_node_MT 104
+#define weave_footnote_cue_node_MT 105
+#define weave_begin_footnote_text_node_MT 106
+#define weave_display_line_node_MT 107
+#define weave_function_defn_node_MT 108
+#define weave_item_node_MT 109
+#define weave_grammar_index_node_MT 110
+#define weave_inline_node_MT 111
+#define weave_locale_node_MT 112
+#define weave_maths_node_MT 113
#define NO_MODE 0
#define ANALYSE_MODE 1
#define TANGLE_MODE 2
@@ -876,13 +877,14 @@ void __stdcall LeaveCriticalSection(struct Win32_Critical_Section* cs);
#define PAGEBREAK_CMD 1
#define GRAMMAR_INDEX_CMD 2
#define FIGURE_CMD 3
-#define CAROUSEL_CMD 4
-#define CAROUSEL_ABOVE_CMD 5
-#define CAROUSEL_BELOW_CMD 6
-#define CAROUSEL_UNCAPTIONED_CMD 7
-#define CAROUSEL_END_CMD 8
-#define EMBED_CMD 9
-#define TAG_CMD 10
+#define AUDIO_CMD 4
+#define CAROUSEL_CMD 5
+#define CAROUSEL_ABOVE_CMD 6
+#define CAROUSEL_BELOW_CMD 7
+#define CAROUSEL_UNCAPTIONED_CMD 8
+#define CAROUSEL_END_CMD 9
+#define EMBED_CMD 10
+#define TAG_CMD 11
#define ORDINARY_WEIGHT 0 /* an ordinary paragraph has this "weight" */
#define SUBHEADING_WEIGHT 1 /* a heading paragraph */
#define BASIC_SECTIONCAT 1
@@ -999,7 +1001,7 @@ void __stdcall LeaveCriticalSection(struct Win32_Critical_Section* cs);
#define POST_PROCESS_SUBSTITUTE_POS_MTID 44
#define NO_DEFINED_CLSW_VALUES 35
#define NO_DEFINED_DA_VALUES 4
-#define NO_DEFINED_MT_VALUES 113
+#define NO_DEFINED_MT_VALUES 114
#define NO_DEFINED_MREASON_VALUES 5
#define NO_DEFINED_MTID_VALUES 44
#define NO_DEFINED_CLSF_VALUES 5
@@ -1011,7 +1013,7 @@ void __stdcall LeaveCriticalSection(struct Win32_Critical_Section* cs);
#define NO_DEFINED_MODE_VALUES 5
#define NO_DEFINED_SWM_VALUES 4
#define NO_DEFINED_LCAT_VALUES 26
-#define NO_DEFINED_CMD_VALUES 11
+#define NO_DEFINED_CMD_VALUES 12
#define NO_DEFINED_SECTIONCAT_VALUES 3
#define NO_DEFINED_MATERIAL_VALUES 6
#line 41 "inweb/foundation-module/Chapter 2/Debugging Log.w"
@@ -1638,7 +1640,7 @@ typedef struct source_line {
struct source_line *next_line; /* within the owning section's linked list */
struct paragraph *owning_paragraph; /* for lines falling under paragraphs; |NULL| if not */
} source_line;
-#line 698 "inweb/Chapter 2/The Parser.w"
+#line 706 "inweb/Chapter 2/The Parser.w"
typedef struct paragraph {
int above_bar; /* placed above the dividing bar in its section (in Version 1 syntax) */
int placed_early; /* should appear early in the tangled code */
@@ -1661,7 +1663,7 @@ typedef struct paragraph {
struct section *under_section;
MEMORY_MANAGEMENT
} paragraph;
-#line 809 "inweb/Chapter 2/The Parser.w"
+#line 817 "inweb/Chapter 2/The Parser.w"
typedef struct footnote {
int footnote_cue_number; /* used only for |FOOTNOTE_TEXT_LCAT| lines */
int footnote_text_number; /* used only for |FOOTNOTE_TEXT_LCAT| lines */
@@ -1979,13 +1981,19 @@ typedef struct weave_figure_node {
MEMORY_MANAGEMENT
} weave_figure_node;
#line 80 "inweb/Chapter 5/Weave Tree.w"
+typedef struct weave_audio_node {
+ struct text_stream *audio_name;
+ int w;
+ MEMORY_MANAGEMENT
+} weave_audio_node;
+#line 86 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_material_node {
int material_type;
int plainly;
struct programming_language *styling;
MEMORY_MANAGEMENT
} weave_material_node;
-#line 87 "inweb/Chapter 5/Weave Tree.w"
+#line 93 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_embed_node {
struct text_stream *service;
struct text_stream *ID;
@@ -1993,130 +2001,130 @@ typedef struct weave_embed_node {
int h;
MEMORY_MANAGEMENT
} weave_embed_node;
-#line 95 "inweb/Chapter 5/Weave Tree.w"
+#line 101 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_pmac_node {
struct para_macro *pmac;
int defn;
MEMORY_MANAGEMENT
} weave_pmac_node;
-#line 101 "inweb/Chapter 5/Weave Tree.w"
+#line 107 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_vskip_node {
int in_comment;
MEMORY_MANAGEMENT
} weave_vskip_node;
-#line 106 "inweb/Chapter 5/Weave Tree.w"
+#line 112 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_chapter_node {
struct chapter *chap;
MEMORY_MANAGEMENT
} weave_chapter_node;
-#line 111 "inweb/Chapter 5/Weave Tree.w"
+#line 117 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_section_node {
struct section *sect;
MEMORY_MANAGEMENT
} weave_section_node;
-#line 116 "inweb/Chapter 5/Weave Tree.w"
+#line 122 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_code_line_node {
MEMORY_MANAGEMENT
} weave_code_line_node;
-#line 120 "inweb/Chapter 5/Weave Tree.w"
+#line 126 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_function_usage_node {
struct text_stream *url;
struct language_function *fn;
MEMORY_MANAGEMENT
} weave_function_usage_node;
-#line 126 "inweb/Chapter 5/Weave Tree.w"
+#line 132 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_commentary_node {
struct text_stream *text;
int in_code;
MEMORY_MANAGEMENT
} weave_commentary_node;
-#line 132 "inweb/Chapter 5/Weave Tree.w"
+#line 138 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_carousel_slide_node {
struct text_stream *caption;
int caption_command;
MEMORY_MANAGEMENT
} weave_carousel_slide_node;
-#line 138 "inweb/Chapter 5/Weave Tree.w"
+#line 144 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_toc_node {
struct text_stream *text1;
MEMORY_MANAGEMENT
} weave_toc_node;
-#line 143 "inweb/Chapter 5/Weave Tree.w"
+#line 149 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_toc_line_node {
struct text_stream *text1;
struct text_stream *text2;
struct paragraph *para;
MEMORY_MANAGEMENT
} weave_toc_line_node;
-#line 150 "inweb/Chapter 5/Weave Tree.w"
+#line 156 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_chapter_title_page_node {
MEMORY_MANAGEMENT
} weave_chapter_title_page_node;
-#line 154 "inweb/Chapter 5/Weave Tree.w"
+#line 160 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_defn_node {
struct text_stream *keyword;
MEMORY_MANAGEMENT
} weave_defn_node;
-#line 159 "inweb/Chapter 5/Weave Tree.w"
+#line 165 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_inline_node {
MEMORY_MANAGEMENT
} weave_inline_node;
-#line 163 "inweb/Chapter 5/Weave Tree.w"
+#line 169 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_locale_node {
struct paragraph *par1;
struct paragraph *par2;
MEMORY_MANAGEMENT
} weave_locale_node;
-#line 169 "inweb/Chapter 5/Weave Tree.w"
+#line 175 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_source_code_node {
struct text_stream *matter;
struct text_stream *colouring;
MEMORY_MANAGEMENT
} weave_source_code_node;
-#line 175 "inweb/Chapter 5/Weave Tree.w"
+#line 181 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_url_node {
struct text_stream *url;
struct text_stream *content;
int external;
MEMORY_MANAGEMENT
} weave_url_node;
-#line 182 "inweb/Chapter 5/Weave Tree.w"
+#line 188 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_footnote_cue_node {
struct text_stream *cue_text;
MEMORY_MANAGEMENT
} weave_footnote_cue_node;
-#line 187 "inweb/Chapter 5/Weave Tree.w"
+#line 193 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_begin_footnote_text_node {
struct text_stream *cue_text;
MEMORY_MANAGEMENT
} weave_begin_footnote_text_node;
-#line 192 "inweb/Chapter 5/Weave Tree.w"
+#line 198 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_display_line_node {
struct text_stream *text;
MEMORY_MANAGEMENT
} weave_display_line_node;
-#line 197 "inweb/Chapter 5/Weave Tree.w"
+#line 203 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_function_defn_node {
struct language_function *fn;
MEMORY_MANAGEMENT
} weave_function_defn_node;
-#line 202 "inweb/Chapter 5/Weave Tree.w"
+#line 208 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_item_node {
int depth;
struct text_stream *label;
MEMORY_MANAGEMENT
} weave_item_node;
-#line 208 "inweb/Chapter 5/Weave Tree.w"
+#line 214 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_grammar_index_node {
MEMORY_MANAGEMENT
} weave_grammar_index_node;
-#line 212 "inweb/Chapter 5/Weave Tree.w"
+#line 218 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_maths_node {
struct text_stream *content;
int displayed;
MEMORY_MANAGEMENT
} weave_maths_node;
-#line 218 "inweb/Chapter 5/Weave Tree.w"
+#line 224 "inweb/Chapter 5/Weave Tree.w"
typedef struct weave_verbatim_node {
struct text_stream *content;
MEMORY_MANAGEMENT
@@ -3557,13 +3565,13 @@ source_line * Lines__new_source_line_in(text_stream *line, text_file_position *t
char * Lines__category_name(int cat) ;
#line 17 "inweb/Chapter 2/The Parser.w"
void Parser__parse_web(web *W, int inweb_mode) ;
-#line 791 "inweb/Chapter 2/The Parser.w"
+#line 799 "inweb/Chapter 2/The Parser.w"
text_stream * Parser__extract_purpose(text_stream *prologue, source_line *XL, section *S, source_line **adjust) ;
-#line 863 "inweb/Chapter 2/The Parser.w"
+#line 871 "inweb/Chapter 2/The Parser.w"
int Parser__detect_footnote(web *W, text_stream *matter, text_stream *before, text_stream *cue, text_stream *after) ;
-#line 906 "inweb/Chapter 2/The Parser.w"
+#line 914 "inweb/Chapter 2/The Parser.w"
footnote * Parser__find_footnote_in_para(paragraph *P, text_stream *cue) ;
-#line 922 "inweb/Chapter 2/The Parser.w"
+#line 930 "inweb/Chapter 2/The Parser.w"
void Parser__wrong_version(int using, source_line *L, char *feature, int need) ;
#line 20 "inweb/Chapter 2/Paragraph Macros.w"
para_macro * Macros__create(section *S, paragraph *P, source_line *L, text_stream *name) ;
@@ -3653,23 +3661,23 @@ void Collater__list_module(OUTPUT_STREAM, module *M, int list_this) ;
int Weaver__weave(weave_order *wv) ;
#line 42 "inweb/Chapter 3/The Weaver.w"
int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *body) ;
-#line 560 "inweb/Chapter 3/The Weaver.w"
+#line 566 "inweb/Chapter 3/The Weaver.w"
void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, paragraph *P) ;
-#line 658 "inweb/Chapter 3/The Weaver.w"
+#line 664 "inweb/Chapter 3/The Weaver.w"
void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, paragraph *P, language_function *fn, int as_list) ;
-#line 724 "inweb/Chapter 3/The Weaver.w"
-void Weaver__weave_subheading(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, text_stream *text) ;
#line 730 "inweb/Chapter 3/The Weaver.w"
+void Weaver__weave_subheading(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, text_stream *text) ;
+#line 736 "inweb/Chapter 3/The Weaver.w"
void Weaver__change_material(heterogeneous_tree *tree, weaver_state *state, int new_material, int plainly, programming_language *pl) ;
-#line 742 "inweb/Chapter 3/The Weaver.w"
+#line 748 "inweb/Chapter 3/The Weaver.w"
void Weaver__change_material_for_para(heterogeneous_tree *tree, weaver_state *state) ;
-#line 750 "inweb/Chapter 3/The Weaver.w"
-void Weaver__figure(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, text_stream *figname, int w, int h) ;
#line 756 "inweb/Chapter 3/The Weaver.w"
+void Weaver__figure(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, text_stream *figname, int w, int h) ;
+#line 762 "inweb/Chapter 3/The Weaver.w"
void Weaver__commentary_text(heterogeneous_tree *tree, weave_order *wv, tree_node *ap, text_stream *matter) ;
-#line 766 "inweb/Chapter 3/The Weaver.w"
+#line 772 "inweb/Chapter 3/The Weaver.w"
text_stream * Weaver__dimensions(text_stream *item, int *w, int *h, source_line *L) ;
-#line 813 "inweb/Chapter 3/The Weaver.w"
+#line 819 "inweb/Chapter 3/The Weaver.w"
int Weaver__weave_table_of_contents(heterogeneous_tree *tree, tree_node *ap, section *S) ;
#line 12 "inweb/Chapter 3/The Weaver of Text.w"
void TextWeaver__commentary_text(heterogeneous_tree *tree, tree_node *ap, text_stream *matter) ;
@@ -3923,95 +3931,97 @@ void InCSupport__new_tag_declared(programming_language *self, theme_tag *tag) ;
void InCSupport__analyse_code(programming_language *self, web *W) ;
#line 968 "inweb/Chapter 4/InC Support.w"
int InCSupport__share_element(programming_language *self, text_stream *elname) ;
-#line 267 "inweb/Chapter 5/Weave Tree.w"
+#line 274 "inweb/Chapter 5/Weave Tree.w"
heterogeneous_tree * WeaveTree__new_tree(weave_order *wv) ;
-#line 360 "inweb/Chapter 5/Weave Tree.w"
+#line 369 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__document(heterogeneous_tree *tree, weave_order *wv) ;
-#line 367 "inweb/Chapter 5/Weave Tree.w"
+#line 376 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__head(heterogeneous_tree *tree, text_stream *banner) ;
-#line 374 "inweb/Chapter 5/Weave Tree.w"
+#line 383 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__body(heterogeneous_tree *tree) ;
-#line 380 "inweb/Chapter 5/Weave Tree.w"
+#line 389 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__tail(heterogeneous_tree *tree, text_stream *rennab) ;
-#line 387 "inweb/Chapter 5/Weave Tree.w"
+#line 396 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__verbatim(heterogeneous_tree *tree, text_stream *content) ;
-#line 394 "inweb/Chapter 5/Weave Tree.w"
+#line 403 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__section_header(heterogeneous_tree *tree, section *S) ;
-#line 401 "inweb/Chapter 5/Weave Tree.w"
+#line 410 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__section_footer(heterogeneous_tree *tree, section *S) ;
-#line 408 "inweb/Chapter 5/Weave Tree.w"
+#line 417 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__chapter(heterogeneous_tree *tree, chapter *Ch) ;
-#line 414 "inweb/Chapter 5/Weave Tree.w"
+#line 423 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__chapter_header(heterogeneous_tree *tree, chapter *Ch) ;
-#line 421 "inweb/Chapter 5/Weave Tree.w"
+#line 430 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__chapter_footer(heterogeneous_tree *tree, chapter *Ch) ;
-#line 428 "inweb/Chapter 5/Weave Tree.w"
+#line 437 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__purpose(heterogeneous_tree *tree, text_stream *P) ;
-#line 435 "inweb/Chapter 5/Weave Tree.w"
+#line 444 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__subheading(heterogeneous_tree *tree, text_stream *P) ;
-#line 442 "inweb/Chapter 5/Weave Tree.w"
+#line 451 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__pagebreak(heterogeneous_tree *tree) ;
-#line 448 "inweb/Chapter 5/Weave Tree.w"
+#line 457 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__bar(heterogeneous_tree *tree) ;
-#line 454 "inweb/Chapter 5/Weave Tree.w"
+#line 463 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__paragraph_heading(heterogeneous_tree *tree, paragraph *P, int no_skip) ;
-#line 462 "inweb/Chapter 5/Weave Tree.w"
+#line 471 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__endnote(heterogeneous_tree *tree) ;
-#line 468 "inweb/Chapter 5/Weave Tree.w"
+#line 477 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__figure(heterogeneous_tree *tree, text_stream *figname, int w, int h) ;
-#line 478 "inweb/Chapter 5/Weave Tree.w"
-tree_node * WeaveTree__material(heterogeneous_tree *tree, int material_type, int plainly, programming_language *styling) ;
#line 487 "inweb/Chapter 5/Weave Tree.w"
+tree_node * WeaveTree__audio(heterogeneous_tree *tree, text_stream *audio_name, int w) ;
+#line 496 "inweb/Chapter 5/Weave Tree.w"
+tree_node * WeaveTree__material(heterogeneous_tree *tree, int material_type, int plainly, programming_language *styling) ;
+#line 505 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__embed(heterogeneous_tree *tree, text_stream *service, text_stream *ID, int w, int h) ;
-#line 502 "inweb/Chapter 5/Weave Tree.w"
-tree_node * WeaveTree__pmac(heterogeneous_tree *tree, para_macro *pmac, int defn) ;
-#line 514 "inweb/Chapter 5/Weave Tree.w"
-tree_node * WeaveTree__vskip(heterogeneous_tree *tree, int in_comment) ;
#line 520 "inweb/Chapter 5/Weave Tree.w"
+tree_node * WeaveTree__pmac(heterogeneous_tree *tree, para_macro *pmac, int defn) ;
+#line 532 "inweb/Chapter 5/Weave Tree.w"
+tree_node * WeaveTree__vskip(heterogeneous_tree *tree, int in_comment) ;
+#line 538 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__section(heterogeneous_tree *tree, section *sect) ;
-#line 526 "inweb/Chapter 5/Weave Tree.w"
+#line 544 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__code_line(heterogeneous_tree *tree) ;
-#line 531 "inweb/Chapter 5/Weave Tree.w"
+#line 549 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__function_usage(heterogeneous_tree *tree, text_stream *url, language_function *fn) ;
-#line 539 "inweb/Chapter 5/Weave Tree.w"
+#line 557 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__commentary(heterogeneous_tree *tree, text_stream *text, int in_code) ;
-#line 546 "inweb/Chapter 5/Weave Tree.w"
+#line 564 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__carousel_slide(heterogeneous_tree *tree, text_stream *caption, int c) ;
-#line 553 "inweb/Chapter 5/Weave Tree.w"
+#line 571 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__table_of_contents(heterogeneous_tree *tree, text_stream *text1) ;
-#line 559 "inweb/Chapter 5/Weave Tree.w"
+#line 577 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__contents_line(heterogeneous_tree *tree, text_stream *text1, text_stream *text2, paragraph *P) ;
-#line 568 "inweb/Chapter 5/Weave Tree.w"
+#line 586 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__weave_chapter_title_page_node(heterogeneous_tree *tree) ;
-#line 573 "inweb/Chapter 5/Weave Tree.w"
+#line 591 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__weave_defn_node(heterogeneous_tree *tree, text_stream *keyword) ;
-#line 583 "inweb/Chapter 5/Weave Tree.w"
+#line 601 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__source_code(heterogeneous_tree *tree, text_stream *matter, text_stream *colouring) ;
-#line 594 "inweb/Chapter 5/Weave Tree.w"
+#line 612 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__url(heterogeneous_tree *tree, text_stream *url, text_stream *content, int external) ;
-#line 603 "inweb/Chapter 5/Weave Tree.w"
+#line 621 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__footnote_cue(heterogeneous_tree *tree, text_stream *cue) ;
-#line 609 "inweb/Chapter 5/Weave Tree.w"
+#line 627 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__footnote(heterogeneous_tree *tree, text_stream *cue) ;
-#line 619 "inweb/Chapter 5/Weave Tree.w"
+#line 637 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__function_defn(heterogeneous_tree *tree, language_function *fn) ;
-#line 629 "inweb/Chapter 5/Weave Tree.w"
+#line 647 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__display_line(heterogeneous_tree *tree, text_stream *text) ;
-#line 648 "inweb/Chapter 5/Weave Tree.w"
+#line 666 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__weave_item_node(heterogeneous_tree *tree, int depth, text_stream *label) ;
-#line 655 "inweb/Chapter 5/Weave Tree.w"
+#line 673 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__grammar_index(heterogeneous_tree *tree) ;
-#line 660 "inweb/Chapter 5/Weave Tree.w"
+#line 678 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__inline(heterogeneous_tree *tree) ;
-#line 665 "inweb/Chapter 5/Weave Tree.w"
+#line 683 "inweb/Chapter 5/Weave Tree.w"
tree_node * WeaveTree__locale(heterogeneous_tree *tree, paragraph *par1, paragraph *par2) ;
-#line 672 "inweb/Chapter 5/Weave Tree.w"
-tree_node * WeaveTree__mathematics(heterogeneous_tree *tree, text_stream *content, int displayed) ;
-#line 679 "inweb/Chapter 5/Weave Tree.w"
-void WeaveTree__show(text_stream *OUT, heterogeneous_tree *T) ;
-#line 686 "inweb/Chapter 5/Weave Tree.w"
-void WeaveTree__prune(heterogeneous_tree *T) ;
#line 690 "inweb/Chapter 5/Weave Tree.w"
+tree_node * WeaveTree__mathematics(heterogeneous_tree *tree, text_stream *content, int displayed) ;
+#line 697 "inweb/Chapter 5/Weave Tree.w"
+void WeaveTree__show(text_stream *OUT, heterogeneous_tree *T) ;
+#line 704 "inweb/Chapter 5/Weave Tree.w"
+void WeaveTree__prune(heterogeneous_tree *T) ;
+#line 708 "inweb/Chapter 5/Weave Tree.w"
int WeaveTree__prune_visit(tree_node *N, void *state) ;
#line 18 "inweb/Chapter 5/Format Methods.w"
weave_format * Formats__create_weave_format(text_stream *name, text_stream *ext) ;
@@ -4045,21 +4055,21 @@ void PlainText__create(void) ;
void PlainText__render(weave_format *self, text_stream *OUT, heterogeneous_tree *tree) ;
#line 32 "inweb/Chapter 5/Plain Text Format.w"
int PlainText__render_visit(tree_node *N, void *state, int L) ;
-#line 221 "inweb/Chapter 5/Plain Text Format.w"
+#line 222 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__subheading(weave_format *self, text_stream *OUT, weave_order *wv, int level, text_stream *comment, text_stream *head) ;
-#line 228 "inweb/Chapter 5/Plain Text Format.w"
+#line 229 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__toc(weave_format *self, text_stream *OUT, weave_order *wv, int stage, text_stream *text1, text_stream *text2, paragraph *P) ;
-#line 239 "inweb/Chapter 5/Plain Text Format.w"
+#line 240 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__chapter_title_page(weave_format *self, text_stream *OUT, weave_order *wv, chapter *C) ;
-#line 249 "inweb/Chapter 5/Plain Text Format.w"
+#line 250 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__para_macro(weave_format *self, text_stream *OUT, weave_order *wv, para_macro *pmac, int defn) ;
-#line 257 "inweb/Chapter 5/Plain Text Format.w"
+#line 258 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__blank_line(weave_format *self, text_stream *OUT, weave_order *wv, int in_comment) ;
-#line 263 "inweb/Chapter 5/Plain Text Format.w"
+#line 264 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__endnote(weave_format *self, text_stream *OUT, weave_order *wv, int end) ;
-#line 269 "inweb/Chapter 5/Plain Text Format.w"
+#line 270 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__commentary_text(weave_format *self, text_stream *OUT, weave_order *wv, text_stream *id) ;
-#line 275 "inweb/Chapter 5/Plain Text Format.w"
+#line 276 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__locale(weave_format *self, text_stream *OUT, weave_order *wv, paragraph *par1, paragraph *par2) ;
#line 9 "inweb/Chapter 5/TeX Format.w"
void TeX__create(void) ;
@@ -4073,51 +4083,51 @@ void TeX__render_PDF(weave_format *self, text_stream *OUT, heterogeneous_tree *
void TeX__render_inner(weave_format *self, text_stream *OUT, heterogeneous_tree *tree, int as_dvi, int as_pdf) ;
#line 72 "inweb/Chapter 5/TeX Format.w"
int TeX__render_visit(tree_node *N, void *state, int L) ;
-#line 342 "inweb/Chapter 5/TeX Format.w"
+#line 343 "inweb/Chapter 5/TeX Format.w"
int TeX__preserve_math_mode(weave_format *self, weave_order *wv, text_stream *matter, text_stream *id) ;
-#line 347 "inweb/Chapter 5/TeX Format.w"
+#line 348 "inweb/Chapter 5/TeX Format.w"
int TeX__yes(weave_format *self, weave_order *wv) ;
-#line 352 "inweb/Chapter 5/TeX Format.w"
+#line 353 "inweb/Chapter 5/TeX Format.w"
void TeX__subheading(weave_format *self, text_stream *OUT, weave_order *wv, int level, text_stream *comment, text_stream *head) ;
-#line 368 "inweb/Chapter 5/TeX Format.w"
+#line 369 "inweb/Chapter 5/TeX Format.w"
void TeX__toc(weave_format *self, text_stream *OUT, weave_order *wv, int stage, text_stream *text1, text_stream *text2, paragraph *P) ;
-#line 387 "inweb/Chapter 5/TeX Format.w"
+#line 388 "inweb/Chapter 5/TeX Format.w"
void TeX__chapter_title_page(weave_format *self, text_stream *OUT, weave_order *wv, chapter *C) ;
-#line 400 "inweb/Chapter 5/TeX Format.w"
+#line 401 "inweb/Chapter 5/TeX Format.w"
void TeX__paragraph_heading(weave_format *self, text_stream *OUT, weave_order *wv, section *S, paragraph *P, text_stream *heading_text, int weight, int no_skip) ;
-#line 497 "inweb/Chapter 5/TeX Format.w"
+#line 498 "inweb/Chapter 5/TeX Format.w"
void TeX__source_code(weave_format *self, text_stream *OUT, weave_order *wv, text_stream *matter, text_stream *colouring, int starts) ;
-#line 527 "inweb/Chapter 5/TeX Format.w"
+#line 528 "inweb/Chapter 5/TeX Format.w"
void TeX__inline_code(weave_format *self, text_stream *OUT, weave_order *wv, int enter) ;
-#line 533 "inweb/Chapter 5/TeX Format.w"
+#line 534 "inweb/Chapter 5/TeX Format.w"
void TeX__change_colour_PDF(weave_format *self, text_stream *OUT, weave_order *wv, int col, int in_code) ;
-#line 557 "inweb/Chapter 5/TeX Format.w"
+#line 558 "inweb/Chapter 5/TeX Format.w"
void TeX__para_macro_PDF_1(weave_format *self, text_stream *OUT, weave_order *wv, para_macro *pmac, int defn) ;
-#line 566 "inweb/Chapter 5/TeX Format.w"
+#line 567 "inweb/Chapter 5/TeX Format.w"
void TeX__para_macro(weave_format *self, text_stream *OUT, weave_order *wv, para_macro *pmac, int defn) ;
-#line 575 "inweb/Chapter 5/TeX Format.w"
+#line 576 "inweb/Chapter 5/TeX Format.w"
void TeX__para_macro_PDF_2(weave_format *self, text_stream *OUT, weave_order *wv, para_macro *pmac, int defn) ;
-#line 584 "inweb/Chapter 5/TeX Format.w"
+#line 585 "inweb/Chapter 5/TeX Format.w"
void TeX__after_definitions(weave_format *self, text_stream *OUT, weave_order *wv) ;
-#line 589 "inweb/Chapter 5/TeX Format.w"
+#line 590 "inweb/Chapter 5/TeX Format.w"
void TeX__commentary_text(weave_format *self, text_stream *OUT, weave_order *wv, text_stream *id) ;
-#line 612 "inweb/Chapter 5/TeX Format.w"
+#line 613 "inweb/Chapter 5/TeX Format.w"
void TeX__locale(weave_format *self, text_stream *OUT, weave_order *wv, paragraph *par1, paragraph *par2) ;
-#line 619 "inweb/Chapter 5/TeX Format.w"
+#line 620 "inweb/Chapter 5/TeX Format.w"
void TeX__tail(weave_format *self, text_stream *OUT, weave_order *wv, text_stream *comment, section *S) ;
-#line 629 "inweb/Chapter 5/TeX Format.w"
+#line 630 "inweb/Chapter 5/TeX Format.w"
int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_order *wv, chapter *C, section *S, source_line *L, text_stream *matter, text_stream *concluding_comment) ;
-#line 710 "inweb/Chapter 5/TeX Format.w"
+#line 711 "inweb/Chapter 5/TeX Format.w"
void TeX__post_process_PDF(weave_format *self, weave_order *wv, int open) ;
-#line 713 "inweb/Chapter 5/TeX Format.w"
+#line 714 "inweb/Chapter 5/TeX Format.w"
void TeX__post_process_DVI(weave_format *self, weave_order *wv, int open) ;
-#line 718 "inweb/Chapter 5/TeX Format.w"
+#line 719 "inweb/Chapter 5/TeX Format.w"
void TeX__post_process_report(weave_format *self, weave_order *wv) ;
-#line 723 "inweb/Chapter 5/TeX Format.w"
+#line 724 "inweb/Chapter 5/TeX Format.w"
int TeX__post_process_substitute(weave_format *self, text_stream *OUT, weave_order *wv, text_stream *detail, weave_pattern *pattern) ;
-#line 736 "inweb/Chapter 5/TeX Format.w"
+#line 737 "inweb/Chapter 5/TeX Format.w"
void TeX__remove_math_mode(OUTPUT_STREAM, text_stream *text) ;
-#line 743 "inweb/Chapter 5/TeX Format.w"
+#line 744 "inweb/Chapter 5/TeX Format.w"
void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int to) ;
#line 9 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__create(void) ;
@@ -4129,19 +4139,19 @@ void HTMLFormat__render(weave_format *self, text_stream *OUT, heterogeneous_tre
void HTMLFormat__render_EPUB(weave_format *self, text_stream *OUT, heterogeneous_tree *tree) ;
#line 84 "inweb/Chapter 5/HTML Formats.w"
int HTMLFormat__render_visit(tree_node *N, void *state, int L) ;
-#line 697 "inweb/Chapter 5/HTML Formats.w"
+#line 712 "inweb/Chapter 5/HTML Formats.w"
int HTMLFormat__interior_material(tree_node *N) ;
-#line 711 "inweb/Chapter 5/HTML Formats.w"
+#line 726 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__go_to_depth(HTML_render_state *hrs, int from_depth, int to_depth) ;
-#line 729 "inweb/Chapter 5/HTML Formats.w"
+#line 744 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__paragraph_number(text_stream *OUT, paragraph *P) ;
-#line 742 "inweb/Chapter 5/HTML Formats.w"
+#line 757 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__change_colour(text_stream *OUT, int col, colour_scheme *cs) ;
-#line 766 "inweb/Chapter 5/HTML Formats.w"
+#line 781 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__escape_text(text_stream *OUT, text_stream *id) ;
-#line 778 "inweb/Chapter 5/HTML Formats.w"
-int HTMLFormat__begin_weaving_EPUB(weave_format *wf, web *W, weave_pattern *pattern) ;
#line 793 "inweb/Chapter 5/HTML Formats.w"
+int HTMLFormat__begin_weaving_EPUB(weave_format *wf, web *W, weave_pattern *pattern) ;
+#line 808 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__end_weaving_EPUB(weave_format *wf, web *W, weave_pattern *pattern) ;
#line 9 "inweb/Chapter 5/Debugging Format.w"
void Debugging__create(void) ;
@@ -4149,11 +4159,11 @@ void Debugging__create(void) ;
void Debugging__render(weave_format *self, text_stream *OUT, heterogeneous_tree *tree) ;
#line 31 "inweb/Chapter 5/Debugging Format.w"
int Debugging__render_visit(tree_node *N, void *state, int L) ;
-#line 258 "inweb/Chapter 5/Debugging Format.w"
+#line 263 "inweb/Chapter 5/Debugging Format.w"
void Debugging__show_text(text_stream *OUT, text_stream *text, int limit) ;
-#line 269 "inweb/Chapter 5/Debugging Format.w"
-void Debugging__show_para(text_stream *OUT, paragraph *P) ;
#line 274 "inweb/Chapter 5/Debugging Format.w"
+void Debugging__show_para(text_stream *OUT, paragraph *P) ;
+#line 279 "inweb/Chapter 5/Debugging Format.w"
void Debugging__show_mat(text_stream *OUT, int m) ;
#line 20 "inweb/Chapter 5/Weave Plugins.w"
weave_plugin * WeavePlugins__new(text_stream *name) ;
@@ -4844,6 +4854,9 @@ text_stream *TL_IS_588 = NULL;
text_stream *TL_IS_589 = NULL;
text_stream *TL_IS_590 = NULL;
text_stream *TL_IS_591 = NULL;
+text_stream *TL_IS_592 = NULL;
+text_stream *TL_IS_593 = NULL;
+text_stream *TL_IS_594 = NULL;
void register_tangled_text_literals(void);
#line 57 "inweb/foundation-module/Chapter 2/Streams.w"
#define WRITE(args...) Writers__printf(OUT, args)
@@ -14374,7 +14387,7 @@ void BuildFiles__increment(text_stream *T) {
}
}
-#line 95 "inweb/Chapter 1/Basics.w"
+#line 96 "inweb/Chapter 1/Basics.w"
ALLOCATE_IN_ARRAYS(source_line, 1000)
ALLOCATE_INDIVIDUALLY(breadcrumb_request)
ALLOCATE_INDIVIDUALLY(chapter)
@@ -14429,6 +14442,7 @@ ALLOCATE_INDIVIDUALLY(weave_paragraph_heading_node)
ALLOCATE_INDIVIDUALLY(weave_endnote_node)
ALLOCATE_INDIVIDUALLY(weave_material_node)
ALLOCATE_INDIVIDUALLY(weave_figure_node)
+ALLOCATE_INDIVIDUALLY(weave_audio_node)
ALLOCATE_INDIVIDUALLY(weave_embed_node)
ALLOCATE_INDIVIDUALLY(weave_pmac_node)
ALLOCATE_INDIVIDUALLY(weave_vskip_node)
@@ -15984,7 +15998,7 @@ char *Lines__category_name(int cat) {
return "(?unknown)";
}
-#line 164 "inweb/Chapter 2/Line Categories.w"
+#line 165 "inweb/Chapter 2/Line Categories.w"
#line 17 "inweb/Chapter 2/The Parser.w"
void Parser__parse_web(web *W, int inweb_mode) {
@@ -16252,15 +16266,15 @@ void Parser__parse_web(web *W, int inweb_mode) {
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text%)"))) {
{
-#line 440 "inweb/Chapter 2/The Parser.w"
+#line 448 "inweb/Chapter 2/The Parser.w"
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_169)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_170)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_170)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_171)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_171, L);
+ TL_IS_172, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -16278,15 +16292,15 @@ void Parser__parse_web(web *W, int inweb_mode) {
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text as code%)"))) {
{
-#line 440 "inweb/Chapter 2/The Parser.w"
+#line 448 "inweb/Chapter 2/The Parser.w"
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_169)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_170)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_170)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_171)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_171, L);
+ TL_IS_172, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -16304,15 +16318,15 @@ void Parser__parse_web(web *W, int inweb_mode) {
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text as (%c+)%)"))) {
{
-#line 440 "inweb/Chapter 2/The Parser.w"
+#line 448 "inweb/Chapter 2/The Parser.w"
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_169)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_170)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_170)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_171)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_171, L);
+ TL_IS_172, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -16330,15 +16344,15 @@ void Parser__parse_web(web *W, int inweb_mode) {
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text from (%c+) as code%)"))) {
{
-#line 440 "inweb/Chapter 2/The Parser.w"
+#line 448 "inweb/Chapter 2/The Parser.w"
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_169)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_170)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_170)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_171)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_171, L);
+ TL_IS_172, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -16352,7 +16366,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
code_pl_for_body = S->sect_language;
{
-#line 456 "inweb/Chapter 2/The Parser.w"
+#line 464 "inweb/Chapter 2/The Parser.w"
L->category = BEGIN_CODE_LCAT;
pathname *P = W->md->path_to_web;
filename *F = Filenames__from_text_relative(P, mr2.exp[1]);
@@ -16366,7 +16380,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_172, &(L->source), S);
+ source_line *EEL = Lines__new_source_line_in(TL_IS_173, &(L->source), S);
EEL->next_line = latest->next_line;
latest->next_line = EEL;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
@@ -16379,15 +16393,15 @@ void Parser__parse_web(web *W, int inweb_mode) {
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text from (%c+) as (%c+)%)"))) {
{
-#line 440 "inweb/Chapter 2/The Parser.w"
+#line 448 "inweb/Chapter 2/The Parser.w"
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_169)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_170)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_170)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_171)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_171, L);
+ TL_IS_172, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -16401,7 +16415,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
code_pl_for_body = Languages__find_by_name(mr2.exp[2], W);
{
-#line 456 "inweb/Chapter 2/The Parser.w"
+#line 464 "inweb/Chapter 2/The Parser.w"
L->category = BEGIN_CODE_LCAT;
pathname *P = W->md->path_to_web;
filename *F = Filenames__from_text_relative(P, mr2.exp[1]);
@@ -16415,7 +16429,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_172, &(L->source), S);
+ source_line *EEL = Lines__new_source_line_in(TL_IS_173, &(L->source), S);
EEL->next_line = latest->next_line;
latest->next_line = EEL;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
@@ -16428,15 +16442,15 @@ void Parser__parse_web(web *W, int inweb_mode) {
(Regexp__match(&mr2, mr.exp[0], L"%((%c*?) *text from (%c+)%)"))) {
{
-#line 440 "inweb/Chapter 2/The Parser.w"
+#line 448 "inweb/Chapter 2/The Parser.w"
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_169)) L->plainer = TRUE;
- else if (Str__eq(mr3.exp[0], TL_IS_170)) L->enable_hyperlinks = TRUE;
+ if (Str__eq(mr3.exp[0], TL_IS_170)) L->plainer = TRUE;
+ else if (Str__eq(mr3.exp[0], TL_IS_171)) L->enable_hyperlinks = TRUE;
else {
Main__error_in_web(
- TL_IS_171, L);
+ TL_IS_172, L);
}
} else break;
Str__clear(mr2.exp[0]);
@@ -16450,7 +16464,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
code_pl_for_body = NULL;
{
-#line 456 "inweb/Chapter 2/The Parser.w"
+#line 464 "inweb/Chapter 2/The Parser.w"
L->category = BEGIN_CODE_LCAT;
pathname *P = W->md->path_to_web;
filename *F = Filenames__from_text_relative(P, mr2.exp[1]);
@@ -16464,7 +16478,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_172, &(L->source), S);
+ source_line *EEL = Lines__new_source_line_in(TL_IS_173, &(L->source), S);
EEL->next_line = latest->next_line;
latest->next_line = EEL;
code_lcat_for_body = TEXT_EXTRACT_LCAT;
@@ -16482,8 +16496,16 @@ void Parser__parse_web(web *W, int inweb_mode) {
L->text_operand = Str__duplicate(mr2.exp[0]);
comment_mode = TRUE;
} else if ((current_paragraph) &&
- (Regexp__match(&mr2, mr.exp[0], L"%(carousel%)"))) {
+ (Regexp__match(&mr2, mr.exp[0], L"%(audio (%c+)%)"))) {
Tags__add_by_name(L->owning_paragraph, TL_IS_161);
+ L->command_code = AUDIO_CMD;
+ L->category = COMMAND_LCAT;
+ code_lcat_for_body = COMMENT_BODY_LCAT;
+ L->text_operand = Str__duplicate(mr2.exp[0]);
+ comment_mode = TRUE;
+ } else if ((current_paragraph) &&
+ (Regexp__match(&mr2, mr.exp[0], L"%(carousel%)"))) {
+ Tags__add_by_name(L->owning_paragraph, TL_IS_162);
L->command_code = CAROUSEL_UNCAPTIONED_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -16491,7 +16513,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_162);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_163);
L->command_code = CAROUSEL_BELOW_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -16499,7 +16521,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_163);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_164);
L->command_code = CAROUSEL_ABOVE_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -16507,7 +16529,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_164);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_165);
L->command_code = CAROUSEL_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -16515,7 +16537,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_165);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_166);
L->command_code = CAROUSEL_END_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -16523,7 +16545,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_166);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_167);
L->command_code = EMBED_CMD;
L->category = COMMAND_LCAT;
code_lcat_for_body = COMMENT_BODY_LCAT;
@@ -16531,10 +16553,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_167, L);
+ Main__error_in_web(TL_IS_168, L);
}
} else if (Regexp__match(&mr, L->text, L"= *%C%c*")) {
- Main__error_in_web(TL_IS_168, L);
+ Main__error_in_web(TL_IS_169, L);
}
code_plainness_for_body = L->plainer;
hyperlink_body = L->enable_hyperlinks;
@@ -16563,12 +16585,12 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
{
-#line 482 "inweb/Chapter 2/The Parser.w"
+#line 490 "inweb/Chapter 2/The Parser.w"
extract_mode = FALSE;
if (Str__eq_wide_string(command_text, L"Purpose:"))
{
-#line 530 "inweb/Chapter 2/The Parser.w"
- if (before_bar == FALSE) Main__error_in_web(TL_IS_174, L);
+#line 538 "inweb/Chapter 2/The Parser.w"
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_175, L);
if (S->md->using_syntax >= V2_SYNTAX)
Parser__wrong_version(S->md->using_syntax, L, "'@Purpose'", V1_SYNTAX);
L->category = PURPOSE_LCAT;
@@ -16577,14 +16599,14 @@ void Parser__parse_web(web *W, int inweb_mode) {
S->sect_purpose = Parser__extract_purpose(remainder, L->next_line, L->owning_section, &L);
}
-#line 483 "inweb/Chapter 2/The Parser.w"
+#line 491 "inweb/Chapter 2/The Parser.w"
else if (Str__eq_wide_string(command_text, L"Interface:"))
{
-#line 539 "inweb/Chapter 2/The Parser.w"
+#line 547 "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_175, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_176, L);
L->category = INTERFACE_LCAT;
L->owning_paragraph = NULL;
L->is_commentary = TRUE;
@@ -16597,14 +16619,14 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
}
-#line 484 "inweb/Chapter 2/The Parser.w"
+#line 492 "inweb/Chapter 2/The Parser.w"
else if (Str__eq_wide_string(command_text, L"Definitions:"))
{
-#line 554 "inweb/Chapter 2/The Parser.w"
+#line 562 "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_176, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_177, L);
L->category = DEFINITIONS_LCAT;
L->owning_paragraph = NULL;
L->is_commentary = TRUE;
@@ -16612,14 +16634,14 @@ void Parser__parse_web(web *W, int inweb_mode) {
next_par_number = 1;
}
-#line 485 "inweb/Chapter 2/The Parser.w"
+#line 493 "inweb/Chapter 2/The Parser.w"
else if (Regexp__match(&mr, command_text, L"----+"))
{
-#line 567 "inweb/Chapter 2/The Parser.w"
+#line 575 "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_177, L);
+ if (before_bar == FALSE) Main__error_in_web(TL_IS_178, L);
L->category = BAR_LCAT;
L->owning_paragraph = NULL;
L->is_commentary = TRUE;
@@ -16629,14 +16651,14 @@ void Parser__parse_web(web *W, int inweb_mode) {
next_par_number = 1;
}
-#line 486 "inweb/Chapter 2/The Parser.w"
+#line 494 "inweb/Chapter 2/The Parser.w"
else if ((Str__eq_wide_string(command_text, L"c")) ||
(Str__eq_wide_string(command_text, L"x")) ||
((S->md->using_syntax == V1_SYNTAX) && (Str__eq_wide_string(command_text, L"e"))))
{
-#line 585 "inweb/Chapter 2/The Parser.w"
+#line 593 "inweb/Chapter 2/The Parser.w"
if (S->md->using_syntax > V1_SYNTAX)
Parser__wrong_version(S->md->using_syntax, L, "'@c' and '@x'", V1_SYNTAX);
L->category = BEGIN_CODE_LCAT;
@@ -16650,11 +16672,11 @@ void Parser__parse_web(web *W, int inweb_mode) {
hyperlink_body = FALSE;
}
-#line 490 "inweb/Chapter 2/The Parser.w"
+#line 498 "inweb/Chapter 2/The Parser.w"
else if (Str__eq_wide_string(command_text, L"d"))
{
-#line 601 "inweb/Chapter 2/The Parser.w"
+#line 609 "inweb/Chapter 2/The Parser.w"
L->category = BEGIN_DEFINITION_LCAT;
code_lcat_for_body = CONT_DEFINITION_LCAT;
code_pl_for_body = NULL;
@@ -16672,14 +16694,14 @@ void Parser__parse_web(web *W, int inweb_mode) {
Regexp__dispose_of(&mr);
}
-#line 491 "inweb/Chapter 2/The Parser.w"
+#line 499 "inweb/Chapter 2/The Parser.w"
else if (Str__eq_wide_string(command_text, L"define")) {
if (S->md->using_syntax < V2_SYNTAX)
Parser__wrong_version(S->md->using_syntax, L, "'@define' for definitions (use '@d' instead)", V2_SYNTAX);
{
-#line 601 "inweb/Chapter 2/The Parser.w"
+#line 609 "inweb/Chapter 2/The Parser.w"
L->category = BEGIN_DEFINITION_LCAT;
code_lcat_for_body = CONT_DEFINITION_LCAT;
code_pl_for_body = NULL;
@@ -16696,101 +16718,101 @@ void Parser__parse_web(web *W, int inweb_mode) {
L->is_commentary = FALSE;
Regexp__dispose_of(&mr);
-}
-#line 495 "inweb/Chapter 2/The Parser.w"
-;
- } else if (Str__eq_wide_string(command_text, L"default")) {
- if (S->md->using_syntax < V2_SYNTAX)
- Parser__wrong_version(S->md->using_syntax, L, "'@default' for definitions", V2_SYNTAX);
- L->default_defn = TRUE;
-
-{
-#line 601 "inweb/Chapter 2/The Parser.w"
- L->category = BEGIN_DEFINITION_LCAT;
- code_lcat_for_body = CONT_DEFINITION_LCAT;
- code_pl_for_body = NULL;
- match_results mr = Regexp__create_mr();
- if (Regexp__match(&mr, remainder, L"(%C+) (%c+)")) {
- L->text_operand = Str__duplicate(mr.exp[0]); /* name of term defined */
- L->text_operand2 = Str__duplicate(mr.exp[1]); /* Value */
- } else {
- L->text_operand = Str__duplicate(remainder); /* name of term defined */
- L->text_operand2 = Str__new(); /* no value given */
- }
- Analyser__mark_reserved_word_at_line(L, L->text_operand, CONSTANT_COLOUR);
- comment_mode = FALSE;
- L->is_commentary = FALSE;
- Regexp__dispose_of(&mr);
-
-}
-#line 500 "inweb/Chapter 2/The Parser.w"
-;
- } else if (Str__eq_wide_string(command_text, L"enum"))
-{
-#line 621 "inweb/Chapter 2/The Parser.w"
- L->category = BEGIN_DEFINITION_LCAT;
- text_stream *from = NULL;
- match_results mr = Regexp__create_mr();
- L->text_operand = Str__duplicate(remainder); /* name of term defined */
- TEMPORARY_TEXT(before);
- TEMPORARY_TEXT(after);
- if (LanguageMethods__parse_comment(S->sect_language, L->text_operand,
- before, after)) {
- Str__copy(L->text_operand, before);
- }
- DISCARD_TEXT(before);
- DISCARD_TEXT(after);
- Str__trim_white_space(L->text_operand);
- if (Regexp__match(&mr, L->text_operand, L"(%C+) from (%c+)")) {
- 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_178, L);
- }
- L->text_operand2 = Str__new();
- if (inweb_mode == TANGLE_MODE)
- Enumerations__define(L->text_operand2, L->text_operand, from, L);
- Analyser__mark_reserved_word_at_line(L, L->text_operand, CONSTANT_COLOUR);
- comment_mode = FALSE;
- L->is_commentary = FALSE;
- Regexp__dispose_of(&mr);
-
-}
-#line 501 "inweb/Chapter 2/The Parser.w"
-
- else if ((Str__eq_wide_string(command_text, L"e")) && (S->md->using_syntax >= V2_SYNTAX))
-
-{
-#line 621 "inweb/Chapter 2/The Parser.w"
- L->category = BEGIN_DEFINITION_LCAT;
- text_stream *from = NULL;
- match_results mr = Regexp__create_mr();
- L->text_operand = Str__duplicate(remainder); /* name of term defined */
- TEMPORARY_TEXT(before);
- TEMPORARY_TEXT(after);
- if (LanguageMethods__parse_comment(S->sect_language, L->text_operand,
- before, after)) {
- Str__copy(L->text_operand, before);
- }
- DISCARD_TEXT(before);
- DISCARD_TEXT(after);
- Str__trim_white_space(L->text_operand);
- if (Regexp__match(&mr, L->text_operand, L"(%C+) from (%c+)")) {
- 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_178, L);
- }
- L->text_operand2 = Str__new();
- if (inweb_mode == TANGLE_MODE)
- Enumerations__define(L->text_operand2, L->text_operand, from, L);
- Analyser__mark_reserved_word_at_line(L, L->text_operand, CONSTANT_COLOUR);
- comment_mode = FALSE;
- L->is_commentary = FALSE;
- Regexp__dispose_of(&mr);
-
}
#line 503 "inweb/Chapter 2/The Parser.w"
+;
+ } else if (Str__eq_wide_string(command_text, L"default")) {
+ if (S->md->using_syntax < V2_SYNTAX)
+ Parser__wrong_version(S->md->using_syntax, L, "'@default' for definitions", V2_SYNTAX);
+ L->default_defn = TRUE;
+
+{
+#line 609 "inweb/Chapter 2/The Parser.w"
+ L->category = BEGIN_DEFINITION_LCAT;
+ code_lcat_for_body = CONT_DEFINITION_LCAT;
+ code_pl_for_body = NULL;
+ match_results mr = Regexp__create_mr();
+ if (Regexp__match(&mr, remainder, L"(%C+) (%c+)")) {
+ L->text_operand = Str__duplicate(mr.exp[0]); /* name of term defined */
+ L->text_operand2 = Str__duplicate(mr.exp[1]); /* Value */
+ } else {
+ L->text_operand = Str__duplicate(remainder); /* name of term defined */
+ L->text_operand2 = Str__new(); /* no value given */
+ }
+ Analyser__mark_reserved_word_at_line(L, L->text_operand, CONSTANT_COLOUR);
+ comment_mode = FALSE;
+ L->is_commentary = FALSE;
+ Regexp__dispose_of(&mr);
+
+}
+#line 508 "inweb/Chapter 2/The Parser.w"
+;
+ } else if (Str__eq_wide_string(command_text, L"enum"))
+{
+#line 629 "inweb/Chapter 2/The Parser.w"
+ L->category = BEGIN_DEFINITION_LCAT;
+ text_stream *from = NULL;
+ match_results mr = Regexp__create_mr();
+ L->text_operand = Str__duplicate(remainder); /* name of term defined */
+ TEMPORARY_TEXT(before);
+ TEMPORARY_TEXT(after);
+ if (LanguageMethods__parse_comment(S->sect_language, L->text_operand,
+ before, after)) {
+ Str__copy(L->text_operand, before);
+ }
+ DISCARD_TEXT(before);
+ DISCARD_TEXT(after);
+ Str__trim_white_space(L->text_operand);
+ if (Regexp__match(&mr, L->text_operand, L"(%C+) from (%c+)")) {
+ 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_179, L);
+ }
+ L->text_operand2 = Str__new();
+ if (inweb_mode == TANGLE_MODE)
+ Enumerations__define(L->text_operand2, L->text_operand, from, L);
+ Analyser__mark_reserved_word_at_line(L, L->text_operand, CONSTANT_COLOUR);
+ comment_mode = FALSE;
+ L->is_commentary = FALSE;
+ Regexp__dispose_of(&mr);
+
+}
+#line 509 "inweb/Chapter 2/The Parser.w"
+
+ else if ((Str__eq_wide_string(command_text, L"e")) && (S->md->using_syntax >= V2_SYNTAX))
+
+{
+#line 629 "inweb/Chapter 2/The Parser.w"
+ L->category = BEGIN_DEFINITION_LCAT;
+ text_stream *from = NULL;
+ match_results mr = Regexp__create_mr();
+ L->text_operand = Str__duplicate(remainder); /* name of term defined */
+ TEMPORARY_TEXT(before);
+ TEMPORARY_TEXT(after);
+ if (LanguageMethods__parse_comment(S->sect_language, L->text_operand,
+ before, after)) {
+ Str__copy(L->text_operand, before);
+ }
+ DISCARD_TEXT(before);
+ DISCARD_TEXT(after);
+ Str__trim_white_space(L->text_operand);
+ if (Regexp__match(&mr, L->text_operand, L"(%C+) from (%c+)")) {
+ 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_179, L);
+ }
+ L->text_operand2 = Str__new();
+ if (inweb_mode == TANGLE_MODE)
+ Enumerations__define(L->text_operand2, L->text_operand, from, L);
+ Analyser__mark_reserved_word_at_line(L, L->text_operand, CONSTANT_COLOUR);
+ comment_mode = FALSE;
+ L->is_commentary = FALSE;
+ Regexp__dispose_of(&mr);
+
+}
+#line 511 "inweb/Chapter 2/The Parser.w"
else {
int weight = -1, new_page = FALSE;
@@ -16812,7 +16834,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
if (weight >= 0)
{
-#line 673 "inweb/Chapter 2/The Parser.w"
+#line 681 "inweb/Chapter 2/The Parser.w"
comment_mode = TRUE;
L->is_commentary = TRUE;
L->category = PARAGRAPH_START_LCAT;
@@ -16831,7 +16853,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
{
-#line 722 "inweb/Chapter 2/The Parser.w"
+#line 730 "inweb/Chapter 2/The Parser.w"
paragraph *P = CREATE(paragraph);
if (S->md->using_syntax > V1_SYNTAX) {
P->above_bar = FALSE;
@@ -16844,9 +16866,9 @@ void Parser__parse_web(web *W, int inweb_mode) {
}
P->heading_text = Str__duplicate(L->text_operand);
if ((S->md->using_syntax == V1_SYNTAX) && (before_bar))
- P->ornament = Str__duplicate(TL_IS_179);
- else
P->ornament = Str__duplicate(TL_IS_180);
+ else
+ P->ornament = Str__duplicate(TL_IS_181);
WRITE_TO(P->paragraph_number, "%d", next_par_number++);
P->parent_paragraph = NULL;
P->next_child_number = 1;
@@ -16866,7 +16888,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
current_paragraph = P;
}
-#line 689 "inweb/Chapter 2/The Parser.w"
+#line 697 "inweb/Chapter 2/The Parser.w"
;
L->owning_paragraph = current_paragraph;
@@ -16874,9 +16896,9 @@ void Parser__parse_web(web *W, int inweb_mode) {
Regexp__dispose_of(&mr);
}
-#line 522 "inweb/Chapter 2/The Parser.w"
+#line 530 "inweb/Chapter 2/The Parser.w"
- else Main__error_in_web(TL_IS_173, L);
+ else Main__error_in_web(TL_IS_174, L);
}
}
@@ -16892,7 +16914,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
;
if (comment_mode)
{
-#line 758 "inweb/Chapter 2/The Parser.w"
+#line 766 "inweb/Chapter 2/The Parser.w"
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, L->text, L">> (%c+)")) {
L->category = SOURCE_DISPLAY_LCAT;
@@ -16905,7 +16927,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
;
if (comment_mode == FALSE)
{
-#line 770 "inweb/Chapter 2/The Parser.w"
+#line 778 "inweb/Chapter 2/The Parser.w"
if ((L->category != BEGIN_DEFINITION_LCAT) && (L->category != COMMAND_LCAT)) {
L->category = code_lcat_for_body;
L->plainer = code_plainness_for_body;
@@ -16965,7 +16987,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
LOOP_OVER_LINKED_LIST(P, paragraph, S->paragraphs)
{
-#line 818 "inweb/Chapter 2/The Parser.w"
+#line 826 "inweb/Chapter 2/The Parser.w"
int next_footnote_in_para = 1;
footnote *current_text = NULL;
TEMPORARY_TEXT(before);
@@ -16983,7 +17005,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
if (this_is_a_cue == FALSE)
{
-#line 842 "inweb/Chapter 2/The Parser.w"
+#line 850 "inweb/Chapter 2/The Parser.w"
L->category = FOOTNOTE_TEXT_LCAT;
footnote *F = CREATE(footnote);
F->footnote_cue_number = Str__atoi(cue, 0);
@@ -17003,7 +17025,7 @@ void Parser__parse_web(web *W, int inweb_mode) {
current_text = F;
}
-#line 833 "inweb/Chapter 2/The Parser.w"
+#line 841 "inweb/Chapter 2/The Parser.w"
;
}
L->footnote_text = current_text;
@@ -17028,9 +17050,9 @@ void Parser__parse_web(web *W, int inweb_mode) {
LanguageMethods__further_parsing(W, W->main_language);
}
-#line 720 "inweb/Chapter 2/The Parser.w"
+#line 728 "inweb/Chapter 2/The Parser.w"
-#line 791 "inweb/Chapter 2/The Parser.w"
+#line 799 "inweb/Chapter 2/The Parser.w"
text_stream *Parser__extract_purpose(text_stream *prologue, source_line *XL, section *S, source_line **adjust) {
text_stream *P = Str__duplicate(prologue);
while ((XL) && (XL->next_line) && (XL->owning_section == S) &&
@@ -17046,16 +17068,16 @@ text_stream *Parser__extract_purpose(text_stream *prologue, source_line *XL, sec
return P;
}
-#line 816 "inweb/Chapter 2/The Parser.w"
+#line 824 "inweb/Chapter 2/The Parser.w"
-#line 863 "inweb/Chapter 2/The Parser.w"
+#line 871 "inweb/Chapter 2/The Parser.w"
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_181);
- text_stream *fn_off_notation =
Bibliographic__get_datum(W->md, TL_IS_182);
- if (Str__ne(fn_on_notation, TL_IS_183)) {
+ text_stream *fn_off_notation =
+ Bibliographic__get_datum(W->md, TL_IS_183);
+ if (Str__ne(fn_on_notation, TL_IS_184)) {
int N1 = Str__len(fn_on_notation);
int N2 = Str__len(fn_off_notation);
if ((N1 > 0) && (N2 > 0))
@@ -17102,7 +17124,7 @@ footnote *Parser__find_footnote_in_para(paragraph *P, text_stream *cue) {
return NULL;
}
-#line 922 "inweb/Chapter 2/The Parser.w"
+#line 930 "inweb/Chapter 2/The Parser.w"
void Parser__wrong_version(int using, source_line *L, char *feature, int need) {
TEMPORARY_TEXT(warning);
WRITE_TO(warning, "%s is a feature available only in version %d syntax (you're using version %d)",
@@ -17147,10 +17169,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_184, 6)) {
+ if (Str__prefix_eq(name, TL_IS_185, 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_185, 7)) {
+ } else if (Str__prefix_eq(name, TL_IS_186, 7)) {
Str__substr(tag->ifdef_symbol, Str__at(name, 7), Str__end(name));
tag->ifdef_positive = FALSE;
}
@@ -17245,20 +17267,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_187);
- } else {
TextWeaver__commentary_text(tree, ap, TL_IS_188);
+ } else {
+ TextWeaver__commentary_text(tree, ap, TL_IS_189);
}
} else {
- TextWeaver__commentary_text(tree, ap, TL_IS_189);
+ TextWeaver__commentary_text(tree, ap, TL_IS_190);
}
TextWeaver__commentary_text(tree, ap, pt->the_tag->ifdef_symbol);
}
if (c > 0) {
- if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_190);
- else TextWeaver__commentary_text(tree, ap, TL_IS_191);
- if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_192);
- else TextWeaver__commentary_text(tree, ap, TL_IS_193);
+ if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_191);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_192);
+ if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_193);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_194);
}
}
@@ -17277,26 +17299,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_187);
- } else {
TextWeaver__commentary_text(tree, ap, TL_IS_188);
+ } else {
+ TextWeaver__commentary_text(tree, ap, TL_IS_189);
}
} else {
- TextWeaver__commentary_text(tree, ap, TL_IS_189);
+ TextWeaver__commentary_text(tree, ap, TL_IS_190);
}
TextWeaver__commentary_text(tree, ap, pt->the_tag->ifdef_symbol);
}
if (c > 0) {
- if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_190);
- else TextWeaver__commentary_text(tree, ap, TL_IS_191);
- if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_192);
- else TextWeaver__commentary_text(tree, ap, TL_IS_193);
+ if (c == 1) TextWeaver__commentary_text(tree, ap, TL_IS_191);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_192);
+ if (sense) TextWeaver__commentary_text(tree, ap, TL_IS_193);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_194);
}
}
#line 139 "inweb/Chapter 2/Tags.w"
;
- if (d > 0) TextWeaver__commentary_text(tree, ap, TL_IS_186);
+ if (d > 0) TextWeaver__commentary_text(tree, ap, TL_IS_187);
}
#line 22 "inweb/Chapter 2/Enumerated Constants.w"
@@ -17320,7 +17342,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_194, L);
+ Main__error_in_web(TL_IS_195, L);
WRITE_TO(pf, "BOGUS");
}
Regexp__dispose_of(&mr);
@@ -17336,7 +17358,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_195, L);
+ } else Main__error_in_web(TL_IS_196, L);
}
#line 45 "inweb/Chapter 2/Enumerated Constants.w"
@@ -17344,7 +17366,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_196, L);
+ if (es) Main__error_in_web(TL_IS_197, L);
else {
es = CREATE(enumeration_set);
es->postfix = Str__duplicate(pf);
@@ -17634,7 +17656,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_197, L);
+ Main__error_in_web(TL_IS_198, L);
}
#line 109 "inweb/Chapter 3/The Analyser.w"
@@ -17838,23 +17860,23 @@ void Analyser__analyse_find(web *W, source_line *L, text_stream *identifier, int
#line 385 "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_198);
+ filename *prototype = Filenames__in(W->md->path_to_web, TL_IS_199);
if (!(TextFiles__exists(prototype)))
- prototype = Filenames__in(path_to_inweb_materials, TL_IS_199);
+ prototype = Filenames__in(path_to_inweb_materials, TL_IS_200);
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_200);
+ filename *prototype = Filenames__in(W->md->path_to_web, TL_IS_201);
if (!(TextFiles__exists(prototype)))
- prototype = Filenames__in(path_to_inweb_materials, TL_IS_201);
+ prototype = Filenames__in(path_to_inweb_materials, TL_IS_202);
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_202, F, pattern, NULL, NULL, NULL, into);
+ Collater__collate(OUT, W, TL_IS_203, F, pattern, NULL, NULL, NULL, into);
}
void Collater__for_order(text_stream *OUT, weave_order *wv,
@@ -18348,7 +18370,7 @@ void Collater__process(text_stream *OUT, collater_state *cls) {
#line 563 "inweb/Chapter 3/The Collater.w"
;
WRITE_TO(substituted, "");
- } else if (Str__eq(url, TL_IS_203)) {
+ } else if (Str__eq(url, TL_IS_204)) {
WRITE_TO(substituted, "", url);
WRITE_TO(substituted, "");
@@ -18449,7 +18471,7 @@ void Collater__process(text_stream *OUT, collater_state *cls) {
#line 563 "inweb/Chapter 3/The Collater.w"
;
WRITE_TO(substituted, " ");
- } else if (Str__eq(url, TL_IS_203)) {
+ } else if (Str__eq(url, TL_IS_204)) {
WRITE_TO(substituted, " ", url);
WRITE_TO(substituted, "");
@@ -18564,7 +18586,7 @@ void Collater__list_module(OUTPUT_STREAM, module *M, int list_this) {
WRITE("%S - ", M->module_name);
TEMPORARY_TEXT(url);
WRITE_TO(url, "%p", M->module_location);
- Readme__write_var(OUT, url, TL_IS_204);
+ Readme__write_var(OUT, url, TL_IS_205);
DISCARD_TEXT(url);
WRITE("
");
}
@@ -18581,7 +18603,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_205);
+ tree_node *T = WeaveTree__tail(tree, TL_IS_206);
Trees__make_child(H, tree->root);
Trees__make_child(B, tree->root);
Trees__make_child(T, tree->root);
@@ -18695,7 +18717,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_206);
+ Weaver__weave_subheading(tree, wv, state->ap, TL_IS_207);
state->next_heading_without_vertical_skip = TRUE;
state->horizontal_rule_just_drawn = FALSE;
continue;
@@ -18735,7 +18757,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_207, L); /* should never happen */
+ Main__error_in_web(TL_IS_208, L); /* should never happen */
{
@@ -18797,38 +18819,37 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
Trees__make_child(WeaveTree__grammar_index(tree), state->ap);
if (L->command_code == FIGURE_CMD)
{
-#line 293 "inweb/Chapter 3/The Weaver.w"
+#line 294 "inweb/Chapter 3/The Weaver.w"
int w, h;
text_stream *figname = Weaver__dimensions(L->text_operand, &w, &h, L);
Trees__make_child(WeaveTree__figure(tree, figname, w, h), state->ap);
}
#line 281 "inweb/Chapter 3/The Weaver.w"
+;
+ if (L->command_code == AUDIO_CMD)
+{
+#line 299 "inweb/Chapter 3/The Weaver.w"
+ int w, h;
+ text_stream *figname = Weaver__dimensions(L->text_operand, &w, &h, L);
+ Trees__make_child(WeaveTree__audio(tree, figname, w), state->ap);
+
+}
+#line 282 "inweb/Chapter 3/The Weaver.w"
;
if (L->command_code == EMBED_CMD)
{
-#line 298 "inweb/Chapter 3/The Weaver.w"
+#line 304 "inweb/Chapter 3/The Weaver.w"
int w, h;
text_stream *ID = Weaver__dimensions(L->text_operand2, &w, &h, L);
Trees__make_child(WeaveTree__embed(tree, L->text_operand, ID, w, h), state->ap);
}
-#line 282 "inweb/Chapter 3/The Weaver.w"
+#line 283 "inweb/Chapter 3/The Weaver.w"
;
if (L->command_code == CAROUSEL_CMD)
{
-#line 303 "inweb/Chapter 3/The Weaver.w"
- tree_node *C = WeaveTree__carousel_slide(tree, L->text_operand, L->command_code);
- Trees__make_child(C, state->para_node);
- state->ap = C;
- state->carousel_node = C;
-
-}
-#line 283 "inweb/Chapter 3/The Weaver.w"
-;
- if (L->command_code == CAROUSEL_ABOVE_CMD)
-{
-#line 303 "inweb/Chapter 3/The Weaver.w"
+#line 309 "inweb/Chapter 3/The Weaver.w"
tree_node *C = WeaveTree__carousel_slide(tree, L->text_operand, L->command_code);
Trees__make_child(C, state->para_node);
state->ap = C;
@@ -18837,9 +18858,9 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
#line 284 "inweb/Chapter 3/The Weaver.w"
;
- if (L->command_code == CAROUSEL_BELOW_CMD)
+ if (L->command_code == CAROUSEL_ABOVE_CMD)
{
-#line 303 "inweb/Chapter 3/The Weaver.w"
+#line 309 "inweb/Chapter 3/The Weaver.w"
tree_node *C = WeaveTree__carousel_slide(tree, L->text_operand, L->command_code);
Trees__make_child(C, state->para_node);
state->ap = C;
@@ -18848,9 +18869,9 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
#line 285 "inweb/Chapter 3/The Weaver.w"
;
- if (L->command_code == CAROUSEL_UNCAPTIONED_CMD)
+ if (L->command_code == CAROUSEL_BELOW_CMD)
{
-#line 303 "inweb/Chapter 3/The Weaver.w"
+#line 309 "inweb/Chapter 3/The Weaver.w"
tree_node *C = WeaveTree__carousel_slide(tree, L->text_operand, L->command_code);
Trees__make_child(C, state->para_node);
state->ap = C;
@@ -18859,14 +18880,25 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
#line 286 "inweb/Chapter 3/The Weaver.w"
;
- if (L->command_code == CAROUSEL_END_CMD)
+ if (L->command_code == CAROUSEL_UNCAPTIONED_CMD)
{
#line 309 "inweb/Chapter 3/The Weaver.w"
+ tree_node *C = WeaveTree__carousel_slide(tree, L->text_operand, L->command_code);
+ Trees__make_child(C, state->para_node);
+ state->ap = C;
+ state->carousel_node = C;
+
+}
+#line 287 "inweb/Chapter 3/The Weaver.w"
+;
+ if (L->command_code == CAROUSEL_END_CMD)
+{
+#line 315 "inweb/Chapter 3/The Weaver.w"
state->ap = state->para_node;
state->carousel_node = NULL;
}
-#line 287 "inweb/Chapter 3/The Weaver.w"
+#line 288 "inweb/Chapter 3/The Weaver.w"
;
/* Otherwise assume it was a tangler command, and ignore it here */
continue;
@@ -18892,21 +18924,21 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
TEMPORARY_TEXT(matter); Str__copy(matter, L->text);
if (L->is_commentary)
{
-#line 317 "inweb/Chapter 3/The Weaver.w"
+#line 323 "inweb/Chapter 3/The Weaver.w"
{
-#line 329 "inweb/Chapter 3/The Weaver.w"
+#line 335 "inweb/Chapter 3/The Weaver.w"
if (L->category == SOURCE_DISPLAY_LCAT) {
Trees__make_child(WeaveTree__display_line(tree, L->text_operand), state->ap);
continue;
}
}
-#line 317 "inweb/Chapter 3/The Weaver.w"
+#line 323 "inweb/Chapter 3/The Weaver.w"
;
{
-#line 338 "inweb/Chapter 3/The Weaver.w"
+#line 344 "inweb/Chapter 3/The Weaver.w"
if (Regexp__string_is_white_space(matter)) {
if ((L->next_line) && (L->next_line->category == COMMENT_BODY_LCAT)) {
match_results mr = Regexp__create_mr();
@@ -18919,19 +18951,19 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
}
-#line 318 "inweb/Chapter 3/The Weaver.w"
+#line 324 "inweb/Chapter 3/The Weaver.w"
;
{
-#line 353 "inweb/Chapter 3/The Weaver.w"
+#line 359 "inweb/Chapter 3/The Weaver.w"
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, matter, L"%(...%) (%c*)")) { /* continue single */
Weaver__change_material(tree, state, COMMENTARY_MATERIAL, FALSE, NULL);
- Trees__make_child(WeaveTree__weave_item_node(tree, 1, TL_IS_208), state->ap);
+ Trees__make_child(WeaveTree__weave_item_node(tree, 1, TL_IS_209), state->ap);
Str__copy(matter, mr.exp[0]);
} else if (Regexp__match(&mr, matter, L"%(-...%) (%c*)")) { /* continue double */
Weaver__change_material(tree, state, COMMENTARY_MATERIAL, FALSE, NULL);
- Trees__make_child(WeaveTree__weave_item_node(tree, 2, TL_IS_209), state->ap);
+ Trees__make_child(WeaveTree__weave_item_node(tree, 2, TL_IS_210), state->ap);
Str__copy(matter, mr.exp[0]);
} else if (Regexp__match(&mr, matter, L"%((%i+)%) (%c*)")) { /* begin single */
Weaver__change_material(tree, state, COMMENTARY_MATERIAL, FALSE, NULL);
@@ -18945,11 +18977,11 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
Regexp__dispose_of(&mr);
}
-#line 319 "inweb/Chapter 3/The Weaver.w"
+#line 325 "inweb/Chapter 3/The Weaver.w"
;
{
-#line 377 "inweb/Chapter 3/The Weaver.w"
+#line 383 "inweb/Chapter 3/The Weaver.w"
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, matter, L"\t|(%c*)|(%c*?)")) {
TEMPORARY_TEXT(original);
@@ -18970,22 +19002,22 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
Regexp__dispose_of(&mr);
}
-#line 320 "inweb/Chapter 3/The Weaver.w"
+#line 326 "inweb/Chapter 3/The Weaver.w"
;
{
-#line 397 "inweb/Chapter 3/The Weaver.w"
+#line 403 "inweb/Chapter 3/The Weaver.w"
if (L->category == FOOTNOTE_TEXT_LCAT) {
Weaver__change_material(tree, state, FOOTNOTES_MATERIAL, FALSE, NULL);
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_210, L);
+ if (F->cued_already == FALSE) Main__error_in_web(TL_IS_211, L);
state->ap = FN;
}
}
-#line 321 "inweb/Chapter 3/The Weaver.w"
+#line 327 "inweb/Chapter 3/The Weaver.w"
;
WRITE_TO(matter, "\n");
Weaver__commentary_text(tree, wv, state->ap, matter);
@@ -18996,10 +19028,10 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
else
{
-#line 412 "inweb/Chapter 3/The Weaver.w"
+#line 418 "inweb/Chapter 3/The Weaver.w"
{
-#line 448 "inweb/Chapter 3/The Weaver.w"
+#line 454 "inweb/Chapter 3/The Weaver.w"
if (state->kind_of_material != CODE_MATERIAL) {
int will_be = CODE_MATERIAL;
if (L->category == MACRO_DEFINITION_LCAT)
@@ -19019,11 +19051,11 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
}
-#line 412 "inweb/Chapter 3/The Weaver.w"
+#line 418 "inweb/Chapter 3/The Weaver.w"
;
{
-#line 470 "inweb/Chapter 3/The Weaver.w"
+#line 476 "inweb/Chapter 3/The Weaver.w"
if (state->line_break_pending) {
Trees__make_child(WeaveTree__vskip(tree, FALSE), state->ap);
state->line_break_pending = FALSE;
@@ -19034,7 +19066,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
}
-#line 413 "inweb/Chapter 3/The Weaver.w"
+#line 419 "inweb/Chapter 3/The Weaver.w"
;
Str__rectify_indentation(matter, 4);
@@ -19043,7 +19075,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
TEMPORARY_TEXT(concluding_comment);
{
-#line 484 "inweb/Chapter 3/The Weaver.w"
+#line 490 "inweb/Chapter 3/The Weaver.w"
TEMPORARY_TEXT(part_before_comment);
TEMPORARY_TEXT(part_within_comment);
programming_language *pl = S->sect_language;
@@ -19057,27 +19089,27 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
DISCARD_TEXT(part_within_comment);
}
-#line 419 "inweb/Chapter 3/The Weaver.w"
+#line 425 "inweb/Chapter 3/The Weaver.w"
;
{
-#line 499 "inweb/Chapter 3/The Weaver.w"
+#line 505 "inweb/Chapter 3/The Weaver.w"
if (L->category == BEGIN_DEFINITION_LCAT) {
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_211);
+ Str__copy(prefatory, TL_IS_212);
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_212);
+ Str__copy(prefatory, TL_IS_213);
Str__copy(matter, mr.exp[0]);
}
Regexp__dispose_of(&mr);
}
}
-#line 420 "inweb/Chapter 3/The Weaver.w"
+#line 426 "inweb/Chapter 3/The Weaver.w"
;
tree_node *CL = WeaveTree__code_line(tree);
@@ -19088,7 +19120,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
{
-#line 514 "inweb/Chapter 3/The Weaver.w"
+#line 520 "inweb/Chapter 3/The Weaver.w"
TEMPORARY_TEXT(OUT);
int taken = LanguageMethods__weave_code_line(OUT, S->sect_language, wv,
W, C, S, L, matter, concluding_comment);
@@ -19100,7 +19132,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
if (taken) goto ClumsyLabel;
}
-#line 428 "inweb/Chapter 3/The Weaver.w"
+#line 434 "inweb/Chapter 3/The Weaver.w"
;
TEMPORARY_TEXT(colouring);
@@ -19108,7 +19140,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
{
-#line 525 "inweb/Chapter 3/The Weaver.w"
+#line 531 "inweb/Chapter 3/The Weaver.w"
match_results mr = Regexp__create_mr();
while (Regexp__match(&mr, matter, L"(%c*?)%@%<(%c*?)%@%>(%c*)")) {
para_macro *pmac = Macros__find_by_name(mr.exp[1], S);
@@ -19140,7 +19172,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
}
-#line 433 "inweb/Chapter 3/The Weaver.w"
+#line 439 "inweb/Chapter 3/The Weaver.w"
;
TextWeaver__source_code(tree, CL, matter, colouring, L->enable_hyperlinks);
if (Str__len(concluding_comment) > 0)
@@ -19208,7 +19240,7 @@ int Weaver__weave_inner(weave_order *wv, heterogeneous_tree *tree, tree_node *bo
#line 127 "inweb/Chapter 3/The Weaver.w"
-#line 560 "inweb/Chapter 3/The Weaver.w"
+#line 566 "inweb/Chapter 3/The Weaver.w"
void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
weave_order *wv, tree_node *ap, paragraph *P) {
tree_node *body = ap;
@@ -19216,33 +19248,33 @@ void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
if (P->defines_macro)
{
-#line 575 "inweb/Chapter 3/The Weaver.w"
+#line 581 "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_213);
+ TextWeaver__commentary_text(tree, ap, TL_IS_214);
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_214);
+ if (ct == 1) TextWeaver__commentary_text(tree, ap, TL_IS_215);
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_215);
- else TextWeaver__commentary_text(tree, ap, TL_IS_216);
+ if (k < ct-1) TextWeaver__commentary_text(tree, ap, TL_IS_216);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_217);
} else {
- TextWeaver__commentary_text(tree, ap, TL_IS_217);
+ TextWeaver__commentary_text(tree, ap, TL_IS_218);
}
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_218); break;
- case 3: TextWeaver__commentary_text(tree, ap, TL_IS_219); break;
- case 4: TextWeaver__commentary_text(tree, ap, TL_IS_220); break;
- case 5: TextWeaver__commentary_text(tree, ap, TL_IS_221); break;
+ case 2: TextWeaver__commentary_text(tree, ap, TL_IS_219); break;
+ case 3: TextWeaver__commentary_text(tree, ap, TL_IS_220); break;
+ case 4: TextWeaver__commentary_text(tree, ap, TL_IS_221); break;
+ case 5: TextWeaver__commentary_text(tree, ap, TL_IS_222); break;
default: {
TEMPORARY_TEXT(mt);
WRITE_TO(mt, " (%d times)", mu->multiplicity);
@@ -19253,30 +19285,30 @@ void Weaver__show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
}
}
}
- TextWeaver__commentary_text(tree, ap, TL_IS_222);
+ TextWeaver__commentary_text(tree, ap, TL_IS_223);
}
-#line 565 "inweb/Chapter 3/The Weaver.w"
+#line 571 "inweb/Chapter 3/The Weaver.w"
;
language_function *fn;
LOOP_OVER_LINKED_LIST(fn, language_function, P->functions)
{
-#line 614 "inweb/Chapter 3/The Weaver.w"
+#line 620 "inweb/Chapter 3/The Weaver.w"
if (fn->usage_described == FALSE)
Weaver__show_function_usage(tree, wv, ap, P, fn, FALSE);
}
-#line 568 "inweb/Chapter 3/The Weaver.w"
+#line 574 "inweb/Chapter 3/The Weaver.w"
;
language_type *st;
LOOP_OVER_LINKED_LIST(st, language_type, P->structures)
{
-#line 618 "inweb/Chapter 3/The Weaver.w"
+#line 624 "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_223);
+ TextWeaver__commentary_text(tree, ap, TL_IS_224);
TextWeaver__commentary_text(tree, ap, st->structure_name);
section *S;
@@ -19300,25 +19332,25 @@ 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_224);
+ if (external == 0) TextWeaver__commentary_text(tree, ap, TL_IS_225);
else {
- TextWeaver__commentary_text(tree, ap, TL_IS_225);
+ TextWeaver__commentary_text(tree, ap, TL_IS_226);
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_226);
+ if (c++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_227);
TextWeaver__commentary_text(tree, ap, S->md->sect_range);
}
- if (P->under_section->scratch_flag) TextWeaver__commentary_text(tree, ap, TL_IS_227);
+ if (P->under_section->scratch_flag) TextWeaver__commentary_text(tree, ap, TL_IS_228);
}
- TextWeaver__commentary_text(tree, ap, TL_IS_228);
+ TextWeaver__commentary_text(tree, ap, TL_IS_229);
}
-#line 571 "inweb/Chapter 3/The Weaver.w"
+#line 577 "inweb/Chapter 3/The Weaver.w"
;
}
-#line 658 "inweb/Chapter 3/The Weaver.w"
+#line 664 "inweb/Chapter 3/The Weaver.w"
void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
tree_node *ap, paragraph *P, language_function *fn, int as_list) {
tree_node *body = ap;
@@ -19329,7 +19361,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_229);
+ TextWeaver__commentary_text(tree, ap, TL_IS_230);
TextWeaver__commentary_text(tree, ap, fn->function_name);
}
int used_flag = FALSE;
@@ -19341,9 +19373,9 @@ void Weaver__show_function_usage(heterogeneous_tree *tree, weave_order *wv,
(P->under_section == hteu->usage_recorded_at->under_section))
{
-#line 697 "inweb/Chapter 3/The Weaver.w"
+#line 703 "inweb/Chapter 3/The Weaver.w"
if (as_list == FALSE) {
- if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_234);
+ if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_235);
}
used_flag = TRUE;
section *S = hteu->usage_recorded_at->under_section;
@@ -19351,31 +19383,31 @@ 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_235);
- else TextWeaver__commentary_text(tree, ap, TL_IS_236);
+ if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_236);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_237);
} else {
- if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_237);
- else TextWeaver__commentary_text(tree, ap, TL_IS_238);
+ if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_238);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_239);
}
}
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_239);
- else TextWeaver__commentary_text(tree, ap, TL_IS_240);
+ if (as_list == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_240);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_241);
}
- if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_241);
+ if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_242);
Trees__make_child(WeaveTree__locale(tree, hteu->usage_recorded_at, NULL), ap);
last_cited_in = hteu->usage_recorded_at->under_section;
}
-#line 678 "inweb/Chapter 3/The Weaver.w"
+#line 684 "inweb/Chapter 3/The Weaver.w"
;
LOOP_OVER_LINKED_LIST(hteu, hash_table_entry_usage, hte->usages)
if (P->under_section != hteu->usage_recorded_at->under_section)
{
-#line 697 "inweb/Chapter 3/The Weaver.w"
+#line 703 "inweb/Chapter 3/The Weaver.w"
if (as_list == FALSE) {
- if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_234);
+ if (used_flag == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_235);
}
used_flag = TRUE;
section *S = hteu->usage_recorded_at->under_section;
@@ -19383,39 +19415,39 @@ 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_235);
- else TextWeaver__commentary_text(tree, ap, TL_IS_236);
+ if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_236);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_237);
} else {
- if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_237);
- else TextWeaver__commentary_text(tree, ap, TL_IS_238);
+ if (last_cited_in != P->under_section) TextWeaver__commentary_text(tree, ap, TL_IS_238);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_239);
}
}
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_239);
- else TextWeaver__commentary_text(tree, ap, TL_IS_240);
+ if (as_list == FALSE) TextWeaver__commentary_text(tree, ap, TL_IS_240);
+ else TextWeaver__commentary_text(tree, ap, TL_IS_241);
}
- if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_241);
+ if (count_under++ > 0) TextWeaver__commentary_text(tree, ap, TL_IS_242);
Trees__make_child(WeaveTree__locale(tree, hteu->usage_recorded_at, NULL), ap);
last_cited_in = hteu->usage_recorded_at->under_section;
}
-#line 681 "inweb/Chapter 3/The Weaver.w"
+#line 687 "inweb/Chapter 3/The Weaver.w"
;
if (used_flag == FALSE) {
if (as_list == FALSE) {
- TextWeaver__commentary_text(tree, ap, TL_IS_230);
- } else {
TextWeaver__commentary_text(tree, ap, TL_IS_231);
+ } else {
+ TextWeaver__commentary_text(tree, ap, TL_IS_232);
}
}
if (as_list == FALSE) {
if ((last_cited_in != P->under_section) && (last_cited_in))
- TextWeaver__commentary_text(tree, ap, TL_IS_232);
- TextWeaver__commentary_text(tree, ap, TL_IS_233);
+ TextWeaver__commentary_text(tree, ap, TL_IS_233);
+ TextWeaver__commentary_text(tree, ap, TL_IS_234);
}
}
-#line 724 "inweb/Chapter 3/The Weaver.w"
+#line 730 "inweb/Chapter 3/The Weaver.w"
void Weaver__weave_subheading(heterogeneous_tree *tree, weave_order *wv,
tree_node *ap, text_stream *text) {
tree_node *D = WeaveTree__subheading(tree, text);
@@ -19453,7 +19485,7 @@ void Weaver__commentary_text(heterogeneous_tree *tree, weave_order *wv,
TextWeaver__commentary_text(tree, ap, matter);
}
-#line 766 "inweb/Chapter 3/The Weaver.w"
+#line 772 "inweb/Chapter 3/The Weaver.w"
text_stream *Weaver__dimensions(text_stream *item, int *w, int *h, source_line *L) {
int sv = L->owning_section->md->using_syntax;
*w = -1; *h = -1;
@@ -19496,7 +19528,7 @@ text_stream *Weaver__dimensions(text_stream *item, int *w, int *h, source_line *
return use;
}
-#line 813 "inweb/Chapter 3/The Weaver.w"
+#line 819 "inweb/Chapter 3/The Weaver.w"
int Weaver__weave_table_of_contents(heterogeneous_tree *tree,
tree_node *ap, section *S) {
int noteworthy = 0;
@@ -19535,8 +19567,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_242):(TL_IS_243));
- if (Str__ne(code_in_comments_notation, TL_IS_244))
+ (in_code)?(TL_IS_243):(TL_IS_244));
+ if (Str__ne(code_in_comments_notation, TL_IS_245))
{
#line 52 "inweb/Chapter 3/The Weaver of Text.w"
for (int i=0; i < Str__len(matter); i++) {
@@ -19563,8 +19595,8 @@ void TextWeaver__commentary_r(heterogeneous_tree *tree, tree_node *ap, text_stre
{
#line 69 "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_251)) ||
- (Str__includes_at(matter, i, TL_IS_252))) {
+ if ((Str__includes_at(matter, i, TL_IS_252)) ||
+ (Str__includes_at(matter, i, TL_IS_253))) {
TEMPORARY_TEXT(before);
Str__copy(before, matter); Str__truncate(before, i);
TEMPORARY_TEXT(after);
@@ -19589,8 +19621,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_245);
- if (Str__ne(tex_notation, TL_IS_246))
+ TL_IS_246);
+ if (Str__ne(tex_notation, TL_IS_247))
{
#line 91 "inweb/Chapter 3/The Weaver of Text.w"
int N = Str__len(tex_notation);
@@ -19625,8 +19657,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_247);
- if (Str__ne(tex_notation, TL_IS_248))
+ TL_IS_248);
+ if (Str__ne(tex_notation, TL_IS_249))
{
#line 91 "inweb/Chapter 3/The Weaver of Text.w"
int N = Str__len(tex_notation);
@@ -19661,8 +19693,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_249);
- if (Str__ne(xref_notation, TL_IS_250))
+ TL_IS_250);
+ if (Str__ne(xref_notation, TL_IS_251))
{
#line 142 "inweb/Chapter 3/The Weaver of Text.w"
int N = Str__len(xref_notation);
@@ -19730,7 +19762,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_253, wv->current_weave_line);
+ Main__error_in_web(TL_IS_254, wv->current_weave_line);
}
}
DISCARD_TEXT(before);
@@ -19774,8 +19806,8 @@ void TextWeaver__source_code(heterogeneous_tree *tree, tree_node *ap,
{
#line 233 "inweb/Chapter 3/The Weaver of Text.w"
- if ((Str__includes_at(matter, i, TL_IS_256)) ||
- (Str__includes_at(matter, i, TL_IS_257))) {
+ if ((Str__includes_at(matter, i, TL_IS_257)) ||
+ (Str__includes_at(matter, i, TL_IS_258))) {
TEMPORARY_TEXT(after);
Str__substr(after, Str__at(matter, i), Str__end(matter));
match_results mr = Regexp__create_mr();
@@ -19793,8 +19825,8 @@ void TextWeaver__source_code(heterogeneous_tree *tree, tree_node *ap,
#line 209 "inweb/Chapter 3/The Weaver of Text.w"
;
text_stream *xref_notation = Bibliographic__get_datum(wv->weave_web->md,
- TL_IS_254);
- if (Str__ne(xref_notation, TL_IS_255))
+ TL_IS_255);
+ if (Str__ne(xref_notation, TL_IS_256))
{
#line 249 "inweb/Chapter 3/The Weaver of Text.w"
@@ -19930,7 +19962,7 @@ void Tangler__tangle(web *W, tangle_target *target, filename *dest_file) {
{
#line 87 "inweb/Chapter 3/The Tangler.w"
- if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_258, L);
+ if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_259, L);
else Tags__open_ifdefs(OUT, L->owning_paragraph);
LanguageMethods__start_definition(OUT, lang,
L->text_operand,
@@ -19952,7 +19984,7 @@ void Tangler__tangle(web *W, tangle_target *target, filename *dest_file) {
{
#line 87 "inweb/Chapter 3/The Tangler.w"
- if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_258, L);
+ if (L->owning_paragraph == NULL) Main__error_in_web(TL_IS_259, L);
else Tags__open_ifdefs(OUT, L->owning_paragraph);
LanguageMethods__start_definition(OUT, lang,
L->text_operand,
@@ -20073,7 +20105,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_259, L);
+ Main__error_in_web(TL_IS_260, L);
WRITE_TO(STDERR, "Macro is '%S'\n", temp);
LanguageMethods__comment(OUT, lang, temp); /* recover by putting macro name in comment */
}
@@ -20142,7 +20174,7 @@ programming_language *Languages__find_by_name(text_stream *lname, web *W) {
#line 26 "inweb/Chapter 4/Programming Languages.w"
filename *F = NULL;
if (W) {
- pathname *P = Pathnames__down(W->md->path_to_web, TL_IS_260);
+ pathname *P = Pathnames__down(W->md->path_to_web, TL_IS_261);
{
#line 39 "inweb/Chapter 4/Programming Languages.w"
@@ -20189,7 +20221,7 @@ programming_language *Languages__find_by_name(text_stream *lname, web *W) {
#line 50 "inweb/Chapter 4/Programming Languages.w"
programming_language *Languages__default(web *W) {
- return Languages__find_by_name(TL_IS_261, W);
+ return Languages__find_by_name(TL_IS_262, W);
}
void Languages__show(OUTPUT_STREAM) {
@@ -20231,7 +20263,7 @@ void Languages__read_definitions(pathname *P) {
}
pathname *Languages__default_directory(void) {
- return Pathnames__down(path_to_inweb, TL_IS_262);
+ return Pathnames__down(path_to_inweb, TL_IS_263);
}
#line 144 "inweb/Chapter 4/Programming Languages.w"
@@ -20291,7 +20323,7 @@ programming_language *Languages__read_definition(filename *F) {
{
#line 215 "inweb/Chapter 4/Programming Languages.w"
if (pl->C_like) CLike__make_c_like(pl);
- if (Str__eq(pl->language_name, TL_IS_263)) InCSupport__add_features(pl);
+ if (Str__eq(pl->language_name, TL_IS_264)) InCSupport__add_features(pl);
ACMESupport__add_fallbacks(pl);
}
@@ -20313,7 +20345,7 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp,
if (state->current_block)
{
#line 323 "inweb/Chapter 4/Programming Languages.w"
- if (Str__eq(line, TL_IS_295)) {
+ if (Str__eq(line, TL_IS_296)) {
state->current_block = state->current_block->parent;
} else if (Regexp__match(&mr, line, L"characters {")) {
colouring_rule *rule = Languages__new_rule(state->current_block);
@@ -20329,7 +20361,7 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp,
} else if (Regexp__match(&mr, line, L"runs of (%c+) {")) {
colouring_rule *rule = Languages__new_rule(state->current_block);
int r = UNQUOTED_COLOUR;
- if (Str__ne(mr.exp[0], TL_IS_296)) r = Languages__colour(mr.exp[0], tfp);
+ if (Str__ne(mr.exp[0], TL_IS_297)) r = Languages__colour(mr.exp[0], tfp);
rule->execute_block = Languages__new_block(state->current_block, r);
state->current_block = rule->execute_block;
} else if (Regexp__match(&mr, line, L"instances of (%c+) {")) {
@@ -20384,66 +20416,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_264)) pl->language_name = Languages__text(value, tfp, TRUE);
- else if (Str__eq(key, TL_IS_265))
- pl->language_details = Languages__text(value, tfp, TRUE);
+ if (Str__eq(key, TL_IS_265)) pl->language_name = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_266))
- pl->file_extension = Languages__text(value, tfp, TRUE);
+ pl->language_details = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_267))
- pl->line_comment = Languages__text(value, tfp, TRUE);
+ pl->file_extension = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_268))
- pl->whole_line_comment = Languages__text(value, tfp, TRUE);
+ pl->line_comment = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_269))
- 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_270))
- 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_271))
- pl->string_literal = Languages__text(value, tfp, TRUE);
+ pl->multiline_comment_close = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_272))
- pl->string_literal_escape = Languages__text(value, tfp, TRUE);
+ pl->string_literal = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_273))
- pl->character_literal = Languages__text(value, tfp, TRUE);
+ pl->string_literal_escape = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_274))
- pl->character_literal_escape = Languages__text(value, tfp, TRUE);
+ pl->character_literal = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_275))
- 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_276))
- 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_277))
- 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_278))
- 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_279))
- pl->shebang = Languages__text(value, tfp, TRUE);
+ pl->negative_literal_prefix = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_280))
- pl->line_marker = Languages__text(value, tfp, TRUE);
+ pl->shebang = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_281))
- pl->before_macro_expansion = Languages__text(value, tfp, TRUE);
+ pl->line_marker = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_282))
- 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_283))
- pl->start_definition = Languages__text(value, tfp, TRUE);
+ pl->after_macro_expansion = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_284))
- pl->prolong_definition = Languages__text(value, tfp, TRUE);
+ pl->start_definition = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_285))
- pl->end_definition = Languages__text(value, tfp, TRUE);
+ pl->prolong_definition = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_286))
- pl->start_ifdef = Languages__text(value, tfp, TRUE);
+ pl->end_definition = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_287))
- pl->start_ifndef = Languages__text(value, tfp, TRUE);
+ pl->start_ifdef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_288))
- pl->end_ifdef = Languages__text(value, tfp, TRUE);
+ pl->start_ifndef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_289))
- pl->end_ifndef = Languages__text(value, tfp, TRUE);
+ pl->end_ifdef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_290))
- pl->C_like = Languages__boolean(value, tfp);
+ pl->end_ifndef = Languages__text(value, tfp, TRUE);
else if (Str__eq(key, TL_IS_291))
- pl->suppress_disclaimer = Languages__boolean(value, tfp);
+ pl->C_like = Languages__boolean(value, tfp);
else if (Str__eq(key, TL_IS_292))
- pl->supports_namespaces = Languages__boolean(value, tfp);
+ pl->suppress_disclaimer = Languages__boolean(value, tfp);
else if (Str__eq(key, TL_IS_293))
- Languages__regexp(pl->function_notation, value, tfp);
+ pl->supports_namespaces = Languages__boolean(value, tfp);
else if (Str__eq(key, TL_IS_294))
+ Languages__regexp(pl->function_notation, value, tfp);
+ else if (Str__eq(key, TL_IS_295))
Languages__regexp(pl->type_notation, value, tfp);
else {
Errors__in_text_file("unknown property name before ':'", tfp);
@@ -20553,7 +20585,7 @@ void Languages__parse_rule(language_reader_state *state, text_stream *premiss,
{
#line 533 "inweb/Chapter 4/Programming Languages.w"
- if (Str__eq(action, TL_IS_297)) {
+ if (Str__eq(action, TL_IS_298)) {
rule->execute_block =
Languages__new_block(state->current_block, WHOLE_LINE_CRULE_RUN);
state->current_block = rule->execute_block;
@@ -20566,7 +20598,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_298)) {
+ } else if (Str__eq(action, TL_IS_299)) {
rule->debug = TRUE;
} else {
Errors__in_text_file("action after '=>' illegible", tfp);
@@ -20601,17 +20633,17 @@ int Languages__colour(text_stream *T, text_file_position *tfp) {
Errors__in_text_file("colour names must begin with !", tfp);
return PLAIN_COLOUR;
}
- if (Str__eq(T, TL_IS_299)) return STRING_COLOUR;
- else if (Str__eq(T, TL_IS_300)) return FUNCTION_COLOUR;
- else if (Str__eq(T, TL_IS_301)) return DEFINITION_COLOUR;
- else if (Str__eq(T, TL_IS_302)) return RESERVED_COLOUR;
- else if (Str__eq(T, TL_IS_303)) return ELEMENT_COLOUR;
- else if (Str__eq(T, TL_IS_304)) return IDENTIFIER_COLOUR;
- else if (Str__eq(T, TL_IS_305)) return CHARACTER_COLOUR;
- else if (Str__eq(T, TL_IS_306)) return CONSTANT_COLOUR;
- else if (Str__eq(T, TL_IS_307)) return PLAIN_COLOUR;
- else if (Str__eq(T, TL_IS_308)) return EXTRACT_COLOUR;
- else if (Str__eq(T, TL_IS_309)) return COMMENT_COLOUR;
+ if (Str__eq(T, TL_IS_300)) return STRING_COLOUR;
+ else if (Str__eq(T, TL_IS_301)) return FUNCTION_COLOUR;
+ else if (Str__eq(T, TL_IS_302)) return DEFINITION_COLOUR;
+ else if (Str__eq(T, TL_IS_303)) return RESERVED_COLOUR;
+ else if (Str__eq(T, TL_IS_304)) return ELEMENT_COLOUR;
+ else if (Str__eq(T, TL_IS_305)) return IDENTIFIER_COLOUR;
+ else if (Str__eq(T, TL_IS_306)) return CHARACTER_COLOUR;
+ else if (Str__eq(T, TL_IS_307)) return CONSTANT_COLOUR;
+ else if (Str__eq(T, TL_IS_308)) return PLAIN_COLOUR;
+ else if (Str__eq(T, TL_IS_309)) return EXTRACT_COLOUR;
+ else if (Str__eq(T, TL_IS_310)) return COMMENT_COLOUR;
else {
Errors__in_text_file("no such !colour", tfp);
return PLAIN_COLOUR;
@@ -20620,8 +20652,8 @@ int Languages__colour(text_stream *T, text_file_position *tfp) {
#line 624 "inweb/Chapter 4/Programming Languages.w"
int Languages__boolean(text_stream *T, text_file_position *tfp) {
- if (Str__eq(T, TL_IS_310)) return TRUE;
- else if (Str__eq(T, TL_IS_311)) return FALSE;
+ if (Str__eq(T, TL_IS_311)) return TRUE;
+ else if (Str__eq(T, TL_IS_312)) return FALSE;
else {
Errors__in_text_file("must be true or false", tfp);
return FALSE;
@@ -20679,7 +20711,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_312)) rw = TRUE;
if (Str__eq(V, TL_IS_313)) rw = TRUE;
if (Str__eq(V, TL_IS_314)) rw = TRUE;
if (Str__eq(V, TL_IS_315)) rw = TRUE;
@@ -20701,6 +20732,7 @@ text_stream *Languages__text(text_stream *T, text_file_position *tfp, int allow)
if (Str__eq(V, TL_IS_331)) rw = TRUE;
if (Str__eq(V, TL_IS_332)) rw = TRUE;
if (Str__eq(V, TL_IS_333)) rw = TRUE;
+ if (Str__eq(V, TL_IS_334)) rw = TRUE;
if (rw) {
TEMPORARY_TEXT(err);
@@ -20799,7 +20831,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_334);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_335);
ADD_TO_LINKED_LIST(str, language_type, W->language_types);
ADD_TO_LINKED_LIST(str, language_type, L->owning_paragraph->structures);
@@ -20912,7 +20944,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_335;
+ declared_namespace = TL_IS_336;
if ((Str__ne(declared_namespace, ambient_namespace)) &&
(L->owning_paragraph->placed_very_early == FALSE)) {
TEMPORARY_TEXT(err_mess);
@@ -21008,7 +21040,7 @@ void LanguageMethods__disclaimer(text_stream *OUT, programming_language *pl, web
int rv = FALSE;
IMETHOD_CALLV(rv, pl, SUPPRESS_DISCLAIMER_TAN_MTID);
if (rv == FALSE)
- LanguageMethods__comment(OUT, pl, TL_IS_336);
+ LanguageMethods__comment(OUT, pl, TL_IS_337);
}
#line 127 "inweb/Chapter 4/Language Methods.w"
@@ -21031,7 +21063,7 @@ void LanguageMethods__start_definition(OUTPUT_STREAM, programming_language *pl,
int rv = FALSE;
IMETHOD_CALL(rv, pl, START_DEFN_TAN_MTID, OUT, term, start, S, L);
if (rv == FALSE)
- Main__error_in_web(TL_IS_337, L);
+ Main__error_in_web(TL_IS_338, L);
}
void LanguageMethods__prolong_definition(OUTPUT_STREAM, programming_language *pl,
@@ -21039,7 +21071,7 @@ void LanguageMethods__prolong_definition(OUTPUT_STREAM, programming_language *pl
int rv = FALSE;
IMETHOD_CALL(rv, pl, PROLONG_DEFN_TAN_MTID, OUT, more, S, L);
if (rv == FALSE)
- Main__error_in_web(TL_IS_338, L);
+ Main__error_in_web(TL_IS_339, L);
}
void LanguageMethods__end_definition(OUTPUT_STREAM, programming_language *pl,
@@ -21491,7 +21523,7 @@ void ACMESupport__parse_functions(programming_language *self, web *W) {
#line 267 "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_339), L"On"))
+ if (Str__eq_wide_string(Bibliographic__get_datum(W->md, TL_IS_340), L"On"))
check_namespaces = TRUE;
language_function *fn;
LOOP_OVER(fn, language_function) {
@@ -21511,11 +21543,11 @@ void ACMESupport__post_analysis(programming_language *self, web *W) {
&& (fn->call_freely == FALSE)) {
if (fn->within_namespace)
Main__error_in_web(
- TL_IS_340,
+ TL_IS_341,
fn->function_header_at);
else
Main__error_in_web(
- TL_IS_341,
+ TL_IS_342,
fn->function_header_at);
}
}
@@ -21988,7 +22020,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_342);
+ Tags__add_by_name(L->owning_paragraph, TL_IS_343);
} else if ((Str__get_first_char(L->text) == '}') && (current_str)) {
current_str->typedef_ends = L;
current_str = NULL;
@@ -22123,14 +22155,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_344, L);
+ Main__error_in_web(TL_IS_345, 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_345, L);
+ Main__error_in_web(TL_IS_346, L);
else
cc_sp--;
}
@@ -22224,7 +22256,7 @@ void CLike__parse_functions(programming_language *self, web *W) {
;
}
if (cc_sp > 0)
- Main__error_in_web(TL_IS_343, NULL);
+ Main__error_in_web(TL_IS_344, NULL);
}
#line 314 "inweb/Chapter 4/C-Like Languages.w"
@@ -22905,8 +22937,8 @@ preform_nonterminal *InCSupport__nonterminal_by_name(text_stream *name) {
#line 764 "inweb/Chapter 4/InC Support.w"
text_stream *InCSupport__nonterminal_variable_identifier(text_stream *name) {
- if (Str__eq_wide_string(name, L"r")) return TL_IS_350;
- if (Str__eq_wide_string(name, L"rp")) return TL_IS_351;
+ if (Str__eq_wide_string(name, L"r")) return TL_IS_351;
+ if (Str__eq_wide_string(name, L"rp")) return TL_IS_352;
nonterminal_variable *ntv;
LOOP_OVER(ntv, nonterminal_variable)
if (Str__eq(ntv->ntv_name, name))
@@ -22918,7 +22950,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_352);
+ filename *Syntax = Filenames__in(P, TL_IS_353);
text_stream TO_struct;
text_stream *OUT = &TO_struct;
@@ -22929,8 +22961,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_353))
- WRITE("language %S\n", Bibliographic__get_datum(W->md, TL_IS_354));
+ if (Bibliographic__data_exists(W->md, TL_IS_354))
+ WRITE("language %S\n", Bibliographic__get_datum(W->md, TL_IS_355));
{
@@ -23121,19 +23153,19 @@ int InCSupport__share_element(programming_language *self, text_stream *elname) {
#line 79 "inweb/Chapter 5/Weave Tree.w"
-#line 86 "inweb/Chapter 5/Weave Tree.w"
+#line 85 "inweb/Chapter 5/Weave Tree.w"
-#line 94 "inweb/Chapter 5/Weave Tree.w"
+#line 92 "inweb/Chapter 5/Weave Tree.w"
#line 100 "inweb/Chapter 5/Weave Tree.w"
-#line 105 "inweb/Chapter 5/Weave Tree.w"
+#line 106 "inweb/Chapter 5/Weave Tree.w"
-#line 110 "inweb/Chapter 5/Weave Tree.w"
+#line 111 "inweb/Chapter 5/Weave Tree.w"
-#line 115 "inweb/Chapter 5/Weave Tree.w"
+#line 116 "inweb/Chapter 5/Weave Tree.w"
-#line 119 "inweb/Chapter 5/Weave Tree.w"
+#line 121 "inweb/Chapter 5/Weave Tree.w"
#line 125 "inweb/Chapter 5/Weave Tree.w"
@@ -23141,39 +23173,41 @@ int InCSupport__share_element(programming_language *self, text_stream *elname) {
#line 137 "inweb/Chapter 5/Weave Tree.w"
-#line 142 "inweb/Chapter 5/Weave Tree.w"
+#line 143 "inweb/Chapter 5/Weave Tree.w"
-#line 149 "inweb/Chapter 5/Weave Tree.w"
+#line 148 "inweb/Chapter 5/Weave Tree.w"
-#line 153 "inweb/Chapter 5/Weave Tree.w"
+#line 155 "inweb/Chapter 5/Weave Tree.w"
-#line 158 "inweb/Chapter 5/Weave Tree.w"
+#line 159 "inweb/Chapter 5/Weave Tree.w"
-#line 162 "inweb/Chapter 5/Weave Tree.w"
+#line 164 "inweb/Chapter 5/Weave Tree.w"
#line 168 "inweb/Chapter 5/Weave Tree.w"
#line 174 "inweb/Chapter 5/Weave Tree.w"
-#line 181 "inweb/Chapter 5/Weave Tree.w"
+#line 180 "inweb/Chapter 5/Weave Tree.w"
-#line 186 "inweb/Chapter 5/Weave Tree.w"
+#line 187 "inweb/Chapter 5/Weave Tree.w"
-#line 191 "inweb/Chapter 5/Weave Tree.w"
+#line 192 "inweb/Chapter 5/Weave Tree.w"
-#line 196 "inweb/Chapter 5/Weave Tree.w"
+#line 197 "inweb/Chapter 5/Weave Tree.w"
-#line 201 "inweb/Chapter 5/Weave Tree.w"
+#line 202 "inweb/Chapter 5/Weave Tree.w"
#line 207 "inweb/Chapter 5/Weave Tree.w"
-#line 211 "inweb/Chapter 5/Weave Tree.w"
+#line 213 "inweb/Chapter 5/Weave Tree.w"
#line 217 "inweb/Chapter 5/Weave Tree.w"
-#line 222 "inweb/Chapter 5/Weave Tree.w"
+#line 223 "inweb/Chapter 5/Weave Tree.w"
-#line 224 "inweb/Chapter 5/Weave Tree.w"
+#line 228 "inweb/Chapter 5/Weave Tree.w"
+
+#line 230 "inweb/Chapter 5/Weave Tree.w"
tree_type *weave_tree_type = NULL;
tree_node_type *weave_document_node_type = NULL;
tree_node_type *weave_head_node_type = NULL;
@@ -23191,6 +23225,7 @@ tree_node_type *weave_pagebreak_node_type = NULL;
tree_node_type *weave_paragraph_heading_node_type = NULL;
tree_node_type *weave_endnote_node_type = NULL;
tree_node_type *weave_figure_node_type = NULL;
+tree_node_type *weave_audio_node_type = NULL;
tree_node_type *weave_material_node_type = NULL;
tree_node_type *weave_embed_node_type = NULL;
tree_node_type *weave_pmac_node_type = NULL;
@@ -23219,91 +23254,93 @@ 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_355, NULL);
+ weave_tree_type = Trees__new_type(TL_IS_356, NULL);
weave_document_node_type =
- Trees__new_node_type(TL_IS_356, weave_document_node_MT, NULL);
+ Trees__new_node_type(TL_IS_357, weave_document_node_MT, NULL);
weave_head_node_type =
- Trees__new_node_type(TL_IS_357, weave_head_node_MT, NULL);
+ Trees__new_node_type(TL_IS_358, weave_head_node_MT, NULL);
weave_body_node_type =
- Trees__new_node_type(TL_IS_358, weave_body_node_MT, NULL);
+ Trees__new_node_type(TL_IS_359, weave_body_node_MT, NULL);
weave_tail_node_type =
- Trees__new_node_type(TL_IS_359, weave_tail_node_MT, NULL);
+ Trees__new_node_type(TL_IS_360, weave_tail_node_MT, NULL);
weave_chapter_footer_node_type =
- Trees__new_node_type(TL_IS_360, weave_chapter_footer_node_MT, NULL);
+ Trees__new_node_type(TL_IS_361, weave_chapter_footer_node_MT, NULL);
weave_chapter_header_node_type =
- Trees__new_node_type(TL_IS_361, weave_chapter_header_node_MT, NULL);
+ Trees__new_node_type(TL_IS_362, weave_chapter_header_node_MT, NULL);
weave_section_footer_node_type =
- Trees__new_node_type(TL_IS_362, weave_section_footer_node_MT, NULL);
+ Trees__new_node_type(TL_IS_363, weave_section_footer_node_MT, NULL);
weave_section_header_node_type =
- Trees__new_node_type(TL_IS_363, weave_section_header_node_MT, NULL);
+ Trees__new_node_type(TL_IS_364, weave_section_header_node_MT, NULL);
weave_section_purpose_node_type =
- Trees__new_node_type(TL_IS_364, weave_section_purpose_node_MT, NULL);
+ Trees__new_node_type(TL_IS_365, weave_section_purpose_node_MT, NULL);
weave_subheading_node_type =
- Trees__new_node_type(TL_IS_365, weave_subheading_node_MT, NULL);
+ Trees__new_node_type(TL_IS_366, weave_subheading_node_MT, NULL);
weave_bar_node_type =
- Trees__new_node_type(TL_IS_366, weave_bar_node_MT, NULL);
+ Trees__new_node_type(TL_IS_367, weave_bar_node_MT, NULL);
weave_pagebreak_node_type =
- Trees__new_node_type(TL_IS_367, weave_pagebreak_node_MT, NULL);
+ Trees__new_node_type(TL_IS_368, weave_pagebreak_node_MT, NULL);
weave_paragraph_heading_node_type =
- Trees__new_node_type(TL_IS_368, weave_paragraph_heading_node_MT, NULL);
+ Trees__new_node_type(TL_IS_369, weave_paragraph_heading_node_MT, NULL);
weave_endnote_node_type =
- Trees__new_node_type(TL_IS_369, weave_endnote_node_MT, NULL);
+ Trees__new_node_type(TL_IS_370, weave_endnote_node_MT, NULL);
weave_figure_node_type =
- Trees__new_node_type(TL_IS_370, weave_figure_node_MT, NULL);
+ Trees__new_node_type(TL_IS_371, weave_figure_node_MT, NULL);
+ weave_audio_node_type =
+ Trees__new_node_type(TL_IS_372, weave_audio_node_MT, NULL);
weave_material_node_type =
- Trees__new_node_type(TL_IS_371, weave_material_node_MT, NULL);
+ Trees__new_node_type(TL_IS_373, weave_material_node_MT, NULL);
weave_embed_node_type =
- Trees__new_node_type(TL_IS_372, weave_embed_node_MT, NULL);
+ Trees__new_node_type(TL_IS_374, weave_embed_node_MT, NULL);
weave_pmac_node_type =
- Trees__new_node_type(TL_IS_373, weave_pmac_node_MT, NULL);
+ Trees__new_node_type(TL_IS_375, weave_pmac_node_MT, NULL);
weave_vskip_node_type =
- Trees__new_node_type(TL_IS_374, weave_vskip_node_MT, NULL);
+ Trees__new_node_type(TL_IS_376, weave_vskip_node_MT, NULL);
weave_chapter_node_type =
- Trees__new_node_type(TL_IS_375, weave_chapter_node_MT, NULL);
+ Trees__new_node_type(TL_IS_377, weave_chapter_node_MT, NULL);
weave_section_node_type =
- Trees__new_node_type(TL_IS_376, weave_section_node_MT, NULL);
+ Trees__new_node_type(TL_IS_378, weave_section_node_MT, NULL);
weave_code_line_node_type =
- Trees__new_node_type(TL_IS_377, weave_code_line_node_MT, NULL);
+ Trees__new_node_type(TL_IS_379, weave_code_line_node_MT, NULL);
weave_function_usage_node_type =
- Trees__new_node_type(TL_IS_378, weave_function_usage_node_MT, NULL);
+ Trees__new_node_type(TL_IS_380, weave_function_usage_node_MT, NULL);
weave_commentary_node_type =
- Trees__new_node_type(TL_IS_379, weave_commentary_node_MT, NULL);
+ Trees__new_node_type(TL_IS_381, weave_commentary_node_MT, NULL);
weave_carousel_slide_node_type =
- Trees__new_node_type(TL_IS_380, weave_carousel_slide_node_MT, NULL);
+ Trees__new_node_type(TL_IS_382, weave_carousel_slide_node_MT, NULL);
weave_toc_node_type =
- Trees__new_node_type(TL_IS_381, weave_toc_node_MT, NULL);
+ Trees__new_node_type(TL_IS_383, weave_toc_node_MT, NULL);
weave_toc_line_node_type =
- Trees__new_node_type(TL_IS_382, weave_toc_line_node_MT, NULL);
+ Trees__new_node_type(TL_IS_384, weave_toc_line_node_MT, NULL);
weave_chapter_title_page_node_type =
- Trees__new_node_type(TL_IS_383, weave_chapter_title_page_node_MT, NULL);
+ Trees__new_node_type(TL_IS_385, weave_chapter_title_page_node_MT, NULL);
weave_defn_node_type =
- Trees__new_node_type(TL_IS_384, weave_defn_node_MT, NULL);
+ Trees__new_node_type(TL_IS_386, weave_defn_node_MT, NULL);
weave_source_code_node_type =
- Trees__new_node_type(TL_IS_385, weave_source_code_node_MT, NULL);
+ Trees__new_node_type(TL_IS_387, weave_source_code_node_MT, NULL);
weave_url_node_type =
- Trees__new_node_type(TL_IS_386, weave_url_node_MT, NULL);
+ Trees__new_node_type(TL_IS_388, weave_url_node_MT, NULL);
weave_footnote_cue_node_type =
- Trees__new_node_type(TL_IS_387, weave_footnote_cue_node_MT, NULL);
+ Trees__new_node_type(TL_IS_389, weave_footnote_cue_node_MT, NULL);
weave_begin_footnote_text_node_type =
- Trees__new_node_type(TL_IS_388, weave_begin_footnote_text_node_MT, NULL);
+ Trees__new_node_type(TL_IS_390, weave_begin_footnote_text_node_MT, NULL);
weave_display_line_node_type =
- Trees__new_node_type(TL_IS_389, weave_display_line_node_MT, NULL);
+ Trees__new_node_type(TL_IS_391, weave_display_line_node_MT, NULL);
weave_function_defn_node_type =
- Trees__new_node_type(TL_IS_390, weave_function_defn_node_MT, NULL);
+ Trees__new_node_type(TL_IS_392, weave_function_defn_node_MT, NULL);
weave_item_node_type =
- Trees__new_node_type(TL_IS_391, weave_item_node_MT, NULL);
+ Trees__new_node_type(TL_IS_393, weave_item_node_MT, NULL);
weave_grammar_index_node_type =
- Trees__new_node_type(TL_IS_392, weave_grammar_index_node_MT, NULL);
+ Trees__new_node_type(TL_IS_394, weave_grammar_index_node_MT, NULL);
weave_inline_node_type =
- Trees__new_node_type(TL_IS_393, weave_inline_node_MT, NULL);
+ Trees__new_node_type(TL_IS_395, weave_inline_node_MT, NULL);
weave_locale_node_type =
- Trees__new_node_type(TL_IS_394, weave_locale_node_MT, NULL);
+ Trees__new_node_type(TL_IS_396, weave_locale_node_MT, NULL);
weave_maths_node_type =
- Trees__new_node_type(TL_IS_395, weave_maths_node_MT, NULL);
+ Trees__new_node_type(TL_IS_397, weave_maths_node_MT, NULL);
weave_verbatim_node_type =
- Trees__new_node_type(TL_IS_396, weave_verbatim_node_MT, NULL);
+ Trees__new_node_type(TL_IS_398, weave_verbatim_node_MT, NULL);
}
heterogeneous_tree *tree = Trees__new(weave_tree_type);
Trees__make_root(tree, WeaveTree__document(tree, wv));
@@ -23428,6 +23465,15 @@ tree_node *WeaveTree__figure(heterogeneous_tree *tree,
STORE_POINTER_weave_figure_node(C));
}
+tree_node *WeaveTree__audio(heterogeneous_tree *tree,
+ text_stream *audio_name, int w) {
+ weave_audio_node *C = CREATE(weave_audio_node);
+ C->audio_name = Str__duplicate(audio_name);
+ C->w = w;
+ return Trees__new_node(tree, weave_audio_node_type,
+ STORE_POINTER_weave_audio_node(C));
+}
+
tree_node *WeaveTree__material(heterogeneous_tree *tree, int material_type, int plainly,
programming_language *styling) {
weave_material_node *C = CREATE(weave_material_node);
@@ -23447,7 +23493,7 @@ tree_node *WeaveTree__embed(heterogeneous_tree *tree,
return Trees__new_node(tree, weave_embed_node_type, STORE_POINTER_weave_embed_node(C));
}
-#line 502 "inweb/Chapter 5/Weave Tree.w"
+#line 520 "inweb/Chapter 5/Weave Tree.w"
tree_node *WeaveTree__pmac(heterogeneous_tree *tree, para_macro *pmac, int defn) {
weave_pmac_node *C = CREATE(weave_pmac_node);
C->pmac = pmac;
@@ -23455,7 +23501,7 @@ tree_node *WeaveTree__pmac(heterogeneous_tree *tree, para_macro *pmac, int defn)
return Trees__new_node(tree, weave_pmac_node_type, STORE_POINTER_weave_pmac_node(C));
}
-#line 514 "inweb/Chapter 5/Weave Tree.w"
+#line 532 "inweb/Chapter 5/Weave Tree.w"
tree_node *WeaveTree__vskip(heterogeneous_tree *tree, int in_comment) {
weave_vskip_node *C = CREATE(weave_vskip_node);
C->in_comment = in_comment;
@@ -23521,7 +23567,7 @@ tree_node *WeaveTree__weave_defn_node(heterogeneous_tree *tree, text_stream *key
return Trees__new_node(tree, weave_defn_node_type, STORE_POINTER_weave_defn_node(C));
}
-#line 583 "inweb/Chapter 5/Weave Tree.w"
+#line 601 "inweb/Chapter 5/Weave Tree.w"
tree_node *WeaveTree__source_code(heterogeneous_tree *tree,
text_stream *matter, text_stream *colouring) {
if (Str__len(colouring) != Str__len(matter)) internal_error("bad source segment");
@@ -23554,21 +23600,21 @@ tree_node *WeaveTree__footnote(heterogeneous_tree *tree, text_stream *cue) {
return Trees__new_node(tree, weave_begin_footnote_text_node_type, STORE_POINTER_weave_begin_footnote_text_node(C));
}
-#line 619 "inweb/Chapter 5/Weave Tree.w"
+#line 637 "inweb/Chapter 5/Weave Tree.w"
tree_node *WeaveTree__function_defn(heterogeneous_tree *tree, language_function *fn) {
weave_function_defn_node *C = CREATE(weave_function_defn_node);
C->fn = fn;
return Trees__new_node(tree, weave_function_defn_node_type, STORE_POINTER_weave_function_defn_node(C));
}
-#line 629 "inweb/Chapter 5/Weave Tree.w"
+#line 647 "inweb/Chapter 5/Weave Tree.w"
tree_node *WeaveTree__display_line(heterogeneous_tree *tree, text_stream *text) {
weave_display_line_node *C = CREATE(weave_display_line_node);
C->text = Str__duplicate(text);
return Trees__new_node(tree, weave_display_line_node_type, STORE_POINTER_weave_display_line_node(C));
}
-#line 648 "inweb/Chapter 5/Weave Tree.w"
+#line 666 "inweb/Chapter 5/Weave Tree.w"
tree_node *WeaveTree__weave_item_node(heterogeneous_tree *tree, int depth, text_stream *label) {
weave_item_node *C = CREATE(weave_item_node);
C->depth = depth;
@@ -23680,7 +23726,7 @@ void Formats__render(text_stream *OUT, heterogeneous_tree *tree, filename *into)
filename *F = Patterns__obtain_filename(C->wv->pattern, template);
TEMPORARY_TEXT(interior);
VMETHOD_CALL(wf, RENDER_FOR_MTID, interior, tree);
- Bibliographic__set_datum(C->wv->weave_web->md, TL_IS_397, interior);
+ Bibliographic__set_datum(C->wv->weave_web->md, TL_IS_399, interior);
if (F) Collater__for_order(OUT, C->wv, F, into);
else WRITE("%S", interior);
DISCARD_TEXT(interior);
@@ -23754,7 +23800,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_398, TL_IS_399);
+ weave_format *wf = Formats__create_weave_format(TL_IS_400, TL_IS_401);
METHOD_ADD(wf, RENDER_FOR_MTID, PlainText__render);
METHOD_ADD(wf, CHAPTER_TP_FOR_MTID, PlainText__chapter_title_page);
}
@@ -23774,7 +23820,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
text_stream *OUT = prs->OUT;
if (N->type == weave_document_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
@@ -23782,7 +23828,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_head_node_type)
{
-#line 81 "inweb/Chapter 5/Plain Text Format.w"
+#line 82 "inweb/Chapter 5/Plain Text Format.w"
weave_head_node *C = RETRIEVE_POINTER_weave_head_node(N->content);
WRITE("[%S]\n", C->banner);
@@ -23791,7 +23837,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_body_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
@@ -23799,7 +23845,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_tail_node_type)
{
-#line 85 "inweb/Chapter 5/Plain Text Format.w"
+#line 86 "inweb/Chapter 5/Plain Text Format.w"
weave_tail_node *C = RETRIEVE_POINTER_weave_tail_node(N->content);
WRITE("[%S]\n", C->rennab);
@@ -23808,7 +23854,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_verbatim_node_type)
{
-#line 120 "inweb/Chapter 5/Plain Text Format.w"
+#line 121 "inweb/Chapter 5/Plain Text Format.w"
weave_verbatim_node *C = RETRIEVE_POINTER_weave_verbatim_node(N->content);
WRITE("%S", C->content);
@@ -23817,7 +23863,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_chapter_header_node_type)
{
-#line 89 "inweb/Chapter 5/Plain Text Format.w"
+#line 90 "inweb/Chapter 5/Plain Text Format.w"
weave_chapter_header_node *C = RETRIEVE_POINTER_weave_chapter_header_node(N->content);
WRITE("%S\n\n", C->chap->md->ch_title);
@@ -23826,7 +23872,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_chapter_footer_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
@@ -23834,7 +23880,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_header_node_type)
{
-#line 93 "inweb/Chapter 5/Plain Text Format.w"
+#line 94 "inweb/Chapter 5/Plain Text Format.w"
weave_section_header_node *C = RETRIEVE_POINTER_weave_section_header_node(N->content);
WRITE("%S\n\n", C->sect->md->sect_title);
@@ -23843,7 +23889,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_footer_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
@@ -23851,7 +23897,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_purpose_node_type)
{
-#line 97 "inweb/Chapter 5/Plain Text Format.w"
+#line 98 "inweb/Chapter 5/Plain Text Format.w"
weave_section_purpose_node *C = RETRIEVE_POINTER_weave_section_purpose_node(N->content);
PlainText__subheading(prs->wv->format, OUT, prs->wv, 2, C->purpose, NULL);
@@ -23860,7 +23906,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_subheading_node_type)
{
-#line 101 "inweb/Chapter 5/Plain Text Format.w"
+#line 102 "inweb/Chapter 5/Plain Text Format.w"
weave_subheading_node *C = RETRIEVE_POINTER_weave_subheading_node(N->content);
PlainText__subheading(prs->wv->format, OUT, prs->wv, 1, C->text, NULL);
@@ -23869,7 +23915,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_bar_node_type)
{
-#line 105 "inweb/Chapter 5/Plain Text Format.w"
+#line 106 "inweb/Chapter 5/Plain Text Format.w"
WRITE("\n----------------------------------------------------------------------\n\n");
}
@@ -23877,7 +23923,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_pagebreak_node_type)
{
-#line 108 "inweb/Chapter 5/Plain Text Format.w"
+#line 109 "inweb/Chapter 5/Plain Text Format.w"
;
}
@@ -23885,7 +23931,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type)
{
-#line 111 "inweb/Chapter 5/Plain Text Format.w"
+#line 112 "inweb/Chapter 5/Plain Text Format.w"
weave_paragraph_heading_node *C = RETRIEVE_POINTER_weave_paragraph_heading_node(N->content);
WRITE("\n");
PlainText__locale(prs->wv->format, OUT, prs->wv, C->para, NULL);
@@ -23896,7 +23942,7 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_endnote_node_type)
{
-#line 117 "inweb/Chapter 5/Plain Text Format.w"
+#line 118 "inweb/Chapter 5/Plain Text Format.w"
WRITE("\n");
}
@@ -23904,105 +23950,113 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_figure_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
#line 50 "inweb/Chapter 5/Plain Text Format.w"
- else if (N->type == weave_material_node_type)
+ else if (N->type == weave_audio_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
#line 51 "inweb/Chapter 5/Plain Text Format.w"
- else if (N->type == weave_embed_node_type)
+ else if (N->type == weave_material_node_type)
{
-#line 127 "inweb/Chapter 5/Plain Text Format.w"
- weave_embed_node *C = RETRIEVE_POINTER_weave_embed_node(N->content);
- WRITE("[See %S video with ID %S.]\n", C->service, C->ID);
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
+ ;
}
#line 52 "inweb/Chapter 5/Plain Text Format.w"
- else if (N->type == weave_pmac_node_type)
+ else if (N->type == weave_embed_node_type)
{
-#line 131 "inweb/Chapter 5/Plain Text Format.w"
- weave_pmac_node *C = RETRIEVE_POINTER_weave_pmac_node(N->content);
- PlainText__para_macro(prs->wv->format, OUT, prs->wv, C->pmac, C->defn);
+#line 128 "inweb/Chapter 5/Plain Text Format.w"
+ weave_embed_node *C = RETRIEVE_POINTER_weave_embed_node(N->content);
+ WRITE("[See %S video with ID %S.]\n", C->service, C->ID);
}
#line 53 "inweb/Chapter 5/Plain Text Format.w"
- else if (N->type == weave_vskip_node_type)
+ else if (N->type == weave_pmac_node_type)
{
-#line 135 "inweb/Chapter 5/Plain Text Format.w"
- WRITE("\n");
+#line 132 "inweb/Chapter 5/Plain Text Format.w"
+ weave_pmac_node *C = RETRIEVE_POINTER_weave_pmac_node(N->content);
+ PlainText__para_macro(prs->wv->format, OUT, prs->wv, C->pmac, C->defn);
}
#line 54 "inweb/Chapter 5/Plain Text Format.w"
- else if (N->type == weave_chapter_node_type)
+ else if (N->type == weave_vskip_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
- ;
+#line 136 "inweb/Chapter 5/Plain Text Format.w"
+ WRITE("\n");
}
#line 55 "inweb/Chapter 5/Plain Text Format.w"
- else if (N->type == weave_section_node_type)
+ else if (N->type == weave_chapter_node_type)
{
-#line 138 "inweb/Chapter 5/Plain Text Format.w"
- weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
- LOG("It was %d\n", C->allocation_id);
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
+ ;
}
#line 56 "inweb/Chapter 5/Plain Text Format.w"
+ else if (N->type == weave_section_node_type)
+{
+#line 139 "inweb/Chapter 5/Plain Text Format.w"
+ weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
+ LOG("It was %d\n", C->allocation_id);
+
+}
+#line 57 "inweb/Chapter 5/Plain Text Format.w"
+
else if (N->type == weave_code_line_node_type)
{
-#line 142 "inweb/Chapter 5/Plain Text Format.w"
+#line 143 "inweb/Chapter 5/Plain Text Format.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &PlainText__render_visit, (void *) prs, L+1);
WRITE("\n");
return FALSE;
}
-#line 57 "inweb/Chapter 5/Plain Text Format.w"
+#line 58 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_function_usage_node_type)
{
-#line 148 "inweb/Chapter 5/Plain Text Format.w"
+#line 149 "inweb/Chapter 5/Plain Text Format.w"
weave_function_usage_node *C = RETRIEVE_POINTER_weave_function_usage_node(N->content);
WRITE("%S", C->fn->function_name);
}
-#line 58 "inweb/Chapter 5/Plain Text Format.w"
+#line 59 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_commentary_node_type)
{
-#line 152 "inweb/Chapter 5/Plain Text Format.w"
+#line 153 "inweb/Chapter 5/Plain Text Format.w"
weave_commentary_node *C = RETRIEVE_POINTER_weave_commentary_node(N->content);
if (C->in_code) WRITE(" /* ");
PlainText__commentary_text(prs->wv->format, OUT, prs->wv, C->text);
if (C->in_code) WRITE(" */ ");
}
-#line 59 "inweb/Chapter 5/Plain Text Format.w"
+#line 60 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_carousel_slide_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
-#line 60 "inweb/Chapter 5/Plain Text Format.w"
+#line 61 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_toc_node_type)
{
-#line 158 "inweb/Chapter 5/Plain Text Format.w"
+#line 159 "inweb/Chapter 5/Plain Text Format.w"
weave_toc_node *C = RETRIEVE_POINTER_weave_toc_node(N->content);
WRITE("%S.", C->text1);
for (tree_node *M = N->child; M; M = M->next) {
@@ -24013,149 +24067,149 @@ int PlainText__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 61 "inweb/Chapter 5/Plain Text Format.w"
+#line 62 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_toc_line_node_type)
{
-#line 168 "inweb/Chapter 5/Plain Text Format.w"
+#line 169 "inweb/Chapter 5/Plain Text Format.w"
weave_toc_line_node *C = RETRIEVE_POINTER_weave_toc_line_node(N->content);
WRITE("%S %S", C->text1, C->text2);
}
-#line 62 "inweb/Chapter 5/Plain Text Format.w"
+#line 63 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_chapter_title_page_node_type)
{
-#line 172 "inweb/Chapter 5/Plain Text Format.w"
+#line 173 "inweb/Chapter 5/Plain Text Format.w"
weave_chapter_title_page_node *C = RETRIEVE_POINTER_weave_chapter_title_page_node(N->content);
LOG("It was %d\n", C->allocation_id);
}
-#line 63 "inweb/Chapter 5/Plain Text Format.w"
+#line 64 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_defn_node_type)
{
-#line 176 "inweb/Chapter 5/Plain Text Format.w"
+#line 177 "inweb/Chapter 5/Plain Text Format.w"
weave_defn_node *C = RETRIEVE_POINTER_weave_defn_node(N->content);
WRITE("%S ", C->keyword);
}
-#line 64 "inweb/Chapter 5/Plain Text Format.w"
+#line 65 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_source_code_node_type)
{
-#line 180 "inweb/Chapter 5/Plain Text Format.w"
+#line 181 "inweb/Chapter 5/Plain Text Format.w"
weave_source_code_node *C = RETRIEVE_POINTER_weave_source_code_node(N->content);
WRITE("%S", C->matter);
}
-#line 65 "inweb/Chapter 5/Plain Text Format.w"
+#line 66 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_url_node_type)
{
-#line 184 "inweb/Chapter 5/Plain Text Format.w"
+#line 185 "inweb/Chapter 5/Plain Text Format.w"
weave_url_node *C = RETRIEVE_POINTER_weave_url_node(N->content);
WRITE("%S", C->url);
}
-#line 66 "inweb/Chapter 5/Plain Text Format.w"
+#line 67 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_footnote_cue_node_type)
{
-#line 188 "inweb/Chapter 5/Plain Text Format.w"
+#line 189 "inweb/Chapter 5/Plain Text Format.w"
weave_footnote_cue_node *C = RETRIEVE_POINTER_weave_footnote_cue_node(N->content);
WRITE("[%S]", C->cue_text);
}
-#line 67 "inweb/Chapter 5/Plain Text Format.w"
+#line 68 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_begin_footnote_text_node_type)
{
-#line 192 "inweb/Chapter 5/Plain Text Format.w"
+#line 193 "inweb/Chapter 5/Plain Text Format.w"
weave_begin_footnote_text_node *C = RETRIEVE_POINTER_weave_begin_footnote_text_node(N->content);
LOG("It was %d\n", C->allocation_id);
}
-#line 68 "inweb/Chapter 5/Plain Text Format.w"
+#line 69 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_display_line_node_type)
{
-#line 196 "inweb/Chapter 5/Plain Text Format.w"
+#line 197 "inweb/Chapter 5/Plain Text Format.w"
weave_display_line_node *C = RETRIEVE_POINTER_weave_display_line_node(N->content);
WRITE(" %S\n", C->text);
}
-#line 69 "inweb/Chapter 5/Plain Text Format.w"
+#line 70 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_function_defn_node_type)
{
-#line 200 "inweb/Chapter 5/Plain Text Format.w"
+#line 201 "inweb/Chapter 5/Plain Text Format.w"
weave_function_defn_node *C = RETRIEVE_POINTER_weave_function_defn_node(N->content);
WRITE("%S", C->fn->function_name);
return TRUE;
}
-#line 70 "inweb/Chapter 5/Plain Text Format.w"
+#line 71 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_item_node_type)
{
-#line 205 "inweb/Chapter 5/Plain Text Format.w"
+#line 206 "inweb/Chapter 5/Plain Text Format.w"
weave_item_node *C = RETRIEVE_POINTER_weave_item_node(N->content);
if (C->depth == 1) WRITE("%-4s ", C->label);
else WRITE("%-8s ", C->label);
}
-#line 71 "inweb/Chapter 5/Plain Text Format.w"
+#line 72 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_grammar_index_node_type)
{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
- ;
-
-}
-#line 72 "inweb/Chapter 5/Plain Text Format.w"
-
- else if (N->type == weave_inline_node_type)
-{
-#line 124 "inweb/Chapter 5/Plain Text Format.w"
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
;
}
#line 73 "inweb/Chapter 5/Plain Text Format.w"
+ else if (N->type == weave_inline_node_type)
+{
+#line 125 "inweb/Chapter 5/Plain Text Format.w"
+ ;
+
+}
+#line 74 "inweb/Chapter 5/Plain Text Format.w"
+
else if (N->type == weave_locale_node_type)
{
-#line 210 "inweb/Chapter 5/Plain Text Format.w"
+#line 211 "inweb/Chapter 5/Plain Text Format.w"
weave_locale_node *C = RETRIEVE_POINTER_weave_locale_node(N->content);
WRITE("%S%S", C->par1->ornament, C->par1->paragraph_number);
if (C->par2) WRITE("-%S", C->par2->paragraph_number);
}
-#line 74 "inweb/Chapter 5/Plain Text Format.w"
+#line 75 "inweb/Chapter 5/Plain Text Format.w"
else if (N->type == weave_maths_node_type)
{
-#line 215 "inweb/Chapter 5/Plain Text Format.w"
+#line 216 "inweb/Chapter 5/Plain Text Format.w"
weave_maths_node *C = RETRIEVE_POINTER_weave_maths_node(N->content);
if (C->displayed) WRITE("\n");
WRITE("%S", C->content);
if (C->displayed) WRITE("\n\n");
}
-#line 75 "inweb/Chapter 5/Plain Text Format.w"
+#line 76 "inweb/Chapter 5/Plain Text Format.w"
else internal_error("unable to render unknown node");
return TRUE;
}
-#line 221 "inweb/Chapter 5/Plain Text Format.w"
+#line 222 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__subheading(weave_format *self, text_stream *OUT, weave_order *wv,
int level, text_stream *comment, text_stream *head) {
WRITE("%S:\n", comment);
if ((level == 2) && (head)) WRITE("%S\n\n", head);
}
-#line 228 "inweb/Chapter 5/Plain Text Format.w"
+#line 229 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__toc(weave_format *self, text_stream *OUT, weave_order *wv, int stage,
text_stream *text1, text_stream *text2, paragraph *P) {
switch (stage) {
@@ -24166,7 +24220,7 @@ void PlainText__toc(weave_format *self, text_stream *OUT, weave_order *wv, int s
}
}
-#line 239 "inweb/Chapter 5/Plain Text Format.w"
+#line 240 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__chapter_title_page(weave_format *self, text_stream *OUT,
weave_order *wv, chapter *C) {
WRITE("%S\n\n", C->md->rubric);
@@ -24176,7 +24230,7 @@ void PlainText__chapter_title_page(weave_format *self, text_stream *OUT,
S->md->sect_range, S->md->sect_title, S->sect_purpose);
}
-#line 249 "inweb/Chapter 5/Plain Text Format.w"
+#line 250 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__para_macro(weave_format *self, text_stream *OUT, weave_order *wv,
para_macro *pmac, int defn) {
WRITE("<%S (%S)>%s",
@@ -24184,25 +24238,25 @@ void PlainText__para_macro(weave_format *self, text_stream *OUT, weave_order *wv
(defn)?" =":"");
}
-#line 257 "inweb/Chapter 5/Plain Text Format.w"
+#line 258 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__blank_line(weave_format *self, text_stream *OUT, weave_order *wv,
int in_comment) {
WRITE("\n");
}
-#line 263 "inweb/Chapter 5/Plain Text Format.w"
+#line 264 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__endnote(weave_format *self, text_stream *OUT, weave_order *wv,
int end) {
WRITE("\n");
}
-#line 269 "inweb/Chapter 5/Plain Text Format.w"
+#line 270 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__commentary_text(weave_format *self, text_stream *OUT,
weave_order *wv, text_stream *id) {
WRITE("%S", id);
}
-#line 275 "inweb/Chapter 5/Plain Text Format.w"
+#line 276 "inweb/Chapter 5/Plain Text Format.w"
void PlainText__locale(weave_format *self, text_stream *OUT, weave_order *wv,
paragraph *par1, paragraph *par2) {
WRITE("%S%S", par1->ornament, par1->paragraph_number);
@@ -24214,7 +24268,7 @@ void TeX__create(void) {
{
#line 16 "inweb/Chapter 5/TeX Format.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_400, TL_IS_401);
+ weave_format *wf = Formats__create_weave_format(TL_IS_402, TL_IS_403);
METHOD_ADD(wf, RENDER_FOR_MTID, TeX__render_TeX);
{
@@ -24233,7 +24287,7 @@ void TeX__create(void) {
{
#line 21 "inweb/Chapter 5/TeX Format.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_402, TL_IS_403);
+ weave_format *wf = Formats__create_weave_format(TL_IS_404, TL_IS_405);
METHOD_ADD(wf, RENDER_FOR_MTID, TeX__render_DVI);
{
@@ -24255,7 +24309,7 @@ void TeX__create(void) {
{
#line 29 "inweb/Chapter 5/TeX Format.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_404, TL_IS_405);
+ weave_format *wf = Formats__create_weave_format(TL_IS_406, TL_IS_407);
METHOD_ADD(wf, RENDER_FOR_MTID, TeX__render_PDF);
{
@@ -24303,7 +24357,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
text_stream *OUT = trs->OUT;
if (N->type == weave_document_node_type)
{
-#line 203 "inweb/Chapter 5/TeX Format.w"
+#line 204 "inweb/Chapter 5/TeX Format.w"
;
}
@@ -24311,13 +24365,13 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_head_node_type)
{
-#line 121 "inweb/Chapter 5/TeX Format.w"
+#line 122 "inweb/Chapter 5/TeX Format.w"
weave_head_node *C = RETRIEVE_POINTER_weave_head_node(N->content);
WRITE("%% %S\n", C->banner);
{
-#line 331 "inweb/Chapter 5/TeX Format.w"
- filename *Macros = Patterns__obtain_filename(trs->wv->pattern, TL_IS_407);
+#line 332 "inweb/Chapter 5/TeX Format.w"
+ filename *Macros = Patterns__obtain_filename(trs->wv->pattern, TL_IS_409);
FILE *MACROS = Filenames__fopen(Macros, "r");
if (MACROS == NULL) Errors__fatal_with_file("can't open file of TeX macros", Macros);
while (TRUE) {
@@ -24328,7 +24382,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
fclose(MACROS);
}
-#line 123 "inweb/Chapter 5/TeX Format.w"
+#line 124 "inweb/Chapter 5/TeX Format.w"
;
}
@@ -24336,7 +24390,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_body_node_type)
{
-#line 203 "inweb/Chapter 5/TeX Format.w"
+#line 204 "inweb/Chapter 5/TeX Format.w"
;
}
@@ -24344,7 +24398,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_tail_node_type)
{
-#line 126 "inweb/Chapter 5/TeX Format.w"
+#line 127 "inweb/Chapter 5/TeX Format.w"
weave_tail_node *C = RETRIEVE_POINTER_weave_tail_node(N->content);
WRITE("%% %S\n", C->rennab);
WRITE("\\end\n");
@@ -24354,7 +24408,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_verbatim_node_type)
{
-#line 199 "inweb/Chapter 5/TeX Format.w"
+#line 200 "inweb/Chapter 5/TeX Format.w"
weave_verbatim_node *C = RETRIEVE_POINTER_weave_verbatim_node(N->content);
WRITE("%S", C->content);
@@ -24363,7 +24417,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_chapter_header_node_type)
{
-#line 131 "inweb/Chapter 5/TeX Format.w"
+#line 132 "inweb/Chapter 5/TeX Format.w"
weave_chapter_header_node *C = RETRIEVE_POINTER_weave_chapter_header_node(N->content);
TeX__paragraph_heading(trs->wv->format, OUT, trs->wv, FIRST_IN_LINKED_LIST(section, C->chap->sections), NULL, C->chap->md->ch_title, 3, FALSE);
@@ -24372,7 +24426,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_chapter_footer_node_type)
{
-#line 203 "inweb/Chapter 5/TeX Format.w"
+#line 204 "inweb/Chapter 5/TeX Format.w"
;
}
@@ -24380,7 +24434,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_header_node_type)
{
-#line 135 "inweb/Chapter 5/TeX Format.w"
+#line 136 "inweb/Chapter 5/TeX Format.w"
weave_section_header_node *C = RETRIEVE_POINTER_weave_section_header_node(N->content);
TeX__paragraph_heading(trs->wv->format, OUT, trs->wv, C->sect, NULL, C->sect->md->sect_title, 2, FALSE);
@@ -24389,7 +24443,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_footer_node_type)
{
-#line 203 "inweb/Chapter 5/TeX Format.w"
+#line 204 "inweb/Chapter 5/TeX Format.w"
;
}
@@ -24397,7 +24451,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_purpose_node_type)
{
-#line 139 "inweb/Chapter 5/TeX Format.w"
+#line 140 "inweb/Chapter 5/TeX Format.w"
weave_section_purpose_node *C = RETRIEVE_POINTER_weave_section_purpose_node(N->content);
TeX__subheading(trs->wv->format, OUT, trs->wv, 2, C->purpose, NULL);
@@ -24406,7 +24460,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_subheading_node_type)
{
-#line 143 "inweb/Chapter 5/TeX Format.w"
+#line 144 "inweb/Chapter 5/TeX Format.w"
weave_subheading_node *C = RETRIEVE_POINTER_weave_subheading_node(N->content);
TeX__subheading(trs->wv->format, OUT, trs->wv, 1, C->text, NULL);
@@ -24415,7 +24469,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_bar_node_type)
{
-#line 147 "inweb/Chapter 5/TeX Format.w"
+#line 148 "inweb/Chapter 5/TeX Format.w"
WRITE("\\par\\medskip\\noindent\\hrule\\medskip\\noindent\n");
}
@@ -24423,7 +24477,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_pagebreak_node_type)
{
-#line 150 "inweb/Chapter 5/TeX Format.w"
+#line 151 "inweb/Chapter 5/TeX Format.w"
WRITE("\\vfill\\eject\n");
}
@@ -24431,16 +24485,16 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type)
{
-#line 153 "inweb/Chapter 5/TeX Format.w"
+#line 154 "inweb/Chapter 5/TeX Format.w"
weave_paragraph_heading_node *C = RETRIEVE_POINTER_weave_paragraph_heading_node(N->content);
- TeX__paragraph_heading(trs->wv->format, OUT, trs->wv, C->para->under_section, C->para, TL_IS_406, 0, FALSE);
+ TeX__paragraph_heading(trs->wv->format, OUT, trs->wv, C->para->under_section, C->para, TL_IS_408, 0, FALSE);
}
#line 88 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_endnote_node_type)
{
-#line 157 "inweb/Chapter 5/TeX Format.w"
+#line 158 "inweb/Chapter 5/TeX Format.w"
WRITE("\\par\\noindent\\penalty10000\n");
WRITE("{\\usagefont ");
for (tree_node *M = N->child; M; M = M->next)
@@ -24453,7 +24507,7 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_figure_node_type)
{
-#line 172 "inweb/Chapter 5/TeX Format.w"
+#line 173 "inweb/Chapter 5/TeX Format.w"
if (trs->as_PDF) {
weave_figure_node *C = RETRIEVE_POINTER_weave_figure_node(N->content);
WRITE("\\pdfximage");
@@ -24471,9 +24525,17 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
}
#line 90 "inweb/Chapter 5/TeX Format.w"
+ else if (N->type == weave_audio_node_type)
+{
+#line 204 "inweb/Chapter 5/TeX Format.w"
+ ;
+
+}
+#line 91 "inweb/Chapter 5/TeX Format.w"
+
else if (N->type == weave_material_node_type)
{
-#line 187 "inweb/Chapter 5/TeX Format.w"
+#line 188 "inweb/Chapter 5/TeX Format.w"
if (N->child) {
weave_material_node *C = RETRIEVE_POINTER_weave_material_node(N->content);
if ((C->material_type != COMMENTARY_MATERIAL) && (C->material_type != ENDNOTES_MATERIAL))
@@ -24486,20 +24548,20 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 91 "inweb/Chapter 5/TeX Format.w"
+#line 92 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_embed_node_type)
{
-#line 206 "inweb/Chapter 5/TeX Format.w"
+#line 207 "inweb/Chapter 5/TeX Format.w"
weave_embed_node *C = RETRIEVE_POINTER_weave_embed_node(N->content);
LOG("It was %d\n", C->allocation_id);
}
-#line 92 "inweb/Chapter 5/TeX Format.w"
+#line 93 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_pmac_node_type)
{
-#line 210 "inweb/Chapter 5/TeX Format.w"
+#line 211 "inweb/Chapter 5/TeX Format.w"
weave_pmac_node *C = RETRIEVE_POINTER_weave_pmac_node(N->content);
if (trs->as_PDF)
TeX__para_macro_PDF_1(trs->wv->format, OUT, trs->wv, C->pmac, C->defn);
@@ -24508,38 +24570,38 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
TeX__para_macro_PDF_2(trs->wv->format, OUT, trs->wv, C->pmac, C->defn);
}
-#line 93 "inweb/Chapter 5/TeX Format.w"
+#line 94 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_vskip_node_type)
{
-#line 218 "inweb/Chapter 5/TeX Format.w"
+#line 219 "inweb/Chapter 5/TeX Format.w"
weave_vskip_node *C = RETRIEVE_POINTER_weave_vskip_node(N->content);
if (C->in_comment) WRITE("\\smallskip\\par\\noindent%%\n");
else WRITE("\\smallskip\n");
}
-#line 94 "inweb/Chapter 5/TeX Format.w"
+#line 95 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_chapter_node_type)
{
-#line 203 "inweb/Chapter 5/TeX Format.w"
+#line 204 "inweb/Chapter 5/TeX Format.w"
;
-}
-#line 95 "inweb/Chapter 5/TeX Format.w"
-
- else if (N->type == weave_section_node_type)
-{
-#line 223 "inweb/Chapter 5/TeX Format.w"
- weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
- LOG("It was %d\n", C->allocation_id);
-
}
#line 96 "inweb/Chapter 5/TeX Format.w"
+ else if (N->type == weave_section_node_type)
+{
+#line 224 "inweb/Chapter 5/TeX Format.w"
+ weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
+ LOG("It was %d\n", C->allocation_id);
+
+}
+#line 97 "inweb/Chapter 5/TeX Format.w"
+
else if (N->type == weave_code_line_node_type)
{
-#line 227 "inweb/Chapter 5/TeX Format.w"
+#line 228 "inweb/Chapter 5/TeX Format.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &TeX__render_visit, (void *) trs, L+1);
WRITE("|");
@@ -24547,39 +24609,39 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 97 "inweb/Chapter 5/TeX Format.w"
+#line 98 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_function_usage_node_type)
{
-#line 234 "inweb/Chapter 5/TeX Format.w"
+#line 235 "inweb/Chapter 5/TeX Format.w"
weave_function_usage_node *C = RETRIEVE_POINTER_weave_function_usage_node(N->content);
WRITE("%S", C->fn->function_name);
}
-#line 98 "inweb/Chapter 5/TeX Format.w"
+#line 99 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_commentary_node_type)
{
-#line 238 "inweb/Chapter 5/TeX Format.w"
+#line 239 "inweb/Chapter 5/TeX Format.w"
weave_commentary_node *C = RETRIEVE_POINTER_weave_commentary_node(N->content);
if (C->in_code) WRITE(" \\hfill{\\ttninepoint\\it ");
TeX__commentary_text(NULL, OUT, trs->wv, C->text);
if (C->in_code) WRITE("}");
}
-#line 99 "inweb/Chapter 5/TeX Format.w"
+#line 100 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_carousel_slide_node_type)
{
-#line 203 "inweb/Chapter 5/TeX Format.w"
+#line 204 "inweb/Chapter 5/TeX Format.w"
;
}
-#line 100 "inweb/Chapter 5/TeX Format.w"
+#line 101 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_toc_node_type)
{
-#line 244 "inweb/Chapter 5/TeX Format.w"
+#line 245 "inweb/Chapter 5/TeX Format.w"
WRITE("\\medskip\\hrule\\smallskip\\par\\noindent{\\usagefont ");
for (tree_node *M = N->child; M; M = M->next) {
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) trs, L+1);
@@ -24589,38 +24651,38 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 101 "inweb/Chapter 5/TeX Format.w"
+#line 102 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_toc_line_node_type)
{
-#line 253 "inweb/Chapter 5/TeX Format.w"
+#line 254 "inweb/Chapter 5/TeX Format.w"
weave_toc_line_node *C = RETRIEVE_POINTER_weave_toc_line_node(N->content);
WRITE("%S~%S", C->text1, C->text2);
}
-#line 102 "inweb/Chapter 5/TeX Format.w"
+#line 103 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_chapter_title_page_node_type)
{
-#line 257 "inweb/Chapter 5/TeX Format.w"
+#line 258 "inweb/Chapter 5/TeX Format.w"
weave_chapter_title_page_node *C = RETRIEVE_POINTER_weave_chapter_title_page_node(N->content);
LOG("It was %d\n", C->allocation_id);
}
-#line 103 "inweb/Chapter 5/TeX Format.w"
+#line 104 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_defn_node_type)
{
-#line 261 "inweb/Chapter 5/TeX Format.w"
+#line 262 "inweb/Chapter 5/TeX Format.w"
weave_defn_node *C = RETRIEVE_POINTER_weave_defn_node(N->content);
WRITE("{\\ninebf %S} ", C->keyword);
}
-#line 104 "inweb/Chapter 5/TeX Format.w"
+#line 105 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_source_code_node_type)
{
-#line 265 "inweb/Chapter 5/TeX Format.w"
+#line 266 "inweb/Chapter 5/TeX Format.w"
weave_source_code_node *C = RETRIEVE_POINTER_weave_source_code_node(N->content);
int starts = FALSE;
if (N == N->parent->child) starts = TRUE;
@@ -24628,57 +24690,57 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
C->matter, C->colouring, starts);
}
-#line 105 "inweb/Chapter 5/TeX Format.w"
+#line 106 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_url_node_type)
{
-#line 272 "inweb/Chapter 5/TeX Format.w"
+#line 273 "inweb/Chapter 5/TeX Format.w"
weave_url_node *C = RETRIEVE_POINTER_weave_url_node(N->content);
WRITE("%S", C->url);
}
-#line 106 "inweb/Chapter 5/TeX Format.w"
+#line 107 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_footnote_cue_node_type)
{
-#line 276 "inweb/Chapter 5/TeX Format.w"
+#line 277 "inweb/Chapter 5/TeX Format.w"
weave_footnote_cue_node *C = RETRIEVE_POINTER_weave_footnote_cue_node(N->content);
WRITE("[%S]", C->cue_text);
}
-#line 107 "inweb/Chapter 5/TeX Format.w"
+#line 108 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_begin_footnote_text_node_type)
{
-#line 280 "inweb/Chapter 5/TeX Format.w"
+#line 281 "inweb/Chapter 5/TeX Format.w"
weave_begin_footnote_text_node *C = RETRIEVE_POINTER_weave_begin_footnote_text_node(N->content);
LOG("It was %d\n", C->allocation_id);
}
-#line 108 "inweb/Chapter 5/TeX Format.w"
+#line 109 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_display_line_node_type)
{
-#line 284 "inweb/Chapter 5/TeX Format.w"
+#line 285 "inweb/Chapter 5/TeX Format.w"
weave_display_line_node *C = RETRIEVE_POINTER_weave_display_line_node(N->content);
WRITE("\\quotesource{%S}\n", C->text);
}
-#line 109 "inweb/Chapter 5/TeX Format.w"
+#line 110 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_function_defn_node_type)
{
-#line 288 "inweb/Chapter 5/TeX Format.w"
+#line 289 "inweb/Chapter 5/TeX Format.w"
weave_function_defn_node *C = RETRIEVE_POINTER_weave_function_defn_node(N->content);
WRITE("%S", C->fn->function_name);
return TRUE;
}
-#line 110 "inweb/Chapter 5/TeX Format.w"
+#line 111 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_item_node_type)
{
-#line 293 "inweb/Chapter 5/TeX Format.w"
+#line 294 "inweb/Chapter 5/TeX Format.w"
weave_item_node *C = RETRIEVE_POINTER_weave_item_node(N->content);
if (Str__len(C->label) > 0) {
if (C->depth == 1) WRITE("\\item{(%S)}", C->label);
@@ -24689,19 +24751,19 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 111 "inweb/Chapter 5/TeX Format.w"
+#line 112 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_grammar_index_node_type)
{
-#line 303 "inweb/Chapter 5/TeX Format.w"
+#line 304 "inweb/Chapter 5/TeX Format.w"
InCSupport__weave_grammar_index(OUT);
}
-#line 112 "inweb/Chapter 5/TeX Format.w"
+#line 113 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_inline_node_type)
{
-#line 306 "inweb/Chapter 5/TeX Format.w"
+#line 307 "inweb/Chapter 5/TeX Format.w"
WRITE("|");
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) trs, L+1);
@@ -24709,34 +24771,34 @@ int TeX__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 113 "inweb/Chapter 5/TeX Format.w"
+#line 114 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_locale_node_type)
{
-#line 313 "inweb/Chapter 5/TeX Format.w"
+#line 314 "inweb/Chapter 5/TeX Format.w"
weave_locale_node *C = RETRIEVE_POINTER_weave_locale_node(N->content);
WRITE("$\\%S$%S", C->par1->ornament, C->par1->paragraph_number);
if (C->par2) WRITE("-%S", C->par2->paragraph_number);
}
-#line 114 "inweb/Chapter 5/TeX Format.w"
+#line 115 "inweb/Chapter 5/TeX Format.w"
else if (N->type == weave_maths_node_type)
{
-#line 318 "inweb/Chapter 5/TeX Format.w"
+#line 319 "inweb/Chapter 5/TeX Format.w"
weave_maths_node *C = RETRIEVE_POINTER_weave_maths_node(N->content);
if (C->displayed) WRITE("$$"); else WRITE("$");
WRITE("%S", C->content);
if (C->displayed) WRITE("$$"); else WRITE("$");
}
-#line 115 "inweb/Chapter 5/TeX Format.w"
+#line 116 "inweb/Chapter 5/TeX Format.w"
else internal_error("unable to render unknown node");
return TRUE;
}
-#line 342 "inweb/Chapter 5/TeX Format.w"
+#line 343 "inweb/Chapter 5/TeX Format.w"
int TeX__preserve_math_mode(weave_format *self, weave_order *wv,
text_stream *matter, text_stream *id) {
return TRUE;
@@ -24746,7 +24808,7 @@ int TeX__yes(weave_format *self, weave_order *wv) {
return TRUE;
}
-#line 352 "inweb/Chapter 5/TeX Format.w"
+#line 353 "inweb/Chapter 5/TeX Format.w"
void TeX__subheading(weave_format *self, text_stream *OUT, weave_order *wv,
int level, text_stream *comment, text_stream *head) {
switch (level) {
@@ -24762,7 +24824,7 @@ void TeX__subheading(weave_format *self, text_stream *OUT, weave_order *wv,
}
}
-#line 368 "inweb/Chapter 5/TeX Format.w"
+#line 369 "inweb/Chapter 5/TeX Format.w"
void TeX__toc(weave_format *self, text_stream *OUT, weave_order *wv, int stage,
text_stream *text1, text_stream *text2, paragraph *P) {
switch (stage) {
@@ -24781,7 +24843,7 @@ void TeX__toc(weave_format *self, text_stream *OUT, weave_order *wv, int stage,
}
}
-#line 387 "inweb/Chapter 5/TeX Format.w"
+#line 388 "inweb/Chapter 5/TeX Format.w"
void TeX__chapter_title_page(weave_format *self, text_stream *OUT, weave_order *wv,
chapter *C) {
WRITE("%S\\medskip\n", C->md->rubric);
@@ -24793,37 +24855,37 @@ void TeX__chapter_title_page(weave_format *self, text_stream *OUT, weave_order *
}
}
-#line 399 "inweb/Chapter 5/TeX Format.w"
+#line 400 "inweb/Chapter 5/TeX Format.w"
text_stream *P_literal = NULL;
void TeX__paragraph_heading(weave_format *self, text_stream *OUT, weave_order *wv,
section *S, paragraph *P, text_stream *heading_text, int weight, int no_skip) {
text_stream *TeX_macro = NULL;
{
-#line 444 "inweb/Chapter 5/TeX Format.w"
+#line 445 "inweb/Chapter 5/TeX Format.w"
switch (weight) {
- case 0: TeX_macro = TL_IS_408; break;
- case 1: TeX_macro = TL_IS_409; break;
- case 2: TeX_macro = TL_IS_410; break;
- default: TeX_macro = TL_IS_411; break;
+ case 0: TeX_macro = TL_IS_410; break;
+ case 1: TeX_macro = TL_IS_411; break;
+ case 2: TeX_macro = TL_IS_412; break;
+ default: TeX_macro = TL_IS_413; break;
}
if (wv->theme_match) {
switch (weight) {
- case 0: TeX_macro = TL_IS_412; break;
- case 1: TeX_macro = TL_IS_413; break;
- case 2: TeX_macro = TL_IS_414; break;
- default: TeX_macro = TL_IS_415; break;
+ case 0: TeX_macro = TL_IS_414; break;
+ case 1: TeX_macro = TL_IS_415; break;
+ case 2: TeX_macro = TL_IS_416; break;
+ default: TeX_macro = TL_IS_417; break;
}
}
if (no_skip) {
switch (weight) {
- case 0: TeX_macro = TL_IS_416; break;
- case 1: TeX_macro = TL_IS_417; break;
+ case 0: TeX_macro = TL_IS_418; break;
+ case 1: TeX_macro = TL_IS_419; break;
}
}
}
-#line 403 "inweb/Chapter 5/TeX Format.w"
+#line 404 "inweb/Chapter 5/TeX Format.w"
;
if (P_literal == NULL) P_literal = Str__new_from_wide_string(L"P");
@@ -24832,7 +24894,7 @@ void TeX__paragraph_heading(weave_format *self, text_stream *OUT, weave_order *w
TEMPORARY_TEXT(mark);
{
-#line 475 "inweb/Chapter 5/TeX Format.w"
+#line 476 "inweb/Chapter 5/TeX Format.w"
text_stream *chaptermark = Str__new();
text_stream *sectionmark = Str__new();
if (weight == 3) {
@@ -24850,7 +24912,7 @@ void TeX__paragraph_heading(weave_format *self, text_stream *OUT, weave_order *w
WRITE_TO(mark, "%S%S\\quad$\\%S$%S", chaptermark, sectionmark, orn, N);
}
-#line 409 "inweb/Chapter 5/TeX Format.w"
+#line 410 "inweb/Chapter 5/TeX Format.w"
;
TEMPORARY_TEXT(modified);
Str__copy(modified, heading_text);
@@ -24870,19 +24932,19 @@ void TeX__paragraph_heading(weave_format *self, text_stream *OUT, weave_order *w
Regexp__dispose_of(&mr);
}
-#line 497 "inweb/Chapter 5/TeX Format.w"
+#line 498 "inweb/Chapter 5/TeX Format.w"
void TeX__source_code(weave_format *self, text_stream *OUT, weave_order *wv,
text_stream *matter, text_stream *colouring, int starts) {
WRITE("\\smallskip\\par\\noindent");
if (starts) {
{
-#line 517 "inweb/Chapter 5/TeX Format.w"
+#line 518 "inweb/Chapter 5/TeX Format.w"
int tab_stops_of_indentation = Str__remove_indentation(matter, 4);
for (int i=0; iornament, par1->paragraph_number);
if (par2) WRITE("-%S", par2->paragraph_number);
}
-#line 619 "inweb/Chapter 5/TeX Format.w"
+#line 620 "inweb/Chapter 5/TeX Format.w"
void TeX__tail(weave_format *self, text_stream *OUT, weave_order *wv,
text_stream *comment, section *S) {
WRITE("%% %S\n", comment);
WRITE("\\end\n");
}
-#line 629 "inweb/Chapter 5/TeX Format.w"
+#line 630 "inweb/Chapter 5/TeX Format.w"
int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_order *wv,
chapter *C, section *S, source_line *L, text_stream *matter,
text_stream *concluding_comment) {
@@ -25015,7 +25077,7 @@ int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_or
preform_production_count = 0;
{
-#line 646 "inweb/Chapter 5/TeX Format.w"
+#line 647 "inweb/Chapter 5/TeX Format.w"
WRITE("\\nonterminal{%S} |::=|",
L->preform_nonterminal_defined->unangled_name);
if (L->preform_nonterminal_defined->as_function) {
@@ -25032,14 +25094,14 @@ int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_or
WRITE("\n");
}
-#line 634 "inweb/Chapter 5/TeX Format.w"
+#line 635 "inweb/Chapter 5/TeX Format.w"
;
return TRUE;
} else {
if (L->category == PREFORM_GRAMMAR_LCAT) {
{
-#line 662 "inweb/Chapter 5/TeX Format.w"
+#line 663 "inweb/Chapter 5/TeX Format.w"
TEMPORARY_TEXT(problem);
match_results mr = Regexp__create_mr();
if (Regexp__match(&mr, matter, L"Issue (%c*?) problem")) Str__copy(problem, mr.exp[0]);
@@ -25086,7 +25148,7 @@ int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_or
Regexp__dispose_of(&mr);
}
-#line 638 "inweb/Chapter 5/TeX Format.w"
+#line 639 "inweb/Chapter 5/TeX Format.w"
;
return TRUE;
}
@@ -25094,7 +25156,7 @@ int TeX__preform_document(weave_format *self, text_stream *OUT, web *W, weave_or
return FALSE;
}
-#line 710 "inweb/Chapter 5/TeX Format.w"
+#line 711 "inweb/Chapter 5/TeX Format.w"
void TeX__post_process_PDF(weave_format *self, weave_order *wv, int open) {
RunningTeX__post_process_weave(wv, open, FALSE);
}
@@ -25102,18 +25164,18 @@ void TeX__post_process_DVI(weave_format *self, weave_order *wv, int open) {
RunningTeX__post_process_weave(wv, open, TRUE);
}
-#line 718 "inweb/Chapter 5/TeX Format.w"
+#line 719 "inweb/Chapter 5/TeX Format.w"
void TeX__post_process_report(weave_format *self, weave_order *wv) {
RunningTeX__report_on_post_processing(wv);
}
-#line 723 "inweb/Chapter 5/TeX Format.w"
+#line 724 "inweb/Chapter 5/TeX Format.w"
int TeX__post_process_substitute(weave_format *self, text_stream *OUT,
weave_order *wv, text_stream *detail, weave_pattern *pattern) {
return RunningTeX__substitute_post_processing_data(OUT, wv, detail);
}
-#line 736 "inweb/Chapter 5/TeX Format.w"
+#line 737 "inweb/Chapter 5/TeX Format.w"
void TeX__remove_math_mode(OUTPUT_STREAM, text_stream *text) {
TEMPORARY_TEXT(math_matter);
TeX__remove_math_mode_range(math_matter, text, 0, Str__len(text)-1);
@@ -25125,7 +25187,7 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
for (int i=from; i <= to; i++) {
{
-#line 767 "inweb/Chapter 5/TeX Format.w"
+#line 768 "inweb/Chapter 5/TeX Format.w"
if ((Str__get_at(text, i) == '\\') &&
(Str__get_at(text, i+1) == 'o') && (Str__get_at(text, i+2) == 'v') &&
(Str__get_at(text, i+3) == 'e') && (Str__get_at(text, i+4) == 'r') &&
@@ -25160,13 +25222,13 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
}
}
-#line 745 "inweb/Chapter 5/TeX Format.w"
+#line 746 "inweb/Chapter 5/TeX Format.w"
;
}
for (int i=from; i <= to; i++) {
{
-#line 803 "inweb/Chapter 5/TeX Format.w"
+#line 804 "inweb/Chapter 5/TeX Format.w"
if ((Str__get_at(text, i) == '{') && (Str__get_at(text, i+1) == '\\') &&
(((Str__get_at(text, i+2) == 'r') && (Str__get_at(text, i+3) == 'm')) ||
((Str__get_at(text, i+2) == 'i') && (Str__get_at(text, i+3) == 't'))) &&
@@ -25182,11 +25244,11 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
}
}
-#line 748 "inweb/Chapter 5/TeX Format.w"
+#line 749 "inweb/Chapter 5/TeX Format.w"
;
{
-#line 821 "inweb/Chapter 5/TeX Format.w"
+#line 822 "inweb/Chapter 5/TeX Format.w"
if ((Str__get_at(text, i) == '\\') &&
(Str__get_at(text, i+1) == 's') && (Str__get_at(text, i+2) == 'q') &&
(Str__get_at(text, i+3) == 'r') && (Str__get_at(text, i+4) == 't') &&
@@ -25217,7 +25279,7 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
}
}
-#line 749 "inweb/Chapter 5/TeX Format.w"
+#line 750 "inweb/Chapter 5/TeX Format.w"
;
}
int math_mode = FALSE;
@@ -25229,21 +25291,21 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
case '~': if (math_mode) WRITE(" "); else WRITE("~"); break;
case '\\':
{
-#line 851 "inweb/Chapter 5/TeX Format.w"
+#line 852 "inweb/Chapter 5/TeX Format.w"
TEMPORARY_TEXT(macro);
i++;
while ((i < Str__len(text)) && (Characters__isalpha(Str__get_at(text, i))))
PUT_TO(macro, Str__get_at(text, i++));
- if (Str__eq(macro, TL_IS_418))
+ if (Str__eq(macro, TL_IS_420))
{
-#line 974 "inweb/Chapter 5/TeX Format.w"
+#line 975 "inweb/Chapter 5/TeX Format.w"
if (Str__get_at(text, i) == '\\') {
Str__clear(macro);
i++;
while ((i < Str__len(text)) && (Characters__isalpha(Str__get_at(text, i))))
PUT_TO(macro, Str__get_at(text, i++));
- if (Str__eq(macro, TL_IS_514)) PUT((wchar_t) 0x2204);
- else if (Str__eq(macro, TL_IS_515)) { PUT((wchar_t) 0x00AC); PUT((wchar_t) 0x2200); }
+ if (Str__eq(macro, TL_IS_516)) PUT((wchar_t) 0x2204);
+ else if (Str__eq(macro, TL_IS_517)) { PUT((wchar_t) 0x00AC); PUT((wchar_t) 0x2200); }
else {
PRINT("Don't know how to apply '\\not' to '\\%S'\n", macro);
}
@@ -25252,104 +25314,104 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
}
}
-#line 855 "inweb/Chapter 5/TeX Format.w"
+#line 856 "inweb/Chapter 5/TeX Format.w"
else
{
-#line 861 "inweb/Chapter 5/TeX Format.w"
- if (Str__eq(macro, TL_IS_419)) WRITE("<=");
- else if (Str__eq(macro, TL_IS_420)) WRITE(">=");
- else if (Str__eq(macro, TL_IS_421)) WRITE("~");
- else if (Str__eq(macro, TL_IS_422)) WRITE("");
- else if (Str__eq(macro, TL_IS_423)) WRITE("");
+#line 862 "inweb/Chapter 5/TeX Format.w"
+ if (Str__eq(macro, TL_IS_421)) WRITE("<=");
+ else if (Str__eq(macro, TL_IS_422)) WRITE(">=");
+ else if (Str__eq(macro, TL_IS_423)) WRITE("~");
else if (Str__eq(macro, TL_IS_424)) WRITE("");
- else if (Str__eq(macro, TL_IS_425)) WRITE("=>");
- else if (Str__eq(macro, TL_IS_426)) WRITE("<=>");
- else if (Str__eq(macro, TL_IS_427)) WRITE("-->");
- else if (Str__eq(macro, TL_IS_428)) WRITE("-->");
+ else if (Str__eq(macro, TL_IS_425)) WRITE("");
+ else if (Str__eq(macro, TL_IS_426)) WRITE("");
+ else if (Str__eq(macro, TL_IS_427)) WRITE("=>");
+ else if (Str__eq(macro, TL_IS_428)) WRITE("<=>");
else if (Str__eq(macro, TL_IS_429)) WRITE("-->");
- else if (Str__eq(macro, TL_IS_430)) WRITE("<--");
- else if (Str__eq(macro, TL_IS_431)) WRITE("<--");
- else if (Str__eq(macro, TL_IS_432)) WRITE("{");
- else if (Str__eq(macro, TL_IS_433)) WRITE("|");
- else if (Str__eq(macro, TL_IS_434)) WRITE("}");
- else if (Str__eq(macro, TL_IS_435)) WRITE(".");
- else if (Str__eq(macro, TL_IS_436)) WRITE("...");
- else if (Str__eq(macro, TL_IS_437)) WRITE("...");
- else if (Str__eq(macro, TL_IS_438)) WRITE("*");
- else if (Str__eq(macro, TL_IS_439)) WRITE(" ");
- else if (Str__eq(macro, TL_IS_440)) WRITE(" ");
- else if (Str__eq(macro, TL_IS_441)) WRITE("TeX");
- else if (Str__eq(macro, TL_IS_442)) WRITE("!=");
- else if (Str__eq(macro, TL_IS_443)) WRITE("!=");
- else if (Str__eq(macro, TL_IS_444)) WRITE("l");
- else if (Str__eq(macro, TL_IS_445)) WRITE("log");
- else if (Str__eq(macro, TL_IS_446)) WRITE("exp");
- else if (Str__eq(macro, TL_IS_447)) WRITE("sin");
- else if (Str__eq(macro, TL_IS_448)) WRITE("cos");
- else if (Str__eq(macro, TL_IS_449)) WRITE("tan");
- else if (Str__eq(macro, TL_IS_450)) WRITE("T");
- else if (Str__eq(macro, TL_IS_451)) PUT((wchar_t) 0x0391);
- else if (Str__eq(macro, TL_IS_452)) PUT((wchar_t) 0x0392);
- else if (Str__eq(macro, TL_IS_453)) PUT((wchar_t) 0x0393);
- else if (Str__eq(macro, TL_IS_454)) PUT((wchar_t) 0x0394);
- else if (Str__eq(macro, TL_IS_455)) PUT((wchar_t) 0x0395);
- else if (Str__eq(macro, TL_IS_456)) PUT((wchar_t) 0x0396);
- else if (Str__eq(macro, TL_IS_457)) PUT((wchar_t) 0x0397);
- else if (Str__eq(macro, TL_IS_458)) PUT((wchar_t) 0x0398);
- else if (Str__eq(macro, TL_IS_459)) PUT((wchar_t) 0x0399);
- else if (Str__eq(macro, TL_IS_460)) PUT((wchar_t) 0x039A);
- else if (Str__eq(macro, TL_IS_461)) PUT((wchar_t) 0x039B);
- else if (Str__eq(macro, TL_IS_462)) PUT((wchar_t) 0x039C);
- else if (Str__eq(macro, TL_IS_463)) PUT((wchar_t) 0x039D);
- else if (Str__eq(macro, TL_IS_464)) PUT((wchar_t) 0x039E);
- else if (Str__eq(macro, TL_IS_465)) PUT((wchar_t) 0x039F);
- else if (Str__eq(macro, TL_IS_466)) PUT((wchar_t) 0x03A0);
- else if (Str__eq(macro, TL_IS_467)) PUT((wchar_t) 0x03A1);
- else if (Str__eq(macro, TL_IS_468)) PUT((wchar_t) 0x03A2);
- else if (Str__eq(macro, TL_IS_469)) PUT((wchar_t) 0x03A3);
- else if (Str__eq(macro, TL_IS_470)) PUT((wchar_t) 0x03A4);
- else if (Str__eq(macro, TL_IS_471)) PUT((wchar_t) 0x03A5);
- else if (Str__eq(macro, TL_IS_472)) PUT((wchar_t) 0x03A6);
- else if (Str__eq(macro, TL_IS_473)) PUT((wchar_t) 0x03A7);
- else if (Str__eq(macro, TL_IS_474)) PUT((wchar_t) 0x03A8);
- else if (Str__eq(macro, TL_IS_475)) PUT((wchar_t) 0x03A9);
- else if (Str__eq(macro, TL_IS_476)) PUT((wchar_t) 0x03B1);
- else if (Str__eq(macro, TL_IS_477)) PUT((wchar_t) 0x03B2);
- else if (Str__eq(macro, TL_IS_478)) PUT((wchar_t) 0x03B3);
- else if (Str__eq(macro, TL_IS_479)) PUT((wchar_t) 0x03B4);
- else if (Str__eq(macro, TL_IS_480)) PUT((wchar_t) 0x03B5);
- else if (Str__eq(macro, TL_IS_481)) PUT((wchar_t) 0x03B6);
- else if (Str__eq(macro, TL_IS_482)) PUT((wchar_t) 0x03B7);
- else if (Str__eq(macro, TL_IS_483)) PUT((wchar_t) 0x03B8);
- else if (Str__eq(macro, TL_IS_484)) PUT((wchar_t) 0x03B9);
- else if (Str__eq(macro, TL_IS_485)) PUT((wchar_t) 0x03BA);
- else if (Str__eq(macro, TL_IS_486)) PUT((wchar_t) 0x03BB);
- else if (Str__eq(macro, TL_IS_487)) PUT((wchar_t) 0x03BC);
- else if (Str__eq(macro, TL_IS_488)) PUT((wchar_t) 0x03BD);
- else if (Str__eq(macro, TL_IS_489)) PUT((wchar_t) 0x03BE);
- else if (Str__eq(macro, TL_IS_490)) PUT((wchar_t) 0x03BF);
- else if (Str__eq(macro, TL_IS_491)) PUT((wchar_t) 0x03C0);
- else if (Str__eq(macro, TL_IS_492)) PUT((wchar_t) 0x03C1);
- else if (Str__eq(macro, TL_IS_493)) PUT((wchar_t) 0x03C2);
- else if (Str__eq(macro, TL_IS_494)) PUT((wchar_t) 0x03C3);
- else if (Str__eq(macro, TL_IS_495)) PUT((wchar_t) 0x03C4);
- else if (Str__eq(macro, TL_IS_496)) PUT((wchar_t) 0x03C5);
- else if (Str__eq(macro, TL_IS_497)) PUT((wchar_t) 0x03C6);
- else if (Str__eq(macro, TL_IS_498)) PUT((wchar_t) 0x03C7);
- else if (Str__eq(macro, TL_IS_499)) PUT((wchar_t) 0x03C8);
- else if (Str__eq(macro, TL_IS_500)) PUT((wchar_t) 0x03C9);
- else if (Str__eq(macro, TL_IS_501)) PUT((wchar_t) 0x2203);
- else if (Str__eq(macro, TL_IS_502)) PUT((wchar_t) 0x2208);
- else if (Str__eq(macro, TL_IS_503)) PUT((wchar_t) 0x2200);
- else if (Str__eq(macro, TL_IS_504)) PUT((wchar_t) 0x2229);
- else if (Str__eq(macro, TL_IS_505)) PUT((wchar_t) 0x2205);
- else if (Str__eq(macro, TL_IS_506)) PUT((wchar_t) 0x2286);
- else if (Str__eq(macro, TL_IS_507)) PUT((wchar_t) 0x2227);
- else if (Str__eq(macro, TL_IS_508)) PUT((wchar_t) 0x2228);
- else if (Str__eq(macro, TL_IS_509)) PUT((wchar_t) 0x00AC);
- else if (Str__eq(macro, TL_IS_510)) PUT((wchar_t) 0x03A3);
- else if (Str__eq(macro, TL_IS_511)) PUT((wchar_t) 0x03A0);
+ else if (Str__eq(macro, TL_IS_430)) WRITE("-->");
+ else if (Str__eq(macro, TL_IS_431)) WRITE("-->");
+ else if (Str__eq(macro, TL_IS_432)) WRITE("<--");
+ else if (Str__eq(macro, TL_IS_433)) WRITE("<--");
+ else if (Str__eq(macro, TL_IS_434)) WRITE("{");
+ else if (Str__eq(macro, TL_IS_435)) WRITE("|");
+ else if (Str__eq(macro, TL_IS_436)) WRITE("}");
+ else if (Str__eq(macro, TL_IS_437)) WRITE(".");
+ else if (Str__eq(macro, TL_IS_438)) WRITE("...");
+ else if (Str__eq(macro, TL_IS_439)) WRITE("...");
+ else if (Str__eq(macro, TL_IS_440)) WRITE("*");
+ else if (Str__eq(macro, TL_IS_441)) WRITE(" ");
+ else if (Str__eq(macro, TL_IS_442)) WRITE(" ");
+ else if (Str__eq(macro, TL_IS_443)) WRITE("TeX");
+ else if (Str__eq(macro, TL_IS_444)) WRITE("!=");
+ else if (Str__eq(macro, TL_IS_445)) WRITE("!=");
+ else if (Str__eq(macro, TL_IS_446)) WRITE("l");
+ else if (Str__eq(macro, TL_IS_447)) WRITE("log");
+ else if (Str__eq(macro, TL_IS_448)) WRITE("exp");
+ else if (Str__eq(macro, TL_IS_449)) WRITE("sin");
+ else if (Str__eq(macro, TL_IS_450)) WRITE("cos");
+ else if (Str__eq(macro, TL_IS_451)) WRITE("tan");
+ else if (Str__eq(macro, TL_IS_452)) WRITE("T");
+ else if (Str__eq(macro, TL_IS_453)) PUT((wchar_t) 0x0391);
+ else if (Str__eq(macro, TL_IS_454)) PUT((wchar_t) 0x0392);
+ else if (Str__eq(macro, TL_IS_455)) PUT((wchar_t) 0x0393);
+ else if (Str__eq(macro, TL_IS_456)) PUT((wchar_t) 0x0394);
+ else if (Str__eq(macro, TL_IS_457)) PUT((wchar_t) 0x0395);
+ else if (Str__eq(macro, TL_IS_458)) PUT((wchar_t) 0x0396);
+ else if (Str__eq(macro, TL_IS_459)) PUT((wchar_t) 0x0397);
+ else if (Str__eq(macro, TL_IS_460)) PUT((wchar_t) 0x0398);
+ else if (Str__eq(macro, TL_IS_461)) PUT((wchar_t) 0x0399);
+ else if (Str__eq(macro, TL_IS_462)) PUT((wchar_t) 0x039A);
+ else if (Str__eq(macro, TL_IS_463)) PUT((wchar_t) 0x039B);
+ else if (Str__eq(macro, TL_IS_464)) PUT((wchar_t) 0x039C);
+ else if (Str__eq(macro, TL_IS_465)) PUT((wchar_t) 0x039D);
+ else if (Str__eq(macro, TL_IS_466)) PUT((wchar_t) 0x039E);
+ else if (Str__eq(macro, TL_IS_467)) PUT((wchar_t) 0x039F);
+ else if (Str__eq(macro, TL_IS_468)) PUT((wchar_t) 0x03A0);
+ else if (Str__eq(macro, TL_IS_469)) PUT((wchar_t) 0x03A1);
+ else if (Str__eq(macro, TL_IS_470)) PUT((wchar_t) 0x03A2);
+ else if (Str__eq(macro, TL_IS_471)) PUT((wchar_t) 0x03A3);
+ else if (Str__eq(macro, TL_IS_472)) PUT((wchar_t) 0x03A4);
+ else if (Str__eq(macro, TL_IS_473)) PUT((wchar_t) 0x03A5);
+ else if (Str__eq(macro, TL_IS_474)) PUT((wchar_t) 0x03A6);
+ else if (Str__eq(macro, TL_IS_475)) PUT((wchar_t) 0x03A7);
+ else if (Str__eq(macro, TL_IS_476)) PUT((wchar_t) 0x03A8);
+ else if (Str__eq(macro, TL_IS_477)) PUT((wchar_t) 0x03A9);
+ else if (Str__eq(macro, TL_IS_478)) PUT((wchar_t) 0x03B1);
+ else if (Str__eq(macro, TL_IS_479)) PUT((wchar_t) 0x03B2);
+ else if (Str__eq(macro, TL_IS_480)) PUT((wchar_t) 0x03B3);
+ else if (Str__eq(macro, TL_IS_481)) PUT((wchar_t) 0x03B4);
+ else if (Str__eq(macro, TL_IS_482)) PUT((wchar_t) 0x03B5);
+ else if (Str__eq(macro, TL_IS_483)) PUT((wchar_t) 0x03B6);
+ else if (Str__eq(macro, TL_IS_484)) PUT((wchar_t) 0x03B7);
+ else if (Str__eq(macro, TL_IS_485)) PUT((wchar_t) 0x03B8);
+ else if (Str__eq(macro, TL_IS_486)) PUT((wchar_t) 0x03B9);
+ else if (Str__eq(macro, TL_IS_487)) PUT((wchar_t) 0x03BA);
+ else if (Str__eq(macro, TL_IS_488)) PUT((wchar_t) 0x03BB);
+ else if (Str__eq(macro, TL_IS_489)) PUT((wchar_t) 0x03BC);
+ else if (Str__eq(macro, TL_IS_490)) PUT((wchar_t) 0x03BD);
+ else if (Str__eq(macro, TL_IS_491)) PUT((wchar_t) 0x03BE);
+ else if (Str__eq(macro, TL_IS_492)) PUT((wchar_t) 0x03BF);
+ else if (Str__eq(macro, TL_IS_493)) PUT((wchar_t) 0x03C0);
+ else if (Str__eq(macro, TL_IS_494)) PUT((wchar_t) 0x03C1);
+ else if (Str__eq(macro, TL_IS_495)) PUT((wchar_t) 0x03C2);
+ else if (Str__eq(macro, TL_IS_496)) PUT((wchar_t) 0x03C3);
+ else if (Str__eq(macro, TL_IS_497)) PUT((wchar_t) 0x03C4);
+ else if (Str__eq(macro, TL_IS_498)) PUT((wchar_t) 0x03C5);
+ else if (Str__eq(macro, TL_IS_499)) PUT((wchar_t) 0x03C6);
+ else if (Str__eq(macro, TL_IS_500)) PUT((wchar_t) 0x03C7);
+ else if (Str__eq(macro, TL_IS_501)) PUT((wchar_t) 0x03C8);
+ else if (Str__eq(macro, TL_IS_502)) PUT((wchar_t) 0x03C9);
+ else if (Str__eq(macro, TL_IS_503)) PUT((wchar_t) 0x2203);
+ else if (Str__eq(macro, TL_IS_504)) PUT((wchar_t) 0x2208);
+ else if (Str__eq(macro, TL_IS_505)) PUT((wchar_t) 0x2200);
+ else if (Str__eq(macro, TL_IS_506)) PUT((wchar_t) 0x2229);
+ else if (Str__eq(macro, TL_IS_507)) PUT((wchar_t) 0x2205);
+ else if (Str__eq(macro, TL_IS_508)) PUT((wchar_t) 0x2286);
+ else if (Str__eq(macro, TL_IS_509)) PUT((wchar_t) 0x2227);
+ else if (Str__eq(macro, TL_IS_510)) PUT((wchar_t) 0x2228);
+ else if (Str__eq(macro, TL_IS_511)) PUT((wchar_t) 0x00AC);
+ else if (Str__eq(macro, TL_IS_512)) PUT((wchar_t) 0x03A3);
+ else if (Str__eq(macro, TL_IS_513)) PUT((wchar_t) 0x03A0);
else {
if (Str__len(macro) > 0) {
int suspect = TRUE;
@@ -25359,8 +25421,8 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
if ((c >= 'a') && (c <= 'z')) continue;
suspect = FALSE;
}
- if (Str__eq(macro, TL_IS_512)) suspect = FALSE;
- if (Str__eq(macro, TL_IS_513)) suspect = FALSE;
+ if (Str__eq(macro, TL_IS_514)) suspect = FALSE;
+ if (Str__eq(macro, TL_IS_515)) suspect = FALSE;
if (suspect)
PRINT("[Passing through unknown TeX macro \\%S:\n %S\n", macro, text);
}
@@ -25368,13 +25430,13 @@ void TeX__remove_math_mode_range(OUTPUT_STREAM, text_stream *text, int from, int
}
}
-#line 856 "inweb/Chapter 5/TeX Format.w"
+#line 857 "inweb/Chapter 5/TeX Format.w"
;
DISCARD_TEXT(macro);
i--;
}
-#line 758 "inweb/Chapter 5/TeX Format.w"
+#line 759 "inweb/Chapter 5/TeX Format.w"
; break;
default: PUT(Str__get_at(text, i)); break;
}
@@ -25386,7 +25448,7 @@ void HTMLFormat__create(void) {
{
#line 15 "inweb/Chapter 5/HTML Formats.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_516, TL_IS_517);
+ weave_format *wf = Formats__create_weave_format(TL_IS_518, TL_IS_519);
METHOD_ADD(wf, RENDER_FOR_MTID, HTMLFormat__render);
}
@@ -25395,7 +25457,7 @@ void HTMLFormat__create(void) {
{
#line 19 "inweb/Chapter 5/HTML Formats.w"
- weave_format *wf = Formats__create_weave_format(TL_IS_518, TL_IS_519);
+ weave_format *wf = Formats__create_weave_format(TL_IS_520, TL_IS_521);
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);
@@ -25420,8 +25482,8 @@ HTML_render_state HTMLFormat__initial_state(text_stream *OUT, weave_order *wv,
hrs.slide_number = -1;
hrs.slide_of = -1;
- Swarm__ensure_plugin(wv, TL_IS_520);
- hrs.colours = Swarm__ensure_colour_scheme(wv, TL_IS_521, TL_IS_522);
+ Swarm__ensure_plugin(wv, TL_IS_522);
+ hrs.colours = Swarm__ensure_colour_scheme(wv, TL_IS_523, TL_IS_524);
return hrs;
}
@@ -25438,7 +25500,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_523);
+ Epub__note_page(C->wv->weave_web->as_ebook, C->wv->weave_to, C->wv->booklet_title, TL_IS_525);
HTML__completed(OUT);
}
@@ -25455,7 +25517,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
(N->type == weave_chapter_title_page_node_type) ||
(N->type == weave_grammar_index_node_type))
{
-#line 687 "inweb/Chapter 5/HTML Formats.w"
+#line 702 "inweb/Chapter 5/HTML Formats.w"
;
}
@@ -25464,7 +25526,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_head_node_type)
{
-#line 135 "inweb/Chapter 5/HTML Formats.w"
+#line 136 "inweb/Chapter 5/HTML Formats.w"
weave_head_node *C = RETRIEVE_POINTER_weave_head_node(N->content);
HTML__comment(OUT, C->banner);
@@ -25473,7 +25535,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_tail_node_type)
{
-#line 205 "inweb/Chapter 5/HTML Formats.w"
+#line 206 "inweb/Chapter 5/HTML Formats.w"
weave_tail_node *C = RETRIEVE_POINTER_weave_tail_node(N->content);
HTML__comment(OUT, C->rennab);
@@ -25482,7 +25544,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_verbatim_node_type)
{
-#line 650 "inweb/Chapter 5/HTML Formats.w"
+#line 665 "inweb/Chapter 5/HTML Formats.w"
weave_verbatim_node *C = RETRIEVE_POINTER_weave_verbatim_node(N->content);
WRITE("%S", C->content);
@@ -25491,18 +25553,18 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_header_node_type)
{
-#line 139 "inweb/Chapter 5/HTML Formats.w"
+#line 140 "inweb/Chapter 5/HTML Formats.w"
weave_section_header_node *C =
RETRIEVE_POINTER_weave_section_header_node(N->content);
- Swarm__ensure_plugin(hrs->wv, TL_IS_524);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_526);
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_525);
- if (Str__len(Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_526)) > 0)
- bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_527);
+ text_stream *bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_527);
+ if (Str__len(Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_528)) > 0)
+ bct = Bibliographic__get_datum(hrs->wv->weave_web->md, TL_IS_529);
if (hrs->wv->self_contained == FALSE) {
- Colonies__write_breadcrumb(OUT, bct, TL_IS_528);
+ Colonies__write_breadcrumb(OUT, bct, TL_IS_530);
if (hrs->wv->weave_web->md->chaptered) {
TEMPORARY_TEXT(chapter_link);
WRITE_TO(chapter_link, "index.html#%s%S",
@@ -25523,7 +25585,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_footer_node_type)
{
-#line 166 "inweb/Chapter 5/HTML Formats.w"
+#line 167 "inweb/Chapter 5/HTML Formats.w"
weave_section_footer_node *C =
RETRIEVE_POINTER_weave_section_footer_node(N->content);
chapter *Ch = C->sect->owning_chapter;
@@ -25567,7 +25629,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_purpose_node_type)
{
-#line 209 "inweb/Chapter 5/HTML Formats.w"
+#line 210 "inweb/Chapter 5/HTML Formats.w"
weave_section_purpose_node *C =
RETRIEVE_POINTER_weave_section_purpose_node(N->content);
HTML_OPEN_WITH("p", "class=\"purpose\"");
@@ -25579,7 +25641,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_subheading_node_type)
{
-#line 216 "inweb/Chapter 5/HTML Formats.w"
+#line 217 "inweb/Chapter 5/HTML Formats.w"
weave_subheading_node *C = RETRIEVE_POINTER_weave_subheading_node(N->content);
HTML_OPEN("h3");
HTMLFormat__escape_text(OUT, C->text);
@@ -25590,7 +25652,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_bar_node_type)
{
-#line 222 "inweb/Chapter 5/HTML Formats.w"
+#line 223 "inweb/Chapter 5/HTML Formats.w"
HTML__hr(OUT, NULL);
}
@@ -25598,7 +25660,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type)
{
-#line 225 "inweb/Chapter 5/HTML Formats.w"
+#line 226 "inweb/Chapter 5/HTML Formats.w"
weave_paragraph_heading_node *C =
RETRIEVE_POINTER_weave_paragraph_heading_node(N->content);
paragraph *P = C->para;
@@ -25607,7 +25669,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
paragraph *first_in_para = P;
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25616,7 +25678,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 231 "inweb/Chapter 5/HTML Formats.w"
+#line 232 "inweb/Chapter 5/HTML Formats.w"
;
}
@@ -25625,16 +25687,16 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_endnote_node_type)
{
-#line 235 "inweb/Chapter 5/HTML Formats.w"
+#line 236 "inweb/Chapter 5/HTML Formats.w"
HTML_OPEN("li");
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 236 "inweb/Chapter 5/HTML Formats.w"
+#line 237 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("li");
return FALSE;
@@ -25644,10 +25706,10 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_figure_node_type)
{
-#line 241 "inweb/Chapter 5/HTML Formats.w"
+#line 242 "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_529),
+ Pathnames__down(hrs->wv->weave_web->md->path_to_web, TL_IS_531),
C->figname);
filename *RF = Filenames__from_text(C->figname);
HTML_OPEN("center");
@@ -25659,9 +25721,28 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
#line 106 "inweb/Chapter 5/HTML Formats.w"
+ else if (N->type == weave_audio_node_type)
+{
+#line 254 "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_532),
+ C->audio_name);
+ Patterns__copy_file_into_weave(hrs->wv->weave_web, F, NULL, NULL);
+ HTML_OPEN("center");
+ WRITE("\n");
+ WRITE("\n", C->audio_name);
+ WRITE("Your browser does not support the audio element.\n");
+ WRITE(" \n");
+ HTML_CLOSE("center");
+ WRITE("\n");
+
+}
+#line 107 "inweb/Chapter 5/HTML Formats.w"
+
else if (N->type == weave_material_node_type)
{
-#line 253 "inweb/Chapter 5/HTML Formats.w"
+#line 268 "inweb/Chapter 5/HTML Formats.w"
weave_material_node *C = RETRIEVE_POINTER_weave_material_node(N->content);
paragraph *first_in_para = NULL;
if ((N == N->parent->child) &&
@@ -25673,13 +25754,13 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (C->material_type == COMMENTARY_MATERIAL)
{
-#line 284 "inweb/Chapter 5/HTML Formats.w"
+#line 299 "inweb/Chapter 5/HTML Formats.w"
int item_depth = 0;
for (tree_node *M = N->child; M; M = M->next) {
if (M->type == weave_item_node_type) {
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25688,7 +25769,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 287 "inweb/Chapter 5/HTML Formats.w"
+#line 302 "inweb/Chapter 5/HTML Formats.w"
;
weave_item_node *C = RETRIEVE_POINTER_weave_item_node(M->content);
HTMLFormat__go_to_depth(hrs, item_depth, C->depth);
@@ -25698,7 +25779,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
if (HTMLFormat__interior_material(M))
{
-#line 309 "inweb/Chapter 5/HTML Formats.w"
+#line 324 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25715,11 +25796,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
continue;
}
-#line 294 "inweb/Chapter 5/HTML Formats.w"
+#line 309 "inweb/Chapter 5/HTML Formats.w"
;
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25728,7 +25809,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 295 "inweb/Chapter 5/HTML Formats.w"
+#line 310 "inweb/Chapter 5/HTML Formats.w"
;
if (item_depth > 0) {
HTMLFormat__go_to_depth(hrs, item_depth, 0);
@@ -25743,15 +25824,15 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 262 "inweb/Chapter 5/HTML Formats.w"
+#line 277 "inweb/Chapter 5/HTML Formats.w"
else if (C->material_type == CODE_MATERIAL)
{
-#line 325 "inweb/Chapter 5/HTML Formats.w"
+#line 340 "inweb/Chapter 5/HTML Formats.w"
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25760,7 +25841,7 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 325 "inweb/Chapter 5/HTML Formats.w"
+#line 340 "inweb/Chapter 5/HTML Formats.w"
;
if (C->styling) {
TEMPORARY_TEXT(csname);
@@ -25777,25 +25858,25 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
DISCARD_TEXT(cl);
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 339 "inweb/Chapter 5/HTML Formats.w"
+#line 354 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("pre"); WRITE("\n");
}
-#line 264 "inweb/Chapter 5/HTML Formats.w"
+#line 279 "inweb/Chapter 5/HTML Formats.w"
else if (C->material_type == FOOTNOTES_MATERIAL)
{
-#line 343 "inweb/Chapter 5/HTML Formats.w"
+#line 358 "inweb/Chapter 5/HTML Formats.w"
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25804,30 +25885,30 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 343 "inweb/Chapter 5/HTML Formats.w"
+#line 358 "inweb/Chapter 5/HTML Formats.w"
;
HTML_OPEN_WITH("ul", "class=\"footnotetexts\"");
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 345 "inweb/Chapter 5/HTML Formats.w"
+#line 360 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("ul"); WRITE("\n");
}
-#line 266 "inweb/Chapter 5/HTML Formats.w"
+#line 281 "inweb/Chapter 5/HTML Formats.w"
else if (C->material_type == ENDNOTES_MATERIAL)
{
-#line 349 "inweb/Chapter 5/HTML Formats.w"
+#line 364 "inweb/Chapter 5/HTML Formats.w"
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25836,27 +25917,27 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 349 "inweb/Chapter 5/HTML Formats.w"
+#line 364 "inweb/Chapter 5/HTML Formats.w"
;
HTML_OPEN_WITH("ul", "class=\"endnotetexts\"");
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 351 "inweb/Chapter 5/HTML Formats.w"
+#line 366 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("ul"); WRITE("\n");
}
-#line 268 "inweb/Chapter 5/HTML Formats.w"
+#line 283 "inweb/Chapter 5/HTML Formats.w"
else if (C->material_type == MACRO_MATERIAL)
{
-#line 355 "inweb/Chapter 5/HTML Formats.w"
+#line 370 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25865,25 +25946,25 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 361 "inweb/Chapter 5/HTML Formats.w"
+#line 376 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("p"); WRITE("\n");
}
-#line 270 "inweb/Chapter 5/HTML Formats.w"
+#line 285 "inweb/Chapter 5/HTML Formats.w"
else if (C->material_type == DEFINITION_MATERIAL)
{
-#line 365 "inweb/Chapter 5/HTML Formats.w"
+#line 380 "inweb/Chapter 5/HTML Formats.w"
{
-#line 276 "inweb/Chapter 5/HTML Formats.w"
+#line 291 "inweb/Chapter 5/HTML Formats.w"
if (first_in_para) {
HTML_OPEN_WITH("p", "class=\"commentary firstcommentary\"");
HTMLFormat__paragraph_number(OUT, first_in_para);
@@ -25892,46 +25973,46 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 365 "inweb/Chapter 5/HTML Formats.w"
+#line 380 "inweb/Chapter 5/HTML Formats.w"
;
HTML_OPEN_WITH("pre", "class=\"definitions\"");
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 367 "inweb/Chapter 5/HTML Formats.w"
+#line 382 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("pre"); WRITE("\n");
}
-#line 272 "inweb/Chapter 5/HTML Formats.w"
+#line 287 "inweb/Chapter 5/HTML Formats.w"
;
return FALSE;
}
-#line 107 "inweb/Chapter 5/HTML Formats.w"
+#line 108 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_embed_node_type)
{
-#line 375 "inweb/Chapter 5/HTML Formats.w"
+#line 390 "inweb/Chapter 5/HTML Formats.w"
weave_embed_node *C = RETRIEVE_POINTER_weave_embed_node(N->content);
- text_stream *CH = TL_IS_530;
- text_stream *CW = TL_IS_531;
+ text_stream *CH = TL_IS_533;
+ text_stream *CW = TL_IS_534;
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_asset(hrs->wv->pattern, TL_IS_532, embed_leaf);
+ filename *F = Patterns__find_asset(hrs->wv->pattern, TL_IS_535, embed_leaf);
DISCARD_TEXT(embed_leaf);
if (F == NULL) {
- Main__error_in_web(TL_IS_533, hrs->wv->current_weave_line);
+ Main__error_in_web(TL_IS_536, hrs->wv->current_weave_line);
} else {
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_534, C->ID);
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_535, CW);
- Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_536, CH);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_537, C->ID);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_538, CW);
+ Bibliographic__set_datum(hrs->wv->weave_web->md, TL_IS_539, CH);
HTML_OPEN("center");
Collater__for_web_and_pattern(OUT, hrs->wv->weave_web, hrs->wv->pattern,
F, hrs->into_file);
@@ -25940,18 +26021,18 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 108 "inweb/Chapter 5/HTML Formats.w"
+#line 109 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_pmac_node_type)
{
-#line 398 "inweb/Chapter 5/HTML Formats.w"
+#line 413 "inweb/Chapter 5/HTML Formats.w"
weave_pmac_node *C = RETRIEVE_POINTER_weave_pmac_node(N->content);
paragraph *P = C->pmac->defining_paragraph;
HTML_OPEN_WITH("span", "class=\"named-paragraph-container\"");
if (C->defn == FALSE) {
TEMPORARY_TEXT(url);
Colonies__paragraph_URL(url, P, hrs->wv->weave_to);
- HTML__begin_link_with_class(OUT, TL_IS_537, url);
+ HTML__begin_link_with_class(OUT, TL_IS_540, url);
DISCARD_TEXT(url);
}
HTML_OPEN_WITH("span", "class=\"%s\"",
@@ -25970,59 +26051,59 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (C->defn == FALSE) HTML__end_link(OUT);
}
-#line 109 "inweb/Chapter 5/HTML Formats.w"
+#line 110 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_vskip_node_type)
{
-#line 423 "inweb/Chapter 5/HTML Formats.w"
+#line 438 "inweb/Chapter 5/HTML Formats.w"
WRITE("\n");
-}
-#line 110 "inweb/Chapter 5/HTML Formats.w"
-
- else if (N->type == weave_section_node_type)
-{
-#line 426 "inweb/Chapter 5/HTML Formats.w"
- weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
- LOG("It was %d\n", C->allocation_id);
-
}
#line 111 "inweb/Chapter 5/HTML Formats.w"
+ else if (N->type == weave_section_node_type)
+{
+#line 441 "inweb/Chapter 5/HTML Formats.w"
+ weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
+ LOG("It was %d\n", C->allocation_id);
+
+}
+#line 112 "inweb/Chapter 5/HTML Formats.w"
+
else if (N->type == weave_code_line_node_type)
{
-#line 430 "inweb/Chapter 5/HTML Formats.w"
+#line 445 "inweb/Chapter 5/HTML Formats.w"
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 430 "inweb/Chapter 5/HTML Formats.w"
+#line 445 "inweb/Chapter 5/HTML Formats.w"
;
WRITE("\n");
return FALSE;
}
-#line 112 "inweb/Chapter 5/HTML Formats.w"
+#line 113 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_function_usage_node_type)
{
-#line 435 "inweb/Chapter 5/HTML Formats.w"
+#line 450 "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_538, C->url);
+ HTML__begin_link_with_class(OUT, TL_IS_541, C->url);
HTMLFormat__change_colour(OUT, FUNCTION_COLOUR, hrs->colours);
WRITE("%S", C->fn->function_name);
HTMLFormat__change_colour(OUT, -1, hrs->colours);
HTML__end_link(OUT);
}
-#line 113 "inweb/Chapter 5/HTML Formats.w"
+#line 114 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_commentary_node_type)
{
-#line 443 "inweb/Chapter 5/HTML Formats.w"
+#line 458 "inweb/Chapter 5/HTML Formats.w"
weave_commentary_node *C = RETRIEVE_POINTER_weave_commentary_node(N->content);
if (C->in_code) HTMLFormat__change_colour(OUT, COMMENT_COLOUR, hrs->colours);
for (int i=0; i < Str__len(C->text); i++) {
@@ -26043,23 +26124,23 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (C->in_code) HTMLFormat__change_colour(OUT, -1, hrs->colours);
}
-#line 114 "inweb/Chapter 5/HTML Formats.w"
+#line 115 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_carousel_slide_node_type)
{
-#line 463 "inweb/Chapter 5/HTML Formats.w"
+#line 478 "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_539);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_542);
TEMPORARY_TEXT(carousel_id)
TEMPORARY_TEXT(carousel_dots_id)
text_stream *caption_class = NULL;
- text_stream *slide_count_class = TL_IS_540;
+ text_stream *slide_count_class = TL_IS_543;
switch (C->caption_command) {
- case CAROUSEL_CMD: caption_class = TL_IS_541; break;
- case CAROUSEL_ABOVE_CMD: caption_class = TL_IS_542;
- slide_count_class = TL_IS_543; break;
- case CAROUSEL_BELOW_CMD: caption_class = TL_IS_544;
- slide_count_class = TL_IS_545; break;
+ case CAROUSEL_CMD: caption_class = TL_IS_544; break;
+ case CAROUSEL_ABOVE_CMD: caption_class = TL_IS_545;
+ slide_count_class = TL_IS_546; break;
+ case CAROUSEL_BELOW_CMD: caption_class = TL_IS_547;
+ slide_count_class = TL_IS_548; break;
}
WRITE_TO(carousel_id, "carousel-no-%d", hrs->carousel_number);
WRITE_TO(carousel_dots_id, "carousel-dots-no-%d", hrs->carousel_number);
@@ -26081,12 +26162,12 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (C->caption_command == CAROUSEL_ABOVE_CMD) {
{
-#line 536 "inweb/Chapter 5/HTML Formats.w"
+#line 551 "inweb/Chapter 5/HTML Formats.w"
if (C->caption_command != CAROUSEL_UNCAPTIONED_CMD)
WRITE("%S
\n", caption_class, C->caption);
}
-#line 494 "inweb/Chapter 5/HTML Formats.w"
+#line 509 "inweb/Chapter 5/HTML Formats.w"
;
WRITE("%d / %d
\n",
slide_count_class, hrs->slide_number, hrs->slide_of);
@@ -26097,22 +26178,22 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
WRITE("");
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 502 "inweb/Chapter 5/HTML Formats.w"
+#line 517 "inweb/Chapter 5/HTML Formats.w"
;
WRITE("
\n");
if (C->caption_command != CAROUSEL_ABOVE_CMD)
{
-#line 536 "inweb/Chapter 5/HTML Formats.w"
+#line 551 "inweb/Chapter 5/HTML Formats.w"
if (C->caption_command != CAROUSEL_UNCAPTIONED_CMD)
WRITE("%S
\n", caption_class, C->caption);
}
-#line 504 "inweb/Chapter 5/HTML Formats.w"
+#line 519 "inweb/Chapter 5/HTML Formats.w"
;
WRITE("\n");
if (hrs->slide_number == hrs->slide_of) {
@@ -26145,11 +26226,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 115 "inweb/Chapter 5/HTML Formats.w"
+#line 116 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_toc_node_type)
{
-#line 540 "inweb/Chapter 5/HTML Formats.w"
+#line 555 "inweb/Chapter 5/HTML Formats.w"
HTML_OPEN_WITH("ul", "class=\"toc\"");
for (tree_node *M = N->child; M; M = M->next) {
HTML_OPEN("li");
@@ -26162,11 +26243,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 116 "inweb/Chapter 5/HTML Formats.w"
+#line 117 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_toc_line_node_type)
{
-#line 552 "inweb/Chapter 5/HTML Formats.w"
+#line 567 "inweb/Chapter 5/HTML Formats.w"
weave_toc_line_node *C = RETRIEVE_POINTER_weave_toc_line_node(N->content);
TEMPORARY_TEXT(TEMP)
Colonies__paragraph_URL(TEMP, C->para, hrs->wv->weave_to);
@@ -26178,11 +26259,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
HTML__end_link(OUT);
}
-#line 117 "inweb/Chapter 5/HTML Formats.w"
+#line 118 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_defn_node_type)
{
-#line 563 "inweb/Chapter 5/HTML Formats.w"
+#line 578 "inweb/Chapter 5/HTML Formats.w"
weave_defn_node *C = RETRIEVE_POINTER_weave_defn_node(N->content);
HTML_OPEN_WITH("span", "class=\"definition-keyword\"");
WRITE("%S", C->keyword);
@@ -26190,11 +26271,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
WRITE(" ");
}
-#line 118 "inweb/Chapter 5/HTML Formats.w"
+#line 119 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_source_code_node_type)
{
-#line 570 "inweb/Chapter 5/HTML Formats.w"
+#line 585 "inweb/Chapter 5/HTML Formats.w"
weave_source_code_node *C = RETRIEVE_POINTER_weave_source_code_node(N->content);
int starts = FALSE;
if (N == N->parent->child) starts = TRUE;
@@ -26214,22 +26295,22 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
if (current_colour >= 0) HTMLFormat__change_colour(OUT, -1, hrs->colours);
}
-#line 119 "inweb/Chapter 5/HTML Formats.w"
+#line 120 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_url_node_type)
{
-#line 589 "inweb/Chapter 5/HTML Formats.w"
+#line 604 "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_546:TL_IS_547, C->url);
+ HTML__begin_link_with_class(OUT, (C->external)?TL_IS_549:TL_IS_550, C->url);
WRITE("%S", C->content);
HTML__end_link(OUT);
}
-#line 120 "inweb/Chapter 5/HTML Formats.w"
+#line 121 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_footnote_cue_node_type)
{
-#line 595 "inweb/Chapter 5/HTML Formats.w"
+#line 610 "inweb/Chapter 5/HTML Formats.w"
weave_footnote_cue_node *C = RETRIEVE_POINTER_weave_footnote_cue_node(N->content);
text_stream *fn_plugin_name = hrs->wv->pattern->footnotes_plugin;
if (Str__len(fn_plugin_name) > 0)
@@ -26238,11 +26319,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
C->cue_text, C->cue_text, C->cue_text);
}
-#line 121 "inweb/Chapter 5/HTML Formats.w"
+#line 122 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_begin_footnote_text_node_type)
{
-#line 603 "inweb/Chapter 5/HTML Formats.w"
+#line 618 "inweb/Chapter 5/HTML Formats.w"
weave_begin_footnote_text_node *C =
RETRIEVE_POINTER_weave_begin_footnote_text_node(N->content);
text_stream *fn_plugin_name = hrs->wv->pattern->footnotes_plugin;
@@ -26252,23 +26333,23 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
C->cue_text);
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 610 "inweb/Chapter 5/HTML Formats.w"
+#line 625 "inweb/Chapter 5/HTML Formats.w"
;
WRITE(" ↩
",
C->cue_text);
return FALSE;
}
-#line 122 "inweb/Chapter 5/HTML Formats.w"
+#line 123 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_display_line_node_type)
{
-#line 616 "inweb/Chapter 5/HTML Formats.w"
+#line 631 "inweb/Chapter 5/HTML Formats.w"
weave_display_line_node *C =
RETRIEVE_POINTER_weave_display_line_node(N->content);
HTML_OPEN("blockquote"); WRITE("\n"); INDENT;
@@ -26278,14 +26359,14 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
OUTDENT; HTML_CLOSE("blockquote"); WRITE("\n");
}
-#line 123 "inweb/Chapter 5/HTML Formats.w"
+#line 124 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_function_defn_node_type)
{
-#line 625 "inweb/Chapter 5/HTML Formats.w"
+#line 640 "inweb/Chapter 5/HTML Formats.w"
weave_function_defn_node *C =
RETRIEVE_POINTER_weave_function_defn_node(N->content);
- Swarm__ensure_plugin(hrs->wv, TL_IS_548);
+ Swarm__ensure_plugin(hrs->wv, TL_IS_551);
HTMLFormat__change_colour(OUT, FUNCTION_COLOUR, hrs->colours);
WRITE("%S", C->fn->function_name);
WRITE("");
@@ -26298,12 +26379,12 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
hrs->popup_counter, C->fn->function_name);
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 638 "inweb/Chapter 5/HTML Formats.w"
+#line 653 "inweb/Chapter 5/HTML Formats.w"
;
HTMLFormat__change_colour(OUT, -1, hrs->colours);
WRITE("");
@@ -26311,40 +26392,40 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
return FALSE;
}
-#line 124 "inweb/Chapter 5/HTML Formats.w"
+#line 125 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_item_node_type)
{
-#line 645 "inweb/Chapter 5/HTML Formats.w"
+#line 660 "inweb/Chapter 5/HTML Formats.w"
weave_item_node *C = RETRIEVE_POINTER_weave_item_node(N->content);
if (Str__len(C->label) > 0) WRITE("(%S) ", C->label);
else WRITE(" ");
}
-#line 125 "inweb/Chapter 5/HTML Formats.w"
+#line 126 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_inline_node_type)
{
-#line 654 "inweb/Chapter 5/HTML Formats.w"
+#line 669 "inweb/Chapter 5/HTML Formats.w"
HTML_OPEN_WITH("span", "class=\"extract\"");
{
-#line 690 "inweb/Chapter 5/HTML Formats.w"
+#line 705 "inweb/Chapter 5/HTML Formats.w"
for (tree_node *M = N->child; M; M = M->next)
Trees__traverse_from(M, &HTMLFormat__render_visit, (void *) hrs, L+1);
}
-#line 655 "inweb/Chapter 5/HTML Formats.w"
+#line 670 "inweb/Chapter 5/HTML Formats.w"
;
HTML_CLOSE("span");
return FALSE;
}
-#line 126 "inweb/Chapter 5/HTML Formats.w"
+#line 127 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_locale_node_type)
{
-#line 660 "inweb/Chapter 5/HTML Formats.w"
+#line 675 "inweb/Chapter 5/HTML Formats.w"
weave_locale_node *C = RETRIEVE_POINTER_weave_locale_node(N->content);
TEMPORARY_TEXT(TEMP)
Colonies__paragraph_URL(TEMP, C->par1, hrs->wv->weave_to);
@@ -26357,11 +26438,11 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
HTML__end_link(OUT);
}
-#line 127 "inweb/Chapter 5/HTML Formats.w"
+#line 128 "inweb/Chapter 5/HTML Formats.w"
else if (N->type == weave_maths_node_type)
{
-#line 672 "inweb/Chapter 5/HTML Formats.w"
+#line 687 "inweb/Chapter 5/HTML Formats.w"
weave_maths_node *C = RETRIEVE_POINTER_weave_maths_node(N->content);
text_stream *plugin_name = hrs->wv->pattern->mathematics_plugin;
if (Str__len(plugin_name) == 0) {
@@ -26377,14 +26458,14 @@ int HTMLFormat__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 128 "inweb/Chapter 5/HTML Formats.w"
+#line 129 "inweb/Chapter 5/HTML Formats.w"
else internal_error("unable to render unknown node");
return TRUE;
}
-#line 697 "inweb/Chapter 5/HTML Formats.w"
+#line 712 "inweb/Chapter 5/HTML Formats.w"
int HTMLFormat__interior_material(tree_node *N) {
if (N->type == weave_commentary_node_type) return TRUE;
if (N->type == weave_url_node_type) return TRUE;
@@ -26395,7 +26476,7 @@ int HTMLFormat__interior_material(tree_node *N) {
return FALSE;
}
-#line 711 "inweb/Chapter 5/HTML Formats.w"
+#line 726 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__go_to_depth(HTML_render_state *hrs, int from_depth, int to_depth) {
text_stream *OUT = hrs->OUT;
if (from_depth == to_depth) {
@@ -26413,7 +26494,7 @@ void HTMLFormat__go_to_depth(HTML_render_state *hrs, int from_depth, int to_dept
if (to_depth > 0) HTML_OPEN("li");
}
-#line 729 "inweb/Chapter 5/HTML Formats.w"
+#line 744 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__paragraph_number(text_stream *OUT, paragraph *P) {
TEMPORARY_TEXT(TEMP)
Colonies__paragraph_anchor(TEMP, P);
@@ -26426,7 +26507,7 @@ void HTMLFormat__paragraph_number(text_stream *OUT, paragraph *P) {
HTML_CLOSE("b");
}
-#line 742 "inweb/Chapter 5/HTML Formats.w"
+#line 757 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__change_colour(text_stream *OUT, int col, colour_scheme *cs) {
if (col == -1) {
HTML_CLOSE("span");
@@ -26450,7 +26531,7 @@ void HTMLFormat__change_colour(text_stream *OUT, int col, colour_scheme *cs) {
}
}
-#line 766 "inweb/Chapter 5/HTML Formats.w"
+#line 781 "inweb/Chapter 5/HTML Formats.w"
void HTMLFormat__escape_text(text_stream *OUT, text_stream *id) {
for (int i=0; i < Str__len(id); i++) {
if (Str__get_at(id, i) == '&') WRITE("&");
@@ -26460,12 +26541,12 @@ void HTMLFormat__escape_text(text_stream *OUT, text_stream *id) {
}
}
-#line 778 "inweb/Chapter 5/HTML Formats.w"
+#line 793 "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_549));
+ WRITE_TO(T, "%S", Bibliographic__get_datum(W->md, TL_IS_552));
W->as_ebook = Epub__new(T, "P");
- filename *CSS = Patterns__find_asset(pattern, TL_IS_550, TL_IS_551);
+ filename *CSS = Patterns__find_asset(pattern, TL_IS_553, TL_IS_554);
Epub__use_CSS_throughout(W->as_ebook, CSS);
Epub__attach_metadata(W->as_ebook, L"identifier", T);
DISCARD_TEXT(T)
@@ -26482,7 +26563,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_552, TL_IS_553);
+ weave_format *wf = Formats__create_weave_format(TL_IS_555, TL_IS_556);
METHOD_ADD(wf, RENDER_FOR_MTID, Debugging__render);
}
@@ -26503,7 +26584,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
WRITE("%S", N->type->node_type_name);
if (N->type == weave_document_node_type)
{
-#line 83 "inweb/Chapter 5/Debugging Format.w"
+#line 84 "inweb/Chapter 5/Debugging Format.w"
weave_document_node *C = RETRIEVE_POINTER_weave_document_node(N->content);
WRITE(" weave order %d", C->wv->allocation_id);
@@ -26512,7 +26593,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_head_node_type)
{
-#line 87 "inweb/Chapter 5/Debugging Format.w"
+#line 88 "inweb/Chapter 5/Debugging Format.w"
weave_head_node *C = RETRIEVE_POINTER_weave_head_node(N->content);
WRITE(" banner <%S>", C->banner);
@@ -26521,7 +26602,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_body_node_type)
{
-#line 91 "inweb/Chapter 5/Debugging Format.w"
+#line 92 "inweb/Chapter 5/Debugging Format.w"
;
}
@@ -26529,7 +26610,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_tail_node_type)
{
-#line 94 "inweb/Chapter 5/Debugging Format.w"
+#line 95 "inweb/Chapter 5/Debugging Format.w"
weave_tail_node *C = RETRIEVE_POINTER_weave_tail_node(N->content);
WRITE(" rennab <%S>", C->rennab);
@@ -26538,7 +26619,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_verbatim_node_type)
{
-#line 98 "inweb/Chapter 5/Debugging Format.w"
+#line 99 "inweb/Chapter 5/Debugging Format.w"
weave_verbatim_node *C = RETRIEVE_POINTER_weave_verbatim_node(N->content);
Debugging__show_text(OUT, C->content, 80);
@@ -26547,7 +26628,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_chapter_header_node_type)
{
-#line 110 "inweb/Chapter 5/Debugging Format.w"
+#line 111 "inweb/Chapter 5/Debugging Format.w"
weave_chapter_header_node *C = RETRIEVE_POINTER_weave_chapter_header_node(N->content);
WRITE(" <%S>", C->chap->md->ch_title);
@@ -26556,7 +26637,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_chapter_footer_node_type)
{
-#line 114 "inweb/Chapter 5/Debugging Format.w"
+#line 115 "inweb/Chapter 5/Debugging Format.w"
weave_chapter_footer_node *C = RETRIEVE_POINTER_weave_chapter_footer_node(N->content);
WRITE(" <%S>", C->chap->md->ch_title);
@@ -26565,7 +26646,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_header_node_type)
{
-#line 102 "inweb/Chapter 5/Debugging Format.w"
+#line 103 "inweb/Chapter 5/Debugging Format.w"
weave_section_header_node *C = RETRIEVE_POINTER_weave_section_header_node(N->content);
WRITE(" <%S>", C->sect->md->sect_title);
@@ -26574,7 +26655,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_footer_node_type)
{
-#line 106 "inweb/Chapter 5/Debugging Format.w"
+#line 107 "inweb/Chapter 5/Debugging Format.w"
weave_section_footer_node *C = RETRIEVE_POINTER_weave_section_footer_node(N->content);
WRITE(" <%S>", C->sect->md->sect_title);
@@ -26583,7 +26664,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_section_purpose_node_type)
{
-#line 118 "inweb/Chapter 5/Debugging Format.w"
+#line 119 "inweb/Chapter 5/Debugging Format.w"
weave_section_purpose_node *C = RETRIEVE_POINTER_weave_section_purpose_node(N->content);
WRITE(" <%S>", C->purpose);
@@ -26592,7 +26673,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_subheading_node_type)
{
-#line 122 "inweb/Chapter 5/Debugging Format.w"
+#line 123 "inweb/Chapter 5/Debugging Format.w"
weave_subheading_node *C = RETRIEVE_POINTER_weave_subheading_node(N->content);
WRITE(" <%S>", C->text);
@@ -26601,7 +26682,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_bar_node_type)
{
-#line 126 "inweb/Chapter 5/Debugging Format.w"
+#line 127 "inweb/Chapter 5/Debugging Format.w"
;
}
@@ -26609,7 +26690,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_pagebreak_node_type)
{
-#line 129 "inweb/Chapter 5/Debugging Format.w"
+#line 130 "inweb/Chapter 5/Debugging Format.w"
;
}
@@ -26617,7 +26698,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_paragraph_heading_node_type)
{
-#line 132 "inweb/Chapter 5/Debugging Format.w"
+#line 133 "inweb/Chapter 5/Debugging Format.w"
weave_paragraph_heading_node *C = RETRIEVE_POINTER_weave_paragraph_heading_node(N->content);
Debugging__show_para(OUT, C->para);
if (C->no_skip) WRITE(" (no skip)");
@@ -26627,7 +26708,7 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_endnote_node_type)
{
-#line 137 "inweb/Chapter 5/Debugging Format.w"
+#line 138 "inweb/Chapter 5/Debugging Format.w"
;
}
@@ -26635,16 +26716,25 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
else if (N->type == weave_figure_node_type)
{
-#line 140 "inweb/Chapter 5/Debugging Format.w"
+#line 141 "inweb/Chapter 5/Debugging Format.w"
weave_figure_node *C = RETRIEVE_POINTER_weave_figure_node(N->content);
WRITE(" <%S> %d by %d", C->figname, C->w, C->h);
}
#line 51 "inweb/Chapter 5/Debugging Format.w"
+ else if (N->type == weave_audio_node_type)
+{
+#line 145 "inweb/Chapter 5/Debugging Format.w"
+ weave_audio_node *C = RETRIEVE_POINTER_weave_audio_node(N->content);
+ WRITE(" <%S> %d", C->audio_name, C->w);
+
+}
+#line 52 "inweb/Chapter 5/Debugging Format.w"
+
else if (N->type == weave_material_node_type)
{
-#line 144 "inweb/Chapter 5/Debugging Format.w"
+#line 149 "inweb/Chapter 5/Debugging Format.w"
weave_material_node *C = RETRIEVE_POINTER_weave_material_node(N->content);
WRITE(" ");
Debugging__show_mat(OUT, C->material_type);
@@ -26652,130 +26742,130 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
if (C->plainly) WRITE(" (plainly)");
}
-#line 52 "inweb/Chapter 5/Debugging Format.w"
+#line 53 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_embed_node_type)
{
-#line 151 "inweb/Chapter 5/Debugging Format.w"
+#line 156 "inweb/Chapter 5/Debugging Format.w"
weave_embed_node *C = RETRIEVE_POINTER_weave_embed_node(N->content);
WRITE(" service <%S> ID <%S> %d by %d", C->service, C->ID, C->w, C->h);
}
-#line 53 "inweb/Chapter 5/Debugging Format.w"
+#line 54 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_pmac_node_type)
{
-#line 155 "inweb/Chapter 5/Debugging Format.w"
+#line 160 "inweb/Chapter 5/Debugging Format.w"
weave_pmac_node *C = RETRIEVE_POINTER_weave_pmac_node(N->content);
WRITE(" <%S>", C->pmac->macro_name);
if (C->defn) WRITE(" (definition)");
}
-#line 54 "inweb/Chapter 5/Debugging Format.w"
+#line 55 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_vskip_node_type)
{
-#line 160 "inweb/Chapter 5/Debugging Format.w"
+#line 165 "inweb/Chapter 5/Debugging Format.w"
weave_vskip_node *C = RETRIEVE_POINTER_weave_vskip_node(N->content);
if (C->in_comment) WRITE(" (in comment)");
}
-#line 55 "inweb/Chapter 5/Debugging Format.w"
+#line 56 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_chapter_node_type)
{
-#line 167 "inweb/Chapter 5/Debugging Format.w"
+#line 172 "inweb/Chapter 5/Debugging Format.w"
weave_chapter_node *C = RETRIEVE_POINTER_weave_chapter_node(N->content);
WRITE(" <%S>", C->chap->md->ch_title);
}
-#line 56 "inweb/Chapter 5/Debugging Format.w"
+#line 57 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_section_node_type)
{
-#line 171 "inweb/Chapter 5/Debugging Format.w"
+#line 176 "inweb/Chapter 5/Debugging Format.w"
weave_section_node *C = RETRIEVE_POINTER_weave_section_node(N->content);
WRITE(" <%S>", C->sect->md->sect_title);
}
-#line 57 "inweb/Chapter 5/Debugging Format.w"
+#line 58 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_code_line_node_type)
{
-#line 175 "inweb/Chapter 5/Debugging Format.w"
+#line 180 "inweb/Chapter 5/Debugging Format.w"
;
-}
-#line 58 "inweb/Chapter 5/Debugging Format.w"
-
- else if (N->type == weave_function_usage_node_type)
-{
-#line 178 "inweb/Chapter 5/Debugging Format.w"
- weave_function_usage_node *C = RETRIEVE_POINTER_weave_function_usage_node(N->content);
- WRITE(" <%S>", C->fn->function_name);
-
}
#line 59 "inweb/Chapter 5/Debugging Format.w"
+ else if (N->type == weave_function_usage_node_type)
+{
+#line 183 "inweb/Chapter 5/Debugging Format.w"
+ weave_function_usage_node *C = RETRIEVE_POINTER_weave_function_usage_node(N->content);
+ WRITE(" <%S>", C->fn->function_name);
+
+}
+#line 60 "inweb/Chapter 5/Debugging Format.w"
+
else if (N->type == weave_commentary_node_type)
{
-#line 182 "inweb/Chapter 5/Debugging Format.w"
+#line 187 "inweb/Chapter 5/Debugging Format.w"
weave_commentary_node *C = RETRIEVE_POINTER_weave_commentary_node(N->content);
Debugging__show_text(OUT, C->text, 80);
if (C->in_code) WRITE(" (code)");
}
-#line 60 "inweb/Chapter 5/Debugging Format.w"
+#line 61 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_carousel_slide_node_type)
{
-#line 187 "inweb/Chapter 5/Debugging Format.w"
+#line 192 "inweb/Chapter 5/Debugging Format.w"
weave_carousel_slide_node *C = RETRIEVE_POINTER_weave_carousel_slide_node(N->content);
WRITE(" caption <%S>", C->caption);
}
-#line 61 "inweb/Chapter 5/Debugging Format.w"
+#line 62 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_toc_node_type)
{
-#line 191 "inweb/Chapter 5/Debugging Format.w"
+#line 196 "inweb/Chapter 5/Debugging Format.w"
weave_toc_node *C = RETRIEVE_POINTER_weave_toc_node(N->content);
WRITE(" - <%S>", C->text1);
}
-#line 62 "inweb/Chapter 5/Debugging Format.w"
+#line 63 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_toc_line_node_type)
{
-#line 195 "inweb/Chapter 5/Debugging Format.w"
+#line 200 "inweb/Chapter 5/Debugging Format.w"
weave_toc_line_node *C = RETRIEVE_POINTER_weave_toc_line_node(N->content);
WRITE(" - <%S, %S>", C->text1, C->text2);
if (C->para) Debugging__show_para(OUT, C->para);
}
-#line 63 "inweb/Chapter 5/Debugging Format.w"
+#line 64 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_chapter_title_page_node_type)
{
-#line 200 "inweb/Chapter 5/Debugging Format.w"
+#line 205 "inweb/Chapter 5/Debugging Format.w"
weave_chapter_title_page_node *C = RETRIEVE_POINTER_weave_chapter_title_page_node(N->content);
WRITE(" - something %d", C->allocation_id);
}
-#line 64 "inweb/Chapter 5/Debugging Format.w"
+#line 65 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_defn_node_type)
{
-#line 204 "inweb/Chapter 5/Debugging Format.w"
+#line 209 "inweb/Chapter 5/Debugging Format.w"
weave_defn_node *C = RETRIEVE_POINTER_weave_defn_node(N->content);
WRITE(" <%S>", C->keyword);
}
-#line 65 "inweb/Chapter 5/Debugging Format.w"
+#line 66 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_source_code_node_type)
{
-#line 208 "inweb/Chapter 5/Debugging Format.w"
+#line 213 "inweb/Chapter 5/Debugging Format.w"
weave_source_code_node *C = RETRIEVE_POINTER_weave_source_code_node(N->content);
WRITE(" <%S>\n", C->matter);
for (int i=0; icolouring);
}
-#line 66 "inweb/Chapter 5/Debugging Format.w"
+#line 67 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_url_node_type)
{
-#line 215 "inweb/Chapter 5/Debugging Format.w"
+#line 220 "inweb/Chapter 5/Debugging Format.w"
weave_url_node *C = RETRIEVE_POINTER_weave_url_node(N->content);
WRITE(" content <%S> url <%S>", C->content, C->url);
}
-#line 67 "inweb/Chapter 5/Debugging Format.w"
+#line 68 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_footnote_cue_node_type)
{
-#line 219 "inweb/Chapter 5/Debugging Format.w"
+#line 224 "inweb/Chapter 5/Debugging Format.w"
weave_footnote_cue_node *C = RETRIEVE_POINTER_weave_footnote_cue_node(N->content);
WRITE(" [%S]", C->cue_text);
-}
-#line 68 "inweb/Chapter 5/Debugging Format.w"
-
- else if (N->type == weave_begin_footnote_text_node_type)
-{
-#line 223 "inweb/Chapter 5/Debugging Format.w"
- weave_begin_footnote_text_node *C = RETRIEVE_POINTER_weave_begin_footnote_text_node(N->content);
- WRITE(" [%S]", C->cue_text);
-
}
#line 69 "inweb/Chapter 5/Debugging Format.w"
- else if (N->type == weave_display_line_node_type)
+ else if (N->type == weave_begin_footnote_text_node_type)
{
-#line 227 "inweb/Chapter 5/Debugging Format.w"
- weave_display_line_node *C = RETRIEVE_POINTER_weave_display_line_node(N->content);
- WRITE(" <%S>", C->text);
+#line 228 "inweb/Chapter 5/Debugging Format.w"
+ weave_begin_footnote_text_node *C = RETRIEVE_POINTER_weave_begin_footnote_text_node(N->content);
+ WRITE(" [%S]", C->cue_text);
}
#line 70 "inweb/Chapter 5/Debugging Format.w"
- else if (N->type == weave_function_defn_node_type)
+ else if (N->type == weave_display_line_node_type)
{
-#line 231 "inweb/Chapter 5/Debugging Format.w"
- weave_function_defn_node *C = RETRIEVE_POINTER_weave_function_defn_node(N->content);
- WRITE(" <%S>", C->fn->function_name);
+#line 232 "inweb/Chapter 5/Debugging Format.w"
+ weave_display_line_node *C = RETRIEVE_POINTER_weave_display_line_node(N->content);
+ WRITE(" <%S>", C->text);
}
#line 71 "inweb/Chapter 5/Debugging Format.w"
- else if (N->type == weave_item_node_type)
+ else if (N->type == weave_function_defn_node_type)
{
-#line 235 "inweb/Chapter 5/Debugging Format.w"
- weave_item_node *C = RETRIEVE_POINTER_weave_item_node(N->content);
- WRITE(" depth %d label <%S>", C->depth, C->label);
+#line 236 "inweb/Chapter 5/Debugging Format.w"
+ weave_function_defn_node *C = RETRIEVE_POINTER_weave_function_defn_node(N->content);
+ WRITE(" <%S>", C->fn->function_name);
}
#line 72 "inweb/Chapter 5/Debugging Format.w"
- else if (N->type == weave_grammar_index_node_type)
+ else if (N->type == weave_item_node_type)
{
-#line 239 "inweb/Chapter 5/Debugging Format.w"
- ;
+#line 240 "inweb/Chapter 5/Debugging Format.w"
+ weave_item_node *C = RETRIEVE_POINTER_weave_item_node(N->content);
+ WRITE(" depth %d label <%S>", C->depth, C->label);
}
#line 73 "inweb/Chapter 5/Debugging Format.w"
- else if (N->type == weave_inline_node_type)
+ else if (N->type == weave_grammar_index_node_type)
{
-#line 242 "inweb/Chapter 5/Debugging Format.w"
+#line 244 "inweb/Chapter 5/Debugging Format.w"
;
}
#line 74 "inweb/Chapter 5/Debugging Format.w"
+ else if (N->type == weave_inline_node_type)
+{
+#line 247 "inweb/Chapter 5/Debugging Format.w"
+ ;
+
+}
+#line 75 "inweb/Chapter 5/Debugging Format.w"
+
else if (N->type == weave_locale_node_type)
{
-#line 245 "inweb/Chapter 5/Debugging Format.w"
+#line 250 "inweb/Chapter 5/Debugging Format.w"
weave_locale_node *C = RETRIEVE_POINTER_weave_locale_node(N->content);
Debugging__show_para(OUT, C->par1);
if (C->par2) {
@@ -26866,24 +26956,24 @@ int Debugging__render_visit(tree_node *N, void *state, int L) {
}
}
-#line 75 "inweb/Chapter 5/Debugging Format.w"
+#line 76 "inweb/Chapter 5/Debugging Format.w"
else if (N->type == weave_maths_node_type)
{
-#line 253 "inweb/Chapter 5/Debugging Format.w"
+#line 258 "inweb/Chapter 5/Debugging Format.w"
weave_maths_node *C = RETRIEVE_POINTER_weave_maths_node(N->content);
WRITE(" <%S>", C->content);
if (C->displayed) WRITE(" (displayed)");
}
-#line 76 "inweb/Chapter 5/Debugging Format.w"
+#line 77 "inweb/Chapter 5/Debugging Format.w"
else WRITE("Unknown node");
WRITE("\n");
return TRUE;
}
-#line 258 "inweb/Chapter 5/Debugging Format.w"
+#line 263 "inweb/Chapter 5/Debugging Format.w"
void Debugging__show_text(text_stream *OUT, text_stream *text, int limit) {
WRITE(" <");
for (int i=0; (ilast_included_in_round = current_inclusion_round;
pathname *AP = Colonies__assets_path();
int html_mode = FALSE;
- if (Str__eq(pattern->pattern_format->format_name, TL_IS_556)) html_mode = TRUE;
+ if (Str__eq(pattern->pattern_format->format_name, TL_IS_559)) html_mode = TRUE;
int finds = 0;
TEMPORARY_TEXT(required);
WRITE_TO(required, "%S.html", wp->plugin_name);
@@ -27000,9 +27090,9 @@ void WeavePlugins__include_plugin(OUTPUT_STREAM, web *W, weave_plugin *wp,
if (html_mode) {
TEMPORARY_TEXT(ext);
Filenames__write_extension(ext, F);
- if (Str__eq_insensitive(ext, TL_IS_557)) {
+ if (Str__eq_insensitive(ext, TL_IS_560)) {
WeavePlugins__include_CSS_file(OUT, W, F, leafname, NULL, pattern, from);
- } else if (Str__eq_insensitive(ext, TL_IS_558)) {
+ } else if (Str__eq_insensitive(ext, TL_IS_561)) {
TEMPORARY_TEXT(url);
if (AP) Pathnames__relative_URL(url, Filenames__up(from), AP);
WRITE_TO(url, "%S", leafname);
@@ -27070,11 +27160,11 @@ void WeavePlugins__include_colour_scheme(OUTPUT_STREAM, web *W, colour_scheme *c
weave_pattern *pattern, filename *from) {
if (cs->last_included_in_round == current_inclusion_round) return;
cs->last_included_in_round = current_inclusion_round;
- if (Str__eq(pattern->pattern_format->format_name, TL_IS_559)) {
+ if (Str__eq(pattern->pattern_format->format_name, TL_IS_562)) {
TEMPORARY_TEXT(css);
WRITE_TO(css, "%S.css", cs->scheme_name);
- filename *F = Patterns__find_asset(pattern, TL_IS_560, css);
- if (F == NULL) F = Patterns__find_asset(pattern, TL_IS_561, css);
+ filename *F = Patterns__find_asset(pattern, TL_IS_563, css);
+ if (F == NULL) F = Patterns__find_asset(pattern, TL_IS_564, css);
if (F == NULL) {
TEMPORARY_TEXT(err);
WRITE_TO(err, "No CSS file for the colour scheme '%S' can be found",
@@ -27395,7 +27485,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_562, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_563);
+ Makefiles__repeat(OUT, TL_IS_565, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_566);
WRITE("%S\n", mr.exp[2]);
MS->last_line_was_blank = FALSE;
Regexp__dispose_of(&mr);
@@ -27417,7 +27507,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_562, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_563);
+ Makefiles__repeat(OUT, TL_IS_565, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_566);
WRITE("%S\n", mr.exp[2]);
MS->last_line_was_blank = FALSE;
Regexp__dispose_of(&mr);
@@ -27439,7 +27529,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_562, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_563);
+ Makefiles__repeat(OUT, TL_IS_565, FALSE, mr.exp[1], FALSE, NULL, tfp, MS, marker, TL_IS_566);
WRITE("%S\n", mr.exp[2]);
MS->last_line_was_blank = FALSE;
Regexp__dispose_of(&mr);
@@ -27457,7 +27547,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_565);
+ pathname *path_to_intest = Pathnames__down(Pathnames__up(path_to_inweb), TL_IS_568);
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));
@@ -27474,7 +27564,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_564);
+ filename *prototype = Filenames__in(path_to_inweb, TL_IS_567);
MS->allow_commands = FALSE;
TextFiles__read(prototype, FALSE, "can't open make settings file",
TRUE, Makefiles__scan_makefile_line, NULL, MS);
@@ -27761,7 +27851,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_566)) || (Str__eq(tag, M->module_tag)))) {
+ ((Str__eq(tag, TL_IS_569)) || (Str__eq(tag, M->module_tag)))) {
if ((prefix) && ((c++ > 0) || (every_time))) WRITE("%S", prefix);
if (matter) {
TEMPORARY_TEXT(line);
@@ -27815,7 +27905,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_567);
+ Filenames__in(path_to_inweb_materials, TL_IS_570);
TextFiles__read(prototype, FALSE, "can't open make settings file",
TRUE, Git__copy_gitignore_line, NULL, MS);
Regexp__dispose_of(&mr);
@@ -27849,11 +27939,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_568, NULL, NULL);
+ macro *V = Readme__new_macro(TL_IS_571, NULL, NULL);
ADD_TO_LINKED_LIST(V, macro, ws.known_macros);
- macro *P = Readme__new_macro(TL_IS_569, NULL, NULL);
+ macro *P = Readme__new_macro(TL_IS_572, NULL, NULL);
ADD_TO_LINKED_LIST(P, macro, ws.known_macros);
- macro *A = Readme__new_macro(TL_IS_570, NULL, NULL);
+ macro *A = Readme__new_macro(TL_IS_573, NULL, NULL);
ADD_TO_LINKED_LIST(A, macro, ws.known_macros);
ws.stack_frame = NULL;
text_stream file_to;
@@ -27889,7 +27979,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_571, tfp);
+ Readme__expand_material(ws, OUT, TL_IS_574, tfp);
}
Regexp__dispose_of(&mr);
}
@@ -28020,7 +28110,7 @@ void Readme__expand_at(write_state *ws, text_stream *OUT, text_stream *macro_nam
#line 204 "inweb/Chapter 6/Readme Writeme.w"
void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file_position *tfp) {
- if (Str__eq(M->name, TL_IS_572))
+ if (Str__eq(M->name, TL_IS_575))
{
#line 215 "inweb/Chapter 6/Readme Writeme.w"
if (ws->stack_frame->no_pars != 1)
@@ -28028,14 +28118,14 @@ void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file
else {
TEMPORARY_TEXT(program);
Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp);
- Readme__write_var(OUT, program, TL_IS_575);
+ Readme__write_var(OUT, program, TL_IS_578);
DISCARD_TEXT(program);
}
}
#line 205 "inweb/Chapter 6/Readme Writeme.w"
- else if (Str__eq(M->name, TL_IS_573))
+ else if (Str__eq(M->name, TL_IS_576))
{
#line 225 "inweb/Chapter 6/Readme Writeme.w"
if (ws->stack_frame->no_pars != 1)
@@ -28043,14 +28133,14 @@ void Readme__expand_macro(write_state *ws, text_stream *OUT, macro *M, text_file
else {
TEMPORARY_TEXT(program);
Readme__expand_material(ws, program, ws->stack_frame->pars[0], tfp);
- Readme__write_var(OUT, program, TL_IS_576);
+ Readme__write_var(OUT, program, TL_IS_579);
DISCARD_TEXT(program);
}
}
#line 206 "inweb/Chapter 6/Readme Writeme.w"
- else if (Str__eq(M->name, TL_IS_574))
+ else if (Str__eq(M->name, TL_IS_577))
{
#line 235 "inweb/Chapter 6/Readme Writeme.w"
if (ws->stack_frame->no_pars != 2)
@@ -28079,8 +28169,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_577)) WRITE("%S", A->date);
- else if (Str__eq(datum, TL_IS_578)) WRITE("%S", A->version);
+ else if (Str__eq(datum, TL_IS_580)) WRITE("%S", A->date);
+ else if (Str__eq(datum, TL_IS_581)) WRITE("%S", A->version);
}
#line 273 "inweb/Chapter 6/Readme Writeme.w"
@@ -28111,7 +28201,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_579), TL_IS_580);
+ Pathnames__down(Pathnames__from_text(program), TL_IS_582), TL_IS_583);
if (TextFiles__exists(I6_vn))
{
#line 310 "inweb/Chapter 6/Readme Writeme.w"
@@ -28121,7 +28211,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_581);
+ filename *template_vn = Filenames__in(Pathnames__from_text(program), TL_IS_584);
if (TextFiles__exists(template_vn))
{
#line 314 "inweb/Chapter 6/Readme Writeme.w"
@@ -28131,7 +28221,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_582);
+ filename *rmt_vn = Filenames__in(Pathnames__from_text(program), TL_IS_585);
if (TextFiles__exists(rmt_vn))
{
#line 318 "inweb/Chapter 6/Readme Writeme.w"
@@ -28141,7 +28231,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_583);
+ rmt_vn = Filenames__in(Pathnames__from_text(program), TL_IS_586);
if (TextFiles__exists(rmt_vn))
{
#line 318 "inweb/Chapter 6/Readme Writeme.w"
@@ -28216,7 +28306,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_584;
+ C->home = TL_IS_587;
C->assets_path = NULL;
C->patterns_path = NULL;
colony_reader_state crs;
@@ -28240,8 +28330,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_585)) CM->web_rather_than_module = TRUE;
- else if (Str__eq(mr.exp[0], TL_IS_586)) CM->web_rather_than_module = FALSE;
+ if (Str__eq(mr.exp[0], TL_IS_588)) CM->web_rather_than_module = TRUE;
+ else if (Str__eq(mr.exp[0], TL_IS_589)) 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);
@@ -28249,7 +28339,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_587, 6)) {
+ if (Str__suffix_eq(CM->path, TL_IS_590, 6)) {
filename *F = Filenames__from_text(CM->path);
Filenames__write_unextended_leafname(CM->home_leaf, F);
WRITE_TO(CM->home_leaf, ".html");
@@ -28389,7 +28479,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_588, 6))
+ if (Str__suffix_eq(CM->path, TL_IS_591, 6))
F = Filenames__from_text(CM->path);
else
P = Pathnames__from_text(CM->path);
@@ -28416,7 +28506,7 @@ text_stream *Colonies__home(void) {
colony *C;
LOOP_OVER(C, colony)
return C->home;
- return TL_IS_589;
+ return TL_IS_592;
}
pathname *Colonies__assets_path(void) {
@@ -28575,7 +28665,7 @@ int Colonies__resolve_reference_in_weave_inner(text_stream *url, text_stream *ti
DISCARD_TEXT(err);
return FALSE;
} else if (N > 1) {
- Main__error_in_web(TL_IS_590, L);
+ Main__error_in_web(TL_IS_593, L);
WebModules__named_reference(&found_M, &found_Sm, &bare_module_name,
title, search_M, text, TRUE);
return FALSE;
@@ -28658,7 +28748,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_591)) {
+ if (Str__ne(to_M->module_name, TL_IS_594)) {
colony_member *to_C = Colonies__find(to_M->module_name);
if (to_C) {
pathname *from_path = Filenames__up(from);
@@ -28848,435 +28938,438 @@ void register_tangled_text_literals(void) {
TL_IS_158 = Str__literal(L"(very early code)");
TL_IS_159 = Str__literal(L"(early code)");
TL_IS_160 = Str__literal(L"Figures");
- TL_IS_161 = Str__literal(L"Carousels");
+ TL_IS_161 = Str__literal(L"Audio");
TL_IS_162 = Str__literal(L"Carousels");
TL_IS_163 = Str__literal(L"Carousels");
TL_IS_164 = Str__literal(L"Carousels");
TL_IS_165 = Str__literal(L"Carousels");
- TL_IS_166 = Str__literal(L"Videos");
- TL_IS_167 = Str__literal(L"unknown bracketed annotation");
- TL_IS_168 = Str__literal(L"unknown material after '='");
- TL_IS_169 = Str__literal(L"undisplayed");
- TL_IS_170 = Str__literal(L"hyperlinked");
- TL_IS_171 = Str__literal(L"only 'undisplayed' and/or 'hyperlinked' can precede 'text' here");
- TL_IS_172 = Str__literal(L"=");
- TL_IS_173 = Str__literal(L"don't understand @command");
- TL_IS_174 = Str__literal(L"Purpose used after bar");
- TL_IS_175 = Str__literal(L"Interface used after bar");
- TL_IS_176 = Str__literal(L"Definitions used after bar");
- TL_IS_177 = Str__literal(L"second bar in the same section");
- TL_IS_178 = Str__literal(L"enumeration constants can't supply a value");
- TL_IS_179 = Str__literal(L"P");
- TL_IS_180 = Str__literal(L"S");
- TL_IS_181 = Str__literal(L"Footnote Begins Notation");
- TL_IS_182 = Str__literal(L"Footnote Ends Notation");
- TL_IS_183 = Str__literal(L"Off");
- TL_IS_184 = Str__literal(L"ifdef-");
- TL_IS_185 = Str__literal(L"ifndef-");
- TL_IS_186 = Str__literal(L".");
- TL_IS_187 = Str__literal(L"This paragraph is used only if ");
- TL_IS_188 = Str__literal(L" and if ");
- TL_IS_189 = Str__literal(L" and ");
- TL_IS_190 = Str__literal(L" is");
- TL_IS_191 = Str__literal(L" are");
- TL_IS_192 = Str__literal(L" defined");
- TL_IS_193 = Str__literal(L" undefined");
- TL_IS_194 = Str__literal(L"enumeration constants must belong to a _FAMILY");
- TL_IS_195 = Str__literal(L"this enumeration _FAMILY is unknown");
- TL_IS_196 = Str__literal(L"this enumeration _FAMILY already exists");
- TL_IS_197 = Str__literal(L"unrecognised interface line");
- TL_IS_198 = Str__literal(L"makescript.txt");
+ TL_IS_166 = Str__literal(L"Carousels");
+ TL_IS_167 = Str__literal(L"Videos");
+ TL_IS_168 = Str__literal(L"unknown bracketed annotation");
+ TL_IS_169 = Str__literal(L"unknown material after '='");
+ TL_IS_170 = Str__literal(L"undisplayed");
+ TL_IS_171 = Str__literal(L"hyperlinked");
+ TL_IS_172 = Str__literal(L"only 'undisplayed' and/or 'hyperlinked' can precede 'text' here");
+ TL_IS_173 = Str__literal(L"=");
+ TL_IS_174 = Str__literal(L"don't understand @command");
+ TL_IS_175 = Str__literal(L"Purpose used after bar");
+ TL_IS_176 = Str__literal(L"Interface used after bar");
+ TL_IS_177 = Str__literal(L"Definitions used after bar");
+ TL_IS_178 = Str__literal(L"second bar in the same section");
+ TL_IS_179 = Str__literal(L"enumeration constants can't supply a value");
+ TL_IS_180 = Str__literal(L"P");
+ TL_IS_181 = Str__literal(L"S");
+ TL_IS_182 = Str__literal(L"Footnote Begins Notation");
+ TL_IS_183 = Str__literal(L"Footnote Ends Notation");
+ TL_IS_184 = Str__literal(L"Off");
+ TL_IS_185 = Str__literal(L"ifdef-");
+ TL_IS_186 = Str__literal(L"ifndef-");
+ TL_IS_187 = Str__literal(L".");
+ TL_IS_188 = Str__literal(L"This paragraph is used only if ");
+ TL_IS_189 = Str__literal(L" and if ");
+ TL_IS_190 = Str__literal(L" and ");
+ TL_IS_191 = Str__literal(L" is");
+ TL_IS_192 = Str__literal(L" are");
+ TL_IS_193 = Str__literal(L" defined");
+ TL_IS_194 = Str__literal(L" undefined");
+ TL_IS_195 = Str__literal(L"enumeration constants must belong to a _FAMILY");
+ TL_IS_196 = Str__literal(L"this enumeration _FAMILY is unknown");
+ TL_IS_197 = Str__literal(L"this enumeration _FAMILY already exists");
+ TL_IS_198 = Str__literal(L"unrecognised interface line");
TL_IS_199 = Str__literal(L"makescript.txt");
- TL_IS_200 = Str__literal(L"gitignorescript.txt");
+ TL_IS_200 = Str__literal(L"makescript.txt");
TL_IS_201 = Str__literal(L"gitignorescript.txt");
- TL_IS_202 = Str__literal(L"");
- TL_IS_203 = Str__literal(L"index.html");
- TL_IS_204 = Str__literal(L"Purpose");
- TL_IS_205 = Str__literal(L"End of weave");
- TL_IS_206 = Str__literal(L"Definitions");
- TL_IS_207 = Str__literal(L"bad start to paragraph");
- TL_IS_208 = Str__literal(L"");
+ TL_IS_202 = Str__literal(L"gitignorescript.txt");
+ TL_IS_203 = Str__literal(L"");
+ TL_IS_204 = Str__literal(L"index.html");
+ TL_IS_205 = Str__literal(L"Purpose");
+ TL_IS_206 = Str__literal(L"End of weave");
+ TL_IS_207 = Str__literal(L"Definitions");
+ TL_IS_208 = Str__literal(L"bad start to paragraph");
TL_IS_209 = Str__literal(L"");
- TL_IS_210 = Str__literal(L"footnote never cued");
- TL_IS_211 = Str__literal(L"define");
- TL_IS_212 = Str__literal(L"enum");
- TL_IS_213 = Str__literal(L"This code is ");
- TL_IS_214 = Str__literal(L"never used");
- TL_IS_215 = Str__literal(L", ");
- TL_IS_216 = Str__literal(L" and ");
- TL_IS_217 = Str__literal(L"used in ");
- TL_IS_218 = Str__literal(L" (twice)");
- TL_IS_219 = Str__literal(L" (three times)");
- TL_IS_220 = Str__literal(L" (four times)");
- TL_IS_221 = Str__literal(L" (five times)");
- TL_IS_222 = Str__literal(L".");
- TL_IS_223 = Str__literal(L"The structure ");
- TL_IS_224 = Str__literal(L" is private to this section");
- TL_IS_225 = Str__literal(L" is accessed in ");
- TL_IS_226 = Str__literal(L", ");
- TL_IS_227 = Str__literal(L" and here");
- TL_IS_228 = Str__literal(L".");
- TL_IS_229 = Str__literal(L"The function ");
- TL_IS_230 = Str__literal(L" appears nowhere else");
- TL_IS_231 = Str__literal(L"none");
- TL_IS_232 = Str__literal(L")");
- TL_IS_233 = Str__literal(L".");
- TL_IS_234 = Str__literal(L" is used in ");
- TL_IS_235 = Str__literal(L"), ");
- TL_IS_236 = Str__literal(L", ");
- TL_IS_237 = Str__literal(L" ");
- TL_IS_238 = Str__literal(L", ");
- TL_IS_239 = Str__literal(L" (");
- TL_IS_240 = Str__literal(L" - ");
- TL_IS_241 = Str__literal(L", ");
- TL_IS_242 = Str__literal(L"Code In Code Comments Notation");
- TL_IS_243 = Str__literal(L"Code In Commentary Notation");
- TL_IS_244 = Str__literal(L"Off");
- TL_IS_245 = Str__literal(L"TeX Mathematics Displayed Notation");
- TL_IS_246 = Str__literal(L"Off");
- TL_IS_247 = Str__literal(L"TeX Mathematics Notation");
- TL_IS_248 = Str__literal(L"Off");
- TL_IS_249 = Str__literal(L"Cross-References Notation");
- TL_IS_250 = Str__literal(L"Off");
- TL_IS_251 = Str__literal(L"http://");
- TL_IS_252 = Str__literal(L"https://");
- TL_IS_253 = Str__literal(L"this is a cue for a missing note");
- TL_IS_254 = Str__literal(L"Cross-References Notation");
- TL_IS_255 = Str__literal(L"Off");
- TL_IS_256 = Str__literal(L"http://");
- TL_IS_257 = Str__literal(L"https://");
- TL_IS_258 = Str__literal(L"misplaced definition");
- TL_IS_259 = Str__literal(L"unknown macro");
- TL_IS_260 = Str__literal(L"Dialects");
- TL_IS_261 = Str__literal(L"C");
- TL_IS_262 = Str__literal(L"Languages");
- TL_IS_263 = Str__literal(L"InC");
- TL_IS_264 = Str__literal(L"Name");
- TL_IS_265 = Str__literal(L"Details");
- TL_IS_266 = Str__literal(L"Extension");
- TL_IS_267 = Str__literal(L"Line Comment");
- TL_IS_268 = Str__literal(L"Whole Line Comment");
- TL_IS_269 = Str__literal(L"Multiline Comment Open");
- TL_IS_270 = Str__literal(L"Multiline Comment Close");
- TL_IS_271 = Str__literal(L"String Literal");
- TL_IS_272 = Str__literal(L"String Literal Escape");
- TL_IS_273 = Str__literal(L"Character Literal");
- TL_IS_274 = Str__literal(L"Character Literal Escape");
- TL_IS_275 = Str__literal(L"Binary Literal Prefix");
- TL_IS_276 = Str__literal(L"Octal Literal Prefix");
- TL_IS_277 = Str__literal(L"Hexadecimal Literal Prefix");
- TL_IS_278 = Str__literal(L"Negative Literal Prefix");
- TL_IS_279 = Str__literal(L"Shebang");
- TL_IS_280 = Str__literal(L"Line Marker");
- TL_IS_281 = Str__literal(L"Before Named Paragraph Expansion");
- TL_IS_282 = Str__literal(L"After Named Paragraph Expansion");
- TL_IS_283 = Str__literal(L"Start Definition");
- TL_IS_284 = Str__literal(L"Prolong Definition");
- TL_IS_285 = Str__literal(L"End Definition");
- TL_IS_286 = Str__literal(L"Start Ifdef");
- TL_IS_287 = Str__literal(L"Start Ifndef");
- TL_IS_288 = Str__literal(L"End Ifdef");
- TL_IS_289 = Str__literal(L"End Ifndef");
- TL_IS_290 = Str__literal(L"C-Like");
- TL_IS_291 = Str__literal(L"Suppress Disclaimer");
- TL_IS_292 = Str__literal(L"Supports Namespaces");
- TL_IS_293 = Str__literal(L"Function Declaration Notation");
- TL_IS_294 = Str__literal(L"Type Declaration Notation");
- TL_IS_295 = Str__literal(L"}");
- TL_IS_296 = Str__literal(L"unquoted");
- TL_IS_297 = Str__literal(L"{");
- TL_IS_298 = Str__literal(L"debug");
- TL_IS_299 = Str__literal(L"!string");
- TL_IS_300 = Str__literal(L"!function");
- TL_IS_301 = Str__literal(L"!definition");
- TL_IS_302 = Str__literal(L"!reserved");
- TL_IS_303 = Str__literal(L"!element");
- TL_IS_304 = Str__literal(L"!identifier");
- TL_IS_305 = Str__literal(L"!character");
- TL_IS_306 = Str__literal(L"!constant");
- TL_IS_307 = Str__literal(L"!plain");
- TL_IS_308 = Str__literal(L"!extract");
- TL_IS_309 = Str__literal(L"!comment");
- TL_IS_310 = Str__literal(L"true");
- TL_IS_311 = Str__literal(L"false");
- TL_IS_312 = Str__literal(L"both");
- TL_IS_313 = Str__literal(L"brackets");
- TL_IS_314 = Str__literal(L"characters");
- TL_IS_315 = Str__literal(L"coloured");
- TL_IS_316 = Str__literal(L"colouring");
- TL_IS_317 = Str__literal(L"debug");
- TL_IS_318 = Str__literal(L"false");
- TL_IS_319 = Str__literal(L"in");
- TL_IS_320 = Str__literal(L"instances");
- TL_IS_321 = Str__literal(L"keyword");
- TL_IS_322 = Str__literal(L"matches");
- TL_IS_323 = Str__literal(L"matching");
- TL_IS_324 = Str__literal(L"not");
- TL_IS_325 = Str__literal(L"of");
- TL_IS_326 = Str__literal(L"on");
- TL_IS_327 = Str__literal(L"optionally");
- TL_IS_328 = Str__literal(L"prefix");
- TL_IS_329 = Str__literal(L"runs");
- TL_IS_330 = Str__literal(L"spaced");
- TL_IS_331 = Str__literal(L"suffix");
- TL_IS_332 = Str__literal(L"true");
- TL_IS_333 = Str__literal(L"unquoted");
- TL_IS_334 = Str__literal(L"Structures");
- TL_IS_335 = Str__literal(L"Main::");
- TL_IS_336 = Str__literal(L"Tangled output generated by inweb: do not edit");
- TL_IS_337 = Str__literal(L"this programming language does not support @d");
- TL_IS_338 = Str__literal(L"this programming language does not support multiline @d");
- TL_IS_339 = Str__literal(L"Namespaces");
- TL_IS_340 = Str__literal(L"Being internally called, this function mustn't belong to a :: namespace");
- TL_IS_341 = Str__literal(L"Being externally called, this function must belong to a :: namespace");
- TL_IS_342 = Str__literal(L"Structures");
- TL_IS_343 = Str__literal(L"program ended with conditional compilation open");
- TL_IS_344 = Str__literal(L"conditional compilation too deeply nested");
- TL_IS_345 = Str__literal(L"found #endif without #ifdef or #ifndef");
- TL_IS_346 = Str__literal(L"quartz");
+ TL_IS_210 = Str__literal(L"");
+ TL_IS_211 = Str__literal(L"footnote never cued");
+ TL_IS_212 = Str__literal(L"define");
+ TL_IS_213 = Str__literal(L"enum");
+ TL_IS_214 = Str__literal(L"This code is ");
+ TL_IS_215 = Str__literal(L"never used");
+ TL_IS_216 = Str__literal(L", ");
+ TL_IS_217 = Str__literal(L" and ");
+ TL_IS_218 = Str__literal(L"used in ");
+ TL_IS_219 = Str__literal(L" (twice)");
+ TL_IS_220 = Str__literal(L" (three times)");
+ TL_IS_221 = Str__literal(L" (four times)");
+ TL_IS_222 = Str__literal(L" (five times)");
+ TL_IS_223 = Str__literal(L".");
+ TL_IS_224 = Str__literal(L"The structure ");
+ TL_IS_225 = Str__literal(L" is private to this section");
+ TL_IS_226 = Str__literal(L" is accessed in ");
+ TL_IS_227 = Str__literal(L", ");
+ TL_IS_228 = Str__literal(L" and here");
+ TL_IS_229 = Str__literal(L".");
+ TL_IS_230 = Str__literal(L"The function ");
+ TL_IS_231 = Str__literal(L" appears nowhere else");
+ TL_IS_232 = Str__literal(L"none");
+ TL_IS_233 = Str__literal(L")");
+ TL_IS_234 = Str__literal(L".");
+ TL_IS_235 = Str__literal(L" is used in ");
+ TL_IS_236 = Str__literal(L"), ");
+ TL_IS_237 = Str__literal(L", ");
+ TL_IS_238 = Str__literal(L" ");
+ TL_IS_239 = Str__literal(L", ");
+ TL_IS_240 = Str__literal(L" (");
+ TL_IS_241 = Str__literal(L" - ");
+ TL_IS_242 = Str__literal(L", ");
+ TL_IS_243 = Str__literal(L"Code In Code Comments Notation");
+ TL_IS_244 = Str__literal(L"Code In Commentary Notation");
+ TL_IS_245 = Str__literal(L"Off");
+ TL_IS_246 = Str__literal(L"TeX Mathematics Displayed Notation");
+ TL_IS_247 = Str__literal(L"Off");
+ TL_IS_248 = Str__literal(L"TeX Mathematics Notation");
+ TL_IS_249 = Str__literal(L"Off");
+ TL_IS_250 = Str__literal(L"Cross-References Notation");
+ TL_IS_251 = Str__literal(L"Off");
+ TL_IS_252 = Str__literal(L"http://");
+ TL_IS_253 = Str__literal(L"https://");
+ TL_IS_254 = Str__literal(L"this is a cue for a missing note");
+ TL_IS_255 = Str__literal(L"Cross-References Notation");
+ TL_IS_256 = Str__literal(L"Off");
+ TL_IS_257 = Str__literal(L"http://");
+ TL_IS_258 = Str__literal(L"https://");
+ TL_IS_259 = Str__literal(L"misplaced definition");
+ TL_IS_260 = Str__literal(L"unknown macro");
+ TL_IS_261 = Str__literal(L"Dialects");
+ TL_IS_262 = Str__literal(L"C");
+ TL_IS_263 = Str__literal(L"Languages");
+ TL_IS_264 = Str__literal(L"InC");
+ TL_IS_265 = Str__literal(L"Name");
+ TL_IS_266 = Str__literal(L"Details");
+ TL_IS_267 = Str__literal(L"Extension");
+ TL_IS_268 = Str__literal(L"Line Comment");
+ TL_IS_269 = Str__literal(L"Whole Line Comment");
+ TL_IS_270 = Str__literal(L"Multiline Comment Open");
+ TL_IS_271 = Str__literal(L"Multiline Comment Close");
+ TL_IS_272 = Str__literal(L"String Literal");
+ TL_IS_273 = Str__literal(L"String Literal Escape");
+ TL_IS_274 = Str__literal(L"Character Literal");
+ TL_IS_275 = Str__literal(L"Character Literal Escape");
+ TL_IS_276 = Str__literal(L"Binary Literal Prefix");
+ TL_IS_277 = Str__literal(L"Octal Literal Prefix");
+ TL_IS_278 = Str__literal(L"Hexadecimal Literal Prefix");
+ TL_IS_279 = Str__literal(L"Negative Literal Prefix");
+ TL_IS_280 = Str__literal(L"Shebang");
+ TL_IS_281 = Str__literal(L"Line Marker");
+ TL_IS_282 = Str__literal(L"Before Named Paragraph Expansion");
+ TL_IS_283 = Str__literal(L"After Named Paragraph Expansion");
+ TL_IS_284 = Str__literal(L"Start Definition");
+ TL_IS_285 = Str__literal(L"Prolong Definition");
+ TL_IS_286 = Str__literal(L"End Definition");
+ TL_IS_287 = Str__literal(L"Start Ifdef");
+ TL_IS_288 = Str__literal(L"Start Ifndef");
+ TL_IS_289 = Str__literal(L"End Ifdef");
+ TL_IS_290 = Str__literal(L"End Ifndef");
+ TL_IS_291 = Str__literal(L"C-Like");
+ TL_IS_292 = Str__literal(L"Suppress Disclaimer");
+ TL_IS_293 = Str__literal(L"Supports Namespaces");
+ TL_IS_294 = Str__literal(L"Function Declaration Notation");
+ TL_IS_295 = Str__literal(L"Type Declaration Notation");
+ TL_IS_296 = Str__literal(L"}");
+ TL_IS_297 = Str__literal(L"unquoted");
+ TL_IS_298 = Str__literal(L"{");
+ TL_IS_299 = Str__literal(L"debug");
+ TL_IS_300 = Str__literal(L"!string");
+ TL_IS_301 = Str__literal(L"!function");
+ TL_IS_302 = Str__literal(L"!definition");
+ TL_IS_303 = Str__literal(L"!reserved");
+ TL_IS_304 = Str__literal(L"!element");
+ TL_IS_305 = Str__literal(L"!identifier");
+ TL_IS_306 = Str__literal(L"!character");
+ TL_IS_307 = Str__literal(L"!constant");
+ TL_IS_308 = Str__literal(L"!plain");
+ TL_IS_309 = Str__literal(L"!extract");
+ TL_IS_310 = Str__literal(L"!comment");
+ TL_IS_311 = Str__literal(L"true");
+ TL_IS_312 = Str__literal(L"false");
+ TL_IS_313 = Str__literal(L"both");
+ TL_IS_314 = Str__literal(L"brackets");
+ TL_IS_315 = Str__literal(L"characters");
+ TL_IS_316 = Str__literal(L"coloured");
+ TL_IS_317 = Str__literal(L"colouring");
+ TL_IS_318 = Str__literal(L"debug");
+ TL_IS_319 = Str__literal(L"false");
+ TL_IS_320 = Str__literal(L"in");
+ TL_IS_321 = Str__literal(L"instances");
+ TL_IS_322 = Str__literal(L"keyword");
+ TL_IS_323 = Str__literal(L"matches");
+ TL_IS_324 = Str__literal(L"matching");
+ TL_IS_325 = Str__literal(L"not");
+ TL_IS_326 = Str__literal(L"of");
+ TL_IS_327 = Str__literal(L"on");
+ TL_IS_328 = Str__literal(L"optionally");
+ TL_IS_329 = Str__literal(L"prefix");
+ TL_IS_330 = Str__literal(L"runs");
+ TL_IS_331 = Str__literal(L"spaced");
+ TL_IS_332 = Str__literal(L"suffix");
+ TL_IS_333 = Str__literal(L"true");
+ TL_IS_334 = Str__literal(L"unquoted");
+ TL_IS_335 = Str__literal(L"Structures");
+ TL_IS_336 = Str__literal(L"Main::");
+ TL_IS_337 = Str__literal(L"Tangled output generated by inweb: do not edit");
+ TL_IS_338 = Str__literal(L"this programming language does not support @d");
+ TL_IS_339 = Str__literal(L"this programming language does not support multiline @d");
+ TL_IS_340 = Str__literal(L"Namespaces");
+ TL_IS_341 = Str__literal(L"Being internally called, this function mustn't belong to a :: namespace");
+ TL_IS_342 = Str__literal(L"Being externally called, this function must belong to a :: namespace");
+ TL_IS_343 = Str__literal(L"Structures");
+ TL_IS_344 = Str__literal(L"program ended with conditional compilation open");
+ TL_IS_345 = Str__literal(L"conditional compilation too deeply nested");
+ TL_IS_346 = Str__literal(L"found #endif without #ifdef or #ifndef");
TL_IS_347 = Str__literal(L"quartz");
TL_IS_348 = Str__literal(L"quartz");
- TL_IS_349 = Str__literal(L"like this");
- TL_IS_350 = Str__literal(L"most_recent_result");
- TL_IS_351 = Str__literal(L"most_recent_result_p");
- TL_IS_352 = Str__literal(L"Syntax.preform");
- TL_IS_353 = Str__literal(L"Preform Language");
+ TL_IS_349 = Str__literal(L"quartz");
+ TL_IS_350 = Str__literal(L"like this");
+ TL_IS_351 = Str__literal(L"most_recent_result");
+ TL_IS_352 = Str__literal(L"most_recent_result_p");
+ TL_IS_353 = Str__literal(L"Syntax.preform");
TL_IS_354 = Str__literal(L"Preform Language");
- TL_IS_355 = Str__literal(L"weave tree");
- TL_IS_356 = Str__literal(L"document");
- TL_IS_357 = Str__literal(L"head");
- TL_IS_358 = Str__literal(L"body");
- TL_IS_359 = Str__literal(L"tail");
- TL_IS_360 = Str__literal(L"chapter footer");
- TL_IS_361 = Str__literal(L"chapter header");
- TL_IS_362 = Str__literal(L"section footer");
- TL_IS_363 = Str__literal(L"section header");
- TL_IS_364 = Str__literal(L"section purpose");
- TL_IS_365 = Str__literal(L"subheading");
- TL_IS_366 = Str__literal(L"bar");
- TL_IS_367 = Str__literal(L"pagebreak");
- TL_IS_368 = Str__literal(L"paragraph");
- TL_IS_369 = Str__literal(L"endnote");
- TL_IS_370 = Str__literal(L"figure");
- TL_IS_371 = Str__literal(L"material");
- TL_IS_372 = Str__literal(L"embed");
- TL_IS_373 = Str__literal(L"pmac");
- TL_IS_374 = Str__literal(L"vskip");
- TL_IS_375 = Str__literal(L"chapter");
- TL_IS_376 = Str__literal(L"section");
- TL_IS_377 = Str__literal(L"code line");
- TL_IS_378 = Str__literal(L"function usage");
- TL_IS_379 = Str__literal(L"commentary");
- TL_IS_380 = Str__literal(L"carousel slide");
- TL_IS_381 = Str__literal(L"toc");
- TL_IS_382 = Str__literal(L"toc line");
- TL_IS_383 = Str__literal(L"chapter_title_page");
- TL_IS_384 = Str__literal(L"defn");
- TL_IS_385 = Str__literal(L"source_code");
- TL_IS_386 = Str__literal(L"url");
- TL_IS_387 = Str__literal(L"footnote_cue");
- TL_IS_388 = Str__literal(L"footnote");
- TL_IS_389 = Str__literal(L"display line");
- TL_IS_390 = Str__literal(L"function defn");
- TL_IS_391 = Str__literal(L"item");
- TL_IS_392 = Str__literal(L"grammar index");
- TL_IS_393 = Str__literal(L"inline");
- TL_IS_394 = Str__literal(L"locale");
- TL_IS_395 = Str__literal(L"mathematics");
- TL_IS_396 = Str__literal(L"verbatim");
- TL_IS_397 = Str__literal(L"Weave Content");
- TL_IS_398 = Str__literal(L"plain");
- TL_IS_399 = Str__literal(L".txt");
- TL_IS_400 = Str__literal(L"TeX");
- TL_IS_401 = Str__literal(L".tex");
- TL_IS_402 = Str__literal(L"DVI");
+ TL_IS_355 = Str__literal(L"Preform Language");
+ TL_IS_356 = Str__literal(L"weave tree");
+ TL_IS_357 = Str__literal(L"document");
+ TL_IS_358 = Str__literal(L"head");
+ TL_IS_359 = Str__literal(L"body");
+ TL_IS_360 = Str__literal(L"tail");
+ TL_IS_361 = Str__literal(L"chapter footer");
+ TL_IS_362 = Str__literal(L"chapter header");
+ TL_IS_363 = Str__literal(L"section footer");
+ TL_IS_364 = Str__literal(L"section header");
+ TL_IS_365 = Str__literal(L"section purpose");
+ TL_IS_366 = Str__literal(L"subheading");
+ TL_IS_367 = Str__literal(L"bar");
+ TL_IS_368 = Str__literal(L"pagebreak");
+ TL_IS_369 = Str__literal(L"paragraph");
+ TL_IS_370 = Str__literal(L"endnote");
+ TL_IS_371 = Str__literal(L"figure");
+ TL_IS_372 = Str__literal(L"audio");
+ TL_IS_373 = Str__literal(L"material");
+ TL_IS_374 = Str__literal(L"embed");
+ TL_IS_375 = Str__literal(L"pmac");
+ TL_IS_376 = Str__literal(L"vskip");
+ TL_IS_377 = Str__literal(L"chapter");
+ TL_IS_378 = Str__literal(L"section");
+ TL_IS_379 = Str__literal(L"code line");
+ TL_IS_380 = Str__literal(L"function usage");
+ TL_IS_381 = Str__literal(L"commentary");
+ TL_IS_382 = Str__literal(L"carousel slide");
+ TL_IS_383 = Str__literal(L"toc");
+ TL_IS_384 = Str__literal(L"toc line");
+ TL_IS_385 = Str__literal(L"chapter_title_page");
+ TL_IS_386 = Str__literal(L"defn");
+ TL_IS_387 = Str__literal(L"source_code");
+ TL_IS_388 = Str__literal(L"url");
+ TL_IS_389 = Str__literal(L"footnote_cue");
+ TL_IS_390 = Str__literal(L"footnote");
+ TL_IS_391 = Str__literal(L"display line");
+ TL_IS_392 = Str__literal(L"function defn");
+ TL_IS_393 = Str__literal(L"item");
+ TL_IS_394 = Str__literal(L"grammar index");
+ TL_IS_395 = Str__literal(L"inline");
+ TL_IS_396 = Str__literal(L"locale");
+ TL_IS_397 = Str__literal(L"mathematics");
+ TL_IS_398 = Str__literal(L"verbatim");
+ TL_IS_399 = Str__literal(L"Weave Content");
+ TL_IS_400 = Str__literal(L"plain");
+ TL_IS_401 = Str__literal(L".txt");
+ TL_IS_402 = Str__literal(L"TeX");
TL_IS_403 = Str__literal(L".tex");
- TL_IS_404 = Str__literal(L"PDF");
+ TL_IS_404 = Str__literal(L"DVI");
TL_IS_405 = Str__literal(L".tex");
- TL_IS_406 = Str__literal(L"Dunno");
- TL_IS_407 = Str__literal(L"inweb-macros.tex");
- TL_IS_408 = Str__literal(L"weavesection");
- TL_IS_409 = Str__literal(L"weavesections");
- TL_IS_410 = Str__literal(L"weavesectionss");
- TL_IS_411 = Str__literal(L"weavesectionsss");
- TL_IS_412 = Str__literal(L"tweavesection");
- TL_IS_413 = Str__literal(L"tweavesections");
- TL_IS_414 = Str__literal(L"tweavesectionss");
- TL_IS_415 = Str__literal(L"tweavesectionsss");
- TL_IS_416 = Str__literal(L"nsweavesection");
- TL_IS_417 = Str__literal(L"nsweavesections");
- TL_IS_418 = Str__literal(L"not");
- TL_IS_419 = Str__literal(L"leq");
- TL_IS_420 = Str__literal(L"geq");
- TL_IS_421 = Str__literal(L"sim");
- TL_IS_422 = Str__literal(L"hbox");
- TL_IS_423 = Str__literal(L"left");
- TL_IS_424 = Str__literal(L"right");
- TL_IS_425 = Str__literal(L"Rightarrow");
- TL_IS_426 = Str__literal(L"Leftrightarrow");
- TL_IS_427 = Str__literal(L"to");
- TL_IS_428 = Str__literal(L"rightarrow");
- TL_IS_429 = Str__literal(L"longrightarrow");
- TL_IS_430 = Str__literal(L"leftarrow");
- TL_IS_431 = Str__literal(L"longleftarrow");
- TL_IS_432 = Str__literal(L"lbrace");
- TL_IS_433 = Str__literal(L"mid");
- TL_IS_434 = Str__literal(L"rbrace");
- TL_IS_435 = Str__literal(L"cdot");
- TL_IS_436 = Str__literal(L"cdots");
- TL_IS_437 = Str__literal(L"dots");
- TL_IS_438 = Str__literal(L"times");
- TL_IS_439 = Str__literal(L"quad");
- TL_IS_440 = Str__literal(L"qquad");
- TL_IS_441 = Str__literal(L"TeX");
- TL_IS_442 = Str__literal(L"neq");
- TL_IS_443 = Str__literal(L"noteq");
- TL_IS_444 = Str__literal(L"ell");
- TL_IS_445 = Str__literal(L"log");
- TL_IS_446 = Str__literal(L"exp");
- TL_IS_447 = Str__literal(L"sin");
- TL_IS_448 = Str__literal(L"cos");
- TL_IS_449 = Str__literal(L"tan");
- TL_IS_450 = Str__literal(L"top");
- TL_IS_451 = Str__literal(L"Alpha");
- TL_IS_452 = Str__literal(L"Beta");
- TL_IS_453 = Str__literal(L"Gamma");
- TL_IS_454 = Str__literal(L"Delta");
- TL_IS_455 = Str__literal(L"Epsilon");
- TL_IS_456 = Str__literal(L"Zeta");
- TL_IS_457 = Str__literal(L"Eta");
- TL_IS_458 = Str__literal(L"Theta");
- TL_IS_459 = Str__literal(L"Iota");
- TL_IS_460 = Str__literal(L"Kappa");
- TL_IS_461 = Str__literal(L"Lambda");
- TL_IS_462 = Str__literal(L"Mu");
- TL_IS_463 = Str__literal(L"Nu");
- TL_IS_464 = Str__literal(L"Xi");
- TL_IS_465 = Str__literal(L"Omicron");
- TL_IS_466 = Str__literal(L"Pi");
- TL_IS_467 = Str__literal(L"Rho");
- TL_IS_468 = Str__literal(L"Varsigma");
- TL_IS_469 = Str__literal(L"Sigma");
- TL_IS_470 = Str__literal(L"Tau");
- TL_IS_471 = Str__literal(L"Upsilon");
- TL_IS_472 = Str__literal(L"Phi");
- TL_IS_473 = Str__literal(L"Chi");
- TL_IS_474 = Str__literal(L"Psi");
- TL_IS_475 = Str__literal(L"Omega");
- TL_IS_476 = Str__literal(L"alpha");
- TL_IS_477 = Str__literal(L"beta");
- TL_IS_478 = Str__literal(L"gamma");
- TL_IS_479 = Str__literal(L"delta");
- TL_IS_480 = Str__literal(L"epsilon");
- TL_IS_481 = Str__literal(L"zeta");
- TL_IS_482 = Str__literal(L"eta");
- TL_IS_483 = Str__literal(L"theta");
- TL_IS_484 = Str__literal(L"iota");
- TL_IS_485 = Str__literal(L"kappa");
- TL_IS_486 = Str__literal(L"lambda");
- TL_IS_487 = Str__literal(L"mu");
- TL_IS_488 = Str__literal(L"nu");
- TL_IS_489 = Str__literal(L"xi");
- TL_IS_490 = Str__literal(L"omicron");
- TL_IS_491 = Str__literal(L"pi");
- TL_IS_492 = Str__literal(L"rho");
- TL_IS_493 = Str__literal(L"varsigma");
- TL_IS_494 = Str__literal(L"sigma");
- TL_IS_495 = Str__literal(L"tau");
- TL_IS_496 = Str__literal(L"upsilon");
- TL_IS_497 = Str__literal(L"phi");
- TL_IS_498 = Str__literal(L"chi");
- TL_IS_499 = Str__literal(L"psi");
- TL_IS_500 = Str__literal(L"omega");
- TL_IS_501 = Str__literal(L"exists");
- TL_IS_502 = Str__literal(L"in");
- TL_IS_503 = Str__literal(L"forall");
- TL_IS_504 = Str__literal(L"cap");
- TL_IS_505 = Str__literal(L"emptyset");
- TL_IS_506 = Str__literal(L"subseteq");
- TL_IS_507 = Str__literal(L"land");
- TL_IS_508 = Str__literal(L"lor");
- TL_IS_509 = Str__literal(L"lnot");
- TL_IS_510 = Str__literal(L"sum");
- TL_IS_511 = Str__literal(L"prod");
- TL_IS_512 = Str__literal(L"n");
- TL_IS_513 = Str__literal(L"t");
- TL_IS_514 = Str__literal(L"exists");
- TL_IS_515 = Str__literal(L"forall");
- TL_IS_516 = Str__literal(L"HTML");
- TL_IS_517 = Str__literal(L".html");
- TL_IS_518 = Str__literal(L"ePub");
+ TL_IS_406 = Str__literal(L"PDF");
+ TL_IS_407 = Str__literal(L".tex");
+ TL_IS_408 = Str__literal(L"Dunno");
+ TL_IS_409 = Str__literal(L"inweb-macros.tex");
+ TL_IS_410 = Str__literal(L"weavesection");
+ TL_IS_411 = Str__literal(L"weavesections");
+ TL_IS_412 = Str__literal(L"weavesectionss");
+ TL_IS_413 = Str__literal(L"weavesectionsss");
+ TL_IS_414 = Str__literal(L"tweavesection");
+ TL_IS_415 = Str__literal(L"tweavesections");
+ TL_IS_416 = Str__literal(L"tweavesectionss");
+ TL_IS_417 = Str__literal(L"tweavesectionsss");
+ TL_IS_418 = Str__literal(L"nsweavesection");
+ TL_IS_419 = Str__literal(L"nsweavesections");
+ TL_IS_420 = Str__literal(L"not");
+ TL_IS_421 = Str__literal(L"leq");
+ TL_IS_422 = Str__literal(L"geq");
+ TL_IS_423 = Str__literal(L"sim");
+ TL_IS_424 = Str__literal(L"hbox");
+ TL_IS_425 = Str__literal(L"left");
+ TL_IS_426 = Str__literal(L"right");
+ TL_IS_427 = Str__literal(L"Rightarrow");
+ TL_IS_428 = Str__literal(L"Leftrightarrow");
+ TL_IS_429 = Str__literal(L"to");
+ TL_IS_430 = Str__literal(L"rightarrow");
+ TL_IS_431 = Str__literal(L"longrightarrow");
+ TL_IS_432 = Str__literal(L"leftarrow");
+ TL_IS_433 = Str__literal(L"longleftarrow");
+ TL_IS_434 = Str__literal(L"lbrace");
+ TL_IS_435 = Str__literal(L"mid");
+ TL_IS_436 = Str__literal(L"rbrace");
+ TL_IS_437 = Str__literal(L"cdot");
+ TL_IS_438 = Str__literal(L"cdots");
+ TL_IS_439 = Str__literal(L"dots");
+ TL_IS_440 = Str__literal(L"times");
+ TL_IS_441 = Str__literal(L"quad");
+ TL_IS_442 = Str__literal(L"qquad");
+ TL_IS_443 = Str__literal(L"TeX");
+ TL_IS_444 = Str__literal(L"neq");
+ TL_IS_445 = Str__literal(L"noteq");
+ TL_IS_446 = Str__literal(L"ell");
+ TL_IS_447 = Str__literal(L"log");
+ TL_IS_448 = Str__literal(L"exp");
+ TL_IS_449 = Str__literal(L"sin");
+ TL_IS_450 = Str__literal(L"cos");
+ TL_IS_451 = Str__literal(L"tan");
+ TL_IS_452 = Str__literal(L"top");
+ TL_IS_453 = Str__literal(L"Alpha");
+ TL_IS_454 = Str__literal(L"Beta");
+ TL_IS_455 = Str__literal(L"Gamma");
+ TL_IS_456 = Str__literal(L"Delta");
+ TL_IS_457 = Str__literal(L"Epsilon");
+ TL_IS_458 = Str__literal(L"Zeta");
+ TL_IS_459 = Str__literal(L"Eta");
+ TL_IS_460 = Str__literal(L"Theta");
+ TL_IS_461 = Str__literal(L"Iota");
+ TL_IS_462 = Str__literal(L"Kappa");
+ TL_IS_463 = Str__literal(L"Lambda");
+ TL_IS_464 = Str__literal(L"Mu");
+ TL_IS_465 = Str__literal(L"Nu");
+ TL_IS_466 = Str__literal(L"Xi");
+ TL_IS_467 = Str__literal(L"Omicron");
+ TL_IS_468 = Str__literal(L"Pi");
+ TL_IS_469 = Str__literal(L"Rho");
+ TL_IS_470 = Str__literal(L"Varsigma");
+ TL_IS_471 = Str__literal(L"Sigma");
+ TL_IS_472 = Str__literal(L"Tau");
+ TL_IS_473 = Str__literal(L"Upsilon");
+ TL_IS_474 = Str__literal(L"Phi");
+ TL_IS_475 = Str__literal(L"Chi");
+ TL_IS_476 = Str__literal(L"Psi");
+ TL_IS_477 = Str__literal(L"Omega");
+ TL_IS_478 = Str__literal(L"alpha");
+ TL_IS_479 = Str__literal(L"beta");
+ TL_IS_480 = Str__literal(L"gamma");
+ TL_IS_481 = Str__literal(L"delta");
+ TL_IS_482 = Str__literal(L"epsilon");
+ TL_IS_483 = Str__literal(L"zeta");
+ TL_IS_484 = Str__literal(L"eta");
+ TL_IS_485 = Str__literal(L"theta");
+ TL_IS_486 = Str__literal(L"iota");
+ TL_IS_487 = Str__literal(L"kappa");
+ TL_IS_488 = Str__literal(L"lambda");
+ TL_IS_489 = Str__literal(L"mu");
+ TL_IS_490 = Str__literal(L"nu");
+ TL_IS_491 = Str__literal(L"xi");
+ TL_IS_492 = Str__literal(L"omicron");
+ TL_IS_493 = Str__literal(L"pi");
+ TL_IS_494 = Str__literal(L"rho");
+ TL_IS_495 = Str__literal(L"varsigma");
+ TL_IS_496 = Str__literal(L"sigma");
+ TL_IS_497 = Str__literal(L"tau");
+ TL_IS_498 = Str__literal(L"upsilon");
+ TL_IS_499 = Str__literal(L"phi");
+ TL_IS_500 = Str__literal(L"chi");
+ TL_IS_501 = Str__literal(L"psi");
+ TL_IS_502 = Str__literal(L"omega");
+ TL_IS_503 = Str__literal(L"exists");
+ TL_IS_504 = Str__literal(L"in");
+ TL_IS_505 = Str__literal(L"forall");
+ TL_IS_506 = Str__literal(L"cap");
+ TL_IS_507 = Str__literal(L"emptyset");
+ TL_IS_508 = Str__literal(L"subseteq");
+ TL_IS_509 = Str__literal(L"land");
+ TL_IS_510 = Str__literal(L"lor");
+ TL_IS_511 = Str__literal(L"lnot");
+ TL_IS_512 = Str__literal(L"sum");
+ TL_IS_513 = Str__literal(L"prod");
+ TL_IS_514 = Str__literal(L"n");
+ TL_IS_515 = Str__literal(L"t");
+ TL_IS_516 = Str__literal(L"exists");
+ TL_IS_517 = Str__literal(L"forall");
+ TL_IS_518 = Str__literal(L"HTML");
TL_IS_519 = Str__literal(L".html");
- TL_IS_520 = Str__literal(L"Base");
- TL_IS_521 = Str__literal(L"Colours");
- TL_IS_522 = Str__literal(L"");
- TL_IS_523 = Str__literal(L"");
- TL_IS_524 = Str__literal(L"Breadcrumbs");
- TL_IS_525 = Str__literal(L"Title");
- TL_IS_526 = Str__literal(L"Short Title");
- TL_IS_527 = Str__literal(L"Short Title");
- TL_IS_528 = Str__literal(L"index.html");
- TL_IS_529 = Str__literal(L"Figures");
- TL_IS_530 = Str__literal(L"405");
- TL_IS_531 = Str__literal(L"720");
- TL_IS_532 = Str__literal(L"Embedding");
- TL_IS_533 = Str__literal(L"This is not a supported service");
- TL_IS_534 = Str__literal(L"Content ID");
- TL_IS_535 = Str__literal(L"Content Width");
- TL_IS_536 = Str__literal(L"Content Height");
- TL_IS_537 = Str__literal(L"named-paragraph-link");
- TL_IS_538 = Str__literal(L"function-link");
- TL_IS_539 = Str__literal(L"Carousel");
- TL_IS_540 = Str__literal(L"carousel-number");
- TL_IS_541 = Str__literal(L"carousel-caption");
- TL_IS_542 = Str__literal(L"carousel-caption-above");
- TL_IS_543 = Str__literal(L"carousel-number-above");
- TL_IS_544 = Str__literal(L"carousel-caption-below");
- TL_IS_545 = Str__literal(L"carousel-number-below");
- TL_IS_546 = Str__literal(L"external");
- TL_IS_547 = Str__literal(L"internal");
- TL_IS_548 = Str__literal(L"Popups");
- TL_IS_549 = Str__literal(L"Title");
- TL_IS_550 = Str__literal(L"Base");
- TL_IS_551 = Str__literal(L"Base.css");
- TL_IS_552 = Str__literal(L"debugging");
- TL_IS_553 = Str__literal(L".txt");
- TL_IS_554 = Str__literal(L"Colouring");
- TL_IS_555 = Str__literal(L"Coloring");
- TL_IS_556 = Str__literal(L"HTML");
- TL_IS_557 = Str__literal(L".css");
- TL_IS_558 = Str__literal(L".js");
+ TL_IS_520 = Str__literal(L"ePub");
+ TL_IS_521 = Str__literal(L".html");
+ TL_IS_522 = Str__literal(L"Base");
+ TL_IS_523 = Str__literal(L"Colours");
+ TL_IS_524 = Str__literal(L"");
+ TL_IS_525 = Str__literal(L"");
+ TL_IS_526 = Str__literal(L"Breadcrumbs");
+ TL_IS_527 = Str__literal(L"Title");
+ TL_IS_528 = Str__literal(L"Short Title");
+ TL_IS_529 = Str__literal(L"Short Title");
+ TL_IS_530 = Str__literal(L"index.html");
+ TL_IS_531 = Str__literal(L"Figures");
+ TL_IS_532 = Str__literal(L"Audio");
+ TL_IS_533 = Str__literal(L"405");
+ TL_IS_534 = Str__literal(L"720");
+ TL_IS_535 = Str__literal(L"Embedding");
+ TL_IS_536 = Str__literal(L"This is not a supported service");
+ TL_IS_537 = Str__literal(L"Content ID");
+ TL_IS_538 = Str__literal(L"Content Width");
+ TL_IS_539 = Str__literal(L"Content Height");
+ TL_IS_540 = Str__literal(L"named-paragraph-link");
+ TL_IS_541 = Str__literal(L"function-link");
+ TL_IS_542 = Str__literal(L"Carousel");
+ TL_IS_543 = Str__literal(L"carousel-number");
+ TL_IS_544 = Str__literal(L"carousel-caption");
+ TL_IS_545 = Str__literal(L"carousel-caption-above");
+ TL_IS_546 = Str__literal(L"carousel-number-above");
+ TL_IS_547 = Str__literal(L"carousel-caption-below");
+ TL_IS_548 = Str__literal(L"carousel-number-below");
+ TL_IS_549 = Str__literal(L"external");
+ TL_IS_550 = Str__literal(L"internal");
+ TL_IS_551 = Str__literal(L"Popups");
+ TL_IS_552 = Str__literal(L"Title");
+ TL_IS_553 = Str__literal(L"Base");
+ TL_IS_554 = Str__literal(L"Base.css");
+ TL_IS_555 = Str__literal(L"debugging");
+ TL_IS_556 = Str__literal(L".txt");
+ TL_IS_557 = Str__literal(L"Colouring");
+ TL_IS_558 = Str__literal(L"Coloring");
TL_IS_559 = Str__literal(L"HTML");
- TL_IS_560 = Str__literal(L"Colouring");
- TL_IS_561 = Str__literal(L"Coloring");
- TL_IS_562 = Str__literal(L" ");
- TL_IS_563 = Str__literal(L"all");
- TL_IS_564 = Str__literal(L"platform-settings.mk");
- TL_IS_565 = Str__literal(L"intest");
+ TL_IS_560 = Str__literal(L".css");
+ TL_IS_561 = Str__literal(L".js");
+ TL_IS_562 = Str__literal(L"HTML");
+ TL_IS_563 = Str__literal(L"Colouring");
+ TL_IS_564 = Str__literal(L"Coloring");
+ TL_IS_565 = Str__literal(L" ");
TL_IS_566 = Str__literal(L"all");
- TL_IS_567 = Str__literal(L"gitignorescript.txt");
- TL_IS_568 = Str__literal(L"version");
- TL_IS_569 = Str__literal(L"purpose");
- TL_IS_570 = Str__literal(L"var");
- TL_IS_571 = Str__literal(L"\n");
- TL_IS_572 = Str__literal(L"version");
- TL_IS_573 = Str__literal(L"purpose");
- TL_IS_574 = Str__literal(L"var");
- TL_IS_575 = Str__literal(L"Version Number");
- TL_IS_576 = Str__literal(L"Purpose");
- TL_IS_577 = Str__literal(L"Build Date");
+ TL_IS_567 = Str__literal(L"platform-settings.mk");
+ TL_IS_568 = Str__literal(L"intest");
+ TL_IS_569 = Str__literal(L"all");
+ TL_IS_570 = Str__literal(L"gitignorescript.txt");
+ TL_IS_571 = Str__literal(L"version");
+ TL_IS_572 = Str__literal(L"purpose");
+ TL_IS_573 = Str__literal(L"var");
+ TL_IS_574 = Str__literal(L"\n");
+ TL_IS_575 = Str__literal(L"version");
+ TL_IS_576 = Str__literal(L"purpose");
+ TL_IS_577 = Str__literal(L"var");
TL_IS_578 = Str__literal(L"Version Number");
- TL_IS_579 = Str__literal(L"inform6");
- TL_IS_580 = Str__literal(L"header.h");
- TL_IS_581 = Str__literal(L"(manifest).txt");
- TL_IS_582 = Str__literal(L"README.txt");
- TL_IS_583 = Str__literal(L"README.md");
- TL_IS_584 = Str__literal(L"docs");
- TL_IS_585 = Str__literal(L"web");
- TL_IS_586 = Str__literal(L"module");
- TL_IS_587 = Str__literal(L".inweb");
- TL_IS_588 = Str__literal(L".inweb");
- TL_IS_589 = Str__literal(L"docs");
- TL_IS_590 = Str__literal(L"Multiple cross-references might be meant here");
- TL_IS_591 = Str__literal(L"(main)");
+ TL_IS_579 = Str__literal(L"Purpose");
+ TL_IS_580 = Str__literal(L"Build Date");
+ TL_IS_581 = Str__literal(L"Version Number");
+ TL_IS_582 = Str__literal(L"inform6");
+ TL_IS_583 = Str__literal(L"header.h");
+ TL_IS_584 = Str__literal(L"(manifest).txt");
+ TL_IS_585 = Str__literal(L"README.txt");
+ TL_IS_586 = Str__literal(L"README.md");
+ TL_IS_587 = Str__literal(L"docs");
+ TL_IS_588 = Str__literal(L"web");
+ TL_IS_589 = Str__literal(L"module");
+ TL_IS_590 = Str__literal(L".inweb");
+ TL_IS_591 = Str__literal(L".inweb");
+ TL_IS_592 = Str__literal(L"docs");
+ TL_IS_593 = Str__literal(L"Multiple cross-references might be meant here");
+ TL_IS_594 = Str__literal(L"(main)");
}
diff --git a/docs/inweb/1-bsc.html b/docs/inweb/1-bsc.html
index 96439d0..edcbbd7 100644
--- a/docs/inweb/1-bsc.html
+++ b/docs/inweb/1-bsc.html
@@ -98,6 +98,7 @@ see A Brief Guide t
enum weave_endnote_node_MT
enum weave_material_node_MT
enum weave_figure_node_MT
+enum weave_audio_node_MT
enum weave_embed_node_MT
enum weave_pmac_node_MT
enum weave_vskip_node_MT
@@ -181,6 +182,7 @@ see A Brief Guide t
ALLOCATE_INDIVIDUALLY ( weave_endnote_node )
ALLOCATE_INDIVIDUALLY ( weave_material_node )
ALLOCATE_INDIVIDUALLY ( weave_figure_node )
+ALLOCATE_INDIVIDUALLY ( weave_audio_node )
ALLOCATE_INDIVIDUALLY ( weave_embed_node )
ALLOCATE_INDIVIDUALLY ( weave_pmac_node )
ALLOCATE_INDIVIDUALLY ( weave_vskip_node )
diff --git a/docs/inweb/1-pc.html b/docs/inweb/1-pc.html
index 59c9d09..64ac480 100644
--- a/docs/inweb/1-pc.html
+++ b/docs/inweb/1-pc.html
@@ -379,7 +379,7 @@ source:
-void Main::error_in_web ( text_stream * message , source_line * sl ) {
+void Main::error_in_web ( text_stream * message , source_line * sl ) {
if ( sl ) {
Errors::in_text_file_S ( message , &( sl -> source ));
WRITE_TO ( STDERR , "%07d %S\n" , sl -> source . line_count , sl -> text );
diff --git a/docs/inweb/1-ptt.html b/docs/inweb/1-ptt.html
index 7b421b1..c7c3f5a 100644
--- a/docs/inweb/1-ptt.html
+++ b/docs/inweb/1-ptt.html
@@ -284,7 +284,7 @@ from each other then this routine will lock up into an infinite loop.
-filename * Patterns::find_asset ( weave_pattern * pattern , text_stream * dirname ,
+filename * Patterns::find_asset ( weave_pattern * pattern , text_stream * dirname ,
text_stream * leafname ) {
for ( weave_pattern * wp = pattern ; wp ; wp = wp -> based_on ) {
pathname * P = Pathnames::down ( wp -> pattern_location , dirname );
@@ -302,7 +302,7 @@ from each other then this routine will lock up into an infinite loop.
struct text_stream * trans ;
} css_file_transformation ;
-void Patterns::copy_file_into_weave ( web * W , filename * F , pathname * P , text_stream * trans ) {
+void Patterns::copy_file_into_weave ( web * W , filename * F , pathname * P , text_stream * trans ) {
pathname * H = W -> redirect_weaves_to ;
if ( H == NULL ) H = Reader::woven_folder ( W );
if ( P ) H = P ;
diff --git a/docs/inweb/1-ts.html b/docs/inweb/1-ts.html
index c639269..92221c3 100644
--- a/docs/inweb/1-ts.html
+++ b/docs/inweb/1-ts.html
@@ -250,7 +250,7 @@ and details of any cover-sheet to use.
-void Swarm::ensure_plugin ( weave_order * wv , text_stream * name ) {
+void Swarm::ensure_plugin ( weave_order * wv , text_stream * name ) {
weave_plugin * existing ;
LOOP_OVER_LINKED_LIST ( existing , weave_plugin , wv -> plugins )
if ( Str::eq_insensitive ( name , existing -> plugin_name ))
@@ -259,7 +259,7 @@ and details of any cover-sheet to use.
ADD_TO_LINKED_LIST ( wp , weave_plugin , wv -> plugins );
}
-colour_scheme * Swarm::ensure_colour_scheme ( weave_order * wv , text_stream * name ,
+colour_scheme * Swarm::ensure_colour_scheme ( weave_order * wv , text_stream * name ,
text_stream * pre ) {
colour_scheme * existing ;
LOOP_OVER_LINKED_LIST ( existing , colour_scheme , wv -> colour_schemes )
diff --git a/docs/inweb/2-lc.html b/docs/inweb/2-lc.html
index 3b26588..4cb0926 100644
--- a/docs/inweb/2-lc.html
+++ b/docs/inweb/2-lc.html
@@ -201,6 +201,7 @@ some of these fell into disuse in version 2 syntax.
enum PAGEBREAK_CMD
enum GRAMMAR_INDEX_CMD
enum FIGURE_CMD
+enum AUDIO_CMD
enum CAROUSEL_CMD
enum CAROUSEL_ABOVE_CMD
enum CAROUSEL_BELOW_CMD
diff --git a/docs/inweb/2-tp.html b/docs/inweb/2-tp.html
index 43c44d6..5ec32b5 100644
--- a/docs/inweb/2-tp.html
+++ b/docs/inweb/2-tp.html
@@ -497,6 +497,14 @@ division in the current section.
L -> text_operand = Str::duplicate ( mr2 . exp [0]);
comment_mode = TRUE ;
} else if (( current_paragraph ) &&
+ ( Regexp::match (& mr2 , mr . exp [0], L "%(audio (%c+)%)" ))) {
+ Tags::add_by_name ( L -> owning_paragraph , I "Audio" );
+ L -> command_code = AUDIO_CMD ;
+ L -> category = COMMAND_LCAT ;
+ code_lcat_for_body = COMMENT_BODY_LCAT ;
+ L -> text_operand = Str::duplicate ( mr2 . exp [0]);
+ comment_mode = TRUE ;
+ } else if (( current_paragraph ) &&
( Regexp::match (& mr2 , mr . exp [0], L "%(carousel%)" ))) {
Tags::add_by_name ( L -> owning_paragraph , I "Carousels" );
L -> command_code = CAROUSEL_UNCAPTIONED_CMD ;
diff --git a/docs/inweb/3-tc.html b/docs/inweb/3-tc.html
index 18c8382..1047ab2 100644
--- a/docs/inweb/3-tc.html
+++ b/docs/inweb/3-tc.html
@@ -62,7 +62,7 @@ directly.
-void Collater::for_web_and_pattern ( text_stream * OUT , web * W ,
+void Collater::for_web_and_pattern ( text_stream * OUT , web * W ,
weave_pattern * pattern , filename * F , filename * into ) {
Collater::collate ( OUT , W , I "" , F , pattern , NULL , NULL , NULL , into );
}
diff --git a/docs/inweb/3-tw.html b/docs/inweb/3-tw.html
index 8e03cff..748f615 100644
--- a/docs/inweb/3-tw.html
+++ b/docs/inweb/3-tw.html
@@ -376,12 +376,13 @@ at us; but we don't weave them into the output, that's for sure.
if ( L -> command_code == GRAMMAR_INDEX_CMD )
Trees::make_child ( WeaveTree::grammar_index ( tree ), state -> ap );
if ( L -> command_code == FIGURE_CMD ) Weave a figure 2.7.2.4.1 ;
- if ( L -> command_code == EMBED_CMD ) Weave an embed 2.7.2.4.2 ;
- if ( L -> command_code == CAROUSEL_CMD ) Weave a carousel 2.7.2.4.3 ;
- if ( L -> command_code == CAROUSEL_ABOVE_CMD ) Weave a carousel 2.7.2.4.3 ;
- if ( L -> command_code == CAROUSEL_BELOW_CMD ) Weave a carousel 2.7.2.4.3 ;
- if ( L -> command_code == CAROUSEL_UNCAPTIONED_CMD ) Weave a carousel 2.7.2.4.3 ;
- if ( L -> command_code == CAROUSEL_END_CMD ) Weave a carousel end 2.7.2.4.4 ;
+ if ( L -> command_code == AUDIO_CMD ) Weave an audio clip 2.7.2.4.2 ;
+ if ( L -> command_code == EMBED_CMD ) Weave an embed 2.7.2.4.3 ;
+ if ( L -> command_code == CAROUSEL_CMD ) Weave a carousel 2.7.2.4.4 ;
+ if ( L -> command_code == CAROUSEL_ABOVE_CMD ) Weave a carousel 2.7.2.4.4 ;
+ if ( L -> command_code == CAROUSEL_BELOW_CMD ) Weave a carousel 2.7.2.4.4 ;
+ if ( L -> command_code == CAROUSEL_UNCAPTIONED_CMD ) Weave a carousel 2.7.2.4.4 ;
+ if ( L -> command_code == CAROUSEL_END_CMD ) Weave a carousel end 2.7.2.4.5 ;
continue ;
}
@@ -396,7 +397,16 @@ at us; but we don't weave them into the output, that's for sure.
Trees::make_child ( WeaveTree::figure ( tree , figname , w , h ), state -> ap );
This code is used in §2.7.2.4 .
-
+
+
+ int w , h ;
+ text_stream * figname = Weaver::dimensions ( L -> text_operand , & w , & h , L );
+ Trees::make_child ( WeaveTree::audio ( tree , figname , w ), state -> ap );
+
+This code is used in §2.7.2.4 .
+
@@ -405,7 +415,7 @@ at us; but we don't weave them into the output, that's for sure.
Trees::make_child ( WeaveTree::embed ( tree , L -> text_operand , ID , w , h ), state -> ap );
This code is used in §2.7.2.4 .
-
@@ -415,7 +425,7 @@ at us; but we don't weave them into the output, that's for sure.
state -> carousel_node = C ;
This code is used in §2.7.2.4 (four times).
-
@@ -954,7 +964,7 @@ structure usage, or how
-This code is used in §5.8 , §5.11.1 (twice), §5.11.2 , §5.11.3 , §5.11.4 , §5.11.6 .
-This code is used in §5.8 , §5.12.1 (twice), §5.12.2 , §5.12.3 , §5.12.4 , §5.12.6 .
+
@@ -398,7 +417,7 @@ ePub respectively:
Trees::traverse_from ( M , & HTMLFormat::render_visit , ( void *) hrs , L +1);
continue ;
}
- if ( HTMLFormat::interior_material ( M )) Render a run of interior matter 5.11.1.1 ;
+ if ( HTMLFormat::interior_material ( M )) Render a run of interior matter 5.12.1.1 ;
If no para number yet, render a p just to hold this 5.8.1 ;
if ( item_depth > 0 ) {
HTMLFormat::go_to_depth ( hrs , item_depth , 0 );
@@ -412,8 +431,8 @@ ePub respectively:
item_depth = 0 ;
}
-This code is used in §5.11 .
-This code is used in §5.12 .
+
@@ -432,8 +451,8 @@ ePub respectively:
if ( item_depth == 0 ) { HTML_CLOSE ( "p" ); WRITE ( "\n" ); }
continue ;
-This code is used in §5.11.1 .
-This code is used in §5.12.1 .
+
@@ -454,8 +473,8 @@ ePub respectively:
Recurse tne renderer through children nodes 5.9.1 ;
HTML_CLOSE ( "pre" ); WRITE ( "\n" );
-This code is used in §5.11 .
-This code is used in §5.12 .
+
@@ -464,8 +483,8 @@ ePub respectively:
Recurse tne renderer through children nodes 5.9.1 ;
HTML_CLOSE ( "ul" ); WRITE ( "\n" );
-This code is used in §5.11 .
-This code is used in §5.12 .
+
@@ -474,8 +493,8 @@ ePub respectively:
Recurse tne renderer through children nodes 5.9.1 ;
HTML_CLOSE ( "ul" ); WRITE ( "\n" );
-This code is used in §5.11 .
-This code is used in §5.12 .
+
@@ -488,8 +507,8 @@ ePub respectively:
Recurse tne renderer through children nodes 5.9.1 ;
HTML_CLOSE ( "p" ); WRITE ( "\n" );
-This code is used in §5.11 .
-This code is used in §5.12 .
+
@@ -498,13 +517,13 @@ ePub respectively:
Recurse tne renderer through children nodes 5.9.1 ;
HTML_CLOSE ( "pre" ); WRITE ( "\n" );
-This code is used in §5.11 .
-This code is used in §5.12 .
+
-
@@ -531,7 +550,7 @@ that service uses to identify the video/audio in question.
}
-
@@ -560,14 +579,14 @@ that service uses to identify the video/audio in question.
if ( C -> defn == FALSE ) HTML::end_link ( OUT );
-
WRITE ( "\n" );
-
@@ -575,7 +594,7 @@ that service uses to identify the video/audio in question.
LOG ( "It was %d\n" , C -> allocation_id );
-
@@ -584,7 +603,7 @@ that service uses to identify the video/audio in question.
return FALSE ;
-
@@ -596,7 +615,7 @@ that service uses to identify the video/audio in question.
HTML::end_link ( OUT );
-
@@ -620,7 +639,7 @@ that service uses to identify the video/audio in question.
if ( C -> in_code ) HTMLFormat::change_colour ( OUT , -1, hrs -> colours );
-
@@ -655,7 +674,7 @@ that service uses to identify the video/audio in question.
else WRITE ( " style=\"display: none;\"" );
WRITE ( ">\n" );
if ( C -> caption_command == CAROUSEL_ABOVE_CMD ) {
- Place caption here 5.19.1 ;
+ Place caption here 5.20.1 ;
WRITE ( "<div class=\"%S\">%d / %d</div>\n" ,
slide_count_class , hrs -> slide_number , hrs -> slide_of );
} else {
@@ -665,7 +684,7 @@ that service uses to identify the video/audio in question.
WRITE ( "<div class=\"carousel-content\">" );
Recurse tne renderer through children nodes 5.9.1 ;
WRITE ( "</div>\n" );
- if ( C -> caption_command != CAROUSEL_ABOVE_CMD ) Place caption here 5.19.1 ;
+ if ( C -> caption_command != CAROUSEL_ABOVE_CMD ) Place caption here 5.20.1 ;
WRITE ( "</div>\n" );
if ( hrs -> slide_number == hrs -> slide_of ) {
WRITE ( "<a class=\"carousel-prev-button\" " );
@@ -697,15 +716,15 @@ that service uses to identify the video/audio in question.
return FALSE ;
-
if ( C -> caption_command != CAROUSEL_UNCAPTIONED_CMD )
WRITE ( "<div class=\"%S\">%S</div>\n" , caption_class , C -> caption );
-This code is used in §5.19 (twice).
-This code is used in §5.20 (twice).
+
@@ -721,7 +740,7 @@ that service uses to identify the video/audio in question.
return FALSE ;
-
@@ -736,7 +755,7 @@ that service uses to identify the video/audio in question.
HTML::end_link ( OUT );
-
@@ -747,7 +766,7 @@ that service uses to identify the video/audio in question.
WRITE ( " " );
-
@@ -770,7 +789,7 @@ that service uses to identify the video/audio in question.
if ( current_colour >= 0 ) HTMLFormat::change_colour ( OUT , -1, hrs -> colours );
-
@@ -780,7 +799,7 @@ that service uses to identify the video/audio in question.
HTML::end_link ( OUT );
-
@@ -792,7 +811,7 @@ that service uses to identify the video/audio in question.
C -> cue_text , C -> cue_text , C -> cue_text );
-
@@ -809,7 +828,7 @@ that service uses to identify the video/audio in question.
return FALSE ;
-
@@ -822,7 +841,7 @@ that service uses to identify the video/audio in question.
OUTDENT ; HTML_CLOSE ( "blockquote" ); WRITE ( "\n" );
-
@@ -846,7 +865,7 @@ that service uses to identify the video/audio in question.
return FALSE ;
-
@@ -855,7 +874,7 @@ that service uses to identify the video/audio in question.
else WRITE ( " " );
-
@@ -863,7 +882,7 @@ that service uses to identify the video/audio in question.
WRITE ( "%S" , C -> content );
-
@@ -873,7 +892,7 @@ that service uses to identify the video/audio in question.
return FALSE ;
-
@@ -889,7 +908,7 @@ that service uses to identify the video/audio in question.
HTML::end_link ( OUT );
-
@@ -908,7 +927,7 @@ that service uses to identify the video/audio in question.
}
-
@@ -922,13 +941,13 @@ that service uses to identify the video/audio in question.
for ( tree_node * M = N -> child ; M ; M = M -> next )
Trees::traverse_from ( M , & HTMLFormat::render_visit , ( void *) hrs , L +1);
-This code is used in §5.9 , §5.11.2 , §5.11.3 , §5.11.4 , §5.11.5 , §5.11.6 , §5.16 , §5.19 , §5.26 , §5.28 , §5.31 .
+This code is used in §5.9 , §5.12.2 , §5.12.3 , §5.12.4 , §5.12.5 , §5.12.6 , §5.17 , §5.20 , §5.27 , §5.29 , §5.32 .
-int HTMLFormat::interior_material ( tree_node * N ) {
+int HTMLFormat::interior_material ( tree_node * N ) {
if ( N -> type == weave_commentary_node_type ) return TRUE ;
if ( N -> type == weave_url_node_type ) return TRUE ;
if ( N -> type == weave_inline_node_type ) return TRUE ;
@@ -943,7 +962,7 @@ which is itself inside a list entry"; and so on.
-void HTMLFormat::go_to_depth ( HTML_render_state * hrs , int from_depth , int to_depth ) {
+void HTMLFormat::go_to_depth ( HTML_render_state * hrs , int from_depth , int to_depth ) {
text_stream * OUT = hrs -> OUT ;
if ( from_depth == to_depth ) {
HTML_CLOSE ( "li" );
@@ -963,7 +982,7 @@ which is itself inside a list entry"; and so on.
-void HTMLFormat::paragraph_number ( text_stream * OUT , paragraph * P ) {
+void HTMLFormat::paragraph_number ( text_stream * OUT , paragraph * P ) {
TEMPORARY_TEXT ( TEMP )
Colonies::paragraph_anchor ( TEMP , P );
HTML::anchor ( OUT , TEMP );
@@ -978,7 +997,7 @@ which is itself inside a list entry"; and so on.
-void HTMLFormat::change_colour ( text_stream * OUT , int col , colour_scheme * cs ) {
+void HTMLFormat::change_colour ( text_stream * OUT , int col , colour_scheme * cs ) {
if ( col == -1) {
HTML_CLOSE ( "span" );
} else {
@@ -1004,7 +1023,7 @@ which is itself inside a list entry"; and so on.
-void HTMLFormat::escape_text ( text_stream * OUT , text_stream * id ) {
+void HTMLFormat::escape_text ( text_stream * OUT , text_stream * id ) {
for ( int i =0; i < Str::len ( id ); i ++) {
if ( Str::get_at ( id , i ) == '&' ) WRITE ( "&" );
else if ( Str::get_at ( id , i ) == '<' ) WRITE ( "<" );
diff --git a/docs/inweb/5-ptf.html b/docs/inweb/5-ptf.html
index 50ff542..c6498f8 100644
--- a/docs/inweb/5-ptf.html
+++ b/docs/inweb/5-ptf.html
@@ -91,6 +91,7 @@ function togglePopup(material_id) {
else if ( N -> type == weave_paragraph_heading_node_type ) Render paragraph heading 2.9
else if ( N -> type == weave_endnote_node_type ) Render endnote 2.10
else if ( N -> type == weave_figure_node_type ) Render nothing 2.12
+ else if ( N -> type == weave_audio_node_type ) Render nothing 2.12
else if ( N -> type == weave_material_node_type ) Render nothing 2.12
else if ( N -> type == weave_embed_node_type ) Render embed 2.13
else if ( N -> type == weave_pmac_node_type ) Render pmac 2.14
@@ -214,7 +215,7 @@ function togglePopup(material_id) {
;
- This code is used in §2 (10 times).
+This code is used in §2 (11 times).
diff --git a/docs/inweb/5-tf.html b/docs/inweb/5-tf.html
index 08a570c..93f0d26 100644
--- a/docs/inweb/5-tf.html
+++ b/docs/inweb/5-tf.html
@@ -147,6 +147,7 @@ function togglePopup(material_id) {
else if ( N -> type == weave_paragraph_heading_node_type ) Render paragraph heading 2.9
else if ( N -> type == weave_endnote_node_type ) Render endnote 2.10
else if ( N -> type == weave_figure_node_type ) Render figure 2.11
+ else if ( N -> type == weave_audio_node_type ) Render nothing 2.14
else if ( N -> type == weave_material_node_type ) Render material 2.12
else if ( N -> type == weave_embed_node_type ) Render embed 2.15
else if ( N -> type == weave_pmac_node_type ) Render pmac 2.16
@@ -318,7 +319,7 @@ to a given width, into the text at the current position.
;
-This code is used in §2 (6 times).
+This code is used in §2 (7 times).
@@ -1004,7 +1005,7 @@ To do this, the weaver calls the following.
-void TeX::remove_math_mode ( OUTPUT_STREAM , text_stream * text ) {
+void TeX::remove_math_mode ( OUTPUT_STREAM , text_stream * text ) {
TEMPORARY_TEXT ( math_matter );
TeX::remove_math_mode_range ( math_matter , text , 0 , Str::len ( text )-1);
WRITE ( "%S" , math_matter );
diff --git a/docs/inweb/5-wt.html b/docs/inweb/5-wt.html
index c5dd9fa..5ca7214 100644
--- a/docs/inweb/5-wt.html
+++ b/docs/inweb/5-wt.html
@@ -121,6 +121,12 @@ function togglePopup(material_id) {
MEMORY_MANAGEMENT
} weave_figure_node ;
+typedef struct weave_audio_node {
+ struct text_stream * audio_name ;
+ int w ;
+ MEMORY_MANAGEMENT
+} weave_audio_node ;
+
typedef struct weave_material_node {
int material_type ;
int plainly ;
@@ -264,7 +270,7 @@ function togglePopup(material_id) {
MEMORY_MANAGEMENT
} weave_verbatim_node ;
-The structure weave_document_node is accessed in 3/tc, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_head_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_body_node is private to this section. The structure weave_tail_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_chapter_header_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_chapter_footer_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_section_header_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_section_footer_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_section_purpose_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_subheading_node is accessed in 1/pc, 2/lc, 2/tp, 2/pn, 3/ta, 3/tw, 3/tt, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_bar_node is private to this section. The structure weave_pagebreak_node is private to this section. The structure weave_paragraph_heading_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_endnote_node is private to this section. The structure weave_figure_node is accessed in 1/fm, 1/pp, 1/wp, 8/ws, 4/cl, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_material_node is accessed in 5/tf, 5/hf, 5/df and here. The structure weave_embed_node is accessed in 1/fm, 1/pp, 1/wp, 8/ws, 4/cl, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_pmac_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_vskip_node is accessed in 5/tf, 5/df and here. The structure weave_chapter_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_section_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_code_line_node is private to this section. The structure weave_function_usage_node is accessed in 1/wp, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_commentary_node is accessed in 1/pc, 2/lc, 2/tp, 2/pn, 3/ta, 3/tw, 3/tt, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_carousel_slide_node is accessed in 2/tgs, 5/hf, 5/df and here. The structure weave_toc_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_toc_line_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_chapter_title_page_node is private to this section. The structure weave_defn_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_inline_node is private to this section. The structure weave_locale_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_source_code_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_url_node is accessed in 2/trs, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_footnote_cue_node is accessed in 2/tp, 3/tw, 3/twot, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_begin_footnote_text_node is accessed in 2/tp, 3/tw, 3/twot, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_display_line_node is accessed in 1/pc, 2/lc, 2/tp, 2/pn, 3/ta, 3/tw, 3/tt, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_function_defn_node is accessed in 1/wp, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_item_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_grammar_index_node is private to this section. The structure weave_maths_node is accessed in 2/trs, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_verbatim_node is accessed in 2/trs, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here.
+The structure weave_document_node is accessed in 3/tc, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_head_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_body_node is private to this section. The structure weave_tail_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_chapter_header_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_chapter_footer_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_section_header_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_section_footer_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_section_purpose_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_subheading_node is accessed in 1/pc, 2/lc, 2/tp, 2/pn, 3/ta, 3/tw, 3/tt, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_bar_node is private to this section. The structure weave_pagebreak_node is private to this section. The structure weave_paragraph_heading_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_endnote_node is private to this section. The structure weave_figure_node is accessed in 1/fm, 1/pp, 1/wp, 8/ws, 4/cl, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_audio_node is accessed in 8/ws, 5/tf, 5/hf, 5/df and here. The structure weave_material_node is accessed in 5/tf, 5/hf, 5/df and here. The structure weave_embed_node is accessed in 1/fm, 1/pp, 1/wp, 8/ws, 4/cl, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_pmac_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_vskip_node is accessed in 5/tf, 5/df and here. The structure weave_chapter_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_section_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_code_line_node is private to this section. The structure weave_function_usage_node is accessed in 1/wp, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_commentary_node is accessed in 1/pc, 2/lc, 2/tp, 2/pn, 3/ta, 3/tw, 3/tt, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_carousel_slide_node is accessed in 2/tgs, 5/hf, 5/df and here. The structure weave_toc_node is accessed in 5/ptf, 5/tf, 5/df and here. The structure weave_toc_line_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_chapter_title_page_node is private to this section. The structure weave_defn_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_inline_node is private to this section. The structure weave_locale_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_source_code_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_url_node is accessed in 2/trs, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_footnote_cue_node is accessed in 2/tp, 3/tw, 3/twot, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_begin_footnote_text_node is accessed in 2/tp, 3/tw, 3/twot, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_display_line_node is accessed in 1/pc, 2/lc, 2/tp, 2/pn, 3/ta, 3/tw, 3/tt, 4/as, 4/cl, 4/is, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_function_defn_node is accessed in 1/wp, 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_item_node is accessed in 5/ptf, 5/tf, 5/hf, 5/df and here. The structure weave_grammar_index_node is private to this section. The structure weave_maths_node is accessed in 2/trs, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here. The structure weave_verbatim_node is accessed in 2/trs, 3/twot, 5/fm, 5/ptf, 5/tf, 5/hf, 5/df, 6/rw and here.
@@ -285,6 +291,7 @@ function togglePopup(material_id) {
tree_node_type * weave_paragraph_heading_node_type = NULL ;
tree_node_type * weave_endnote_node_type = NULL ;
tree_node_type * weave_figure_node_type = NULL ;
+tree_node_type * weave_audio_node_type = NULL ;
tree_node_type * weave_material_node_type = NULL ;
tree_node_type * weave_embed_node_type = NULL ;
tree_node_type * weave_pmac_node_type = NULL ;
@@ -345,6 +352,8 @@ function togglePopup(material_id) {
Trees::new_node_type ( I "endnote" , weave_endnote_node_MT , NULL );
weave_figure_node_type =
Trees::new_node_type ( I "figure" , weave_figure_node_MT , NULL );
+ weave_audio_node_type =
+ Trees::new_node_type ( I "audio" , weave_audio_node_MT , NULL );
weave_material_node_type =
Trees::new_node_type ( I "material" , weave_material_node_MT , NULL );
weave_embed_node_type =
@@ -522,7 +531,16 @@ function togglePopup(material_id) {
STORE_POINTER_weave_figure_node ( C ));
}
-tree_node * WeaveTree::material ( heterogeneous_tree * tree , int material_type , int plainly ,
+tree_node * WeaveTree::audio ( heterogeneous_tree * tree ,
+ text_stream * audio_name , int w ) {
+ weave_audio_node * C = CREATE ( weave_audio_node );
+ C -> audio_name = Str::duplicate ( audio_name );
+ C -> w = w ;
+ return Trees::new_node ( tree , weave_audio_node_type ,
+ STORE_POINTER_weave_audio_node ( C ));
+}
+
+tree_node * WeaveTree::material ( heterogeneous_tree * tree , int material_type , int plainly ,
programming_language * styling ) {
weave_material_node * C = CREATE ( weave_material_node );
C -> material_type = material_type ;
@@ -531,7 +549,7 @@ function togglePopup(material_id) {
return Trees::new_node ( tree , weave_material_node_type , STORE_POINTER_weave_material_node ( C ));
}
-tree_node * WeaveTree::embed ( heterogeneous_tree * tree ,
+tree_node * WeaveTree::embed ( heterogeneous_tree * tree ,
text_stream * service , text_stream * ID , int w , int h ) {
weave_embed_node * C = CREATE ( weave_embed_node );
C -> service = Str::duplicate ( service );
@@ -547,7 +565,7 @@ thing is to render some sort of equals sign after it, if so.
-tree_node * WeaveTree::pmac ( heterogeneous_tree * tree , para_macro * pmac , int defn ) {
+tree_node * WeaveTree::pmac ( heterogeneous_tree * tree , para_macro * pmac , int defn ) {
weave_pmac_node * C = CREATE ( weave_pmac_node );
C -> pmac = pmac ;
C -> defn = defn ;
@@ -560,24 +578,24 @@ information.
-tree_node * WeaveTree::vskip ( heterogeneous_tree * tree , int in_comment ) {
+tree_node * WeaveTree::vskip ( heterogeneous_tree * tree , int in_comment ) {
weave_vskip_node * C = CREATE ( weave_vskip_node );
C -> in_comment = in_comment ;
return Trees::new_node ( tree , weave_vskip_node_type , STORE_POINTER_weave_vskip_node ( C ));
}
-tree_node * WeaveTree::section ( heterogeneous_tree * tree , section * sect ) {
+tree_node * WeaveTree::section ( heterogeneous_tree * tree , section * sect ) {
weave_section_node * C = CREATE ( weave_section_node );
C -> sect = sect ;
return Trees::new_node ( tree , weave_section_node_type , STORE_POINTER_weave_section_node ( C ));
}
-tree_node * WeaveTree::code_line ( heterogeneous_tree * tree ) {
+tree_node * WeaveTree::code_line ( heterogeneous_tree * tree ) {
weave_code_line_node * C = CREATE ( weave_code_line_node );
return Trees::new_node ( tree , weave_code_line_node_type , STORE_POINTER_weave_code_line_node ( C ));
}
-tree_node * WeaveTree::function_usage ( heterogeneous_tree * tree ,
+tree_node * WeaveTree::function_usage ( heterogeneous_tree * tree ,
text_stream * url , language_function * fn ) {
weave_function_usage_node * C = CREATE ( weave_function_usage_node );
C -> url = Str::duplicate ( url );
@@ -585,27 +603,27 @@ information.
return Trees::new_node ( tree , weave_function_usage_node_type , STORE_POINTER_weave_function_usage_node ( C ));
}
-tree_node * WeaveTree::commentary ( heterogeneous_tree * tree , text_stream * text , int in_code ) {
+tree_node * WeaveTree::commentary ( heterogeneous_tree * tree , text_stream * text , int in_code ) {
weave_commentary_node * C = CREATE ( weave_commentary_node );
C -> text = Str::duplicate ( text );
C -> in_code = in_code ;
return Trees::new_node ( tree , weave_commentary_node_type , STORE_POINTER_weave_commentary_node ( C ));
}
-tree_node * WeaveTree::carousel_slide ( heterogeneous_tree * tree , text_stream * caption , int c ) {
+tree_node * WeaveTree::carousel_slide ( heterogeneous_tree * tree , text_stream * caption , int c ) {
weave_carousel_slide_node * C = CREATE ( weave_carousel_slide_node );
C -> caption = Str::duplicate ( caption );
C -> caption_command = c ;
return Trees::new_node ( tree , weave_carousel_slide_node_type , STORE_POINTER_weave_carousel_slide_node ( C ));
}
-tree_node * WeaveTree::table_of_contents ( heterogeneous_tree * tree , text_stream * text1 ) {
+tree_node * WeaveTree::table_of_contents ( heterogeneous_tree * tree , text_stream * text1 ) {
weave_toc_node * C = CREATE ( weave_toc_node );
C -> text1 = Str::duplicate ( text1 );
return Trees::new_node ( tree , weave_toc_node_type , STORE_POINTER_weave_toc_node ( C ));
}
-tree_node * WeaveTree::contents_line ( heterogeneous_tree * tree ,
+tree_node * WeaveTree::contents_line ( heterogeneous_tree * tree ,
text_stream * text1 , text_stream * text2 , paragraph * P ) {
weave_toc_line_node * C = CREATE ( weave_toc_line_node );
C -> text1 = Str::duplicate ( text1 );
@@ -614,12 +632,12 @@ information.
return Trees::new_node ( tree , weave_toc_line_node_type , STORE_POINTER_weave_toc_line_node ( C ));
}
-tree_node * WeaveTree::weave_chapter_title_page_node ( heterogeneous_tree * tree ) {
+tree_node * WeaveTree::weave_chapter_title_page_node ( heterogeneous_tree * tree ) {
weave_chapter_title_page_node * C = CREATE ( weave_chapter_title_page_node );
return Trees::new_node ( tree , weave_chapter_title_page_node_type , STORE_POINTER_weave_chapter_title_page_node ( C ));
}
-tree_node * WeaveTree::weave_defn_node ( heterogeneous_tree * tree , text_stream * keyword ) {
+tree_node * WeaveTree::weave_defn_node ( heterogeneous_tree * tree , text_stream * keyword ) {
weave_defn_node * C = CREATE ( weave_defn_node );
C -> keyword = Str::duplicate ( keyword );
return Trees::new_node ( tree , weave_defn_node_type , STORE_POINTER_weave_defn_node ( C ));
@@ -630,7 +648,7 @@ been syntax-coloured.
-tree_node * WeaveTree::source_code ( heterogeneous_tree * tree ,
+tree_node * WeaveTree::source_code ( heterogeneous_tree * tree ,
text_stream * matter , text_stream * colouring ) {
if ( Str::len ( colouring ) != Str::len ( matter )) internal_error ( "bad source segment" );
for ( int i =0; i < Str::len ( colouring ); i ++)
@@ -641,7 +659,7 @@ been syntax-coloured.
return Trees::new_node ( tree , weave_source_code_node_type , STORE_POINTER_weave_source_code_node ( C ));
}
-tree_node * WeaveTree::url ( heterogeneous_tree * tree , text_stream * url ,
+tree_node * WeaveTree::url ( heterogeneous_tree * tree , text_stream * url ,
text_stream * content , int external ) {
weave_url_node * C = CREATE ( weave_url_node );
C -> url = Str::duplicate ( url );
@@ -650,13 +668,13 @@ been syntax-coloured.
return Trees::new_node ( tree , weave_url_node_type , STORE_POINTER_weave_url_node ( C ));
}
-tree_node * WeaveTree::footnote_cue ( heterogeneous_tree * tree , text_stream * cue ) {
+tree_node * WeaveTree::footnote_cue ( heterogeneous_tree * tree , text_stream * cue ) {
weave_footnote_cue_node * C = CREATE ( weave_footnote_cue_node );
C -> cue_text = Str::duplicate ( cue );
return Trees::new_node ( tree , weave_footnote_cue_node_type , STORE_POINTER_weave_footnote_cue_node ( C ));
}
-tree_node * WeaveTree::footnote ( heterogeneous_tree * tree , text_stream * cue ) {
+tree_node * WeaveTree::footnote ( heterogeneous_tree * tree , text_stream * cue ) {
weave_begin_footnote_text_node * C = CREATE ( weave_begin_footnote_text_node );
C -> cue_text = Str::duplicate ( cue );
return Trees::new_node ( tree , weave_begin_footnote_text_node_type , STORE_POINTER_weave_begin_footnote_text_node ( C ));
@@ -667,7 +685,7 @@ definition has just occurred.
-tree_node * WeaveTree::function_defn ( heterogeneous_tree * tree , language_function * fn ) {
+tree_node * WeaveTree::function_defn ( heterogeneous_tree * tree , language_function * fn ) {
weave_function_defn_node * C = CREATE ( weave_function_defn_node );
C -> fn = fn ;
return Trees::new_node ( tree , weave_function_defn_node_type , STORE_POINTER_weave_function_defn_node ( C ));
@@ -678,7 +696,7 @@ a convenience for Inform 7 code commentary.
-tree_node * WeaveTree::display_line ( heterogeneous_tree * tree , text_stream * text ) {
+tree_node * WeaveTree::display_line ( heterogeneous_tree * tree , text_stream * text ) {
weave_display_line_node * C = CREATE ( weave_display_line_node );
C -> text = Str::duplicate ( text );
return Trees::new_node ( tree , weave_display_line_node_type , STORE_POINTER_weave_display_line_node ( C ));
@@ -699,49 +717,49 @@ indentation but not weave any bracketed marker.
(b) This was produced by equal to 1, equal to .
-tree_node * WeaveTree::weave_item_node ( heterogeneous_tree * tree , int depth , text_stream * label ) {
+tree_node * WeaveTree::weave_item_node ( heterogeneous_tree * tree , int depth , text_stream * label ) {
weave_item_node * C = CREATE ( weave_item_node );
C -> depth = depth ;
C -> label = Str::duplicate ( label );
return Trees::new_node ( tree , weave_item_node_type , STORE_POINTER_weave_item_node ( C ));
}
-tree_node * WeaveTree::grammar_index ( heterogeneous_tree * tree ) {
+tree_node * WeaveTree::grammar_index ( heterogeneous_tree * tree ) {
weave_grammar_index_node * C = CREATE ( weave_grammar_index_node );
return Trees::new_node ( tree , weave_grammar_index_node_type , STORE_POINTER_weave_grammar_index_node ( C ));
}
-tree_node * WeaveTree::inline ( heterogeneous_tree * tree ) {
+tree_node * WeaveTree::inline ( heterogeneous_tree * tree ) {
weave_inline_node * C = CREATE ( weave_inline_node );
return Trees::new_node ( tree , weave_inline_node_type , STORE_POINTER_weave_inline_node ( C ));
}
-tree_node * WeaveTree::locale ( heterogeneous_tree * tree , paragraph * par1 , paragraph * par2 ) {
+tree_node * WeaveTree::locale ( heterogeneous_tree * tree , paragraph * par1 , paragraph * par2 ) {
weave_locale_node * C = CREATE ( weave_locale_node );
C -> par1 = par1 ;
C -> par2 = par2 ;
return Trees::new_node ( tree , weave_locale_node_type , STORE_POINTER_weave_locale_node ( C ));
}
-tree_node * WeaveTree::mathematics ( heterogeneous_tree * tree , text_stream * content , int displayed ) {
+tree_node * WeaveTree::mathematics ( heterogeneous_tree * tree , text_stream * content , int displayed ) {
weave_maths_node * C = CREATE ( weave_maths_node );
C -> content = Str::duplicate ( content );
C -> displayed = displayed ;
return Trees::new_node ( tree , weave_maths_node_type , STORE_POINTER_weave_maths_node ( C ));
}
-void WeaveTree::show ( text_stream * OUT , heterogeneous_tree * T ) {
+void WeaveTree::show ( text_stream * OUT , heterogeneous_tree * T ) {
WRITE ( "%S\n" , T -> type -> name );
INDENT ;
Debugging::render ( NULL , OUT , T );
OUTDENT ;
}
-void WeaveTree::prune ( heterogeneous_tree * T ) {
+void WeaveTree::prune ( heterogeneous_tree * T ) {
Trees::prune_tree ( T , & WeaveTree::prune_visit , NULL );
}
-int WeaveTree::prune_visit ( tree_node * N , void * state ) {
+int WeaveTree::prune_visit ( tree_node * N , void * state ) {
if (( N -> type -> required_MT == weave_material_node_MT ) && ( N -> child == NULL ))
return TRUE ;
if (( N -> type -> required_MT == weave_vskip_node_MT ) && ( N -> next == NULL ))
diff --git a/docs/inweb/6-cln.html b/docs/inweb/6-cln.html
index 0e566ba..40bc425 100644
--- a/docs/inweb/6-cln.html
+++ b/docs/inweb/6-cln.html
@@ -596,7 +596,7 @@ the main one, and suffixed by
-
@@ -800,7 +815,7 @@ this case was