|
|
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 *)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.