|
система разработки интерактивной литературы на русском языке
Свойства, методы, объекты, и функции
Перевод главы из мануала по парсеру "Parser Summary and Quick Reference".
Парсер может вызывать методы или функции, которые определены для объектов.
Здесь можно видеть только краткое описание каждой функции, а за подробностями
придётся обращаться к английскому руководству.
Свойства и методы
- action(actor)
-
Вызывается
в deepverb объекте в течение выполнения команды для исполнения команды
без объекта.
- actorAction(verb, dobj, prep, iobj)
- Вызывается actor объектом в течение выполнения команды.
- sdesc
-
Используется для отображения короткого описания объекта.
- adjective
-
Определяет слова как прилагательные и создаёт ассоциацию с объектом.
- anyvalue(num)
-
Парсер вызывает этот метод для объекта с обычным числовым
прилагательным (adjective = '#') когда игрок использует "любой"
с существительным ссылающим на объект. Этот метод возвращает число для
использования парсером.
- article
- Определяет слово как артикль. Как в русском языке использовать, ума не
приложу.
- cantReach(actor)
-
Вызывается в объекте (только если cantReach не определён в глаголе)
когда
объект видим, но не доступен; подразумевается, что должно быть выдано
соответствующее
сообщение.
- cantReach(actor, dolist, iolist, prep)
-
Вызывается в глаголе когда список объектов (только один из dolist или
iolist
будет не nil) видим, но не доступен;
подразумевается что метод всё объяснит.
- construct
-
Вызывается как только объект создан исполнением new оператора.
Как минимум, метод вставит объект в список содержимого contents
контейнера.
- contents
- Список содержимого контейнера.
- destruct
-
Вызывается сразу перед уничтожением объекта оператором delete.
Как минимум, метод удаляет объект из списка содержимого contents,
и должен убедиться, что объект не упоминается больше нигде.
- disambigDobj(actor, prep, iobj, verprop, wordlist, objlist, flaglist,
numberWanted, isAmbiguous, silent)
-
Парсер вызывает этот метод в объекте deepverb для
разбора обыкновенной фразы с существительным, используемым как прямой объект.
Парсер
вызывает этот метод для любой обыкновенной фразы с существительным, используемым
как прямой объект,
вне зависимости от того, является ли фраза действительно двусмысленной, или нет.
- disambigIobj(actor, prep, dobj, verprop, wordlist, objlist, flaglist,
numberWanted, isAmbiguous, silent)
-
Парсер вызывает этот метод в объекте deepverb для
разбора обычной фразы с существительным, используемым как косвенный объект.
Парсер
вызывает этот метод для любой обычной фразы с существительным, используемым как
косвенный объект,
вне зависимости от того, является ли фраза действительно двусмысленной, или нет.
- doAction
-
Действие с прямым объектом (Direct Object Action). Связано с объектом
deepverb. Определяет глагольный шаблон для
команд с "односуществительным" глаголом, и определяет суффикс используемый для
действий и верификационных
методов для глаголов (doSuffix
и verDoSuffix, соответсвенно).
- dobjCheck(actor, verb, iobj, prep)
-
Главная проверка прямого объекта, вызываемая в течение выполнения команды
перед тем, как вызывается dobjGen.
- dobjGen(actor, verb, iobj, prep)
-
Основной обработчик прямого объекта, вызываемый в течение выполнения команды
для прямого объекта, главным образом предназначен для обработки глагольных
верификаций
и действий-методов. Парсер не вызывает этот метод, если объект
перегружает его с детальным описанием, а не просто наследует верификационный
метод (verDoVerb) или метод-действие (doVerb)
для глагола.
- doDefault(actor, prep, iobj)
-
Направляет объект по умолчанию. Ассоциируется с объектом deepverb.
Возвращает список объектов для глагола по умолчанию.
- ioAction(prep)
-
Действие с косвенным объектом; ассоциирован с объектом deepverb.
Определяет
шаблон глагола для двухобъектной команды глаголу с имеющимся предлогом,
и определяет суффикс для использования действиями и верификационными методами
для глагола (io Suffix и verIoSuffix, соответственно).
- iobjCheck(actor, verb, iobj, prep)
-
Главная проверка косвенного объекта, вызываемая в течение выполнения команды
перед тем, как вызывается iobjGen.
- iobjGen(actor, verb, dobj,prep)
-
Основной обработчик косвенных объектов, вызываемый в течение выполнения команды
над косвенным объектом. Главным образом предназначен для обработки глагольных
верификаций
и действий-методов. Парсер не вызывает этот метод, если объект
перегружает его с детальным описанием, а не просто наследует верификационный
метод (verIOVerb) или метод-действие (ioVerb)
для глагола.
- ioDefault(actor, prep)
-
косвенный объект по умолчанию(Indirect Object Default); ассоциирован с объектом
deepverb.
Возвращает список объектов по умолчанию для глагола.
- isEquivalent
-
Используется для определения
нужно ли обращаться с объектом как эквивалентным объектам его родного
суперкласса.
Если это свойство true, парсер обращается со всеми объектами
одного суперкласса и этим объектом как к взаимозаменяемым в процессе
устранения неоднозначности.
- isHim
-
Если true, объект может быть доступен через "его,нему,им."
Это
также преобразует сообщения о объекте в advr.t в соответствии с мужским родом
объекта.
- isHer
-
Если true, объект может быть доступен через "её,ей,ею." Это
также преобразует сообщения о объекте в advr.t в соответствии с женским родом
объекта.
- isThem
-
Если значение true, парсер создаёт описания в множественном числе
(парсер будет говорить о объекте "они" вместо "он(о,а)").
Некоторое сообщения в adv.t также дают описание в множ. числе
если свойство true. Это свойство может использоваться для единичных объектов,
которые имеют имена в мн.числе, такие как "штаны" or "ножницы", а также
может быть полезным для представления объекта, который является объединением
множества других.
Например, "куча камней".
- isVisible(vantage)
-
Используется для определения видимости объектов с данного объекта. Парсер
использует это для определения вида сообщения в случае если объект не доступен:
если что-то видимо, но не доступно, парсер будет использовать cantReach
для объяснения, в ином случае он попросту скажет "Этого здесь не
видно."
- location
-
Свойство указывающее Объект, который содержит объект.
- locationOK
-
Если это свойтсво равно true, это укажет компилятору на то, что вы
знаете, что свойство location
не константа-объект, и поэтому он не выведет соответствующее предупреждение.
- multisdesc
-
Используется парсером для отображения текущего объекта во время прохождения по
списку прямых объектов в команде. Заметьте, что парсер не будет вызывать этот
метод если в объекте определён или наследован метод prefixdesc.
- newNumbered(actor, verb, num)
-
Парсер вызывает этот метод для объекта с общим числовым прилагательным
(adjective = '#'),
когда игрок использует объект как фразу-существительное. Этот метод возвращает
объект для использования
как результата разбора фразы-существительного; num даёт номер, который
игрок использует
в фразе-существительном (для примера, в "посмотреть в коробку 55", num
будет числом 55).
- nilPrep
-
Связан с объектом deepverb; используется парсером для определения
предлога,
используемого глаголом вида VERB IOBJ DOBJ(глагол косв.объект прям.объект).
сли не определено, объект-предлог
ассоциируется со предлогом "to (к)", используемым по умолчанию.
- noun
-
Определяет слова как существительное и ассоциирует их с объектом.
- parseUnknownDobj(actor, prep, iobj, wordlist)
-
Парсер вызывает этот метод чтобы разобрать фразу-существительное (значащие
строки
которого передаются с помощью wordlist), которая содержит незнакомое
слово
вместо прямого объекта. Этот метод применяется на объекте deepverb для
глагола команды.
- parseUnknownIobj(actor, prep, iobj, wordlist)
-
Парсер вызывает этот метод для разбора фразы-существительного (значащие строки
которого передаются с помощью wordlist), которая содержит незнакомое
слово
вместо косвенного объекта. Этот метод применяется на объекте deepverb
для
глагола команды.
- plural
-
Определяет слова как множественное число и ассоциирует их с объектом.
- pluraldesc
- Отображает описание объекта во множественном числе. Парсер, и определённые
прикладные
функции в adv.t, используют его для отображения коллективного имени для группы
неразличимых
объектов ("пять золотых монет").
- preferredActor
-
Используется парсером для определения является ли объект
"предпочитаемым" актёром; если это
свойство true, объект выбирается как актёр в случаях где
актёр не явен, и ни один из других объектов не является предпочитаемым актёром.
- prefixdesc(show, current_index, count, multi_flags)
-
Вызывается парсером перед фазой выполнения для каждого прямого объекта в
команде,
для отображения префикса перед объектом прежде, чем результаты выполнения
отобразятся.
Парсер вызывает этот метод для каждого прямого объекта в команде, независимо от
того,
имеет команда один прямой объект, или множество прямых объектов. Парсер
вызывает этот метод в предпочтение multisdesc.
- prepDefault
-
Связан с объектом deepverb. Парсер использует это свойство чтобы найти
предлог
по умолчанию для использования в тех случаях, когда игрок вводит частичную
команду,
начинающуюся с глагола и прямого объекта, но с опущенными предлогом и косвенным
объектом.
- preposition
-
Определяет слова как предлоги, и ассоциирует их с объектом.
- rejectMultiDobj(prep)
-
Связан с объектом deepverb. Если этот метод возвращает true,
глпгол не позволяет множественные прямые объекты или "все."
- roomAction(actor, verb, dobj, prep, iobj)
-
Вызывается в локации актёра в течении выполнения команды.
- roomCheck(verb)
-
Вызывается в актёре в начале выполнения, перед распознаванием объектов.
- statusLine
-
Вызывается в локации актера для обновления статусной строки.
- validActor
-
Вызывается для определения годится ли объект для роли актёра. Этот метод не
проверяет является
ли объект логичным для роли актёра, а просто проверяет
доступен ли объект, как объект для команды.
- validDo(actor, obj, seqno)
-
Связан с объектом deepverb. Возвращает true если
объект доступен как прямой объект для глагола.
- validDoList(actor, prep, iobj)
-
Связан с объектом deepverb.Возвращает список
возможных верных прямых объектов для глагола. Возвращённые объекты будут
протестированны на допустимость validDo, так что список может содержать
также и недопустимые объекты, но он должен содержать все допустимые
прямые
объекты для глагола.
- validIo(actor, obj, seqno)
-
Связан с объектом deepverb. Возвращает true если
объект доступен как косвенный объект для глагола.
- validIoList(actor, prep, dobj)
-
Связан с объектом deepverb. Возвращает список потенциально верных
косвенных
объектов для глагола. Возвращённые объекты будут проверены validIo, так
что
список вполне может содержать неподходящие объекты, но он должен содержать
все
верные косвенные объекты для глагола.
- value
-
Парсер присваивает этому свойству объектов strObj или numObj
текущее знначение строки или числа (соответсвенно) введённых в команде.
- verb
-
Определяет слова как глаголы,
и связывает их с объектом. Строки в этом списке могут состоять из
одного или двух слов; второе слово должно быть отдельно определено как
предлог.
- verbAction(actor, dobj, prep, iobj)
-
Парсер вызывает этот метод на объекте deepverb для
комнды, точно перед вызовом метода actorAction
на актёра в команде.
Объекты
- againVerb
-
Объектdeepverb
со словарём для "снова." Парсер внутренне
обрабатывает "снова" когда это словарное слово глаголов
введено как команда.
- Me
-
Объект актёра игрока по умолчанию.
Когда комманда явным образом не нацелена на другого актёра, этот объект
является актёром, на которого посылается эта команда. Когда игра впервые
загружена, парсер использует Me как персонаж игрока по умолчанию,
но игра может изменить это используя parserSetMe(), встроенную функцию.
- numObj
-
Специальный объект, который
используется как прямой объект в случае если в команде введено число (например,
в "ввести 30 на калькуляторе," где numObj является
прямым объектом). Свойству value присваивается число, введённое в
команде.
- strObj
-
Специальный объект, который
используется как прямой объект в случае если если в команде введена строка в ДК
(например, в 'напечатать "Привет" на клавиатуре,' где strObj
является прямым объектом). Свойству value присваивается строка,
введённая в команде.
- takeVerb
-
Формально нужна,
но больше напрямую парсером не используется.
Функции
- commandPrompt(type)
-
Парсер вызывает эту функцию, если она определена, чтобы показать строку запроса
для команды. Код type определяет тип запрошенного ввода: 0 - для
нормальной команды, 1 - для команды, которую вводят сразу за тем, как парсер
пожаловался на незнакомое слово, 2 – для команды после жалобы на двусмысленность
команды; 3 – для команды после запроса прямого объекта, а 4 – после запроса
косвенного объекта.
- commandAfterRead(type)
-
Парсер вызывает эту функцию, если она определена, немедленно после того, как
Игрок заканчивает ввод очередной строки. Эта функция может изменить эффект,
произведённый ранее commandPrompt established just before the command
line. The type code has the same value as in the preceding
commandPrompt call.
- endCommand(actor, verb, dobj_list, prep, iobj, status)
-
The parser invokes this function, if defined, at the end of the command,
after executing daemons and fuses.
- init
-
The system calls this
immediately after loading the game, and again whenever the game is restarted.
This function can perform any startup operations, such as setting fuses
and daemons, and displaying an introductory message. Note that the
system does not call init() when the player starts the
TADS interpreter and specifies on the command line (or local equivalent)
a saved game position to restore; in this case, the system instead
calls initRestore(). (However, if initRestore() isn't
defined, the system does call init() in all cases.)
- initRestore(savedGameFileName)
-
The system calls this function when the player starts the TADS
interpreter and specifies a game to restore on the command line (or
local equivalent).
The purpose of this function is to allow the game to skip any
introductory text that init() would normally display when
starting a new game; since the player is explicitly jumping to a saved
position, the player presumably doesn't need to see the introductory
text again. If this function isn't defined, the system simply calls
init() as though the game had been started without a saved
game file.
- pardon
-
The parser calls this
function whenever the player enters an empty command. You can display an
error message, if you wish.
- parseAskobj(verb, ...)
-
The parser calls this function, if defined, to prompt for a missing direct
or indirect object. If parseAskobjActor is defined,
parseAskobj
is ignored. If two arguments are provided, an indirect object is being
requested, and the second argument is a preposition (which may be nil);
therwise, a direct object is being requested.
- parseAskobjActor(actor, verb,...)
-
The parser calls this function, if defined, to prompt for a missing
direct or indirect object. If three arguments are provided, an indirect
object is being requested, and the third argument is a preposition (which
may be nil); otherwise, a direct object is being requested.
- parseAskobjIndirect(actor, verb, prep, objectList)
-
The parser calls this function, if defined, to prompt for a missing
indirect object. This is the parser's first choice when prompting
for an indirect object; the parser calls this function in preference to
parseAskobjActor() or parseAskobj().
- parseDefault(obj, prep)
-
The parser calls this function, if defined, to display a message indicating
that the object (and the preposition, if not nil) are being used
by default.
- parseDisambig(nameString, objList)
-
The parser calls this function, if defined, to prompt for
more information when the player enters an ambiguous object name. The
nameString
is the string of words entered by the player (given as a single-quoted
string), and the objList is a list of the objects matching the name.
- parseError(num, str)
-
The parser calls this function, if defined, to get the text of an error
message. num is the message number, and str is the text of
the message that the parser would display by default if this function weren't
defined. Note that the parser never calls this function if your game defines
a parseErrorParam function.
- parseErrorParam(num, str, ...)
-
The parser calls this function, if defined, to get the text of an error
message. num is the message number, and str is the text of
the message that the parser would display by default if this function weren't
defined. Additional parameters are specify the values for any "%s" (string)
or "%d" (number) sequences in the default message string.
- parseError2(verb, dobj, prep, iobj)
-
The parser calls this function, if defined, to display a message
indicating that the verb can't be applied to these objects (because one
of the objects doesn't define or inherit a verification method for the
verb).
- parseNounPhrase(wordlist, typelist, currentIndex, complainOnNoMatch,
isActorCheck)
-
The parser calls this function, if defined, to parse each noun
phrase. This function can do its own noun phrase parsing for
custom noun phrase syntax, or can defer to the standard built-in
noun phrase parser.
- parseUnknownVerb(actor, wordlist, typelist, errnum)
-
The parser calls this function, if defined, to parse a sentence that
the parser doesn't recognize. The parser invokes this function if
the command does not have a valid verb, or if the sentence
does not fit a syntax pattern that the parser accepts.
- preCommand(actor, verb, dobj_list, prep, iobj)
-
Парсер вызывает эту функцию, если указано, в начале фазы выполнения.
- postAction(actor, verb, dobj, prep, iobj, status)
-
The parser invokes this function, if defined, at the end of the
execution phase. The parser calls this function once for each
direct object in a command with multiple direct objects. The
parser invokes this function even when the execution phase terminates
with exit, exitobj, or abort.
- preinit
-
Called by the compiler,
after compilation is complete, to perform any desired initialization. This
function can't set any fuses or daemons, or display any messages; these
functions are not saved in the compiled game file, so they must wait until
the init function, which is invoked at run-time. The preinit
function is intended to perform any time-consuming computation - for example,
setting up lists of objects or initializing property values - that would
otherwise be done in init every time the game is started. By performing
these functions in preinit, the work can be done at compile-time,
saving players from having to wait for it each time they run the game.
Note that this function won't be called until run-time if the game is compiled
for debugging; while this doesn't affect the behavior of the game (apart
from slowing down run-time startup), it allows you to use the debugger
to step through your preinit function.
- preparse(cmd)
-
Парсер вызывает эту функцию с параметром строка в ОК, выдавая полный текст
командной строки каждый раз, когда игрок вводит новую команду.
- preparseCmd(wordList)
-
Парсер вызывает эту функцию со списком строк в ОК, передающих
слова текущей команды. Эта функция вызывается для каждой отдельной
команды в командной строке.
Желаю успехов!
|