DoerParserclassdoer.t[858]

A DoerParser is a helper object we use during initialization for parsing Doer 'cmd' strings and turning them into action description lists. The language-specific library creates these for us based on the language grammar.

These objects are only used during initialization, since they're only needed to set up the internal representation of a Doer command template string. During normal play we only need that internal representation.

class DoerParser :   object

Superclass Tree   (in declaration order)

DoerParser
        object

Subclass Tree  

(none)

Global Objects  

(none)

Summary of Properties  

action_  pat_  roles_  verb_ 

Summary of Methods  

construct 

Properties  

action_doer.t[873]

The Action object for the verb.

pat_doer.t[893]
The regular expression for the verb rule. The verb initializer sets this up to contain the literal text of the verb rule's literal tokens, and to substitute a parenthesized group wildcard pattern for each noun slot. For example, for English, a Give To rule might look like 'give (.+) to (.+)'.

roles_doer.t[902]
The list of object roles. This is a list of NounRole objects. The list entries correspond positionally to the parenthesized groups in the regular expression string, so roles_[1] is the noun role for the first parenthesized group, roles_[2] is the noun role for the second group, and so on.

verb_doer.t[884]
The main verb word. This is simply the first word of the verb's token list. This is essentially a hash, to reduce the number of regular expressions we have to test individually. This saves us a lot of compute time, since it's very quick to pull out the first word and get a list of the small set of rules with the same first word. We then test each of those potential matches by doing the full regular expression comparison.

Methods  

construct (action, v, pat, roles)doer.t[864]

Construction. The language library should create one of these objects for each verb phrasing it wants to define for use in writing Doer 'cmd' strings.

Adv3Lite Library Reference Manual
Generated on 03/07/2024 from adv3Lite version 2.1