diff options
author | johnvg | 2001-08-31 10:36:16 +0000 |
---|---|---|
committer | johnvg | 2001-08-31 10:36:16 +0000 |
commit | 21f9e2e68897a4b9407c997f7d4bc4a95e2045eb (patch) | |
tree | baae7f426c76eb41eb66df5e165594a373ec7761 /frontend/predef.dcl | |
parent | added allocPtr and initPtr (diff) |
added symbols for strict and unboxed lists
moved cPredefinedModuleIndex to predef
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@702 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/predef.dcl')
-rw-r--r-- | frontend/predef.dcl | 230 |
1 files changed, 139 insertions, 91 deletions
diff --git a/frontend/predef.dcl b/frontend/predef.dcl index 5a431be..eec5174 100644 --- a/frontend/predef.dcl +++ b/frontend/predef.dcl @@ -1,8 +1,9 @@ definition module predef - import syntax, hashtable +cPredefinedModuleIndex :== 1 + :: PredefinedSymbols :== {# PredefinedSymbol} :: PredefinedSymbol = @@ -13,131 +14,178 @@ import syntax, hashtable /* identifiers not present the hastable */ - PD_PredefinedModule :== 0 +FirstTypePredefinedSymbolIndex:==PD_StringType; // to compute index in com_type_defs + PD_StringType :== 1 -PD_ListType :== 2 -PD_Arity2TupleType :== 3 -PD_Arity32TupleType :== 33 -PD_LazyArrayType :== 34 -PD_StrictArrayType :== 35 -PD_UnboxedArrayType :== 36 +PD_ListType :== 2 +PD_StrictListType :== 3 +PD_UnboxedListType :== 4 +PD_TailStrictListType :== 5 +PD_StrictTailStrictListType :== 6 +PD_UnboxedTailStrictListType :== 7 +PD_OverloadedListType :== 8 -PD_ConsSymbol :== 37 -PD_NilSymbol :== 38 -PD_Arity2TupleSymbol :== 39 -PD_Arity32TupleSymbol :== 69 +PD_Arity2TupleType :== 9 +PD_Arity32TupleType :== 39 -PD_TypeVar_a0 :== 70 -PD_TypeVar_a31 :== 101 +PD_LazyArrayType :== 40 +PD_StrictArrayType :== 41 +PD_UnboxedArrayType :== 42 -/* Dynamics */ +// constructors: -PD_TypeCodeMember :== 102 -// MV ... -PD_DynamicTemp :== 103 -PD_DynamicValue :== 104 -PD_DynamicType :== 105 -// ... MV +FirstConstructorPredefinedSymbolIndex :== PD_ConsSymbol; // to compute index in com_cons_defs -/* identifiers present in the hastable */ +PD_ConsSymbol :== 43 +PD_StrictConsSymbol :== 44 +PD_UnboxedConsSymbol :== 45 +PD_TailStrictConsSymbol :== 46 +PD_StrictTailStrictConsSymbol :== 47 +PD_UnboxedTailStrictConsSymbol :== 48 +PD_OverloadedConsSymbol :== 49 -PD_StdArray :== 106 -PD_StdEnum :== 107 -PD_StdBool :== 108 +PD_NilSymbol :== 50 +PD_StrictNilSymbol :== 51 +PD_UnboxedNilSymbol :== 52 +PD_TailStrictNilSymbol :== 53 +PD_StrictTailStrictNilSymbol :== 54 +PD_UnboxedTailStrictNilSymbol :== 55 +PD_OverloadedNilSymbol :== 56 -PD_AndOp :== 109 -PD_OrOp :== 110 +PD_Arity2TupleSymbol :== 57 +PD_Arity32TupleSymbol :== 87 +// end constructors + +PD_TypeVar_a0 :== 88 +PD_TypeVar_a31 :== 119 + +/* Dynamics */ + +PD_TypeCodeMember :== 120 +PD_DynamicTemp :== 121 +PD_DynamicValue :== 122 +PD_DynamicType :== 123 + +/* identifiers present in the hashtable */ + +PD_StdArray :== 124 +PD_StdEnum :== 125 +PD_StdBool :== 126 + +PD_AndOp :== 127 +PD_OrOp :== 128 /* Array functions */ -PD_ArrayClass :== 111 +PD_ArrayClass :== 129 -PD_CreateArrayFun :== 112 -PD__CreateArrayFun :== 113 -PD_ArraySelectFun :== 114 -PD_UnqArraySelectFun :== 115 -PD_ArrayUpdateFun :== 116 -PD_ArrayReplaceFun :== 117 -PD_ArraySizeFun :== 118 -PD_UnqArraySizeFun :== 119 +PD_CreateArrayFun :== 130 +PD__CreateArrayFun :== 131 +PD_ArraySelectFun :== 132 +PD_UnqArraySelectFun :== 133 +PD_ArrayUpdateFun :== 134 +PD_ArrayReplaceFun :== 135 +PD_ArraySizeFun :== 136 +PD_UnqArraySizeFun :== 137 /* Enum/Comprehension functions */ -PD_SmallerFun :== 120 -PD_LessOrEqualFun:== 121 -PD_SubFun:==122 -PD_IncFun :== 123 -PD_From :== 124 -PD_FromThen :== 125 -PD_FromTo :== 126 -PD_FromThenTo :== 127 +PD_SmallerFun :== 138 +PD_LessOrEqualFun :== 139 +PD_IncFun :== 140 +PD_SubFun:== 141 +PD_From :== 142 +PD_FromThen :== 143 +PD_FromTo :== 144 +PD_FromThenTo :== 145 + +/* StdMisc */ +PD_StdMisc :== 146 +PD_abort :== 147 +PD_undef :== 148 + +PD_Start :== 149 + +PD_DummyForStrictAliasFun :== 150 + +PD_StdStrictLists:==151 + +PD_cons:==152 +PD_decons:==153 + +PD_cons_u:==154 +PD_decons_u:==155 + +PD_cons_uts:==156 +PD_decons_uts:==157 + +PD_nil:==158 +PD_nil_u:==159 +PD_nil_uts:==160 + +PD_ListClass :== 161 +PD_UListClass :== 162 +PD_UTSListClass :== 163 /* Dynamics */ -PD_TypeCodeClass :== 128 +PD_StdDynamic :== 164 -PD_TypeObjectType :== 129 -PD_TypeConsSymbol :== 130 -PD_unify :== 131 -// MV .. -PD_coerce :== 132 -PD_variablePlaceholder :== 133 -PD_StdDynamic :== 134 -PD_undo_indirections :== 135 +PD_TypeCodeClass :== 165 +PD_TypeObjectType :== 166 +PD_TypeConsSymbol :== 167 +PD_unify :== 168 +PD_coerce :== 169 +PD_variablePlaceholder :== 170 +PD_undo_indirections :== 171 -// MV ... -PD_TypeID :== 136 -PD_ModuleID :== 137 -PD_ModuleConsSymbol :== 138 -// ... MV +PD_TypeID :== 172 +PD_ModuleID :== 173 +PD_ModuleConsSymbol :== 174 /* Generics */ -PD_StdGeneric :== 139 -PD_TypeISO :== 140 -PD_ConsISO :== 141 -PD_iso_to :== 142 -PD_iso_from :== 143 - -PD_TypeUNIT :== 144 -PD_ConsUNIT :== 145 -PD_TypeEITHER :== 146 -PD_ConsLEFT :== 147 -PD_ConsRIGHT :== 148 -PD_TypePAIR :== 149 -PD_ConsPAIR :== 150 -PD_TypeARROW :== 151 -PD_ConsARROW :== 152 - -PD_TypeConsDefInfo :== 153 -PD_ConsConsDefInfo :== 154 -PD_TypeTypeDefInfo :== 155 -PD_ConsTypeDefInfo :== 156 -PD_cons_info :== 157 -PD_TypeCONS :== 158 -PD_ConsCONS :== 159 - -PD_isomap_ARROW_ :== 160 -PD_isomap_ID :== 161 -/* StdMisc */ -PD_StdMisc :== 162 -PD_abort :== 163 -PD_undef :== 164 +PD_StdGeneric :== 175 -PD_Start :== 165 +PD_TypeISO :== 176 +PD_ConsISO :== 177 +PD_iso_to :== 178 +PD_iso_from :== 179 -PD_DummyForStrictAliasFun :== 166 +PD_TypeUNIT :== 180 +PD_ConsUNIT :== 181 +PD_TypeEITHER :== 182 +PD_ConsLEFT :== 183 +PD_ConsRIGHT :== 184 +PD_TypePAIR :== 185 +PD_ConsPAIR :== 186 +PD_TypeARROW :== 187 +PD_ConsARROW :== 188 -PD_NrOfPredefSymbols :== 167 +PD_TypeConsDefInfo :== 189 +PD_ConsConsDefInfo :== 190 +PD_TypeTypeDefInfo :== 191 +PD_ConsTypeDefInfo :== 192 +PD_cons_info :== 193 +PD_TypeCONS :== 194 +PD_ConsCONS :== 195 +PD_isomap_ARROW_ :== 196 +PD_isomap_ID :== 197 + +PD_NrOfPredefSymbols :== 198 GetTupleConsIndex tup_arity :== PD_Arity2TupleSymbol + tup_arity - 2 GetTupleTypeIndex tup_arity :== PD_Arity2TupleType + tup_arity - 2 +init_identifiers :: *SymbolTable -> *SymbolTable + +cons_and_nil_idents :: {!Ident} + buildPredefinedSymbols :: !*HashTable -> (!.PredefinedSymbols,!*HashTable) buildPredefinedModule :: !*PredefinedSymbols -> (!ScannedModule, !.PredefinedSymbols) |