Annotation of researchv10no/cmd/sml/src/basics/token.sml, revision 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.