1 diff --git a/README.mlton b/README.mlton
7 +The following changes were made to the ckit Library, in addition to
8 +deriving the `.mlb` file from the `.cm` file:
10 +* `ast/pp/pp-ast-adornment-sig.sml` (modified): Rewrote use of `signature` in `local`.
11 +* `ast/pp/pp-ast-ext-sig.sml` (modified): Rewrote use of `signature` in `local`.
12 +* `ast/type-util-sig.sml` (modified): Rewrote use of `signature` in `local`.
13 +* `parser/parse-tree-sig.sml` (modified): Rewrote use of (sequential) `withtype` in signature.
14 +* `parser/parse-tree.sml` (modified): Rewrote use of (sequential) `withtype`.
15 diff --git a/ckit-lib.mlb b/ckit-lib.mlb
17 index 0000000..abc601f
22 diff --git a/src/ast/pp/pp-ast-adornment-sig.sml b/src/ast/pp/pp-ast-adornment-sig.sml
23 index a7b937b..ab6e0a9 100644
24 --- a/src/ast/pp/pp-ast-adornment-sig.sml
25 +++ b/src/ast/pp/pp-ast-adornment-sig.sml
27 (* Copyright (c) 1998 by Lucent Technologies *)
31 type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
33 type ('aidinfo,'a,'b) adornment_pp = ('aidinfo -> 'a) -> 'aidinfo -> 'b
36 signature PPASTADORNMENT = sig
38 val ppExpressionAdornment: (aidinfo,Ast.coreExpression pp,Ast.expression pp) adornment_pp
39 val ppStatementAdornment : (aidinfo,Ast.coreStatement pp,Ast.statement pp) adornment_pp
40 val ppExternalDeclAdornment: (aidinfo,Ast.coreExternalDecl pp,Ast.externalDecl pp) adornment_pp
44 diff --git a/src/ast/pp/pp-ast-ext-sig.sml b/src/ast/pp/pp-ast-ext-sig.sml
45 index 4169fc7..c7291ab 100644
46 --- a/src/ast/pp/pp-ast-ext-sig.sml
47 +++ b/src/ast/pp/pp-ast-ext-sig.sml
49 (* Copyright (c) 1998 by Lucent Technologies *)
53 type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
54 type ('a, 'aidinfo) ppExt =
55 (('aidinfo -> Ast.expression pp) * ('aidinfo -> Ast.statement pp) *
56 ('aidinfo -> Ast.binop pp) * ('aidinfo -> Ast.unop pp))
58 -> Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
62 signature PPASTEXT = sig
64 @@ -24,4 +24,4 @@ signature PPASTEXT = sig
70 diff --git a/src/ast/type-util-sig.sml b/src/ast/type-util-sig.sml
71 index b03260b..a262146 100644
72 --- a/src/ast/type-util-sig.sml
73 +++ b/src/ast/type-util-sig.sml
75 (* Copyright (c) 1998 by Lucent Technologies *)
79 type 'a type_util = Tables.tidtab -> Ast.ctype -> 'a
80 type 'a type_mem_util = Tables.tidtab -> Ast.ctype * Ast.member -> 'a
81 type 'a type_type_util = Tables.tidtab -> Ast.ctype * Ast.ctype -> 'a
87 @@ -145,4 +145,4 @@ sig
89 end (* signature TYPE_UTIL *)
92 +(* end (* local *) *)
93 diff --git a/src/ckit-lib.mlb b/src/ckit-lib.mlb
95 index 0000000..04c7479
97 +++ b/src/ckit-lib.mlb
101 + "nonexhaustiveBind warn" "nonexhaustiveMatch warn"
102 + "redundantBind warn" "redundantMatch warn"
103 + "sequenceNonUnit ignore"
104 + "warnUnused false" "forceUsed"
105 + "allowOrPats true" "allowSigWithtype true" "allowVectorExpsAndPats true"
111 + (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb $(SML_LIB)/basis/unsafe.mlb
115 + (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb
119 + (* $/pp-lib.cm ====> *) $(SML_LIB)/smlnj-lib/PP/pp-lib.mlb
123 + (* $/ml-yacc-lib.cm ====> *) $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb
127 + $(SML_LIB)/basis/pervasive.mlb
131 + structure gs_0 = TextIO
134 + variants/type-check-control-sig.sml
136 + signature gs_1 = TYPECHECKCONTROL
139 + variants/parse-control-sig.sml
141 + signature gs_2 = PARSECONTROL
144 + signature PARSECONTROL = gs_2
145 + signature TYPECHECKCONTROL = gs_1
146 + variants/config-sig.sml
148 + signature gs_3 = CONFIG
151 + signature CONFIG = gs_3
152 + signature PARSECONTROL = gs_2
153 + signature TYPECHECKCONTROL = gs_1
154 + structure TextIO = gs_0
155 + variants/ansic/config.sml
157 + structure gs_4 = Config
162 + functor gs_5 = HashTableFn
165 + ast/uidtabimp-sig.sml
167 + signature gs_6 = UIDTABIMP
172 + structure gs_7 = Word
175 + structure Word = gs_7
178 + signature gs_8 = UID
181 + functor HashTableFn = gs_5
182 + signature UID = gs_8
183 + signature UIDTABIMP = gs_6
184 + ast/uidtabimp-fn.sml
186 + functor gs_9 = UidtabImpFn
191 + structure gs_10 = Int
194 + structure Int = gs_10
195 + signature UID = gs_8
196 + structure Word = gs_7
199 + functor gs_11 = UidFn
202 + signature UID = gs_8
203 + functor UidFn = gs_11
206 + structure gs_12 = Aid
209 + structure Aid = gs_12
210 + functor UidtabImpFn = gs_9
213 + structure gs_13 = Aidtab
218 + structure gs_14 = Format
223 + structure gs_15 = String
226 + parser/util/sourcemap-sig.sml
228 + signature gs_16 = SOURCE_MAP
231 + structure Config = gs_4
232 + structure Format = gs_14
233 + structure Int = gs_10
234 + signature SOURCE_MAP = gs_16
235 + structure String = gs_15
236 + parser/util/sourcemap.sml
238 + structure gs_17 = SourceMap
243 + functor gs_18 = PPStreamFn
248 + structure gs_19 = StringToken
253 + structure gs_20 = StringCvt
258 + structure gs_21 = List
261 + structure List = gs_21
262 + functor PPStreamFn = gs_18
263 + structure String = gs_15
264 + structure StringCvt = gs_20
265 + structure StringToken = gs_19
266 + parser/util/old-pp.sml
268 + signature gs_22 = OLD_PRETTYPRINT
269 + structure gs_23 = OldPrettyPrint
272 + structure Format = gs_14
273 + signature OLD_PRETTYPRINT = gs_22
274 + structure OldPrettyPrint = gs_23
275 + structure SourceMap = gs_17
276 + structure TextIO = gs_0
277 + parser/util/error-sig.sml
279 + signature gs_24 = ERROR
282 + signature ERROR = gs_24
283 + structure Format = gs_14
284 + signature OLD_PRETTYPRINT = gs_22
285 + structure OldPrettyPrint = gs_23
286 + structure SourceMap = gs_17
287 + structure TextIO = gs_0
288 + parser/util/error.sml
290 + structure gs_25 = Error
295 + functor gs_26 = Join
296 + functor gs_27 = JoinWithArg
301 + structure gs_28 = LrParser
306 + structure gs_29 = LargeInt
309 + parser/extensions/c/parse-tree-ext.sml
311 + structure gs_30 = ParseTreeExt
314 + structure LargeInt = gs_29
315 + structure ParseTreeExt = gs_30
316 + structure SourceMap = gs_17
317 + parser/parse-tree-sig.sml
319 + signature gs_31 = PARSETREE
322 + structure LargeInt = gs_29
323 + signature PARSETREE = gs_31
324 + structure ParseTreeExt = gs_30
325 + structure SourceMap = gs_17
326 + parser/parse-tree.sml
328 + structure gs_32 = ParseTree
331 + structure Error = gs_25
332 + structure ParseTree = gs_32
333 + parser/parser-sig.sml
335 + signature gs_33 = PARSER
340 + structure gs_34 = Unsafe
345 + structure gs_35 = IntInf
350 + structure gs_36 = CharVector
355 + structure gs_37 = Vector
360 + structure gs_38 = Real
365 + structure gs_39 = Char
370 + structure gs_40 = AtomTable
375 + structure gs_41 = Atom
378 + structure Atom = gs_41
379 + structure AtomTable = gs_40
380 + structure Config = gs_4
381 + parser/grammar/tdefs.sml
383 + signature gs_42 = TYPEDEFS
384 + structure gs_43 = TypeDefs
389 + signature gs_44 = ARG_LEXER
390 + signature gs_45 = ARG_PARSER
391 + signature gs_46 = LEXER
392 + signature gs_47 = LR_PARSER
393 + signature gs_48 = LR_TABLE
394 + signature gs_49 = PARSER
395 + signature gs_50 = PARSER_DATA
396 + signature gs_51 = STREAM
397 + signature gs_52 = TOKEN
400 + signature ARG_LEXER = gs_44
401 + signature ARG_PARSER = gs_45
402 + signature LEXER = gs_46
403 + signature LR_PARSER = gs_47
404 + signature LR_TABLE = gs_48
405 + structure LargeInt = gs_29
406 + signature PARSER = gs_49
407 + signature PARSER_DATA = gs_50
408 + signature STREAM = gs_51
409 + signature TOKEN = gs_52
410 + parser/grammar/c.grm.sig
412 + signature gs_53 = C_LRVALS
413 + signature gs_54 = C_TOKENS
416 + structure Atom = gs_41
417 + structure AtomTable = gs_40
418 + signature C_LRVALS = gs_53
419 + signature C_TOKENS = gs_54
420 + structure Config = gs_4
421 + signature TYPEDEFS = gs_42
422 + structure TypeDefs = gs_43
423 + parser/grammar/tokentable.sml
425 + signature gs_55 = TOKENTABLE
426 + functor gs_56 = TokenTable
429 + signature C_LRVALS = gs_53
430 + signature C_TOKENS = gs_54
431 + structure Char = gs_39
432 + structure CharVector = gs_36
433 + structure Int = gs_10
434 + structure IntInf = gs_35
435 + structure LargeInt = gs_29
436 + structure List = gs_21
437 + structure Real = gs_38
438 + structure SourceMap = gs_17
439 + structure String = gs_15
440 + structure StringCvt = gs_20
441 + signature TOKENTABLE = gs_55
442 + functor TokenTable = gs_56
443 + structure Unsafe = gs_34
444 + structure Vector = gs_37
445 + parser/grammar/c.lex.sml
447 + functor gs_57 = CLexFun
452 + structure gs_58 = Array
457 + structure gs_59 = General
460 + signature ARG_LEXER = gs_44
461 + signature ARG_PARSER = gs_45
462 + structure Array = gs_58
463 + signature C_LRVALS = gs_53
464 + signature C_TOKENS = gs_54
465 + structure Char = gs_39
466 + structure Error = gs_25
467 + structure General = gs_59
468 + signature LEXER = gs_46
469 + signature LR_PARSER = gs_47
470 + signature LR_TABLE = gs_48
471 + structure LargeInt = gs_29
472 + structure List = gs_21
473 + signature PARSER = gs_49
474 + signature PARSER_DATA = gs_50
475 + structure ParseTree = gs_32
476 + signature STREAM = gs_51
477 + structure SourceMap = gs_17
478 + structure String = gs_15
479 + signature TOKEN = gs_52
480 + signature TYPEDEFS = gs_42
481 + structure TypeDefs = gs_43
482 + parser/grammar/c.grm.sml
484 + functor gs_60 = LrValsFun
487 + functor CLexFun = gs_57
488 + structure Error = gs_25
489 + functor Join = gs_26
490 + functor JoinWithArg = gs_27
491 + structure LrParser = gs_28
492 + functor LrValsFun = gs_60
493 + signature PARSER = gs_33
494 + structure SourceMap = gs_17
495 + signature TOKENTABLE = gs_55
496 + signature TYPEDEFS = gs_42
497 + structure TextIO = gs_0
498 + functor TokenTable = gs_56
499 + structure TypeDefs = gs_43
502 + structure gs_61 = Parser
507 + structure gs_62 = HashString
510 + signature UID = gs_8
511 + functor UidFn = gs_11
514 + structure gs_63 = Tid
517 + structure Tid = gs_63
520 + signature gs_64 = SYMBOL
523 + structure HashString = gs_62
524 + structure Int = gs_10
525 + signature SYMBOL = gs_64
526 + structure String = gs_15
527 + structure Tid = gs_63
528 + structure Word = gs_7
531 + structure gs_65 = Symbol
534 + signature UID = gs_8
535 + functor UidFn = gs_11
538 + structure gs_66 = Pid
541 + ast/extensions/c/ast-ext.sml
543 + structure gs_67 = AstExt
546 + structure Aid = gs_12
547 + structure AstExt = gs_67
548 + structure LargeInt = gs_29
549 + structure Pid = gs_66
550 + structure SourceMap = gs_17
551 + structure Symbol = gs_65
552 + structure Tid = gs_63
555 + signature gs_68 = AST
558 + signature AST = gs_68
559 + structure Aid = gs_12
560 + structure AstExt = gs_67
561 + structure LargeInt = gs_29
562 + structure Pid = gs_66
563 + structure SourceMap = gs_17
564 + structure Symbol = gs_65
565 + structure Tid = gs_63
568 + structure gs_69 = Ast
571 + structure Ast = gs_69
572 + structure LargeInt = gs_29
573 + structure Pid = gs_66
574 + structure SourceMap = gs_17
575 + structure Symbol = gs_65
576 + structure Tid = gs_63
579 + structure gs_70 = Bindings
584 + functor gs_71 = BinaryMapFn
589 + signature gs_72 = ORD_MAP
592 + structure Tid = gs_63
593 + functor UidtabImpFn = gs_9
596 + structure gs_73 = Tidtab
599 + structure Aidtab = gs_13
600 + structure Ast = gs_69
601 + structure Bindings = gs_70
602 + structure Tidtab = gs_73
605 + structure gs_74 = Tables
608 + structure Aid = gs_12
609 + structure Ast = gs_69
610 + structure Bindings = gs_70
611 + structure Error = gs_25
612 + structure LargeInt = gs_29
613 + signature ORD_MAP = gs_72
614 + structure SourceMap = gs_17
615 + structure Symbol = gs_65
616 + structure Tables = gs_74
617 + structure Tid = gs_63
620 + signature gs_75 = STATE
623 + structure Aid = gs_12
624 + structure Aidtab = gs_13
625 + structure Ast = gs_69
626 + functor BinaryMapFn = gs_71
627 + structure Bindings = gs_70
628 + structure Error = gs_25
629 + structure LargeInt = gs_29
630 + structure List = gs_21
631 + structure Pid = gs_66
632 + signature STATE = gs_75
633 + structure SourceMap = gs_17
634 + structure Symbol = gs_65
635 + structure Tables = gs_74
636 + structure Tid = gs_63
637 + structure Tidtab = gs_73
640 + structure gs_76 = State
645 + signature gs_77 = SIZES
648 + signature SIZES = gs_77
651 + structure gs_78 = Sizes
654 + structure Ast = gs_69
655 + structure Bindings = gs_70
656 + structure Sizes = gs_78
657 + structure State = gs_76
658 + structure Tables = gs_74
659 + structure TextIO = gs_0
660 + structure Tidtab = gs_73
661 + ast/parse-to-ast-sig.sml
663 + signature gs_79 = PARSE_TO_AST
668 + structure gs_80 = ListPair
673 + structure gs_81 = Option
676 + structure Ast = gs_69
677 + structure Bindings = gs_70
678 + structure Error = gs_25
679 + structure ParseTree = gs_32
680 + structure Sizes = gs_78
681 + structure State = gs_76
682 + structure Tables = gs_74
683 + structure Tidtab = gs_73
684 + ast/build-ast-sig.sml
686 + signature gs_82 = BUILD_AST
689 + structure Ast = gs_69
690 + structure ParseTree = gs_32
691 + structure ParseTreeExt = gs_30
692 + structure State = gs_76
693 + ast/cnv-ext-sig.sml
695 + signature gs_83 = CNVEXT
698 + structure Ast = gs_69
699 + signature CNVEXT = gs_83
700 + structure ParseTree = gs_32
701 + structure ParseTreeExt = gs_30
702 + structure State = gs_76
703 + ast/extensions/c/cnv-ext.sml
705 + structure gs_84 = CnvExt
708 + structure Ast = gs_69
709 + structure Bindings = gs_70
710 + structure Pid = gs_66
711 + structure Symbol = gs_65
712 + ast/simplify-assign-ops.sml
714 + structure gs_85 = SimplifyAssignOps
717 + structure Ast = gs_69
718 + structure Bindings = gs_70
719 + signature OLD_PRETTYPRINT = gs_22
720 + structure OldPrettyPrint = gs_23
721 + structure Tables = gs_74
722 + structure Tid = gs_63
723 + ast/pp/pp-ast-sig.sml
725 + signature gs_86 = PP_AST
730 + structure gs_87 = Int32
733 + structure Ast = gs_69
734 + structure Int = gs_10
735 + structure Int32 = gs_87
736 + structure LargeInt = gs_29
737 + signature OLD_PRETTYPRINT = gs_22
738 + structure OldPrettyPrint = gs_23
739 + structure Pid = gs_66
740 + structure Real = gs_38
741 + structure String = gs_15
742 + structure Symbol = gs_65
743 + structure Tables = gs_74
744 + structure TextIO = gs_0
745 + structure Tid = gs_63
746 + structure Tidtab = gs_73
749 + structure gs_88 = PPLib
752 + structure Ast = gs_69
753 + structure AstExt = gs_67
754 + signature OLD_PRETTYPRINT = gs_22
755 + structure OldPrettyPrint = gs_23
756 + structure Tables = gs_74
757 + ast/pp/pp-ast-ext-sig.sml
759 + signature gs_89 = PPASTEXT
762 + signature PPASTEXT = gs_89
763 + ast/extensions/c/pp-ast-ext-fn.sml
765 + functor gs_90 = PPAstExtFn
768 + structure Ast = gs_69
769 + signature OLD_PRETTYPRINT = gs_22
770 + structure OldPrettyPrint = gs_23
771 + structure Tables = gs_74
772 + ast/pp/pp-ast-adornment-sig.sml
774 + signature gs_91 = PPASTADORNMENT
777 + structure Ast = gs_69
778 + structure Bindings = gs_70
779 + structure Int = gs_10
780 + structure LargeInt = gs_29
781 + structure List = gs_21
782 + signature OLD_PRETTYPRINT = gs_22
783 + structure OldPrettyPrint = gs_23
784 + structure Option = gs_81
785 + signature PPASTADORNMENT = gs_91
786 + functor PPAstExtFn = gs_90
787 + structure PPLib = gs_88
788 + signature PP_AST = gs_86
789 + structure Pid = gs_66
790 + structure SourceMap = gs_17
791 + structure Tid = gs_63
792 + structure Tidtab = gs_73
793 + ast/pp/pp-ast-fn.sml
795 + functor gs_92 = PPAstFn
798 + structure Ast = gs_69
799 + signature PPASTADORNMENT = gs_91
800 + functor PPAstFn = gs_92
803 + structure gs_93 = PPAst
806 + structure Ast = gs_69
809 + structure gs_94 = CTypeEq
812 + structure Ast = gs_69
813 + structure Sizes = gs_78
814 + structure Tables = gs_74
817 + signature gs_95 = SIZEOF
820 + structure Ast = gs_69
821 + structure LargeInt = gs_29
822 + structure Tables = gs_74
823 + ast/type-util-sig.sml
825 + signature gs_96 = TYPE_UTIL
828 + structure Ast = gs_69
829 + structure Bindings = gs_70
830 + structure Config = gs_4
831 + structure Int = gs_10
832 + structure List = gs_21
833 + structure PPAst = gs_93
834 + structure PPLib = gs_88
835 + structure Pid = gs_66
836 + structure Symbol = gs_65
837 + signature TYPE_UTIL = gs_96
838 + structure Tables = gs_74
839 + structure Tid = gs_63
840 + structure Tidtab = gs_73
843 + structure gs_97 = TypeUtil
846 + structure Ast = gs_69
847 + functor BinaryMapFn = gs_71
848 + structure Bindings = gs_70
849 + structure Config = gs_4
850 + structure Int = gs_10
851 + structure LargeInt = gs_29
852 + structure List = gs_21
853 + structure Pid = gs_66
854 + signature SIZEOF = gs_95
855 + structure Sizes = gs_78
856 + structure Tables = gs_74
857 + structure TextIO = gs_0
858 + structure Tid = gs_63
859 + structure Tidtab = gs_73
860 + structure TypeUtil = gs_97
863 + structure gs_98 = Sizeof
866 + structure ParseTree = gs_32
867 + structure Real = gs_38
868 + structure Tid = gs_63
869 + ast/anonymous-structs.sml
871 + structure gs_99 = AnonymousStructs
872 + structure gs_100 = TyEq
875 + structure Aid = gs_12
876 + structure Ast = gs_69
877 + structure Bindings = gs_70
878 + structure Tid = gs_63
879 + ast/initializer-normalizer-sig.sml
881 + signature gs_101 = INITIALIZER_NORMALIZER
884 + structure Aid = gs_12
885 + structure Ast = gs_69
886 + structure Bindings = gs_70
887 + signature INITIALIZER_NORMALIZER = gs_101
888 + structure LargeInt = gs_29
889 + structure SourceMap = gs_17
890 + structure String = gs_15
891 + structure Tid = gs_63
892 + ast/initializer-normalizer.sml
894 + structure gs_102 = InitializerNormalizer
897 + structure Aid = gs_12
898 + structure Aidtab = gs_13
899 + structure AnonymousStructs = gs_99
900 + structure Ast = gs_69
901 + signature BUILD_AST = gs_82
902 + functor BinaryMapFn = gs_71
903 + structure Bindings = gs_70
904 + structure CTypeEq = gs_94
905 + structure CnvExt = gs_84
906 + structure Config = gs_4
907 + structure Error = gs_25
908 + structure InitializerNormalizer = gs_102
909 + structure Int = gs_10
910 + structure LargeInt = gs_29
911 + structure List = gs_21
912 + structure ListPair = gs_80
913 + structure Option = gs_81
914 + structure PPAst = gs_93
915 + structure PPLib = gs_88
916 + structure ParseTree = gs_32
917 + structure ParseTreeExt = gs_30
918 + structure Pid = gs_66
919 + structure SimplifyAssignOps = gs_85
920 + structure Sizeof = gs_98
921 + structure Sizes = gs_78
922 + structure SourceMap = gs_17
923 + structure State = gs_76
924 + structure String = gs_15
925 + structure Symbol = gs_65
926 + structure Tables = gs_74
927 + structure TextIO = gs_0
928 + structure Tid = gs_63
929 + structure Tidtab = gs_73
930 + structure TyEq = gs_100
931 + structure TypeUtil = gs_97
932 + structure Word = gs_7
935 + structure gs_103 = BuildAst
938 + structure Ast = gs_69
939 + structure Bindings = gs_70
940 + structure BuildAst = gs_103
941 + structure Error = gs_25
942 + signature PARSE_TO_AST = gs_79
943 + structure PPAst = gs_93
944 + structure PPLib = gs_88
945 + structure Parser = gs_61
946 + structure Sizes = gs_78
947 + structure State = gs_76
948 + structure Tables = gs_74
949 + structure TextIO = gs_0
950 + structure Tidtab = gs_73
951 + ast/parse-to-ast.sml
953 + structure gs_104 = ParseToAst
956 + signature AST = gs_68
957 + structure Aidtab = gs_13
958 + structure Ast = gs_69
959 + structure Bindings = gs_70
960 + signature CONFIG = gs_3
961 + structure Config = gs_4
962 + signature PARSECONTROL = gs_2
963 + signature PARSER = gs_33
964 + signature PARSETREE = gs_31
965 + signature PARSE_TO_AST = gs_79
966 + structure PPAst = gs_93
967 + signature PP_AST = gs_86
968 + structure ParseToAst = gs_104
969 + structure ParseTree = gs_32
970 + structure Parser = gs_61
971 + structure Pid = gs_66
972 + signature SOURCE_MAP = gs_16
973 + structure Sizeof = gs_98
974 + structure Sizes = gs_78
975 + structure SourceMap = gs_17
976 + structure State = gs_76
977 + structure Symbol = gs_65
978 + signature TYPECHECKCONTROL = gs_1
979 + structure Tables = gs_74
980 + structure Tid = gs_63
981 + structure Tidtab = gs_73
982 + structure TypeUtil = gs_97
983 + signature UID = gs_8
984 + signature UIDTABIMP = gs_6
989 diff --git a/src/parser/grammar/c.grm.sml b/src/parser/grammar/c.grm.sml
990 index 175f5c4..1404fd2 100644
991 --- a/src/parser/grammar/c.grm.sml
992 +++ b/src/parser/grammar/c.grm.sml
993 @@ -1658,7 +1658,7 @@ local
995 if i=numstates then g i
996 else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
997 - in f 0 handle Subscript => ()
998 + in f 0 handle General.Subscript => ()
1001 val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
1002 @@ -1668,7 +1668,7 @@ val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),act
1003 val actionRowNumbers = string_to_list actionRowNumbers
1004 val actionT = let val actionRowLookUp=
1005 let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
1006 -in Array.fromList(map actionRowLookUp actionRowNumbers)
1007 +in Array.fromList(List.map actionRowLookUp actionRowNumbers)
1009 in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
1010 numStates=numstates,initialState=STATE 0}
1011 diff --git a/src/parser/parse-tree-sig.sml b/src/parser/parse-tree-sig.sml
1012 index 4ac8151..a50f78c 100644
1013 --- a/src/parser/parse-tree-sig.sml
1014 +++ b/src/parser/parse-tree-sig.sml
1015 @@ -27,8 +27,10 @@ sig
1016 | ModAssign | XorAssign | OrAssign | AndAssign
1017 | LshiftAssign | RshiftAssign
1019 - | SizeofType of ctype
1020 - | OperatorExt of operatorExt
1022 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
1024 + ParseTreeExt.operatorExt
1028 @@ -40,10 +42,17 @@ sig
1029 | Binop of operator * expression * expression
1030 | QuestionColon of expression * expression * expression
1031 | Call of expression * expression list
1032 - | Cast of ctype * expression
1034 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list} *
1036 | InitList of expression list
1037 | MARKexpression of (SourceMap.location * expression)
1038 - | ExprExt of expressionExt
1040 + (specifier, declarator,
1041 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1042 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1043 + operator, expression, statement)
1044 + ParseTreeExt.expressionExt
1048 @@ -60,11 +69,15 @@ sig
1052 - | Array of expression * ctype
1053 - | Pointer of ctype
1056 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
1058 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
1061 - params : (decltype * declarator) list}
1062 + {retType : (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1063 + params : ((* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list} *
1066 {tagOpt : string option,
1067 enumerators : (string * expression) list,
1068 @@ -72,13 +85,19 @@ sig
1070 {isStruct : bool, (* struct or union; true => struct *)
1071 tagOpt : string option, (* optional tag *)
1072 - members: (ctype * (declarator * expression) list) list} (* member specs *)
1073 + members: ((* ctype *) {qualifiers : qualifier list, specifiers : specifier list} *
1074 + (declarator * expression) list) list} (* member specs *)
1075 | TypedefName of string
1077 {isStruct : bool, (* ??? *)
1080 - | SpecExt of specifierExt
1082 + (specifier, declarator,
1083 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1084 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1085 + operator, expression, statement)
1086 + ParseTreeExt.specifierExt
1088 and declarator (* constructor suffix: "Decr" *)
1090 @@ -87,9 +106,17 @@ sig
1091 | ArrayDecr of declarator * expression
1092 | PointerDecr of declarator
1093 | QualDecr of qualifier * declarator
1094 - | FuncDecr of declarator * (decltype * declarator) list
1097 + ((* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list} *
1099 | MARKdeclarator of (SourceMap.location * declarator)
1100 - | DecrExt of declaratorExt
1102 + (specifier, declarator,
1103 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1104 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1105 + operator, expression, statement)
1106 + ParseTreeExt.declaratorExt
1108 (* supports extensions of C in which expressions contain statements *)
1110 @@ -110,25 +137,42 @@ sig
1111 | IfThenElse of expression * statement * statement
1112 | Switch of expression * statement
1113 | MARKstatement of (SourceMap.location * statement)
1114 - | StatExt of statementExt
1116 + (specifier, declarator,
1117 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1118 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1119 + operator, expression, statement)
1120 + ParseTreeExt.statementExt
1123 - = Declaration of decltype * (declarator * expression) list
1125 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list} *
1126 + (declarator * expression) list
1127 | MARKdeclaration of (SourceMap.location * declaration)
1128 - | DeclarationExt of declarationExt
1129 + | DeclarationExt of
1130 + (specifier, declarator,
1131 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1132 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1133 + operator, expression, statement)
1134 + ParseTreeExt.declarationExt
1136 (* the top-level constructs in a translation unit (i.e. source file) *)
1138 = ExternalDecl of declaration
1140 - {retType : decltype, (* return type *)
1141 + {retType : (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list}, (* return type *)
1142 funDecr : declarator, (* function name declarator *)
1143 krParams : declaration list, (* K&R-style parameter declarations *)
1144 body : statement} (* function body *)
1145 | MARKexternalDecl of (SourceMap.location * externalDecl)
1146 - | ExternalDeclExt of externalDeclExt
1147 + | ExternalDeclExt of
1148 + (specifier, declarator,
1149 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1150 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1151 + operator, expression, statement)
1152 + ParseTreeExt.externalDeclExt
1156 {qualifiers : qualifier list,
1157 specifiers : specifier list}
1159 @@ -137,7 +181,7 @@ sig
1160 storage : storage list}
1162 (* extension types for basic constructs *)
1163 - and externalDeclExt =
1164 + type externalDeclExt =
1165 (specifier, declarator, ctype, decltype, operator, expression, statement)
1166 ParseTreeExt.externalDeclExt
1167 and declarationExt =
1168 diff --git a/src/parser/parse-tree.sml b/src/parser/parse-tree.sml
1169 index 160eb5e..b62b955 100644
1170 --- a/src/parser/parse-tree.sml
1171 +++ b/src/parser/parse-tree.sml
1172 @@ -23,8 +23,10 @@ struct
1173 | ModAssign | XorAssign | OrAssign | AndAssign
1174 | LshiftAssign | RshiftAssign
1176 - | SizeofType of ctype
1177 - | OperatorExt of operatorExt
1179 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
1181 + ParseTreeExt.operatorExt
1185 @@ -36,10 +38,17 @@ struct
1186 | Binop of operator * expression * expression
1187 | QuestionColon of expression * expression * expression
1188 | Call of expression * expression list
1189 - | Cast of ctype * expression
1191 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list} *
1193 | InitList of expression list
1194 | MARKexpression of (SourceMap.location * expression)
1195 - | ExprExt of expressionExt
1197 + (specifier, declarator,
1198 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1199 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1200 + operator, expression, statement)
1201 + ParseTreeExt.expressionExt
1205 @@ -56,11 +65,15 @@ struct
1209 - | Array of expression * ctype
1210 - | Pointer of ctype
1213 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
1215 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
1218 - params : (decltype * declarator) list}
1219 + {retType : (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1220 + params : ((* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list} *
1223 {tagOpt : string option,
1224 enumerators : (string * expression) list,
1225 @@ -68,13 +81,19 @@ struct
1227 {isStruct : bool, (* struct or union; true => struct *)
1228 tagOpt : string option, (* optional tag *)
1229 - members: (ctype * (declarator * expression) list) list} (* member specs *)
1230 + members: ((* ctype *) {qualifiers : qualifier list, specifiers : specifier list} *
1231 + (declarator * expression) list) list} (* member specs *)
1232 | TypedefName of string
1234 {isStruct : bool, (* ??? *)
1237 - | SpecExt of specifierExt
1239 + (specifier, declarator,
1240 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1241 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1242 + operator, expression, statement)
1243 + ParseTreeExt.specifierExt
1245 and declarator (* constructor suffix: "Decr" *)
1247 @@ -83,9 +102,17 @@ struct
1248 | ArrayDecr of declarator * expression
1249 | PointerDecr of declarator
1250 | QualDecr of qualifier * declarator
1251 - | FuncDecr of declarator * (decltype * declarator) list
1254 + ((* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list} *
1256 | MARKdeclarator of (SourceMap.location * declarator)
1257 - | DecrExt of declaratorExt
1259 + (specifier, declarator,
1260 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1261 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1262 + operator, expression, statement)
1263 + ParseTreeExt.declaratorExt
1265 (* supports extensions of C in which expressions contain statements *)
1267 @@ -106,24 +133,41 @@ struct
1268 | IfThenElse of expression * statement * statement
1269 | Switch of expression * statement
1270 | MARKstatement of (SourceMap.location * statement)
1271 - | StatExt of statementExt
1273 + (specifier, declarator,
1274 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1275 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1276 + operator, expression, statement)
1277 + ParseTreeExt.statementExt
1280 - = Declaration of decltype * (declarator * expression) list
1282 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list} *
1283 + (declarator * expression) list
1284 | MARKdeclaration of (SourceMap.location * declaration)
1285 - | DeclarationExt of declarationExt
1286 + | DeclarationExt of
1287 + (specifier, declarator,
1288 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1289 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1290 + operator, expression, statement)
1291 + ParseTreeExt.declarationExt
1294 = ExternalDecl of declaration
1295 | FunctionDef of (* record? *)
1296 - {retType : decltype, (* return type *)
1297 + {retType : (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list}, (* return type *)
1298 funDecr : declarator, (* function name declarator *)
1299 krParams : declaration list, (* K&R-style parameter declarations *)
1300 body : statement} (* function body *)
1301 | MARKexternalDecl of (SourceMap.location * externalDecl)
1302 - | ExternalDeclExt of externalDeclExt
1303 + | ExternalDeclExt of
1304 + (specifier, declarator,
1305 + (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
1306 + (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
1307 + operator, expression, statement)
1308 + ParseTreeExt.externalDeclExt
1312 {qualifiers : qualifier list,
1313 specifiers : specifier list}
1315 @@ -131,7 +175,7 @@ struct
1316 specifiers : specifier list,
1317 storage : storage list}
1319 - and externalDeclExt =
1320 + type externalDeclExt =
1321 (specifier, declarator, ctype, decltype, operator, expression, statement)
1322 ParseTreeExt.externalDeclExt
1323 and declarationExt =