CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Path: gap4r8 / src / c_type1.c
Views: 418346
1
#ifndef AVOID_PRECOMPILED
2
/* C file produced by GAC */
3
#include "src/compiled.h"
4
5
/* global variables used in handlers */
6
static GVar G_NAME__FUNC;
7
static Obj GF_NAME__FUNC;
8
static GVar G_IsType;
9
static Obj GF_IsType;
10
static GVar G_IS__REC;
11
static Obj GF_IS__REC;
12
static GVar G_IS__LIST;
13
static Obj GF_IS__LIST;
14
static GVar G_ADD__LIST;
15
static Obj GF_ADD__LIST;
16
static GVar G_IS__PLIST__REP;
17
static Obj GF_IS__PLIST__REP;
18
static GVar G_IS__BLIST;
19
static Obj GF_IS__BLIST;
20
static GVar G_IS__RANGE;
21
static Obj GF_IS__RANGE;
22
static GVar G_IS__STRING__REP;
23
static Obj GF_IS__STRING__REP;
24
static GVar G_Error;
25
static Obj GF_Error;
26
static GVar G_TYPE__OBJ;
27
static Obj GC_TYPE__OBJ;
28
static Obj GF_TYPE__OBJ;
29
static GVar G_FAMILY__OBJ;
30
static Obj GC_FAMILY__OBJ;
31
static GVar G_IMMUTABLE__COPY__OBJ;
32
static Obj GF_IMMUTABLE__COPY__OBJ;
33
static GVar G_IS__IDENTICAL__OBJ;
34
static Obj GF_IS__IDENTICAL__OBJ;
35
static GVar G_IS__COMOBJ;
36
static Obj GF_IS__COMOBJ;
37
static GVar G_SET__TYPE__COMOBJ;
38
static Obj GF_SET__TYPE__COMOBJ;
39
static GVar G_IS__POSOBJ;
40
static Obj GF_IS__POSOBJ;
41
static GVar G_SET__TYPE__POSOBJ;
42
static Obj GF_SET__TYPE__POSOBJ;
43
static GVar G_LEN__POSOBJ;
44
static Obj GF_LEN__POSOBJ;
45
static GVar G_IS__DATOBJ;
46
static Obj GF_IS__DATOBJ;
47
static GVar G_SET__TYPE__DATOBJ;
48
static Obj GF_SET__TYPE__DATOBJ;
49
static GVar G_IS__OBJECT;
50
static Obj GC_IS__OBJECT;
51
static GVar G_AND__FLAGS;
52
static Obj GF_AND__FLAGS;
53
static GVar G_SUB__FLAGS;
54
static Obj GF_SUB__FLAGS;
55
static GVar G_HASH__FLAGS;
56
static Obj GF_HASH__FLAGS;
57
static GVar G_IS__EQUAL__FLAGS;
58
static Obj GF_IS__EQUAL__FLAGS;
59
static GVar G_IS__SUBSET__FLAGS;
60
static Obj GF_IS__SUBSET__FLAGS;
61
static GVar G_FLAG1__FILTER;
62
static Obj GF_FLAG1__FILTER;
63
static GVar G_FLAGS__FILTER;
64
static Obj GF_FLAGS__FILTER;
65
static GVar G_METHODS__OPERATION;
66
static Obj GF_METHODS__OPERATION;
67
static GVar G_SETTER__FUNCTION;
68
static Obj GF_SETTER__FUNCTION;
69
static GVar G_GETTER__FUNCTION;
70
static Obj GF_GETTER__FUNCTION;
71
static GVar G_IS__AND__FILTER;
72
static Obj GF_IS__AND__FILTER;
73
static GVar G_COMPACT__TYPE__IDS;
74
static Obj GF_COMPACT__TYPE__IDS;
75
static GVar G_LEN__LIST;
76
static Obj GF_LEN__LIST;
77
static GVar G_SET__FILTER__LIST;
78
static Obj GF_SET__FILTER__LIST;
79
static GVar G_RESET__FILTER__LIST;
80
static Obj GF_RESET__FILTER__LIST;
81
static GVar G_GASMAN;
82
static Obj GF_GASMAN;
83
static GVar G_InstallAttributeFunction;
84
static Obj GF_InstallAttributeFunction;
85
static GVar G_InstallOtherMethod;
86
static Obj GF_InstallOtherMethod;
87
static GVar G_IsAttributeStoringRep;
88
static Obj GC_IsAttributeStoringRep;
89
static Obj GF_IsAttributeStoringRep;
90
static GVar G_GETTER__FLAGS;
91
static Obj GC_GETTER__FLAGS;
92
static GVar G_LENGTH__SETTER__METHODS__2;
93
static Obj GC_LENGTH__SETTER__METHODS__2;
94
static GVar G_SetFilterObj;
95
static Obj GC_SetFilterObj;
96
static Obj GF_SetFilterObj;
97
static GVar G_Subtype;
98
static Obj GF_Subtype;
99
static GVar G_BIND__GLOBAL;
100
static Obj GF_BIND__GLOBAL;
101
static GVar G_WITH__IMPS__FLAGS;
102
static Obj GF_WITH__IMPS__FLAGS;
103
static GVar G_CATEGORIES__FAMILY;
104
static Obj GC_CATEGORIES__FAMILY;
105
static GVar G_NEW__FAMILY;
106
static Obj GF_NEW__FAMILY;
107
static GVar G_EMPTY__FLAGS;
108
static Obj GC_EMPTY__FLAGS;
109
static GVar G_NewFamily2;
110
static Obj GF_NewFamily2;
111
static GVar G_TypeOfFamilies;
112
static Obj GC_TypeOfFamilies;
113
static GVar G_NewFamily3;
114
static Obj GF_NewFamily3;
115
static GVar G_NewFamily4;
116
static Obj GF_NewFamily4;
117
static GVar G_NewFamily5;
118
static Obj GF_NewFamily5;
119
static GVar G_NEW__TYPE__CACHE__MISS;
120
static Obj GC_NEW__TYPE__CACHE__MISS;
121
static GVar G_NEW__TYPE__CACHE__HIT;
122
static Obj GC_NEW__TYPE__CACHE__HIT;
123
static GVar G_POS__DATA__TYPE;
124
static Obj GC_POS__DATA__TYPE;
125
static GVar G_NEW__TYPE__NEXT__ID;
126
static Obj GC_NEW__TYPE__NEXT__ID;
127
static GVar G_NEW__TYPE__ID__LIMIT;
128
static Obj GC_NEW__TYPE__ID__LIMIT;
129
static GVar G_FLUSH__ALL__METHOD__CACHES;
130
static Obj GF_FLUSH__ALL__METHOD__CACHES;
131
static GVar G_POS__NUMB__TYPE;
132
static Obj GC_POS__NUMB__TYPE;
133
static GVar G_NEW__TYPE;
134
static Obj GF_NEW__TYPE;
135
static GVar G_POS__FIRST__FREE__TYPE;
136
static Obj GC_POS__FIRST__FREE__TYPE;
137
static GVar G_IsFamily;
138
static Obj GF_IsFamily;
139
static GVar G_NewType2;
140
static Obj GF_NewType2;
141
static GVar G_TypeOfTypes;
142
static Obj GC_TypeOfTypes;
143
static GVar G_NewType3;
144
static Obj GF_NewType3;
145
static GVar G_NewType4;
146
static Obj GF_NewType4;
147
static GVar G_NewType5;
148
static Obj GF_NewType5;
149
static GVar G_Subtype2;
150
static Obj GF_Subtype2;
151
static GVar G_Subtype3;
152
static Obj GF_Subtype3;
153
static GVar G_SupType2;
154
static Obj GF_SupType2;
155
static GVar G_SupType3;
156
static Obj GF_SupType3;
157
static GVar G_FlagsType;
158
static Obj GF_FlagsType;
159
static GVar G_TypeObj;
160
static Obj GF_TypeObj;
161
static GVar G_DataType;
162
static Obj GF_DataType;
163
static GVar G_SharedType;
164
static Obj GF_SharedType;
165
static GVar G_IsNoImmediateMethodsObject;
166
static Obj GF_IsNoImmediateMethodsObject;
167
static GVar G_RunImmediateMethods;
168
static Obj GF_RunImmediateMethods;
169
static GVar G_IsNonAtomicComponentObjectRep;
170
static Obj GC_IsNonAtomicComponentObjectRep;
171
static GVar G_IsAtomicPositionalObjectRep;
172
static Obj GC_IsAtomicPositionalObjectRep;
173
static GVar G_IsReadOnlyPositionalObjectRep;
174
static Obj GC_IsReadOnlyPositionalObjectRep;
175
static GVar G_SetTypeObj;
176
static Obj GC_SetTypeObj;
177
static GVar G_ChangeTypeObj;
178
static Obj GC_ChangeTypeObj;
179
static Obj GF_ChangeTypeObj;
180
static GVar G_IGNORE__IMMEDIATE__METHODS;
181
static Obj GC_IGNORE__IMMEDIATE__METHODS;
182
static GVar G_ResetFilterObj;
183
static Obj GC_ResetFilterObj;
184
static Obj GF_ResetFilterObj;
185
static GVar G_Tester;
186
static Obj GF_Tester;
187
static GVar G_Setter;
188
static Obj GF_Setter;
189
static GVar G_FamilyType;
190
static Obj GF_FamilyType;
191
static GVar G_Ignore;
192
static Obj GC_Ignore;
193
static GVar G_MAKE__READ__WRITE__GLOBAL;
194
static Obj GF_MAKE__READ__WRITE__GLOBAL;
195
static GVar G_IsAttributeStoringRepFlags;
196
static Obj GC_IsAttributeStoringRepFlags;
197
static GVar G_INFO__OWA;
198
static Obj GF_INFO__OWA;
199
static GVar G_Objectify;
200
static Obj GF_Objectify;
201
202
/* record names used in handlers */
203
static RNam R_TYPES__LIST__FAM;
204
static RNam R_NAME;
205
static RNam R_REQ__FLAGS;
206
static RNam R_IMP__FLAGS;
207
static RNam R_TYPES;
208
static RNam R_nTYPES;
209
static RNam R_HASH__SIZE;
210
211
/* information for the functions */
212
static Obj NameFunc[38];
213
static Obj NamsFunc[38];
214
static Int NargFunc[38];
215
static Obj DefaultName;
216
static Obj FileName;
217
218
/* handler for function 2 */
219
static Obj HdlrFunc2 (
220
Obj self,
221
Obj a_name,
222
Obj a_filter,
223
Obj a_getter,
224
Obj a_setter,
225
Obj a_tester,
226
Obj a_mutflag )
227
{
228
Obj t_1 = 0;
229
Obj t_2 = 0;
230
Obj t_3 = 0;
231
Obj t_4 = 0;
232
Obj t_5 = 0;
233
Obj t_6 = 0;
234
Obj t_7 = 0;
235
Bag oldFrame;
236
OLD_BRK_CURR_STAT
237
238
/* allocate new stack frame */
239
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
240
REM_BRK_CURR_STAT();
241
SET_BRK_CURR_STAT(0);
242
243
/* InstallOtherMethod( getter, "system getter", true, [ IsAttributeStoringRep and tester ], GETTER_FLAGS, GETTER_FUNCTION( name ) ); */
244
t_1 = GF_InstallOtherMethod;
245
C_NEW_STRING( t_2, 13, "system getter" );
246
t_3 = True;
247
t_4 = NEW_PLIST( T_PLIST, 1 );
248
SET_LEN_PLIST( t_4, 1 );
249
t_6 = GC_IsAttributeStoringRep;
250
CHECK_BOUND( t_6, "IsAttributeStoringRep" )
251
if ( t_6 == False ) {
252
t_5 = t_6;
253
}
254
else if ( t_6 == True ) {
255
CHECK_BOOL( a_tester )
256
t_5 = a_tester;
257
}
258
else {
259
CHECK_FUNC( t_6 )
260
CHECK_FUNC( a_tester )
261
t_5 = NewAndFilter( t_6, a_tester );
262
}
263
SET_ELM_PLIST( t_4, 1, t_5 );
264
CHANGED_BAG( t_4 );
265
t_5 = GC_GETTER__FLAGS;
266
CHECK_BOUND( t_5, "GETTER_FLAGS" )
267
t_7 = GF_GETTER__FUNCTION;
268
t_6 = CALL_1ARGS( t_7, a_name );
269
CHECK_FUNC_RESULT( t_6 )
270
CALL_6ARGS( t_1, a_getter, t_2, t_3, t_4, t_5, t_6 );
271
272
/* return; */
273
RES_BRK_CURR_STAT();
274
SWITCH_TO_OLD_FRAME(oldFrame);
275
return 0;
276
277
/* return; */
278
RES_BRK_CURR_STAT();
279
SWITCH_TO_OLD_FRAME(oldFrame);
280
return 0;
281
}
282
283
/* handler for function 4 */
284
static Obj HdlrFunc4 (
285
Obj self,
286
Obj a_obj,
287
Obj a_val )
288
{
289
Obj t_1 = 0;
290
Obj t_2 = 0;
291
Bag oldFrame;
292
OLD_BRK_CURR_STAT
293
294
/* allocate new stack frame */
295
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
296
REM_BRK_CURR_STAT();
297
SET_BRK_CURR_STAT(0);
298
299
/* obj!.(name) := val; */
300
t_1 = OBJ_LVAR_1UP( 1 );
301
CHECK_BOUND( t_1, "name" )
302
if ( TNUM_OBJ(a_obj) == T_COMOBJ ) {
303
AssPRec( a_obj, RNamObj(t_1), a_val );
304
}
305
else {
306
ASS_REC( a_obj, RNamObj(t_1), a_val );
307
}
308
309
/* SetFilterObj( obj, tester ); */
310
t_1 = GF_SetFilterObj;
311
t_2 = OBJ_LVAR_1UP( 2 );
312
CHECK_BOUND( t_2, "tester" )
313
CALL_2ARGS( t_1, a_obj, t_2 );
314
315
/* return; */
316
RES_BRK_CURR_STAT();
317
SWITCH_TO_OLD_FRAME(oldFrame);
318
return 0;
319
320
/* return; */
321
RES_BRK_CURR_STAT();
322
SWITCH_TO_OLD_FRAME(oldFrame);
323
return 0;
324
}
325
326
/* handler for function 3 */
327
static Obj HdlrFunc3 (
328
Obj self,
329
Obj a_name,
330
Obj a_filter,
331
Obj a_getter,
332
Obj a_setter,
333
Obj a_tester,
334
Obj a_mutflag )
335
{
336
Obj t_1 = 0;
337
Obj t_2 = 0;
338
Obj t_3 = 0;
339
Obj t_4 = 0;
340
Obj t_5 = 0;
341
Obj t_6 = 0;
342
Obj t_7 = 0;
343
Obj t_8 = 0;
344
Bag oldFrame;
345
OLD_BRK_CURR_STAT
346
347
/* allocate new stack frame */
348
SWITCH_TO_NEW_FRAME(self,2,0,oldFrame);
349
ASS_LVAR( 1, a_name );
350
ASS_LVAR( 2, a_tester );
351
REM_BRK_CURR_STAT();
352
SET_BRK_CURR_STAT(0);
353
354
/* if mutflag then */
355
CHECK_BOOL( a_mutflag )
356
t_1 = (Obj)(UInt)(a_mutflag != False);
357
if ( t_1 ) {
358
359
/* InstallOtherMethod( setter, "system mutable setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, function ( obj, val )
360
obj!.(name) := val;
361
SetFilterObj( obj, tester );
362
return;
363
end ); */
364
t_1 = GF_InstallOtherMethod;
365
C_NEW_STRING( t_2, 21, "system mutable setter" );
366
t_3 = True;
367
t_4 = NEW_PLIST( T_PLIST, 2 );
368
SET_LEN_PLIST( t_4, 2 );
369
t_5 = GC_IsAttributeStoringRep;
370
CHECK_BOUND( t_5, "IsAttributeStoringRep" )
371
SET_ELM_PLIST( t_4, 1, t_5 );
372
CHANGED_BAG( t_4 );
373
t_5 = GC_IS__OBJECT;
374
CHECK_BOUND( t_5, "IS_OBJECT" )
375
SET_ELM_PLIST( t_4, 2, t_5 );
376
CHANGED_BAG( t_4 );
377
t_5 = NewFunction( NameFunc[4], NargFunc[4], NamsFunc[4], HdlrFunc4 );
378
ENVI_FUNC( t_5 ) = TLS(CurrLVars);
379
t_6 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
380
STARTLINE_BODY(t_6) = INTOBJ_INT(39);
381
ENDLINE_BODY(t_6) = INTOBJ_INT(42);
382
FILENAME_BODY(t_6) = FileName;
383
BODY_FUNC(t_5) = t_6;
384
CHANGED_BAG( TLS(CurrLVars) );
385
CALL_6ARGS( t_1, a_setter, t_2, t_3, t_4, INTOBJ_INT(0), t_5 );
386
387
}
388
389
/* else */
390
else {
391
392
/* InstallOtherMethod( setter, "system setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, SETTER_FUNCTION( name, tester ) ); */
393
t_1 = GF_InstallOtherMethod;
394
C_NEW_STRING( t_2, 13, "system setter" );
395
t_3 = True;
396
t_4 = NEW_PLIST( T_PLIST, 2 );
397
SET_LEN_PLIST( t_4, 2 );
398
t_5 = GC_IsAttributeStoringRep;
399
CHECK_BOUND( t_5, "IsAttributeStoringRep" )
400
SET_ELM_PLIST( t_4, 1, t_5 );
401
CHANGED_BAG( t_4 );
402
t_5 = GC_IS__OBJECT;
403
CHECK_BOUND( t_5, "IS_OBJECT" )
404
SET_ELM_PLIST( t_4, 2, t_5 );
405
CHANGED_BAG( t_4 );
406
t_6 = GF_SETTER__FUNCTION;
407
t_7 = OBJ_LVAR( 1 );
408
CHECK_BOUND( t_7, "name" )
409
t_8 = OBJ_LVAR( 2 );
410
CHECK_BOUND( t_8, "tester" )
411
t_5 = CALL_2ARGS( t_6, t_7, t_8 );
412
CHECK_FUNC_RESULT( t_5 )
413
CALL_6ARGS( t_1, a_setter, t_2, t_3, t_4, INTOBJ_INT(0), t_5 );
414
415
}
416
/* fi */
417
418
/* return; */
419
RES_BRK_CURR_STAT();
420
SWITCH_TO_OLD_FRAME(oldFrame);
421
return 0;
422
423
/* return; */
424
RES_BRK_CURR_STAT();
425
SWITCH_TO_OLD_FRAME(oldFrame);
426
return 0;
427
}
428
429
/* handler for function 5 */
430
static Obj HdlrFunc5 (
431
Obj self,
432
Obj a_typeOfFamilies,
433
Obj a_name,
434
Obj a_req__filter,
435
Obj a_imp__filter )
436
{
437
Obj l_type = 0;
438
Obj l_pair = 0;
439
Obj l_family = 0;
440
Obj t_1 = 0;
441
Obj t_2 = 0;
442
Obj t_3 = 0;
443
Obj t_4 = 0;
444
Obj t_5 = 0;
445
Obj t_6 = 0;
446
Obj t_7 = 0;
447
Obj t_8 = 0;
448
Bag oldFrame;
449
OLD_BRK_CURR_STAT
450
451
/* allocate new stack frame */
452
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
453
REM_BRK_CURR_STAT();
454
SET_BRK_CURR_STAT(0);
455
456
/* imp_filter := WITH_IMPS_FLAGS( AND_FLAGS( imp_filter, req_filter ) ); */
457
t_2 = GF_WITH__IMPS__FLAGS;
458
t_4 = GF_AND__FLAGS;
459
t_3 = CALL_2ARGS( t_4, a_imp__filter, a_req__filter );
460
CHECK_FUNC_RESULT( t_3 )
461
t_1 = CALL_1ARGS( t_2, t_3 );
462
CHECK_FUNC_RESULT( t_1 )
463
a_imp__filter = t_1;
464
465
/* type := Subtype( typeOfFamilies, IsAttributeStoringRep ); */
466
t_2 = GF_Subtype;
467
t_3 = GC_IsAttributeStoringRep;
468
CHECK_BOUND( t_3, "IsAttributeStoringRep" )
469
t_1 = CALL_2ARGS( t_2, a_typeOfFamilies, t_3 );
470
CHECK_FUNC_RESULT( t_1 )
471
l_type = t_1;
472
473
/* for pair in CATEGORIES_FAMILY do */
474
t_4 = GC_CATEGORIES__FAMILY;
475
CHECK_BOUND( t_4, "CATEGORIES_FAMILY" )
476
if ( IS_SMALL_LIST(t_4) ) {
477
t_3 = (Obj)(UInt)1;
478
t_1 = INTOBJ_INT(1);
479
}
480
else {
481
t_3 = (Obj)(UInt)0;
482
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
483
}
484
while ( 1 ) {
485
if ( t_3 ) {
486
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
487
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
488
t_1 = (Obj)(((UInt)t_1)+4);
489
if ( t_2 == 0 ) continue;
490
}
491
else {
492
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
493
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
494
}
495
l_pair = t_2;
496
497
/* if IS_SUBSET_FLAGS( imp_filter, pair[1] ) then */
498
t_7 = GF_IS__SUBSET__FLAGS;
499
C_ELM_LIST_FPL( t_8, l_pair, INTOBJ_INT(1) )
500
t_6 = CALL_2ARGS( t_7, a_imp__filter, t_8 );
501
CHECK_FUNC_RESULT( t_6 )
502
CHECK_BOOL( t_6 )
503
t_5 = (Obj)(UInt)(t_6 != False);
504
if ( t_5 ) {
505
506
/* type := Subtype( type, pair[2] ); */
507
t_6 = GF_Subtype;
508
C_ELM_LIST_FPL( t_7, l_pair, INTOBJ_INT(2) )
509
t_5 = CALL_2ARGS( t_6, l_type, t_7 );
510
CHECK_FUNC_RESULT( t_5 )
511
l_type = t_5;
512
513
}
514
/* fi */
515
516
}
517
/* od */
518
519
/* family := rec(
520
); */
521
t_1 = NEW_PREC( 0 );
522
SortPRecRNam( t_1, 0 );
523
l_family = t_1;
524
525
/* SET_TYPE_COMOBJ( family, type ); */
526
t_1 = GF_SET__TYPE__COMOBJ;
527
CALL_2ARGS( t_1, l_family, l_type );
528
529
/* family!.NAME := name; */
530
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
531
AssPRec( l_family, R_NAME, a_name );
532
}
533
else {
534
ASS_REC( l_family, R_NAME, a_name );
535
}
536
537
/* family!.REQ_FLAGS := req_filter; */
538
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
539
AssPRec( l_family, R_REQ__FLAGS, a_req__filter );
540
}
541
else {
542
ASS_REC( l_family, R_REQ__FLAGS, a_req__filter );
543
}
544
545
/* family!.IMP_FLAGS := imp_filter; */
546
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
547
AssPRec( l_family, R_IMP__FLAGS, a_imp__filter );
548
}
549
else {
550
ASS_REC( l_family, R_IMP__FLAGS, a_imp__filter );
551
}
552
553
/* family!.TYPES := [ ]; */
554
t_1 = NEW_PLIST( T_PLIST, 0 );
555
SET_LEN_PLIST( t_1, 0 );
556
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
557
AssPRec( l_family, R_TYPES, t_1 );
558
}
559
else {
560
ASS_REC( l_family, R_TYPES, t_1 );
561
}
562
563
/* family!.nTYPES := 0; */
564
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
565
AssPRec( l_family, R_nTYPES, INTOBJ_INT(0) );
566
}
567
else {
568
ASS_REC( l_family, R_nTYPES, INTOBJ_INT(0) );
569
}
570
571
/* family!.HASH_SIZE := 32; */
572
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
573
AssPRec( l_family, R_HASH__SIZE, INTOBJ_INT(32) );
574
}
575
else {
576
ASS_REC( l_family, R_HASH__SIZE, INTOBJ_INT(32) );
577
}
578
579
/* family!.TYPES_LIST_FAM := [ ]; */
580
t_1 = NEW_PLIST( T_PLIST, 0 );
581
SET_LEN_PLIST( t_1, 0 );
582
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
583
AssPRec( l_family, R_TYPES__LIST__FAM, t_1 );
584
}
585
else {
586
ASS_REC( l_family, R_TYPES__LIST__FAM, t_1 );
587
}
588
589
/* family!.TYPES_LIST_FAM[27] := 0; */
590
if ( TNUM_OBJ(l_family) == T_COMOBJ ) {
591
t_1 = ElmPRec( l_family, R_TYPES__LIST__FAM );
592
}
593
else {
594
t_1 = ELM_REC( l_family, R_TYPES__LIST__FAM );
595
}
596
C_ASS_LIST_FPL_INTOBJ( t_1, INTOBJ_INT(27), INTOBJ_INT(0) )
597
598
/* return family; */
599
RES_BRK_CURR_STAT();
600
SWITCH_TO_OLD_FRAME(oldFrame);
601
return l_family;
602
603
/* return; */
604
RES_BRK_CURR_STAT();
605
SWITCH_TO_OLD_FRAME(oldFrame);
606
return 0;
607
}
608
609
/* handler for function 6 */
610
static Obj HdlrFunc6 (
611
Obj self,
612
Obj a_typeOfFamilies,
613
Obj a_name )
614
{
615
Obj t_1 = 0;
616
Obj t_2 = 0;
617
Obj t_3 = 0;
618
Obj t_4 = 0;
619
Bag oldFrame;
620
OLD_BRK_CURR_STAT
621
622
/* allocate new stack frame */
623
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
624
REM_BRK_CURR_STAT();
625
SET_BRK_CURR_STAT(0);
626
627
/* return NEW_FAMILY( typeOfFamilies, name, EMPTY_FLAGS, EMPTY_FLAGS ); */
628
t_2 = GF_NEW__FAMILY;
629
t_3 = GC_EMPTY__FLAGS;
630
CHECK_BOUND( t_3, "EMPTY_FLAGS" )
631
t_4 = GC_EMPTY__FLAGS;
632
CHECK_BOUND( t_4, "EMPTY_FLAGS" )
633
t_1 = CALL_4ARGS( t_2, a_typeOfFamilies, a_name, t_3, t_4 );
634
CHECK_FUNC_RESULT( t_1 )
635
RES_BRK_CURR_STAT();
636
SWITCH_TO_OLD_FRAME(oldFrame);
637
return t_1;
638
639
/* return; */
640
RES_BRK_CURR_STAT();
641
SWITCH_TO_OLD_FRAME(oldFrame);
642
return 0;
643
}
644
645
/* handler for function 7 */
646
static Obj HdlrFunc7 (
647
Obj self,
648
Obj a_typeOfFamilies,
649
Obj a_name,
650
Obj a_req )
651
{
652
Obj t_1 = 0;
653
Obj t_2 = 0;
654
Obj t_3 = 0;
655
Obj t_4 = 0;
656
Bag oldFrame;
657
OLD_BRK_CURR_STAT
658
659
/* allocate new stack frame */
660
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
661
REM_BRK_CURR_STAT();
662
SET_BRK_CURR_STAT(0);
663
664
/* return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), EMPTY_FLAGS ); */
665
t_2 = GF_NEW__FAMILY;
666
t_4 = GF_FLAGS__FILTER;
667
t_3 = CALL_1ARGS( t_4, a_req );
668
CHECK_FUNC_RESULT( t_3 )
669
t_4 = GC_EMPTY__FLAGS;
670
CHECK_BOUND( t_4, "EMPTY_FLAGS" )
671
t_1 = CALL_4ARGS( t_2, a_typeOfFamilies, a_name, t_3, t_4 );
672
CHECK_FUNC_RESULT( t_1 )
673
RES_BRK_CURR_STAT();
674
SWITCH_TO_OLD_FRAME(oldFrame);
675
return t_1;
676
677
/* return; */
678
RES_BRK_CURR_STAT();
679
SWITCH_TO_OLD_FRAME(oldFrame);
680
return 0;
681
}
682
683
/* handler for function 8 */
684
static Obj HdlrFunc8 (
685
Obj self,
686
Obj a_typeOfFamilies,
687
Obj a_name,
688
Obj a_req,
689
Obj a_imp )
690
{
691
Obj t_1 = 0;
692
Obj t_2 = 0;
693
Obj t_3 = 0;
694
Obj t_4 = 0;
695
Obj t_5 = 0;
696
Bag oldFrame;
697
OLD_BRK_CURR_STAT
698
699
/* allocate new stack frame */
700
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
701
REM_BRK_CURR_STAT();
702
SET_BRK_CURR_STAT(0);
703
704
/* return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) ); */
705
t_2 = GF_NEW__FAMILY;
706
t_4 = GF_FLAGS__FILTER;
707
t_3 = CALL_1ARGS( t_4, a_req );
708
CHECK_FUNC_RESULT( t_3 )
709
t_5 = GF_FLAGS__FILTER;
710
t_4 = CALL_1ARGS( t_5, a_imp );
711
CHECK_FUNC_RESULT( t_4 )
712
t_1 = CALL_4ARGS( t_2, a_typeOfFamilies, a_name, t_3, t_4 );
713
CHECK_FUNC_RESULT( t_1 )
714
RES_BRK_CURR_STAT();
715
SWITCH_TO_OLD_FRAME(oldFrame);
716
return t_1;
717
718
/* return; */
719
RES_BRK_CURR_STAT();
720
SWITCH_TO_OLD_FRAME(oldFrame);
721
return 0;
722
}
723
724
/* handler for function 9 */
725
static Obj HdlrFunc9 (
726
Obj self,
727
Obj a_typeOfFamilies,
728
Obj a_name,
729
Obj a_req,
730
Obj a_imp,
731
Obj a_filter )
732
{
733
Obj t_1 = 0;
734
Obj t_2 = 0;
735
Obj t_3 = 0;
736
Obj t_4 = 0;
737
Obj t_5 = 0;
738
Obj t_6 = 0;
739
Bag oldFrame;
740
OLD_BRK_CURR_STAT
741
742
/* allocate new stack frame */
743
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
744
REM_BRK_CURR_STAT();
745
SET_BRK_CURR_STAT(0);
746
747
/* return NEW_FAMILY( Subtype( typeOfFamilies, filter ), name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) ); */
748
t_2 = GF_NEW__FAMILY;
749
t_4 = GF_Subtype;
750
t_3 = CALL_2ARGS( t_4, a_typeOfFamilies, a_filter );
751
CHECK_FUNC_RESULT( t_3 )
752
t_5 = GF_FLAGS__FILTER;
753
t_4 = CALL_1ARGS( t_5, a_req );
754
CHECK_FUNC_RESULT( t_4 )
755
t_6 = GF_FLAGS__FILTER;
756
t_5 = CALL_1ARGS( t_6, a_imp );
757
CHECK_FUNC_RESULT( t_5 )
758
t_1 = CALL_4ARGS( t_2, t_3, a_name, t_4, t_5 );
759
CHECK_FUNC_RESULT( t_1 )
760
RES_BRK_CURR_STAT();
761
SWITCH_TO_OLD_FRAME(oldFrame);
762
return t_1;
763
764
/* return; */
765
RES_BRK_CURR_STAT();
766
SWITCH_TO_OLD_FRAME(oldFrame);
767
return 0;
768
}
769
770
/* handler for function 10 */
771
static Obj HdlrFunc10 (
772
Obj self,
773
Obj a_arg )
774
{
775
Obj t_1 = 0;
776
Obj t_2 = 0;
777
Obj t_3 = 0;
778
Obj t_4 = 0;
779
Obj t_5 = 0;
780
Obj t_6 = 0;
781
Obj t_7 = 0;
782
Bag oldFrame;
783
OLD_BRK_CURR_STAT
784
785
/* allocate new stack frame */
786
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
787
REM_BRK_CURR_STAT();
788
SET_BRK_CURR_STAT(0);
789
790
/* if LEN_LIST( arg ) = 1 then */
791
t_3 = GF_LEN__LIST;
792
t_2 = CALL_1ARGS( t_3, a_arg );
793
CHECK_FUNC_RESULT( t_2 )
794
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(1) ));
795
if ( t_1 ) {
796
797
/* return NewFamily2( TypeOfFamilies, arg[1] ); */
798
t_2 = GF_NewFamily2;
799
t_3 = GC_TypeOfFamilies;
800
CHECK_BOUND( t_3, "TypeOfFamilies" )
801
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
802
t_1 = CALL_2ARGS( t_2, t_3, t_4 );
803
CHECK_FUNC_RESULT( t_1 )
804
RES_BRK_CURR_STAT();
805
SWITCH_TO_OLD_FRAME(oldFrame);
806
return t_1;
807
808
}
809
810
/* elif LEN_LIST( arg ) = 2 then */
811
else {
812
t_3 = GF_LEN__LIST;
813
t_2 = CALL_1ARGS( t_3, a_arg );
814
CHECK_FUNC_RESULT( t_2 )
815
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));
816
if ( t_1 ) {
817
818
/* return NewFamily3( TypeOfFamilies, arg[1], arg[2] ); */
819
t_2 = GF_NewFamily3;
820
t_3 = GC_TypeOfFamilies;
821
CHECK_BOUND( t_3, "TypeOfFamilies" )
822
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
823
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )
824
t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );
825
CHECK_FUNC_RESULT( t_1 )
826
RES_BRK_CURR_STAT();
827
SWITCH_TO_OLD_FRAME(oldFrame);
828
return t_1;
829
830
}
831
832
/* elif LEN_LIST( arg ) = 3 then */
833
else {
834
t_3 = GF_LEN__LIST;
835
t_2 = CALL_1ARGS( t_3, a_arg );
836
CHECK_FUNC_RESULT( t_2 )
837
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(3) ));
838
if ( t_1 ) {
839
840
/* return NewFamily4( TypeOfFamilies, arg[1], arg[2], arg[3] ); */
841
t_2 = GF_NewFamily4;
842
t_3 = GC_TypeOfFamilies;
843
CHECK_BOUND( t_3, "TypeOfFamilies" )
844
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
845
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )
846
C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )
847
t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );
848
CHECK_FUNC_RESULT( t_1 )
849
RES_BRK_CURR_STAT();
850
SWITCH_TO_OLD_FRAME(oldFrame);
851
return t_1;
852
853
}
854
855
/* elif LEN_LIST( arg ) = 4 then */
856
else {
857
t_3 = GF_LEN__LIST;
858
t_2 = CALL_1ARGS( t_3, a_arg );
859
CHECK_FUNC_RESULT( t_2 )
860
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(4) ));
861
if ( t_1 ) {
862
863
/* return NewFamily5( TypeOfFamilies, arg[1], arg[2], arg[3], arg[4] ); */
864
t_2 = GF_NewFamily5;
865
t_3 = GC_TypeOfFamilies;
866
CHECK_BOUND( t_3, "TypeOfFamilies" )
867
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
868
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )
869
C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )
870
C_ELM_LIST_FPL( t_7, a_arg, INTOBJ_INT(4) )
871
t_1 = CALL_5ARGS( t_2, t_3, t_4, t_5, t_6, t_7 );
872
CHECK_FUNC_RESULT( t_1 )
873
RES_BRK_CURR_STAT();
874
SWITCH_TO_OLD_FRAME(oldFrame);
875
return t_1;
876
877
}
878
879
/* else */
880
else {
881
882
/* Error( "usage: NewFamily( <name>, [ <req> [, <imp> ]] )" ); */
883
t_1 = GF_Error;
884
C_NEW_STRING( t_2, 47, "usage: NewFamily( <name>, [ <req> [, <imp> ]] )" );
885
CALL_1ARGS( t_1, t_2 );
886
887
}
888
}
889
}
890
}
891
/* fi */
892
893
/* return; */
894
RES_BRK_CURR_STAT();
895
SWITCH_TO_OLD_FRAME(oldFrame);
896
return 0;
897
898
/* return; */
899
RES_BRK_CURR_STAT();
900
SWITCH_TO_OLD_FRAME(oldFrame);
901
return 0;
902
}
903
904
/* handler for function 11 */
905
static Obj HdlrFunc11 (
906
Obj self,
907
Obj a_typeOfTypes,
908
Obj a_family,
909
Obj a_flags,
910
Obj a_data )
911
{
912
Obj l_hash = 0;
913
Obj l_cache = 0;
914
Obj l_cached = 0;
915
Obj l_type = 0;
916
Obj l_ncache = 0;
917
Obj l_ncl = 0;
918
Obj l_t = 0;
919
Obj t_1 = 0;
920
Obj t_2 = 0;
921
Obj t_3 = 0;
922
Obj t_4 = 0;
923
Obj t_5 = 0;
924
Obj t_6 = 0;
925
Obj t_7 = 0;
926
Obj t_8 = 0;
927
Obj t_9 = 0;
928
Bag oldFrame;
929
OLD_BRK_CURR_STAT
930
931
/* allocate new stack frame */
932
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
933
REM_BRK_CURR_STAT();
934
SET_BRK_CURR_STAT(0);
935
936
/* cache := family!.TYPES; */
937
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
938
t_1 = ElmPRec( a_family, R_TYPES );
939
}
940
else {
941
t_1 = ELM_REC( a_family, R_TYPES );
942
}
943
l_cache = t_1;
944
945
/* hash := HASH_FLAGS( flags ) mod family!.HASH_SIZE + 1; */
946
t_4 = GF_HASH__FLAGS;
947
t_3 = CALL_1ARGS( t_4, a_flags );
948
CHECK_FUNC_RESULT( t_3 )
949
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
950
t_4 = ElmPRec( a_family, R_HASH__SIZE );
951
}
952
else {
953
t_4 = ELM_REC( a_family, R_HASH__SIZE );
954
}
955
t_2 = MOD( t_3, t_4 );
956
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
957
l_hash = t_1;
958
959
/* if IsBound( cache[hash] ) then */
960
CHECK_INT_POS( l_hash )
961
t_2 = C_ISB_LIST( l_cache, l_hash );
962
t_1 = (Obj)(UInt)(t_2 != False);
963
if ( t_1 ) {
964
965
/* cached := cache[hash]; */
966
C_ELM_LIST_FPL( t_1, l_cache, l_hash )
967
l_cached = t_1;
968
969
/* if IS_EQUAL_FLAGS( flags, cached![2] ) then */
970
t_3 = GF_IS__EQUAL__FLAGS;
971
C_ELM_POSOBJ_NLE( t_4, l_cached, 2 );
972
t_2 = CALL_2ARGS( t_3, a_flags, t_4 );
973
CHECK_FUNC_RESULT( t_2 )
974
CHECK_BOOL( t_2 )
975
t_1 = (Obj)(UInt)(t_2 != False);
976
if ( t_1 ) {
977
978
/* if IS_IDENTICAL_OBJ( data, cached![POS_DATA_TYPE] ) and IS_IDENTICAL_OBJ( typeOfTypes, TYPE_OBJ( cached ) ) then */
979
t_4 = GF_IS__IDENTICAL__OBJ;
980
t_6 = GC_POS__DATA__TYPE;
981
CHECK_BOUND( t_6, "POS_DATA_TYPE" )
982
CHECK_INT_SMALL_POS( t_6 )
983
C_ELM_POSOBJ_NLE( t_5, l_cached, INT_INTOBJ(t_6) );
984
t_3 = CALL_2ARGS( t_4, a_data, t_5 );
985
CHECK_FUNC_RESULT( t_3 )
986
CHECK_BOOL( t_3 )
987
t_2 = (Obj)(UInt)(t_3 != False);
988
t_1 = t_2;
989
if ( t_1 ) {
990
t_5 = GF_IS__IDENTICAL__OBJ;
991
t_7 = GF_TYPE__OBJ;
992
t_6 = CALL_1ARGS( t_7, l_cached );
993
CHECK_FUNC_RESULT( t_6 )
994
t_4 = CALL_2ARGS( t_5, a_typeOfTypes, t_6 );
995
CHECK_FUNC_RESULT( t_4 )
996
CHECK_BOOL( t_4 )
997
t_3 = (Obj)(UInt)(t_4 != False);
998
t_1 = t_3;
999
}
1000
if ( t_1 ) {
1001
1002
/* NEW_TYPE_CACHE_HIT := NEW_TYPE_CACHE_HIT + 1; */
1003
t_2 = GC_NEW__TYPE__CACHE__HIT;
1004
CHECK_BOUND( t_2, "NEW_TYPE_CACHE_HIT" )
1005
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
1006
AssGVar( G_NEW__TYPE__CACHE__HIT, t_1 );
1007
1008
/* return cached; */
1009
RES_BRK_CURR_STAT();
1010
SWITCH_TO_OLD_FRAME(oldFrame);
1011
return l_cached;
1012
1013
}
1014
1015
/* else */
1016
else {
1017
1018
/* flags := cached![2]; */
1019
C_ELM_POSOBJ_NLE( t_1, l_cached, 2 );
1020
a_flags = t_1;
1021
1022
}
1023
/* fi */
1024
1025
}
1026
/* fi */
1027
1028
/* NEW_TYPE_CACHE_MISS := NEW_TYPE_CACHE_MISS + 1; */
1029
t_2 = GC_NEW__TYPE__CACHE__MISS;
1030
CHECK_BOUND( t_2, "NEW_TYPE_CACHE_MISS" )
1031
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
1032
AssGVar( G_NEW__TYPE__CACHE__MISS, t_1 );
1033
1034
}
1035
/* fi */
1036
1037
/* NEW_TYPE_NEXT_ID := NEW_TYPE_NEXT_ID + 1; */
1038
t_2 = GC_NEW__TYPE__NEXT__ID;
1039
CHECK_BOUND( t_2, "NEW_TYPE_NEXT_ID" )
1040
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
1041
AssGVar( G_NEW__TYPE__NEXT__ID, t_1 );
1042
1043
/* if NEW_TYPE_NEXT_ID >= NEW_TYPE_ID_LIMIT then */
1044
t_2 = GC_NEW__TYPE__NEXT__ID;
1045
CHECK_BOUND( t_2, "NEW_TYPE_NEXT_ID" )
1046
t_3 = GC_NEW__TYPE__ID__LIMIT;
1047
CHECK_BOUND( t_3, "NEW_TYPE_ID_LIMIT" )
1048
t_1 = (Obj)(UInt)(! LT( t_2, t_3 ));
1049
if ( t_1 ) {
1050
1051
/* GASMAN( "collect" ); */
1052
t_1 = GF_GASMAN;
1053
C_NEW_STRING( t_2, 7, "collect" );
1054
CALL_1ARGS( t_1, t_2 );
1055
1056
/* FLUSH_ALL_METHOD_CACHES( ); */
1057
t_1 = GF_FLUSH__ALL__METHOD__CACHES;
1058
CALL_0ARGS( t_1 );
1059
1060
/* NEW_TYPE_NEXT_ID := COMPACT_TYPE_IDS( ); */
1061
t_2 = GF_COMPACT__TYPE__IDS;
1062
t_1 = CALL_0ARGS( t_2 );
1063
CHECK_FUNC_RESULT( t_1 )
1064
AssGVar( G_NEW__TYPE__NEXT__ID, t_1 );
1065
1066
}
1067
/* fi */
1068
1069
/* type := [ family, flags ]; */
1070
t_1 = NEW_PLIST( T_PLIST, 2 );
1071
SET_LEN_PLIST( t_1, 2 );
1072
SET_ELM_PLIST( t_1, 1, a_family );
1073
CHANGED_BAG( t_1 );
1074
SET_ELM_PLIST( t_1, 2, a_flags );
1075
CHANGED_BAG( t_1 );
1076
l_type = t_1;
1077
1078
/* type[POS_DATA_TYPE] := data; */
1079
t_1 = GC_POS__DATA__TYPE;
1080
CHECK_BOUND( t_1, "POS_DATA_TYPE" )
1081
CHECK_INT_POS( t_1 )
1082
C_ASS_LIST_FPL( l_type, t_1, a_data )
1083
1084
/* type[POS_NUMB_TYPE] := NEW_TYPE_NEXT_ID; */
1085
t_1 = GC_POS__NUMB__TYPE;
1086
CHECK_BOUND( t_1, "POS_NUMB_TYPE" )
1087
CHECK_INT_POS( t_1 )
1088
t_2 = GC_NEW__TYPE__NEXT__ID;
1089
CHECK_BOUND( t_2, "NEW_TYPE_NEXT_ID" )
1090
C_ASS_LIST_FPL( l_type, t_1, t_2 )
1091
1092
/* SET_TYPE_POSOBJ( type, typeOfTypes ); */
1093
t_1 = GF_SET__TYPE__POSOBJ;
1094
CALL_2ARGS( t_1, l_type, a_typeOfTypes );
1095
1096
/* if 3 * family!.nTYPES > family!.HASH_SIZE then */
1097
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1098
t_3 = ElmPRec( a_family, R_nTYPES );
1099
}
1100
else {
1101
t_3 = ELM_REC( a_family, R_nTYPES );
1102
}
1103
C_PROD_FIA( t_2, INTOBJ_INT(3), t_3 )
1104
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1105
t_3 = ElmPRec( a_family, R_HASH__SIZE );
1106
}
1107
else {
1108
t_3 = ELM_REC( a_family, R_HASH__SIZE );
1109
}
1110
t_1 = (Obj)(UInt)(LT( t_3, t_2 ));
1111
if ( t_1 ) {
1112
1113
/* ncache := [ ]; */
1114
t_1 = NEW_PLIST( T_PLIST, 0 );
1115
SET_LEN_PLIST( t_1, 0 );
1116
l_ncache = t_1;
1117
1118
/* ncl := 3 * family!.HASH_SIZE + 1; */
1119
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1120
t_3 = ElmPRec( a_family, R_HASH__SIZE );
1121
}
1122
else {
1123
t_3 = ELM_REC( a_family, R_HASH__SIZE );
1124
}
1125
C_PROD_FIA( t_2, INTOBJ_INT(3), t_3 )
1126
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
1127
l_ncl = t_1;
1128
1129
/* for t in cache do */
1130
t_4 = l_cache;
1131
if ( IS_SMALL_LIST(t_4) ) {
1132
t_3 = (Obj)(UInt)1;
1133
t_1 = INTOBJ_INT(1);
1134
}
1135
else {
1136
t_3 = (Obj)(UInt)0;
1137
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
1138
}
1139
while ( 1 ) {
1140
if ( t_3 ) {
1141
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
1142
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
1143
t_1 = (Obj)(((UInt)t_1)+4);
1144
if ( t_2 == 0 ) continue;
1145
}
1146
else {
1147
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
1148
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
1149
}
1150
l_t = t_2;
1151
1152
/* ncache[HASH_FLAGS( t![2] ) mod ncl + 1] := t; */
1153
t_8 = GF_HASH__FLAGS;
1154
C_ELM_POSOBJ_NLE( t_9, l_t, 2 );
1155
t_7 = CALL_1ARGS( t_8, t_9 );
1156
CHECK_FUNC_RESULT( t_7 )
1157
t_6 = MOD( t_7, l_ncl );
1158
C_SUM_FIA( t_5, t_6, INTOBJ_INT(1) )
1159
CHECK_INT_POS( t_5 )
1160
C_ASS_LIST_FPL( l_ncache, t_5, l_t )
1161
1162
}
1163
/* od */
1164
1165
/* family!.HASH_SIZE := ncl; */
1166
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1167
AssPRec( a_family, R_HASH__SIZE, l_ncl );
1168
}
1169
else {
1170
ASS_REC( a_family, R_HASH__SIZE, l_ncl );
1171
}
1172
1173
/* family!.TYPES := ncache; */
1174
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1175
AssPRec( a_family, R_TYPES, l_ncache );
1176
}
1177
else {
1178
ASS_REC( a_family, R_TYPES, l_ncache );
1179
}
1180
1181
/* ncache[HASH_FLAGS( flags ) mod ncl + 1] := type; */
1182
t_4 = GF_HASH__FLAGS;
1183
t_3 = CALL_1ARGS( t_4, a_flags );
1184
CHECK_FUNC_RESULT( t_3 )
1185
t_2 = MOD( t_3, l_ncl );
1186
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
1187
CHECK_INT_POS( t_1 )
1188
C_ASS_LIST_FPL( l_ncache, t_1, l_type )
1189
1190
}
1191
1192
/* else */
1193
else {
1194
1195
/* cache[hash] := type; */
1196
C_ASS_LIST_FPL( l_cache, l_hash, l_type )
1197
1198
}
1199
/* fi */
1200
1201
/* family!.nTYPES := family!.nTYPES + 1; */
1202
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1203
t_2 = ElmPRec( a_family, R_nTYPES );
1204
}
1205
else {
1206
t_2 = ELM_REC( a_family, R_nTYPES );
1207
}
1208
C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) )
1209
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1210
AssPRec( a_family, R_nTYPES, t_1 );
1211
}
1212
else {
1213
ASS_REC( a_family, R_nTYPES, t_1 );
1214
}
1215
1216
/* return type; */
1217
RES_BRK_CURR_STAT();
1218
SWITCH_TO_OLD_FRAME(oldFrame);
1219
return l_type;
1220
1221
/* return; */
1222
RES_BRK_CURR_STAT();
1223
SWITCH_TO_OLD_FRAME(oldFrame);
1224
return 0;
1225
}
1226
1227
/* handler for function 12 */
1228
static Obj HdlrFunc12 (
1229
Obj self,
1230
Obj a_typeOfTypes,
1231
Obj a_family )
1232
{
1233
Obj t_1 = 0;
1234
Obj t_2 = 0;
1235
Obj t_3 = 0;
1236
Obj t_4 = 0;
1237
Bag oldFrame;
1238
OLD_BRK_CURR_STAT
1239
1240
/* allocate new stack frame */
1241
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1242
REM_BRK_CURR_STAT();
1243
SET_BRK_CURR_STAT(0);
1244
1245
/* return NEW_TYPE( typeOfTypes, family, family!.IMP_FLAGS, false ); */
1246
t_2 = GF_NEW__TYPE;
1247
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1248
t_3 = ElmPRec( a_family, R_IMP__FLAGS );
1249
}
1250
else {
1251
t_3 = ELM_REC( a_family, R_IMP__FLAGS );
1252
}
1253
t_4 = False;
1254
t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, t_4 );
1255
CHECK_FUNC_RESULT( t_1 )
1256
RES_BRK_CURR_STAT();
1257
SWITCH_TO_OLD_FRAME(oldFrame);
1258
return t_1;
1259
1260
/* return; */
1261
RES_BRK_CURR_STAT();
1262
SWITCH_TO_OLD_FRAME(oldFrame);
1263
return 0;
1264
}
1265
1266
/* handler for function 13 */
1267
static Obj HdlrFunc13 (
1268
Obj self,
1269
Obj a_typeOfTypes,
1270
Obj a_family,
1271
Obj a_filter )
1272
{
1273
Obj t_1 = 0;
1274
Obj t_2 = 0;
1275
Obj t_3 = 0;
1276
Obj t_4 = 0;
1277
Obj t_5 = 0;
1278
Obj t_6 = 0;
1279
Obj t_7 = 0;
1280
Obj t_8 = 0;
1281
Obj t_9 = 0;
1282
Bag oldFrame;
1283
OLD_BRK_CURR_STAT
1284
1285
/* allocate new stack frame */
1286
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1287
REM_BRK_CURR_STAT();
1288
SET_BRK_CURR_STAT(0);
1289
1290
/* return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), false ); */
1291
t_2 = GF_NEW__TYPE;
1292
t_4 = GF_WITH__IMPS__FLAGS;
1293
t_6 = GF_AND__FLAGS;
1294
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1295
t_7 = ElmPRec( a_family, R_IMP__FLAGS );
1296
}
1297
else {
1298
t_7 = ELM_REC( a_family, R_IMP__FLAGS );
1299
}
1300
t_9 = GF_FLAGS__FILTER;
1301
t_8 = CALL_1ARGS( t_9, a_filter );
1302
CHECK_FUNC_RESULT( t_8 )
1303
t_5 = CALL_2ARGS( t_6, t_7, t_8 );
1304
CHECK_FUNC_RESULT( t_5 )
1305
t_3 = CALL_1ARGS( t_4, t_5 );
1306
CHECK_FUNC_RESULT( t_3 )
1307
t_4 = False;
1308
t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, t_4 );
1309
CHECK_FUNC_RESULT( t_1 )
1310
RES_BRK_CURR_STAT();
1311
SWITCH_TO_OLD_FRAME(oldFrame);
1312
return t_1;
1313
1314
/* return; */
1315
RES_BRK_CURR_STAT();
1316
SWITCH_TO_OLD_FRAME(oldFrame);
1317
return 0;
1318
}
1319
1320
/* handler for function 14 */
1321
static Obj HdlrFunc14 (
1322
Obj self,
1323
Obj a_typeOfTypes,
1324
Obj a_family,
1325
Obj a_filter,
1326
Obj a_data )
1327
{
1328
Obj t_1 = 0;
1329
Obj t_2 = 0;
1330
Obj t_3 = 0;
1331
Obj t_4 = 0;
1332
Obj t_5 = 0;
1333
Obj t_6 = 0;
1334
Obj t_7 = 0;
1335
Obj t_8 = 0;
1336
Obj t_9 = 0;
1337
Bag oldFrame;
1338
OLD_BRK_CURR_STAT
1339
1340
/* allocate new stack frame */
1341
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1342
REM_BRK_CURR_STAT();
1343
SET_BRK_CURR_STAT(0);
1344
1345
/* return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data ); */
1346
t_2 = GF_NEW__TYPE;
1347
t_4 = GF_WITH__IMPS__FLAGS;
1348
t_6 = GF_AND__FLAGS;
1349
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1350
t_7 = ElmPRec( a_family, R_IMP__FLAGS );
1351
}
1352
else {
1353
t_7 = ELM_REC( a_family, R_IMP__FLAGS );
1354
}
1355
t_9 = GF_FLAGS__FILTER;
1356
t_8 = CALL_1ARGS( t_9, a_filter );
1357
CHECK_FUNC_RESULT( t_8 )
1358
t_5 = CALL_2ARGS( t_6, t_7, t_8 );
1359
CHECK_FUNC_RESULT( t_5 )
1360
t_3 = CALL_1ARGS( t_4, t_5 );
1361
CHECK_FUNC_RESULT( t_3 )
1362
t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, a_data );
1363
CHECK_FUNC_RESULT( t_1 )
1364
RES_BRK_CURR_STAT();
1365
SWITCH_TO_OLD_FRAME(oldFrame);
1366
return t_1;
1367
1368
/* return; */
1369
RES_BRK_CURR_STAT();
1370
SWITCH_TO_OLD_FRAME(oldFrame);
1371
return 0;
1372
}
1373
1374
/* handler for function 15 */
1375
static Obj HdlrFunc15 (
1376
Obj self,
1377
Obj a_typeOfTypes,
1378
Obj a_family,
1379
Obj a_filter,
1380
Obj a_data,
1381
Obj a_stuff )
1382
{
1383
Obj l_type = 0;
1384
Obj t_1 = 0;
1385
Obj t_2 = 0;
1386
Obj t_3 = 0;
1387
Obj t_4 = 0;
1388
Obj t_5 = 0;
1389
Obj t_6 = 0;
1390
Obj t_7 = 0;
1391
Obj t_8 = 0;
1392
Obj t_9 = 0;
1393
Bag oldFrame;
1394
OLD_BRK_CURR_STAT
1395
1396
/* allocate new stack frame */
1397
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1398
REM_BRK_CURR_STAT();
1399
SET_BRK_CURR_STAT(0);
1400
1401
/* type := NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data ); */
1402
t_2 = GF_NEW__TYPE;
1403
t_4 = GF_WITH__IMPS__FLAGS;
1404
t_6 = GF_AND__FLAGS;
1405
if ( TNUM_OBJ(a_family) == T_COMOBJ ) {
1406
t_7 = ElmPRec( a_family, R_IMP__FLAGS );
1407
}
1408
else {
1409
t_7 = ELM_REC( a_family, R_IMP__FLAGS );
1410
}
1411
t_9 = GF_FLAGS__FILTER;
1412
t_8 = CALL_1ARGS( t_9, a_filter );
1413
CHECK_FUNC_RESULT( t_8 )
1414
t_5 = CALL_2ARGS( t_6, t_7, t_8 );
1415
CHECK_FUNC_RESULT( t_5 )
1416
t_3 = CALL_1ARGS( t_4, t_5 );
1417
CHECK_FUNC_RESULT( t_3 )
1418
t_1 = CALL_4ARGS( t_2, a_typeOfTypes, a_family, t_3, a_data );
1419
CHECK_FUNC_RESULT( t_1 )
1420
l_type = t_1;
1421
1422
/* type![POS_FIRST_FREE_TYPE] := stuff; */
1423
t_1 = GC_POS__FIRST__FREE__TYPE;
1424
CHECK_BOUND( t_1, "POS_FIRST_FREE_TYPE" )
1425
CHECK_INT_SMALL_POS( t_1 )
1426
C_ASS_POSOBJ( l_type, INT_INTOBJ(t_1), a_stuff )
1427
1428
/* return type; */
1429
RES_BRK_CURR_STAT();
1430
SWITCH_TO_OLD_FRAME(oldFrame);
1431
return l_type;
1432
1433
/* return; */
1434
RES_BRK_CURR_STAT();
1435
SWITCH_TO_OLD_FRAME(oldFrame);
1436
return 0;
1437
}
1438
1439
/* handler for function 16 */
1440
static Obj HdlrFunc16 (
1441
Obj self,
1442
Obj a_arg )
1443
{
1444
Obj l_type = 0;
1445
Obj t_1 = 0;
1446
Obj t_2 = 0;
1447
Obj t_3 = 0;
1448
Obj t_4 = 0;
1449
Obj t_5 = 0;
1450
Obj t_6 = 0;
1451
Obj t_7 = 0;
1452
Bag oldFrame;
1453
OLD_BRK_CURR_STAT
1454
1455
/* allocate new stack frame */
1456
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1457
REM_BRK_CURR_STAT();
1458
SET_BRK_CURR_STAT(0);
1459
1460
/* if not IsFamily( arg[1] ) then */
1461
t_4 = GF_IsFamily;
1462
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(1) )
1463
t_3 = CALL_1ARGS( t_4, t_5 );
1464
CHECK_FUNC_RESULT( t_3 )
1465
CHECK_BOOL( t_3 )
1466
t_2 = (Obj)(UInt)(t_3 != False);
1467
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
1468
if ( t_1 ) {
1469
1470
/* Error( "<family> must be a family" ); */
1471
t_1 = GF_Error;
1472
C_NEW_STRING( t_2, 25, "<family> must be a family" );
1473
CALL_1ARGS( t_1, t_2 );
1474
1475
}
1476
/* fi */
1477
1478
/* if LEN_LIST( arg ) = 1 then */
1479
t_3 = GF_LEN__LIST;
1480
t_2 = CALL_1ARGS( t_3, a_arg );
1481
CHECK_FUNC_RESULT( t_2 )
1482
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(1) ));
1483
if ( t_1 ) {
1484
1485
/* type := NewType2( TypeOfTypes, arg[1] ); */
1486
t_2 = GF_NewType2;
1487
t_3 = GC_TypeOfTypes;
1488
CHECK_BOUND( t_3, "TypeOfTypes" )
1489
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
1490
t_1 = CALL_2ARGS( t_2, t_3, t_4 );
1491
CHECK_FUNC_RESULT( t_1 )
1492
l_type = t_1;
1493
1494
}
1495
1496
/* elif LEN_LIST( arg ) = 2 then */
1497
else {
1498
t_3 = GF_LEN__LIST;
1499
t_2 = CALL_1ARGS( t_3, a_arg );
1500
CHECK_FUNC_RESULT( t_2 )
1501
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));
1502
if ( t_1 ) {
1503
1504
/* type := NewType3( TypeOfTypes, arg[1], arg[2] ); */
1505
t_2 = GF_NewType3;
1506
t_3 = GC_TypeOfTypes;
1507
CHECK_BOUND( t_3, "TypeOfTypes" )
1508
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
1509
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )
1510
t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );
1511
CHECK_FUNC_RESULT( t_1 )
1512
l_type = t_1;
1513
1514
}
1515
1516
/* elif LEN_LIST( arg ) = 3 then */
1517
else {
1518
t_3 = GF_LEN__LIST;
1519
t_2 = CALL_1ARGS( t_3, a_arg );
1520
CHECK_FUNC_RESULT( t_2 )
1521
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(3) ));
1522
if ( t_1 ) {
1523
1524
/* type := NewType4( TypeOfTypes, arg[1], arg[2], arg[3] ); */
1525
t_2 = GF_NewType4;
1526
t_3 = GC_TypeOfTypes;
1527
CHECK_BOUND( t_3, "TypeOfTypes" )
1528
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
1529
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )
1530
C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )
1531
t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );
1532
CHECK_FUNC_RESULT( t_1 )
1533
l_type = t_1;
1534
1535
}
1536
1537
/* elif LEN_LIST( arg ) = 4 then */
1538
else {
1539
t_3 = GF_LEN__LIST;
1540
t_2 = CALL_1ARGS( t_3, a_arg );
1541
CHECK_FUNC_RESULT( t_2 )
1542
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(4) ));
1543
if ( t_1 ) {
1544
1545
/* type := NewType5( TypeOfTypes, arg[1], arg[2], arg[3], arg[4] ); */
1546
t_2 = GF_NewType5;
1547
t_3 = GC_TypeOfTypes;
1548
CHECK_BOUND( t_3, "TypeOfTypes" )
1549
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(1) )
1550
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(2) )
1551
C_ELM_LIST_FPL( t_6, a_arg, INTOBJ_INT(3) )
1552
C_ELM_LIST_FPL( t_7, a_arg, INTOBJ_INT(4) )
1553
t_1 = CALL_5ARGS( t_2, t_3, t_4, t_5, t_6, t_7 );
1554
CHECK_FUNC_RESULT( t_1 )
1555
l_type = t_1;
1556
1557
}
1558
1559
/* else */
1560
else {
1561
1562
/* Error( "usage: NewType( <family> [, <filter> [, <data> ]] )" ); */
1563
t_1 = GF_Error;
1564
C_NEW_STRING( t_2, 51, "usage: NewType( <family> [, <filter> [, <data> ]] )" );
1565
CALL_1ARGS( t_1, t_2 );
1566
1567
}
1568
}
1569
}
1570
}
1571
/* fi */
1572
1573
/* return type; */
1574
CHECK_BOUND( l_type, "type" )
1575
RES_BRK_CURR_STAT();
1576
SWITCH_TO_OLD_FRAME(oldFrame);
1577
return l_type;
1578
1579
/* return; */
1580
RES_BRK_CURR_STAT();
1581
SWITCH_TO_OLD_FRAME(oldFrame);
1582
return 0;
1583
}
1584
1585
/* handler for function 17 */
1586
static Obj HdlrFunc17 (
1587
Obj self,
1588
Obj a_type,
1589
Obj a_filter )
1590
{
1591
Obj l_new = 0;
1592
Obj l_i = 0;
1593
Obj t_1 = 0;
1594
Obj t_2 = 0;
1595
Obj t_3 = 0;
1596
Obj t_4 = 0;
1597
Obj t_5 = 0;
1598
Obj t_6 = 0;
1599
Obj t_7 = 0;
1600
Obj t_8 = 0;
1601
Obj t_9 = 0;
1602
Obj t_10 = 0;
1603
Obj t_11 = 0;
1604
Bag oldFrame;
1605
OLD_BRK_CURR_STAT
1606
1607
/* allocate new stack frame */
1608
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1609
REM_BRK_CURR_STAT();
1610
SET_BRK_CURR_STAT(0);
1611
1612
/* new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), type![POS_DATA_TYPE] ); */
1613
t_2 = GF_NEW__TYPE;
1614
t_3 = GC_TypeOfTypes;
1615
CHECK_BOUND( t_3, "TypeOfTypes" )
1616
C_ELM_POSOBJ_NLE( t_4, a_type, 1 );
1617
t_6 = GF_WITH__IMPS__FLAGS;
1618
t_8 = GF_AND__FLAGS;
1619
C_ELM_POSOBJ_NLE( t_9, a_type, 2 );
1620
t_11 = GF_FLAGS__FILTER;
1621
t_10 = CALL_1ARGS( t_11, a_filter );
1622
CHECK_FUNC_RESULT( t_10 )
1623
t_7 = CALL_2ARGS( t_8, t_9, t_10 );
1624
CHECK_FUNC_RESULT( t_7 )
1625
t_5 = CALL_1ARGS( t_6, t_7 );
1626
CHECK_FUNC_RESULT( t_5 )
1627
t_7 = GC_POS__DATA__TYPE;
1628
CHECK_BOUND( t_7, "POS_DATA_TYPE" )
1629
CHECK_INT_SMALL_POS( t_7 )
1630
C_ELM_POSOBJ_NLE( t_6, a_type, INT_INTOBJ(t_7) );
1631
t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );
1632
CHECK_FUNC_RESULT( t_1 )
1633
l_new = t_1;
1634
1635
/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */
1636
t_2 = GC_POS__FIRST__FREE__TYPE;
1637
CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )
1638
CHECK_INT_SMALL( t_2 )
1639
t_4 = GF_LEN__POSOBJ;
1640
t_3 = CALL_1ARGS( t_4, a_type );
1641
CHECK_FUNC_RESULT( t_3 )
1642
CHECK_INT_SMALL( t_3 )
1643
for ( t_1 = t_2;
1644
((Int)t_1) <= ((Int)t_3);
1645
t_1 = (Obj)(((UInt)t_1)+4) ) {
1646
l_i = t_1;
1647
1648
/* if IsBound( type![i]) then */
1649
CHECK_INT_SMALL_POS( l_i )
1650
if ( TNUM_OBJ(a_type) == T_POSOBJ ) {
1651
t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-1
1652
&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);
1653
}
1654
else {
1655
t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);
1656
}
1657
t_4 = (Obj)(UInt)(t_5 != False);
1658
if ( t_4 ) {
1659
1660
/* new![i] := type![i]; */
1661
C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );
1662
C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )
1663
1664
}
1665
/* fi */
1666
1667
}
1668
/* od */
1669
1670
/* return new; */
1671
RES_BRK_CURR_STAT();
1672
SWITCH_TO_OLD_FRAME(oldFrame);
1673
return l_new;
1674
1675
/* return; */
1676
RES_BRK_CURR_STAT();
1677
SWITCH_TO_OLD_FRAME(oldFrame);
1678
return 0;
1679
}
1680
1681
/* handler for function 18 */
1682
static Obj HdlrFunc18 (
1683
Obj self,
1684
Obj a_type,
1685
Obj a_filter,
1686
Obj a_data )
1687
{
1688
Obj l_new = 0;
1689
Obj l_i = 0;
1690
Obj t_1 = 0;
1691
Obj t_2 = 0;
1692
Obj t_3 = 0;
1693
Obj t_4 = 0;
1694
Obj t_5 = 0;
1695
Obj t_6 = 0;
1696
Obj t_7 = 0;
1697
Obj t_8 = 0;
1698
Obj t_9 = 0;
1699
Obj t_10 = 0;
1700
Obj t_11 = 0;
1701
Bag oldFrame;
1702
OLD_BRK_CURR_STAT
1703
1704
/* allocate new stack frame */
1705
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1706
REM_BRK_CURR_STAT();
1707
SET_BRK_CURR_STAT(0);
1708
1709
/* new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), data ); */
1710
t_2 = GF_NEW__TYPE;
1711
t_3 = GC_TypeOfTypes;
1712
CHECK_BOUND( t_3, "TypeOfTypes" )
1713
C_ELM_POSOBJ_NLE( t_4, a_type, 1 );
1714
t_6 = GF_WITH__IMPS__FLAGS;
1715
t_8 = GF_AND__FLAGS;
1716
C_ELM_POSOBJ_NLE( t_9, a_type, 2 );
1717
t_11 = GF_FLAGS__FILTER;
1718
t_10 = CALL_1ARGS( t_11, a_filter );
1719
CHECK_FUNC_RESULT( t_10 )
1720
t_7 = CALL_2ARGS( t_8, t_9, t_10 );
1721
CHECK_FUNC_RESULT( t_7 )
1722
t_5 = CALL_1ARGS( t_6, t_7 );
1723
CHECK_FUNC_RESULT( t_5 )
1724
t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, a_data );
1725
CHECK_FUNC_RESULT( t_1 )
1726
l_new = t_1;
1727
1728
/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */
1729
t_2 = GC_POS__FIRST__FREE__TYPE;
1730
CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )
1731
CHECK_INT_SMALL( t_2 )
1732
t_4 = GF_LEN__POSOBJ;
1733
t_3 = CALL_1ARGS( t_4, a_type );
1734
CHECK_FUNC_RESULT( t_3 )
1735
CHECK_INT_SMALL( t_3 )
1736
for ( t_1 = t_2;
1737
((Int)t_1) <= ((Int)t_3);
1738
t_1 = (Obj)(((UInt)t_1)+4) ) {
1739
l_i = t_1;
1740
1741
/* if IsBound( type![i]) then */
1742
CHECK_INT_SMALL_POS( l_i )
1743
if ( TNUM_OBJ(a_type) == T_POSOBJ ) {
1744
t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-1
1745
&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);
1746
}
1747
else {
1748
t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);
1749
}
1750
t_4 = (Obj)(UInt)(t_5 != False);
1751
if ( t_4 ) {
1752
1753
/* new![i] := type![i]; */
1754
C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );
1755
C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )
1756
1757
}
1758
/* fi */
1759
1760
}
1761
/* od */
1762
1763
/* return new; */
1764
RES_BRK_CURR_STAT();
1765
SWITCH_TO_OLD_FRAME(oldFrame);
1766
return l_new;
1767
1768
/* return; */
1769
RES_BRK_CURR_STAT();
1770
SWITCH_TO_OLD_FRAME(oldFrame);
1771
return 0;
1772
}
1773
1774
/* handler for function 19 */
1775
static Obj HdlrFunc19 (
1776
Obj self,
1777
Obj a_arg )
1778
{
1779
Obj t_1 = 0;
1780
Obj t_2 = 0;
1781
Obj t_3 = 0;
1782
Obj t_4 = 0;
1783
Obj t_5 = 0;
1784
Bag oldFrame;
1785
OLD_BRK_CURR_STAT
1786
1787
/* allocate new stack frame */
1788
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1789
REM_BRK_CURR_STAT();
1790
SET_BRK_CURR_STAT(0);
1791
1792
/* if not IsType( arg[1] ) then */
1793
t_4 = GF_IsType;
1794
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(1) )
1795
t_3 = CALL_1ARGS( t_4, t_5 );
1796
CHECK_FUNC_RESULT( t_3 )
1797
CHECK_BOOL( t_3 )
1798
t_2 = (Obj)(UInt)(t_3 != False);
1799
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
1800
if ( t_1 ) {
1801
1802
/* Error( "<type> must be a type" ); */
1803
t_1 = GF_Error;
1804
C_NEW_STRING( t_2, 21, "<type> must be a type" );
1805
CALL_1ARGS( t_1, t_2 );
1806
1807
}
1808
/* fi */
1809
1810
/* if LEN_LIST( arg ) = 2 then */
1811
t_3 = GF_LEN__LIST;
1812
t_2 = CALL_1ARGS( t_3, a_arg );
1813
CHECK_FUNC_RESULT( t_2 )
1814
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));
1815
if ( t_1 ) {
1816
1817
/* return Subtype2( arg[1], arg[2] ); */
1818
t_2 = GF_Subtype2;
1819
C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )
1820
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )
1821
t_1 = CALL_2ARGS( t_2, t_3, t_4 );
1822
CHECK_FUNC_RESULT( t_1 )
1823
RES_BRK_CURR_STAT();
1824
SWITCH_TO_OLD_FRAME(oldFrame);
1825
return t_1;
1826
1827
}
1828
1829
/* else */
1830
else {
1831
1832
/* return Subtype3( arg[1], arg[2], arg[3] ); */
1833
t_2 = GF_Subtype3;
1834
C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )
1835
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )
1836
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(3) )
1837
t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );
1838
CHECK_FUNC_RESULT( t_1 )
1839
RES_BRK_CURR_STAT();
1840
SWITCH_TO_OLD_FRAME(oldFrame);
1841
return t_1;
1842
1843
}
1844
/* fi */
1845
1846
/* return; */
1847
RES_BRK_CURR_STAT();
1848
SWITCH_TO_OLD_FRAME(oldFrame);
1849
return 0;
1850
1851
/* return; */
1852
RES_BRK_CURR_STAT();
1853
SWITCH_TO_OLD_FRAME(oldFrame);
1854
return 0;
1855
}
1856
1857
/* handler for function 20 */
1858
static Obj HdlrFunc20 (
1859
Obj self,
1860
Obj a_type,
1861
Obj a_filter )
1862
{
1863
Obj l_new = 0;
1864
Obj l_i = 0;
1865
Obj t_1 = 0;
1866
Obj t_2 = 0;
1867
Obj t_3 = 0;
1868
Obj t_4 = 0;
1869
Obj t_5 = 0;
1870
Obj t_6 = 0;
1871
Obj t_7 = 0;
1872
Obj t_8 = 0;
1873
Obj t_9 = 0;
1874
Bag oldFrame;
1875
OLD_BRK_CURR_STAT
1876
1877
/* allocate new stack frame */
1878
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1879
REM_BRK_CURR_STAT();
1880
SET_BRK_CURR_STAT(0);
1881
1882
/* new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), type![POS_DATA_TYPE] ); */
1883
t_2 = GF_NEW__TYPE;
1884
t_3 = GC_TypeOfTypes;
1885
CHECK_BOUND( t_3, "TypeOfTypes" )
1886
C_ELM_POSOBJ_NLE( t_4, a_type, 1 );
1887
t_6 = GF_SUB__FLAGS;
1888
C_ELM_POSOBJ_NLE( t_7, a_type, 2 );
1889
t_9 = GF_FLAGS__FILTER;
1890
t_8 = CALL_1ARGS( t_9, a_filter );
1891
CHECK_FUNC_RESULT( t_8 )
1892
t_5 = CALL_2ARGS( t_6, t_7, t_8 );
1893
CHECK_FUNC_RESULT( t_5 )
1894
t_7 = GC_POS__DATA__TYPE;
1895
CHECK_BOUND( t_7, "POS_DATA_TYPE" )
1896
CHECK_INT_SMALL_POS( t_7 )
1897
C_ELM_POSOBJ_NLE( t_6, a_type, INT_INTOBJ(t_7) );
1898
t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, t_6 );
1899
CHECK_FUNC_RESULT( t_1 )
1900
l_new = t_1;
1901
1902
/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */
1903
t_2 = GC_POS__FIRST__FREE__TYPE;
1904
CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )
1905
CHECK_INT_SMALL( t_2 )
1906
t_4 = GF_LEN__POSOBJ;
1907
t_3 = CALL_1ARGS( t_4, a_type );
1908
CHECK_FUNC_RESULT( t_3 )
1909
CHECK_INT_SMALL( t_3 )
1910
for ( t_1 = t_2;
1911
((Int)t_1) <= ((Int)t_3);
1912
t_1 = (Obj)(((UInt)t_1)+4) ) {
1913
l_i = t_1;
1914
1915
/* if IsBound( type![i]) then */
1916
CHECK_INT_SMALL_POS( l_i )
1917
if ( TNUM_OBJ(a_type) == T_POSOBJ ) {
1918
t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-1
1919
&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);
1920
}
1921
else {
1922
t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);
1923
}
1924
t_4 = (Obj)(UInt)(t_5 != False);
1925
if ( t_4 ) {
1926
1927
/* new![i] := type![i]; */
1928
C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );
1929
C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )
1930
1931
}
1932
/* fi */
1933
1934
}
1935
/* od */
1936
1937
/* return new; */
1938
RES_BRK_CURR_STAT();
1939
SWITCH_TO_OLD_FRAME(oldFrame);
1940
return l_new;
1941
1942
/* return; */
1943
RES_BRK_CURR_STAT();
1944
SWITCH_TO_OLD_FRAME(oldFrame);
1945
return 0;
1946
}
1947
1948
/* handler for function 21 */
1949
static Obj HdlrFunc21 (
1950
Obj self,
1951
Obj a_type,
1952
Obj a_filter,
1953
Obj a_data )
1954
{
1955
Obj l_new = 0;
1956
Obj l_i = 0;
1957
Obj t_1 = 0;
1958
Obj t_2 = 0;
1959
Obj t_3 = 0;
1960
Obj t_4 = 0;
1961
Obj t_5 = 0;
1962
Obj t_6 = 0;
1963
Obj t_7 = 0;
1964
Obj t_8 = 0;
1965
Obj t_9 = 0;
1966
Bag oldFrame;
1967
OLD_BRK_CURR_STAT
1968
1969
/* allocate new stack frame */
1970
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
1971
REM_BRK_CURR_STAT();
1972
SET_BRK_CURR_STAT(0);
1973
1974
/* new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), data ); */
1975
t_2 = GF_NEW__TYPE;
1976
t_3 = GC_TypeOfTypes;
1977
CHECK_BOUND( t_3, "TypeOfTypes" )
1978
C_ELM_POSOBJ_NLE( t_4, a_type, 1 );
1979
t_6 = GF_SUB__FLAGS;
1980
C_ELM_POSOBJ_NLE( t_7, a_type, 2 );
1981
t_9 = GF_FLAGS__FILTER;
1982
t_8 = CALL_1ARGS( t_9, a_filter );
1983
CHECK_FUNC_RESULT( t_8 )
1984
t_5 = CALL_2ARGS( t_6, t_7, t_8 );
1985
CHECK_FUNC_RESULT( t_5 )
1986
t_1 = CALL_4ARGS( t_2, t_3, t_4, t_5, a_data );
1987
CHECK_FUNC_RESULT( t_1 )
1988
l_new = t_1;
1989
1990
/* for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do */
1991
t_2 = GC_POS__FIRST__FREE__TYPE;
1992
CHECK_BOUND( t_2, "POS_FIRST_FREE_TYPE" )
1993
CHECK_INT_SMALL( t_2 )
1994
t_4 = GF_LEN__POSOBJ;
1995
t_3 = CALL_1ARGS( t_4, a_type );
1996
CHECK_FUNC_RESULT( t_3 )
1997
CHECK_INT_SMALL( t_3 )
1998
for ( t_1 = t_2;
1999
((Int)t_1) <= ((Int)t_3);
2000
t_1 = (Obj)(((UInt)t_1)+4) ) {
2001
l_i = t_1;
2002
2003
/* if IsBound( type![i]) then */
2004
CHECK_INT_SMALL_POS( l_i )
2005
if ( TNUM_OBJ(a_type) == T_POSOBJ ) {
2006
t_5 = (INT_INTOBJ(l_i) <= SIZE_OBJ(a_type)/sizeof(Obj)-1
2007
&& ELM_PLIST(a_type,INT_INTOBJ(l_i)) != 0 ? True : False);
2008
}
2009
else {
2010
t_5 = (ISB_LIST( a_type, INT_INTOBJ(l_i) ) ? True : False);
2011
}
2012
t_4 = (Obj)(UInt)(t_5 != False);
2013
if ( t_4 ) {
2014
2015
/* new![i] := type![i]; */
2016
C_ELM_POSOBJ_NLE( t_4, a_type, INT_INTOBJ(l_i) );
2017
C_ASS_POSOBJ( l_new, INT_INTOBJ(l_i), t_4 )
2018
2019
}
2020
/* fi */
2021
2022
}
2023
/* od */
2024
2025
/* return new; */
2026
RES_BRK_CURR_STAT();
2027
SWITCH_TO_OLD_FRAME(oldFrame);
2028
return l_new;
2029
2030
/* return; */
2031
RES_BRK_CURR_STAT();
2032
SWITCH_TO_OLD_FRAME(oldFrame);
2033
return 0;
2034
}
2035
2036
/* handler for function 22 */
2037
static Obj HdlrFunc22 (
2038
Obj self,
2039
Obj a_arg )
2040
{
2041
Obj t_1 = 0;
2042
Obj t_2 = 0;
2043
Obj t_3 = 0;
2044
Obj t_4 = 0;
2045
Obj t_5 = 0;
2046
Bag oldFrame;
2047
OLD_BRK_CURR_STAT
2048
2049
/* allocate new stack frame */
2050
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2051
REM_BRK_CURR_STAT();
2052
SET_BRK_CURR_STAT(0);
2053
2054
/* if not IsType( arg[1] ) then */
2055
t_4 = GF_IsType;
2056
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(1) )
2057
t_3 = CALL_1ARGS( t_4, t_5 );
2058
CHECK_FUNC_RESULT( t_3 )
2059
CHECK_BOOL( t_3 )
2060
t_2 = (Obj)(UInt)(t_3 != False);
2061
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2062
if ( t_1 ) {
2063
2064
/* Error( "<type> must be a type" ); */
2065
t_1 = GF_Error;
2066
C_NEW_STRING( t_2, 21, "<type> must be a type" );
2067
CALL_1ARGS( t_1, t_2 );
2068
2069
}
2070
/* fi */
2071
2072
/* if LEN_LIST( arg ) = 2 then */
2073
t_3 = GF_LEN__LIST;
2074
t_2 = CALL_1ARGS( t_3, a_arg );
2075
CHECK_FUNC_RESULT( t_2 )
2076
t_1 = (Obj)(UInt)(EQ( t_2, INTOBJ_INT(2) ));
2077
if ( t_1 ) {
2078
2079
/* return SupType2( arg[1], arg[2] ); */
2080
t_2 = GF_SupType2;
2081
C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )
2082
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )
2083
t_1 = CALL_2ARGS( t_2, t_3, t_4 );
2084
CHECK_FUNC_RESULT( t_1 )
2085
RES_BRK_CURR_STAT();
2086
SWITCH_TO_OLD_FRAME(oldFrame);
2087
return t_1;
2088
2089
}
2090
2091
/* else */
2092
else {
2093
2094
/* return SupType3( arg[1], arg[2], arg[3] ); */
2095
t_2 = GF_SupType3;
2096
C_ELM_LIST_FPL( t_3, a_arg, INTOBJ_INT(1) )
2097
C_ELM_LIST_FPL( t_4, a_arg, INTOBJ_INT(2) )
2098
C_ELM_LIST_FPL( t_5, a_arg, INTOBJ_INT(3) )
2099
t_1 = CALL_3ARGS( t_2, t_3, t_4, t_5 );
2100
CHECK_FUNC_RESULT( t_1 )
2101
RES_BRK_CURR_STAT();
2102
SWITCH_TO_OLD_FRAME(oldFrame);
2103
return t_1;
2104
2105
}
2106
/* fi */
2107
2108
/* return; */
2109
RES_BRK_CURR_STAT();
2110
SWITCH_TO_OLD_FRAME(oldFrame);
2111
return 0;
2112
2113
/* return; */
2114
RES_BRK_CURR_STAT();
2115
SWITCH_TO_OLD_FRAME(oldFrame);
2116
return 0;
2117
}
2118
2119
/* handler for function 23 */
2120
static Obj HdlrFunc23 (
2121
Obj self,
2122
Obj a_K )
2123
{
2124
Obj t_1 = 0;
2125
Bag oldFrame;
2126
OLD_BRK_CURR_STAT
2127
2128
/* allocate new stack frame */
2129
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2130
REM_BRK_CURR_STAT();
2131
SET_BRK_CURR_STAT(0);
2132
2133
/* return K![1]; */
2134
C_ELM_POSOBJ_NLE( t_1, a_K, 1 );
2135
RES_BRK_CURR_STAT();
2136
SWITCH_TO_OLD_FRAME(oldFrame);
2137
return t_1;
2138
2139
/* return; */
2140
RES_BRK_CURR_STAT();
2141
SWITCH_TO_OLD_FRAME(oldFrame);
2142
return 0;
2143
}
2144
2145
/* handler for function 24 */
2146
static Obj HdlrFunc24 (
2147
Obj self,
2148
Obj a_K )
2149
{
2150
Obj t_1 = 0;
2151
Bag oldFrame;
2152
OLD_BRK_CURR_STAT
2153
2154
/* allocate new stack frame */
2155
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2156
REM_BRK_CURR_STAT();
2157
SET_BRK_CURR_STAT(0);
2158
2159
/* return K![2]; */
2160
C_ELM_POSOBJ_NLE( t_1, a_K, 2 );
2161
RES_BRK_CURR_STAT();
2162
SWITCH_TO_OLD_FRAME(oldFrame);
2163
return t_1;
2164
2165
/* return; */
2166
RES_BRK_CURR_STAT();
2167
SWITCH_TO_OLD_FRAME(oldFrame);
2168
return 0;
2169
}
2170
2171
/* handler for function 25 */
2172
static Obj HdlrFunc25 (
2173
Obj self,
2174
Obj a_K )
2175
{
2176
Obj t_1 = 0;
2177
Obj t_2 = 0;
2178
Bag oldFrame;
2179
OLD_BRK_CURR_STAT
2180
2181
/* allocate new stack frame */
2182
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2183
REM_BRK_CURR_STAT();
2184
SET_BRK_CURR_STAT(0);
2185
2186
/* return K![POS_DATA_TYPE]; */
2187
t_2 = GC_POS__DATA__TYPE;
2188
CHECK_BOUND( t_2, "POS_DATA_TYPE" )
2189
CHECK_INT_SMALL_POS( t_2 )
2190
C_ELM_POSOBJ_NLE( t_1, a_K, INT_INTOBJ(t_2) );
2191
RES_BRK_CURR_STAT();
2192
SWITCH_TO_OLD_FRAME(oldFrame);
2193
return t_1;
2194
2195
/* return; */
2196
RES_BRK_CURR_STAT();
2197
SWITCH_TO_OLD_FRAME(oldFrame);
2198
return 0;
2199
}
2200
2201
/* handler for function 26 */
2202
static Obj HdlrFunc26 (
2203
Obj self,
2204
Obj a_K,
2205
Obj a_data )
2206
{
2207
Obj t_1 = 0;
2208
Bag oldFrame;
2209
OLD_BRK_CURR_STAT
2210
2211
/* allocate new stack frame */
2212
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2213
REM_BRK_CURR_STAT();
2214
SET_BRK_CURR_STAT(0);
2215
2216
/* K![POS_DATA_TYPE] := data; */
2217
t_1 = GC_POS__DATA__TYPE;
2218
CHECK_BOUND( t_1, "POS_DATA_TYPE" )
2219
CHECK_INT_SMALL_POS( t_1 )
2220
C_ASS_POSOBJ( a_K, INT_INTOBJ(t_1), a_data )
2221
2222
/* return; */
2223
RES_BRK_CURR_STAT();
2224
SWITCH_TO_OLD_FRAME(oldFrame);
2225
return 0;
2226
2227
/* return; */
2228
RES_BRK_CURR_STAT();
2229
SWITCH_TO_OLD_FRAME(oldFrame);
2230
return 0;
2231
}
2232
2233
/* handler for function 27 */
2234
static Obj HdlrFunc27 (
2235
Obj self,
2236
Obj a_K )
2237
{
2238
Obj t_1 = 0;
2239
Obj t_2 = 0;
2240
Bag oldFrame;
2241
OLD_BRK_CURR_STAT
2242
2243
/* allocate new stack frame */
2244
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2245
REM_BRK_CURR_STAT();
2246
SET_BRK_CURR_STAT(0);
2247
2248
/* return K![POS_DATA_TYPE]; */
2249
t_2 = GC_POS__DATA__TYPE;
2250
CHECK_BOUND( t_2, "POS_DATA_TYPE" )
2251
CHECK_INT_SMALL_POS( t_2 )
2252
C_ELM_POSOBJ_NLE( t_1, a_K, INT_INTOBJ(t_2) );
2253
RES_BRK_CURR_STAT();
2254
SWITCH_TO_OLD_FRAME(oldFrame);
2255
return t_1;
2256
2257
/* return; */
2258
RES_BRK_CURR_STAT();
2259
SWITCH_TO_OLD_FRAME(oldFrame);
2260
return 0;
2261
}
2262
2263
/* handler for function 28 */
2264
static Obj HdlrFunc28 (
2265
Obj self,
2266
Obj a_obj )
2267
{
2268
Obj t_1 = 0;
2269
Obj t_2 = 0;
2270
Obj t_3 = 0;
2271
Obj t_4 = 0;
2272
Bag oldFrame;
2273
OLD_BRK_CURR_STAT
2274
2275
/* allocate new stack frame */
2276
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2277
REM_BRK_CURR_STAT();
2278
SET_BRK_CURR_STAT(0);
2279
2280
/* return FlagsType( TypeObj( obj ) ); */
2281
t_2 = GF_FlagsType;
2282
t_4 = GF_TypeObj;
2283
t_3 = CALL_1ARGS( t_4, a_obj );
2284
CHECK_FUNC_RESULT( t_3 )
2285
t_1 = CALL_1ARGS( t_2, t_3 );
2286
CHECK_FUNC_RESULT( t_1 )
2287
RES_BRK_CURR_STAT();
2288
SWITCH_TO_OLD_FRAME(oldFrame);
2289
return t_1;
2290
2291
/* return; */
2292
RES_BRK_CURR_STAT();
2293
SWITCH_TO_OLD_FRAME(oldFrame);
2294
return 0;
2295
}
2296
2297
/* handler for function 29 */
2298
static Obj HdlrFunc29 (
2299
Obj self,
2300
Obj a_obj )
2301
{
2302
Obj t_1 = 0;
2303
Obj t_2 = 0;
2304
Obj t_3 = 0;
2305
Obj t_4 = 0;
2306
Bag oldFrame;
2307
OLD_BRK_CURR_STAT
2308
2309
/* allocate new stack frame */
2310
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2311
REM_BRK_CURR_STAT();
2312
SET_BRK_CURR_STAT(0);
2313
2314
/* return DataType( TypeObj( obj ) ); */
2315
t_2 = GF_DataType;
2316
t_4 = GF_TypeObj;
2317
t_3 = CALL_1ARGS( t_4, a_obj );
2318
CHECK_FUNC_RESULT( t_3 )
2319
t_1 = CALL_1ARGS( t_2, t_3 );
2320
CHECK_FUNC_RESULT( t_1 )
2321
RES_BRK_CURR_STAT();
2322
SWITCH_TO_OLD_FRAME(oldFrame);
2323
return t_1;
2324
2325
/* return; */
2326
RES_BRK_CURR_STAT();
2327
SWITCH_TO_OLD_FRAME(oldFrame);
2328
return 0;
2329
}
2330
2331
/* handler for function 30 */
2332
static Obj HdlrFunc30 (
2333
Obj self,
2334
Obj a_obj )
2335
{
2336
Obj t_1 = 0;
2337
Obj t_2 = 0;
2338
Obj t_3 = 0;
2339
Obj t_4 = 0;
2340
Bag oldFrame;
2341
OLD_BRK_CURR_STAT
2342
2343
/* allocate new stack frame */
2344
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2345
REM_BRK_CURR_STAT();
2346
SET_BRK_CURR_STAT(0);
2347
2348
/* return SharedType( TypeObj( obj ) ); */
2349
t_2 = GF_SharedType;
2350
t_4 = GF_TypeObj;
2351
t_3 = CALL_1ARGS( t_4, a_obj );
2352
CHECK_FUNC_RESULT( t_3 )
2353
t_1 = CALL_1ARGS( t_2, t_3 );
2354
CHECK_FUNC_RESULT( t_1 )
2355
RES_BRK_CURR_STAT();
2356
SWITCH_TO_OLD_FRAME(oldFrame);
2357
return t_1;
2358
2359
/* return; */
2360
RES_BRK_CURR_STAT();
2361
SWITCH_TO_OLD_FRAME(oldFrame);
2362
return 0;
2363
}
2364
2365
/* handler for function 31 */
2366
static Obj HdlrFunc31 (
2367
Obj self,
2368
Obj a_type,
2369
Obj a_obj )
2370
{
2371
Obj t_1 = 0;
2372
Obj t_2 = 0;
2373
Obj t_3 = 0;
2374
Obj t_4 = 0;
2375
Bag oldFrame;
2376
OLD_BRK_CURR_STAT
2377
2378
/* allocate new stack frame */
2379
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2380
REM_BRK_CURR_STAT();
2381
SET_BRK_CURR_STAT(0);
2382
2383
/* if not IsType( type ) then */
2384
t_4 = GF_IsType;
2385
t_3 = CALL_1ARGS( t_4, a_type );
2386
CHECK_FUNC_RESULT( t_3 )
2387
CHECK_BOOL( t_3 )
2388
t_2 = (Obj)(UInt)(t_3 != False);
2389
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2390
if ( t_1 ) {
2391
2392
/* Error( "<type> must be a type" ); */
2393
t_1 = GF_Error;
2394
C_NEW_STRING( t_2, 21, "<type> must be a type" );
2395
CALL_1ARGS( t_1, t_2 );
2396
2397
}
2398
/* fi */
2399
2400
/* if IS_LIST( obj ) then */
2401
t_3 = GF_IS__LIST;
2402
t_2 = CALL_1ARGS( t_3, a_obj );
2403
CHECK_FUNC_RESULT( t_2 )
2404
CHECK_BOOL( t_2 )
2405
t_1 = (Obj)(UInt)(t_2 != False);
2406
if ( t_1 ) {
2407
2408
/* SET_TYPE_POSOBJ( obj, type ); */
2409
t_1 = GF_SET__TYPE__POSOBJ;
2410
CALL_2ARGS( t_1, a_obj, a_type );
2411
2412
}
2413
2414
/* elif IS_REC( obj ) then */
2415
else {
2416
t_3 = GF_IS__REC;
2417
t_2 = CALL_1ARGS( t_3, a_obj );
2418
CHECK_FUNC_RESULT( t_2 )
2419
CHECK_BOOL( t_2 )
2420
t_1 = (Obj)(UInt)(t_2 != False);
2421
if ( t_1 ) {
2422
2423
/* SET_TYPE_COMOBJ( obj, type ); */
2424
t_1 = GF_SET__TYPE__COMOBJ;
2425
CALL_2ARGS( t_1, a_obj, a_type );
2426
2427
}
2428
}
2429
/* fi */
2430
2431
/* if not IsNoImmediateMethodsObject( obj ) then */
2432
t_4 = GF_IsNoImmediateMethodsObject;
2433
t_3 = CALL_1ARGS( t_4, a_obj );
2434
CHECK_FUNC_RESULT( t_3 )
2435
CHECK_BOOL( t_3 )
2436
t_2 = (Obj)(UInt)(t_3 != False);
2437
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2438
if ( t_1 ) {
2439
2440
/* RunImmediateMethods( obj, type![2] ); */
2441
t_1 = GF_RunImmediateMethods;
2442
C_ELM_POSOBJ_NLE( t_2, a_type, 2 );
2443
CALL_2ARGS( t_1, a_obj, t_2 );
2444
2445
}
2446
/* fi */
2447
2448
/* return obj; */
2449
RES_BRK_CURR_STAT();
2450
SWITCH_TO_OLD_FRAME(oldFrame);
2451
return a_obj;
2452
2453
/* return; */
2454
RES_BRK_CURR_STAT();
2455
SWITCH_TO_OLD_FRAME(oldFrame);
2456
return 0;
2457
}
2458
2459
/* handler for function 32 */
2460
static Obj HdlrFunc32 (
2461
Obj self,
2462
Obj a_type,
2463
Obj a_obj )
2464
{
2465
Obj t_1 = 0;
2466
Obj t_2 = 0;
2467
Obj t_3 = 0;
2468
Obj t_4 = 0;
2469
Bag oldFrame;
2470
OLD_BRK_CURR_STAT
2471
2472
/* allocate new stack frame */
2473
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2474
REM_BRK_CURR_STAT();
2475
SET_BRK_CURR_STAT(0);
2476
2477
/* if not IsType( type ) then */
2478
t_4 = GF_IsType;
2479
t_3 = CALL_1ARGS( t_4, a_type );
2480
CHECK_FUNC_RESULT( t_3 )
2481
CHECK_BOOL( t_3 )
2482
t_2 = (Obj)(UInt)(t_3 != False);
2483
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2484
if ( t_1 ) {
2485
2486
/* Error( "<type> must be a type" ); */
2487
t_1 = GF_Error;
2488
C_NEW_STRING( t_2, 21, "<type> must be a type" );
2489
CALL_1ARGS( t_1, t_2 );
2490
2491
}
2492
/* fi */
2493
2494
/* if IS_POSOBJ( obj ) then */
2495
t_3 = GF_IS__POSOBJ;
2496
t_2 = CALL_1ARGS( t_3, a_obj );
2497
CHECK_FUNC_RESULT( t_2 )
2498
CHECK_BOOL( t_2 )
2499
t_1 = (Obj)(UInt)(t_2 != False);
2500
if ( t_1 ) {
2501
2502
/* SET_TYPE_POSOBJ( obj, type ); */
2503
t_1 = GF_SET__TYPE__POSOBJ;
2504
CALL_2ARGS( t_1, a_obj, a_type );
2505
2506
}
2507
2508
/* elif IS_COMOBJ( obj ) then */
2509
else {
2510
t_3 = GF_IS__COMOBJ;
2511
t_2 = CALL_1ARGS( t_3, a_obj );
2512
CHECK_FUNC_RESULT( t_2 )
2513
CHECK_BOOL( t_2 )
2514
t_1 = (Obj)(UInt)(t_2 != False);
2515
if ( t_1 ) {
2516
2517
/* SET_TYPE_COMOBJ( obj, type ); */
2518
t_1 = GF_SET__TYPE__COMOBJ;
2519
CALL_2ARGS( t_1, a_obj, a_type );
2520
2521
}
2522
2523
/* elif IS_DATOBJ( obj ) then */
2524
else {
2525
t_3 = GF_IS__DATOBJ;
2526
t_2 = CALL_1ARGS( t_3, a_obj );
2527
CHECK_FUNC_RESULT( t_2 )
2528
CHECK_BOOL( t_2 )
2529
t_1 = (Obj)(UInt)(t_2 != False);
2530
if ( t_1 ) {
2531
2532
/* SET_TYPE_DATOBJ( obj, type ); */
2533
t_1 = GF_SET__TYPE__DATOBJ;
2534
CALL_2ARGS( t_1, a_obj, a_type );
2535
2536
}
2537
}
2538
}
2539
/* fi */
2540
2541
/* if not IsNoImmediateMethodsObject( obj ) then */
2542
t_4 = GF_IsNoImmediateMethodsObject;
2543
t_3 = CALL_1ARGS( t_4, a_obj );
2544
CHECK_FUNC_RESULT( t_3 )
2545
CHECK_BOOL( t_3 )
2546
t_2 = (Obj)(UInt)(t_3 != False);
2547
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2548
if ( t_1 ) {
2549
2550
/* RunImmediateMethods( obj, type![2] ); */
2551
t_1 = GF_RunImmediateMethods;
2552
C_ELM_POSOBJ_NLE( t_2, a_type, 2 );
2553
CALL_2ARGS( t_1, a_obj, t_2 );
2554
2555
}
2556
/* fi */
2557
2558
/* return obj; */
2559
RES_BRK_CURR_STAT();
2560
SWITCH_TO_OLD_FRAME(oldFrame);
2561
return a_obj;
2562
2563
/* return; */
2564
RES_BRK_CURR_STAT();
2565
SWITCH_TO_OLD_FRAME(oldFrame);
2566
return 0;
2567
}
2568
2569
/* handler for function 33 */
2570
static Obj HdlrFunc33 (
2571
Obj self,
2572
Obj a_obj,
2573
Obj a_filter )
2574
{
2575
Obj l_type = 0;
2576
Obj l_newtype = 0;
2577
Obj t_1 = 0;
2578
Obj t_2 = 0;
2579
Obj t_3 = 0;
2580
Obj t_4 = 0;
2581
Obj t_5 = 0;
2582
Obj t_6 = 0;
2583
Bag oldFrame;
2584
OLD_BRK_CURR_STAT
2585
2586
/* allocate new stack frame */
2587
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2588
REM_BRK_CURR_STAT();
2589
SET_BRK_CURR_STAT(0);
2590
2591
/* if IS_POSOBJ( obj ) then */
2592
t_3 = GF_IS__POSOBJ;
2593
t_2 = CALL_1ARGS( t_3, a_obj );
2594
CHECK_FUNC_RESULT( t_2 )
2595
CHECK_BOOL( t_2 )
2596
t_1 = (Obj)(UInt)(t_2 != False);
2597
if ( t_1 ) {
2598
2599
/* type := TYPE_OBJ( obj ); */
2600
t_2 = GF_TYPE__OBJ;
2601
t_1 = CALL_1ARGS( t_2, a_obj );
2602
CHECK_FUNC_RESULT( t_1 )
2603
l_type = t_1;
2604
2605
/* newtype := Subtype2( type, filter ); */
2606
t_2 = GF_Subtype2;
2607
t_1 = CALL_2ARGS( t_2, l_type, a_filter );
2608
CHECK_FUNC_RESULT( t_1 )
2609
l_newtype = t_1;
2610
2611
/* SET_TYPE_POSOBJ( obj, newtype ); */
2612
t_1 = GF_SET__TYPE__POSOBJ;
2613
CALL_2ARGS( t_1, a_obj, l_newtype );
2614
2615
/* if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then */
2616
t_4 = GC_IGNORE__IMMEDIATE__METHODS;
2617
CHECK_BOUND( t_4, "IGNORE_IMMEDIATE_METHODS" )
2618
CHECK_BOOL( t_4 )
2619
t_3 = (Obj)(UInt)(t_4 != False);
2620
t_2 = t_3;
2621
if ( ! t_2 ) {
2622
t_6 = GF_IsNoImmediateMethodsObject;
2623
t_5 = CALL_1ARGS( t_6, a_obj );
2624
CHECK_FUNC_RESULT( t_5 )
2625
CHECK_BOOL( t_5 )
2626
t_4 = (Obj)(UInt)(t_5 != False);
2627
t_2 = t_4;
2628
}
2629
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2630
if ( t_1 ) {
2631
2632
/* RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) ); */
2633
t_1 = GF_RunImmediateMethods;
2634
t_3 = GF_SUB__FLAGS;
2635
C_ELM_POSOBJ_NLE( t_4, l_newtype, 2 );
2636
C_ELM_POSOBJ_NLE( t_5, l_type, 2 );
2637
t_2 = CALL_2ARGS( t_3, t_4, t_5 );
2638
CHECK_FUNC_RESULT( t_2 )
2639
CALL_2ARGS( t_1, a_obj, t_2 );
2640
2641
}
2642
/* fi */
2643
2644
}
2645
2646
/* elif IS_COMOBJ( obj ) then */
2647
else {
2648
t_3 = GF_IS__COMOBJ;
2649
t_2 = CALL_1ARGS( t_3, a_obj );
2650
CHECK_FUNC_RESULT( t_2 )
2651
CHECK_BOOL( t_2 )
2652
t_1 = (Obj)(UInt)(t_2 != False);
2653
if ( t_1 ) {
2654
2655
/* type := TYPE_OBJ( obj ); */
2656
t_2 = GF_TYPE__OBJ;
2657
t_1 = CALL_1ARGS( t_2, a_obj );
2658
CHECK_FUNC_RESULT( t_1 )
2659
l_type = t_1;
2660
2661
/* newtype := Subtype2( type, filter ); */
2662
t_2 = GF_Subtype2;
2663
t_1 = CALL_2ARGS( t_2, l_type, a_filter );
2664
CHECK_FUNC_RESULT( t_1 )
2665
l_newtype = t_1;
2666
2667
/* SET_TYPE_COMOBJ( obj, newtype ); */
2668
t_1 = GF_SET__TYPE__COMOBJ;
2669
CALL_2ARGS( t_1, a_obj, l_newtype );
2670
2671
/* if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then */
2672
t_4 = GC_IGNORE__IMMEDIATE__METHODS;
2673
CHECK_BOUND( t_4, "IGNORE_IMMEDIATE_METHODS" )
2674
CHECK_BOOL( t_4 )
2675
t_3 = (Obj)(UInt)(t_4 != False);
2676
t_2 = t_3;
2677
if ( ! t_2 ) {
2678
t_6 = GF_IsNoImmediateMethodsObject;
2679
t_5 = CALL_1ARGS( t_6, a_obj );
2680
CHECK_FUNC_RESULT( t_5 )
2681
CHECK_BOOL( t_5 )
2682
t_4 = (Obj)(UInt)(t_5 != False);
2683
t_2 = t_4;
2684
}
2685
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2686
if ( t_1 ) {
2687
2688
/* RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) ); */
2689
t_1 = GF_RunImmediateMethods;
2690
t_3 = GF_SUB__FLAGS;
2691
C_ELM_POSOBJ_NLE( t_4, l_newtype, 2 );
2692
C_ELM_POSOBJ_NLE( t_5, l_type, 2 );
2693
t_2 = CALL_2ARGS( t_3, t_4, t_5 );
2694
CHECK_FUNC_RESULT( t_2 )
2695
CALL_2ARGS( t_1, a_obj, t_2 );
2696
2697
}
2698
/* fi */
2699
2700
}
2701
2702
/* elif IS_DATOBJ( obj ) then */
2703
else {
2704
t_3 = GF_IS__DATOBJ;
2705
t_2 = CALL_1ARGS( t_3, a_obj );
2706
CHECK_FUNC_RESULT( t_2 )
2707
CHECK_BOOL( t_2 )
2708
t_1 = (Obj)(UInt)(t_2 != False);
2709
if ( t_1 ) {
2710
2711
/* type := TYPE_OBJ( obj ); */
2712
t_2 = GF_TYPE__OBJ;
2713
t_1 = CALL_1ARGS( t_2, a_obj );
2714
CHECK_FUNC_RESULT( t_1 )
2715
l_type = t_1;
2716
2717
/* newtype := Subtype2( type, filter ); */
2718
t_2 = GF_Subtype2;
2719
t_1 = CALL_2ARGS( t_2, l_type, a_filter );
2720
CHECK_FUNC_RESULT( t_1 )
2721
l_newtype = t_1;
2722
2723
/* SET_TYPE_DATOBJ( obj, newtype ); */
2724
t_1 = GF_SET__TYPE__DATOBJ;
2725
CALL_2ARGS( t_1, a_obj, l_newtype );
2726
2727
/* if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then */
2728
t_4 = GC_IGNORE__IMMEDIATE__METHODS;
2729
CHECK_BOUND( t_4, "IGNORE_IMMEDIATE_METHODS" )
2730
CHECK_BOOL( t_4 )
2731
t_3 = (Obj)(UInt)(t_4 != False);
2732
t_2 = t_3;
2733
if ( ! t_2 ) {
2734
t_6 = GF_IsNoImmediateMethodsObject;
2735
t_5 = CALL_1ARGS( t_6, a_obj );
2736
CHECK_FUNC_RESULT( t_5 )
2737
CHECK_BOOL( t_5 )
2738
t_4 = (Obj)(UInt)(t_5 != False);
2739
t_2 = t_4;
2740
}
2741
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
2742
if ( t_1 ) {
2743
2744
/* RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) ); */
2745
t_1 = GF_RunImmediateMethods;
2746
t_3 = GF_SUB__FLAGS;
2747
C_ELM_POSOBJ_NLE( t_4, l_newtype, 2 );
2748
C_ELM_POSOBJ_NLE( t_5, l_type, 2 );
2749
t_2 = CALL_2ARGS( t_3, t_4, t_5 );
2750
CHECK_FUNC_RESULT( t_2 )
2751
CALL_2ARGS( t_1, a_obj, t_2 );
2752
2753
}
2754
/* fi */
2755
2756
}
2757
2758
/* elif IS_PLIST_REP( obj ) then */
2759
else {
2760
t_3 = GF_IS__PLIST__REP;
2761
t_2 = CALL_1ARGS( t_3, a_obj );
2762
CHECK_FUNC_RESULT( t_2 )
2763
CHECK_BOOL( t_2 )
2764
t_1 = (Obj)(UInt)(t_2 != False);
2765
if ( t_1 ) {
2766
2767
/* SET_FILTER_LIST( obj, filter ); */
2768
t_1 = GF_SET__FILTER__LIST;
2769
CALL_2ARGS( t_1, a_obj, a_filter );
2770
2771
}
2772
2773
/* elif IS_STRING_REP( obj ) then */
2774
else {
2775
t_3 = GF_IS__STRING__REP;
2776
t_2 = CALL_1ARGS( t_3, a_obj );
2777
CHECK_FUNC_RESULT( t_2 )
2778
CHECK_BOOL( t_2 )
2779
t_1 = (Obj)(UInt)(t_2 != False);
2780
if ( t_1 ) {
2781
2782
/* SET_FILTER_LIST( obj, filter ); */
2783
t_1 = GF_SET__FILTER__LIST;
2784
CALL_2ARGS( t_1, a_obj, a_filter );
2785
2786
}
2787
2788
/* elif IS_BLIST( obj ) then */
2789
else {
2790
t_3 = GF_IS__BLIST;
2791
t_2 = CALL_1ARGS( t_3, a_obj );
2792
CHECK_FUNC_RESULT( t_2 )
2793
CHECK_BOOL( t_2 )
2794
t_1 = (Obj)(UInt)(t_2 != False);
2795
if ( t_1 ) {
2796
2797
/* SET_FILTER_LIST( obj, filter ); */
2798
t_1 = GF_SET__FILTER__LIST;
2799
CALL_2ARGS( t_1, a_obj, a_filter );
2800
2801
}
2802
2803
/* elif IS_RANGE( obj ) then */
2804
else {
2805
t_3 = GF_IS__RANGE;
2806
t_2 = CALL_1ARGS( t_3, a_obj );
2807
CHECK_FUNC_RESULT( t_2 )
2808
CHECK_BOOL( t_2 )
2809
t_1 = (Obj)(UInt)(t_2 != False);
2810
if ( t_1 ) {
2811
2812
/* SET_FILTER_LIST( obj, filter ); */
2813
t_1 = GF_SET__FILTER__LIST;
2814
CALL_2ARGS( t_1, a_obj, a_filter );
2815
2816
}
2817
2818
/* else */
2819
else {
2820
2821
/* Error( "cannot set filter for internal object" ); */
2822
t_1 = GF_Error;
2823
C_NEW_STRING( t_2, 37, "cannot set filter for internal object" );
2824
CALL_1ARGS( t_1, t_2 );
2825
2826
}
2827
}
2828
}
2829
}
2830
}
2831
}
2832
}
2833
/* fi */
2834
2835
/* return; */
2836
RES_BRK_CURR_STAT();
2837
SWITCH_TO_OLD_FRAME(oldFrame);
2838
return 0;
2839
2840
/* return; */
2841
RES_BRK_CURR_STAT();
2842
SWITCH_TO_OLD_FRAME(oldFrame);
2843
return 0;
2844
}
2845
2846
/* handler for function 34 */
2847
static Obj HdlrFunc34 (
2848
Obj self,
2849
Obj a_obj,
2850
Obj a_filter )
2851
{
2852
Obj t_1 = 0;
2853
Obj t_2 = 0;
2854
Obj t_3 = 0;
2855
Obj t_4 = 0;
2856
Obj t_5 = 0;
2857
Bag oldFrame;
2858
OLD_BRK_CURR_STAT
2859
2860
/* allocate new stack frame */
2861
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
2862
REM_BRK_CURR_STAT();
2863
SET_BRK_CURR_STAT(0);
2864
2865
/* if IS_AND_FILTER( filter ) then */
2866
t_3 = GF_IS__AND__FILTER;
2867
t_2 = CALL_1ARGS( t_3, a_filter );
2868
CHECK_FUNC_RESULT( t_2 )
2869
CHECK_BOOL( t_2 )
2870
t_1 = (Obj)(UInt)(t_2 != False);
2871
if ( t_1 ) {
2872
2873
/* Error( "You can't reset an \"and-filter\". Reset components individually." ); */
2874
t_1 = GF_Error;
2875
C_NEW_STRING( t_2, 63, "You can't reset an \"and-filter\". Reset components individually." );
2876
CALL_1ARGS( t_1, t_2 );
2877
2878
}
2879
/* fi */
2880
2881
/* if IS_POSOBJ( obj ) then */
2882
t_3 = GF_IS__POSOBJ;
2883
t_2 = CALL_1ARGS( t_3, a_obj );
2884
CHECK_FUNC_RESULT( t_2 )
2885
CHECK_BOOL( t_2 )
2886
t_1 = (Obj)(UInt)(t_2 != False);
2887
if ( t_1 ) {
2888
2889
/* SET_TYPE_POSOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) ); */
2890
t_1 = GF_SET__TYPE__POSOBJ;
2891
t_3 = GF_SupType2;
2892
t_5 = GF_TYPE__OBJ;
2893
t_4 = CALL_1ARGS( t_5, a_obj );
2894
CHECK_FUNC_RESULT( t_4 )
2895
t_2 = CALL_2ARGS( t_3, t_4, a_filter );
2896
CHECK_FUNC_RESULT( t_2 )
2897
CALL_2ARGS( t_1, a_obj, t_2 );
2898
2899
}
2900
2901
/* elif IS_COMOBJ( obj ) then */
2902
else {
2903
t_3 = GF_IS__COMOBJ;
2904
t_2 = CALL_1ARGS( t_3, a_obj );
2905
CHECK_FUNC_RESULT( t_2 )
2906
CHECK_BOOL( t_2 )
2907
t_1 = (Obj)(UInt)(t_2 != False);
2908
if ( t_1 ) {
2909
2910
/* SET_TYPE_COMOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) ); */
2911
t_1 = GF_SET__TYPE__COMOBJ;
2912
t_3 = GF_SupType2;
2913
t_5 = GF_TYPE__OBJ;
2914
t_4 = CALL_1ARGS( t_5, a_obj );
2915
CHECK_FUNC_RESULT( t_4 )
2916
t_2 = CALL_2ARGS( t_3, t_4, a_filter );
2917
CHECK_FUNC_RESULT( t_2 )
2918
CALL_2ARGS( t_1, a_obj, t_2 );
2919
2920
}
2921
2922
/* elif IS_DATOBJ( obj ) then */
2923
else {
2924
t_3 = GF_IS__DATOBJ;
2925
t_2 = CALL_1ARGS( t_3, a_obj );
2926
CHECK_FUNC_RESULT( t_2 )
2927
CHECK_BOOL( t_2 )
2928
t_1 = (Obj)(UInt)(t_2 != False);
2929
if ( t_1 ) {
2930
2931
/* SET_TYPE_DATOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) ); */
2932
t_1 = GF_SET__TYPE__DATOBJ;
2933
t_3 = GF_SupType2;
2934
t_5 = GF_TYPE__OBJ;
2935
t_4 = CALL_1ARGS( t_5, a_obj );
2936
CHECK_FUNC_RESULT( t_4 )
2937
t_2 = CALL_2ARGS( t_3, t_4, a_filter );
2938
CHECK_FUNC_RESULT( t_2 )
2939
CALL_2ARGS( t_1, a_obj, t_2 );
2940
2941
}
2942
2943
/* elif IS_PLIST_REP( obj ) then */
2944
else {
2945
t_3 = GF_IS__PLIST__REP;
2946
t_2 = CALL_1ARGS( t_3, a_obj );
2947
CHECK_FUNC_RESULT( t_2 )
2948
CHECK_BOOL( t_2 )
2949
t_1 = (Obj)(UInt)(t_2 != False);
2950
if ( t_1 ) {
2951
2952
/* RESET_FILTER_LIST( obj, filter ); */
2953
t_1 = GF_RESET__FILTER__LIST;
2954
CALL_2ARGS( t_1, a_obj, a_filter );
2955
2956
}
2957
2958
/* elif IS_STRING_REP( obj ) then */
2959
else {
2960
t_3 = GF_IS__STRING__REP;
2961
t_2 = CALL_1ARGS( t_3, a_obj );
2962
CHECK_FUNC_RESULT( t_2 )
2963
CHECK_BOOL( t_2 )
2964
t_1 = (Obj)(UInt)(t_2 != False);
2965
if ( t_1 ) {
2966
2967
/* RESET_FILTER_LIST( obj, filter ); */
2968
t_1 = GF_RESET__FILTER__LIST;
2969
CALL_2ARGS( t_1, a_obj, a_filter );
2970
2971
}
2972
2973
/* elif IS_BLIST( obj ) then */
2974
else {
2975
t_3 = GF_IS__BLIST;
2976
t_2 = CALL_1ARGS( t_3, a_obj );
2977
CHECK_FUNC_RESULT( t_2 )
2978
CHECK_BOOL( t_2 )
2979
t_1 = (Obj)(UInt)(t_2 != False);
2980
if ( t_1 ) {
2981
2982
/* RESET_FILTER_LIST( obj, filter ); */
2983
t_1 = GF_RESET__FILTER__LIST;
2984
CALL_2ARGS( t_1, a_obj, a_filter );
2985
2986
}
2987
2988
/* elif IS_RANGE( obj ) then */
2989
else {
2990
t_3 = GF_IS__RANGE;
2991
t_2 = CALL_1ARGS( t_3, a_obj );
2992
CHECK_FUNC_RESULT( t_2 )
2993
CHECK_BOOL( t_2 )
2994
t_1 = (Obj)(UInt)(t_2 != False);
2995
if ( t_1 ) {
2996
2997
/* RESET_FILTER_LIST( obj, filter ); */
2998
t_1 = GF_RESET__FILTER__LIST;
2999
CALL_2ARGS( t_1, a_obj, a_filter );
3000
3001
}
3002
3003
/* else */
3004
else {
3005
3006
/* Error( "cannot reset filter for internal object" ); */
3007
t_1 = GF_Error;
3008
C_NEW_STRING( t_2, 39, "cannot reset filter for internal object" );
3009
CALL_1ARGS( t_1, t_2 );
3010
3011
}
3012
}
3013
}
3014
}
3015
}
3016
}
3017
}
3018
/* fi */
3019
3020
/* return; */
3021
RES_BRK_CURR_STAT();
3022
SWITCH_TO_OLD_FRAME(oldFrame);
3023
return 0;
3024
3025
/* return; */
3026
RES_BRK_CURR_STAT();
3027
SWITCH_TO_OLD_FRAME(oldFrame);
3028
return 0;
3029
}
3030
3031
/* handler for function 35 */
3032
static Obj HdlrFunc35 (
3033
Obj self,
3034
Obj a_obj,
3035
Obj a_filter,
3036
Obj a_val )
3037
{
3038
Obj t_1 = 0;
3039
Bag oldFrame;
3040
OLD_BRK_CURR_STAT
3041
3042
/* allocate new stack frame */
3043
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
3044
REM_BRK_CURR_STAT();
3045
SET_BRK_CURR_STAT(0);
3046
3047
/* if val then */
3048
CHECK_BOOL( a_val )
3049
t_1 = (Obj)(UInt)(a_val != False);
3050
if ( t_1 ) {
3051
3052
/* SetFilterObj( obj, filter ); */
3053
t_1 = GF_SetFilterObj;
3054
CALL_2ARGS( t_1, a_obj, a_filter );
3055
3056
}
3057
3058
/* else */
3059
else {
3060
3061
/* ResetFilterObj( obj, filter ); */
3062
t_1 = GF_ResetFilterObj;
3063
CALL_2ARGS( t_1, a_obj, a_filter );
3064
3065
}
3066
/* fi */
3067
3068
/* return; */
3069
RES_BRK_CURR_STAT();
3070
SWITCH_TO_OLD_FRAME(oldFrame);
3071
return 0;
3072
3073
/* return; */
3074
RES_BRK_CURR_STAT();
3075
SWITCH_TO_OLD_FRAME(oldFrame);
3076
return 0;
3077
}
3078
3079
/* handler for function 36 */
3080
static Obj HdlrFunc36 (
3081
Obj self,
3082
Obj a_arg )
3083
{
3084
Obj l_obj = 0;
3085
Obj l_type = 0;
3086
Obj l_flags = 0;
3087
Obj l_attr = 0;
3088
Obj l_val = 0;
3089
Obj l_i = 0;
3090
Obj l_extra = 0;
3091
Obj l_nfilt = 0;
3092
Obj l_nflags = 0;
3093
Obj t_1 = 0;
3094
Obj t_2 = 0;
3095
Obj t_3 = 0;
3096
Obj t_4 = 0;
3097
Obj t_5 = 0;
3098
Obj t_6 = 0;
3099
Obj t_7 = 0;
3100
Obj t_8 = 0;
3101
Obj t_9 = 0;
3102
Obj t_10 = 0;
3103
Obj t_11 = 0;
3104
Bag oldFrame;
3105
OLD_BRK_CURR_STAT
3106
3107
/* allocate new stack frame */
3108
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
3109
REM_BRK_CURR_STAT();
3110
SET_BRK_CURR_STAT(0);
3111
3112
/* obj := arg[1]; */
3113
C_ELM_LIST_FPL( t_1, a_arg, INTOBJ_INT(1) )
3114
l_obj = t_1;
3115
3116
/* if IsAttributeStoringRep( obj ) then */
3117
t_3 = GF_IsAttributeStoringRep;
3118
t_2 = CALL_1ARGS( t_3, l_obj );
3119
CHECK_FUNC_RESULT( t_2 )
3120
CHECK_BOOL( t_2 )
3121
t_1 = (Obj)(UInt)(t_2 != False);
3122
if ( t_1 ) {
3123
3124
/* extra := [ ]; */
3125
t_1 = NEW_PLIST( T_PLIST, 0 );
3126
SET_LEN_PLIST( t_1, 0 );
3127
l_extra = t_1;
3128
3129
/* type := TypeObj( obj ); */
3130
t_2 = GF_TypeObj;
3131
t_1 = CALL_1ARGS( t_2, l_obj );
3132
CHECK_FUNC_RESULT( t_1 )
3133
l_type = t_1;
3134
3135
/* flags := FlagsType( type ); */
3136
t_2 = GF_FlagsType;
3137
t_1 = CALL_1ARGS( t_2, l_type );
3138
CHECK_FUNC_RESULT( t_1 )
3139
l_flags = t_1;
3140
3141
/* nfilt := IS_OBJECT; */
3142
t_1 = GC_IS__OBJECT;
3143
CHECK_BOUND( t_1, "IS_OBJECT" )
3144
l_nfilt = t_1;
3145
3146
/* for i in [ 2, 4 .. LEN_LIST( arg ) - 1 ] do */
3147
t_7 = GF_LEN__LIST;
3148
t_6 = CALL_1ARGS( t_7, a_arg );
3149
CHECK_FUNC_RESULT( t_6 )
3150
C_DIFF_FIA( t_5, t_6, INTOBJ_INT(1) )
3151
t_4 = Range3Check( INTOBJ_INT(2), INTOBJ_INT(4), t_5 );
3152
if ( IS_SMALL_LIST(t_4) ) {
3153
t_3 = (Obj)(UInt)1;
3154
t_1 = INTOBJ_INT(1);
3155
}
3156
else {
3157
t_3 = (Obj)(UInt)0;
3158
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
3159
}
3160
while ( 1 ) {
3161
if ( t_3 ) {
3162
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
3163
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
3164
t_1 = (Obj)(((UInt)t_1)+4);
3165
if ( t_2 == 0 ) continue;
3166
}
3167
else {
3168
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
3169
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
3170
}
3171
l_i = t_2;
3172
3173
/* attr := arg[i]; */
3174
CHECK_INT_POS( l_i )
3175
C_ELM_LIST_FPL( t_5, a_arg, l_i )
3176
l_attr = t_5;
3177
3178
/* val := arg[i + 1]; */
3179
C_SUM_FIA( t_6, l_i, INTOBJ_INT(1) )
3180
CHECK_INT_POS( t_6 )
3181
C_ELM_LIST_FPL( t_5, a_arg, t_6 )
3182
l_val = t_5;
3183
3184
/* if 0 <> FLAG1_FILTER( attr ) then */
3185
t_7 = GF_FLAG1__FILTER;
3186
t_6 = CALL_1ARGS( t_7, l_attr );
3187
CHECK_FUNC_RESULT( t_6 )
3188
t_5 = (Obj)(UInt)( ! EQ( INTOBJ_INT(0), t_6 ));
3189
if ( t_5 ) {
3190
3191
/* if val then */
3192
CHECK_BOOL( l_val )
3193
t_5 = (Obj)(UInt)(l_val != False);
3194
if ( t_5 ) {
3195
3196
/* nfilt := nfilt and attr; */
3197
if ( l_nfilt == False ) {
3198
t_5 = l_nfilt;
3199
}
3200
else if ( l_nfilt == True ) {
3201
CHECK_BOOL( l_attr )
3202
t_5 = l_attr;
3203
}
3204
else {
3205
CHECK_FUNC( l_nfilt )
3206
CHECK_FUNC( l_attr )
3207
t_5 = NewAndFilter( l_nfilt, l_attr );
3208
}
3209
l_nfilt = t_5;
3210
3211
}
3212
3213
/* else */
3214
else {
3215
3216
/* nfilt := nfilt and Tester( attr ); */
3217
if ( l_nfilt == False ) {
3218
t_5 = l_nfilt;
3219
}
3220
else if ( l_nfilt == True ) {
3221
t_7 = GF_Tester;
3222
t_6 = CALL_1ARGS( t_7, l_attr );
3223
CHECK_FUNC_RESULT( t_6 )
3224
CHECK_BOOL( t_6 )
3225
t_5 = t_6;
3226
}
3227
else {
3228
CHECK_FUNC( l_nfilt )
3229
t_8 = GF_Tester;
3230
t_7 = CALL_1ARGS( t_8, l_attr );
3231
CHECK_FUNC_RESULT( t_7 )
3232
CHECK_FUNC( t_7 )
3233
t_5 = NewAndFilter( l_nfilt, t_7 );
3234
}
3235
l_nfilt = t_5;
3236
3237
}
3238
/* fi */
3239
3240
}
3241
3242
/* elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> 12 then */
3243
else {
3244
t_7 = GF_LEN__LIST;
3245
t_9 = GF_METHODS__OPERATION;
3246
t_11 = GF_Setter;
3247
t_10 = CALL_1ARGS( t_11, l_attr );
3248
CHECK_FUNC_RESULT( t_10 )
3249
t_8 = CALL_2ARGS( t_9, t_10, INTOBJ_INT(2) );
3250
CHECK_FUNC_RESULT( t_8 )
3251
t_6 = CALL_1ARGS( t_7, t_8 );
3252
CHECK_FUNC_RESULT( t_6 )
3253
t_5 = (Obj)(UInt)( ! EQ( t_6, INTOBJ_INT(12) ));
3254
if ( t_5 ) {
3255
3256
/* ADD_LIST( extra, attr ); */
3257
t_5 = GF_ADD__LIST;
3258
CALL_2ARGS( t_5, l_extra, l_attr );
3259
3260
/* ADD_LIST( extra, val ); */
3261
t_5 = GF_ADD__LIST;
3262
CALL_2ARGS( t_5, l_extra, l_val );
3263
3264
}
3265
3266
/* else */
3267
else {
3268
3269
/* obj!.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val ); */
3270
t_6 = GF_NAME__FUNC;
3271
t_5 = CALL_1ARGS( t_6, l_attr );
3272
CHECK_FUNC_RESULT( t_5 )
3273
t_7 = GF_IMMUTABLE__COPY__OBJ;
3274
t_6 = CALL_1ARGS( t_7, l_val );
3275
CHECK_FUNC_RESULT( t_6 )
3276
if ( TNUM_OBJ(l_obj) == T_COMOBJ ) {
3277
AssPRec( l_obj, RNamObj(t_5), t_6 );
3278
}
3279
else {
3280
ASS_REC( l_obj, RNamObj(t_5), t_6 );
3281
}
3282
3283
/* nfilt := nfilt and Tester( attr ); */
3284
if ( l_nfilt == False ) {
3285
t_5 = l_nfilt;
3286
}
3287
else if ( l_nfilt == True ) {
3288
t_7 = GF_Tester;
3289
t_6 = CALL_1ARGS( t_7, l_attr );
3290
CHECK_FUNC_RESULT( t_6 )
3291
CHECK_BOOL( t_6 )
3292
t_5 = t_6;
3293
}
3294
else {
3295
CHECK_FUNC( l_nfilt )
3296
t_8 = GF_Tester;
3297
t_7 = CALL_1ARGS( t_8, l_attr );
3298
CHECK_FUNC_RESULT( t_7 )
3299
CHECK_FUNC( t_7 )
3300
t_5 = NewAndFilter( l_nfilt, t_7 );
3301
}
3302
l_nfilt = t_5;
3303
3304
}
3305
}
3306
/* fi */
3307
3308
}
3309
/* od */
3310
3311
/* nflags := FLAGS_FILTER( nfilt ); */
3312
t_2 = GF_FLAGS__FILTER;
3313
t_1 = CALL_1ARGS( t_2, l_nfilt );
3314
CHECK_FUNC_RESULT( t_1 )
3315
l_nflags = t_1;
3316
3317
/* if not IS_SUBSET_FLAGS( flags, nflags ) then */
3318
t_4 = GF_IS__SUBSET__FLAGS;
3319
t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );
3320
CHECK_FUNC_RESULT( t_3 )
3321
CHECK_BOOL( t_3 )
3322
t_2 = (Obj)(UInt)(t_3 != False);
3323
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
3324
if ( t_1 ) {
3325
3326
/* flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) ); */
3327
t_2 = GF_WITH__IMPS__FLAGS;
3328
t_4 = GF_AND__FLAGS;
3329
t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );
3330
CHECK_FUNC_RESULT( t_3 )
3331
t_1 = CALL_1ARGS( t_2, t_3 );
3332
CHECK_FUNC_RESULT( t_1 )
3333
l_flags = t_1;
3334
3335
/* ChangeTypeObj( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj ); */
3336
t_1 = GF_ChangeTypeObj;
3337
t_3 = GF_NEW__TYPE;
3338
t_4 = GC_TypeOfTypes;
3339
CHECK_BOUND( t_4, "TypeOfTypes" )
3340
t_6 = GF_FamilyType;
3341
t_5 = CALL_1ARGS( t_6, l_type );
3342
CHECK_FUNC_RESULT( t_5 )
3343
t_7 = GF_DataType;
3344
t_6 = CALL_1ARGS( t_7, l_type );
3345
CHECK_FUNC_RESULT( t_6 )
3346
t_2 = CALL_4ARGS( t_3, t_4, t_5, l_flags, t_6 );
3347
CHECK_FUNC_RESULT( t_2 )
3348
CALL_2ARGS( t_1, t_2, l_obj );
3349
3350
}
3351
/* fi */
3352
3353
/* for i in [ 2, 4 .. LEN_LIST( extra ) ] do */
3354
t_6 = GF_LEN__LIST;
3355
t_5 = CALL_1ARGS( t_6, l_extra );
3356
CHECK_FUNC_RESULT( t_5 )
3357
t_4 = Range3Check( INTOBJ_INT(2), INTOBJ_INT(4), t_5 );
3358
if ( IS_SMALL_LIST(t_4) ) {
3359
t_3 = (Obj)(UInt)1;
3360
t_1 = INTOBJ_INT(1);
3361
}
3362
else {
3363
t_3 = (Obj)(UInt)0;
3364
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
3365
}
3366
while ( 1 ) {
3367
if ( t_3 ) {
3368
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
3369
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
3370
t_1 = (Obj)(((UInt)t_1)+4);
3371
if ( t_2 == 0 ) continue;
3372
}
3373
else {
3374
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
3375
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
3376
}
3377
l_i = t_2;
3378
3379
/* Setter( extra[i - 1] )( obj, extra[i] ); */
3380
t_6 = GF_Setter;
3381
C_DIFF_FIA( t_8, l_i, INTOBJ_INT(1) )
3382
CHECK_INT_POS( t_8 )
3383
C_ELM_LIST_FPL( t_7, l_extra, t_8 )
3384
t_5 = CALL_1ARGS( t_6, t_7 );
3385
CHECK_FUNC_RESULT( t_5 )
3386
CHECK_FUNC( t_5 )
3387
CHECK_INT_POS( l_i )
3388
C_ELM_LIST_FPL( t_6, l_extra, l_i )
3389
CALL_2ARGS( t_5, l_obj, t_6 );
3390
3391
}
3392
/* od */
3393
3394
}
3395
3396
/* else */
3397
else {
3398
3399
/* extra := arg; */
3400
l_extra = a_arg;
3401
3402
/* for i in [ 2, 4 .. LEN_LIST( extra ) ] do */
3403
t_6 = GF_LEN__LIST;
3404
t_5 = CALL_1ARGS( t_6, l_extra );
3405
CHECK_FUNC_RESULT( t_5 )
3406
t_4 = Range3Check( INTOBJ_INT(2), INTOBJ_INT(4), t_5 );
3407
if ( IS_SMALL_LIST(t_4) ) {
3408
t_3 = (Obj)(UInt)1;
3409
t_1 = INTOBJ_INT(1);
3410
}
3411
else {
3412
t_3 = (Obj)(UInt)0;
3413
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
3414
}
3415
while ( 1 ) {
3416
if ( t_3 ) {
3417
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
3418
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
3419
t_1 = (Obj)(((UInt)t_1)+4);
3420
if ( t_2 == 0 ) continue;
3421
}
3422
else {
3423
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
3424
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
3425
}
3426
l_i = t_2;
3427
3428
/* Setter( extra[i] )( obj, extra[i + 1] ); */
3429
t_6 = GF_Setter;
3430
CHECK_INT_POS( l_i )
3431
C_ELM_LIST_FPL( t_7, l_extra, l_i )
3432
t_5 = CALL_1ARGS( t_6, t_7 );
3433
CHECK_FUNC_RESULT( t_5 )
3434
CHECK_FUNC( t_5 )
3435
C_SUM_FIA( t_7, l_i, INTOBJ_INT(1) )
3436
CHECK_INT_POS( t_7 )
3437
C_ELM_LIST_FPL( t_6, l_extra, t_7 )
3438
CALL_2ARGS( t_5, l_obj, t_6 );
3439
3440
}
3441
/* od */
3442
3443
}
3444
/* fi */
3445
3446
/* return; */
3447
RES_BRK_CURR_STAT();
3448
SWITCH_TO_OLD_FRAME(oldFrame);
3449
return 0;
3450
3451
/* return; */
3452
RES_BRK_CURR_STAT();
3453
SWITCH_TO_OLD_FRAME(oldFrame);
3454
return 0;
3455
}
3456
3457
/* handler for function 37 */
3458
static Obj HdlrFunc37 (
3459
Obj self,
3460
Obj a_arg )
3461
{
3462
Obj l_obj = 0;
3463
Obj l_type = 0;
3464
Obj l_flags = 0;
3465
Obj l_attr = 0;
3466
Obj l_val = 0;
3467
Obj l_i = 0;
3468
Obj l_extra = 0;
3469
Obj l_nflags = 0;
3470
Obj t_1 = 0;
3471
Obj t_2 = 0;
3472
Obj t_3 = 0;
3473
Obj t_4 = 0;
3474
Obj t_5 = 0;
3475
Obj t_6 = 0;
3476
Obj t_7 = 0;
3477
Obj t_8 = 0;
3478
Obj t_9 = 0;
3479
Obj t_10 = 0;
3480
Obj t_11 = 0;
3481
Bag oldFrame;
3482
OLD_BRK_CURR_STAT
3483
3484
/* allocate new stack frame */
3485
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
3486
REM_BRK_CURR_STAT();
3487
SET_BRK_CURR_STAT(0);
3488
3489
/* obj := arg[1]; */
3490
C_ELM_LIST_FPL( t_1, a_arg, INTOBJ_INT(1) )
3491
l_obj = t_1;
3492
3493
/* type := arg[2]; */
3494
C_ELM_LIST_FPL( t_1, a_arg, INTOBJ_INT(2) )
3495
l_type = t_1;
3496
3497
/* flags := FlagsType( type ); */
3498
t_2 = GF_FlagsType;
3499
t_1 = CALL_1ARGS( t_2, l_type );
3500
CHECK_FUNC_RESULT( t_1 )
3501
l_flags = t_1;
3502
3503
/* extra := [ ]; */
3504
t_1 = NEW_PLIST( T_PLIST, 0 );
3505
SET_LEN_PLIST( t_1, 0 );
3506
l_extra = t_1;
3507
3508
/* if not IS_SUBSET_FLAGS( flags, IsAttributeStoringRepFlags ) then */
3509
t_4 = GF_IS__SUBSET__FLAGS;
3510
t_5 = GC_IsAttributeStoringRepFlags;
3511
CHECK_BOUND( t_5, "IsAttributeStoringRepFlags" )
3512
t_3 = CALL_2ARGS( t_4, l_flags, t_5 );
3513
CHECK_FUNC_RESULT( t_3 )
3514
CHECK_BOOL( t_3 )
3515
t_2 = (Obj)(UInt)(t_3 != False);
3516
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
3517
if ( t_1 ) {
3518
3519
/* extra := arg{[ 3 .. LEN_LIST( arg ) ]}; */
3520
t_4 = GF_LEN__LIST;
3521
t_3 = CALL_1ARGS( t_4, a_arg );
3522
CHECK_FUNC_RESULT( t_3 )
3523
t_2 = Range2Check( INTOBJ_INT(3), t_3 );
3524
t_1 = ElmsListCheck( a_arg, t_2 );
3525
l_extra = t_1;
3526
3527
/* INFO_OWA( "#W ObjectifyWithAttributes called ", "for non-attribute storing rep\n" ); */
3528
t_1 = GF_INFO__OWA;
3529
C_NEW_STRING( t_2, 34, "#W ObjectifyWithAttributes called " );
3530
C_NEW_STRING( t_3, 30, "for non-attribute storing rep\n" );
3531
CALL_2ARGS( t_1, t_2, t_3 );
3532
3533
/* Objectify( type, obj ); */
3534
t_1 = GF_Objectify;
3535
CALL_2ARGS( t_1, l_type, l_obj );
3536
3537
}
3538
3539
/* else */
3540
else {
3541
3542
/* nflags := EMPTY_FLAGS; */
3543
t_1 = GC_EMPTY__FLAGS;
3544
CHECK_BOUND( t_1, "EMPTY_FLAGS" )
3545
l_nflags = t_1;
3546
3547
/* for i in [ 3, 5 .. LEN_LIST( arg ) - 1 ] do */
3548
t_7 = GF_LEN__LIST;
3549
t_6 = CALL_1ARGS( t_7, a_arg );
3550
CHECK_FUNC_RESULT( t_6 )
3551
C_DIFF_FIA( t_5, t_6, INTOBJ_INT(1) )
3552
t_4 = Range3Check( INTOBJ_INT(3), INTOBJ_INT(5), t_5 );
3553
if ( IS_SMALL_LIST(t_4) ) {
3554
t_3 = (Obj)(UInt)1;
3555
t_1 = INTOBJ_INT(1);
3556
}
3557
else {
3558
t_3 = (Obj)(UInt)0;
3559
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
3560
}
3561
while ( 1 ) {
3562
if ( t_3 ) {
3563
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
3564
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
3565
t_1 = (Obj)(((UInt)t_1)+4);
3566
if ( t_2 == 0 ) continue;
3567
}
3568
else {
3569
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
3570
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
3571
}
3572
l_i = t_2;
3573
3574
/* attr := arg[i]; */
3575
CHECK_INT_POS( l_i )
3576
C_ELM_LIST_FPL( t_5, a_arg, l_i )
3577
l_attr = t_5;
3578
3579
/* val := arg[i + 1]; */
3580
C_SUM_FIA( t_6, l_i, INTOBJ_INT(1) )
3581
CHECK_INT_POS( t_6 )
3582
C_ELM_LIST_FPL( t_5, a_arg, t_6 )
3583
l_val = t_5;
3584
3585
/* if 0 <> FLAG1_FILTER( attr ) then */
3586
t_7 = GF_FLAG1__FILTER;
3587
t_6 = CALL_1ARGS( t_7, l_attr );
3588
CHECK_FUNC_RESULT( t_6 )
3589
t_5 = (Obj)(UInt)( ! EQ( INTOBJ_INT(0), t_6 ));
3590
if ( t_5 ) {
3591
3592
/* if val then */
3593
CHECK_BOOL( l_val )
3594
t_5 = (Obj)(UInt)(l_val != False);
3595
if ( t_5 ) {
3596
3597
/* nflags := AND_FLAGS( nflags, FLAGS_FILTER( attr ) ); */
3598
t_6 = GF_AND__FLAGS;
3599
t_8 = GF_FLAGS__FILTER;
3600
t_7 = CALL_1ARGS( t_8, l_attr );
3601
CHECK_FUNC_RESULT( t_7 )
3602
t_5 = CALL_2ARGS( t_6, l_nflags, t_7 );
3603
CHECK_FUNC_RESULT( t_5 )
3604
l_nflags = t_5;
3605
3606
}
3607
3608
/* else */
3609
else {
3610
3611
/* nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) ); */
3612
t_6 = GF_AND__FLAGS;
3613
t_8 = GF_FLAGS__FILTER;
3614
t_10 = GF_Tester;
3615
t_9 = CALL_1ARGS( t_10, l_attr );
3616
CHECK_FUNC_RESULT( t_9 )
3617
t_7 = CALL_1ARGS( t_8, t_9 );
3618
CHECK_FUNC_RESULT( t_7 )
3619
t_5 = CALL_2ARGS( t_6, l_nflags, t_7 );
3620
CHECK_FUNC_RESULT( t_5 )
3621
l_nflags = t_5;
3622
3623
}
3624
/* fi */
3625
3626
}
3627
3628
/* elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> LENGTH_SETTER_METHODS_2 then */
3629
else {
3630
t_7 = GF_LEN__LIST;
3631
t_9 = GF_METHODS__OPERATION;
3632
t_11 = GF_Setter;
3633
t_10 = CALL_1ARGS( t_11, l_attr );
3634
CHECK_FUNC_RESULT( t_10 )
3635
t_8 = CALL_2ARGS( t_9, t_10, INTOBJ_INT(2) );
3636
CHECK_FUNC_RESULT( t_8 )
3637
t_6 = CALL_1ARGS( t_7, t_8 );
3638
CHECK_FUNC_RESULT( t_6 )
3639
t_7 = GC_LENGTH__SETTER__METHODS__2;
3640
CHECK_BOUND( t_7, "LENGTH_SETTER_METHODS_2" )
3641
t_5 = (Obj)(UInt)( ! EQ( t_6, t_7 ));
3642
if ( t_5 ) {
3643
3644
/* ADD_LIST( extra, attr ); */
3645
t_5 = GF_ADD__LIST;
3646
CALL_2ARGS( t_5, l_extra, l_attr );
3647
3648
/* ADD_LIST( extra, val ); */
3649
t_5 = GF_ADD__LIST;
3650
CALL_2ARGS( t_5, l_extra, l_val );
3651
3652
}
3653
3654
/* else */
3655
else {
3656
3657
/* obj.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val ); */
3658
t_6 = GF_NAME__FUNC;
3659
t_5 = CALL_1ARGS( t_6, l_attr );
3660
CHECK_FUNC_RESULT( t_5 )
3661
t_7 = GF_IMMUTABLE__COPY__OBJ;
3662
t_6 = CALL_1ARGS( t_7, l_val );
3663
CHECK_FUNC_RESULT( t_6 )
3664
ASS_REC( l_obj, RNamObj(t_5), t_6 );
3665
3666
/* nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) ); */
3667
t_6 = GF_AND__FLAGS;
3668
t_8 = GF_FLAGS__FILTER;
3669
t_10 = GF_Tester;
3670
t_9 = CALL_1ARGS( t_10, l_attr );
3671
CHECK_FUNC_RESULT( t_9 )
3672
t_7 = CALL_1ARGS( t_8, t_9 );
3673
CHECK_FUNC_RESULT( t_7 )
3674
t_5 = CALL_2ARGS( t_6, l_nflags, t_7 );
3675
CHECK_FUNC_RESULT( t_5 )
3676
l_nflags = t_5;
3677
3678
}
3679
}
3680
/* fi */
3681
3682
}
3683
/* od */
3684
3685
/* if not IS_SUBSET_FLAGS( flags, nflags ) then */
3686
t_4 = GF_IS__SUBSET__FLAGS;
3687
t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );
3688
CHECK_FUNC_RESULT( t_3 )
3689
CHECK_BOOL( t_3 )
3690
t_2 = (Obj)(UInt)(t_3 != False);
3691
t_1 = (Obj)(UInt)( ! ((Int)t_2) );
3692
if ( t_1 ) {
3693
3694
/* flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) ); */
3695
t_2 = GF_WITH__IMPS__FLAGS;
3696
t_4 = GF_AND__FLAGS;
3697
t_3 = CALL_2ARGS( t_4, l_flags, l_nflags );
3698
CHECK_FUNC_RESULT( t_3 )
3699
t_1 = CALL_1ARGS( t_2, t_3 );
3700
CHECK_FUNC_RESULT( t_1 )
3701
l_flags = t_1;
3702
3703
/* Objectify( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj ); */
3704
t_1 = GF_Objectify;
3705
t_3 = GF_NEW__TYPE;
3706
t_4 = GC_TypeOfTypes;
3707
CHECK_BOUND( t_4, "TypeOfTypes" )
3708
t_6 = GF_FamilyType;
3709
t_5 = CALL_1ARGS( t_6, l_type );
3710
CHECK_FUNC_RESULT( t_5 )
3711
t_7 = GF_DataType;
3712
t_6 = CALL_1ARGS( t_7, l_type );
3713
CHECK_FUNC_RESULT( t_6 )
3714
t_2 = CALL_4ARGS( t_3, t_4, t_5, l_flags, t_6 );
3715
CHECK_FUNC_RESULT( t_2 )
3716
CALL_2ARGS( t_1, t_2, l_obj );
3717
3718
}
3719
3720
/* else */
3721
else {
3722
3723
/* Objectify( type, obj ); */
3724
t_1 = GF_Objectify;
3725
CALL_2ARGS( t_1, l_type, l_obj );
3726
3727
}
3728
/* fi */
3729
3730
}
3731
/* fi */
3732
3733
/* for i in [ 1, 3 .. LEN_LIST( extra ) - 1 ] do */
3734
t_7 = GF_LEN__LIST;
3735
t_6 = CALL_1ARGS( t_7, l_extra );
3736
CHECK_FUNC_RESULT( t_6 )
3737
C_DIFF_FIA( t_5, t_6, INTOBJ_INT(1) )
3738
t_4 = Range3Check( INTOBJ_INT(1), INTOBJ_INT(3), t_5 );
3739
if ( IS_SMALL_LIST(t_4) ) {
3740
t_3 = (Obj)(UInt)1;
3741
t_1 = INTOBJ_INT(1);
3742
}
3743
else {
3744
t_3 = (Obj)(UInt)0;
3745
t_1 = CALL_1ARGS( GF_ITERATOR, t_4 );
3746
}
3747
while ( 1 ) {
3748
if ( t_3 ) {
3749
if ( LEN_LIST(t_4) < INT_INTOBJ(t_1) ) break;
3750
t_2 = ELMV0_LIST( t_4, INT_INTOBJ(t_1) );
3751
t_1 = (Obj)(((UInt)t_1)+4);
3752
if ( t_2 == 0 ) continue;
3753
}
3754
else {
3755
if ( CALL_1ARGS( GF_IS_DONE_ITER, t_1 ) != False ) break;
3756
t_2 = CALL_1ARGS( GF_NEXT_ITER, t_1 );
3757
}
3758
l_i = t_2;
3759
3760
/* if Tester( extra[i] )( obj ) then */
3761
t_8 = GF_Tester;
3762
CHECK_INT_POS( l_i )
3763
C_ELM_LIST_FPL( t_9, l_extra, l_i )
3764
t_7 = CALL_1ARGS( t_8, t_9 );
3765
CHECK_FUNC_RESULT( t_7 )
3766
CHECK_FUNC( t_7 )
3767
t_6 = CALL_1ARGS( t_7, l_obj );
3768
CHECK_FUNC_RESULT( t_6 )
3769
CHECK_BOOL( t_6 )
3770
t_5 = (Obj)(UInt)(t_6 != False);
3771
if ( t_5 ) {
3772
3773
/* INFO_OWA( "#W Supplied type has tester of ", NAME_FUNC( extra[i] ), "with non-standard setter\n" ); */
3774
t_5 = GF_INFO__OWA;
3775
C_NEW_STRING( t_6, 32, "#W Supplied type has tester of " );
3776
t_8 = GF_NAME__FUNC;
3777
C_ELM_LIST_FPL( t_9, l_extra, l_i )
3778
t_7 = CALL_1ARGS( t_8, t_9 );
3779
CHECK_FUNC_RESULT( t_7 )
3780
C_NEW_STRING( t_8, 25, "with non-standard setter\n" );
3781
CALL_3ARGS( t_5, t_6, t_7, t_8 );
3782
3783
/* ResetFilterObj( obj, Tester( extra[i] ) ); */
3784
t_5 = GF_ResetFilterObj;
3785
t_7 = GF_Tester;
3786
C_ELM_LIST_FPL( t_8, l_extra, l_i )
3787
t_6 = CALL_1ARGS( t_7, t_8 );
3788
CHECK_FUNC_RESULT( t_6 )
3789
CALL_2ARGS( t_5, l_obj, t_6 );
3790
3791
}
3792
/* fi */
3793
3794
/* Setter( extra[i] )( obj, extra[i + 1] ); */
3795
t_6 = GF_Setter;
3796
C_ELM_LIST_FPL( t_7, l_extra, l_i )
3797
t_5 = CALL_1ARGS( t_6, t_7 );
3798
CHECK_FUNC_RESULT( t_5 )
3799
CHECK_FUNC( t_5 )
3800
C_SUM_FIA( t_7, l_i, INTOBJ_INT(1) )
3801
CHECK_INT_POS( t_7 )
3802
C_ELM_LIST_FPL( t_6, l_extra, t_7 )
3803
CALL_2ARGS( t_5, l_obj, t_6 );
3804
3805
}
3806
/* od */
3807
3808
/* return; */
3809
RES_BRK_CURR_STAT();
3810
SWITCH_TO_OLD_FRAME(oldFrame);
3811
return 0;
3812
3813
/* return; */
3814
RES_BRK_CURR_STAT();
3815
SWITCH_TO_OLD_FRAME(oldFrame);
3816
return 0;
3817
}
3818
3819
/* handler for function 1 */
3820
static Obj HdlrFunc1 (
3821
Obj self )
3822
{
3823
Obj t_1 = 0;
3824
Obj t_2 = 0;
3825
Obj t_3 = 0;
3826
Obj t_4 = 0;
3827
Obj t_5 = 0;
3828
Bag oldFrame;
3829
OLD_BRK_CURR_STAT
3830
3831
/* allocate new stack frame */
3832
SWITCH_TO_NEW_FRAME(self,0,0,oldFrame);
3833
REM_BRK_CURR_STAT();
3834
SET_BRK_CURR_STAT(0);
3835
3836
/* InstallAttributeFunction( function ( name, filter, getter, setter, tester, mutflag )
3837
InstallOtherMethod( getter, "system getter", true, [ IsAttributeStoringRep and tester ], GETTER_FLAGS, GETTER_FUNCTION( name ) );
3838
return;
3839
end ); */
3840
t_1 = GF_InstallAttributeFunction;
3841
t_2 = NewFunction( NameFunc[2], NargFunc[2], NamsFunc[2], HdlrFunc2 );
3842
ENVI_FUNC( t_2 ) = TLS(CurrLVars);
3843
t_3 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3844
STARTLINE_BODY(t_3) = INTOBJ_INT(19);
3845
ENDLINE_BODY(t_3) = INTOBJ_INT(26);
3846
FILENAME_BODY(t_3) = FileName;
3847
BODY_FUNC(t_2) = t_3;
3848
CHANGED_BAG( TLS(CurrLVars) );
3849
CALL_1ARGS( t_1, t_2 );
3850
3851
/* LENGTH_SETTER_METHODS_2 := LENGTH_SETTER_METHODS_2 + 6; */
3852
t_2 = GC_LENGTH__SETTER__METHODS__2;
3853
CHECK_BOUND( t_2, "LENGTH_SETTER_METHODS_2" )
3854
C_SUM_FIA( t_1, t_2, INTOBJ_INT(6) )
3855
AssGVar( G_LENGTH__SETTER__METHODS__2, t_1 );
3856
3857
/* InstallAttributeFunction( function ( name, filter, getter, setter, tester, mutflag )
3858
if mutflag then
3859
InstallOtherMethod( setter, "system mutable setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, function ( obj, val )
3860
obj!.(name) := val;
3861
SetFilterObj( obj, tester );
3862
return;
3863
end );
3864
else
3865
InstallOtherMethod( setter, "system setter", true, [ IsAttributeStoringRep, IS_OBJECT ], 0, SETTER_FUNCTION( name, tester ) );
3866
fi;
3867
return;
3868
end ); */
3869
t_1 = GF_InstallAttributeFunction;
3870
t_2 = NewFunction( NameFunc[3], NargFunc[3], NamsFunc[3], HdlrFunc3 );
3871
ENVI_FUNC( t_2 ) = TLS(CurrLVars);
3872
t_3 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3873
STARTLINE_BODY(t_3) = INTOBJ_INT(31);
3874
ENDLINE_BODY(t_3) = INTOBJ_INT(52);
3875
FILENAME_BODY(t_3) = FileName;
3876
BODY_FUNC(t_2) = t_3;
3877
CHANGED_BAG( TLS(CurrLVars) );
3878
CALL_1ARGS( t_1, t_2 );
3879
3880
/* Subtype := "defined below"; */
3881
C_NEW_STRING( t_1, 13, "defined below" );
3882
AssGVar( G_Subtype, t_1 );
3883
3884
/* BIND_GLOBAL( "NEW_FAMILY", function ( typeOfFamilies, name, req_filter, imp_filter )
3885
local type, pair, family;
3886
imp_filter := WITH_IMPS_FLAGS( AND_FLAGS( imp_filter, req_filter ) );
3887
type := Subtype( typeOfFamilies, IsAttributeStoringRep );
3888
for pair in CATEGORIES_FAMILY do
3889
if IS_SUBSET_FLAGS( imp_filter, pair[1] ) then
3890
type := Subtype( type, pair[2] );
3891
fi;
3892
od;
3893
family := rec(
3894
);
3895
SET_TYPE_COMOBJ( family, type );
3896
family!.NAME := name;
3897
family!.REQ_FLAGS := req_filter;
3898
family!.IMP_FLAGS := imp_filter;
3899
family!.TYPES := [ ];
3900
family!.nTYPES := 0;
3901
family!.HASH_SIZE := 32;
3902
family!.TYPES_LIST_FAM := [ ];
3903
family!.TYPES_LIST_FAM[27] := 0;
3904
return family;
3905
end ); */
3906
t_1 = GF_BIND__GLOBAL;
3907
C_NEW_STRING( t_2, 10, "NEW_FAMILY" );
3908
t_3 = NewFunction( NameFunc[5], NargFunc[5], NamsFunc[5], HdlrFunc5 );
3909
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
3910
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3911
STARTLINE_BODY(t_4) = INTOBJ_INT(89);
3912
ENDLINE_BODY(t_4) = INTOBJ_INT(117);
3913
FILENAME_BODY(t_4) = FileName;
3914
BODY_FUNC(t_3) = t_4;
3915
CHANGED_BAG( TLS(CurrLVars) );
3916
CALL_2ARGS( t_1, t_2, t_3 );
3917
3918
/* BIND_GLOBAL( "NewFamily2", function ( typeOfFamilies, name )
3919
return NEW_FAMILY( typeOfFamilies, name, EMPTY_FLAGS, EMPTY_FLAGS );
3920
end ); */
3921
t_1 = GF_BIND__GLOBAL;
3922
C_NEW_STRING( t_2, 10, "NewFamily2" );
3923
t_3 = NewFunction( NameFunc[6], NargFunc[6], NamsFunc[6], HdlrFunc6 );
3924
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
3925
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3926
STARTLINE_BODY(t_4) = INTOBJ_INT(120);
3927
ENDLINE_BODY(t_4) = INTOBJ_INT(125);
3928
FILENAME_BODY(t_4) = FileName;
3929
BODY_FUNC(t_3) = t_4;
3930
CHANGED_BAG( TLS(CurrLVars) );
3931
CALL_2ARGS( t_1, t_2, t_3 );
3932
3933
/* BIND_GLOBAL( "NewFamily3", function ( typeOfFamilies, name, req )
3934
return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), EMPTY_FLAGS );
3935
end ); */
3936
t_1 = GF_BIND__GLOBAL;
3937
C_NEW_STRING( t_2, 10, "NewFamily3" );
3938
t_3 = NewFunction( NameFunc[7], NargFunc[7], NamsFunc[7], HdlrFunc7 );
3939
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
3940
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3941
STARTLINE_BODY(t_4) = INTOBJ_INT(128);
3942
ENDLINE_BODY(t_4) = INTOBJ_INT(133);
3943
FILENAME_BODY(t_4) = FileName;
3944
BODY_FUNC(t_3) = t_4;
3945
CHANGED_BAG( TLS(CurrLVars) );
3946
CALL_2ARGS( t_1, t_2, t_3 );
3947
3948
/* BIND_GLOBAL( "NewFamily4", function ( typeOfFamilies, name, req, imp )
3949
return NEW_FAMILY( typeOfFamilies, name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) );
3950
end ); */
3951
t_1 = GF_BIND__GLOBAL;
3952
C_NEW_STRING( t_2, 10, "NewFamily4" );
3953
t_3 = NewFunction( NameFunc[8], NargFunc[8], NamsFunc[8], HdlrFunc8 );
3954
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
3955
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3956
STARTLINE_BODY(t_4) = INTOBJ_INT(136);
3957
ENDLINE_BODY(t_4) = INTOBJ_INT(141);
3958
FILENAME_BODY(t_4) = FileName;
3959
BODY_FUNC(t_3) = t_4;
3960
CHANGED_BAG( TLS(CurrLVars) );
3961
CALL_2ARGS( t_1, t_2, t_3 );
3962
3963
/* BIND_GLOBAL( "NewFamily5", function ( typeOfFamilies, name, req, imp, filter )
3964
return NEW_FAMILY( Subtype( typeOfFamilies, filter ), name, FLAGS_FILTER( req ), FLAGS_FILTER( imp ) );
3965
end ); */
3966
t_1 = GF_BIND__GLOBAL;
3967
C_NEW_STRING( t_2, 10, "NewFamily5" );
3968
t_3 = NewFunction( NameFunc[9], NargFunc[9], NamsFunc[9], HdlrFunc9 );
3969
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
3970
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3971
STARTLINE_BODY(t_4) = INTOBJ_INT(145);
3972
ENDLINE_BODY(t_4) = INTOBJ_INT(150);
3973
FILENAME_BODY(t_4) = FileName;
3974
BODY_FUNC(t_3) = t_4;
3975
CHANGED_BAG( TLS(CurrLVars) );
3976
CALL_2ARGS( t_1, t_2, t_3 );
3977
3978
/* BIND_GLOBAL( "NewFamily", function ( arg... )
3979
if LEN_LIST( arg ) = 1 then
3980
return NewFamily2( TypeOfFamilies, arg[1] );
3981
elif LEN_LIST( arg ) = 2 then
3982
return NewFamily3( TypeOfFamilies, arg[1], arg[2] );
3983
elif LEN_LIST( arg ) = 3 then
3984
return NewFamily4( TypeOfFamilies, arg[1], arg[2], arg[3] );
3985
elif LEN_LIST( arg ) = 4 then
3986
return NewFamily5( TypeOfFamilies, arg[1], arg[2], arg[3], arg[4] );
3987
else
3988
Error( "usage: NewFamily( <name>, [ <req> [, <imp> ]] )" );
3989
fi;
3990
return;
3991
end ); */
3992
t_1 = GF_BIND__GLOBAL;
3993
C_NEW_STRING( t_2, 9, "NewFamily" );
3994
t_3 = NewFunction( NameFunc[10], NargFunc[10], NamsFunc[10], HdlrFunc10 );
3995
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
3996
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
3997
STARTLINE_BODY(t_4) = INTOBJ_INT(153);
3998
ENDLINE_BODY(t_4) = INTOBJ_INT(176);
3999
FILENAME_BODY(t_4) = FileName;
4000
BODY_FUNC(t_3) = t_4;
4001
CHANGED_BAG( TLS(CurrLVars) );
4002
CALL_2ARGS( t_1, t_2, t_3 );
4003
4004
/* NEW_TYPE_CACHE_MISS := 0; */
4005
AssGVar( G_NEW__TYPE__CACHE__MISS, INTOBJ_INT(0) );
4006
4007
/* NEW_TYPE_CACHE_HIT := 0; */
4008
AssGVar( G_NEW__TYPE__CACHE__HIT, INTOBJ_INT(0) );
4009
4010
/* BIND_GLOBAL( "NEW_TYPE", function ( typeOfTypes, family, flags, data )
4011
local hash, cache, cached, type, ncache, ncl, t;
4012
cache := family!.TYPES;
4013
hash := HASH_FLAGS( flags ) mod family!.HASH_SIZE + 1;
4014
if IsBound( cache[hash] ) then
4015
cached := cache[hash];
4016
if IS_EQUAL_FLAGS( flags, cached![2] ) then
4017
if IS_IDENTICAL_OBJ( data, cached![POS_DATA_TYPE] ) and IS_IDENTICAL_OBJ( typeOfTypes, TYPE_OBJ( cached ) ) then
4018
NEW_TYPE_CACHE_HIT := NEW_TYPE_CACHE_HIT + 1;
4019
return cached;
4020
else
4021
flags := cached![2];
4022
fi;
4023
fi;
4024
NEW_TYPE_CACHE_MISS := NEW_TYPE_CACHE_MISS + 1;
4025
fi;
4026
NEW_TYPE_NEXT_ID := NEW_TYPE_NEXT_ID + 1;
4027
if NEW_TYPE_NEXT_ID >= NEW_TYPE_ID_LIMIT then
4028
GASMAN( "collect" );
4029
FLUSH_ALL_METHOD_CACHES( );
4030
NEW_TYPE_NEXT_ID := COMPACT_TYPE_IDS( );
4031
fi;
4032
type := [ family, flags ];
4033
type[POS_DATA_TYPE] := data;
4034
type[POS_NUMB_TYPE] := NEW_TYPE_NEXT_ID;
4035
SET_TYPE_POSOBJ( type, typeOfTypes );
4036
if 3 * family!.nTYPES > family!.HASH_SIZE then
4037
ncache := [ ];
4038
ncl := 3 * family!.HASH_SIZE + 1;
4039
for t in cache do
4040
ncache[HASH_FLAGS( t![2] ) mod ncl + 1] := t;
4041
od;
4042
family!.HASH_SIZE := ncl;
4043
family!.TYPES := ncache;
4044
ncache[HASH_FLAGS( flags ) mod ncl + 1] := type;
4045
else
4046
cache[hash] := type;
4047
fi;
4048
family!.nTYPES := family!.nTYPES + 1;
4049
return type;
4050
end ); */
4051
t_1 = GF_BIND__GLOBAL;
4052
C_NEW_STRING( t_2, 8, "NEW_TYPE" );
4053
t_3 = NewFunction( NameFunc[11], NargFunc[11], NamsFunc[11], HdlrFunc11 );
4054
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4055
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4056
STARTLINE_BODY(t_4) = INTOBJ_INT(204);
4057
ENDLINE_BODY(t_4) = INTOBJ_INT(259);
4058
FILENAME_BODY(t_4) = FileName;
4059
BODY_FUNC(t_3) = t_4;
4060
CHANGED_BAG( TLS(CurrLVars) );
4061
CALL_2ARGS( t_1, t_2, t_3 );
4062
4063
/* BIND_GLOBAL( "NewType2", function ( typeOfTypes, family )
4064
return NEW_TYPE( typeOfTypes, family, family!.IMP_FLAGS, false );
4065
end ); */
4066
t_1 = GF_BIND__GLOBAL;
4067
C_NEW_STRING( t_2, 8, "NewType2" );
4068
t_3 = NewFunction( NameFunc[12], NargFunc[12], NamsFunc[12], HdlrFunc12 );
4069
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4070
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4071
STARTLINE_BODY(t_4) = INTOBJ_INT(263);
4072
ENDLINE_BODY(t_4) = INTOBJ_INT(268);
4073
FILENAME_BODY(t_4) = FileName;
4074
BODY_FUNC(t_3) = t_4;
4075
CHANGED_BAG( TLS(CurrLVars) );
4076
CALL_2ARGS( t_1, t_2, t_3 );
4077
4078
/* BIND_GLOBAL( "NewType3", function ( typeOfTypes, family, filter )
4079
return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), false );
4080
end ); */
4081
t_1 = GF_BIND__GLOBAL;
4082
C_NEW_STRING( t_2, 8, "NewType3" );
4083
t_3 = NewFunction( NameFunc[13], NargFunc[13], NamsFunc[13], HdlrFunc13 );
4084
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4085
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4086
STARTLINE_BODY(t_4) = INTOBJ_INT(271);
4087
ENDLINE_BODY(t_4) = INTOBJ_INT(278);
4088
FILENAME_BODY(t_4) = FileName;
4089
BODY_FUNC(t_3) = t_4;
4090
CHANGED_BAG( TLS(CurrLVars) );
4091
CALL_2ARGS( t_1, t_2, t_3 );
4092
4093
/* BIND_GLOBAL( "NewType4", function ( typeOfTypes, family, filter, data )
4094
return NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data );
4095
end ); */
4096
t_1 = GF_BIND__GLOBAL;
4097
C_NEW_STRING( t_2, 8, "NewType4" );
4098
t_3 = NewFunction( NameFunc[14], NargFunc[14], NamsFunc[14], HdlrFunc14 );
4099
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4100
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4101
STARTLINE_BODY(t_4) = INTOBJ_INT(281);
4102
ENDLINE_BODY(t_4) = INTOBJ_INT(288);
4103
FILENAME_BODY(t_4) = FileName;
4104
BODY_FUNC(t_3) = t_4;
4105
CHANGED_BAG( TLS(CurrLVars) );
4106
CALL_2ARGS( t_1, t_2, t_3 );
4107
4108
/* BIND_GLOBAL( "NewType5", function ( typeOfTypes, family, filter, data, stuff )
4109
local type;
4110
type := NEW_TYPE( typeOfTypes, family, WITH_IMPS_FLAGS( AND_FLAGS( family!.IMP_FLAGS, FLAGS_FILTER( filter ) ) ), data );
4111
type![POS_FIRST_FREE_TYPE] := stuff;
4112
return type;
4113
end ); */
4114
t_1 = GF_BIND__GLOBAL;
4115
C_NEW_STRING( t_2, 8, "NewType5" );
4116
t_3 = NewFunction( NameFunc[15], NargFunc[15], NamsFunc[15], HdlrFunc15 );
4117
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4118
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4119
STARTLINE_BODY(t_4) = INTOBJ_INT(292);
4120
ENDLINE_BODY(t_4) = INTOBJ_INT(303);
4121
FILENAME_BODY(t_4) = FileName;
4122
BODY_FUNC(t_3) = t_4;
4123
CHANGED_BAG( TLS(CurrLVars) );
4124
CALL_2ARGS( t_1, t_2, t_3 );
4125
4126
/* BIND_GLOBAL( "NewType", function ( arg... )
4127
local type;
4128
if not IsFamily( arg[1] ) then
4129
Error( "<family> must be a family" );
4130
fi;
4131
if LEN_LIST( arg ) = 1 then
4132
type := NewType2( TypeOfTypes, arg[1] );
4133
elif LEN_LIST( arg ) = 2 then
4134
type := NewType3( TypeOfTypes, arg[1], arg[2] );
4135
elif LEN_LIST( arg ) = 3 then
4136
type := NewType4( TypeOfTypes, arg[1], arg[2], arg[3] );
4137
elif LEN_LIST( arg ) = 4 then
4138
type := NewType5( TypeOfTypes, arg[1], arg[2], arg[3], arg[4] );
4139
else
4140
Error( "usage: NewType( <family> [, <filter> [, <data> ]] )" );
4141
fi;
4142
return type;
4143
end ); */
4144
t_1 = GF_BIND__GLOBAL;
4145
C_NEW_STRING( t_2, 7, "NewType" );
4146
t_3 = NewFunction( NameFunc[16], NargFunc[16], NamsFunc[16], HdlrFunc16 );
4147
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4148
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4149
STARTLINE_BODY(t_4) = INTOBJ_INT(306);
4150
ENDLINE_BODY(t_4) = INTOBJ_INT(338);
4151
FILENAME_BODY(t_4) = FileName;
4152
BODY_FUNC(t_3) = t_4;
4153
CHANGED_BAG( TLS(CurrLVars) );
4154
CALL_2ARGS( t_1, t_2, t_3 );
4155
4156
/* BIND_GLOBAL( "Subtype2", function ( type, filter )
4157
local new, i;
4158
new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), type![POS_DATA_TYPE] );
4159
for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do
4160
if IsBound( type![i]) then
4161
new![i] := type![i];
4162
fi;
4163
od;
4164
return new;
4165
end ); */
4166
t_1 = GF_BIND__GLOBAL;
4167
C_NEW_STRING( t_2, 8, "Subtype2" );
4168
t_3 = NewFunction( NameFunc[17], NargFunc[17], NamsFunc[17], HdlrFunc17 );
4169
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4170
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4171
STARTLINE_BODY(t_4) = INTOBJ_INT(351);
4172
ENDLINE_BODY(t_4) = INTOBJ_INT(365);
4173
FILENAME_BODY(t_4) = FileName;
4174
BODY_FUNC(t_3) = t_4;
4175
CHANGED_BAG( TLS(CurrLVars) );
4176
CALL_2ARGS( t_1, t_2, t_3 );
4177
4178
/* BIND_GLOBAL( "Subtype3", function ( type, filter, data )
4179
local new, i;
4180
new := NEW_TYPE( TypeOfTypes, type![1], WITH_IMPS_FLAGS( AND_FLAGS( type![2], FLAGS_FILTER( filter ) ) ), data );
4181
for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do
4182
if IsBound( type![i]) then
4183
new![i] := type![i];
4184
fi;
4185
od;
4186
return new;
4187
end ); */
4188
t_1 = GF_BIND__GLOBAL;
4189
C_NEW_STRING( t_2, 8, "Subtype3" );
4190
t_3 = NewFunction( NameFunc[18], NargFunc[18], NamsFunc[18], HdlrFunc18 );
4191
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4192
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4193
STARTLINE_BODY(t_4) = INTOBJ_INT(368);
4194
ENDLINE_BODY(t_4) = INTOBJ_INT(382);
4195
FILENAME_BODY(t_4) = FileName;
4196
BODY_FUNC(t_3) = t_4;
4197
CHANGED_BAG( TLS(CurrLVars) );
4198
CALL_2ARGS( t_1, t_2, t_3 );
4199
4200
/* Unbind( Subtype ); */
4201
AssGVar( G_Subtype, 0 );
4202
4203
/* BIND_GLOBAL( "Subtype", function ( arg... )
4204
if not IsType( arg[1] ) then
4205
Error( "<type> must be a type" );
4206
fi;
4207
if LEN_LIST( arg ) = 2 then
4208
return Subtype2( arg[1], arg[2] );
4209
else
4210
return Subtype3( arg[1], arg[2], arg[3] );
4211
fi;
4212
return;
4213
end ); */
4214
t_1 = GF_BIND__GLOBAL;
4215
C_NEW_STRING( t_2, 7, "Subtype" );
4216
t_3 = NewFunction( NameFunc[19], NargFunc[19], NamsFunc[19], HdlrFunc19 );
4217
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4218
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4219
STARTLINE_BODY(t_4) = INTOBJ_INT(386);
4220
ENDLINE_BODY(t_4) = INTOBJ_INT(400);
4221
FILENAME_BODY(t_4) = FileName;
4222
BODY_FUNC(t_3) = t_4;
4223
CHANGED_BAG( TLS(CurrLVars) );
4224
CALL_2ARGS( t_1, t_2, t_3 );
4225
4226
/* BIND_GLOBAL( "SupType2", function ( type, filter )
4227
local new, i;
4228
new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), type![POS_DATA_TYPE] );
4229
for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do
4230
if IsBound( type![i]) then
4231
new![i] := type![i];
4232
fi;
4233
od;
4234
return new;
4235
end ); */
4236
t_1 = GF_BIND__GLOBAL;
4237
C_NEW_STRING( t_2, 8, "SupType2" );
4238
t_3 = NewFunction( NameFunc[20], NargFunc[20], NamsFunc[20], HdlrFunc20 );
4239
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4240
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4241
STARTLINE_BODY(t_4) = INTOBJ_INT(414);
4242
ENDLINE_BODY(t_4) = INTOBJ_INT(428);
4243
FILENAME_BODY(t_4) = FileName;
4244
BODY_FUNC(t_3) = t_4;
4245
CHANGED_BAG( TLS(CurrLVars) );
4246
CALL_2ARGS( t_1, t_2, t_3 );
4247
4248
/* BIND_GLOBAL( "SupType3", function ( type, filter, data )
4249
local new, i;
4250
new := NEW_TYPE( TypeOfTypes, type![1], SUB_FLAGS( type![2], FLAGS_FILTER( filter ) ), data );
4251
for i in [ POS_FIRST_FREE_TYPE .. LEN_POSOBJ( type ) ] do
4252
if IsBound( type![i]) then
4253
new![i] := type![i];
4254
fi;
4255
od;
4256
return new;
4257
end ); */
4258
t_1 = GF_BIND__GLOBAL;
4259
C_NEW_STRING( t_2, 8, "SupType3" );
4260
t_3 = NewFunction( NameFunc[21], NargFunc[21], NamsFunc[21], HdlrFunc21 );
4261
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4262
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4263
STARTLINE_BODY(t_4) = INTOBJ_INT(431);
4264
ENDLINE_BODY(t_4) = INTOBJ_INT(445);
4265
FILENAME_BODY(t_4) = FileName;
4266
BODY_FUNC(t_3) = t_4;
4267
CHANGED_BAG( TLS(CurrLVars) );
4268
CALL_2ARGS( t_1, t_2, t_3 );
4269
4270
/* BIND_GLOBAL( "SupType", function ( arg... )
4271
if not IsType( arg[1] ) then
4272
Error( "<type> must be a type" );
4273
fi;
4274
if LEN_LIST( arg ) = 2 then
4275
return SupType2( arg[1], arg[2] );
4276
else
4277
return SupType3( arg[1], arg[2], arg[3] );
4278
fi;
4279
return;
4280
end ); */
4281
t_1 = GF_BIND__GLOBAL;
4282
C_NEW_STRING( t_2, 7, "SupType" );
4283
t_3 = NewFunction( NameFunc[22], NargFunc[22], NamsFunc[22], HdlrFunc22 );
4284
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4285
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4286
STARTLINE_BODY(t_4) = INTOBJ_INT(448);
4287
ENDLINE_BODY(t_4) = INTOBJ_INT(462);
4288
FILENAME_BODY(t_4) = FileName;
4289
BODY_FUNC(t_3) = t_4;
4290
CHANGED_BAG( TLS(CurrLVars) );
4291
CALL_2ARGS( t_1, t_2, t_3 );
4292
4293
/* BIND_GLOBAL( "FamilyType", function ( K )
4294
return K![1];
4295
end ); */
4296
t_1 = GF_BIND__GLOBAL;
4297
C_NEW_STRING( t_2, 10, "FamilyType" );
4298
t_3 = NewFunction( NameFunc[23], NargFunc[23], NamsFunc[23], HdlrFunc23 );
4299
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4300
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4301
STARTLINE_BODY(t_4) = INTOBJ_INT(476);
4302
ENDLINE_BODY(t_4) = INTOBJ_INT(476);
4303
FILENAME_BODY(t_4) = FileName;
4304
BODY_FUNC(t_3) = t_4;
4305
CHANGED_BAG( TLS(CurrLVars) );
4306
CALL_2ARGS( t_1, t_2, t_3 );
4307
4308
/* BIND_GLOBAL( "FlagsType", function ( K )
4309
return K![2];
4310
end ); */
4311
t_1 = GF_BIND__GLOBAL;
4312
C_NEW_STRING( t_2, 9, "FlagsType" );
4313
t_3 = NewFunction( NameFunc[24], NargFunc[24], NamsFunc[24], HdlrFunc24 );
4314
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4315
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4316
STARTLINE_BODY(t_4) = INTOBJ_INT(490);
4317
ENDLINE_BODY(t_4) = INTOBJ_INT(490);
4318
FILENAME_BODY(t_4) = FileName;
4319
BODY_FUNC(t_3) = t_4;
4320
CHANGED_BAG( TLS(CurrLVars) );
4321
CALL_2ARGS( t_1, t_2, t_3 );
4322
4323
/* BIND_GLOBAL( "DataType", function ( K )
4324
return K![POS_DATA_TYPE];
4325
end ); */
4326
t_1 = GF_BIND__GLOBAL;
4327
C_NEW_STRING( t_2, 8, "DataType" );
4328
t_3 = NewFunction( NameFunc[25], NargFunc[25], NamsFunc[25], HdlrFunc25 );
4329
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4330
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4331
STARTLINE_BODY(t_4) = INTOBJ_INT(506);
4332
ENDLINE_BODY(t_4) = INTOBJ_INT(506);
4333
FILENAME_BODY(t_4) = FileName;
4334
BODY_FUNC(t_3) = t_4;
4335
CHANGED_BAG( TLS(CurrLVars) );
4336
CALL_2ARGS( t_1, t_2, t_3 );
4337
4338
/* BIND_GLOBAL( "SetDataType", function ( K, data )
4339
K![POS_DATA_TYPE] := data;
4340
return;
4341
end ); */
4342
t_1 = GF_BIND__GLOBAL;
4343
C_NEW_STRING( t_2, 11, "SetDataType" );
4344
t_3 = NewFunction( NameFunc[26], NargFunc[26], NamsFunc[26], HdlrFunc26 );
4345
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4346
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4347
STARTLINE_BODY(t_4) = INTOBJ_INT(508);
4348
ENDLINE_BODY(t_4) = INTOBJ_INT(510);
4349
FILENAME_BODY(t_4) = FileName;
4350
BODY_FUNC(t_3) = t_4;
4351
CHANGED_BAG( TLS(CurrLVars) );
4352
CALL_2ARGS( t_1, t_2, t_3 );
4353
4354
/* BIND_GLOBAL( "SharedType", function ( K )
4355
return K![POS_DATA_TYPE];
4356
end ); */
4357
t_1 = GF_BIND__GLOBAL;
4358
C_NEW_STRING( t_2, 10, "SharedType" );
4359
t_3 = NewFunction( NameFunc[27], NargFunc[27], NamsFunc[27], HdlrFunc27 );
4360
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4361
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4362
STARTLINE_BODY(t_4) = INTOBJ_INT(524);
4363
ENDLINE_BODY(t_4) = INTOBJ_INT(524);
4364
FILENAME_BODY(t_4) = FileName;
4365
BODY_FUNC(t_3) = t_4;
4366
CHANGED_BAG( TLS(CurrLVars) );
4367
CALL_2ARGS( t_1, t_2, t_3 );
4368
4369
/* BIND_GLOBAL( "TypeObj", TYPE_OBJ ); */
4370
t_1 = GF_BIND__GLOBAL;
4371
C_NEW_STRING( t_2, 7, "TypeObj" );
4372
t_3 = GC_TYPE__OBJ;
4373
CHECK_BOUND( t_3, "TYPE_OBJ" )
4374
CALL_2ARGS( t_1, t_2, t_3 );
4375
4376
/* BIND_GLOBAL( "FamilyObj", FAMILY_OBJ ); */
4377
t_1 = GF_BIND__GLOBAL;
4378
C_NEW_STRING( t_2, 9, "FamilyObj" );
4379
t_3 = GC_FAMILY__OBJ;
4380
CHECK_BOUND( t_3, "FAMILY_OBJ" )
4381
CALL_2ARGS( t_1, t_2, t_3 );
4382
4383
/* BIND_GLOBAL( "FlagsObj", function ( obj )
4384
return FlagsType( TypeObj( obj ) );
4385
end ); */
4386
t_1 = GF_BIND__GLOBAL;
4387
C_NEW_STRING( t_2, 8, "FlagsObj" );
4388
t_3 = NewFunction( NameFunc[28], NargFunc[28], NamsFunc[28], HdlrFunc28 );
4389
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4390
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4391
STARTLINE_BODY(t_4) = INTOBJ_INT(623);
4392
ENDLINE_BODY(t_4) = INTOBJ_INT(623);
4393
FILENAME_BODY(t_4) = FileName;
4394
BODY_FUNC(t_3) = t_4;
4395
CHANGED_BAG( TLS(CurrLVars) );
4396
CALL_2ARGS( t_1, t_2, t_3 );
4397
4398
/* BIND_GLOBAL( "DataObj", function ( obj )
4399
return DataType( TypeObj( obj ) );
4400
end ); */
4401
t_1 = GF_BIND__GLOBAL;
4402
C_NEW_STRING( t_2, 7, "DataObj" );
4403
t_3 = NewFunction( NameFunc[29], NargFunc[29], NamsFunc[29], HdlrFunc29 );
4404
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4405
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4406
STARTLINE_BODY(t_4) = INTOBJ_INT(637);
4407
ENDLINE_BODY(t_4) = INTOBJ_INT(637);
4408
FILENAME_BODY(t_4) = FileName;
4409
BODY_FUNC(t_3) = t_4;
4410
CHANGED_BAG( TLS(CurrLVars) );
4411
CALL_2ARGS( t_1, t_2, t_3 );
4412
4413
/* BIND_GLOBAL( "SharedObj", function ( obj )
4414
return SharedType( TypeObj( obj ) );
4415
end ); */
4416
t_1 = GF_BIND__GLOBAL;
4417
C_NEW_STRING( t_2, 9, "SharedObj" );
4418
t_3 = NewFunction( NameFunc[30], NargFunc[30], NamsFunc[30], HdlrFunc30 );
4419
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4420
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4421
STARTLINE_BODY(t_4) = INTOBJ_INT(651);
4422
ENDLINE_BODY(t_4) = INTOBJ_INT(651);
4423
FILENAME_BODY(t_4) = FileName;
4424
BODY_FUNC(t_3) = t_4;
4425
CHANGED_BAG( TLS(CurrLVars) );
4426
CALL_2ARGS( t_1, t_2, t_3 );
4427
4428
/* BIND_GLOBAL( "SetTypeObj", function ( type, obj )
4429
if not IsType( type ) then
4430
Error( "<type> must be a type" );
4431
fi;
4432
if IS_LIST( obj ) then
4433
SET_TYPE_POSOBJ( obj, type );
4434
elif IS_REC( obj ) then
4435
SET_TYPE_COMOBJ( obj, type );
4436
fi;
4437
if not IsNoImmediateMethodsObject( obj ) then
4438
RunImmediateMethods( obj, type![2] );
4439
fi;
4440
return obj;
4441
end ); */
4442
t_1 = GF_BIND__GLOBAL;
4443
C_NEW_STRING( t_2, 10, "SetTypeObj" );
4444
t_3 = NewFunction( NameFunc[31], NargFunc[31], NamsFunc[31], HdlrFunc31 );
4445
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4446
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4447
STARTLINE_BODY(t_4) = INTOBJ_INT(665);
4448
ENDLINE_BODY(t_4) = INTOBJ_INT(678);
4449
FILENAME_BODY(t_4) = FileName;
4450
BODY_FUNC(t_3) = t_4;
4451
CHANGED_BAG( TLS(CurrLVars) );
4452
CALL_2ARGS( t_1, t_2, t_3 );
4453
4454
/* BIND_GLOBAL( "IsNonAtomicComponentObjectRepFlags", FLAGS_FILTER( IsNonAtomicComponentObjectRep ) ); */
4455
t_1 = GF_BIND__GLOBAL;
4456
C_NEW_STRING( t_2, 34, "IsNonAtomicComponentObjectRepFlags" );
4457
t_4 = GF_FLAGS__FILTER;
4458
t_5 = GC_IsNonAtomicComponentObjectRep;
4459
CHECK_BOUND( t_5, "IsNonAtomicComponentObjectRep" )
4460
t_3 = CALL_1ARGS( t_4, t_5 );
4461
CHECK_FUNC_RESULT( t_3 )
4462
CALL_2ARGS( t_1, t_2, t_3 );
4463
4464
/* BIND_GLOBAL( "IsAtomicPositionalObjectRepFlags", FLAGS_FILTER( IsAtomicPositionalObjectRep ) ); */
4465
t_1 = GF_BIND__GLOBAL;
4466
C_NEW_STRING( t_2, 32, "IsAtomicPositionalObjectRepFlags" );
4467
t_4 = GF_FLAGS__FILTER;
4468
t_5 = GC_IsAtomicPositionalObjectRep;
4469
CHECK_BOUND( t_5, "IsAtomicPositionalObjectRep" )
4470
t_3 = CALL_1ARGS( t_4, t_5 );
4471
CHECK_FUNC_RESULT( t_3 )
4472
CALL_2ARGS( t_1, t_2, t_3 );
4473
4474
/* BIND_GLOBAL( "IsReadOnlyPositionalObjectRepFlags", FLAGS_FILTER( IsReadOnlyPositionalObjectRep ) ); */
4475
t_1 = GF_BIND__GLOBAL;
4476
C_NEW_STRING( t_2, 34, "IsReadOnlyPositionalObjectRepFlags" );
4477
t_4 = GF_FLAGS__FILTER;
4478
t_5 = GC_IsReadOnlyPositionalObjectRep;
4479
CHECK_BOUND( t_5, "IsReadOnlyPositionalObjectRep" )
4480
t_3 = CALL_1ARGS( t_4, t_5 );
4481
CHECK_FUNC_RESULT( t_3 )
4482
CALL_2ARGS( t_1, t_2, t_3 );
4483
4484
/* BIND_GLOBAL( "Objectify", SetTypeObj ); */
4485
t_1 = GF_BIND__GLOBAL;
4486
C_NEW_STRING( t_2, 9, "Objectify" );
4487
t_3 = GC_SetTypeObj;
4488
CHECK_BOUND( t_3, "SetTypeObj" )
4489
CALL_2ARGS( t_1, t_2, t_3 );
4490
4491
/* BIND_GLOBAL( "ChangeTypeObj", function ( type, obj )
4492
if not IsType( type ) then
4493
Error( "<type> must be a type" );
4494
fi;
4495
if IS_POSOBJ( obj ) then
4496
SET_TYPE_POSOBJ( obj, type );
4497
elif IS_COMOBJ( obj ) then
4498
SET_TYPE_COMOBJ( obj, type );
4499
elif IS_DATOBJ( obj ) then
4500
SET_TYPE_DATOBJ( obj, type );
4501
fi;
4502
if not IsNoImmediateMethodsObject( obj ) then
4503
RunImmediateMethods( obj, type![2] );
4504
fi;
4505
return obj;
4506
end ); */
4507
t_1 = GF_BIND__GLOBAL;
4508
C_NEW_STRING( t_2, 13, "ChangeTypeObj" );
4509
t_3 = NewFunction( NameFunc[32], NargFunc[32], NamsFunc[32], HdlrFunc32 );
4510
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4511
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4512
STARTLINE_BODY(t_4) = INTOBJ_INT(702);
4513
ENDLINE_BODY(t_4) = INTOBJ_INT(717);
4514
FILENAME_BODY(t_4) = FileName;
4515
BODY_FUNC(t_3) = t_4;
4516
CHANGED_BAG( TLS(CurrLVars) );
4517
CALL_2ARGS( t_1, t_2, t_3 );
4518
4519
/* BIND_GLOBAL( "ReObjectify", ChangeTypeObj ); */
4520
t_1 = GF_BIND__GLOBAL;
4521
C_NEW_STRING( t_2, 11, "ReObjectify" );
4522
t_3 = GC_ChangeTypeObj;
4523
CHECK_BOUND( t_3, "ChangeTypeObj" )
4524
CALL_2ARGS( t_1, t_2, t_3 );
4525
4526
/* Unbind( SetFilterObj ); */
4527
AssGVar( G_SetFilterObj, 0 );
4528
4529
/* BIND_GLOBAL( "SetFilterObj", function ( obj, filter )
4530
local type, newtype;
4531
if IS_POSOBJ( obj ) then
4532
type := TYPE_OBJ( obj );
4533
newtype := Subtype2( type, filter );
4534
SET_TYPE_POSOBJ( obj, newtype );
4535
if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then
4536
RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) );
4537
fi;
4538
elif IS_COMOBJ( obj ) then
4539
type := TYPE_OBJ( obj );
4540
newtype := Subtype2( type, filter );
4541
SET_TYPE_COMOBJ( obj, newtype );
4542
if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then
4543
RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) );
4544
fi;
4545
elif IS_DATOBJ( obj ) then
4546
type := TYPE_OBJ( obj );
4547
newtype := Subtype2( type, filter );
4548
SET_TYPE_DATOBJ( obj, newtype );
4549
if not (IGNORE_IMMEDIATE_METHODS or IsNoImmediateMethodsObject( obj )) then
4550
RunImmediateMethods( obj, SUB_FLAGS( newtype![2], type![2] ) );
4551
fi;
4552
elif IS_PLIST_REP( obj ) then
4553
SET_FILTER_LIST( obj, filter );
4554
elif IS_STRING_REP( obj ) then
4555
SET_FILTER_LIST( obj, filter );
4556
elif IS_BLIST( obj ) then
4557
SET_FILTER_LIST( obj, filter );
4558
elif IS_RANGE( obj ) then
4559
SET_FILTER_LIST( obj, filter );
4560
else
4561
Error( "cannot set filter for internal object" );
4562
fi;
4563
return;
4564
end ); */
4565
t_1 = GF_BIND__GLOBAL;
4566
C_NEW_STRING( t_2, 12, "SetFilterObj" );
4567
t_3 = NewFunction( NameFunc[33], NargFunc[33], NamsFunc[33], HdlrFunc33 );
4568
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4569
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4570
STARTLINE_BODY(t_4) = INTOBJ_INT(741);
4571
ENDLINE_BODY(t_4) = INTOBJ_INT(779);
4572
FILENAME_BODY(t_4) = FileName;
4573
BODY_FUNC(t_3) = t_4;
4574
CHANGED_BAG( TLS(CurrLVars) );
4575
CALL_2ARGS( t_1, t_2, t_3 );
4576
4577
/* BIND_GLOBAL( "SET_FILTER_OBJ", SetFilterObj ); */
4578
t_1 = GF_BIND__GLOBAL;
4579
C_NEW_STRING( t_2, 14, "SET_FILTER_OBJ" );
4580
t_3 = GC_SetFilterObj;
4581
CHECK_BOUND( t_3, "SetFilterObj" )
4582
CALL_2ARGS( t_1, t_2, t_3 );
4583
4584
/* BIND_GLOBAL( "ResetFilterObj", function ( obj, filter )
4585
if IS_AND_FILTER( filter ) then
4586
Error( "You can't reset an \"and-filter\". Reset components individually." );
4587
fi;
4588
if IS_POSOBJ( obj ) then
4589
SET_TYPE_POSOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) );
4590
elif IS_COMOBJ( obj ) then
4591
SET_TYPE_COMOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) );
4592
elif IS_DATOBJ( obj ) then
4593
SET_TYPE_DATOBJ( obj, SupType2( TYPE_OBJ( obj ), filter ) );
4594
elif IS_PLIST_REP( obj ) then
4595
RESET_FILTER_LIST( obj, filter );
4596
elif IS_STRING_REP( obj ) then
4597
RESET_FILTER_LIST( obj, filter );
4598
elif IS_BLIST( obj ) then
4599
RESET_FILTER_LIST( obj, filter );
4600
elif IS_RANGE( obj ) then
4601
RESET_FILTER_LIST( obj, filter );
4602
else
4603
Error( "cannot reset filter for internal object" );
4604
fi;
4605
return;
4606
end ); */
4607
t_1 = GF_BIND__GLOBAL;
4608
C_NEW_STRING( t_2, 14, "ResetFilterObj" );
4609
t_3 = NewFunction( NameFunc[34], NargFunc[34], NamsFunc[34], HdlrFunc34 );
4610
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4611
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4612
STARTLINE_BODY(t_4) = INTOBJ_INT(801);
4613
ENDLINE_BODY(t_4) = INTOBJ_INT(823);
4614
FILENAME_BODY(t_4) = FileName;
4615
BODY_FUNC(t_3) = t_4;
4616
CHANGED_BAG( TLS(CurrLVars) );
4617
CALL_2ARGS( t_1, t_2, t_3 );
4618
4619
/* BIND_GLOBAL( "RESET_FILTER_OBJ", ResetFilterObj ); */
4620
t_1 = GF_BIND__GLOBAL;
4621
C_NEW_STRING( t_2, 16, "RESET_FILTER_OBJ" );
4622
t_3 = GC_ResetFilterObj;
4623
CHECK_BOUND( t_3, "ResetFilterObj" )
4624
CALL_2ARGS( t_1, t_2, t_3 );
4625
4626
/* BIND_GLOBAL( "SetFeatureObj", function ( obj, filter, val )
4627
if val then
4628
SetFilterObj( obj, filter );
4629
else
4630
ResetFilterObj( obj, filter );
4631
fi;
4632
return;
4633
end ); */
4634
t_1 = GF_BIND__GLOBAL;
4635
C_NEW_STRING( t_2, 13, "SetFeatureObj" );
4636
t_3 = NewFunction( NameFunc[35], NargFunc[35], NamsFunc[35], HdlrFunc35 );
4637
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4638
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4639
STARTLINE_BODY(t_4) = INTOBJ_INT(839);
4640
ENDLINE_BODY(t_4) = INTOBJ_INT(845);
4641
FILENAME_BODY(t_4) = FileName;
4642
BODY_FUNC(t_3) = t_4;
4643
CHANGED_BAG( TLS(CurrLVars) );
4644
CALL_2ARGS( t_1, t_2, t_3 );
4645
4646
/* BIND_GLOBAL( "SetMultipleAttributes", function ( arg... )
4647
local obj, type, flags, attr, val, i, extra, nfilt, nflags;
4648
obj := arg[1];
4649
if IsAttributeStoringRep( obj ) then
4650
extra := [ ];
4651
type := TypeObj( obj );
4652
flags := FlagsType( type );
4653
nfilt := IS_OBJECT;
4654
for i in [ 2, 4 .. LEN_LIST( arg ) - 1 ] do
4655
attr := arg[i];
4656
val := arg[i + 1];
4657
if 0 <> FLAG1_FILTER( attr ) then
4658
if val then
4659
nfilt := nfilt and attr;
4660
else
4661
nfilt := nfilt and Tester( attr );
4662
fi;
4663
elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> 12 then
4664
ADD_LIST( extra, attr );
4665
ADD_LIST( extra, val );
4666
else
4667
obj!.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val );
4668
nfilt := nfilt and Tester( attr );
4669
fi;
4670
od;
4671
nflags := FLAGS_FILTER( nfilt );
4672
if not IS_SUBSET_FLAGS( flags, nflags ) then
4673
flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) );
4674
ChangeTypeObj( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj );
4675
fi;
4676
for i in [ 2, 4 .. LEN_LIST( extra ) ] do
4677
Setter( extra[i - 1] )( obj, extra[i] );
4678
od;
4679
else
4680
extra := arg;
4681
for i in [ 2, 4 .. LEN_LIST( extra ) ] do
4682
Setter( extra[i] )( obj, extra[i + 1] );
4683
od;
4684
fi;
4685
return;
4686
end ); */
4687
t_1 = GF_BIND__GLOBAL;
4688
C_NEW_STRING( t_2, 21, "SetMultipleAttributes" );
4689
t_3 = NewFunction( NameFunc[36], NargFunc[36], NamsFunc[36], HdlrFunc36 );
4690
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4691
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4692
STARTLINE_BODY(t_4) = INTOBJ_INT(866);
4693
ENDLINE_BODY(t_4) = INTOBJ_INT(918);
4694
FILENAME_BODY(t_4) = FileName;
4695
BODY_FUNC(t_3) = t_4;
4696
CHANGED_BAG( TLS(CurrLVars) );
4697
CALL_2ARGS( t_1, t_2, t_3 );
4698
4699
/* BIND_GLOBAL( "IsAttributeStoringRepFlags", FLAGS_FILTER( IsAttributeStoringRep ) ); */
4700
t_1 = GF_BIND__GLOBAL;
4701
C_NEW_STRING( t_2, 26, "IsAttributeStoringRepFlags" );
4702
t_4 = GF_FLAGS__FILTER;
4703
t_5 = GC_IsAttributeStoringRep;
4704
CHECK_BOUND( t_5, "IsAttributeStoringRep" )
4705
t_3 = CALL_1ARGS( t_4, t_5 );
4706
CHECK_FUNC_RESULT( t_3 )
4707
CALL_2ARGS( t_1, t_2, t_3 );
4708
4709
/* BIND_GLOBAL( "INFO_OWA", Ignore ); */
4710
t_1 = GF_BIND__GLOBAL;
4711
C_NEW_STRING( t_2, 8, "INFO_OWA" );
4712
t_3 = GC_Ignore;
4713
CHECK_BOUND( t_3, "Ignore" )
4714
CALL_2ARGS( t_1, t_2, t_3 );
4715
4716
/* MAKE_READ_WRITE_GLOBAL( "INFO_OWA" ); */
4717
t_1 = GF_MAKE__READ__WRITE__GLOBAL;
4718
C_NEW_STRING( t_2, 8, "INFO_OWA" );
4719
CALL_1ARGS( t_1, t_2 );
4720
4721
/* BIND_GLOBAL( "ObjectifyWithAttributes", function ( arg... )
4722
local obj, type, flags, attr, val, i, extra, nflags;
4723
obj := arg[1];
4724
type := arg[2];
4725
flags := FlagsType( type );
4726
extra := [ ];
4727
if not IS_SUBSET_FLAGS( flags, IsAttributeStoringRepFlags ) then
4728
extra := arg{[ 3 .. LEN_LIST( arg ) ]};
4729
INFO_OWA( "#W ObjectifyWithAttributes called ", "for non-attribute storing rep\n" );
4730
Objectify( type, obj );
4731
else
4732
nflags := EMPTY_FLAGS;
4733
for i in [ 3, 5 .. LEN_LIST( arg ) - 1 ] do
4734
attr := arg[i];
4735
val := arg[i + 1];
4736
if 0 <> FLAG1_FILTER( attr ) then
4737
if val then
4738
nflags := AND_FLAGS( nflags, FLAGS_FILTER( attr ) );
4739
else
4740
nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) );
4741
fi;
4742
elif LEN_LIST( METHODS_OPERATION( Setter( attr ), 2 ) ) <> LENGTH_SETTER_METHODS_2 then
4743
ADD_LIST( extra, attr );
4744
ADD_LIST( extra, val );
4745
else
4746
obj.(NAME_FUNC( attr )) := IMMUTABLE_COPY_OBJ( val );
4747
nflags := AND_FLAGS( nflags, FLAGS_FILTER( Tester( attr ) ) );
4748
fi;
4749
od;
4750
if not IS_SUBSET_FLAGS( flags, nflags ) then
4751
flags := WITH_IMPS_FLAGS( AND_FLAGS( flags, nflags ) );
4752
Objectify( NEW_TYPE( TypeOfTypes, FamilyType( type ), flags, DataType( type ) ), obj );
4753
else
4754
Objectify( type, obj );
4755
fi;
4756
fi;
4757
for i in [ 1, 3 .. LEN_LIST( extra ) - 1 ] do
4758
if Tester( extra[i] )( obj ) then
4759
INFO_OWA( "#W Supplied type has tester of ", NAME_FUNC( extra[i] ), "with non-standard setter\n" );
4760
ResetFilterObj( obj, Tester( extra[i] ) );
4761
fi;
4762
Setter( extra[i] )( obj, extra[i + 1] );
4763
od;
4764
return;
4765
end ); */
4766
t_1 = GF_BIND__GLOBAL;
4767
C_NEW_STRING( t_2, 23, "ObjectifyWithAttributes" );
4768
t_3 = NewFunction( NameFunc[37], NargFunc[37], NamsFunc[37], HdlrFunc37 );
4769
ENVI_FUNC( t_3 ) = TLS(CurrLVars);
4770
t_4 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj) );
4771
STARTLINE_BODY(t_4) = INTOBJ_INT(965);
4772
ENDLINE_BODY(t_4) = INTOBJ_INT(1030);
4773
FILENAME_BODY(t_4) = FileName;
4774
BODY_FUNC(t_3) = t_4;
4775
CHANGED_BAG( TLS(CurrLVars) );
4776
CALL_2ARGS( t_1, t_2, t_3 );
4777
4778
/* return; */
4779
RES_BRK_CURR_STAT();
4780
SWITCH_TO_OLD_FRAME(oldFrame);
4781
return 0;
4782
4783
/* return; */
4784
RES_BRK_CURR_STAT();
4785
SWITCH_TO_OLD_FRAME(oldFrame);
4786
return 0;
4787
}
4788
4789
/* 'InitKernel' sets up data structures, fopies, copies, handlers */
4790
static Int InitKernel ( StructInitInfo * module )
4791
{
4792
4793
/* global variables used in handlers */
4794
InitFopyGVar( "NAME_FUNC", &GF_NAME__FUNC );
4795
InitFopyGVar( "IsType", &GF_IsType );
4796
InitFopyGVar( "IS_REC", &GF_IS__REC );
4797
InitFopyGVar( "IS_LIST", &GF_IS__LIST );
4798
InitFopyGVar( "ADD_LIST", &GF_ADD__LIST );
4799
InitFopyGVar( "IS_PLIST_REP", &GF_IS__PLIST__REP );
4800
InitFopyGVar( "IS_BLIST", &GF_IS__BLIST );
4801
InitFopyGVar( "IS_RANGE", &GF_IS__RANGE );
4802
InitFopyGVar( "IS_STRING_REP", &GF_IS__STRING__REP );
4803
InitFopyGVar( "Error", &GF_Error );
4804
InitCopyGVar( "TYPE_OBJ", &GC_TYPE__OBJ );
4805
InitFopyGVar( "TYPE_OBJ", &GF_TYPE__OBJ );
4806
InitCopyGVar( "FAMILY_OBJ", &GC_FAMILY__OBJ );
4807
InitFopyGVar( "IMMUTABLE_COPY_OBJ", &GF_IMMUTABLE__COPY__OBJ );
4808
InitFopyGVar( "IS_IDENTICAL_OBJ", &GF_IS__IDENTICAL__OBJ );
4809
InitFopyGVar( "IS_COMOBJ", &GF_IS__COMOBJ );
4810
InitFopyGVar( "SET_TYPE_COMOBJ", &GF_SET__TYPE__COMOBJ );
4811
InitFopyGVar( "IS_POSOBJ", &GF_IS__POSOBJ );
4812
InitFopyGVar( "SET_TYPE_POSOBJ", &GF_SET__TYPE__POSOBJ );
4813
InitFopyGVar( "LEN_POSOBJ", &GF_LEN__POSOBJ );
4814
InitFopyGVar( "IS_DATOBJ", &GF_IS__DATOBJ );
4815
InitFopyGVar( "SET_TYPE_DATOBJ", &GF_SET__TYPE__DATOBJ );
4816
InitCopyGVar( "IS_OBJECT", &GC_IS__OBJECT );
4817
InitFopyGVar( "AND_FLAGS", &GF_AND__FLAGS );
4818
InitFopyGVar( "SUB_FLAGS", &GF_SUB__FLAGS );
4819
InitFopyGVar( "HASH_FLAGS", &GF_HASH__FLAGS );
4820
InitFopyGVar( "IS_EQUAL_FLAGS", &GF_IS__EQUAL__FLAGS );
4821
InitFopyGVar( "IS_SUBSET_FLAGS", &GF_IS__SUBSET__FLAGS );
4822
InitFopyGVar( "FLAG1_FILTER", &GF_FLAG1__FILTER );
4823
InitFopyGVar( "FLAGS_FILTER", &GF_FLAGS__FILTER );
4824
InitFopyGVar( "METHODS_OPERATION", &GF_METHODS__OPERATION );
4825
InitFopyGVar( "SETTER_FUNCTION", &GF_SETTER__FUNCTION );
4826
InitFopyGVar( "GETTER_FUNCTION", &GF_GETTER__FUNCTION );
4827
InitFopyGVar( "IS_AND_FILTER", &GF_IS__AND__FILTER );
4828
InitFopyGVar( "COMPACT_TYPE_IDS", &GF_COMPACT__TYPE__IDS );
4829
InitFopyGVar( "LEN_LIST", &GF_LEN__LIST );
4830
InitFopyGVar( "SET_FILTER_LIST", &GF_SET__FILTER__LIST );
4831
InitFopyGVar( "RESET_FILTER_LIST", &GF_RESET__FILTER__LIST );
4832
InitFopyGVar( "GASMAN", &GF_GASMAN );
4833
InitFopyGVar( "InstallAttributeFunction", &GF_InstallAttributeFunction );
4834
InitFopyGVar( "InstallOtherMethod", &GF_InstallOtherMethod );
4835
InitCopyGVar( "IsAttributeStoringRep", &GC_IsAttributeStoringRep );
4836
InitFopyGVar( "IsAttributeStoringRep", &GF_IsAttributeStoringRep );
4837
InitCopyGVar( "GETTER_FLAGS", &GC_GETTER__FLAGS );
4838
InitCopyGVar( "LENGTH_SETTER_METHODS_2", &GC_LENGTH__SETTER__METHODS__2 );
4839
InitCopyGVar( "SetFilterObj", &GC_SetFilterObj );
4840
InitFopyGVar( "SetFilterObj", &GF_SetFilterObj );
4841
InitFopyGVar( "Subtype", &GF_Subtype );
4842
InitFopyGVar( "BIND_GLOBAL", &GF_BIND__GLOBAL );
4843
InitFopyGVar( "WITH_IMPS_FLAGS", &GF_WITH__IMPS__FLAGS );
4844
InitCopyGVar( "CATEGORIES_FAMILY", &GC_CATEGORIES__FAMILY );
4845
InitFopyGVar( "NEW_FAMILY", &GF_NEW__FAMILY );
4846
InitCopyGVar( "EMPTY_FLAGS", &GC_EMPTY__FLAGS );
4847
InitFopyGVar( "NewFamily2", &GF_NewFamily2 );
4848
InitCopyGVar( "TypeOfFamilies", &GC_TypeOfFamilies );
4849
InitFopyGVar( "NewFamily3", &GF_NewFamily3 );
4850
InitFopyGVar( "NewFamily4", &GF_NewFamily4 );
4851
InitFopyGVar( "NewFamily5", &GF_NewFamily5 );
4852
InitCopyGVar( "NEW_TYPE_CACHE_MISS", &GC_NEW__TYPE__CACHE__MISS );
4853
InitCopyGVar( "NEW_TYPE_CACHE_HIT", &GC_NEW__TYPE__CACHE__HIT );
4854
InitCopyGVar( "POS_DATA_TYPE", &GC_POS__DATA__TYPE );
4855
InitCopyGVar( "NEW_TYPE_NEXT_ID", &GC_NEW__TYPE__NEXT__ID );
4856
InitCopyGVar( "NEW_TYPE_ID_LIMIT", &GC_NEW__TYPE__ID__LIMIT );
4857
InitFopyGVar( "FLUSH_ALL_METHOD_CACHES", &GF_FLUSH__ALL__METHOD__CACHES );
4858
InitCopyGVar( "POS_NUMB_TYPE", &GC_POS__NUMB__TYPE );
4859
InitFopyGVar( "NEW_TYPE", &GF_NEW__TYPE );
4860
InitCopyGVar( "POS_FIRST_FREE_TYPE", &GC_POS__FIRST__FREE__TYPE );
4861
InitFopyGVar( "IsFamily", &GF_IsFamily );
4862
InitFopyGVar( "NewType2", &GF_NewType2 );
4863
InitCopyGVar( "TypeOfTypes", &GC_TypeOfTypes );
4864
InitFopyGVar( "NewType3", &GF_NewType3 );
4865
InitFopyGVar( "NewType4", &GF_NewType4 );
4866
InitFopyGVar( "NewType5", &GF_NewType5 );
4867
InitFopyGVar( "Subtype2", &GF_Subtype2 );
4868
InitFopyGVar( "Subtype3", &GF_Subtype3 );
4869
InitFopyGVar( "SupType2", &GF_SupType2 );
4870
InitFopyGVar( "SupType3", &GF_SupType3 );
4871
InitFopyGVar( "FlagsType", &GF_FlagsType );
4872
InitFopyGVar( "TypeObj", &GF_TypeObj );
4873
InitFopyGVar( "DataType", &GF_DataType );
4874
InitFopyGVar( "SharedType", &GF_SharedType );
4875
InitFopyGVar( "IsNoImmediateMethodsObject", &GF_IsNoImmediateMethodsObject );
4876
InitFopyGVar( "RunImmediateMethods", &GF_RunImmediateMethods );
4877
InitCopyGVar( "IsNonAtomicComponentObjectRep", &GC_IsNonAtomicComponentObjectRep );
4878
InitCopyGVar( "IsAtomicPositionalObjectRep", &GC_IsAtomicPositionalObjectRep );
4879
InitCopyGVar( "IsReadOnlyPositionalObjectRep", &GC_IsReadOnlyPositionalObjectRep );
4880
InitCopyGVar( "SetTypeObj", &GC_SetTypeObj );
4881
InitCopyGVar( "ChangeTypeObj", &GC_ChangeTypeObj );
4882
InitFopyGVar( "ChangeTypeObj", &GF_ChangeTypeObj );
4883
InitCopyGVar( "IGNORE_IMMEDIATE_METHODS", &GC_IGNORE__IMMEDIATE__METHODS );
4884
InitCopyGVar( "ResetFilterObj", &GC_ResetFilterObj );
4885
InitFopyGVar( "ResetFilterObj", &GF_ResetFilterObj );
4886
InitFopyGVar( "Tester", &GF_Tester );
4887
InitFopyGVar( "Setter", &GF_Setter );
4888
InitFopyGVar( "FamilyType", &GF_FamilyType );
4889
InitCopyGVar( "Ignore", &GC_Ignore );
4890
InitFopyGVar( "MAKE_READ_WRITE_GLOBAL", &GF_MAKE__READ__WRITE__GLOBAL );
4891
InitCopyGVar( "IsAttributeStoringRepFlags", &GC_IsAttributeStoringRepFlags );
4892
InitFopyGVar( "INFO_OWA", &GF_INFO__OWA );
4893
InitFopyGVar( "Objectify", &GF_Objectify );
4894
4895
/* information for the functions */
4896
InitGlobalBag( &DefaultName, "GAPROOT/lib/type1.g:DefaultName(-36845939)" );
4897
InitGlobalBag( &FileName, "GAPROOT/lib/type1.g:FileName(-36845939)" );
4898
InitHandlerFunc( HdlrFunc1, "GAPROOT/lib/type1.g:HdlrFunc1(-36845939)" );
4899
InitGlobalBag( &(NameFunc[1]), "GAPROOT/lib/type1.g:NameFunc[1](-36845939)" );
4900
InitHandlerFunc( HdlrFunc2, "GAPROOT/lib/type1.g:HdlrFunc2(-36845939)" );
4901
InitGlobalBag( &(NameFunc[2]), "GAPROOT/lib/type1.g:NameFunc[2](-36845939)" );
4902
InitHandlerFunc( HdlrFunc3, "GAPROOT/lib/type1.g:HdlrFunc3(-36845939)" );
4903
InitGlobalBag( &(NameFunc[3]), "GAPROOT/lib/type1.g:NameFunc[3](-36845939)" );
4904
InitHandlerFunc( HdlrFunc4, "GAPROOT/lib/type1.g:HdlrFunc4(-36845939)" );
4905
InitGlobalBag( &(NameFunc[4]), "GAPROOT/lib/type1.g:NameFunc[4](-36845939)" );
4906
InitHandlerFunc( HdlrFunc5, "GAPROOT/lib/type1.g:HdlrFunc5(-36845939)" );
4907
InitGlobalBag( &(NameFunc[5]), "GAPROOT/lib/type1.g:NameFunc[5](-36845939)" );
4908
InitHandlerFunc( HdlrFunc6, "GAPROOT/lib/type1.g:HdlrFunc6(-36845939)" );
4909
InitGlobalBag( &(NameFunc[6]), "GAPROOT/lib/type1.g:NameFunc[6](-36845939)" );
4910
InitHandlerFunc( HdlrFunc7, "GAPROOT/lib/type1.g:HdlrFunc7(-36845939)" );
4911
InitGlobalBag( &(NameFunc[7]), "GAPROOT/lib/type1.g:NameFunc[7](-36845939)" );
4912
InitHandlerFunc( HdlrFunc8, "GAPROOT/lib/type1.g:HdlrFunc8(-36845939)" );
4913
InitGlobalBag( &(NameFunc[8]), "GAPROOT/lib/type1.g:NameFunc[8](-36845939)" );
4914
InitHandlerFunc( HdlrFunc9, "GAPROOT/lib/type1.g:HdlrFunc9(-36845939)" );
4915
InitGlobalBag( &(NameFunc[9]), "GAPROOT/lib/type1.g:NameFunc[9](-36845939)" );
4916
InitHandlerFunc( HdlrFunc10, "GAPROOT/lib/type1.g:HdlrFunc10(-36845939)" );
4917
InitGlobalBag( &(NameFunc[10]), "GAPROOT/lib/type1.g:NameFunc[10](-36845939)" );
4918
InitHandlerFunc( HdlrFunc11, "GAPROOT/lib/type1.g:HdlrFunc11(-36845939)" );
4919
InitGlobalBag( &(NameFunc[11]), "GAPROOT/lib/type1.g:NameFunc[11](-36845939)" );
4920
InitHandlerFunc( HdlrFunc12, "GAPROOT/lib/type1.g:HdlrFunc12(-36845939)" );
4921
InitGlobalBag( &(NameFunc[12]), "GAPROOT/lib/type1.g:NameFunc[12](-36845939)" );
4922
InitHandlerFunc( HdlrFunc13, "GAPROOT/lib/type1.g:HdlrFunc13(-36845939)" );
4923
InitGlobalBag( &(NameFunc[13]), "GAPROOT/lib/type1.g:NameFunc[13](-36845939)" );
4924
InitHandlerFunc( HdlrFunc14, "GAPROOT/lib/type1.g:HdlrFunc14(-36845939)" );
4925
InitGlobalBag( &(NameFunc[14]), "GAPROOT/lib/type1.g:NameFunc[14](-36845939)" );
4926
InitHandlerFunc( HdlrFunc15, "GAPROOT/lib/type1.g:HdlrFunc15(-36845939)" );
4927
InitGlobalBag( &(NameFunc[15]), "GAPROOT/lib/type1.g:NameFunc[15](-36845939)" );
4928
InitHandlerFunc( HdlrFunc16, "GAPROOT/lib/type1.g:HdlrFunc16(-36845939)" );
4929
InitGlobalBag( &(NameFunc[16]), "GAPROOT/lib/type1.g:NameFunc[16](-36845939)" );
4930
InitHandlerFunc( HdlrFunc17, "GAPROOT/lib/type1.g:HdlrFunc17(-36845939)" );
4931
InitGlobalBag( &(NameFunc[17]), "GAPROOT/lib/type1.g:NameFunc[17](-36845939)" );
4932
InitHandlerFunc( HdlrFunc18, "GAPROOT/lib/type1.g:HdlrFunc18(-36845939)" );
4933
InitGlobalBag( &(NameFunc[18]), "GAPROOT/lib/type1.g:NameFunc[18](-36845939)" );
4934
InitHandlerFunc( HdlrFunc19, "GAPROOT/lib/type1.g:HdlrFunc19(-36845939)" );
4935
InitGlobalBag( &(NameFunc[19]), "GAPROOT/lib/type1.g:NameFunc[19](-36845939)" );
4936
InitHandlerFunc( HdlrFunc20, "GAPROOT/lib/type1.g:HdlrFunc20(-36845939)" );
4937
InitGlobalBag( &(NameFunc[20]), "GAPROOT/lib/type1.g:NameFunc[20](-36845939)" );
4938
InitHandlerFunc( HdlrFunc21, "GAPROOT/lib/type1.g:HdlrFunc21(-36845939)" );
4939
InitGlobalBag( &(NameFunc[21]), "GAPROOT/lib/type1.g:NameFunc[21](-36845939)" );
4940
InitHandlerFunc( HdlrFunc22, "GAPROOT/lib/type1.g:HdlrFunc22(-36845939)" );
4941
InitGlobalBag( &(NameFunc[22]), "GAPROOT/lib/type1.g:NameFunc[22](-36845939)" );
4942
InitHandlerFunc( HdlrFunc23, "GAPROOT/lib/type1.g:HdlrFunc23(-36845939)" );
4943
InitGlobalBag( &(NameFunc[23]), "GAPROOT/lib/type1.g:NameFunc[23](-36845939)" );
4944
InitHandlerFunc( HdlrFunc24, "GAPROOT/lib/type1.g:HdlrFunc24(-36845939)" );
4945
InitGlobalBag( &(NameFunc[24]), "GAPROOT/lib/type1.g:NameFunc[24](-36845939)" );
4946
InitHandlerFunc( HdlrFunc25, "GAPROOT/lib/type1.g:HdlrFunc25(-36845939)" );
4947
InitGlobalBag( &(NameFunc[25]), "GAPROOT/lib/type1.g:NameFunc[25](-36845939)" );
4948
InitHandlerFunc( HdlrFunc26, "GAPROOT/lib/type1.g:HdlrFunc26(-36845939)" );
4949
InitGlobalBag( &(NameFunc[26]), "GAPROOT/lib/type1.g:NameFunc[26](-36845939)" );
4950
InitHandlerFunc( HdlrFunc27, "GAPROOT/lib/type1.g:HdlrFunc27(-36845939)" );
4951
InitGlobalBag( &(NameFunc[27]), "GAPROOT/lib/type1.g:NameFunc[27](-36845939)" );
4952
InitHandlerFunc( HdlrFunc28, "GAPROOT/lib/type1.g:HdlrFunc28(-36845939)" );
4953
InitGlobalBag( &(NameFunc[28]), "GAPROOT/lib/type1.g:NameFunc[28](-36845939)" );
4954
InitHandlerFunc( HdlrFunc29, "GAPROOT/lib/type1.g:HdlrFunc29(-36845939)" );
4955
InitGlobalBag( &(NameFunc[29]), "GAPROOT/lib/type1.g:NameFunc[29](-36845939)" );
4956
InitHandlerFunc( HdlrFunc30, "GAPROOT/lib/type1.g:HdlrFunc30(-36845939)" );
4957
InitGlobalBag( &(NameFunc[30]), "GAPROOT/lib/type1.g:NameFunc[30](-36845939)" );
4958
InitHandlerFunc( HdlrFunc31, "GAPROOT/lib/type1.g:HdlrFunc31(-36845939)" );
4959
InitGlobalBag( &(NameFunc[31]), "GAPROOT/lib/type1.g:NameFunc[31](-36845939)" );
4960
InitHandlerFunc( HdlrFunc32, "GAPROOT/lib/type1.g:HdlrFunc32(-36845939)" );
4961
InitGlobalBag( &(NameFunc[32]), "GAPROOT/lib/type1.g:NameFunc[32](-36845939)" );
4962
InitHandlerFunc( HdlrFunc33, "GAPROOT/lib/type1.g:HdlrFunc33(-36845939)" );
4963
InitGlobalBag( &(NameFunc[33]), "GAPROOT/lib/type1.g:NameFunc[33](-36845939)" );
4964
InitHandlerFunc( HdlrFunc34, "GAPROOT/lib/type1.g:HdlrFunc34(-36845939)" );
4965
InitGlobalBag( &(NameFunc[34]), "GAPROOT/lib/type1.g:NameFunc[34](-36845939)" );
4966
InitHandlerFunc( HdlrFunc35, "GAPROOT/lib/type1.g:HdlrFunc35(-36845939)" );
4967
InitGlobalBag( &(NameFunc[35]), "GAPROOT/lib/type1.g:NameFunc[35](-36845939)" );
4968
InitHandlerFunc( HdlrFunc36, "GAPROOT/lib/type1.g:HdlrFunc36(-36845939)" );
4969
InitGlobalBag( &(NameFunc[36]), "GAPROOT/lib/type1.g:NameFunc[36](-36845939)" );
4970
InitHandlerFunc( HdlrFunc37, "GAPROOT/lib/type1.g:HdlrFunc37(-36845939)" );
4971
InitGlobalBag( &(NameFunc[37]), "GAPROOT/lib/type1.g:NameFunc[37](-36845939)" );
4972
4973
/* return success */
4974
return 0;
4975
4976
}
4977
4978
/* 'InitLibrary' sets up gvars, rnams, functions */
4979
static Int InitLibrary ( StructInitInfo * module )
4980
{
4981
Obj func1;
4982
Obj body1;
4983
4984
/* Complete Copy/Fopy registration */
4985
UpdateCopyFopyInfo();
4986
4987
/* global variables used in handlers */
4988
G_NAME__FUNC = GVarName( "NAME_FUNC" );
4989
G_IsType = GVarName( "IsType" );
4990
G_IS__REC = GVarName( "IS_REC" );
4991
G_IS__LIST = GVarName( "IS_LIST" );
4992
G_ADD__LIST = GVarName( "ADD_LIST" );
4993
G_IS__PLIST__REP = GVarName( "IS_PLIST_REP" );
4994
G_IS__BLIST = GVarName( "IS_BLIST" );
4995
G_IS__RANGE = GVarName( "IS_RANGE" );
4996
G_IS__STRING__REP = GVarName( "IS_STRING_REP" );
4997
G_Error = GVarName( "Error" );
4998
G_TYPE__OBJ = GVarName( "TYPE_OBJ" );
4999
G_FAMILY__OBJ = GVarName( "FAMILY_OBJ" );
5000
G_IMMUTABLE__COPY__OBJ = GVarName( "IMMUTABLE_COPY_OBJ" );
5001
G_IS__IDENTICAL__OBJ = GVarName( "IS_IDENTICAL_OBJ" );
5002
G_IS__COMOBJ = GVarName( "IS_COMOBJ" );
5003
G_SET__TYPE__COMOBJ = GVarName( "SET_TYPE_COMOBJ" );
5004
G_IS__POSOBJ = GVarName( "IS_POSOBJ" );
5005
G_SET__TYPE__POSOBJ = GVarName( "SET_TYPE_POSOBJ" );
5006
G_LEN__POSOBJ = GVarName( "LEN_POSOBJ" );
5007
G_IS__DATOBJ = GVarName( "IS_DATOBJ" );
5008
G_SET__TYPE__DATOBJ = GVarName( "SET_TYPE_DATOBJ" );
5009
G_IS__OBJECT = GVarName( "IS_OBJECT" );
5010
G_AND__FLAGS = GVarName( "AND_FLAGS" );
5011
G_SUB__FLAGS = GVarName( "SUB_FLAGS" );
5012
G_HASH__FLAGS = GVarName( "HASH_FLAGS" );
5013
G_IS__EQUAL__FLAGS = GVarName( "IS_EQUAL_FLAGS" );
5014
G_IS__SUBSET__FLAGS = GVarName( "IS_SUBSET_FLAGS" );
5015
G_FLAG1__FILTER = GVarName( "FLAG1_FILTER" );
5016
G_FLAGS__FILTER = GVarName( "FLAGS_FILTER" );
5017
G_METHODS__OPERATION = GVarName( "METHODS_OPERATION" );
5018
G_SETTER__FUNCTION = GVarName( "SETTER_FUNCTION" );
5019
G_GETTER__FUNCTION = GVarName( "GETTER_FUNCTION" );
5020
G_IS__AND__FILTER = GVarName( "IS_AND_FILTER" );
5021
G_COMPACT__TYPE__IDS = GVarName( "COMPACT_TYPE_IDS" );
5022
G_LEN__LIST = GVarName( "LEN_LIST" );
5023
G_SET__FILTER__LIST = GVarName( "SET_FILTER_LIST" );
5024
G_RESET__FILTER__LIST = GVarName( "RESET_FILTER_LIST" );
5025
G_GASMAN = GVarName( "GASMAN" );
5026
G_InstallAttributeFunction = GVarName( "InstallAttributeFunction" );
5027
G_InstallOtherMethod = GVarName( "InstallOtherMethod" );
5028
G_IsAttributeStoringRep = GVarName( "IsAttributeStoringRep" );
5029
G_GETTER__FLAGS = GVarName( "GETTER_FLAGS" );
5030
G_LENGTH__SETTER__METHODS__2 = GVarName( "LENGTH_SETTER_METHODS_2" );
5031
G_SetFilterObj = GVarName( "SetFilterObj" );
5032
G_Subtype = GVarName( "Subtype" );
5033
G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" );
5034
G_WITH__IMPS__FLAGS = GVarName( "WITH_IMPS_FLAGS" );
5035
G_CATEGORIES__FAMILY = GVarName( "CATEGORIES_FAMILY" );
5036
G_NEW__FAMILY = GVarName( "NEW_FAMILY" );
5037
G_EMPTY__FLAGS = GVarName( "EMPTY_FLAGS" );
5038
G_NewFamily2 = GVarName( "NewFamily2" );
5039
G_TypeOfFamilies = GVarName( "TypeOfFamilies" );
5040
G_NewFamily3 = GVarName( "NewFamily3" );
5041
G_NewFamily4 = GVarName( "NewFamily4" );
5042
G_NewFamily5 = GVarName( "NewFamily5" );
5043
G_NEW__TYPE__CACHE__MISS = GVarName( "NEW_TYPE_CACHE_MISS" );
5044
G_NEW__TYPE__CACHE__HIT = GVarName( "NEW_TYPE_CACHE_HIT" );
5045
G_POS__DATA__TYPE = GVarName( "POS_DATA_TYPE" );
5046
G_NEW__TYPE__NEXT__ID = GVarName( "NEW_TYPE_NEXT_ID" );
5047
G_NEW__TYPE__ID__LIMIT = GVarName( "NEW_TYPE_ID_LIMIT" );
5048
G_FLUSH__ALL__METHOD__CACHES = GVarName( "FLUSH_ALL_METHOD_CACHES" );
5049
G_POS__NUMB__TYPE = GVarName( "POS_NUMB_TYPE" );
5050
G_NEW__TYPE = GVarName( "NEW_TYPE" );
5051
G_POS__FIRST__FREE__TYPE = GVarName( "POS_FIRST_FREE_TYPE" );
5052
G_IsFamily = GVarName( "IsFamily" );
5053
G_NewType2 = GVarName( "NewType2" );
5054
G_TypeOfTypes = GVarName( "TypeOfTypes" );
5055
G_NewType3 = GVarName( "NewType3" );
5056
G_NewType4 = GVarName( "NewType4" );
5057
G_NewType5 = GVarName( "NewType5" );
5058
G_Subtype2 = GVarName( "Subtype2" );
5059
G_Subtype3 = GVarName( "Subtype3" );
5060
G_SupType2 = GVarName( "SupType2" );
5061
G_SupType3 = GVarName( "SupType3" );
5062
G_FlagsType = GVarName( "FlagsType" );
5063
G_TypeObj = GVarName( "TypeObj" );
5064
G_DataType = GVarName( "DataType" );
5065
G_SharedType = GVarName( "SharedType" );
5066
G_IsNoImmediateMethodsObject = GVarName( "IsNoImmediateMethodsObject" );
5067
G_RunImmediateMethods = GVarName( "RunImmediateMethods" );
5068
G_IsNonAtomicComponentObjectRep = GVarName( "IsNonAtomicComponentObjectRep" );
5069
G_IsAtomicPositionalObjectRep = GVarName( "IsAtomicPositionalObjectRep" );
5070
G_IsReadOnlyPositionalObjectRep = GVarName( "IsReadOnlyPositionalObjectRep" );
5071
G_SetTypeObj = GVarName( "SetTypeObj" );
5072
G_ChangeTypeObj = GVarName( "ChangeTypeObj" );
5073
G_IGNORE__IMMEDIATE__METHODS = GVarName( "IGNORE_IMMEDIATE_METHODS" );
5074
G_ResetFilterObj = GVarName( "ResetFilterObj" );
5075
G_Tester = GVarName( "Tester" );
5076
G_Setter = GVarName( "Setter" );
5077
G_FamilyType = GVarName( "FamilyType" );
5078
G_Ignore = GVarName( "Ignore" );
5079
G_MAKE__READ__WRITE__GLOBAL = GVarName( "MAKE_READ_WRITE_GLOBAL" );
5080
G_IsAttributeStoringRepFlags = GVarName( "IsAttributeStoringRepFlags" );
5081
G_INFO__OWA = GVarName( "INFO_OWA" );
5082
G_Objectify = GVarName( "Objectify" );
5083
5084
/* record names used in handlers */
5085
R_TYPES__LIST__FAM = RNamName( "TYPES_LIST_FAM" );
5086
R_NAME = RNamName( "NAME" );
5087
R_REQ__FLAGS = RNamName( "REQ_FLAGS" );
5088
R_IMP__FLAGS = RNamName( "IMP_FLAGS" );
5089
R_TYPES = RNamName( "TYPES" );
5090
R_nTYPES = RNamName( "nTYPES" );
5091
R_HASH__SIZE = RNamName( "HASH_SIZE" );
5092
5093
/* information for the functions */
5094
C_NEW_STRING( DefaultName, 14, "local function" );
5095
C_NEW_STRING( FileName, 19, "GAPROOT/lib/type1.g" );
5096
NameFunc[1] = DefaultName;
5097
NamsFunc[1] = 0;
5098
NargFunc[1] = 0;
5099
NameFunc[2] = DefaultName;
5100
NamsFunc[2] = 0;
5101
NargFunc[2] = 6;
5102
NameFunc[3] = DefaultName;
5103
NamsFunc[3] = 0;
5104
NargFunc[3] = 6;
5105
NameFunc[4] = DefaultName;
5106
NamsFunc[4] = 0;
5107
NargFunc[4] = 2;
5108
NameFunc[5] = DefaultName;
5109
NamsFunc[5] = 0;
5110
NargFunc[5] = 4;
5111
NameFunc[6] = DefaultName;
5112
NamsFunc[6] = 0;
5113
NargFunc[6] = 2;
5114
NameFunc[7] = DefaultName;
5115
NamsFunc[7] = 0;
5116
NargFunc[7] = 3;
5117
NameFunc[8] = DefaultName;
5118
NamsFunc[8] = 0;
5119
NargFunc[8] = 4;
5120
NameFunc[9] = DefaultName;
5121
NamsFunc[9] = 0;
5122
NargFunc[9] = 5;
5123
NameFunc[10] = DefaultName;
5124
NamsFunc[10] = 0;
5125
NargFunc[10] = -1;
5126
NameFunc[11] = DefaultName;
5127
NamsFunc[11] = 0;
5128
NargFunc[11] = 4;
5129
NameFunc[12] = DefaultName;
5130
NamsFunc[12] = 0;
5131
NargFunc[12] = 2;
5132
NameFunc[13] = DefaultName;
5133
NamsFunc[13] = 0;
5134
NargFunc[13] = 3;
5135
NameFunc[14] = DefaultName;
5136
NamsFunc[14] = 0;
5137
NargFunc[14] = 4;
5138
NameFunc[15] = DefaultName;
5139
NamsFunc[15] = 0;
5140
NargFunc[15] = 5;
5141
NameFunc[16] = DefaultName;
5142
NamsFunc[16] = 0;
5143
NargFunc[16] = -1;
5144
NameFunc[17] = DefaultName;
5145
NamsFunc[17] = 0;
5146
NargFunc[17] = 2;
5147
NameFunc[18] = DefaultName;
5148
NamsFunc[18] = 0;
5149
NargFunc[18] = 3;
5150
NameFunc[19] = DefaultName;
5151
NamsFunc[19] = 0;
5152
NargFunc[19] = -1;
5153
NameFunc[20] = DefaultName;
5154
NamsFunc[20] = 0;
5155
NargFunc[20] = 2;
5156
NameFunc[21] = DefaultName;
5157
NamsFunc[21] = 0;
5158
NargFunc[21] = 3;
5159
NameFunc[22] = DefaultName;
5160
NamsFunc[22] = 0;
5161
NargFunc[22] = -1;
5162
NameFunc[23] = DefaultName;
5163
NamsFunc[23] = 0;
5164
NargFunc[23] = 1;
5165
NameFunc[24] = DefaultName;
5166
NamsFunc[24] = 0;
5167
NargFunc[24] = 1;
5168
NameFunc[25] = DefaultName;
5169
NamsFunc[25] = 0;
5170
NargFunc[25] = 1;
5171
NameFunc[26] = DefaultName;
5172
NamsFunc[26] = 0;
5173
NargFunc[26] = 2;
5174
NameFunc[27] = DefaultName;
5175
NamsFunc[27] = 0;
5176
NargFunc[27] = 1;
5177
NameFunc[28] = DefaultName;
5178
NamsFunc[28] = 0;
5179
NargFunc[28] = 1;
5180
NameFunc[29] = DefaultName;
5181
NamsFunc[29] = 0;
5182
NargFunc[29] = 1;
5183
NameFunc[30] = DefaultName;
5184
NamsFunc[30] = 0;
5185
NargFunc[30] = 1;
5186
NameFunc[31] = DefaultName;
5187
NamsFunc[31] = 0;
5188
NargFunc[31] = 2;
5189
NameFunc[32] = DefaultName;
5190
NamsFunc[32] = 0;
5191
NargFunc[32] = 2;
5192
NameFunc[33] = DefaultName;
5193
NamsFunc[33] = 0;
5194
NargFunc[33] = 2;
5195
NameFunc[34] = DefaultName;
5196
NamsFunc[34] = 0;
5197
NargFunc[34] = 2;
5198
NameFunc[35] = DefaultName;
5199
NamsFunc[35] = 0;
5200
NargFunc[35] = 3;
5201
NameFunc[36] = DefaultName;
5202
NamsFunc[36] = 0;
5203
NargFunc[36] = -1;
5204
NameFunc[37] = DefaultName;
5205
NamsFunc[37] = 0;
5206
NargFunc[37] = -1;
5207
5208
/* create all the functions defined in this module */
5209
func1 = NewFunction(NameFunc[1],NargFunc[1],NamsFunc[1],HdlrFunc1);
5210
ENVI_FUNC( func1 ) = TLS(CurrLVars);
5211
CHANGED_BAG( TLS(CurrLVars) );
5212
body1 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj));
5213
BODY_FUNC( func1 ) = body1;
5214
CHANGED_BAG( func1 );
5215
CALL_0ARGS( func1 );
5216
5217
/* return success */
5218
return 0;
5219
5220
}
5221
5222
/* 'PostRestore' restore gvars, rnams, functions */
5223
static Int PostRestore ( StructInitInfo * module )
5224
{
5225
5226
/* global variables used in handlers */
5227
G_NAME__FUNC = GVarName( "NAME_FUNC" );
5228
G_IsType = GVarName( "IsType" );
5229
G_IS__REC = GVarName( "IS_REC" );
5230
G_IS__LIST = GVarName( "IS_LIST" );
5231
G_ADD__LIST = GVarName( "ADD_LIST" );
5232
G_IS__PLIST__REP = GVarName( "IS_PLIST_REP" );
5233
G_IS__BLIST = GVarName( "IS_BLIST" );
5234
G_IS__RANGE = GVarName( "IS_RANGE" );
5235
G_IS__STRING__REP = GVarName( "IS_STRING_REP" );
5236
G_Error = GVarName( "Error" );
5237
G_TYPE__OBJ = GVarName( "TYPE_OBJ" );
5238
G_FAMILY__OBJ = GVarName( "FAMILY_OBJ" );
5239
G_IMMUTABLE__COPY__OBJ = GVarName( "IMMUTABLE_COPY_OBJ" );
5240
G_IS__IDENTICAL__OBJ = GVarName( "IS_IDENTICAL_OBJ" );
5241
G_IS__COMOBJ = GVarName( "IS_COMOBJ" );
5242
G_SET__TYPE__COMOBJ = GVarName( "SET_TYPE_COMOBJ" );
5243
G_IS__POSOBJ = GVarName( "IS_POSOBJ" );
5244
G_SET__TYPE__POSOBJ = GVarName( "SET_TYPE_POSOBJ" );
5245
G_LEN__POSOBJ = GVarName( "LEN_POSOBJ" );
5246
G_IS__DATOBJ = GVarName( "IS_DATOBJ" );
5247
G_SET__TYPE__DATOBJ = GVarName( "SET_TYPE_DATOBJ" );
5248
G_IS__OBJECT = GVarName( "IS_OBJECT" );
5249
G_AND__FLAGS = GVarName( "AND_FLAGS" );
5250
G_SUB__FLAGS = GVarName( "SUB_FLAGS" );
5251
G_HASH__FLAGS = GVarName( "HASH_FLAGS" );
5252
G_IS__EQUAL__FLAGS = GVarName( "IS_EQUAL_FLAGS" );
5253
G_IS__SUBSET__FLAGS = GVarName( "IS_SUBSET_FLAGS" );
5254
G_FLAG1__FILTER = GVarName( "FLAG1_FILTER" );
5255
G_FLAGS__FILTER = GVarName( "FLAGS_FILTER" );
5256
G_METHODS__OPERATION = GVarName( "METHODS_OPERATION" );
5257
G_SETTER__FUNCTION = GVarName( "SETTER_FUNCTION" );
5258
G_GETTER__FUNCTION = GVarName( "GETTER_FUNCTION" );
5259
G_IS__AND__FILTER = GVarName( "IS_AND_FILTER" );
5260
G_COMPACT__TYPE__IDS = GVarName( "COMPACT_TYPE_IDS" );
5261
G_LEN__LIST = GVarName( "LEN_LIST" );
5262
G_SET__FILTER__LIST = GVarName( "SET_FILTER_LIST" );
5263
G_RESET__FILTER__LIST = GVarName( "RESET_FILTER_LIST" );
5264
G_GASMAN = GVarName( "GASMAN" );
5265
G_InstallAttributeFunction = GVarName( "InstallAttributeFunction" );
5266
G_InstallOtherMethod = GVarName( "InstallOtherMethod" );
5267
G_IsAttributeStoringRep = GVarName( "IsAttributeStoringRep" );
5268
G_GETTER__FLAGS = GVarName( "GETTER_FLAGS" );
5269
G_LENGTH__SETTER__METHODS__2 = GVarName( "LENGTH_SETTER_METHODS_2" );
5270
G_SetFilterObj = GVarName( "SetFilterObj" );
5271
G_Subtype = GVarName( "Subtype" );
5272
G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" );
5273
G_WITH__IMPS__FLAGS = GVarName( "WITH_IMPS_FLAGS" );
5274
G_CATEGORIES__FAMILY = GVarName( "CATEGORIES_FAMILY" );
5275
G_NEW__FAMILY = GVarName( "NEW_FAMILY" );
5276
G_EMPTY__FLAGS = GVarName( "EMPTY_FLAGS" );
5277
G_NewFamily2 = GVarName( "NewFamily2" );
5278
G_TypeOfFamilies = GVarName( "TypeOfFamilies" );
5279
G_NewFamily3 = GVarName( "NewFamily3" );
5280
G_NewFamily4 = GVarName( "NewFamily4" );
5281
G_NewFamily5 = GVarName( "NewFamily5" );
5282
G_NEW__TYPE__CACHE__MISS = GVarName( "NEW_TYPE_CACHE_MISS" );
5283
G_NEW__TYPE__CACHE__HIT = GVarName( "NEW_TYPE_CACHE_HIT" );
5284
G_POS__DATA__TYPE = GVarName( "POS_DATA_TYPE" );
5285
G_NEW__TYPE__NEXT__ID = GVarName( "NEW_TYPE_NEXT_ID" );
5286
G_NEW__TYPE__ID__LIMIT = GVarName( "NEW_TYPE_ID_LIMIT" );
5287
G_FLUSH__ALL__METHOD__CACHES = GVarName( "FLUSH_ALL_METHOD_CACHES" );
5288
G_POS__NUMB__TYPE = GVarName( "POS_NUMB_TYPE" );
5289
G_NEW__TYPE = GVarName( "NEW_TYPE" );
5290
G_POS__FIRST__FREE__TYPE = GVarName( "POS_FIRST_FREE_TYPE" );
5291
G_IsFamily = GVarName( "IsFamily" );
5292
G_NewType2 = GVarName( "NewType2" );
5293
G_TypeOfTypes = GVarName( "TypeOfTypes" );
5294
G_NewType3 = GVarName( "NewType3" );
5295
G_NewType4 = GVarName( "NewType4" );
5296
G_NewType5 = GVarName( "NewType5" );
5297
G_Subtype2 = GVarName( "Subtype2" );
5298
G_Subtype3 = GVarName( "Subtype3" );
5299
G_SupType2 = GVarName( "SupType2" );
5300
G_SupType3 = GVarName( "SupType3" );
5301
G_FlagsType = GVarName( "FlagsType" );
5302
G_TypeObj = GVarName( "TypeObj" );
5303
G_DataType = GVarName( "DataType" );
5304
G_SharedType = GVarName( "SharedType" );
5305
G_IsNoImmediateMethodsObject = GVarName( "IsNoImmediateMethodsObject" );
5306
G_RunImmediateMethods = GVarName( "RunImmediateMethods" );
5307
G_IsNonAtomicComponentObjectRep = GVarName( "IsNonAtomicComponentObjectRep" );
5308
G_IsAtomicPositionalObjectRep = GVarName( "IsAtomicPositionalObjectRep" );
5309
G_IsReadOnlyPositionalObjectRep = GVarName( "IsReadOnlyPositionalObjectRep" );
5310
G_SetTypeObj = GVarName( "SetTypeObj" );
5311
G_ChangeTypeObj = GVarName( "ChangeTypeObj" );
5312
G_IGNORE__IMMEDIATE__METHODS = GVarName( "IGNORE_IMMEDIATE_METHODS" );
5313
G_ResetFilterObj = GVarName( "ResetFilterObj" );
5314
G_Tester = GVarName( "Tester" );
5315
G_Setter = GVarName( "Setter" );
5316
G_FamilyType = GVarName( "FamilyType" );
5317
G_Ignore = GVarName( "Ignore" );
5318
G_MAKE__READ__WRITE__GLOBAL = GVarName( "MAKE_READ_WRITE_GLOBAL" );
5319
G_IsAttributeStoringRepFlags = GVarName( "IsAttributeStoringRepFlags" );
5320
G_INFO__OWA = GVarName( "INFO_OWA" );
5321
G_Objectify = GVarName( "Objectify" );
5322
5323
/* record names used in handlers */
5324
R_TYPES__LIST__FAM = RNamName( "TYPES_LIST_FAM" );
5325
R_NAME = RNamName( "NAME" );
5326
R_REQ__FLAGS = RNamName( "REQ_FLAGS" );
5327
R_IMP__FLAGS = RNamName( "IMP_FLAGS" );
5328
R_TYPES = RNamName( "TYPES" );
5329
R_nTYPES = RNamName( "nTYPES" );
5330
R_HASH__SIZE = RNamName( "HASH_SIZE" );
5331
5332
/* information for the functions */
5333
NameFunc[1] = DefaultName;
5334
NamsFunc[1] = 0;
5335
NargFunc[1] = 0;
5336
NameFunc[2] = DefaultName;
5337
NamsFunc[2] = 0;
5338
NargFunc[2] = 6;
5339
NameFunc[3] = DefaultName;
5340
NamsFunc[3] = 0;
5341
NargFunc[3] = 6;
5342
NameFunc[4] = DefaultName;
5343
NamsFunc[4] = 0;
5344
NargFunc[4] = 2;
5345
NameFunc[5] = DefaultName;
5346
NamsFunc[5] = 0;
5347
NargFunc[5] = 4;
5348
NameFunc[6] = DefaultName;
5349
NamsFunc[6] = 0;
5350
NargFunc[6] = 2;
5351
NameFunc[7] = DefaultName;
5352
NamsFunc[7] = 0;
5353
NargFunc[7] = 3;
5354
NameFunc[8] = DefaultName;
5355
NamsFunc[8] = 0;
5356
NargFunc[8] = 4;
5357
NameFunc[9] = DefaultName;
5358
NamsFunc[9] = 0;
5359
NargFunc[9] = 5;
5360
NameFunc[10] = DefaultName;
5361
NamsFunc[10] = 0;
5362
NargFunc[10] = -1;
5363
NameFunc[11] = DefaultName;
5364
NamsFunc[11] = 0;
5365
NargFunc[11] = 4;
5366
NameFunc[12] = DefaultName;
5367
NamsFunc[12] = 0;
5368
NargFunc[12] = 2;
5369
NameFunc[13] = DefaultName;
5370
NamsFunc[13] = 0;
5371
NargFunc[13] = 3;
5372
NameFunc[14] = DefaultName;
5373
NamsFunc[14] = 0;
5374
NargFunc[14] = 4;
5375
NameFunc[15] = DefaultName;
5376
NamsFunc[15] = 0;
5377
NargFunc[15] = 5;
5378
NameFunc[16] = DefaultName;
5379
NamsFunc[16] = 0;
5380
NargFunc[16] = -1;
5381
NameFunc[17] = DefaultName;
5382
NamsFunc[17] = 0;
5383
NargFunc[17] = 2;
5384
NameFunc[18] = DefaultName;
5385
NamsFunc[18] = 0;
5386
NargFunc[18] = 3;
5387
NameFunc[19] = DefaultName;
5388
NamsFunc[19] = 0;
5389
NargFunc[19] = -1;
5390
NameFunc[20] = DefaultName;
5391
NamsFunc[20] = 0;
5392
NargFunc[20] = 2;
5393
NameFunc[21] = DefaultName;
5394
NamsFunc[21] = 0;
5395
NargFunc[21] = 3;
5396
NameFunc[22] = DefaultName;
5397
NamsFunc[22] = 0;
5398
NargFunc[22] = -1;
5399
NameFunc[23] = DefaultName;
5400
NamsFunc[23] = 0;
5401
NargFunc[23] = 1;
5402
NameFunc[24] = DefaultName;
5403
NamsFunc[24] = 0;
5404
NargFunc[24] = 1;
5405
NameFunc[25] = DefaultName;
5406
NamsFunc[25] = 0;
5407
NargFunc[25] = 1;
5408
NameFunc[26] = DefaultName;
5409
NamsFunc[26] = 0;
5410
NargFunc[26] = 2;
5411
NameFunc[27] = DefaultName;
5412
NamsFunc[27] = 0;
5413
NargFunc[27] = 1;
5414
NameFunc[28] = DefaultName;
5415
NamsFunc[28] = 0;
5416
NargFunc[28] = 1;
5417
NameFunc[29] = DefaultName;
5418
NamsFunc[29] = 0;
5419
NargFunc[29] = 1;
5420
NameFunc[30] = DefaultName;
5421
NamsFunc[30] = 0;
5422
NargFunc[30] = 1;
5423
NameFunc[31] = DefaultName;
5424
NamsFunc[31] = 0;
5425
NargFunc[31] = 2;
5426
NameFunc[32] = DefaultName;
5427
NamsFunc[32] = 0;
5428
NargFunc[32] = 2;
5429
NameFunc[33] = DefaultName;
5430
NamsFunc[33] = 0;
5431
NargFunc[33] = 2;
5432
NameFunc[34] = DefaultName;
5433
NamsFunc[34] = 0;
5434
NargFunc[34] = 2;
5435
NameFunc[35] = DefaultName;
5436
NamsFunc[35] = 0;
5437
NargFunc[35] = 3;
5438
NameFunc[36] = DefaultName;
5439
NamsFunc[36] = 0;
5440
NargFunc[36] = -1;
5441
NameFunc[37] = DefaultName;
5442
NamsFunc[37] = 0;
5443
NargFunc[37] = -1;
5444
5445
/* return success */
5446
return 0;
5447
5448
}
5449
5450
5451
/* <name> returns the description of this module */
5452
static StructInitInfo module = {
5453
/* type = */ 2,
5454
/* name = */ "GAPROOT/lib/type1.g",
5455
/* revision_c = */ 0,
5456
/* revision_h = */ 0,
5457
/* version = */ 0,
5458
/* crc = */ -36845939,
5459
/* initKernel = */ InitKernel,
5460
/* initLibrary = */ InitLibrary,
5461
/* checkInit = */ 0,
5462
/* preSave = */ 0,
5463
/* postSave = */ 0,
5464
/* postRestore = */ PostRestore
5465
};
5466
5467
StructInitInfo * Init__type1 ( void )
5468
{
5469
return &module;
5470
}
5471
5472
/* compiled code ends here */
5473
#endif
5474
5475