home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / modula2 / alexcoco / taste.lex < prev    next >
Text File  |  1987-04-14  |  1KB  |  44 lines

  1. SCANNER taste
  2.  
  3. CHARACTER SETS
  4.   letter  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  5.   digit   = "0123456789";
  6.   CR      = CHR(13);
  7.   LF      = CHR(10);
  8.   CtlZ    = CHR(26);
  9.   endfile = CHR(4);
  10.  
  11. -- the token numbers must correspond to the declaration sequence of the
  12. -- terminals in taste.ATG
  13.  
  14.  
  15. KEYWORDS
  16.    1 = "BEGIN"         7 = "IF"          13 = "TRUE"
  17.    2 = "BOOLEAN"       8 = "INTEGER"     14 = "VAR"
  18.    3 = "DO"            9 = "PROGRAM"     15 = "WHILE"
  19.    4 = "ELSE"         10 = "PROCEDURE"   16 = "WRITE"
  20.    5 = "END"          11 = "READ"
  21.    6 = "FALSE"        12 = "THEN"
  22.  
  23.  
  24. TOKEN CLASSES
  25.   27 = letter {letter | digit} EXCEPT KEYWORDS.  -- ident
  26.   28 = digit {digit}.                            -- number
  27.  
  28.  
  29. SINGLE TOKENS
  30.   17 = "+".        21 = "=".        25 = ";".
  31.   18 = "-".        22 = "<".        26 = ":".
  32.   19 = "*".        23 = ">".         0 = CtlZ | endfile.
  33.   20 = "/".        24 = ".".        29 = CR LF.
  34.  
  35.  
  36. ERROR TOKEN = 30
  37.  
  38.  
  39. COMMENTS 
  40.   FROM "{"  TO "}"
  41.   FROM "(*" TO "*)"
  42.  
  43. END
  44.