blob: f61a2a4c4b74696a6486bd9c6beea63e13dea8d1 (
plain)
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#ifndef HSVERSIONS_H
#define HSVERSIONS_H
#if 0
IMPORTANT! If you put extra tabs/spaces in these macro definitions,
you will screw up the layout where they are used in case expressions!
(This is cpp-dependent, of course)
#endif
#ifdef __GLASGOW_HASKELL__
#define TAG_ Int#
#define LT_ -1#
#define EQ_ 0#
#define GT_ 1#
#endif
#define GT__ _
#define COMMA ,
#ifdef DEBUG
#define ASSERT(e) if (not (e)) then (assertPanic __FILE__ __LINE__) else
#else
#define ASSERT(e)
#endif
#if __STDC__
#define CAT2(a,b)a##b
#else
#define CAT2(a,b)a/**/b
#endif
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 200
# define REALLY_HASKELL_1_3
# define SYN_IE(a) a
# define IMPORT_DELOOPER(mod) import CAT2(mod,_1_3)
# define IMPORT_1_3(mod) import mod
# define _tagCmp compare
# define _LT LT
# define _EQ EQ
# define _GT GT
# define Text Show
#else
# define SYN_IE(a) a(..)
# define IMPORT_DELOOPER(mod) import mod
# define IMPORT_1_3(mod) {--}
#endif
#define IMP_Ubiq() IMPORT_DELOOPER(Ubiq)
#define CHK_Ubiq() IMPORT_DELOOPER(Ubiq)
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 26
#define trace _trace
#endif
#if defined(__GLASGOW_HASKELL__)
#define FAST_INT Int#
#define ILIT(x) (x#)
#define IBOX(x) (I# (x))
#define _ADD_ `plusInt#`
#define _SUB_ `minusInt#`
#define _MUL_ `timesInt#`
#define _DIV_ `divInt#`
#define _QUOT_ `quotInt#`
#define _NEG_ negateInt#
#define _EQ_ `eqInt#`
#define _LT_ `ltInt#`
#define _LE_ `leInt#`
#define _GE_ `geInt#`
#define _GT_ `gtInt#`
#define FAST_BOOL Int#
#define _TRUE_ 1#
#define _FALSE_ 0#
#define _IS_TRUE_(x) ((x) `eqInt#` 1#)
#else {- ! __GLASGOW_HASKELL__ -}
#define FAST_INT Int
#define ILIT(x) (x)
#define IBOX(x) (x)
#define _ADD_ +
#define _SUB_ -
#define _MUL_ *
#define _DIV_ `div`
#define _QUOT_ `quot`
#define _NEG_ -
#define _EQ_ ==
#define _LT_ <
#define _LE_ <=
#define _GE_ >=
#define _GT_ >
#define FAST_BOOL Bool
#define _TRUE_ True
#define _FALSE_ False
#define _IS_TRUE_(x) (x)
#endif {- ! __GLASGOW_HASKELL__ -}
#if __GLASGOW_HASKELL__ >= 23
#define USE_FAST_STRINGS 1
#define FAST_STRING _PackedString
#define SLIT(x) (_packCString (A# x#))
#define _CMP_STRING_ cmpPString
#define _NULL_ _nullPS
#define _NIL_ _nilPS
#define _CONS_ _consPS
#define _HEAD_ _headPS
#define _TAIL_ _tailPS
#define _LENGTH_ _lengthPS
#define _PK_ _packString
#define _UNPK_ _unpackPS
#define _SUBSTR_ _substrPS
#define _APPEND_ `_appendPS`
#define _CONCAT_ _concatPS
#else
#define FAST_STRING String
#define SLIT(x) (x)
#define _CMP_STRING_ cmpString
#define _NULL_ null
#define _NIL_ ""
#define _CONS_ (:)
#define _HEAD_ head
#define _TAIL_ tail
#define _LENGTH_ length
#define _PK_ (\x->x)
#define _UNPK_ (\x->x)
#define _SUBSTR_ substr{-from Utils-}
#define _APPEND_ ++
#define _CONCAT_ concat
#endif
#endif
|