1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-05-20 09:58:47 +03:00

More on IE-0014

This commit is contained in:
Graham Nelson 2022-10-27 00:22:27 +01:00
parent 97874c3371
commit 16438f381c
54 changed files with 465 additions and 393 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
[Version](notes/versioning.md): 10.2.0-beta+6V85 'Krypton' (24 October 2022)
[Version](notes/versioning.md): 10.2.0-beta+6V86 'Krypton' (27 October 2022)
## About Inform
@ -133,7 +133,7 @@ The following webs are the source for the two most important extensions shipped
Other extensions shipped with Inform are not presented as webs, but as single files:
* [Basic Help Menu by Emily Short](<inform7/Internal/Extensions/Emily Short/Basic Help Menu.i7x>) - __v1__
* [Basic Screen Effects by Emily Short](<inform7/Internal/Extensions/Emily Short/Basic Screen Effects.i7x>) - __v8__
* [Basic Screen Effects by Emily Short](<inform7/Internal/Extensions/Emily Short/Basic Screen Effects.i7x>) - __v9__
* [Complex Listing by Emily Short](<inform7/Internal/Extensions/Emily Short/Complex Listing.i7x>) - __v9__
* [Glulx Image Centering by Emily Short](<inform7/Internal/Extensions/Emily Short/Glulx Image Centering.i7x>) - __v4__
* [Glulx Text Effects by Emily Short](<inform7/Internal/Extensions/Emily Short/Glulx Text Effects.i7x>) - __v6__

View file

@ -1,3 +1,3 @@
Prerelease: beta
Build Date: 24 October 2022
Build Number: 6V85
Build Date: 27 October 2022
Build Number: 6V86

View file

@ -1,4 +1,4 @@
Version 8 of Basic Screen Effects by Emily Short begins here.
Version 9 of Basic Screen Effects by Emily Short begins here.
"Waiting for a keypress; clearing the screen. Also provides facilities for
changing the foreground and background colors of text, when using the z-machine.
@ -208,9 +208,7 @@ To fill the/-- status bar/line with (selected table - a table-name):
increase __index by 1;
Right alignment depth is a number that varies.
The right alignment depth variable translates into Inter as "right_alignment_depth".
The right alignment depth variable is defined by Inter as "right_alignment_depth".
Section - Color effects (for Z-machine only)
@ -267,8 +265,6 @@ To turn the/-- background white:
Basic Screen Effects ends here.
---- DOCUMENTATION ----
Basic Screen Effects implements the following effects: pauses to wait for a keypress from the player; clearing the screen; changing the color of the foreground font; and changing the color of the background. Color changes function only on the Z-machine.

View file

@ -4,7 +4,7 @@ Version 1 of Inanimate Listeners by Emily Short begins here.
Use authorial modesty.
A thing can be addressable. The addressable property translates into I6 as "talkable".
A thing can be addressable. The addressable property is defined by Inter as "talkable".
Persuasion rule for asking an addressable thing (called the target) to try doing something (this is the unsuccessful persuasion of inanimate objects rule):
if the target is a person or the target is not addressable:

View file

@ -119,18 +119,18 @@ An object can be plural-named or singular-named. An object is usually singular-n
An object can be proper-named or improper-named. An object is usually improper-named.
An object can be ambiguously plural.
The indefinite article property translates into Inter as "article".
The printed plural name property translates into Inter as "plural".
The printed name property translates into Inter as "short_name".
The plural-named property translates into Inter as "pluralname".
The ambiguously plural property translates into Inter as "ambigpluralname".
The proper-named property translates into Inter as "proper".
The indefinite article property is defined by Inter as "article".
The printed plural name property is defined by Inter as "plural".
The printed name property is defined by Inter as "short_name".
The plural-named property is defined by Inter as "pluralname".
The ambiguously plural property is defined by Inter as "ambigpluralname".
The proper-named property is defined by Inter as "proper".
A natural language is a kind of value.
The language of play is a natural language that varies.
The parameter-object is an object that varies.
The parameter-object variable translates into Inter as "parameter_value".
The parameter-object variable is defined by Inter as "parameter_value".
Startup rules is a rulebook.
Startup rules have outcomes allow startup (success) and deny startup (failure).
@ -138,18 +138,18 @@ Shutdown rules is a rulebook.
Starting the virtual machine (documented at act_startvm) is an activity.
The final code startup rule is listed first in for starting the virtual machine.
The final code startup rule translates into Inter as "FINAL_CODE_STARTUP_R".
The final code startup rule is defined by Inter as "FINAL_CODE_STARTUP_R".
Printing the name of something (documented at act_pn) is an activity.
The standard name printing rule is listed last in the for printing the name rulebook.
The standard name printing rule translates into Inter as "STANDARD_NAME_PRINTING_R".
The standard name printing rule is defined by Inter as "STANDARD_NAME_PRINTING_R".
Printing the plural name of something (documented at act_ppn) is an activity.
The standard printing the plural name rule is listed last in the for printing the
plural name rulebook.
The standard printing the plural name rule translates into Inter as
The standard printing the plural name rule is defined by Inter as
"STANDARD_PLURAL_NAME_PRINTING_R".

View file

@ -55,9 +55,9 @@ A grammatical gender is a kind of value. The grammatical genders are
neuter gender, masculine gender, feminine gender.
The story tense is a grammatical tense that varies.
The story tense variable translates into I6 as "story_tense".
The story tense variable is defined by Inter as "story_tense".
The story viewpoint is a narrative viewpoint that varies.
The story viewpoint variable translates into I6 as "story_viewpoint".
The story viewpoint variable is defined by Inter as "story_viewpoint".
To say regarding (item - an object): (- RegardingSingleObject({item}); -).

View file

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "BasicInformExtrasKit",
"version": "10.2.0-beta+6V85"
"version": "10.2.0-beta+6V86"
},
"kit-details": {
"has-priority": 1

View file

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "BasicInformKit",
"version": "10.2.0-beta+6V85"
"version": "10.2.0-beta+6V86"
},
"needs": [ {
"unless": {

View file

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "CommandParserKit",
"version": "10.2.0-beta+6V85"
"version": "10.2.0-beta+6V86"
},
"needs": [ {
"need": {

View file

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "EnglishLanguageKit",
"version": "10.2.0-beta+6V85"
"version": "10.2.0-beta+6V86"
},
"needs": [ {
"need": {

View file

@ -2,7 +2,7 @@
"is": {
"type": "kit",
"title": "WorldModelKit",
"version": "10.2.0-beta+6V85"
"version": "10.2.0-beta+6V86"
},
"needs": [ {
"need": {

View file

@ -1,5 +1,5 @@
Xanadu is a room.
The Understand token squiggle translates into I6 as "SQUIGGLE_TOKEN".
The Understand token squiggle is defined by Inter as "SQUIGGLE_TOKEN".
The Understand token squiggle translates into I6 as "SQUAGGLE_TOKEN".
The Understand token squiggle is defined by Inter as "SQUAGGLE_TOKEN".

View file

@ -1,5 +1,5 @@
Inline Arena is a room.
The restore the game rule translates into I6 as "RESTORE_THE_GAME_R" with
The restore the game rule is defined by Inter as "RESTORE_THE_GAME_R" with
"Restore failed." (A) with
"Ok." (B).

View file

@ -3,7 +3,7 @@ spot is room.
Include (- Global foobar; -) after "Definitions.i6t".
Foo is a number that varies.
The foo variable translates into I6 as "foobar".
The foo variable is defined by Inter as "foobar".
Foo is usually 5.
when play begins, say "Foo is [foo]."

View file

@ -1,3 +1,3 @@
Xanadu is a room.
The wholly bogus property translates into I6 as "initial".
The wholly bogus property is accessible to Inter as "initial".

View file

@ -1,3 +1,3 @@
Xanadu is a room.
The applause variable translates into I6 as "clapping".
The applause variable is defined by Inter as "clapping".

View file

@ -2,6 +2,6 @@ Xanadu is a room.
Applause is a number that varies.
The applause variable translates into I6 as "applause".
The applause variable is defined by Inter as "applause".
The applause variable translates into I6 as "clapping".
The applause variable is defined by Inter as "clapping".

View file

@ -1,4 +1,4 @@
A room has a number called Coolness Index.
The coolness index property translates into I6 as "score".
The coolness index property translates into I6 as "capacity".
The coolness index property is defined by Inter as "score".
The coolness index property is defined by Inter as "capacity".

View file

@ -1,3 +1,3 @@
Home is a room.
The taking action translates into I6 as "MyTake".
The taking action is accessible to Inter as "MyTake".

View file

@ -2,6 +2,6 @@ Laboratory is a room.
Grimly testing something is an activity.
The grimly testing activity translates into Inter as "GRIM_ACT".
The grimly testing activity is accessible to Inter as "GRIM_ACT".
The grimly testing activity translates into Inter as "XGRIM_ACT".
The grimly testing activity is accessible to Inter as "XGRIM_ACT".

View file

@ -1,3 +1,3 @@
Home is a room.
The doffing action translates into I6 as "Doff".
The doffing action is accessible to Inter as "Doff".

View file

@ -1,3 +1,3 @@
Laboratory is a room.
The banana activity translates into Inter as "BANANA_ACT".
The banana activity is accessible to Inter as "BANANA_ACT".

View file

@ -1,3 +1,3 @@
Laboratory is a room.
The banana rules translates into Inter as "BANANA_RULES".
The banana rules is accessible to Inter as "BANANA_RULES".

View file

@ -2,6 +2,6 @@ Laboratory is a room.
The banana rules is a rulebook.
The banana rules translates into Inter as "BANANA_RULES".
The banana rules is accessible to Inter as "BANANA_RULES".
The banana rules translates into Inter as "PEACH_RULES".
The banana rules is accessible to Inter as "PEACH_RULES".

View file

@ -1,8 +1,8 @@
Inform 7 v10.1.0 has started.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 82 words long.
I've also read Basic Inform by Graham Nelson, which is 7645 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 32123 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_DuplicateVerbs1
>--> You wrote 'The verb to frob (he frobs, they frob, he frobbed, it is
frobbed, he is frobbing) implies the mopping relation' (source text, line 13),
@ -13,6 +13,6 @@ Problem__ PM_DuplicateVerbs1
Problem__ PM_DuplicateVerbs1
>--> You wrote 'The verb to be means the enclosure relation' (source text, line 16),
but in another sentence 'The verb to be means the equality relation' (Basic
Inform, line 22): again, this gives us two definitions of what appears to
Inform, line 24): again, this gives us two definitions of what appears to
be the same verb.
Inform 7 has finished.

View file

@ -1,10 +1,10 @@
Inform 7 v10.1.0 has started.
I've now read your source text, which is 22 words long.
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 32067 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 24 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_GrammarTranslatedAlready
>--> You wrote 'The Understand token squiggle translates into I6 as
>--> You wrote 'The Understand token squiggle is defined by Inter as
"SQUAGGLE_TOKEN"' (source text, line 5): but this grammar token has already
been translated, so there must be some duplication somewhere.
Inform 7 has finished.

View file

@ -1,11 +1,12 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 22 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 23 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_I6ResponsesAwry
>--> You wrote 'The restore the game rule translates into I6 as
>--> You wrote 'The restore the game rule is defined by Inter as
"RESTORE_THE_GAME_R" with "Restore failed." (A) with "Ok." (B)' (source
text, line 3): but additional information about I6 translation of a rule
can only take the form of a list of responses, each quoted and followed by
a bracketed letter.
Inform 7 has finished: 17 centiseconds used.
Inform 7 has finished.

View file

@ -1,8 +1,8 @@
Inform 7 v10.1.0 has started.
I've now read your source text, which is 33 words long.
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 32067 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 34 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_InaccessibleVariable
>--> The sentence 'Foo is usually 5' (source text, line 7) tells me that
'Foo' has a specific initial value, but this is a variable which has been

View file

@ -1,8 +1,8 @@
Inform 7 v10.1.0 has started.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 84 words long.
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 32113 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_MasksRelation
>--> I don't want you to define a phrase with the wording you've used in in
'To decide whether (X - testval) is beyond (Y - testval)' (source text, line 7)
@ -17,5 +17,5 @@ Problem__ PM_MasksRelation
means for something to be 'less than' something else, so this phrase
definition would look too much like testing whether 'X is less than Y'.
('The verb to be less than means the numerically-less-than relation' (Basic
Inform, line 57).)
Inform, line 59).)
Inform 7 has finished.

View file

@ -1,8 +1,10 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 13 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 14 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_NonPropertyTranslated
>--> You wrote 'The wholly bogus property translates into I6 as "initial"' (source
text, line 3): but this property does not exist, so cannot be translated.
Inform 7 has finished: 16 centiseconds used.
>--> You wrote 'The wholly bogus property is accessible to Inter as
"initial"' (source text, line 3): but this property does not exist, so
cannot be translated.
Inform 7 has finished.

View file

@ -1,9 +1,10 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 12 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 13 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_NonQuantityTranslated
>--> You wrote 'The applause variable translates into I6 as "clapping"' (source
>--> You wrote 'The applause variable is defined by Inter as "clapping"' (source
text, line 3): but this is not the name of a variable, or at any rate not
one global in scope.
Inform 7 has finished: 16 centiseconds used.
Inform 7 has finished.

View file

@ -1,9 +1,10 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 26 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 28 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_QuantityTranslatedAlready
>--> You wrote 'The applause variable translates into I6 as "clapping"' (source
>--> You wrote 'The applause variable is defined by Inter as "clapping"' (source
text, line 7): but this variable has already been translated, so there must
be some duplication somewhere.
Inform 7 has finished: 17 centiseconds used.
Inform 7 has finished.

View file

@ -1,9 +1,10 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 26 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 28 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatedTwice
>--> You wrote 'The coolness index property translates into I6 as "capacity"'
(source text, line 4): but this property has already been translated, so
there must be some duplication somewhere.
Inform 7 has finished: 17 centiseconds used.
>--> You wrote 'The coolness index property is defined by Inter as
"capacity"' (source text, line 4): but this property has already been
translated, so there must be some duplication somewhere.
Inform 7 has finished.

View file

@ -1,9 +1,10 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 12 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 13 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatesActionAlready
>--> You wrote 'The taking action translates into I6 as "MyTake"' (source
>--> You wrote 'The taking action is accessible to Inter as "MyTake"' (source
text, line 3): but this action has already been translated, so there must
be some duplication somewhere.
Inform 7 has finished: 17 centiseconds used.
Inform 7 has finished.

View file

@ -1,10 +1,10 @@
Inform 7 v10.2.0 has started.
I've now read your source text, which is 28 words long.
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 33428 words long.
I've now read your source text, which is 30 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatesActivityAlready
>--> You wrote 'The grimly testing activity translates into Inter as
>--> You wrote 'The grimly testing activity is accessible to Inter as
"XGRIM_ACT"' (source text, line 7): but this activity has already been
translated, so there must be some duplication somewhere.
Inform 7 has finished.

View file

@ -1,9 +1,10 @@
Inform 7 build 6L26 has started.
I've now read your source text, which is 12 words long.
I've also read Standard Rules by Graham Nelson, which is 42597 words long.
I've also read English Language by Graham Nelson, which is 2288 words long.
Inform 7 v10.2.0 has started.
I've now read your source text, which is 13 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatesNonAction
>--> You wrote 'The doffing action translates into I6 as "Doff"' (source text, line 3):
but this does not appear to be the name of an action, so cannot be
translated into I6 at all.
Inform 7 has finished: 17 centiseconds used.
>--> You wrote 'The doffing action is accessible to Inter as "Doff"' (source
text, line 3): but this does not appear to be the name of an action, so
cannot be translated into I6 at all.
Inform 7 has finished.

View file

@ -1,10 +1,10 @@
Inform 7 v10.2.0 has started.
I've now read your source text, which is 12 words long.
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 33428 words long.
I've now read your source text, which is 13 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatesNonActivity
>--> You wrote 'The banana activity translates into Inter as "BANANA_ACT"' (source
>--> You wrote 'The banana activity is accessible to Inter as "BANANA_ACT"' (source
text, line 3): but this is not the name of an activity, so cannot be
translated.
Inform 7 has finished.

View file

@ -1,10 +1,10 @@
Inform 7 v10.2.0 has started.
I've now read your source text, which is 12 words long.
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 33428 words long.
I've now read your source text, which is 13 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatesNonRulebook
>--> You wrote 'The banana rules translates into Inter as "BANANA_RULES"' (source
>--> You wrote 'The banana rules is accessible to Inter as "BANANA_RULES"' (source
text, line 3): but this is not the name of a rulebook, so cannot be
translated.
Inform 7 has finished.

View file

@ -1,10 +1,10 @@
Inform 7 v10.2.0 has started.
I've now read your source text, which is 26 words long.
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
I've also read English Language by Graham Nelson, which is 2328 words long.
I've also read Standard Rules by Graham Nelson, which is 33428 words long.
I've now read your source text, which is 28 words long.
I've also read Basic Inform by Graham Nelson, which is 7719 words long.
I've also read English Language by Graham Nelson, which is 2330 words long.
I've also read Standard Rules by Graham Nelson, which is 33683 words long.
Problem__ PM_TranslatesRulebookAlready
>--> You wrote 'The banana rules translates into Inter as "PEACH_RULES"' (source
>--> You wrote 'The banana rules is accessible to Inter as "PEACH_RULES"' (source
text, line 7): but this rulebook has already been translated, so there must
be some duplication somewhere.
Inform 7 has finished.

View file

@ -169,6 +169,8 @@ generated anyway; Inform authors never type them.
Diagrams::new_PROPER_NOUN(OP), Task::language_of_syntax());
@h Translation into Inter.
There are three sentences here, but the first is now deprecated: it has split
off into two different meanings, each with its own wording for clarity.
@d TRANSLATION_DEPRECATED_FORM 1
@d TRANSLATION_DEFINED_BY_FORM 2
@ -387,11 +389,21 @@ will be required to pass |<extra-response>|.
@<Take action in pass 1 or 2 where possible@> =
switch(category) {
case PROPERTY_I6TR:
Properties::translates(W, p2);
Annotations::write_int(V, category_of_I6_translation_ANNOT, INVALID_I6TR);
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM)
translates_into_verb = TRANSLATION_DEFINED_BY_FORM;
@<Do not use the translates-into form@>;
if (translates_into_verb == TRANSLATION_ACCESSIBLE_TO_FORM) {
if (global_pass_state.pass == 2) Properties::accessible_as(W, p2);
} else {
Properties::translates(W, p2);
Annotations::write_int(V, category_of_I6_translation_ANNOT, INVALID_I6TR);
}
break;
case NOUN_I6TR: break;
case RULE_I6TR:
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM)
translates_into_verb = TRANSLATION_DEFINED_BY_FORM;
@<Require the defined-by form@>;
if (global_pass_state.pass == 1)
Rules::declare_Inter_rule(W, Node::get_text(p2));
if ((global_pass_state.pass == 2) && (p2->down) && (<rule-name>(W)))
@ -406,12 +418,21 @@ will be required to pass |<extra-response>|.
if (global_pass_state.pass == 2) Activities::translates(W, p2);
break;
case VARIABLE_I6TR:
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM)
translates_into_verb = TRANSLATION_DEFINED_BY_FORM;
@<Require the defined-by form@>;
if (global_pass_state.pass == 2) NonlocalVariables::translates(W, p2);
break;
case ACTION_I6TR:
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM)
translates_into_verb = TRANSLATION_ACCESSIBLE_TO_FORM;
@<Require the accessible-to form@>;
if (global_pass_state.pass == 2) Actions::translates(W, p2);
break;
case GRAMMAR_TOKEN_I6TR:
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM)
translates_into_verb = TRANSLATION_DEFINED_BY_FORM;
@<Require the defined-by form@>;
if (global_pass_state.pass == 2) CommandGrammars::new_translated_token(W, p2);
break;
}
@ -426,6 +447,29 @@ will be required to pass |<extra-response>|.
"'X is defined by Inter as Y'.");
}
@<Require the defined-by form@> =
if (translates_into_verb != TRANSLATION_DEFINED_BY_FORM) {
StandardProblems::sentence_problem(Task::syntax_tree(),
_p_(...),
"this is a language construct which cannot be given an Inter name "
"except by defining it from Inter",
"so although you can say 'X is defined by Inter as Y' to make "
"this available to source text, you cannot say 'X translates into "
"Inter as Y' or 'X is accessible to Inter as Y'.");
}
@<Do not use the translates-into form@> =
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM) {
StandardProblems::sentence_problem(Task::syntax_tree(),
_p_(...),
"the verb 'X translates into Inter as Y' (or '... into I6...') "
"has been removed from Inform",
"and should either be 'X is defined by Inter as Y' if Y is something "
"whose definition is given in Inter - for example, for a rule defined in "
"a kit - or else 'X is accessible to Inter as Y', if you just want a "
"a name you can use from Inter code to refer to an X created by Inform.");
}
@ Extra responses look just as they would in running code.
=
@ -462,6 +506,9 @@ void Translations::plus_responses(parse_node *p, rule *R) {
wording W = Wordings::trim_last_word(SP);
parse_node *res = Lexicon::retrieve(NOUN_MC, W);
if (res) {
if (translates_into_verb == TRANSLATION_DEPRECATED_FORM)
translates_into_verb = TRANSLATION_ACCESSIBLE_TO_FORM;
@<Require the accessible-to form@>;
noun_usage *nu = Nouns::disambiguate(res, FALSE);
noun *nt = (nu)?(nu->noun_used):NULL;
if (nt) {
@ -480,4 +527,3 @@ void Translations::plus_responses(parse_node *p, rule *R) {
break;
}
}

View file

@ -35,12 +35,12 @@ An object can be ambiguously plural.
@ These are Inter identifier names.
=
The indefinite article property translates into Inter as "article".
The printed plural name property translates into Inter as "plural".
The printed name property translates into Inter as "short_name".
The plural-named property translates into Inter as "pluralname".
The ambiguously plural property translates into Inter as "ambigpluralname".
The proper-named property translates into Inter as "proper".
The indefinite article property is defined by Inter as "article".
The printed plural name property is defined by Inter as "plural".
The printed name property is defined by Inter as "short_name".
The plural-named property is defined by Inter as "pluralname".
The ambiguously plural property is defined by Inter as "ambigpluralname".
The proper-named property is defined by Inter as "proper".
@h Variables.
Most of the built-in kinds and kind constructors, such as "number" and
@ -63,7 +63,7 @@ despite the definition below, it is not necessarily an object.)
=
The parameter-object is an object that varies.
The parameter-object variable translates into Inter as "parameter_value".
The parameter-object variable is defined by Inter as "parameter_value".
@h Rulebooks.
The Standard Rules (for interactive fiction) create a wealth of rulebooks
@ -85,7 +85,7 @@ Shutdown rules is a rulebook.
Starting the virtual machine (documented at act_startvm) is an activity.
The final code startup rule is listed first in for starting the virtual machine.
The final code startup rule translates into Inter as "FINAL_CODE_STARTUP_R".
The final code startup rule is defined by Inter as "FINAL_CODE_STARTUP_R".
@ However, the two activities for printing names of objects are indeed
functional in Basic Inform.
@ -94,12 +94,12 @@ functional in Basic Inform.
Printing the name of something (documented at act_pn) is an activity.
The standard name printing rule is listed last in the for printing the name rulebook.
The standard name printing rule translates into Inter as "STANDARD_NAME_PRINTING_R".
The standard name printing rule is defined by Inter as "STANDARD_NAME_PRINTING_R".
Printing the plural name of something (documented at act_ppn) is an activity.
The standard printing the plural name rule is listed last in the for printing the
plural name rulebook.
The standard printing the plural name rule translates into Inter as
The standard printing the plural name rule is defined by Inter as
"STANDARD_PLURAL_NAME_PRINTING_R".

View file

@ -36,7 +36,7 @@ To win is a verb.
Section 2 - Standard actions concerning the actor's possessions
Taking inventory is an action applying to nothing.
The taking inventory action translates into Inter as "Inv".
The taking inventory action is accessible to Inter as "Inv".
The specification of the taking inventory action is "Taking an inventory of
one's immediate possessions: the things being carried, either directly or in
@ -80,7 +80,7 @@ Report an actor taking inventory (this is the report other people taking
=
Taking is an action applying to one thing.
The taking action translates into Inter as "Take".
The taking action is accessible to Inter as "Take".
The specification of the taking action is "The taking action is the only way
an action in the Standard Rules can cause something to be carried by an actor.
@ -205,7 +205,7 @@ Report an actor taking (this is the standard report taking rule):
=
Removing it from is an action applying to two things.
The removing it from action translates into Inter as "Remove".
The removing it from action is accessible to Inter as "Remove".
The specification of the removing it from action is "Removing is not really
an action in its own right. Whereas there are many ways to put something down
@ -245,7 +245,7 @@ inside rule in the check removing it from rules.
=
Dropping is an action applying to one thing.
The dropping action translates into Inter as "Drop".
The dropping action is accessible to Inter as "Drop".
The specification of the dropping action is "Dropping is one of five actions
by which an actor can get rid of something carried: the others are inserting
@ -333,7 +333,7 @@ Report an actor dropping (this is the standard report dropping rule):
=
Putting it on is an action applying to two things.
The putting it on action translates into Inter as "PutOn".
The putting it on action is accessible to Inter as "PutOn".
The specification of the putting it on action is "By this action, an actor puts
something he is holding on top of a supporter: for instance, putting an apple
@ -408,7 +408,7 @@ Report an actor putting something on (this is the standard report putting rule):
=
Inserting it into is an action applying to two things.
The inserting it into action translates into Inter as "Insert".
The inserting it into action is accessible to Inter as "Insert".
The specification of the inserting it into action is "By this action, an actor puts
something he is holding into a container: for instance, putting a coin into a
@ -498,7 +498,7 @@ Report an actor inserting something into (this is the standard report inserting
=
Eating is an action applying to one thing.
The eating action translates into Inter as "Eat".
The eating action is accessible to Inter as "Eat".
The specification of the eating action is "Eating is the only one of the
built-in actions which can, in effect, destroy something: the carry out
@ -565,7 +565,7 @@ Report an actor eating (this is the standard report eating rule):
Section 3 - Standard actions which move the actor
Going is an action applying to one visible thing.
The going action translates into Inter as "Go".
The going action is accessible to Inter as "Go".
The specification of the going action is "This is the action which allows people
to move from one room to another, using whatever map connections and doors are
@ -748,7 +748,7 @@ Report an actor going (this is the describe room gone into rule):
=
Entering is an action applying to one thing.
The entering action translates into Inter as "Enter".
The entering action is accessible to Inter as "Enter".
The specification of the entering action is "Whereas the going action allows
people to move from one location to another in the model world, the entering
@ -896,7 +896,7 @@ Report an actor entering (this is the describe contents entered into rule):
=
Exiting is an action applying to nothing.
The exiting action translates into Inter as "Exit".
The exiting action is accessible to Inter as "Exit".
The exiting action has an object called the container exited from (matched as "from").
The specification of the exiting action is "Whereas the going action allows
@ -970,7 +970,7 @@ Report an actor exiting (this is the describe room emerged into rule):
=
Getting off is an action applying to one thing.
The getting off action translates into Inter as "GetOff".
The getting off action is accessible to Inter as "GetOff".
The specification of the getting off action is "The getting off action is for
actors who are currently on top of a supporter: perhaps standing on a platform,
@ -1014,7 +1014,7 @@ Report an actor getting off (this is the describe room stood up into rule):
Section 4 - Standard actions concerning the actor's vision
Looking is an action applying to nothing.
The looking action translates into Inter as "Look".
The looking action is accessible to Inter as "Look".
The specification of the looking action is "The looking action describes the
player's current room and any visible items, but is made more complicated
@ -1151,7 +1151,7 @@ Report an actor looking (this is the other people looking rule):
=
Examining is an action applying to one visible thing and requiring light.
The examining action translates into Inter as "Examine".
The examining action is accessible to Inter as "Examine".
The specification of the examining action is "The act of looking closely at
something. Note that the noun could be either a direction or a thing, which
@ -1229,7 +1229,7 @@ Report an actor examining (this is the report other people examining rule):
=
Looking under is an action applying to one visible thing and requiring light.
The looking under action translates into Inter as "LookUnder".
The looking under action is accessible to Inter as "LookUnder".
The specification of the looking under action is "The standard Inform world
model does not have a concept of things being under other things, so this
@ -1263,7 +1263,7 @@ Report an actor looking under (this is the report other people looking under rul
=
Searching is an action applying to one thing and requiring light.
The searching action translates into Inter as "Search".
The searching action is accessible to Inter as "Search".
The specification of the searching action is "Searching looks at the contents
of an open or transparent container, or at the items on top of a supporter.
@ -1325,7 +1325,7 @@ Report an actor searching (this is the report other people searching rule):
=
Consulting it about is an action applying to one thing and one topic.
The consulting it about action translates into Inter as "Consult".
The consulting it about action is accessible to Inter as "Consult".
The specification of the consulting it about action is "Consulting is a very
flexible and potentially powerful action, but only because it leaves almost
@ -1353,7 +1353,7 @@ Report an actor consulting something about (this is the block consulting rule):
Section 5 - Standard actions which change the state of things
Locking it with is an action applying to one thing and one carried thing.
The locking it with action translates into Inter as "Lock".
The locking it with action is accessible to Inter as "Lock".
The specification of the locking it with action is "Locking is the act of
using an object such as a key to ensure that something such as a door or
@ -1436,7 +1436,7 @@ Report an actor locking something with (this is the standard report locking rule
=
Unlocking it with is an action applying to one thing and one carried thing.
The unlocking it with action translates into Inter as "Unlock".
The unlocking it with action is accessible to Inter as "Unlock".
The specification of the unlocking it with action is "Unlocking undoes the
effect of locking, and renders the noun openable again provided that the
@ -1511,7 +1511,7 @@ Report an actor unlocking something with (this is the standard report unlocking
=
Switching on is an action applying to one thing.
The switching on action translates into Inter as "SwitchOn".
The switching on action is accessible to Inter as "SwitchOn".
The specification of the switching on action is "The switching on and switching
off actions are for the simplest kind of machinery operation: they are for
@ -1554,7 +1554,7 @@ Report an actor switching on (this is the standard report switching on rule):
=
Switching off is an action applying to one thing.
The switching off action translates into Inter as "SwitchOff".
The switching off action is accessible to Inter as "SwitchOff".
The specification of the switching off action is "The switching off and switching
on actions are for the simplest kind of machinery operation: they are for
@ -1597,7 +1597,7 @@ Report an actor switching off (this is the standard report switching off rule):
=
Opening is an action applying to one thing.
The opening action translates into Inter as "Open".
The opening action is accessible to Inter as "Open".
The specification of the opening action is "Opening makes something no longer
a physical barrier. The action can be performed on any kind of thing which
@ -1680,7 +1680,7 @@ Report an actor opening (this is the standard report opening rule):
=
Closing is an action applying to one thing.
The closing action translates into Inter as "Close".
The closing action is accessible to Inter as "Close".
The specification of the closing action is "Closing makes something into
a physical barrier. The action can be performed on any kind of thing which
@ -1739,7 +1739,7 @@ Report an actor closing (this is the standard report closing rule):
=
Wearing is an action applying to one carried thing.
The wearing action translates into Inter as "Wear".
The wearing action is accessible to Inter as "Wear".
The specification of the wearing action is "The Standard Rules give Inform
only a simple model of clothing. A thing can be worn only if it has the
@ -1794,7 +1794,7 @@ Report an actor wearing (this is the standard report wearing rule):
=
Taking off is an action applying to one thing.
The taking off action translates into Inter as "Disrobe".
The taking off action is accessible to Inter as "Disrobe".
Does the player mean taking off something worn: it is very likely.
@ -1847,7 +1847,7 @@ Report an actor taking off (this is the standard report taking off rule):
Section 6 - Standard actions concerning other people
Giving it to is an action applying to one carried thing and one thing.
The giving it to action translates into Inter as "Give".
The giving it to action is accessible to Inter as "Give".
The specification of the giving it to action is "This action is indexed by
Inform under 'Actions concerning other people', but it could just as easily
@ -1927,7 +1927,7 @@ Report an actor giving something to (this is the standard report giving rule):
=
Showing it to is an action applying to one carried thing and one visible thing.
The showing it to action translates into Inter as "Show".
The showing it to action is accessible to Inter as "Show".
The specification of the showing it to action is "Anyone can show anyone
else something which they are carrying, but not some nearby piece of
@ -1968,7 +1968,7 @@ Check an actor showing something to (this is the block showing rule):
=
Waking is an action applying to one thing.
The waking action translates into Inter as "WakeOther".
The waking action is accessible to Inter as "WakeOther".
The specification of the waking action is "This is the act of jostling
a sleeping person to wake him or her up, and it finds its way into the
@ -1990,7 +1990,7 @@ Check an actor waking (this is the block waking rule):
=
Throwing it at is an action applying to one carried thing and one visible thing.
The throwing it at action translates into Inter as "ThrowAt".
The throwing it at action is accessible to Inter as "ThrowAt".
The specification of the throwing it at action is "Throwing something at
someone or something is difficult for Inform to model. So many considerations
@ -2040,7 +2040,7 @@ Check an actor throwing something at (this is the block throwing at rule):
=
Attacking is an action applying to one thing.
The attacking action translates into Inter as "Attack".
The attacking action is accessible to Inter as "Attack".
The specification of the attacking action is "Violence is seldom the answer,
and attempts to attack another person are normally blocked as being unrealistic
@ -2062,7 +2062,7 @@ Check an actor attacking (this is the block attacking rule):
=
Kissing is an action applying to one thing.
The kissing action translates into Inter as "Kiss".
The kissing action is accessible to Inter as "Kiss".
The specification of the kissing action is "Possibly because Inform was
originally written by an Englishman, attempts at kissing another person are
@ -2088,7 +2088,7 @@ Check an actor kissing (this is the block kissing rule):
=
Answering it that is an action applying to one thing and one topic.
The answering it that action translates into Inter as "Answer".
The answering it that action is accessible to Inter as "Answer".
The specification of the answering it that action is "The Standard Rules do
not include any systematic way to handle conversation: instead, Inform is
@ -2124,7 +2124,7 @@ Report an actor answering something that (this is the block answering rule):
=
Telling it about is an action applying to one thing and one topic.
The telling it about action translates into Inter as "Tell".
The telling it about action is accessible to Inter as "Tell".
The specification of the telling it about action is "The Standard Rules do
not include any systematic way to handle conversation: instead, Inform is
@ -2165,7 +2165,7 @@ Report an actor telling something about (this is the block telling rule):
=
Asking it about is an action applying to one thing and one topic.
The asking it about action translates into Inter as "Ask".
The asking it about action is accessible to Inter as "Ask".
The specification of the asking it about action is "The Standard Rules do
not include any systematic way to handle conversation: instead, Inform is
@ -2200,7 +2200,7 @@ Report an actor asking something about (this is the block asking rule):
=
Asking it for is an action applying to two things.
The asking it for action translates into Inter as "AskFor".
The asking it for action is accessible to Inter as "AskFor".
The specification of the asking it for action is "The Standard Rules do
not include any systematic way to handle conversation, but this is
@ -2233,7 +2233,7 @@ Check an actor asking something for (this is the translate asking for to giving
Section 7 - Standard actions which are checked but then do nothing unless rules intervene
Waiting is an action applying to nothing.
The waiting action translates into Inter as "Wait".
The waiting action is accessible to Inter as "Wait".
The specification of the waiting action is "The inaction action: where would
we be without waiting? Waiting does not cause time to pass by - that happens
@ -2260,7 +2260,7 @@ Report an actor waiting (this is the standard report waiting rule):
=
Touching is an action applying to one thing.
The touching action translates into Inter as "Touch".
The touching action is accessible to Inter as "Touch".
The specification of the touching action is "Touching is just that, touching
something without applying pressure: a touch-sensitive screen or a living
@ -2308,7 +2308,7 @@ Report an actor touching (this is the report touching things rule):
=
Waving is an action applying to one thing.
The waving action translates into Inter as "Wave".
The waving action is accessible to Inter as "Wave".
The specification of the waving action is "Waving in this sense is like
waving a sceptre: the item to be waved must be directly held (or worn)
@ -2342,7 +2342,7 @@ Report an actor waving (this is the report waving things rule):
=
Pulling is an action applying to one thing.
The Pulling action translates into Inter as "Pull".
The Pulling action is accessible to Inter as "Pull".
The specification of the pulling action is "Pulling is the act of pulling
something not grossly larger than the actor by an amount which would not
@ -2391,7 +2391,7 @@ Report an actor pulling (this is the report pulling rule):
=
Pushing is an action applying to one thing.
The Pushing action translates into Inter as "Push".
The Pushing action is accessible to Inter as "Push".
The specification of the pushing action is "Pushing is the act of pushing
something not grossly larger than the actor by an amount which would not
@ -2441,7 +2441,7 @@ Report an actor pushing something (this is the report pushing rule):
=
Turning is an action applying to one thing.
The Turning action translates into Inter as "Turn".
The Turning action is accessible to Inter as "Turn".
The specification of the turning action is "Turning is the act of rotating
something - say, a dial.
@ -2487,7 +2487,7 @@ Report an actor turning (this is the report turning rule):
=
Pushing it to is an action applying to one thing and one visible thing.
The Pushing it to action translates into Inter as "PushDir".
The Pushing it to action is accessible to Inter as "PushDir".
The specification of the pushing it to action is "This action covers pushing
a large object, not being carried, so that the actor pushes it from one room
@ -2539,7 +2539,7 @@ Check an actor pushing something to (this is the block pushing in directions rul
=
Squeezing is an action applying to one thing.
The Squeezing action translates into Inter as "Squeeze".
The Squeezing action is accessible to Inter as "Squeeze".
The specification of the squeezing action is "Squeezing is an action which
can conveniently vary from squeezing something hand-held, like a washing-up
@ -2576,7 +2576,7 @@ Report an actor squeezing (this is the report squeezing rule):
Section 8 - Standard actions which always do nothing unless rules intervene
Saying yes is an action applying to nothing.
The Saying yes action translates into Inter as "Yes".
The Saying yes action is accessible to Inter as "Yes".
The specification of the saying yes action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2598,7 +2598,7 @@ Check an actor saying yes (this is the block saying yes rule):
=
Saying no is an action applying to nothing.
The Saying no action translates into Inter as "No".
The Saying no action is accessible to Inter as "No".
The specification of the saying no action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2620,7 +2620,7 @@ Check an actor saying no (this is the block saying no rule):
=
Burning is an action applying to one thing.
The Burning action translates into Inter as "Burn".
The Burning action is accessible to Inter as "Burn".
The specification of the burning action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2642,7 +2642,7 @@ Check an actor burning (this is the block burning rule):
=
Waking up is an action applying to nothing.
The Waking up action translates into Inter as "Wake".
The Waking up action is accessible to Inter as "Wake".
The specification of the waking up action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2665,7 +2665,7 @@ Check an actor waking up (this is the block waking up rule):
=
Thinking is an action applying to nothing.
The Thinking action translates into Inter as "Think".
The Thinking action is accessible to Inter as "Think".
The specification of the thinking action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2687,7 +2687,7 @@ Check an actor thinking (this is the block thinking rule):
=
Smelling is an action applying to nothing or one thing.
The Smelling action translates into Inter as "Smell".
The Smelling action is accessible to Inter as "Smell".
The specification of the smelling action is
"The Standard Rules define this action in only a minimal way, replying only
@ -2707,7 +2707,7 @@ Report an actor smelling (this is the report smelling rule):
=
Listening to is an action applying to nothing or one thing and abbreviable.
The Listening to action translates into Inter as "Listen".
The Listening to action is accessible to Inter as "Listen".
The specification of the listening to action is
"The Standard Rules define this action in only a minimal way, replying only
@ -2727,7 +2727,7 @@ Report an actor listening to (this is the report listening rule):
=
Tasting is an action applying to one thing.
The Tasting action translates into Inter as "Taste".
The Tasting action is accessible to Inter as "Taste".
The specification of the tasting action is
"The Standard Rules define this action in only a minimal way, replying only
@ -2747,7 +2747,7 @@ Report an actor tasting (this is the report tasting rule):
=
Cutting is an action applying to one thing.
The Cutting action translates into Inter as "Cut".
The Cutting action is accessible to Inter as "Cut".
The specification of the cutting action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2769,7 +2769,7 @@ Check an actor cutting (this is the block cutting rule):
=
Jumping is an action applying to nothing.
The Jumping action translates into Inter as "Jump".
The Jumping action is accessible to Inter as "Jump".
The specification of the jumping action is
"The Standard Rules define this action in only a minimal way, simply reporting
@ -2789,7 +2789,7 @@ Report an actor jumping (this is the report jumping rule):
=
Tying it to is an action applying to two things.
The Tying it to action translates into Inter as "Tie".
The Tying it to action is accessible to Inter as "Tie".
The specification of the tying it to action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2811,7 +2811,7 @@ Check an actor tying something to (this is the block tying rule):
=
Drinking is an action applying to one thing.
The Drinking action translates into Inter as "Drink".
The Drinking action is accessible to Inter as "Drink".
The specification of the drinking action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2834,7 +2834,7 @@ Check an actor drinking (this is the block drinking rule):
=
Saying sorry is an action applying to nothing.
The Saying sorry action translates into Inter as "Sorry".
The Saying sorry action is accessible to Inter as "Sorry".
The specification of the saying sorry action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2857,7 +2857,7 @@ Check an actor saying sorry (this is the block saying sorry rule):
=
Swinging is an action applying to one thing.
The Swinging action translates into Inter as "Swing".
The Swinging action is accessible to Inter as "Swing".
The specification of the swinging action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2880,7 +2880,7 @@ Check an actor swinging (this is the block swinging rule):
=
Rubbing is an action applying to one thing.
The Rubbing action translates into Inter as "Rub".
The Rubbing action is accessible to Inter as "Rub".
The specification of the rubbing action is
"The Standard Rules define this action in only a minimal way, simply reporting
@ -2909,7 +2909,7 @@ Report an actor rubbing (this is the report rubbing rule):
=
Setting it to is an action applying to one thing and one topic.
The Setting it to action translates into Inter as "SetTo".
The Setting it to action is accessible to Inter as "SetTo".
The specification of the setting it to action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2931,7 +2931,7 @@ Check an actor setting something to (this is the block setting it to rule):
=
Waving hands is an action applying to nothing.
The Waving hands action translates into Inter as "WaveHands".
The Waving hands action is accessible to Inter as "WaveHands".
The specification of the waving hands action is
"The Standard Rules define this action in only a minimal way, simply reporting
@ -2951,7 +2951,7 @@ Report an actor waving hands (this is the report waving hands rule):
=
Buying is an action applying to one thing.
The Buying action translates into Inter as "Buy".
The Buying action is accessible to Inter as "Buy".
The specification of the buying action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2974,7 +2974,7 @@ Check an actor buying (this is the block buying rule):
=
Climbing is an action applying to one thing.
The Climbing action translates into Inter as "Climb".
The Climbing action is accessible to Inter as "Climb".
The specification of the climbing action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -2996,7 +2996,7 @@ Check an actor climbing (this is the block climbing rule):
=
Sleeping is an action applying to nothing.
The Sleeping action translates into Inter as "Sleep".
The Sleeping action is accessible to Inter as "Sleep".
The specification of the sleeping action is
"The Standard Rules define this action in only a minimal way, blocking it
@ -3025,60 +3025,60 @@ is the current VM: so these are close to the metal, as they say.
Section 9 - Standard actions which happen out of world
Quitting the game is an action out of world and applying to nothing.
The quitting the game action translates into Inter as "Quit".
The quitting the game action is accessible to Inter as "Quit".
The quit the game rule is listed in the carry out quitting the game rulebook.
The quit the game rule translates into Inter as "QUIT_THE_GAME_R" with
The quit the game rule is defined by Inter as "QUIT_THE_GAME_R" with
"Are you sure you want to quit? " (A).
Saving the game is an action out of world and applying to nothing.
The saving the game action translates into Inter as "Save".
The saving the game action is accessible to Inter as "Save".
The save the game rule is listed in the carry out saving the game rulebook.
The save the game rule translates into Inter as "SAVE_THE_GAME_R" with
The save the game rule is defined by Inter as "SAVE_THE_GAME_R" with
"Save failed." (A),
"Ok." (B).
Restoring the game is an action out of world and applying to nothing.
The restoring the game action translates into Inter as "Restore".
The restoring the game action is accessible to Inter as "Restore".
The restore the game rule is listed in the carry out restoring the game rulebook.
The restore the game rule translates into Inter as "RESTORE_THE_GAME_R" with
The restore the game rule is defined by Inter as "RESTORE_THE_GAME_R" with
"Restore failed." (A),
"Ok." (B).
Restarting the game is an action out of world and applying to nothing.
The restarting the game action translates into Inter as "Restart".
The restarting the game action is accessible to Inter as "Restart".
The restart the game rule is listed in the carry out restarting the game rulebook.
The restart the game rule translates into Inter as "RESTART_THE_GAME_R" with
The restart the game rule is defined by Inter as "RESTART_THE_GAME_R" with
"Are you sure you want to restart? " (A),
"Failed." (B).
Verifying the story file is an action out of world and applying to nothing.
The verifying the story file action translates into Inter as "Verify".
The verifying the story file action is accessible to Inter as "Verify".
The verify the story file rule is listed in the carry out verifying the story file rulebook.
The verify the story file rule translates into Inter as "VERIFY_THE_STORY_FILE_R" with
The verify the story file rule is defined by Inter as "VERIFY_THE_STORY_FILE_R" with
"The game file has verified as intact." (A),
"The game file did not verify as intact, and may be corrupt." (B).
Switching the story transcript on is an action out of world and applying to nothing.
The switching the story transcript on action translates into Inter as "ScriptOn".
The switching the story transcript on action is accessible to Inter as "ScriptOn".
The switch the story transcript on rule is listed in the carry out switching the story
transcript on rulebook.
The switch the story transcript on rule translates into Inter as "SWITCH_TRANSCRIPT_ON_R" with
The switch the story transcript on rule is defined by Inter as "SWITCH_TRANSCRIPT_ON_R" with
"Transcripting is already on." (A),
"Start of a transcript of:" (B),
"Attempt to begin transcript failed." (C).
Switching the story transcript off is an action out of world and applying to nothing.
The switching the story transcript off action translates into Inter as "ScriptOff".
The switching the story transcript off action is accessible to Inter as "ScriptOff".
The switch the story transcript off rule is listed in the carry out switching the story
transcript off rulebook.
The switch the story transcript off rule translates into Inter as "SWITCH_TRANSCRIPT_OFF_R" with
The switch the story transcript off rule is defined by Inter as "SWITCH_TRANSCRIPT_OFF_R" with
"Transcripting is already off." (A),
"[line break]End of transcript." (B),
"Attempt to end transcript failed." (C).
@ -3091,11 +3091,11 @@ different formats being compiled to.
=
Requesting the story file version is an action out of world and applying to nothing.
The requesting the story file version action translates into Inter as "Version".
The requesting the story file version action is accessible to Inter as "Version".
The announce the story file version rule is listed in the carry out requesting the story
file version rulebook.
The announce the story file version rule translates into Inter as "ANNOUNCE_STORY_FILE_VERSION_R".
The announce the story file version rule is defined by Inter as "ANNOUNCE_STORY_FILE_VERSION_R".
@ There's really no very good reason why we provide the out-of-world command
SCORE but not (say) TIME, or any one of dozens of other traditional what's-my-status
@ -3106,10 +3106,10 @@ removal would be a gesture too far.
=
Requesting the score is an action out of world and applying to nothing.
The requesting the score action translates into Inter as "Score".
The requesting the score action is accessible to Inter as "Score".
The announce the score rule is listed in the carry out requesting the score rulebook.
The announce the score rule translates into Inter as "ANNOUNCE_SCORE_R" with
The announce the score rule is defined by Inter as "ANNOUNCE_SCORE_R" with
"[if the story has ended]In that game you scored[otherwise]You have so far scored[end if]
[score] out of a possible [maximum score], in [turn count] turn[s]" (A),
", earning you the rank of " (B),
@ -3125,46 +3125,46 @@ and does no harm.
=
Preferring abbreviated room descriptions is an action out of world and applying to nothing.
The preferring abbreviated room descriptions action translates into Inter as "LMode3".
The preferring abbreviated room descriptions action is accessible to Inter as "LMode3".
The prefer abbreviated room descriptions rule is listed in the carry out preferring
abbreviated room descriptions rulebook.
The prefer abbreviated room descriptions rule translates into Inter as "PREFER_ABBREVIATED_R".
The prefer abbreviated room descriptions rule is defined by Inter as "PREFER_ABBREVIATED_R".
The standard report preferring abbreviated room descriptions rule is listed in the
report preferring abbreviated room descriptions rulebook.
The standard report preferring abbreviated room descriptions rule translates into
The standard report preferring abbreviated room descriptions rule is defined by
Inter as "REP_PREFER_ABBREVIATED_R" with
" is now in its 'superbrief' mode, which always gives short descriptions
of locations (even if you haven't been there before)." (A).
Preferring unabbreviated room descriptions is an action out of world and applying to nothing.
The preferring unabbreviated room descriptions action translates into Inter as "LMode2".
The preferring unabbreviated room descriptions action is accessible to Inter as "LMode2".
The prefer unabbreviated room descriptions rule is listed in the carry out preferring
unabbreviated room descriptions rulebook.
The prefer unabbreviated room descriptions rule translates into Inter as "PREFER_UNABBREVIATED_R".
The prefer unabbreviated room descriptions rule is defined by Inter as "PREFER_UNABBREVIATED_R".
The standard report preferring unabbreviated room descriptions rule is listed in the
report preferring unabbreviated room descriptions rulebook.
The standard report preferring unabbreviated room descriptions rule translates into
The standard report preferring unabbreviated room descriptions rule is defined by
Inter as "REP_PREFER_UNABBREVIATED_R" with
" is now in its 'verbose' mode, which always gives long descriptions of
locations (even if you've been there before)." (A).
Preferring sometimes abbreviated room descriptions is an action out of world and
applying to nothing.
The preferring sometimes abbreviated room descriptions action translates into Inter as "LMode1".
The preferring sometimes abbreviated room descriptions action is accessible to Inter as "LMode1".
The prefer sometimes abbreviated room descriptions rule is listed in the carry out
preferring sometimes abbreviated room descriptions rulebook.
The prefer sometimes abbreviated room descriptions rule translates into Inter as
The prefer sometimes abbreviated room descriptions rule is defined by Inter as
"PREFER_SOMETIMES_ABBREVIATED_R".
The standard report preferring sometimes abbreviated room descriptions rule is listed
in the report preferring sometimes abbreviated room descriptions rulebook.
The standard report preferring sometimes abbreviated room descriptions rule translates
into Inter as "REP_PREFER_SOMETIMES_ABBR_R" with
The standard report preferring sometimes abbreviated room descriptions rule
is defined by Inter as "REP_PREFER_SOMETIMES_ABBR_R" with
" is now in its 'brief' printing mode, which gives long descriptions
of places never before visited and short descriptions otherwise." (A).
@ -3172,27 +3172,27 @@ The standard report preferring sometimes abbreviated room descriptions rule tran
=
Switching score notification on is an action out of world and applying to nothing.
The switching score notification on action translates into Inter as "NotifyOn".
The switching score notification on action is accessible to Inter as "NotifyOn".
The switch score notification on rule is listed in the carry out switching score
notification on rulebook.
The switch score notification on rule translates into Inter as "SWITCH_SCORE_NOTIFY_ON_R".
The switch score notification on rule is defined by Inter as "SWITCH_SCORE_NOTIFY_ON_R".
The standard report switching score notification on rule is listed in the report
switching score notification on rulebook.
The standard report switching score notification on rule translates into
The standard report switching score notification on rule is defined by
Inter as "REP_SWITCH_NOTIFY_ON_R" with "Score notification on." (A).
Switching score notification off is an action out of world and applying to nothing.
The switching score notification off action translates into Inter as "NotifyOff".
The switching score notification off action is accessible to Inter as "NotifyOff".
The switch score notification off rule is listed in the carry out switching score
notification off rulebook.
The switch score notification off rule translates into Inter as "SWITCH_SCORE_NOTIFY_OFF_R".
The switch score notification off rule is defined by Inter as "SWITCH_SCORE_NOTIFY_OFF_R".
The standard report switching score notification off rule is listed in the report
switching score notification off rulebook.
The standard report switching score notification off rule translates into
The standard report switching score notification off rule is defined by
Inter as "REP_SWITCH_NOTIFY_OFF_R" with "Score notification off." (A).
@ Lastly, the "pronouns" verb, which is perhaps more often used by people
@ -3200,11 +3200,11 @@ debugging the I6 parser than by actual players.
=
Requesting the pronoun meanings is an action out of world and applying to nothing.
The requesting the pronoun meanings action translates into Inter as "Pronouns".
The requesting the pronoun meanings action is accessible to Inter as "Pronouns".
The announce the pronoun meanings rule is listed in the carry out requesting the
pronoun meanings rulebook.
The announce the pronoun meanings rule translates into Inter as "ANNOUNCE_PRONOUN_MEANINGS_R" with
The announce the pronoun meanings rule is defined by Inter as "ANNOUNCE_PRONOUN_MEANINGS_R" with
"At the moment, " (A),
"means " (B),
"is unset" (C),

View file

@ -31,7 +31,7 @@ activity on responses.
The standard issuing the response text rule is listed last in for issuing the
response text.
The standard issuing the response text rule translates into Inter as
The standard issuing the response text rule is defined by Inter as
"STANDARD_RESPONSE_ISSUING_R".
@h Naming and listing.
@ -70,7 +70,7 @@ grouped together:
=
Listing contents of something (documented at act_lc) is an activity.
The standard contents listing rule is listed last in the for listing contents rulebook.
The standard contents listing rule translates into Inter as "STANDARD_CONTENTS_LISTING_R".
The standard contents listing rule is defined by Inter as "STANDARD_CONTENTS_LISTING_R".
Grouping together something (documented at act_gt) is an activity.
@ And such lists of names are formed up in turn into room descriptions.
@ -195,7 +195,7 @@ Rule for supplying a missing noun while an actor going (this is the block vaguel
=
The standard implicit taking rule is listed last in for implicitly taking.
The standard implicit taking rule translates into Inter as "STANDARD_IMPLICIT_TAKING_R" with
The standard implicit taking rule is defined by Inter as "STANDARD_IMPLICIT_TAKING_R" with
"(first taking [the noun])[command clarification break]" (A),
"([the second noun] first taking [the noun])[command clarification break]" (B).
@ -215,12 +215,12 @@ The print obituary headline rule is listed last in for printing the player's obi
The print final score rule is listed last in for printing the player's obituary.
The display final status line rule is listed last in for printing the player's obituary.
The print obituary headline rule translates into Inter as "PRINT_OBITUARY_HEADLINE_R"
The print obituary headline rule is defined by Inter as "PRINT_OBITUARY_HEADLINE_R"
with " You have died " (A),
" You have won " (B),
" The End " (C).
The print final score rule translates into Inter as "PRINT_FINAL_SCORE_R".
The display final status line rule translates into Inter as "DISPLAY_FINAL_STATUS_LINE_R".
The print final score rule is defined by Inter as "PRINT_FINAL_SCORE_R".
The display final status line rule is defined by Inter as "DISPLAY_FINAL_STATUS_LINE_R".
@ There is one last question: the one which usually reads "Would you like to
RESTART, RESTORE a saved game, or QUIT?", but which sometimes provides other
@ -238,10 +238,10 @@ who wants to call them. (In the default implementation below, we put
references to them into a table.)
=
The immediately restart the VM rule translates into Inter as "IMMEDIATELY_RESTART_VM_R".
The immediately restore saved game rule translates into Inter as "IMMEDIATELY_RESTORE_SAVED_R".
The immediately quit rule translates into Inter as "IMMEDIATELY_QUIT_R".
The immediately undo rule translates into Inter as "IMMEDIATELY_UNDO_R" with
The immediately restart the VM rule is defined by Inter as "IMMEDIATELY_RESTART_VM_R".
The immediately restore saved game rule is defined by Inter as "IMMEDIATELY_RESTORE_SAVED_R".
The immediately quit rule is defined by Inter as "IMMEDIATELY_QUIT_R".
The immediately undo rule is defined by Inter as "IMMEDIATELY_UNDO_R" with
"The use of 'undo' is forbidden in this story." (A),
"You can't 'undo' what hasn't been done!" (B),
"Your interpreter does not provide 'undo'. Sorry!" (C),
@ -264,7 +264,7 @@ The standard respond to final question rule is listed last in for handling the f
This is the print the final prompt rule: say "> [run paragraph on]" (A).
The read the final answer rule translates into Inter as "READ_FINAL_ANSWER_R".
The read the final answer rule is defined by Inter as "READ_FINAL_ANSWER_R".
@ That clears away the underbrush and reduces us to two matching tasks: (i)
to print the question, (ii) to parse the answer, given that we want to be

View file

@ -233,7 +233,7 @@ Understand "notify off" as switching score notification off.
fact used in the default grammar above, but is available for authors.
=
The understand token a time period translates into Inter as "RELATIVE_TIME_TOKEN".
The understand token a time period is defined by Inter as "RELATIVE_TIME_TOKEN".
@

View file

@ -720,7 +720,7 @@ To say pronoun dictionary word:
To say recap of command:
(- PrintCommand(); -).
The pronoun reference object is an object that varies.
The pronoun reference object variable translates into Inter as "pronoun_obj".
The pronoun reference object variable is defined by Inter as "pronoun_obj".
To say pronoun i6 dictionary word:
(- print (address) pronoun_word; -).

View file

@ -419,8 +419,8 @@ Down has opposite up. Understand "d" as down.
Inside has opposite outside. Understand "in" as inside.
Outside has opposite inside. Understand "out" as outside.
The inside object translates into Inter as "in_obj".
The outside object translates into Inter as "out_obj".
The inside object is accessible to Inter as "in_obj".
The outside object is accessible to Inter as "out_obj".
The verb to be above means the mapping up relation.
The verb to be mapped above means the mapping up relation.
@ -489,7 +489,7 @@ has been added to the Standard Rules, and this avoids directly evaluating "door_
=
A door has an object called leading-through destination.
The leading-through destination property translates into Inter as "door_to".
The leading-through destination property is defined by Inter as "door_to".
Leading-through relates one room (called the leading-through destination) to
various doors. The verb to be through means the leading-through relation.
@ -717,7 +717,7 @@ Understand "your former self" or "my former self" or "former self" or
The description of yourself is usually "As good-looking as ever."
The yourself object translates into Inter as "selfobj".
The yourself object is accessible to Inter as "selfobj".
@h Non-fundamental kinds.
We have now finished defining the nine fundamental kinds which Inform requires
@ -949,37 +949,37 @@ meanings were basically similar.
=
Section 16 - Inter identifier equivalents
The wearable property translates into Inter as "clothing".
The undescribed property translates into Inter as "concealed".
The edible property translates into Inter as "edible".
The enterable property translates into Inter as "enterable".
The female property translates into Inter as "female".
The mentioned property translates into Inter as "mentioned".
The lit property translates into Inter as "light".
The lighted property translates into Inter as "light".
The lockable property translates into Inter as "lockable".
The locked property translates into Inter as "locked".
The handled property translates into Inter as "moved".
The neuter property translates into Inter as "neuter".
The switched on property translates into Inter as "on".
The open property translates into Inter as "open".
The openable property translates into Inter as "openable".
The privately-named property translates into Inter as "privately_named".
The pushable between rooms property translates into Inter as "pushable".
The scenery property translates into Inter as "scenery".
The fixed in place property translates into Inter as "static".
The transparent property translates into Inter as "transparent".
The visited property translates into Inter as "visited".
The marked for listing property translates into Inter as "workflag".
The list grouping key property translates into Inter as "list_together".
The wearable property is defined by Inter as "clothing".
The undescribed property is defined by Inter as "concealed".
The edible property is defined by Inter as "edible".
The enterable property is defined by Inter as "enterable".
The female property is defined by Inter as "female".
The mentioned property is defined by Inter as "mentioned".
The lit property is defined by Inter as "light".
The lighted property is defined by Inter as "light".
The lockable property is defined by Inter as "lockable".
The locked property is defined by Inter as "locked".
The handled property is defined by Inter as "moved".
The neuter property is defined by Inter as "neuter".
The switched on property is defined by Inter as "on".
The open property is defined by Inter as "open".
The openable property is defined by Inter as "openable".
The privately-named property is defined by Inter as "privately_named".
The pushable between rooms property is defined by Inter as "pushable".
The scenery property is defined by Inter as "scenery".
The fixed in place property is defined by Inter as "static".
The transparent property is defined by Inter as "transparent".
The visited property is defined by Inter as "visited".
The marked for listing property is defined by Inter as "workflag".
The list grouping key property is defined by Inter as "list_together".
@ Second, the I7 value properties mapping onto I6 properties. Again,
|map_region| is a new I6 property of our own, while the rest are I6 staples.
And see also "other side", which is translated above for timing reasons.
=
The carrying capacity property translates into Inter as "capacity".
The description property translates into Inter as "description".
The initial appearance property translates into Inter as "initial".
The map region property translates into Inter as "map_region".
The matching key property translates into Inter as "with_key".
The carrying capacity property is defined by Inter as "capacity".
The description property is defined by Inter as "description".
The initial appearance property is defined by Inter as "initial".
The map region property is defined by Inter as "map_region".
The matching key property is defined by Inter as "with_key".

View file

@ -12,10 +12,6 @@ whose name is "player", this is a variable, and it is possible to change
perspective during play and become somebody else -- at which point the
"player" variable will point to a different object.
Note that "player" is a name given to a variable explicitly defined in
the |srules| template with a given name (in this case |player|), so it
has a "translates into Inter" sentence.
=
Part Three - Variables and Rulebooks
@ -25,7 +21,7 @@ Chapter 1 - Variables
Section 1 - Situation
The player is a person that varies.
The player variable translates into Inter as "player".
The player variable is defined by Inter as "player".
@ The I7 variable "location" corresponds to I6's |real_location|, not
|location|. Its value is never equal to a pseudo-room representing darkness:
@ -43,12 +39,12 @@ The turn count is a number that varies.
The time of day -- documented at var_time -- is a time that varies.
The darkness witnessed is a truth state that varies.
The location variable translates into Inter as "real_location".
The score variable translates into Inter as "score".
The last notified score variable translates into Inter as "last_score".
The maximum score variable translates into Inter as "MAX_SCORE".
The turn count variable translates into Inter as "turns".
The time of day variable translates into Inter as "the_time".
The location variable is defined by Inter as "real_location".
The score variable is defined by Inter as "score".
The last notified score variable is defined by Inter as "last_score".
The maximum score variable is defined by Inter as "MAX_SCORE".
The turn count variable is defined by Inter as "turns".
The time of day variable is defined by Inter as "the_time".
@ It is arguable that "noun", "second noun" and "person asked" ought
to be rulebook variables belonging to the action-processing rules, so that
@ -76,11 +72,11 @@ The reason the action failed -- documented at var_reason -- is an action
based rule producing nothing that varies.
The item described is an object that varies.
The noun variable translates into Inter as "noun".
The second noun variable translates into Inter as "second".
The person asked variable translates into Inter as "actor".
The reason the action failed variable translates into Inter as "reason_the_action_failed".
The item described variable translates into Inter as "self".
The noun variable is defined by Inter as "noun".
The second noun variable is defined by Inter as "second".
The person asked variable is defined by Inter as "actor".
The reason the action failed variable is defined by Inter as "reason_the_action_failed".
The item described variable is defined by Inter as "self".
@ "Person reaching" turns out to have exactly the same meaning as "person
asked" -- they are both the |actor|, in Inter terms, but are used in different
@ -94,10 +90,10 @@ The container in question is an object that varies.
The supporter in question is an object that varies.
The particular possession -- documented at var_particular -- is a thing that varies.
The person reaching variable translates into Inter as "actor".
The container in question variable translates into Inter as "parameter_object".
The supporter in question variable translates into Inter as "parameter_object".
The particular possession variable translates into Inter as "particular_possession".
The person reaching variable is defined by Inter as "actor".
The container in question variable is defined by Inter as "parameter_object".
The supporter in question variable is defined by Inter as "parameter_object".
The particular possession variable is defined by Inter as "particular_possession".
@ Parsing variables follow. The I6 parser tends to put any data read as part
of a command into the variable |parsed_number|, but then, Inter is typeless:
@ -118,10 +114,10 @@ The matched text is a snippet that varies.
The topic understood is a snippet that varies.
The current item from the multiple object list is an object that varies.
The player's command variable translates into Inter as "players_command".
The matched text variable translates into Inter as "matched_text".
The topic understood variable translates into Inter as "parsed_number".
The current item from the multiple object list variable translates into Inter as
The player's command variable is defined by Inter as "players_command".
The matched text variable is defined by Inter as "matched_text".
The topic understood variable is defined by Inter as "parsed_number".
The current item from the multiple object list variable is defined by Inter as
"multiple_object_item".
@ =
@ -133,11 +129,11 @@ The command prompt is ">".
The left hand status line -- documented at var_sl -- is a text that varies.
The right hand status line is a text that varies.
The left hand status line variable translates into Inter as "left_hand_status_line".
The right hand status line variable translates into Inter as "right_hand_status_line".
The left hand status line variable is defined by Inter as "left_hand_status_line".
The right hand status line variable is defined by Inter as "right_hand_status_line".
The listing group size is a number that varies.
The listing group size variable translates into Inter as "listing_size".
The listing group size variable is defined by Inter as "listing_size".
@ Now some linguistic variables:
@ -145,7 +141,7 @@ The listing group size variable translates into Inter as "listing_size".
Section 6 - Language generation
The prior named object is an object that varies.
The prior named object variable translates into Inter as "prior_named_noun".
The prior named object variable is defined by Inter as "prior_named_noun".
An object has a text called list grouping key.
@ ...but they are not the last global variables created by the Standard Rules.
@ -181,7 +177,7 @@ The release number is usually 1.
The story headline is usually "An Interactive Fiction".
The story genre is usually "Fiction".
The story title variable translates into Inter as "Story".
The story title variable is defined by Inter as "Story".
Section SR2/6b - Unindexed Standard Rules variables - Unindexed (for figures language element only)
@ -229,10 +225,10 @@ run-time for what is in the end only a label.)
Section 8 - Unindexed Standard Rules variables - Unindexed
The I6-nothing-constant is an object that varies.
The I6-nothing-constant variable translates into Inter as "nothing".
The I6-nothing-constant variable is defined by Inter as "nothing".
The I6-varying-global is an object that varies.
The I6-varying-global variable translates into Inter as "nothing".
The I6-varying-global variable is defined by Inter as "nothing".
@ The remaining secret variables are:
@ -252,13 +248,13 @@ preambles to rules in object-based rulebooks.
=
The item-pushed-between-rooms is an object that varies.
The item-pushed-between-rooms variable translates into Inter as "move_pushing".
The item-pushed-between-rooms variable is defined by Inter as "move_pushing".
The actor-location is an object that varies. [*]
The actor-location variable translates into Inter as "actor_location".
The actor-location variable is defined by Inter as "actor_location".
The scene being changed is a scene that varies. [*]
The scene being changed variable translates into Inter as "parameter_value".
The scene being changed variable is defined by Inter as "parameter_value".
@h Rulebooks.
Whereas Basic Inform equips the language with only a handful of rulebooks
@ -468,7 +464,7 @@ automatically to a safely neutral default value. It makes no decision.
=
Section 2 - The Standard Rules
The little-used do nothing rule translates into Inter as "LITTLE_USED_DO_NOTHING_R".
The little-used do nothing rule is defined by Inter as "LITTLE_USED_DO_NOTHING_R".
@h Startup.
Every rulebook contains a (possibly empty) run of "first" rules, then
@ -534,11 +530,11 @@ The seed random number generator rule is listed first in the startup rulebook. [
The virtual machine startup rule is listed first in the startup rulebook. [2nd.]
The initialise memory rule is listed first in the startup rulebook. [1st.]
The virtual machine startup rule translates into Inter as "VIRTUAL_MACHINE_STARTUP_R".
The initialise memory rule translates into Inter as "INITIALISE_MEMORY_R".
The seed random number generator rule translates into Inter as "SEED_RANDOM_NUMBER_GENERATOR_R".
The update chronological records rule translates into Inter as "UPDATE_CHRONOLOGICAL_RECORDS_R".
The position player in model world rule translates into Inter as "POSITION_PLAYER_IN_MODEL_R".
The virtual machine startup rule is defined by Inter as "VIRTUAL_MACHINE_STARTUP_R".
The initialise memory rule is defined by Inter as "INITIALISE_MEMORY_R".
The seed random number generator rule is defined by Inter as "SEED_RANDOM_NUMBER_GENERATOR_R".
The update chronological records rule is defined by Inter as "UPDATE_CHRONOLOGICAL_RECORDS_R".
The position player in model world rule is defined by Inter as "POSITION_PLAYER_IN_MODEL_R".
This is the start in the correct scenes rule: follow the scene changing rules.
@ -695,17 +691,17 @@ This is the notify score changes rule:
I6 primitives in the template layer.
=
The adjust light rule translates into Inter as "ADJUST_LIGHT_R" with
The adjust light rule is defined by Inter as "ADJUST_LIGHT_R" with
"[It] [are] [if story tense is present tense]now [end if]pitch dark in
[if story tense is present tense]here[else]there[end if]!" (A).
The advance time rule translates into Inter as "ADVANCE_TIME_R".
The generate action rule translates into Inter as "GENERATE_ACTION_R" with
The advance time rule is defined by Inter as "ADVANCE_TIME_R".
The generate action rule is defined by Inter as "GENERATE_ACTION_R" with
"(considering the first sixteen objects only)[command clarification break]" (A),
"Nothing to do!" (B).
The note object acquisitions rule translates into Inter as "NOTE_OBJECT_ACQUISITIONS_R".
The parse command rule translates into Inter as "PARSE_COMMAND_R".
The timed events rule translates into Inter as "TIMED_EVENTS_R".
The note object acquisitions rule is defined by Inter as "NOTE_OBJECT_ACQUISITIONS_R".
The parse command rule is defined by Inter as "PARSE_COMMAND_R".
The timed events rule is defined by Inter as "TIMED_EVENTS_R".
@h Shutdown.
Goodbye is not the hardest word to say, but it does involve a little bit of
@ -740,8 +736,8 @@ This is the when play ends stage rule: follow the when play ends rulebook.
This is the print player's obituary rule:
carry out the printing the player's obituary activity.
The resurrect player if asked rule translates into Inter as "RESURRECT_PLAYER_IF_ASKED_R".
The ask the final question rule translates into Inter as "ASK_FINAL_QUESTION_R".
The resurrect player if asked rule is defined by Inter as "RESURRECT_PLAYER_IF_ASKED_R".
The ask the final question rule is defined by Inter as "ASK_FINAL_QUESTION_R".
@h Scene changing.
Scene changing is handled by a routine called |DetectSceneChange| which is
@ -754,7 +750,7 @@ use of this opportunity.
=
The scene change machinery rule is listed last in the scene changing rulebook.
The scene change machinery rule translates into Inter as "SCENE_CHANGE_MACHINERY_R".
The scene change machinery rule is defined by Inter as "SCENE_CHANGE_MACHINERY_R".
@ We couldn't do this earlier (because creating a scene automatically generates
two rulebooks, and that would have thrown the rulebook numbering), so let's
@ -909,18 +905,18 @@ instance, "check taking" is the specific check rulebook for the
the names aren't so visible).
=
The basic accessibility rule translates into Inter as "BASIC_ACCESSIBILITY_R" with
The basic accessibility rule is defined by Inter as "BASIC_ACCESSIBILITY_R" with
"You must name something more substantial." (A).
The basic visibility rule translates into Inter as "BASIC_VISIBILITY_R" with
The basic visibility rule is defined by Inter as "BASIC_VISIBILITY_R" with
"[It] [are] pitch dark, and [we] [can't see] a thing." (A).
The carrying requirements rule translates into Inter as "CARRYING_REQUIREMENTS_R".
The requested actions require persuasion rule translates into Inter as
The carrying requirements rule is defined by Inter as "CARRYING_REQUIREMENTS_R".
The requested actions require persuasion rule is defined by Inter as
"REQUESTED_ACTIONS_REQUIRE_R" with
"[The noun] [have] better things to do." (A).
The carry out requested actions rule translates into Inter as
The carry out requested actions rule is defined by Inter as
"CARRY_OUT_REQUESTED_ACTIONS_R" with
"[The noun] [are] unable to do that." (A).
The descend to specific action-processing rule translates into Inter as
The descend to specific action-processing rule is defined by Inter as
"DESCEND_TO_SPECIFIC_ACTION_R".
@h Specific action-processing.
@ -985,7 +981,7 @@ they record the action's specific check, carry out and report rulebooks,
and whether or not it is in world.
=
The work out details of specific action rule translates into Inter as
The work out details of specific action rule is defined by Inter as
"WORK_OUT_DETAILS_OF_SPECIFIC_R".
@h Player's action awareness.
@ -1026,7 +1022,7 @@ Section 5 - Accessibility
The access through barriers rule is listed last in the accessibility rules.
The access through barriers rule translates into Inter as
The access through barriers rule is defined by Inter as
"ACCESS_THROUGH_BARRIERS_R" with
"[regarding the noun][Those] [aren't] available." (A).
@ -1042,10 +1038,10 @@ The can't reach inside rooms rule is listed last in the reaching inside rules. [
The can't reach inside closed containers rule is listed last in the reaching
inside rules. [Last.]
The can't reach inside closed containers rule translates into Inter as
The can't reach inside closed containers rule is defined by Inter as
"CANT_REACH_INSIDE_CLOSED_R" with
"[The noun] [aren't] open." (A).
The can't reach inside rooms rule translates into Inter as
The can't reach inside rooms rule is defined by Inter as
"CANT_REACH_INSIDE_ROOMS_R" with
"[We] [can't] reach into [the noun]." (A).
@ -1056,7 +1052,7 @@ reaching on both the inbound and outbound directions,
=
The can't reach outside closed containers rule is listed last in the reaching outside rules.
The can't reach outside closed containers rule translates into Inter as
The can't reach outside closed containers rule is defined by Inter as
"CANT_REACH_OUTSIDE_CLOSED_R" with
"[The noun] [aren't] open." (A).
@ -1146,7 +1142,7 @@ A command parser error is a kind of value. The command parser errors are
didn't understand addressee's last name error.
The latest parser error is a command parser error that varies.
The latest parser error variable translates into Inter as "etype".
The latest parser error variable is defined by Inter as "etype".
@h Internal rules.
These rules do nothing in themselves, and are really just hooks on which
@ -1155,7 +1151,7 @@ some response texts can be hung.
=
Section 9 - Responses for internal rules
The list writer internal rule translates into Inter as
The list writer internal rule is defined by Inter as
"LIST_WRITER_INTERNAL_R" with
" (" (A),
")" (B),
@ -1183,7 +1179,7 @@ The list writer internal rule translates into Inter as
"Nothing" (X),
"nothing" (Y).
The action processing internal rule translates into Inter as
The action processing internal rule is defined by Inter as
"ACTION_PROCESSING_INTERNAL_R" with
"[bracket]That command asks to do something outside of play, so it can
only make sense from you to me. [The noun] cannot be asked to do this.[close
@ -1200,7 +1196,7 @@ The action processing internal rule translates into Inter as
cut short.)" (J),
"I didn't understand that instruction." (K).
The parser error internal rule translates into Inter as
The parser error internal rule is defined by Inter as
"PARSER_ERROR_INTERNAL_R" with
"I didn't understand that sentence." (A),
"I only understood you as far as wanting to " (B),
@ -1229,7 +1225,7 @@ The parser error internal rule translates into Inter as
"To talk to someone, try 'someone, hello' or some such." (W),
"I beg your pardon?" (X).
The parser nothing error internal rule translates into Inter as
The parser nothing error internal rule is defined by Inter as
"PARSER_N_ERROR_INTERNAL_R" with
"Nothing to do!" (A),
"[There] [adapt the verb are from the third person plural] none at all available!" (B),
@ -1238,17 +1234,17 @@ The parser nothing error internal rule translates into Inter as
"[The noun] [aren't] open." (E),
"[The noun] [are] empty." (F).
The darkness name internal rule translates into Inter as "DARKNESS_NAME_INTERNAL_R" with
The darkness name internal rule is defined by Inter as "DARKNESS_NAME_INTERNAL_R" with
"Darkness" (A).
The parser command internal rule translates into Inter as
The parser command internal rule is defined by Inter as
"PARSER_COMMAND_INTERNAL_R" with
"Sorry, that can't be corrected." (A),
"Think nothing of it." (B),
"'Oops' can only correct a single word." (C),
"You can hardly repeat that." (D).
The parser clarification internal rule translates into Inter as
The parser clarification internal rule is defined by Inter as
"PARSER_CLARIF_INTERNAL_R" with
"Who do you mean, " (A),
"Which do you mean, " (B),
@ -1261,11 +1257,11 @@ The parser clarification internal rule translates into Inter as
"that" (G),
" or " (H).
The yes or no question internal rule translates into Inter as
The yes or no question internal rule is defined by Inter as
"YES_OR_NO_QUESTION_INTERNAL_R" with
"Please answer yes or no." (A).
The print protagonist internal rule translates into Inter as
The print protagonist internal rule is defined by Inter as
"PRINT_PROTAGONIST_INTERNAL_R" with
"[We]" (A),
"[ourselves]" (B),
@ -1297,6 +1293,10 @@ unperformed.
A dialogue choice can be recurring or non-recurring. A dialogue choice is usually
non-recurring.
The performed property is accessible to Inter as "performed".
The spontaneous property is accessible to Inter as "spontaneous".
The recurring property is accessible to Inter as "recurring".
To make (T - an object) a live conversational subject:
(- DirectorAddLiveSubjectList({T}); -).
To make (T - an object) a dead conversational subject:

View file

@ -42,9 +42,8 @@ int Dialogue::new_base_kind_notify(kind *new_base, text_stream *name, wording W)
@ The following need some compiler support:
= (early code)
property *P_performed = NULL;
property *P_spontaneous = NULL;
property *P_elaborated = NULL;
property *P_performed = NULL;
activity *AV_offering_a_dialogue_choice = NULL;
activity *AV_performing_dialogue = NULL;
@ -53,9 +52,8 @@ activity *AV_performing_dialogue = NULL;
=
<notable-dialogue-properties> ::=
performed |
spontaneous |
elaborated
elaborated |
performed
<notable-dialogue-activities> ::=
offering |
@ -65,9 +63,8 @@ activity *AV_performing_dialogue = NULL;
int Dialogue::new_property_notify(property *prn) {
if (<notable-dialogue-properties>(prn->name)) {
switch (<<r>>) {
case 0: P_performed = prn; break;
case 1: P_spontaneous = prn; break;
case 2: P_elaborated = prn; break;
case 0: P_elaborated = prn; break;
case 1: P_performed = prn; break;
}
}
return FALSE;

View file

@ -410,7 +410,8 @@ void Properties::translates(wording W, parse_node *p2) {
if (<property-name>(W)) prn = <<rp>>;
wchar_t *text = Lexer::word_text(Wordings::first_wn(Node::get_text(p2)));
@<Make sure this is a genuine and previously untranslated property@>;
@<Make sure this is a genuine property@>;
@<Make sure this is a previously untranslated property@>;
Properties::set_translation(prn, text);
LOGIF(PROPERTY_TRANSLATIONS, "Property <$Y> translates as <%w>\n", prn, text);
@ -419,7 +420,7 @@ void Properties::translates(wording W, parse_node *p2) {
@<Check to see if a sense reversal has taken place in translation@>;
}
@<Make sure this is a genuine and previously untranslated property@> =
@<Make sure this is a genuine property@> =
if (prn == NULL) {
StandardProblems::sentence_problem(Task::syntax_tree(),
_p_(PM_NonPropertyTranslated),
@ -427,6 +428,8 @@ void Properties::translates(wording W, parse_node *p2) {
"so cannot be translated.");
return;
}
@<Make sure this is a previously untranslated property@> =
if ((RTProperties::has_been_translated(prn)) &&
(Str::eq_wide_string(RTProperties::current_translation(prn), text) == FALSE)) {
StandardProblems::sentence_problem(Task::syntax_tree(),
@ -460,6 +463,18 @@ to their analogous Inform 6 ones.
LOGIF(PROPERTY_TRANSLATIONS, "Storing this way round: $Y\n", prn);
}
@ The much simpler affordance for making a named Inter value equal to a
property defined in source text:
=
void Properties::accessible_as(wording W, parse_node *p2) {
property *prn = NULL;
if (<property-name>(W)) prn = <<rp>>;
@<Make sure this is a genuine property@>;
RTProperties::set_accessible(prn, Node::get_text(p2));
LOGIF(PROPERTY_TRANSLATIONS, "Property <$Y> accessible as <%W>\n", prn, Node::get_text(p2));
}
@h Compiling property values.
Small as it may be, this function contains two important principles: one, that
property values of something are drawn from the most specific knowledge we have

View file

@ -222,9 +222,6 @@ void Hierarchy::establish(void) {
@e MAX_FRAME_SIZE_NEEDED_HL
@e SUBMAIN_HL
@e AFTER_ACTION_HOOK_HL
@e PERFORMED_HL
@e RECURRING_HL
@e SPONTANEOUS_HL
@e HEADINGS_HAP
@e HEADING_INDEXABLE_MD_HL
@e HEADING_TEXT_MD_HL
@ -262,9 +259,6 @@ void Hierarchy::establish(void) {
H_C_T(MAX_FRAME_SIZE_NEEDED_HL, I"MAX_FRAME_SIZE_NEEDED")
H_F_T(SUBMAIN_HL, I"Submain_fn", I"Submain")
H_C_T(AFTER_ACTION_HOOK_HL, I"AfterActionHook")
H_C_T(PERFORMED_HL, I"performed")
H_C_T(RECURRING_HL, I"recurring")
H_C_T(SPONTANEOUS_HL, I"spontaneous")
H_BEGIN_AP(HEADINGS_HAP, I"heading", I"_heading")
H_C_U(HEADING_INDEXABLE_MD_HL, I"^indexable")
H_C_U(HEADING_TEXT_MD_HL, I"^text")

View file

@ -80,21 +80,6 @@ void RTDialogueBeats::compile(void) {
Emit::iname_constant(iname, K_value, Hierarchy::find(DO_NOTHING_HL));
}
Hierarchy::make_available(iname);
if (P_performed) {
iname = Hierarchy::find(PERFORMED_HL);
Emit::iname_constant(iname, K_value, RTProperties::iname(P_performed));
Hierarchy::make_available(iname);
}
if (P_performed) {
iname = Hierarchy::find(SPONTANEOUS_HL);
Emit::iname_constant(iname, K_value, RTProperties::iname(P_spontaneous));
Hierarchy::make_available(iname);
}
if (P_recurring) {
iname = Hierarchy::find(RECURRING_HL);
Emit::iname_constant(iname, K_value, RTProperties::iname(P_recurring));
Hierarchy::make_available(iname);
}
}
void RTDialogueBeats::compile_starting_beat_entry(void) {

View file

@ -13,6 +13,8 @@ typedef struct property_compilation_data {
struct package_request *prop_package; /* where to find: */
struct inter_name *prop_iname; /* the identifier we would like to use at run-time for this property */
struct text_stream *translation; /* for the iname */
struct text_stream *accessed; /* for the accessible-to text */
struct inter_name *accessibility_iname; /* for the corresponding iname */
int do_not_compile; /* for e.g. the "specification" pseudo-property */
int translated; /* has this been given an explicit translation? */
int implemented_as_attribute; /* is this an Inter attribute at run-time? */
@ -28,6 +30,8 @@ void RTProperties::initialise_pcd(property *prn, package_request *pkg, inter_nam
prn->compilation_data.prop_package = pkg;
prn->compilation_data.prop_iname = iname;
prn->compilation_data.translation = Str::duplicate(translation);
prn->compilation_data.accessed = NULL;
prn->compilation_data.accessibility_iname = NULL;
prn->compilation_data.do_not_compile = FALSE;
prn->compilation_data.translated = FALSE;
prn->compilation_data.store_in_negation = FALSE;
@ -151,6 +155,31 @@ text_stream *RTProperties::current_translation(property *prn) {
return InterNames::get_translation(RTProperties::iname(prn));
}
@ A simpler accessible-as name:
=
void RTProperties::set_accessible(property *prn, wording W) {
if (Str::len(prn->compilation_data.accessed) > 0) {
StandardProblems::sentence_problem(Task::syntax_tree(),
_p_(PM_TranslatesPropertyAlready),
"this property has already been translated",
"so there must be some duplication somewhere.");
return;
}
prn->compilation_data.accessed = Str::new();
WRITE_TO(prn->compilation_data.accessed, "%N", Wordings::first_wn(W));
}
inter_name *RTProperties::accessibility_iname(property *prn) {
if (Str::len(prn->compilation_data.accessed) == 0) return NULL;
if (prn->compilation_data.accessibility_iname == NULL) {
prn->compilation_data.accessibility_iname = InterNames::explicitly_named(
prn->compilation_data.accessed, RTProperties::package(prn));
Hierarchy::make_available(prn->compilation_data.accessibility_iname);
}
return prn->compilation_data.accessibility_iname;
}
@ A property might be missed out of the Index pages for clarity's sake:
=
@ -199,6 +228,8 @@ void RTProperties::compile(void) {
InterSymbol::set_flag(InterNames::to_symbol(iname), PERMIT_NAME_CLASH_ISYMF);
Hierarchy::apply_metadata_from_number(pack, PROPERTY_ORDER_MD_HL,
(inter_ti) prn->allocation_id);
inter_name *accessible = RTProperties::accessibility_iname(prn);
if (accessible) Emit::iname_constant(accessible, K_value, iname);
@ A unique set of values is imposed here during linking.

View file

@ -9,7 +9,7 @@ Suppose we are writing a game in which the mood of the piece changes, and we wou
Atmosphere is a kind of value. The atmospheres are normal, melancholy, and creepy.
The current atmosphere is an atmosphere that varies.
The current atmosphere variable translates into I6 as "current_atmosphere".
The current atmosphere variable is defined by Inter as "current_atmosphere".
To say by atmosphere -- ending say_one_of with marker I7_SOO_ATM:
(- {-close-brace} -).

View file

@ -20,7 +20,7 @@ Thanks to Jesse McGrew for the initial design of this example.
say "[The person asked] look[s] confused. Maybe a demonstration would help.";
persuasion fails.
The action requester is an object that varies. The action requester variable translates into I6 as "act_requester".
The action requester is an object that varies. The action requester variable is defined by Inter as "act_requester".
To decide which action is the current action with no specific actor:
let old actor be the person asked;