Can't define irregular verbs using Adv3Lite

I have a cabinet mounted to a wall. The inside of the cabinet is described as having shelves containing a collection of tools.

There is an object assortedTools which has a vocab name shelf.

When I open the cabinet and examine a shelf, I get a description of the assortedTools object.

But if I enter shelves instead of shelf I get You see no shelves here.

I tried defining an irregular verb for shelf/shelves using the irregularVerbs list in the Adv3Lite library’s CustomVocab object, as described in the Adv3Lite manual—adv3Lite/docs/manual/message.htm#custom—but my implementation does not work.

Here’s a transcript…

…and here’s the code…

[code]#charset “us-ascii”

#include <tads.h>
#include “advlite.h”

versionInfo: GameID
IFID = ‘445C38A3-AD1B-4729-957A-F584600DE5C1’
name = ‘test’
byline = ‘by Jerry Ford’
htmlByline = ‘by
Jerry Ford

version = ‘1’
authorEmail = ‘Jerry Ford
desc = ‘Testing irregular verb.’
htmlDesc = ‘Testing irregular verb.’


gameMain: GameMainDef
initialPlayerChar = me
paraBrksBtwnSubcontents = nil


me: Actor ‘me;him’ @workshop
firstName = ‘John’
lastName = ‘Doe’
person = 2

workshop: Room ‘Workshop’ ‘workshop’
“The workshop is a room where tools and stuff are stored. There is a
cabinet mounted to the wall. <.p>”

  • equipmentLocker: Container, Fixture ‘cabinet;supply;locker’
    “A stainless steel box is mounted to a wall. <.p>”

    isOpenable = true
    isOpen = nil

    “You swing the door to the cabinet open revealing some shelves, on
    which a collection of tools and things are spread. <.p>”;
    isOpen = true;
    ++ assortedTools: Decoration ‘assorted tools;stuff things shelf’
    “The shelves of the cabinet hold an array of tools. <.p>”

    notImportantMsg = ‘The tools and things all look very nice, but nothing strikes you
    as being particularly useful in the current situation.<.p>’

irregularPlurals =
‘shelf’, [‘shelves’]


What am I doing wrong?


So I posted this in reply to my own post…

[i]Well, doh! Dummy, I says to myself, no wonder it doesn’t work, shelf not being a verb, regular or otherwise.


…but that ain’t right, either.

It should work. The Adv3Library list is irregularPlurals not verbs (I got confused because there is also a list of verbs in the doc) as illustrated by this example in the doc…

Shelf/shelves should fit right in.


The error is in the definition of the vocab property of the assorted tools object:

++ assortedTools: Decoration 'assorted tools;stuff things shelf'
    "The shelves of the cabinet hold an array of tools. <.p>"

You’re missing a semicolon, so that you’ve defined “stuff things shelf” as adjectives, not nouns. If you add the missing semicolon you’ll find that it works as expected:

++ assortedTools: Decoration 'assorted tools;;stuff things shelf'
    "The shelves of the cabinet hold an array of tools. <.p>"

And you don’t need to define a CustomVocab object to make the library recognize “shelves” as the plural of “shelf”, since this is already defined in the library.