Project

General

Profile

ternary_really_returns_bdt.p

Greg Shah, 03/20/2013 06:55 PM

Download (57.9 KB)

 
1
def temp-table tt1 field fi as int
2
                   field fd as dec
3
                   field fi64 as int64
4
                   field fda as date
5
                   field fdt as datetime
6
                   field fdtz as datetime-tz
7
                   field fbool as log
8
                   field fh as handle
9
                   field fch as char
10
                   field fr1 as recid
11
                   field fr2 as rowid
12
                   field fm2 as raw
13
                   field na as char.
14

    
15
function func0 returns char:
16
   return "".
17
end.
18

    
19
function bothIndeterminate returns int (input bogus as int) forward.
20
function op1Indeterminate returns int (input bogus as int) forward.
21
function op2Indeterminate returns int (input bogus as int) forward.
22

    
23
def var i as int init 14.
24
def var d as dec init 30.0.
25
def var i64 as int64 init 9.
26
def var da as date init today.
27
def var dt as datetime init ?. 
28
def var dtz as datetime-tz init ?.
29
def var bool as log init true.
30
def var h as handle.
31
def var h2 as handle.
32
def var ch as char init "99".
33
def var lch as longchar init "99999".
34
def var r1 as recid.
35
def var r2 as rowid.
36
def var m1 as memptr.
37
def var ptr as memptr.
38
def var m2 as raw.
39

    
40
def var bypass-runtime-error as logical init false.
41

    
42
create tt1.
43

    
44
set-size(ptr) = 128.
45

    
46
h = buffer tt1:handle.
47

    
48
bothIndeterminate(?).
49
bothIndeterminate(14).
50
op1Indeterminate(?).
51
op1Indeterminate(14).
52
op2Indeterminate(?).
53
op2Indeterminate(14).
54

    
55
function bothIndeterminate returns int (input bogus as int):
56
   
57
   message "bothIndeterminate(" + (if bogus = ? then "?" else string(bogus)) + ")".
58
   
59
   /* both operands may be non-typable */
60
   /* all data types can be assigned but there can be runtime errors depending on the contents of the field */
61
   /* the example here is the use of a character field and "" empty string works for most types except logical and memptr */
62
   /* the type of the field is not known at compile time in the 4GL, failures occur at runtime */
63
   
64
   tt1.na = "".
65
   
66
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
67
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
68
   d         = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
69
   tt1.fd    = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
70
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
71
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
72
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
73
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
74
   dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
75
   tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
76
   dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
77
   tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
78
   
79
   /* both of these will generate a runtime error if the input string is not a valid logical */
80
   tt1.na = "yes".
81
   bool      = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value. 
82
   tt1.fbool = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
83
   tt1.na = "".
84
   
85
   h2        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
86
   tt1.fh    = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
87
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
88
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
89
   lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
90
   r1        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
91
   tt1.fr1   = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
92
   r2        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
93
   tt1.fr2   = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
94
   
95
   /* always a runtime error with a character field, so we use raw here, but assigned var will become broken */
96
   m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else h:buffer-field("fm2"):buffer-value.
97
   
98
   m2        = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
99
   tt1.fm2   = if bogus <> ? then h:buffer-field("na"):buffer-value else h:buffer-field("na"):buffer-value.
100
   
101
   return bogus.
102
end.
103

    
104
function op1Indeterminate returns int (input bogus as int):
105

    
106
   message "op1Indeterminate(" + (if bogus = ? then "?" else string(bogus)) + ")".
107
   
108
   /* when op1 is non-typable, op2 will depend on the type being assigned to */
109
   
110
   tt1.na = "".
111
   set-size(ptr) = 128.
112
   put-long(ptr, 1) = 30.
113
   
114
   /* integer/int64 assignment can have op2 as int, int64, dec, handle, recid, memptr (runtime */
115
   /* error whether or not it is initialized) or unknown value literal */
116
   
117
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
118
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
119
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
120
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else d.
121
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
122
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else h.
123
   i         = if bogus <> ? then h:buffer-field("na"):buffer-value else r1.
124
   
125
   /* compiles but always creates a runtime error */
126
   if bypass-runtime-error then
127
      i         = if bogus <> ? then h:buffer-field("na"):buffer-value else ptr.
128
   
129
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
130
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
131
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
132
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else d.
133
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
134
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else h.
135
   tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else r1.
136
   
137
   /* compiles but always creates a runtime error */
138
   if bypass-runtime-error then
139
      tt1.fi    = if bogus <> ? then h:buffer-field("na"):buffer-value else ptr.
140
   
141
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
142
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
143
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
144
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else d.
145
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
146
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else h.
147
   i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else r1.
148
   
149
   /* compiles but always creates a runtime error */
150
   if bypass-runtime-error then
151
      i64       = if bogus <> ? then h:buffer-field("na"):buffer-value else ptr.
152
   
153
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
154
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
155
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
156
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else d.
157
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
158
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else h.
159
   tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else r1.
160
   
161
   /* compiles but always creates a runtime error */
162
   if bypass-runtime-error then
163
      tt1.fi64  = if bogus <> ? then h:buffer-field("na"):buffer-value else ptr.
164
   
165
   /* decimal assignment can have op2 as int, int64, dec or unknown value literal */
166
   
167
   d         = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
168
   d         = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
169
   d         = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
170
   d         = if bogus <> ? then h:buffer-field("na"):buffer-value else d.
171
   d         = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
172
   tt1.fd    = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
173
   tt1.fd    = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
174
   tt1.fd    = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
175
   tt1.fd    = if bogus <> ? then h:buffer-field("na"):buffer-value else d.
176
   tt1.fd    = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
177
   
178
   /* date/datetime/datetime-tz assignment can have op2 as date, datetime, datetime-tz or unknown value literal */
179
   /* date can also have int, int64 as op2 */
180
   /* datetime/datetime-tz can compile with int, int64 as op2, but they generate runtime errors */  
181
   
182
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
183
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
184
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
185
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
186
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else da.
187
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else dt.
188
   da        = if bogus <> ? then h:buffer-field("na"):buffer-value else dtz.
189
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
190
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
191
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
192
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
193
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else da.
194
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else dt.
195
   tt1.fda   = if bogus <> ? then h:buffer-field("na"):buffer-value else dtz.
196
   dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
197
   
198
   /* compiles but always creates a runtime error */
199
   if bypass-runtime-error then
200
   do:   
201
      dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
202
      dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
203
      dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
204
   end.
205
   
206
   dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else da.
207
   dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else dt.
208
   dt        = if bogus <> ? then h:buffer-field("na"):buffer-value else dtz.
209
   tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
210
   
211
   /* compiles but always creates a runtime error */
212
   if bypass-runtime-error then
213
   do:   
214
      tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
215
      tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
216
      tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
217
   end.
218
   
219
   tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else da.
220
   tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else dt.
221
   tt1.fdt   = if bogus <> ? then h:buffer-field("na"):buffer-value else dtz.
222
   dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
223
   
224
   /* compiles but always creates a runtime error */
225
   if bypass-runtime-error then
226
   do:   
227
      dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
228
      dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
229
      dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
230
   end.
231
   
232
   dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else da.
233
   dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else dt.
234
   dtz       = if bogus <> ? then h:buffer-field("na"):buffer-value else dtz.
235
   tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
236
   
237
   /* compiles but always creates a runtime error */
238
   if bypass-runtime-error then
239
   do:   
240
      tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
241
      tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
242
      tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
243
   end.
244
   
245
   tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else da.
246
   tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else dt.
247
   tt1.fdtz  = if bogus <> ? then h:buffer-field("na"):buffer-value else dtz.
248
   
249
   /* logical assignment can have op2 as logical, integer, int64 or unknown value literal */
250
   
251
   tt1.na = "yes".
252
   bool      = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
253
   bool      = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
254
   bool      = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
255
   bool      = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
256
   bool      = if bogus <> ? then h:buffer-field("na"):buffer-value else bool.
257
   tt1.fbool = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
258
   tt1.fbool = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
259
   tt1.fbool = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
260
   tt1.fbool = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
261
   tt1.fbool = if bogus <> ? then h:buffer-field("na"):buffer-value else bool.
262
   tt1.na = "".
263
   
264
   /* handle assignment can have op2 as handle, integer, int64 or unknown value literal */
265
   
266
   h2        = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
267
   h2        = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
268
   h2        = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
269
   h2        = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
270
   h2        = if bogus <> ? then h:buffer-field("na"):buffer-value else h.
271
   tt1.fh    = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
272
   tt1.fh    = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
273
   tt1.fh    = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
274
   tt1.fh    = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
275
   tt1.fh    = if bogus <> ? then h:buffer-field("na"):buffer-value else h.
276
   
277
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
278
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
279
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
280
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
281
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else ch.
282
   ch        = if bogus <> ? then h:buffer-field("na"):buffer-value else lch.
283
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
284
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
285
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
286
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
287
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else ch.
288
   tt1.fch   = if bogus <> ? then h:buffer-field("na"):buffer-value else lch.
289
   
290
   lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else ?.
291
   
292
   /* compiles but creates a runtime error */
293
   if bypass-runtime-error then
294
   do:   
295
      lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else 0.
296
      lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else i.
297
      lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else i64.
298
   end.
299
   
300
   lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else ch.
301
   lch       = if bogus <> ? then h:buffer-field("na"):buffer-value else lch.
302
   
303
   /* compiles but creates a runtime error */
304
   if bypass-runtime-error then
305
   do:
306
      m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else ?.
307
      m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else 0.
308
      m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else i.
309
      m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else i64.
310
   end.
311
   
312
   m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else ptr.
313
   m1        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else m2.
314
   
315
   /* compiles but creates a runtime error */
316
   if bypass-runtime-error then
317
   do:
318
      m2        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else ?.
319
      m2        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else 0.
320
      m2        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else i.
321
      m2        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else i64.
322
   end.
323
   
324
   m2        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else ptr.
325
   m2        = if bogus <> ? then h:buffer-field("fm2"):buffer-value else m2.
326
   
327
   tt1.fm2   = if bogus <> ? then h:buffer-field("fm2"):buffer-value else ?.
328
   
329
   /* compiles but creates a runtime error */
330
   if bypass-runtime-error then
331
   do:   
332
      tt1.fm2   = if bogus <> ? then h:buffer-field("fm2"):buffer-value else 0.
333
      tt1.fm2   = if bogus <> ? then h:buffer-field("fm2"):buffer-value else i.
334
      tt1.fm2   = if bogus <> ? then h:buffer-field("fm2"):buffer-value else i64.
335
   end.
336
   
337
   tt1.fm2   = if bogus <> ? then h:buffer-field("fm2"):buffer-value else ptr.
338
   tt1.fm2   = if bogus <> ? then h:buffer-field("fm2"):buffer-value else m2.
339
   
340
   r1        = if bogus <> ? then h:buffer-field("fr1"):buffer-value else ?.
341
   r1        = if bogus <> ? then h:buffer-field("fr1"):buffer-value else 0.
342
   r1        = if bogus <> ? then h:buffer-field("fr1"):buffer-value else i.
343
   r1        = if bogus <> ? then h:buffer-field("fr1"):buffer-value else i64.
344
   r1        = if bogus <> ? then h:buffer-field("fr1"):buffer-value else r1.
345
   
346
   tt1.fr1   = if bogus <> ? then h:buffer-field("fr1"):buffer-value else ?.
347
   tt1.fr1   = if bogus <> ? then h:buffer-field("fr1"):buffer-value else 0.
348
   tt1.fr1   = if bogus <> ? then h:buffer-field("fr1"):buffer-value else i.
349
   tt1.fr1   = if bogus <> ? then h:buffer-field("fr1"):buffer-value else i64.
350
   tt1.fr1   = if bogus <> ? then h:buffer-field("fr1"):buffer-value else r1.
351
      
352
   r2        = if bogus <> ? then h:buffer-field("fr2"):buffer-value else ?.
353
   
354
   /* compiles but creates a runtime error */
355
   if bypass-runtime-error then
356
   do:
357
      r2        = if bogus <> ? then h:buffer-field("fr2"):buffer-value else 0.
358
      r2        = if bogus <> ? then h:buffer-field("fr2"):buffer-value else i.
359
      r2        = if bogus <> ? then h:buffer-field("fr2"):buffer-value else i64.
360
   end.
361
   
362
   r2        = if bogus <> ? then h:buffer-field("fr2"):buffer-value else r2.
363
   
364
   tt1.fr2   = if bogus <> ? then h:buffer-field("fr2"):buffer-value else ?.
365
   
366
   /* compiles but creates a runtime error */
367
   if bypass-runtime-error then
368
   do:
369
      tt1.fr2   = if bogus <> ? then h:buffer-field("fr2"):buffer-value else 0.
370
      tt1.fr2   = if bogus <> ? then h:buffer-field("fr2"):buffer-value else i.
371
      tt1.fr2   = if bogus <> ? then h:buffer-field("fr2"):buffer-value else i64.
372
   end.
373
   
374
   tt1.fr2   = if bogus <> ? then h:buffer-field("fr2"):buffer-value else r2.
375
   
376
   return bogus.
377
end.
378

    
379
function op2Indeterminate returns int (input bogus as int):
380

    
381
   message "op2Indeterminate(" + (if bogus = ? then "?" else string(bogus)) + ")".
382
   
383
   /* when op2 is non-typable, op1 can be anything but there can be runtime errors depending in the types and contents */
384
   /* some types just can't be assigned without runtime errors */
385
   
386
   i         = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
387
   i         = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
388
   i         = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
389
   i         = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
390
   i         = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
391
   i         = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
392
   i         = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
393
   i         = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
394
   i         = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
395
   i         = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
396
   i         = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
397
   i         = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
398
   
399
   /* compiles but always creates a runtime error */
400
   if bypass-runtime-error then
401
      i         = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
402
   
403
   i         = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
404
   i         = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
405
   
406
   /* compiles but always creates a runtime error */
407
   if bypass-runtime-error then
408
   do:   
409
      i         = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
410
      i         = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
411
      i         = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
412
   end.
413
   
414
   tt1.fi    = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
415
   tt1.fi    = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
416
   tt1.fi    = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
417
   tt1.fi    = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
418
   tt1.fi    = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
419
   tt1.fi    = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
420
   tt1.fi    = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
421
   tt1.fi    = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
422
   tt1.fi    = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
423
   tt1.fi    = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
424
   tt1.fi    = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
425
   tt1.fi    = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
426
   
427
   /* compiles but always creates a runtime error */
428
   if bypass-runtime-error then
429
      tt1.fi    = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
430
   
431
   tt1.fi    = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
432
   tt1.fi    = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
433
   
434
   /* compiles but always creates a runtime error */
435
   if bypass-runtime-error then
436
   do:   
437
      tt1.fi    = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
438
      tt1.fi    = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
439
      tt1.fi    = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
440
   end.
441
   
442
   i64       = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
443
   i64       = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
444
   i64       = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
445
   i64       = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
446
   i64       = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
447
   i64       = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
448
   i64       = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
449
   i64       = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
450
   i64       = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
451
   i64       = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
452
   i64       = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
453
   i64       = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
454
   
455
   
456
   /* compiles but always creates a runtime error */
457
   if bypass-runtime-error then
458
      i64       = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
459
   
460
   i64       = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
461
   i64       = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
462
   
463
   /* compiles but always creates a runtime error */
464
   if bypass-runtime-error then
465
   do:   
466
      i64       = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
467
      i64       = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
468
      i64       = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
469
   end.
470
   
471
   tt1.fi64  = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
472
   tt1.fi64  = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
473
   tt1.fi64  = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
474
   tt1.fi64  = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
475
   tt1.fi64  = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
476
   tt1.fi64  = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
477
   tt1.fi64  = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
478
   tt1.fi64  = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
479
   tt1.fi64  = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
480
   tt1.fi64  = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
481
   tt1.fi64  = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
482
   tt1.fi64  = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
483
   
484
   /* compiles but always creates a runtime error */
485
   if bypass-runtime-error then
486
      tt1.fi64  = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
487
   
488
   tt1.fi64  = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
489
   tt1.fi64  = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
490
   
491
   /* compiles but always creates a runtime error */
492
   if bypass-runtime-error then
493
   do:   
494
      tt1.fi64  = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
495
      tt1.fi64  = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
496
      tt1.fi64  = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
497
   end.
498
   
499
   d         = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
500
   d         = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
501
   d         = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
502
   d         = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
503
   d         = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
504
   d         = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
505
   d         = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
506
   d         = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
507
   d         = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
508
   d         = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
509
   d         = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
510
   d         = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
511
   
512
   /* compiles but always creates a runtime error */
513
   if bypass-runtime-error then
514
      d         = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
515
      
516
   d         = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
517
   d         = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
518
   
519
   /* compiles but always creates a runtime error */
520
   if bypass-runtime-error then
521
   do:   
522
      d         = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
523
      d         = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
524
      d         = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
525
   end.
526
   
527
   tt1.fd    = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
528
   tt1.fd    = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
529
   tt1.fd    = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
530
   tt1.fd    = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
531
   tt1.fd    = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
532
   tt1.fd    = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
533
   tt1.fd    = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
534
   tt1.fd    = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
535
   tt1.fd    = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
536
   tt1.fd    = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
537
   tt1.fd    = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
538
   tt1.fd    = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
539
   
540
   /* compiles but always creates a runtime error */
541
   if bypass-runtime-error then
542
      tt1.fd    = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
543
   
544
   tt1.fd    = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
545
   tt1.fd    = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
546
   
547
   /* compiles but always creates a runtime error */
548
   if bypass-runtime-error then
549
   do:   
550
      tt1.fd    = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
551
      tt1.fd    = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
552
      tt1.fd    = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
553
   end.
554
   
555
   da        = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
556
   da        = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
557
   da        = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
558
   da        = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
559
   da        = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
560
   da        = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
561
   da        = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
562
   da        = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
563
   da        = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
564
   da        = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
565
   da        = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
566
   da        = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
567
   
568
   /* compiles but always creates a runtime error */
569
   if bypass-runtime-error then
570
      da        = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
571
   
572
   da        = if bogus <> ? then ""    else h:buffer-field("na"):buffer-value.
573
   da        = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
574
   
575
   /* compiles but always creates a runtime error */
576
   if bypass-runtime-error then
577
   do:   
578
      da        = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
579
      da        = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
580
      da        = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
581
   end.
582
   
583
   tt1.fda   = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
584
   tt1.fda   = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
585
   tt1.fda   = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
586
   tt1.fda   = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
587
   tt1.fda   = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
588
   tt1.fda   = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
589
   tt1.fda   = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
590
   tt1.fda   = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
591
   tt1.fda   = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
592
   tt1.fda   = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
593
   tt1.fda   = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
594
   tt1.fda   = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
595
   
596
   /* compiles but always creates a runtime error */
597
   if bypass-runtime-error then
598
      tt1.fda   = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
599
   
600
   tt1.fda   = if bogus <> ? then ""    else h:buffer-field("na"):buffer-value.
601
   tt1.fda   = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
602
   
603
   /* compiles but always creates a runtime error */
604
   if bypass-runtime-error then
605
   do:   
606
      tt1.fda   = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
607
      tt1.fda   = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
608
      tt1.fda   = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
609
      dt        = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
610
      dt        = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
611
      dt        = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
612
      dt        = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
613
   end.
614
   
615
   dt        = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
616
   dt        = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
617
   dt        = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
618
   
619
   /* compiles but always creates a runtime error */
620
   if bypass-runtime-error then
621
   do:   
622
      dt        = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
623
      dt        = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
624
      dt        = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
625
      dt        = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
626
   end.
627
   
628
   dt        = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
629
   
630
   /* compiles but always creates a runtime error */
631
   if bypass-runtime-error then
632
      dt        = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
633
   
634
   dt        = if bogus <> ? then ""    else h:buffer-field("na"):buffer-value.
635
   
636
   /* compiles but always creates a runtime error */
637
   if bypass-runtime-error then
638
   do:   
639
      dt        = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
640
      dt        = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
641
      dt        = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
642
      dt        = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
643
      tt1.fdt   = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
644
      tt1.fdt   = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
645
      tt1.fdt   = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
646
      tt1.fdt   = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
647
   end.
648
   
649
   tt1.fdt   = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
650
   tt1.fdt   = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
651
   tt1.fdt   = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
652
   
653
   /* compiles but always creates a runtime error */
654
   if bypass-runtime-error then
655
   do:   
656
      tt1.fdt   = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
657
      tt1.fdt   = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
658
      tt1.fdt   = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
659
      tt1.fdt   = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
660
   end.
661
   
662
   tt1.fdt   = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
663
   
664
   /* compiles but always creates a runtime error */
665
   if bypass-runtime-error then
666
      tt1.fdt   = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
667
   
668
   tt1.fdt   = if bogus <> ? then ""    else h:buffer-field("na"):buffer-value.
669
   
670
   /* compiles but always creates a runtime error */
671
   if bypass-runtime-error then
672
   do:   
673
      tt1.fdt   = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
674
      tt1.fdt   = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
675
      tt1.fdt   = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
676
      tt1.fdt   = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
677
      dtz       = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
678
      dtz       = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
679
      dtz       = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
680
      dtz       = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
681
   end.
682
   
683
   dtz       = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
684
   dtz       = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
685
   dtz       = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
686
   
687
   /* compiles but always creates a runtime error */
688
   if bypass-runtime-error then
689
   do:   
690
      dtz       = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
691
      dtz       = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
692
      dtz       = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
693
      dtz       = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
694
   end.
695
   
696
   dtz       = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
697
   
698
   /* compiles but always creates a runtime error */
699
   if bypass-runtime-error then
700
      dtz       = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
701
   
702
   dtz       = if bogus <> ? then ""    else h:buffer-field("na"):buffer-value.
703
   
704
   /* compiles but always creates a runtime error */
705
   if bypass-runtime-error then
706
   do:   
707
      dtz       = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
708
      dtz       = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
709
      dtz       = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
710
      dtz       = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
711
      tt1.fdtz  = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
712
      tt1.fdtz  = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
713
      tt1.fdtz  = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
714
      tt1.fdtz  = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
715
   end.
716
   
717
   tt1.fdtz  = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
718
   tt1.fdtz  = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
719
   tt1.fdtz  = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
720
   
721
   /* compiles but always creates a runtime error */
722
   if bypass-runtime-error then
723
   do:   
724
      tt1.fdtz  = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
725
      tt1.fdtz  = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
726
      tt1.fdtz  = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
727
      tt1.fdtz  = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
728
   end.
729
   
730
   tt1.fdtz  = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
731
   
732
   /* compiles but always creates a runtime error */
733
   if bypass-runtime-error then
734
      tt1.fdtz  = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
735
   
736
   tt1.fdtz  = if bogus <> ? then ""    else h:buffer-field("na"):buffer-value.
737
   
738
   /* compiles but always creates a runtime error */
739
   if bypass-runtime-error then
740
   do:   
741
      tt1.fdtz  = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
742
      tt1.fdtz  = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
743
      tt1.fdtz  = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
744
      tt1.fdtz  = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
745
   end.
746
   
747
   tt1.na = "yes".
748
   ch = "yes".
749
   bool      = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
750
   bool      = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
751
   bool      = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
752
   bool      = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
753
   bool      = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
754
   bool      = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
755
   bool      = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
756
   bool      = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
757
   bool      = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
758
   bool      = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
759
   bool      = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
760
   bool      = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
761
   
762
   /* compiles but always creates a runtime error */
763
   if bypass-runtime-error then
764
      bool      = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
765
   
766
   bool      = if bogus <> ? then "yes" else h:buffer-field("na"):buffer-value.
767
   bool      = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
768
   
769
   /* compiles but always creates a runtime error */
770
   if bypass-runtime-error then
771
   do:   
772
      bool      = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
773
      bool      = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
774
      bool      = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
775
   end.
776
   tt1.fbool = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
777
   tt1.fbool = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
778
   tt1.fbool = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
779
   tt1.fbool = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
780
   tt1.fbool = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
781
   tt1.fbool = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
782
   tt1.fbool = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
783
   tt1.fbool = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
784
   tt1.fbool = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
785
   tt1.fbool = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
786
   tt1.fbool = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
787
   tt1.fbool = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
788
   
789
   /* compiles but always creates a runtime error */
790
   if bypass-runtime-error then
791
      tt1.fbool = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
792
   
793
   tt1.fbool = if bogus <> ? then "yes" else h:buffer-field("na"):buffer-value.
794
   tt1.fbool = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
795
   
796
   /* compiles but always creates a runtime error */
797
   if bypass-runtime-error then
798
   do:   
799
      tt1.fbool = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
800
      tt1.fbool = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
801
      tt1.fbool = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
802
   end.
803
   tt1.na = "".
804
   ch = "".
805
   
806
   h2        = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
807
   h2        = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
808
   h2        = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
809
   h2        = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
810
   h2        = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
811
   h2        = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
812
   h2        = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
813
   h2        = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
814
   h2        = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
815
   h2        = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
816
   h2        = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
817
   h2        = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
818
   
819
   /* compiles but always creates a runtime error */
820
   if bypass-runtime-error then
821
      h2        = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
822
   
823
   h2        = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
824
   h2        = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
825
   
826
   /* compiles but always creates a runtime error */
827
   if bypass-runtime-error then
828
   do:   
829
      h2        = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
830
      h2        = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
831
      h2        = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
832
   end.
833
   
834
   tt1.fh    = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
835
   tt1.fh    = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
836
   tt1.fh    = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
837
   tt1.fh    = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
838
   tt1.fh    = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
839
   tt1.fh    = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
840
   tt1.fh    = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
841
   tt1.fh    = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
842
   tt1.fh    = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
843
   tt1.fh    = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
844
   tt1.fh    = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
845
   tt1.fh    = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
846
   
847
   /* compiles but always creates a runtime error */
848
   if bypass-runtime-error then
849
   do:   
850
      tt1.fh    = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
851
   end.
852
   
853
   tt1.fh    = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
854
   tt1.fh    = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
855
   
856
   /* compiles but always creates a runtime error */
857
   if bypass-runtime-error then
858
   do:   
859
      tt1.fh    = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
860
      tt1.fh    = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
861
      tt1.fh    = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
862
   end.
863
   
864
   ch        = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
865
   ch        = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
866
   ch        = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
867
   ch        = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
868
   ch        = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
869
   ch        = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
870
   ch        = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
871
   ch        = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
872
   ch        = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
873
   ch        = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
874
   ch        = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
875
   ch        = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
876
   ch        = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
877
   ch        = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
878
   ch        = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
879
   
880
   /* compiles but always creates a runtime error */
881
   if bypass-runtime-error then
882
   do:   
883
      ch        = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
884
      ch        = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
885
      ch        = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
886
   end.
887
   
888
   tt1.fch   = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
889
   tt1.fch   = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
890
   tt1.fch   = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
891
   tt1.fch   = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
892
   tt1.fch   = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
893
   tt1.fch   = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
894
   tt1.fch   = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
895
   tt1.fch   = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
896
   tt1.fch   = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
897
   tt1.fch   = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
898
   tt1.fch   = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
899
   tt1.fch   = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
900
   tt1.fch   = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
901
   tt1.fch   = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
902
   tt1.fch   = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
903
   
904
   /* compiles but always creates a runtime error */
905
   if bypass-runtime-error then
906
   do:   
907
      tt1.fch   = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
908
      tt1.fch   = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
909
      tt1.fch   = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
910
      
911
      lch       = if bogus <> ? then 0     else h:buffer-field("na"):buffer-value.
912
      lch       = if bogus <> ? then i     else h:buffer-field("na"):buffer-value.
913
      lch       = if bogus <> ? then d     else h:buffer-field("na"):buffer-value.
914
      lch       = if bogus <> ? then i64   else h:buffer-field("na"):buffer-value.
915
      lch       = if bogus <> ? then da    else h:buffer-field("na"):buffer-value.
916
      lch       = if bogus <> ? then dt    else h:buffer-field("na"):buffer-value.
917
      lch       = if bogus <> ? then dtz   else h:buffer-field("na"):buffer-value.
918
      lch       = if bogus <> ? then bool  else h:buffer-field("na"):buffer-value.
919
      lch       = if bogus <> ? then true  else h:buffer-field("na"):buffer-value.
920
      lch       = if bogus <> ? then false else h:buffer-field("na"):buffer-value.
921
      lch       = if bogus <> ? then h     else h:buffer-field("na"):buffer-value.
922
   end.
923
   
924
   lch       = if bogus <> ? then ch    else h:buffer-field("na"):buffer-value.
925
   lch       = if bogus <> ? then lch   else h:buffer-field("na"):buffer-value.
926
   lch       = if bogus <> ? then "14"  else h:buffer-field("na"):buffer-value.
927
   
928
   /* compiles but always creates a runtime error */
929
   if bypass-runtime-error then
930
   do:
931
      lch       = if bogus <> ? then r1    else h:buffer-field("na"):buffer-value.
932
      lch       = if bogus <> ? then r2    else h:buffer-field("na"):buffer-value.
933
      lch       = if bogus <> ? then m1    else h:buffer-field("na"):buffer-value.
934
      lch       = if bogus <> ? then m2    else h:buffer-field("na"):buffer-value.
935
   end.
936
   
937
   /* compiles but always creates a runtime error */
938
   if bypass-runtime-error then
939
   do:   
940
      m1        = if bogus <> ? then 0     else h:buffer-field("fm2"):buffer-value.
941
      m1        = if bogus <> ? then i     else h:buffer-field("fm2"):buffer-value.
942
      m1        = if bogus <> ? then d     else h:buffer-field("fm2"):buffer-value.
943
      m1        = if bogus <> ? then i64   else h:buffer-field("fm2"):buffer-value.
944
      m1        = if bogus <> ? then da    else h:buffer-field("fm2"):buffer-value.
945
      m1        = if bogus <> ? then dt    else h:buffer-field("fm2"):buffer-value.
946
      m1        = if bogus <> ? then dtz   else h:buffer-field("fm2"):buffer-value.
947
      m1        = if bogus <> ? then bool  else h:buffer-field("fm2"):buffer-value.
948
      m1        = if bogus <> ? then true  else h:buffer-field("fm2"):buffer-value.
949
      m1        = if bogus <> ? then false else h:buffer-field("fm2"):buffer-value.
950
      m1        = if bogus <> ? then h     else h:buffer-field("fm2"):buffer-value.
951
      m1        = if bogus <> ? then ch    else h:buffer-field("fm2"):buffer-value.
952
      m1        = if bogus <> ? then lch   else h:buffer-field("fm2"):buffer-value.
953
      m1        = if bogus <> ? then "14"  else h:buffer-field("fm2"):buffer-value.
954
      m1        = if bogus <> ? then r1    else h:buffer-field("fm2"):buffer-value.
955
      m1        = if bogus <> ? then r2    else h:buffer-field("fm2"):buffer-value.
956
   end.
957

    
958
   m1        = if bogus <> ? then ptr   else h:buffer-field("fm2"):buffer-value.
959
   m1        = if bogus <> ? then m2    else h:buffer-field("fm2"):buffer-value.
960
   
961
   /* compiles but always creates a runtime error */
962
   if bypass-runtime-error then
963
   do:   
964
      m2        = if bogus <> ? then 0     else h:buffer-field("fm2"):buffer-value.
965
      m2        = if bogus <> ? then i     else h:buffer-field("fm2"):buffer-value.
966
      m2        = if bogus <> ? then d     else h:buffer-field("fm2"):buffer-value.
967
      m2        = if bogus <> ? then i64   else h:buffer-field("fm2"):buffer-value.
968
      m2        = if bogus <> ? then da    else h:buffer-field("fm2"):buffer-value.
969
      m2        = if bogus <> ? then dt    else h:buffer-field("fm2"):buffer-value.
970
      m2        = if bogus <> ? then dtz   else h:buffer-field("fm2"):buffer-value.
971
      m2        = if bogus <> ? then bool  else h:buffer-field("fm2"):buffer-value.
972
      m2        = if bogus <> ? then true  else h:buffer-field("fm2"):buffer-value.
973
      m2        = if bogus <> ? then false else h:buffer-field("fm2"):buffer-value.
974
      m2        = if bogus <> ? then h     else h:buffer-field("fm2"):buffer-value.
975
      m2        = if bogus <> ? then ch    else h:buffer-field("fm2"):buffer-value.
976
      m2        = if bogus <> ? then lch   else h:buffer-field("fm2"):buffer-value.
977
      m2        = if bogus <> ? then "14"  else h:buffer-field("fm2"):buffer-value.
978
      m2        = if bogus <> ? then r1    else h:buffer-field("fm2"):buffer-value.
979
      m2        = if bogus <> ? then r2    else h:buffer-field("fm2"):buffer-value.
980
   end.
981

    
982
   m2        = if bogus <> ? then ptr   else h:buffer-field("fm2"):buffer-value.
983
   m2        = if bogus <> ? then m2    else h:buffer-field("fm2"):buffer-value.
984
   
985
   r1        = if bogus <> ? then 0     else h:buffer-field("fr1"):buffer-value.
986
   r1        = if bogus <> ? then i     else h:buffer-field("fr1"):buffer-value.
987
   r1        = if bogus <> ? then d     else h:buffer-field("fr1"):buffer-value.
988
   r1        = if bogus <> ? then i64   else h:buffer-field("fr1"):buffer-value.
989
   r1        = if bogus <> ? then da    else h:buffer-field("fr1"):buffer-value.
990
   r1        = if bogus <> ? then dt    else h:buffer-field("fr1"):buffer-value.
991
   r1        = if bogus <> ? then dtz   else h:buffer-field("fr1"):buffer-value.
992
   r1        = if bogus <> ? then bool  else h:buffer-field("fr1"):buffer-value.
993
   r1        = if bogus <> ? then true  else h:buffer-field("fr1"):buffer-value.
994
   r1        = if bogus <> ? then false else h:buffer-field("fr1"):buffer-value.
995
   r1        = if bogus <> ? then h     else h:buffer-field("fr1"):buffer-value.
996
   r1        = if bogus <> ? then ch    else h:buffer-field("fr1"):buffer-value.
997
   
998
   /* compiles but always creates a runtime error */
999
   if bypass-runtime-error then
1000
      r1        = if bogus <> ? then lch   else h:buffer-field("fr1"):buffer-value.
1001
   
1002
   r1        = if bogus <> ? then "14"  else h:buffer-field("fr1"):buffer-value.
1003
   r1        = if bogus <> ? then r1    else h:buffer-field("fr1"):buffer-value.
1004
   r1        = if bogus <> ? then r2    else h:buffer-field("fr1"):buffer-value.
1005
   
1006
   /* compiles but always creates a runtime error */
1007
   if bypass-runtime-error then
1008
   do:   
1009
      r1        = if bogus <> ? then ptr   else h:buffer-field("fr1"):buffer-value.
1010
      r1        = if bogus <> ? then m2    else h:buffer-field("fr1"):buffer-value.
1011
   end.
1012
   
1013
   /* compiles but always creates a runtime error */
1014
   if bypass-runtime-error then
1015
   do:
1016
      r2        = if bogus <> ? then 0     else h:buffer-field("fr2"):buffer-value.
1017
      r2        = if bogus <> ? then i     else h:buffer-field("fr2"):buffer-value.
1018
      r2        = if bogus <> ? then d     else h:buffer-field("fr2"):buffer-value.
1019
      r2        = if bogus <> ? then i64   else h:buffer-field("fr2"):buffer-value.
1020
      r2        = if bogus <> ? then da    else h:buffer-field("fr2"):buffer-value.
1021
   end.
1022
   
1023
   r2        = if bogus <> ? then dt    else h:buffer-field("fr2"):buffer-value.
1024
   r2        = if bogus <> ? then dtz   else h:buffer-field("fr2"):buffer-value.
1025
   
1026
   /* compiles but always creates a runtime error */
1027
   if bypass-runtime-error then
1028
   do:
1029
      r2        = if bogus <> ? then bool  else h:buffer-field("fr2"):buffer-value.
1030
      r2        = if bogus <> ? then true  else h:buffer-field("fr2"):buffer-value.
1031
      r2        = if bogus <> ? then false else h:buffer-field("fr2"):buffer-value.
1032
      r2        = if bogus <> ? then h     else h:buffer-field("fr2"):buffer-value.
1033
   end.
1034
   
1035
   r2        = if bogus <> ? then ch    else h:buffer-field("fr2"):buffer-value.
1036
   
1037
   /* compiles but always creates a runtime error */
1038
   if bypass-runtime-error then
1039
      r2        = if bogus <> ? then lch   else h:buffer-field("fr2"):buffer-value.
1040
   
1041
   r2        = if bogus <> ? then "14"  else h:buffer-field("fr2"):buffer-value.
1042
   r2        = if bogus <> ? then r1    else h:buffer-field("fr2"):buffer-value.
1043
   r2        = if bogus <> ? then r2    else h:buffer-field("fr2"):buffer-value.
1044
   
1045
   /* compiles but always creates a runtime error */
1046
   if bypass-runtime-error then
1047
   do:   
1048
      r2        = if bogus <> ? then ptr   else h:buffer-field("fr2"):buffer-value.
1049
      r2        = if bogus <> ? then m2    else h:buffer-field("fr2"):buffer-value.
1050
   end.
1051
   
1052
   return bogus.
1053
end.
1054

    
1055
/*
1056
i      = if bogus <> ? then dynamic-function("func0") else 0.
1057
ch1    = if bogus <> ? then dynamic-function("func0") else 0.
1058

    
1059
tt1.f1 = if bogus <> ? then dynamic-function("func0") else 0.
1060
tt1.f2 = if bogus <> ? then dynamic-function("func0") else 0.
1061
*/