2023-07-18 00:54:02 +03:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
< title > Documentation Compiler< / title >
< link href = "../docs-assets/Breadcrumbs.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< meta name = "viewport" content = "width=device-width initial-scale=1" >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
< link href = "../docs-assets/Contents.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Progress.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Navigation.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Fonts.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Base.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< script >
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
< / script >
< link href = "../docs-assets/Popups.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Colours.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< / head >
< body class = "commentary-font" >
< nav role = "navigation" >
< h1 > < a href = "../index.html" >
< img src = "../docs-assets/Inform.png" height = 72" >
< / a > < / h1 >
< ul > < li > < a href = "../index.html" > home< / a > < / li >
< / ul > < h2 > Compiler< / h2 > < ul >
< li > < a href = "../structure.html" > structure< / a > < / li >
< li > < a href = "../inbuildn.html" > inbuild< / a > < / li >
< li > < a href = "../inform7n.html" > inform7< / a > < / li >
< li > < a href = "../intern.html" > inter< / a > < / li >
< li > < a href = "../services.html" > services< / a > < / li >
< li > < a href = "../secrets.html" > secrets< / a > < / li >
< / ul > < h2 > Other Tools< / h2 > < ul >
< li > < a href = "../inblorbn.html" > inblorb< / a > < / li >
< li > < a href = "../indocn.html" > indoc< / a > < / li >
< li > < a href = "../inform6.html" > inform6< / a > < / li >
< li > < a href = "../inpolicyn.html" > inpolicy< / a > < / li >
< li > < a href = "../inrtpsn.html" > inrtps< / a > < / li >
< / ul > < h2 > Resources< / h2 > < ul >
< li > < a href = "../extensions.html" > extensions< / a > < / li >
< li > < a href = "../kits.html" > kits< / a > < / li >
< / ul > < h2 > Repository< / h2 > < ul >
< li > < a href = "https://github.com/ganelson/inform" > < img src = "../docs-assets/github.png" height = 18 > github< / a > < / li >
< / ul > < h2 > Related Projects< / h2 > < ul >
< li > < a href = "../../../inweb/index.html" > inweb< / a > < / li >
< li > < a href = "../../../intest/index.html" > intest< / a > < / li >
< / ul >
< / nav >
< main role = "main" >
<!-- Weave of 'Documentation Compiler' generated by Inweb -->
< div class = "breadcrumbs" >
2023-07-28 02:43:38 +03:00
< ul class = "crumbs" > < li > < a href = "../index.html" > Home< / a > < / li > < li > < a href = "../inbuildn.html" > Inbuild Modules< / a > < / li > < li > < a href = "index.html" > supervisor< / a > < / li > < li > < a href = "index.html#7" > Chapter 7: Extension Management< / a > < / li > < li > < b > Documentation Compiler< / b > < / li > < / ul > < / div >
2023-07-18 00:54:02 +03:00
< p class = "purpose" > To compile documentation from the textual syntax in an extension into a tree.< / p >
< p class = "commentary firstcommentary" > < a id = "SP1" class = "paragraph-anchor" > < / a > < b > § 1. < / b > We will actually wrap the result in the following structure, but
it's really not much more than the tree produced by < a href = "7-dt.html" class = "internal" > Documentation Tree< / a > :
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > typedef< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-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" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > original< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > inform_extension< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > associated_extension< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-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" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > total_headings< / span > < span class = "plain-syntax" > [3];< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > total_examples< / 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" > empty< / span > < span class = "plain-syntax" > ;< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > cases< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > of < / span > < span class = "extract" > < span class = "extract-syntax" > satellite_test_case< / span > < / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CLASS_DEFINITION< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > ;< / span >
2023-07-21 13:49:36 +03:00
< span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > DocumentationCompiler::new_wrapper< / 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" > DocumentationCompiler::new_wrapper< / span > < / span > :< br / > < a href = "7-dc.html#SP6" > § 6< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > CREATE< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > title< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::new< / span > < span class = "plain-syntax" > ();< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > original< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::duplicate< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > associated_extension< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP1" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new< / span > < / a > < span class = "plain-syntax" > ();< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_examples< / 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" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [0] = < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [1] = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [2] = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > empty< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > cases< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NEW_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > satellite_test_case< / span > < span class = "plain-syntax" > );< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2023-07-21 13:49:36 +03:00
< span class = "reserved-syntax" > typedef< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > satellite_test_case< / 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" > is_example< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > owning_heading< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > owning_node< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > owner< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > test_file< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > ideal_transcript< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CLASS_DEFINITION< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > satellite_test_case< / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-28 02:43:38 +03:00
< ul class = "endnotetexts" > < li > The structure compiled_documentation is accessed in 2/wrk, 2/edt, 2/cps, 2/rqr, 2/jm, 3/bg, 3/is, 4/ebm, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps2, 6/inc, 7/eip, 7/ti, 7/tc, 7/dr and here.< / li > < li > The structure satellite_test_case is accessed in 5/ks and here.< / li > < / ul >
2023-07-20 01:46:39 +03:00
< p class = "commentary firstcommentary" > < a id = "SP2" class = "paragraph-anchor" > < / a > < b > § 2. < / b > We can compile either from a file...
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-30 21:07:54 +03:00
< span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > DocumentationCompiler::compile_from_path< / 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" > DocumentationCompiler::compile_from_path< / span > < / span > :< br / > Extension Services - < a href = "5-es.html#SP12_1" > § 12.1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pathname< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ,< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > inform_extension< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > associated_extension< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Filenames::in< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "Documentation.txt"< / 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" > TextFiles::exists< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > ) == < / span > < span class = "identifier-syntax" > FALSE< / 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 = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > =< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP5" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::compile_from_file< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > associated_extension< / 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" > cd< / 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 = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pathname< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > EP< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Pathnames::down< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "Examples"< / 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" > egs< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP2_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Scan EP directory for examples< / span > < span class = "named-paragraph-number" > 2.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > egs< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > EP< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Pathnames::down< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "Tests"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP2_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Scan EP directory for examples< / span > < span class = "named-paragraph-number" > 2.1< / span > < / a > < / 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" > cd< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
< p class = "commentary firstcommentary" > < a id = "SP2_1" class = "paragraph-anchor" > < / a > < b > § 2.1. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Scan EP directory for examples< / span > < span class = "named-paragraph-number" > 2.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 = "identifier-syntax" > scan_directory< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > D< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Directories::open< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > EP< / span > < span class = "plain-syntax" > );< / span >
2023-07-23 17:28:37 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > D< / 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" > leafname< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > while< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Directories::next< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > D< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > leafname< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wchar_t< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > first< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::get_first_char< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > leafname< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > last< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::get_last_char< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > leafname< / 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" > Platform::is_folder_separator< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > last< / span > < span class = "plain-syntax" > )) < / span > < span class = "reserved-syntax" > continue< / 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" > first< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > '.'< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > continue< / 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" > first< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > '('< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::new< / span > < span class = "plain-syntax" > ();< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Filenames::in< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > EP< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > leafname< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Filenames::write_unextended_leafname< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > F< / 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" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > )-2) == < / span > < span class = "character-syntax" > '-'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > )-1) == < / span > < span class = "character-syntax" > 'I'< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > || (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > )-1) == < / span > < span class = "character-syntax" > 'i'< / span > < span class = "plain-syntax" > )))< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > satellite_test_case< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > CREATE< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > satellite_test_case< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > is_example< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > egs< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > owning_heading< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > owning_node< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > owner< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > short_name< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > short_name< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_file< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > ideal_transcript< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / 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" > ideal_leafname< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ideal_leafname< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S-I.txt"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > short_name< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > IF< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Filenames::in< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > EP< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ideal_leafname< / 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" > TextFiles::exists< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > IF< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > ideal_transcript< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > IF< / 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" > ideal_leafname< / 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" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > is_example< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP2_1_2" class = "named-paragraph-link" > < span class = "named-paragraph" > Scan the example for its header and content< / span > < span class = "named-paragraph-number" > 2.1.2< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ADD_TO_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > satellite_test_case< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > cases< / span > < span class = "plain-syntax" > );< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > }< / span >
2023-07-23 17:28:37 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > leafname< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Directories::close< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > D< / span > < span class = "plain-syntax" > );< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > }< / span >
< / pre >
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP2" > § 2< / a > (twice).< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP2_1_1" class = "paragraph-anchor" > < / a > < b > § 2.1.1. < / b > < / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > typedef< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > example_scanning_state< / 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" > star_count< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > long_title< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > body_text< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > placement< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > desc< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > errors< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-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" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > scanning< / 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" > past_header< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > example_scanning_state< / span > < span class = "plain-syntax" > ;< / span >
< / pre >
2023-07-28 02:43:38 +03:00
< ul class = "endnotetexts" > < li > The structure example_scanning_state is accessed in 5/es, 7/tc, 7/dt, 7/dr and here.< / li > < / ul >
2023-07-21 13:49:36 +03:00
< p class = "commentary firstcommentary" > < a id = "SP2_1_2" class = "paragraph-anchor" > < / a > < b > § 2.1.2. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Scan the example for its header and content< / span > < span class = "named-paragraph-number" > 2.1.2< / 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" > example_scanning_state< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > long_title< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > body_text< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::new< / span > < span class = "plain-syntax" > ();< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > placement< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > desc< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > errors< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NEW_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > past_header< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > scanning< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::new< / span > < span class = "plain-syntax" > (); < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > scanning< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Filenames::get_leafname< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_file< / span > < span class = "plain-syntax" > ));< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TextFiles::read< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > stc< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_file< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "unable to read file of example"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > & < / span > < a href = "7-dc.html#SP4" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::read_example_helper< / span > < / a > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , & < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > placement_node< / 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" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > placement< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-23 17:28:37 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > placement_node< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > ;< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > placement_node< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP16" class = "function-link" > < span class = "function-syntax" > DocumentationTree::find_section< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > placement< / 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" > placement_node< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "example gives a Location which is not the name of any section"< / span > < span class = "plain-syntax" > );< / 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" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > desc< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "example does not give its Description"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > content_node< / 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" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > body_text< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "example does not give any actual content"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > ecd< / span > < span class = "plain-syntax" > =< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP6" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::compile< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > body_text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > associated_extension< / 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" > ecd< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > ecd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > ecd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ecd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > child< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ecd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > child< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > type< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > passage_TNT< / span > < span class = "plain-syntax" > ))< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > content_node< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > ecd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > child< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "example file content is missing or wrongly set out"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > example_node< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP5" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_example< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > long_title< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > desc< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > , ++(< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_examples< / 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" > placement_node< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > example_node< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > placement_node< / 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" > content_node< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > content_node< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > example_node< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / 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" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > errors< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > );< / span >
< / pre >
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP2_1" > § 2.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP3" class = "paragraph-anchor" > < / a > < b > § 3. < / 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" > DocumentationCompiler::example_error< / 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" > DocumentationCompiler::example_error< / span > < / span > :< br / > < a href = "7-dc.html#SP2_1_2" > § 2.1.2< / a > , < a href = "7-dc.html#SP4" > § 4< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > example_scanning_state< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-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 = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > err< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::new< / span > < span class = "plain-syntax" > ();< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > err< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "Example file '%S': %S"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > scanning< / 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" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > err< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ADD_TO_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > errors< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
< p class = "commentary firstcommentary" > < a id = "SP4" class = "paragraph-anchor" > < / 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" > DocumentationCompiler::read_example_helper< / 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" > DocumentationCompiler::read_example_helper< / span > < / span > :< br / > < a href = "7-dc.html#SP2_1_2" > § 2.1.2< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > text_file_position< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tfp< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > v_state< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > example_scanning_state< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > = (< / span > < span class = "reserved-syntax" > example_scanning_state< / span > < span class = "plain-syntax" > *) < / span > < span class = "identifier-syntax" > v_state< / 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" > tfp< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > line_count< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > match_results< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Regexp::create_mr< / 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Example *: *(%**) *(%c+?)"< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Example *- *(%**) *(%c+?)"< / span > < span class = "plain-syntax" > ))) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0]);< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "this example should be marked (before the title) '*', '**', '***' or '****' for difficulty"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 1< / 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" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 4< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "four stars '****' is the maximum difficulty rating allowed"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > star_count< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 4< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > long_title< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::duplicate< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [1]);< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "titling line of example file is malformed"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Regexp::dispose_of< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / 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" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > past_header< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-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" > Str::is_whitespace< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > )) { < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > past_header< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ; < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > ; }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > match_results< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Regexp::create_mr< / 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-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 = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::eq< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "Location"< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > placement< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::duplicate< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [1]);< / 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" > Str::eq< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "Description"< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > desc< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::duplicate< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [1]);< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "unknown datum in header line of example file"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::example_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "header line of example file is malformed"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Regexp::dispose_of< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ess< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > body_text< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S\n"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
< p class = "commentary firstcommentary" > < a id = "SP5" class = "paragraph-anchor" > < / a > < b > § 5. < / b > < / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > DocumentationCompiler::compile_from_file< / 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" > DocumentationCompiler::compile_from_file< / span > < / span > :< br / > < a href = "7-dc.html#SP2" > § 2< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > ,< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > inform_extension< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > associated_extension< / 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" > temp< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TextFiles::read< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "unable to read file of documentation"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ,< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > & < / span > < a href = "7-dc.html#SP5" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::read_file_helper< / span > < / a > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > temp< / span > < span class = "plain-syntax" > );< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > =< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < a href = "7-dc.html#SP6" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::compile< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temp< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > associated_extension< / span > < span class = "plain-syntax" > );< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temp< / 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" > cd< / 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" > DocumentationCompiler::read_file_helper< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > text_file_position< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tfp< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > v_state< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > contents< / span > < span class = "plain-syntax" > = (< / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *) < / span > < span class = "identifier-syntax" > v_state< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > contents< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S\n"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< p class = "commentary firstcommentary" > < a id = "SP6" class = "paragraph-anchor" > < / a > < b > § 6. < / b > ...or from text:
2023-07-20 01:46:39 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > DocumentationCompiler::compile< / span > < button class = "popup" onclick = "togglePopup('usagePopup6')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup6" > Usage of < span class = "code-font" > < span class = "function-syntax" > DocumentationCompiler::compile< / span > < / span > :< br / > < a href = "7-dc.html#SP2_1_2" > § 2.1.2< / a > , < a href = "7-dc.html#SP5" > § 5< / a > < br / > Extension Services - < a href = "5-es.html#SP10" > § 10< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > ,< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > inform_extension< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > associated_extension< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > SVEXPLAIN< / span > < span class = "plain-syntax" > (1, < / span > < span class = "string-syntax" > "(compiling documentation: %d chars)\n"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > ));< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > compiled_documentation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dc.html#SP1" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::new_wrapper< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > associated_extension< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > associated_extension< / 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" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > associated_extension< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > title< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%X"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > associated_extension< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > as_copy< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > edition< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > work< / 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" > Str::is_whitespace< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > empty< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Parse the source< / span > < span class = "named-paragraph-number" > 6.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > empty< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > SVEXPLAIN< / span > < span class = "plain-syntax" > (1, < / span > < span class = "string-syntax" > "(resulting tree is empty)\n"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > SVEXPLAIN< / span > < span class = "plain-syntax" > (1, < / span > < span class = "string-syntax" > "(resulting tree has %d chapter(s), %d section(s) and %d example(s))\n"< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [1], < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [2], < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_examples< / span > < span class = "plain-syntax" > );< / 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" > cd< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< p class = "commentary firstcommentary" > < a id = "SP6_1" class = "paragraph-anchor" > < / a > < b > § 6.1. < / b > The source material is line-based, with semantic content sometimes spreading
2023-07-18 00:54:02 +03:00
across multiple lines, so we'll need to keep track of some state as we read
one line at a time:
< / p >
2023-07-21 13:49:36 +03:00
< p class = "commentary" > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Parse the source< / span > < span class = "named-paragraph-number" > 6.1< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > chapter_number< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > section_number< / 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" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [4]; < / span > < span class = "comment-syntax" > Most recent headings of levels 0, 1, 2< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [0] = < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > root< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > This will never change< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [1] = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > Latest chapter, if any< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [2] = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > Latest section in most recent thing of lower level< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [3] = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > Latest example in most recent thing of lower level< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "comment-syntax" > passage being assembled, if any< / span >
< span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "comment-syntax" > again, if any< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > last_paste_code< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > last code sample with a paste button< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pending_code_sample_blanks< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > code_is_tabular< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > used only when assembling code samples< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > default_language< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dc.html#SP7" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::get_language< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "Inform"< / span > < span class = "plain-syntax" > );< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > language< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > default_language< / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Parse the source linewise< / span > < span class = "named-paragraph-number" > 6.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6" > § 6< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1" class = "paragraph-anchor" > < / a > < b > § 6.1.1. < / b > Leading space on a line is removed but not ignored: it is converted into an
2023-07-18 00:54:02 +03:00
indentation level, measured as a tab count, using the exchange rate 4 spaces
to 1 tab.
< / p >
2023-07-21 13:49:36 +03:00
< p class = "commentary" > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Parse the source linewise< / span > < span class = "named-paragraph-number" > 6.1.1< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TEMPORARY_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / 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" > indentation< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > space_count< / 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" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > =0; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wchar_t< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > source< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / 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" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > '\n'< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Line read< / span > < span class = "named-paragraph-number" > 6.1.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::clear< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > indentation< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > space_count< / 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" > else< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Characters::is_whitespace< / 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" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > '\t'< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > indentation< / 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" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > ' '< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > space_count< / 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" > space_count< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > 4< / span > < span class = "plain-syntax" > ) { < / span > < span class = "identifier-syntax" > indentation< / span > < span class = "plain-syntax" > ++; < / span > < span class = "identifier-syntax" > space_count< / 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" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > ) > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Line read< / span > < span class = "named-paragraph-number" > 6.1.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_2" class = "named-paragraph-link" > < span class = "named-paragraph" > Check for runaway phrase definitions< / span > < span class = "named-paragraph-number" > 6.1.1.2< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > )< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1" > § 6.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1. < / b > Trailing space is ignored and removed.
2023-07-18 00:54:02 +03:00
< / p >
< p class = "commentary" > Lines which are unindented and take the following shapes are headings:
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > Chapter: Survey and Prospecting< / span >
< span class = "plain-syntax" > Section: Black Gold< / span >
< span class = "plain-syntax" > Example: *** Gelignite Anderson - A Tale of the Texas Oilmen< / span >
< / pre >
< p class = "commentary" > where in each case the colon can equally be a hyphen, and with optional
space either side.
< / p >
< p class = "commentary" > Otherwise, lines are divided into blanks, which always end paragraphs but
may either end or continue code samples; unindented lines, which are always
part of paragraphs; or indented ones, which are always part of code samples.
< / p >
2023-07-21 13:49:36 +03:00
< p class = "commentary" > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Line read< / span > < span class = "named-paragraph-number" > 6.1.1.1< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::trim_white_space< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / 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" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< 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 = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / 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" > current_code< / span > < span class = "plain-syntax" > ) < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_12" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert line break in code< / span > < span class = "named-paragraph-number" > 6.1.1.1.12< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< 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" > indentation< / 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" > match_results< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Regexp::create_mr< / 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Section *: *(%c+?)"< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Section *- *(%c+?)"< / span > < span class = "plain-syntax" > ))) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_2" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert a section heading< / span > < span class = "named-paragraph-number" > 6.1.1.1.2< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Chapter *: *(%c+?)"< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Chapter *- *(%c+?)"< / span > < span class = "plain-syntax" > ))) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert a chapter heading< / span > < span class = "named-paragraph-number" > 6.1.1.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Example *: *(%**) *(%c+?)"< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Example *- *(%**) *(%c+?)"< / span > < span class = "plain-syntax" > ))) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert an example heading< / span > < span class = "named-paragraph-number" > 6.1.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "{defn *(%c*?)} *(%c+)"< / span > < span class = "plain-syntax" > )) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_4" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin a phrase definition< / span > < span class = "named-paragraph-number" > 6.1.1.1.4< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "{end}"< / span > < span class = "plain-syntax" > )) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_5" class = "named-paragraph-link" > < span class = "named-paragraph" > End a phrase definition< / span > < span class = "named-paragraph-number" > 6.1.1.1.5< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2023-07-21 13:49:36 +03:00
< 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 = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_8" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.8< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_9" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert space in paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.9< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_10" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert line in paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.10< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Regexp::dispose_of< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_code< / 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" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '{'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > 'a'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > 's'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 3< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > ' '< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > )-1) == < / span > < span class = "character-syntax" > '}'< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_n_characters< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 4< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_last_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::trim_white_space< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > language< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dc.html#SP7" class = "function-link" > < span class = "function-syntax" > DocumentationCompiler::get_language< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > language< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TEMPORARY_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > err< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > err< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "cannot find a language called '%S'"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > err< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / 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" > err< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_11" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin code< / span > < span class = "named-paragraph-number" > 6.1.1.1.11< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_13" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert line in code sample< / span > < span class = "named-paragraph-number" > 6.1.1.1.13< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_13" class = "named-paragraph-link" > < span class = "named-paragraph" > Insert line in code sample< / span > < span class = "named-paragraph-number" > 6.1.1.1.13< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > }< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1" > § 6.1.1< / a > (twice).< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_1" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.1. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert a chapter heading< / span > < span class = "named-paragraph-number" > 6.1.1.1.1< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > chapter_number< / span > < span class = "plain-syntax" > ++;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > section_number< / 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" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > id< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [0] + < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [1] + < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [2];< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [1]++;< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > new_node< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_heading< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > ,< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > id< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > chapter_number< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > section_number< / span > < span class = "plain-syntax" > );< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Place this new structural node in the tree< / span > < span class = "named-paragraph-number" > 6.1.1.1.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_2" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.2. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert a section heading< / span > < span class = "named-paragraph-number" > 6.1.1.1.2< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > section_number< / 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" > level< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > id< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [0] + < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [1] + < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [2];< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_headings< / span > < span class = "plain-syntax" > [2]++;< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > new_node< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP3" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_heading< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > ,< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > id< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > chapter_number< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > section_number< / span > < span class = "plain-syntax" > );< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Place this new structural node in the tree< / span > < span class = "named-paragraph-number" > 6.1.1.1.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_3" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.3. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert an example heading< / span > < span class = "named-paragraph-number" > 6.1.1.1.3< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 3< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > star_count< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0]);< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > new_node< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP5" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_example< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [1], < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ,< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > star_count< / span > < span class = "plain-syntax" > , ++(< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > total_examples< / span > < span class = "plain-syntax" > ));< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_1_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Place this new structural node in the tree< / span > < span class = "named-paragraph-number" > 6.1.1.1.1.1< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > star_count< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "this example should be marked (before the title) '*', '**', '***' or '****' for difficulty"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / 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" > star_count< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 4< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "four stars '****' is the maximum difficulty rating allowed"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_4" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.4. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Begin a phrase definition< / span > < span class = "named-paragraph-number" > 6.1.1.1.4< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-19 01:43:45 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_2" class = "named-paragraph-link" > < span class = "named-paragraph" > Check for runaway phrase definitions< / span > < span class = "named-paragraph-number" > 6.1.1.2< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > =< / span >
< span class = "plain-syntax" > < / span > < a href = "7-dt.html#SP9" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_phrase_defn< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [0], < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > exp< / span > < span class = "plain-syntax" > [1]);< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_5" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.5. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > End a phrase definition< / span > < span class = "named-paragraph-number" > 6.1.1.1.5< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-19 01:43:45 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_3" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > parent< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "{end} without {defn}"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > }< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > language< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > default_language< / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_1_1" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.1.1. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Place this new structural node in the tree< / span > < span class = "named-paragraph-number" > 6.1.1.1.1.1< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_2" class = "named-paragraph-link" > < span class = "named-paragraph" > Check for runaway phrase definitions< / span > < span class = "named-paragraph-number" > 6.1.1.2< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > -1; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > > =0; < / span > < span class = "identifier-syntax" > j< / 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" > current_headings< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > new_node< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ]);< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > ] = < / span > < span class = "identifier-syntax" > new_node< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > level< / span > < span class = "plain-syntax" > +1; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > < 4; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ++) < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ] = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > language< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > default_language< / span > < span class = "plain-syntax" > ;< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1_1" > § 6.1.1.1.1< / a > , < a href = "7-dc.html#SP6_1_1_1_2" > § 6.1.1.1.2< / a > , < a href = "7-dc.html#SP6_1_1_1_3" > § 6.1.1.1.3< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_2" class = "paragraph-anchor" > < / a > < b > § 6.1.1.2. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Check for runaway phrase definitions< / span > < span class = "named-paragraph-number" > 6.1.1.2< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-20 01:46:39 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "{defn} has no {end}"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1" > § 6.1.1< / a > , < a href = "7-dc.html#SP6_1_1_1_4" > § 6.1.1.1.4< / a > , < a href = "7-dc.html#SP6_1_1_1_1_1" > § 6.1.1.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_6" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.6. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP7" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_passage< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > );< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_phrase_defn< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_phrase_defn< / 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" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > =3; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > > =0; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > --)< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_headings< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ]);< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > , < a href = "7-dc.html#SP6_1_1_1_3" > § 6.1.1.1.3< / a > (twice), < a href = "7-dc.html#SP6_1_1_1_4" > § 6.1.1.1.4< / a > , < a href = "7-dc.html#SP6_1_1_1_5" > § 6.1.1.1.5< / a > , < a href = "7-dc.html#SP6_1_1_2" > § 6.1.1.2< / a > , < a href = "7-dc.html#SP6_1_1_1_8" > § 6.1.1.1.8< / a > , < a href = "7-dc.html#SP6_1_1_1_11" > § 6.1.1.1.11< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_3" class = "paragraph-anchor" > < / a > < b > § 6.1.1.3. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Complete passage if in one< / span > < span class = "named-paragraph-number" > 6.1.1.3< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1" > § 6.1.1< / a > , < a href = "7-dc.html#SP6_1_1_1_1" > § 6.1.1.1.1< / a > , < a href = "7-dc.html#SP6_1_1_1_2" > § 6.1.1.1.2< / a > , < a href = "7-dc.html#SP6_1_1_1_3" > § 6.1.1.1.3< / a > , < a href = "7-dc.html#SP6_1_1_1_4" > § 6.1.1.1.4< / a > , < a href = "7-dc.html#SP6_1_1_1_5" > § 6.1.1.1.5< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_7" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.7. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< 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 = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7_1" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.7.1< / span > < / a > < / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > ) < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7_2" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7.2< / span > < / a > < / span >
2023-07-18 00:54:02 +03:00
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > (twice), < a href = "7-dc.html#SP6_1_1_1_4" > § 6.1.1.1.4< / a > , < a href = "7-dc.html#SP6_1_1_3" > § 6.1.1.3< / a > , < a href = "7-dc.html#SP6_1_1_1_8" > § 6.1.1.1.8< / a > , < a href = "7-dc.html#SP6_1_1_1_11" > § 6.1.1.1.11< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_8" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.8. < / b > Line breaks are treated as spaces in the content of a paragraph, so that
2023-07-18 00:54:02 +03:00
< span class = "extract" > < span class = "extract-syntax" > P-> content< / span > < / span > here can be a long text but one which contains no line breaks.
< / p >
2023-07-21 13:49:36 +03:00
< p class = "commentary" > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Begin paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.8< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP11" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_paragraph< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > );< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_9" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.9. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert space in paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.9< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > cdoc_paragraph< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > RETRIEVE_POINTER_cdoc_paragraph< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > content< / 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" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > content< / span > < span class = "plain-syntax" > ) > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > content< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > " "< / span > < span class = "plain-syntax" > );< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_10" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.10. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert line in paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.10< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > cdoc_paragraph< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > RETRIEVE_POINTER_cdoc_paragraph< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > content< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > content< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_7_1" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.7.1. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Complete paragraph< / span > < span class = "named-paragraph-number" > 6.1.1.1.7.1< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< 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 > < span class = "identifier-syntax" > current_paragraph< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1_7" > § 6.1.1.1.7< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_11" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.11. < / b > Line breaks are more significant in code samples, of course. Blank lines
2023-07-18 00:54:02 +03:00
at the end of a code sample are stripped out; and they cannot appear at the start
of a code sample either, since a non-blank indented line is needed to trigger one.
< / p >
2023-07-21 13:49:36 +03:00
< p class = "commentary" > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Begin code< / span > < span class = "named-paragraph-number" > 6.1.1.1.11< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_7" class = "named-paragraph-link" > < span class = "named-paragraph" > Complete paragraph or code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "named-paragraph-container code-font" > < a href = "7-dc.html#SP6_1_1_1_6" class = "named-paragraph-link" > < span class = "named-paragraph" > Begin passage if not already in one< / span > < span class = "named-paragraph-number" > 6.1.1.1.6< / span > < / a > < / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > paste_me< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > continue_me< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '*'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > ':'< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::trim_white_space< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > paste_me< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< 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" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '*'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '*'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > ':'< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::trim_white_space< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > continue_me< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
2023-07-21 13:49:36 +03:00
< 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" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '{'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '*'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '}'< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::trim_white_space< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > paste_me< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-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" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '{'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '*'< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '*'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 3< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '}'< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::delete_first_character< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Str::trim_white_space< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > continue_me< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > }< / span >
2023-07-21 13:49:36 +03:00
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP12" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_code_sample< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > paste_me< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > 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" > continue_me< / 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" > last_paste_code< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > cdoc_code_sample< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > RETRIEVE_POINTER_cdoc_code_sample< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > last_paste_code< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > content< / 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" > continuation< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > = < / span > < a href = "7-dt.html#SP15" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_source_error< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "cannot continue a paste here"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > E< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / 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" > paste_me< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > continue_me< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > last_paste_code< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > last_paste_code< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > current_passage< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pending_code_sample_blanks< / 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" > code_is_tabular< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_12" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.12. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert line break in code< / span > < span class = "named-paragraph-number" > 6.1.1.1.12< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > child< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pending_code_sample_blanks< / span > < span class = "plain-syntax" > ++;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > code_is_tabular< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_13" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.13. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Insert line in code sample< / span > < span class = "named-paragraph-number" > 6.1.1.1.13< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > =0; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > pending_code_sample_blanks< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < a href = "7-dt.html#SP14" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_code_line< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > );< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pending_code_sample_blanks< / 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" > match_results< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Regexp::create_mr< / 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" > Regexp::match< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "string-syntax" > "Table %c*"< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > code_is_tabular< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Regexp::dispose_of< / span > < span class = "plain-syntax" > (& < / span > < span class = "identifier-syntax" > mr< / span > < span class = "plain-syntax" > );< / span >
2023-07-19 01:43:45 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Trees::make_child< / span > < span class = "plain-syntax" > (< / span > < a href = "7-dt.html#SP14" class = "function-link" > < span class = "function-syntax" > DocumentationTree::new_code_line< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > cd< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > tree< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > line< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > indentation< / span > < span class = "plain-syntax" > -1, < / span > < span class = "identifier-syntax" > code_is_tabular< / span > < span class = "plain-syntax" > ),< / span >
2023-07-18 00:54:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > );< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > (twice).< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP6_1_1_1_7_2" class = "paragraph-anchor" > < / a > < b > § 6.1.1.1.7.2. < / b > < span class = "named-paragraph-container code-font" > < span class = "named-paragraph-defn" > Complete code< / span > < span class = "named-paragraph-number" > 6.1.1.1.7.2< / span > < / span > < span class = "comment-syntax" > =< / span >
2023-07-18 00:54:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > current_code< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > code_is_tabular< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-21 13:49:36 +03:00
< ul class = "endnotetexts" > < li > This code is used in < a href = "7-dc.html#SP6_1_1_1_7" > § 6.1.1.1.7< / a > .< / li > < / ul >
< p class = "commentary firstcommentary" > < a id = "SP7" class = "paragraph-anchor" > < / a > < b > § 7. < / b > < / p >
2023-07-20 01:46:39 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
2023-07-21 13:49:36 +03:00
< span class = "identifier-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > DocumentationCompiler::get_language< / 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" > DocumentationCompiler::get_language< / span > < / span > :< br / > < a href = "7-dc.html#SP6_1" > § 6.1< / a > , < a href = "7-dc.html#SP6_1_1_1" > § 6.1.1.1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > name< / span > < span class = "plain-syntax" > ) {< / span >
2023-07-20 01:46:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > inbuild_nest< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > = < / span > < a href = "1-ic.html#SP16" class = "function-link" > < span class = "function-syntax" > Supervisor::internal< / span > < / a > < 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" > N< / 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 = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pathname< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > LP< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Pathnames::down< / span > < span class = "plain-syntax" > (< / span > < a href = "2-nst.html#SP5" class = "function-link" > < span class = "function-syntax" > Nests::get_location< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "PLs"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Languages::set_default_directory< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > LP< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Languages::find_by_name< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-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" > pl< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > LOG< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "Did not load %S!\n"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > name< / 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" > pl< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2023-07-18 00:54:02 +03:00
< nav role = "progress" > < div class = "progresscontainer" >
2023-07-28 02:43:38 +03:00
< ul class = "progressbar" > < li class = "progressprev" > < a href = "7-dt.html" > ❮ < / a > < / li > < li class = "progresschapter" > < a href = "P-wtmd.html" > P< / a > < / li > < li class = "progresschapter" > < a href = "1-sm.html" > 1< / a > < / li > < li class = "progresschapter" > < a href = "2-gnr.html" > 2< / a > < / li > < li class = "progresschapter" > < a href = "3-bg.html" > 3< / a > < / li > < li class = "progresschapter" > < a href = "4-em.html" > 4< / a > < / li > < li class = "progresschapter" > < a href = "5-es.html" > 5< / a > < / li > < li class = "progresschapter" > < a href = "6-st.html" > 6< / a > < / li > < li class = "progresscurrentchapter" > 7< / li > < li class = "progresssection" > < a href = "7-tm.html" > tm< / a > < / li > < li class = "progresssection" > < a href = "7-eip.html" > eip< / a > < / li > < li class = "progresssection" > < a href = "7-ti.html" > ti< / a > < / li > < li class = "progresssection" > < a href = "7-tc.html" > tc< / a > < / li > < li class = "progresssection" > < a href = "7-dt.html" > dt< / a > < / li > < li class = "progresscurrent" > dc< / li > < li class = "progresssection" > < a href = "7-dr.html" > dr< / a > < / li > < li class = "progressnext" > < a href = "7-dr.html" > ❯ < / a > < / li > < / ul > < / div >
2023-07-18 00:54:02 +03:00
< / nav > <!-- End of weave -->
< / main >
< / body >
< / html >