|
|
1.1 ! root 1: (* Copyright 1989 by AT&T Bell Laboratories *) ! 2: signature TOKEN = sig ! 3: datatype token = ! 4: EOF | ID of Symbol.symbol | IDDOT of Symbol.symbol | TYVAR of Symbol.symbol ! 5: | INT of int | REAL of string | STRING of string | ABSTRACTION | ABSTYPE | AND ! 6: | ARROW | AS | BAR | CASE | DATATYPE | DOTDOTDOT | ELSE | END | EQUAL ! 7: | EQTYPE | EXCEPTION | DO | DARROW | FN | FUN | FUNCTOR | HANDLE | HASH | IF | IN ! 8: | INCLUDE | INFIX | INFIXR | LET | LOCAL | NONFIX | OF | OP | OPEN | OVERLOAD ! 9: | RAISE | REC | SHARING | SIG | SIGNATURE | STRUCT | STRUCTURE | THEN ! 10: | TYPE | VAL | WHILE | WILD | WITH | WITHTYPE | ASTERISK | COLON | COMMA | LBRACE ! 11: | LBRACKET | LPAREN | RBRACE | RBRACKET | RPAREN | SEMICOLON | ORELSE | ANDALSO | IMPORT ! 12: ! 13: val tokenName : token -> string ! 14: end (* TOKEN *) ! 15: ! 16: structure Token : TOKEN = struct ! 17: datatype token = ! 18: EOF | ID of Symbol.symbol | IDDOT of Symbol.symbol | TYVAR of Symbol.symbol ! 19: | INT of int | REAL of string | STRING of string | ABSTRACTION | ABSTYPE | AND ! 20: | ARROW | AS | BAR | CASE | DATATYPE | DOTDOTDOT | ELSE | END | EQUAL ! 21: | EQTYPE | EXCEPTION | DO | DARROW | FN | FUN | FUNCTOR | HANDLE | HASH | IF | IN ! 22: | INCLUDE | INFIX | INFIXR | LET | LOCAL | NONFIX | OF | OP | OPEN | OVERLOAD ! 23: | RAISE | REC | SHARING | SIG | SIGNATURE | STRUCT | STRUCTURE | THEN ! 24: | TYPE | VAL | WHILE | WILD | WITH | WITHTYPE | ASTERISK | COLON | COMMA | LBRACE ! 25: | LBRACKET | LPAREN | RBRACE | RBRACKET | RPAREN | SEMICOLON | ORELSE | ANDALSO | IMPORT ! 26: ! 27: fun tokenName(tok: token) : string = ! 28: case tok of ! 29: EOF => "EOF" ! 30: | ID s => "ID " ^ Symbol.name(s) ! 31: | IDDOT s => "IDDOT " ^ Symbol.name(s) ! 32: | TYVAR s => "TYVAR " ^ Symbol.name(s) ! 33: | INT i => "INT" ^ makestring(i) ! 34: | REAL s => "REAL " ^ s ! 35: | STRING s => "STRING " ^ s ! 36: | AND => "AND" ! 37: | ABSTRACTION => "ABSTRACTION" ! 38: | ABSTYPE => "ABSTYPE" ! 39: | ARROW => "ARROW" ! 40: | AS => "AS" ! 41: | BAR => "BAR" ! 42: | CASE => "CASE" ! 43: | DATATYPE => "DATATYPE" ! 44: | DOTDOTDOT => "DOTDOTDOT" ! 45: | ELSE => "ELSE" ! 46: | END => "END" ! 47: | EQUAL => "EQUAL" ! 48: | EQTYPE => "EQTYPE" ! 49: | EXCEPTION => "EXCEPTION" ! 50: | DO => "DO" ! 51: | DARROW => "DARROW" ! 52: | FN => "FN" ! 53: | FUN => "FUN" ! 54: | FUNCTOR => "FUNCTOR" ! 55: | HANDLE => "HANDLE" ! 56: | HASH => "HASH" ! 57: | IF => "IF" ! 58: | IN => "IN" ! 59: | INCLUDE => "INCLUDE" ! 60: | INFIX => "INFIX" ! 61: | INFIXR => "INFIXR" ! 62: | LET => "LET" ! 63: | LOCAL => "LOCAL" ! 64: | NONFIX => "NONFIX" ! 65: | OF => "OF" ! 66: | OP => "OP" ! 67: | OPEN => "OPEN" ! 68: | OVERLOAD => "OVERLOAD" ! 69: | RAISE => "RAISE" ! 70: | REC => "REC" ! 71: | SHARING => "SHARING" ! 72: | SIG => "SIG" ! 73: | SIGNATURE => "SIGNATURE" ! 74: | STRUCT => "STRUCT" ! 75: | STRUCTURE => "STRUCTURE" ! 76: | THEN => "THEN" ! 77: | TYPE => "TYPE" ! 78: | VAL => "VAL" ! 79: | WHILE => "WHILE" ! 80: | WILD => "WILD" ! 81: | WITH => "WITH" ! 82: | WITHTYPE => "WITHTYPE" ! 83: | ASTERISK => "ASTERISK" ! 84: | COLON => "COLON" ! 85: | COMMA => "COMMA" ! 86: | LBRACE => "LBRACE" ! 87: | LBRACKET => "LBRACKET" ! 88: | LPAREN => "LPAREN" ! 89: | RBRACE => "RBRACE" ! 90: | RBRACKET => "RBRACKET" ! 91: | RPAREN => "RPAREN" ! 92: | SEMICOLON => "SEMICOLON" ! 93: | ORELSE => "ORELSE" ! 94: | ANDALSO => "ANDALSO" ! 95: | IMPORT => "IMPORT" ! 96: end (* Token *)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.