9 use "lexicon.ML"; |
9 use "lexicon.ML"; |
10 use "ast.ML"; |
10 use "ast.ML"; |
11 use "syn_ext.ML"; |
11 use "syn_ext.ML"; |
12 use "parser.ML"; |
12 use "parser.ML"; |
13 use "type_ext.ML"; |
13 use "type_ext.ML"; |
14 use "sextension.ML"; |
14 use "syn_trans.ML"; |
15 use "mixfix.ML"; |
15 use "mixfix.ML"; |
16 use "printer.ML"; |
16 use "printer.ML"; |
17 use "syntax.ML"; |
17 use "syntax.ML"; |
18 |
18 |
19 structure Pretty = PrettyFun(); |
19 structure PrivateSyntax = |
20 structure Lexicon = LexiconFun(); |
20 struct |
21 structure Scanner: SCANNER = Lexicon; |
21 structure Pretty = PrettyFun(); |
22 structure Ast = AstFun(Pretty); |
22 structure Lexicon = LexiconFun(); |
23 structure SynExt = SynExtFun(structure Lexicon = Lexicon and Ast = Ast); |
23 structure Scanner: SCANNER = Lexicon; |
24 structure Parser = ParserFun(structure Symtab = Symtab and Lexicon = Lexicon |
24 structure Ast = AstFun(Pretty); |
25 and SynExt = SynExt); |
25 structure SynExt = SynExtFun(structure Lexicon = Lexicon and Ast = Ast); |
26 structure TypeExt = TypeExtFun(structure Lexicon = Lexicon and SynExt = SynExt); |
26 structure Parser = ParserFun(structure Symtab = Symtab and Lexicon = Lexicon |
27 structure SExtension = SExtensionFun(structure TypeExt = TypeExt and Parser = Parser); |
27 and SynExt = SynExt); |
28 structure Mixfix = MixfixFun(structure Lexicon = Lexicon and SynExt = SynExt and |
28 structure TypeExt = TypeExtFun(structure Lexicon = Lexicon and SynExt = SynExt); |
29 SExtension = SExtension); |
29 structure SynTrans = SynTransFun(structure TypeExt = TypeExt and Parser = Parser); |
30 structure Printer = PrinterFun(structure Symtab = Symtab and TypeExt = TypeExt |
30 structure Mixfix = MixfixFun(structure Lexicon = Lexicon and SynExt = SynExt and |
31 and SExtension = SExtension); |
31 SynTrans = SynTrans); |
32 structure Syntax = SyntaxFun(structure Symtab = Symtab and TypeExt = TypeExt |
32 structure Printer = PrinterFun(structure Symtab = Symtab and TypeExt = TypeExt |
33 and SExtension = SExtension and Mixfix = Mixfix and Printer = Printer); |
33 and SynTrans = SynTrans); |
34 structure BasicSyntax: BASIC_SYNTAX = Syntax; |
34 structure Syntax = SyntaxFun(structure Symtab = Symtab and TypeExt = TypeExt |
|
35 and SynTrans = SynTrans and Mixfix = Mixfix and Printer = Printer); |
|
36 structure BasicSyntax: BASIC_SYNTAX = Syntax; |
|
37 end; |
35 |
38 |
36 (* FIXME tmp hacks *) |
39 structure Pretty = PrivateSyntax.Pretty; |
37 structure BasicSyntax = struct open BasicSyntax Mixfix end; |
40 structure Scanner = PrivateSyntax.Scanner; |
38 structure OldMixfix: SEXTENSION0 = SExtension; |
41 structure Syntax = PrivateSyntax.Syntax; |
|
42 structure BasicSyntax = PrivateSyntax.BasicSyntax; |
|
43 |