diff --git a/docs/BasicInformKit/S-txt.html b/docs/BasicInformKit/S-txt.html index e78d3fc392..0aba4483b8 100644 --- a/docs/BasicInformKit/S-txt.html +++ b/docs/BasicInformKit/S-txt.html @@ -414,7 +414,7 @@

if ((left_txt-->1 ofclass String) && (right_txt-->1 ofclass String)) return left_txt-->1 - right_txt-->1; if ((left_txt-->1 ofclass Routine) && (right_txt-->1 ofclass Routine)) - return left_txt-->1 - right_txt-->1; + if (left_txt-->1 == right_txt-->1) return 0; cpl = left_txt-->0; cl = TEXT_TY_Temporarily_Transmute(left_txt); cpr = right_txt-->0; cr = TEXT_TY_Temporarily_Transmute(right_txt); } else if (fl) { @@ -645,10 +645,9 @@

return r; ]; [ TEXT_TY_BlobAccessI txt blobtype ctxt wanted rtxt - brm oldbrm ch i dsize csize blobcount gp cl j; + brm oldbrm ch i dsize blobcount gp cl j; dsize = BlkValueLBCapacity(txt); - if (ctxt) csize = BlkValueLBCapacity(ctxt); - else if (rtxt) "*** rtxt without ctxt ***"; + if ((rtxt) && (ctxt == 0)) "*** rtxt without ctxt ***"; brm = WS_BRM; for (i=0:i<dsize:i++) { ch = BlkValueRead(txt, i); @@ -729,39 +728,43 @@

if (oldbrm ~= brm) blobcount++; if ((ctxt) && (blobcount == wanted)) { if (rtxt) { + if (cl+1 >= BlkValueLBCapacity(ctxt)) { + if (BlkValueSetLBCapacity(ctxt, 2*cl) == false) break; + } BlkValueWrite(ctxt, cl, 0); TEXT_TY_Concatenate(ctxt, rtxt, CHR_BLOB); - csize = BlkValueLBCapacity(ctxt); cl = TEXT_TY_CharacterLength(ctxt); if (brm == ACCEPTED_BRM) brm = ACCEPTEDN_BRM; if (brm == ACCEPTEDP_BRM) brm = ACCEPTEDPN_BRM; } else { - if (cl+1 >= csize) { + if (cl+1 >= BlkValueLBCapacity(ctxt)) { if (BlkValueSetLBCapacity(ctxt, 2*cl) == false) break; - csize = BlkValueLBCapacity(ctxt); } BlkValueWrite(ctxt, cl++, ch); } } else { if (rtxt) { - if (cl+1 >= csize) { + if (cl+1 >= BlkValueLBCapacity(ctxt)) { if (BlkValueSetLBCapacity(ctxt, 2*cl) == false) break; - csize = BlkValueLBCapacity(ctxt); } BlkValueWrite(ctxt, cl++, ch); } } } else { if ((rtxt) && (brm ~= ACCEPTEDN_BRM or ACCEPTEDPN_BRM)) { - if (cl+1 >= csize) { + if (cl+1 >= BlkValueLBCapacity(ctxt)) { if (BlkValueSetLBCapacity(ctxt, 2*cl) == false) break; - csize = BlkValueLBCapacity(ctxt); } BlkValueWrite(ctxt, cl++, ch); } } } - if (ctxt) BlkValueWrite(ctxt, cl++, 0); + if (ctxt) { + if (cl+1 >= BlkValueLBCapacity(ctxt)) { + BlkValueSetLBCapacity(ctxt, 2*cl); + } + BlkValueWrite(ctxt, cl++, 0); + } return blobcount; ]; diff --git a/docs/WorldModelKit/S-gll.html b/docs/WorldModelKit/S-gll.html index caa1d126e0..e17581e4c3 100644 --- a/docs/WorldModelKit/S-gll.html +++ b/docs/WorldModelKit/S-gll.html @@ -220,13 +220,19 @@

[ SWITCH_TRANSCRIPT_ON_R; if (actor ~= player) rfalse; if (gg_scriptstr ~= 0) { SWITCH_TRANSCRIPT_ON_RM('A'); new_line; rtrue; } + .S2Failed; if (gg_scriptfref == 0) { gg_scriptfref = glk_fileref_create_by_prompt($102, $05, GG_SCRIPTFREF_ROCK); if (gg_scriptfref == 0) jump S1Failed; } stream_open_file gg_scriptstr = glk_stream_open_file(gg_scriptfref, $05, GG_SCRIPTSTR_ROCK); - if (gg_scriptstr == 0) jump S1Failed; + if (gg_scriptstr == 0) { + Could not open selected file; select again + glk_fileref_destroy(gg_scriptfref); + gg_scriptfref = 0; + jump S2Failed; + } glk_window_set_echo_stream(gg_mainwin, gg_scriptstr); SWITCH_TRANSCRIPT_ON_RM('B'); new_line; VersionSub(); diff --git a/docs/assertions-module/3-nuor.html b/docs/assertions-module/3-nuor.html index 8d36a6ca28..0334004a31 100644 --- a/docs/assertions-module/3-nuor.html +++ b/docs/assertions-module/3-nuor.html @@ -159,22 +159,38 @@

wording SP = Node::get_text(V->next); wording OP = Node::get_text(V->next->next); <use-setting>(SP); always passes - int N = <<r>>; + int N = <<r>>; if (N < 0) N = -1; - use_option *uo = CREATE(use_option); - uo->name = GET_RW(<use-setting>, 1); - uo->expansion = OP; - uo->option_used = FALSE; - uo->minimum_setting_value = (N >= 0) ? N : -1; - uo->source_file_scoped = FALSE; - uo->notable_option_code = -1; - if (<notable-use-option-name>(uo->name)) uo->notable_option_code = <<r>>; - if (uo->notable_option_code == AUTHORIAL_MODESTY_UO) uo->source_file_scoped = TRUE; - uo->where_used = NULL; - uo->where_created = current_sentence; - uo->compilation_data = RTUseOptions::new_compilation_data(uo); - Nouns::new_proper_noun(uo->name, NEUTER_GENDER, ADD_TO_LEXICON_NTOPT, - MISCELLANEOUS_MC, Rvalues::from_use_option(uo), Task::language_of_syntax()); + wording UOW = GET_RW(<use-setting>, 1); + use_option *existing_uo = NewUseOptions::parse_uo(UOW); + if (existing_uo) { + if ((Wordings::match(OP, existing_uo->expansion) == FALSE) || + (N != existing_uo->minimum_setting_value)) { + Problems::quote_source(1, current_sentence); + Problems::quote_wording(2, UOW); + Problems::quote_source(3, existing_uo->where_created); + StandardProblems::handmade_problem(Task::syntax_tree(), _p_(PM_UODuplicate)); + Problems::issue_problem_segment( + "In %1, you define a use option '%2', but that has already been " + "defined, and with a different meaning: %3."); + Problems::issue_problem_end(); + } + } else { + use_option *uo = CREATE(use_option); + uo->name = UOW; + uo->expansion = OP; + uo->option_used = FALSE; + uo->minimum_setting_value = N; + uo->source_file_scoped = FALSE; + uo->notable_option_code = -1; + if (<notable-use-option-name>(uo->name)) uo->notable_option_code = <<r>>; + if (uo->notable_option_code == AUTHORIAL_MODESTY_UO) uo->source_file_scoped = TRUE; + uo->where_used = NULL; + uo->where_created = current_sentence; + uo->compilation_data = RTUseOptions::new_compilation_data(uo); + Nouns::new_proper_noun(uo->name, NEUTER_GENDER, ADD_TO_LEXICON_NTOPT, + MISCELLANEOUS_MC, Rvalues::from_use_option(uo), Task::language_of_syntax()); + }
  • This code is used in §3.

§4. Having registered the use option names as miscellaneous, we need to parse @@ -182,7 +198,7 @@

-use_option *NewUseOptions::parse_uo(wording OW) {
+use_option *NewUseOptions::parse_uo(wording OW) {
     parse_node *p = Lexicon::retrieve(MISCELLANEOUS_MC, OW);
     if (Rvalues::is_CONSTANT_of_kind(p, K_use_option)) return Rvalues::to_use_option(p);
     return NULL;
diff --git a/docs/assertions-module/4-ass.html b/docs/assertions-module/4-ass.html
index c51af0e82b..dfd0d0fa2a 100644
--- a/docs/assertions-module/4-ass.html
+++ b/docs/assertions-module/4-ass.html
@@ -356,12 +356,15 @@ 

((Node::get_type(py) == COMMON_NOUN_NT) && (Node::get_evaluation(py)) && (Annotations::read_int(py, multiplicity_ANNOT) > 1) && (Node::get_type(px) != RELATIONSHIP_NT))) { - StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_MultiplyVague), - "multiple objects can only be put into relationships", - "by saying something like 'In the Drawing Room are two women.', " - "and all other assertions with multiple objects are disallowed: " - "so 'Three doors are open.' is rejected - I can't tell which three."); - return; + if (Node::get_implicit_in_creation_of(current_sentence) == NULL) { + LOG("px = $T\npy=$T\n", px, py); + StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_MultiplyVague), + "multiple objects can only be put into relationships", + "by saying something like 'In the Drawing Room are two women.', " + "and all other assertions with multiple objects are disallowed: " + "so 'Three doors are open.' is rejected - I can't tell which three."); + return; + } }

@@ -1394,6 +1397,10 @@

+    if (Annotations::read_int(current_sentence->down, sentence_is_existential_ANNOT)) {
+        Assertions::Creator::convert_instance_to_nounphrase(px, NULL);
+        Annotations::write_int(current_sentence->down, sentence_is_existential_ANNOT, FALSE);
+    }
     Refiner::turn_player_to_yourself(px);
     if ((Node::get_type(px) == PROPER_NOUN_NT) &&
         (Lvalues::get_nonlocal_variable_if_any(Node::get_evaluation(px)))) {
@@ -1464,12 +1471,20 @@ 

"and it would only confuse things if we used it for a value as well."); Problems::issue_problem_end(); } else { - Problems::Using::assertion_problem(Task::syntax_tree(), _p_(PM_ObjectIsAction), - "that is putting the definition back to front", - "since I need these categorisations of actions to take the form 'Kissing a " - "woman is love', not 'Love is kissing a woman'. (This is really because it " - "is better style: love might be many other things too, and we don't want to " - "imply that the present definition is all-inclusive.)"); + parse_node *v = current_sentence->down; + if ((Node::is(v, VERB_NT)) && + (Annotations::read_int(v, verbal_certainty_ANNOT) == INITIALLY_CE)) + Problems::Using::assertion_problem(Task::syntax_tree(), _p_(PM_ObjectIsAction2), + "you need to add 'the action of' after 'initially'", + "in order to clarify that you mean this sentence to set a variable " + "to an action (if in fact that's what you mean to do!)."); + else + Problems::Using::assertion_problem(Task::syntax_tree(), _p_(PM_ObjectIsAction), + "that is putting the definition back to front", + "since I need these categorisations of actions to take the form 'Kissing a " + "woman is love', not 'Love is kissing a woman'. (This is really because it " + "is better style: love might be many other things too, and we don't want to " + "imply that the present definition is all-inclusive.)"); }

diff --git a/docs/assertions-module/4-ass2.html b/docs/assertions-module/4-ass2.html index 69b13f79b2..b8f9a3793b 100644 --- a/docs/assertions-module/4-ass2.html +++ b/docs/assertions-module/4-ass2.html @@ -224,7 +224,7 @@

Annotations::write_int(current_sentence, you_can_ignore_ANNOT, TRUE); - LOGIF(ASSEMBLIES, "New generalisation made concerning $j:\nLook for: $T\nMake: $T\n", + LOGIF(ASSEMBLIES, "Assembly on $j:\n- - - -\nLook for: $T\nMake: $T- - - -\n\n", k, g->look_for, g->what_to_make); Assertions::Assemblies::ensure_all_generalisations_made(k); @@ -458,7 +458,7 @@

global_pass_state.assembly_position = new_sentence; LOGIF(ASSEMBLIES, - "Subject $j satisfies generalisation %d (from $j), making sentence:\n$T", + "Subject $j satisfies generalisation %d (from $j), making sentence:\n$T\n", infs, g->allocation_id, infs_k, new_sentence); } diff --git a/docs/assertions-module/4-pk.html b/docs/assertions-module/4-pk.html index f7823f9e45..1292c81d97 100644 --- a/docs/assertions-module/4-pk.html +++ b/docs/assertions-module/4-pk.html @@ -72,7 +72,7 @@

Assert::true(prop, prevailing_mood); } -

§2. Asserting properties, three different ways. In these three alternative routines, we can assert that a given owner — specified +

§2. Asserting properties, three different ways. In these three alternative functions, we can assert that a given owner — specified either as an object, a value or a subtree — should have

@@ -179,28 +179,46 @@

Here there's no need to perform any typechecking; all of that is done by -the proposition machinery. +the proposition machinery. But we do look for empty lists, whose implied kind +can only be deduced from a wider context than that proposition describes.

 parse_node *Assertions::PropertyKnowledge::property_value_from_property_subtree(property *prn, parse_node *py) {
     if (Properties::is_either_or(prn)) {
-        if (py == NULL) Issue a problem, as this uses a bare adjective as if a value-property3.1;
-        Issue a problem, as this makes sense only for value properties3.2;
+        if (py == NULL) Issue a problem, as this uses a bare adjective as if a value-property3.2;
+        Issue a problem, as this makes sense only for value properties3.3;
     }
-    Check that the subtree does indeed express a property value3.3;
+    Check that the subtree does indeed express a property value3.4;
 
     parse_node *val = NonlocalVariables::substitute_constants(
         Node::get_evaluation(py));
     kind *property_kind = ValueProperties::kind(prn);
 
+    Cast the empty list to whatever kind of list is expected3.1;
+
     if ((Specifications::is_value(val)) && (Node::is(val, CONSTANT_NT) == FALSE))
-        Issue a problem for a property value which isn't a constant3.4;
+        Issue a problem for a property value which isn't a constant3.5;
 
     return val;
 }
 
-

§3.1. Issue a problem, as this uses a bare adjective as if a value-property3.1 = +

§3.1. Cast the empty list to whatever kind of list is expected3.1 = +

+ +
+    kind *constant_kind = Specifications::to_kind(val);
+    if ((Kinds::get_construct(constant_kind) == CON_list_of) &&
+        (Kinds::eq(Kinds::unary_construction_material(constant_kind), K_nil)) &&
+        (Lists::length_of_ll(Node::get_text(val)) == 0) &&
+        (Kinds::get_construct(property_kind) == CON_list_of)) {
+        Lists::set_kind_of_list_at(Node::get_text(val), property_kind);
+        Node::set_kind_of_value(val, property_kind);
+        constant_kind = property_kind;
+    }
+
+
  • This code is used in §3.
+

§3.2. Issue a problem, as this uses a bare adjective as if a value-property3.2 =

@@ -216,7 +234,7 @@ 

return NULL;

-

§3.2. Issue a problem, as this makes sense only for value properties3.2 = +

§3.3. Issue a problem, as this makes sense only for value properties3.3 =

@@ -231,7 +249,7 @@ 

return NULL;

-

§3.3. Check that the subtree does indeed express a property value3.3 = +

§3.4. Check that the subtree does indeed express a property value3.4 =

@@ -286,7 +304,7 @@ 

}

-

§3.4. Issue a problem for a property value which isn't a constant3.4 = +

§3.5. Issue a problem for a property value which isn't a constant3.5 =

diff --git a/docs/assertions-module/4-rpt.html b/docs/assertions-module/4-rpt.html
index d11bed8b61..234af1eeba 100644
--- a/docs/assertions-module/4-rpt.html
+++ b/docs/assertions-module/4-rpt.html
@@ -188,7 +188,7 @@ 

-int Refiner::nominalise_adjective(parse_node *p) {
+int Refiner::nominalise_adjective(parse_node *p) {
     if ((p) && (Node::get_type(p) == ADJECTIVE_NT)) {
         unary_predicate *pred = Node::get_predicate(p);
         if (AdjectivalPredicates::parity(pred) == TRUE) {
diff --git a/docs/assertions-module/4-tc.html b/docs/assertions-module/4-tc.html
index 0166c89b46..8cc39532ab 100644
--- a/docs/assertions-module/4-tc.html
+++ b/docs/assertions-module/4-tc.html
@@ -1041,7 +1041,7 @@ 

 int name_stubs_count = 0;
 
-void Assertions::Creator::convert_instance_to_nounphrase(parse_node *p, binary_predicate *hinge_relation) {
+void Assertions::Creator::convert_instance_to_nounphrase(parse_node *p, binary_predicate *hinge_relation) {
     Check we are sure about this4.1;
     int confect_name_flag = FALSE;
     if ((hinge_relation) && (BinaryPredicates::is_the_wrong_way_round(hinge_relation)))
diff --git a/docs/core-module/1-inaa.html b/docs/core-module/1-inaa.html
index 047022a7f1..67cf9acbcc 100644
--- a/docs/core-module/1-inaa.html
+++ b/docs/core-module/1-inaa.html
@@ -650,6 +650,7 @@ 

Annotations::allow_for_category(L3_NCAT, subject_ANNOT); Annotations::allow_for_category(L3_NCAT, explicit_gender_marker_ANNOT); Annotations::allow(ADJECTIVE_NT, predicate_ANNOT); + Annotations::allow(ADJECTIVE_NT, multiplicity_ANNOT); Annotations::allow(VERB_NT, category_of_I6_translation_ANNOT); Annotations::allow(VERB_NT, rule_placement_sense_ANNOT); Annotations::allow(COMMON_NOUN_NT, creation_site_ANNOT); diff --git a/docs/index-module/4-sm.html b/docs/index-module/4-sm.html index 04b912ed4c..5d07527cb9 100644 --- a/docs/index-module/4-sm.html +++ b/docs/index-module/4-sm.html @@ -2675,7 +2675,7 @@

initial_spending = session->calc.drognas_spent; LOGIF(SPATIAL_MAP, "\nTACTIC: Exploding submap %d: initial heat %d\n", sub->allocation_id, sub->heat); - int keep_trying = TRUE, moves = 0; + int keep_trying = TRUE, moves = 0, explosion_distance = MAX_EXPLOSION_DISTANCE; while (keep_trying) { keep_trying = FALSE; faux_instance *R; @@ -2685,20 +2685,25 @@

LOGIF(SPATIAL_MAP, "Collision: pushing %S away\n", FauxInstances::get_name(R)); int x, y, coldest = FUSION_POINT; - vector Coldest = Geometry::vec(MAX_EXPLOSION_DISTANCE + 1, 0, 0); - for (x = -MAX_EXPLOSION_DISTANCE; x<=MAX_EXPLOSION_DISTANCE; x++) - for (y = -MAX_EXPLOSION_DISTANCE; y<=MAX_EXPLOSION_DISTANCE; y++) - if ((x != 0) || (y != 0)) { - vector V = Geometry::vec_plus(At, Geometry::vec(x, y, 0)); + vector Coldest = Geometry::vec(explosion_distance + 1, 0, 0); + for (x = -explosion_distance; x<=explosion_distance; x++) + for (y = -explosion_distance; y<=explosion_distance; y++) { + vector V = Geometry::vec_plus(At, Geometry::vec(x, y, 0)); + if ((V.x != 0) || (V.y != 0)) { if (SpatialMap::occupied_in_submap(sub, V) == 0) { SpatialMap::move_room_to(R, V, session); int h = SpatialMap::find_submap_heat(sub); if (h < coldest) { Coldest = V; coldest = h; } } } - SpatialMap::move_room_to(R, Geometry::vec_plus(At, Coldest), session); - LOGIF(SPATIAL_MAP, "Moving %S to blank offset (%d,%d,%d) for heat %d\n", - FauxInstances::get_name(R), Coldest.x, Coldest.y, Coldest.z, coldest); + } + if (coldest < FUSION_POINT) { + SpatialMap::move_room_to(R, Geometry::vec_plus(At, Coldest), session); + LOGIF(SPATIAL_MAP, "Moving %S to blank offset (%d,%d,%d) for heat %d\n", + FauxInstances::get_name(R), Coldest.x, Coldest.y, Coldest.z, coldest); + } else { + explosion_distance++; + } keep_trying = TRUE; moves++; break; diff --git a/docs/knowledge-module/3-tpr.html b/docs/knowledge-module/3-tpr.html index 8a5edf6b74..13e4fb1457 100644 --- a/docs/knowledge-module/3-tpr.html +++ b/docs/knowledge-module/3-tpr.html @@ -113,8 +113,8 @@

StandardProblems::tcp_problem(_p_(PM_BadProvides), tck, "that asks whether something provides something, and in Inform 'to provide' " "means that an object (or value) has a property attached - for instance, " - "containers provide the property 'carrying capacity'. Here, though, we have " - "%4 rather than the name of a property."); + "containers provide the property 'carrying capacity'. Here, though, what " + "comes after 'provides' is %4 rather than the name of a property."); return NEVER_MATCH; }

diff --git a/docs/knowledge-module/4-vs.html b/docs/knowledge-module/4-vs.html index 4be7dc1d7d..6544f6344c 100644 --- a/docs/knowledge-module/4-vs.html +++ b/docs/knowledge-module/4-vs.html @@ -177,17 +177,33 @@

kind *kind_as_declared = NonlocalVariables::kind(nlv); kind *constant_kind = Specifications::to_kind(val); + Cast the empty list to whatever kind of list is expected3.1; + int outcome = Kinds::compatible(constant_kind, kind_as_declared); int throw_problem = FALSE; if (outcome == NEVER_MATCH) throw_problem = TRUE; if ((model_checking_stage) && (outcome == SOMETIMES_MATCH)) throw_problem = TRUE; if (throw_problem) - The value doesn't match the kind of the variable3.1; + The value doesn't match the kind of the variable3.2; return TRUE; }

-

§3.1. The value doesn't match the kind of the variable3.1 = +

§3.1. Cast the empty list to whatever kind of list is expected3.1 = +

+ +
+    if ((Kinds::get_construct(constant_kind) == CON_list_of) &&
+        (Kinds::eq(Kinds::unary_construction_material(constant_kind), K_nil)) &&
+        (Lists::length_of_ll(Node::get_text(val)) == 0) &&
+        (Kinds::get_construct(kind_as_declared) == CON_list_of)) {
+        Lists::set_kind_of_list_at(Node::get_text(val), kind_as_declared);
+        Node::set_kind_of_value(val, kind_as_declared);
+        constant_kind = kind_as_declared;
+    }
+
+
  • This code is used in §3.
+

§3.2. The value doesn't match the kind of the variable3.2 =

diff --git a/docs/linguistics-module/1-cao.html b/docs/linguistics-module/1-cao.html
index 5ef7c8609d..193f28fb11 100644
--- a/docs/linguistics-module/1-cao.html
+++ b/docs/linguistics-module/1-cao.html
@@ -42,7 +42,9 @@ 

  • inform6
  • inpolicy
  • inrtps
  • -
  • extensions and kits
  • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/1-dgr.html b/docs/linguistics-module/1-dgr.html index 5b2aefa3a1..e953e2f149 100644 --- a/docs/linguistics-module/1-dgr.html +++ b/docs/linguistics-module/1-dgr.html @@ -46,7 +46,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/1-lm.html b/docs/linguistics-module/1-lm.html index 3b7c633162..cba6650a91 100644 --- a/docs/linguistics-module/1-lm.html +++ b/docs/linguistics-module/1-lm.html @@ -33,7 +33,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/1-sc.html b/docs/linguistics-module/1-sc.html index 7e9228049f..9d5504343e 100644 --- a/docs/linguistics-module/1-sc.html +++ b/docs/linguistics-module/1-sc.html @@ -41,7 +41,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/2-adj.html b/docs/linguistics-module/2-adj.html index ba930b771d..75f2c287e3 100644 --- a/docs/linguistics-module/2-adj.html +++ b/docs/linguistics-module/2-adj.html @@ -42,7 +42,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/2-art.html b/docs/linguistics-module/2-art.html index 1dc4754a8e..31fc234158 100644 --- a/docs/linguistics-module/2-art.html +++ b/docs/linguistics-module/2-art.html @@ -42,7 +42,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/2-daq.html b/docs/linguistics-module/2-daq.html index ff4b866543..341347ccf9 100644 --- a/docs/linguistics-module/2-daq.html +++ b/docs/linguistics-module/2-daq.html @@ -56,7 +56,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/2-nns.html b/docs/linguistics-module/2-nns.html index ad0ab94652..10e7698937 100644 --- a/docs/linguistics-module/2-nns.html +++ b/docs/linguistics-module/2-nns.html @@ -41,7 +41,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/2-prn.html b/docs/linguistics-module/2-prn.html index 2b9ae5426b..8bfba3415d 100644 --- a/docs/linguistics-module/2-prn.html +++ b/docs/linguistics-module/2-prn.html @@ -42,7 +42,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-aoc.html b/docs/linguistics-module/3-aoc.html index 83636109db..75e73f4ca3 100644 --- a/docs/linguistics-module/3-aoc.html +++ b/docs/linguistics-module/3-aoc.html @@ -42,7 +42,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-apoo.html b/docs/linguistics-module/3-apoo.html index 2958c3ed6a..cbb31961cd 100644 --- a/docs/linguistics-module/3-apoo.html +++ b/docs/linguistics-module/3-apoo.html @@ -42,7 +42,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-prp.html b/docs/linguistics-module/3-prp.html index 45d8bcc7fe..7fc23c8d80 100644 --- a/docs/linguistics-module/3-prp.html +++ b/docs/linguistics-module/3-prp.html @@ -42,7 +42,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-sm.html b/docs/linguistics-module/3-sm.html index 52668a1bcb..bcf8686ad5 100644 --- a/docs/linguistics-module/3-sm.html +++ b/docs/linguistics-module/3-sm.html @@ -41,7 +41,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-vm.html b/docs/linguistics-module/3-vm.html index a2b6db04fe..ecf7bdb995 100644 --- a/docs/linguistics-module/3-vm.html +++ b/docs/linguistics-module/3-vm.html @@ -41,7 +41,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-vrb.html b/docs/linguistics-module/3-vrb.html index 6bd48c05a8..481bfa300c 100644 --- a/docs/linguistics-module/3-vrb.html +++ b/docs/linguistics-module/3-vrb.html @@ -41,7 +41,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/3-vu.html b/docs/linguistics-module/3-vu.html index d96ecd1906..42f734ad77 100644 --- a/docs/linguistics-module/3-vu.html +++ b/docs/linguistics-module/3-vu.html @@ -56,7 +56,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/4-np.html b/docs/linguistics-module/4-np.html index a8d423a2b8..7fe4774bd0 100644 --- a/docs/linguistics-module/4-np.html +++ b/docs/linguistics-module/4-np.html @@ -56,7 +56,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/4-vp.html b/docs/linguistics-module/4-vp.html index 60a0d5deeb..ef936e3252 100644 --- a/docs/linguistics-module/4-vp.html +++ b/docs/linguistics-module/4-vp.html @@ -47,7 +47,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

    -int VerbPhrases::tracing(int A) {
    +int VerbPhrases::tracing(int A) {
         #ifdef TRACING_LINGUISTICS_CALLBACK
         return TRACING_LINGUISTICS_CALLBACK(A);
         #endif
    @@ -295,7 +297,7 @@ 

    } int rv = VerbPhrases::seek_inner(W, X, XP, existential_OP_edge, detect_occurrences); if (VerbPhrases::tracing(SEEK_VP_TRACE)) { - LOG_OUTDENT; if (rv) LOG("Seek succeeded\n"); else LOG("Seek failed\n"); + LOG_OUTDENT; if (rv) LOG("Seek succeeded: $T\n", *XP); else LOG("Seek failed\n"); } return rv; } @@ -606,7 +608,10 @@

    LOG_INDENT; int rv = VerbPhrases::seek(OW, X, XP, last_preposition_position, detect_occurrences); LOG_OUTDENT; - if (rv) return rv; + if (rv) { + Annotations::write_int(*XP, sentence_is_existential_ANNOT, TRUE); + return rv; + } existential = TRUE; structures = SVOO_FS_BIT; req1 = NULL; req2 = prep1; }

    @@ -624,8 +629,6 @@

    if (existential_OP_edge > 0) i.e., if we have recursed if (<pre-verb-rc-marker>(SW)) { there is indeed a "which" at the end of SW SW = GET_RW(<pre-verb-rc-marker>, 1); so trim it off - if (VerbPhrases::tracing(SEEK_VP_TRACE)) - LOG("Trimmed to: (%W) $w (%W)\n", SW, vi, OW); }

    @@ -648,12 +651,7 @@

    VW = Wordings::up_to(TW, Wordings::first_wn(OW) - 1); usage_succeeds = TRUE; } - if (usage_succeeds == FALSE) { - if (VerbPhrases::tracing(SEEK_VP_TRACE)) - LOG("$w + $p + $p : failed for lack of '$p'\n", - vi, prep1, prep2, req1); - continue; - } + if (usage_succeeds == FALSE) continue; } if (req2) { @@ -672,12 +670,7 @@

    OW = Wordings::from(OW, found + WordAssemblages::length(&(req2->prep_text))); usage_succeeds = TRUE; } - if (usage_succeeds == FALSE) { - if (VerbPhrases::tracing(SEEK_VP_TRACE)) - LOG("$w + $p + $p : failed for lack of '$p'\n", - vi, prep1, prep2, req2); - continue; - } + if (usage_succeeds == FALSE) continue; } diff --git a/docs/linguistics-module/P-asd.html b/docs/linguistics-module/P-asd.html index 2fe838012f..1a9340dd98 100644 --- a/docs/linguistics-module/P-asd.html +++ b/docs/linguistics-module/P-asd.html @@ -38,7 +38,9 @@

  • inform6
  • inpolicy
  • inrtps
  • -
  • extensions and kits
  • +

    Resources

    Repository

    Related Projects

      diff --git a/docs/linguistics-module/P-htitm.html b/docs/linguistics-module/P-htitm.html index 797348ddee..3e6d82b3b6 100644 --- a/docs/linguistics-module/P-htitm.html +++ b/docs/linguistics-module/P-htitm.html @@ -33,7 +33,9 @@

    • inform6
    • inpolicy
    • inrtps
    • -
    • extensions and kits
    • +

    Resources

    Repository

    Related Projects

    Resources

    Repository

    Related Projects

    Resources

    Repository

    Related Projects