diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 122c43654..bb965b602 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,33 +1,37 @@ 100.0% in inform7 run - 69.1% in compilation to Inter - 47.9% in //Sequence::undertake_queued_tasks// - 4.6% in //MajorNodes::pre_pass// - 3.5% in //MajorNodes::pass_1// - 2.4% in //RTPhrasebook::compile_entries// + 68.1% in compilation to Inter + 47.7% in //Sequence::undertake_queued_tasks// + 4.5% in //MajorNodes::pre_pass// + 3.2% in //MajorNodes::pass_1// + 2.3% in //RTPhrasebook::compile_entries// 1.8% in //ImperativeDefinitions::assess_all// 1.5% in //RTKindConstructors::compile// - 1.1% in //Sequence::lint_inter// - 0.5% in //ImperativeDefinitions::compile_first_block// + 1.0% in //Sequence::lint_inter// 0.5% in //MajorNodes::pass_2// - 0.5% in //Sequence::undertake_queued_tasks// - 0.5% in //Sequence::undertake_queued_tasks// 0.5% in //World::stage_V// - 0.1% in //CompletionModule::compile// + 0.4% in //ImperativeDefinitions::compile_first_block// + 0.4% in //Sequence::undertake_queued_tasks// + 0.4% in //Sequence::undertake_queued_tasks// + 0.2% in //CompletionModule::compile// + 0.2% in //RTKindConstructors::compile_permissions// 0.1% in //InferenceSubjects::emit_all// - 0.1% in //RTKindConstructors::compile_permissions// 0.1% in //Task::make_built_in_kind_constructors// + 0.1% in //Understand::traverse// 0.1% in //World::stages_II_and_III// - 2.2% not specifically accounted for - 28.1% in running Inter pipeline - 10.1% in step 14/15: generate inform6 -> auto.inf - 7.3% in step 5/15: load-binary-kits - 6.2% in step 6/15: make-synoptic-module + 2.1% not specifically accounted for + 29.2% in running Inter pipeline + 10.2% in step 14/15: generate inform6 -> auto.inf + 7.6% in step 5/15: load-binary-kits + 6.8% in step 6/15: make-synoptic-module 1.5% in step 9/15: make-identifiers-unique - 0.3% in step 12/15: eliminate-redundant-operations - 0.3% in step 4/15: compile-splats - 0.3% in step 7/15: shorten-wiring + 0.4% in step 12/15: eliminate-redundant-operations + 0.4% in step 4/15: compile-splats + 0.4% in step 7/15: shorten-wiring 0.3% in step 8/15: detect-indirect-calls - 0.1% in step 11/15: eliminate-redundant-labels - 1.3% not specifically accounted for + 0.2% in step 11/15: eliminate-redundant-labels + 0.1% in step 10/15: reconcile-verbs + 0.1% in step 2/15: parse-insertions + 0.1% in step 3/15: resolve-conditional-compilation + 0.7% not specifically accounted for 2.2% in supervisor 0.4% not specifically accounted for diff --git a/inform7/Tests/Test Makes/Eg4-C/textual.txt b/inform7/Tests/Test Makes/Eg4-C/textual.txt index 3bbc88bf4..e06268d6a 100644 --- a/inform7/Tests/Test Makes/Eg4-C/textual.txt +++ b/inform7/Tests/Test Makes/Eg4-C/textual.txt @@ -27753,7 +27753,7 @@ package main _plain constant (int32) KIT_CONFIGURATION_BITMAP = 0 constant (int32) KIT_CONFIGURATION_LOOKMODE = 2 constant (text) I7_VERSION_NUMBER = "10.1.0" - constant (text) I7_FULL_VERSION_NUMBER = "10.1.0-alpha.1+6U77" + constant (text) I7_FULL_VERSION_NUMBER = "10.1.0-alpha.1+6U78" constant (text) ^virtual_machine = "C/32d/v1/no-main" constant (text) ^virtual_machine_icon = "vm_glulx.png" constant (text) ^language_elements_used = "core, naming, instance counting, glulx external files" @@ -28701,13 +28701,13 @@ package main _plain package phrasebook_heading1 _phrasebook_heading constant (text) ^text = "Saying Values" package phrasebook_entry1 _phrasebook_entry - constant (text) ^text = "
\n\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase value -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[A object]\"
say \"[An object]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[An object]\"
say \"[The object]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[The object]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n This text substitution expands to a double quotation mark. Most of the time this is unnecessary because of Inform's rule of converting literal single quotation marks to double at the edges of words, so it's needed only if we w nt a double-quote in the middle of a word for some reason. Example: \n \n\n\n \n which produces: The compass reads 41o21'23"E. (Note that ["] is not allowed; a double-quotation mark is never allowed inside double-quoted text, not even in a text substitution.) \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[conditional paragraph break]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[conditional paragraph break]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
if a paragraph break is pending:
if a paragraph break is pending:
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[otherwise/else if a condition]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[otherwise/else if a condition]\"
say \"[otherwise/else unless a condition]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[otherwise/else unless a condition]\"
say \"[else]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[else]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n This text substitution produces no text, and can be used only to close off a stretch of varying text which begins with "[if ...]". \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n This text substitution produces no text, and can be used only to close off a stretch of varying text which begins with "[unless ...]". \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n This text substitution produces no text, and can be used only to end a "[one of]..." construction. It indicates that the alternatives are chosen uniformly randomly. \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[then purely at random]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[then purely at random]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[as decreasingly likely outcomes]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[as decreasingly likely outcomes]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[only]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[only]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n This text substitution produces no text. It's used only for a side-effect: to return to ordinary Roman type after a previous use of "[bold type]" or "[italic type]". \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[fixed letter spacing]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[fixed letter spacing]\"
say \"[variable letter spacing]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[variable letter spacing]\"
say \"[list of values in brace notation]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[list of values in brace notation]\"
say \"[list of objects with definite articles]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[list of objects with definite articles]\"
say \"[list of objects with indefinite articles]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[list of objects with indefinite articles]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
whether or not (a condition) ... truth state
whether or not (a condition) ... truth state
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase (value, value) -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
let (a new name) be (name of kind)
let (a new name) be (name of kind)
let (a new name) be (description of relations of values)
let (a new name) be (description of relations of values)
let (a new name) be given by (equation name)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase (value, equation name) -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
let (a new name) be given by (equation name)
let (a temporary named value) be (value)
let (a temporary named value) be (value)
let (a temporary named value) be given by (equation name)
let (a temporary named value) be given by (equation name)
increase (a stored value) by (value)
increase (a stored value) by (value)
decrease (a stored value) by (value)
decrease (a stored value) by (value)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase value -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase value -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
(arithmetic value) + (arithmetic value) ... value
(arithmetic value) plus (arithmetic value) ... value
(arithmetic value) plus (arithmetic value) ... value
(arithmetic value) - (arithmetic value) ... value
(arithmetic value) minus (arithmetic value) ... value
(arithmetic value) minus (arithmetic value) ... value
(arithmetic value) * (arithmetic value) ... value
(arithmetic value) times (arithmetic value) ... value
(arithmetic value) multiplied by (arithmetic value) ... value
(arithmetic value) multiplied by (arithmetic value) ... value
(arithmetic value) / (arithmetic value) ... value
(arithmetic value) divided by (arithmetic value) ... value
(arithmetic value) divided by (arithmetic value) ... value
remainder after dividing (arithmetic value) by (arithmetic value) ... value
remainder after dividing (arithmetic value) by (arithmetic value) ... value
(arithmetic value) to the nearest (arithmetic value) ... value
(arithmetic value) to the nearest (arithmetic value) ... value
square root of (arithmetic value) ... value
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase arithmetic value -> arithmetic value \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
square root of (arithmetic value) ... value
cube root of (arithmetic value) ... value
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase arithmetic value -> arithmetic value \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
cube root of (arithmetic value) ... value
total (arithmetic values valued property) of (description of values) ... value
total (arithmetic values valued property) of (description of values) ... value
say \"[real number to number decimal places]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[real number to number decimal places]\"
say \"[real number in decimal notation]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[real number in decimal notation]\"
say \"[real number to number decimal places in decimal notation]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
| \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[real number to number decimal places in decimal notation]\"
say \"[real number in scientific notation]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[real number in scientific notation]\"
say \"[real number to number decimal places in scientific notation]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
| \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[real number to number decimal places in scientific notation]\"
reciprocal of (real number) ... real number
reciprocal of (real number) ... real number
absolute value of (real number) ... real number y = abs(x)
absolute value of (real number) ... real number y = abs(x)
real square root of (real number) ... real number y = root(x)
real square root of (real number) ... real number y = root(x)
real square of (real number) ... real number y = rsqr(x)
ceiling of (real number) ... real number y = ceiling(x)
ceiling of (real number) ... real number y = ceiling(x)
floor of (real number) ... real number y = floor(x)
floor of (real number) ... real number y = floor(x)
(real number) to the nearest whole number ... number y = int(x)
(real number) to the nearest whole number ... number y = int(x)
natural/-- logarithm of (real number) ... real number y = log(x)
natural/-- logarithm of (real number) ... real number y = log(x)
logarithm to base (number) of (real number) ... real number
logarithm to base (number) of (real number) ... real number
exponential of (real number) ... real number y = exp(x)
exponential of (real number) ... real number y = exp(x)
(real number) to the power (real number) ... real number
(real number) to the power (real number) ... real number
(real number) degrees ... real number
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase real number -> real number \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
(real number) degrees ... real number
sine of (real number) ... real number y = sin(x)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase real number -> real number \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
sine of (real number) ... real number y = sin(x)
cosine of (real number) ... real number y = cos(x)
cosine of (real number) ... real number y = cos(x)
tangent of (real number) ... real number y = tan(x)
tangent of (real number) ... real number y = tan(x)
arcsine of (real number) ... real number y = arcsin(x)
arcsine of (real number) ... real number y = arcsin(x)
arccosine of (real number) ... real number y = arccos(x)
arccosine of (real number) ... real number y = arccos(x)
arctangent of (real number) ... real number y = arctan(x)
arctangent of (real number) ... real number y = arctan(x)
hyperbolic sine of (real number) ... real number y = sinh(x)
hyperbolic sine of (real number) ... real number y = sinh(x)
hyperbolic cosine of (real number) ... real number y = cosh(x)
hyperbolic cosine of (real number) ... real number y = cosh(x)
hyperbolic tangent of (real number) ... real number y = tanh(x)
hyperbolic tangent of (real number) ... real number y = tanh(x)
hyperbolic arcsine of (real number) ... real number y = arcsinh(x)
hyperbolic arcsine of (real number) ... real number y = arcsinh(x)
hyperbolic arccosine of (real number) ... real number y = arccosh(x)
hyperbolic arccosine of (real number) ... real number y = arccosh(x)
hyperbolic arctangent of (real number) ... real number y = arctanh(x)
hyperbolic arctangent of (real number) ... real number y = arctanh(x)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase value -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n This phrase causes the single phrase, or block of phrases, following it to be obeyed only if the condition is true. (If the condition must contain a comma for some reason, the block form should be used.) Example: \n \n\n\n \n\n \n Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase value -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
repeat with (a new name) running from (arithmetic value) to (arithmetic value):\n
repeat with (a new name) running from (enumerated value) to (enumerated value):\n
repeat with (a new name) running from (enumerated value) to (enumerated value):\n
repeat with (a new name) running through (description of values):\n
repeat with (a new name) running through (description of values):\n
repeat with (a new name) running through (list of values):\n
repeat with (a new name) running through (list of values):\n
repeat through (table name):\n
repeat through (table name):\n
repeat through (table name) in reverse order:\n
repeat through (table name) in reverse order:\n
repeat through (table name) in (table column) order:\n
repeat through (table name) in (table column) order:\n
repeat through (table name) in reverse (table column) order:\n
repeat through (table name) in reverse (table column) order:\n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
number of (description of values) ... number
number of (description of values) ... number
(name of kind) after (enumerated value) ... value
(name of kind) after (enumerated value) ... value
(name of kind) before (enumerated value) ... value
(name of kind) before (enumerated value) ... value
first value of (name of kind) ... value
first value of (name of kind) ... value
last value of (name of kind) ... value
last value of (name of kind) ... value
a/-- random (description of values) ... value
a/-- random (description of values) ... value
a random (name of kind) between (arithmetic value) and (arithmetic value) ... value
a random (name of kind) between (enumerated value) and (enumerated value) ... value
a random (name of kind) from (enumerated value) to (enumerated value) ... value
a random (name of kind) from (enumerated value) to (enumerated value) ... value
if a random chance of (number) in (number) succeeds:
if a random chance of (number) in (number) succeeds:
seed the random-number generator with (number)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase number -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
seed the random-number generator with (number)
default value of (name of kind) ... value
default value of (name of kind) ... value
number of characters in (text) ... number
number of characters in (text) ... number
number of words in (text) ... number
number of words in (text) ... number
number of punctuated words in (text) ... number
number of punctuated words in (text) ... number
number of unpunctuated words in (text) ... number
number of unpunctuated words in (text) ... number
number of lines in (text) ... number
number of lines in (text) ... number
number of paragraphs in (text) ... number
number of paragraphs in (text) ... number
character number (number) in (text) ... text
character number (number) in (text) ... text
word number (number) in (text) ... text
word number (number) in (text) ... text
punctuated word number (number) in (text) ... text
punctuated word number (number) in (text) ... text
unpunctuated word number (number) in (text) ... text
unpunctuated word number (number) in (text) ... text
line number (number) in (text) ... text
line number (number) in (text) ... text
paragraph number (number) in (text) ... text
paragraph number (number) in (text) ... text
substituted form of (text) ... text
substituted form of (text) ... text
if (text) exactly matches the text (text):
if (text) exactly matches the text (text):
if (text) matches the text (text):
if (text) matches the text (text):
number of times (text) matches the text (text) ... number
number of times (text) matches the text (text) ... number
replace the text (text) in (text) with (text)
replace the text (text) in (text) with (text)
replace the word (text) in (text) with (text)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase (text, text, text) -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
replace the word (text) in (text) with (text)
replace the punctuated word (text) in (text) with (text)
replace the punctuated word (text) in (text) with (text)
replace character number (number) in (text) with (text)
replace character number (number) in (text) with (text)
replace word number (number) in (text) with (text)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase (number, text, text) -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
replace word number (number) in (text) with (text)
replace punctuated word number (number) in (text) with (text)
replace punctuated word number (number) in (text) with (text)
replace unpunctuated word number (number) in (text) with (text)
replace unpunctuated word number (number) in (text) with (text)
replace line number (number) in (text) with (text)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase (number, text, text) -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
replace line number (number) in (text) with (text)
replace paragraph number (number) in (text) with (text)
replace paragraph number (number) in (text) with (text)
if (text) exactly matches the regular expression (text):
if (text) exactly matches the regular expression (text):
if (text) matches the regular expression (text):
if (text) matches the regular expression (text):
text matching regular expression ... text
text matching regular expression ... text
text matching subexpression (number) ... text
text matching subexpression (number) ... text
number of times (text) matches the regular expression (text) ... number
number of times (text) matches the regular expression (text) ... number
replace the regular expression (text) in (text) with (text)
replace the regular expression (text) in (text) with (text)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase text -> text \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase text -> text \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase text -> text \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
(text) in sentence case ... text
(text) in sentence case ... text
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase text -> truth state \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase text -> truth state \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n Produces the infinitive of the given verb. Note that this is without a "to": for example, "[infinitive of the verb carry]" is "carry", not "to carry". \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[past participle of verb]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[past participle of verb]\"
say \"[present participle of verb]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[present participle of verb]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n Adapts the given verb to the current story tense and story viewpoint. For example, "you [adapt the verb provoke]" might produce "you provoke". \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[adapt verb in grammatical tense]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[adapt verb in grammatical tense]\"
say \"[adapt verb from narrative viewpoint]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[adapt verb from narrative viewpoint]\"
say \"[adapt verb in grammatical tense from narrative viewpoint]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
| \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[adapt verb in grammatical tense from narrative viewpoint]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n\n\n Adapts the given verb to the current story tense and story viewpoint, giving it a negative sense. For example, "you [negate the verb provoke]" might produce "you do not provoke". \n\n \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[negate verb in grammatical tense]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[negate verb in grammatical tense]\"
say \"[negate verb from narrative viewpoint]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[negate verb from narrative viewpoint]\"
say \"[negate verb in grammatical tense from narrative viewpoint]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
| \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[negate verb in grammatical tense from narrative viewpoint]\"
meaning of (verb) ... relation of objects
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase verb -> relation of objects \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
choose a/the/-- row (number) in/from (table name)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase (number, table name) -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
choose a/the/-- row (number) in/from (table name)
choose a/the/-- row with (table column) of (value) in/from (table name)
choose a/the/-- row with (table column) of (value) in/from (table name)
choose a/the/-- blank row in/from (table name)
choose a/the/-- blank row in/from (table name)
choose a/the/-- random row in/from (table name)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase table name -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
choose a/the/-- random row in/from (table name)
number of rows in/from (table name) ... number
number of rows in/from (table name) ... number
number of blank rows in/from (table name) ... number
number of blank rows in/from (table name) ... number
number of filled rows in/from (table name) ... number
number of filled rows in/from (table name) ... number
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase value -> truth state \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
if there is no (a table entry):
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase value -> truth state \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
if there is no (a table entry):
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase value -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
blank out the whole (table column) in/from/of (table name)
blank out the whole (table column) in/from/of (table name)
blank out the whole of (table name)
blank out the whole of (table name)
showme the contents of (table name)
showme the contents of (table name)
say \"[the/-- current table row]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[the/-- current table row]\"
say \"[row number in/from table name]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[row number in/from table name]\"
say \"[table column in/from table name]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n\n | \n\n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[table column in/from table name]\"
sort (table name) in/into random order
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
Kind: phrase table name -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
sort (table name) in/into random order
sort (table name) in/into (table column) order
sort (table name) in/into (table column) order
sort (table name) in/into reverse (table column) order
sort (table name) in/into reverse (table column) order
add (value) to (list of values)
add (value) to (list of values)
add (value) at entry (number) in (list of values)
add (value) at entry (number) in (list of values)
add (list of values) to (list of values)
add (list of values) to (list of values)
add (list of values) at entry (number) in (list of values)
add (list of values) at entry (number) in (list of values)
remove (value) from (list of values)
remove (value) from (list of values)
remove (list of values) from (list of values)
remove (list of values) from (list of values)
remove entry (number) from (list of values)
remove entry (number) from (list of values)
remove entries (number) to (number) from (list of values)
remove entries (number) to (number) from (list of values)
if (value) is listed in (list of values):
if (value) is listed in (list of values):
if (value) is not listed in (list of values):
if (value) is not listed in (list of values):
list of (description of values) ... value
list of (description of values) ... value
number of entries in/of (list of values) ... number
number of entries in/of (list of values) ... number
truncate (list of values) to (number) entries/entry
truncate (list of values) to (number) entries/entry
truncate (list of values) to the first (number) entries/entry
truncate (list of values) to the first (number) entries/entry
truncate (list of values) to the last (number) entries/entry
truncate (list of values) to the last (number) entries/entry
extend (list of values) to (number) entries/entry
extend (list of values) to (number) entries/entry
change (list of values) to have (number) entries/entry
change (list of values) to have (number) entries/entry
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase list of values -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase list of values -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
rotate (list of values) backwards
rotate (list of values) backwards
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase list of values -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
sort (list of values) in/into reverse order
sort (list of values) in/into reverse order
sort (list of values) in/into random order
sort (list of values) in/into random order
sort (list of objects) in/into (property) order
sort (list of objects) in/into (property) order
sort (list of objects) in/into reverse (property) order
sort (list of objects) in/into reverse (property) order
show relation (relation of values)
show relation (relation of values)
next step via (relation of objects) from (object) to (object) ... object
next step via (relation of objects) from (object) to (object) ... object
number of steps via (relation of objects) from (object) to (object) ... number
number of steps via (relation of objects) from (object) to (object) ... number
list of (name of kind) that/which/whom (relation of values) relates ... value
list of (name of kind) that/which/whom (relation of values) relates ... value
list of (name of kind) to which/whom (relation of values) relates ... value
list of (name of kind) that/which/whom (relation of values) relates to ... value
list of (name of kind) that/which/whom (relation of values) relates to ... value
list of (name of kind) that/which/who relate to (value) by (relation of values) ... value
list of (name of kind) that/which/who relate to (value) by (relation of values) ... value
list of (name of kind) to which/whom (value) relates by (relation of values) ... value
list of (name of kind) that/which/whom (value) relates to by (relation of values) ... value
list of (name of kind) that/which/whom (value) relates to by (relation of values) ... value
if (name of kind) relates to (value) by (relation of values):
if (name of kind) relates to (value) by (relation of values):
if (value) relates to (name of kind) by (relation of values):
if (value) relates to (name of kind) by (relation of values):
(name of kind) that/which/who relates to (value) by (relation of values) ... value
(name of kind) that/which/who relates to (value) by (relation of values) ... value
(name of kind) to which/whom (value) relates by (relation of values) ... value
(name of kind) that/which/whom (value) relates to by (relation of values) ... value
(name of kind) that/which/whom (value) relates to by (relation of values) ... value
if (value) matches (description of values):
if (value) matches (description of values):
(phrase nothing -> value) applied ... value
(phrase (nothing, nothing, nothing) -> value) applied to (value) and (value) and (value) ... value
apply (phrase nothing -> nothing)
apply (phrase nothing -> nothing)
apply (phrase nothing -> nothing) to (value)
apply (phrase nothing -> nothing) to (value)
apply (phrase (nothing, nothing) -> nothing) to (value) and (value)
apply (phrase (nothing, nothing) -> nothing) to (value) and (value)
apply (phrase (nothing, nothing, nothing) -> nothing) to (value) and (value) and (value)
apply (phrase (nothing, nothing, nothing) -> nothing) to (value) and (value) and (value)
(phrase nothing -> value) applied to (list of values) ... value
(phrase nothing -> value) applied to (list of values) ... value
(phrase (nothing, nothing) -> value) reduction of (list of values) ... value
(phrase (nothing, nothing) -> value) reduction of (list of values) ... value
filter to (description of values) of (list of values) ... value
filter to (description of values) of (list of values) ... value
carry out the (activity) activity
carry out the (activity) activity
carry out the (activity) activity with (value)
carry out the (activity) activity with (value)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase activity -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
begin the (activity) activity with (value)
begin the (activity) activity with (value)
if handling (activity) activity:
if handling (activity) activity:
if handling (activity) activity with (value):
if handling (activity) activity with (value):
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase activity -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
end the (activity) activity with (value)
end the (activity) activity with (value)
abandon the (activity) activity
abandon the (activity) activity
abandon the (activity) activity with (value)
abandon the (activity) activity with (value)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing based rule -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
follow (nothing based rule producing values) for (value)
follow (nothing based rule producing values) for (value)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing based rule -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
(name of kind) produced by (nothing based rule producing values) ... value
(name of kind) produced by (nothing based rule producing values) ... value
(name of kind) produced by (nothing based rule producing values) for (value) ... value
(name of kind) produced by (nothing based rule producing values) for (value) ... value
(name of kind) produced by (nothing based rule producing values) ... value
(name of kind) produced by (nothing based rule producing values) ... value
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing based rule -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
abide by (nothing based rule producing values) for (value)
abide by (nothing based rule producing values) for (value)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n \n Kind: phrase nothing based rule -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> nothing \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
rule succeeds with result (value)
rule succeeds with result (value)
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> truth state \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n \n See Kind: phrase nothing -> truth state \n\n | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
outcome of the rulebook ... rulebook outcome
outcome of the rulebook ... rulebook outcome
write (text) to (external file)
write (text) to (external file)
append (text) to (external file)
append (text) to (external file)
say \"[text of external file]\"
\n ![]() | \n \n\n | \n\n ![]() | \n
\n\n | \n\n
See | \n \n\n | \n
\n ![]() | \n \n\n | \n\n ![]() | \n
say \"[text of external file]\"
read (external file) into (table name)
read (external file) into (table name)
write (external file) from (table name)
write (external file) from (table name)
if ready to read (external file):
if ready to read (external file):
mark (external file) as ready to read
mark (external file) as ready to read
mark (external file) as not ready to read
mark (external file) as not ready to read