structure Tokens : Tiger_TOKENS = struct (* A "scaffold" structure for debugging lexers. *) type linenum = int type token = string fun TYPE(i,j) = "TYPE " ^ makestring(i:int) fun VAR(i,j) = "VAR " ^ makestring(i:int) fun FUNCTION(i,j) = "FUNCTION " ^ makestring(i:int) fun BREAK(i,j) = "BREAK " ^ makestring(i:int) fun OF(i,j) = "OF " ^ makestring(i:int) fun END(i,j) = "END " ^ makestring(i:int) fun IN(i,j) = "IN " ^ makestring(i:int) fun NIL(i,j) = "NIL " ^ makestring(i:int) fun LET(i,j) = "LET " ^ makestring(i:int) fun DO(i,j) = "DO " ^ makestring(i:int) fun TO(i,j) = "TO " ^ makestring(i:int) fun FOR(i,j) = "FOR " ^ makestring(i:int) fun WHILE(i,j) = "WHILE " ^ makestring(i:int) fun ELSE(i,j) = "ELSE " ^ makestring(i:int) fun THEN(i,j) = "THEN " ^ makestring(i:int) fun IF(i,j) = "IF " ^ makestring(i:int) fun ARRAY(i,j) = "ARRAY " ^ makestring(i:int) fun ASSIGN(i,j) = "ASSIGN " ^ makestring(i:int) fun OR(i,j) = "OR " ^ makestring(i:int) fun AND(i,j) = "AND " ^ makestring(i:int) fun GE(i,j) = "GE " ^ makestring(i:int) fun GT(i,j) = "GT " ^ makestring(i:int) fun LE(i,j) = "LE " ^ makestring(i:int) fun LT(i,j) = "LT " ^ makestring(i:int) fun NEQ(i,j) = "NEQ " ^ makestring(i:int) fun EQ(i,j) = "EQ " ^ makestring(i:int) fun DIVIDE(i,j) = "DIVIDE " ^ makestring(i:int) fun TIMES(i,j) = "TIMES " ^ makestring(i:int) fun MINUS(i,j) = "MINUS " ^ makestring(i:int) fun PLUS(i,j) = "PLUS " ^ makestring(i:int) fun DOT(i,j) = "DOT " ^ makestring(i:int) fun RBRACE(i,j) = "RBRACE " ^ makestring(i:int) fun LBRACE(i,j) = "LBRACE " ^ makestring(i:int) fun RBRACK(i,j) = "RBRACK " ^ makestring(i:int) fun LBRACK(i,j) = "LBRACK " ^ makestring(i:int) fun RPAREN(i,j) = "RPAREN " ^ makestring(i:int) fun LPAREN(i,j) = "LPAREN " ^ makestring(i:int) fun SEMICOLON(i,j) = "SEMICOLON " ^ makestring(i:int) fun COLON(i,j) = "COLON " ^ makestring(i:int) fun COMMA(i,j) = "COMMA " ^ makestring(i:int) fun STRING(s,i,j) = "STRING("^s^") " ^ makestring(i:int) fun INT(c,i,j) = "INT("^makestring(c:int)^") " ^ makestring(i:int) fun ID(s,i,j) = "ID("^s^") " ^ makestring(i:int) fun EOF(i,j) = "EOF " ^ makestring(i:int) end