Added Preform-weaving features
This commit is contained in:
parent
7ebe257e4f
commit
20ba4fe7dd
26 changed files with 1176 additions and 978 deletions
|
@ -350,7 +350,7 @@ division in the current section.
|
|||
(Regexp::match(&mr2, mr.exp[0], L"%((%c*?) *text as (%c+)%)"))) {
|
||||
@<Make plainer@>;
|
||||
code_lcat_for_body = TEXT_EXTRACT_LCAT;
|
||||
code_pl_for_body = Languages::find_by_name(mr2.exp[1], W);
|
||||
code_pl_for_body = Languages::find_by_name(mr2.exp[1], W, TRUE);
|
||||
extract_mode = TRUE;
|
||||
} else if ((current_paragraph) &&
|
||||
(Regexp::match(&mr2, mr.exp[0], L"%((%c*?) *text from (%c+) as code%)"))) {
|
||||
|
@ -360,7 +360,7 @@ division in the current section.
|
|||
} else if ((current_paragraph) &&
|
||||
(Regexp::match(&mr2, mr.exp[0], L"%((%c*?) *text from (%c+) as (%c+)%)"))) {
|
||||
@<Make plainer@>;
|
||||
code_pl_for_body = Languages::find_by_name(mr2.exp[2], W);
|
||||
code_pl_for_body = Languages::find_by_name(mr2.exp[2], W, TRUE);
|
||||
@<Spool from file@>;
|
||||
} else if ((current_paragraph) &&
|
||||
(Regexp::match(&mr2, mr.exp[0], L"%((%c*?) *text from (%c+)%)"))) {
|
||||
|
|
|
@ -149,7 +149,7 @@ web *Reader::load_web(pathname *P, filename *alt_F, module_search *I,
|
|||
W->web_extent = 0; W->no_paragraphs = 0;
|
||||
text_stream *language_name = Bibliographic::get_datum(W->md, I"Language");
|
||||
if (Str::len(language_name) > 0)
|
||||
W->main_language = Languages::find_by_name(language_name, W);
|
||||
W->main_language = Languages::find_by_name(language_name, W, TRUE);
|
||||
main_target = Reader::add_tangle_target(W, W->main_language);
|
||||
|
||||
@<Initialise the rest of the chapter structure@> =
|
||||
|
@ -158,7 +158,7 @@ web *Reader::load_web(pathname *P, filename *alt_F, module_search *I,
|
|||
C->sections = NEW_LINKED_LIST(section);
|
||||
C->ch_language = W->main_language;
|
||||
if (Str::len(Cm->ch_language_name) > 0)
|
||||
C->ch_language = Languages::find_by_name(Cm->ch_language_name, W);
|
||||
C->ch_language = Languages::find_by_name(Cm->ch_language_name, W, TRUE);
|
||||
|
||||
@<Initialise the rest of the section structure@> =
|
||||
S->sect_extent = 0;
|
||||
|
@ -175,10 +175,10 @@ web *Reader::load_web(pathname *P, filename *alt_F, module_search *I,
|
|||
S->owning_web = W;
|
||||
S->sect_language = C->ch_language;
|
||||
if (Str::len(S->md->sect_language_name) > 0)
|
||||
S->sect_language = Languages::find_by_name(S->md->sect_language_name, W);
|
||||
S->sect_language = Languages::find_by_name(S->md->sect_language_name, W, TRUE);
|
||||
if (Str::len(S->md->sect_independent_language) > 0) {
|
||||
programming_language *pl =
|
||||
Languages::find_by_name(S->md->sect_independent_language, W);
|
||||
Languages::find_by_name(S->md->sect_independent_language, W, TRUE);
|
||||
S->sect_language = pl;
|
||||
S->sect_target = Reader::add_tangle_target(W, pl);
|
||||
} else {
|
||||
|
|
|
@ -164,8 +164,10 @@ and then some C code to deal with a match. The code is subjected to analysis
|
|||
just as any other code would be.
|
||||
|
||||
@<Perform analysis on productions in a Preform grammar@> =
|
||||
Analyser::analyse_as_code(W, L, L->text_operand2, ANY_USAGE, 0);
|
||||
Analyser::analyse_as_code(W, L, L->text_operand, PREFORM_IN_CODE_USAGE, PREFORM_IN_GRAMMAR_USAGE);
|
||||
Analyser::analyse_as_code(W, L, L->text_operand2,
|
||||
ANY_USAGE, 0);
|
||||
Analyser::analyse_as_code(W, L, L->text_operand,
|
||||
PREFORM_IN_CODE_USAGE, PREFORM_IN_GRAMMAR_USAGE);
|
||||
|
||||
@h Identifier searching.
|
||||
Here's what we actually do, then. We take the code fragment |text|, drawn
|
||||
|
|
|
@ -474,6 +474,12 @@ and macro usage is rendered differently.
|
|||
programming_language *pl = L->colour_as;
|
||||
if (pl == NULL) pl = S->sect_language;
|
||||
if (will_be != CODE_MATERIAL) pl = NULL;
|
||||
theme_tag *T = Tags::find_by_name(I"Preform", FALSE);
|
||||
if ((T) && (Tags::tagged_with(L->owning_paragraph, T))) {
|
||||
programming_language *prepl =
|
||||
Languages::find_by_name(I"Preform", wv->weave_web, FALSE);
|
||||
if (prepl) pl = prepl;
|
||||
}
|
||||
Weaver::change_material(tree, state, will_be, L->plainer, pl);
|
||||
state->line_break_pending = FALSE;
|
||||
}
|
||||
|
@ -560,6 +566,9 @@ structure usage, or how |CWEB|-style code substitutions were made.
|
|||
void Weaver::show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
|
||||
weave_order *wv, tree_node *ap, paragraph *P) {
|
||||
tree_node *body = ap;
|
||||
theme_tag *T = Tags::find_by_name(I"Preform", FALSE);
|
||||
if ((T) && (Tags::tagged_with(P, T)))
|
||||
@<Show endnote on use of Preform@>;
|
||||
Tags::show_endnote_on_ifdefs(tree, ap, P);
|
||||
if (P->defines_macro)
|
||||
@<Show endnote on where paragraph macro is used@>;
|
||||
|
@ -571,6 +580,20 @@ void Weaver::show_endnotes_on_previous_paragraph(heterogeneous_tree *tree,
|
|||
@<Show endnote on where this language type is accessed@>;
|
||||
}
|
||||
|
||||
@<Show endnote on use of Preform@> =
|
||||
tree_node *E = WeaveTree::endnote(tree);
|
||||
Trees::make_child(E, body); ap = E;
|
||||
TextWeaver::commentary_text(tree, ap, I"This is ");
|
||||
TEMPORARY_TEXT(url);
|
||||
int ext = FALSE;
|
||||
if (Colonies::resolve_reference_in_weave(url, NULL, wv->weave_to, I"words: Preform",
|
||||
wv->weave_web->md, NULL, &ext))
|
||||
Trees::make_child(WeaveTree::url(tree, url, I"Preform grammar", ext), ap);
|
||||
else
|
||||
TextWeaver::commentary_text(tree, ap, I"Preform grammar");
|
||||
DISCARD_TEXT(url);
|
||||
TextWeaver::commentary_text(tree, ap, I", not regular C code.");
|
||||
|
||||
@<Show endnote on where paragraph macro is used@> =
|
||||
tree_node *E = WeaveTree::endnote(tree);
|
||||
Trees::make_child(E, body); ap = E;
|
||||
|
|
|
@ -214,11 +214,11 @@ then the text on the left goes into |text_operand| and the right into
|
|||
|text_operand2|, with the arrow itself (and white space around it) cut out.
|
||||
|
||||
@<Parse the subsequent lines as Preform grammar@> =
|
||||
Tags::add_by_name(L->owning_paragraph, I"Preform");
|
||||
source_line *AL;
|
||||
for (AL = L; (AL) && (AL->category == CODE_BODY_LCAT); AL = AL->next_line) {
|
||||
if (Regexp::string_is_white_space(AL->text)) break;
|
||||
AL->category = PREFORM_GRAMMAR_LCAT;
|
||||
|
||||
match_results mr = Regexp::create_mr();
|
||||
if (Regexp::match(&mr, AL->text, L"(%c+) ==> (%c*)")) {
|
||||
AL->text_operand = Str::duplicate(mr.exp[0]);
|
||||
|
@ -841,7 +841,8 @@ assume.)
|
|||
@h Weaving.
|
||||
The following isn't a method, but is called by the weaver directly. It adds
|
||||
additional endnotes to the woven form of a paragraph which includes Preform
|
||||
nonterminal definitions:
|
||||
nonterminal definitions; it is meaningful only in the TeX format, and should
|
||||
probably be dropped.
|
||||
|
||||
=
|
||||
void InCSupport::weave_grammar_index(OUTPUT_STREAM) {
|
||||
|
|
|
@ -374,6 +374,12 @@ int LanguageMethods::syntax_colour(programming_language *pl,
|
|||
int rv = FALSE;
|
||||
programming_language *colour_as = pl;
|
||||
if (L->category == TEXT_EXTRACT_LCAT) colour_as = L->colour_as;
|
||||
theme_tag *T = Tags::find_by_name(I"Preform", FALSE);
|
||||
if ((T) && (Tags::tagged_with(L->owning_paragraph, T))) {
|
||||
programming_language *prepl = Languages::find_by_name(I"Preform", wv->weave_web, FALSE);
|
||||
if ((L->category == PREFORM_LCAT) || (L->category == PREFORM_GRAMMAR_LCAT))
|
||||
if (prepl) colour_as = prepl;
|
||||
}
|
||||
if (colour_as)
|
||||
IMETHOD_CALL(rv, colour_as, SYNTAX_COLOUR_WEA_MTID, wv, L,
|
||||
matter, colouring);
|
||||
|
|
|
@ -7,7 +7,8 @@ definitions from files.
|
|||
Programming languages are identified by name: for example, |C++| or |Perl|.
|
||||
|
||||
@ =
|
||||
programming_language *Languages::find_by_name(text_stream *lname, web *W) {
|
||||
programming_language *Languages::find_by_name(text_stream *lname, web *W,
|
||||
int error_if_not_found) {
|
||||
programming_language *pl;
|
||||
@<If this is the name of a language already known, return that@>;
|
||||
@<Read the language definition file with this name@>;
|
||||
|
@ -30,9 +31,12 @@ programming_language *Languages::find_by_name(text_stream *lname, web *W) {
|
|||
}
|
||||
pathname *P = Languages::default_directory();
|
||||
@<Try P@>;
|
||||
if (F == NULL)
|
||||
Errors::fatal_with_text(
|
||||
"unsupported programming language '%S'", lname);
|
||||
if (F == NULL) {
|
||||
if (error_if_not_found)
|
||||
Errors::fatal_with_text(
|
||||
"unsupported programming language '%S'", lname);
|
||||
return NULL;
|
||||
}
|
||||
pl = Languages::read_definition(F);
|
||||
|
||||
@<Try P@> =
|
||||
|
@ -48,7 +52,7 @@ programming_language *Languages::find_by_name(text_stream *lname, web *W) {
|
|||
|
||||
=
|
||||
programming_language *Languages::default(web *W) {
|
||||
return Languages::find_by_name(I"C", W);
|
||||
return Languages::find_by_name(I"C", W, TRUE);
|
||||
}
|
||||
|
||||
void Languages::show(OUTPUT_STREAM) {
|
||||
|
|
|
@ -18,3 +18,4 @@ Inweb: The markup language for the Inweb literate programming system
|
|||
None: For programs in languages not yet supported by Inweb
|
||||
Perl: The scripting language Perl 5
|
||||
Plain Text: For text files which are not programs
|
||||
Preform: The internal Inform syntax analysis grammar language
|
||||
|
|
20
Languages/Preform.ildf
Normal file
20
Languages/Preform.ildf
Normal file
|
@ -0,0 +1,20 @@
|
|||
Name: "Preform"
|
||||
Details: "The internal Inform syntax analysis grammar language"
|
||||
Extension: ".preform"
|
||||
|
||||
colouring {
|
||||
matches of /\S+/ {
|
||||
=> !constant
|
||||
"::=" => !reserved
|
||||
"|" => !reserved
|
||||
"==>" => !reserved
|
||||
"(" => !reserved
|
||||
")" => !reserved
|
||||
"..." => !reserved
|
||||
"......" => !reserved
|
||||
matching /<\S+>/ => !function
|
||||
}
|
||||
brackets in /.*?==>(.*)/ {
|
||||
=> !plain
|
||||
}
|
||||
}
|
38
Patterns/HTML/Colouring/Preform-Colours.css
Normal file
38
Patterns/HTML/Colouring/Preform-Colours.css
Normal file
|
@ -0,0 +1,38 @@
|
|||
/* The following correspond to the Inweb colours !definition, ..., !comment: */
|
||||
|
||||
span.definition-syntax { color: #444444; }
|
||||
span.function-syntax { color: #C00000; }
|
||||
span.identifier-syntax { color: #4040ff; }
|
||||
span.element-syntax { color: #40407f; }
|
||||
span.reserved-syntax { color: #600000; }
|
||||
span.string-syntax { color: #408040; }
|
||||
span.character-syntax { color: #204020; }
|
||||
span.constant-syntax { color: #804020; }
|
||||
span.plain-syntax { color: #000000; }
|
||||
span.extract-syntax { color: #444444; }
|
||||
span.comment-syntax { color: #404040; font-style:italic; }
|
||||
|
||||
/* This is used for the "define" or "enum" keyword on Inweb-defined constants: */
|
||||
|
||||
span.definition-keyword { color:#801010; font-weight:bold; }
|
||||
|
||||
/* These are for the angle-bracketed paragraph names: */
|
||||
|
||||
span.named-paragraph, span.named-paragraph-defn { color: #000000; font-size: 90%; }
|
||||
span.named-paragraph-number { color: #000000; font-size: 70%; font-style:italic; }
|
||||
span.named-paragraph-container {
|
||||
background: #ececf8; border: 1px solid #888888;
|
||||
}
|
||||
a.named-paragraph-link:link, a.named-paragraph-link:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
a.named-paragraph-link:active, a.named-paragraph-link:hover {
|
||||
background: #c8c8e8;
|
||||
}
|
||||
|
||||
/* This is the box into which multi-line stretches of code are put: */
|
||||
|
||||
pre.displayed-code {
|
||||
background: #e8f8e8;
|
||||
border: 1px solid #cccccc;
|
||||
}
|
1923
Tangled/inweb.c
1923
Tangled/inweb.c
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -139,7 +139,7 @@ the call comes from Program Control).
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">MEMORY_MANAGEMENT</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure weave_order is accessed in 1/cnf, 1/ptt, 3/tc, 3/tw, 3/twot, 4/is, 5/fm, 5/tf, 5/hf, 5/tu, 6/cln and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure weave_order is accessed in 1/cnf, 1/ptt, 3/tc, 3/tw, 3/twot, 4/lm, 4/is, 5/fm, 5/tf, 5/hf, 5/tu, 6/cln and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2"></a><b>§2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile a set of instructions for the weaver</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ many differently-named tags in a given web.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="function-syntax">Tags::find_by_name</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Tags::find_by_name</span></span>:<br/><a href="2-tgs.html#SP4">§4</a><br/>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">creating_if_necessary</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="function-syntax">Tags::find_by_name</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Tags::find_by_name</span></span>:<br/><a href="2-tgs.html#SP4">§4</a><br/>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a><br/>The Weaver - <a href="3-tw.html#SP2_7_2_3_2_1">§2.7.2.3.2.1</a>, <a href="3-tw.html#SP3">§3</a><br/>Language Methods - <a href="4-lm.html#SP25">§25</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">creating_if_necessary</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">-></span><span class="element-syntax">tag_name</span><span class="plain-syntax">))</span>
|
||||
|
@ -121,7 +121,7 @@ the tag is <span class="extract"><span class="extract-syntax">History</span></sp
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="function-syntax">Tags::add_by_name</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Tags::add_by_name</span></span>:<br/>The Reader - <a href="2-tr.html#SP4_4">§4.4</a><br/>The Parser - <a href="2-tp.html#SP1_1_2">§1.1.2</a>, <a href="2-tp.html#SP1_1_7_3">§1.1.7.3</a>, <a href="2-tp.html#SP1_1_7_7">§1.1.7.7</a><br/>Types and Functions - <a href="4-taf.html#SP2_2">§2.2</a><br/>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="function-syntax">Tags::add_by_name</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Tags::add_by_name</span></span>:<br/>The Reader - <a href="2-tr.html#SP4_4">§4.4</a><br/>The Parser - <a href="2-tp.html#SP1_1_2">§1.1.2</a>, <a href="2-tp.html#SP1_1_7_3">§1.1.7.3</a>, <a href="2-tp.html#SP1_1_7_7">§1.1.7.7</a><br/>Types and Functions - <a href="4-taf.html#SP2_2">§2.2</a><br/>C-Like Languages - <a href="4-cl.html#SP2_1">§2.1</a><br/>InC Support - <a href="4-is.html#SP3_1_1_1">§3.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"empty tag name"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">); </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">caption</span><span class="plain-syntax">);</span>
|
||||
|
@ -159,7 +159,7 @@ doesn't specify a tag.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Tags::tagged_with</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Tags::tagged_with</span></span>:<br/>The Weaver - <a href="3-tw.html#SP2_7">§2.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Tags::tagged_with</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Tags::tagged_with</span></span>:<br/>The Weaver - <a href="3-tw.html#SP2_7">§2.7</a>, <a href="3-tw.html#SP2_7_2_3_2_1">§2.7.2.3.2.1</a>, <a href="3-tw.html#SP3">§3</a><br/>Language Methods - <a href="4-lm.html#SP25">§25</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tag</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">paragraph_tagging</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -477,7 +477,7 @@ division in the current section.
|
|||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">L</span><span class="string-syntax">"%((%c*?) *text as (%c+)%)"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tp.html#SP1_1_7_7_1" class="named-paragraph-link"><span class="named-paragraph">Make plainer</span><span class="named-paragraph-number">1.1.7.7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">code_lcat_for_body</span><span class="plain-syntax"> = </span><span class="constant-syntax">TEXT_EXTRACT_LCAT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">code_pl_for_body</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">code_pl_for_body</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">extract_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">current_paragraph</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">L</span><span class="string-syntax">"%((%c*?) *text from (%c+) as code%)"</span><span class="plain-syntax">))) {</span>
|
||||
|
@ -487,7 +487,7 @@ division in the current section.
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">current_paragraph</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">L</span><span class="string-syntax">"%((%c*?) *text from (%c+) as (%c+)%)"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tp.html#SP1_1_7_7_1" class="named-paragraph-link"><span class="named-paragraph">Make plainer</span><span class="named-paragraph-number">1.1.7.7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">code_pl_for_body</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[2], </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">code_pl_for_body</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[2], </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tp.html#SP1_1_7_7_2" class="named-paragraph-link"><span class="named-paragraph">Spool from file</span><span class="named-paragraph-number">1.1.7.7.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">current_paragraph</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">L</span><span class="string-syntax">"%((%c*?) *text from (%c+)%)"</span><span class="plain-syntax">))) {</span>
|
||||
|
|
|
@ -214,7 +214,7 @@ each of which has a list of <span class="extract"><span class="extract-syntax">s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">web_extent</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">no_paragraphs</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">language_name</span><span class="plain-syntax"> = </span><a href="../foundation-module/8-bdfw.html#SP6" class="function-link"><span class="function-syntax">Bibliographic::get_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Language"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_name</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="identifier-syntax">main_language</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="identifier-syntax">main_language</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">main_target</span><span class="plain-syntax"> = </span><a href="2-tr.html#SP12" class="function-link"><span class="function-syntax">Reader::add_tangle_target</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">main_language</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-tr.html#SP4">§4</a>.</li></ul>
|
||||
|
@ -227,7 +227,7 @@ each of which has a list of <span class="extract"><span class="extract-syntax">s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">sections</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">section</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">ch_language</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">main_language</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Cm</span><span class="plain-syntax">-></span><span class="element-syntax">ch_language_name</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">ch_language</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Cm</span><span class="plain-syntax">-></span><span class="element-syntax">ch_language_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">ch_language</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Cm</span><span class="plain-syntax">-></span><span class="element-syntax">ch_language_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-tr.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_4"></a><b>§4.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Initialise the rest of the section structure</span><span class="named-paragraph-number">4.4</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -248,10 +248,10 @@ each of which has a list of <span class="extract"><span class="extract-syntax">s
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">owning_web</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_language</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">ch_language</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_language_name</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="identifier-syntax">sect_language</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_language_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="identifier-syntax">sect_language</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_language_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_independent_language</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pl</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_independent_language</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_independent_language</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="identifier-syntax">sect_language</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="identifier-syntax">sect_target</span><span class="plain-syntax"> = </span><a href="2-tr.html#SP12" class="function-link"><span class="function-syntax">Reader::add_tangle_target</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">pl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
|
|
@ -237,8 +237,10 @@ just as any other code would be.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP5" class="function-link"><span class="function-syntax">Analyser::analyse_as_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand2</span><span class="plain-syntax">, </span><span class="constant-syntax">ANY_USAGE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP5" class="function-link"><span class="function-syntax">Analyser::analyse_as_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_IN_CODE_USAGE</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_IN_GRAMMAR_USAGE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP5" class="function-link"><span class="function-syntax">Analyser::analyse_as_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">ANY_USAGE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP5" class="function-link"><span class="function-syntax">Analyser::analyse_as_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">PREFORM_IN_CODE_USAGE</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_IN_GRAMMAR_USAGE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-ta.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. Identifier searching. </b>Here's what we actually do, then. We take the code fragment <span class="extract"><span class="extract-syntax">text</span></span>, drawn
|
||||
|
@ -382,7 +384,7 @@ of each C function.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">hash_table_entry</span><span class="plain-syntax"> *</span><span class="function-syntax">Analyser::find_hash_entry_for_section</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Analyser::find_hash_entry_for_section</span></span>:<br/><a href="3-ta.html#SP12">§12</a><br/>The Weaver - <a href="3-tw.html#SP3_3">§3.3</a>, <a href="3-tw.html#SP4">§4</a><br/>Types and Functions - <a href="4-taf.html#SP8">§8</a><br/>ACME Support - <a href="4-as.html#SP6">§6</a>, <a href="4-as.html#SP7">§7</a><br/>InC Support - <a href="4-is.html#SP14_1">§14.1</a>, <a href="4-is.html#SP14_2">§14.2</a>, <a href="4-is.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">hash_table_entry</span><span class="plain-syntax"> *</span><span class="function-syntax">Analyser::find_hash_entry_for_section</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Analyser::find_hash_entry_for_section</span></span>:<br/><a href="3-ta.html#SP12">§12</a><br/>The Weaver - <a href="3-tw.html#SP3_4">§3.4</a>, <a href="3-tw.html#SP4">§4</a><br/>Types and Functions - <a href="4-taf.html#SP8">§8</a><br/>ACME Support - <a href="4-as.html#SP6">§6</a>, <a href="4-as.html#SP7">§7</a><br/>InC Support - <a href="4-is.html#SP14_1">§14.1</a>, <a href="4-is.html#SP14_2">§14.2</a>, <a href="4-is.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">create</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-ta.html#SP9" class="function-link"><span class="function-syntax">Analyser::find_hash_entry</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_target</span><span class="plain-syntax">-></span><span class="element-syntax">symbols</span><span class="plain-syntax">), </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">create</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -642,6 +642,12 @@ and macro usage is rendered differently.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">colour_as</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pl</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">pl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_language</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">will_be</span><span class="plain-syntax"> != </span><span class="constant-syntax">CODE_MATERIAL</span><span class="plain-syntax">) </span><span class="identifier-syntax">pl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-tgs.html#SP2" class="function-link"><span class="function-syntax">Tags::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">) && (</span><a href="2-tgs.html#SP6" class="function-link"><span class="function-syntax">Tags::tagged_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">owning_paragraph</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prepl</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prepl</span><span class="plain-syntax">) </span><span class="identifier-syntax">pl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prepl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tw.html#SP5" class="function-link"><span class="function-syntax">Weaver::change_material</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">state</span><span class="plain-syntax">, </span><span class="identifier-syntax">will_be</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">plainer</span><span class="plain-syntax">, </span><span class="identifier-syntax">pl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">line_break_pending</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -752,18 +758,39 @@ structure usage, or how <span class="extract"><span class="extract-syntax">CWEB<
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Weaver::show_endnotes_on_previous_paragraph</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Weaver::show_endnotes_on_previous_paragraph</span></span>:<br/><a href="3-tw.html#SP2_7_2">§2.7.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-tgs.html#SP2" class="function-link"><span class="function-syntax">Tags::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">) && (</span><a href="2-tgs.html#SP6" class="function-link"><span class="function-syntax">Tags::tagged_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Show endnote on use of Preform</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-tgs.html#SP7" class="function-link"><span class="function-syntax">Tags::show_endnote_on_ifdefs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">defines_macro</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Show endnote on where paragraph macro is used</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Show endnote on where paragraph macro is used</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">language_function</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">fn</span><span class="plain-syntax">, </span><span class="reserved-syntax">language_function</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">functions</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Show endnote on where this function is used</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Show endnote on where this function is used</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">language_type</span><span class="plain-syntax"> *</span><span class="identifier-syntax">st</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">st</span><span class="plain-syntax">, </span><span class="reserved-syntax">language_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">structures</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Show endnote on where this language type is accessed</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tw.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Show endnote on where this language type is accessed</span><span class="named-paragraph-number">3.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1"></a><b>§3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on where paragraph macro is used</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1"></a><b>§3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on use of Preform</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="5-wt.html#SP2" class="function-link"><span class="function-syntax">WeaveTree::endnote</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP11" class="function-link"><span class="function-syntax">Trees::make_child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">body</span><span class="plain-syntax">); </span><span class="identifier-syntax">ap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-twot.html#SP1" class="function-link"><span class="function-syntax">TextWeaver::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"This is "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">url</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="6-cln.html#SP10" class="function-link"><span class="function-syntax">Colonies::resolve_reference_in_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">url</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"words: Preform"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &</span><span class="identifier-syntax">ext</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP11" class="function-link"><span class="function-syntax">Trees::make_child</span></a><span class="plain-syntax">(</span><a href="5-wt.html#SP5" class="function-link"><span class="function-syntax">WeaveTree::url</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">url</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform grammar"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ext</span><span class="plain-syntax">), </span><span class="identifier-syntax">ap</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><a href="3-twot.html#SP1" class="function-link"><span class="function-syntax">TextWeaver::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform grammar"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">url</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-twot.html#SP1" class="function-link"><span class="function-syntax">TextWeaver::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">", not regular C code."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tw.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2"></a><b>§3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on where paragraph macro is used</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -806,7 +833,7 @@ structure usage, or how <span class="extract"><span class="extract-syntax">CWEB<
|
|||
<span class="plain-syntax"> </span><a href="3-twot.html#SP1" class="function-link"><span class="function-syntax">TextWeaver::commentary_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tw.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2"></a><b>§3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on where this function is used</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_3"></a><b>§3.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on where this function is used</span><span class="named-paragraph-number">3.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -814,7 +841,7 @@ structure usage, or how <span class="extract"><span class="extract-syntax">CWEB<
|
|||
<span class="plain-syntax"> </span><a href="3-tw.html#SP4" class="function-link"><span class="function-syntax">Weaver::show_function_usage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">fn</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tw.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_3"></a><b>§3.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on where this language type is accessed</span><span class="named-paragraph-number">3.3</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_4"></a><b>§3.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show endnote on where this language type is accessed</span><span class="named-paragraph-number">3.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -861,7 +888,7 @@ structure usage, or how <span class="extract"><span class="extract-syntax">CWEB<
|
|||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Weaver::show_function_usage</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Weaver::show_function_usage</span></span>:<br/><a href="3-tw.html#SP3_2">§3.2</a><br/>The Weaver of Text - <a href="3-twot.html#SP4_3">§4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Weaver::show_function_usage</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Weaver::show_function_usage</span></span>:<br/><a href="3-tw.html#SP3_3">§3.3</a><br/>The Weaver of Text - <a href="3-twot.html#SP4_3">§4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">language_function</span><span class="plain-syntax"> *</span><span class="identifier-syntax">fn</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax">-></span><span class="element-syntax">usage_described</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -59,7 +59,7 @@ as appropriate.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextWeaver::commentary_text</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">TextWeaver::commentary_text</span></span>:<br/>Tags - <a href="2-tgs.html#SP7">§7</a>, <a href="2-tgs.html#SP7_1">§7.1</a><br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a>, <a href="3-tw.html#SP3_3">§3.3</a>, <a href="3-tw.html#SP4">§4</a>, <a href="3-tw.html#SP4_1">§4.1</a>, <a href="3-tw.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextWeaver::commentary_text</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">TextWeaver::commentary_text</span></span>:<br/>Tags - <a href="2-tgs.html#SP7">§7</a>, <a href="2-tgs.html#SP7_1">§7.1</a><br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a>, <a href="3-tw.html#SP3_2">§3.2</a>, <a href="3-tw.html#SP3_4">§3.4</a>, <a href="3-tw.html#SP4">§4</a>, <a href="3-tw.html#SP4_1">§4.1</a>, <a href="3-tw.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-twot.html#SP1" class="function-link"><span class="function-syntax">TextWeaver::commentary_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TextWeaver::comment_text_in_code</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">TextWeaver::comment_text_in_code</span></span>:<br/>The Weaver - <a href="3-tw.html#SP2_7_2_3_2">§2.7.2.3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -323,11 +323,11 @@ If we have a line with an arrow, like so:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="2-tgs.html#SP4" class="function-link"><span class="function-syntax">Tags::add_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">owning_paragraph</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">source_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">; (</span><span class="identifier-syntax">AL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="element-syntax">category</span><span class="plain-syntax"> == </span><span class="constant-syntax">CODE_BODY_LCAT</span><span class="plain-syntax">); </span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="element-syntax">next_line</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP5" class="function-link"><span class="function-syntax">Regexp::string_is_white_space</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="element-syntax">text</span><span class="plain-syntax">)) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="element-syntax">category</span><span class="plain-syntax"> = </span><span class="constant-syntax">PREFORM_GRAMMAR_LCAT</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="element-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%c+) ==> (%c*)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="element-syntax">text_operand</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0]);</span>
|
||||
|
@ -1065,7 +1065,8 @@ assume.)
|
|||
<ul class="endnotetexts"><li>This code is used in <a href="4-is.html#SP13">§13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. Weaving. </b>The following isn't a method, but is called by the weaver directly. It adds
|
||||
additional endnotes to the woven form of a paragraph which includes Preform
|
||||
nonterminal definitions:
|
||||
nonterminal definitions; it is meaningful only in the TeX format, and should
|
||||
probably be dropped.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -449,6 +449,12 @@ sake, which minimises the knock-on effect of any colouring mistakes.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colour_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">category</span><span class="plain-syntax"> == </span><span class="constant-syntax">TEXT_EXTRACT_LCAT</span><span class="plain-syntax">) </span><span class="identifier-syntax">colour_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">colour_as</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="2-tgs.html#SP2" class="function-link"><span class="function-syntax">Tags::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">) && (</span><a href="2-tgs.html#SP6" class="function-link"><span class="function-syntax">Tags::tagged_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">owning_paragraph</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prepl</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Preform"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">category</span><span class="plain-syntax"> == </span><span class="constant-syntax">PREFORM_LCAT</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">category</span><span class="plain-syntax"> == </span><span class="constant-syntax">PREFORM_GRAMMAR_LCAT</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prepl</span><span class="plain-syntax">) </span><span class="identifier-syntax">colour_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prepl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">colour_as</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour_as</span><span class="plain-syntax">, </span><span class="constant-syntax">SYNTAX_COLOUR_WEA_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">colouring</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -58,7 +58,8 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::find_by_name</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Languages::find_by_name</span></span>:<br/><a href="4-pl.html#SP3">§3</a><br/>The Reader - <a href="2-tr.html#SP4_2">§4.2</a>, <a href="2-tr.html#SP4_3">§4.3</a>, <a href="2-tr.html#SP4_4">§4.4</a><br/>The Parser - <a href="2-tp.html#SP1_1_7_7">§1.1.7.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::find_by_name</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Languages::find_by_name</span></span>:<br/><a href="4-pl.html#SP3">§3</a><br/>The Reader - <a href="2-tr.html#SP4_2">§4.2</a>, <a href="2-tr.html#SP4_3">§4.3</a>, <a href="2-tr.html#SP4_4">§4.4</a><br/>The Parser - <a href="2-tp.html#SP1_1_7_7">§1.1.7.7</a><br/>The Weaver - <a href="3-tw.html#SP2_7_2_3_2_1">§2.7.2.3.2.1</a><br/>Language Methods - <a href="4-lm.html#SP25">§25</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lname</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">error_if_not_found</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-pl.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">If this is the name of a language already known, return that</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-pl.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Read the language definition file with this name</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -88,9 +89,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP5" class="function-link"><span class="function-syntax">Languages::default_directory</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-pl.html#SP2_2_1" class="named-paragraph-link"><span class="named-paragraph">Try P</span><span class="named-paragraph-number">2.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"unsupported programming language '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">error_if_not_found</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"unsupported programming language '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">lname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pl</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP7" class="function-link"><span class="function-syntax">Languages::read_definition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-pl.html#SP2">§2</a>.</li></ul>
|
||||
|
@ -112,7 +116,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::default</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Languages::default</span></span>:<br/>The Reader - <a href="2-tr.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"C"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-pl.html#SP2" class="function-link"><span class="function-syntax">Languages::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"C"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Languages::show</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Languages::show</span></span>:<br/>Program Control - <a href="1-pc.html#SP7_2">§7.2</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -553,7 +553,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_weave_paragraph_heading_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">WeaveTree::endnote</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">WeaveTree::endnote</span></span>:<br/>Tags - <a href="2-tgs.html#SP7_1">§7.1</a><br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a>, <a href="3-tw.html#SP3_3">§3.3</a>, <a href="3-tw.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">WeaveTree::endnote</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">WeaveTree::endnote</span></span>:<br/>Tags - <a href="2-tgs.html#SP7_1">§7.1</a><br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a>, <a href="3-tw.html#SP3_2">§3.2</a>, <a href="3-tw.html#SP3_4">§3.4</a>, <a href="3-tw.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_endnote_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">weave_endnote_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP4" class="function-link"><span class="function-syntax">Trees::new_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">weave_endnote_node_type</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_weave_endnote_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
||||
|
@ -715,7 +715,7 @@ been syntax-coloured.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP4" class="function-link"><span class="function-syntax">Trees::new_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">weave_source_code_node_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_weave_source_code_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">WeaveTree::url</span><button class="popup" onclick="togglePopup('usagePopup35')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup35">Usage of <span class="code-font"><span class="function-syntax">WeaveTree::url</span></span>:<br/>The Weaver of Text - <a href="3-twot.html#SP1_2">§1.2</a>, <a href="3-twot.html#SP1_5_1">§1.5.1</a>, <a href="3-twot.html#SP4_1">§4.1</a>, <a href="3-twot.html#SP4_2_1">§4.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">url</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">WeaveTree::url</span><button class="popup" onclick="togglePopup('usagePopup35')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup35">Usage of <span class="code-font"><span class="function-syntax">WeaveTree::url</span></span>:<br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a><br/>The Weaver of Text - <a href="3-twot.html#SP1_2">§1.2</a>, <a href="3-twot.html#SP1_5_1">§1.5.1</a>, <a href="3-twot.html#SP4_1">§4.1</a>, <a href="3-twot.html#SP4_2_1">§4.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">url</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">content</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">external</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_url_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">weave_url_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">url</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">url</span><span class="plain-syntax">);</span>
|
||||
|
@ -790,7 +790,7 @@ indentation but not weave any bracketed marker.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../foundation-module/2-trs.html#SP4" class="function-link"><span class="function-syntax">Trees::new_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">weave_inline_node_type</span><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_weave_inline_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">WeaveTree::locale</span><button class="popup" onclick="togglePopup('usagePopup43')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup43">Usage of <span class="code-font"><span class="function-syntax">WeaveTree::locale</span></span>:<br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a>, <a href="3-tw.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par2</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">tree_node</span><span class="plain-syntax"> *</span><span class="function-syntax">WeaveTree::locale</span><button class="popup" onclick="togglePopup('usagePopup43')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup43">Usage of <span class="code-font"><span class="function-syntax">WeaveTree::locale</span></span>:<br/>The Weaver - <a href="3-tw.html#SP3_2">§3.2</a>, <a href="3-tw.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">heterogeneous_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par1</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_locale_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">weave_locale_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">par1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">par1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">par2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">par2</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -413,7 +413,7 @@ is where the reference is made from.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Colonies::resolve_reference_in_weave</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Colonies::resolve_reference_in_weave</span></span>:<br/><a href="6-cln.html#SP11">§11</a><br/>The Weaver of Text - <a href="3-twot.html#SP1_5_1">§1.5.1</a>, <a href="3-twot.html#SP4_2_1">§4.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">url</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">title</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Colonies::resolve_reference_in_weave</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Colonies::resolve_reference_in_weave</span></span>:<br/><a href="6-cln.html#SP11">§11</a><br/>The Weaver - <a href="3-tw.html#SP3_1">§3.1</a><br/>The Weaver of Text - <a href="3-twot.html#SP1_5_1">§1.5.1</a>, <a href="3-twot.html#SP4_2_1">§4.2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">url</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">title</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_HTML_file</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">web_md</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Wm</span><span class="plain-syntax">, </span><span class="reserved-syntax">source_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ext</span><span class="plain-syntax">) *</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -137,6 +137,7 @@ distribution:
|
|||
<span class="plain-syntax">None: For programs in languages not yet supported by Inweb</span>
|
||||
<span class="plain-syntax">Perl: The scripting language Perl 5</span>
|
||||
<span class="plain-syntax">Plain Text: For text files which are not programs</span>
|
||||
<span class="plain-syntax">Preform: The internal Inform syntax analysis grammar language</span>
|
||||
</pre>
|
||||
<p class="commentary">It's easy to make new language definitions, and contributions of these are
|
||||
welcome.
|
||||
|
|
|
@ -81,6 +81,7 @@ installed Inweb replies like so:
|
|||
<span class="plain-syntax">None: For programs in languages not yet supported by Inweb</span>
|
||||
<span class="plain-syntax">Perl: The scripting language Perl 5</span>
|
||||
<span class="plain-syntax">Plain Text: For text files which are not programs</span>
|
||||
<span class="plain-syntax">Preform: The internal Inform syntax analysis grammar language</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>So what if you want to write a literate program in a language not on that
|
||||
list? One option is to give the language as <span class="extract"><span class="extract-syntax">None</span></span>. (Note that this is
|
||||
|
|
Loading…
Reference in a new issue