1 |
(* |
(* |
2 |
* SML source skeletons. |
* SML source skeletons. |
3 |
|
* (This has been vastly streamlined and simplified.) |
4 |
* |
* |
5 |
|
* Copyright (c) 1999 by Bell Laboratories, Lucent Technologies |
6 |
* Copyright (c) 1995 by AT&T Bell Laboratories |
* Copyright (c) 1995 by AT&T Bell Laboratories |
7 |
* Copyright (c) 1993 by Carnegie Mellon University, |
* Copyright (c) 1993 by Carnegie Mellon University, |
8 |
* School of Computer Science |
* School of Computer Science |
16 |
type sympath = GenericVC.SymPath.path |
type sympath = GenericVC.SymPath.path |
17 |
|
|
18 |
datatype decl = |
datatype decl = |
19 |
StrDecl of { name: symbol, |
Bind of symbol * modExp |
20 |
def: strExp, |
| Local of decl * decl |
21 |
constraint: strExp option } list |
| Par of decl list |
22 |
| FctDecl of { name: symbol, def: fctExp } list |
| Seq of decl list |
23 |
| LocalDecl of decl * decl |
| Open of modExp |
24 |
| SeqDecl of decl list |
| Ref of SymbolSet.set |
|
| OpenDecl of strExp list |
|
|
| DeclRef of SymbolSet.set |
|
25 |
|
|
26 |
and strExp = |
and modExp = |
27 |
VarStrExp of sympath |
Var of sympath |
28 |
| BaseStrExp of decl |
| Decl of decl |
29 |
| AppStrExp of sympath * strExp list |
| App of sympath * modExp list |
30 |
| LetStrExp of decl * strExp |
| Let of decl * modExp |
31 |
| ConStrExp of strExp * strExp |
| Con of modExp * modExp |
|
|
|
|
and fctExp = |
|
|
VarFctExp of sympath * fctExp option |
|
|
| BaseFctExp of { params: decl, body: strExp, constraint: strExp option } |
|
|
| AppFctExp of sympath * strExp list * fctExp option |
|
|
| LetFctExp of decl * fctExp |
|
32 |
end |
end |