1
! ==============================================================================
2
! GRAMMAR: Grammar table entries for the standard verbs library.
4
! Supplied for use with Inform 6 -- Release 6/11 -- Serial number 040227
6
! Copyright Graham Nelson 1993-2004 but freely usable (see manuals)
8
! In your game file, Include three library files in this order:
12
! ==============================================================================
16
! ------------------------------------------------------------------------------
17
! The "meta-verbs", commands to the game rather than in the game, come first:
18
! ------------------------------------------------------------------------------
20
Verb meta 'brief' 'normal'
22
Verb meta 'verbose' 'long'
24
Verb meta 'superbrief' 'short'
30
Verb meta 'pronouns' 'nouns'
32
Verb meta 'quit' 'q//' 'die'
37
* 'off' -> CommandsOff;
48
Verb meta 'fullscore' 'full'
50
* 'score' -> FullScore;
51
Verb meta 'script' 'transcript'
55
Verb meta 'noscript' 'unscript'
69
! ------------------------------------------------------------------------------
71
! ------------------------------------------------------------------------------
77
* 'off' -> ActionsOff;
81
* 'off' -> ChangesOff;
88
Verb meta 'routines' 'messages'
91
* 'off' -> RoutinesOff;
100
* special -> Showverb;
101
Verb meta 'timers' 'daemons'
104
* 'off' -> TimersOff;
107
* number -> TraceLevel
111
* noun 'to' noun -> XAbstract;
125
! ------------------------------------------------------------------------------
126
! And now the game verbs.
127
! ------------------------------------------------------------------------------
129
[ ADirection; if (noun in compass) rtrue; rfalse; ];
131
Verb 'answer' 'say' 'shout' 'speak'
132
* topic 'to' creature -> Answer;
134
* creature 'about' topic -> Ask
135
* creature 'for' noun -> AskFor
136
* creature 'to' topic -> AskTo
137
* 'that' creature topic -> AskTo;
138
Verb 'attack' 'break' 'crack' 'destroy'
139
'fight' 'hit' 'kill' 'murder' 'punch'
140
'smash' 'thump' 'torture' 'wreck'
144
Verb 'bother' 'curses' 'darn' 'drat'
149
* noun 'with' held -> Burn;
150
Verb 'buy' 'purchase'
154
* 'up'/'over' noun -> Climb;
155
Verb 'close' 'cover' 'shut'
158
* 'off' noun -> SwitchOff;
160
* noun 'about' topic -> Consult
161
* noun 'on' topic -> Consult;
162
Verb 'cut' 'chop' 'prune' 'slice'
166
* noun 'with' held -> Dig;
167
Verb 'drink' 'sip' 'swallow'
169
Verb 'drop' 'discard' 'throw'
171
* multiexcept 'in'/'into'/'down' noun -> Insert
172
* multiexcept 'on'/'onto' noun -> PutOn
173
* held 'at'/'against'/'on'/'onto' noun -> ThrowAt;
178
* 'out' noun -> Empty
179
* noun 'out' -> Empty
180
* noun 'to'/'into'/'on'/'onto' noun -> EmptyT;
184
Verb 'examine' 'x//' 'check' 'describe' 'watch'
186
Verb 'exit' 'out' 'outside'
192
* 'out'/'off'/'up' -> Exit
194
* 'in'/'into'/'on'/'onto' noun -> Enter
195
* 'off' noun -> GetOff
196
* multiinside 'from' noun -> Remove;
197
Verb 'give' 'feed' 'offer' 'pay'
198
* held 'to' creature -> Give
199
* creature held -> Give reverse
200
* 'over' held 'to' creature -> Give;
201
Verb 'go' 'run' 'walk'
203
* noun=ADirection -> Go
205
* 'into'/'in'/'inside'/'through' noun -> Enter;
209
* multiexcept 'in'/'into' noun -> Insert;
210
Verb 'inventory' 'inv' 'i//'
214
Verb 'jump' 'hop' 'skip'
216
* 'over' noun -> JumpOver;
217
Verb 'kiss' 'embrace' 'hug'
221
* noun=ADirection -> Go
223
* 'into'/'in'/'inside'/'through' noun -> Enter;
227
* 'to' noun -> Listen;
229
* noun 'with' held -> Lock;
232
* 'at' noun -> Examine
233
* 'inside'/'in'/'into'/'through'/'on' noun -> Search
234
* 'under' noun -> LookUnder
235
* 'up' topic 'in' noun -> Consult
236
* noun=ADirection -> Examine
237
* 'to' noun=ADirection -> Examine;
240
Verb 'open' 'uncover' 'undo' 'unwrap'
242
* noun 'with' held -> Unlock;
245
* 'off' noun -> Take;
248
* multi 'up' -> Take;
251
Verb 'pry' 'prise' 'prize' 'lever' 'jemmy' 'force'
252
* noun 'with' held -> Unlock
253
* 'apart'/'open' noun 'with' held -> Unlock
254
* noun 'apart'/'open' 'with' held -> Unlock;
257
Verb 'push' 'clear' 'move' 'press' 'shift'
259
* noun noun -> PushDir
260
* noun 'to' noun -> Transfer;
262
* multiexcept 'in'/'inside'/'into' noun -> Insert
263
* multiexcept 'on'/'onto' noun -> PutOn
265
* 'down' multiheld -> Drop
266
* multiheld 'down' -> Drop;
269
* 'about' topic 'in' noun -> Consult
270
* topic 'in' noun -> Consult;
274
* multiinside 'from' noun -> Remove;
275
Verb 'rub' 'clean' 'dust' 'polish' 'scrub'
276
'shine' 'sweep' 'wipe'
282
* noun 'to' special -> SetTo;
283
Verb 'shed' 'disrobe' 'doff'
285
Verb 'show' 'display' 'present'
286
* creature held -> Show reverse
287
* held 'to' creature -> Show;
288
Verb 'shit' 'damn' 'fuck' 'sod'
294
* 'on' 'top' 'of' noun -> Enter
295
* 'on'/'in'/'inside' noun -> Enter;
303
Verb 'squeeze' 'squash'
308
* 'on' noun -> Enter;
313
* 'on' noun -> Swing;
316
* noun 'on' -> Switchon
317
* noun 'off' -> Switchoff
318
* 'on' noun -> Switchon
319
* 'off' noun -> Switchoff;
320
Verb 'take' 'carry' 'hold'
322
* 'off' worn -> Disrobe
323
* multiinside 'from' noun -> Remove
324
* multiinside 'off' noun -> Remove
325
* 'inventory' -> Inv;
329
* creature 'about' topic -> Tell
330
* creature 'to' topic -> AskTo;
333
Verb 'tie' 'attach' 'fasten' 'fix'
335
* noun 'to' noun -> Tie;
336
Verb 'touch' 'feel' 'fondle' 'grope'
339
* noun 'to' noun -> Transfer;
340
Verb 'turn' 'rotate' 'screw' 'twist' 'unscrew'
342
* noun 'on' -> Switchon
343
* noun 'off' -> Switchoff
344
* 'on' noun -> Switchon
345
* 'off' noun -> Switchoff;
354
* noun 'with' held -> Unlock;
357
Verb 'wake' 'awake' 'awaken'
360
* creature -> WakeOther
361
* creature 'up' -> WakeOther
362
* 'up' creature -> WakeOther;
364
! ------------------------------------------------------------------------------
365
! This routine is no longer used here, but provided to help existing games
366
! which use it as a general parsing routine:
370
do w = NextWordStopped();
371
until (w == -1 || (w == 'to' && action_to_be == ##Answer));
373
consult_words = wn - consult_from;
374
if (consult_words == 0) return -1;
375
if (action_to_be == ##Answer or ##Ask or ##Tell) {
376
w = wn; wn = consult_from; parsed_number = NextWord();
377
if (parsed_number == 'the' && consult_words > 1) parsed_number = NextWord();
384
! ------------------------------------------------------------------------------
385
! Final task: provide trivial routines if the user hasn't already:
386
! ------------------------------------------------------------------------------
391
#Stub BeforeParsing 0;
392
#Stub ChooseObjects 2;
394
#Stub DeathMessage 0;
395
#Stub GamePostRoutine 0;
396
#Stub GamePreRoutine 0;
402
#Stub PrintTaskName 1;
408
#Stub HandleGlkEvent 2;
409
#Stub IdentifyGlkObject 4;
410
#Stub InitGlkWindow 1;
411
#Endif; ! TARGET_GLULX
424
[ ParseNoun obj; obj = obj; return -1; ];
434
! ==============================================================================
436
Constant LIBRARY_GRAMMAR; ! for dependency checking
438
! ==============================================================================