Annotation of researchv10no/cmd/sml/src/basics/token.sml, revision 1.1.1.1

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 *)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.