#include "M3Runtime.h" typedef struct { int tc; char* str; int len; } TXT; PRIVATE TXT txt1 = { 3, "expecting array type on array constructor", 42}; PRIVATE TXT txt2 = { 3, "trailing \047..\047 not allowed on open array constructors", 53 }; PRIVATE TXT txt3 = { 3, "two few elements in array constructor", 38}; PRIVATE TXT txt4 = { 3, "too many values specified", 26}; PRIVATE TXT txt5 = { 3, "keyword values not allowed in array constructors", 49 }; PRIVATE TXT txt6 = { 3, "range values not allowed in array constructors", 47 }; PRIVATE TXT txt7 = { 3, "expression is not assignable to array element", 46 }; PRIVATE TXT txt8 = { 3, "@", 2}; PRIVATE TXT txt9 = { 3, ".elts[@] = ", 12}; PRIVATE TXT txt10 = { 3, "@;\012", 4}; PRIVATE TXT txt11 = { 3, "{\001\012register int ae;\012", 21}; PRIVATE TXT txt12 = { 3, "for (ae = @; ae < @; ae++) {\001\012", 31}; PRIVATE TXT txt13 = { 3, "@.elts[ae] = ", 14}; PRIVATE TXT txt14 = { 3, "@.elts[@];\012\002};\012\002};\012", 20}; PRIVATE TXT txt15 = { 3, "{{\001\012", 5}; PRIVATE TXT txt16 = { 3, ", ", 3}; PRIVATE TXT txt17 = { 3, "\012", 2}; PRIVATE TXT txt18 = { 3, "\002}}", 4}; #line 16 "../Interfaces/Type.i3" #define t8 ADDRESS #define t73 void typedef int t2; #line 116 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef struct { char* elts; int size[1]; } t57; #line 16 "../Interfaces/Type.i3" #define t42 t57 #define TC8 TC_Type__Map IMPORT TYPE TC_Type__Map; #line 16 IMPORT char VS_Type__Map__41dd9f4b33104fce; #define t13 ADDRESS #define TC13 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 14 "./Expr.i3" #define t15 ADDRESS #define t70 ADDRESS typedef struct { TYPE self; int private; } t70_methods; #define t70_msize (sizeof (t70_methods)) typedef struct { ADDRESS methods; } t70_fields; #define t70_size (sizeof (t70_fields)) #define TC70 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; #line 16 "../Interfaces/M3.i3" #define t9 ADDRESS #define TC9 TC_M3__Expr IMPORT TYPE TC_M3__Expr; #line 16 IMPORT char VS_M3__Expr__8ae39aaa2d432477; #line 14 "./Expr.i3" #define t38 t57 #define TC15 TC_Expr__List IMPORT TYPE TC_Expr__List; #line 14 IMPORT char VS_Expr__List__3f87eceb2b9a246a; #line 17 "../Interfaces/Scope.i3" #define t29 ADDRESS #define t23 ADDRESS #define TC23 TC_M3__Value IMPORT TYPE TC_M3__Value; #line 15 "../Interfaces/M3.i3" IMPORT char VS_M3__Value__6f64cf9c2cae25fb; #line 17 "../Interfaces/Scope.i3" #define t33 t57 #define TC29 TC_Scope__ValueList IMPORT TYPE TC_Scope__ValueList; #line 17 IMPORT char VS_Scope__ValueList__64bf053e22e4e53c; #line 17 "../Interfaces/Type.i3" #define t40 ADDRESS #define t3 ADDRESS #define TC3 TC_M3__Type IMPORT TYPE TC_M3__Type; #line 18 "../Interfaces/M3.i3" IMPORT char VS_M3__Type__4d87bc25311f81d2; #line 17 "../Interfaces/Type.i3" typedef struct { t40 _next; t3 _type; } t41; #define TC40 TC_Type__List IMPORT TYPE TC_Type__List; #line 17 IMPORT char VS_Type__List__5791758e343becc1; #define t52 ADDRESS #define TC52 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t59 ADDRESS #define TC59 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; typedef unsigned char t1; #line 17 "ArrayExpr.m3" #define t4 ADDRESS #line 15 "../Interfaces/Int.i3" typedef t73 (*t5)(); #line 19 "../Interfaces/M3.i3" #define t11 ADDRESS #define TC11 TC_M3__Temp IMPORT TYPE TC_M3__Temp; #line 19 IMPORT char VS_M3__Temp__450b691937f03dae; #line 31 "./ExprRep.i3" typedef t11 (*t12)(); #line 24 typedef t9 (*t10)(); #line 60 "ArrayExpr.m3" typedef t1 (*t6)(); #line 17 typedef struct { int filler; } t4_methods; #define t4_msize (sizeof (t4_methods)) typedef struct { #line 17 t3 _tipe; t15 _args; t1 _dots; t3 _index; } t4_fields; #define t4_size (sizeof (t4_fields)) PRIVATE void t4_InitProc (); #line 17 PRIVATE void t4_SetupProc (); PRIVATE void t4_PrintProc (); PRIVATE typecell t4_TC; PRIVATE typecell t4_TC_init = {0, 0, 0, 0, 0, (PROC)NIL, #line 17 t4_size, t4_msize, NIL, 0, 0, t4_InitProc, t4_SetupProc, t4_PrintProc, "", -1247559438, 694722631}; PRIVATE TYPE TC4 = &t4_TC; #define t60 ADDRESS typedef struct { TYPE self; int private; } t60_methods; #define t60_msize (sizeof (t60_methods)) typedef struct { ADDRESS methods; } t60_fields; #define t60_size (sizeof (t60_fields)) #define TC60 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t60_MapProc TC_ROOT->mapProc #define t7 ADDRESS #define TC7 TC_Wr__T IMPORT TYPE TC_Wr__T; #line 90 ".ROOT/.boots/corelib/Interfaces/Wr.i3" IMPORT char VS_Wr__T__2555b70b3f7780b1; #define t7_MapProc TC_Wr__T->mapProc #define t14 ADDRESS #define TC14 TC_String__T IMPORT TYPE TC_String__T; #line 13 "../Interfaces/String.i3" IMPORT char VS_String__T__3a6c7dc12615e4ee; #line 15 "../Interfaces/SubrangeType.i3" typedef t3 (*t16)(); #line 15 "../Interfaces/Token.i3" typedef unsigned char t44; #line 45 typedef struct { int elts[4]; } t17; #line 27 "../Interfaces/Emit.i3" typedef signed_char t18; #line 63 typedef t18 (*t19)(); #define t20 ADDRESS #define TC20 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t20_MapProc TC_TEXT->mapProc typedef signed_char t50; #line 65 "../Interfaces/Token.i3" #define t43 t57 typedef struct { t14 elts[100]; } t51; #line 17 "../Interfaces/String.i3" typedef struct { t2 _top; t51 _stk; } t21; #line 16 "../Interfaces/Variable.i3" #define t22 ADDRESS #define TC22 TC_Variable__T IMPORT TYPE TC_Variable__T; #line 16 IMPORT char VS_Variable__T__be7ead4a3afd8be5; typedef double t24; typedef unsigned char t25; #line 14 "../Interfaces/M3.i3" #define t26 ADDRESS #define TC26 TC_M3__Scope IMPORT TYPE TC_M3__Scope; #line 14 IMPORT char VS_M3__Scope__6e6d8848308d8a2d; #line 24 "../Interfaces/Variable.i3" typedef t22 (*t27)(); #line 14 "../Interfaces/Decl.i3" typedef struct { t14 _alias; t1 _isExternal; t1 _isInline; t1 _isUnused; t1 _isObsolete; } t28; #line 14 "../Interfaces/String.i3" typedef struct { t14 _module; t14 _item; } t30; #line 38 "../Interfaces/Scope.i3" typedef t23 (*t31)(); #line 31 typedef t26 (*t32)(); #line 18 "../Interfaces/Value.i3" typedef unsigned char t34; #line 40 typedef t34 (*t35)(); #line 29 "../Interfaces/ArrayType.i3" typedef t2 (*t36)(); #line 13 "./ExprRep.i3" #define t37 ADDRESS #line 13 typedef struct { t5 _bind; t5 _check; t5 _write; t6 _isEqual; t10 _evaluate; t5 _getBounds; t6 _isWritable; t6 _isDesignator; #line 13 t6 _isZeroes; t5 _genLiteral; t5 _fprint; t12 _compile; } t37_methods; #define t37_msize (sizeof (t37_methods)) typedef struct { #line 13 t2 _origin; t3 _type; t1 _bound; t1 _inCheck; t1 _checked; } t37_fields; #define t37_size (sizeof (t37_fields)) #define TC37 TC_M3__Expr typedef t8 (*t39)(); #line 65 "../Interfaces/Token.i3" typedef struct { t14 elts[97]; } t45; typedef int t46; #line 37 "../Interfaces/String.i3" typedef t20 (*t47)(); #line 34 typedef t14 (*t48)(); #line 28 #define t49 t57 typedef signed_char t53; #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef t53 (*t54)(); #line 26 typedef t46 (*t55)(); #line 23 typedef t25 (*t56)(); #line 91 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef unsigned char t58; #line 15 ".ROOT/.boots/corelib/Interfaces/Thread.i3" #define t61 ADDRESS #define TC61 TC_Thread__T IMPORT TYPE TC_Thread__T; #line 15 IMPORT char VS_Thread__T__2555b70b3f7780b1; #define t61_MapProc TC_Thread__T->mapProc typedef t59 (*t62)(); #define t63 ADDRESS #define TC63 TC_Thread__Condition IMPORT TYPE TC_Thread__Condition; #line 21 IMPORT char VS_Thread__Condition__26d5968239e08f4e; #define t63_MapProc TC_Thread__Condition->mapProc #define t64 ADDRESS #define TC64 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t64_MapProc TC_MUTEX->mapProc typedef t61 (*t65)(); #line 23 #define t66 ADDRESS #line 23 typedef struct { t62 _apply; } t66_methods; #define t66_msize (sizeof (t66_methods)) typedef struct { #line 23 int filler; } t66_fields; #define t66_size (sizeof (t66_fields)) #define TC66 TC_Thread__Closure IMPORT TYPE TC_Thread__Closure; #line 23 IMPORT char VS_Thread__Closure__7fb5c6232c5a658a; #define t66_MapProc TC_Thread__Closure->mapProc typedef t63 (*t67)(); typedef t64 (*t68)(); #line 28 #define t69 ADDRESS #line 28 typedef struct { int filler; } t69_methods; #define t69_msize (sizeof (t69_methods)) typedef struct { #line 28 t46 _stackSize; } t69_fields; #define t69_size (sizeof (t69_fields)) #define TC69 TC_Thread__SizedClosure IMPORT TYPE TC_Thread__SizedClosure; #line 28 IMPORT char VS_Thread__SizedClosure__8a46717d2eae7b07; #define t69_MapProc TC_Thread__SizedClosure->mapProc #define t71 ADDRESS #define TC71 TC_M3__Stmt IMPORT TYPE TC_M3__Stmt; #line 17 "../Interfaces/M3.i3" IMPORT char VS_M3__Stmt__376b307627fc1f2f; typedef CLOSURE t72; typedef float t74; #line 10 "ArrayExpr.m3" IMPORT INITLINK* SubrangeType__init; IMPORT INITLINK* TypeExpr__init; IMPORT INITLINK* EnumExpr__init; IMPORT INITLINK* IntegerExpr__init; #line 10 IMPORT INITLINK* Target__init; IMPORT INITLINK* Int__init; IMPORT INITLINK* Emit__init; IMPORT INITLINK* Temp__init; IMPORT INITLINK* RangeExpr__init; #line 10 IMPORT INITLINK* KeywordExpr__init; IMPORT INITLINK* Wr__init; IMPORT INITLINK* String__init; IMPORT INITLINK* ArrayType__init; #line 10 IMPORT INITLINK* Type__init; IMPORT INITLINK* Error__init; IMPORT INITLINK* ExprRep__init; IMPORT INITLINK* Expr__init; IMPORT INITLINK* ArrayExpr__init; #line 10 IMPORT t3 _SubrangeType__New (); IMPORT char VS_SubrangeType__New__2c56975626e1fbb8; IMPORT t1 _EnumExpr__Split (); IMPORT char VS_EnumExpr__Split__cac875982d1549f5; #line 10 IMPORT t1 _IntegerExpr__Split (); IMPORT char VS_IntegerExpr__Split__132919062838cba6; IMPORT char VS_Target__INTSIZE__6d9548032b40710f; #line 10 IMPORT t3 _Int__T; IMPORT char VS_Int__T__1062912139372387; IMPORT char VS_Emit__MaxStream__cf0a0e8934c9c9f3; IMPORT TYPE TC_Emit__Format; #line 10 IMPORT char VS_Emit__Format__bc4a2b083b93bbd7; IMPORT t73 _Emit__Op (); IMPORT char VS_Emit__Op__072646cc27c8ae10; IMPORT t73 _Emit__OpI (); #line 10 IMPORT char VS_Emit__OpI__02cb878634bb9f49; IMPORT t73 _Emit__OpII (); IMPORT char VS_Emit__OpII__2247fe46332f901b; IMPORT t73 _Emit__OpT (); #line 10 IMPORT char VS_Emit__OpT__764bdffe21d249e8; IMPORT t73 _Emit__OpTI (); IMPORT char VS_Emit__OpTI__af828b1c28578815; IMPORT TYPE TC_Temp__T; #line 10 IMPORT char VS_Temp__T__3a6c7dc12615e4ee; IMPORT t11 _Temp__Alloc (); IMPORT char VS_Temp__Alloc__0b946c9d3ec0974e; IMPORT t73 _Temp__Free (); #line 10 IMPORT char VS_Temp__Free__3b952a2225c26846; IMPORT t1 _RangeExpr__Split (); IMPORT char VS_RangeExpr__Split__ee8f44e4219e1314; #line 10 IMPORT t1 _KeywordExpr__Split (); IMPORT char VS_KeywordExpr__Split__c7296ea8373069e8; IMPORT EXCEPTION_NAME _Thread__Alerted; #line 10 IMPORT char VS_Thread__Alerted__fc88feb43485af46; IMPORT EXCEPTION_NAME _Wr__Failure; IMPORT char VS_Wr__Failure__5f82cfb43dabf527; #line 10 IMPORT EXCEPTION_NAME _Wr__Error; IMPORT char VS_Wr__Error__c367253d3ed4fd15; IMPORT t3 _ArrayType__New (); IMPORT char VS_ArrayType__New__2a130f4727706257; #line 10 IMPORT t1 _ArrayType__Split (); IMPORT char VS_ArrayType__Split__b3402f88270f8053; IMPORT TYPE TC_Type__T; IMPORT char VS_Type__T__2446b70b3f7780a5; #line 10 IMPORT t3 _Type__Bind (); IMPORT char VS_Type__Bind__3443ccd12eedb9e8; IMPORT t2 _Type__Size (); IMPORT char VS_Type__Size__2f4d980e28adf05b; #line 10 IMPORT t2 _Type__Number (); IMPORT char VS_Type__Number__f5ca10923ed3cf22; IMPORT t73 _Type__GetBounds (); IMPORT char VS_Type__GetBounds__9a241b2b3c98ad98; #line 10 IMPORT t1 _Type__IsEqual (); IMPORT char VS_Type__IsEqual__4098bc3f32325d05; IMPORT t73 _Type__Check (); IMPORT char VS_Type__Check__3c8ceb09206ee440; #line 10 IMPORT t1 _Type__IsAssignable (); IMPORT char VS_Type__IsAssignable__6d0a7b0e2c806002; IMPORT t73 _Type__Fingerprint (); IMPORT char VS_Type__Fingerprint__0d24a3463c25e166; #line 10 IMPORT t73 _Error__Msg (); IMPORT char VS_Error__Msg__4d119a332467757f; IMPORT t73 _ExprRep__Init (); IMPORT char VS_ExprRep__Init__8b7fff3e227cebab; #line 10 IMPORT t73 _ExprRep__NoBind (); IMPORT char VS_ExprRep__NoBind__e7d0d3dd3d703c08; IMPORT t73 _ExprRep__NoCheck (); IMPORT char VS_ExprRep__NoCheck__c11b54bc361794fa; #line 10 IMPORT t9 _ExprRep__NoValue (); IMPORT char VS_ExprRep__NoValue__8ccc143224598a66; IMPORT t73 _ExprRep__NoBounds (); IMPORT char VS_ExprRep__NoBounds__b64bb146289ee4f0; #line 10 IMPORT t1 _ExprRep__IsNever (); IMPORT char VS_ExprRep__IsNever__8f1a069b301903c8; IMPORT t1 _ExprRep__NeverEq (); IMPORT char VS_ExprRep__NeverEq__dfdc2412249ccb65; #line 10 IMPORT t73 _ExprRep__NoWriter (); IMPORT char VS_ExprRep__NoWriter__a97bb1a23bbf506e; IMPORT t73 _ExprRep__NoLiteral (); IMPORT char VS_ExprRep__NoLiteral__6c9c90073f496f67; #line 10 IMPORT TYPE TC_Expr__T; IMPORT char VS_Expr__T__2446b70b3f7780a5; IMPORT t73 _Expr__Bind (); IMPORT char VS_Expr__Bind__7e2752da3eaf56eb; #line 10 IMPORT t3 _Expr__TypeOf (); IMPORT char VS_Expr__TypeOf__fef0a11b388c64fa; IMPORT t9 _Expr__ConstValue (); IMPORT char VS_Expr__ConstValue__ce4fd448218fe483; #line 10 IMPORT t1 _Expr__IsZeroes (); IMPORT char VS_Expr__IsZeroes__76ef605028be697c; IMPORT t73 _Expr__TypeCheck (); IMPORT char VS_Expr__TypeCheck__af9aa9073729e7f7; #line 10 IMPORT t11 _Expr__Compile (); IMPORT char VS_Expr__Compile__a7e0cc4029a2ec76; IMPORT t1 _Expr__IsEqual (); IMPORT char VS_Expr__IsEqual__062d8b2c385e35a9; #line 10 IMPORT t73 _Expr__Fingerprint (); IMPORT char VS_Expr__Fingerprint__50ce687c31d90a5b; IMPORT t73 _Expr__GenLiteral (); IMPORT char VS_Expr__GenLiteral__5d3c8414307dac94; #line 10 EXPORT t9 _ArrayExpr__New (); EXPORT char VS_ArrayExpr__New__716586d625f07976 = '\0'; EXPORT t1 _ArrayExpr__Is (); EXPORT char VS_ArrayExpr__Is__e0903bc835f2d7ee = '\0'; #line 10 EXPORT t1 _ArrayExpr__Subscript (); EXPORT char VS_ArrayExpr__Subscript__15d9ea723b5ed3bc = '\0'; PRIVATE TYPE TC_ArrayExpr__P; #line 10 PRIVATE t73 _ArrayExpr__Bind (); PRIVATE t73 _ArrayExpr__Check (); PRIVATE t1 _ArrayExpr__EqCheck (); PRIVATE t11 _ArrayExpr__Compile (); #line 10 PRIVATE t9 _ArrayExpr__Fold (); PRIVATE t73 _ArrayExpr__FPrinter (); PRIVATE t1 _ArrayExpr__IsZeroes (); PRIVATE t73 _ArrayExpr__GenLiteral (); #line 10 IMPORT char VS_M3__Expr__58bf709e39adf1f7; #line 37 "ArrayExpr.m3" EXPORT t9 _ArrayExpr__New (_type, _args, _dots) t3 _type; t15 _args; t1 _dots; { t4 z0; t1 z4; t1 z1; t1 z2; t2 z3; t15 z5; t3 z6; t46 z7; t4 z8; #line 37 "ArrayExpr.m3" { auto t4 _p; auto t3 _index; auto t3 _element; auto t9 __result; { ZERO1 (& _p); { register char** ptr = (char**) UNEWOBJ (TC4); z0 = (t4) ptr; }; _p = z0; #line 37 CHECKSTACKOVERFLOW; _ExprRep__Init (_p); z4 = _ArrayType__Split (_type, &_index, &_element); z1 = ! z4; if (z1) { _Error__Msg (((ADDRESS)(& txt1.str))); _index = (t3) 0; goto if_1_end; }; z2 = (_index == 0); if (z2) { if (_dots) { _Error__Msg (((ADDRESS)(& txt2.str))); goto if_2_end; }; if_2_end: /**/; NILCHECKB (z5 = _args); z3 = (*((t38*) z5)).size[0] - 1; z6 = _SubrangeType__New ( 0 , z3, _Int__T); _index = z6; z6 = _ArrayType__New (_index, _element); _type = z6; goto if_1_end; }; NILCHECKB (z5 = _args); z7 = (*((t38*) z5)).size[0]; #line 49 z1 = (z7 == 0 ); if (z1) { _Error__Msg (((ADDRESS)(& txt3.str))); goto if_1_end; }; if_1_end: /**/; NILCHECKA (z8 = _p); (((t4_fields*)(z8+(0+t37_size+t70_size)))->_tipe) = _type; NILCHECKA (z8 = _p); (((t4_fields*)(z8+(0+t37_size+t70_size)))->_index) = _index; NILCHECKA (z8 = _p); (((t4_fields*)(z8+(0+t37_size+t70_size)))->_args) = _args; NILCHECKA (z8 = _p); (((t4_fields*)(z8+(0+t37_size+t70_size)))->_dots) = _dots; __result = _p; return __result; } } }; #line 60 "ArrayExpr.m3" EXPORT t1 _ArrayExpr__Is (_e) t9 _e; { t2 z1; t2 z0; t1 z2; #line 60 "ArrayExpr.m3" { auto t1 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z1 = TYPECODE (_e); z0 = TC4->typecode; z2 = (z1 == z0); __result = z2; return __result; } } }; #line 65 "ArrayExpr.m3" EXPORT t1 _ArrayExpr__Subscript (_array, _index, _e) t9 _array; t9 _index; t9 * _e; { t9 z2; t1 z3; t1 z0; t1 z1; t1 z5; t4 z4; t2 z6; t15 z7; t2 z8; t2 z9; #line 65 "ArrayExpr.m3" { auto t4 _p; auto t2 _i; auto t2 _n; auto t2 _min; auto t2 _max; auto t3 _t; auto t1 __result; { ZERO1 (& _p); #line 65 ZERO1B (& __result); CHECKSTACKOVERFLOW; { register ADDRESS ref = (ADDRESS) _array; register int tc = TYPECODE (ref); if (tc == 0) goto tc0_0; if (ISSUBTYPE (tc, TC4)) goto tc0_1; #line 68 goto tc0_else; tc0_0:; __result = 0 ; return __result; tc0_1:; { auto t4 _x; { ZERO1 (& _x); #line 69 _x = (t4) ref; _p = _x; } } goto tc0_exit; tc0_else:; __result = 0 ; return __result; tc0_exit:; }; z2 = _Expr__ConstValue (_index); _index = z2; z3 = (_index == 0); if (z3) { __result = 0 ; return __result; }; z3 = _IntegerExpr__Split (_index, &_i); z0 = ! z3; z1 = 0; if (z0) { z5 = _EnumExpr__Split (_index, &_i, &_t); z0 = ! z5; #line 75 z1 = z0; }; if (z1) { __result = 0 ; return __result; }; NILCHECKA (z4 = _p); _Type__GetBounds ((((t4_fields*)(z4+(0+t37_size+t70_size)))->_index), &_min, &_max); z6 = _i - _min; _i = z6; z3 = (_i < 0 ); z0 = 1; if (! z3) { z6 = _max - _min; z3 = (z6 < _i); z0 = z3; }; if (z0) { __result = 0 ; return __result; #line 81 }; NILCHECKA (z4 = _p); NILCHECKB (z7 = (((t4_fields*)(z4+(0+t37_size+t70_size)))->_args)); z6 = (*((t38*) z7)).size[0] - 1; #line 82 _n = z6; z3 = (_i <= _n); if (z3) { NILCHECKA (z4 = _p); NILCHECKB (z7 = (((t4_fields*)(z4+(0+t37_size+t70_size)))->_args)); #line 83 z6 = _i; if (z6 < 0) RANGEFAULT; { register t57* array = & (*((t38*) z7)); z9 = z6; if (z9 >= (array->size[0])) RANGEFAULT; #line 83 z8 = (int)(array->elts + (z9 * 4)); }; (*_e) = (*(t9*)z8); __result = 1 ; return __result; }; NILCHECKA (z4 = _p); if ((((t4_fields*)(z4+(0+t37_size+t70_size)))->_dots)) { NILCHECKA (z4 = _p); NILCHECKB (z7 = (((t4_fields*)(z4+(0+t37_size+t70_size)))->_args)); #line 84 z6 = _n; if (z6 < 0) RANGEFAULT; { register t57* array = & (*((t38*) z7)); z9 = z6; if (z9 >= (array->size[0])) RANGEFAULT; #line 84 z8 = (int)(array->elts + (z9 * 4)); }; (*_e) = (*(t9*)z8); __result = 1 ; return __result; }; __result = 0 ; return __result; } } }; #line 88 "ArrayExpr.m3" PRIVATE t73 _ArrayExpr__Bind (_p) t4 _p; { t4 z2; t3 z3; t4 z1; t2 z0; t15 z4; t2 z5; t2 z6; #line 88 "ArrayExpr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); z3 = _Type__Bind ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_index)); NILCHECKA (z1 = _p); (((t4_fields*)(z1+(0+t37_size+t70_size)))->_index) = z3; NILCHECKA (z2 = _p); z3 = _Type__Bind ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe)); NILCHECKA (z1 = _p); (((t4_fields*)(z1+(0+t37_size+t70_size)))->_tipe) = z3; NILCHECKA (z1 = _p); (((t37_fields*)(z1+(0+t70_size)))->_type) = (((t4_fields*)(z1+(0+t37_size+t70_size)))->_tipe); { int from, to, index; from = 0 ; NILCHECKA (z2 = _p); NILCHECKB (z4 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 93 z0 = (*((t38*) z4)).size[0] - 1; to = z0; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; #line 93 NILCHECKA (z2 = _p); NILCHECKB (z4 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z4)); #line 93 z6 = _i; if (z6 >= (array->size[0])) RANGEFAULT; z5 = (int)(array->elts + (z6 * 4)); }; _Expr__Bind ((*(t9*)z5)); #line 93 } } }; }; } } }; #line 96 "ArrayExpr.m3" PRIVATE t73 _ArrayExpr__Check (_p) t4 _p; { t4 z2; t1 z5; t1 z0; t2 z1; t15 z3; t2 z4; t2 z6; t46 z7; t3 z8; #line 96 "ArrayExpr.m3" { auto t2 _n; auto t9 _e; auto t9 _value; auto t9 _minE; auto t9 _maxE; auto t3 _index; auto t3 _element; auto t14 _key; { #line 96 CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Type__Check ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe)); NILCHECKA (z2 = _p); z5 = _ArrayType__Split ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe), &_index, &_element); #line 104 z0 = ! z5; if (z0) { _Error__Msg (((ADDRESS)(& txt1.str))); { int from, to, index; from = 0 ; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 106 z1 = (*((t38*) z3)).size[0] - 1; to = z1; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; #line 106 NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 106 z6 = _i; if (z6 >= (array->size[0])) RANGEFAULT; z4 = (int)(array->elts + (z6 * 4)); }; _Expr__TypeCheck ((*(t9*)z4)); #line 106 } } }; }; return; }; z4 = _Type__Number (_index); _n = z4; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); z7 = (*((t38*) z3)).size[0]; #line 111 z5 = (_n < z7); if (z5) { _Error__Msg (((ADDRESS)(& txt4.str))); goto if_9_end; }; if_9_end: /**/; { int from, to, index; from = 0 ; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 115 z1 = (*((t38*) z3)).size[0] - 1; to = z1; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 116 z6 = _i; if (z6 >= (array->size[0])) RANGEFAULT; z4 = (int)(array->elts + (z6 * 4)); }; _e = (*(t9*)z4); _Expr__TypeCheck (_e); z5 = _KeywordExpr__Split (_e, &_key, &_value); if (z5) { _Error__Msg (((ADDRESS)(& txt5.str))); _e = _value; goto if_10_end; }; if_10_end: /**/; z5 = _RangeExpr__Split (_e, &_minE, &_maxE); if (z5) { _Error__Msg (((ADDRESS)(& txt6.str))); _e = _value; goto if_11_end; }; if_11_end: /**/; z8 = _Expr__TypeOf (_e); z5 = _Type__IsAssignable (z8, _element); z0 = ! z5; if (z0) { _Error__Msg (((ADDRESS)(& txt7.str))); goto if_12_end; }; if_12_end: /**/; } } }; }; } } }; #line 132 "ArrayExpr.m3" PRIVATE t1 _ArrayExpr__EqCheck (_a, _e) t4 _a; t9 _e; { t4 z2; t4 z4; t1 z5; t1 z0; t1 z1; t1 z6; t46 z3; t15 z7; t46 z8; t2 z9; t2 z10; t2 z11; #line 132 "ArrayExpr.m3" { auto t4 _b; auto t1 __result; { ZERO1 (& _b); #line 132 ZERO1B (& __result); CHECKSTACKOVERFLOW; { register ADDRESS ref = (ADDRESS) _e; register int tc = TYPECODE (ref); if (tc == 0) goto tc1_0; if (ISSUBTYPE (tc, TC4)) goto tc1_1; #line 135 goto tc1_else; tc1_0:; __result = 0 ; return __result; tc1_1:; { auto t4 _p; { ZERO1 (& _p); #line 136 _p = (t4) ref; _b = _p; } } goto tc1_exit; tc1_else:; __result = 0 ; return __result; tc1_exit:; }; NILCHECKA (z2 = _a); NILCHECKA (z4 = _b); z5 = _Type__IsEqual ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe), (((t4_fields*)(z4+(0+t37_size+t70_size)))->_tipe)); #line 140 z0 = ! z5; z1 = 1; if (! z0) { NILCHECKA (z2 = _a); NILCHECKA (z4 = _b); z5 = ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_dots) != (((t4_fields*)(z4+(0+t37_size+t70_size)))->_dots)); #line 140 z1 = z5; }; z0 = 1; if (! z1) { NILCHECKA (z2 = _a); z5 = ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_args) == 0); #line 140 NILCHECKA (z2 = _b); z6 = ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_args) == 0); z1 = (z5 != z6); z0 = z1; }; #line 140 z1 = 1; if (! z0) { NILCHECKA (z2 = _a); z5 = ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_args) != 0); z0 = 0; if (z5) { #line 140 NILCHECKA (z4 = _a); NILCHECKB (z7 = (((t4_fields*)(z4+(0+t37_size+t70_size)))->_args)); z3 = (*((t38*) z7)).size[0]; #line 140 NILCHECKA (z4 = _b); NILCHECKB (z7 = (((t4_fields*)(z4+(0+t37_size+t70_size)))->_args)); z8 = (*((t38*) z7)).size[0]; #line 140 z5 = (z3 != z8); z0 = z5; }; z1 = z0; }; if (z1) { __result = 0 ; return __result; }; { int from, to, index; from = 0 ; NILCHECKA (z2 = _a); NILCHECKB (z7 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 146 z9 = (*((t38*) z7)).size[0] - 1; to = z9; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; NILCHECKA (z2 = _a); NILCHECKB (z7 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z7)); #line 147 z10 = _i; if (z10 >= (array->size[0])) RANGEFAULT; z9 = (int)(array->elts + (z10 * 4)); }; NILCHECKA (z4 = _b); #line 147 NILCHECKB (z7 = (((t4_fields*)(z4+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z7)); #line 147 z11 = _i; if (z11 >= (array->size[0])) RANGEFAULT; z10 = (int)(array->elts + (z11 * 4)); }; z5 = _Expr__IsEqual ((*(t9*)z9), (*(t9*)z10)); #line 147 z0 = ! z5; if (z0) { __result = 0 ; return __result; }; } } }; }; __result = 1 ; return __result; } } }; #line 152 "ArrayExpr.m3" PRIVATE t11 _ArrayExpr__Compile (_p) t4 _p; { t4 z2; t1 z5; t11 z3; t2 z0; t15 z4; t2 z6; t2 z7; t4 z1; t4 z8; t1 z9; #line 152 "ArrayExpr.m3" { auto t11 _t1; auto t11 _t2; auto t3 _index; auto t3 _element; auto t2 _n; auto t11 __result; { CHECKSTACKOVERFLOW; { { auto t1 _b; { ZERO1B (& _b); NILCHECKA (z2 = _p); z5 = _ArrayType__Split ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe), &_index, &_element); #line 155 _b = z5; if (!_b) ASSERTFAULT; } } }; z3 = _Temp__Alloc (_p); _t1 = z3; NILCHECKA (z2 = _p); NILCHECKB (z4 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); z0 = (*((t38*) z4)).size[0] - 1; #line 159 _n = z0; { int from, to, index; from = 0 ; to = _n; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; NILCHECKA (z2 = _p); NILCHECKB (z4 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z4)); #line 161 z7 = _i; if (z7 >= (array->size[0])) RANGEFAULT; z6 = (int)(array->elts + (z7 * 4)); }; z3 = _Expr__Compile ((*(t9*)z6)); #line 161 _t2 = z3; _Emit__OpT (((ADDRESS)(& txt8.str)), _t1); _Emit__OpI (((ADDRESS)(& txt9.str)), _i); _Emit__OpT (((ADDRESS)(& txt10.str)), _t2); _Temp__Free (_t2); } } }; }; NILCHECKA (z1 = _p); z5 = 0; if ((((t4_fields*)(z1+(0+t37_size+t70_size)))->_dots)) { NILCHECKA (z8 = _p); z6 = _Type__Number ((((t4_fields*)(z8+(0+t37_size+t70_size)))->_index)); #line 168 z9 = (_n < z6); z5 = z9; }; if (z5) { _Emit__Op (((ADDRESS)(& txt11.str))); z6 = _n + 1 ; z7 = _Type__Number (_index); _Emit__OpII (((ADDRESS)(& txt12.str)), z6, z7); _Emit__OpT (((ADDRESS)(& txt13.str)), _t1); _Emit__OpTI (((ADDRESS)(& txt14.str)), _t1, _n); goto if_15_end; }; if_15_end: /**/; __result = _t1; return __result; } } }; #line 178 "ArrayExpr.m3" PRIVATE t9 _ArrayExpr__Fold (_p) t4 _p; { t2 z0; t4 z2; t15 z3; t2 z4; t2 z5; t9 z6; t1 z7; #line 178 "ArrayExpr.m3" { auto t9 _e; auto t9 __result; { CHECKSTACKOVERFLOW; { int from, to, index; from = 0 ; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 181 z0 = (*((t38*) z3)).size[0] - 1; to = z0; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 182 z5 = _i; if (z5 >= (array->size[0])) RANGEFAULT; z4 = (int)(array->elts + (z5 * 4)); }; z6 = _Expr__ConstValue ((*(t9*)z4)); #line 182 _e = z6; z7 = (_e == 0); if (z7) { __result = 0; return __result; }; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 184 z5 = _i; if (z5 >= (array->size[0])) RANGEFAULT; z4 = (int)(array->elts + (z5 * 4)); }; (*(t9*)z4) = _e; #line 184 } } }; }; __result = _p; return __result; } } }; #line 189 "ArrayExpr.m3" PRIVATE t73 _ArrayExpr__FPrinter (_p, _map, _wr) t4 _p; t8 _map; t7 _wr; { t4 z2; t2 z0; t15 z3; t2 z4; t2 z5; #line 189 "ArrayExpr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Type__Fingerprint ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe), _map, _wr); { int from, to, index; from = 0 ; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 192 z0 = (*((t38*) z3)).size[0] - 1; to = z0; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 193 z5 = _i; if (z5 >= (array->size[0])) RANGEFAULT; z4 = (int)(array->elts + (z5 * 4)); }; _Expr__Fingerprint ((*(t9*)z4), _map, _wr); #line 193 } } }; }; } } }; #line 197 "ArrayExpr.m3" PRIVATE t1 _ArrayExpr__IsZeroes (_p) t4 _p; { t2 z0; t4 z2; t15 z3; t2 z4; t2 z5; t1 z6; t1 z1; #line 197 "ArrayExpr.m3" { auto t1 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; { int from, to, index; from = 0 ; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); #line 199 z0 = (*((t38*) z3)).size[0] - 1; to = z0; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 200 z5 = _i; if (z5 >= (array->size[0])) RANGEFAULT; z4 = (int)(array->elts + (z5 * 4)); }; z6 = _Expr__IsZeroes ((*(t9*)z4)); #line 200 z1 = ! z6; if (z1) { __result = 0 ; return __result; }; } } }; }; __result = 1 ; return __result; } } }; #line 205 "ArrayExpr.m3" PRIVATE t73 _ArrayExpr__GenLiteral (_p) t4 _p; { t4 z2; t1 z5; t2 z0; t15 z3; t1 z4; t1 z1; t4 z6; t2 z7; t2 z8; t2 z9; t46 z10; #line 205 "ArrayExpr.m3" { auto t3 _index; auto t3 _element; auto t2 _j; auto t2 _k; auto t2 _last; { CHECKSTACKOVERFLOW; { { auto t1 _b; { ZERO1B (& _b); NILCHECKA (z2 = _p); z5 = _ArrayType__Split ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_tipe), &_index, &_element); #line 208 _b = z5; if (!_b) ASSERTFAULT; } } }; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); z0 = (*((t38*) z3)).size[0] - 1; #line 212 _last = z0; z4 = (_last > 0 ); z1 = 0; if (z4) { NILCHECKA (z6 = _p); NILCHECKB (z3 = (((t4_fields*)(z6+(0+t37_size+t70_size)))->_args)); #line 213 z7 = _last; if (z7 < 0) RANGEFAULT; { register t57* array = & (*((t38*) z3)); z9 = z7; if (z9 >= (array->size[0])) RANGEFAULT; #line 213 z8 = (int)(array->elts + (z9 * 4)); }; z4 = _Expr__IsZeroes ((*(t9*)z8)); z1 = z4; }; if (z1) do { _last -= 1 ; #line 213 z4 = (_last > 0 ); z1 = 0; if (z4) { NILCHECKA (z6 = _p); NILCHECKB (z3 = (((t4_fields*)(z6+(0+t37_size+t70_size)))->_args)); #line 213 z7 = _last; if (z7 < 0) RANGEFAULT; { register t57* array = & (*((t38*) z3)); z9 = z7; if (z9 >= (array->size[0])) RANGEFAULT; #line 213 z8 = (int)(array->elts + (z9 * 4)); }; z4 = _Expr__IsZeroes ((*(t9*)z8)); z1 = z4; }; } while (z1); NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); z10 = (*((t38*) z3)).size[0]; #line 215 z1 = (z10 > 0 ); if (z1) { _Emit__Op (((ADDRESS)(& txt15.str))); _j = 0 ; z7 = 5 * 32 ; z8 = _Type__Size (_element); z9 = IDIV (z7, z8); z7 = 1 ; z8 = z9; if (z7 < z8) z7 = z8; _k = z7; { int from, to, index; from = 0 ; to = _last; { auto t2 _i; { for (index = from; index <= to; index += 1) { _i = (t2) index; z4 = (_i != 0 ); if (z4) { _Emit__Op (((ADDRESS)(& txt16.str))); goto if_19_end; }; if_19_end: /**/; z4 = (_j > _k); if (z4) { _Emit__Op (((ADDRESS)(& txt17.str))); _j = 0 ; goto if_20_end; }; if_20_end: /**/; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); { register t57* array = & (*((t38*) z3)); #line 222 z8 = _i; if (z8 >= (array->size[0])) RANGEFAULT; z7 = (int)(array->elts + (z8 * 4)); }; _Expr__GenLiteral ((*(t9*)z7)); _j += 1 ; } } }; }; NILCHECKA (z2 = _p); z1 = 0; if ((((t4_fields*)(z2+(0+t37_size+t70_size)))->_dots)) { NILCHECKA (z6 = _p); NILCHECKB (z3 = (((t4_fields*)(z6+(0+t37_size+t70_size)))->_args)); #line 225 z7 = (*((t38*) z3)).size[0] - 1; z4 = (_last == z7); z1 = z4; }; if (z1) { { int from, to, index; z7 = _last + 1 ; from = z7; z7 = _Type__Number (_index); z8 = z7 - 1 ; to = z8; { auto t2 _z; #line 226 { for (index = from; index <= to; index += 1) { _z = (t2) index; _Emit__Op (((ADDRESS)(& txt16.str))); z4 = (_j > _k); if (z4) { _Emit__Op (((ADDRESS)(& txt17.str))); _j = 0 ; goto if_22_end; }; if_22_end: /**/; NILCHECKA (z2 = _p); NILCHECKB (z3 = (((t4_fields*)(z2+(0+t37_size+t70_size)))->_args)); z7 = _last; #line 229 if (z7 < 0) RANGEFAULT; { register t57* array = & (*((t38*) z3)); z9 = z7; if (z9 >= (array->size[0])) RANGEFAULT; #line 229 z8 = (int)(array->elts + (z9 * 4)); }; _Expr__GenLiteral ((*(t9*)z8)); _j += 1 ; } } }; }; goto if_21_end; }; if_21_end: /**/; z4 = (_j != 0 ); if (z4) { _Emit__Op (((ADDRESS)(& txt17.str))); goto if_23_end; }; if_23_end: /**/; _Emit__Op (((ADDRESS)(& txt18.str))); goto if_18_end; }; if_18_end: /**/; } } }; PRIVATE int init_done = -1; #line 234 "ArrayExpr.m3" PRIVATE void ArrayExpr__initProc (g) int g; { #line 234 "ArrayExpr.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& ArrayExpr__init); INITIALIZE (& SubrangeType__init); INITIALIZE (& TypeExpr__init); #line 234 INITIALIZE (& EnumExpr__init); INITIALIZE (& IntegerExpr__init); INITIALIZE (& Target__init); INITIALIZE (& Int__init); INITIALIZE (& Emit__init); #line 234 INITIALIZE (& Temp__init); INITIALIZE (& RangeExpr__init); INITIALIZE (& KeywordExpr__init); INITIALIZE (& Wr__init); INITIALIZE (& String__init); #line 234 INITIALIZE (& ArrayType__init); INITIALIZE (& Type__init); INITIALIZE (& Error__init); INITIALIZE (& ExprRep__init); INITIALIZE (& Expr__init); #line 234 return; }; #line 234 "ArrayExpr.m3" PRIVATE void t4_InitProc (obj) char* obj; { register t4_fields* p; #line 234 "ArrayExpr.m3" CHECKSTACKOVERFLOW; p = (t4_fields*) (obj + TC9->datasize); }; #line 234 "ArrayExpr.m3" PRIVATE void t4_SetupProc () { register int* p; #line 234 "ArrayExpr.m3" t4_TC.datasize += TC9->datasize; t4_TC.methodsize += TC9->methodsize; p = (int*) UALLOC (t4_TC.methodsize); COPY (TC9->defaultMethods, p, (TC9->methodsize)); #line 234 p[0] = (int)(& t4_TC); p[1] = 0; ((t37_methods*) (((char*)p) + TC70->methodsize))->_bind = _ArrayExpr__Bind; ((t37_methods*) (((char*)p) + TC70->methodsize))->_check = _ArrayExpr__Check; #line 234 ((t37_methods*) (((char*)p) + TC70->methodsize))->_compile = _ArrayExpr__Compile; ((t37_methods*) (((char*)p) + TC70->methodsize))->_evaluate = _ArrayExpr__Fold; #line 234 ((t37_methods*) (((char*)p) + TC70->methodsize))->_fprint = _ArrayExpr__FPrinter; ((t37_methods*) (((char*)p) + TC70->methodsize))->_write = _ExprRep__NoWriter; #line 234 ((t37_methods*) (((char*)p) + TC70->methodsize))->_isEqual = _ArrayExpr__EqCheck; ((t37_methods*) (((char*)p) + TC70->methodsize))->_getBounds = _ExprRep__NoBounds; #line 234 ((t37_methods*) (((char*)p) + TC70->methodsize))->_isWritable = _ExprRep__IsNever; ((t37_methods*) (((char*)p) + TC70->methodsize))->_isDesignator = _ExprRep__IsNever; #line 234 ((t37_methods*) (((char*)p) + TC70->methodsize))->_isZeroes = _ArrayExpr__IsZeroes; ((t37_methods*) (((char*)p) + TC70->methodsize))->_genLiteral = _ArrayExpr__GenLiteral; #line 234 t4_TC.defaultMethods = (char*) p; }; #line 234 "ArrayExpr.m3" PRIVATE void t4_PrintProc (obj) char *obj; { t4_fields* o; #line 234 "ArrayExpr.m3" CHECKSTACKOVERFLOW; if (TC9->printProc != 0) {TC9->printProc (obj); } fprintf (stderr, "{%s} ", TC4->brand); o = (t4_fields*) (obj + TC9->datasize); #line 234 fprintf (stderr, "tipe = %#x", o->_tipe); fprintf (stderr, ", "); fprintf (stderr, "args = %#x", o->_args); fprintf (stderr, ", "); #line 234 fprintf (stderr, "dots = %d", o->_dots); fprintf (stderr, ", "); fprintf (stderr, "index = %#x", o->_index); fprintf (stderr, ", "); #line 234 }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, ArrayExpr__initProc}; static char* VSimports[] = { &VS_SubrangeType__New__2c56975626e1fbb8, &VS_EnumExpr__Split__cac875982d1549f5, &VS_IntegerExpr__Split__132919062838cba6, &VS_Target__INTSIZE__6d9548032b40710f, &VS_Int__T__1062912139372387, &VS_Emit__MaxStream__cf0a0e8934c9c9f3, &VS_Emit__Format__bc4a2b083b93bbd7, &VS_Emit__Op__072646cc27c8ae10, &VS_Emit__OpI__02cb878634bb9f49, &VS_Emit__OpII__2247fe46332f901b, &VS_Emit__OpT__764bdffe21d249e8, &VS_Emit__OpTI__af828b1c28578815, &VS_Temp__T__3a6c7dc12615e4ee, &VS_Temp__Alloc__0b946c9d3ec0974e, &VS_Temp__Free__3b952a2225c26846, &VS_RangeExpr__Split__ee8f44e4219e1314, &VS_KeywordExpr__Split__c7296ea8373069e8, &VS_Thread__Alerted__fc88feb43485af46, &VS_Wr__T__2555b70b3f7780b1, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Wr__Error__c367253d3ed4fd15, &VS_String__T__3a6c7dc12615e4ee, &VS_ArrayType__New__2a130f4727706257, &VS_ArrayType__Split__b3402f88270f8053, &VS_Type__T__2446b70b3f7780a5, &VS_Type__Map__41dd9f4b33104fce, &VS_Type__List__5791758e343becc1, &VS_Type__Bind__3443ccd12eedb9e8, &VS_Type__Size__2f4d980e28adf05b, &VS_Type__Number__f5ca10923ed3cf22, &VS_Type__GetBounds__9a241b2b3c98ad98, &VS_Type__IsEqual__4098bc3f32325d05, &VS_Type__Check__3c8ceb09206ee440, &VS_Type__IsAssignable__6d0a7b0e2c806002, &VS_Type__Fingerprint__0d24a3463c25e166, &VS_Error__Msg__4d119a332467757f, &VS_ExprRep__Init__8b7fff3e227cebab, &VS_ExprRep__NoBind__e7d0d3dd3d703c08, &VS_ExprRep__NoCheck__c11b54bc361794fa, &VS_ExprRep__NoValue__8ccc143224598a66, &VS_ExprRep__NoBounds__b64bb146289ee4f0, &VS_ExprRep__IsNever__8f1a069b301903c8, &VS_ExprRep__NeverEq__dfdc2412249ccb65, &VS_ExprRep__NoWriter__a97bb1a23bbf506e, &VS_ExprRep__NoLiteral__6c9c90073f496f67, &VS_Expr__T__2446b70b3f7780a5, &VS_Expr__List__3f87eceb2b9a246a, &VS_Expr__Bind__7e2752da3eaf56eb, &VS_Expr__TypeOf__fef0a11b388c64fa, &VS_Expr__ConstValue__ce4fd448218fe483, &VS_Expr__IsZeroes__76ef605028be697c, &VS_Expr__TypeCheck__af9aa9073729e7f7, &VS_Expr__Compile__a7e0cc4029a2ec76, &VS_Expr__IsEqual__062d8b2c385e35a9, &VS_Expr__Fingerprint__50ce687c31d90a5b, &VS_Expr__GenLiteral__5d3c8414307dac94, NIL }; void ArrayExpr__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = ArrayExpr__init; ArrayExpr__init = & me_0; t4_TC = t4_TC_init; REGISTERTYPE (TC4); break; }; case 1: { t4_TC.parent = TC_M3__Expr; break; }; case 2: { break; }; }; };