Scroll Thief — 60 of 138

Daniel M. Stelzer

Release 2

Section C - Hacky Disambiguation

Include (-

[ PrintInferredCommand from singleton_noun; ! Nothing changed here.

singleton_noun = FALSE;

if ((from ~= 0) && (from == pcount-1) &&

(pattern-->from > 1) && (pattern-->from < REPARSE_CODE))

singleton_noun = TRUE;

if (singleton_noun) {

BeginActivity(CLARIFYING_PARSERS_CHOICE_ACT, pattern-->from);

if (ForActivity(CLARIFYING_PARSERS_CHOICE_ACT, pattern-->from) == 0) {

print "("; PrintCommand(from); print ")^";

}

EndActivity(CLARIFYING_PARSERS_CHOICE_ACT, pattern-->from);

} else {

print "("; PrintCommand(from); print ")^";

}

];

[ PrintCommand from i k spacing_flag spell_flag; ! One slight change here.

if (from == 0) {

i = verb_word;

if (LanguageVerb(i) == 0){

spell_flag = PrintVerb(i);

if (spell_flag == 0) print (address) i;

}

from++; spacing_flag = true;

}

for (k=from : k<pcount : k++) {

i = pattern-->k;

if (i == PATTERN_NULL) continue;

if (spacing_flag) print (char) ' ';

if (i == 0) { PARSER_CLARIF_INTERNAL_RM('F'); jump TokenPrinted; }

if (i == 1) {

if (spell_flag == 0)

PARSER_CLARIF_INTERNAL_RM('G'); ! "that"

else

print "that spell at"; ! custom (changed) message

jump TokenPrinted;

}

if (i >= REPARSE_CODE)

print (address) VM_NumberToDictionaryAddress(i-REPARSE_CODE);

else

if (i ofclass K3_direction)

print (LanguageDirection) i; ! the direction name as adverb

else

print (the) i;

.TokenPrinted;

spacing_flag = true;

}

];

-) instead of "Print Command" in "Parser.i6t".

Include (-

{-log:Compiling I6 Verb directives}

{-call:PL::Parsing::Verbs::compile_all}

{-log:Compiling noun and scope filter tokens}

{-call:PL::Parsing::Tokens::Filters::compile}

[ UnknownVerb; verb_wordnum = 0; return 'no.verb'; ];

[ PrintVerb v;

if (v == 'no.verb') { print "cast"; rtrue; } ! This line was changed, since casting is the only in-universe action which can happen with no verb.

rfalse;

];

-) instead of "Grammar" in "Output.i6t".