home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / d / d-linux.zip / dm-dist / doc / interpreter.do < prev    next >
Text File  |  1991-03-01  |  3KB  |  113 lines

  1. /* ************************************************************************
  2. *  Copyright (C) 1990, 1991 - see 'license.doc' for complete information. *
  3. ************************************************************************* */
  4.  
  5. 1     De to grundliggende rutiner i 'interpreter.c' er :
  6.  
  7.         search_block og
  8.        argument_interpreter
  9.  
  10. 1.1       SEARCH_BLOCK
  11.  
  12.      Formaalet med denne rutine er, at finde en eventuel overensstemmelse
  13.     mellem en (sandsynligvis af brugeren indtastet) streng og en tabel af
  14.     strenge.
  15.  
  16.      Rutinens hoved:
  17.  
  18.     int search_block(char *argument, int begin, int length, char **list, int mode)
  19.  
  20.     I denne rutine indeholder argument den streng der skal undersoeges, begin er den
  21.     position, som det foerste tegn, i den del af argumenter der skal undersoeges,
  22.     befinder sig paa.
  23.     BEMAERK: Som normalt i c, vil det foerste tegn have position 0 !
  24.     Length er laengden af den del af argumenter der skal undersoeges. (1 = et tegn)
  25.     List er den tabel, hvori der skal ledes efter en forekomst af den del af argumentet
  26.     der undersoeges.
  27.     Mode er en 'binaer' variabel:
  28.         TRUE ( != 0 ) : Der er kun tale om en forekomst, hvis laengden af
  29.           den streng man undersoeger, og laengden i 'list' er ens. ( nor != north ) 
  30.         FALSE ( ==0 ) : Hvis alle tegn i den streng man undersoeger er 
  31.           identiske med tegn i tabellen, er der tale om er forekomst. ( nor == north )
  32.  
  33.     List skal vaere afsluttet med "/n" som sidste tegn.
  34.  
  35.     Den vaerdi, som funktionen returnerer er :
  36.         -1 for ukendt,
  37.         0 for tom streng.
  38.         ellers nummeret i listen ( foerste = 1 !! )
  39.  
  40.  
  41. 1.2     ARGUMENT_INTERPRETER
  42.  
  43.      Formaalet med denne rutine er, at udlede to 'betydende' dele af 
  44.     en streng.
  45.  
  46.      Rutinens hoved:
  47.  
  48.     void argument_interpreter(char *argument, char *first_arg, char *second_arg)
  49.  
  50.      Argument er den streng som de betydende dele skal udledes af.
  51.     First_arg og second_arg indeholder de betydende dele.
  52.  
  53.     Definitionen paa betydende dele er:
  54.     Ord forskellige fra :
  55.      in
  56.      from
  57.      with
  58.      the
  59.      on
  60.      at 
  61.      to
  62.  
  63.     Eksempel 1.
  64.  
  65.         Argument = "The iceBear wiTh the aXe"
  66.  
  67.         resultat:
  68.  
  69.         First_arg = "icebear"
  70.         Second_arg = "axe"
  71.  
  72.     Som det ses vil store bogstaver blive returneret som smaa.
  73.  
  74.     Eksempel 2.
  75.  
  76.         Argument = "The ice bear with the axe"
  77.  
  78.         resultat:
  79.  
  80.         First_arg = "ice"
  81.         Second_arg = "bear"
  82.  
  83.     Her er det meningen, at problemet gaar ud over brugeren.
  84.  
  85.     Eksempel 3.
  86.  
  87.         Argument = "The The"
  88.         first_arg = ""
  89.         second_arg = ""
  90.  
  91.     Eksempel 4.
  92.  
  93.         Argument = "Th icebear with the axe"
  94.         first_arg = "th"
  95.         second_arg = "icebear"
  96.  
  97. 1.3     Oevrige dele af interpreter
  98.  
  99.      One_argument, som argument_interpreter, dog kun en streng der bliver 
  100.     returneret.
  101.  
  102.      Command_interpreter, her bliver hovedordet for kommandoen fundet, og
  103.     den tilsvarende rutine kaldes.
  104.  
  105.      Fill_word, er TRUE, hvis argumenter er er 'overfloedigt ord', som
  106.          in
  107.          from
  108.          with
  109.          the
  110.          on
  111.          at
  112.          to
  113.