Annotation of researchv10no/cmd/sml/src/parse/first.sml, revision 1.1.1.1

1.1       root        1: (* Copyright 1989 by AT&T Bell Laboratories *)
                      2: structure FirstSets = struct
                      3: 
                      4: local open Token Basics in
                      5: 
                      6: fun firstApat lookFIX =
                      7:     fn ID s =>  lookFIX(s) = NONfix
                      8:      | OP => true
                      9:      | IDDOT _ => true
                     10:      | INT _ => true 
                     11:      | REAL _ => true
                     12:      | STRING _ => true
                     13:      | WILD => true
                     14:      | LPAREN => true
                     15:      | LBRACE => true
                     16:      | LBRACKET => true
                     17:      | _    => false
                     18: 
                     19: fun firstAexp lookFIX =
                     20:     fn ID s =>   lookFIX(s) = NONfix
                     21:      | OP => true
                     22:      | IDDOT _ => true
                     23:      | INT _ => true
                     24:      | REAL _ => true
                     25:      | STRING _ => true
                     26:      | HASH => true
                     27:      | LPAREN => true
                     28:      | LBRACE => true
                     29:      | LBRACKET => true
                     30:      | LET => true
                     31:      | _    => false
                     32: 
                     33: fun firstExp lookFIX =
                     34:     fn IF => true
                     35:      | WHILE => true
                     36:      | CASE => true
                     37:      | RAISE => true
                     38:      | FN => true
                     39:      | tok => firstAexp lookFIX tok
                     40:      
                     41: val firstLdec = 
                     42:     fn VAL => true
                     43:      | FUN => true
                     44:      | TYPE => true
                     45:      | DATATYPE => true
                     46:      | ABSTYPE => true
                     47:      | EXCEPTION => true
                     48:      | Token.OPEN => true
                     49:      | LOCAL => true
                     50:      | INFIX => true
                     51:      | INFIXR => true
                     52:      | NONFIX => true
                     53:      | OVERLOAD => true
                     54:      | _    => false
                     55: 
                     56: val firstSdec = 
                     57:     fn VAL => true
                     58:      | FUN => true
                     59:      | TYPE => true
                     60:      | DATATYPE => true
                     61:      | ABSTYPE => true
                     62:      | EXCEPTION => true
                     63:      | Token.OPEN => true
                     64:      | LOCAL => true
                     65:      | INFIX => true
                     66:      | INFIXR => true
                     67:      | NONFIX => true
                     68:      | OVERLOAD => true
                     69:      | STRUCTURE => true
                     70:      | ABSTRACTION => true
                     71:      | Token.FUNCTOR => true  (* monster structure hack *)
                     72:      | SIGNATURE => true      (* ditto *)
                     73:      | _    => false
                     74: 
                     75: val firstTdec = 
                     76:     fn SIGNATURE => true
                     77:      | STRUCTURE => true
                     78:      | ABSTRACTION => true
                     79:      | Token.FUNCTOR => true
                     80:      | _    => false
                     81: 
                     82: val firstSpec =
                     83:     fn STRUCTURE => true
                     84:      | TYPE => true
                     85:      | EQTYPE => true
                     86:      | DATATYPE => true
                     87:      | SHARING => true
                     88:      | VAL => true
                     89:      | EXCEPTION => true
                     90:      | INFIX => true
                     91:      | INFIXR => true
                     92:      | NONFIX => true
                     93:      | OVERLOAD => true
                     94:      | INCLUDE => true
                     95:      | LOCAL => true
                     96:      | Token.OPEN => true
                     97:      | _    => false
                     98: 
                     99: end (* local *)
                    100: 
                    101: end (* FirstSets *)

unix.superglobalmegacorp.com

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