Tokens


Auxiliary Regular Expressions

letter ::= a|b|c|...|z|A|B|C|...|Z
digit  ::= 0|1|2|3|4|5|6|7|8|9

Reserved Words

          Token                         Lexeme

MP_AND            "and"
MP_BEGIN          "begin"
MP_DIV            "div"
MP_DO             "do"
MP_DOWNTO         "downto"
MP_ELSE           "else"
MP_END            "end"
MP_FIXED          "fixed" -- ignore this token and lexeme
MP_FLOAT          "float"
MP_FOR            "for"
MP_FUNCTION       "function"
MP_IF             "if"
MP_INTEGER        "integer"
MP_MOD            "mod"
MP_NOT            "not"
MP_OR             "or"
MP_PROCEDURE      "procedure"
MP_PROGRAM        "program"
MP_READ           "read"
MP_REPEAT         "repeat"
MP_THEN           "then"
MP_TO             "to"
MP_UNTIL          "until"
MP_VAR            "var"
MP_WHILE          "while"
MP_WRITE          "write"

 

Identifiers and Literals

MP_IDENTIFIER          ??
MP_INTEGER_LIT         digit{digit}  
MP_FLOAT_LIT           ??
  
MP_STRING_LIT          "'" {"''" | AnyCharacterExceptApostropheOrEOL} "'"  
                          

Symbols

MP_PERIOD         "."
MP_COMMA          ","
MP_SCOLON         ";"
MP_LPAREN         "("
MP_RPAREN         ")"
MP_EQUAL          "="
MP_GTHAN          ">"
MP_GEQUAL         ">="
MP_LTHAN          "<"
MP_LEQUAL         "<="
MP_NEQUAL         "<>"
MP_ASSIGN         ":="
MP_PLUS           "+"
MP_MINUS          "-"
MP_TIMES          "*"
MP_COLON          ":"

End of File

MP_EOF

Errors

MP_RUN_COMMENT
MP_RUN_STRING
MP_ERROR