! ----------------------------------------------------------------------------
!  GRAMMAR:  Grammar table entries for the standard verbs library.
!
!  Supplied for use with Inform 6                         Serial number 991113
!                                                                 Release 6/10
!  (c) Graham Nelson 1993, 1994, 1995, 1996, 1997, 1998, 1999
!      but freely usable (see manuals)
! ----------------------------------------------------------------------------
!  The "meta-verbs", commands to the game rather than in the game, come first:
! ----------------------------------------------------------------------------
!   Deutsch von (c) Toni Arnold 1997/98/99
!   Schlierenberg 22, 8048 Zuerich, Switzerland
!
!   Deutsche Serial No 991216
!
! Teile davon korrigiert und ergaenzt mit der library von Ralf Herrman.
!
! This library is free software; you can redistribute it and/or modify it under
! the terms of the GNU Library General Public License as published by the Free
! Software Foundation; either version 2 of the License, or (at your option) any
! later version.
!
! This library is distributed in the hope that it will be useful, but without
! any warranty; without even the implied warranty of merchantability or fitness
! for a particular purpose. See the GNU Library General Public License for more
! details.
!
! You should have received a copy of the GNU Library General Public License
! along with this library; if not, write to the Free Software Foundation, Inc.,
! 675 Mass Ave, Cambridge, MA 02139, USA.
! ----------------------------------------------------------------------------


! My handling of the german imperative verbs removes its 'e'-suffix
! because it is optional. As a consequence ALL verb entries must not end
! with an 'e'.

System_file;

Verb meta 'punkt' 'punktestand' 'scor'
                *                                -> Score
                * 'ein'                          -> NotifyOn
                * 'aus'                          -> NotifyOff;
Verb meta 'voll' 'fullscor' 'full'
                *                                -> FullScore
                * 'punkte'                       -> FullScore;
Verb meta 'q//' 'quit' 'stirb' 'end' 'di'
                *                                -> Quit;
Verb meta 'lad' 'laden' 'load' 'restor'
                *                                -> Restore;
Verb meta 'neustart' 'wiedergeburt' 'restart'
                *                                -> Restart;
Verb meta 'pruef' 'test' 'verify'
                *                                -> Verify;
Verb meta 'speicher' 'sicher' 'sav'
                *                                -> Save;
Verb meta 'skript' 'script' 'transktript' 'transcript'
                *                                -> ScriptOn
                * 'aus'                          -> ScriptOff
                * 'an'/'ein'                     -> ScriptOn;
Verb meta 'noscript' 'unscript'
                *                                -> ScriptOff;
Verb meta 'superkurz' 'kurz' 'superbrief' 'short'
                *                                -> LMode3;
Verb meta 'ausfuehrlich' 'lang' 'verbose' 'long'
                *                                -> LMode2;
Verb meta 'normal' 'brief'
                *                                -> LMode1;
Verb meta 'pronomen' 'nomen' 'pronouns' 'nouns'
                *                                -> Pronouns;
Verb meta 'zeigen' 'notify'
                * 'ein'/'on'                     -> NotifyOn
                * 'aus'/'off'                    -> NotifyOff;
Verb meta 'version'
                *                                -> Version;
#IFNDEF NO_PLACES;
Verb meta 'ort' 'places'
                *                                -> Places;
Verb meta 'objekt' 'objects'
                *                                -> Objects;
#ENDIF;


#ifdef TARGET_GLULX;
Verb meta 'bild' 'bilder'
		* 'ein'				-> PicturesOn
		* 'aus'				-> PicturesOff
		* 'gross'			-> PicturesTall
		* 'klein'			-> PicturesSmall
		* 'angepasst'/'normal'/'original' -> PicturesNoScale;
#endif; ! TARGET_


! ----------------------------------------------------------------------------
!  Debugging grammar
! ----------------------------------------------------------------------------

#ifdef DEBUG;
Verb meta 'trac'
                *                                -> TraceOn
                * number                         -> TraceLevel
                * 'on'                           -> TraceOn
                * 'off'                          -> TraceOff;
Verb meta 'actions'
                *                                -> ActionsOn
                * 'on'                           -> ActionsOn
                * 'off'                          -> ActionsOff;
Verb meta 'routines' 'messages'
                *                                -> RoutinesOn
                * 'on'                           -> RoutinesOn
                * 'off'                          -> RoutinesOff;
Verb meta 'timers' 'daemons'
                *                                -> TimersOn
                * 'on'                           -> TimersOn
                * 'off'                          -> TimersOff;
Verb meta 'changes'
                *                                -> ChangesOn
                * 'on'                           -> ChangesOn
                * 'off'                          -> ChangesOff;
Verb meta 'recording'
                *                                -> CommandsOn
                * 'on'                           -> CommandsOn
                * 'off'                          -> CommandsOff;
Verb meta 'replay'
                *                                -> CommandsRead;
Verb meta 'random'
                *                                -> Predictable;
Verb meta 'purloin'
                * multi                          -> XPurloin;
Verb meta 'abstract'
                * noun 'to' noun                 -> XAbstract;
Verb meta 'tre'
                *                                -> XTree
                * noun                           -> XTree;
Verb meta 'goto'
                * number                         -> Goto;
Verb meta 'gonear'
                * noun                           -> Gonear;
Verb meta 'scop'
                *                                -> Scope
                * noun                           -> Scope;
Verb meta 'showverb'
                * special                        -> Showverb;
Verb meta 'showobj'
                *                                -> Showobj
                * multi                          -> Showobj;

verb meta 'deklinier' 'dekl'	  		 ! esp for german
                * noun                           -> Dekliniere
                * 'komplett' noun                -> DekliniereAll;
#endif;

! ----------------------------------------------------------------------------
!  And now the game verbs.
!   Thanks to Max Kalus and Ralf Herrmann
! ----------------------------------------------------------------------------

Verb 'nimm' 'nehm' 'heb'
                * multi                          -> Take
                * multi 'auf'                    -> Take
                * worn 'ab'                      -> Disrobe
                * multiinside 'von'/'aus' noun   -> Remove;
verb 'trag'
                * held
                                                  -> wear;
!Verb 'get'
!                * 'out'/'off'/'up'               -> Exit
!                * multi                          -> Take
!                * 'in'/'into'/'on'/'onto' noun   -> Enter
!                * 'off' noun                     -> GetOff
!                * multiinside 'from' noun        -> Remove;
!Verb 'pick'
!                * 'up' multi                     -> Take
!                * multi 'up'                     -> Take;

Verb 'steh'
                *                                 -> Exit
                * 'auf'                           -> Exit
                * 'auf' noun                      -> Enter;
Verb 'entfern'
                * held                            -> Disrobe
                * multi                           -> Take
                * multiinside 'von' noun          -> Remove;

!Verb 'shed' 'doff' 'disrob'
!                * held                           -> Disrobe; 
!Verb 'wear' 'don'
!                * held                           -> Wear;

Verb 'tu' 'leg' 'setz'
                * multiheld                       -> Drop
                * multiheld 'hin'/'weg'
		            /'auf'/'ab'           -> Drop
                * multiexcept 'in' noun           -> Insert
                * multiexcept 'auf' noun          -> PutOn
                * worn 'ab'                       -> Disrobe
                * held 'an'/'um'                  -> Wear;

!                * 'on' held                      -> Wear
!                * 'down' multiheld               -> Drop
!                * multiheld 'down'               -> Drop;
!Verb 'insert'
!                * multiexcept 'in'/'into' noun   -> Insert;

Verb 'verlier'
		* multiheld			  -> Drop;

Verb 'leer' 'schuett' 'giess'
                 * noun                           -> Empty
                 * noun 'aus'                     -> Empty
                 * noun 'zu'/'in'/'auf' noun      -> EmptyT;

Verb 'transferier' 'verschieb'
                * noun 'zu' noun                 -> Transfer;

Verb 'lass' 'wirf' 'werf'
                * multiheld                      -> Drop
                * multiheld 'fallen'/'hier'      -> Drop
                * multiexcept 'in'/'unter' noun  -> Insert
                * multiexcept 'auf'/'ueber' noun -> PutOn
                * held 'zu'/'auf'/'nach' noun    -> ThrowAt
                * held noun 'zu'/'nach'          -> ThrowAt;

Verb 'gib' 'geb' 'zahl' 'offerier' 'fuetter'
                * held creature                  -> Give
                * held 'an' creature                  -> Give
                * creature held                  -> Give reverse;

Verb 'zeig' 'praesentier'
                * creature held                  -> Show reverse
                * held 'to' creature             -> Show;

[ ADirection; if (noun in compass) rtrue; rfalse; ];
Verb 'geh' 'spazier' 'renn'
                *                                -> VagueGo
                * 'in'/'durch' noun              -> Enter
                * noun=ADirection	         -> Go
                * 'nach' noun=ADirection         -> Go
		* 'nach' 'draussen'		 -> Exit
                * noun                           -> Enter
                * 'raus'/'hinaus'/'heraus'       -> Exit
                * 'rein'/'hinein'/'herein'       -> GoIn;

Verb 'verlass' 'v//'
                *                                -> VagueGo
                * noun=ADirection                -> Go
                * noun                           -> Exit
                * 'in'/'durch' noun              -> Enter;

Verb 'mach'
                * 'inventar'                     -> Inv
                * noun 'zu'                      -> Close
                * noun 'auf'                     -> Open;

Verb 'inventar' 'besitz' 'inv' 'i//'
                *                                -> Inv
                * 'gross'/'lang'/'liste'         -> InvTall
                * 'weit'/'breit'/'satz'          -> InvWide;

Verb 'schau' 'seh' 'l//'
                *                                -> Look
		* noun 'an'			 -> Examine
                * 'auf' noun                     -> Examine
                * 'in'/'durch'/'aus' noun        -> Search
                * 'unter' noun                   -> LookUnder
                * topic 'nach' 'in' noun         -> Consult;

Verb 'konsultier'  
                * noun 'ueber' topic             -> Consult
                * noun 'bezueglich' topic        -> Consult;
Verb 'oeffn'
                * noun                           -> Open
                * noun 'mit' held                -> Unlock;

Verb 'durchquer' 'betret' 'betritt'
                *                                -> GoIn
                * noun                           -> Enter;

Verb 'tret' 'tritt' 'kick'
                * noun                           -> Attack
                * 'ein'                          -> GoIn
                * 'aus'/'heraus'/'hinaus'        -> Exit
                * 'in' noun                      -> Enter
                * 'in' noun 'hinein'/'ein'       -> Enter;

Verb 'sitz' 'lieg'
                * 'auf' noun                     -> Enter
                * 'in' noun                      -> Enter;

Verb 'rein' 'hinein' 'herein'
                *                                -> GoIn
                * 'in' noun                      -> GoIn;

Verb 'raus' 'hinaus' 'heraus' 'a//'
                *                                -> Exit
                * 'aus' noun                     -> Exit;

Verb 'untersuch' 'x//' 'b//' 'u//' 'betracht' 'beschreib' 'check'
                *                                -> Look
                * noun                           -> Examine
                * multiexcept                    -> Examine;

Verb 'lies' 'les'
                * noun                           -> Examine
                * 'in' noun			 -> Examine
                * 'ueber' topic 'in' noun        -> Consult
                * topic 'in' noun                -> Consult
                * 'in' noun 'ueber'/'von' topic  -> Consult;

Verb 'ja' 'j//'
                *                                -> Yes;
Verb 'nein'
                *                                -> No;

Verb 'sorry' 'entschuldigung' 'entschuldig'
                *                                -> Sorry;

Verb 'scheiss' 'verdammt' 'verflucht'
                *                                -> Strong
                * topic                          -> Strong;

Verb 'aerger'
                * 'dich'                         -> Mild
                * 'dich' 'ueber' topic            
                                                 -> Mild;
Verb 'such'
                * noun                           -> Search;

Verb 'wink'
                *                                -> WaveHands
                * 'mit' noun                     -> Wave;

Verb 'stell'
                * noun                           -> Set;

Verb 'zieh' 'reiss' 'zerr'
                * noun                           -> Pull
                * 'an' noun                      -> Pull
                * noun 'weg'                     -> Pull
                * noun 'ab'                      -> Take
                * held 'an'                      -> Wear
                * held 'aus'                     -> Disrobe;

Verb 'drueck' 'press' 'beweg' 'schieb'
                * noun                           -> Push
                * noun noun                      -> PushDir
                * noun 'nach'/'richtung' noun    -> PushDir
                * noun 'aus'                     -> Squeeze
                * noun 'zu' noun                 -> Transfer;

Verb 'dreh' 'rotier' 'schraub'
                * noun                           -> Turn
                * noun 'ein'/'an'                -> Switchon
                * noun 'aus'                     -> Switchoff
                * 'ein'/'an' noun                -> Switchon
                * noun 'aus'                     -> Switchoff
                * noun 'auf' special             -> SetTo;

Verb 'schalt'
                * noun                           -> Switchon
                * noun 'ein'/'an'                -> Switchon
                * noun 'aus'                     -> Switchoff
                * 'ein'/'an' noun                -> Switchon
                * 'aus' noun                     -> Switchoff;

Verb 'schliess' 'verschliess' 'sperr'
                * noun                           -> Close
                * noun 'mit' held                -> Lock
                * noun 'ab'                      -> Lock
                * noun 'mit' held 'auf'          -> Unlock
                * noun 'auf' 'mit' held          -> Unlock;


Verb 'attackier' 'brich' 'brech' 'zerstoer' 'schlag'
     'destroy' 'kaempf' 'toet' 'hau'
                * noun                           -> Attack;

Verb 'wart' 'z//'
                *                                -> Wait;

Verb 'antwort' 'schrei' 'beantwort'
                * creature topic		 -> Answer reverse
                * topic 'zu' creature            -> Answer;

Verb 'red' 'sprech' 'sprich'
                * creature 'ueber' topic         -> Tell
                * 'mit'/'zu' creature 'ueber' topic 
                                                 -> Tell;

Verb 'erzaehl' 
                * creature 'ueber'/'von' topic   -> Tell;

Verb 'sag'
                * creature topic                 -> Tell
                * creature 'ueber' topic         -> Tell;

Verb 'frag'
                * creature 'ueber' topic         -> Ask
                * creature 'nach' noun           -> AskFor;

Verb 'ess' 'iss'
                * held                           -> Eat;

Verb 'schlaf' 'nick' 'schlummer' 'does'
                * 'ein'                          -> Sleep
                *                                -> Sleep;

Verb 'schael'   * noun                            -> Take;

Verb 'streif'   * noun 'ab'                       -> Take;

Verb 'sing'     *                                 -> Sing;

Verb 'kletter' 'klettr'
                * noun                            -> Climb
                * 'auf'/'ueber' noun              -> Climb
                * 'in' noun                       -> Enter
                * 'in' noun 'hinein'              -> Enter;

Verb 'kauf' 'erwerb' 'erwirb'
                * noun                            -> Buy;

Verb 'quetsch' 'zerquetsch'
                * noun                            -> Squeeze;

Verb 'schwimm' 'tauch' 
                *                                 -> Swim;

Verb 'schwing' 'schwenk' 'wedel' 'wedl'
                * noun                            -> Swing
                * 'auf' noun                      -> Swing;
Verb 'blas'
                * held                            -> Blow
                * 'in'/'auf' held                     -> Blow;

Verb 'bet' 'bitt'
                *                                 -> Pray
                * creature 'um' noun              -> AskFor;

Verb 'wach' 'erwach' 'weck' 'erweck'
                *                                 -> Wake
                * 'auf'                           -> Wake
                * creature                        -> WakeOther
                * creature 'auf'                  -> WakeOther;

Verb 'kuess' 'umarm' 'lieb'
                * creature                        -> Kiss;
Verb 'denk'
                *                                 -> Think;
Verb 'riech' 'schnueffl'
                *                                 -> Smell
                * noun                            -> Smell
                * 'an' noun                       -> Smell;

Verb 'hoer' 'horch'
                *                                 -> Listen
                * noun                            -> Listen
                * noun 'zu'                       -> Listen
                * 'an' noun                       -> Listen;

Verb 'schmeck' 'leck'
                * noun                            -> Taste;

Verb 'beruehr' 'fuehl' 'ertast' 'tast'
                * noun                            -> Touch;

Verb 'reib' 'polier' 'wisch'
                * noun                            -> Rub;
 
Verb 'fixier' 'bind' 'befestig'
                * noun                            -> Tie
                * noun 'an' noun                  -> Tie;

Verb 'zuend'
                * noun 'an'                       -> Burn
                * noun 'mit' held 'an'            -> Burn;
Verb 'entzuend'
                * noun                            -> Burn
                * noun 'mit' held                 -> Burn;

Verb 'trink' 'sauf' 'schluerf'
                * noun                           -> Drink;

Verb 'fuell'
                * noun                           -> Fill
                * noun 'in' noun                 -> EmptyT;

Verb 'schneid' 'trenn'
                * noun                           -> Cut
                * noun 'durch'                   -> Cut
                * 'mit' noun                     -> Cut
                * noun 'mit' noun                -> Cut reverse
                * noun 'mit' noun 'durch'        -> Cut reverse;

Verb 'spring' 'huepf'
                *                                -> Jump
                * 'hoch'                         -> Jump
                * 'ueber' noun                   -> JumpOver;

Verb 'grab' 'hack'
                *                                -> Dig    ! ### Maulwurf
                * noun                           -> Dig
                * noun 'mit' held                -> Dig;




! ----------------------------------------------------------------------------
!  This routine is no longer used here, but provided to help existing games
!  which use it as a general parsing routine:

[ ConTopic w; consult_from = wn;
  do w=NextWordStopped();
  until (w==-1 || (w=='to' && action_to_be==##Answer));
  wn--;
  consult_words = wn-consult_from;
  if (consult_words==0) return -1;
  if (action_to_be==##Ask or ##Answer or ##Tell)
  {   w=wn; wn=consult_from; parsed_number=NextWord();
      if (parsed_number=='the' && consult_words>1) parsed_number=NextWord();
      wn=w; return 1;
  }
  return 0;
];
! ----------------------------------------------------------------------------
!  Final task: provide trivial routines if the user hasn't already:
! ----------------------------------------------------------------------------
#Stub TimePasses      0;
#Stub Amusing         0;
#Stub DeathMessage    0;
#Stub DarkToDark      0;
#Stub NewRoom         0;
#Stub LookRoutine     0;
#Stub AfterLife       0;
#Stub GamePreRoutine  0;
#Stub GamePostRoutine 0;
#Stub AfterPrompt     0;
#Stub BeforeParsing   0;
#Stub PrintTaskName   1;
#Stub InScope         1;
#Stub UnknownVerb     1;
#Stub PrintVerb       1;
#Stub ParserError     1;
#Stub ParseNumber     2;
#Stub ChooseObjects   2;
#IFNDEF PrintRank;
Constant Make__PR;
#ENDIF;
#IFDEF Make__PR;
[ PrintRank; "."; ];
#ENDIF;
#IFNDEF ParseNoun;
Constant Make__PN;
#ENDIF;
#IFDEF Make__PN;
[ ParseNoun obj; obj=obj; return -1; ];
#ENDIF;
#Default Story 0;
#Default Headline 0;
#IFDEF INFIX;
#Include "infix";
#ENDIF;
! ----------------------------------------------------------------------------
