home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / dada / parser2.ltg < prev    next >
Text File  |  1986-02-27  |  1KB  |  37 lines

  1.  
  2.  
  3.                             Listing 2 á
  4.                  TWS Lexical Grammar for Prolog
  5.  
  6.  
  7.           scanner Prolog_text:
  8.  
  9.           Prolog_text -> (Pseudo | Separator)*;
  10.              Pseudo áá-> Variable | String | Symbol | Number;
  11.              Separator-> Punctuator | Spaces | Eol;
  12.  
  13.           Variable ááá-> Varhead (Letter | Digit)* áááááá=> '<VARIABLE>';
  14.              Varhead á-> (Uppercase | Underscore);
  15.              Letter áá-> Uppercase | Lowercase;
  16.              Uppercase-> 'A' .. 'Z';
  17.              Lowercase-> 'a' .. 'z';
  18.              Digit ááá-> '0' .. '9';
  19.              Underscore-> '_';
  20.  
  21.           String ááááá-> (Quote Chars Quote)+ ááááááááááá=> '<ATOM>';
  22.              Quote ááá-> '''';
  23.              Chars ááá-> (Any - Quote)*;
  24.  
  25.           Symbol ááááá-> Lowercase (Letter | Digit)* áááá=> '<ATOM>' ;
  26.  
  27.           Number ááááá-> '-'? Digit+ áááááááááááááááááááá=> '<NUMBER>';
  28.  
  29.           Punctuator á-> '(' | ')' | ',' | '[' | ']'
  30.                          | '.' | '|' | ':' '-' áááááááááá=> '<AS_IS>';
  31.  
  32.           Spaces ááááá-> Space+ ááááááááááááááááááááááááá=> '<DELETE>';è             Space áááááá-> ' ' | Tab;
  33.              Tab ááááá-> 'ht';
  34.  
  35.           end Prolog_text
  36.  
  37.