aboutsummaryrefslogtreecommitdiff
path: root/frontend/predef.dcl
blob: 585a7644955c4ccc3af0064f112b2d0a3043374a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
definition module predef

	
import syntax, hashtable

::	PredefinedSymbols	:== {# PredefinedSymbol}

::	PredefinedSymbol =
	{	pds_ident	:: !Ident
	,	pds_module	:: !Index
	,	pds_def		:: !Index
	}

/* identifiers not present the hastable */



PD_PredefinedModule			:== 0

PD_StringType				:== 1
PD_ListType					:== 2
PD_Arity2TupleType			:== 3
PD_Arity32TupleType			:== 33

PD_LazyArrayType			:== 34
PD_StrictArrayType			:== 35
PD_UnboxedArrayType			:== 36

PD_ConsSymbol				:== 37
PD_NilSymbol				:== 38
PD_Arity2TupleSymbol		:== 39
PD_Arity32TupleSymbol		:== 69

PD_TypeVar_a0				:== 70
PD_TypeVar_a31				:== 101

PD_TypeCodeMember			:== 123

/* identifiers present in the hastable */

PD_StdArray					:== 102
PD_StdEnum					:== 103
PD_StdBool					:== 104

PD_AndOp					:== 105
PD_OrOp						:== 106


/* Array functions */

PD_ArrayClass				:== 107

PD_CreateArrayFun			:== 108
PD__CreateArrayFun			:== 109
PD_ArraySelectFun			:== 110
PD_UnqArraySelectFun		:== 111
PD_ArrayUpdateFun			:== 112
PD_ArrayReplaceFun			:== 113
PD_ArraySizeFun				:== 114
PD_UnqArraySizeFun			:== 115

/* Enum/Comprehension functions */

PD_SmallerFun				:== 116
PD_IncFun					:== 117
PD_From						:== 118
PD_FromThen					:== 119
PD_FromTo					:== 120
PD_FromThenTo				:== 121

/* Dynamics */

PD_TypeCodeClass			:== 122

PD_TypeObjectType			:== 124
PD_TypeConsSymbol			:== 125
PD_unify					:== 126
PD_variablePlaceholder		:== 127
PD_StdDynamics				:== 128
PD_undo_indirections		:== 129

PD_NrOfPredefSymbols		:== 130


GetTupleConsIndex tup_arity :== PD_Arity2TupleSymbol + tup_arity - 2
GetTupleTypeIndex tup_arity :== PD_Arity2TupleType + tup_arity - 2

buildPredefinedSymbols :: !*HashTable -> (!.PredefinedSymbols,!*HashTable)

buildPredefinedModule :: !*PredefinedSymbols -> (!ScannedModule, !.PredefinedSymbols)