2020-07-04 01:01:02 +03:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
< title > Adverb Phrases of Occurrence< / title >
< link href = "../docs-assets/Breadcrumbs.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< meta name = "viewport" content = "width=device-width initial-scale=1" >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
< link href = "../docs-assets/Contents.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Progress.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Navigation.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Fonts.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Base.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< script >
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
< / script >
< link href = "../docs-assets/Popups.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Colours.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Preform-Colours.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< / head >
< body class = "commentary-font" >
< nav role = "navigation" >
2022-04-28 19:37:28 +03:00
< h1 > < a href = "../index.html" >
2020-07-04 01:01:02 +03:00
< img src = "../docs-assets/Inform.png" height = 72" >
< / a > < / h1 >
2022-04-28 19:37:28 +03:00
< ul > < li > < a href = "../index.html" > home< / a > < / li >
2022-04-04 20:31:44 +03:00
< / ul > < h2 > Compiler< / h2 > < ul >
< li > < a href = "../structure.html" > structure< / a > < / li >
< li > < a href = "../inbuildn.html" > inbuild< / a > < / li >
< li > < a href = "../inform7n.html" > inform7< / a > < / li >
< li > < a href = "../intern.html" > inter< / a > < / li >
< li > < a href = "../services.html" > services< / a > < / li >
2022-04-18 17:46:46 +03:00
< li > < a href = "../secrets.html" > secrets< / a > < / li >
2022-04-04 20:31:44 +03:00
< / ul > < h2 > Other Tools< / h2 > < ul >
< li > < a href = "../inblorbn.html" > inblorb< / a > < / li >
< li > < a href = "../indocn.html" > indoc< / a > < / li >
< li > < a href = "../inform6.html" > inform6< / a > < / li >
< li > < a href = "../inpolicyn.html" > inpolicy< / a > < / li >
2022-04-14 00:09:08 +03:00
< / ul > < h2 > Resources< / h2 > < ul >
< li > < a href = "../extensions.html" > extensions< / a > < / li >
< li > < a href = "../kits.html" > kits< / a > < / li >
2022-04-04 20:31:44 +03:00
< / ul > < h2 > Repository< / h2 > < ul >
< li > < a href = "https://github.com/ganelson/inform" > < img src = "../docs-assets/github.png" height = 18 > github< / a > < / li >
< / ul > < h2 > Related Projects< / h2 > < ul >
2022-04-28 19:20:06 +03:00
< li > < a href = "../../../inweb/index.html" > inweb< / a > < / li >
< li > < a href = "../../../intest/index.html" > intest< / a > < / li >
2020-07-04 01:01:02 +03:00
< / ul >
< / nav >
< main role = "main" >
<!-- Weave of 'Adverb Phrases of Occurrence' generated by Inweb -->
< div class = "breadcrumbs" >
2022-04-28 19:37:28 +03:00
< ul class = "crumbs" > < li > < a href = "../index.html" > Home< / a > < / li > < li > < a href = "../services.html" > Services< / a > < / li > < li > < a href = "index.html" > linguistics< / a > < / li > < li > < a href = "index.html#3" > Chapter 3: VP Categories< / a > < / li > < li > < b > Adverb Phrases of Occurrence< / b > < / li > < / ul > < / div >
2020-07-04 01:01:02 +03:00
< p class = "purpose" > To parse representations of periods of time or of historical repetition.< / p >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP1" class = "paragraph-anchor" > < / a > < b > § 1. < / b > Natural language can talk about the extension of a situation into the past
2020-07-18 17:25:38 +03:00
in a number of ways, but we will model just two of these:
2020-07-04 01:01:02 +03:00
< / p >
2020-07-18 17:25:38 +03:00
< ul class = "items" > < li > (a) Something having been the case on a number of previous occasions, or
"times", as in: "for the third time";
< / li > < li > (b) Something having been the case on a number of previous turns, a unit
really only meaningful for turn-based simulations, as in: "for three turns".
< / li > < / ul >
2020-07-04 01:01:02 +03:00
< pre class = "definitions code-font" > < span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > TIMES_UNIT< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > < / span > < span class = "comment-syntax" > used for "for the third time"< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > TURNS_UNIT< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > < / span > < span class = "comment-syntax" > used for "for three turns"< / span >
< / pre >
2022-06-23 19:37:16 +03:00
< p class = "commentary firstcommentary" > < a id = "SP2" class = "paragraph-anchor" > < / a > < b > § 2. < / b > And the following constants are used to record how to measure the
2020-07-18 17:25:38 +03:00
threshold value — "for more than three turns" would be < span class = "extract" > < span class = "extract-syntax" > GT_REPM< / span > < / span > , and so
on. The default, < span class = "extract" > < span class = "extract-syntax" > NO_REPM< / span > < / span > , means that nothing is specified by way of
comparison — "four times" — and the meaning of that may depend on
context; Inform treats a < span class = "extract" > < span class = "extract-syntax" > NO_REPM< / span > < / span > occurrence quite carefully — see
2021-04-13 00:32:27 +03:00
< a href = "../runtime-module/5-chr.html" class = "internal" > Chronology (in runtime)< / a > .
2020-07-18 17:25:38 +03:00
< / p >
< pre class = "definitions code-font" > < span class = "definition-keyword" > enum< / span > < span class = "constant-syntax" > EQ_REPM< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 1< / span >
< span class = "definition-keyword" > enum< / span > < span class = "constant-syntax" > LT_REPM< / span >
< span class = "definition-keyword" > enum< / span > < span class = "constant-syntax" > LE_REPM< / span >
< span class = "definition-keyword" > enum< / span > < span class = "constant-syntax" > GT_REPM< / span >
< span class = "definition-keyword" > enum< / span > < span class = "constant-syntax" > GE_REPM< / span >
< span class = "definition-keyword" > enum< / span > < span class = "constant-syntax" > NO_REPM< / span >
< / pre >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP3" class = "paragraph-anchor" > < / a > < b > § 3. < / b > The following structure is used for the result of parsing some text for
2020-07-18 17:25:38 +03:00
a time period. For example, "X is 7 for the second time" would have as
its used wording "for the second time", and unused wording "X is 7".
< / p >
2020-07-04 01:01:02 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > typedef< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > time_period< / 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" > units< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > one of the two above< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > length< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > the duration or else the lower limit of an interval< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > until< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > < / span > < span class = "extract" > < span class = "extract-syntax" > -1< / span > < / span > < span class = "comment-syntax" > or else the upper limit of an interval< / span >
2020-07-18 17:25:38 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > test_operator< / span > < span class = "plain-syntax" > ; < / span > < span class = "comment-syntax" > one of the < / span > < span class = "extract" > < span class = "extract-syntax" > *_REPM< / span > < / span > < span class = "comment-syntax" > constants< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wording< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > used_wording< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > struct< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wording< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > unused_wording< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CLASS_DEFINITION< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > ;< / span >
< / pre >
< ul class = "endnotetexts" > < li > The structure time_period is private to this section.< / li > < / ul >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP4" class = "paragraph-anchor" > < / a > < b > § 4. < / b > Logging:
2020-07-04 01:01:02 +03:00
< / p >
< pre class = "displayed-code all-displayed-code code-font" >
2020-08-07 00:01:38 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::log< / span > < button class = "popup" onclick = "togglePopup('usagePopup1')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup1" > Usage of < span class = "code-font" > < span class = "function-syntax" > Occurrence::log< / span > < / span > :< br / > Linguistics Module - < a href = "1-lm.html#SP3_2" > § 3.2< / a > < br / > Diagrams - < a href = "1-dgr.html#SP3" > § 3< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > OUTPUT_STREAM< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > vtp< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > = (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *) < / span > < span class = "identifier-syntax" > vtp< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "< "< / span > < span class = "plain-syntax" > );< / span >
2020-07-18 17:25:38 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_operator< / 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" > EQ_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-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" > LT_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-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" > LE_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-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" > GT_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-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" > GE_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "> ="< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > until< / span > < span class = "plain-syntax" > > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "%d"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > until< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "%d"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > length< / 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" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > units< / 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" > TURNS_UNIT:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > " turns"< / 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" > TIMES_UNIT:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > " times"< / 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 = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > ": < invalid-units> "< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "> "< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< / pre >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP5" class = "paragraph-anchor" > < / a > < b > § 5. < / b > Access:
2020-07-18 17:25:38 +03:00
< / p >
2020-07-04 01:01:02 +03:00
2020-07-18 17:25:38 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::operator< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / 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" > tp< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > NO_REPM< / 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" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_operator< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::units< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / 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" > tp< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > TIMES_UNIT< / 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" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > units< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::length< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / 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" > tp< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > -1;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > length< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::until< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / 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" > tp< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > -1;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > until< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< span class = "identifier-syntax" > wording< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::used_wording< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / 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" > tp< / 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 time period"< / 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" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > used_wording< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
2020-07-27 15:26:59 +03:00
< span class = "identifier-syntax" > wording< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::unused_wording< / span > < button class = "popup" onclick = "togglePopup('usagePopup2')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup2" > Usage of < span class = "code-font" > < span class = "function-syntax" > Occurrence::unused_wording< / span > < / span > :< br / > Verb Phrases - < a href = "4-vp.html#SP5_4_1_1_1_3_4" > § 5.4.1.1.1.3.4< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-18 17:25:38 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tp< / 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 time period"< / 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" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > unused_wording< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< / pre >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP6" class = "paragraph-anchor" > < / a > < b > § 6. < / b > Sorting.
2020-07-18 17:25:38 +03:00
Sorting of time periods has to be by "specificity". A briefer time period
is in this sense more specific than a longer one, because it is more specific
about the time at which the behaviour occurs.
< / p >
2020-07-04 01:01:02 +03:00
2020-07-18 17:25:38 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::compare_specificity< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp1< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp2< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > tp1< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > tp2< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > )) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 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" > tp1< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > tp2< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > )) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 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" > tp2< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > tp1< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > )) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > -1;< / span >
2020-07-18 17:25:38 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > dc1< / span > < span class = "plain-syntax" > = < / span > < a href = "3-apoo.html#SP6" class = "function-link" > < span class = "function-syntax" > Occurrence::sorting_count< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tp1< / 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" > dc2< / span > < span class = "plain-syntax" > = < / span > < a href = "3-apoo.html#SP6" class = "function-link" > < span class = "function-syntax" > Occurrence::sorting_count< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tp2< / span > < span class = "plain-syntax" > );< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > dc1< / span > < span class = "plain-syntax" > > < / span > < span class = "identifier-syntax" > dc2< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > -1;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > dc1< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > dc2< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > return< / 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" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > Occurrence::sorting_count< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / 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" > L< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > length< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > < < / span > < span class = "constant-syntax" > 0< / 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" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > until< / 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" > return< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > until< / span > < span class = "plain-syntax" > - < / span > < span class = "identifier-syntax" > L< / 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" > else< / 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" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_operator< / 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" > NO_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / 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" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > EQ_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / 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" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LT_REPM:< / 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 = "constant-syntax" > 1< / 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" > LE_REPM:< / 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 > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > GT_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 1000000< / span > < span class = "plain-syntax" > - (< / span > < span class = "identifier-syntax" > L< / 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" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > GE_REPM:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 1000000< / 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 = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-07-04 01:01:02 +03:00
< / pre >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP7" class = "paragraph-anchor" > < / a > < b > § 7. < / b > Historical references are textual indications that a condition compares
2020-07-18 17:25:38 +03:00
the present state with past states: for example, "for more than the third time".
Note that every HR contains one of the words below, so that if
2020-07-04 01:01:02 +03:00
< historical-reference-possible> fails on an excerpt then it
cannot contain any HR; this cuts down our parsing time considerably.
< / p >
< pre class = "Preform-displayed-code all-displayed-code code-font" >
< span class = "Preform-function-syntax" > < historical-reference-possible> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > ***< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > once/twice/thrice/turn/turns/time/times< / span >
< / pre >
< ul class = "endnotetexts" > < li > This is < a href = "../words-module/4-ap.html" class = "internal" > Preform grammar< / a > , not regular C code.< / li > < / ul >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP8" class = "paragraph-anchor" > < / a > < b > § 8. < / b > Otherwise the grammar is straightforward:
2020-07-04 01:01:02 +03:00
< / p >
< pre class = "Preform-displayed-code all-displayed-code code-font" >
< span class = "Preform-function-syntax" > < historical-reference> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
2020-07-28 02:35:58 +03:00
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > for< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetition-specification> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetition-specification> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - }< / span >
2020-07-04 01:01:02 +03:00
< span class = "Preform-function-syntax" > < repetition-specification> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
2020-07-28 02:35:58 +03:00
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > only/exactly< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { EQ_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > at< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > most< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { LE_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > less/fewer< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > than< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { LT_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > at< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > least< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { GE_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > more< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > than< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { GT_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > under< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { LT_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > over< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { GT_REPM, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { NO_REPM, - }< / span >
2020-07-04 01:01:02 +03:00
< span class = "Preform-function-syntax" > < repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
2020-07-28 02:35:58 +03:00
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < iteration-repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { 0, -, < < from> > = R[1], < < unit> > = TIMES_UNIT }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < turn-repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { 0, -, < < from> > = R[1], < < unit> > = TURNS_UNIT }< / span >
2020-07-04 01:01:02 +03:00
< span class = "Preform-function-syntax" > < iteration-repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
2020-07-28 02:35:58 +03:00
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > once< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { 1, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > twice< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { 2, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > thrice< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { 3, - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > to< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > time/times< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - , < < to> > = R[2] }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > time/times< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - }< / span >
2020-07-04 01:01:02 +03:00
< span class = "Preform-function-syntax" > < turn-repetitions> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
2020-07-28 02:35:58 +03:00
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > to< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > turn/turns< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - , < < to> > = R[2] }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-constant-syntax" > turn/turns< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - }< / span >
2020-07-04 01:01:02 +03:00
2020-07-28 02:35:58 +03:00
< span class = "Preform-function-syntax" > < reps> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ::=< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < definite-article> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < ordinal-number> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[2], - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < ordinal-number> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > |< / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - }< / span >
< span class = "Preform-plain-syntax" > < / span > < span class = "Preform-function-syntax" > < cardinal-number> < / span > < span class = "Preform-plain-syntax" > < / span > < span class = "Preform-reserved-syntax" > ==> < / span > < span class = "Preform-plain-syntax" > { R[1], - }< / span >
2020-07-04 01:01:02 +03:00
< / pre >
< ul class = "endnotetexts" > < li > This is < a href = "../words-module/4-ap.html" class = "internal" > Preform grammar< / a > , not regular C code.< / li > < / ul >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP9" class = "paragraph-anchor" > < / a > < b > § 9. < / b > And so, finally, here is code to parse using the above grammar:
2020-07-18 17:25:38 +03:00
< / p >
2020-07-04 01:01:02 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
2020-07-27 15:26:59 +03:00
< span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "function-syntax" > Occurrence::parse< / span > < button class = "popup" onclick = "togglePopup('usagePopup3')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup3" > Usage of < span class = "code-font" > < span class = "function-syntax" > Occurrence::parse< / span > < / span > :< br / > Verb Phrases - < a href = "4-vp.html#SP5_4_1_1_1_3_4" > § 5.4.1.1.1.3.4< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > wording< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "function-syntax" > < historical-reference-possible> < / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_WORDING< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > k< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "function-syntax" > < < to> > < / span > < span class = "plain-syntax" > = -1;< / span >
2020-07-18 17:25:38 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wording< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > HW< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Wordings::from< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > k< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "function-syntax" > < historical-reference> < / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > HW< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > CREATE< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > time_period< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > test_operator< / span > < span class = "plain-syntax" > = < / span > < span class = "function-syntax" > < < r> > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > length< / span > < span class = "plain-syntax" > = < / span > < span class = "function-syntax" > < < from> > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > until< / span > < span class = "plain-syntax" > = < / span > < span class = "function-syntax" > < < to> > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > units< / span > < span class = "plain-syntax" > = < / span > < span class = "function-syntax" > < < unit> > < / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > used_wording< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > HW< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > tp< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > unused_wording< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Wordings::up_to< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > k< / span > < span class = "plain-syntax" > -1);< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOGIF< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > TIME_PERIODS< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "Parsed time period: < %W> = $t\n"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > HW< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > tp< / 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" > tp< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2020-07-18 17:25:38 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
2020-07-04 01:01:02 +03:00
< span class = "plain-syntax" > }< / span >
< / pre >
< nav role = "progress" > < div class = "progresscontainer" >
2020-07-27 19:44:29 +03:00
< ul class = "progressbar" > < li class = "progressprev" > < a href = "3-aoc.html" > ❮ < / a > < / li > < li class = "progresschapter" > < a href = "P-wtmd.html" > P< / a > < / li > < li class = "progresschapter" > < a href = "1-lm.html" > 1< / a > < / li > < li class = "progresschapter" > < a href = "2-adj.html" > 2< / a > < / li > < li class = "progresscurrentchapter" > 3< / li > < li class = "progresssection" > < a href = "3-vrb.html" > vrb< / a > < / li > < li class = "progresssection" > < a href = "3-vm.html" > vm< / a > < / li > < li class = "progresssection" > < a href = "3-sm.html" > sm< / a > < / li > < li class = "progresssection" > < a href = "3-vu.html" > vu< / a > < / li > < li class = "progresssection" > < a href = "3-prp.html" > prp< / a > < / li > < li class = "progresssection" > < a href = "3-aoc.html" > aoc< / a > < / li > < li class = "progresscurrent" > apoo< / li > < li class = "progresschapter" > < a href = "4-np.html" > 4< / a > < / li > < li class = "progressnext" > < a href = "4-np.html" > ❯ < / a > < / li > < / ul > < / div >
2020-07-04 01:01:02 +03:00
< / nav > <!-- End of weave -->
< / main >
< / body >
< / html >