|
|
1.1 ! root 1: (* Copyright 1989 by AT&T Bell Laboratories *) ! 2: (* bareabsyn.sig *) ! 3: ! 4: signature BAREABSYN = sig ! 5: ! 6: structure Basics : BASICS ! 7: structure Access : ACCESS ! 8: type linenum ! 9: ! 10: datatype numberedLabel = LABEL of {name : Basics.Symbol.symbol, number: int}; ! 11: ! 12: datatype exp = VARexp of Basics.var ref ! 13: | CONexp of Basics.datacon ! 14: | INTexp of int ! 15: | REALexp of string ! 16: | STRINGexp of string ! 17: | RECORDexp of (numberedLabel * exp) list ! 18: | SEQexp of exp list ! 19: | APPexp of exp * exp ! 20: | CONSTRAINTexp of exp * Basics.ty ! 21: | HANDLEexp of exp * handler ! 22: | RAISEexp of exp ! 23: | LETexp of dec * exp ! 24: | CASEexp of exp * rule list ! 25: | FNexp of rule list ! 26: | MARKexp of exp * linenum * linenum ! 27: ! 28: and rule = RULE of pat * exp ! 29: ! 30: and handler = HANDLER of exp ! 31: ! 32: and pat = WILDpat ! 33: | VARpat of Basics.var ! 34: | INTpat of int ! 35: | REALpat of string ! 36: | STRINGpat of string ! 37: | CONpat of Basics.datacon ! 38: | RECORDpat of ! 39: {fields : (Basics.label * pat) list, ! 40: flex : bool, ! 41: typ : Basics.ty ref, ! 42: pats : pat list ref} ! 43: | APPpat of Basics.datacon * pat ! 44: | CONSTRAINTpat of pat * Basics.ty ! 45: | LAYEREDpat of pat * pat ! 46: ! 47: and strexp = VARstr of Basics.structureVar ! 48: | STRUCTstr of ! 49: {body: dec list, ! 50: locations: Basics.trans list} (* component paths *) ! 51: | APPstr of ! 52: {oper: Basics.functorVar, ! 53: argexp: strexp, ! 54: argthin: Basics.thinning} ! 55: | LETstr of dec * strexp ! 56: ! 57: and dec = VALdec of vb list ! 58: | VALRECdec of rvb list ! 59: | TYPEdec of tb list ! 60: | DATATYPEdec of ! 61: {datatycs: Basics.tycon ref list, ! 62: withtycs: tb list} ! 63: | ABSTYPEdec of ! 64: {abstycs: Basics.tycon ref list, ! 65: withtycs: tb list, ! 66: body: dec} ! 67: | EXCEPTIONdec of eb list ! 68: | STRdec of strb list ! 69: | ABSdec of strb list ! 70: | FCTdec of fctb list ! 71: | SIGdec of Basics.signatureVar list ! 72: | OPENdec of Basics.structureVar list ! 73: | LOCALdec of dec * dec ! 74: | SEQdec of dec list ! 75: | IMPORTdec of string list ! 76: | MARKdec of dec * linenum * linenum ! 77: ! 78: and vb = VB of ! 79: {pat:pat, ! 80: exp:exp, ! 81: tyvars: Basics.tyvar list} ! 82: and rvb = RVB of ! 83: {var:Basics.var, ! 84: exp:exp, ! 85: resultty: Basics.ty option, ! 86: tyvars: Basics.tyvar list} ! 87: and fb = FB of ! 88: {var:Basics.var, ! 89: clauses: clause list, ! 90: tyvars: Basics.tyvar list} ! 91: and clause = CLAUSE of ! 92: {pats: pat list, ! 93: resultty: Basics.ty option, ! 94: exp:exp} ! 95: and tb = TB of ! 96: {tyc : Basics.tycon ref, ! 97: def : Basics.ty} ! 98: and eb = EBgen of ! 99: {exn: Basics.datacon, ! 100: etype: Basics.ty option} ! 101: | EBdef of ! 102: {exn: Basics.datacon, ! 103: edef: Basics.datacon} ! 104: and strb = STRB of ! 105: {strvar: Basics.structureVar, ! 106: def: strexp, ! 107: thin: Basics.thinning, ! 108: constraint: Basics.Structure option} (* info only *) ! 109: and fctb = FCTB of ! 110: {fctvar: Basics.functorVar, ! 111: param: Basics.structureVar, ! 112: def: strexp, ! 113: thin: Basics.thinning, ! 114: constraint: Basics.Structure option} (* info only *) ! 115: ! 116: end (* signature BAREABSYN *)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.