From b0069b92ce4d441cfdeecf61d0d9f96a5f10bda4 Mon Sep 17 00:00:00 2001 From: Graham Nelson Date: Mon, 18 Oct 2021 05:31:07 +0100 Subject: [PATCH] Finally made door_to property not a special case --- README.md | 2 +- build.txt | 4 +- docs/BasicInformKit/S-rtp.html | 5 - docs/final-module/2-cg.html | 8 +- docs/final-module/2-vnl.html | 2 +- docs/final-module/2-vo.html | 2 +- docs/final-module/4-fi6.html | 2 +- docs/final-module/4-i6c2.html | 803 +++++++++--------- docs/final-module/5-cas.html | 8 +- docs/if-module/3-tm.html | 3 +- docs/standard_rules/S-pd.html | 3 + docs/standard_rules/S-pwm.html | 24 +- inform7/Downloads/preform-diagnostics.txt | 586 ++++++------- inform7/Downloads/syntax-diagnostics.txt | 417 ++++----- inform7/Figures/memory-diagnostics.txt | 44 +- inform7/Figures/preform-summary.txt | 12 +- inform7/Figures/syntax-summary.txt | 200 ++--- inform7/Figures/timings-diagnostics.txt | 21 +- inform7/Figures/verbs-diagnostics.txt | 2 +- .../Inter/BasicInformKit/Sections/RTP.i6t | 4 - inform7/Internal/Miscellany/inform7_clib.c | 8 +- .../_Results_Ideal/Index-Chart.txt | 2 +- inform7/Tests/Test Makes/Eg4-C/textual.txt | 2 +- .../Sections/Phrase Definitions.w | 3 + .../Sections/Physical World Model.w | 23 +- inform7/if-module/Chapter 3/The Map.w | 3 +- inter/final-module/Chapter 4/Inform 6 Code.w | 605 ++++++------- inter/final-module/Chapter 5/C Assembly.w | 8 +- resources/Documentation/Examples/Autodoor.txt | 2 +- resources/Documentation/Examples/Whither.txt | 2 +- .../Figures/excerpts-diagnostics.txt | 18 +- .../Figures/stock-diagnostics.txt | 10 +- 32 files changed, 1457 insertions(+), 1381 deletions(-) diff --git a/README.md b/README.md index 277c0c815..c02153a8b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Inform 7 -v10.1.0-alpha.1+6T55 'Krypton' (17 October 2021) +v10.1.0-alpha.1+6T56 'Krypton' (18 October 2021) ## About Inform 7 diff --git a/build.txt b/build.txt index d468414ef..d348d783b 100644 --- a/build.txt +++ b/build.txt @@ -1,3 +1,3 @@ Prerelease: alpha.1 -Build Date: 17 October 2021 -Build Number: 6T55 +Build Date: 18 October 2021 +Build Number: 6T56 diff --git a/docs/BasicInformKit/S-rtp.html b/docs/BasicInformKit/S-rtp.html index c87e170b3..f38d173ae 100644 --- a/docs/BasicInformKit/S-rtp.html +++ b/docs/BasicInformKit/S-rtp.html @@ -355,11 +355,6 @@ it is used as an index into the table column to get the address of the memory location storing the property value.

-

The door_to property, relevant only for doors, is called rather than read: -this enables it to be an I6 routine returning the other side of the door from -the one which the player is on. -

-
 [ GProperty K V pr err holder val;
     if (ProvidesProperty(K, V, pr, 1-err)) {
diff --git a/docs/final-module/2-cg.html b/docs/final-module/2-cg.html
index 5723b5df7..fa2724d92 100644
--- a/docs/final-module/2-cg.html
+++ b/docs/final-module/2-cg.html
@@ -296,7 +296,7 @@ everything else.
 define PRINTING_LTM 2
 
-void CodeGen::lt_mode(code_generation *gen, int m) {
+void CodeGen::lt_mode(code_generation *gen, int m) {
     gen->literal_text_mode = m;
 }
 
@@ -414,7 +414,7 @@ but for now about 10 layers is plenty.

-segmentation_pos CodeGen::select(code_generation *gen, int i) {
+segmentation_pos CodeGen::select(code_generation *gen, int i) {
     return CodeGen::select_layered(gen, i, 1);
 }
 
@@ -431,7 +431,7 @@ but for now about 10 layers is plenty.
     return previous_pos;
 }
 
-void CodeGen::deselect(code_generation *gen, segmentation_pos saved) {
+void CodeGen::deselect(code_generation *gen, segmentation_pos saved) {
     if (gen->segmentation.temporarily_diverted) internal_error("poorly timed deselection");
     gen->segmentation.pos = saved;
 }
@@ -457,7 +457,7 @@ if it has been "temporarily diverted" then the regiular selection is ignored.
 

-text_stream *CodeGen::current(code_generation *gen) {
+text_stream *CodeGen::current(code_generation *gen) {
     if (gen->segmentation.temporarily_diverted)
         return gen->segmentation.temporarily_diverted_to;
     if (gen->segmentation.pos.current_segment == NULL) return NULL;
diff --git a/docs/final-module/2-vnl.html b/docs/final-module/2-vnl.html
index 29dd90f4d..a1a5be0fb 100644
--- a/docs/final-module/2-vnl.html
+++ b/docs/final-module/2-vnl.html
@@ -197,7 +197,7 @@ well the entire tree by the end.
 define VNODE_ALLC  LOOP_THROUGH_INTER_CHILDREN(C, P) Vanilla::node(gen, C)
 
-void Vanilla::node(code_generation *gen, inter_tree_node *P) {
+void Vanilla::node(code_generation *gen, inter_tree_node *P) {
     switch (P->W.data[ID_IFLD]) {
         case CONSTANT_IST:      VanillaConstants::constant(gen, P); break;
 
diff --git a/docs/final-module/2-vo.html b/docs/final-module/2-vo.html
index 175665112..175f984d9 100644
--- a/docs/final-module/2-vo.html
+++ b/docs/final-module/2-vo.html
@@ -398,7 +398,7 @@ not as wasteful as it looks.)
 

-text_stream *VanillaObjects::inner_property_name(code_generation *gen, inter_symbol *prop_name) {
+text_stream *VanillaObjects::inner_property_name(code_generation *gen, inter_symbol *prop_name) {
     text_stream *inner_name = I"<nameless>";
     int N = Inter::Symbols::read_annotation(prop_name, INNER_PROPERTY_NAME_IANN);
     if (N > 0) inner_name = Inter::Warehouse::get_text(InterTree::warehouse(gen->from), (inter_ti) N);
diff --git a/docs/final-module/4-fi6.html b/docs/final-module/4-fi6.html
index 3883b3978..08dca2d06 100644
--- a/docs/final-module/4-fi6.html
+++ b/docs/final-module/4-fi6.html
@@ -316,7 +316,7 @@ tweaked. These go at the top of the source code and typically look like this:
 
 int I6Target::end_generation(code_generator *cgt, code_generation *gen) {
     I6TargetObjects::end_generation(cgt, gen);
-    I6TargetCode::end_generation(cgt, gen);
+    I6TargetCode::end_generation(cgt, gen);
     return FALSE;
 }
 
diff --git a/docs/final-module/4-i6c2.html b/docs/final-module/4-i6c2.html index e02961cb5..e83da01f0 100644 --- a/docs/final-module/4-i6c2.html +++ b/docs/final-module/4-i6c2.html @@ -73,7 +73,7 @@ function togglePopup(material_id) {

To generate I6 routines of imperative code.

-
+

§1.

@@ -307,7 +307,10 @@ it would be for C. }

§5. Assembly language. In general, we make no attempt to police the supposedly valid assembly language -given to us here. Glulx has one set, Z another. +given to us here. Glulx has one set, Z another. Any assembly language in the Inter +tree results from kit material; and if the author of such a kit tries to use an +invalid opcode, then the result won't compile under I6, but none of that is our +business here.

The @aread opcode is a valid Z-machine opcode, but owing to the way I6 handles @@ -336,7 +339,7 @@ As a dodge, we use the Inform 6 statement if (void_context) WRITE(";\n"); }

-

§6.

+

§6. Primitives.

 int i6_next_is_a_ref = FALSE, i6_next_is_a_give = FALSE, i6_next_is_a_take = FALSE;
@@ -346,18 +349,17 @@ As a dodge, we use the Inform 6 statement     int suppress_terminal_semicolon = FALSE;
     inter_tree *I = gen->from;
     inter_ti bip = Primitives::to_bip(I, prim_name);
-    text_stream *store_form = NULL;
 
     switch (bip) {
         Basic arithmetic and logical operations6.1;
         Storing or otherwise changing values6.2;
-        VM stack access6.4;
-        Control structures6.5;
-        Indirect function or method calls6.6;
+        VM stack access6.5;
+        Control structures6.6;
+        Indirect function or method calls6.7;
         Property value access6.3;
-        Textual output6.7;
-        The VM object tree6.8;
-        Random number generator6.9;
+        Textual output6.8;
+        The VM object tree6.9;
+        Random number generator6.10;
         default:
             WRITE_TO(STDERR, "Unimplemented primitive is '%S'\n", prim_name->symbol_name);
             internal_error("unimplemented prim");
@@ -397,351 +399,6 @@ As a dodge, we use the Inform 6 statement     case ALTERNATIVE_BIP:   VNODE_1C; WRITE(" or "); VNODE_2C; break;
 
-

§6.2. Storing or otherwise changing values6.2 = -

- -
-    case STORE_BIP:         store_form = I"i7_lvalue_SET"; Perform a store6.2.1; break;
-    case PREINCREMENT_BIP:  store_form = I"i7_lvalue_PREINC"; Perform a store6.2.1; break;
-    case POSTINCREMENT_BIP: store_form = I"i7_lvalue_POSTINC"; Perform a store6.2.1; break;
-    case PREDECREMENT_BIP:  store_form = I"i7_lvalue_PREDEC"; Perform a store6.2.1; break;
-    case POSTDECREMENT_BIP: store_form = I"i7_lvalue_POSTDEC"; Perform a store6.2.1; break;
-    case SETBIT_BIP:        store_form = I"i7_lvalue_SETBIT"; Perform a store6.2.1; break;
-    case CLEARBIT_BIP:      store_form = I"i7_lvalue_CLEARBIT"; Perform a store6.2.1; break;
-
- -

§6.3. Property value access6.3 = -

- -
-    case PROPERTYEXISTS_BIP:
-        I6_GEN_DATA(value_ranges_needed) = TRUE;
-        I6_GEN_DATA(value_property_holders_needed) = TRUE;
-        WRITE("(_final_provides("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(", "); VNODE_3C; WRITE("))"); break;
-    case PROPERTYADDRESS_BIP: WRITE("(_final_read_paddr("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break;
-    case PROPERTYLENGTH_BIP: WRITE("(_final_read_plen("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break;
-    case PROPERTYVALUE_BIP: if (i6_next_is_a_give)
-                                Write attribute give6.3.1
-                            else if (i6_next_is_a_take)
-                                Write attribute take6.3.2
-                            else if (i6_next_is_a_ref)
-                                Write property value6.3.3
-                            else
-                                Evaluate property value6.3.4;
-                            break;
-
- -

§6.4. VM stack access6.4 = -

- -
-    case PUSH_BIP:          WRITE("@push "); VNODE_1C; break;
-    case PULL_BIP:          WRITE("@pull "); VNODE_1C; break;
-
- -

§6.5. Control structures6.5 = -

- -
-    case BREAK_BIP:         WRITE("break"); break;
-    case CONTINUE_BIP:      WRITE("continue"); break;
-    case RETURN_BIP:        Generate primitive for return6.5.3; break;
-    case JUMP_BIP:          WRITE("jump "); VNODE_1C; break;
-    case QUIT_BIP:          WRITE("quit"); break;
-    case RESTORE_BIP:       WRITE("restore "); VNODE_1C; break;
-    case IF_BIP: Generate primitive for if6.5.4; break;
-    case IFDEBUG_BIP: Generate primitive for ifdebug6.5.5; break;
-    case IFSTRICT_BIP: Generate primitive for ifstrict6.5.6; break;
-    case IFELSE_BIP: Generate primitive for ifelse6.5.7; break;
-    case WHILE_BIP: Generate primitive for while6.5.8; break;
-    case DO_BIP: Generate primitive for do6.5.9; break;
-    case FOR_BIP: Generate primitive for for6.5.10; break;
-    case OBJECTLOOP_BIP: Generate primitive for objectloop6.5.11; break;
-    case OBJECTLOOPX_BIP: Generate primitive for objectloopx6.5.12; break;
-    case LOOP_BIP: Generate primitive for loop6.5.13; break;
-    case SWITCH_BIP: Generate primitive for switch6.5.14; break;
-    case CASE_BIP: Generate primitive for case6.5.15; break;
-    case ALTERNATIVECASE_BIP: VNODE_1C; WRITE(", "); VNODE_2C; break;
-    case DEFAULT_BIP: Generate primitive for default6.5.16; break;
-
- -

§6.6. Indirect function or method calls6.6 = -

- -
-    case INDIRECT0_BIP: case INDIRECT0V_BIP: case CALLMESSAGE0_BIP:
-                            WRITE("("); VNODE_1C; WRITE(")()"); break;
-    case INDIRECT1_BIP: case INDIRECT1V_BIP: case CALLMESSAGE1_BIP:
-                            WRITE("("); VNODE_1C; WRITE(")(");
-                            VNODE_2C; WRITE(")"); break;
-    case INDIRECT2_BIP: case INDIRECT2V_BIP: case CALLMESSAGE2_BIP:
-                            WRITE("("); VNODE_1C; WRITE(")(");
-                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(")"); break;
-    case INDIRECT3_BIP: case INDIRECT3V_BIP: case CALLMESSAGE3_BIP:
-                            WRITE("("); VNODE_1C; WRITE(")(");
-                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(")"); break;
-    case INDIRECT4_BIP: case INDIRECT4V_BIP:
-                            WRITE("("); VNODE_1C; WRITE(")(");
-                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(",");
-                            VNODE_5C; WRITE(")"); break;
-    case INDIRECT5_BIP: case INDIRECT5V_BIP:
-                            WRITE("("); VNODE_1C; WRITE(")(");
-                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(",");
-                            VNODE_5C; WRITE(","); VNODE_6C; WRITE(")"); break;
-    case MESSAGE0_BIP:      WRITE("_final_message0("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(")"); break;
-    case MESSAGE1_BIP:      WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)(");
-                            VNODE_3C; WRITE("))"); break;
-    case MESSAGE2_BIP:      WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)(");
-                            VNODE_3C; WRITE(","); VNODE_4C; WRITE("))"); break;
-    case MESSAGE3_BIP:      WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)(");
-                            VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); VNODE_5C; WRITE("))"); break;
-
-    case EXTERNALCALL_BIP:  internal_error("external calls impossible in Inform 6"); break;
-
- -

§6.7. Textual output6.7 = -

- -
-    case PRINT_BIP: WRITE("print "); CodeGen::lt_mode(gen, PRINTING_LTM); VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break;
-    case PRINTCHAR_BIP: WRITE("print (char) "); VNODE_1C; break;
-    case PRINTNL_BIP: WRITE("new_line"); break;
-    case PRINTOBJ_BIP: WRITE("print (object) "); VNODE_1C; break;
-    case PRINTNUMBER_BIP: WRITE("print "); VNODE_1C; break;
-    case PRINTDWORD_BIP: WRITE("print (address) "); VNODE_1C; break;
-    case PRINTSTRING_BIP: WRITE("print (string) "); VNODE_1C; break;
-    case BOX_BIP: WRITE("box "); CodeGen::lt_mode(gen, BOX_LTM); VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break;
-    case SPACES_BIP:        WRITE("spaces "); VNODE_1C; break;
-    case FONT_BIP:
-        WRITE("if ("); VNODE_1C; WRITE(") { font on; } else { font off; }");
-        suppress_terminal_semicolon = TRUE;
-        break;
-    case STYLE_BIP: {
-        inter_tree_node *N = InterTree::first_child(P);
-        if ((N->W.data[ID_IFLD] == CONSTANT_IST) &&
-            (N->W.data[FORMAT_CONST_IFLD] == CONSTANT_DIRECT)) {
-            inter_ti val2 = N->W.data[DATA_CONST_IFLD + 1];
-            switch (val2) {
-                case 1: WRITE("style bold"); break;
-                case 2: WRITE("style underline"); break;
-                case 3: WRITE("style reverse"); break;
-                default: WRITE("style roman");
-            }
-        } else {
-            WRITE("style roman");
-        }
-        break;
-    }
-
- -

§6.8. The VM object tree6.8 = -

- -
-    case MOVE_BIP: WRITE("move "); VNODE_1C; WRITE(" to "); VNODE_2C; break;
-    case REMOVE_BIP: WRITE("remove "); VNODE_1C; break;
-
- -

§6.9. Random number generator6.9 = -

- -
-    case RANDOM_BIP: WRITE("random("); VNODE_1C; WRITE(")"); break;
-
- -

§6.2.1. Perform a store6.2.1 = -

- -
-    inter_tree_node *ref = InterTree::first_child(P);
-    if ((Inter::Reference::node_is_ref_to(gen->from, ref, PROPERTYVALUE_BIP)) &&
-        (I6TargetCode::pval_case(ref) != 2)) {
-        Handle the ref using the incomplete-function mode6.2.1.1;
-    } else {
-        Handle the ref with code working either as lvalue or rvalue6.2.1.2;
-    }
-
- -

§6.2.1.1. Handle the ref using the incomplete-function mode6.2.1.1 = -

- -
-    inter_tree_node *VP = InterTree::second_child(P);
-    int set = NOT_APPLICABLE;
-    if (VP->W.data[ID_IFLD] == VAL_IST) {
-        inter_ti val1 = VP->W.data[VAL1_VAL_IFLD];
-        inter_ti val2 = VP->W.data[VAL2_VAL_IFLD];
-        if ((val1 == LITERAL_IVAL) && (val2)) set = TRUE;
-        if ((val1 == LITERAL_IVAL) && (val2 == 0)) set = FALSE;
-    }
-    if ((I6TargetCode::pval_case(ref) == 1) && (set == TRUE)) {
-        i6_next_is_a_give = TRUE; VNODE_1C; i6_next_is_a_give = FALSE;
-    } else if ((I6TargetCode::pval_case(ref) == 1) && (set == FALSE)) {
-        i6_next_is_a_take = TRUE; VNODE_1C; i6_next_is_a_take = FALSE;
-    } else {
-        WRITE("("); i6_next_is_a_ref = TRUE; VNODE_1C; i6_next_is_a_ref = FALSE;
-        if (bip == STORE_BIP) { VNODE_2C; } else { WRITE("0"); }
-        WRITE(", %S))", store_form);
-    }
-
- -

§6.2.1.2. Handle the ref with code working either as lvalue or rvalue6.2.1.2 = -

- -
-    switch (bip) {
-        case PREINCREMENT_BIP:  WRITE("++("); VNODE_1C; WRITE(")"); break;
-        case POSTINCREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")++"); break;
-        case PREDECREMENT_BIP:  WRITE("--("); VNODE_1C; WRITE(")"); break;
-        case POSTDECREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")--"); break;
-        case STORE_BIP:         WRITE("("); VNODE_1C; WRITE(" = "); VNODE_2C; WRITE(")"); break;
-        case SETBIT_BIP:        VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" | "); VNODE_2C; break;
-        case CLEARBIT_BIP:      VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" &~ ("); VNODE_2C; WRITE(")"); break;
-    }
-
- -

§6.3.1. Write attribute give6.3.1 = -

- -
-    i6_next_is_a_give = FALSE;
-    WRITE("give "); VNODE_2C; WRITE(" %S", I6TargetCode::inner_name(gen, P)); break;
-
- -

§6.3.2. Write attribute take6.3.2 = -

- -
-    i6_next_is_a_take = FALSE;
-    WRITE("give "); VNODE_2C; WRITE(" ~%S", I6TargetCode::inner_name(gen, P)); break;
-
- -

§6.3.3. Write property value6.3.3 = -

- -
-    i6_next_is_a_ref = FALSE;
-    WRITE("_final_write_pval("); VNODE_1C; WRITE(","); VNODE_2C; WRITE(","); VNODE_3C; WRITE(", ");
-
- -

§6.3.4. Evaluate property value6.3.4 = -

- -
-    switch (I6TargetCode::pval_case(P)) {
-        case 1: WRITE("("); VNODE_2C; WRITE(" has %S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break;
-        case 2: WRITE("("); VNODE_2C; WRITE(".%S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break;
-        case 3: I6_GEN_DATA(value_property_holders_needed) = TRUE;
-                I6TargetCode::comparison_r(gen, InterTree::first_child(P), InterTree::second_child(P), InterTree::third_child(P), 0); break;
-    }
-
- -

§6.5.1.

- -
-void I6TargetCode::comparison_r(code_generation *gen, inter_tree_node *K,
-    inter_tree_node *X, inter_tree_node *Y, int depth) {
-    text_stream *OUT = CodeGen::current(gen);
-    if (Y->W.data[ID_IFLD] == INV_IST) {
-        if (Y->W.data[METHOD_INV_IFLD] == INVOKED_PRIMITIVE) {
-            inter_symbol *prim = Inter::Inv::invokee(Y);
-            inter_ti ybip = Primitives::to_bip(gen->from, prim);
-            if (ybip == ALTERNATIVE_BIP) {
-                if (depth == 0) { WRITE("((or_tmp_var = "); Vanilla::node(gen, X); WRITE(") && (("); }
-                I6TargetCode::comparison_r(gen, K, NULL, InterTree::first_child(Y), depth+1);
-                WRITE(") || (");
-                I6TargetCode::comparison_r(gen, K, NULL, InterTree::second_child(Y), depth+1);
-                if (depth == 0) { WRITE(")))"); }
-                return;
-            }
-        }
-    }
-    switch (I6TargetCode::pval_case_inner(Y)) {
-        case 1: WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); WRITE(" has %S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break;
-        case 2: WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); WRITE(".%S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break;
-        case 3:
-            WRITE("_final_read_pval(");
-            Vanilla::node(gen, K);
-            WRITE(", ");
-            if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var");
-            WRITE(", ");
-            Vanilla::node(gen, Y);
-            WRITE(")"); break;
-    }
-}
-
-

§6.5.2.

- -
-int I6TargetCode::pval_case(inter_tree_node *P) {
-    while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P);
-    inter_tree_node *prop_node = InterTree::third_child(P);
-    return I6TargetCode::pval_case_inner(prop_node);
-}
-
-text_stream *I6TargetCode::inner_name(code_generation *gen, inter_tree_node *P) {
-    while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P);
-    inter_tree_node *prop_node = InterTree::third_child(P);
-    return I6TargetCode::inner_name_inner(gen, prop_node);
-}
-
-text_stream *I6TargetCode::inner_name_inner(code_generation *gen, inter_tree_node *prop_node) {
-    inter_symbol *prop_symbol = NULL;
-    if (prop_node->W.data[ID_IFLD] == VAL_IST) {
-        inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD];
-        inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD];
-        if (Inter::Symbols::is_stored_in_data(val1, val2))
-            prop_symbol =
-                InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2);
-    }
-    if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) {
-        return VanillaObjects::inner_property_name(gen, prop_symbol);
-    } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) {
-        return VanillaObjects::inner_property_name(gen, prop_symbol);
-    } else {
-        return NULL;
-    }
-}
-
-int I6TargetCode::pval_case_inner(inter_tree_node *prop_node) {
-    inter_symbol *prop_symbol = NULL;
-    if (prop_node->W.data[ID_IFLD] == VAL_IST) {
-        inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD];
-        inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD];
-        if (Inter::Symbols::is_stored_in_data(val1, val2))
-            prop_symbol =
-                InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2);
-    }
-    if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) {
-        return 1;
-    } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) {
-        return 2;
-    } else {
-        return 3;
-    }
-}
-
-

§6.5.3. Generate primitive for return6.5.3 = -

- -
-    int rboolean = NOT_APPLICABLE;
-    inter_tree_node *V = InterTree::first_child(P);
-    if (V->W.data[ID_IFLD] == VAL_IST) {
-        inter_ti val1 = V->W.data[VAL1_VAL_IFLD];
-        inter_ti val2 = V->W.data[VAL2_VAL_IFLD];
-        if (val1 == LITERAL_IVAL) {
-            if (val2 == 0) rboolean = FALSE;
-            if (val2 == 1) rboolean = TRUE;
-        }
-    }
-    switch (rboolean) {
-        case FALSE: WRITE("rfalse"); break;
-        case TRUE: WRITE("rtrue"); break;
-        case NOT_APPLICABLE: WRITE("return "); Vanilla::node(gen, V); break;
-    }
-
-

§6.1.1. Here we need some gymnastics. We need to produce a value which the sometimes shaky I6 expression parser will accept, which turns out to be quite a constraint. If we were compiling to C, we might try this: @@ -794,7 +451,232 @@ then the result. OUTDENT; WRITE(")\n");

-

§6.5.4. Generate primitive for if6.5.4 = +

§6.2. Storing or otherwise changing values6.2 = +

+ +
+    case STORE_BIP:         Perform a store6.2.1; break;
+    case PREINCREMENT_BIP:  Perform a store6.2.1; break;
+    case POSTINCREMENT_BIP: Perform a store6.2.1; break;
+    case PREDECREMENT_BIP:  Perform a store6.2.1; break;
+    case POSTDECREMENT_BIP: Perform a store6.2.1; break;
+    case SETBIT_BIP:        Perform a store6.2.1; break;
+    case CLEARBIT_BIP:      Perform a store6.2.1; break;
+
+ +

§6.2.1. Perform a store6.2.1 = +

+ +
+    inter_tree_node *ref = InterTree::first_child(P);
+    if ((Inter::Reference::node_is_ref_to(gen->from, ref, PROPERTYVALUE_BIP)) &&
+        (I6TargetCode::pval_case(ref) != I6G_CAN_PROVE_IS_OBJ_PROPERTY)) {
+        Handle the ref using the incomplete-function mode6.2.1.1;
+    } else {
+        Handle the ref with code working either as lvalue or rvalue6.2.1.2;
+    }
+
+ +

§6.2.1.1. Handle the ref using the incomplete-function mode6.2.1.1 = +

+ +
+    inter_tree_node *VP = InterTree::second_child(P);
+    int set = NOT_APPLICABLE;
+    if (VP->W.data[ID_IFLD] == VAL_IST) {
+        inter_ti val1 = VP->W.data[VAL1_VAL_IFLD];
+        inter_ti val2 = VP->W.data[VAL2_VAL_IFLD];
+        if ((val1 == LITERAL_IVAL) && (val2)) set = TRUE;
+        if ((val1 == LITERAL_IVAL) && (val2 == 0)) set = FALSE;
+    }
+    if ((I6TargetCode::pval_case(ref) == I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE) && (set == TRUE)) {
+        i6_next_is_a_give = TRUE; VNODE_1C; i6_next_is_a_give = FALSE;
+    } else if ((I6TargetCode::pval_case(ref) == I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE) && (set == FALSE)) {
+        i6_next_is_a_take = TRUE; VNODE_1C; i6_next_is_a_take = FALSE;
+    } else {
+        WRITE("("); i6_next_is_a_ref = TRUE; VNODE_1C; i6_next_is_a_ref = FALSE;
+        if (bip == STORE_BIP) { VNODE_2C; } else { WRITE("0"); }
+        text_stream *store_form = NULL;
+        switch (bip) {
+            case STORE_BIP:         store_form = I"i7_lvalue_SET"; break;
+            case PREINCREMENT_BIP:  store_form = I"i7_lvalue_PREINC"; break;
+            case POSTINCREMENT_BIP: store_form = I"i7_lvalue_POSTINC"; break;
+            case PREDECREMENT_BIP:  store_form = I"i7_lvalue_PREDEC"; break;
+            case POSTDECREMENT_BIP: store_form = I"i7_lvalue_POSTDEC"; break;
+            case SETBIT_BIP:        store_form = I"i7_lvalue_SETBIT"; break;
+            case CLEARBIT_BIP:      store_form = I"i7_lvalue_CLEARBIT"; break;
+        }
+        WRITE(", %S))", store_form);
+    }
+
+ +

§6.2.1.2. Handle the ref with code working either as lvalue or rvalue6.2.1.2 = +

+ +
+    switch (bip) {
+        case PREINCREMENT_BIP:  WRITE("++("); VNODE_1C; WRITE(")"); break;
+        case POSTINCREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")++"); break;
+        case PREDECREMENT_BIP:  WRITE("--("); VNODE_1C; WRITE(")"); break;
+        case POSTDECREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")--"); break;
+        case STORE_BIP:         WRITE("("); VNODE_1C; WRITE(" = "); VNODE_2C; WRITE(")"); break;
+        case SETBIT_BIP:        VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" | "); VNODE_2C; break;
+        case CLEARBIT_BIP:      VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" &~ ("); VNODE_2C; WRITE(")"); break;
+    }
+
+ +

§6.3. Property value access6.3 = +

+ +
+    case PROPERTYEXISTS_BIP:
+        I6_GEN_DATA(value_ranges_needed) = TRUE;
+        I6_GEN_DATA(value_property_holders_needed) = TRUE;
+        WRITE("(_final_provides("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(", "); VNODE_3C; WRITE("))"); break;
+    case PROPERTYADDRESS_BIP: WRITE("(_final_read_paddr("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break;
+    case PROPERTYLENGTH_BIP: WRITE("(_final_read_plen("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break;
+    case PROPERTYVALUE_BIP:
+        if (i6_next_is_a_give) Write attribute give6.3.1
+        else if (i6_next_is_a_take) Write attribute take6.3.2
+        else if (i6_next_is_a_ref) Write property value6.3.3
+        else Evaluate property value6.3.4;
+        break;
+
+ +

§6.3.1. Write attribute give6.3.1 = +

+ +
+    i6_next_is_a_give = FALSE;
+    WRITE("give "); VNODE_2C; WRITE(" %S", I6TargetCode::inner_name(gen, P)); break;
+
+ +

§6.3.2. Write attribute take6.3.2 = +

+ +
+    i6_next_is_a_take = FALSE;
+    WRITE("give "); VNODE_2C; WRITE(" ~%S", I6TargetCode::inner_name(gen, P)); break;
+
+ +

§6.3.3. Write property value6.3.3 = +

+ +
+    i6_next_is_a_ref = FALSE;
+    WRITE("_final_write_pval("); VNODE_1C; WRITE(","); VNODE_2C; WRITE(","); VNODE_3C; WRITE(", ");
+
+ +

§6.3.4. Evaluate property value6.3.4 = +

+ +
+    switch (I6TargetCode::pval_case(P)) {
+        case I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE:
+            WRITE("("); VNODE_2C; WRITE(" has %S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break;
+        case I6G_CAN_PROVE_IS_OBJ_PROPERTY:
+            WRITE("("); VNODE_2C; WRITE(".%S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break;
+        case I6G_CANNOT_PROVE:
+            I6_GEN_DATA(value_property_holders_needed) = TRUE;
+                I6TargetCode::eval_property_list(gen, InterTree::first_child(P),
+                    InterTree::second_child(P), InterTree::third_child(P), 0); break;
+    }
+
+ +

§6.4.

+ +
+void I6TargetCode::eval_property_list(code_generation *gen, inter_tree_node *K,
+    inter_tree_node *X, inter_tree_node *Y, int depth) {
+    text_stream *OUT = CodeGen::current(gen);
+    if (Y->W.data[ID_IFLD] == INV_IST) {
+        if (Y->W.data[METHOD_INV_IFLD] == INVOKED_PRIMITIVE) {
+            inter_symbol *prim = Inter::Inv::invokee(Y);
+            inter_ti ybip = Primitives::to_bip(gen->from, prim);
+            if (ybip == ALTERNATIVE_BIP) {
+                if (depth == 0) { WRITE("((or_tmp_var = "); Vanilla::node(gen, X); WRITE(") && (("); }
+                I6TargetCode::eval_property_list(gen, K, NULL, InterTree::first_child(Y), depth+1);
+                WRITE(") || (");
+                I6TargetCode::eval_property_list(gen, K, NULL, InterTree::second_child(Y), depth+1);
+                if (depth == 0) { WRITE(")))"); }
+                return;
+            }
+        }
+    }
+    switch (I6TargetCode::pval_case_inner(Y)) {
+        case I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE:
+            WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var");
+            WRITE(" has %S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break;
+        case I6G_CAN_PROVE_IS_OBJ_PROPERTY:
+            WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var");
+            WRITE(".%S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break;
+        case I6G_CANNOT_PROVE:
+            WRITE("_final_read_pval(");
+            Vanilla::node(gen, K);
+            WRITE(", ");
+            if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var");
+            WRITE(", ");
+            Vanilla::node(gen, Y);
+            WRITE(")"); break;
+    }
+}
+
+

§6.5. VM stack access6.5 = +

+ +
+    case PUSH_BIP:          WRITE("@push "); VNODE_1C; break;
+    case PULL_BIP:          WRITE("@pull "); VNODE_1C; break;
+
+ +

§6.6. Control structures6.6 = +

+ +
+    case BREAK_BIP:         WRITE("break"); break;
+    case CONTINUE_BIP:      WRITE("continue"); break;
+    case RETURN_BIP:        Generate primitive for return6.6.1; break;
+    case JUMP_BIP:          WRITE("jump "); VNODE_1C; break;
+    case QUIT_BIP:          WRITE("quit"); break;
+    case RESTORE_BIP:       WRITE("restore "); VNODE_1C; break;
+    case IF_BIP:            Generate primitive for if6.6.2; break;
+    case IFDEBUG_BIP:       Generate primitive for ifdebug6.6.3; break;
+    case IFSTRICT_BIP:      Generate primitive for ifstrict6.6.4; break;
+    case IFELSE_BIP:        Generate primitive for ifelse6.6.5; break;
+    case WHILE_BIP:         Generate primitive for while6.6.6; break;
+    case DO_BIP:            Generate primitive for do6.6.7; break;
+    case FOR_BIP:           Generate primitive for for6.6.8; break;
+    case OBJECTLOOP_BIP:    Generate primitive for objectloop6.6.9; break;
+    case OBJECTLOOPX_BIP:   Generate primitive for objectloopx6.6.10; break;
+    case LOOP_BIP:          Generate primitive for loop6.6.11; break;
+    case SWITCH_BIP:        Generate primitive for switch6.6.12; break;
+    case CASE_BIP:          Generate primitive for case6.6.13; break;
+    case ALTERNATIVECASE_BIP: VNODE_1C; WRITE(", "); VNODE_2C; break;
+    case DEFAULT_BIP:       Generate primitive for default6.6.14; break;
+
+ +

§6.6.1. Generate primitive for return6.6.1 = +

+ +
+    int rboolean = NOT_APPLICABLE;
+    inter_tree_node *V = InterTree::first_child(P);
+    if (V->W.data[ID_IFLD] == VAL_IST) {
+        inter_ti val1 = V->W.data[VAL1_VAL_IFLD];
+        inter_ti val2 = V->W.data[VAL2_VAL_IFLD];
+        if (val1 == LITERAL_IVAL) {
+            if (val2 == 0) rboolean = FALSE;
+            if (val2 == 1) rboolean = TRUE;
+        }
+    }
+    switch (rboolean) {
+        case FALSE: WRITE("rfalse"); break;
+        case TRUE: WRITE("rtrue"); break;
+        case NOT_APPLICABLE: WRITE("return "); Vanilla::node(gen, V); break;
+    }
+
+ +

§6.6.2. Generate primitive for if6.6.2 =

@@ -802,24 +684,24 @@ then the result.
     OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.5. Generate primitive for ifdebug6.5.5 = +

+

§6.6.3. Generate primitive for ifdebug6.6.3 =

     WRITE("#ifdef DEBUG;\n"); INDENT; VNODE_1C; OUTDENT; WRITE("#endif;\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.6. Generate primitive for ifstrict6.5.6 = +

+

§6.6.4. Generate primitive for ifstrict6.6.4 =

     WRITE("#ifdef STRICT_MODE;\n"); INDENT; VNODE_1C; OUTDENT; WRITE("#endif;\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.7. Generate primitive for ifelse6.5.7 = +

+

§6.6.5. Generate primitive for ifelse6.6.5 =

@@ -827,29 +709,31 @@ then the result.
     WRITE("} else {\n"); INDENT; VNODE_3C; OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.8. Generate primitive for while6.5.8 = +

+

§6.6.6. Generate primitive for while6.6.6 =

     WRITE("while ("); VNODE_1C; WRITE(") {\n"); INDENT; VNODE_2C; OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.9. Generate primitive for do6.5.9 = +

+

§6.6.7. Generate primitive for do6.6.7 =

     WRITE("do {"); VNODE_2C; WRITE("} until (\n"); INDENT; VNODE_1C; OUTDENT; WRITE(")\n");
 
- -

§6.5.10. Generate primitive for for6.5.10 = +

+

§6.6.8. Generate primitive for for6.6.8 =

     WRITE("for (");
     inter_tree_node *INIT = InterTree::first_child(P);
-    if (!((INIT->W.data[ID_IFLD] == VAL_IST) && (INIT->W.data[VAL1_VAL_IFLD] == LITERAL_IVAL) && (INIT->W.data[VAL2_VAL_IFLD] == 1))) VNODE_1C;
+    if (!((INIT->W.data[ID_IFLD] == VAL_IST) &&
+        (INIT->W.data[VAL1_VAL_IFLD] == LITERAL_IVAL) &&
+        (INIT->W.data[VAL2_VAL_IFLD] == 1))) VNODE_1C;
     WRITE(":"); VNODE_2C;
     WRITE(":");
     inter_tree_node *U = InterTree::third_child(P);
@@ -859,8 +743,8 @@ then the result.
     OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.11. Generate primitive for objectloop6.5.11 = +

+

§6.6.9. Generate primitive for objectloop6.6.9 =

@@ -883,8 +767,8 @@ then the result.
     OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.12. Generate primitive for objectloopx6.5.12 = +

+

§6.6.10. Generate primitive for objectloopx6.6.10 =

@@ -892,16 +776,16 @@ then the result.
     WRITE(") {\n"); INDENT; VNODE_3C; OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.13. Generate primitive for loop6.5.13 = +

+

§6.6.11. Generate primitive for loop6.6.11 =

     WRITE("{\n"); INDENT; VNODE_1C; OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.14. Generate primitive for switch6.5.14 = +

+

§6.6.12. Generate primitive for switch6.6.12 =

@@ -909,25 +793,172 @@ then the result.
     WRITE(") {\n"); INDENT; VNODE_2C; OUTDENT; WRITE("}\n");
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.15. Generate primitive for case6.5.15 = +

+

§6.6.13. Generate primitive for case6.6.13 =

     VNODE_1C; WRITE(":\n"); INDENT; VNODE_2C; WRITE(";\n"); OUTDENT;
     suppress_terminal_semicolon = TRUE;
 
- -

§6.5.16. Generate primitive for default6.5.16 = +

+

§6.6.14. Generate primitive for default6.6.14 =

     WRITE("default:\n"); INDENT; VNODE_1C; WRITE(";\n"); OUTDENT;
     suppress_terminal_semicolon = TRUE;
-
 
- -

§7. A few resources.

+ +

§6.7. Indirect function or method calls6.7 = +

+ +
+    case INDIRECT0_BIP:
+    case INDIRECT0V_BIP:
+    case CALLMESSAGE0_BIP:  WRITE("("); VNODE_1C; WRITE(")()"); break;
+    case INDIRECT1_BIP:
+    case INDIRECT1V_BIP:
+    case CALLMESSAGE1_BIP:  WRITE("("); VNODE_1C; WRITE(")(");
+                            VNODE_2C; WRITE(")"); break;
+    case INDIRECT2_BIP:
+    case INDIRECT2V_BIP:
+    case CALLMESSAGE2_BIP:  WRITE("("); VNODE_1C; WRITE(")(");
+                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(")"); break;
+    case INDIRECT3_BIP:
+    case INDIRECT3V_BIP:
+    case CALLMESSAGE3_BIP:  WRITE("("); VNODE_1C; WRITE(")(");
+                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(")"); break;
+    case INDIRECT4_BIP:
+    case INDIRECT4V_BIP:    WRITE("("); VNODE_1C; WRITE(")(");
+                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(",");
+                            VNODE_5C; WRITE(")"); break;
+    case INDIRECT5_BIP:
+    case INDIRECT5V_BIP:    WRITE("("); VNODE_1C; WRITE(")(");
+                            VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(",");
+                            VNODE_5C; WRITE(","); VNODE_6C; WRITE(")"); break;
+    case MESSAGE0_BIP:      WRITE("_final_message0("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(")"); break;
+    case MESSAGE1_BIP:      WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)(");
+                            VNODE_3C; WRITE("))"); break;
+    case MESSAGE2_BIP:      WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)(");
+                            VNODE_3C; WRITE(","); VNODE_4C; WRITE("))"); break;
+    case MESSAGE3_BIP:      WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)(");
+                            VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); VNODE_5C; WRITE("))"); break;
+
+    case EXTERNALCALL_BIP:  internal_error("external calls impossible in Inform 6"); break;
+
+ +

§6.8. Textual output6.8 = +

+ +
+    case PRINT_BIP:         WRITE("print "); CodeGen::lt_mode(gen, PRINTING_LTM);
+                            VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break;
+    case PRINTCHAR_BIP:     WRITE("print (char) "); VNODE_1C; break;
+    case PRINTNL_BIP:       WRITE("new_line"); break;
+    case PRINTOBJ_BIP:      WRITE("print (object) "); VNODE_1C; break;
+    case PRINTNUMBER_BIP:   WRITE("print "); VNODE_1C; break;
+    case PRINTDWORD_BIP:    WRITE("print (address) "); VNODE_1C; break;
+    case PRINTSTRING_BIP:   WRITE("print (string) "); VNODE_1C; break;
+    case BOX_BIP:           WRITE("box "); CodeGen::lt_mode(gen, BOX_LTM);
+                            VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break;
+    case SPACES_BIP:        WRITE("spaces "); VNODE_1C; break;
+    case FONT_BIP:
+        WRITE("if ("); VNODE_1C; WRITE(") { font on; } else { font off; }");
+        suppress_terminal_semicolon = TRUE;
+        break;
+    case STYLE_BIP: {
+        inter_tree_node *N = InterTree::first_child(P);
+        if ((N->W.data[ID_IFLD] == CONSTANT_IST) &&
+            (N->W.data[FORMAT_CONST_IFLD] == CONSTANT_DIRECT)) {
+            inter_ti val2 = N->W.data[DATA_CONST_IFLD + 1];
+            switch (val2) {
+                case 1: WRITE("style bold"); break;
+                case 2: WRITE("style underline"); break;
+                case 3: WRITE("style reverse"); break;
+                default: WRITE("style roman");
+            }
+        } else {
+            WRITE("style roman");
+        }
+        break;
+    }
+
+ +

§6.9. The VM object tree6.9 = +

+ +
+    case MOVE_BIP:          WRITE("move "); VNODE_1C; WRITE(" to "); VNODE_2C; break;
+    case REMOVE_BIP:        WRITE("remove "); VNODE_1C; break;
+
+ +

§6.10. Random number generator6.10 = +

+ +
+    case RANDOM_BIP:        WRITE("random("); VNODE_1C; WRITE(")"); break;
+
+ +

§7.

+ +
+text_stream *I6TargetCode::inner_name(code_generation *gen, inter_tree_node *P) {
+    while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P);
+    inter_tree_node *prop_node = InterTree::third_child(P);
+    return I6TargetCode::inner_name_inner(gen, prop_node);
+}
+
+text_stream *I6TargetCode::inner_name_inner(code_generation *gen, inter_tree_node *prop_node) {
+    inter_symbol *prop_symbol = NULL;
+    if (prop_node->W.data[ID_IFLD] == VAL_IST) {
+        inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD];
+        inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD];
+        if (Inter::Symbols::is_stored_in_data(val1, val2))
+            prop_symbol =
+                InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2);
+    }
+    if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) {
+        return VanillaObjects::inner_property_name(gen, prop_symbol);
+    } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) {
+        return VanillaObjects::inner_property_name(gen, prop_symbol);
+    } else {
+        return NULL;
+    }
+}
+
+

§8.

+ +
define I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE 1
+define I6G_CAN_PROVE_IS_OBJ_PROPERTY 2
+define I6G_CANNOT_PROVE 3
+
+
+int I6TargetCode::pval_case(inter_tree_node *P) {
+    while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P);
+    inter_tree_node *prop_node = InterTree::third_child(P);
+    return I6TargetCode::pval_case_inner(prop_node);
+}
+
+int I6TargetCode::pval_case_inner(inter_tree_node *prop_node) {
+    inter_symbol *prop_symbol = NULL;
+    if (prop_node->W.data[ID_IFLD] == VAL_IST) {
+        inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD];
+        inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD];
+        if (Inter::Symbols::is_stored_in_data(val1, val2))
+            prop_symbol =
+                InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2);
+    }
+    if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) {
+        return I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE;
+    } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) {
+        return I6G_CAN_PROVE_IS_OBJ_PROPERTY;
+    } else {
+        return I6G_CANNOT_PROVE;
+    }
+}
+
+

§9. A few resources.

 void I6TargetCode::end_generation(code_generator *cgt, code_generation *gen) {
@@ -938,7 +969,6 @@ then the result.
     WRITE("        t = p-->0; p = p-->1; ! print \"has \", o, \" \", p, \"^\";\n");
     WRITE("        if (t == 2) { if (o has p) rtrue; rfalse; }\n");
     WRITE("        if (o provides p) {\n");
-    WRITE("            if (p == door_to) return o.p();\n");
     WRITE("            return o.p;\n");
     WRITE("        }\n");
     WRITE("        rfalse;\n");
@@ -967,8 +997,7 @@ then the result.
     WRITE("    return o.#p;\n");
     WRITE("];\n");
     WRITE("[ _final_message0 o p q x a rv;\n");
-    WRITE("    ! print \"Message send \", (the) o, \" --> \", p, \" \", p-->1, \" addr \", o.(p-->1), \"^\";\n");
-    WRITE("    q = p-->1; a = o.q; if (metaclass(a) == Object) rv = a; else if (a) { x = self; self = o; rv = indirect(a); self = x; } ! print \"Message = \", rv, \"^\";\n");
+    WRITE("    q = p-->1; a = o.q; if (metaclass(a) == Object) rv = a; else if (a) { x = self; self = o; rv = indirect(a); self = x; }\n");
     WRITE("    return rv;\n");
     WRITE("];\n");
     WRITE("[ _final_provides K o p holder;\n");
diff --git a/docs/final-module/5-cas.html b/docs/final-module/5-cas.html
index 592a86f8e..1a80c7338 100644
--- a/docs/final-module/5-cas.html
+++ b/docs/final-module/5-cas.html
@@ -289,11 +289,11 @@ function togglePopup(material_id) {
                 if (val) *val =  0;
             }
         } else {
-            if ((pr == i7_mgl_A_door_to)) {
-                if (val) *val = (i7word_t) i7_mcall_0(proc, obj, pr);
-            } else {
+//          if ((pr == i7_mgl_A_door_to)) {
+//              if (val) *val = (i7word_t) i7_mcall_0(proc, obj, pr);
+//          } else {
                 if (val) *val = (i7word_t) i7_read_prop_value(proc, obj, pr);
-            }
+//          }
         }
     } else {
         i7word_t holder = i7_read_word(proc, i7_mgl_value_property_holders, K);
diff --git a/docs/if-module/3-tm.html b/docs/if-module/3-tm.html
index 78f9f096d..9637fec73 100644
--- a/docs/if-module/3-tm.html
+++ b/docs/if-module/3-tm.html
@@ -518,7 +518,7 @@ Standard Rules. (So there is no need to translate this to other languages.)
 
 <notable-map-properties> ::=
     opposite |
-    other side
+    leading-through destination
 

§23.

@@ -1074,7 +1074,6 @@ trust that there is nothing surprising here.
     P_door = EitherOrProperties::new_nameless(I"door");
-	RTProperties::recommend_storing_as_attribute(P_door, TRUE);
     P_door_dir = ValueProperties::new_nameless(I"door_dir", K_value);
     P_door_to = ValueProperties::new_nameless(I"door_to", K_value);
 
diff --git a/docs/standard_rules/S-pd.html b/docs/standard_rules/S-pd.html
index 52366a65a..ac635caf5 100644
--- a/docs/standard_rules/S-pd.html
+++ b/docs/standard_rules/S-pd.html
@@ -633,6 +633,9 @@ day, the latter at the very beginning.
 To decide which door is door (D - direction) from/of (R1 - room)
     (documented at ph_doordirof):
     (- DoorFrom({R1},{D}) -).
+To decide which object is the other side of (D - door)
+    (documented at ph_othersideof):
+    (- OtherSideOfDoor({D}, location) -).
 To decide which object is the other side of (D - door) from (R1 - room)
     (documented at ph_othersideof):
     (- OtherSideOfDoor({D},{R1}) -).
diff --git a/docs/standard_rules/S-pwm.html b/docs/standard_rules/S-pwm.html
index 016ed3d00..dfcdf5b46 100644
--- a/docs/standard_rules/S-pwm.html
+++ b/docs/standard_rules/S-pwm.html
@@ -550,16 +550,26 @@ the player is in one of the (possibly) two rooms in which the green
 door is present; and then they are defined relative to him.
 

-

The leading-through relation is built in to Inform; the other side property, -though, is merely a convenient name we give to the property in which -the relation data is stored at run-time. +

The leading-through relation is built in to Inform. This has to be stored +in the property "door_to", but we don't want to give authors direct access +to this property, since its contents are strictly speaking not typesafe. +(It stores a value to which a message can be sent which must return an object: +but that is not always the same thing as storing an object.) +

+ +

Until 2021, the storage property was called "other side", and was useful +in as much as "the other side of D" would helpfully evaluate to the location +on the other side of a door. But that only worked because of a hacky exception +in the code handling property evaluation which made "door_to" a special case, +and this led to other problems. Instead, a new phrase "other side of (D - door)" +has been added to the Standard Rules, and this avoids directly evaluating "door_to".

-A door has an object called other side.
-The other side property translates into Inter as "door_to".
-Leading-through relates one room (called the other side) to various doors.
-The verb to be through means the leading-through relation.
+A door has an object called leading-through destination.
+The leading-through destination property translates into 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.
 

§28. Containers and supporters. The carrying capacity property is the exception to the remarks above about the qualitative nature of the world model: here for the first and only time diff --git a/inform7/Downloads/preform-diagnostics.txt b/inform7/Downloads/preform-diagnostics.txt index a853abb6d..71f5c39b1 100644 --- a/inform7/Downloads/preform-diagnostics.txt +++ b/inform7/Downloads/preform-diagnostics.txt @@ -1,6 +1,6 @@ internal nti 24 constraint (none) extremes [1, 1] - internal hits 1198/7698 nti 25 constraint (none) extremes [0, 0] + internal hits 1198/7700 nti 25 constraint (none) extremes [0, 0] internal hits 3873/7962 nti 26 constraint (none) extremes [0, 0] @@ -16,7 +16,7 @@ internal nti 28 constraint (none) extremes [1, 1] - internal hits 2898/25222 nti 29 constraint (none) extremes [1, 1] + internal hits 2898/25224 nti 29 constraint (none) extremes [1, 1] internal nti 30 constraint (none) extremes [1, 1] @@ -24,7 +24,7 @@ internal nti 6 constraint (none) extremes [1, 1] - internal hits 2/12962 nti 7 constraint (none) extremes [0, 0] + internal hits 2/12966 nti 7 constraint (none) extremes [0, 0] hits 0/18 nti 16 constraint DS = {16} extremes [3, infinity) English: @@ -68,17 +68,17 @@ * : {...} constraint DS = {21} extremes [3, infinity) - hits 447/2552 nti 23 constraint DS = {22, 23} extremes [6, infinity) + hits 448/2556 nti 23 constraint DS = {22, 23} extremes [6, infinity) English: {...} ( ) - (hits 424/792) (matched long text) constraint DS = {22, 23} extremes [6, infinity) + (hits 425/793) (matched long text) constraint DS = {22, 23} extremes [6, infinity) {...} -- -- (hits 23/368) (matched long text) constraint DS = {22, 23} extremes [6, infinity) - hits 480/1132 nti 22 constraint DS = {22} extremes [3, 3] + hits 481/1134 nti 22 constraint DS = {22} extremes [3, 3] English: documented at {###} - (hits 480/514) (matched: 'documented at ph_say') constraint DS = {22} extremes [3, 3] + (hits 481/515) (matched: 'documented at ph_say') constraint DS = {22} extremes [3, 3] nti 24 constraint DS = {24} extremes [2, infinity) English: @@ -4740,7 +4740,7 @@ twelfth constraint CS = {29} extremes [1, 1] - internal hits 200/25712 nti r0 constraint CS = {r0} extremes [1, 1] + internal hits 200/25704 nti r0 constraint CS = {r0} extremes [1, 1] internal nti r1 constraint CS = {r1} extremes [1, 1] @@ -4748,12 +4748,12 @@ internal hits 0/258 nti 23 constraint (none) extremes [1, infinity) - hits 36286/72572 nti 19 constraint (none) extremes [1, infinity) + hits 36282/72564 nti 19 constraint (none) extremes [1, infinity) English: {...} - (hits 7821/36286) (matched long text) constraint (none) extremes [2, infinity) + (hits 7819/36282) (matched long text) constraint (none) extremes [2, infinity) {...} - (hits 28465/28465) (matched long text) constraint (none) extremes [1, infinity) + (hits 28463/28463) (matched long text) constraint (none) extremes [1, infinity) nti 20 constraint (none) extremes [1, infinity) English: @@ -4762,23 +4762,23 @@ {...} constraint (none) extremes [1, infinity) - hits 82867/165734 nti 21 constraint (none) extremes [1, infinity) + hits 82848/165696 nti 21 constraint (none) extremes [1, infinity) English:

{...} - (hits 16065/47404) (matched long text) constraint (none) extremes [2, infinity) + (hits 16030/47384) (matched long text) constraint (none) extremes [2, infinity) {...} - (hits 66802/66802) (matched long text) constraint (none) extremes [1, infinity) + (hits 66818/66818) (matched long text) constraint (none) extremes [1, infinity) nti 22 constraint (none) extremes [2, infinity) English:
{...} constraint (none) extremes [2, infinity) -
internal hits 16531/98892 nti r2 constraint (none) extremes [1, 1] +
internal hits 16496/98852 nti r2 constraint (none) extremes [1, 1] - internal hits 20340/236524 nti r2 constraint (none) extremes [1, 1] + internal hits 20305/236410 nti r2 constraint (none) extremes [1, 1] - internal hits 2438/41574 nti r2 constraint (none) extremes [1, 1] + internal hits 2438/41566 nti r2 constraint (none) extremes [1, 1] nti r2 constraint CS = {r2} extremes [6, 6] English: @@ -4839,10 +4839,10 @@ other than constraint CS = {30} extremes [2, 2] - hits 16/21832 nti 31 constraint DS = {31} extremes [2, infinity) + hits 16/21824 nti 31 constraint DS = {31} extremes [2, infinity) English: not {...} - (hits 16/2844) (matched long text) constraint DS = {31} extremes [2, infinity) + (hits 16/2799) (matched long text) constraint DS = {31} extremes [2, infinity) hits 79/158 nti 6 constraint (none) extremes [1, infinity) English: @@ -4853,10 +4853,10 @@ {...} (hits 79/79) (matched: 'dvd carried by the person asked') constraint (none) extremes [1, infinity) - hits 0/21548 nti 7 constraint DS = {7} extremes [2, infinity) + hits 0/21540 nti 7 constraint DS = {7} extremes [2, infinity) English: no one {***} - (hits 0/5415) constraint DS = {7} extremes [2, infinity) + (hits 0/5409) constraint DS = {7} extremes [2, infinity) internal hits 92/1206 nti 23 constraint (none) extremes [1, 1] @@ -4947,7 +4947,7 @@ internal nti 12 constraint DS = {12} extremes [1, infinity) - internal hits 635/18314 nti 13 constraint DS = {13} extremes [1, infinity) + internal hits 635/18266 nti 13 constraint DS = {13} extremes [1, infinity) internal hits 258/7856 nti 14 constraint DS = {14} extremes [1, infinity) @@ -5135,7 +5135,7 @@ thing/something (hits 83/83) (matched: 'thing') constraint CS = {31} extremes [1, 1] - internal hits 476/23876 nti 22 constraint (none) extremes [1, 1] + internal hits 476/23846 nti 22 constraint (none) extremes [1, 1] hits 0/2 nti 24 constraint CS = {24} extremes [1, 2] English: @@ -5250,10 +5250,10 @@ {...} (hits 67/674) (matched: 'usually table of general chitchat') constraint DS = {15} extremes [2, infinity) - hits 761/25978 nti 6 constraint CS = {6} extremes [1, 1] + hits 761/25890 nti 6 constraint CS = {6} extremes [1, 1] English: which/who/that - (hits 761/6122) (matched: 'which') constraint CS = {6} extremes [1, 1] + (hits 761/6114) (matched: 'which') constraint CS = {6} extremes [1, 1] hits 2/2744 nti 31 constraint DS = {6} extremes [2, infinity) English: @@ -5283,9 +5283,9 @@ grammatical case (hits 1/1) (matched: 'grammatical case') constraint CS = {9} extremes [2, 2] - internal hits 2474/41998 nti 6 constraint (none) extremes [0, 0] + internal hits 2478/42006 nti 6 constraint (none) extremes [0, 0] - internal hits 164/328 nti 7 constraint (none) extremes [1, infinity) + internal hits 165/330 nti 7 constraint (none) extremes [1, infinity) hits 24/68 nti 11 constraint DS = {11} extremes [3, infinity) English: @@ -5309,18 +5309,18 @@ (hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity) - hits 5802/103682 nti r5 constraint (none) extremes [1, infinity) + hits 5804/103626 nti r5 constraint (none) extremes [1, infinity) English: ( ) (hits 0/2065) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity) ^ - (hits 1589/11294) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity) + (hits 1589/11296) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity) - (hits 201/9705) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity) + (hits 201/9707) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity) - (hits 3651/9504) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity) + (hits 3653/9506) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity) - (hits 2/16092) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity) + (hits 2/16070) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity) (hits 359/5851) (matched long text) constraint CW = {r2, r5} extremes [1, infinity) @@ -5331,16 +5331,16 @@ (hits 8/137) (matched: 'room') constraint (none) extremes [1, infinity) - hits 201/2474 nti r5 constraint CW = {r2, r5} extremes [1, infinity) + hits 201/2478 nti r5 constraint CW = {r2, r5} extremes [1, infinity) English: - (hits 120/607) (matched: 'k') constraint CW = {r2, r5} extremes [1, 1] + (hits 120/609) (matched: 'k') constraint CW = {r2, r5} extremes [1, 1] of kind (hits 81/315) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) - internal hits 3651/19008 nti r5 constraint CW = {r2, r5} extremes [1, infinity) + internal hits 3653/19012 nti r5 constraint CW = {r2, r5} extremes [1, infinity) - hits 2/32184 nti r5 constraint DS = {r5} extremes [2, infinity) + hits 2/32140 nti r5 constraint DS = {r5} extremes [2, infinity) English: indexed text (hits 0/1020) constraint CS = {r5} extremes [2, 2] @@ -5351,7 +5351,7 @@ stored actions (hits 0/1020) constraint CS = {r5} extremes [2, 2] object-based rulebook producing - (hits 0/5097) constraint DS = {r5} extremes [5, infinity) + (hits 0/5081) constraint DS = {r5} extremes [5, infinity) object-based rulebook producing (hits 0/1078) constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) object-based rulebook @@ -5359,7 +5359,7 @@ action-based rulebook (hits 0/1018) constraint CS = {r5} extremes [2, 2] object-based rule producing - (hits 0/5097) constraint DS = {r5} extremes [5, infinity) + (hits 0/5081) constraint DS = {r5} extremes [5, infinity) object-based rule producing (hits 0/1078) constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) object-based rule @@ -5416,7 +5416,7 @@ internal hits 1589/20114 nti r5 constraint CW = {r2, r5} extremes [1, 1] - internal hits 220/1414 nti r5 constraint CW = {r2, r5} extremes [1, 1] + internal hits 220/1418 nti r5 constraint CW = {r2, r5} extremes [1, 1] internal hits 0/772 nti 9 constraint (none) extremes [1, 1] @@ -5486,12 +5486,12 @@ internal nti 11 constraint (none) extremes [1, infinity) - hits 199/10190 nti 12 constraint DW = {13, 14} extremes [2, infinity) + hits 199/10194 nti 12 constraint DW = {13, 14} extremes [2, infinity) English: - (hits 191/3835) (matched long text) constraint DS = {13} extremes [2, infinity) + (hits 191/3836) (matched long text) constraint DS = {13} extremes [2, infinity) - (hits 8/3263) (matched long text) constraint DS = {14} extremes [3, infinity) + (hits 8/3264) (matched long text) constraint DS = {14} extremes [3, infinity) hits 191/2368 nti 13 constraint DS = {13} extremes [2, infinity) English: @@ -5506,35 +5506,35 @@ section {...} (hits 151/1144) (matched long text) constraint DS = {13} extremes [2, infinity) - hits 8/6526 nti 14 constraint DS = {14} extremes [3, infinity) + hits 8/6528 nti 14 constraint DS = {14} extremes [3, infinity) English: {...} begin/begins here - (hits 4/3263) (matched long text) constraint DS = {14} extremes [3, infinity) + (hits 4/3264) (matched long text) constraint DS = {14} extremes [3, infinity) {...} end/ends here - (hits 4/3259) (matched: 'the standard rules end here') constraint DS = {14} extremes [3, infinity) + (hits 4/3260) (matched: 'the standard rules end here') constraint DS = {14} extremes [3, infinity) - hits 32/12962 nti 16 constraint (none) extremes [1, infinity) + hits 32/12966 nti 16 constraint (none) extremes [1, infinity) English: (hits 0/20) constraint (none) extremes [1, 1] {...} - (hits 0/6461) constraint (none) extremes [2, infinity) + (hits 0/6463) constraint (none) extremes [2, infinity) - (hits 0/6291) constraint DS = {15} extremes [4, infinity) + (hits 0/6293) constraint DS = {15} extremes [4, infinity) * constraint CS = {16} extremes [1, 1] * constraint DS = {16} extremes [2, 2] table {...} - (hits 14/6319) (matched long text) constraint DS = {16} extremes [2, infinity) + (hits 14/6321) (matched long text) constraint DS = {16} extremes [2, infinity) equation {...} - (hits 0/6305) constraint DS = {16} extremes [2, infinity) + (hits 0/6307) constraint DS = {16} extremes [2, infinity) include the {...} by {...} - (hits 0/6282) constraint DS = {16} extremes [5, infinity) + (hits 0/6284) constraint DS = {16} extremes [5, infinity) include {...} by {...} - (hits 18/6305) (matched long text) constraint DS = {16} extremes [4, infinity) + (hits 18/6307) (matched long text) constraint DS = {16} extremes [4, infinity) include (- {...} - (hits 0/6287) constraint DS = {16} extremes [3, infinity) + (hits 0/6289) constraint DS = {16} extremes [3, infinity) hits 9/2790 nti 17 constraint DS = {17} extremes [2, infinity) English: @@ -5549,12 +5549,12 @@ when {...} (hits 4/1018) (matched: 'when scene begins is a scene based rulebook') constraint DS = {17} extremes [2, infinity) - hits 0/12582 nti 15 constraint DS = {15} extremes [4, infinity) + hits 0/12586 nti 15 constraint DS = {15} extremes [4, infinity) English: include (- {###} in the preform grammar (hits 0/127) constraint DS = {15} extremes [7, 7] use {...} language element/elements - (hits 0/6291) constraint DS = {15} extremes [4, infinity) + (hits 0/6293) constraint DS = {15} extremes [4, infinity) hits 30/442 nti 23 constraint DS = {23} extremes [2, infinity) English: @@ -5699,7 +5699,7 @@ the {...} (hits 1/1) (matched: 'the standard rules') constraint DS = {6} extremes [2, infinity) - hits 2873/18796 nti 7 constraint DS = {7} extremes [1, infinity) + hits 2873/18802 nti 7 constraint DS = {7} extremes [1, infinity) English: if {...} is begin (hits 0/4813) constraint DS = {7} extremes [4, infinity) @@ -5722,7 +5722,7 @@ -- {...} (hits 0/3167) constraint DS = {7} extremes [2, infinity) - hits 0/12004 nti 8 constraint CS = {8} extremes [2, 2] + hits 0/12008 nti 8 constraint CS = {8} extremes [2, 2] English: end if/unless constraint CS = {8} extremes [2, 2] @@ -5731,7 +5731,7 @@ end repeat constraint CS = {8} extremes [2, 2] - hits 756/14584 nti 9 constraint DS = {9} extremes [2, infinity) + hits 756/14586 nti 9 constraint DS = {9} extremes [2, infinity) English: say {...} (hits 584/2529) (matched: 'say run paragraph on with special look spacing') constraint DS = {9} extremes [2, infinity) @@ -5743,7 +5743,7 @@ {......} , {......} (hits 2306/2583) (matched long text) constraint DS = {10} extremes [3, infinity) - hits 30/9858 nti 11 constraint DS = {11} extremes [2, infinity) + hits 30/9860 nti 11 constraint DS = {11} extremes [2, infinity) English: instead {...} (hits 0/1968) constraint DS = {11} extremes [2, infinity) @@ -6427,7 +6427,7 @@ hits 5/10 nti 18 constraint (none) extremes [1, infinity) English: ( called {...} ) - (hits 3/3) (matched: 'one room ( called the other side )') constraint DS = {18} extremes [5, infinity) + (hits 3/3) (matched: 'one room ( called the leading-through destination )') constraint DS = {18} extremes [5, infinity) (hits 2/2) (matched: 'one person') constraint (none) extremes [1, infinity) @@ -6761,14 +6761,14 @@ {***} {***} (hits 0/921) constraint (none) extremes [1, infinity) - hits 0/1612 nti 21 constraint (none) extremes [1, infinity) + hits 0/1614 nti 21 constraint (none) extremes [1, infinity) English: - (hits 0/661) constraint (none) extremes [1, 1] + (hits 0/662) constraint (none) extremes [1, 1] {***} (/)/{/}/,/. {***} (hits 0/2) constraint DS = {21} extremes [1, infinity) {***} {***} - (hits 0/806) constraint (none) extremes [1, infinity) + (hits 0/807) constraint (none) extremes [1, infinity) hits 0/50 nti 22 constraint (none) extremes [1, infinity) English: @@ -6782,7 +6782,7 @@ {***} something {***} constraint DS = {23} extremes [1, infinity) - hits 432/1426 nti 24 constraint DS = {24} extremes [2, infinity) + hits 433/1428 nti 24 constraint DS = {24} extremes [2, infinity) English: (- {###} - in to only (hits 16/26) (matched: '(- rtrue; - in to only') constraint DS = {24} extremes [6, 6] @@ -6791,11 +6791,11 @@ (- {###} - in to decide only (hits 0/6) constraint DS = {24} extremes [7, 7] (- {###} - (hits 412/413) (matched: '(- {-say:val:K} ') constraint DS = {24} extremes [2, 2] + (hits 413/414) (matched: '(- {-say:val:K} ') constraint DS = {24} extremes [2, 2] (- {###} {...} (hits 0/58) constraint DS = {24} extremes [3, infinity) - hits 44/2752 nti 25 constraint CS = {25} extremes [1, 1] + hits 44/2754 nti 25 constraint CS = {25} extremes [1, 1] English: definition (hits 44/44) (matched: 'definition') constraint CS = {25} extremes [1, 1] @@ -6830,132 +6830,132 @@ {...} (hits 26/26) (matched: 'going on') constraint (none) extremes [1, infinity) - hits 496/2664 nti 30 constraint DS = {30} extremes [1, infinity) + hits 497/2666 nti 30 constraint DS = {30} extremes [1, infinity) English: {to} constraint CS = {30} extremes [1, 1] to {...} ( called {...} ) - (hits 0/798) constraint DS = {30} extremes [6, infinity) + (hits 0/799) constraint DS = {30} extremes [6, infinity) {to ...} ( this is the {### function} inverse to {###} ) - (hits 16/675) (matched long text) constraint DS = {30} extremes [12, infinity) + (hits 16/676) (matched long text) constraint DS = {30} extremes [12, infinity) {to ...} ( this is the {### function} ) - (hits 4/718) (matched long text) constraint DS = {30} extremes [9, infinity) + (hits 4/719) (matched long text) constraint DS = {30} extremes [9, infinity) {to ...} ( this is {...} ) - (hits 0/761) constraint DS = {30} extremes [7, infinity) + (hits 0/762) constraint DS = {30} extremes [7, infinity) {to ...} - (hits 476/843) (matched long text) constraint DS = {30} extremes [2, infinity) + (hits 477/844) (matched long text) constraint DS = {30} extremes [2, infinity) - hits 1/992 nti 31 constraint DS = {31} extremes [3, infinity) + hits 1/994 nti 31 constraint DS = {31} extremes [3, infinity) English: to now {...} - (hits 1/492) (matched: 'to now ( cn - condition )') constraint DS = {31} extremes [3, infinity) + (hits 1/493) (matched: 'to now ( cn - condition )') constraint DS = {31} extremes [3, infinity) - hits 0/992 nti 6 constraint CS = {6} extremes [2, 2] + hits 0/994 nti 6 constraint CS = {6} extremes [2, 2] English: to begin constraint CS = {6} extremes [2, 2] - hits 516/1032 nti 7 constraint DS = {7} extremes [2, infinity) + hits 517/1034 nti 7 constraint DS = {7} extremes [2, infinity) English: to {decide yes/no} (hits 2/4) (matched: 'to decide yes') constraint CS = {7} extremes [3, 3] to {decide on ...} - (hits 1/467) (matched: 'to decide on ( something - value )') constraint DS = {7} extremes [4, infinity) + (hits 1/468) (matched: 'to decide on ( something - value )') constraint DS = {7} extremes [4, infinity) to decide whether/if the {...} - (hits 12/453) (matched long text) constraint DS = {7} extremes [5, infinity) + (hits 12/454) (matched long text) constraint DS = {7} extremes [5, infinity) to decide whether/if {...} - (hits 39/454) (matched long text) constraint DS = {7} extremes [4, infinity) + (hits 39/455) (matched long text) constraint DS = {7} extremes [4, infinity) to decide what/which is the {...} - (hits 86/380) (matched long text) constraint DS = {7} extremes [7, infinity) + (hits 87/381) (matched long text) constraint DS = {7} extremes [7, infinity) to decide what/which is {...} (hits 74/304) (matched long text) constraint DS = {7} extremes [6, infinity) to {...} (hits 302/302) (matched long text) constraint DS = {7} extremes [2, infinity) - hits 160/320 nti 22 constraint (none) extremes [1, infinity) + hits 161/322 nti 22 constraint (none) extremes [1, infinity) English: - (hits 160/160) (matched: 'relation of objects') constraint (none) extremes [1, infinity) + (hits 161/161) (matched: 'relation of objects') constraint (none) extremes [1, infinity) {...} constraint (none) extremes [1, infinity) - hits 517/1034 nti 10 constraint (none) extremes [1, infinity) + hits 518/1036 nti 10 constraint (none) extremes [1, infinity) English: ( deprecated ) - (hits 1/438) (matched long text) constraint DS = {10} extremes [4, infinity) + (hits 1/439) (matched long text) constraint DS = {10} extremes [4, infinity) - (hits 138/480) (matched long text) constraint DS = {8} extremes [2, infinity) + (hits 138/481) (matched long text) constraint DS = {8} extremes [2, infinity) - (hits 378/378) (matched long text) constraint (none) extremes [1, infinity) + (hits 379/379) (matched long text) constraint (none) extremes [1, infinity) - hits 400/800 nti 9 constraint (none) extremes [1, infinity) + hits 401/802 nti 9 constraint (none) extremes [1, infinity) English: ( arithmetic operation ) - (hits 16/346) (matched long text) constraint DS = {9} extremes [6, infinity) + (hits 16/347) (matched long text) constraint DS = {9} extremes [6, infinity) ( assignment operation ) - (hits 6/340) (matched long text) constraint DS = {9} extremes [5, infinity) + (hits 6/341) (matched long text) constraint DS = {9} extremes [5, infinity) {let ... be given by ...} - (hits 2/324) (matched long text) constraint DS = {9} extremes [6, infinity) + (hits 2/325) (matched long text) constraint DS = {9} extremes [6, infinity) {let ...} - (hits 4/349) (matched long text) constraint DS = {9} extremes [2, infinity) + (hits 4/350) (matched long text) constraint DS = {9} extremes [2, infinity) {...} -- end - (hits 0/339) constraint DS = {9} extremes [3, infinity) + (hits 0/340) constraint DS = {9} extremes [3, infinity) {...} -- end conditional - (hits 3/336) (matched long text) constraint DS = {9} extremes [4, infinity) + (hits 3/337) (matched long text) constraint DS = {9} extremes [4, infinity) {...} -- end loop - (hits 9/333) (matched long text) constraint DS = {9} extremes [4, infinity) + (hits 9/334) (matched long text) constraint DS = {9} extremes [4, infinity) {...} -- in loop - (hits 2/324) (matched: 'break -- in loop') constraint DS = {9} extremes [4, infinity) + (hits 2/325) (matched: 'break -- in loop') constraint DS = {9} extremes [4, infinity) {...} -- in {###} - (hits 0/322) constraint DS = {9} extremes [4, infinity) + (hits 0/323) constraint DS = {9} extremes [4, infinity) {...} - (hits 358/358) (matched long text) constraint (none) extremes [1, infinity) + (hits 359/359) (matched long text) constraint (none) extremes [1, infinity) - hits 154/992 nti 8 constraint DS = {8} extremes [2, infinity) + hits 154/994 nti 8 constraint DS = {8} extremes [2, infinity) English: -- running on - (hits 16/442) (matched long text) constraint DS = {8} extremes [4, infinity) + (hits 16/443) (matched long text) constraint DS = {8} extremes [4, infinity) {say otherwise/else} (hits 2/6) (matched: 'say otherwise') constraint CS = {8} extremes [2, 2] {say otherwise/else if/unless ...} - (hits 0/426) constraint DS = {8} extremes [4, infinity) + (hits 0/427) constraint DS = {8} extremes [4, infinity) {say if/unless ...} - (hits 2/438) (matched: 'say if ( c - condition )') constraint DS = {8} extremes [3, infinity) + (hits 2/439) (matched: 'say if ( c - condition )') constraint DS = {8} extremes [3, infinity) {say end if/unless} (hits 2/2) (matched: 'say end if') constraint CS = {8} extremes [3, 3] {say ...} -- beginning {###} - (hits 2/405) (matched: 'say one of -- beginning say_one_of') constraint DS = {8} extremes [5, infinity) + (hits 2/406) (matched: 'say one of -- beginning say_one_of') constraint DS = {8} extremes [5, infinity) {say ...} -- continuing {###} - (hits 1/403) (matched: 'say or -- continuing say_one_of') constraint DS = {8} extremes [5, infinity) + (hits 1/404) (matched: 'say or -- continuing say_one_of') constraint DS = {8} extremes [5, infinity) {say ...} -- ending {###} with marker {###} - (hits 9/350) (matched long text) constraint DS = {8} extremes [8, infinity) + (hits 9/351) (matched long text) constraint DS = {8} extremes [8, infinity) {say ...} -- ending {###} - (hits 1/393) (matched: 'say only -- ending say_first_time') constraint DS = {8} extremes [5, infinity) + (hits 1/394) (matched: 'say only -- ending say_first_time') constraint DS = {8} extremes [5, infinity) {say ...} - (hits 119/461) (matched long text) constraint DS = {8} extremes [2, infinity) + (hits 119/462) (matched long text) constraint DS = {8} extremes [2, infinity) - hits 0/1032 nti 11 constraint DS = {11, 13} extremes [8, infinity) + hits 0/1034 nti 11 constraint DS = {11, 13} extremes [8, infinity) English: ( {......} ) {} ( {......} ) - (hits 0/338) constraint DS = {11, 13} extremes [8, infinity) + (hits 0/339) constraint DS = {11, 13} extremes [8, infinity) - hits 2231/4462 nti 13 constraint (none) extremes [1, infinity) + hits 2235/4470 nti 13 constraint (none) extremes [1, infinity) English: ( ) {***} - (hits 0/1802) constraint DS = {13} extremes [2, infinity) + (hits 0/1806) constraint DS = {13} extremes [2, infinity) ( ) {***} - (hits 579/1755) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 580/1759) (matched long text) constraint DS = {13} extremes [3, infinity) ( {***} - (hits 0/1241) constraint DS = {13} extremes [1, infinity) + (hits 0/1244) constraint DS = {13} extremes [1, infinity) ) {***} - (hits 0/1241) constraint DS = {13} extremes [1, infinity) + (hits 0/1244) constraint DS = {13} extremes [1, infinity) {###} {***} - (hits 1652/1652) (matched long text) constraint (none) extremes [1, infinity) + (hits 1655/1655) (matched long text) constraint (none) extremes [1, infinity) - hits 579/1168 nti 12 constraint (none) extremes [1, infinity) + hits 580/1170 nti 12 constraint (none) extremes [1, infinity) English: {***} ( {***} - {......} - (hits 0/584) constraint DS = {12} extremes [3, infinity) + (hits 0/585) constraint DS = {12} extremes [3, infinity) {......} - a nonexisting variable (hits 0/193) constraint DS = {12} extremes [5, infinity) {......} - a nonexisting variable @@ -6983,19 +6983,19 @@ {......} - a condition (hits 0/349) constraint DS = {12} extremes [4, infinity) {......} - condition - (hits 9/574) (matched: 'c - condition') constraint DS = {12} extremes [3, infinity) + (hits 9/575) (matched: 'c - condition') constraint DS = {12} extremes [3, infinity) {......} - a phrase (hits 0/349) constraint DS = {12} extremes [4, infinity) {......} - phrase - (hits 0/565) constraint DS = {12} extremes [3, infinity) + (hits 0/566) constraint DS = {12} extremes [3, infinity) {......} - storage - (hits 4/565) (matched: 's - storage') constraint DS = {12} extremes [3, infinity) + (hits 4/566) (matched: 's - storage') constraint DS = {12} extremes [3, infinity) {......} - a table-reference (hits 0/349) constraint DS = {12} extremes [4, infinity) {......} - table-reference - (hits 3/561) (matched: 'tr - table-reference') constraint DS = {12} extremes [3, infinity) + (hits 3/562) (matched: 'tr - table-reference') constraint DS = {12} extremes [3, infinity) {......} - - (hits 529/558) (matched long text) constraint DS = {12} extremes [3, infinity) + (hits 530/559) (matched long text) constraint DS = {12} extremes [3, infinity) {......} - (hits 2/29) (matched long text) constraint DS = {12} extremes [3, infinity) {......} - {......} @@ -7007,7 +7007,7 @@ internal hits 24/68 nti 23 constraint (none) extremes [1, infinity) - internal hits 102/3322 nti 24 constraint (none) extremes [1, infinity) + internal hits 102/3324 nti 24 constraint (none) extremes [1, infinity) hits 65/130 nti 25 constraint (none) extremes [1, infinity) English: @@ -7603,7 +7603,7 @@ i6/inter condition says so ( {...} ) (hits 1/24) (matched long text) constraint DS = {11} extremes [8, infinity) - hits 2097/23838 nti 14 constraint (none) extremes [1, infinity) + hits 2097/23834 nti 14 constraint (none) extremes [1, infinity) English: (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1] @@ -7617,17 +7617,17 @@ room is mostly unable to sense, or interact with, anything in a different room. Rooms are arranged in a map.') constraint (none) extremes [1, 1] - (hits 11/9911) (matched: 'plus infinity') constraint (none) extremes [1, infinity) + (hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity) (hits 78/196) (matched: 'false') constraint CS = {8} extremes [1, 1] - (hits 0/3281) constraint DS = {10} extremes [2, infinity) + (hits 0/3275) constraint DS = {10} extremes [2, infinity) unicode - (hits 0/4183) constraint DS = {14} extremes [2, infinity) + (hits 0/4180) constraint DS = {14} extremes [2, infinity) - (hits 0/3738) constraint DW = {11, 12, 13} extremes [2, 5] + (hits 0/3737) constraint DW = {11, 12, 13} extremes [2, 5] - (hits 0/9822) constraint (none) extremes [1, infinity) + (hits 0/9820) constraint (none) extremes [1, infinity) internal hits 680/1360 nti 21 constraint (none) extremes [1, 1] @@ -7640,9 +7640,9 @@ internal nti 22 constraint (none) extremes [1, infinity) - internal hits 0/19644 nti 23 constraint (none) extremes [1, infinity) + internal hits 0/19640 nti 23 constraint (none) extremes [1, infinity) - hits 11/19822 nti 6 constraint (none) extremes [1, infinity) + hits 11/19818 nti 6 constraint (none) extremes [1, infinity) English: _pi (hits 1/762) (matched: 'pi') constraint CS = {6} extremes [1, 1] @@ -7653,20 +7653,20 @@ minus infinity (hits 4/134) (matched: 'minus infinity') constraint CS = {6} extremes [2, 2] - (hits 1/9901) (matched: '0.5') constraint (none) extremes [1, infinity) + (hits 1/9899) (matched: '0.5') constraint (none) extremes [1, infinity) - internal hits 1/19802 nti 24 constraint (none) extremes [1, infinity) + internal hits 1/19798 nti 24 constraint (none) extremes [1, infinity) - hits 0/7476 nti 13 constraint DW = {11, 12, 13} extremes [2, 5] + hits 0/7474 nti 13 constraint DW = {11, 12, 13} extremes [2, 5] English: minus - (hits 0/1311) constraint DS = {11, 13} extremes [3, 5] + (hits 0/1310) constraint DS = {11, 13} extremes [3, 5] - (hits 0/2309) constraint DS = {11} extremes [2, 4] + (hits 0/2308) constraint DS = {11} extremes [2, 4] (hits 0/1897) constraint DS = {12} extremes [2, 2] - hits 0/4618 nti 11 constraint DS = {11} extremes [2, 4] + hits 0/4616 nti 11 constraint DS = {11} extremes [2, 4] English: hour/hours (hits 0/1259) constraint DS = {11} extremes [2, 2] @@ -7702,12 +7702,12 @@ internal nti 29 constraint (none) extremes [1, infinity) - hits 0/6562 nti 10 constraint DS = {10} extremes [2, infinity) + hits 0/6550 nti 10 constraint DS = {10} extremes [2, infinity) English: { } (hits 0/3) constraint CS = {10} extremes [2, 2] { } - (hits 0/1845) constraint DS = {10} extremes [3, infinity) + (hits 0/1842) constraint DS = {10} extremes [3, infinity) nti 9 constraint (none) extremes [1, infinity) English: @@ -7727,7 +7727,7 @@ internal hits 4/16 nti 6 constraint (none) extremes [1, infinity) - internal hits 3205/8236 nti 7 constraint (none) extremes [1, infinity) + internal hits 3206/8242 nti 7 constraint (none) extremes [1, infinity) internal hits 1093/2190 nti 8 constraint (none) extremes [1, infinity) @@ -7735,9 +7735,9 @@ internal hits 1962/5224 nti 10 constraint (none) extremes [1, infinity) - internal hits 1272/3058 nti 11 constraint (none) extremes [1, infinity) + internal hits 1273/3060 nti 11 constraint (none) extremes [1, infinity) - internal hits 529/1072 nti 12 constraint (none) extremes [1, infinity) + internal hits 530/1074 nti 12 constraint (none) extremes [1, infinity) hits 241/1724 nti 13 constraint (none) extremes [1, infinity) English: @@ -7750,24 +7750,24 @@ internal hits 0/244 nti 15 constraint (none) extremes [1, infinity) - hits 2370/20902 nti 19 constraint (none) extremes [1, infinity) + hits 2370/20898 nti 19 constraint (none) extremes [1, infinity) English: - (hits 1797/10451) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint (none) extremes [1, infinity) + (hits 1797/10449) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint (none) extremes [1, infinity) nothing (hits 97/122) (matched: 'nothing') constraint CS = {19} extremes [1, 1] - (hits 449/8557) (matched: 'printing the name of a dark room') constraint (none) extremes [1, infinity) + (hits 449/8555) (matched: 'printing the name of a dark room') constraint (none) extremes [1, infinity) outcome - (hits 0/1658) constraint DS = {19} extremes [2, infinity) + (hits 0/1654) constraint DS = {19} extremes [2, infinity) option - (hits 26/1658) (matched: 'serial comma option') constraint DS = {19} extremes [2, infinity) + (hits 26/1654) (matched: 'serial comma option') constraint DS = {19} extremes [2, infinity) verb - (hits 1/1632) (matched: 'verb are') constraint DS = {19} extremes [2, infinity) + (hits 1/1628) (matched: 'verb are') constraint DS = {19} extremes [2, infinity) response ( ) - (hits 0/726) constraint DS = {19} extremes [5, infinity) + (hits 0/724) constraint DS = {19} extremes [5, infinity) - internal hits 449/17114 nti 16 constraint (none) extremes [1, infinity) + internal hits 449/17110 nti 16 constraint (none) extremes [1, infinity) internal hits 0/244 nti 17 constraint (none) extremes [1, infinity) @@ -7777,110 +7777,110 @@ internal nti 20 constraint (none) extremes [1, infinity) - internal hits 165/18574 nti 21 constraint (none) extremes [1, infinity) + internal hits 165/18570 nti 21 constraint (none) extremes [1, infinity) - hits 34/1592 nti 22 constraint DS = {12} extremes [2, infinity) + hits 34/1572 nti 22 constraint DS = {12} extremes [2, infinity) English: - (hits 34/191) (matched: 'the property initial appearance') constraint DS = {12} extremes [3, infinity) + (hits 34/187) (matched: 'the property initial appearance') constraint DS = {12} extremes [3, infinity) - (hits 0/216) constraint DS = {12} extremes [2, infinity) + (hits 0/212) constraint DS = {12} extremes [2, infinity) - internal hits 796/21416 nti 23 constraint (none) extremes [1, infinity) + internal hits 786/21412 nti 23 constraint (none) extremes [1, infinity) - hits 651/21866 nti 24 constraint (none) extremes [1, infinity) + hits 651/21864 nti 24 constraint (none) extremes [1, infinity) English: - (hits 651/10933) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) + (hits 651/10932) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) - hits 1442/27538 nti 14 constraint (none) extremes [1, infinity) + hits 1442/27536 nti 14 constraint (none) extremes [1, infinity) English: not - (hits 0/3166) constraint DS = {14} extremes [3, infinity) + (hits 0/3163) constraint DS = {14} extremes [3, infinity) - (hits 0/6944) constraint (none) extremes [2, infinity) + (hits 0/6942) constraint (none) extremes [2, infinity) - (hits 1442/13769) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) + (hits 1442/13768) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) - hits 1513/29768 nti 13 constraint (none) extremes [1, infinity) + hits 1513/29766 nti 13 constraint (none) extremes [1, infinity) English: not - (hits 12/5163) (matched: 'not lockable') constraint DS = {13} extremes [2, infinity) + (hits 12/5160) (matched: 'not lockable') constraint DS = {13} extremes [2, infinity) (hits 1430/2252) (matched: 'unmarked for listing') constraint CS = {r3} extremes [1, infinity) not - (hits 0/3142) constraint DS = {13} extremes [3, infinity) + (hits 0/3139) constraint DS = {13} extremes [3, infinity) - (hits 71/7271) (matched: 'marked for listing other') constraint (none) extremes [2, infinity) + (hits 71/7269) (matched: 'marked for listing other') constraint (none) extremes [2, infinity) - internal hits 2217/19100 nti r3 constraint CS = {r3} extremes [1, infinity) + internal hits 2217/19096 nti r3 constraint CS = {r3} extremes [1, infinity) - hits 3634/90352 nti 25 constraint (none) extremes [1, infinity) + hits 3636/90292 nti 25 constraint (none) extremes [1, infinity) English: - (hits 2599/45176) (matched: 'value of kind k') constraint (none) extremes [1, infinity) + (hits 2599/45146) (matched: 'value of kind k') constraint (none) extremes [1, infinity) - (hits 1035/2038) (matched: 'the alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) + (hits 1037/2040) (matched: 'the alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) hits 8/864 nti 26 constraint (none) extremes [1, infinity) English: (hits 8/432) (matched: 'person') constraint (none) extremes [1, infinity) - hits 133/7892 nti 27 constraint CW = {r2, r4} extremes [1, infinity) + hits 131/7808 nti 27 constraint CW = {r2, r4} extremes [1, infinity) English: - (hits 133/332) (matched: 'alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) + (hits 131/330) (matched: 'alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) hits 768/5176 nti 28 constraint (none) extremes [1, infinity) English: (hits 768/2588) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) - hits 1652/38798 nti 29 constraint (none) extremes [1, infinity) + hits 1652/38790 nti 29 constraint (none) extremes [1, infinity) English: - (hits 1392/19399) (matched long text) constraint (none) extremes [1, infinity) + (hits 1392/19395) (matched long text) constraint (none) extremes [1, infinity) - (hits 260/4823) (matched long text) constraint (none) extremes [3, infinity) + (hits 260/4819) (matched long text) constraint (none) extremes [3, infinity) hits 256/2104 nti 30 constraint (none) extremes [1, infinity) English: (hits 256/1052) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity) - hits 1648/40902 nti 15 constraint (none) extremes [1, infinity) + hits 1648/40894 nti 15 constraint (none) extremes [1, infinity) English: ( called ) - (hits 118/1449) (matched long text) constraint DS = {15} extremes [5, infinity) + (hits 118/1445) (matched long text) constraint DS = {15} extremes [5, infinity) - (hits 1530/20333) (matched: 'the alfred cralle pool hall') constraint (none) extremes [1, infinity) + (hits 1530/20329) (matched: 'the alfred cralle pool hall') constraint (none) extremes [1, infinity) - hits 1648/40914 nti 31 constraint (none) extremes [1, infinity) + hits 1648/40906 nti 31 constraint (none) extremes [1, infinity) English: - (hits 51/10621) (matched: 'at least two stamped envelopes') constraint (none) extremes [2, infinity) + (hits 51/10617) (matched: 'at least two stamped envelopes') constraint (none) extremes [2, infinity) - (hits 156/20406) (matched: 'something') constraint (none) extremes [1, infinity) + (hits 156/20402) (matched: 'something') constraint (none) extremes [1, infinity) - (hits 22/10570) (matched: 'something switched on') constraint (none) extremes [2, infinity) + (hits 22/10566) (matched: 'something switched on') constraint (none) extremes [2, infinity) - (hits 2/10548) (matched: 'the person') constraint (none) extremes [2, infinity) + (hits 2/10544) (matched: 'the person') constraint (none) extremes [2, infinity) ^ ^ - (hits 0/10546) constraint (none) extremes [2, infinity) + (hits 0/10542) constraint (none) extremes [2, infinity) - (hits 56/10546) (matched: 'the alfred cralle pool hall') constraint (none) extremes [2, infinity) + (hits 54/10542) (matched: 'the alfred cralle pool hall') constraint (none) extremes [2, infinity) - (hits 617/10490) (matched: 'a marked for listing person') constraint (none) extremes [2, infinity) + (hits 617/10488) (matched: 'a marked for listing person') constraint (none) extremes [2, infinity) - (hits 744/19553) (matched: 'marked for listing other people') constraint (none) extremes [1, infinity) + (hits 746/19551) (matched: 'marked for listing other people') constraint (none) extremes [1, infinity) - hits 1412/40880 nti 6 constraint (none) extremes [1, infinity) + hits 1414/40876 nti 6 constraint (none) extremes [1, infinity) English: - (hits 1028/20440) (matched: 'nancy johnson memorial square') constraint (none) extremes [1, infinity) + (hits 1030/20438) (matched: 'nancy johnson memorial square') constraint (none) extremes [1, infinity) - (hits 384/10192) (matched: 'marked for listing other people') constraint (none) extremes [2, infinity) + (hits 384/10188) (matched: 'marked for listing other people') constraint (none) extremes [2, infinity) hits 2/300 nti 7 constraint (none) extremes [1, infinity) English: @@ -7889,14 +7889,14 @@ (hits 0/111) constraint (none) extremes [2, infinity) - hits 56/7194 nti 8 constraint (none) extremes [1, infinity) + hits 54/7174 nti 8 constraint (none) extremes [1, infinity) English: - (hits 56/129) (matched: 'alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) + (hits 54/127) (matched: 'alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) - (hits 0/1430) constraint (none) extremes [2, infinity) + (hits 0/1422) constraint (none) extremes [2, infinity) - internal hits 4743/9700 nti 9 constraint (none) extremes [0, 0] + internal hits 4729/9672 nti 9 constraint (none) extremes [0, 0] hits 102/544 nti 10 constraint (none) extremes [1, infinity) English: @@ -7947,9 +7947,9 @@ {...} (hits 35/35) (matched: 'random bystander') constraint (none) extremes [1, infinity) - internal hits 79/21548 nti 14 constraint (none) extremes [1, infinity) + internal hits 79/21540 nti 14 constraint (none) extremes [1, infinity) - internal hits 288/62770 nti 15 constraint (none) extremes [1, infinity) + internal hits 288/62754 nti 15 constraint (none) extremes [1, infinity) hits 1947/4830 nti 16 constraint (none) extremes [1, infinity) English: @@ -7958,14 +7958,14 @@ (hits 1829/2297) (matched long text) constraint (none) extremes [1, infinity) - hits 3125/7780 nti 23 constraint (none) extremes [1, infinity) + hits 3126/7782 nti 23 constraint (none) extremes [1, infinity) English: variable/variables (hits 2/633) (matched: 'text variables') constraint DS = {23} extremes [2, infinity) that/which vary/varies (hits 59/430) (matched: 'action name based rule producing nothing that varies') constraint DS = {23} extremes [3, infinity) - (hits 2441/3829) (matched long text) constraint (none) extremes [1, infinity) + (hits 2442/3830) (matched long text) constraint (none) extremes [1, infinity) (hits 221/1388) (matched: 'Represents geographical locations, both indoor and outdoor, which are not necessarily areas in a building. A player in one @@ -7980,19 +7980,19 @@ (hits 27/792) (matched long text) constraint (none) extremes [1, infinity) - hits 1252/3018 nti 17 constraint (none) extremes [1, infinity) + hits 1253/3020 nti 17 constraint (none) extremes [1, infinity) English:
(hits 162/790) (matched: 'an ice cream cone') constraint (none) extremes [2, infinity) - (hits 1090/1347) (matched long text) constraint (none) extremes [1, infinity) + (hits 1091/1348) (matched long text) constraint (none) extremes [1, infinity) - hits 1252/3018 nti 18 constraint (none) extremes [1, infinity) + hits 1253/3020 nti 18 constraint (none) extremes [1, infinity) English: - (hits 74/1509) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) + (hits 74/1510) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) - (hits 1178/1435) (matched long text) constraint (none) extremes [1, infinity) + (hits 1179/1436) (matched long text) constraint (none) extremes [1, infinity) hits 61/124 nti 22 constraint (none) extremes [1, infinity) English: @@ -8016,76 +8016,76 @@ (hits 0/1) constraint (none) extremes [1, infinity) - internal hits 8/18428 nti 20 constraint (none) extremes [0, 0] + internal hits 8/18424 nti 20 constraint (none) extremes [0, 0] - internal hits 2/9366 nti 21 constraint (none) extremes [0, 0] + internal hits 2/9362 nti 21 constraint (none) extremes [0, 0] - internal hits 9/18536 nti 22 constraint (none) extremes [0, 0] + internal hits 9/18532 nti 22 constraint (none) extremes [0, 0] - internal hits 0/18536 nti 23 constraint (none) extremes [0, 0] + internal hits 0/18532 nti 23 constraint (none) extremes [0, 0] - hits 8451/18824 nti 19 constraint (none) extremes [1, infinity) + hits 8451/18820 nti 19 constraint (none) extremes [1, infinity) English: ( ) - (hits 0/1592) constraint DS = {19} extremes [3, infinity) + (hits 0/1590) constraint DS = {19} extremes [3, infinity) - (hits 144/9412) (matched: 'the person reaching') constraint (none) extremes [1, infinity) + (hits 144/9410) (matched: 'the person reaching') constraint (none) extremes [1, infinity) - (hits 0/9268) constraint (none) extremes [1, infinity) + (hits 0/9266) constraint (none) extremes [1, infinity) - (hits 0/9268) constraint (none) extremes [1, infinity) + (hits 0/9266) constraint (none) extremes [1, infinity) - (hits 54/9268) (matched: 'abs function') constraint (none) extremes [1, infinity) + (hits 54/9266) (matched: 'abs function') constraint (none) extremes [1, infinity) - (hits 0/9214) constraint (none) extremes [1, infinity) + (hits 0/9212) constraint (none) extremes [1, infinity) - (hits 18/9214) (matched: 'fixed in place') constraint (none) extremes [1, infinity) + (hits 18/9212) (matched: 'fixed in place') constraint (none) extremes [1, infinity) - (hits 0/9196) constraint (none) extremes [1, infinity) + (hits 0/9194) constraint (none) extremes [1, infinity) - (hits 20/9196) (matched: 'the remainder after dividing it by 2') constraint (none) extremes [1, infinity) + (hits 20/9194) (matched: 'the remainder after dividing it by 2') constraint (none) extremes [1, infinity) - (hits 9/9176) (matched: 'active') constraint (none) extremes [1, infinity) + (hits 9/9174) (matched: 'active') constraint (none) extremes [1, infinity) - (hits 116/9167) (matched: 'a supporter ( called the chaise )') constraint (none) extremes [1, infinity) + (hits 116/9165) (matched: 'a supporter ( called the chaise )') constraint (none) extremes [1, infinity) - (hits 0/3177) constraint DS = {18} extremes [2, infinity) + (hits 0/3174) constraint DS = {18} extremes [2, infinity) member/members of - (hits 0/1566) constraint DS = {19} extremes [3, infinity) + (hits 0/1564) constraint DS = {19} extremes [3, infinity) member/members of - (hits 0/1566) constraint DS = {19} extremes [3, infinity) + (hits 0/1564) constraint DS = {19} extremes [3, infinity) of - (hits 2/1566) (matched: 'the destination of the player') constraint DS = {19} extremes [3, infinity) + (hits 2/1564) (matched: 'the destination of the player') constraint DS = {19} extremes [3, infinity) - (hits 0/4683) constraint (none) extremes [2, infinity) + (hits 0/4681) constraint (none) extremes [2, infinity) entry of/in/from - (hits 0/1248) constraint DS = {19} extremes [4, infinity) + (hits 0/1246) constraint DS = {19} extremes [4, infinity) - (hits 0/9049) constraint (none) extremes [1, infinity) + (hits 0/9047) constraint (none) extremes [1, infinity) - (hits 0/9049) constraint (none) extremes [1, infinity) + (hits 0/9047) constraint (none) extremes [1, infinity) - (hits 0/9049) constraint (none) extremes [1, infinity) + (hits 0/9047) constraint (none) extremes [1, infinity) - hits 4/18428 nti 17 constraint (none) extremes [1, infinity) + hits 4/18424 nti 17 constraint (none) extremes [1, infinity) English: where - (hits 4/1526) (matched long text) constraint DS = {17} extremes [3, infinity) + (hits 4/1524) (matched long text) constraint DS = {17} extremes [3, infinity) where - (hits 0/1522) constraint DS = {17} extremes [3, infinity) + (hits 0/1520) constraint DS = {17} extremes [3, infinity) - (hits 0/9210) constraint (none) extremes [1, infinity) + (hits 0/9208) constraint (none) extremes [1, infinity) - hits 5811/24112 nti 24 constraint (none) extremes [1, infinity) + hits 5811/24098 nti 24 constraint (none) extremes [1, infinity) English: - (hits 1637/6150) (matched: 'the room back the other way') constraint (none) extremes [2, infinity) + (hits 1637/6143) (matched: 'the room back the other way') constraint (none) extremes [2, infinity) - (hits 1066/10419) (matched: 'room back the other way') constraint (none) extremes [1, infinity) + (hits 1066/10412) (matched: 'room back the other way') constraint (none) extremes [1, infinity) - (hits 897/9353) (matched: 'within the player's sight') constraint (none) extremes [1, infinity) + (hits 897/9346) (matched: 'within the player's sight') constraint (none) extremes [1, infinity) - (hits 2211/8456) (matched: 'current item from the multiple object list') constraint (none) extremes [1, infinity) + (hits 2211/8449) (matched: 'current item from the multiple object list') constraint (none) extremes [1, infinity) nti 24 constraint (none) extremes [1, infinity) English: @@ -8101,33 +8101,33 @@ (hits 173/565) (matched: 'the person asked') constraint (none) extremes [1, infinity) - internal hits 1137/27360 nti 26 constraint (none) extremes [1, infinity) + internal hits 1137/27346 nti 26 constraint (none) extremes [1, infinity) - internal hits 897/18706 nti 27 constraint (none) extremes [1, infinity) + internal hits 897/18692 nti 27 constraint (none) extremes [1, infinity) - internal hits 2296/19726 nti 28 constraint (none) extremes [1, infinity) + internal hits 2296/19712 nti 28 constraint (none) extremes [1, infinity) - hits 105/18392 nti 25 constraint DS = {25} extremes [3, infinity) + hits 100/18388 nti 25 constraint DS = {25} extremes [3, infinity) English: of {...} - (hits 105/1449) (matched long text) constraint DS = {25} extremes [3, infinity) + (hits 100/1449) (matched: 'walk style of the character entry') constraint DS = {25} extremes [3, infinity) - internal hits 493/18392 nti 29 constraint (none) extremes [1, infinity) + internal hits 498/18388 nti 29 constraint (none) extremes [1, infinity) - internal hits 477/18098 nti 30 constraint (none) extremes [1, infinity) + internal hits 478/18094 nti 30 constraint (none) extremes [1, infinity) - hits 139/6354 nti 18 constraint DS = {18} extremes [2, infinity) + hits 139/6348 nti 18 constraint DS = {18} extremes [2, infinity) English: entry - (hits 135/3177) (matched: 'the locale description priority entry') constraint DS = {18} extremes [2, infinity) + (hits 135/3174) (matched: 'the locale description priority entry') constraint DS = {18} extremes [2, infinity) in row of - (hits 0/425) constraint DS = {18} extremes [6, infinity) + (hits 0/423) constraint DS = {18} extremes [6, infinity) listed in - (hits 2/1388) (matched: 'a topic listed in source') constraint DS = {18} extremes [4, infinity) + (hits 2/1386) (matched: 'a topic listed in source') constraint DS = {18} extremes [4, infinity) corresponding to of in (hits 0/197) constraint DS = {18} extremes [8, infinity) of in - (hits 2/677) (matched long text) constraint DS = {18} extremes [5, infinity) + (hits 2/675) (matched long text) constraint DS = {18} extremes [5, infinity) hits 1074/2238 nti 31 constraint (none) extremes [3, infinity) English: @@ -8155,30 +8155,30 @@ to constraint DS = {21} extremes [3, infinity) - hits 260/9986 nti 8 constraint (none) extremes [3, infinity) + hits 260/9978 nti 8 constraint (none) extremes [3, infinity) English: - (hits 169/4163) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 169/4159) (matched long text) constraint DS = {13} extremes [3, infinity) - (hits 91/2792) (matched long text) constraint DS = {6} extremes [4, infinity) + (hits 91/2788) (matched long text) constraint DS = {6} extremes [4, infinity) - hits 448/30696 nti 20 constraint DS = {13} extremes [2, infinity) + hits 448/30640 nti 20 constraint DS = {13} extremes [2, infinity) English: - (hits 447/9131) (matched long text) constraint DS = {13} extremes [2, infinity) + (hits 447/9107) (matched long text) constraint DS = {13} extremes [2, infinity) not - (hits 1/5454) (matched: 'not carried by the person asked') constraint DS = {13, 20} extremes [3, infinity) + (hits 1/5446) (matched: 'not carried by the person asked') constraint DS = {13, 20} extremes [3, infinity) - hits 183/24040 nti 9 constraint DS = {6} extremes [3, infinity) + hits 183/23984 nti 9 constraint DS = {6} extremes [3, infinity) English: - (hits 0/2391) constraint DS = {6, 21} extremes [5, infinity) + (hits 0/2379) constraint DS = {6, 21} extremes [5, infinity) - (hits 32/3745) (matched long text) constraint DS = {6, 14} extremes [4, infinity) + (hits 32/3729) (matched long text) constraint DS = {6, 14} extremes [4, infinity) - (hits 151/5972) (matched: 'which provide the property initial appearance') constraint DS = {6} extremes [3, infinity) + (hits 151/5956) (matched: 'which provide the property initial appearance') constraint DS = {6} extremes [3, infinity) - internal hits 791/18334 nti 10 constraint (none) extremes [1, infinity) + internal hits 791/18330 nti 10 constraint (none) extremes [1, infinity) internal hits 1217/34624 nti 11 constraint (none) extremes [0, 0] @@ -8458,10 +8458,10 @@ variable initial value (hits 1/1) (matched: 'variable initial value') constraint CS = {22} extremes [3, 3] - hits 34/592 nti 12 constraint DS = {12} extremes [2, infinity) + hits 34/576 nti 12 constraint DS = {12} extremes [2, infinity) English: property {...} - (hits 34/274) (matched: 'property initial appearance') constraint DS = {12} extremes [2, infinity) + (hits 34/270) (matched: 'property initial appearance') constraint DS = {12} extremes [2, infinity) internal hits 69/430 nti 28 constraint (none) extremes [1, infinity) @@ -8558,18 +8558,18 @@ {...} (hits 73/73) (matched: 'item being printed') constraint (none) extremes [1, infinity) - hits 1576/3152 nti 30 constraint (none) extremes [1, infinity) + hits 1577/3154 nti 30 constraint (none) extremes [1, infinity) English: phrase options (hits 17/17) (matched: 'phrase options') constraint CS = {30} extremes [2, 2] - (hits 0/1559) constraint (none) extremes [1, infinity) + (hits 0/1560) constraint (none) extremes [1, infinity) - (hits 1559/1559) (matched: 'something else') constraint (none) extremes [1, infinity) + (hits 1560/1560) (matched: 'something else') constraint (none) extremes [1, infinity) {...} constraint (none) extremes [1, infinity) - internal hits 1559/3118 nti 10 constraint (none) extremes [1, infinity) + internal hits 1560/3120 nti 10 constraint (none) extremes [1, infinity) hits 30/564 nti 31 constraint (none) extremes [1, 1] English: @@ -8734,26 +8734,26 @@ matching key (hits 1/1) (matched: 'matching key') constraint CS = {17} extremes [2, 2] - hits 288/61566 nti 18 constraint DS = {18} extremes [1, infinity) + hits 288/61550 nti 18 constraint DS = {18} extremes [1, infinity) English: _something/anything {***} - (hits 207/14307) (matched long text) constraint DS = {18} extremes [1, infinity) + (hits 207/14295) (matched long text) constraint DS = {18} extremes [1, infinity) _somewhere/anywhere {***} - (hits 0/14100) constraint DS = {18} extremes [1, infinity) + (hits 0/14088) constraint DS = {18} extremes [1, infinity) _someone/anyone/somebody/anybody {***} - (hits 57/14100) (matched: 'someone') constraint DS = {18} extremes [1, infinity) + (hits 57/14088) (matched: 'someone') constraint DS = {18} extremes [1, infinity) _everything {***} - (hits 0/14043) constraint DS = {18} extremes [1, infinity) + (hits 0/14031) constraint DS = {18} extremes [1, infinity) _everywhere {***} - (hits 0/14043) constraint DS = {18} extremes [1, infinity) + (hits 0/14031) constraint DS = {18} extremes [1, infinity) _everyone/everybody {***} - (hits 0/14043) constraint DS = {18} extremes [1, infinity) + (hits 0/14031) constraint DS = {18} extremes [1, infinity) _nowhere {***} - (hits 24/14043) (matched: 'nowhere') constraint DS = {18} extremes [1, infinity) + (hits 24/14031) (matched: 'nowhere') constraint DS = {18} extremes [1, infinity) _nobody/no-one {***} - (hits 0/14019) constraint DS = {18} extremes [1, infinity) + (hits 0/14007) constraint DS = {18} extremes [1, infinity) _no _one {***} - (hits 0/13758) constraint DS = {18} extremes [2, infinity) + (hits 0/13746) constraint DS = {18} extremes [2, infinity) hits 0/2166 nti 19 constraint CS = {19} extremes [1, 1] English: @@ -8828,9 +8828,9 @@ hits 2/292 nti 31 constraint CS = {31} extremes [1, 2] English: opposite - (hits 1/1) (matched: 'opposite') constraint CS = {31} extremes [1, 1] - other side - (hits 1/1) (matched: 'other side') constraint CS = {31} extremes [2, 2] + (hits 1/2) (matched: 'opposite') constraint CS = {31} extremes [1, 1] + leading-through destination + (hits 1/1) (matched: 'leading-through destination') constraint CS = {31} extremes [2, 2] hits 0/2166 nti 6 constraint CS = {6} extremes [1, 1] English: @@ -9283,7 +9283,7 @@ internal hits 0/662 nti 10 constraint (none) extremes [1, infinity) - internal hits 1197/31612 nti 11 constraint (none) extremes [0, 0] + internal hits 1197/31576 nti 11 constraint (none) extremes [0, 0] internal hits 1268/2536 nti 12 constraint (none) extremes [0, 0] @@ -9300,7 +9300,7 @@ (hits 233/567) (matched long text) constraint (none) extremes [1, infinity) - internal hits 3/19982 nti 14 constraint (none) extremes [1, infinity) + internal hits 3/19978 nti 14 constraint (none) extremes [1, infinity) hits 28/2746 nti 15 constraint (none) extremes [1, infinity) English: @@ -9322,22 +9322,22 @@ (hits 0/1000) constraint DS = {30} extremes [4, infinity) - hits 556/21330 nti 13 constraint (none) extremes [1, infinity) + hits 556/21326 nti 13 constraint (none) extremes [1, infinity) English: asking to try - (hits 0/1068) constraint DS = {13} extremes [5, infinity) + (hits 0/1066) constraint DS = {13} extremes [5, infinity) trying - (hits 23/2873) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 23/2870) (matched long text) constraint DS = {13} extremes [3, infinity) an actor trying - (hits 0/1917) constraint DS = {13} extremes [4, infinity) + (hits 0/1915) constraint DS = {13} extremes [4, infinity) an actor - (hits 408/2850) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 408/2847) (matched long text) constraint DS = {13} extremes [3, infinity) trying - (hits 0/3975) constraint DS = {13} extremes [2, infinity) + (hits 0/3972) constraint DS = {13} extremes [2, infinity) - (hits 60/10234) (matched long text) constraint (none) extremes [1, infinity) + (hits 60/10232) (matched long text) constraint (none) extremes [1, infinity) - (hits 65/5425) (matched long text) constraint (none) extremes [2, infinity) + (hits 65/5423) (matched long text) constraint (none) extremes [2, infinity) hits 28/2746 nti 31 constraint (none) extremes [1, infinity) English: @@ -9346,17 +9346,17 @@ asking to try (hits 0/314) constraint DS = {31} extremes [5, infinity) trying - (hits 0/556) constraint DS = {31} extremes [3, infinity) + (hits 0/555) constraint DS = {31} extremes [3, infinity) an actor trying (hits 0/539) constraint DS = {31} extremes [4, infinity) an actor - (hits 3/556) (matched: 'an actor smelling') constraint DS = {31} extremes [3, infinity) + (hits 3/555) (matched: 'an actor smelling') constraint DS = {31} extremes [3, infinity) we are trying (hits 0/539) constraint DS = {31} extremes [4, infinity) trying - (hits 0/553) constraint DS = {31} extremes [2, infinity) + (hits 0/552) constraint DS = {31} extremes [2, infinity) we are - (hits 0/553) constraint DS = {31} extremes [3, infinity) + (hits 0/552) constraint DS = {31} extremes [3, infinity) (hits 25/1370) (matched long text) constraint (none) extremes [1, infinity) @@ -9415,9 +9415,9 @@ we have not (hits 0/1000) constraint DS = {30} extremes [4, infinity) - internal hits 94/13090 nti 19 constraint (none) extremes [1, infinity) + internal hits 94/13086 nti 19 constraint (none) extremes [1, infinity) - internal hits 584/24264 nti 20 constraint (none) extremes [1, infinity) + internal hits 584/24260 nti 20 constraint (none) extremes [1, infinity) internal nti 21 constraint (none) extremes [1, infinity) diff --git a/inform7/Downloads/syntax-diagnostics.txt b/inform7/Downloads/syntax-diagnostics.txt index eb6c661ac..a24280fcf 100644 --- a/inform7/Downloads/syntax-diagnostics.txt +++ b/inform7/Downloads/syntax-diagnostics.txt @@ -4493,21 +4493,21 @@ ROOT_NT VERB_NT'is never' {certainty:impossible} {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} ADJECTIVE_NT'pushable between rooms' {refined} {predicate: pushable between rooms} {creation: << pushable between rooms(x) ^ pushable between rooms(x) >>} - SENTENCE_NT'a door has an object called other side' {unit: 2} {classified} {interpretation of subject: infs'door'} + SENTENCE_NT'a door has an object called leading-through destination' {unit: 2} {classified} {interpretation of subject: infs'door'} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} ALLOWED_NT {refined} PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'object' {indefinite 'an' n/m/f nom/acc s} - UNPARSED_NOUN_NT'other side' - SENTENCE_NT'the other side property translates into inter as door_to' {unit: 2} {classified} + UNPARSED_NOUN_NT'leading-through destination' + SENTENCE_NT'the leading-through destination property translates into int' {unit: 2} {classified} VERB_NT'translates into' {verb 'translate' 3p s act IS_TENSE +ve} {prep1: into} {prep2: as} {special meaning: translates-into-i6} {category: -1} - UNPARSED_NOUN_NT'other side property' {definite 'the' n/m/f s/p nom/acc} + UNPARSED_NOUN_NT'leading-through destination property' {definite 'the' n/m/f s/p nom/acc} UNPARSED_NOUN_NT'door_to' - SENTENCE_NT'leading-through relates one room ( called the other side ) t' {unit: 2} {classified} + SENTENCE_NT'leading-through relates one room ( called the leading-throug' {unit: 2} {classified} VERB_NT'relates' {verb 'relate' 3p s act IS_TENSE +ve} {special meaning: new-relation} UNPARSED_NOUN_NT'leading-through' {new relation: leading-through} - UNPARSED_NOUN_NT'one room ( called the other side )' + UNPARSED_NOUN_NT'one room ( called the leading-through destination )' UNPARSED_NOUN_NT'various doors' SENTENCE_NT'the verb to be through means the leading-through relation' {unit: 2} {classified} VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means} @@ -16119,106 +16119,109 @@ ROOT_NT IMPERATIVE_NT'to decide which door is door ( d - direction ) from/of ( r1 ' {unit: 2} {imperative definition: 737} CODE_BLOCK_NT INVOCATION_LIST_NT'(- DoorFrom({R1},{D}) ' {unit: 2} - IMPERATIVE_NT'to decide which object is the other side of ( d - door ) fro' {unit: 2} {imperative definition: 738} + IMPERATIVE_NT'to decide which object is the other side of ( d - door ) ( d' {unit: 2} {imperative definition: 738} + CODE_BLOCK_NT + INVOCATION_LIST_NT'(- OtherSideOfDoor({D}, location) ' {unit: 2} + IMPERATIVE_NT'to decide which object is the other side of ( d - door ) fro' {unit: 2} {imperative definition: 739} CODE_BLOCK_NT INVOCATION_LIST_NT'(- OtherSideOfDoor({D},{R1}) ' {unit: 2} - IMPERATIVE_NT'to decide which object is the direction of ( d - door ) from' {unit: 2} {imperative definition: 739} + IMPERATIVE_NT'to decide which object is the direction of ( d - door ) from' {unit: 2} {imperative definition: 740} CODE_BLOCK_NT INVOCATION_LIST_NT'(- DirectionDoorLeadsIn({D},{R1}) ' {unit: 2} - IMPERATIVE_NT'to decide which object is room-or-door ( d - direction ) fro' {unit: 2} {imperative definition: 740} + IMPERATIVE_NT'to decide which object is room-or-door ( d - direction ) fro' {unit: 2} {imperative definition: 741} CODE_BLOCK_NT INVOCATION_LIST_NT'(- RoomOrDoorFrom({R1},{D}) ' {unit: 2} - IMPERATIVE_NT'to change ( d - direction ) exit of ( r1 - room ) to ( r2 - ' {unit: 2} {imperative definition: 741} + IMPERATIVE_NT'to change ( d - direction ) exit of ( r1 - room ) to ( r2 - ' {unit: 2} {imperative definition: 742} CODE_BLOCK_NT INVOCATION_LIST_NT'(- AssertMapConnection({R1},{D},{R2}); ' {unit: 2} - IMPERATIVE_NT'to change ( d - direction ) exit of ( r1 - room ) to nothing' {unit: 2} {imperative definition: 742} + IMPERATIVE_NT'to change ( d - direction ) exit of ( r1 - room ) to nothing' {unit: 2} {imperative definition: 743} CODE_BLOCK_NT INVOCATION_LIST_NT'(- AssertMapConnection({R1},{D},nothing); ' {unit: 2} - IMPERATIVE_NT'to decide which room is the front side of ( d - object ) ( d' {unit: 2} {imperative definition: 743} + IMPERATIVE_NT'to decide which room is the front side of ( d - object ) ( d' {unit: 2} {imperative definition: 744} CODE_BLOCK_NT INVOCATION_LIST_NT'(- FrontSideOfDoor({D}) ' {unit: 2} - IMPERATIVE_NT'to decide which room is the back side of ( d - object ) ( do' {unit: 2} {imperative definition: 744} + IMPERATIVE_NT'to decide which room is the back side of ( d - object ) ( do' {unit: 2} {imperative definition: 745} CODE_BLOCK_NT INVOCATION_LIST_NT'(- BackSideOfDoor({D}) ' {unit: 2} HEADING_NT'section 10 - route-finding' {heading 5} {under: H5'section 10 - route-finding'} {unit: 2} - IMPERATIVE_NT'to decide which object is best route from ( r1 - object ) to' {unit: 2} {imperative definition: 745} + IMPERATIVE_NT'to decide which object is best route from ( r1 - object ) to' {unit: 2} {imperative definition: 746} CODE_BLOCK_NT INVOCATION_LIST_NT'(- MapRouteTo({R1},{R2},0,{phrase options}) ' {unit: 2} - IMPERATIVE_NT'to decide which number is number of moves from ( r1 - object' {unit: 2} {imperative definition: 746} + IMPERATIVE_NT'to decide which number is number of moves from ( r1 - object' {unit: 2} {imperative definition: 747} CODE_BLOCK_NT INVOCATION_LIST_NT'(- MapRouteTo({R1},{R2},0,{phrase options},true) ' {unit: 2} - IMPERATIVE_NT'to decide which object is best route from ( r1 - object ) to' {unit: 2} {imperative definition: 747} + IMPERATIVE_NT'to decide which object is best route from ( r1 - object ) to' {unit: 2} {imperative definition: 748} CODE_BLOCK_NT INVOCATION_LIST_NT'(- MapRouteTo({R1},{R2},{RS},{phrase options}) ' {unit: 2} - IMPERATIVE_NT'to decide which number is number of moves from ( r1 - object' {unit: 2} {imperative definition: 748} + IMPERATIVE_NT'to decide which number is number of moves from ( r1 - object' {unit: 2} {imperative definition: 749} CODE_BLOCK_NT INVOCATION_LIST_NT'(- MapRouteTo({R1},{R2},{RS},{phrase options},true) ' {unit: 2} HEADING_NT'section 11 - the object tree' {heading 5} {under: H5'section 11 - the object tree'} {unit: 2} - IMPERATIVE_NT'to decide which object is holder of ( something - object ) (' {unit: 2} {imperative definition: 749} + IMPERATIVE_NT'to decide which object is holder of ( something - object ) (' {unit: 2} {imperative definition: 750} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (HolderOf({something})) ' {unit: 2} - IMPERATIVE_NT'to decide which object is next thing held after ( something ' {unit: 2} {imperative definition: 750} + IMPERATIVE_NT'to decide which object is next thing held after ( something ' {unit: 2} {imperative definition: 751} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (sibling({something})) ' {unit: 2} - IMPERATIVE_NT'to decide which object is first thing held by ( something - ' {unit: 2} {imperative definition: 751} + IMPERATIVE_NT'to decide which object is first thing held by ( something - ' {unit: 2} {imperative definition: 752} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (child({something})) ' {unit: 2} HEADING_NT'chapter 5 - understanding' {heading 4} {under: H4'chapter 5 - understanding'} {unit: 2} HEADING_NT'section 1 - asking yes/no questions' {heading 5} {under: H5'section 1 - asking yes/no questions'} {unit: 2} - IMPERATIVE_NT'to decide whether player consents ( documented at ph_consent' {unit: 2} {imperative definition: 752} + IMPERATIVE_NT'to decide whether player consents ( documented at ph_consent' {unit: 2} {imperative definition: 753} CODE_BLOCK_NT INVOCATION_LIST_NT'(- YesOrNo() ' {unit: 2} HEADING_NT'section 2 - the player's command' {heading 5} {under: H5'section 2 - the player's command'} {unit: 2} - IMPERATIVE_NT'to decide if ( s - a snippet ) matches ( t - a topic ) ( doc' {unit: 2} {imperative definition: 753} + IMPERATIVE_NT'to decide if ( s - a snippet ) matches ( t - a topic ) ( doc' {unit: 2} {imperative definition: 754} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (SnippetMatches({S}, {T})) ' {unit: 2} - IMPERATIVE_NT'to decide if ( s - a snippet ) does not match ( t - a topic ' {unit: 2} {imperative definition: 754} + IMPERATIVE_NT'to decide if ( s - a snippet ) does not match ( t - a topic ' {unit: 2} {imperative definition: 755} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (SnippetMatches({S}, {T}) == false) ' {unit: 2} - IMPERATIVE_NT'to decide if ( s - a snippet ) includes ( t - a topic ) ( do' {unit: 2} {imperative definition: 755} + IMPERATIVE_NT'to decide if ( s - a snippet ) includes ( t - a topic ) ( do' {unit: 2} {imperative definition: 756} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (matched_text=SnippetIncludes({T},{S})) ' {unit: 2} - IMPERATIVE_NT'to decide if ( s - a snippet ) does not include ( t - a topi' {unit: 2} {imperative definition: 756} + IMPERATIVE_NT'to decide if ( s - a snippet ) does not include ( t - a topi' {unit: 2} {imperative definition: 757} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (SnippetIncludes({T},{S})==0) ' {unit: 2} HEADING_NT'section 3 - changing the player's command' {heading 5} {under: H5'section 3 - changing the player's command'} {unit: 2} - IMPERATIVE_NT'to change the text of the player's command to ( t - text ) (' {unit: 2} {imperative definition: 757} + IMPERATIVE_NT'to change the text of the player's command to ( t - text ) (' {unit: 2} {imperative definition: 758} CODE_BLOCK_NT INVOCATION_LIST_NT'(- SetPlayersCommand({-by-reference:T}); ' {unit: 2} - IMPERATIVE_NT'to replace ( s - a snippet ) with ( t - text ) ( documented ' {unit: 2} {imperative definition: 758} + IMPERATIVE_NT'to replace ( s - a snippet ) with ( t - text ) ( documented ' {unit: 2} {imperative definition: 759} CODE_BLOCK_NT INVOCATION_LIST_NT'(- SpliceSnippet({S}, {-by-reference:T}); ' {unit: 2} - IMPERATIVE_NT'to cut ( s - a snippet ) ( documented at ph_cutsnippet )' {unit: 2} {imperative definition: 759} + IMPERATIVE_NT'to cut ( s - a snippet ) ( documented at ph_cutsnippet )' {unit: 2} {imperative definition: 760} CODE_BLOCK_NT INVOCATION_LIST_NT'(- SpliceSnippet({S}, 0); ' {unit: 2} - IMPERATIVE_NT'to reject the player's command ( documented at ph_rejectcomm' {unit: 2} {imperative definition: 760} + IMPERATIVE_NT'to reject the player's command ( documented at ph_rejectcomm' {unit: 2} {imperative definition: 761} CODE_BLOCK_NT INVOCATION_LIST_NT'(- RulebookFails(); rtrue; - in to only' {unit: 2} HEADING_NT'section 4 - scope and pronouns' {heading 5} {under: H5'section 4 - scope and pronouns'} {unit: 2} - IMPERATIVE_NT'to place ( o - an object ) in scope , but not its contents (' {unit: 2} {imperative definition: 761} + IMPERATIVE_NT'to place ( o - an object ) in scope , but not its contents (' {unit: 2} {imperative definition: 762} CODE_BLOCK_NT INVOCATION_LIST_NT'(- PlaceInScope({O}, {phrase options}); ' {unit: 2} - IMPERATIVE_NT'to place the/-- contents of ( o - an object ) in scope ( doc' {unit: 2} {imperative definition: 762} + IMPERATIVE_NT'to place the/-- contents of ( o - an object ) in scope ( doc' {unit: 2} {imperative definition: 763} CODE_BLOCK_NT INVOCATION_LIST_NT'(- ScopeWithin({O}); ' {unit: 2} - IMPERATIVE_NT'to set pronouns from ( o - an object ) ( documented at ph_se' {unit: 2} {imperative definition: 763} + IMPERATIVE_NT'to set pronouns from ( o - an object ) ( documented at ph_se' {unit: 2} {imperative definition: 764} CODE_BLOCK_NT INVOCATION_LIST_NT'(- PronounNotice({O}); ' {unit: 2} HEADING_NT'section 5 - the multiple object list' {heading 5} {under: H5'section 5 - the multiple object list'} {unit: 2} - IMPERATIVE_NT'to decide what list of objects is the multiple object list (' {unit: 2} {imperative definition: 764} + IMPERATIVE_NT'to decide what list of objects is the multiple object list (' {unit: 2} {imperative definition: 765} CODE_BLOCK_NT INVOCATION_LIST_NT'(- LIST_OF_TY_Mol({-new:list of objects}) ' {unit: 2} - IMPERATIVE_NT'to alter the multiple object list to ( l - list of objects )' {unit: 2} {imperative definition: 765} + IMPERATIVE_NT'to alter the multiple object list to ( l - list of objects )' {unit: 2} {imperative definition: 766} CODE_BLOCK_NT INVOCATION_LIST_NT'(- LIST_OF_TY_Set_Mol({-by-reference:L}); ' {unit: 2} HEADING_NT'section sr5/8/1 - message support - issuance - unindexed' {heading 5} {under: H5'section sr5/8/1 - message support - issuance - unindexed'} {unit: 2} - IMPERATIVE_NT'to issue score notification message' {unit: 2} {imperative definition: 766} + IMPERATIVE_NT'to issue score notification message' {unit: 2} {imperative definition: 767} CODE_BLOCK_NT INVOCATION_LIST_NT'(- NotifyTheScore(); ' {unit: 2} - IMPERATIVE_NT'to say pronoun dictionary word' {unit: 2} {imperative definition: 767} + IMPERATIVE_NT'to say pronoun dictionary word' {unit: 2} {imperative definition: 768} CODE_BLOCK_NT INVOCATION_LIST_NT'(- print (address) pronoun_word; ' {unit: 2} - IMPERATIVE_NT'to say recap of command' {unit: 2} {imperative definition: 768} + IMPERATIVE_NT'to say recap of command' {unit: 2} {imperative definition: 769} CODE_BLOCK_NT INVOCATION_LIST_NT'(- PrintCommand(); ' {unit: 2} SENTENCE_NT'the pronoun reference object is an object that varies' {unit: 2} {classified} @@ -16229,104 +16232,104 @@ ROOT_NT VERB_NT'translates into' {verb 'translate' 3p s act IS_TENSE +ve} {prep1: into} {prep2: as} {special meaning: translates-into-i6} {category: 3} UNPARSED_NOUN_NT'pronoun reference object variable' {definite 'the' n/m/f s/p nom/acc} UNPARSED_NOUN_NT'pronoun_obj' - IMPERATIVE_NT'to say pronoun i6 dictionary word' {unit: 2} {imperative definition: 769} + IMPERATIVE_NT'to say pronoun i6 dictionary word' {unit: 2} {imperative definition: 770} CODE_BLOCK_NT INVOCATION_LIST_NT'(- print (address) pronoun_word; ' {unit: 2} - IMPERATIVE_NT'to say parser command so far' {unit: 2} {imperative definition: 770} + IMPERATIVE_NT'to say parser command so far' {unit: 2} {imperative definition: 771} CODE_BLOCK_NT INVOCATION_LIST_NT'(- PrintCommand(); ' {unit: 2} HEADING_NT'chapter 6 - deprecated or private phrases - unindexed' {heading 4} {under: H4'chapter 6 - deprecated or private phrases - unindexed'} {unit: 2} HEADING_NT'section 1 - spatial modelling - unindexed' {heading 5} {under: H5'section 1 - spatial modelling - unindexed'} {unit: 2} - IMPERATIVE_NT'to decide which object is the component parts core of ( x - ' {unit: 2} {imperative definition: 771} + IMPERATIVE_NT'to decide which object is the component parts core of ( x - ' {unit: 2} {imperative definition: 772} CODE_BLOCK_NT INVOCATION_LIST_NT'(- CoreOf({X}) ' {unit: 2} - IMPERATIVE_NT'to decide which object is the common ancestor of ( o - an ob' {unit: 2} {imperative definition: 772} + IMPERATIVE_NT'to decide which object is the common ancestor of ( o - an ob' {unit: 2} {imperative definition: 773} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (CommonAncestor({O}, {P})) ' {unit: 2} - IMPERATIVE_NT'to decide which object is the not-counting-parts holder of (' {unit: 2} {imperative definition: 773} + IMPERATIVE_NT'to decide which object is the not-counting-parts holder of (' {unit: 2} {imperative definition: 774} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (CoreOfParentOfCoreOf({O})) ' {unit: 2} - IMPERATIVE_NT'to decide which object is the visibility-holder of ( o - obj' {unit: 2} {imperative definition: 774} + IMPERATIVE_NT'to decide which object is the visibility-holder of ( o - obj' {unit: 2} {imperative definition: 775} CODE_BLOCK_NT INVOCATION_LIST_NT'(- VisibilityParent({O}) ' {unit: 2} - IMPERATIVE_NT'to calculate visibility ceiling at low level' {unit: 2} {imperative definition: 775} + IMPERATIVE_NT'to calculate visibility ceiling at low level' {unit: 2} {imperative definition: 776} CODE_BLOCK_NT INVOCATION_LIST_NT'(- FindVisibilityLevels(); ' {unit: 2} - IMPERATIVE_NT'to decide which object is the touchability ceiling of ( o - ' {unit: 2} {imperative definition: 776} + IMPERATIVE_NT'to decide which object is the touchability ceiling of ( o - ' {unit: 2} {imperative definition: 777} CODE_BLOCK_NT INVOCATION_LIST_NT'(- TouchabilityCeiling({O}) ' {unit: 2} - IMPERATIVE_NT'to decide which number is the visibility ceiling count calcu' {unit: 2} {imperative definition: 777} + IMPERATIVE_NT'to decide which number is the visibility ceiling count calcu' {unit: 2} {imperative definition: 778} CODE_BLOCK_NT INVOCATION_LIST_NT'(- visibility_levels ' {unit: 2} - IMPERATIVE_NT'to decide which object is the visibility ceiling calculated' {unit: 2} {imperative definition: 778} + IMPERATIVE_NT'to decide which object is the visibility ceiling calculated' {unit: 2} {imperative definition: 779} CODE_BLOCK_NT INVOCATION_LIST_NT'(- visibility_ceiling ' {unit: 2} HEADING_NT'section 2 - room descriptions - unindexed' {heading 5} {under: H5'section 2 - room descriptions - unindexed'} {unit: 2} - IMPERATIVE_NT'to produce a room description with going spacing conventions' {unit: 2} {imperative definition: 779} + IMPERATIVE_NT'to produce a room description with going spacing conventions' {unit: 2} {imperative definition: 780} CODE_BLOCK_NT INVOCATION_LIST_NT'(- LookAfterGoing(); ' {unit: 2} - IMPERATIVE_NT'to print the location's description' {unit: 2} {imperative definition: 780} + IMPERATIVE_NT'to print the location's description' {unit: 2} {imperative definition: 781} CODE_BLOCK_NT INVOCATION_LIST_NT'(- PrintOrRun(location, description); ' {unit: 2} - IMPERATIVE_NT'to decide if set to sometimes abbreviated room descriptions' {unit: 2} {imperative definition: 781} + IMPERATIVE_NT'to decide if set to sometimes abbreviated room descriptions' {unit: 2} {imperative definition: 782} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (lookmode == 1) ' {unit: 2} - IMPERATIVE_NT'to decide if set to unabbreviated room descriptions' {unit: 2} {imperative definition: 782} + IMPERATIVE_NT'to decide if set to unabbreviated room descriptions' {unit: 2} {imperative definition: 783} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (lookmode == 2) ' {unit: 2} - IMPERATIVE_NT'to decide if set to abbreviated room descriptions' {unit: 2} {imperative definition: 783} + IMPERATIVE_NT'to decide if set to abbreviated room descriptions' {unit: 2} {imperative definition: 784} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (lookmode == 3) ' {unit: 2} HEADING_NT'section 3 - action conversion - unindexed' {heading 5} {under: H5'section 3 - action conversion - unindexed'} {unit: 2} - IMPERATIVE_NT'to convert to ( an - an action name ) on ( o - an object )' {unit: 2} {imperative definition: 784} + IMPERATIVE_NT'to convert to ( an - an action name ) on ( o - an object )' {unit: 2} {imperative definition: 785} CODE_BLOCK_NT INVOCATION_LIST_NT'(- return GVS_Convert({AN},{O},0); - in to only' {unit: 2} - IMPERATIVE_NT'to convert to request of ( x - object ) to perform ( an - ac' {unit: 2} {imperative definition: 785} + IMPERATIVE_NT'to convert to request of ( x - object ) to perform ( an - ac' {unit: 2} {imperative definition: 786} CODE_BLOCK_NT INVOCATION_LIST_NT'(- return ConvertToRequest({X}, {AN}, {Y}, {Z}); ' {unit: 2} - IMPERATIVE_NT'to convert to special going-with-push action' {unit: 2} {imperative definition: 786} + IMPERATIVE_NT'to convert to special going-with-push action' {unit: 2} {imperative definition: 787} CODE_BLOCK_NT INVOCATION_LIST_NT'(- return ConvertToGoingWithPush(); ' {unit: 2} HEADING_NT'section 4 - surreptitious violation of invariants - unindexe' {heading 5} {under: H5'section 4 - surreptitious violation of invariants - unindexed'} {unit: 2} - IMPERATIVE_NT'to surreptitiously move ( something - object ) to ( somethin' {unit: 2} {imperative definition: 787} - CODE_BLOCK_NT - INVOCATION_LIST_NT'(- move {something} to {something else}; ' {unit: 2} IMPERATIVE_NT'to surreptitiously move ( something - object ) to ( somethin' {unit: 2} {imperative definition: 788} + CODE_BLOCK_NT + INVOCATION_LIST_NT'(- move {something} to {something else}; ' {unit: 2} + IMPERATIVE_NT'to surreptitiously move ( something - object ) to ( somethin' {unit: 2} {imperative definition: 789} CODE_BLOCK_NT INVOCATION_LIST_NT'(- MoveDuringGoing({something}, {something else}); ' {unit: 2} - IMPERATIVE_NT'to surreptitiously reckon darkness' {unit: 2} {imperative definition: 789} + IMPERATIVE_NT'to surreptitiously reckon darkness' {unit: 2} {imperative definition: 790} CODE_BLOCK_NT INVOCATION_LIST_NT'(- SilentlyConsiderLight(); ' {unit: 2} HEADING_NT'section 5 - capitalised list-writing - unindexed' {heading 5} {under: H5'section 5 - capitalised list-writing - unindexed'} {unit: 2} - IMPERATIVE_NT'to say list-writer list of marked objects' {unit: 2} {imperative definition: 790} + IMPERATIVE_NT'to say list-writer list of marked objects' {unit: 2} {imperative definition: 791} CODE_BLOCK_NT INVOCATION_LIST_NT'(- WriteListOfMarkedObjects(ENGLISH_BIT); ' {unit: 2} - IMPERATIVE_NT'to say list-writer articled list of marked objects' {unit: 2} {imperative definition: 791} + IMPERATIVE_NT'to say list-writer articled list of marked objects' {unit: 2} {imperative definition: 792} CODE_BLOCK_NT INVOCATION_LIST_NT'(- WriteListOfMarkedObjects(ENGLISH_BIT+DEFART_BIT+CFIRS' {unit: 2} HEADING_NT'section 6 - printing names - unindexed' {heading 5} {under: H5'section 6 - printing names - unindexed'} {unit: 2} - IMPERATIVE_NT'to decide if expanding text for comparison purposes' {unit: 2} {imperative definition: 792} + IMPERATIVE_NT'to decide if expanding text for comparison purposes' {unit: 2} {imperative definition: 793} CODE_BLOCK_NT INVOCATION_LIST_NT'(- say__comp ' {unit: 2} HEADING_NT'section 7 - command parsing - unindexed' {heading 5} {under: H5'section 7 - command parsing - unindexed'} {unit: 2} - IMPERATIVE_NT'to decide whether the i6 parser is running multiple actions' {unit: 2} {imperative definition: 793} + IMPERATIVE_NT'to decide whether the i6 parser is running multiple actions' {unit: 2} {imperative definition: 794} CODE_BLOCK_NT INVOCATION_LIST_NT'(- (multiflag==1) ' {unit: 2} HEADING_NT'section 8 - deprecated inform - unindexed' {heading 5} {under: H5'section 8 - deprecated inform - unindexed'} {unit: 2} - IMPERATIVE_NT'to yes ( documented at ph_yes )' {unit: 2} {imperative definition: 794} + IMPERATIVE_NT'to yes ( documented at ph_yes )' {unit: 2} {imperative definition: 795} CODE_BLOCK_NT INVOCATION_LIST_NT'(- rtrue; - in to decide if only' {unit: 2} - IMPERATIVE_NT'to no ( documented at ph_no )' {unit: 2} {imperative definition: 795} + IMPERATIVE_NT'to no ( documented at ph_no )' {unit: 2} {imperative definition: 796} CODE_BLOCK_NT INVOCATION_LIST_NT'(- rfalse; - in to decide if only' {unit: 2} HEADING_NT'section 9 - debugging inform - unindexed' {heading 5} {under: H5'section 9 - debugging inform - unindexed'} {unit: 2} - IMPERATIVE_NT'to ***' {unit: 2} {imperative definition: 796} + IMPERATIVE_NT'to ***' {unit: 2} {imperative definition: 797} CODE_BLOCK_NT INVOCATION_LIST_NT'(- {-primitive-definition:verbose-checking} ' {unit: 2} - IMPERATIVE_NT'to *** ( t - text )' {unit: 2} {imperative definition: 797} + IMPERATIVE_NT'to *** ( t - text )' {unit: 2} {imperative definition: 798} CODE_BLOCK_NT INVOCATION_LIST_NT'(- {-primitive-definition:verbose-checking} ' {unit: 2} ENDHERE_NT'the standard rules' {unit: 2} @@ -16345,14 +16348,14 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'asking for information' UNPARSED_NOUN_NT'out of world' - IMPERATIVE_NT'carry out asking for information' {unit: 4} {imperative definition: 798} + IMPERATIVE_NT'carry out asking for information' {unit: 4} {imperative definition: 799} CODE_BLOCK_NT CODE_BLOCK_NT'say "An implementation of the following creative brief:Peo' {control structure: SAY} INVOCATION_LIST_SAY_NT'"An implementation of the following creative brief:People ' INVOCATION_NT'"An implementation of the following creative brief:People ' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"An implementation of the following creative brief:People ' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"An implementation of the following creative brief:People ' {kind: text} - IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 799} + IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 800} CODE_BLOCK_NT CODE_BLOCK_NT'say "Gelato's Syndrome. It's struck, and it's struck hard. I' {control structure: SAY} INVOCATION_LIST_SAY_NT'"Gelato's Syndrome. It's struck, and it's struck hard. In th' @@ -16370,7 +16373,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'current owner' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'current owner' {nonlocal: 'current owner'(var)person}} {created here} COMMON_NOUN_NT'person which varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 800} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 801} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if player is active' {unit: 4} {colon_block_command} @@ -16382,7 +16385,7 @@ ROOT_NT INVOCATION_NT'follow the character movement rules' {phrase invoked: } RVALUE_CONTEXT_NT'character movement rules' {token to be parsed against: TEST_VALUE_NT'a rule'} {required: rule} CONSTANT_NT'character movement rules' {kind: rulebook} {rulebook: character movement}{meaning: {character movement rules = RULEBOOK_MC}} - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 801} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 802} CODE_BLOCK_NT INVOCATION_LIST_NT'now the last person named is the player' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the last person named is the player' @@ -16405,7 +16408,7 @@ ROOT_NT VERB_NT'are' {verb 'be' 3p p act IS_TENSE +ve} PROPER_NOUN_NT'character movement rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: character movement}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'the first character movement rule' {unit: 4} {imperative definition: 802} + IMPERATIVE_NT'the first character movement rule' {unit: 4} {imperative definition: 803} CODE_BLOCK_NT INVOCATION_LIST_NT'now group size is 1' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'group size is 1' @@ -16415,7 +16418,7 @@ ROOT_NT CONDITION_CONTEXT_NT'the last thing named is the player' INVOCATION_LIST_NT'now the player is passive' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the player is passive' - IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 803} + IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 804} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: RPT} INVOCATION_LIST_NT'repeat with mover running through innocent people' {colon_block_command} {unit: 4} {indent: 1} @@ -16437,7 +16440,7 @@ ROOT_NT INVOCATION_NT'follow the movement reporting rule' {phrase invoked: } RVALUE_CONTEXT_NT'movement reporting rule' {token to be parsed against: TEST_VALUE_NT'a rule'} {required: rule} CONSTANT_NT'movement reporting rule' {kind: rule} {rule: movement reporting rule}{meaning: {movement reporting rule = MISCELLANEOUS_MC}} - IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 804} + IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 805} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: RPT} INVOCATION_LIST_NT'repeat with next mover running through mercantile people' {colon_block_command} {unit: 4} {indent: 1} @@ -16459,7 +16462,7 @@ ROOT_NT INVOCATION_NT'follow the infection rule' {phrase invoked: } RVALUE_CONTEXT_NT'infection rule' {token to be parsed against: TEST_VALUE_NT'a rule'} {required: rule} CONSTANT_NT'infection rule' {kind: rule} {rule: infection rule}{meaning: {infection rule = MISCELLANEOUS_MC}} - IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 4} {imperative definition: 805} + IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 4} {imperative definition: 806} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the player is passive' {unit: 4} {colon_block_command} @@ -16471,13 +16474,13 @@ ROOT_NT INVOCATION_NT'no' {phrase invoked: } INVOCATION_LIST_NT'yes' {unit: 4} INVOCATION_NT'yes' {phrase invoked: } - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 806} IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 807} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 808} SENTENCE_NT'the shopowner rules is a rulebook' {unit: 4} {classified} {clears pronouns} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'shopowner rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopowner}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 808} + IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 809} CODE_BLOCK_NT INVOCATION_LIST_NT'let the shop be a random room owned by the current owner' {unit: 4} INVOCATION_NT'let the shop be a random room owned by the current owner' {phrase invoked: } @@ -16502,7 +16505,7 @@ ROOT_NT RVALUE_CONTEXT_NT'current owner closing the escape' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'current owner closing the escape' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 4} {imperative definition: 809} + IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 4} {imperative definition: 810} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked], muttering darkly about air-conditio' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -16522,7 +16525,7 @@ ROOT_NT RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 4} {imperative definition: 810} + IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 4} {imperative definition: 811} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if vanessa is visible' {unit: 4} {colon_block_command} @@ -16543,7 +16546,7 @@ ROOT_NT RVALUE_CONTEXT_NT'"The metal door slides heavily back into place."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"The metal door slides heavily back into place."' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 811} + IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 812} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the location of the current owner encloses a submitted ar' {colon_block_command} {unit: 4} {indent: 1} @@ -16559,14 +16562,14 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'filing' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 4} {imperative definition: 812} + IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 4} {imperative definition: 813} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked taking the noun' {unit: 4} INVOCATION_NT'try the person asked taking the noun' {phrase invoked: } RVALUE_CONTEXT_NT'person asked taking the noun' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'person asked taking the noun' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out someone filing' {unit: 4} {imperative definition: 813} + IMPERATIVE_NT'carry out someone filing' {unit: 4} {imperative definition: 814} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked does not carry the noun and the person a' {unit: 4} {colon_block_command} @@ -16596,7 +16599,7 @@ ROOT_NT CODE_BLOCK_NT {control structure: INS} INVOCATION_LIST_NT'now the noun is nowhere' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is nowhere' - IMPERATIVE_NT'report someone filing' {unit: 4} {imperative definition: 814} + IMPERATIVE_NT'report someone filing' {unit: 4} {imperative definition: 815} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked] registers [the noun] and files it aw' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -16619,7 +16622,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'shopper rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopper}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 815} + IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 816} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the current actor carries something ( called the problem ' {unit: 4} {colon_block_command} @@ -16632,7 +16635,7 @@ ROOT_NT RVALUE_CONTEXT_NT'current actor resolving the problem' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'current actor resolving the problem' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 816} + IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 817} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the current actor is not in the pool hall and the air con' {colon_block_command} {unit: 4} {indent: 1} @@ -16661,7 +16664,7 @@ ROOT_NT INVOCATION_NT'try the current actor going the way' {phrase invoked: } RVALUE_CONTEXT_NT'current actor going the way' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'current actor going the way' {kind: action} {explicit action: nothing}>} - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 817} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 818} DEFN_CONT_NT'a room is air-conditioned' {unit: 4} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -16719,12 +16722,12 @@ ROOT_NT COMMON_NOUN_NT'artwork' {indefinite 'an' n/m/f nom/acc s} {refined} {creation: << kind=artwork(x) >>} {refers: infs'artwork'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of an artwork' {unit: 4} {imperative definition: 818} + IMPERATIVE_NT'before printing the name of an artwork' {unit: 4} {imperative definition: 819} CODE_BLOCK_NT CODE_BLOCK_NT'say italic type' {control structure: SAY} INVOCATION_LIST_SAY_NT'italic type' INVOCATION_NT'italic type' {phrase invoked: } - IMPERATIVE_NT'after printing the name of an artwork' {unit: 4} {imperative definition: 819} + IMPERATIVE_NT'after printing the name of an artwork' {unit: 4} {imperative definition: 820} CODE_BLOCK_NT CODE_BLOCK_NT'say roman type' {control structure: SAY} INVOCATION_LIST_SAY_NT'roman type' @@ -16741,14 +16744,14 @@ ROOT_NT COMMON_NOUN_NT'book' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=book(x) >>} {refers: infs'book'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 4} {imperative definition: 820} + IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 4} {imperative definition: 821} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked approaching the public library' {unit: 4} INVOCATION_NT'try the person asked approaching the public library' {phrase invoked: } RVALUE_CONTEXT_NT'person asked approaching the public library' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'person asked approaching the public library' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out someone resolving a book' {unit: 4} {imperative definition: 821} + IMPERATIVE_NT'carry out someone resolving a book' {unit: 4} {imperative definition: 822} CODE_BLOCK_NT INVOCATION_LIST_NT'move the noun to the public library' {unit: 4} INVOCATION_NT'move the noun to the public library' {phrase invoked: } @@ -16758,7 +16761,7 @@ ROOT_NT CONSTANT_NT'public library' {kind: room} {instance: I110'public library'} {enumeration: 0} INVOCATION_LIST_NT'now the noun is submitted' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is submitted' - IMPERATIVE_NT'report someone resolving a book' {unit: 4} {imperative definition: 822} + IMPERATIVE_NT'report someone resolving a book' {unit: 4} {imperative definition: 823} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked] turns in [the noun]."' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -16777,13 +16780,13 @@ ROOT_NT INVOCATION_NT'"."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} - IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 823} + IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 824} CODE_BLOCK_NT INVOCATION_LIST_NT'group books together' {unit: 4} INVOCATION_NT'group books together' {phrase invoked: } RVALUE_CONTEXT_NT'books' {token to be parsed against: TEST_VALUE_NT'description of objects'} {required: description of objects} CONSTANT_NT'books' {kind: description of books} {proposition: << kind=book(x) >>} - IMPERATIVE_NT'before grouping together books' {unit: 4} {imperative definition: 824} + IMPERATIVE_NT'before grouping together books' {unit: 4} {imperative definition: 825} CODE_BLOCK_NT CODE_BLOCK_NT'say "books entitled "' {control structure: SAY} INVOCATION_LIST_SAY_NT'"books entitled "' @@ -16795,18 +16798,18 @@ ROOT_NT COMMON_NOUN_NT'stamped envelope' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=stamped envelope(x) >>} {refers: infs'stamped envelope'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 4} {imperative definition: 825} + IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 4} {imperative definition: 826} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked approaching the post office' {unit: 4} INVOCATION_NT'try the person asked approaching the post office' {phrase invoked: } RVALUE_CONTEXT_NT'person asked approaching the post office' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'person asked approaching the post office' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 4} {imperative definition: 826} + IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 4} {imperative definition: 827} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is nowhere' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is nowhere' - IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 4} {imperative definition: 827} + IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 4} {imperative definition: 828} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked] slips [a noun] into the outgoing mai' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -16825,7 +16828,7 @@ ROOT_NT INVOCATION_NT'" into the outgoing mail slot."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'" into the outgoing mail slot."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" into the outgoing mail slot."' {kind: text} - IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 4} {imperative definition: 828} + IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 4} {imperative definition: 829} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked is visible' {unit: 4} {indent: 1} {colon_block_command} @@ -16865,14 +16868,14 @@ ROOT_NT COMMON_NOUN_NT'dvd' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=dvd(x) >>} {refers: infs'dvd'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 4} {imperative definition: 829} + IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 4} {imperative definition: 830} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked approaching the rental store' {unit: 4} INVOCATION_NT'try the person asked approaching the rental store' {phrase invoked: } RVALUE_CONTEXT_NT'person asked approaching the rental store' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'person asked approaching the rental store' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 4} {imperative definition: 830} + IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 4} {imperative definition: 831} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is submitted' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is submitted' @@ -16882,7 +16885,7 @@ ROOT_NT NONLOCAL_VARIABLE_NT'noun' {nonlocal: 'noun'(var)object}{meaning: {noun = VARIABLE_MC}} RVALUE_CONTEXT_NT'movie rental store' {token to be parsed against: TEST_VALUE_NT'object'} {required: object} CONSTANT_NT'movie rental store' {kind: room} {instance: I104'movie rental store'} {enumeration: 0} - IMPERATIVE_NT'report someone resolving a dvd' {unit: 4} {imperative definition: 831} + IMPERATIVE_NT'report someone resolving a dvd' {unit: 4} {imperative definition: 832} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked] returns [the noun]."' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -16901,7 +16904,7 @@ ROOT_NT INVOCATION_NT'"."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} - IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 4} {imperative definition: 832} + IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 4} {imperative definition: 833} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked is visible' {unit: 4} {colon_block_command} @@ -16930,13 +16933,13 @@ ROOT_NT CONDITION_CONTEXT_NT'every dvd carried by the person asked is submitted' INVOCATION_LIST_NT'now every dvd carried by the person asked is in the location' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'every dvd carried by the person asked is in the location of ' - IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 833} + IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 834} CODE_BLOCK_NT INVOCATION_LIST_NT'group dvds together' {unit: 4} INVOCATION_NT'group dvds together' {phrase invoked: } RVALUE_CONTEXT_NT'dvds' {token to be parsed against: TEST_VALUE_NT'description of objects'} {required: description of objects} CONSTANT_NT'dvds' {kind: description of dvds} {proposition: << kind=dvd(x) >>} - IMPERATIVE_NT'before grouping together dvds' {unit: 4} {imperative definition: 834} + IMPERATIVE_NT'before grouping together dvds' {unit: 4} {imperative definition: 835} CODE_BLOCK_NT CODE_BLOCK_NT'say "DVDs of "' {control structure: SAY} INVOCATION_LIST_SAY_NT'"DVDs of "' @@ -16947,7 +16950,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'approaching' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'carry out someone approaching' {unit: 4} {imperative definition: 835} + IMPERATIVE_NT'carry out someone approaching' {unit: 4} {imperative definition: 836} CODE_BLOCK_NT INVOCATION_LIST_NT'let the way be the best route from the location of the perso' {unit: 4} INVOCATION_NT'let the way be the best route from the location of the perso' {phrase invoked: } @@ -16983,7 +16986,7 @@ ROOT_NT COMMON_NOUN_NT'coupon' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=coupon(x) >>} {refers: infs'coupon'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 4} {imperative definition: 836} + IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 4} {imperative definition: 837} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked giving the noun to vanessa' {unit: 4} INVOCATION_NT'try the person asked giving the noun to vanessa' {phrase invoked: } @@ -16993,20 +16996,20 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: negative} {special meaning: rule-listed-in} UNPARSED_NOUN_NT'the block giving rule' UNPARSED_NOUN_NT'in any rulebook' - IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 4} {imperative definition: 837} + IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 4} {imperative definition: 838} CODE_BLOCK_NT INVOCATION_LIST_NT'abide by the block giving rule' {unit: 4} INVOCATION_NT'abide by the block giving rule' {phrase invoked: } RVALUE_CONTEXT_NT'block giving rule' {token to be parsed against: TEST_VALUE_NT'a rule'} {required: rule} CONSTANT_NT'block giving rule' {kind: rule} {rule: block giving rule}{meaning: {block giving rule = MISCELLANEOUS_MC}} - IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 4} {imperative definition: 838} + IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 4} {imperative definition: 839} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked approaching cold comfort' {unit: 4} INVOCATION_NT'try the person asked approaching cold comfort' {phrase invoked: } RVALUE_CONTEXT_NT'person asked approaching cold comfort' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'person asked approaching cold comfort' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 4} {imperative definition: 839} + IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 4} {imperative definition: 840} CODE_BLOCK_NT INVOCATION_LIST_NT'let the reward be a random ice cream cone' {unit: 4} INVOCATION_NT'let the reward be a random ice cream cone' {phrase invoked: } @@ -17128,7 +17131,7 @@ ROOT_NT AND_NT',' {refined} PROPER_NOUN_NT'saffron silk' {refined} {refers: infs'saffron silk'} {eval: CONSTANT_NT'saffron silk' {kind: infection color} {instance: I86'saffron silk'[infection color]} {enumeration: 25}} {created here} PROPER_NOUN_NT'cookie dough cream' {refined} {refers: infs'cookie dough cream'} {eval: CONSTANT_NT'cookie dough cream' {kind: infection color} {instance: I87'cookie dough cream'[infection color]} {enumeration: 26}} {created here} - IMPERATIVE_NT'to say list of flavors' {unit: 4} {imperative definition: 840} + IMPERATIVE_NT'to say list of flavors' {unit: 4} {imperative definition: 841} CODE_BLOCK_NT INVOCATION_LIST_NT'let current color be french vanilla' {unit: 4} {indent: 1} INVOCATION_NT'let current color be french vanilla' {phrase invoked: } @@ -17174,7 +17177,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'buying the flavor' UNPARSED_NOUN_NT'applying to one infection color' - IMPERATIVE_NT'check buying the flavor' {unit: 4} {imperative definition: 841} + IMPERATIVE_NT'check buying the flavor' {unit: 4} {imperative definition: 842} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'unless the player can see vanessa' {colon_block_command} {unit: 4} {indent: 1} @@ -17188,7 +17191,7 @@ ROOT_NT RVALUE_CONTEXT_NT'"It would help if you were in the presence of an ice cream s' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"It would help if you were in the presence of an ice cream s' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out buying the flavor' {unit: 4} {imperative definition: 842} + IMPERATIVE_NT'carry out buying the flavor' {unit: 4} {imperative definition: 843} CODE_BLOCK_NT CODE_BLOCK_NT'say "'Do you have a coupon?' Vanessa demands. You admit you ' {control structure: SAY} INVOCATION_LIST_SAY_NT'"'Do you have a coupon?' Vanessa demands. You admit you do n' @@ -17236,14 +17239,14 @@ ROOT_NT VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'the infection color property' UNPARSED_NOUN_NT'referring to an ice cream cone' - IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 4} {imperative definition: 843} + IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 4} {imperative definition: 844} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked eating the noun' {unit: 4} INVOCATION_NT'try the person asked eating the noun' {phrase invoked: } RVALUE_CONTEXT_NT'person asked eating the noun' {token to be parsed against: TEST_VALUE_NT'action'} {required: action} CONSTANT_NT'person asked eating the noun' {kind: action} {explicit action: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 4} {imperative definition: 844} + IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 4} {imperative definition: 845} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is half-eaten' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is half-eaten' @@ -17270,7 +17273,7 @@ ROOT_NT INVOCATION_NT'"."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} - IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 4} {imperative definition: 845} + IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 4} {imperative definition: 846} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked] pops the end of [the noun] into [if ' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -17310,7 +17313,7 @@ ROOT_NT RVALUE_CONTEXT_NT'" mouth and swallows."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" mouth and swallows."' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 4} {imperative definition: 846} + IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 4} {imperative definition: 847} CODE_BLOCK_NT CODE_BLOCK_NT'say "[if half-eaten]half-eaten [end if][infection color] "' {control structure: SAY} INVOCATION_LIST_SAY_NT'if half-eaten' @@ -17334,7 +17337,7 @@ ROOT_NT RVALUE_CONTEXT_NT'" "' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" "' {kind: text} HEADING_NT'section 2 - infection rules' {heading 5} {under: H5'section 2 - infection rules'} {unit: 4} - IMPERATIVE_NT'this is the infection rule' {unit: 4} {imperative definition: 847} + IMPERATIVE_NT'this is the infection rule' {unit: 4} {imperative definition: 848} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if an infected person ( called typhoid mary ) can see a clea' {colon_block_command} {unit: 4} {indent: 1} @@ -17367,7 +17370,7 @@ ROOT_NT COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} ALLOWED_NT'has' {refined} UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined} - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 848} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 849} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the player is infected' {unit: 4} {colon_block_command} @@ -17380,13 +17383,13 @@ ROOT_NT INVOCATION_NT'"You feel itchy."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"You feel itchy."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"You feel itchy."' {kind: text} - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 849} IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 850} - IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 851} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 851} + IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 852} CODE_BLOCK_NT INVOCATION_LIST_NT'now right hand status line is "Sick: [number of infected peo' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'right hand status line is "Sick: [number of infected people]' - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 852} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 853} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if every person is infected' {unit: 4} {colon_block_command} @@ -17416,7 +17419,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'sneezing on' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'check sneezing on' {unit: 4} {imperative definition: 853} + IMPERATIVE_NT'check sneezing on' {unit: 4} {imperative definition: 854} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the player is clean' {unit: 4} {colon_block_command} @@ -17458,19 +17461,19 @@ ROOT_NT RVALUE_CONTEXT_NT'" cannot be infected."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" cannot be infected."' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out sneezing on' {unit: 4} {imperative definition: 854} + IMPERATIVE_NT'carry out sneezing on' {unit: 4} {imperative definition: 855} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is infected' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is infected' INVOCATION_LIST_NT'now the infection color of the noun is a random infection co' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the infection color of the noun is a random infection color' - IMPERATIVE_NT'carry out someone sneezing on' {unit: 4} {imperative definition: 855} + IMPERATIVE_NT'carry out someone sneezing on' {unit: 4} {imperative definition: 856} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is infected' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is infected' INVOCATION_LIST_NT'now the infection color of the noun is a random infection co' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the infection color of the noun is a random infection color' - IMPERATIVE_NT'report sneezing on' {unit: 4} {imperative definition: 856} + IMPERATIVE_NT'report sneezing on' {unit: 4} {imperative definition: 857} CODE_BLOCK_NT CODE_BLOCK_NT'say "Unable to control yourself, you sneeze on [noun]."' {control structure: SAY} INVOCATION_LIST_SAY_NT'"Unable to control yourself, you sneeze on "' @@ -17485,7 +17488,7 @@ ROOT_NT INVOCATION_NT'"."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} - IMPERATIVE_NT'report someone sneezing on' {unit: 4} {imperative definition: 857} + IMPERATIVE_NT'report someone sneezing on' {unit: 4} {imperative definition: 858} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The person asked] sneezes on [if the noun is the playe' {control structure: SAY} INVOCATION_LIST_SAY_NT'the person asked' @@ -17536,7 +17539,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'injecting it with' UNPARSED_NOUN_NT'applying to two things' - IMPERATIVE_NT'check injecting it with' {unit: 4} {imperative definition: 858} + IMPERATIVE_NT'check injecting it with' {unit: 4} {imperative definition: 859} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the second noun is not the syringe' {unit: 4} {indent: 1} {colon_block_command} @@ -17582,18 +17585,18 @@ ROOT_NT RVALUE_CONTEXT_NT'" is not infected, and the syringe contains a cure, not a va' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" is not infected, and the syringe contains a cure, not a va' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out injecting it with' {unit: 4} {imperative definition: 859} + IMPERATIVE_NT'carry out injecting it with' {unit: 4} {imperative definition: 860} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is clean' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is clean' - IMPERATIVE_NT'after injecting the player with something' {unit: 4} {imperative definition: 860} + IMPERATIVE_NT'after injecting the player with something' {unit: 4} {imperative definition: 861} CODE_BLOCK_NT CODE_BLOCK_NT'say "You inject yourself, wincing at the sting. But the itch' {control structure: SAY} INVOCATION_LIST_SAY_NT'"You inject yourself, wincing at the sting. But the itching ' INVOCATION_NT'"You inject yourself, wincing at the sting. But the itching ' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"You inject yourself, wincing at the sting. But the itching ' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"You inject yourself, wincing at the sting. But the itching ' {kind: text} - IMPERATIVE_NT'report injecting it with' {unit: 4} {imperative definition: 861} + IMPERATIVE_NT'report injecting it with' {unit: 4} {imperative definition: 862} CODE_BLOCK_NT CODE_BLOCK_NT'say "You inject [the noun], who is now cured (but could easi' {control structure: SAY} INVOCATION_LIST_SAY_NT'"You inject "' @@ -17636,7 +17639,7 @@ ROOT_NT VERB_NT'translates as' {verb 'translate' 3p s act IS_TENSE +ve} {prep1: as} {special meaning: use-translates} UNPARSED_NOUN_NT'sequential action' UNPARSED_NOUN_NT'(- Constant SEQUENTIAL_ACTION; ' - IMPERATIVE_NT'before going through a closed door ( called the blocking doo' {unit: 3} {imperative definition: 862} + IMPERATIVE_NT'before going through a closed door ( called the blocking doo' {unit: 3} {imperative definition: 863} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -17666,7 +17669,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 2} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before locking an open thing ( called the door ajar ) with s' {unit: 3} {imperative definition: 863} + IMPERATIVE_NT'before locking an open thing ( called the door ajar ) with s' {unit: 3} {imperative definition: 864} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -17696,7 +17699,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 2} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before locking keylessly an open thing ( called the door aja' {unit: 3} {imperative definition: 864} + IMPERATIVE_NT'before locking keylessly an open thing ( called the door aja' {unit: 3} {imperative definition: 865} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -17726,7 +17729,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 2} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before opening a locked thing ( called the sealed chest ) ( ' {unit: 3} {imperative definition: 865} + IMPERATIVE_NT'before opening a locked thing ( called the sealed chest ) ( ' {unit: 3} {imperative definition: 866} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -17756,7 +17759,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 2} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before someone trying going through a closed door ( called t' {unit: 3} {imperative definition: 866} + IMPERATIVE_NT'before someone trying going through a closed door ( called t' {unit: 3} {imperative definition: 867} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked trying opening the blocking door' {unit: 3} INVOCATION_NT'try the person asked trying opening the blocking door' {phrase invoked: } @@ -17770,7 +17773,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 1} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before someone trying locking an open thing ( called the doo' {unit: 3} {imperative definition: 867} + IMPERATIVE_NT'before someone trying locking an open thing ( called the doo' {unit: 3} {imperative definition: 868} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked trying closing the door ajar' {unit: 3} INVOCATION_NT'try the person asked trying closing the door ajar' {phrase invoked: } @@ -17784,7 +17787,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 1} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before someone trying locking keylessly an open thing ( call' {unit: 3} {imperative definition: 868} + IMPERATIVE_NT'before someone trying locking keylessly an open thing ( call' {unit: 3} {imperative definition: 869} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked trying closing the door ajar' {unit: 3} INVOCATION_NT'try the person asked trying closing the door ajar' {phrase invoked: } @@ -17798,7 +17801,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'stop the action' {unit: 3} {results_from_splitting} {indent: 1} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'before someone trying opening a locked thing ( called the se' {unit: 3} {imperative definition: 869} + IMPERATIVE_NT'before someone trying opening a locked thing ( called the se' {unit: 3} {imperative definition: 870} CODE_BLOCK_NT INVOCATION_LIST_NT'try the person asked trying unlocking keylessly the sealed c' {unit: 3} INVOCATION_NT'try the person asked trying unlocking keylessly the sealed c' {phrase invoked: } @@ -17814,7 +17817,7 @@ ROOT_NT INVOCATION_NT'stop the action' {phrase invoked: } HEADING_NT'volume 2 - default locking and unlocking' {heading 1} {under: H1'volume 2 - default locking and unlocking'} {unit: 3} HEADING_NT'part 1 - the matching key rule' {heading 3} {under: H3'part 1 - the matching key rule'} {unit: 3} - IMPERATIVE_NT'this is the need a matching key rule' {unit: 3} {imperative definition: 870} + IMPERATIVE_NT'this is the need a matching key rule' {unit: 3} {imperative definition: 871} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked encloses something ( called item ) which' {colon_block_command} {unit: 3} {indent: 1} @@ -17855,7 +17858,7 @@ ROOT_NT NONLOCAL_VARIABLE_NT'noun' {nonlocal: 'noun'(var)object}{meaning: {noun = VARIABLE_MC}} INVOCATION_LIST_NT'stop the action' {unit: 3} {indent: 2} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'to say key-refusal for ( locked-thing - an object )' {unit: 3} {imperative definition: 871} + IMPERATIVE_NT'to say key-refusal for ( locked-thing - an object )' {unit: 3} {imperative definition: 872} CODE_BLOCK_NT INVOCATION_LIST_NT'carry out the refusing keys activity with the locked-thing' {unit: 3} INVOCATION_NT'carry out the refusing keys activity with the locked-thing' {phrase invoked: } {kind variable declarations: K=object} @@ -17867,14 +17870,14 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-activity} UNPARSED_NOUN_NT'refusing keys of something' UNPARSED_NOUN_NT'an activity' - IMPERATIVE_NT'rule for refusing keys of something ( called locked-thing ) ' {unit: 3} {imperative definition: 872} + IMPERATIVE_NT'rule for refusing keys of something ( called locked-thing ) ' {unit: 3} {imperative definition: 873} CODE_BLOCK_NT CODE_BLOCK_NT'say "[We] [lack] a key that fits [the locked-thing]." ( a )' {control structure: SAY} INVOCATION_LIST_SAY_NT'"[We] [lack] a key that fits [the locked-thing]." ( a )' INVOCATION_NT'"[We] [lack] a key that fits [the locked-thing]." ( a )' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"[We] [lack] a key that fits [the locked-thing]." ( a )' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"[We] [lack] a key that fits [the locked-thing]." ( a )' {kind: text} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 873} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 874} DEFN_CONT_NT'a thing is key-accessible' {unit: 3} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -17937,7 +17940,7 @@ ROOT_NT VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"open [a lockable thing] with [something]"' UNPARSED_NOUN_NT'unlocking it with' - IMPERATIVE_NT'check unlocking it with ( this is the must be able to reach ' {unit: 3} {imperative definition: 874} + IMPERATIVE_NT'check unlocking it with ( this is the must be able to reach ' {unit: 3} {imperative definition: 875} CODE_BLOCK_NT INVOCATION_LIST_NT'abide by the must have accessible the second noun rule' {unit: 3} INVOCATION_NT'abide by the must have accessible the second noun rule' {phrase invoked: } @@ -17947,7 +17950,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: positive} {special meaning: rule-listed-in} UNPARSED_NOUN_NT'the right second rule' UNPARSED_NOUN_NT'instead of the can't unlock without the correct key rule in ' - IMPERATIVE_NT'this is the right second rule' {unit: 3} {imperative definition: 875} + IMPERATIVE_NT'this is the right second rule' {unit: 3} {imperative definition: 876} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the second noun does not unlock the noun' {colon_block_command} {unit: 3} {indent: 1} @@ -17989,7 +17992,7 @@ ROOT_NT PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'object' {indefinite 'an' n/m/f nom/acc s} UNPARSED_NOUN_NT'key unlocked with' {definite 'the' n/m/f s/p nom/acc} - IMPERATIVE_NT'check an actor unlocking keylessly ( this is the check keyle' {unit: 3} {imperative definition: 876} + IMPERATIVE_NT'check an actor unlocking keylessly ( this is the check keyle' {unit: 3} {imperative definition: 877} CODE_BLOCK_NT INVOCATION_LIST_NT'abide by the can't unlock without a lock rule' {unit: 3} INVOCATION_NT'abide by the can't unlock without a lock rule' {phrase invoked: } @@ -18005,7 +18008,7 @@ ROOT_NT CONSTANT_NT'need a matching key rule' {kind: rule} {rule: need a matching key rule}{meaning: {need a matching key rule = MISCELLANEOUS_MC}} INVOCATION_LIST_NT'now the key unlocked with is the second noun' {unit: 3} {control structure: NOW} CONDITION_CONTEXT_NT'the key unlocked with is the second noun' - IMPERATIVE_NT'carry out an actor unlocking keylessly ( this is the standar' {unit: 3} {imperative definition: 877} + IMPERATIVE_NT'carry out an actor unlocking keylessly ( this is the standar' {unit: 3} {imperative definition: 878} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -18055,7 +18058,7 @@ ROOT_NT UNPARSED_NOUN_NT'"lock [a lockable thing] with [something]"' UNPARSED_NOUN_NT'locking it with' - IMPERATIVE_NT'check locking it with' {unit: 3} {imperative definition: 878} + IMPERATIVE_NT'check locking it with' {unit: 3} {imperative definition: 879} CODE_BLOCK_NT INVOCATION_LIST_NT'abide by the must have accessible the second noun rule' {unit: 3} INVOCATION_NT'abide by the must have accessible the second noun rule' {phrase invoked: } @@ -18093,7 +18096,7 @@ ROOT_NT PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'object' {indefinite 'an' n/m/f nom/acc s} UNPARSED_NOUN_NT'key locked with' {definite 'the' n/m/f s/p nom/acc} - IMPERATIVE_NT'check an actor locking keylessly ( this is the check keyless' {unit: 3} {imperative definition: 879} + IMPERATIVE_NT'check an actor locking keylessly ( this is the check keyless' {unit: 3} {imperative definition: 880} CODE_BLOCK_NT INVOCATION_LIST_NT'abide by the can't lock without a lock rule' {unit: 3} INVOCATION_NT'abide by the can't lock without a lock rule' {phrase invoked: } @@ -18113,7 +18116,7 @@ ROOT_NT CONSTANT_NT'need a matching key rule' {kind: rule} {rule: need a matching key rule}{meaning: {need a matching key rule = MISCELLANEOUS_MC}} INVOCATION_LIST_NT'now the key locked with is the second noun' {unit: 3} {control structure: NOW} CONDITION_CONTEXT_NT'the key locked with is the second noun' - IMPERATIVE_NT'carry out an actor locking keylessly ( this is the standard ' {unit: 3} {imperative definition: 880} + IMPERATIVE_NT'carry out an actor locking keylessly ( this is the standard ' {unit: 3} {imperative definition: 881} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -18154,7 +18157,7 @@ ROOT_NT PROPER_NOUN_NT'A kind of key whose inventory listing changes to reflect the' {refined} {eval: CONSTANT_NT'A kind of key whose inventory listing changes to reflect the' {kind: text}} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 881} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 882} SENTENCE_NT'unbolting relates one passkey to various things' {unit: 3} {classified} VERB_NT'relates' {verb 'relate' 3p s act IS_TENSE +ve} {special meaning: new-relation} UNPARSED_NOUN_NT'unbolting' {new relation: unbolting} @@ -18164,7 +18167,7 @@ ROOT_NT VERB_NT'means' {verb 'mean' 3p s act IS_TENSE +ve} {special meaning: verb-means} UNPARSED_NOUN_NT'to unbolt' UNPARSED_NOUN_NT'unbolting relation' {definite 'the' n/m/f s/p nom/acc} - IMPERATIVE_NT'after printing the name of an identified passkey ( called th' {unit: 3} {imperative definition: 882} + IMPERATIVE_NT'after printing the name of an identified passkey ( called th' {unit: 3} {imperative definition: 883} CODE_BLOCK_NT INVOCATION_LIST_NT'now the prior named object is the item' {unit: 3} {control structure: NOW} CONDITION_CONTEXT_NT'the prior named object is the item' @@ -18173,14 +18176,14 @@ ROOT_NT INVOCATION_NT'" (which [open] [the list of things unbolted by the item])" ' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'" (which [open] [the list of things unbolted by the item])" ' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" (which [open] [the list of things unbolted by the item])" ' {kind: text} - IMPERATIVE_NT'after examining an identified passkey ( this is the passkey ' {unit: 3} {imperative definition: 883} + IMPERATIVE_NT'after examining an identified passkey ( this is the passkey ' {unit: 3} {imperative definition: 884} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The noun] [unlock] [the list of things unbolted by the' {control structure: SAY} INVOCATION_LIST_SAY_NT'"[The noun] [unlock] [the list of things unbolted by the nou' INVOCATION_NT'"[The noun] [unlock] [the list of things unbolted by the nou' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"[The noun] [unlock] [the list of things unbolted by the nou' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"[The noun] [unlock] [the list of things unbolted by the nou' {kind: text} - IMPERATIVE_NT'carry out unlocking something with a passkey ( this is the s' {unit: 3} {imperative definition: 884} + IMPERATIVE_NT'carry out unlocking something with a passkey ( this is the s' {unit: 3} {imperative definition: 885} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the second noun unlocks the noun' {unit: 3} {colon_block_command} @@ -18190,11 +18193,11 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'now the second noun unbolts the noun' {unit: 3} {results_from_splitting} {indent: 1} {control structure: NOW} CONDITION_CONTEXT_NT'the second noun unbolts the noun' - IMPERATIVE_NT'report someone trying unlocking something with a passkey ( t' {unit: 3} {imperative definition: 885} + IMPERATIVE_NT'report someone trying unlocking something with a passkey ( t' {unit: 3} {imperative definition: 886} CODE_BLOCK_NT INVOCATION_LIST_NT'now the second noun unbolts the noun' {unit: 3} {control structure: NOW} CONDITION_CONTEXT_NT'the second noun unbolts the noun' - IMPERATIVE_NT'carry out locking something with a passkey ( this is the sta' {unit: 3} {imperative definition: 886} + IMPERATIVE_NT'carry out locking something with a passkey ( this is the sta' {unit: 3} {imperative definition: 887} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the second noun unlocks the noun' {unit: 3} {colon_block_command} @@ -18204,7 +18207,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'now the second noun unbolts the noun' {unit: 3} {results_from_splitting} {indent: 1} {control structure: NOW} CONDITION_CONTEXT_NT'the second noun unbolts the noun' - IMPERATIVE_NT'report someone trying locking something with a passkey ( thi' {unit: 3} {imperative definition: 887} + IMPERATIVE_NT'report someone trying locking something with a passkey ( thi' {unit: 3} {imperative definition: 888} CODE_BLOCK_NT INVOCATION_LIST_NT'now the second noun unbolts the noun' {unit: 3} {control structure: NOW} CONDITION_CONTEXT_NT'the second noun unbolts the noun' @@ -18222,7 +18225,7 @@ ROOT_NT COMMON_NOUN_NT'keychain' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'keychain'} {creation: << kind=keychain(x) >>} {eval: TEST_VALUE_NT} PROPER_NOUN_NT'specification' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'specification'=text}} PROPER_NOUN_NT'A keychain which can hold the player's keys without forcing ' {refined} {eval: CONSTANT_NT'A keychain which can hold the player's keys without forcing ' {kind: text}} - IMPERATIVE_NT'instead of putting something which is not a passkey on a key' {unit: 3} {imperative definition: 888} + IMPERATIVE_NT'instead of putting something which is not a passkey on a key' {unit: 3} {imperative definition: 889} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The noun] [are] not a key." ( a )' {control structure: SAY} INVOCATION_LIST_SAY_NT'"[The noun] [are] not a key." ( a )' @@ -18233,7 +18236,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: positive} {special meaning: rule-listed-in} UNPARSED_NOUN_NT'the keychain-aware carrying requirements rule' UNPARSED_NOUN_NT'instead of the carrying requirements rule in the action-proc' - IMPERATIVE_NT'this is the keychain-aware carrying requirements rule' {unit: 3} {imperative definition: 889} + IMPERATIVE_NT'this is the keychain-aware carrying requirements rule' {unit: 3} {imperative definition: 890} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if locking or unlocking something with something which is on' {colon_block_command} {unit: 3} {indent: 1} @@ -18255,7 +18258,7 @@ ROOT_NT VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"put [passkey] on [keychain]"' UNPARSED_NOUN_NT'putting it on' - IMPERATIVE_NT'rule for deciding whether all includes passkeys which are on' {unit: 3} {imperative definition: 890} + IMPERATIVE_NT'rule for deciding whether all includes passkeys which are on' {unit: 3} {imperative definition: 891} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the second noun is not a keychain' {unit: 3} {colon_block_command} @@ -18265,7 +18268,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'it does not' {unit: 3} {results_from_splitting} {indent: 1} HEADING_NT'volume 5 - support materials' {heading 1} {under: H1'volume 5 - support materials'} {unit: 3} - IMPERATIVE_NT'this is the noun autotaking rule' {unit: 3} {imperative definition: 891} + IMPERATIVE_NT'this is the noun autotaking rule' {unit: 3} {imperative definition: 892} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -18295,7 +18298,7 @@ ROOT_NT CONSTANT_NT'implicitly taking' {kind: activity on objects} {activity: implicitly taking}{meaning: {implicitly taking = ACTIVITY_MC}} RVALUE_CONTEXT_NT'noun' {token to be parsed against: TEST_VALUE_NT} {required: value} NONLOCAL_VARIABLE_NT'noun' {nonlocal: 'noun'(var)object}{meaning: {noun = VARIABLE_MC}} - IMPERATIVE_NT'this is the second noun autotaking rule' {unit: 3} {imperative definition: 892} + IMPERATIVE_NT'this is the second noun autotaking rule' {unit: 3} {imperative definition: 893} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if sequential action option is active' {colon_block_command} {unit: 3} {indent: 1} @@ -18325,7 +18328,7 @@ ROOT_NT CONSTANT_NT'implicitly taking' {kind: activity on objects} {activity: implicitly taking}{meaning: {implicitly taking = ACTIVITY_MC}} RVALUE_CONTEXT_NT'second noun' {token to be parsed against: TEST_VALUE_NT} {required: value} NONLOCAL_VARIABLE_NT'second noun' {nonlocal: 'second noun'(var)object}{meaning: {second noun = VARIABLE_MC}} - IMPERATIVE_NT'this is the must hold the noun rule' {unit: 3} {imperative definition: 893} + IMPERATIVE_NT'this is the must hold the noun rule' {unit: 3} {imperative definition: 894} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked does not have the noun' {unit: 3} {colon_block_command} @@ -18347,7 +18350,7 @@ ROOT_NT INVOCATION_NT'stop the action' {phrase invoked: } INVOCATION_LIST_NT'make no decision' {unit: 3} INVOCATION_NT'make no decision' {phrase invoked: } - IMPERATIVE_NT'this is the must hold the second noun rule' {unit: 3} {imperative definition: 894} + IMPERATIVE_NT'this is the must hold the second noun rule' {unit: 3} {imperative definition: 895} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked does not have the second noun' {unit: 3} {colon_block_command} @@ -18369,7 +18372,7 @@ ROOT_NT INVOCATION_NT'stop the action' {phrase invoked: } INVOCATION_LIST_NT'make no decision' {unit: 3} INVOCATION_NT'make no decision' {phrase invoked: } - IMPERATIVE_NT'this is the must have accessible the noun rule' {unit: 3} {imperative definition: 895} + IMPERATIVE_NT'this is the must have accessible the noun rule' {unit: 3} {imperative definition: 896} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the noun is not key-accessible' {colon_block_command} {unit: 3} {indent: 1} @@ -18410,7 +18413,7 @@ ROOT_NT INVOCATION_NT'stop the action' {phrase invoked: } INVOCATION_LIST_NT'make no decision' {unit: 3} {indent: 1} INVOCATION_NT'make no decision' {phrase invoked: } - IMPERATIVE_NT'this is the must have accessible the second noun rule' {unit: 3} {imperative definition: 896} + IMPERATIVE_NT'this is the must have accessible the second noun rule' {unit: 3} {imperative definition: 897} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the second noun is not key-accessible' {colon_block_command} {unit: 3} {indent: 1} @@ -18468,7 +18471,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'universal unlocking' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out universal unlocking ( this is the lock debugging r' {unit: 3} {imperative definition: 897} + IMPERATIVE_NT'carry out universal unlocking ( this is the lock debugging r' {unit: 3} {imperative definition: 898} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: RPT} INVOCATION_LIST_NT'repeat with item running through locked things' {colon_block_command} {unit: 3} {indent: 1} @@ -18485,7 +18488,7 @@ ROOT_NT INVOCATION_NT'"Unlocking [the item]." ( a )' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"Unlocking [the item]." ( a )' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"Unlocking [the item]." ( a )' {kind: text} - IMPERATIVE_NT'report universal unlocking ( this is the report universal un' {unit: 3} {imperative definition: 898} + IMPERATIVE_NT'report universal unlocking ( this is the report universal un' {unit: 3} {imperative definition: 899} CODE_BLOCK_NT CODE_BLOCK_NT'say "A loud stereophonic click assures you that everything i' {control structure: SAY} INVOCATION_LIST_SAY_NT'"A loud stereophonic click assures you that everything in th' @@ -18512,7 +18515,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'going toward' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'check going toward' {unit: 4} {imperative definition: 899} + IMPERATIVE_NT'check going toward' {unit: 4} {imperative definition: 900} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the noun is the location' {unit: 4} {colon_block_command} @@ -18534,7 +18537,7 @@ ROOT_NT RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'carry out going toward' {unit: 4} {imperative definition: 900} + IMPERATIVE_NT'carry out going toward' {unit: 4} {imperative definition: 901} CODE_BLOCK_NT INVOCATION_LIST_NT'now the destination of the player is the noun' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the destination of the player is the noun' @@ -18574,7 +18577,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'now the destination of the player is blank' {unit: 4} {results_from_splitting} {indent: 1} {control structure: NOW} CONDITION_CONTEXT_NT'the destination of the player is blank' - IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 4} {imperative definition: 901} + IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 4} {imperative definition: 902} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the destination of the player is the location' {colon_block_command} {unit: 4} {indent: 1} @@ -18605,18 +18608,18 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'stopping' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out stopping' {unit: 4} {imperative definition: 902} + IMPERATIVE_NT'carry out stopping' {unit: 4} {imperative definition: 903} CODE_BLOCK_NT INVOCATION_LIST_NT'now the destination of the player is blank' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the destination of the player is blank' - IMPERATIVE_NT'report stopping' {unit: 4} {imperative definition: 903} + IMPERATIVE_NT'report stopping' {unit: 4} {imperative definition: 904} CODE_BLOCK_NT CODE_BLOCK_NT'say "You stop in your tracks."' {control structure: SAY} INVOCATION_LIST_SAY_NT'"You stop in your tracks."' INVOCATION_NT'"You stop in your tracks."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"You stop in your tracks."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"You stop in your tracks."' {kind: text} - IMPERATIVE_NT'after going to an air-conditioned room' {unit: 4} {imperative definition: 904} + IMPERATIVE_NT'after going to an air-conditioned room' {unit: 4} {imperative definition: 905} CODE_BLOCK_NT CODE_BLOCK_NT'say "You step into the mercifully air-conditioned surroundin' {control structure: SAY} INVOCATION_LIST_SAY_NT'"You step into the mercifully air-conditioned surroundings o' @@ -18625,7 +18628,7 @@ ROOT_NT CONSTANT_NT'"You step into the mercifully air-conditioned surroundings o' {kind: text} INVOCATION_LIST_NT'continue the action' {unit: 4} INVOCATION_NT'continue the action' {phrase invoked: } - IMPERATIVE_NT'after going from an air-conditioned room' {unit: 4} {imperative definition: 905} + IMPERATIVE_NT'after going from an air-conditioned room' {unit: 4} {imperative definition: 906} CODE_BLOCK_NT CODE_BLOCK_NT'say "You emerge from the air-conditioning into heat like a w' {control structure: SAY} INVOCATION_LIST_SAY_NT'"You emerge from the air-conditioning into heat like a wall.' @@ -18634,7 +18637,7 @@ ROOT_NT CONSTANT_NT'"You emerge from the air-conditioning into heat like a wall.' {kind: text} INVOCATION_LIST_NT'continue the action' {unit: 4} INVOCATION_NT'continue the action' {phrase invoked: } - IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 4} {imperative definition: 906} + IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 4} {imperative definition: 907} CODE_BLOCK_NT CODE_BLOCK_NT'say "The air-conditioning hums softly."' {control structure: SAY} INVOCATION_LIST_SAY_NT'"The air-conditioning hums softly."' @@ -18682,7 +18685,7 @@ ROOT_NT PROPER_NOUN_NT'felt door' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'felt door'} {eval: CONSTANT_NT'felt door' {kind: door} {instance: I90'felt door'} {enumeration: 0}} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'"It has a prominent lock, designed for an old-fashioned key.' {refined} {eval: CONSTANT_NT'"It has a prominent lock, designed for an old-fashioned key.' {kind: text}} - IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 4} {imperative definition: 907} + IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 4} {imperative definition: 908} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The audience] looks a little non-plussed when you lock' {control structure: SAY} INVOCATION_LIST_SAY_NT'the audience' @@ -18762,11 +18765,11 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'slot' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'slot'} {eval: CONSTANT_NT'slot' {kind: object} {instance: I97'slot'} {enumeration: 0}} COMMON_NOUN_NT'container' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'container'} {creation: << kind=container(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'carry out inserting something into the slot' {unit: 4} {imperative definition: 908} + IMPERATIVE_NT'carry out inserting something into the slot' {unit: 4} {imperative definition: 909} CODE_BLOCK_NT INVOCATION_LIST_NT'now the noun is nowhere' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the noun is nowhere' - IMPERATIVE_NT'report inserting something into the slot' {unit: 4} {imperative definition: 909} + IMPERATIVE_NT'report inserting something into the slot' {unit: 4} {imperative definition: 910} CODE_BLOCK_NT CODE_BLOCK_NT'say "[The noun] falls out of sight, and you know you will ne' {control structure: SAY} INVOCATION_LIST_SAY_NT'the noun' @@ -18800,7 +18803,7 @@ ROOT_NT AND_NT'and' {refined} ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: << lockable(x) ^ lockable(x) >>} ADJECTIVE_NT'unlocked' {refined} {predicate: unlocked} {creation: << unlocked(x) ^ unlocked(x) >>} - IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 4} {imperative definition: 910} + IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 4} {imperative definition: 911} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked is the player' {colon_block_command} {unit: 4} {indent: 1} @@ -18948,7 +18951,7 @@ ROOT_NT VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"glass"' UNPARSED_NOUN_NT'the box' - IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 4} {imperative definition: 911} + IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 4} {imperative definition: 912} CODE_BLOCK_NT CODE_BLOCK_NT'say "You hit the emergency box, which shatters open."' {control structure: SAY} INVOCATION_LIST_SAY_NT'"You hit the emergency box, which shatters open."' @@ -18957,7 +18960,7 @@ ROOT_NT CONSTANT_NT'"You hit the emergency box, which shatters open."' {kind: text} INVOCATION_LIST_NT'now the emergency box is open' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the emergency box is open' - IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 4} {imperative definition: 912} + IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 4} {imperative definition: 913} CODE_BLOCK_NT CODE_BLOCK_NT'say "The glass has already been thoroughly broken."' {control structure: SAY} INVOCATION_LIST_SAY_NT'"The glass has already been thoroughly broken."' @@ -19066,7 +19069,7 @@ ROOT_NT SENTENCE_NT'use full-length room descriptions' {unit: 4} {classified} VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use} UNPARSED_NOUN_NT'full-length room descriptions' - IMPERATIVE_NT'after looking in an outdoors room' {unit: 4} {imperative definition: 913} + IMPERATIVE_NT'after looking in an outdoors room' {unit: 4} {imperative definition: 914} CODE_BLOCK_NT INVOCATION_LIST_NT'let started printing be false' {unit: 4} {indent: 1} INVOCATION_NT'let started printing be false' {phrase invoked: } @@ -19252,7 +19255,7 @@ ROOT_NT CODE_BLOCK_NT'say paragraph break' {control structure: SAY} INVOCATION_LIST_SAY_NT'paragraph break' INVOCATION_NT'paragraph break' {phrase invoked: } - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 914} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 915} DEFN_CONT_NT'a door is proximate' {unit: 4} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -19273,7 +19276,7 @@ ROOT_NT INVOCATION_NT'yes' {phrase invoked: } INVOCATION_LIST_NT'no' {unit: 4} INVOCATION_NT'no' {phrase invoked: } - IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 4} {imperative definition: 915} + IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 4} {imperative definition: 916} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the player can see a door ( called nearest exit )' {unit: 4} {indent: 1} {colon_block_command} @@ -19542,7 +19545,7 @@ ROOT_NT PROPER_NOUN_NT'ned' {refined} {refers: infs'ned'} {eval: CONSTANT_NT'ned' {kind: man} {instance: I166'ned'} {enumeration: 0}} RELATIONSHIP_NT'owns' {meaning: ownership-r} {refined} PROPER_NOUN_NT'movie rental' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'movie rental store'} {eval: CONSTANT_NT'movie rental store' {kind: object} {instance: I104'movie rental store'} {enumeration: 0}} - IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 4} {imperative definition: 916} + IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 4} {imperative definition: 917} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the target owns the location of the target' {unit: 4} {colon_block_command} @@ -19561,7 +19564,7 @@ ROOT_NT COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {refined} {eval: CONSTANT_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {kind: text}} - IMPERATIVE_NT'after examining another person who is carrying something' {unit: 4} {imperative definition: 917} + IMPERATIVE_NT'after examining another person who is carrying something' {unit: 4} {imperative definition: 918} CODE_BLOCK_NT CODE_BLOCK_NT'say "[if the noun is female]She[otherwise]He[end if] is carr' {control structure: SAY} INVOCATION_LIST_SAY_NT'if the noun is female' @@ -19592,7 +19595,7 @@ ROOT_NT INVOCATION_NT'"."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"."' {kind: text} - IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 918} + IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 919} CODE_BLOCK_NT INVOCATION_LIST_NT'let patient zero be a random other person' {unit: 4} INVOCATION_NT'let patient zero be a random other person' {phrase invoked: } @@ -19614,7 +19617,7 @@ ROOT_NT PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'conversation' - IMPERATIVE_NT'instead of asking someone about something' {unit: 4} {imperative definition: 919} + IMPERATIVE_NT'instead of asking someone about something' {unit: 4} {imperative definition: 920} CODE_BLOCK_NT INVOCATION_LIST_NT'let the source be the conversation of the noun' {unit: 4} {indent: 1} INVOCATION_NT'let the source be the conversation of the noun' {phrase invoked: } @@ -19679,7 +19682,7 @@ ROOT_NT INVOCATION_NT'" stares at you blankly."' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'" stares at you blankly."' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'" stares at you blankly."' {kind: text} - IMPERATIVE_NT'instead of telling someone about something' {unit: 4} {imperative definition: 920} + IMPERATIVE_NT'instead of telling someone about something' {unit: 4} {imperative definition: 921} CODE_BLOCK_NT INVOCATION_LIST_NT'try asking the noun about it' {unit: 4} INVOCATION_NT'try asking the noun about it' {phrase invoked: } @@ -19693,7 +19696,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'recalling conversations' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out recalling conversations' {unit: 4} {imperative definition: 921} + IMPERATIVE_NT'carry out recalling conversations' {unit: 4} {imperative definition: 922} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: RPT} INVOCATION_LIST_NT'repeat with speaker running through other people' {colon_block_command} {unit: 4} {indent: 1} @@ -19802,7 +19805,7 @@ ROOT_NT PROPER_NOUN_NT'conversation' {refined} {eval: CONSTANT_NT {kind: table names valued property} {property: 'conversation'=table name}} PROPER_NOUN_NT'table of vanessa chatter' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT'table of vanessa chatter' {kind: table name} {table: table_data}{meaning: {table of vanessa chatter = TABLE_MC}}} TABLE_NT'table of vanessa chatter topic reply summary turn stamp char' {unit: 4} - IMPERATIVE_NT'after reading a command' {unit: 4} {imperative definition: 922} + IMPERATIVE_NT'after reading a command' {unit: 4} {imperative definition: 923} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: WHI} INVOCATION_LIST_NT'while player's command includes "the"' {colon_block_command} {unit: 4} {indent: 1} @@ -19867,7 +19870,7 @@ ROOT_NT PROPER_NOUN_NT'"sashay"' {refined} {eval: CONSTANT_NT'"sashay"' {kind: text}} TABLE_NT'table of visible exits character second third heading chosen' {unit: 4} TABLE_NT'table of visible entrances character second third heading ch' {unit: 4} - IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 4} {imperative definition: 923} + IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 4} {imperative definition: 924} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: RPT} INVOCATION_LIST_NT'repeat through current table' {colon_block_command} {unit: 4} {indent: 1} @@ -19877,7 +19880,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'blank out the whole row' {unit: 4} {indent: 2} INVOCATION_NT'blank out the whole row' {phrase invoked: } - IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 4} {imperative definition: 924} + IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 4} {imperative definition: 925} CODE_BLOCK_NT INVOCATION_LIST_NT'let next direction be up' {unit: 4} {indent: 1} INVOCATION_NT'let next direction be up' {phrase invoked: } @@ -19963,7 +19966,7 @@ ROOT_NT PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'last opener' - IMPERATIVE_NT'report someone opening a door' {unit: 4} {imperative definition: 925} + IMPERATIVE_NT'report someone opening a door' {unit: 4} {imperative definition: 926} CODE_BLOCK_NT INVOCATION_LIST_NT'now group size is 1' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'group size is 1' @@ -20008,7 +20011,7 @@ ROOT_NT INVOCATION_LIST_SAY_NT'run paragraph on' INVOCATION_NT'run paragraph on' {phrase invoked: } CODE_BLOCK_NT {control structure: INS} - IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 4} {imperative definition: 926} + IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 4} {imperative definition: 927} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked is not the last opener of the route' {unit: 4} {colon_block_command} @@ -20086,11 +20089,11 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'last thing named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last thing named' {nonlocal: 'last thing named'(var)thing}} {created here} COMMON_NOUN_NT'thing that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=things variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 4} {imperative definition: 927} + IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 4} {imperative definition: 928} CODE_BLOCK_NT INVOCATION_LIST_NT'now the last thing named is the target' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the last thing named is the target' - IMPERATIVE_NT'report someone going a direction' {unit: 4} {imperative definition: 928} + IMPERATIVE_NT'report someone going a direction' {unit: 4} {imperative definition: 929} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the person asked is in the location' {unit: 4} {colon_block_command} @@ -20124,7 +20127,7 @@ ROOT_NT CONDITION_CONTEXT_NT'heading chosen entry is the noun' INVOCATION_LIST_NT'stop the action' {unit: 4} INVOCATION_NT'stop the action' {phrase invoked: } - IMPERATIVE_NT'this is the movement reporting rule' {unit: 4} {imperative definition: 929} + IMPERATIVE_NT'this is the movement reporting rule' {unit: 4} {imperative definition: 930} CODE_BLOCK_NT INVOCATION_LIST_NT'sort the table of visible entrances in heading chosen order' {unit: 4} INVOCATION_NT'sort the table of visible entrances in heading chosen order' {phrase invoked: } @@ -20190,7 +20193,7 @@ ROOT_NT INVOCATION_NT'clear the table of visible exits' {phrase invoked: } RVALUE_CONTEXT_NT'table of visible exits' {token to be parsed against: TEST_VALUE_NT'a table name'} {required: table name} CONSTANT_NT'table of visible exits' {kind: table name} {table: table_data}{meaning: {table of visible exits = TABLE_MC}} - IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 4} {imperative definition: 930} + IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 4} {imperative definition: 931} CODE_BLOCK_NT INVOCATION_LIST_NT'let count be the number of filled rows in the current table' {unit: 4} {indent: 1} INVOCATION_NT'let count be the number of filled rows in the current table' {phrase invoked: } @@ -20629,7 +20632,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'last person named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last person named' {nonlocal: 'last person named'(var)person}} {created here} COMMON_NOUN_NT'person that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 4} {imperative definition: 931} + IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 4} {imperative definition: 932} CODE_BLOCK_NT INVOCATION_LIST_NT'now the last person named is the target' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'the last person named is the target' @@ -20641,7 +20644,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}{meaning: {group size = VARIABLE_MC}}} PROPER_NOUN_NT'1' {refined} {eval: CONSTANT_NT'1' {kind: number} {explicit literal} {number: 1}} - IMPERATIVE_NT'to clear marked people' {unit: 4} {imperative definition: 932} + IMPERATIVE_NT'to clear marked people' {unit: 4} {imperative definition: 933} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: RPT} INVOCATION_LIST_NT'repeat with named party running through people' {colon_block_command} {unit: 4} {indent: 1} @@ -20653,7 +20656,7 @@ ROOT_NT CODE_BLOCK_NT INVOCATION_LIST_NT'now the named party is not marked for listing' {unit: 4} {indent: 2} {control structure: NOW} CONDITION_CONTEXT_NT'the named party is not marked for listing' - IMPERATIVE_NT'before listing nondescript items' {unit: 4} {imperative definition: 933} + IMPERATIVE_NT'before listing nondescript items' {unit: 4} {imperative definition: 934} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the number of people who are marked for listing is 0' {unit: 4} {colon_block_command} @@ -20682,7 +20685,7 @@ ROOT_NT INVOCATION_NT'describe patients' {phrase invoked: } INVOCATION_LIST_NT'now every marked for listing person is not marked for listin' {unit: 4} {control structure: NOW} CONDITION_CONTEXT_NT'every marked for listing person is not marked for listing' - IMPERATIVE_NT'to describe patients' {unit: 4} {imperative definition: 934} + IMPERATIVE_NT'to describe patients' {unit: 4} {imperative definition: 935} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if every marked for listing person is infected and at least ' {colon_block_command} {unit: 4} {indent: 1} @@ -20841,7 +20844,7 @@ ROOT_NT LOCAL_VARIABLE_NT'count' {local: LV"count"-number number} INVOCATION_LIST_NT'clear marked people' {unit: 4} {indent: 1} INVOCATION_NT'clear marked people' {phrase invoked: } - IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 4} {imperative definition: 935} + IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 4} {imperative definition: 936} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if group size is 1' {unit: 4} {colon_block_command} @@ -20876,7 +20879,7 @@ ROOT_NT INVOCATION_NT'"The last"' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"The last"' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"The last"' {kind: text} - IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 4} {imperative definition: 936} + IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 4} {imperative definition: 937} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if group size is 1' {unit: 4} {colon_block_command} @@ -20911,7 +20914,7 @@ ROOT_NT INVOCATION_NT'"The last"' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'"The last"' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'"The last"' {kind: text} - IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 4} {imperative definition: 937} + IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 4} {imperative definition: 938} CODE_BLOCK_NT INVOCATION_LIST_NT'let divider be the number of filled rows in the table of dip' {unit: 4} INVOCATION_NT'let divider be the number of filled rows in the table of dip' {phrase invoked: } @@ -20958,7 +20961,7 @@ ROOT_NT VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} ADJECTIVE_NT'scenery' {refined} {predicate: scenery} {creation: << scenery(x) ^ scenery(x) >>} - IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 4} {imperative definition: 938} + IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 4} {imperative definition: 939} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if index is 0' {colon_block_command} {unit: 4} {indent: 1} @@ -21017,7 +21020,7 @@ ROOT_NT INVOCATION_NT'", "' {phrase invoked: } {kind variable declarations: K=text} RVALUE_CONTEXT_NT'", "' {token to be parsed against: TEST_VALUE_NT} {required: sayable value} CONSTANT_NT'", "' {kind: text} - IMPERATIVE_NT'to say optional comma' {unit: 4} {imperative definition: 939} + IMPERATIVE_NT'to say optional comma' {unit: 4} {imperative definition: 940} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} INVOCATION_LIST_NT'if the serial comma option is active' {colon_block_command} {unit: 4} {indent: 1} diff --git a/inform7/Figures/memory-diagnostics.txt b/inform7/Figures/memory-diagnostics.txt index 6ea76cd8b..d3e37cc8b 100644 --- a/inform7/Figures/memory-diagnostics.txt +++ b/inform7/Figures/memory-diagnostics.txt @@ -1,36 +1,36 @@ -Total memory consumption was 394295K = 385 MB +Total memory consumption was 394291K = 385 MB -60.6% was used for 2005527 objects, in 372397 frames in 299 x 800K = 239200K = 233 MB: +60.6% was used for 2005049 objects, in 372513 frames in 299 x 800K = 239200K = 233 MB: 10.3% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes 7.2% text_stream_array 5187 x 100 = 518700 objects, 29213184 bytes - 4.2% linked_list 30996 objects, 17357760 bytes + 4.2% linked_list 30999 objects, 17359440 bytes 3.9% inter_symbol_array 140 x 1024 = 143360 objects, 16060800 bytes - 2.5% parse_node 129368 objects, 10349440 bytes + 2.5% parse_node 129462 objects, 10356960 bytes 1.8% verb_conjugation 160 objects, 7425280 bytes 1.3% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes 0.8% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes 0.8% inter_name_array 69 x 1000 = 69000 objects, 3314208 bytes 0.6% kind_array 68 x 1000 = 68000 objects, 2722176 bytes 0.5% inter_name_generator_array 53 x 1000 = 53000 objects, 2121696 bytes - 0.5% inter_schema_token 14221 objects, 2047824 bytes - 0.4% inter_package 26565 objects, 1912680 bytes - 0.4% package_request 21137 objects, 1860056 bytes + 0.5% inter_schema_token 14228 objects, 2048832 bytes + 0.4% inter_package 26566 objects, 1912752 bytes + 0.4% package_request 21139 objects, 1860232 bytes 0.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes - 0.4% inter_symbols_table 26565 objects, 1700160 bytes - 0.3% dictionary 33273 objects, 1597104 bytes + 0.4% inter_symbols_table 26566 objects, 1700224 bytes + 0.3% dictionary 33274 objects, 1597152 bytes 0.3% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes 0.3% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes - 0.3% dict_entry_array 402 x 100 = 40200 objects, 1299264 bytes + 0.3% dict_entry_array 396 x 100 = 39600 objects, 1279872 bytes 0.2% map_data 670 objects, 1125600 bytes - 0.2% id_body 940 objects, 1075360 bytes + 0.2% id_body 941 objects, 1076504 bytes 0.2% adjective_meaning 202 objects, 1000304 bytes - 0.2% excerpt_meaning 3099 objects, 966888 bytes + 0.2% excerpt_meaning 3100 objects, 967200 bytes 0.2% production 3872 objects, 898304 bytes 0.2% ptoken 8382 objects, 871728 bytes 0.2% grammatical_usage 3611 objects, 866640 bytes 0.2% individual_form 2561 objects, 860496 bytes - 0.2% inter_schema_node 8941 objects, 858336 bytes + 0.2% inter_schema_node 8945 objects, 858720 bytes 0.1% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes 0.1% local_variable_array 47 x 100 = 4700 objects, 452704 bytes ---- verb_usage 1128 objects, 388032 bytes @@ -49,7 +49,7 @@ Total memory consumption was 394295K = 385 MB ---- nascent_array 2124 objects, 135936 bytes ---- documentation_ref 1273 objects, 112024 bytes ---- inference 1703 objects, 108992 bytes - ---- imperative_defn 1376 objects, 99072 bytes + ---- imperative_defn 1377 objects, 99144 bytes ---- inter_tree 6 objects, 98448 bytes ---- noun_usage 2402 objects, 96080 bytes ---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes @@ -57,14 +57,14 @@ Total memory consumption was 394295K = 385 MB ---- lexical_cluster 2517 objects, 80544 bytes ---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes ---- kind_variable_declaration 1652 objects, 79296 bytes - ---- inter_schema 1507 objects, 72336 bytes + ---- inter_schema 1508 objects, 72384 bytes ---- label_namespace 1468 objects, 70464 bytes ---- rulebook 407 objects, 68376 bytes ---- spatial_data 670 objects, 64320 bytes ---- kind_macro_definition 9 objects, 62280 bytes ---- booking 860 objects, 61920 bytes - ---- scenes_rcd_data 1880 objects, 60160 bytes - ---- actions_rcd_data 1880 objects, 60160 bytes + ---- scenes_rcd_data 1882 objects, 60224 bytes + ---- actions_rcd_data 1882 objects, 60224 bytes ---- command_grammar 130 objects, 58240 bytes ---- kind_constructor 77 objects, 57904 bytes ---- table 7 objects, 56672 bytes @@ -78,7 +78,7 @@ Total memory consumption was 394295K = 385 MB ---- text_substitution 436 objects, 41856 bytes ---- anl_clause_array 1 x 1000 objects, 40032 bytes ---- activity_list_array 1 x 1000 objects, 40032 bytes - ---- to_family_data 496 objects, 39680 bytes + ---- to_family_data 497 objects, 39760 bytes ---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes ---- parsing_data 670 objects, 37520 bytes ---- heading 198 objects, 36432 bytes @@ -237,15 +237,15 @@ Total memory consumption was 394295K = 385 MB 39.3% was used for memory not allocated for objects: - 20.5% text stream storage 82849772 bytes in 536639 claims - 4.5% dictionary storage 18276864 bytes in 33273 claims + 20.5% text stream storage 82845592 bytes in 536662 claims + 4.5% dictionary storage 18277376 bytes in 33274 claims ---- sorting 736 bytes in 3 claims 1.7% source text 7200000 bytes in 3 claims 2.6% source text details 10800000 bytes in 2 claims ---- documentation fragments 262144 bytes in 1 claim ---- linguistic stock array 81920 bytes in 2 claims ---- small word set array 105600 bytes in 22 claims - 1.0% inter symbols storage 4176064 bytes in 27679 claims + 1.0% inter symbols storage 4176192 bytes in 27680 claims 4.1% inter bytecode storage 16802732 bytes in 14 claims 4.0% inter links storage 16174208 bytes in 266 claims ---- inter tree location list storage 191232 bytes in 32 claims @@ -255,5 +255,5 @@ Total memory consumption was 394295K = 385 MB ---- code generation workspace for objects 1336 bytes in 4 claims ---- emitter array storage 161792 bytes in 2062 claims -18.4% was overhead - 74393000 bytes = 72649K = 70 MB +18.4% was overhead - 74399656 bytes = 72655K = 70 MB diff --git a/inform7/Figures/preform-summary.txt b/inform7/Figures/preform-summary.txt index 9ba886f0b..c05366bed 100644 --- a/inform7/Figures/preform-summary.txt +++ b/inform7/Figures/preform-summary.txt @@ -1,4 +1,4 @@ - hits 2097/23838 nti 14 constraint (none) extremes [1, infinity) + hits 2097/23834 nti 14 constraint (none) extremes [1, infinity) English: (@1)=1 (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1] @@ -12,14 +12,14 @@ room is mostly unable to sense, or interact with, anything in a different room. Rooms are arranged in a map.') constraint (none) extremes [1, 1] =1 - (hits 11/9911) (matched: 'plus infinity') constraint (none) extremes [1, infinity) + (hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity) (@1)=1 (hits 78/196) (matched: 'false') constraint CS = {8} extremes [1, 1] =1 - (hits 0/3281) constraint DS = {10} extremes [2, infinity) + (hits 0/3275) constraint DS = {10} extremes [2, infinity) (@1)unicode =1 - (hits 0/4183) constraint DS = {14} extremes [2, infinity) + (hits 0/4180) constraint DS = {14} extremes [2, infinity) =1 - (hits 0/3738) constraint DW = {11, 12, 13} extremes [2, 5] + (hits 0/3737) constraint DW = {11, 12, 13} extremes [2, 5] =1 - (hits 0/9822) constraint (none) extremes [1, infinity) + (hits 0/9820) constraint (none) extremes [1, infinity) diff --git a/inform7/Figures/syntax-summary.txt b/inform7/Figures/syntax-summary.txt index 56fa5da58..17b6d1568 100644 --- a/inform7/Figures/syntax-summary.txt +++ b/inform7/Figures/syntax-summary.txt @@ -28,8 +28,8 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'asking for information' UNPARSED_NOUN_NT'out of world' - IMPERATIVE_NT'carry out asking for information' {unit: 4} {imperative definition: 798} - IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 799} + IMPERATIVE_NT'carry out asking for information' {unit: 4} {imperative definition: 799} + IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 800} HEADING_NT'section 1 - errands' {heading 5} {under: H5'section 1 - errands'} {unit: 4} SENTENCE_NT'the current actor is a person which varies' {unit: 4} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} @@ -39,8 +39,8 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'current owner' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'current owner' {nonlocal: 'current owner'(var)person}} {created here} COMMON_NOUN_NT'person which varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 800} IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 801} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 802} SENTENCE_NT'a person can be active or passive' {unit: 4} {classified} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} @@ -56,34 +56,34 @@ ROOT_NT VERB_NT'are' {verb 'be' 3p p act IS_TENSE +ve} PROPER_NOUN_NT'character movement rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: character movement}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'the first character movement rule' {unit: 4} {imperative definition: 802} - IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 803} + IMPERATIVE_NT'the first character movement rule' {unit: 4} {imperative definition: 803} IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 804} - IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 4} {imperative definition: 805} - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 806} + IMPERATIVE_NT'a character movement rule' {unit: 4} {imperative definition: 805} + IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 4} {imperative definition: 806} IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 807} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 808} SENTENCE_NT'the shopowner rules is a rulebook' {unit: 4} {classified} {clears pronouns} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'shopowner rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopowner}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 808} - IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 4} {imperative definition: 809} - IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 4} {imperative definition: 810} - IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 811} + IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 809} + IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 4} {imperative definition: 810} + IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 4} {imperative definition: 811} + IMPERATIVE_NT'a shopowner rule' {unit: 4} {imperative definition: 812} SENTENCE_NT'filing is an action applying to one thing' {unit: 4} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'filing' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 4} {imperative definition: 812} - IMPERATIVE_NT'carry out someone filing' {unit: 4} {imperative definition: 813} - IMPERATIVE_NT'report someone filing' {unit: 4} {imperative definition: 814} + IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 4} {imperative definition: 813} + IMPERATIVE_NT'carry out someone filing' {unit: 4} {imperative definition: 814} + IMPERATIVE_NT'report someone filing' {unit: 4} {imperative definition: 815} SENTENCE_NT'the shopper rules is a rulebook' {unit: 4} {classified} {clears pronouns} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'shopper rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopper}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 815} IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 816} - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 817} + IMPERATIVE_NT'a shopper rule' {unit: 4} {imperative definition: 817} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 818} DEFN_CONT_NT'a room is air-conditioned' {unit: 4} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -141,8 +141,8 @@ ROOT_NT COMMON_NOUN_NT'artwork' {indefinite 'an' n/m/f nom/acc s} {refined} {creation: << kind=artwork(x) >>} {refers: infs'artwork'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of an artwork' {unit: 4} {imperative definition: 818} - IMPERATIVE_NT'after printing the name of an artwork' {unit: 4} {imperative definition: 819} + IMPERATIVE_NT'before printing the name of an artwork' {unit: 4} {imperative definition: 819} + IMPERATIVE_NT'after printing the name of an artwork' {unit: 4} {imperative definition: 820} SENTENCE_NT'an artwork can be submitted or reserved' {unit: 4} {classified} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} COMMON_NOUN_NT'an artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} @@ -155,49 +155,49 @@ ROOT_NT COMMON_NOUN_NT'book' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=book(x) >>} {refers: infs'book'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 4} {imperative definition: 820} - IMPERATIVE_NT'carry out someone resolving a book' {unit: 4} {imperative definition: 821} - IMPERATIVE_NT'report someone resolving a book' {unit: 4} {imperative definition: 822} - IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 823} - IMPERATIVE_NT'before grouping together books' {unit: 4} {imperative definition: 824} + IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 4} {imperative definition: 821} + IMPERATIVE_NT'carry out someone resolving a book' {unit: 4} {imperative definition: 822} + IMPERATIVE_NT'report someone resolving a book' {unit: 4} {imperative definition: 823} + IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 824} + IMPERATIVE_NT'before grouping together books' {unit: 4} {imperative definition: 825} SENTENCE_NT'a stamped envelope is a kind of thing' {unit: 4} {classified} {interpretation of subject: infs'book'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'stamped envelope' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=stamped envelope(x) >>} {refers: infs'stamped envelope'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 4} {imperative definition: 825} - IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 4} {imperative definition: 826} - IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 4} {imperative definition: 827} - IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 4} {imperative definition: 828} + IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 4} {imperative definition: 826} + IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 4} {imperative definition: 827} + IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 4} {imperative definition: 828} + IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 4} {imperative definition: 829} SENTENCE_NT'a dvd is a kind of artwork' {unit: 4} {classified} {interpretation of subject: infs'stamped envelope'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'dvd' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=dvd(x) >>} {refers: infs'dvd'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 4} {imperative definition: 829} - IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 4} {imperative definition: 830} - IMPERATIVE_NT'report someone resolving a dvd' {unit: 4} {imperative definition: 831} - IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 4} {imperative definition: 832} - IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 833} - IMPERATIVE_NT'before grouping together dvds' {unit: 4} {imperative definition: 834} + IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 4} {imperative definition: 830} + IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 4} {imperative definition: 831} + IMPERATIVE_NT'report someone resolving a dvd' {unit: 4} {imperative definition: 832} + IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 4} {imperative definition: 833} + IMPERATIVE_NT'before listing contents' {unit: 4} {imperative definition: 834} + IMPERATIVE_NT'before grouping together dvds' {unit: 4} {imperative definition: 835} SENTENCE_NT'approaching is an action applying to one thing' {unit: 4} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'approaching' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'carry out someone approaching' {unit: 4} {imperative definition: 835} + IMPERATIVE_NT'carry out someone approaching' {unit: 4} {imperative definition: 836} SENTENCE_NT'a coupon is a kind of thing' {unit: 4} {classified} {interpretation of subject: infs'dvd'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'coupon' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=coupon(x) >>} {refers: infs'coupon'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 4} {imperative definition: 836} + IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 4} {imperative definition: 837} SENTENCE_NT'the block giving rule is not listed in any rulebook' {unit: 4} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: negative} {special meaning: rule-listed-in} UNPARSED_NOUN_NT'the block giving rule' UNPARSED_NOUN_NT'in any rulebook' - IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 4} {imperative definition: 837} - IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 4} {imperative definition: 838} - IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 4} {imperative definition: 839} + IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 4} {imperative definition: 838} + IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 4} {imperative definition: 839} + IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 4} {imperative definition: 840} SENTENCE_NT'infection color is a kind of value' {unit: 4} {classified} {interpretation of subject: infs'coupon'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'infection color' {refined} {creation: << kind=infection color(x) >>} {refers: infs'object'-k} {eval: TEST_VALUE_NT} {created here} @@ -257,7 +257,7 @@ ROOT_NT AND_NT',' {refined} PROPER_NOUN_NT'saffron silk' {refined} {refers: infs'saffron silk'} {eval: CONSTANT_NT'saffron silk' {kind: infection color} {instance: I86'saffron silk'[infection color]} {enumeration: 25}} {created here} PROPER_NOUN_NT'cookie dough cream' {refined} {refers: infs'cookie dough cream'} {eval: CONSTANT_NT'cookie dough cream' {kind: infection color} {instance: I87'cookie dough cream'[infection color]} {enumeration: 26}} {created here} - IMPERATIVE_NT'to say list of flavors' {unit: 4} {imperative definition: 840} + IMPERATIVE_NT'to say list of flavors' {unit: 4} {imperative definition: 841} SENTENCE_NT'understand "ask vanessa for [flavored ice cream]" as buying ' {unit: 4} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"ask vanessa for [flavored ice cream]"' @@ -270,8 +270,8 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'buying the flavor' UNPARSED_NOUN_NT'applying to one infection color' - IMPERATIVE_NT'check buying the flavor' {unit: 4} {imperative definition: 841} - IMPERATIVE_NT'carry out buying the flavor' {unit: 4} {imperative definition: 842} + IMPERATIVE_NT'check buying the flavor' {unit: 4} {imperative definition: 842} + IMPERATIVE_NT'carry out buying the flavor' {unit: 4} {imperative definition: 843} SENTENCE_NT'understand "ice cream" or "cream" or "ice" or "sherbet" or "' {unit: 4} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"ice cream" or "cream" or "ice" or "sherbet" or "sorbet"' @@ -305,12 +305,12 @@ ROOT_NT VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'the infection color property' UNPARSED_NOUN_NT'referring to an ice cream cone' - IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 4} {imperative definition: 843} - IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 4} {imperative definition: 844} - IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 4} {imperative definition: 845} - IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 4} {imperative definition: 846} + IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 4} {imperative definition: 844} + IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 4} {imperative definition: 845} + IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 4} {imperative definition: 846} + IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 4} {imperative definition: 847} HEADING_NT'section 2 - infection rules' {heading 5} {under: H5'section 2 - infection rules'} {unit: 4} - IMPERATIVE_NT'this is the infection rule' {unit: 4} {imperative definition: 847} + IMPERATIVE_NT'this is the infection rule' {unit: 4} {imperative definition: 848} SENTENCE_NT'a person can be infected or clean' {unit: 4} {classified} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} @@ -323,11 +323,11 @@ ROOT_NT COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} ALLOWED_NT'has' {refined} UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined} - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 848} - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 849} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 849} IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 850} - IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 851} - IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 852} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 851} + IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 852} + IMPERATIVE_NT'every turn' {unit: 4} {imperative definition: 853} SENTENCE_NT'understand "sneeze on [something]" as sneezing on' {unit: 4} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"sneeze on [something]"' @@ -336,11 +336,11 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'sneezing on' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'check sneezing on' {unit: 4} {imperative definition: 853} - IMPERATIVE_NT'carry out sneezing on' {unit: 4} {imperative definition: 854} - IMPERATIVE_NT'carry out someone sneezing on' {unit: 4} {imperative definition: 855} - IMPERATIVE_NT'report sneezing on' {unit: 4} {imperative definition: 856} - IMPERATIVE_NT'report someone sneezing on' {unit: 4} {imperative definition: 857} + IMPERATIVE_NT'check sneezing on' {unit: 4} {imperative definition: 854} + IMPERATIVE_NT'carry out sneezing on' {unit: 4} {imperative definition: 855} + IMPERATIVE_NT'carry out someone sneezing on' {unit: 4} {imperative definition: 856} + IMPERATIVE_NT'report sneezing on' {unit: 4} {imperative definition: 857} + IMPERATIVE_NT'report someone sneezing on' {unit: 4} {imperative definition: 858} SENTENCE_NT'understand "inject [someone] with [something]" as injecting ' {unit: 4} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"inject [someone] with [something]"' @@ -361,10 +361,10 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'injecting it with' UNPARSED_NOUN_NT'applying to two things' - IMPERATIVE_NT'check injecting it with' {unit: 4} {imperative definition: 858} - IMPERATIVE_NT'carry out injecting it with' {unit: 4} {imperative definition: 859} - IMPERATIVE_NT'after injecting the player with something' {unit: 4} {imperative definition: 860} - IMPERATIVE_NT'report injecting it with' {unit: 4} {imperative definition: 861} + IMPERATIVE_NT'check injecting it with' {unit: 4} {imperative definition: 859} + IMPERATIVE_NT'carry out injecting it with' {unit: 4} {imperative definition: 860} + IMPERATIVE_NT'after injecting the player with something' {unit: 4} {imperative definition: 861} + IMPERATIVE_NT'report injecting it with' {unit: 4} {imperative definition: 862} HEADING_NT'section 3 - geography' {heading 5} {under: H5'section 3 - geography'} {unit: 4} INCLUSION_NT'include locksmith by emily short' {unit: 4} HEADING_NT'version 12 of locksmith by emily short begins here' {heading 0} {under: H0'version 12 of locksmith by emily short begins here'} {includes: Locksmith by Emily Short v12 } {unit: 3} @@ -389,9 +389,9 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'going toward' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'check going toward' {unit: 4} {imperative definition: 899} - IMPERATIVE_NT'carry out going toward' {unit: 4} {imperative definition: 900} - IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 4} {imperative definition: 901} + IMPERATIVE_NT'check going toward' {unit: 4} {imperative definition: 900} + IMPERATIVE_NT'carry out going toward' {unit: 4} {imperative definition: 901} + IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 4} {imperative definition: 902} SENTENCE_NT'understand "stop" or "cease" as stopping' {unit: 4} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"stop" or "cease"' @@ -400,11 +400,11 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'stopping' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out stopping' {unit: 4} {imperative definition: 902} - IMPERATIVE_NT'report stopping' {unit: 4} {imperative definition: 903} - IMPERATIVE_NT'after going to an air-conditioned room' {unit: 4} {imperative definition: 904} - IMPERATIVE_NT'after going from an air-conditioned room' {unit: 4} {imperative definition: 905} - IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 4} {imperative definition: 906} + IMPERATIVE_NT'carry out stopping' {unit: 4} {imperative definition: 903} + IMPERATIVE_NT'report stopping' {unit: 4} {imperative definition: 904} + IMPERATIVE_NT'after going to an air-conditioned room' {unit: 4} {imperative definition: 905} + IMPERATIVE_NT'after going from an air-conditioned room' {unit: 4} {imperative definition: 906} + IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 4} {imperative definition: 907} SENTENCE_NT'the alfred cralle pool hall is a room' {unit: 4} {classified} {interpretation of subject: infs'person'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'alfred cralle pool hall' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'alfred cralle pool hall'} {eval: CONSTANT_NT'alfred cralle pool hall' {kind: object} {instance: I88'alfred cralle pool hall'} {enumeration: 0}} {created here} @@ -446,7 +446,7 @@ ROOT_NT PROPER_NOUN_NT'felt door' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'felt door'} {eval: CONSTANT_NT'felt door' {kind: door} {instance: I90'felt door'} {enumeration: 0}} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'"It has a prominent lock, designed for an old-fashioned key.' {refined} {eval: CONSTANT_NT'"It has a prominent lock, designed for an old-fashioned key.' {kind: text}} - IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 4} {imperative definition: 907} + IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 4} {imperative definition: 908} SENTENCE_NT'nancy johnson memorial square is west of the felt door' {unit: 4} {classified} {interpretation of subject: infs'key to the city'} VERB_NT'is west of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: west of} PROPER_NOUN_NT'nancy johnson memorial square' {refined} {refers: infs'nancy johnson memorial square'} {eval: CONSTANT_NT'nancy johnson memorial square' {kind: object} {instance: I92'nancy johnson memorial square'} {enumeration: 0}} {created here} @@ -508,8 +508,8 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'slot' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'slot'} {eval: CONSTANT_NT'slot' {kind: object} {instance: I97'slot'} {enumeration: 0}} COMMON_NOUN_NT'container' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'container'} {creation: << kind=container(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'carry out inserting something into the slot' {unit: 4} {imperative definition: 908} - IMPERATIVE_NT'report inserting something into the slot' {unit: 4} {imperative definition: 909} + IMPERATIVE_NT'carry out inserting something into the slot' {unit: 4} {imperative definition: 909} + IMPERATIVE_NT'report inserting something into the slot' {unit: 4} {imperative definition: 910} SENTENCE_NT'hamwi street is northeast of an iron gate' {unit: 4} {classified} {interpretation of subject: infs'slot'} VERB_NT'is northeast of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: northeast of} PROPER_NOUN_NT'hamwi street' {refined} {refers: infs'hamwi street'} {eval: CONSTANT_NT'hamwi street' {kind: object} {instance: I98'hamwi street'} {enumeration: 0}} {created here} @@ -533,7 +533,7 @@ ROOT_NT AND_NT'and' {refined} ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: << lockable(x) ^ lockable(x) >>} ADJECTIVE_NT'unlocked' {refined} {predicate: unlocked} {creation: << unlocked(x) ^ unlocked(x) >>} - IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 4} {imperative definition: 910} + IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 4} {imperative definition: 911} SENTENCE_NT'cold comfort ice cream is north of a metal door' {unit: 4} {classified} {interpretation of subject: infs'iron gate'} VERB_NT'is north of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: north of} PROPER_NOUN_NT'cold comfort ice cream' {refined} {refers: infs'cold comfort ice cream'} {eval: CONSTANT_NT'cold comfort ice cream' {kind: object} {instance: I100'cold comfort ice cream'} {enumeration: 0}} {created here} @@ -639,8 +639,8 @@ ROOT_NT VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"glass"' UNPARSED_NOUN_NT'the box' - IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 4} {imperative definition: 911} - IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 4} {imperative definition: 912} + IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 4} {imperative definition: 912} + IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 4} {imperative definition: 913} SENTENCE_NT'the syringe is in the emergency box' {unit: 4} {classified} {interpretation of subject: infs'emergency box'} VERB_NT'is in' {verb 'be' 3p s act IS_TENSE +ve} {prep1: in} PROPER_NOUN_NT'syringe' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'syringe'} {eval: CONSTANT_NT'syringe' {kind: object} {instance: I109'syringe'} {enumeration: 0}} {created here} @@ -743,8 +743,8 @@ ROOT_NT SENTENCE_NT'use full-length room descriptions' {unit: 4} {classified} VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use} UNPARSED_NOUN_NT'full-length room descriptions' - IMPERATIVE_NT'after looking in an outdoors room' {unit: 4} {imperative definition: 913} - IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 914} + IMPERATIVE_NT'after looking in an outdoors room' {unit: 4} {imperative definition: 914} + IMPERATIVE_NT'definition' {unit: 4} {imperative definition: 915} DEFN_CONT_NT'a door is proximate' {unit: 4} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -765,7 +765,7 @@ ROOT_NT INVOCATION_NT'yes' {phrase invoked: } INVOCATION_LIST_NT'no' {unit: 4} INVOCATION_NT'no' {phrase invoked: } - IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 4} {imperative definition: 915} + IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 4} {imperative definition: 916} SENTENCE_NT'blank is a room' {unit: 4} {classified} {interpretation of subject: infs'key to the city'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'blank' {refined} {refers: infs'blank'} {eval: CONSTANT_NT'blank' {kind: object} {instance: I113'blank'} {enumeration: 0}} {created here} @@ -991,15 +991,15 @@ ROOT_NT PROPER_NOUN_NT'ned' {refined} {refers: infs'ned'} {eval: CONSTANT_NT'ned' {kind: man} {instance: I166'ned'} {enumeration: 0}} RELATIONSHIP_NT'owns' {meaning: ownership-r} {refined} PROPER_NOUN_NT'movie rental' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'movie rental store'} {eval: CONSTANT_NT'movie rental store' {kind: object} {instance: I104'movie rental store'} {enumeration: 0}} - IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 4} {imperative definition: 916} + IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 4} {imperative definition: 917} SENTENCE_NT'the description of a person is usually "[The noun] [if the n' {unit: 4} {classified} {interpretation of subject: infs'ned'} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} X_OF_Y_NT'description of a person' {definite 'the' n/m/f s/p nom/acc} {refined} COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {refined} {eval: CONSTANT_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {kind: text}} - IMPERATIVE_NT'after examining another person who is carrying something' {unit: 4} {imperative definition: 917} - IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 918} + IMPERATIVE_NT'after examining another person who is carrying something' {unit: 4} {imperative definition: 918} + IMPERATIVE_NT'when play begins' {unit: 4} {imperative definition: 919} HEADING_NT'section 5 - conversation' {heading 5} {under: H5'section 5 - conversation'} {unit: 4} SENTENCE_NT'a person has a table name called conversation' {unit: 4} {classified} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} @@ -1008,8 +1008,8 @@ ROOT_NT PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'conversation' - IMPERATIVE_NT'instead of asking someone about something' {unit: 4} {imperative definition: 919} - IMPERATIVE_NT'instead of telling someone about something' {unit: 4} {imperative definition: 920} + IMPERATIVE_NT'instead of asking someone about something' {unit: 4} {imperative definition: 920} + IMPERATIVE_NT'instead of telling someone about something' {unit: 4} {imperative definition: 921} SENTENCE_NT'understand "recap" or "recall" or "review" as recalling conv' {unit: 4} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"recap" or "recall" or "review"' @@ -1018,7 +1018,7 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'recalling conversations' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out recalling conversations' {unit: 4} {imperative definition: 921} + IMPERATIVE_NT'carry out recalling conversations' {unit: 4} {imperative definition: 922} SENTENCE_NT'the conversation of a person is usually table of general chi' {unit: 4} {classified} {interpretation of subject: infs'person'} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} X_OF_Y_NT'conversation of a person' {definite 'the' n/m/f s/p nom/acc} {refined} @@ -1033,7 +1033,7 @@ ROOT_NT PROPER_NOUN_NT'conversation' {refined} {eval: CONSTANT_NT {kind: table names valued property} {property: 'conversation'=table name}} PROPER_NOUN_NT'table of vanessa chatter' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT'table of vanessa chatter' {kind: table name} {table: table_data}{meaning: {table of vanessa chatter = TABLE_MC}}} TABLE_NT'table of vanessa chatter topic reply summary turn stamp char' {unit: 4} - IMPERATIVE_NT'after reading a command' {unit: 4} {imperative definition: 922} + IMPERATIVE_NT'after reading a command' {unit: 4} {imperative definition: 923} HEADING_NT'section 6 - movement description' {heading 5} {under: H5'section 6 - movement description'} {unit: 4} SENTENCE_NT'a person has some text called walk style' {unit: 4} {classified} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} @@ -1080,8 +1080,8 @@ ROOT_NT PROPER_NOUN_NT'"sashay"' {refined} {eval: CONSTANT_NT'"sashay"' {kind: text}} TABLE_NT'table of visible exits character second third heading chosen' {unit: 4} TABLE_NT'table of visible entrances character second third heading ch' {unit: 4} - IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 4} {imperative definition: 923} - IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 4} {imperative definition: 924} + IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 4} {imperative definition: 924} + IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 4} {imperative definition: 925} SENTENCE_NT'a door has a person called last opener' {unit: 4} {classified} {interpretation of subject: infs'person'} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} @@ -1089,21 +1089,21 @@ ROOT_NT PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'last opener' - IMPERATIVE_NT'report someone opening a door' {unit: 4} {imperative definition: 925} - IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 4} {imperative definition: 926} + IMPERATIVE_NT'report someone opening a door' {unit: 4} {imperative definition: 926} + IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 4} {imperative definition: 927} SENTENCE_NT'the last thing named is a thing that varies' {unit: 4} {classified} {interpretation of subject: infs'door'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'last thing named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last thing named' {nonlocal: 'last thing named'(var)thing}} {created here} COMMON_NOUN_NT'thing that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=things variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 4} {imperative definition: 927} - IMPERATIVE_NT'report someone going a direction' {unit: 4} {imperative definition: 928} - IMPERATIVE_NT'this is the movement reporting rule' {unit: 4} {imperative definition: 929} - IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 4} {imperative definition: 930} + IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 4} {imperative definition: 928} + IMPERATIVE_NT'report someone going a direction' {unit: 4} {imperative definition: 929} + IMPERATIVE_NT'this is the movement reporting rule' {unit: 4} {imperative definition: 930} + IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 4} {imperative definition: 931} SENTENCE_NT'the last person named is a person that varies' {unit: 4} {classified} {interpretation of subject: infs'door'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'last person named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last person named' {nonlocal: 'last person named'(var)person}} {created here} COMMON_NOUN_NT'person that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 4} {imperative definition: 931} + IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 4} {imperative definition: 932} SENTENCE_NT'group size is a number that varies' {unit: 4} {classified} {interpretation of subject: infs'door'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}} {created here} @@ -1112,19 +1112,19 @@ ROOT_NT VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}{meaning: {group size = VARIABLE_MC}}} PROPER_NOUN_NT'1' {refined} {eval: CONSTANT_NT'1' {kind: number} {explicit literal} {number: 1}} - IMPERATIVE_NT'to clear marked people' {unit: 4} {imperative definition: 932} - IMPERATIVE_NT'before listing nondescript items' {unit: 4} {imperative definition: 933} - IMPERATIVE_NT'to describe patients' {unit: 4} {imperative definition: 934} - IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 4} {imperative definition: 935} - IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 4} {imperative definition: 936} - IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 4} {imperative definition: 937} + IMPERATIVE_NT'to clear marked people' {unit: 4} {imperative definition: 933} + IMPERATIVE_NT'before listing nondescript items' {unit: 4} {imperative definition: 934} + IMPERATIVE_NT'to describe patients' {unit: 4} {imperative definition: 935} + IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 4} {imperative definition: 936} + IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 4} {imperative definition: 937} + IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 4} {imperative definition: 938} TABLE_NT'table of dipping phrases dipping "looks as though dipped in"' {unit: 4} SENTENCE_NT'a door is usually scenery' {unit: 4} {classified} {interpretation of subject: infs'door'} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} ADJECTIVE_NT'scenery' {refined} {predicate: scenery} {creation: << scenery(x) ^ scenery(x) >>} - IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 4} {imperative definition: 938} - IMPERATIVE_NT'to say optional comma' {unit: 4} {imperative definition: 939} + IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 4} {imperative definition: 939} + IMPERATIVE_NT'to say optional comma' {unit: 4} {imperative definition: 940} SENTENCE_NT'test me with go to cold comfort / z / z / z / z / ask vaness' {unit: 4} {classified} VERB_NT'test' {verb 'test' 3p p act IS_TENSE +ve} {prep2: with} {special meaning: test-with} UNPARSED_NOUN_NT'me' diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 35df467f9..7845f19a3 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,7 +1,7 @@ 100.0% in inform7 run - 55.3% in compilation to Inter - 40.0% in //Sequence::undertake_queued_tasks// - 3.4% in //MajorNodes::pre_pass// + 55.0% in compilation to Inter + 39.7% in //Sequence::undertake_queued_tasks// + 3.5% in //MajorNodes::pre_pass// 2.5% in //MajorNodes::pass_1// 2.0% in //RTPhrasebook::compile_entries// 1.3% in //ImperativeDefinitions::assess_all// @@ -16,13 +16,13 @@ 0.1% in //RTKindConstructors::compile_permissions// 0.1% in //Task::make_built_in_kind_constructors// 0.1% in //World::stages_II_and_III// - 1.8% not specifically accounted for - 42.7% in running Inter pipeline - 12.1% in step preparation + 1.6% not specifically accounted for + 42.9% in running Inter pipeline + 12.5% in step preparation 9.6% in inter step 7/16: consolidate-text 7.9% in inter step 2/16: link - 6.4% in inter step 16/16: generate inform6 -> auto.inf - 1.5% in inter step 11/16: make-identifiers-unique + 6.5% in inter step 16/16: generate inform6 -> auto.inf + 1.4% in inter step 11/16: make-identifiers-unique 0.4% in inter step 12/16: reconcile-verbs 0.2% in inter step 10/16: detect-indirect-calls 0.2% in inter step 14/16: eliminate-redundant-operations @@ -30,8 +30,9 @@ 0.2% in inter step 8/16: resolve-external-symbols 0.2% in inter step 9/16: inspect-plugs 0.1% in inter step 13/16: eliminate-redundant-labels + 0.1% in inter step 3/16: merge-template <- none 0.1% in inter step 4/16: parse-linked-matter 0.1% in inter step 5/16: resolve-conditional-compilation - 2.9% not specifically accounted for + 2.5% not specifically accounted for 1.6% in supervisor - 0.3% not specifically accounted for + 0.5% not specifically accounted for diff --git a/inform7/Figures/verbs-diagnostics.txt b/inform7/Figures/verbs-diagnostics.txt index 7bc08cd62..391d8dfa4 100644 --- a/inform7/Figures/verbs-diagnostics.txt +++ b/inform7/Figures/verbs-diagnostics.txt @@ -1389,7 +1389,7 @@ the same description as the same map region as the same initial appearance as the same opposite as -the same other side as +the same leading-through destination as the same carrying capacity as the same matching key as the same list grouping key as diff --git a/inform7/Internal/Inter/BasicInformKit/Sections/RTP.i6t b/inform7/Internal/Inter/BasicInformKit/Sections/RTP.i6t index 1b18346e8..fa2fd1f32 100644 --- a/inform7/Internal/Inter/BasicInformKit/Sections/RTP.i6t +++ b/inform7/Internal/Inter/BasicInformKit/Sections/RTP.i6t @@ -312,10 +312,6 @@ property; |obj| is then a value for the kind of value created by the table, so it is used as an index into the table column to get the address of the memory location storing the property value. -The |door_to| property, relevant only for doors, is called rather than read: -this enables it to be an I6 routine returning the other side of the door from -the one which the player is on. - = [ GProperty K V pr err holder val; if (ProvidesProperty(K, V, pr, 1-err)) { diff --git a/inform7/Internal/Miscellany/inform7_clib.c b/inform7/Internal/Miscellany/inform7_clib.c index 4aea0cb9e..e22fdfdaa 100644 --- a/inform7/Internal/Miscellany/inform7_clib.c +++ b/inform7/Internal/Miscellany/inform7_clib.c @@ -445,11 +445,11 @@ void glulx_read_gprop(i7process_t *proc, i7word_t K, i7word_t obj, i7word_t pr, if (val) *val = 0; } } else { - if ((pr == i7_mgl_A_door_to)) { - if (val) *val = (i7word_t) i7_mcall_0(proc, obj, pr); - } else { +// if ((pr == i7_mgl_A_door_to)) { +// if (val) *val = (i7word_t) i7_mcall_0(proc, obj, pr); +// } else { if (val) *val = (i7word_t) i7_read_prop_value(proc, obj, pr); - } +// } } } else { i7word_t holder = i7_read_word(proc, i7_mgl_value_property_holders, K); diff --git a/inform7/Tests/Test Internals/_Results_Ideal/Index-Chart.txt b/inform7/Tests/Test Internals/_Results_Ideal/Index-Chart.txt index b5d1fe0f3..b551def42 100644 --- a/inform7/Tests/Test Internals/_Results_Ideal/Index-Chart.txt +++ b/inform7/Tests/Test Internals/_Results_Ideal/Index-Chart.txt @@ -957,7 +957,7 @@ the long slide. Through the long slide is the cellar.').
Usually closed not open, openable not unopenable, unlocked not locked.
Usually not lockable.
Never pushable between rooms.
-Can have other side (object).
+Can have leading-through destination (object).

mystic portal (plural mystic portals) 

diff --git a/inform7/Tests/Test Makes/Eg4-C/textual.txt b/inform7/Tests/Test Makes/Eg4-C/textual.txt index 9e2a15a86..deee66f92 100644 --- a/inform7/Tests/Test Makes/Eg4-C/textual.txt +++ b/inform7/Tests/Test Makes/Eg4-C/textual.txt @@ -34821,7 +34821,7 @@ package main _plain constant KIT_CONFIGURATION_BITMAP K_typeless_int = 0 constant KIT_CONFIGURATION_LOOKMODE K_typeless_int = 2 constant I7_VERSION_NUMBER K_typeless_string = "10.1.0" - constant I7_FULL_VERSION_NUMBER K_typeless_string = "10.1.0-alpha.1+6T54" + constant I7_FULL_VERSION_NUMBER K_typeless_string = "10.1.0-alpha.1+6T55" constant ^virtual_machine K_typeless_string = "C/32d/v1/no-main" constant ^virtual_machine_icon K_typeless_string = "vm_glulx.png" constant ^language_elements_used K_typeless_string = "core, naming, instance counting, glulx external files" diff --git a/inform7/extensions/standard_rules/Sections/Phrase Definitions.w b/inform7/extensions/standard_rules/Sections/Phrase Definitions.w index ed159a65b..5e538ff92 100644 --- a/inform7/extensions/standard_rules/Sections/Phrase Definitions.w +++ b/inform7/extensions/standard_rules/Sections/Phrase Definitions.w @@ -561,6 +561,9 @@ To decide which room is room (D - direction) from/of (R1 - room) To decide which door is door (D - direction) from/of (R1 - room) (documented at ph_doordirof): (- DoorFrom({R1},{D}) -). +To decide which object is the other side of (D - door) + (documented at ph_othersideof): + (- OtherSideOfDoor({D}, location) -). To decide which object is the other side of (D - door) from (R1 - room) (documented at ph_othersideof): (- OtherSideOfDoor({D},{R1}) -). diff --git a/inform7/extensions/standard_rules/Sections/Physical World Model.w b/inform7/extensions/standard_rules/Sections/Physical World Model.w index 25f24338b..bde873928 100644 --- a/inform7/extensions/standard_rules/Sections/Physical World Model.w +++ b/inform7/extensions/standard_rules/Sections/Physical World Model.w @@ -465,15 +465,24 @@ stand. The awkward truth is that these expressions are undefined unless the player is in one of the (possibly) two rooms in which the green door is present; and then they are defined relative to him. -The leading-through relation is built in to Inform; the other side property, -though, is merely a convenient name we give to the property in which -the relation data is stored at run-time. +The leading-through relation is built in to Inform. This has to be stored +in the property "door_to", but we don't want to give authors direct access +to this property, since its contents are strictly speaking not typesafe. +(It stores a value to which a message can be sent which must return an object: +but that is not always the same thing as storing an object.) + +Until 2021, the storage property was called "other side", and was useful +in as much as "the other side of D" would helpfully evaluate to the location +on the other side of a door. But that only worked because of a hacky exception +in the code handling property evaluation which made "door_to" a special case, +and this led to other problems. Instead, a new phrase "other side of (D - door)" +has been added to the Standard Rules, and this avoids directly evaluating "door_to". = -A door has an object called other side. -The other side property translates into Inter as "door_to". -Leading-through relates one room (called the other side) to various doors. -The verb to be through means the leading-through relation. +A door has an object called leading-through destination. +The leading-through destination property translates into 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. @h Containers and supporters. The carrying capacity property is the exception to the remarks above about diff --git a/inform7/if-module/Chapter 3/The Map.w b/inform7/if-module/Chapter 3/The Map.w index ca2758fcf..581b30e12 100644 --- a/inform7/if-module/Chapter 3/The Map.w +++ b/inform7/if-module/Chapter 3/The Map.w @@ -396,7 +396,7 @@ Standard Rules. (So there is no need to translate this to other languages.) = ::= opposite | - other side + leading-through destination @ = int Map::new_property_notify(property *prn) { @@ -883,7 +883,6 @@ trust that there is nothing surprising here. @ = P_door = EitherOrProperties::new_nameless(I"door"); -// RTProperties::recommend_storing_as_attribute(P_door, TRUE); P_door_dir = ValueProperties::new_nameless(I"door_dir", K_value); P_door_to = ValueProperties::new_nameless(I"door_to", K_value); diff --git a/inter/final-module/Chapter 4/Inform 6 Code.w b/inter/final-module/Chapter 4/Inform 6 Code.w index a6e0aa289..474a880f8 100644 --- a/inter/final-module/Chapter 4/Inform 6 Code.w +++ b/inter/final-module/Chapter 4/Inform 6 Code.w @@ -197,7 +197,10 @@ void I6TargetCode::invoke_function(code_generator *cgt, code_generation *gen, @h Assembly language. In general, we make no attempt to police the supposedly valid assembly language -given to us here. Glulx has one set, Z another. +given to us here. Glulx has one set, Z another. Any assembly language in the Inter +tree results from kit material; and if the author of such a kit tries to use an +invalid opcode, then the result won't compile under I6, but none of that is our +business here. The |@aread| opcode is a valid Z-machine opcode, but owing to the way I6 handles the irreconcilable change in syntax for the same opcode in V3 and V4-5 of the @@ -224,7 +227,9 @@ void I6TargetCode::invoke_opcode(code_generator *cgt, code_generation *gen, if (void_context) WRITE(";\n"); } -@ = +@h Primitives. + += int i6_next_is_a_ref = FALSE, i6_next_is_a_give = FALSE, i6_next_is_a_take = FALSE; void I6TargetCode::invoke_primitive(code_generator *cgt, code_generation *gen, inter_symbol *prim_name, inter_tree_node *P, int void_context) { @@ -232,7 +237,6 @@ void I6TargetCode::invoke_primitive(code_generator *cgt, code_generation *gen, int suppress_terminal_semicolon = FALSE; inter_tree *I = gen->from; inter_ti bip = Primitives::to_bip(I, prim_name); - text_stream *store_form = NULL; switch (bip) { @; @@ -279,286 +283,6 @@ void I6TargetCode::invoke_primitive(code_generator *cgt, code_generation *gen, case TERNARYSEQUENTIAL_BIP: @; break; case ALTERNATIVE_BIP: VNODE_1C; WRITE(" or "); VNODE_2C; break; -@ = - case STORE_BIP: store_form = I"i7_lvalue_SET"; @; break; - case PREINCREMENT_BIP: store_form = I"i7_lvalue_PREINC"; @; break; - case POSTINCREMENT_BIP: store_form = I"i7_lvalue_POSTINC"; @; break; - case PREDECREMENT_BIP: store_form = I"i7_lvalue_PREDEC"; @; break; - case POSTDECREMENT_BIP: store_form = I"i7_lvalue_POSTDEC"; @; break; - case SETBIT_BIP: store_form = I"i7_lvalue_SETBIT"; @; break; - case CLEARBIT_BIP: store_form = I"i7_lvalue_CLEARBIT"; @; break; - -@ = - case PROPERTYEXISTS_BIP: - I6_GEN_DATA(value_ranges_needed) = TRUE; - I6_GEN_DATA(value_property_holders_needed) = TRUE; - WRITE("(_final_provides("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(", "); VNODE_3C; WRITE("))"); break; - case PROPERTYADDRESS_BIP: WRITE("(_final_read_paddr("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break; - case PROPERTYLENGTH_BIP: WRITE("(_final_read_plen("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break; - case PROPERTYVALUE_BIP: if (i6_next_is_a_give) - @ - else if (i6_next_is_a_take) - @ - else if (i6_next_is_a_ref) - @ - else - @; - break; - -@ = - case PUSH_BIP: WRITE("@push "); VNODE_1C; break; - case PULL_BIP: WRITE("@pull "); VNODE_1C; break; - -@ = - case BREAK_BIP: WRITE("break"); break; - case CONTINUE_BIP: WRITE("continue"); break; - case RETURN_BIP: @; break; - case JUMP_BIP: WRITE("jump "); VNODE_1C; break; - case QUIT_BIP: WRITE("quit"); break; - case RESTORE_BIP: WRITE("restore "); VNODE_1C; break; - case IF_BIP: @; break; - case IFDEBUG_BIP: @; break; - case IFSTRICT_BIP: @; break; - case IFELSE_BIP: @; break; - case WHILE_BIP: @; break; - case DO_BIP: @; break; - case FOR_BIP: @; break; - case OBJECTLOOP_BIP: @; break; - case OBJECTLOOPX_BIP: @; break; - case LOOP_BIP: @; break; - case SWITCH_BIP: @; break; - case CASE_BIP: @; break; - case ALTERNATIVECASE_BIP: VNODE_1C; WRITE(", "); VNODE_2C; break; - case DEFAULT_BIP: @; break; - -@ = - case INDIRECT0_BIP: case INDIRECT0V_BIP: case CALLMESSAGE0_BIP: - WRITE("("); VNODE_1C; WRITE(")()"); break; - case INDIRECT1_BIP: case INDIRECT1V_BIP: case CALLMESSAGE1_BIP: - WRITE("("); VNODE_1C; WRITE(")("); - VNODE_2C; WRITE(")"); break; - case INDIRECT2_BIP: case INDIRECT2V_BIP: case CALLMESSAGE2_BIP: - WRITE("("); VNODE_1C; WRITE(")("); - VNODE_2C; WRITE(","); VNODE_3C; WRITE(")"); break; - case INDIRECT3_BIP: case INDIRECT3V_BIP: case CALLMESSAGE3_BIP: - WRITE("("); VNODE_1C; WRITE(")("); - VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(")"); break; - case INDIRECT4_BIP: case INDIRECT4V_BIP: - WRITE("("); VNODE_1C; WRITE(")("); - VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); - VNODE_5C; WRITE(")"); break; - case INDIRECT5_BIP: case INDIRECT5V_BIP: - WRITE("("); VNODE_1C; WRITE(")("); - VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); - VNODE_5C; WRITE(","); VNODE_6C; WRITE(")"); break; - case MESSAGE0_BIP: WRITE("_final_message0("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(")"); break; - case MESSAGE1_BIP: WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)("); - VNODE_3C; WRITE("))"); break; - case MESSAGE2_BIP: WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)("); - VNODE_3C; WRITE(","); VNODE_4C; WRITE("))"); break; - case MESSAGE3_BIP: WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)("); - VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); VNODE_5C; WRITE("))"); break; - - case EXTERNALCALL_BIP: internal_error("external calls impossible in Inform 6"); break; - -@ = - case PRINT_BIP: WRITE("print "); CodeGen::lt_mode(gen, PRINTING_LTM); VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break; - case PRINTCHAR_BIP: WRITE("print (char) "); VNODE_1C; break; - case PRINTNL_BIP: WRITE("new_line"); break; - case PRINTOBJ_BIP: WRITE("print (object) "); VNODE_1C; break; - case PRINTNUMBER_BIP: WRITE("print "); VNODE_1C; break; - case PRINTDWORD_BIP: WRITE("print (address) "); VNODE_1C; break; - case PRINTSTRING_BIP: WRITE("print (string) "); VNODE_1C; break; - case BOX_BIP: WRITE("box "); CodeGen::lt_mode(gen, BOX_LTM); VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break; - case SPACES_BIP: WRITE("spaces "); VNODE_1C; break; - case FONT_BIP: - WRITE("if ("); VNODE_1C; WRITE(") { font on; } else { font off; }"); - suppress_terminal_semicolon = TRUE; - break; - case STYLE_BIP: { - inter_tree_node *N = InterTree::first_child(P); - if ((N->W.data[ID_IFLD] == CONSTANT_IST) && - (N->W.data[FORMAT_CONST_IFLD] == CONSTANT_DIRECT)) { - inter_ti val2 = N->W.data[DATA_CONST_IFLD + 1]; - switch (val2) { - case 1: WRITE("style bold"); break; - case 2: WRITE("style underline"); break; - case 3: WRITE("style reverse"); break; - default: WRITE("style roman"); - } - } else { - WRITE("style roman"); - } - break; - } - -@ = - case MOVE_BIP: WRITE("move "); VNODE_1C; WRITE(" to "); VNODE_2C; break; - case REMOVE_BIP: WRITE("remove "); VNODE_1C; break; - -@ = - case RANDOM_BIP: WRITE("random("); VNODE_1C; WRITE(")"); break; - -@ = - inter_tree_node *ref = InterTree::first_child(P); - if ((Inter::Reference::node_is_ref_to(gen->from, ref, PROPERTYVALUE_BIP)) && - (I6TargetCode::pval_case(ref) != 2)) { - @; - } else { - @; - } - -@ = - inter_tree_node *VP = InterTree::second_child(P); - int set = NOT_APPLICABLE; - if (VP->W.data[ID_IFLD] == VAL_IST) { - inter_ti val1 = VP->W.data[VAL1_VAL_IFLD]; - inter_ti val2 = VP->W.data[VAL2_VAL_IFLD]; - if ((val1 == LITERAL_IVAL) && (val2)) set = TRUE; - if ((val1 == LITERAL_IVAL) && (val2 == 0)) set = FALSE; - } - if ((I6TargetCode::pval_case(ref) == 1) && (set == TRUE)) { - i6_next_is_a_give = TRUE; VNODE_1C; i6_next_is_a_give = FALSE; - } else if ((I6TargetCode::pval_case(ref) == 1) && (set == FALSE)) { - i6_next_is_a_take = TRUE; VNODE_1C; i6_next_is_a_take = FALSE; - } else { - WRITE("("); i6_next_is_a_ref = TRUE; VNODE_1C; i6_next_is_a_ref = FALSE; - if (bip == STORE_BIP) { VNODE_2C; } else { WRITE("0"); } - WRITE(", %S))", store_form); - } - -@ = - switch (bip) { - case PREINCREMENT_BIP: WRITE("++("); VNODE_1C; WRITE(")"); break; - case POSTINCREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")++"); break; - case PREDECREMENT_BIP: WRITE("--("); VNODE_1C; WRITE(")"); break; - case POSTDECREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")--"); break; - case STORE_BIP: WRITE("("); VNODE_1C; WRITE(" = "); VNODE_2C; WRITE(")"); break; - case SETBIT_BIP: VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" | "); VNODE_2C; break; - case CLEARBIT_BIP: VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" &~ ("); VNODE_2C; WRITE(")"); break; - } - -@ = - i6_next_is_a_give = FALSE; - WRITE("give "); VNODE_2C; WRITE(" %S", I6TargetCode::inner_name(gen, P)); break; - -@ = - i6_next_is_a_take = FALSE; - WRITE("give "); VNODE_2C; WRITE(" ~%S", I6TargetCode::inner_name(gen, P)); break; - -@ = - i6_next_is_a_ref = FALSE; - WRITE("_final_write_pval("); VNODE_1C; WRITE(","); VNODE_2C; WRITE(","); VNODE_3C; WRITE(", "); - -@ = - switch (I6TargetCode::pval_case(P)) { - case 1: WRITE("("); VNODE_2C; WRITE(" has %S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break; - case 2: WRITE("("); VNODE_2C; WRITE(".%S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break; - case 3: I6_GEN_DATA(value_property_holders_needed) = TRUE; - I6TargetCode::comparison_r(gen, InterTree::first_child(P), InterTree::second_child(P), InterTree::third_child(P), 0); break; - } - -@ = -void I6TargetCode::comparison_r(code_generation *gen, inter_tree_node *K, - inter_tree_node *X, inter_tree_node *Y, int depth) { - text_stream *OUT = CodeGen::current(gen); - if (Y->W.data[ID_IFLD] == INV_IST) { - if (Y->W.data[METHOD_INV_IFLD] == INVOKED_PRIMITIVE) { - inter_symbol *prim = Inter::Inv::invokee(Y); - inter_ti ybip = Primitives::to_bip(gen->from, prim); - if (ybip == ALTERNATIVE_BIP) { - if (depth == 0) { WRITE("((or_tmp_var = "); Vanilla::node(gen, X); WRITE(") && (("); } - I6TargetCode::comparison_r(gen, K, NULL, InterTree::first_child(Y), depth+1); - WRITE(") || ("); - I6TargetCode::comparison_r(gen, K, NULL, InterTree::second_child(Y), depth+1); - if (depth == 0) { WRITE(")))"); } - return; - } - } - } - switch (I6TargetCode::pval_case_inner(Y)) { - case 1: WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); WRITE(" has %S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break; - case 2: WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); WRITE(".%S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break; - case 3: - WRITE("_final_read_pval("); - Vanilla::node(gen, K); - WRITE(", "); - if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); - WRITE(", "); - Vanilla::node(gen, Y); - WRITE(")"); break; - } -} - -@ - -= -int I6TargetCode::pval_case(inter_tree_node *P) { - while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P); - inter_tree_node *prop_node = InterTree::third_child(P); - return I6TargetCode::pval_case_inner(prop_node); -} - -text_stream *I6TargetCode::inner_name(code_generation *gen, inter_tree_node *P) { - while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P); - inter_tree_node *prop_node = InterTree::third_child(P); - return I6TargetCode::inner_name_inner(gen, prop_node); -} - -text_stream *I6TargetCode::inner_name_inner(code_generation *gen, inter_tree_node *prop_node) { - inter_symbol *prop_symbol = NULL; - if (prop_node->W.data[ID_IFLD] == VAL_IST) { - inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD]; - inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD]; - if (Inter::Symbols::is_stored_in_data(val1, val2)) - prop_symbol = - InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2); - } - if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) { - return VanillaObjects::inner_property_name(gen, prop_symbol); - } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) { - return VanillaObjects::inner_property_name(gen, prop_symbol); - } else { - return NULL; - } -} - -int I6TargetCode::pval_case_inner(inter_tree_node *prop_node) { - inter_symbol *prop_symbol = NULL; - if (prop_node->W.data[ID_IFLD] == VAL_IST) { - inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD]; - inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD]; - if (Inter::Symbols::is_stored_in_data(val1, val2)) - prop_symbol = - InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2); - } - if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) { - return 1; - } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) { - return 2; - } else { - return 3; - } -} - -@ = - int rboolean = NOT_APPLICABLE; - inter_tree_node *V = InterTree::first_child(P); - if (V->W.data[ID_IFLD] == VAL_IST) { - inter_ti val1 = V->W.data[VAL1_VAL_IFLD]; - inter_ti val2 = V->W.data[VAL2_VAL_IFLD]; - if (val1 == LITERAL_IVAL) { - if (val2 == 0) rboolean = FALSE; - if (val2 == 1) rboolean = TRUE; - } - } - switch (rboolean) { - case FALSE: WRITE("rfalse"); break; - case TRUE: WRITE("rtrue"); break; - case NOT_APPLICABLE: WRITE("return "); Vanilla::node(gen, V); break; - } - - @ Here we need some gymnastics. We need to produce a value which the sometimes shaky I6 expression parser will accept, which turns out to be quite a constraint. If we were compiling to C, we might try this: @@ -586,7 +310,6 @@ Because I6 evaluates the leaves in an expression tree right-to-left, not left-to-right, the parameter assignments happen first, then the conditions, then the result. - @ = WRITE("(\n"); INDENT; WRITE("! This value evaluates third (i.e., last)\n"); VNODE_3C; @@ -601,6 +324,181 @@ then the result. OUTDENT; WRITE(")\n"); OUTDENT; WRITE(")\n"); +@ = + case STORE_BIP: @; break; + case PREINCREMENT_BIP: @; break; + case POSTINCREMENT_BIP: @; break; + case PREDECREMENT_BIP: @; break; + case POSTDECREMENT_BIP: @; break; + case SETBIT_BIP: @; break; + case CLEARBIT_BIP: @; break; + +@ = + inter_tree_node *ref = InterTree::first_child(P); + if ((Inter::Reference::node_is_ref_to(gen->from, ref, PROPERTYVALUE_BIP)) && + (I6TargetCode::pval_case(ref) != I6G_CAN_PROVE_IS_OBJ_PROPERTY)) { + @; + } else { + @; + } + +@ = + inter_tree_node *VP = InterTree::second_child(P); + int set = NOT_APPLICABLE; + if (VP->W.data[ID_IFLD] == VAL_IST) { + inter_ti val1 = VP->W.data[VAL1_VAL_IFLD]; + inter_ti val2 = VP->W.data[VAL2_VAL_IFLD]; + if ((val1 == LITERAL_IVAL) && (val2)) set = TRUE; + if ((val1 == LITERAL_IVAL) && (val2 == 0)) set = FALSE; + } + if ((I6TargetCode::pval_case(ref) == I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE) && (set == TRUE)) { + i6_next_is_a_give = TRUE; VNODE_1C; i6_next_is_a_give = FALSE; + } else if ((I6TargetCode::pval_case(ref) == I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE) && (set == FALSE)) { + i6_next_is_a_take = TRUE; VNODE_1C; i6_next_is_a_take = FALSE; + } else { + WRITE("("); i6_next_is_a_ref = TRUE; VNODE_1C; i6_next_is_a_ref = FALSE; + if (bip == STORE_BIP) { VNODE_2C; } else { WRITE("0"); } + text_stream *store_form = NULL; + switch (bip) { + case STORE_BIP: store_form = I"i7_lvalue_SET"; break; + case PREINCREMENT_BIP: store_form = I"i7_lvalue_PREINC"; break; + case POSTINCREMENT_BIP: store_form = I"i7_lvalue_POSTINC"; break; + case PREDECREMENT_BIP: store_form = I"i7_lvalue_PREDEC"; break; + case POSTDECREMENT_BIP: store_form = I"i7_lvalue_POSTDEC"; break; + case SETBIT_BIP: store_form = I"i7_lvalue_SETBIT"; break; + case CLEARBIT_BIP: store_form = I"i7_lvalue_CLEARBIT"; break; + } + WRITE(", %S))", store_form); + } + +@ = + switch (bip) { + case PREINCREMENT_BIP: WRITE("++("); VNODE_1C; WRITE(")"); break; + case POSTINCREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")++"); break; + case PREDECREMENT_BIP: WRITE("--("); VNODE_1C; WRITE(")"); break; + case POSTDECREMENT_BIP: WRITE("("); VNODE_1C; WRITE(")--"); break; + case STORE_BIP: WRITE("("); VNODE_1C; WRITE(" = "); VNODE_2C; WRITE(")"); break; + case SETBIT_BIP: VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" | "); VNODE_2C; break; + case CLEARBIT_BIP: VNODE_1C; WRITE(" = "); VNODE_1C; WRITE(" &~ ("); VNODE_2C; WRITE(")"); break; + } + +@ = + case PROPERTYEXISTS_BIP: + I6_GEN_DATA(value_ranges_needed) = TRUE; + I6_GEN_DATA(value_property_holders_needed) = TRUE; + WRITE("(_final_provides("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(", "); VNODE_3C; WRITE("))"); break; + case PROPERTYADDRESS_BIP: WRITE("(_final_read_paddr("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break; + case PROPERTYLENGTH_BIP: WRITE("(_final_read_plen("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE("))"); break; + case PROPERTYVALUE_BIP: + if (i6_next_is_a_give) @ + else if (i6_next_is_a_take) @ + else if (i6_next_is_a_ref) @ + else @; + break; + +@ = + i6_next_is_a_give = FALSE; + WRITE("give "); VNODE_2C; WRITE(" %S", I6TargetCode::inner_name(gen, P)); break; + +@ = + i6_next_is_a_take = FALSE; + WRITE("give "); VNODE_2C; WRITE(" ~%S", I6TargetCode::inner_name(gen, P)); break; + +@ = + i6_next_is_a_ref = FALSE; + WRITE("_final_write_pval("); VNODE_1C; WRITE(","); VNODE_2C; WRITE(","); VNODE_3C; WRITE(", "); + +@ = + switch (I6TargetCode::pval_case(P)) { + case I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE: + WRITE("("); VNODE_2C; WRITE(" has %S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break; + case I6G_CAN_PROVE_IS_OBJ_PROPERTY: + WRITE("("); VNODE_2C; WRITE(".%S", I6TargetCode::inner_name(gen, P)); WRITE(")"); break; + case I6G_CANNOT_PROVE: + I6_GEN_DATA(value_property_holders_needed) = TRUE; + I6TargetCode::eval_property_list(gen, InterTree::first_child(P), + InterTree::second_child(P), InterTree::third_child(P), 0); break; + } + +@ = +void I6TargetCode::eval_property_list(code_generation *gen, inter_tree_node *K, + inter_tree_node *X, inter_tree_node *Y, int depth) { + text_stream *OUT = CodeGen::current(gen); + if (Y->W.data[ID_IFLD] == INV_IST) { + if (Y->W.data[METHOD_INV_IFLD] == INVOKED_PRIMITIVE) { + inter_symbol *prim = Inter::Inv::invokee(Y); + inter_ti ybip = Primitives::to_bip(gen->from, prim); + if (ybip == ALTERNATIVE_BIP) { + if (depth == 0) { WRITE("((or_tmp_var = "); Vanilla::node(gen, X); WRITE(") && (("); } + I6TargetCode::eval_property_list(gen, K, NULL, InterTree::first_child(Y), depth+1); + WRITE(") || ("); + I6TargetCode::eval_property_list(gen, K, NULL, InterTree::second_child(Y), depth+1); + if (depth == 0) { WRITE(")))"); } + return; + } + } + } + switch (I6TargetCode::pval_case_inner(Y)) { + case I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE: + WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); + WRITE(" has %S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break; + case I6G_CAN_PROVE_IS_OBJ_PROPERTY: + WRITE("("); if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); + WRITE(".%S", I6TargetCode::inner_name_inner(gen, Y)); WRITE(")"); break; + case I6G_CANNOT_PROVE: + WRITE("_final_read_pval("); + Vanilla::node(gen, K); + WRITE(", "); + if (X) Vanilla::node(gen, X); else WRITE("or_tmp_var"); + WRITE(", "); + Vanilla::node(gen, Y); + WRITE(")"); break; + } +} + +@ = + case PUSH_BIP: WRITE("@push "); VNODE_1C; break; + case PULL_BIP: WRITE("@pull "); VNODE_1C; break; + +@ = + case BREAK_BIP: WRITE("break"); break; + case CONTINUE_BIP: WRITE("continue"); break; + case RETURN_BIP: @; break; + case JUMP_BIP: WRITE("jump "); VNODE_1C; break; + case QUIT_BIP: WRITE("quit"); break; + case RESTORE_BIP: WRITE("restore "); VNODE_1C; break; + case IF_BIP: @; break; + case IFDEBUG_BIP: @; break; + case IFSTRICT_BIP: @; break; + case IFELSE_BIP: @; break; + case WHILE_BIP: @; break; + case DO_BIP: @; break; + case FOR_BIP: @; break; + case OBJECTLOOP_BIP: @; break; + case OBJECTLOOPX_BIP: @; break; + case LOOP_BIP: @; break; + case SWITCH_BIP: @; break; + case CASE_BIP: @; break; + case ALTERNATIVECASE_BIP: VNODE_1C; WRITE(", "); VNODE_2C; break; + case DEFAULT_BIP: @; break; + +@ = + int rboolean = NOT_APPLICABLE; + inter_tree_node *V = InterTree::first_child(P); + if (V->W.data[ID_IFLD] == VAL_IST) { + inter_ti val1 = V->W.data[VAL1_VAL_IFLD]; + inter_ti val2 = V->W.data[VAL2_VAL_IFLD]; + if (val1 == LITERAL_IVAL) { + if (val2 == 0) rboolean = FALSE; + if (val2 == 1) rboolean = TRUE; + } + } + switch (rboolean) { + case FALSE: WRITE("rfalse"); break; + case TRUE: WRITE("rtrue"); break; + case NOT_APPLICABLE: WRITE("return "); Vanilla::node(gen, V); break; + } + @ = WRITE("if ("); VNODE_1C; WRITE(") {\n"); INDENT; VNODE_2C; OUTDENT; WRITE("}\n"); @@ -629,7 +527,9 @@ then the result. @ = WRITE("for ("); inter_tree_node *INIT = InterTree::first_child(P); - if (!((INIT->W.data[ID_IFLD] == VAL_IST) && (INIT->W.data[VAL1_VAL_IFLD] == LITERAL_IVAL) && (INIT->W.data[VAL2_VAL_IFLD] == 1))) VNODE_1C; + if (!((INIT->W.data[ID_IFLD] == VAL_IST) && + (INIT->W.data[VAL1_VAL_IFLD] == LITERAL_IVAL) && + (INIT->W.data[VAL2_VAL_IFLD] == 1))) VNODE_1C; WRITE(":"); VNODE_2C; WRITE(":"); inter_tree_node *U = InterTree::third_child(P); @@ -681,6 +581,137 @@ then the result. WRITE("default:\n"); INDENT; VNODE_1C; WRITE(";\n"); OUTDENT; suppress_terminal_semicolon = TRUE; +@ = + case INDIRECT0_BIP: + case INDIRECT0V_BIP: + case CALLMESSAGE0_BIP: WRITE("("); VNODE_1C; WRITE(")()"); break; + case INDIRECT1_BIP: + case INDIRECT1V_BIP: + case CALLMESSAGE1_BIP: WRITE("("); VNODE_1C; WRITE(")("); + VNODE_2C; WRITE(")"); break; + case INDIRECT2_BIP: + case INDIRECT2V_BIP: + case CALLMESSAGE2_BIP: WRITE("("); VNODE_1C; WRITE(")("); + VNODE_2C; WRITE(","); VNODE_3C; WRITE(")"); break; + case INDIRECT3_BIP: + case INDIRECT3V_BIP: + case CALLMESSAGE3_BIP: WRITE("("); VNODE_1C; WRITE(")("); + VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(")"); break; + case INDIRECT4_BIP: + case INDIRECT4V_BIP: WRITE("("); VNODE_1C; WRITE(")("); + VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); + VNODE_5C; WRITE(")"); break; + case INDIRECT5_BIP: + case INDIRECT5V_BIP: WRITE("("); VNODE_1C; WRITE(")("); + VNODE_2C; WRITE(","); VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); + VNODE_5C; WRITE(","); VNODE_6C; WRITE(")"); break; + case MESSAGE0_BIP: WRITE("_final_message0("); VNODE_1C; WRITE(", "); VNODE_2C; WRITE(")"); break; + case MESSAGE1_BIP: WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)("); + VNODE_3C; WRITE("))"); break; + case MESSAGE2_BIP: WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)("); + VNODE_3C; WRITE(","); VNODE_4C; WRITE("))"); break; + case MESSAGE3_BIP: WRITE("("); VNODE_1C; WRITE(".("); VNODE_2C; WRITE("-->1)("); + VNODE_3C; WRITE(","); VNODE_4C; WRITE(","); VNODE_5C; WRITE("))"); break; + + case EXTERNALCALL_BIP: internal_error("external calls impossible in Inform 6"); break; + +@ = + case PRINT_BIP: WRITE("print "); CodeGen::lt_mode(gen, PRINTING_LTM); + VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break; + case PRINTCHAR_BIP: WRITE("print (char) "); VNODE_1C; break; + case PRINTNL_BIP: WRITE("new_line"); break; + case PRINTOBJ_BIP: WRITE("print (object) "); VNODE_1C; break; + case PRINTNUMBER_BIP: WRITE("print "); VNODE_1C; break; + case PRINTDWORD_BIP: WRITE("print (address) "); VNODE_1C; break; + case PRINTSTRING_BIP: WRITE("print (string) "); VNODE_1C; break; + case BOX_BIP: WRITE("box "); CodeGen::lt_mode(gen, BOX_LTM); + VNODE_1C; CodeGen::lt_mode(gen, REGULAR_LTM); break; + case SPACES_BIP: WRITE("spaces "); VNODE_1C; break; + case FONT_BIP: + WRITE("if ("); VNODE_1C; WRITE(") { font on; } else { font off; }"); + suppress_terminal_semicolon = TRUE; + break; + case STYLE_BIP: { + inter_tree_node *N = InterTree::first_child(P); + if ((N->W.data[ID_IFLD] == CONSTANT_IST) && + (N->W.data[FORMAT_CONST_IFLD] == CONSTANT_DIRECT)) { + inter_ti val2 = N->W.data[DATA_CONST_IFLD + 1]; + switch (val2) { + case 1: WRITE("style bold"); break; + case 2: WRITE("style underline"); break; + case 3: WRITE("style reverse"); break; + default: WRITE("style roman"); + } + } else { + WRITE("style roman"); + } + break; + } + +@ = + case MOVE_BIP: WRITE("move "); VNODE_1C; WRITE(" to "); VNODE_2C; break; + case REMOVE_BIP: WRITE("remove "); VNODE_1C; break; + +@ = + case RANDOM_BIP: WRITE("random("); VNODE_1C; WRITE(")"); break; + +@ + += +text_stream *I6TargetCode::inner_name(code_generation *gen, inter_tree_node *P) { + while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P); + inter_tree_node *prop_node = InterTree::third_child(P); + return I6TargetCode::inner_name_inner(gen, prop_node); +} + +text_stream *I6TargetCode::inner_name_inner(code_generation *gen, inter_tree_node *prop_node) { + inter_symbol *prop_symbol = NULL; + if (prop_node->W.data[ID_IFLD] == VAL_IST) { + inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD]; + inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD]; + if (Inter::Symbols::is_stored_in_data(val1, val2)) + prop_symbol = + InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2); + } + if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) { + return VanillaObjects::inner_property_name(gen, prop_symbol); + } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) { + return VanillaObjects::inner_property_name(gen, prop_symbol); + } else { + return NULL; + } +} + +@ + +@d I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE 1 +@d I6G_CAN_PROVE_IS_OBJ_PROPERTY 2 +@d I6G_CANNOT_PROVE 3 + += +int I6TargetCode::pval_case(inter_tree_node *P) { + while (P->W.data[ID_IFLD] == REFERENCE_IST) P = InterTree::first_child(P); + inter_tree_node *prop_node = InterTree::third_child(P); + return I6TargetCode::pval_case_inner(prop_node); +} + +int I6TargetCode::pval_case_inner(inter_tree_node *prop_node) { + inter_symbol *prop_symbol = NULL; + if (prop_node->W.data[ID_IFLD] == VAL_IST) { + inter_ti val1 = prop_node->W.data[VAL1_VAL_IFLD]; + inter_ti val2 = prop_node->W.data[VAL2_VAL_IFLD]; + if (Inter::Symbols::is_stored_in_data(val1, val2)) + prop_symbol = + InterSymbolsTables::symbol_from_id(Inter::Packages::scope_of(prop_node), val2); + } + if ((prop_symbol) && (Inter::Symbols::get_flag(prop_symbol, ATTRIBUTE_MARK_BIT))) { + return I6G_CAN_PROVE_IS_OBJ_ATTRIBUTE; + } else if ((prop_symbol) && (prop_symbol->definition->W.data[ID_IFLD] == PROPERTY_IST)) { + return I6G_CAN_PROVE_IS_OBJ_PROPERTY; + } else { + return I6G_CANNOT_PROVE; + } +} @h A few resources. @@ -694,7 +725,6 @@ void I6TargetCode::end_generation(code_generator *cgt, code_generation *gen) { WRITE(" t = p-->0; p = p-->1; ! print \"has \", o, \" \", p, \"^\";\n"); WRITE(" if (t == 2) { if (o has p) rtrue; rfalse; }\n"); WRITE(" if (o provides p) {\n"); - WRITE(" if (p == door_to) return o.p();\n"); WRITE(" return o.p;\n"); WRITE(" }\n"); WRITE(" rfalse;\n"); @@ -723,8 +753,7 @@ void I6TargetCode::end_generation(code_generator *cgt, code_generation *gen) { WRITE(" return o.#p;\n"); WRITE("];\n"); WRITE("[ _final_message0 o p q x a rv;\n"); - WRITE(" ! print \"Message send \", (the) o, \" --> \", p, \" \", p-->1, \" addr \", o.(p-->1), \"^\";\n"); - WRITE(" q = p-->1; a = o.q; if (metaclass(a) == Object) rv = a; else if (a) { x = self; self = o; rv = indirect(a); self = x; } ! print \"Message = \", rv, \"^\";\n"); + WRITE(" q = p-->1; a = o.q; if (metaclass(a) == Object) rv = a; else if (a) { x = self; self = o; rv = indirect(a); self = x; }\n"); WRITE(" return rv;\n"); WRITE("];\n"); WRITE("[ _final_provides K o p holder;\n"); diff --git a/inter/final-module/Chapter 5/C Assembly.w b/inter/final-module/Chapter 5/C Assembly.w index 859065803..48f3a5f05 100644 --- a/inter/final-module/Chapter 5/C Assembly.w +++ b/inter/final-module/Chapter 5/C Assembly.w @@ -218,11 +218,11 @@ void glulx_read_gprop(i7process_t *proc, i7word_t K, i7word_t obj, i7word_t pr, if (val) *val = 0; } } else { - if ((pr == i7_mgl_A_door_to)) { - if (val) *val = (i7word_t) i7_mcall_0(proc, obj, pr); - } else { +// if ((pr == i7_mgl_A_door_to)) { +// if (val) *val = (i7word_t) i7_mcall_0(proc, obj, pr); +// } else { if (val) *val = (i7word_t) i7_read_prop_value(proc, obj, pr); - } +// } } } else { i7word_t holder = i7_read_word(proc, i7_mgl_value_property_holders, K); diff --git a/resources/Documentation/Examples/Autodoor.txt b/resources/Documentation/Examples/Autodoor.txt index 56385cd80..3b41eb35c 100644 --- a/resources/Documentation/Examples/Autodoor.txt +++ b/resources/Documentation/Examples/Autodoor.txt @@ -10,7 +10,7 @@ To do this, we make use of the phrase "direction of (the door) from (a room)" -- The temporal vortex is an open door. It is west of Yesterday and east of Today. - The initial appearance of a door is usually "Nearby [an item described] leads [if the other side of the item described is visited][direction of the item described from the location] to [the other side][otherwise][direction of the item described from the location][end if]." + The initial appearance of a door is usually "Nearby [an item described] leads [if the other side of the item described is visited][direction of the item described from the location] to [the other side of the item described][otherwise][direction of the item described from the location][end if]." Test me with "w / e". diff --git a/resources/Documentation/Examples/Whither.txt b/resources/Documentation/Examples/Whither.txt index 80aebcf95..b107cda83 100644 --- a/resources/Documentation/Examples/Whither.txt +++ b/resources/Documentation/Examples/Whither.txt @@ -8,7 +8,7 @@ Here we expand on the simple examples When? and Whence?; this time we want the p The temporal vortex is an open door. It is west of Yesterday and east of Today. - The initial appearance of a door is usually "Nearby [an item described] leads [if the other side of the item described is visited][direction of the item described from the location] to [the other side][otherwise][direction of the item described from the location][end if]." + The initial appearance of a door is usually "Nearby [an item described] leads [if the other side of the item described is visited][direction of the item described from the location] to [other side of the item described][otherwise][direction of the item described from the location][end if]." Direction-relevance relates a door (called X) to a direction (called Y) when the direction of X from the location is Y. The verb to be directionally-relevant to means the direction-relevance relation. diff --git a/services/lexicon-module/Figures/excerpts-diagnostics.txt b/services/lexicon-module/Figures/excerpts-diagnostics.txt index aa3ed2746..8cb22bb61 100644 --- a/services/lexicon-module/Figures/excerpts-diagnostics.txt +++ b/services/lexicon-module/Figures/excerpts-diagnostics.txt @@ -1,15 +1,15 @@ -Size of lexicon: 3099 excerpt meanings - Stored among 839 words out of total vocabulary of 10561 +Size of lexicon: 3100 excerpt meanings + Stored among 839 words out of total vocabulary of 10562 709 words have a start list: longest belongs to report (with 293 meanings) 15 words have an end list: longest belongs to case (with 6 meanings) 29 words have a middle list: longest belongs to to (with 4 meanings) 108 words have a subset list: longest belongs to street (with 4 meanings) -Number of attempts to retrieve: 106254 - of which unsuccessful: 88639 - of which successful: 17615 +Number of attempts to retrieve: 106231 + of which unsuccessful: 88619 + of which successful: 17612 -Total attempts to match against excerpt meanings: 253776 - of which, total with incorrect hash codes: 231757 - of which, total with correct hash codes: 22019 - of which, total which matched: 19285 +Total attempts to match against excerpt meanings: 253682 + of which, total with incorrect hash codes: 231662 + of which, total with correct hash codes: 22020 + of which, total which matched: 19290 diff --git a/services/linguistics-module/Figures/stock-diagnostics.txt b/services/linguistics-module/Figures/stock-diagnostics.txt index f61ddf4b0..d3e6571ba 100644 --- a/services/linguistics-module/Figures/stock-diagnostics.txt +++ b/services/linguistics-module/Figures/stock-diagnostics.txt @@ -264,8 +264,8 @@ noun: proper: 'mapping up relation' noun: proper: 'mapping down relation' noun: proper: 'mapping inside relation' noun: proper: 'mapping outside relation' -noun: proper: 'other side' -noun: proper: 'property other side' +noun: proper: 'leading-through destination' +noun: proper: 'property leading-through destination' noun: proper: 'leading-through relation' noun: proper: 'carrying capacity' noun: proper: 'property carrying capacity' @@ -2518,7 +2518,7 @@ noun: proper: 'same-description-as relation' noun: proper: 'same-map-region-as relation' noun: proper: 'same-initial-appearance-as relation' noun: proper: 'same-opposite-as relation' -noun: proper: 'same-other-side-as relation' +noun: proper: 'same-leading-through-destination-as relation' noun: proper: 'same-carrying-capacity-as relation' noun: proper: 'same-matching-key-as relation' noun: proper: 'same-list-grouping-key-as relation' @@ -2801,7 +2801,7 @@ preposition: the same description as preposition: the same map region as preposition: the same initial appearance as preposition: the same opposite as -preposition: the same other side as +preposition: the same leading-through destination as preposition: the same carrying capacity as preposition: the same matching key as preposition: the same list grouping key as @@ -3320,7 +3320,7 @@ verb_form: be(0) + the same description as + ___ SVO verb_form: be(0) + the same map region as + ___ SVO verb_form: be(0) + the same initial appearance as + ___ SVO verb_form: be(0) + the same opposite as + ___ SVO -verb_form: be(0) + the same other side as + ___ SVO +verb_form: be(0) + the same leading-through destination as + ___ SVO verb_form: be(0) + the same carrying capacity as + ___ SVO verb_form: be(0) + the same matching key as + ___ SVO verb_form: be(0) + the same list grouping key as + ___ SVO