Prev: 31158 Up: Map Next: 31347
31252: Inglish: Resolve The First Noun
Resolves the first noun of the clause into the current object, or counts another try in the third match buffer.
Inglish_ResolveTheFirstNoun 31252 CALL Inglish_FindTheFirstNoun Call Inglish_FindTheFirstNoun to find the first noun.
31255 JR NZ,Inglish_ResolveTheFirstNoun_CountTheThirdMatch Jump to Inglish_ResolveTheFirstNoun_CountTheThirdMatch if Inglish_FindTheFirstNoun returned an object.
31257 LD A,(31040) Return if the grammar marker is not 1.
31260 CP 1
31262 RET NZ
31263 LD A,(31062) Read the copied grammar marker.
31266 LD (46824),A Update *CurrentObject.
31269 CALL Inglish_NoteTheSecondNoun Call Inglish_NoteTheSecondNoun to note the second noun.
31272 CALL Inglish_TestTheScratchBits Call Inglish_TestTheScratchBits to test the scratch bits.
31275 JR NZ,Inglish_ResolveTheFirstNoun_FindTheSecondNoun Jump to Inglish_ResolveTheFirstNoun_FindTheSecondNoun if Inglish_TestTheScratchBits returned with the zero flag clear.
31277 RET Return.
Inglish_ResolveTheFirstNoun_CountTheThirdMatch 31278 LD HL,31039 Point HL at the third match buffer.
31281 INC (HL) Count one more in the third match buffer.
31282 CALL Inglish_TestTheScratchBits Call Inglish_TestTheScratchBits to test the scratch bits.
31285 JR Z,Inglish_ResolveTheFirstNoun_RunTheAction Jump to Inglish_ResolveTheFirstNoun_RunTheAction if Inglish_TestTheScratchBits returned zero.
31287 CALL Inglish_NoteTheSecondNoun Call Inglish_NoteTheSecondNoun to note the second noun.
31290 CALL Inglish_FindTheSecondNoun Call Inglish_FindTheSecondNoun to find the second noun.
Inglish_ResolveTheFirstNoun_TestForASecondNoun 31293 JR Z,Inglish_ResolveTheFirstNoun Jump back to Inglish_ResolveTheFirstNoun if Inglish_FindTheSecondNoun found no second noun (255).
31295 LD A,(31059) Return if the phrase-byte flag reached zero.
31298 DEC A
31299 RET Z
31300 LD A,(46824) Read *CurrentObject.
31303 LD (31062),A Update the copied grammar marker.
31306 LD HL,31040 Point HL at the grammar marker.
31309 INC (HL) Count one more in the grammar marker.
31310 JR Inglish_ResolveTheFirstNoun Jump back to Inglish_ResolveTheFirstNoun to run the grammar.
Inglish_ResolveTheFirstNoun_RunTheAction 31312 CALL Inglish_AskWhetherToSuppress Call Inglish_AskWhetherToSuppress to run the action and see whether its message was held back.
31315 JR Inglish_ResolveTheFirstNoun_TestForASecondNoun Jump back to Inglish_ResolveTheFirstNoun_TestForASecondNoun to read the next word.
Inglish_ResolveTheFirstNoun_FindTheSecondNoun 31317 CALL Inglish_FindTheSecondNoun Call Inglish_FindTheSecondNoun to find the second noun.
31320 JR NZ,Inglish_ResolveTheFirstNoun_ReadTheSecondObject Jump to Inglish_ResolveTheFirstNoun_ReadTheSecondObject if Inglish_FindTheSecondNoun found a second noun.
31322 LD A,(31041) Return if the second grammar marker is not 1.
31325 CP 1
31327 RET NZ
31328 LD A,(31063) Read the copied second marker.
31331 LD (46825),A Update *46825.
31334 RET Return.
Inglish_ResolveTheFirstNoun_ReadTheSecondObject 31335 LD A,(46825) Read *46825.
31338 LD (31063),A Update the copied second marker.
31341 LD HL,31041 Point HL at the second grammar marker.
31344 INC (HL) Count one more in the second grammar marker.
31345 JR Inglish_ResolveTheFirstNoun_FindTheSecondNoun Jump back to Inglish_ResolveTheFirstNoun_FindTheSecondNoun to run the grammar.
Prev: 31158 Up: Map Next: 31347