2020-04-05 17:37:43 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
2020-04-08 22:41:00 +00:00
< title > The Painter< / title >
2020-04-20 22:26:08 +00:00
< link href = "../docs-assets/Breadcrumbs.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
2020-04-05 17:37:43 +00:00
< 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" >
2020-04-20 22:26:08 +00:00
< 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" >
2020-04-21 16:55:17 +00:00
< link href = "../docs-assets/Colours.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
2020-04-20 22:26:08 +00:00
2020-04-05 17:37:43 +00:00
< / head >
< body >
< nav role = "navigation" >
2020-04-13 16:06:45 +00:00
< h1 > < a href = "../index.html" >
2020-04-20 22:26:08 +00:00
< img src = "../docs-assets/Octagram.png" width = 72 height = 72" >
2020-04-13 16:06:45 +00:00
< / a > < / h1 >
< ul > < li > < a href = "index.html" > < span class = "selectedlink" > inweb< / span > < / a > < / li >
< / ul > < h2 > Foundation Module< / h2 > < ul >
< li > < a href = "../foundation-module/index.html" > foundation< / a > < / li >
2020-04-05 17:37:43 +00:00
< li > < a href = "../foundation-test/index.html" > foundation-test< / a > < / li >
2020-04-13 16:06:45 +00:00
< / ul > < h2 > Example Webs< / h2 > < ul >
2020-04-12 16:24:23 +00:00
< li > < a href = "../goldbach/index.html" > goldbach< / a > < / li >
< li > < a href = "../twinprimes/twinprimes.html" > twinprimes< / a > < / li >
2020-04-15 22:45:08 +00:00
< li > < a href = "../eastertide/index.html" > eastertide< / a > < / li >
2020-04-14 17:36:42 +00:00
< / ul > < h2 > Repository< / h2 > < ul >
2020-04-20 22:34:44 +00:00
< li > < a href = "https://github.com/ganelson/inweb" > < img src = "../docs-assets/github.png" height = 18 > github< / a > < / li >
2020-04-14 17:36:42 +00:00
< / ul > < h2 > Related Projects< / h2 > < ul >
< li > < a href = "../../../inform/docs/index.html" > inform< / a > < / li >
< li > < a href = "../../../intest/docs/index.html" > intest< / a > < / li >
2020-04-05 17:37:43 +00:00
2020-04-13 16:06:45 +00:00
< / ul >
2020-04-05 17:37:43 +00:00
< / nav >
< main role = "main" >
2020-04-16 22:51:03 +00:00
<!-- Weave of 'The Painter' generated by Inweb -->
2020-04-13 16:06:45 +00:00
< ul class = "crumbs" > < li > < a href = "../index.html" > Home< / a > < / li > < li > < a href = "index.html" > inweb< / a > < / li > < li > < a href = "index.html#4" > Chapter 4: Languages< / a > < / li > < li > < b > The Painter< / b > < / li > < / ul > < p class = "purpose" > A simple syntax-colouring engine.< / p >
2020-04-05 17:37:43 +00:00
2020-04-15 22:45:08 +00:00
< ul class = "toc" > < li > < a href = "4-tp.html#SP7" > § 7. Painting a file< / a > < / li > < / ul > < hr class = "tocbar" >
2020-04-06 23:53:26 +00:00
2020-04-05 17:37:43 +00:00
< p class = "inwebparagraph" > < a id = "SP1" > < / a > < b > § 1. < / b > This is a very simple syntax colouring algorithm. The work is done by the
2020-04-22 22:57:09 +00:00
function < span class = "extract" > < span class = "extract-syntax" > Painter::syntax_colour< / span > < / span > , which can in principle be applied to texts
2020-04-05 17:37:43 +00:00
of any length. But it's usually convenient to run it on a long file one line
2020-04-22 22:57:09 +00:00
at a time, so that it is called repeatedly. The variable < span class = "extract" > < span class = "extract-syntax" > colouring_state< / span > < / span >
2020-04-05 17:37:43 +00:00
remembers where we were at the end of the previous line, so that we can pick
up again later at the start of the next.
< / p >
< p class = "inwebparagraph" > Because of that, we need to call the following before we begin a run of calls
2020-04-22 22:57:09 +00:00
to < span class = "extract" > < span class = "extract-syntax" > Painter::syntax_colour< / span > < / span > :
2020-04-05 17:37:43 +00:00
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > painter_count< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::reset_syntax_colouring< / span > < button class = "popup" onclick = "togglePopup('usagePopup1')" > ...< span class = "popuptext" id = "usagePopup1" > Usage of < b > Painter::reset_syntax_colouring< / b > :< br > < a href = "4-tp.html#SP7" > § 7< / a > , The Weaver - < a href = "3-tw.html#SP2_7_2_3_2_6" > § 2.7.2.3.2.6< / a > < br> ACME Support - < a href = "4-as.html#SP10" > § 10< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > colouring_state< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > PLAIN_COLOUR< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > painter_count< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-04-22 22:57:09 +00:00
< / pre > < p class = "inwebparagraph" > < a id = "SP2" > < / a > < b > § 2. < / b > As we begin, the text to colour is in < span class = "extract" > < span class = "extract-syntax" > matter< / span > < / span > , while < span class = "extract" > < span class = "extract-syntax" > colouring< / span > < / span > is an
2020-04-05 17:37:43 +00:00
equal-length text where each character represents the colour of its
2020-04-22 22:57:09 +00:00
corresponding character in < span class = "extract" > < span class = "extract-syntax" > matter< / span > < / span > . For example, we might start as:
2020-04-05 17:37:43 +00:00
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "plain-syntax" > int x = 55;< / span >
< span class = "plain-syntax" > ppppppppppp< / span >
2020-04-05 17:37:43 +00:00
< / pre >
2020-04-22 22:57:09 +00:00
< p class = "inwebparagraph" > with every character having < span class = "extract" > < span class = "extract-syntax" > PLAIN_COLOUR< / span > < / span > , but end up with:
2020-04-05 17:37:43 +00:00
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "plain-syntax" > int x = 55;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > rrr< / span > < span class = "plain-syntax" > p< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ppp< / span > < span class = "constant-syntax" > nn< / span > < span class = "plain-syntax" > p< / span >
2020-04-05 17:37:43 +00:00
< / pre >
< p class = "inwebparagraph" > We get to that by using a language's rules on literals, and then executing
its colouring program.
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::syntax_colour< / span > < button class = "popup" onclick = "togglePopup('usagePopup2')" > ...< span class = "popuptext" id = "usagePopup2" > Usage of < b > Painter::syntax_colour< / b > :< br > < a href = "4-tp.html#SP7" > § 7< / a > , ACME Support - < a href = "4-as.html#SP10" > § 10< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > hash_table< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > with_comments< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > ) - < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > with_comments< / 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" > part_before_comment< / 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" > part_within_comment< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "4-lm.html#SP6" class = "function-link" > < span class = "function-syntax" > LanguageMethods::parse_comment< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > ,< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > part_before_comment< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > part_within_comment< / span > < span class = "plain-syntax" > )) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / 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" > =< / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > part_before_comment< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > COMMENT_COLOUR< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > part_before_comment< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< 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" > part_before_comment< / 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" > part_within_comment< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP2" class = "function-link" > < span class = "function-syntax" > Painter::syntax_colour_inner< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-04-20 22:26:08 +00:00
2020-04-21 16:55:17 +00:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::syntax_colour_inner< / span > < button class = "popup" onclick = "togglePopup('usagePopup3')" > ...< span class = "popuptext" id = "usagePopup3" > Usage of < b > Painter::syntax_colour_inner< / b > :< br > none< / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > hash_table< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < < span class = "named-paragraph" > Spot identifiers, literal text and character constants< / span > < span class = "named-paragraph-number" > 2.1< / span > > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < < span class = "named-paragraph" > Spot literal numerical constants< / span > < span class = "named-paragraph-number" > 2.2< / span > > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < < span class = "named-paragraph" > Now run the colouring program< / span > < span class = "named-paragraph-number" > 2.4< / span > > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < p class = "inwebparagraph" > < a id = "SP2_1" > < / a > < b > § 2.1. < / b > < code class = "display" >
2020-04-20 22:26:08 +00:00
< < span class = "named-paragraph-defn" > Spot identifiers, literal text and character constants< / span > < span class = "named-paragraph-number" > 2.1< / span > > =
2020-04-05 17:37:43 +00:00
< / code > < / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > squote< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_first_char< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > character_literal< / 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" > squote_escape< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_first_char< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > character_literal_escape< / 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" > dquote< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_first_char< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > string_literal< / 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" > dquote_escape< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_first_char< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > string_literal_escape< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00: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" > i< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < = < / span > < span class = "identifier-syntax" > to< / 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" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > skip< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > NOT_A_COLOUR< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > one_off< / span > < span class = "plain-syntax" > = -1, < / span > < span class = "identifier-syntax" > will_be< / span > < span class = "plain-syntax" > = -1;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring_state< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PLAIN_COLOUR:< / span > < span class = "plain-syntax" > {< / span >
2020-04-21 23:52:25 +00:00
< 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 > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< 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 = "identifier-syntax" > dquote< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > colouring_state< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > STRING_COLOUR< / 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 = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > squote< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > colouring_state< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > CHARACTER_COLOUR< / 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 >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "4-tp.html#SP2_3" class = "function-link" > < span class = "function-syntax" > Painter::identifier_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ))< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > one_off< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > IDENTIFIER_COLOUR< / 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 = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CHARACTER_COLOUR:< / span > < span class = "plain-syntax" > {< / span >
2020-04-21 23:52:25 +00:00
< 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 > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< 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 = "identifier-syntax" > squote< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > will_be< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > PLAIN_COLOUR< / 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 = "identifier-syntax" > squote_escape< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > skip< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > CHARACTER_COLOUR< / 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 = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > STRING_COLOUR:< / span > < span class = "plain-syntax" > {< / span >
2020-04-21 23:52:25 +00:00
< 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 > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< 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 = "identifier-syntax" > dquote< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > will_be< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > PLAIN_COLOUR< / 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 = "identifier-syntax" > dquote_escape< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > skip< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > STRING_COLOUR< / 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 >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > one_off< / span > < span class = "plain-syntax" > > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > one_off< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > colouring_state< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > will_be< / span > < span class = "plain-syntax" > > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > colouring_state< / span > < span class = "plain-syntax" > = (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > will_be< / 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" > skip< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > NOT_A_COLOUR< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > )) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++; < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > skip< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < ul class = "endnotetexts" > < li > This code is used in < a href = "4-tp.html#SP2" > § 2< / a > .< / li > < / ul > < p class = "inwebparagraph" > < a id = "SP2_2" > < / a > < b > § 2.2. < / b > < code class = "display" >
2020-04-20 22:26:08 +00:00
< < span class = "named-paragraph-defn" > Spot literal numerical constants< / span > < span class = "named-paragraph-number" > 2.2< / span > > =
2020-04-05 17:37:43 +00:00
< / code > < / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > = -1, < / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < = < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > PLAIN_COLOUR< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > IDENTIFIER_COLOUR< / 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 > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / 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 > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > binary_literal_prefix< / span > < span class = "plain-syntax" > )) {< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00: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" > =0; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > < < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > binary_literal_prefix< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ++)< / span >
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > +< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "constant-syntax" > CONSTANT_COLOUR< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00: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 > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > octal_literal_prefix< / span > < span class = "plain-syntax" > )) {< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 8< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00: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" > =0; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > < < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > octal_literal_prefix< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ++)< / span >
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > +< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "constant-syntax" > CONSTANT_COLOUR< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00: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 > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > hexadecimal_literal_prefix< / span > < span class = "plain-syntax" > )) {< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 16< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00: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" > =0; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > < < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > hexadecimal_literal_prefix< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ++)< / span >
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > +< / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "constant-syntax" > CONSTANT_COLOUR< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > negative_literal_prefix< / span > < span class = "plain-syntax" > )) & & < / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > base< / 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" > base< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 10< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "constant-syntax" > CONSTANT_COLOUR< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / 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" > pass< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > -1:< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > ) & & (< / span > < a href = "../foundation-module/4-chr.html#SP1" class = "function-link" > < span class = "function-syntax" > Characters::isdigit< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > ))) {< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 10< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > pass< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / 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 = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 2< / 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" > '0'< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > '1'< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > pass< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ; < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 10< / span > < span class = "plain-syntax" > : < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-chr.html#SP1" class = "function-link" > < span class = "function-syntax" > Characters::isdigit< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > pass< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ; < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 16< / span > < span class = "plain-syntax" > : < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-chr.html#SP1" class = "function-link" > < span class = "function-syntax" > Characters::isdigit< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > pass< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-chr.html#SP1" class = "function-link" > < span class = "function-syntax" > Characters::tolower< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00: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 = "character-syntax" > 'a'< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > 'b'< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > 'c'< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > 'd'< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > 'e'< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > 'f'< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > pass< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / 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" > pass< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , (< / span > < span class = "reserved-syntax" > char< / span > < span class = "plain-syntax" > ) < / span > < span class = "constant-syntax" > CONSTANT_COLOUR< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-chr.html#SP2" class = "function-link" > < span class = "function-syntax" > Characters::is_whitespace< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > dec_possible< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > base< / span > < span class = "plain-syntax" > = -1;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < ul class = "endnotetexts" > < li > This code is used in < a href = "4-tp.html#SP2" > § 2< / a > .< / li > < / ul > < p class = "inwebparagraph" > < a id = "SP2_3" > < / a > < b > § 2.3. < / b > For the moment, we always adopt the C rules on identifiers: they have to
2020-04-05 17:37:43 +00:00
begin with an underscore or letter, then continue with underscores or
alphanumeric characters, except that if the language allows it then they
2020-04-22 22:57:09 +00:00
can contain a < span class = "extract" > < span class = "extract-syntax" > ::< / span > < / span > namespace divider.
2020-04-05 17:37:43 +00:00
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::identifier_at< / span > < button class = "popup" onclick = "togglePopup('usagePopup4')" > ...< span class = "popuptext" id = "usagePopup4" > Usage of < b > Painter::identifier_at< / b > :< br > < a href = "4-tp.html#SP2_1" > § 2.1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / 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" > ) {< / span >
2020-04-21 23:52:25 +00:00
< 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 > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / 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" > i< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) & & (< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > -1) == < / span > < span class = "constant-syntax" > IDENTIFIER_COLOUR< / span > < span class = "plain-syntax" > )) {< / span >
2020-04-21 16:55:17 +00:00
< 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 = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > > = < / span > < span class = "character-syntax" > 'A'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > < = < / span > < span class = "character-syntax" > 'Z'< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > > = < / span > < span class = "character-syntax" > 'a'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > < = < / span > < span class = "character-syntax" > 'z'< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > > = < / span > < span class = "character-syntax" > '0'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > < = < / span > < span class = "character-syntax" > '9'< / span > < span class = "plain-syntax" > ))) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "character-syntax" > ':'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > supports_namespaces< / span > < span class = "plain-syntax" > )) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / 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" > d< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00: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 = "character-syntax" > '0'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > d< / span > < span class = "plain-syntax" > < = < / span > < span class = "character-syntax" > '9'< / span > < span class = "plain-syntax" > )) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > c< / 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" > c< / span > < span class = "plain-syntax" > > = < / span > < span class = "character-syntax" > 'A'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > < = < / span > < span class = "character-syntax" > 'Z'< / span > < span class = "plain-syntax" > )) ||< / span >
< span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > > = < / span > < span class = "character-syntax" > 'a'< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > < = < / span > < span class = "character-syntax" > 'z'< / span > < span class = "plain-syntax" > ))) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < p class = "inwebparagraph" > < a id = "SP2_4" > < / a > < b > § 2.4. < / b > With those preliminaries out of the way, the language's colouring program
2020-04-05 17:37:43 +00:00
takes over.
< / p >
< p class = "macrodefinition" > < code class = "display" >
2020-04-20 22:26:08 +00:00
< < span class = "named-paragraph-defn" > Now run the colouring program< / span > < span class = "named-paragraph-number" > 2.4< / span > > =
2020-04-05 17:37:43 +00:00
< / code > < / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< 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 = "element-syntax" > program< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP3" class = "function-link" > < span class = "function-syntax" > Painter::execute< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > program< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > painter_count< / span > < span class = "plain-syntax" > ++);< / span >
2020-04-21 16:55:17 +00:00
< / pre > < ul class = "endnotetexts" > < li > This code is used in < a href = "4-tp.html#SP2" > § 2< / a > .< / li > < / ul > < p class = "inwebparagraph" > < a id = "SP3" > < / a > < b > § 3. < / b > The run-type for a block determines what the rules in it apply to: the
2020-04-05 17:37:43 +00:00
whole snippet of text, or each character on its own, or each run of characters
of a given sort. Note that we work width-first, as it were: we complete each
rule across the whole snippet before moving on to the next.
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::execute< / span > < button class = "popup" onclick = "togglePopup('usagePopup5')" > ...< span class = "popuptext" id = "usagePopup5" > Usage of < b > Painter::execute< / b > :< br > < a href = "4-tp.html#SP2_4" > § 2.4< / a > , < a href = "4-tp.html#SP6" > § 6< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > hash_table< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > colouring_language_block< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > N< / 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" > block< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "no block"< / 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" > colouring_at_start< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP17" class = "function-link" > < span class = "function-syntax" > Str::copy< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring_at_start< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > colouring_rule< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > rule< / 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" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > colouring_rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > rules< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > run< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WHOLE_LINE_CRULE_RUN:< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ,< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > )?1:< / span > < span class = "identifier-syntax" > N< / 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 = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CHARACTERS_CRULE_RUN:< / 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > -< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > +1);< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CHARACTERS_IN_CRULE_RUN:< / 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" > count< / span > < span class = "plain-syntax" > =1, < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00: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" > =0; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > < < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > char_set< / 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" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ) == < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > char_set< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ) ) {< / span >
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > count< / span > < span class = "plain-syntax" > ++);< / span >
2020-04-21 16:55:17 +00:00
< 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 = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INSTANCES_CRULE_RUN:< / span > < span class = "plain-syntax" > {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > run_instance< / span > < span class = "plain-syntax" > ) - < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > > = < / span > < span class = "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" > count< / span > < span class = "plain-syntax" > =1, < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > - < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > run_instance< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > +< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > count< / span > < span class = "plain-syntax" > ++);< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > += < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > ;< / 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 = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > MATCHES_CRULE_RUN:< / 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" > count< / span > < span class = "plain-syntax" > =1, < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-pm.html#SP10" class = "function-link" > < span class = "function-syntax" > Regexp::match_from< / span > < / a > < span class = "plain-syntax" > (& (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_regexp_text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > +< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > -1, < / span > < span class = "identifier-syntax" > count< / span > < span class = "plain-syntax" > ++);< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > += < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > -1;< / span >
< span class = "plain-syntax" > }< / 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 = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > BRACKETS_CRULE_RUN:< / 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 = "constant-syntax" > MAX_BRACKETED_SUBEXPRESSIONS< / 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" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > exp< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ])< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP15" class = "function-link" > < span class = "function-syntax" > Str::clear< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > exp< / 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 > < a href = "../foundation-module/4-pm.html#SP10" class = "function-link" > < span class = "function-syntax" > Regexp::match< / span > < / a > < span class = "plain-syntax" > (& (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_regexp_text< / span > < span class = "plain-syntax" > ))< / span >
2020-04-21 16:55:17 +00: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" > count< / span > < span class = "plain-syntax" > =1, < / 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 = "constant-syntax" > MAX_BRACKETED_SUBEXPRESSIONS< / 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" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > exp_at< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ] > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > ,< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > exp_at< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ],< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > exp_at< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ] + < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > .< / span > < span class = "element-syntax" > exp< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ])-1,< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > count< / 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 = "identifier-syntax" > default:< / 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" > ident_from< / span > < span class = "plain-syntax" > = -1, < / span > < span class = "identifier-syntax" > 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 = "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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > col< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring_at_start< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > col< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > run< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > block< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > run< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > UNQUOTED_COLOUR< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > col< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > STRING_COLOUR< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > col< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > CHARACTER_COLOUR< / 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" > ident_from< / span > < span class = "plain-syntax" > == -1) < / span > < span class = "identifier-syntax" > ident_from< / 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" > else< / 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" > ident_from< / span > < span class = "plain-syntax" > > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ident_from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > -1, < / span > < span class = "identifier-syntax" > count< / span > < span class = "plain-syntax" > ++);< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ident_from< / span > < span class = "plain-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" > ident_from< / span > < span class = "plain-syntax" > > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP4" class = "function-link" > < span class = "function-syntax" > Painter::execute_rule< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ident_from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > count< / span > < span class = "plain-syntax" > ++);< / span >
2020-04-21 16:55:17 +00:00
< 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 = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring_at_start< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < p class = "inwebparagraph" > < a id = "SP4" > < / a > < b > § 4. < / b > Rules have the form: if X, then Y.
2020-04-05 17:37:43 +00:00
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::execute_rule< / span > < button class = "popup" onclick = "togglePopup('usagePopup6')" > ...< span class = "popuptext" id = "usagePopup6" > Usage of < b > Painter::execute_rule< / b > :< br > < a href = "4-tp.html#SP3" > § 3< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > hash_table< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > colouring_rule< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "4-tp.html#SP5" class = "function-link" > < span class = "function-syntax" > Painter::satisfies< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > ) == < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > sense< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP6" class = "function-link" > < span class = "function-syntax" > Painter::follow< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > }< / span >
< / pre > < p class = "inwebparagraph" > < a id = "SP5" > < / a > < b > § 5. < / b > Here we test the "if X":
2020-04-05 17:37:43 +00:00
< / p >
< pre class = "definitions" >
2020-04-22 22:57:09 +00:00
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > UNSPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > < / span > < span class = "comment" > for < / span > < span class = "extract" > < span class = "extract-syntax" > prefix P< / span > < / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > SPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 3< / span > < span class = "plain-syntax" > < / span > < span class = "comment" > for < / span > < span class = "extract" > < span class = "extract-syntax" > spaced prefix P< / span > < / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > OPTIONALLY_SPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 4< / span > < span class = "plain-syntax" > < / span > < span class = "comment" > for < / span > < span class = "extract" > < span class = "extract-syntax" > optionally spaced prefix P< / span > < / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > UNSPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 5< / span > < span class = "plain-syntax" > < / span > < span class = "comment" > for < / span > < span class = "extract" > < span class = "extract-syntax" > suffix P< / span > < / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > SPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 6< / span > < span class = "plain-syntax" > < / span > < span class = "comment" > for < / span > < span class = "extract" > < span class = "extract-syntax" > spaced suffix P< / span > < / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > OPTIONALLY_SPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 7< / span > < span class = "plain-syntax" > < / span > < span class = "comment" > for < / span > < span class = "extract" > < span class = "extract-syntax" > optionally spaced suffix P< / span > < / span >
2020-04-05 17:37:43 +00:00
< / pre >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::satisfies< / span > < button class = "popup" onclick = "togglePopup('usagePopup7')" > ...< span class = "popuptext" id = "usagePopup7" > Usage of < b > Painter::satisfies< / b > :< br > < a href = "4-tp.html#SP4" > § 4< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > hash_table< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > colouring_rule< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > N< / 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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > 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" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > number_of< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > number< / span > < span class = "plain-syntax" > != ((< / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > -1)%(< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > number_of< / span > < span class = "plain-syntax" > )) + < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / 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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > number< / span > < span class = "plain-syntax" > != < / span > < span class = "identifier-syntax" > N< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / 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 = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_regexp_text< / span > < span class = "plain-syntax" > [0]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TEMPORARY_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 23:52:25 +00: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" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > j< / span > < span class = "plain-syntax" > ++) < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > , < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / 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" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > rv< / span > < span class = "plain-syntax" > = < / span > < a href = "../foundation-module/4-pm.html#SP10" class = "function-link" > < span class = "function-syntax" > Regexp::match< / span > < / a > < span class = "plain-syntax" > (& (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > mr< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_regexp_text< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rv< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00: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 > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > ) > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > UNSPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > SPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > OPTIONALLY_SPACED_RULE_PREFIX< / 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" > pos< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > from< / 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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > UNSPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > while< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) & & (< / span > < a href = "../foundation-module/4-chr.html#SP2" class = "function-link" > < span class = "function-syntax" > Characters::is_whitespace< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > -1))) < / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > --;< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > SPACED_RULE_PREFIX< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ))< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > -< / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > fix_position< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > -< / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00: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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > UNSPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > SPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > ) ||< / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > OPTIONALLY_SPACED_RULE_SUFFIX< / 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" > pos< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > + < / span > < span class = "constant-syntax" > 1< / 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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > UNSPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > while< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > < < / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > )) & & (< / span > < a href = "../foundation-module/4-chr.html#SP2" class = "function-link" > < span class = "function-syntax" > Characters::is_whitespace< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ))) < / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ++;< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_prefix< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > SPACED_RULE_SUFFIX< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ))< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::includes_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > fix_position< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > ) != < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > -< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > +1)< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ) != < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > -< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ))< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / 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 = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_keyword_of_colour< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > NOT_A_COLOUR< / 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" > id< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP26" class = "function-link" > < span class = "function-syntax" > Str::substr< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > id< / span > < span class = "plain-syntax" > , < / span > < a href = "../foundation-module/4-sm.html#SP10" class = "function-link" > < span class = "function-syntax" > Str::at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ), < / span > < a href = "../foundation-module/4-sm.html#SP10" class = "function-link" > < span class = "function-syntax" > Str::at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > +1));< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > rw< / span > < span class = "plain-syntax" > = < / span > < a href = "3-ta.html#SP10" class = "function-link" > < span class = "function-syntax" > Analyser::is_reserved_word< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > id< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_keyword_of_colour< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > id< / 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" > rw< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_colour< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > NOT_A_COLOUR< / 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ) != < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_colour< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > FALSE< / 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 = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < p class = "inwebparagraph" > < a id = "SP6" > < / a > < b > § 6. < / b > And here we carry out the "then Y":
2020-04-05 17:37:43 +00:00
< / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::follow< / span > < button class = "popup" onclick = "togglePopup('usagePopup8')" > ...< span class = "popuptext" id = "usagePopup8" > Usage of < b > Painter::follow< / b > :< br > < a href = "4-tp.html#SP4" > § 4< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > hash_table< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > colouring_rule< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > to< / 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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > execute_block< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP3" class = "function-link" > < span class = "function-syntax" > Painter::execute< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HT< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > execute_block< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00: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" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > debug< / span > < span class = "plain-syntax" > ) < / span > < < span class = "named-paragraph" > Print some debugging text< / span > < span class = "named-paragraph-number" > 6.1< / 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" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > set_to_colour< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > NOT_A_COLOUR< / 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > set_to_colour< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > set_prefix_to_colour< / span > < span class = "plain-syntax" > != < / span > < span class = "constant-syntax" > NOT_A_COLOUR< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00: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" > i< / span > < span class = "plain-syntax" > =< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > fix_position< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > fix_position< / span > < span class = "plain-syntax" > +< / span > < a href = "../foundation-module/4-sm.html#SP8" class = "function-link" > < span class = "function-syntax" > Str::len< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > match_text< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP14" class = "function-link" > < span class = "function-syntax" > Str::put_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > rule< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > set_prefix_to_colour< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < p class = "inwebparagraph" > < a id = "SP6_1" > < / a > < b > § 6.1. < / b > < code class = "display" >
2020-04-20 22:26:08 +00:00
< < span class = "named-paragraph-defn" > Print some debugging text< / span > < span class = "named-paragraph-number" > 6.1< / span > > =
2020-04-05 22:28:05 +00:00
< / code > < / p >
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PRINT< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "[%d, %d] text: "< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "constant-syntax" > STDOUT< / span > < span class = "plain-syntax" > , < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > matter< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ));< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PRINT< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "\n[%d, %d] cols: "< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > to< / 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" > =< / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < =< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++)< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "constant-syntax" > STDOUT< / span > < span class = "plain-syntax" > , < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > colouring< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ));< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PRINT< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "\n"< / span > < span class = "plain-syntax" > );< / span >
< / pre > < ul class = "endnotetexts" > < li > This code is used in < a href = "4-tp.html#SP6" > § 6< / a > .< / li > < / ul > < p class = "inwebparagraph" > < a id = "SP7" > < / a > < b > § 7. Painting a file. < / b > < / p >
2020-04-06 23:53:26 +00:00
2020-04-21 16:55:17 +00:00
< pre class = "displayed-code all-displayed-code" >
< span class = "reserved-syntax" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > Painter::lines< / span > < button class = "popup" onclick = "togglePopup('usagePopup9')" > ...< span class = "popuptext" id = "usagePopup9" > Usage of < b > Painter::lines< / b > :< br > The Parser - < a href = "2-tp.html#SP1_1_7_7_2" > § 1.1.7.7.2< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > filename< / 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" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NEW_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-tf.html#SP5" class = "function-link" > < span class = "function-syntax" > TextFiles::read< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "unable to read file of textual extract"< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > ,< / span >
< span class = "plain-syntax" > & < / span > < a href = "4-tp.html#SP7" class = "function-link" > < span class = "function-syntax" > Painter::text_file_helper< / span > < / a > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > n< / span > < span class = "plain-syntax" > = -1, < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > T< / 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" > T< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > ++;< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP23" class = "function-link" > < span class = "function-syntax" > Str::is_whitespace< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > FALSE< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > n< / 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 > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > n< / 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" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > R< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NEW_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / 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" > LOOP_OVER_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / 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 = "identifier-syntax" > n< / 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" > T< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > R< / 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" > R< / 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" > L< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-04-20 22:26:08 +00:00
2020-04-21 16:55:17 +00:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::text_file_helper< / span > < button class = "popup" onclick = "togglePopup('usagePopup10')" > ...< span class = "popuptext" id = "usagePopup10" > Usage of < b > Painter::text_file_helper< / b > :< br > none< / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_file_position< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tfp< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > state< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > = (< / span > < span class = "reserved-syntax" > linked_list< / span > < span class = "plain-syntax" > *) < / span > < span class = "identifier-syntax" > state< / span > < span class = "plain-syntax" > ;< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ADD_TO_LINKED_LIST< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP3" class = "function-link" > < span class = "function-syntax" > Str::duplicate< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > text< / span > < span class = "plain-syntax" > ), < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > }< / span >
2020-04-20 22:26:08 +00:00
2020-04-21 16:55:17 +00:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Painter::colour_file< / span > < button class = "popup" onclick = "togglePopup('usagePopup11')" > ...< span class = "popuptext" id = "usagePopup11" > Usage of < b > Painter::colour_file< / b > :< br > Program Control - < a href = "1-pc.html#SP7_3" > § 7.3< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > programming_language< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > filename< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > coloured< / span > < span class = "plain-syntax" > ) {< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > linked_list< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > = < / span > < a href = "4-tp.html#SP7" class = "function-link" > < span class = "function-syntax" > Painter::lines< / span > < / a > < 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" > pl< / span > < span class = "plain-syntax" > ) < / span > < a href = "4-tp.html#SP1" class = "function-link" > < span class = "function-syntax" > Painter::reset_syntax_colouring< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > T< / 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" > T< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > text_stream< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > L< / 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 = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) { < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "character-syntax" > '\n'< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > coloured< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > NEWLINE_COLOUR< / span > < span class = "plain-syntax" > ); }< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "../foundation-module/4-sm.html#SP24" class = "function-link" > < span class = "function-syntax" > Str::trim_white_space_at_end< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TEMPORARY_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ST< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TEMPORARY_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > SC< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ) == < / span > < span class = "character-syntax" > '\t'< / span > < span class = "plain-syntax" > )< / span >
2020-04-21 16:55:17 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ST< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > " "< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > else< / span >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > ST< / span > < span class = "plain-syntax" > , < / span > < a href = "../foundation-module/4-sm.html#SP13" class = "function-link" > < span class = "function-syntax" > Str::get< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ));< / span >
2020-04-21 16:55:17 +00:00
< 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 >
2020-04-21 23:52:25 +00:00
< span class = "plain-syntax" > < / span > < a href = "4-tp.html#SP2" class = "function-link" > < span class = "function-syntax" > Painter::syntax_colour< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > , (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > )?(& (< / span > < span class = "identifier-syntax" > pl< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > built_in_keywords< / span > < span class = "plain-syntax" > )):< / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ST< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > SC< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > TRUE< / span > < span class = "plain-syntax" > );< / span >
2020-04-21 16:55:17 +00: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" > LOOP_THROUGH_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ST< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > SC< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > PLAIN_COLOUR< / span > < span class = "plain-syntax" > );< / 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" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ST< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > coloured< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "%S"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > SC< / 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" > c< / span > < span class = "plain-syntax" > > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) { < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > to< / span > < span class = "plain-syntax" > , < / span > < span class = "character-syntax" > '\n'< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > coloured< / span > < span class = "plain-syntax" > , < / span > < span class = "constant-syntax" > NEWLINE_COLOUR< / span > < span class = "plain-syntax" > ); }< / span >
< span class = "plain-syntax" > }< / span >
< / pre > < hr class = "tocbar" >
2020-04-05 17:37:43 +00:00
< ul class = "toc" > < li > < a href = "4-as.html" > Back to 'ACME Support'< / a > < / li > < li > < a href = "4-cl.html" > Continue with 'C-Like Languages'< / a > < / li > < / ul > < hr class = "tocbar" >
<!-- End of weave -->
< / main >
< / body >
< / html >