#include "M3Runtime.h" typedef struct { int tc; char* str; int len; } TXT; PRIVATE TXT txt1 = { 3, "@", 2}; PRIVATE TXT txt2 = { 3, "unknown qualification \047.\047", 26}; PRIVATE TXT txt3 = { 3, "@ = ", 5}; PRIVATE TXT txt4 = { 3, "((t@_methods*) (@+(", 20}; PRIVATE TXT txt5 = { 3, ")))->_@;\012", 10}; PRIVATE TXT txt6 = { 3, "(((t@_methods*)", 16}; PRIVATE TXT txt7 = { 3, "((t@_TC->defaultMethods) + (", 29}; PRIVATE TXT txt8 = { 3, ")))->_@)", 9}; PRIVATE TXT txt9 = { 3, "(@", 3}; PRIVATE TXT txt10 = { 3, "._@)", 5}; PRIVATE TXT txt11 = { 3, "(((t@_fields*)", 15}; PRIVATE TXT txt12 = { 3, "(@+(", 5}; PRIVATE TXT txt13 = { 3, ".", 2}; #line 16 "../Interfaces/Type.i3" #define t2 ADDRESS #define t85 void typedef int t10; #line 116 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef struct { char* elts; int size[1]; } t69; #line 15 ".ROOT/.boots/corelib/Interfaces/FPrint.i3" #define t49 t69 #define TC2 TC_Type__Map IMPORT TYPE TC_Type__Map; #line 16 "../Interfaces/Type.i3" IMPORT char VS_Type__Map__41dd9f4b33104fce; #define t18 ADDRESS #define TC18 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 14 "./Expr.i3" #define t23 ADDRESS #define t82 ADDRESS typedef struct { TYPE self; int private; } t82_methods; #define t82_msize (sizeof (t82_methods)) typedef struct { ADDRESS methods; } t82_fields; #define t82_size (sizeof (t82_fields)) #define TC82 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; #line 16 "../Interfaces/M3.i3" #define t12 ADDRESS #define TC12 TC_M3__Expr IMPORT TYPE TC_M3__Expr; #line 16 IMPORT char VS_M3__Expr__8ae39aaa2d432477; #line 14 "./Expr.i3" #define t52 t69 #define TC23 TC_Expr__List IMPORT TYPE TC_Expr__List; #line 14 IMPORT char VS_Expr__List__3f87eceb2b9a246a; #line 17 "../Interfaces/Scope.i3" #define t43 ADDRESS #define t11 ADDRESS #define TC11 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 t44 t69 #define TC43 TC_Scope__ValueList IMPORT TYPE TC_Scope__ValueList; #line 17 IMPORT char VS_Scope__ValueList__64bf053e22e4e53c; #line 17 "../Interfaces/Type.i3" #define t54 ADDRESS #define t8 ADDRESS #define TC8 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 { t54 _next; t8 _type; } t55; #define TC54 TC_Type__List IMPORT TYPE TC_Type__List; #line 17 IMPORT char VS_Type__List__5791758e343becc1; #define t64 ADDRESS #define TC64 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t71 ADDRESS #define TC71 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t72 ADDRESS typedef struct { TYPE self; int private; } t72_methods; #define t72_msize (sizeof (t72_methods)) typedef struct { ADDRESS methods; } t72_fields; #define t72_size (sizeof (t72_fields)) #define TC72 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t72_MapProc TC_ROOT->mapProc #define t1 ADDRESS #define TC1 TC_Wr__T IMPORT TYPE TC_Wr__T; #line 90 ".ROOT/.boots/corelib/Interfaces/Wr.i3" IMPORT char VS_Wr__T__2555b70b3f7780b1; #define t1_MapProc TC_Wr__T->mapProc #define t3 ADDRESS #line 13 "../Interfaces/String.i3" #define t7 ADDRESS #define TC7 TC_String__T IMPORT TYPE TC_String__T; #line 13 IMPORT char VS_String__T__3a6c7dc12615e4ee; #line 21 "QualifyExpr.m3" typedef unsigned char t19; #line 19 "../Interfaces/M3.i3" #define t16 ADDRESS #define TC16 TC_M3__Temp IMPORT TYPE TC_M3__Temp; #line 19 IMPORT char VS_M3__Temp__450b691937f03dae; #line 15 "../Interfaces/Int.i3" typedef t85 (*t4)(); #line 45 "../Interfaces/ValueRep.i3" typedef t16 (*t17)(); typedef t12 (*t14)(); typedef unsigned char t5; #line 76 "QualifyExpr.m3" typedef t5 (*t6)(); #line 27 typedef struct { int filler; } t3_methods; #define t3_msize (sizeof (t3_methods)) typedef struct { #line 27 t12 _expr; t7 _name; t11 _obj; t19 _class; t8 _holder; t8 _opaque; t12 _objExpr; t16 _temp; } t3_fields; #define t3_size (sizeof (t3_fields)) PRIVATE void t3_InitProc (); #line 27 PRIVATE void t3_SetupProc (); PRIVATE void t3_PrintProc (); PRIVATE typecell t3_TC; PRIVATE typecell t3_TC_init = {0, 0, 0, 0, 0, (PROC)NIL, #line 27 t3_size, t3_msize, NIL, 0, 0, t3_InitProc, t3_SetupProc, t3_PrintProc, "", -1488200056, 673552374}; PRIVATE TYPE TC3 = &t3_TC; #line 14 "../Interfaces/M3.i3" #define t9 ADDRESS #define TC9 TC_M3__Scope IMPORT TYPE TC_M3__Scope; #line 14 IMPORT char VS_M3__Scope__6e6d8848308d8a2d; #line 237 "QualifyExpr.m3" typedef unsigned char t15; typedef struct { t15 _kind; t11 _value; t12 _expr; t8 _type; } t13; #line 18 "../Interfaces/Value.i3" typedef unsigned char t20; #line 16 "../Interfaces/NamedType.i3" typedef t8 (*t21)(); #line 15 "../Interfaces/Token.i3" typedef unsigned char t57; #line 45 typedef struct { int elts[4]; } t22; #line 14 "../Interfaces/EnumElt.i3" typedef t10 (*t24)(); #line 12 typedef t11 (*t25)(); #define t26 ADDRESS #define TC26 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t26_MapProc TC_TEXT->mapProc typedef struct { #line 14 "../Interfaces/String.i3" t7 _module; t7 _item; } t27; #line 14 "../Interfaces/RefType.i3" typedef t7 (*t28)(); #line 16 "../Interfaces/Variable.i3" #define t29 ADDRESS #define TC29 TC_Variable__T IMPORT TYPE TC_Variable__T; #line 16 IMPORT char VS_Variable__T__be7ead4a3afd8be5; #line 14 "./VarExpr.i3" typedef t29 (*t30)(); #line 27 "../Interfaces/Emit.i3" typedef signed_char t31; #line 63 typedef t31 (*t32)(); #line 19 "../Interfaces/String.i3" typedef signed_char t62; #line 65 "../Interfaces/Token.i3" #define t56 t69 typedef struct { t7 elts[100]; } t63; #line 17 "../Interfaces/String.i3" typedef struct { t10 _top; t63 _stk; } t33; typedef double t34; typedef unsigned char t35; #line 14 "../Interfaces/Decl.i3" typedef struct { t7 _alias; t5 _isExternal; t5 _isInline; t5 _isUnused; t5 _isObsolete; } t36; #line 25 "../Interfaces/RecordType.i3" #define t37 t69 typedef short t38; #line 25 typedef struct { t8 elts[1001]; } t39; #line 14 "../Interfaces/Module.i3" #define t40 ADDRESS #define TC40 TC_Module__T IMPORT TYPE TC_Module__T; #line 14 IMPORT char VS_Module__T__be7ead4a3afd8be5; #line 30 typedef t9 (*t41)(); #line 18 typedef t40 (*t42)(); #line 43 "../Interfaces/ValueRep.i3" typedef t20 (*t45)(); #line 15 ".ROOT/.boots/corelib/Interfaces/FPrint.i3" typedef struct { t10 elts[2]; } t46; #line 16 "../Interfaces/ValueRep.i3" typedef t5 t47; #define t48 ADDRESS #line 19 typedef struct { t4 _bind; t4 _typeCheck; t45 _class; t4 _fingerprint; t17 _load; t4 _write; t25 _select; t6 _declare0; t4 _declare1; #line 19 t4 _declare2; t6 _needsDecl; t14 _toExpr; t21 _toType; } t48_methods; #define t48_msize (sizeof (t48_methods)) typedef struct { #line 19 t10 _origin; t7 _name; t7 _extName; t9 _scope; t8 _type; unsigned _checked : 1; unsigned _incheck : 1; unsigned _readonly : 1; #line 19 unsigned _declared : 1; unsigned _bound : 1; unsigned _compiled : 1; unsigned _imported : 1; unsigned _exported : 1; unsigned _external : 1; #line 19 unsigned _used : 1; unsigned _usedAtTop : 1; unsigned _unused : 1; unsigned _obsolete : 1; unsigned _inFrame : 1; t46 _fprint; #line 19 } t48_fields; #define t48_size (sizeof (t48_fields)) #define TC48 TC_M3__Value typedef void (*t50)(); #line 13 "./ExprRep.i3" #define t51 ADDRESS #line 13 typedef struct { t4 _bind; t4 _check; t4 _write; t6 _isEqual; t14 _evaluate; t4 _getBounds; t6 _isWritable; t6 _isDesignator; #line 13 t6 _isZeroes; t4 _genLiteral; t4 _fprint; t17 _compile; } t51_methods; #define t51_msize (sizeof (t51_methods)) typedef struct { #line 13 t10 _origin; t8 _type; t5 _bound; t5 _inCheck; t5 _checked; } t51_fields; #define t51_size (sizeof (t51_fields)) #define TC51 TC_M3__Expr typedef t2 (*t53)(); #line 65 "../Interfaces/Token.i3" typedef struct { t7 elts[97]; } t58; typedef int t59; #line 37 "../Interfaces/String.i3" typedef t26 (*t60)(); #line 28 #define t61 t69 typedef signed_char t65; #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef t65 (*t66)(); #line 26 typedef t59 (*t67)(); #line 23 typedef t35 (*t68)(); #line 91 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef unsigned char t70; #line 15 ".ROOT/.boots/corelib/Interfaces/Thread.i3" #define t73 ADDRESS #define TC73 TC_Thread__T IMPORT TYPE TC_Thread__T; #line 15 IMPORT char VS_Thread__T__2555b70b3f7780b1; #define t73_MapProc TC_Thread__T->mapProc typedef t71 (*t74)(); #define t75 ADDRESS #define TC75 TC_Thread__Condition IMPORT TYPE TC_Thread__Condition; #line 21 IMPORT char VS_Thread__Condition__26d5968239e08f4e; #define t75_MapProc TC_Thread__Condition->mapProc #define t76 ADDRESS #define TC76 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t76_MapProc TC_MUTEX->mapProc typedef t73 (*t77)(); #line 23 #define t78 ADDRESS #line 23 typedef struct { t74 _apply; } t78_methods; #define t78_msize (sizeof (t78_methods)) typedef struct { #line 23 int filler; } t78_fields; #define t78_size (sizeof (t78_fields)) #define TC78 TC_Thread__Closure IMPORT TYPE TC_Thread__Closure; #line 23 IMPORT char VS_Thread__Closure__7fb5c6232c5a658a; #define t78_MapProc TC_Thread__Closure->mapProc typedef t75 (*t79)(); typedef t76 (*t80)(); #line 28 #define t81 ADDRESS #line 28 typedef struct { int filler; } t81_methods; #define t81_msize (sizeof (t81_methods)) typedef struct { #line 28 t59 _stackSize; } t81_fields; #define t81_size (sizeof (t81_fields)) #define TC81 TC_Thread__SizedClosure IMPORT TYPE TC_Thread__SizedClosure; #line 28 IMPORT char VS_Thread__SizedClosure__8a46717d2eae7b07; #define t81_MapProc TC_Thread__SizedClosure->mapProc #define t83 ADDRESS #define TC83 TC_M3__Stmt IMPORT TYPE TC_M3__Stmt; #line 17 "../Interfaces/M3.i3" IMPORT char VS_M3__Stmt__376b307627fc1f2f; typedef CLOSURE t84; typedef float t86; #line 12 "QualifyExpr.m3" IMPORT INITLINK* OpaqueExpr__init; IMPORT INITLINK* NilChkExpr__init; IMPORT INITLINK* Temp__init; IMPORT INITLINK* ProcExpr__init; #line 12 IMPORT INITLINK* NamedType__init; IMPORT INITLINK* Method__init; IMPORT INITLINK* Wr__init; IMPORT INITLINK* TypeExpr__init; #line 12 IMPORT INITLINK* RecordExpr__init; IMPORT INITLINK* EnumElt__init; IMPORT INITLINK* ConsExpr__init; IMPORT INITLINK* Int__init; #line 12 IMPORT INITLINK* Address__init; IMPORT INITLINK* Null__init; IMPORT INITLINK* Error__init; IMPORT INITLINK* NamedExpr__init; #line 12 IMPORT INITLINK* Void__init; IMPORT INITLINK* DerefExpr__init; IMPORT INITLINK* RefType__init; IMPORT INITLINK* EnumType__init; #line 12 IMPORT INITLINK* VarExpr__init; IMPORT INITLINK* Variable__init; IMPORT INITLINK* Emit__init; IMPORT INITLINK* Field__init; #line 12 IMPORT INITLINK* ObjectType__init; IMPORT INITLINK* RecordType__init; IMPORT INITLINK* Scope__init; IMPORT INITLINK* Module__init; #line 12 IMPORT INITLINK* Type__init; IMPORT INITLINK* ValueRep__init; IMPORT INITLINK* Value__init; IMPORT INITLINK* String__init; #line 12 IMPORT INITLINK* ExprRep__init; IMPORT INITLINK* Expr__init; IMPORT INITLINK* QualifyExpr__init; IMPORT t12 _OpaqueExpr__NewDataOffset (); #line 12 IMPORT char VS_OpaqueExpr__NewDataOffset__b73dd5942550c752; IMPORT t12 _OpaqueExpr__NewMethodOffset (); IMPORT char VS_OpaqueExpr__NewMethodOffset__33f1bbff2ab1fdbd; #line 12 IMPORT t12 _NilChkExpr__New (); IMPORT char VS_NilChkExpr__New__db38af4926874376; IMPORT t85 _NilChkExpr__SetOffset (); #line 12 IMPORT char VS_NilChkExpr__SetOffset__eece43933a5d2ba2; IMPORT TYPE TC_Temp__T; IMPORT char VS_Temp__T__3a6c7dc12615e4ee; #line 12 IMPORT t16 _Temp__AllocMacro (); IMPORT char VS_Temp__AllocMacro__0d68005335e03ba8; IMPORT t16 _Temp__Alloc (); IMPORT char VS_Temp__Alloc__0b946c9d3ec0974e; #line 12 IMPORT t85 _Temp__Free (); IMPORT char VS_Temp__Free__3b952a2225c26846; IMPORT t85 _Temp__Depend (); IMPORT char VS_Temp__Depend__11ca183d3fa8461d; #line 12 IMPORT t12 _ProcExpr__New (); IMPORT char VS_ProcExpr__New__75f92da32ed695ef; IMPORT t8 _NamedType__Strip (); IMPORT char VS_NamedType__Strip__ceaf08023af1cea6; #line 12 IMPORT t5 _Method__Split (); IMPORT char VS_Method__Split__ad6b2c1332a70dee; IMPORT EXCEPTION_NAME _Thread__Alerted; IMPORT char VS_Thread__Alerted__fc88feb43485af46; #line 12 IMPORT EXCEPTION_NAME _Wr__Failure; IMPORT char VS_Wr__Failure__5f82cfb43dabf527; IMPORT EXCEPTION_NAME _Wr__Error; IMPORT char VS_Wr__Error__c367253d3ed4fd15; #line 12 IMPORT t85 _Wr__PutText (); IMPORT char VS_Wr__PutText__e034dab73a793846; IMPORT t12 _TypeExpr__New (); IMPORT char VS_TypeExpr__New__1f10d03a28487bf7; #line 12 IMPORT t5 _TypeExpr__Split (); IMPORT char VS_TypeExpr__Split__f3b91e1b2487bd66; IMPORT t5 _RecordExpr__Qualify (); IMPORT char VS_RecordExpr__Qualify__94c66bdb287331af; #line 12 IMPORT t8 _Int__T; IMPORT char VS_Int__T__1062912139372387; IMPORT t12 _Null__Nil; IMPORT char VS_Null__Nil__1e235acd2ecccef1; #line 12 IMPORT t85 _Error__Str (); IMPORT char VS_Error__Str__2bd0723e3872e90c; IMPORT t5 _NamedExpr__Split (); IMPORT char VS_NamedExpr__Split__034b990827a61ddc; #line 12 IMPORT t8 _Void__T; IMPORT char VS_Void__T__d44caf853dc63223; IMPORT t12 _DerefExpr__New (); IMPORT char VS_DerefExpr__New__344f21aa225a201e; #line 12 IMPORT t85 _DerefExpr__SetOffset (); IMPORT char VS_DerefExpr__SetOffset__ad8c2e7a28c9c197; IMPORT t5 _RefType__Is (); IMPORT char VS_RefType__Is__9788d4183ade3fd0; #line 12 IMPORT t5 _EnumType__LookUp (); IMPORT char VS_EnumType__LookUp__4bf3adb42e570664; IMPORT t12 _VarExpr__New (); IMPORT char VS_VarExpr__New__a61eb6df2da1f67f; #line 12 IMPORT t29 _VarExpr__Obj (); IMPORT char VS_VarExpr__Obj__e1063a733b61d95c; IMPORT t85 _Variable__GetBounds (); IMPORT char VS_Variable__GetBounds__c251766d3a14c865; #line 12 IMPORT char VS_Emit__MaxStream__cf0a0e8934c9c9f3; IMPORT TYPE TC_Emit__Format; IMPORT char VS_Emit__Format__bc4a2b083b93bbd7; #line 12 IMPORT t85 _Emit__OpS (); IMPORT char VS_Emit__OpS__f7dc93802c012951; IMPORT t85 _Emit__OpI (); IMPORT char VS_Emit__OpI__02cb878634bb9f49; #line 12 IMPORT t85 _Emit__OpT (); IMPORT char VS_Emit__OpT__764bdffe21d249e8; IMPORT t85 _Emit__OpIT (); IMPORT char VS_Emit__OpIT__1322d0f925e21d92; #line 12 IMPORT t5 _Field__Split (); IMPORT char VS_Field__Split__2f17aa55376061e0; IMPORT t5 _ObjectType__LookUp (); IMPORT char VS_ObjectType__LookUp__9b69ce2938248b0f; #line 12 IMPORT t85 _ObjectType__EmitOffsets (); IMPORT char VS_ObjectType__EmitOffsets__dee1146928b5f4cb; IMPORT t10 _ObjectType__ObjectSize (); #line 12 IMPORT char VS_ObjectType__ObjectSize__2cc930713aa21754; IMPORT char VS_RecordType__MaxFields__7046285b3b00145b; IMPORT t5 _RecordType__LookUp (); #line 12 IMPORT char VS_RecordType__LookUp__fe9c9a932216499f; IMPORT TYPE TC_Scope__T; IMPORT char VS_Scope__T__3a6c7dc12615e4ee; #line 12 IMPORT t11 _Scope__LookUpInScope (); IMPORT char VS_Scope__LookUpInScope__176166ad3a7fb5b9; IMPORT t9 _Module__ExportScope (); #line 12 IMPORT char VS_Module__ExportScope__2186b7e7390e796e; IMPORT TYPE TC_Type__T; IMPORT char VS_Type__T__2446b70b3f7780a5; #line 12 IMPORT t10 _Type__Size (); IMPORT char VS_Type__Size__2f4d980e28adf05b; IMPORT t85 _Type__GetBounds (); IMPORT char VS_Type__GetBounds__9a241b2b3c98ad98; #line 12 IMPORT t8 _Type__Base (); IMPORT char VS_Type__Base__2bebd0333659a92c; IMPORT t10 _Type__Name (); IMPORT char VS_Type__Name__f99416972257a869; #line 12 IMPORT TYPE TC_ValueRep__V; IMPORT char VS_ValueRep__V__f28699153c608442; IMPORT t11 _ValueRep__NoDuplicates (); IMPORT char VS_ValueRep__NoDuplicates__ed93f73a247eb7b4; #line 12 IMPORT t12 _ValueRep__NoExpr (); IMPORT char VS_ValueRep__NoExpr__1297c63d2e046c2c; IMPORT t8 _ValueRep__NoType (); IMPORT char VS_ValueRep__NoType__4061f01226f55ca3; #line 12 IMPORT t16 _ValueRep__NoLoader (); IMPORT char VS_ValueRep__NoLoader__9a7f0c5b24f526c1; IMPORT t85 _ValueRep__NoWriter (); #line 12 IMPORT char VS_ValueRep__NoWriter__3b24d43c367f7122; IMPORT t85 _ValueRep__NoDeclarer (); IMPORT char VS_ValueRep__NoDeclarer__22db283420635bde; #line 12 IMPORT t5 _ValueRep__Never (); IMPORT char VS_ValueRep__Never__39b6ab0628d97589; IMPORT t5 _ValueRep__Always (); IMPORT char VS_ValueRep__Always__1b0a9bbf2173b8b3; #line 12 IMPORT TYPE TC_Value__T; IMPORT char VS_Value__T__2446b70b3f7780a5; IMPORT t85 _Value__Bind (); IMPORT char VS_Value__Bind__6439d03d3a1be824; #line 12 IMPORT t8 _Value__TypeOf (); IMPORT char VS_Value__TypeOf__5fe9c10426934d60; IMPORT t85 _Value__TypeCheck (); IMPORT char VS_Value__TypeCheck__917dc8a02c0b0de4; #line 12 IMPORT t16 _Value__Load (); IMPORT char VS_Value__Load__d08505ae2a4de8ff; IMPORT t20 _Value__ClassOf (); IMPORT char VS_Value__ClassOf__9c68d87829345fcf; #line 12 IMPORT t12 _Value__ToExpr (); IMPORT char VS_Value__ToExpr__2e95c32e3f1d1895; IMPORT t8 _Value__ToType (); IMPORT char VS_Value__ToType__360f3f043a5eeebd; #line 12 IMPORT t85 _String__Put (); IMPORT char VS_String__Put__2457561e210725b3; IMPORT t85 _ExprRep__Init (); IMPORT char VS_ExprRep__Init__8b7fff3e227cebab; #line 12 IMPORT t85 _ExprRep__NoBind (); IMPORT char VS_ExprRep__NoBind__e7d0d3dd3d703c08; IMPORT t85 _ExprRep__NoCheck (); IMPORT char VS_ExprRep__NoCheck__c11b54bc361794fa; #line 12 IMPORT t12 _ExprRep__NoValue (); IMPORT char VS_ExprRep__NoValue__8ccc143224598a66; IMPORT t85 _ExprRep__NoBounds (); IMPORT char VS_ExprRep__NoBounds__b64bb146289ee4f0; #line 12 IMPORT t5 _ExprRep__IsNever (); IMPORT char VS_ExprRep__IsNever__8f1a069b301903c8; IMPORT t5 _ExprRep__NeverEq (); IMPORT char VS_ExprRep__NeverEq__dfdc2412249ccb65; #line 12 IMPORT t85 _ExprRep__NoWriter (); IMPORT char VS_ExprRep__NoWriter__a97bb1a23bbf506e; IMPORT t85 _ExprRep__NoLiteral (); IMPORT char VS_ExprRep__NoLiteral__6c9c90073f496f67; #line 12 IMPORT TYPE TC_Expr__T; IMPORT char VS_Expr__T__2446b70b3f7780a5; IMPORT t85 _Expr__Bind (); IMPORT char VS_Expr__Bind__7e2752da3eaf56eb; #line 12 IMPORT t8 _Expr__TypeOf (); IMPORT char VS_Expr__TypeOf__fef0a11b388c64fa; IMPORT t12 _Expr__ConstValue (); IMPORT char VS_Expr__ConstValue__ce4fd448218fe483; #line 12 IMPORT t85 _Expr__GetBounds (); IMPORT char VS_Expr__GetBounds__b20ec781333da5e4; IMPORT t5 _Expr__IsDesignator (); IMPORT char VS_Expr__IsDesignator__e3556614321cb906; #line 12 IMPORT t5 _Expr__IsWritable (); IMPORT char VS_Expr__IsWritable__85b9bb292e4a0f55; IMPORT t85 _Expr__TypeCheck (); IMPORT char VS_Expr__TypeCheck__af9aa9073729e7f7; #line 12 IMPORT t16 _Expr__Compile (); IMPORT char VS_Expr__Compile__a7e0cc4029a2ec76; IMPORT t5 _Expr__IsEqual (); IMPORT char VS_Expr__IsEqual__062d8b2c385e35a9; #line 12 IMPORT t85 _Expr__Fingerprint (); IMPORT char VS_Expr__Fingerprint__50ce687c31d90a5b; EXPORT t12 _QualifyExpr__New (); EXPORT char VS_QualifyExpr__New__e5b2c7be3fb31b56 = '\0'; #line 12 EXPORT t5 _QualifyExpr__Split (); EXPORT char VS_QualifyExpr__Split__036a14cd36bf0f52 = '\0'; EXPORT t5 _QualifyExpr__PassObject (); #line 12 EXPORT char VS_QualifyExpr__PassObject__d3ad544a3e23c5f6 = '\0'; PRIVATE TYPE TC_QualifyExpr__P; PRIVATE t85 _QualifyExpr__Bind (); #line 12 PRIVATE t85 _QualifyExpr__Bounder (); PRIVATE t85 _QualifyExpr__Check (); PRIVATE t5 _QualifyExpr__EqCheck (); PRIVATE t16 _QualifyExpr__Compile (); #line 12 PRIVATE t85 _QualifyExpr__Writer (); PRIVATE t12 _QualifyExpr__Fold (); PRIVATE t85 _QualifyExpr__DoQualify (); PRIVATE t5 _QualifyExpr__IsDesignator (); #line 12 PRIVATE t5 _QualifyExpr__IsWritable (); PRIVATE t85 _QualifyExpr__FPrinter (); IMPORT char VS_M3__Expr__58bf709e39adf1f7; #line 12 IMPORT char VS_M3__Value__6b416d5833e03839; #line 51 "QualifyExpr.m3" EXPORT t12 _QualifyExpr__New (_a, _id) t12 _a; t7 _id; { t3 z0; t3 z2; #line 51 "QualifyExpr.m3" { auto t3 _p; auto t12 __result; { ZERO1 (& _p); #line 51 CHECKSTACKOVERFLOW; { register char** ptr = (char**) UNEWOBJ (TC3); z0 = (t3) ptr; }; _p = z0; _ExprRep__Init (_p); NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr) = _a; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_name) = _id; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj) = (t11) 0; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 0 ; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_holder) = (t8) 0; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_opaque) = (t8) 0; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_objExpr) = (t12) 0; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_temp) = (t16) 0; __result = _p; return __result; } } }; #line 67 "QualifyExpr.m3" EXPORT t5 _QualifyExpr__Split (_e, _obj) t12 _e; t11 * _obj; { t3 z1; #line 67 "QualifyExpr.m3" { auto t5 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; { register ADDRESS ref = (ADDRESS) _e; register int tc = TYPECODE (ref); if (tc == 0) goto tc0_0; if (ISSUBTYPE (tc, TC3)) goto tc0_1; #line 69 goto tc0_else; tc0_0:; __result = 0 ; return __result; tc0_1:; { auto t3 _p; { ZERO1 (& _p); #line 70 _p = (t3) ref; NILCHECKA (z1 = _p); (*_obj) = (((t3_fields*)(z1+(0+t51_size+t82_size)))->_obj); __result = 1 ; return __result; #line 71 } } tc0_else:; __result = 0 ; return __result; tc0_exit:; }; } } }; #line 76 "QualifyExpr.m3" EXPORT t5 _QualifyExpr__PassObject (_e) t12 _e; { t3 z1; t5 z3; t3 z4; #line 76 "QualifyExpr.m3" { auto t5 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; { register ADDRESS ref = (ADDRESS) _e; register int tc = TYPECODE (ref); if (tc == 0) goto tc1_0; if (ISSUBTYPE (tc, TC3)) goto tc1_1; #line 78 goto tc1_else; tc1_0:; goto tc1_exit; tc1_1:; { auto t3 _p; { ZERO1 (& _p); #line 78 _p = (t3) ref; NILCHECKA (z1 = _p); z3 = ((((t3_fields*)(z1+(0+t51_size+t82_size)))->_class) == 5 ); if (z3) { NILCHECKA (z4 = _p); _Emit__OpT (((ADDRESS)(& txt1.str)), (((t3_fields*)(z4+(0+t51_size+t82_size)))->_temp)); __result = 1 ; return __result; }; } } goto tc1_exit; tc1_else:; tc1_exit:; }; __result = 0 ; return __result; } } }; #line 89 "QualifyExpr.m3" PRIVATE t85 _QualifyExpr__Bind (_p) t3 _p; { t3 z2; t3 z3; t8 z4; t8 z1; t5 z5; t12 z6; t5 z0; t5 z7; t20 z8; t40 z9; t9 z10; t11 z11; t10 z12; t3 z13; t29 z14; #line 89 "QualifyExpr.m3" { auto t8 _t; auto t9 _s; auto t11 _obj; auto t7 _name; { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Expr__Bind ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); NILCHECKA (z3 = _p); z4 = _Expr__TypeOf ((((t3_fields*)(z3+(0+t51_size+t82_size)))->_expr)); z1 = _Type__Base (z4); #line 97 _t = z1; z5 = _RefType__Is (_t); if (z5) { NILCHECKA (z2 = _p); z6 = _DerefExpr__New ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); NILCHECKA (z2 = _p); #line 101 (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr) = z6; NILCHECKA (z2 = _p); _Expr__Bind ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); NILCHECKA (z3 = _p); z4 = _Expr__TypeOf ((((t3_fields*)(z3+(0+t51_size+t82_size)))->_expr)); z1 = _Type__Base (z4); #line 103 _t = z1; goto if_2_end; }; if_2_end: /**/; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_holder) = _t; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj) = (t11) 0; z5 = (_t == 0); z0 = 1; if (! z5) { z5 = (_t == _Void__T); z0 = z5; }; if (z0) { NILCHECKA (z2 = _p); z5 = _TypeExpr__Split ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), &_t); if (z5) { NILCHECKA (z3 = _p); z5 = _EnumType__LookUp (_t, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_obj)); #line 112 if (z5) { NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 1 ; goto if_5_end; }; NILCHECKA (z3 = _p); #line 113 z7 = _ObjectType__LookUp (_t, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_obj), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_holder), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_opaque)); #line 113 if (z7) { NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 2 ; goto if_5_end; }; if_5_end: /**/; #line 115 goto if_4_end; }; NILCHECKA (z2 = _p); z5 = _NamedExpr__Split ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), &_name, &_obj); #line 115 if (z5) { z8 = _Value__ClassOf (_obj); z5 = (z8 == 5 ); if (z5) { NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 0 ; z9 = NARROW (_obj, t40, TC40, z9); z10 = _Module__ExportScope (z9); _s = z10; NILCHECKA (z3 = _p); z11 = _Scope__LookUpInScope (_s, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name)); NILCHECKA (z2 = _p); #line 121 (((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj) = z11; goto if_6_end; }; if_6_end: /**/; goto if_4_end; }; #line 121 if_4_end: /**/; goto if_3_end; }; NILCHECKA (z3 = _p); z5 = _RecordType__LookUp (_t, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_obj)); #line 121 if (z5) { NILCHECKA (z2 = _p); z12 = _Type__Size (_t); _DerefExpr__SetOffset ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), z12); NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 3 ; goto if_3_end; }; NILCHECKA (z3 = _p); #line 127 z7 = _ObjectType__LookUp (_t, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_obj), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_holder), &(((t3_fields*)(z3+(0+t51_size+t82_size)))->_opaque)); #line 127 if (z7) { NILCHECKA (z2 = _p); z8 = _Value__ClassOf ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); z5 = (z8 == 6 ); if (z5) { NILCHECKA (z2 = _p); z6 = _NilChkExpr__New ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); NILCHECKA (z2 = _p); #line 131 (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr) = z6; NILCHECKA (z2 = _p); z12 = _ObjectType__ObjectSize (_t); _NilChkExpr__SetOffset ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), z12); NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 4 ; NILCHECKA (z2 = _p); z6 = _OpaqueExpr__NewDataOffset ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), (((t3_fields*)(z2+(0+t51_size+t82_size)))->_opaque)); #line 134 NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr) = z6; goto if_7_end; }; NILCHECKA (z2 = _p); z6 = _NilChkExpr__New ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr) = z6; NILCHECKA (z2 = _p); _NilChkExpr__SetOffset ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), 0 ); NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 5 ; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_objExpr) = (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr); NILCHECKA (z2 = _p); z6 = _OpaqueExpr__NewMethodOffset ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), (((t3_fields*)(z2+(0+t51_size+t82_size)))->_opaque)); #line 140 NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr) = z6; if_7_end: /**/; NILCHECKA (z2 = _p); _Expr__Bind ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); goto if_3_end; }; if_3_end: /**/; NILCHECKA (z2 = _p); z5 = ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj) == 0); if (z5) { NILCHECKA (z2 = _p); _Error__Str ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_name), ((ADDRESS)(& txt2.str))); NILCHECKA (z13 = _p); z6 = _VarExpr__New (_Int__T, (((t3_fields*)(z13+(0+t51_size+t82_size)))->_name)); z14 = _VarExpr__Obj (z6); #line 147 NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj) = (t11) z14; NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) = 0 ; goto if_8_end; }; if_8_end: /**/; NILCHECKA (z2 = _p); _Value__Bind ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); NILCHECKA (z2 = _p); z4 = _Value__TypeOf ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); NILCHECKA (z2 = _p); (((t51_fields*)(z2+(0+t82_size)))->_type) = z4; #line 152 } } }; #line 155 "QualifyExpr.m3" PRIVATE t85 _QualifyExpr__Bounder (_p, _min, _max) t3 _p; t10 * _min; t10 * _max; { t3 z2; t20 z3; t3 z4; t12 z5; t29 z6; #line 155 "QualifyExpr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); z3 = _Value__ClassOf ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); switch (z3) { case 0: #line 157 NILCHECKA (z4 = _p); z5 = _Value__ToExpr ((((t3_fields*)(z4+(0+t51_size+t82_size)))->_obj)); _Expr__GetBounds (z5, &(*_min), &(*_max)); #line 158 break; case 1: NILCHECKA (z2 = _p); z6 = NARROW ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj), t29, TC29, z6); _Variable__GetBounds (z6, &(*_min), &(*_max)); #line 159 break; default: /**/; NILCHECKA (z2 = _p); _Type__GetBounds ((((t51_fields*)(z2+(0+t82_size)))->_type), &(*_min), &(*_max)); }; } } }; #line 164 "QualifyExpr.m3" PRIVATE t85 _QualifyExpr__Check (_p) t3 _p; { t3 z2; #line 164 "QualifyExpr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Expr__TypeCheck ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); NILCHECKA (z2 = _p); _Value__TypeCheck ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); } } }; #line 170 "QualifyExpr.m3" PRIVATE t5 _QualifyExpr__EqCheck (_a, _e) t3 _a; t12 _e; { t3 z1; t3 z3; t5 z4; t5 z0; t3 z2; t3 z5; t5 z6; #line 170 "QualifyExpr.m3" { auto t5 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; { register ADDRESS ref = (ADDRESS) _e; register int tc = TYPECODE (ref); if (tc == 0) goto tc2_0; if (ISSUBTYPE (tc, TC3)) goto tc2_1; #line 172 goto tc2_else; tc2_0:; __result = 0 ; return __result; tc2_1:; { auto t3 _b; { ZERO1 (& _b); #line 173 _b = (t3) ref; NILCHECKA (z1 = _a); NILCHECKA (z3 = _b); z4 = ((((t3_fields*)(z1+(0+t51_size+t82_size)))->_obj) == (((t3_fields*)(z3+(0+t51_size+t82_size)))->_obj)); #line 174 z0 = 0; if (z4) { NILCHECKA (z2 = _a); NILCHECKA (z5 = _b); z4 = ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_class) == (((t3_fields*)(z5+(0+t51_size+t82_size)))->_class)); #line 174 z0 = z4; }; z4 = 0; if (z0) { NILCHECKA (z2 = _a); NILCHECKA (z5 = _b); z6 = _Expr__IsEqual ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), (((t3_fields*)(z5+(0+t51_size+t82_size)))->_expr)); #line 174 z4 = z6; }; __result = z4; return __result; } } tc2_else:; __result = 0 ; return __result; tc2_exit:; }; } } }; #line 181 "QualifyExpr.m3" PRIVATE t16 _QualifyExpr__Compile (_p) t3 _p; { t3 z1; t3 z2; t16 z3; t3 z4; t10 z5; #line 181 "QualifyExpr.m3" { auto t16 _t1; auto t16 _t2; auto t16 _t3; auto t16 __result; { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _p); switch ((((t3_fields*)(z1+(0+t51_size+t82_size)))->_class)) { case 0: case 1: NILCHECKA (z2 = _p); z3 = _Value__Load ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); _t1 = z3; break; case 2: z3 = _Temp__AllocMacro (_p, 0 ); _t1 = z3; break; case 3: NILCHECKA (z2 = _p); z3 = _Expr__Compile ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); _t2 = z3; z3 = _Temp__AllocMacro (_p, 1 ); _t1 = z3; _Temp__Depend (_t1, _t2); break; case 4: NILCHECKA (z2 = _p); z3 = _Expr__Compile ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); _t2 = z3; z3 = _Temp__AllocMacro (_p, 1 ); _t1 = z3; _Temp__Depend (_t1, _t2); break; case 5: NILCHECKA (z2 = _p); z3 = _Expr__Compile ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_objExpr)); _t3 = z3; NILCHECKA (z2 = _p); z3 = _Expr__Compile ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); _t2 = z3; z3 = _Temp__Alloc (_p); _t1 = z3; _Emit__OpT (((ADDRESS)(& txt3.str)), _t1); NILCHECKA (z4 = _p); z5 = _Type__Name ((((t3_fields*)(z4+(0+t51_size+t82_size)))->_holder)); _Emit__OpIT (((ADDRESS)(& txt4.str)), z5, _t2); NILCHECKA (z2 = _p); _ObjectType__EmitOffsets ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_holder), (((t3_fields*)(z2+(0+t51_size+t82_size)))->_opaque), 1 ); NILCHECKA (z4 = _p); _Emit__OpS (((ADDRESS)(& txt5.str)), (((t3_fields*)(z4+(0+t51_size+t82_size)))->_name)); _Temp__Free (_t2); NILCHECKA (z2 = _p); (((t3_fields*)(z2+(0+t51_size+t82_size)))->_temp) = _t3; _Temp__Depend (_t1, _t3); break; default: /**/; }; __result = _t1; return __result; } } }; #line 213 "QualifyExpr.m3" PRIVATE t85 _QualifyExpr__Writer (_p, _t1, _t2) t3 _p; t16 _t1; t16 _t2; { t3 z1; t3 z4; t10 z5; t3 z2; t3 z3; #line 213 "QualifyExpr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _p); switch ((((t3_fields*)(z1+(0+t51_size+t82_size)))->_class)) { case 0: case 1: if (! 0 ) ASSERTFAULT; case 2: NILCHECKA (z4 = _p); z5 = _Type__Name ((((t3_fields*)(z4+(0+t51_size+t82_size)))->_holder)); _Emit__OpI (((ADDRESS)(& txt6.str)), z5); NILCHECKA (z4 = _p); z5 = _Type__Name ((((t3_fields*)(z4+(0+t51_size+t82_size)))->_holder)); _Emit__OpI (((ADDRESS)(& txt7.str)), z5); NILCHECKA (z2 = _p); _ObjectType__EmitOffsets ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_holder), (((t3_fields*)(z2+(0+t51_size+t82_size)))->_opaque), 1 ); NILCHECKA (z3 = _p); _Emit__OpS (((ADDRESS)(& txt8.str)), (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name)); break; #line 222 case 3: _Emit__OpT (((ADDRESS)(& txt9.str)), _t1); NILCHECKA (z3 = _p); _Emit__OpS (((ADDRESS)(& txt10.str)), (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name)); break; #line 225 case 4: NILCHECKA (z4 = _p); z5 = _Type__Name ((((t3_fields*)(z4+(0+t51_size+t82_size)))->_holder)); _Emit__OpI (((ADDRESS)(& txt11.str)), z5); _Emit__OpT (((ADDRESS)(& txt12.str)), _t1); NILCHECKA (z2 = _p); _ObjectType__EmitOffsets ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_holder), (((t3_fields*)(z2+(0+t51_size+t82_size)))->_opaque), 0 ); NILCHECKA (z3 = _p); _Emit__OpS (((ADDRESS)(& txt8.str)), (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name)); break; #line 230 case 5: if (! 0 ) ASSERTFAULT; default: /**/; }; } } }; #line 245 "QualifyExpr.m3" PRIVATE t12 _QualifyExpr__Fold (_p) t3 _p; { t3 z1; t3 z3; t12 z4; t20 z5; t12 z2; t8 z6; t5 z7; #line 245 "QualifyExpr.m3" { auto t13 _lhs; auto t12 _e; auto t8 _t; auto t11 _v; auto t5 _b; auto t10 _i; auto t12 __result; { ZERO (14, & _lhs); ZERO1B (& _b); #line 245 CHECKSTACKOVERFLOW; (_lhs._kind) = 1 ; NILCHECKA (z1 = _p); (_lhs._expr) = (((t3_fields*)(z1+(0+t51_size+t82_size)))->_expr); NILCHECKA (z3 = _p); _QualifyExpr__DoQualify (&_lhs, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name)); switch ((_lhs._kind)) { case 1: z4 = _Expr__ConstValue ((_lhs._expr)); __result = z4; return __result; case 2: z4 = _TypeExpr__New ((_lhs._type)); __result = z4; return __result; case 0: z5 = _Value__ClassOf ((_lhs._value)); { register t20 e = z5; if (e < 0) goto c1_else; if (e <= 0) goto c1_0; if (e < 2) goto c1_else; if (e <= 2) goto c1_1; #line 260 if (e < 4) goto c1_else; if (e <= 4) goto c1_2; if (e < 6) goto c1_else; if (e <= 6) goto c1_3; if (e <= 7) goto c1_4; #line 260 goto c1_else; c1_0:; z4 = _Value__ToExpr ((_lhs._value)); z2 = _Expr__ConstValue (z4); __result = z2; return __result; c1_1:; z6 = _Value__ToType ((_lhs._value)); z2 = _TypeExpr__New (z6); __result = z2; return __result; c1_2:; z4 = _ProcExpr__New ((_lhs._value)); __result = z4; return __result; c1_3:; { { auto t5 _b; { ZERO1B (& _b); z7 = _Field__Split ((_lhs._value), &_i, &_t, &_e); _b = z7; if (!_b) ASSERTFAULT; } } }; z2 = _Expr__ConstValue (_e); __result = z2; return __result; c1_4:; { { auto t5 _bb; { ZERO1B (& _bb); z7 = _Method__Split ((_lhs._value), &_b, &_t, &_v); _bb = z7; if (!_bb) ASSERTFAULT; } } }; z7 = (_v == 0); if (z7) { __result = _Null__Nil; return __result; }; z2 = _ProcExpr__New (_v); __result = z2; return __result; c1_else:; __result = 0; return __result; }; default: /**/; }; } } }; #line 285 "QualifyExpr.m3" PRIVATE t85 _QualifyExpr__DoQualify (_lhs, _name) t13 * _lhs; t7 _name; { t5 z3; t10 z2; t10 z0; t5 z1; t3 z4; t5 z5; t12 z6; t8 z7; t5 z8; t20 z9; t40 z10; t9 z11; t11 z12; #line 285 "QualifyExpr.m3" { auto t12 _e; auto t11 _v; auto t10 _i; auto t5 _b; auto t3 _p; auto t9 _s; auto t8 _t; auto t8 _t1; auto t8 _t2; auto t7 _n; #line 285 { ZERO1B (& _b); ZERO1 (& _p); #line 285 CHECKSTACKOVERFLOW; #line 296 switch (((*_lhs)._kind)) { case 1: z3 = (((*_lhs)._expr) == 0); if (z3) { goto if_10_end; }; z2 = TYPECODE (((*_lhs)._expr)); z0 = TC3->typecode; z1 = (z2 == z0); if (z1) { z4 = NARROW (((*_lhs)._expr), t3, TC3, z4); _p = z4; ((*_lhs)._kind) = 1 ; NILCHECKA (z4 = _p); ((*_lhs)._expr) = (((t3_fields*)(z4+(0+t51_size+t82_size)))->_expr); NILCHECKA (z4 = _p); _QualifyExpr__DoQualify (&(*_lhs), (((t3_fields*)(z4+(0+t51_size+t82_size)))->_name)); _QualifyExpr__DoQualify (&(*_lhs), _name); goto if_10_end; }; z5 = _TypeExpr__Split (((*_lhs)._expr), &_t); if (z5) { ((*_lhs)._kind) = 2 ; ((*_lhs)._type) = _t; _QualifyExpr__DoQualify (&(*_lhs), _name); goto if_10_end; }; z5 = _NamedExpr__Split (((*_lhs)._expr), &_n, &_v); #line 309 if (z5) { ((*_lhs)._kind) = 0 ; ((*_lhs)._value) = _v; _QualifyExpr__DoQualify (&(*_lhs), _name); goto if_10_end; }; z5 = _RecordExpr__Qualify (((*_lhs)._expr), _name, &_e); #line 313 if (z5) { ((*_lhs)._kind) = 1 ; ((*_lhs)._expr) = _e; goto if_10_end; }; ((*_lhs)._kind) = 1 ; z6 = _Expr__ConstValue (((*_lhs)._expr)); ((*_lhs)._expr) = z6; _QualifyExpr__DoQualify (&(*_lhs), _name); if_10_end: /**/; break; case 2: z7 = _NamedType__Strip (((*_lhs)._type)); _t = z7; z5 = _EnumType__LookUp (_t, _name, &_v); if (z5) { ((*_lhs)._kind) = 1 ; z6 = _Value__ToExpr (_v); ((*_lhs)._expr) = z6; goto if_11_end; }; z8 = _ObjectType__LookUp (_t, _name, &_v, &_t1, &_t2); #line 326 if (z8) { ((*_lhs)._kind) = 0 ; ((*_lhs)._value) = _v; goto if_11_end; }; z5 = _RecordType__LookUp (_t, _name, &_v); if (z5) { ((*_lhs)._kind) = 0 ; ((*_lhs)._value) = _v; goto if_11_end; }; ((*_lhs)._kind) = 1 ; ((*_lhs)._expr) = (t12) 0; if_11_end: /**/; break; case 0: z9 = _Value__ClassOf (((*_lhs)._value)); { register t20 e = z9; if (e < 0) goto c2_else; if (e <= 0) goto c2_0; if (e < 2) goto c2_else; if (e <= 2) goto c2_1; #line 338 if (e < 5) goto c2_else; if (e <= 5) goto c2_2; if (e <= 6) goto c2_3; if (e <= 7) goto c2_4; goto c2_else; c2_0:; #line 338 ((*_lhs)._kind) = 1 ; z6 = _Value__ToExpr (((*_lhs)._value)); ((*_lhs)._expr) = z6; _QualifyExpr__DoQualify (&(*_lhs), _name); goto c2_exit; c2_1:; ((*_lhs)._kind) = 2 ; z7 = _Value__ToType (((*_lhs)._value)); ((*_lhs)._type) = z7; _QualifyExpr__DoQualify (&(*_lhs), _name); goto c2_exit; c2_2:; z10 = NARROW (((*_lhs)._value), t40, TC40, z10); z11 = _Module__ExportScope (z10); _s = z11; ((*_lhs)._kind) = 0 ; z12 = _Scope__LookUpInScope (_s, _name); ((*_lhs)._value) = z12; goto c2_exit; c2_3:; { { auto t5 _b; { ZERO1B (& _b); z8 = _Field__Split (((*_lhs)._value), &_i, &_t, &_e); _b = z8; if (!_b) ASSERTFAULT; } } }; ((*_lhs)._kind) = 1 ; ((*_lhs)._expr) = _e; _QualifyExpr__DoQualify (&(*_lhs), _name); goto c2_exit; c2_4:; { { auto t5 _bb; { ZERO1B (& _bb); z8 = _Method__Split (((*_lhs)._value), &_b, &_t, &_v); _bb = z8; if (!_bb) ASSERTFAULT; } } }; ((*_lhs)._kind) = 0 ; ((*_lhs)._value) = _v; _QualifyExpr__DoQualify (&(*_lhs), _name); goto c2_exit; c2_else:; ((*_lhs)._kind) = 1 ; ((*_lhs)._expr) = (t12) 0; c2_exit: /* exit */; }; break; default: /**/; }; } } }; #line 370 "QualifyExpr.m3" PRIVATE t5 _QualifyExpr__IsDesignator (_p) t3 _p; { t3 z1; t3 z2; t20 z3; t5 z4; #line 370 "QualifyExpr.m3" { auto t5 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; NILCHECKA (z1 = _p); switch ((((t3_fields*)(z1+(0+t51_size+t82_size)))->_class)) { case 0: NILCHECKA (z2 = _p); z3 = _Value__ClassOf ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_obj)); z4 = (z3 == 1 ); __result = z4; return __result; #line 373 case 1: __result = 0 ; return __result; case 2: __result = 0 ; return __result; case 3: NILCHECKA (z2 = _p); z4 = _Expr__IsDesignator ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr)); __result = z4; return __result; case 4: #line 376 __result = 1 ; return __result; case 5: __result = 0 ; return __result; default: /**/; }; } } }; #line 382 "QualifyExpr.m3" PRIVATE t5 _QualifyExpr__IsWritable (_p) t3 _p; { t3 z1; t11 z2; t5 z3; t3 z4; #line 382 "QualifyExpr.m3" { auto t5 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; NILCHECKA (z1 = _p); switch ((((t3_fields*)(z1+(0+t51_size+t82_size)))->_class)) { case 0: NILCHECKA (z1 = _p); NILCHECKA (z2 = (((t3_fields*)(z1+(0+t51_size+t82_size)))->_obj)); z3 = ! (((t48_fields*)(z2+(0+t82_size)))->_readonly); #line 385 __result = z3; return __result; case 1: __result = 0 ; return __result; case 2: __result = 0 ; return __result; case 3: NILCHECKA (z4 = _p); z3 = _Expr__IsWritable ((((t3_fields*)(z4+(0+t51_size+t82_size)))->_expr)); __result = z3; return __result; case 4: #line 388 __result = 1 ; return __result; case 5: __result = 0 ; return __result; default: /**/; }; } } }; #line 394 "QualifyExpr.m3" PRIVATE t85 _QualifyExpr__FPrinter (_p, _map, _wr) t3 _p; t2 _map; t1 _wr; { t3 z2; t3 z3; #line 394 "QualifyExpr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Expr__Fingerprint ((((t3_fields*)(z2+(0+t51_size+t82_size)))->_expr), _map, _wr); _Wr__PutText (_wr, ((ADDRESS)(& txt13.str))); NILCHECKA (z3 = _p); _String__Put (_wr, (((t3_fields*)(z3+(0+t51_size+t82_size)))->_name)); } } }; PRIVATE int init_done = -1; #line 398 "QualifyExpr.m3" PRIVATE void QualifyExpr__initProc (g) int g; { #line 398 "QualifyExpr.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& QualifyExpr__init); INITIALIZE (& OpaqueExpr__init); INITIALIZE (& NilChkExpr__init); #line 398 INITIALIZE (& Temp__init); INITIALIZE (& ProcExpr__init); INITIALIZE (& NamedType__init); INITIALIZE (& Method__init); INITIALIZE (& Wr__init); #line 398 INITIALIZE (& TypeExpr__init); INITIALIZE (& RecordExpr__init); INITIALIZE (& EnumElt__init); INITIALIZE (& ConsExpr__init); #line 398 INITIALIZE (& Int__init); INITIALIZE (& Address__init); INITIALIZE (& Null__init); INITIALIZE (& Error__init); INITIALIZE (& NamedExpr__init); #line 398 INITIALIZE (& Void__init); INITIALIZE (& DerefExpr__init); INITIALIZE (& RefType__init); INITIALIZE (& EnumType__init); INITIALIZE (& VarExpr__init); #line 398 INITIALIZE (& Variable__init); INITIALIZE (& Emit__init); INITIALIZE (& Field__init); INITIALIZE (& ObjectType__init); INITIALIZE (& RecordType__init); #line 398 INITIALIZE (& Scope__init); INITIALIZE (& Module__init); INITIALIZE (& Type__init); INITIALIZE (& ValueRep__init); INITIALIZE (& Value__init); #line 398 INITIALIZE (& String__init); INITIALIZE (& ExprRep__init); INITIALIZE (& Expr__init); return; }; #line 398 "QualifyExpr.m3" PRIVATE void t3_InitProc (obj) char* obj; { register t3_fields* p; #line 398 "QualifyExpr.m3" CHECKSTACKOVERFLOW; p = (t3_fields*) (obj + TC12->datasize); }; #line 398 "QualifyExpr.m3" PRIVATE void t3_SetupProc () { register int* p; #line 398 "QualifyExpr.m3" t3_TC.datasize += TC12->datasize; t3_TC.methodsize += TC12->methodsize; p = (int*) UALLOC (t3_TC.methodsize); COPY (TC12->defaultMethods, p, (TC12->methodsize)); #line 398 p[0] = (int)(& t3_TC); p[1] = 0; ((t51_methods*) (((char*)p) + TC82->methodsize))->_bind = _QualifyExpr__Bind; ((t51_methods*) (((char*)p) + TC82->methodsize))->_check = _QualifyExpr__Check; #line 398 ((t51_methods*) (((char*)p) + TC82->methodsize))->_compile = _QualifyExpr__Compile; ((t51_methods*) (((char*)p) + TC82->methodsize))->_evaluate = _QualifyExpr__Fold; #line 398 ((t51_methods*) (((char*)p) + TC82->methodsize))->_fprint = _QualifyExpr__FPrinter; ((t51_methods*) (((char*)p) + TC82->methodsize))->_write = _QualifyExpr__Writer; #line 398 ((t51_methods*) (((char*)p) + TC82->methodsize))->_isEqual = _QualifyExpr__EqCheck; ((t51_methods*) (((char*)p) + TC82->methodsize))->_getBounds = _QualifyExpr__Bounder; #line 398 ((t51_methods*) (((char*)p) + TC82->methodsize))->_isWritable = _QualifyExpr__IsWritable; ((t51_methods*) (((char*)p) + TC82->methodsize))->_isDesignator = _QualifyExpr__IsDesignator; #line 398 ((t51_methods*) (((char*)p) + TC82->methodsize))->_isZeroes = _ExprRep__IsNever; ((t51_methods*) (((char*)p) + TC82->methodsize))->_genLiteral = _ExprRep__NoLiteral; #line 398 t3_TC.defaultMethods = (char*) p; }; #line 398 "QualifyExpr.m3" PRIVATE void t3_PrintProc (obj) char *obj; { t3_fields* o; #line 398 "QualifyExpr.m3" CHECKSTACKOVERFLOW; if (TC12->printProc != 0) {TC12->printProc (obj); } fprintf (stderr, "{%s} ", TC3->brand); o = (t3_fields*) (obj + TC12->datasize); #line 398 fprintf (stderr, "expr = %#x", o->_expr); fprintf (stderr, ", "); fprintf (stderr, "name = %#x", o->_name); fprintf (stderr, ", "); #line 398 fprintf (stderr, "obj = %#x", o->_obj); fprintf (stderr, ", "); fprintf (stderr, "class = %d", o->_class); fprintf (stderr, ", "); #line 398 fprintf (stderr, "holder = %#x", o->_holder); fprintf (stderr, ", "); fprintf (stderr, "opaque = %#x", o->_opaque); fprintf (stderr, ", "); #line 398 fprintf (stderr, "objExpr = %#x", o->_objExpr); fprintf (stderr, ", "); fprintf (stderr, "temp = %#x", o->_temp); fprintf (stderr, ", "); #line 398 }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, QualifyExpr__initProc}; static char* VSimports[] = { &VS_OpaqueExpr__NewDataOffset__b73dd5942550c752, &VS_OpaqueExpr__NewMethodOffset__33f1bbff2ab1fdbd, &VS_NilChkExpr__New__db38af4926874376, &VS_NilChkExpr__SetOffset__eece43933a5d2ba2, &VS_Temp__T__3a6c7dc12615e4ee, &VS_Temp__AllocMacro__0d68005335e03ba8, &VS_Temp__Alloc__0b946c9d3ec0974e, &VS_Temp__Free__3b952a2225c26846, &VS_Temp__Depend__11ca183d3fa8461d, &VS_ProcExpr__New__75f92da32ed695ef, &VS_NamedType__Strip__ceaf08023af1cea6, &VS_Method__Split__ad6b2c1332a70dee, &VS_Thread__Alerted__fc88feb43485af46, &VS_Wr__T__2555b70b3f7780b1, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Wr__Error__c367253d3ed4fd15, &VS_Wr__PutText__e034dab73a793846, &VS_TypeExpr__New__1f10d03a28487bf7, &VS_TypeExpr__Split__f3b91e1b2487bd66, &VS_RecordExpr__Qualify__94c66bdb287331af, &VS_Int__T__1062912139372387, &VS_Null__Nil__1e235acd2ecccef1, &VS_Error__Str__2bd0723e3872e90c, &VS_NamedExpr__Split__034b990827a61ddc, &VS_Void__T__d44caf853dc63223, &VS_DerefExpr__New__344f21aa225a201e, &VS_DerefExpr__SetOffset__ad8c2e7a28c9c197, &VS_RefType__Is__9788d4183ade3fd0, &VS_EnumType__LookUp__4bf3adb42e570664, &VS_VarExpr__New__a61eb6df2da1f67f, &VS_VarExpr__Obj__e1063a733b61d95c, &VS_Variable__T__be7ead4a3afd8be5, &VS_Variable__GetBounds__c251766d3a14c865, &VS_Emit__MaxStream__cf0a0e8934c9c9f3, &VS_Emit__Format__bc4a2b083b93bbd7, &VS_Emit__OpS__f7dc93802c012951, &VS_Emit__OpI__02cb878634bb9f49, &VS_Emit__OpT__764bdffe21d249e8, &VS_Emit__OpIT__1322d0f925e21d92, &VS_Field__Split__2f17aa55376061e0, &VS_ObjectType__LookUp__9b69ce2938248b0f, &VS_ObjectType__EmitOffsets__dee1146928b5f4cb, &VS_ObjectType__ObjectSize__2cc930713aa21754, &VS_RecordType__MaxFields__7046285b3b00145b, &VS_RecordType__LookUp__fe9c9a932216499f, &VS_Scope__T__3a6c7dc12615e4ee, &VS_Scope__ValueList__64bf053e22e4e53c, &VS_Scope__LookUpInScope__176166ad3a7fb5b9, &VS_Module__T__be7ead4a3afd8be5, &VS_Module__ExportScope__2186b7e7390e796e, &VS_Type__T__2446b70b3f7780a5, &VS_Type__Map__41dd9f4b33104fce, &VS_Type__List__5791758e343becc1, &VS_Type__Size__2f4d980e28adf05b, &VS_Type__GetBounds__9a241b2b3c98ad98, &VS_Type__Base__2bebd0333659a92c, &VS_Type__Name__f99416972257a869, &VS_ValueRep__V__f28699153c608442, &VS_ValueRep__NoDuplicates__ed93f73a247eb7b4, &VS_ValueRep__NoExpr__1297c63d2e046c2c, &VS_ValueRep__NoType__4061f01226f55ca3, &VS_ValueRep__NoLoader__9a7f0c5b24f526c1, &VS_ValueRep__NoWriter__3b24d43c367f7122, &VS_ValueRep__NoDeclarer__22db283420635bde, &VS_ValueRep__Never__39b6ab0628d97589, &VS_ValueRep__Always__1b0a9bbf2173b8b3, &VS_Value__T__2446b70b3f7780a5, &VS_Value__Bind__6439d03d3a1be824, &VS_Value__TypeOf__5fe9c10426934d60, &VS_Value__TypeCheck__917dc8a02c0b0de4, &VS_Value__Load__d08505ae2a4de8ff, &VS_Value__ClassOf__9c68d87829345fcf, &VS_Value__ToExpr__2e95c32e3f1d1895, &VS_Value__ToType__360f3f043a5eeebd, &VS_String__T__3a6c7dc12615e4ee, &VS_String__Put__2457561e210725b3, &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__GetBounds__b20ec781333da5e4, &VS_Expr__IsDesignator__e3556614321cb906, &VS_Expr__IsWritable__85b9bb292e4a0f55, &VS_Expr__TypeCheck__af9aa9073729e7f7, &VS_Expr__Compile__a7e0cc4029a2ec76, &VS_Expr__IsEqual__062d8b2c385e35a9, &VS_Expr__Fingerprint__50ce687c31d90a5b, NIL }; void QualifyExpr__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = QualifyExpr__init; QualifyExpr__init = & me_0; t3_TC = t3_TC_init; REGISTERTYPE (TC3); break; }; case 1: { t3_TC.parent = TC_M3__Expr; break; }; case 2: { break; }; }; };