#include "M3Runtime.h" typedef struct { int tc; char* str; int len; } TXT; PRIVATE TXT txt1 = { 3, "(", 2}; PRIVATE TXT txt2 = { 3, ")", 2}; #line 16 "../Interfaces/Type.i3" #define t10 ADDRESS #define t79 void typedef int t6; #line 116 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef struct { char* elts; int size[1]; } t65; #line 16 "../Interfaces/Type.i3" #define t58 t65 #define TC10 TC_Type__Map IMPORT TYPE TC_Type__Map; #line 16 IMPORT char VS_Type__Map__41dd9f4b33104fce; #line 14 "./Expr.i3" #define t15 ADDRESS #define t76 ADDRESS typedef struct { TYPE self; int private; } t76_methods; #define t76_msize (sizeof (t76_methods)) typedef struct { ADDRESS methods; } t76_fields; #define t76_size (sizeof (t76_fields)) #define TC76 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; #line 16 "../Interfaces/M3.i3" #define t1 ADDRESS #define TC1 TC_M3__Expr IMPORT TYPE TC_M3__Expr; #line 16 IMPORT char VS_M3__Expr__8ae39aaa2d432477; #line 14 "./Expr.i3" #define t53 t65 #define TC15 TC_Expr__List IMPORT TYPE TC_Expr__List; #line 14 IMPORT char VS_Expr__List__3f87eceb2b9a246a; #define t33 ADDRESS #define TC33 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t41 ADDRESS #define TC41 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #line 17 "../Interfaces/Scope.i3" #define t47 ADDRESS #define t14 ADDRESS #define TC14 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 t49 t65 #define TC47 TC_Scope__ValueList IMPORT TYPE TC_Scope__ValueList; #line 17 IMPORT char VS_Scope__ValueList__64bf053e22e4e53c; #line 17 "../Interfaces/Type.i3" #define t56 ADDRESS #define t11 ADDRESS #define TC11 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 { t56 _next; t11 _type; } t57; #define TC56 TC_Type__List IMPORT TYPE TC_Type__List; #line 17 IMPORT char VS_Type__List__5791758e343becc1; #define t80 ADDRESS #define TC80 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 202 "Expr.m3" typedef t79 (*t2)(); #line 19 "../Interfaces/M3.i3" #define t3 ADDRESS #define TC3 TC_M3__Temp IMPORT TYPE TC_M3__Temp; #line 19 IMPORT char VS_M3__Temp__450b691937f03dae; typedef unsigned char t4; #line 192 "Expr.m3" typedef t4 (*t5)(); #line 172 typedef t1 (*t7)(); #line 125 typedef t3 (*t8)(); #define t34 ADDRESS typedef struct { TYPE self; int private; } t34_methods; #define t34_msize (sizeof (t34_methods)) typedef struct { ADDRESS methods; } t34_fields; #define t34_size (sizeof (t34_fields)) #define TC34 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t34_MapProc TC_ROOT->mapProc #define t9 ADDRESS #define TC9 TC_Wr__T IMPORT TYPE TC_Wr__T; #line 90 ".ROOT/.boots/corelib/Interfaces/Wr.i3" IMPORT char VS_Wr__T__2555b70b3f7780b1; #define t9_MapProc TC_Wr__T->mapProc typedef t11 (*t12)(); #line 15 "../Interfaces/Token.i3" typedef unsigned char t24; #line 45 typedef struct { int elts[4]; } t13; #line 13 "../Interfaces/String.i3" #define t16 ADDRESS #define TC16 TC_String__T IMPORT TYPE TC_String__T; #line 13 IMPORT char VS_String__T__3a6c7dc12615e4ee; #line 14 "./CompareExpr.i3" typedef unsigned char t17; #line 16 "../Interfaces/Variable.i3" #define t18 ADDRESS #define TC18 TC_Variable__T IMPORT TYPE TC_Variable__T; #line 16 IMPORT char VS_Variable__T__be7ead4a3afd8be5; #line 14 "./VarExpr.i3" typedef t18 (*t19)(); typedef double t20; #line 83 ".ROOT/.boots/corelib/Interfaces/Rd.i3" #define t21 ADDRESS #define TC21 TC_Rd__T IMPORT TYPE TC_Rd__T; #line 83 IMPORT char VS_Rd__T__2555b70b3f7780b1; #define t21_MapProc TC_Rd__T->mapProc #define t22 ADDRESS #define TC22 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t22_MapProc TC_TEXT->mapProc typedef t16 (*t23)(); #line 13 "../Interfaces/Scanner.i3" typedef struct { t24 _token; t16 _string; t6 _value; t6 _offset; } t25; typedef int t26; #line 249 ".ROOT/.boots/corelib/Interfaces/Rd.i3" typedef t26 (*t27)(); #line 220 typedef t22 (*t28)(); typedef unsigned char t29; #line 189 #define t30 t65 typedef t29 (*t31)(); #line 84 typedef unsigned char t32; #line 14 "../Interfaces/String.i3" typedef struct { t16 _module; t16 _item; } t35; #line 37 "../Interfaces/Procedure.i3" #define t36 t65 #define t37 ADDRESS #define TC37 TC_Procedure__T IMPORT TYPE TC_Procedure__T; #line 15 IMPORT char VS_Procedure__T__be7ead4a3afd8be5; #line 17 "./CallExpr.i3" #define t38 ADDRESS #define TC38 TC_CallExpr__MethodList IMPORT TYPE TC_CallExpr__MethodList; #line 17 IMPORT char VS_CallExpr__MethodList__7e87c2d720444b71; #line 14 "../Interfaces/Decl.i3" typedef struct { t16 _alias; t4 _isExternal; t4 _isInline; t4 _isUnused; t4 _isObsolete; } t39; #line 27 "./CallExpr.i3" typedef t38 (*t40)(); #line 14 "../Interfaces/M3.i3" #define t42 ADDRESS #define TC42 TC_M3__Scope IMPORT TYPE TC_M3__Scope; #line 14 IMPORT char VS_M3__Scope__6e6d8848308d8a2d; #line 14 "../Interfaces/Module.i3" #define t43 ADDRESS #define TC43 TC_Module__T IMPORT TYPE TC_Module__T; #line 14 IMPORT char VS_Module__T__be7ead4a3afd8be5; #line 30 typedef t42 (*t44)(); #line 18 typedef t43 (*t45)(); #line 19 "../Interfaces/String.i3" typedef signed_char t61; #line 65 "../Interfaces/Token.i3" #define t59 t65 typedef struct { t16 elts[100]; } t62; #line 17 "../Interfaces/String.i3" typedef struct { t6 _top; t62 _stk; } t46; #line 38 "../Interfaces/Scope.i3" typedef t14 (*t48)(); #line 18 "../Interfaces/Value.i3" typedef unsigned char t50; #line 40 typedef t50 (*t51)(); #line 13 "./ExprRep.i3" #define t52 ADDRESS #line 13 typedef struct { t2 _bind; t2 _check; t2 _write; t5 _isEqual; t7 _evaluate; t2 _getBounds; t5 _isWritable; t5 _isDesignator; #line 13 t5 _isZeroes; t2 _genLiteral; t2 _fprint; t8 _compile; } t52_methods; #define t52_msize (sizeof (t52_methods)) typedef struct { #line 13 t6 _origin; t11 _type; t4 _bound; t4 _inCheck; t4 _checked; } t52_fields; #define t52_size (sizeof (t52_fields)) #define TC52 TC_M3__Expr typedef t10 (*t54)(); #line 97 "../Interfaces/Type.i3" typedef t6 (*t55)(); #line 65 "../Interfaces/Token.i3" typedef struct { t16 elts[97]; } t60; #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef signed_char t63; typedef t63 (*t64)(); #line 91 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef unsigned char t66; #line 15 ".ROOT/.boots/corelib/Interfaces/Thread.i3" #define t67 ADDRESS #define TC67 TC_Thread__T IMPORT TYPE TC_Thread__T; #line 15 IMPORT char VS_Thread__T__2555b70b3f7780b1; #define t67_MapProc TC_Thread__T->mapProc typedef t33 (*t68)(); #define t69 ADDRESS #define TC69 TC_Thread__Condition IMPORT TYPE TC_Thread__Condition; #line 21 IMPORT char VS_Thread__Condition__26d5968239e08f4e; #define t69_MapProc TC_Thread__Condition->mapProc #define t70 ADDRESS #define TC70 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t70_MapProc TC_MUTEX->mapProc typedef t67 (*t71)(); #line 23 #define t72 ADDRESS #line 23 typedef struct { t68 _apply; } t72_methods; #define t72_msize (sizeof (t72_methods)) typedef struct { #line 23 int filler; } t72_fields; #define t72_size (sizeof (t72_fields)) #define TC72 TC_Thread__Closure IMPORT TYPE TC_Thread__Closure; #line 23 IMPORT char VS_Thread__Closure__7fb5c6232c5a658a; #define t72_MapProc TC_Thread__Closure->mapProc typedef t69 (*t73)(); typedef t70 (*t74)(); #line 28 #define t75 ADDRESS #line 28 typedef struct { int filler; } t75_methods; #define t75_msize (sizeof (t75_methods)) typedef struct { #line 28 t26 _stackSize; } t75_fields; #define t75_size (sizeof (t75_fields)) #define TC75 TC_Thread__SizedClosure IMPORT TYPE TC_Thread__SizedClosure; #line 28 IMPORT char VS_Thread__SizedClosure__8a46717d2eae7b07; #define t75_MapProc TC_Thread__SizedClosure->mapProc #define t77 ADDRESS #define TC77 TC_M3__Stmt IMPORT TYPE TC_M3__Stmt; #line 17 "../Interfaces/M3.i3" IMPORT char VS_M3__Stmt__376b307627fc1f2f; typedef CLOSURE t78; typedef float t81; #line 11 "Expr.m3" IMPORT INITLINK* CastExpr__init; IMPORT INITLINK* OpenArrayExpr__init; IMPORT INITLINK* OpaqueExpr__init; IMPORT INITLINK* ProcExpr__init; #line 11 IMPORT INITLINK* AddressExpr__init; IMPORT INITLINK* IntegerExpr__init; IMPORT INITLINK* ArrayExpr__init; IMPORT INITLINK* RecordExpr__init; #line 11 IMPORT INITLINK* SetExpr__init; IMPORT INITLINK* VarExpr__init; IMPORT INITLINK* EnumExpr__init; IMPORT INITLINK* KeywordExpr__init; #line 11 IMPORT INITLINK* NarrowExpr__init; IMPORT INITLINK* CheckExpr__init; IMPORT INITLINK* ConcatExpr__init; IMPORT INITLINK* TypeExpr__init; #line 11 IMPORT INITLINK* TextExpr__init; IMPORT INITLINK* SubtractExpr__init; IMPORT INITLINK* SubscriptExpr__init; IMPORT INITLINK* RealExpr__init; #line 11 IMPORT INITLINK* RangeExpr__init; IMPORT INITLINK* QualifyExpr__init; IMPORT INITLINK* PlusExpr__init; IMPORT INITLINK* OrExpr__init; #line 11 IMPORT INITLINK* NotExpr__init; IMPORT INITLINK* ExprParse__init; IMPORT INITLINK* NegateExpr__init; IMPORT INITLINK* NamedExpr__init; #line 11 IMPORT INITLINK* MultiplyExpr__init; IMPORT INITLINK* ModExpr__init; IMPORT INITLINK* LongrealExpr__init; IMPORT INITLINK* InExpr__init; #line 11 IMPORT INITLINK* EqualExpr__init; IMPORT INITLINK* DivideExpr__init; IMPORT INITLINK* DivExpr__init; IMPORT INITLINK* DerefExpr__init; #line 11 IMPORT INITLINK* ConsExpr__init; IMPORT INITLINK* CompareExpr__init; IMPORT INITLINK* CallExpr__init; IMPORT INITLINK* AndExpr__init; #line 11 IMPORT INITLINK* AddExpr__init; IMPORT INITLINK* Temp__init; IMPORT INITLINK* Scanner__init; IMPORT INITLINK* Error__init; #line 11 IMPORT INITLINK* String__init; IMPORT INITLINK* Token__init; IMPORT INITLINK* Wr__init; IMPORT INITLINK* Void__init; IMPORT INITLINK* Type__init; #line 11 IMPORT INITLINK* Procedure__init; IMPORT INITLINK* Module__init; IMPORT INITLINK* ExprRep__init; IMPORT INITLINK* Expr__init; #line 11 IMPORT t1 _ExprParse__E0 (); IMPORT char VS_ExprParse__E0__d85087933166b10e; #line 11 IMPORT TYPE TC_Temp__T; IMPORT char VS_Temp__T__3a6c7dc12615e4ee; IMPORT t4 _Temp__LookUp (); #line 11 IMPORT char VS_Temp__LookUp__2512b80c23ad6534; IMPORT t3 _Temp__FromExpr (); IMPORT char VS_Temp__FromExpr__808b53eb2a7a6d33; #line 11 IMPORT t4 _Temp__IsLValue (); IMPORT char VS_Temp__IsLValue__20003d7d3f6a672a; IMPORT t6 _Scanner__offset; IMPORT char VS_Scanner__offset__dfc05f042d8347f4; #line 11 IMPORT t13 _Token__DeclStart; IMPORT char VS_Token__DeclStart__730c82bc2c2001b8; IMPORT t13 _Token__TypeStart; IMPORT char VS_Token__TypeStart__f71616cb38a20d02; #line 11 IMPORT t13 _Token__ExprStart; IMPORT char VS_Token__ExprStart__21dc8a0a27344836; IMPORT EXCEPTION_NAME _Thread__Alerted; #line 11 IMPORT char VS_Thread__Alerted__fc88feb43485af46; IMPORT EXCEPTION_NAME _Wr__Failure; IMPORT char VS_Wr__Failure__5f82cfb43dabf527; #line 11 IMPORT EXCEPTION_NAME _Wr__Error; IMPORT char VS_Wr__Error__c367253d3ed4fd15; IMPORT t79 _Wr__PutText (); IMPORT char VS_Wr__PutText__e034dab73a793846; #line 11 IMPORT t11 _Void__T; IMPORT char VS_Void__T__d44caf853dc63223; IMPORT TYPE TC_Type__T; IMPORT char VS_Type__T__2446b70b3f7780a5; #line 11 IMPORT t79 _Type__GetBounds (); IMPORT char VS_Type__GetBounds__9a241b2b3c98ad98; EXPORT t79 _ExprRep__Init (); EXPORT char VS_ExprRep__Init__8b7fff3e227cebab = '\0'; #line 11 EXPORT t79 _ExprRep__NoBind (); EXPORT char VS_ExprRep__NoBind__e7d0d3dd3d703c08 = '\0'; EXPORT t79 _ExprRep__NoCheck (); #line 11 EXPORT char VS_ExprRep__NoCheck__c11b54bc361794fa = '\0'; EXPORT t1 _ExprRep__NoValue (); EXPORT char VS_ExprRep__NoValue__8ccc143224598a66 = '\0'; #line 11 EXPORT t1 _ExprRep__Self (); EXPORT char VS_ExprRep__Self__28962e523a8d814b = '\0'; EXPORT t79 _ExprRep__NoBounds (); EXPORT char VS_ExprRep__NoBounds__b64bb146289ee4f0 = '\0'; #line 11 EXPORT t4 _ExprRep__IsNever (); EXPORT char VS_ExprRep__IsNever__8f1a069b301903c8 = '\0'; EXPORT t4 _ExprRep__IsAlways (); #line 11 EXPORT char VS_ExprRep__IsAlways__f5a5ce3d3141b566 = '\0'; EXPORT t4 _ExprRep__NeverEq (); EXPORT char VS_ExprRep__NeverEq__dfdc2412249ccb65 = '\0'; #line 11 EXPORT t79 _ExprRep__NoWriter (); EXPORT char VS_ExprRep__NoWriter__a97bb1a23bbf506e = '\0'; EXPORT t79 _ExprRep__NoLiteral (); #line 11 EXPORT char VS_ExprRep__NoLiteral__6c9c90073f496f67 = '\0'; IMPORT TYPE TC_Expr__T; IMPORT char VS_Expr__T__2446b70b3f7780a5; #line 11 EXPORT t79 _Expr__Initialize (); EXPORT char VS_Expr__Initialize__60a823013718457c = '\0'; EXPORT t1 _Expr__Parse (); EXPORT char VS_Expr__Parse__193c41662e6da77f = '\0'; #line 11 EXPORT t79 _Expr__Bind (); EXPORT char VS_Expr__Bind__7e2752da3eaf56eb = '\0'; EXPORT t11 _Expr__TypeOf (); EXPORT char VS_Expr__TypeOf__fef0a11b388c64fa = '\0'; #line 11 EXPORT t1 _Expr__ConstValue (); EXPORT char VS_Expr__ConstValue__ce4fd448218fe483 = '\0'; EXPORT t79 _Expr__GetBounds (); #line 11 EXPORT char VS_Expr__GetBounds__b20ec781333da5e4 = '\0'; EXPORT t4 _Expr__IsDesignator (); EXPORT char VS_Expr__IsDesignator__e3556614321cb906 = '\0'; #line 11 EXPORT t4 _Expr__IsWritable (); EXPORT char VS_Expr__IsWritable__85b9bb292e4a0f55 = '\0'; EXPORT t4 _Expr__IsZeroes (); EXPORT char VS_Expr__IsZeroes__76ef605028be697c = '\0'; #line 11 EXPORT t79 _Expr__TypeCheck (); EXPORT char VS_Expr__TypeCheck__af9aa9073729e7f7 = '\0'; EXPORT t3 _Expr__Compile (); EXPORT char VS_Expr__Compile__a7e0cc4029a2ec76 = '\0'; #line 11 EXPORT t3 _Expr__CompileLValue (); EXPORT char VS_Expr__CompileLValue__46b9da092357ba5c = '\0'; EXPORT t79 _Expr__Write (); #line 11 EXPORT char VS_Expr__Write__99a50fe128e7a9a9 = '\0'; EXPORT t4 _Expr__IsEqual (); EXPORT char VS_Expr__IsEqual__062d8b2c385e35a9 = '\0'; #line 11 EXPORT t79 _Expr__Fingerprint (); EXPORT char VS_Expr__Fingerprint__50ce687c31d90a5b = '\0'; EXPORT t79 _Expr__GenLiteral (); #line 11 EXPORT char VS_Expr__GenLiteral__5d3c8414307dac94 = '\0'; IMPORT char VS_M3__Expr__58bf709e39adf1f7; #line 24 "Expr.m3" EXPORT t79 _Expr__Initialize () { #line 24 "Expr.m3" { { CHECKSTACKOVERFLOW; } } }; #line 30 "Expr.m3" EXPORT t1 _Expr__Parse (_fail) t13 * _fail; { t1 z2; #line 30 "Expr.m3" { auto t1 __result; { CHECKSTACKOVERFLOW; z2 = _ExprParse__E0 ((*_fail)); __result = z2; return __result; } } }; #line 37 "Expr.m3" EXPORT t79 _ExprRep__Init (_t) t1 _t; { t1 z2; #line 37 "Expr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _t); (((t52_fields*)(z2+(0+t76_size)))->_origin) = _Scanner__offset; NILCHECKA (z2 = _t); (((t52_fields*)(z2+(0+t76_size)))->_type) = (t11) 0; NILCHECKA (z2 = _t); (((t52_fields*)(z2+(0+t76_size)))->_bound) = 0 ; NILCHECKA (z2 = _t); (((t52_fields*)(z2+(0+t76_size)))->_inCheck) = 0 ; NILCHECKA (z2 = _t); (((t52_fields*)(z2+(0+t76_size)))->_checked) = 0 ; } } }; #line 46 "Expr.m3" EXPORT t79 _Expr__Bind (_t) t1 _t; { t4 z2; t4 z0; t1 z3; t1 z1; t2 z4; t4 z5; #line 46 "Expr.m3" { { CHECKSTACKOVERFLOW; z2 = (_t != 0); z0 = 0; if (z2) { NILCHECKA (z3 = _t); z2 = ! (((t52_fields*)(z3+(0+t76_size)))->_bound); z0 = z2; }; #line 48 if (z0) { NILCHECKA (z1 = _t); z3 = (*(char**)z1); z4 = ((t52_methods*) (z3+(0+t76_msize)))->_bind; z4 (z1); NILCHECKA (z3 = _t); (((t52_fields*)(z3+(0+t76_size)))->_bound) = 1 ; NILCHECKA (z1 = _t); z5 = ((((t52_fields*)(z1+(0+t76_size)))->_type) == 0); if (z5) { NILCHECKA (z3 = _t); (((t52_fields*)(z3+(0+t76_size)))->_type) = _Void__T; #line 51 goto if_2_end; }; if_2_end: /**/; goto if_1_end; }; if_1_end: /**/; } } }; #line 55 "Expr.m3" EXPORT t11 _Expr__TypeOf (_t) t1 _t; { t4 z2; t1 z1; #line 55 "Expr.m3" { auto t11 __result; { CHECKSTACKOVERFLOW; z2 = (_t == 0); if (z2) { __result = _Void__T; return __result; }; NILCHECKA (z1 = _t); if (!(((t52_fields*)(z1+(0+t76_size)))->_bound)) ASSERTFAULT; NILCHECKA (z1 = _t); __result = (((t52_fields*)(z1+(0+t76_size)))->_type); return __result; } } }; #line 64 "Expr.m3" EXPORT t1 _Expr__ConstValue (_t) t1 _t; { t4 z2; t1 z1; t1 z0; t7 z3; #line 64 "Expr.m3" { auto t1 __result; { CHECKSTACKOVERFLOW; z2 = (_t == 0); if (z2) { __result = 0; return __result; }; NILCHECKA (z1 = _t); z0 = (*(char**)z1); z3 = ((t52_methods*) (z0+(0+t76_msize)))->_evaluate; z0 = z3 (z1); __result = z0; #line 67 return __result; } } }; #line 70 "Expr.m3" EXPORT t79 _Expr__GetBounds (_t, _min, _max) t1 _t; t6 * _min; t6 * _max; { t4 z2; t6 z1; t1 z3; t1 z0; t2 z4; #line 70 "Expr.m3" { { CHECKSTACKOVERFLOW; z2 = (_t == 0); if (z2) { (*_min) = 0 ; z1 = - 1 ; (*_max) = z1; return; }; NILCHECKA (z3 = _t); z0 = (*(char**)z3); z4 = ((t52_methods*) (z0+(0+t76_msize)))->_getBounds; z4 (z3, &(*_min), &(*_max)); #line 73 } } }; #line 76 "Expr.m3" EXPORT t4 _Expr__IsDesignator (_t) t1 _t; { t4 z2; t4 z0; t1 z3; t1 z1; t5 z4; #line 76 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z2 = (_t == 0); z0 = 1; if (! z2) { NILCHECKA (z3 = _t); z1 = (*(char**)z3); z4 = ((t52_methods*) (z1+(0+t76_msize)))->_isDesignator; #line 78 z2 = z4 (z3); z0 = z2; }; __result = z0; return __result; } } }; #line 81 "Expr.m3" EXPORT t4 _Expr__IsWritable (_t) t1 _t; { t4 z2; t4 z0; t1 z3; t1 z1; t5 z4; #line 81 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z2 = (_t == 0); z0 = 1; if (! z2) { NILCHECKA (z3 = _t); z1 = (*(char**)z3); z4 = ((t52_methods*) (z1+(0+t76_msize)))->_isWritable; #line 83 z2 = z4 (z3); z0 = z2; }; __result = z0; return __result; } } }; #line 86 "Expr.m3" EXPORT t4 _Expr__IsZeroes (_t) t1 _t; { t4 z2; t4 z0; t1 z3; t1 z1; t5 z4; #line 86 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z2 = (_t == 0); z0 = 1; if (! z2) { NILCHECKA (z3 = _t); z1 = (*(char**)z3); z4 = ((t52_methods*) (z1+(0+t76_msize)))->_isZeroes; #line 88 z2 = z4 (z3); z0 = z2; }; __result = z0; return __result; } } }; #line 93 "Expr.m3" EXPORT t79 _Expr__TypeCheck (_t) t1 _t; { t4 z2; t4 z0; t1 z3; t1 z1; t4 z4; t2 z5; #line 93 "Expr.m3" { { CHECKSTACKOVERFLOW; z2 = (_t != 0); z0 = 0; if (z2) { NILCHECKA (z3 = _t); z2 = ! (((t52_fields*)(z3+(0+t76_size)))->_checked); z0 = z2; #line 95 }; if (z0) { NILCHECKA (z1 = _t); z2 = 0; if ((((t52_fields*)(z1+(0+t76_size)))->_bound)) { NILCHECKA (z1 = _t); z4 = ! (((t52_fields*)(z1+(0+t76_size)))->_inCheck); #line 96 z2 = z4; }; if (!z2) ASSERTFAULT; NILCHECKA (z3 = _t); (((t52_fields*)(z3+(0+t76_size)))->_inCheck) = 1 ; NILCHECKA (z1 = _t); z3 = (*(char**)z1); z5 = ((t52_methods*) (z3+(0+t76_msize)))->_check; z5 (z1); NILCHECKA (z3 = _t); (((t52_fields*)(z3+(0+t76_size)))->_inCheck) = 0 ; NILCHECKA (z3 = _t); (((t52_fields*)(z3+(0+t76_size)))->_checked) = 1 ; goto if_6_end; }; if_6_end: /**/; } } }; #line 104 "Expr.m3" EXPORT t79 _Expr__Fingerprint (_t, _map, _wr) t1 _t; t10 _map; t9 _wr; { t4 z2; t1 z1; t1 z0; t2 z3; #line 104 "Expr.m3" { { CHECKSTACKOVERFLOW; _Wr__PutText (_wr, ((ADDRESS)(& txt1.str))); z2 = (_t != 0); if (z2) { NILCHECKA (z1 = _t); if (!(((t52_fields*)(z1+(0+t76_size)))->_checked)) ASSERTFAULT; NILCHECKA (z1 = _t); z0 = (*(char**)z1); z3 = ((t52_methods*) (z0+(0+t76_msize)))->_fprint; z3 (z1, _map, _wr); goto if_7_end; #line 109 }; if_7_end: /**/; _Wr__PutText (_wr, ((ADDRESS)(& txt2.str))); } } }; #line 116 "Expr.m3" EXPORT t3 _Expr__Compile (_t) t1 _t; { t4 z2; t3 z3; t1 z1; t4 z4; t4 z0; t1 z5; t8 z6; #line 116 "Expr.m3" { auto t3 _tmp; auto t3 __result; { CHECKSTACKOVERFLOW; z2 = (_t == 0); if (z2) { z3 = _Temp__FromExpr (0); __result = z3; return __result; }; NILCHECKA (z1 = _t); if (!(((t52_fields*)(z1+(0+t76_size)))->_checked)) ASSERTFAULT; z4 = _Temp__LookUp (_t, 0 , &_tmp); z0 = ! z4; if (z0) { NILCHECKA (z1 = _t); z5 = (*(char**)z1); z6 = ((t52_methods*) (z5+(0+t76_msize)))->_compile; #line 121 z3 = z6 (z1); _tmp = z3; goto if_9_end; }; if_9_end: /**/; __result = _tmp; return __result; } } }; #line 125 "Expr.m3" EXPORT t3 _Expr__CompileLValue (_t) t1 _t; { t4 z2; t3 z3; t1 z1; t4 z4; t4 z0; t1 z5; t8 z6; #line 125 "Expr.m3" { auto t3 _tmp; auto t3 __result; { CHECKSTACKOVERFLOW; z2 = (_t == 0); if (z2) { z3 = _Temp__FromExpr (0); __result = z3; return __result; }; NILCHECKA (z1 = _t); if (!(((t52_fields*)(z1+(0+t76_size)))->_checked)) ASSERTFAULT; z4 = _Temp__LookUp (_t, 1 , &_tmp); z0 = ! z4; if (z0) { NILCHECKA (z1 = _t); z5 = (*(char**)z1); z6 = ((t52_methods*) (z5+(0+t76_msize)))->_compile; z3 = z6 (z1); _tmp = z3; z2 = _Temp__IsLValue (_tmp); if (!z2) ASSERTFAULT; goto if_11_end; }; if_11_end: /**/; __result = _tmp; return __result; } } }; #line 137 "Expr.m3" EXPORT t79 _Expr__Write (_t, _t1, _t2) t1 _t; t3 _t1; t3 _t2; { t1 z1; t1 z0; t2 z2; #line 137 "Expr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _t); z0 = (*(char**)z1); z2 = ((t52_methods*) (z0+(0+t76_msize)))->_write; z2 (z1, _t1, _t2); } } }; #line 142 "Expr.m3" EXPORT t4 _Expr__IsEqual (_a, _b) t1 _a; t1 _b; { t4 z2; t4 z0; t4 z3; t1 z1; t1 z4; t5 z5; #line 142 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z2 = (_a == _b); if (z2) { __result = 1 ; return __result; }; z2 = (_a == 0); z0 = 1; if (! z2) { z3 = (_b == 0); z0 = z3; }; if (z0) { __result = 0 ; return __result; }; NILCHECKA (z1 = _a); z4 = (*(char**)z1); z5 = ((t52_methods*) (z4+(0+t76_msize)))->_isEqual; z2 = z5 (z1, _b); __result = z2; #line 146 return __result; } } }; #line 149 "Expr.m3" EXPORT t79 _Expr__GenLiteral (_t) t1 _t; { t4 z2; t1 z1; t1 z0; t2 z3; #line 149 "Expr.m3" { { CHECKSTACKOVERFLOW; z2 = (_t == 0); if (z2) { return; }; NILCHECKA (z1 = _t); if (!(((t52_fields*)(z1+(0+t76_size)))->_checked)) ASSERTFAULT; NILCHECKA (z1 = _t); z0 = (*(char**)z1); z3 = ((t52_methods*) (z0+(0+t76_msize)))->_genLiteral; z3 (z1); } } }; #line 158 "Expr.m3" EXPORT t79 _ExprRep__NoBind (_t) t1 _t; { t1 z1; t4 z3; #line 158 "Expr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _t); z3 = ((((t52_fields*)(z1+(0+t76_size)))->_type) != 0); if (!z3) ASSERTFAULT; } } }; #line 163 "Expr.m3" EXPORT t79 _ExprRep__NoCheck (_t) t1 _t; { #line 163 "Expr.m3" { { CHECKSTACKOVERFLOW; } } }; #line 167 "Expr.m3" EXPORT t1 _ExprRep__NoValue (_t) t1 _t; { #line 167 "Expr.m3" { auto t1 __result; { CHECKSTACKOVERFLOW; __result = 0; return __result; } } }; #line 172 "Expr.m3" EXPORT t1 _ExprRep__Self (_t) t1 _t; { #line 172 "Expr.m3" { auto t1 __result; { CHECKSTACKOVERFLOW; __result = _t; return __result; } } }; #line 177 "Expr.m3" EXPORT t79 _ExprRep__NoBounds (_t, _min, _max) t1 _t; t6 * _min; t6 * _max; { t1 z2; #line 177 "Expr.m3" { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _t); _Type__GetBounds ((((t52_fields*)(z2+(0+t76_size)))->_type), &(*_min), &(*_max)); } } }; #line 182 "Expr.m3" EXPORT t4 _ExprRep__IsNever (_t) t1 _t; { #line 182 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; __result = 0 ; return __result; } } }; #line 187 "Expr.m3" EXPORT t4 _ExprRep__IsAlways (_t) t1 _t; { #line 187 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; __result = 1 ; return __result; } } }; #line 192 "Expr.m3" EXPORT t4 _ExprRep__NeverEq (_a, _b) t1 _a; t1 _b; { #line 192 "Expr.m3" { auto t4 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; __result = 0 ; return __result; } } }; #line 197 "Expr.m3" EXPORT t79 _ExprRep__NoWriter (_t, _t1, _t2) t1 _t; t3 _t1; t3 _t2; { #line 197 "Expr.m3" { { CHECKSTACKOVERFLOW; if (! 0 ) ASSERTFAULT; } } }; #line 202 "Expr.m3" EXPORT t79 _ExprRep__NoLiteral (_t) t1 _t; { #line 202 "Expr.m3" { { CHECKSTACKOVERFLOW; if (! 0 ) ASSERTFAULT; } } }; PRIVATE int init_done = -1; #line 204 "Expr.m3" PRIVATE void Expr__initProc (g) int g; { #line 204 "Expr.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& ExprRep__init); INITIALIZE (& Expr__init); INITIALIZE (& CastExpr__init); #line 204 INITIALIZE (& OpenArrayExpr__init); INITIALIZE (& OpaqueExpr__init); INITIALIZE (& ProcExpr__init); INITIALIZE (& AddressExpr__init); #line 204 INITIALIZE (& IntegerExpr__init); INITIALIZE (& ArrayExpr__init); INITIALIZE (& RecordExpr__init); INITIALIZE (& SetExpr__init); #line 204 INITIALIZE (& VarExpr__init); INITIALIZE (& EnumExpr__init); INITIALIZE (& KeywordExpr__init); INITIALIZE (& NarrowExpr__init); #line 204 INITIALIZE (& CheckExpr__init); INITIALIZE (& ConcatExpr__init); INITIALIZE (& TypeExpr__init); INITIALIZE (& TextExpr__init); #line 204 INITIALIZE (& SubtractExpr__init); INITIALIZE (& SubscriptExpr__init); INITIALIZE (& RealExpr__init); INITIALIZE (& RangeExpr__init); #line 204 INITIALIZE (& QualifyExpr__init); INITIALIZE (& PlusExpr__init); INITIALIZE (& OrExpr__init); INITIALIZE (& NotExpr__init); #line 204 INITIALIZE (& ExprParse__init); INITIALIZE (& NegateExpr__init); INITIALIZE (& NamedExpr__init); INITIALIZE (& MultiplyExpr__init); #line 204 INITIALIZE (& ModExpr__init); INITIALIZE (& LongrealExpr__init); INITIALIZE (& InExpr__init); INITIALIZE (& EqualExpr__init); #line 204 INITIALIZE (& DivideExpr__init); INITIALIZE (& DivExpr__init); INITIALIZE (& DerefExpr__init); INITIALIZE (& ConsExpr__init); #line 204 INITIALIZE (& CompareExpr__init); INITIALIZE (& CallExpr__init); INITIALIZE (& AndExpr__init); INITIALIZE (& AddExpr__init); #line 204 INITIALIZE (& Temp__init); INITIALIZE (& Scanner__init); INITIALIZE (& Error__init); INITIALIZE (& String__init); INITIALIZE (& Token__init); #line 204 INITIALIZE (& Wr__init); INITIALIZE (& Void__init); INITIALIZE (& Type__init); INITIALIZE (& Procedure__init); INITIALIZE (& Module__init); #line 204 return; }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, Expr__initProc}; PRIVATE INITLINK me_1 ={(INITLINK*)NIL, 0, Expr__initProc}; static char* VSimports[] = { &VS_ExprParse__E0__d85087933166b10e, &VS_CallExpr__MethodList__7e87c2d720444b71, &VS_Temp__T__3a6c7dc12615e4ee, &VS_Temp__LookUp__2512b80c23ad6534, &VS_Temp__FromExpr__808b53eb2a7a6d33, &VS_Temp__IsLValue__20003d7d3f6a672a, &VS_Scanner__offset__dfc05f042d8347f4, &VS_String__T__3a6c7dc12615e4ee, &VS_Token__DeclStart__730c82bc2c2001b8, &VS_Token__TypeStart__f71616cb38a20d02, &VS_Token__ExprStart__21dc8a0a27344836, &VS_Thread__Alerted__fc88feb43485af46, &VS_Wr__T__2555b70b3f7780b1, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Wr__Error__c367253d3ed4fd15, &VS_Wr__PutText__e034dab73a793846, &VS_Void__T__d44caf853dc63223, &VS_Type__T__2446b70b3f7780a5, &VS_Type__Map__41dd9f4b33104fce, &VS_Type__List__5791758e343becc1, &VS_Type__GetBounds__9a241b2b3c98ad98, &VS_Procedure__T__be7ead4a3afd8be5, &VS_Module__T__be7ead4a3afd8be5, &VS_Expr__T__2446b70b3f7780a5, &VS_Expr__List__3f87eceb2b9a246a, NIL }; void Expr__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = ExprRep__init; ExprRep__init = & me_0; me_1.link = Expr__init; Expr__init = & me_1; break; }; case 1: { break; }; case 2: { break; }; }; };