1
|
/* date literals can use a . (and -) as a separator; this can occur in ways that */
|
2
|
/* overlap with decimal usage (the same literal input can be both a date and a */
|
3
|
/* decimal; this testcase explores the limits of this behavior */
|
4
|
|
5
|
/* Months: */
|
6
|
/* can't just specify the month */
|
7
|
/* have to be between 1 and 12 inclusive */
|
8
|
/* can be zero padded, there seems to be no practical limit so this is probably dropped */
|
9
|
/* for literals, is always in the first (leftmost) position, no matter what the SESSION:DATE-FORMAT */
|
10
|
|
11
|
/* Days: */
|
12
|
/* have to be between 1 and the highest day of the corresponding month inclusive */
|
13
|
/* can be zero padded, there seems to be no practical limit so this is probably dropped */
|
14
|
/* for literals, is always in the second (middle if there is a year) position, no matter what the SESSION:DATE-FORMAT */
|
15
|
|
16
|
/* Year: */
|
17
|
/* this is optional */
|
18
|
/* for literals, is always in the third (last) position, no matter what the SESSION:DATE-FORMAT */
|
19
|
/* if present, then the date cannot be confused with a decimal literal, so we aren't testing those cases here */
|
20
|
|
21
|
/* most importantly: these "special" date forms can only be used inside a variable */
|
22
|
/* definition initializer! when encountered in regular code, they are exclusively */
|
23
|
/* treated as decimal literals */
|
24
|
|
25
|
def var dt1 as date init 1.1.
|
26
|
def var dt2 as date init 01.1.
|
27
|
def var dt3 as date init 001.1.
|
28
|
def var dt4 as date init 0001.1.
|
29
|
def var dt5 as date init 0000000001.1.
|
30
|
def var dt6 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1.
|
31
|
def var dt7 as date init 1.01.
|
32
|
def var dt8 as date init 1.001.
|
33
|
def var dt9 as date init 1.0001.
|
34
|
def var dt10 as date init 1.0000000001.
|
35
|
def var dt11 as date init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
|
36
|
def var dt12 as date init 01.01.
|
37
|
def var dt13 as date init 001.001.
|
38
|
def var dt14 as date init 0001.0001.
|
39
|
def var dt15 as date init 0000000001.0000000001.
|
40
|
def var dt16 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
|
41
|
def var dt17 as date init 2.28.
|
42
|
def var dt18 as date init 02.28.
|
43
|
def var dt19 as date init 002.28.
|
44
|
def var dt20 as date init 0002.28.
|
45
|
def var dt21 as date init 0000000002.28.
|
46
|
def var dt22 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28.
|
47
|
def var dt23 as date init 2.028.
|
48
|
def var dt24 as date init 2.0028.
|
49
|
def var dt25 as date init 2.00028.
|
50
|
def var dt26 as date init 2.00000000028.
|
51
|
def var dt27 as date init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
|
52
|
def var dt28 as date init 02.028.
|
53
|
def var dt29 as date init 002.0028.
|
54
|
def var dt30 as date init 0002.00028.
|
55
|
def var dt31 as date init 0000000002.00000000028.
|
56
|
def var dt32 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
|
57
|
def var dt33 as date init 12.31.
|
58
|
def var dt34 as date init 012.31.
|
59
|
def var dt35 as date init 0012.31.
|
60
|
def var dt36 as date init 00012.31.
|
61
|
def var dt37 as date init 00000000012.31.
|
62
|
def var dt38 as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31.
|
63
|
def var dt39 as date init 12.031.
|
64
|
def var dt40 as date init 12.0031.
|
65
|
def var dt41 as date init 12.00031.
|
66
|
def var dt42 as date init 12.00000000031.
|
67
|
def var dt43 as date init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
|
68
|
def var dt44 as date init 012.031.
|
69
|
def var dt45 as date init 0012.0031.
|
70
|
def var dt46 as date init 00012.00031.
|
71
|
def var dt47 as date init 00000000012.00000000031.
|
72
|
def var dt48 as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
|
73
|
def var dt49 as date init 1.1-.
|
74
|
def var dt50 as date init 01.1-.
|
75
|
def var dt51 as date init 001.1-.
|
76
|
def var dt52 as date init 0001.1-.
|
77
|
def var dt53 as date init 0000000001.1-.
|
78
|
def var dt54 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1-.
|
79
|
def var dt55 as date init 1.01-.
|
80
|
def var dt56 as date init 1.001-.
|
81
|
def var dt57 as date init 1.0001-.
|
82
|
def var dt58 as date init 1.0000000001-.
|
83
|
def var dt59 as date init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
|
84
|
def var dt60 as date init 01.01-.
|
85
|
def var dt61 as date init 001.001-.
|
86
|
def var dt62 as date init 0001.0001-.
|
87
|
def var dt63 as date init 0000000001.0000000001-.
|
88
|
def var dt64 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
|
89
|
def var dt65 as date init 2.28-.
|
90
|
def var dt66 as date init 02.28-.
|
91
|
def var dt67 as date init 002.28-.
|
92
|
def var dt68 as date init 0002.28-.
|
93
|
def var dt69 as date init 0000000002.28-.
|
94
|
def var dt70 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28-.
|
95
|
def var dt71 as date init 2.028-.
|
96
|
def var dt72 as date init 2.0028-.
|
97
|
def var dt73 as date init 2.00028-.
|
98
|
def var dt74 as date init 2.00000000028-.
|
99
|
def var dt75 as date init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
|
100
|
def var dt76 as date init 02.028-.
|
101
|
def var dt77 as date init 002.0028-.
|
102
|
def var dt78 as date init 0002.00028-.
|
103
|
def var dt79 as date init 0000000002.00000000028-.
|
104
|
def var dt80 as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
|
105
|
def var dt81 as date init 12.31-.
|
106
|
def var dt82 as date init 012.31-.
|
107
|
def var dt83 as date init 0012.31-.
|
108
|
def var dt84 as date init 00012.31-.
|
109
|
def var dt85 as date init 00000000012.31-.
|
110
|
def var dt86 as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31-.
|
111
|
def var dt87 as date init 12.031-.
|
112
|
def var dt88 as date init 12.0031-.
|
113
|
def var dt89 as date init 12.00031-.
|
114
|
def var dt90 as date init 12.00000000031-.
|
115
|
def var dt91 as date init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
|
116
|
def var dt92 as date init 012.031-.
|
117
|
def var dt93 as date init 0012.0031-.
|
118
|
def var dt94 as date init 00012.00031-.
|
119
|
def var dt95 as date init 00000000012.00000000031-.
|
120
|
def var dt96 as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
|
121
|
|
122
|
def var dc1 as dec init 1.1.
|
123
|
def var dc2 as dec init 01.1.
|
124
|
def var dc3 as dec init 001.1.
|
125
|
def var dc4 as dec init 0001.1.
|
126
|
def var dc5 as dec init 0000000001.1.
|
127
|
def var dc6 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1.
|
128
|
def var dc7 as dec init 1.01.
|
129
|
def var dc8 as dec init 1.001.
|
130
|
def var dc9 as dec init 1.0001.
|
131
|
def var dc10 as dec init 1.0000000001.
|
132
|
def var dc11 as dec init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
|
133
|
def var dc12 as dec init 01.01.
|
134
|
def var dc13 as dec init 001.001.
|
135
|
def var dc14 as dec init 0001.0001.
|
136
|
def var dc15 as dec init 0000000001.0000000001.
|
137
|
def var dc16 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
|
138
|
def var dc17 as dec init 2.28.
|
139
|
def var dc18 as dec init 02.28.
|
140
|
def var dc19 as dec init 002.28.
|
141
|
def var dc20 as dec init 0002.28.
|
142
|
def var dc21 as dec init 0000000002.28.
|
143
|
def var dc22 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28.
|
144
|
def var dc23 as dec init 2.028.
|
145
|
def var dc24 as dec init 2.0028.
|
146
|
def var dc25 as dec init 2.00028.
|
147
|
def var dc26 as dec init 2.00000000028.
|
148
|
def var dc27 as dec init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
|
149
|
def var dc28 as dec init 02.028.
|
150
|
def var dc29 as dec init 002.0028.
|
151
|
def var dc30 as dec init 0002.00028.
|
152
|
def var dc31 as dec init 0000000002.00000000028.
|
153
|
def var dc32 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
|
154
|
def var dc33 as dec init 12.31.
|
155
|
def var dc34 as dec init 012.31.
|
156
|
def var dc35 as dec init 0012.31.
|
157
|
def var dc36 as dec init 00012.31.
|
158
|
def var dc37 as dec init 00000000012.31.
|
159
|
def var dc38 as dec init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31.
|
160
|
def var dc39 as dec init 12.031.
|
161
|
def var dc40 as dec init 12.0031.
|
162
|
def var dc41 as dec init 12.00031.
|
163
|
def var dc42 as dec init 12.00000000031.
|
164
|
def var dc43 as dec init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
|
165
|
def var dc44 as dec init 012.031.
|
166
|
def var dc45 as dec init 0012.0031.
|
167
|
def var dc46 as dec init 00012.00031.
|
168
|
def var dc47 as dec init 00000000012.00000000031.
|
169
|
def var dc48 as dec init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
|
170
|
def var dc49 as dec init 1.1-.
|
171
|
def var dc50 as dec init 01.1-.
|
172
|
def var dc51 as dec init 001.1-.
|
173
|
def var dc52 as dec init 0001.1-.
|
174
|
def var dc53 as dec init 0000000001.1-.
|
175
|
def var dc54 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1-.
|
176
|
def var dc55 as dec init 1.01-.
|
177
|
def var dc56 as dec init 1.001-.
|
178
|
def var dc57 as dec init 1.0001-.
|
179
|
def var dc58 as dec init 1.0000000001-.
|
180
|
def var dc59 as dec init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
|
181
|
def var dc60 as dec init 01.01-.
|
182
|
def var dc61 as dec init 001.001-.
|
183
|
def var dc62 as dec init 0001.0001-.
|
184
|
def var dc63 as dec init 0000000001.0000000001-.
|
185
|
def var dc64 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
|
186
|
def var dc65 as dec init 2.28-.
|
187
|
def var dc66 as dec init 02.28-.
|
188
|
def var dc67 as dec init 002.28-.
|
189
|
def var dc68 as dec init 0002.28-.
|
190
|
def var dc69 as dec init 0000000002.28-.
|
191
|
def var dc70 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28-.
|
192
|
def var dc71 as dec init 2.028-.
|
193
|
def var dc72 as dec init 2.0028-.
|
194
|
def var dc73 as dec init 2.00028-.
|
195
|
def var dc74 as dec init 2.00000000028-.
|
196
|
def var dc75 as dec init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
|
197
|
def var dc76 as dec init 02.028-.
|
198
|
def var dc77 as dec init 002.0028-.
|
199
|
def var dc78 as dec init 0002.00028-.
|
200
|
def var dc79 as dec init 0000000002.00000000028-.
|
201
|
def var dc80 as dec init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
|
202
|
def var dc81 as dec init 12.31-.
|
203
|
def var dc82 as dec init 012.31-.
|
204
|
def var dc83 as dec init 0012.31-.
|
205
|
def var dc84 as dec init 00012.31-.
|
206
|
def var dc85 as dec init 00000000012.31-.
|
207
|
def var dc86 as dec init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31-.
|
208
|
def var dc87 as dec init 12.031-.
|
209
|
def var dc88 as dec init 12.0031-.
|
210
|
def var dc89 as dec init 12.00031-.
|
211
|
def var dc90 as dec init 12.00000000031-.
|
212
|
def var dc91 as dec init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
|
213
|
def var dc92 as dec init 012.031-.
|
214
|
def var dc93 as dec init 0012.0031-.
|
215
|
def var dc94 as dec init 00012.00031-.
|
216
|
def var dc95 as dec init 00000000012.00000000031-.
|
217
|
def var dc96 as dec init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
|
218
|
|
219
|
message dt1 dt2 dt3 dt4 dt5 dt6 dt7 dt8 dt9 dt10 dt11 dt12 dt13 dt14 dt15 dt16 dt17 dt18 dt19 dt20.
|
220
|
message dt21 dt22 dt23 dt24 dt25 dt26 dt27 dt28 dt29 dt30 dt31 dt32 dt33 dt34 dt35 dt36 dt37 dt38 dt39 dt40.
|
221
|
message dt41 dt42 dt43 dt44 dt45 dt46 dt47 dt48 dt49 dt50 dt51 dt52 dt53 dt54 dt55 dt56 dt57 dt58 dt59 dt60.
|
222
|
message dt61 dt62 dt63 dt64 dt65 dt66 dt67 dt68 dt69 dt70 dt71 dt72 dt73 dt74 dt75 dt76 dt77 dt78 dt79 dt80.
|
223
|
message dt81 dt82 dt83 dt84 dt85 dt86 dt87 dt88 dt89 dt90 dt91 dt92 dt93 dt94 dt95 dt96.
|
224
|
message dc1 dc2 dc3 dc4 dc5 dc6 dc7 dc8 dc9 dc10 dc11 dc12 dc13 dc14 dc15 dc16 dc17 dc18 dc19 dc20.
|
225
|
message dc21 dc22 dc23 dc24 dc25 dc26 dc27 dc28 dc29 dc30 dc31 dc32 dc33 dc34 dc35 dc36 dc37 dc38 dc39 dc40.
|
226
|
message dc41 dc42 dc43 dc44 dc45 dc46 dc47 dc48 dc49 dc50 dc51 dc52 dc53 dc54 dc55 dc56 dc57 dc58 dc59 dc60.
|
227
|
message dc61 dc62 dc63 dc64 dc65 dc66 dc67 dc68 dc69 dc70 dc71 dc72 dc73 dc74 dc75 dc76 dc77 dc78 dc79 dc80.
|
228
|
message dc81 dc82 dc83 dc84 dc85 dc86 dc87 dc88 dc89 dc90 dc91 dc92 dc93 dc94 dc95 dc96.
|
229
|
|
230
|
/* non-initializer cases */
|
231
|
|
232
|
def var i as int.
|
233
|
def var i64 as int64.
|
234
|
def var d as dec.
|
235
|
|
236
|
i = 9-.
|
237
|
i = 99-.
|
238
|
i64 = 999999999999999-.
|
239
|
d = 1.99992-.
|
240
|
d = 1.2-.
|
241
|
d = 999.99-.
|
242
|
|
243
|
message i i64 d.
|