#include "M3Runtime.h" typedef struct { int tc; char* str; int len; } TXT; PRIVATE TXT txt1 = { 3, "undefined", 10}; PRIVATE TXT txt2 = { 3, "not an exception", 17}; PRIVATE TXT txt3 = { 3, "exception takes no argument", 28}; PRIVATE TXT txt4 = { 3, "exception requires an argument", 31}; PRIVATE TXT txt5 = { 3, "argument has wrong type", 24}; PRIVATE TXT txt6 = { 3, "RAISE (& @, 0, 0);\012", 20}; PRIVATE TXT txt7 = { 3, "@ = @;\012", 8}; PRIVATE TXT txt8 = { 3, "RAISE (& @, & @, ", 18}; PRIVATE TXT txt9 = { 3, "@);\012", 5}; #line 17 "../Interfaces/Scope.i3" #define t32 ADDRESS #define t80 void #define t61 ADDRESS typedef struct { TYPE self; int private; } t61_methods; #define t61_msize (sizeof (t61_methods)) typedef struct { ADDRESS methods; } t61_fields; #define t61_size (sizeof (t61_fields)) #define TC61 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; #line 15 "../Interfaces/M3.i3" #define t8 ADDRESS #define TC8 TC_M3__Value IMPORT TYPE TC_M3__Value; #line 15 IMPORT char VS_M3__Value__6f64cf9c2cae25fb; #line 116 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef struct { char* elts; int size[1]; } t68; #line 17 "../Interfaces/Scope.i3" #define t35 t68 #define TC32 TC_Scope__ValueList IMPORT TYPE TC_Scope__ValueList; #line 17 IMPORT char VS_Scope__ValueList__64bf053e22e4e53c; #line 16 "../Interfaces/Type.i3" #define t37 ADDRESS typedef int t1; #line 16 #define t58 t68 #define TC37 TC_Type__Map IMPORT TYPE TC_Type__Map; #line 16 IMPORT char VS_Type__Map__41dd9f4b33104fce; #define t50 ADDRESS #define TC50 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #line 14 "../Interfaces/Expr.i3" #define t52 ADDRESS #define t13 ADDRESS #define TC13 TC_M3__Expr IMPORT TYPE TC_M3__Expr; #line 16 "../Interfaces/M3.i3" IMPORT char VS_M3__Expr__8ae39aaa2d432477; #line 14 "../Interfaces/Expr.i3" #define t53 t68 #define TC52 TC_Expr__List IMPORT TYPE TC_Expr__List; #line 14 IMPORT char VS_Expr__List__3f87eceb2b9a246a; #line 17 "../Interfaces/Type.i3" #define t56 ADDRESS #define t7 ADDRESS #define TC7 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; t7 _type; } t57; #define TC56 TC_Type__List IMPORT TYPE TC_Type__List; #line 17 IMPORT char VS_Type__List__5791758e343becc1; #define t60 ADDRESS #define TC60 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t81 ADDRESS #define TC81 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 19 "../Interfaces/M3.i3" #define t2 ADDRESS #define TC2 TC_M3__Temp IMPORT TYPE TC_M3__Temp; #line 19 IMPORT char VS_M3__Temp__450b691937f03dae; #line 16 "./Stmt.i3" typedef unsigned char t59; typedef struct { int elts[1]; } t3; #line 18 "RaiseStmt.m3" #define t4 ADDRESS #line 13 "../Interfaces/String.i3" #define t22 ADDRESS #define TC22 TC_String__T IMPORT TYPE TC_String__T; #line 13 IMPORT char VS_String__T__3a6c7dc12615e4ee; typedef struct { t22 _module; t22 _item; } t14; #line 47 "../Interfaces/Marker.i3" typedef t80 (*t6)(); #line 20 "./StmtRep.i3" typedef void (*t5)(); #line 17 "../Interfaces/M3.i3" #define t10 ADDRESS #define TC10 TC_M3__Stmt IMPORT TYPE TC_M3__Stmt; #line 17 IMPORT char VS_M3__Stmt__376b307627fc1f2f; #line 18 "RaiseStmt.m3" typedef struct { int filler; } t4_methods; #define t4_msize (sizeof (t4_methods)) typedef struct { #line 18 t14 _qid; t8 _except; t13 _arg; } t4_fields; #define t4_size (sizeof (t4_fields)) PRIVATE void t4_InitProc (); #line 18 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 18 t4_size, t4_msize, NIL, 0, 0, t4_InitProc, t4_SetupProc, t4_PrintProc, "", -1124554056, 794278962}; PRIVATE TYPE TC4 = &t4_TC; #line 15 "../Interfaces/Token.i3" typedef unsigned char t9; #line 45 typedef struct { int elts[4]; } t11; #line 29 "RaiseStmt.m3" typedef t10 (*t12)(); typedef unsigned char t15; #line 23 "./AssignStmt.i3" typedef t15 (*t16)(); #line 20 typedef t13 (*t17)(); #line 18 typedef unsigned char t18; #line 15 "../Interfaces/Exceptionz.i3" typedef t7 (*t19)(); #line 14 "../Interfaces/Decl.i3" typedef struct { t22 _alias; t15 _isExternal; t15 _isInline; t15 _isUnused; t15 _isObsolete; } t20; #line 16 "../Interfaces/Variable.i3" #define t21 ADDRESS #define TC21 TC_Variable__T IMPORT TYPE TC_Variable__T; #line 16 IMPORT char VS_Variable__T__be7ead4a3afd8be5; #line 27 "../Interfaces/Emit.i3" typedef signed_char t23; #line 63 typedef t23 (*t24)(); #define t25 ADDRESS #define TC25 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t25_MapProc TC_TEXT->mapProc typedef signed_char t64; #line 65 "../Interfaces/Token.i3" #define t62 t68 typedef struct { t22 elts[100]; } t65; #line 17 "../Interfaces/String.i3" typedef struct { t1 _top; t65 _stk; } t26; typedef double t27; typedef unsigned char t28; #line 14 "../Interfaces/M3.i3" #define t29 ADDRESS #define TC29 TC_M3__Scope IMPORT TYPE TC_M3__Scope; #line 14 IMPORT char VS_M3__Scope__6e6d8848308d8a2d; #line 38 "../Interfaces/Variable.i3" typedef t2 (*t30)(); #line 24 typedef t21 (*t31)(); #line 38 "../Interfaces/Scope.i3" typedef t8 (*t33)(); #line 31 typedef t29 (*t34)(); #define t51 ADDRESS typedef struct { TYPE self; int private; } t51_methods; #define t51_msize (sizeof (t51_methods)) typedef struct { ADDRESS methods; } t51_fields; #define t51_size (sizeof (t51_fields)) #define TC51 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t51_MapProc TC_ROOT->mapProc #define t36 ADDRESS #define TC36 TC_Wr__T IMPORT TYPE TC_Wr__T; #line 90 ".ROOT/.boots/corelib/Interfaces/Wr.i3" IMPORT char VS_Wr__T__2555b70b3f7780b1; #define t36_MapProc TC_Wr__T->mapProc typedef unsigned char t38; #line 40 "../Interfaces/Value.i3" typedef t38 (*t39)(); #line 13 "./StmtRep.i3" #define t40 ADDRESS #line 13 typedef struct { t6 _bind; t6 _check; t6 _precompile; t5 _compile; } t40_methods; #define t40_msize (sizeof (t40_methods)) typedef struct { #line 13 t10 _next; t1 _origin; } t40_fields; #define t40_size (sizeof (t40_fields)) #define TC40 TC_M3__Stmt #define t41 ADDRESS #define TC41 TC_Rd__T IMPORT TYPE TC_Rd__T; #line 83 ".ROOT/.boots/corelib/Interfaces/Rd.i3" IMPORT char VS_Rd__T__2555b70b3f7780b1; #define t41_MapProc TC_Rd__T->mapProc typedef t22 (*t42)(); #line 13 "../Interfaces/Scanner.i3" typedef struct { t9 _token; t22 _string; t1 _value; t1 _offset; } t43; typedef int t44; #line 249 ".ROOT/.boots/corelib/Interfaces/Rd.i3" typedef t44 (*t45)(); #line 220 typedef t25 (*t46)(); #line 189 #define t47 t68 typedef t28 (*t48)(); #line 84 typedef unsigned char t49; #line 121 "../Interfaces/Type.i3" typedef t37 (*t54)(); #line 97 typedef t1 (*t55)(); #line 65 "../Interfaces/Token.i3" typedef struct { t22 elts[97]; } t63; #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef signed_char t66; typedef t66 (*t67)(); #line 91 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef unsigned char t69; #line 15 ".ROOT/.boots/corelib/Interfaces/Thread.i3" #define t70 ADDRESS #define TC70 TC_Thread__T IMPORT TYPE TC_Thread__T; #line 15 IMPORT char VS_Thread__T__2555b70b3f7780b1; #define t70_MapProc TC_Thread__T->mapProc typedef t50 (*t71)(); #define t72 ADDRESS #define TC72 TC_Thread__Condition IMPORT TYPE TC_Thread__Condition; #line 21 IMPORT char VS_Thread__Condition__26d5968239e08f4e; #define t72_MapProc TC_Thread__Condition->mapProc #define t73 ADDRESS #define TC73 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t73_MapProc TC_MUTEX->mapProc typedef t70 (*t74)(); #line 23 #define t75 ADDRESS #line 23 typedef struct { t71 _apply; } t75_methods; #define t75_msize (sizeof (t75_methods)) typedef struct { #line 23 int filler; } t75_fields; #define t75_size (sizeof (t75_fields)) #define TC75 TC_Thread__Closure IMPORT TYPE TC_Thread__Closure; #line 23 IMPORT char VS_Thread__Closure__7fb5c6232c5a658a; #define t75_MapProc TC_Thread__Closure->mapProc typedef t72 (*t76)(); typedef t73 (*t77)(); #line 28 #define t78 ADDRESS #line 28 typedef struct { int filler; } t78_methods; #define t78_msize (sizeof (t78_methods)) typedef struct { #line 28 t44 _stackSize; } t78_fields; #define t78_size (sizeof (t78_fields)) #define TC78 TC_Thread__SizedClosure IMPORT TYPE TC_Thread__SizedClosure; #line 28 IMPORT char VS_Thread__SizedClosure__8a46717d2eae7b07; #define t78_MapProc TC_Thread__SizedClosure->mapProc typedef CLOSURE t79; typedef float t82; #line 11 "RaiseStmt.m3" IMPORT INITLINK* AssignStmt__init; IMPORT INITLINK* Exceptionz__init; IMPORT INITLINK* Target__init; IMPORT INITLINK* Marker__init; #line 11 IMPORT INITLINK* Temp__init; IMPORT INITLINK* Emit__init; IMPORT INITLINK* Void__init; IMPORT INITLINK* Scope__init; IMPORT INITLINK* Type__init; #line 11 IMPORT INITLINK* Value__init; IMPORT INITLINK* String__init; IMPORT INITLINK* Error__init; IMPORT INITLINK* StmtRep__init; #line 11 IMPORT INITLINK* Stmt__init; IMPORT INITLINK* Scanner__init; IMPORT INITLINK* Token__init; IMPORT INITLINK* Expr__init; IMPORT INITLINK* RaiseStmt__init; #line 11 IMPORT t13 _AssignStmt__CheckRHS (); IMPORT char VS_AssignStmt__CheckRHS__9aaea40f392f387e; IMPORT t7 _Exceptionz__ArgType (); #line 11 IMPORT char VS_Exceptionz__ArgType__3188a9b832af1842; IMPORT char VS_Target__CHARSIZE__bfc83af22ccab4e4; IMPORT TYPE TC_Marker__Prefix; #line 11 IMPORT char VS_Marker__Prefix__819dde3f21a97326; IMPORT TYPE TC_Temp__T; IMPORT char VS_Temp__T__3a6c7dc12615e4ee; IMPORT t2 _Temp__Alloc (); #line 11 IMPORT char VS_Temp__Alloc__0b946c9d3ec0974e; IMPORT t80 _Temp__Free (); IMPORT char VS_Temp__Free__3b952a2225c26846; IMPORT char VS_Emit__MaxStream__cf0a0e8934c9c9f3; #line 11 IMPORT TYPE TC_Emit__Format; IMPORT char VS_Emit__Format__bc4a2b083b93bbd7; IMPORT t80 _Emit__OpI (); IMPORT char VS_Emit__OpI__02cb878634bb9f49; #line 11 IMPORT t80 _Emit__OpT (); IMPORT char VS_Emit__OpT__764bdffe21d249e8; IMPORT t80 _Emit__OpTT (); IMPORT char VS_Emit__OpTT__cba0ce912431e01c; #line 11 IMPORT t7 _Void__T; IMPORT char VS_Void__T__d44caf853dc63223; IMPORT TYPE TC_Scope__T; IMPORT char VS_Scope__T__3a6c7dc12615e4ee; #line 11 IMPORT t8 _Scope__LookUpQID (); IMPORT char VS_Scope__LookUpQID__725ce38220cfad93; IMPORT TYPE TC_Type__T; IMPORT char VS_Type__T__2446b70b3f7780a5; #line 11 IMPORT t1 _Type__Size (); IMPORT char VS_Type__Size__2f4d980e28adf05b; IMPORT t15 _Type__IsAssignable (); IMPORT char VS_Type__IsAssignable__6d0a7b0e2c806002; #line 11 IMPORT TYPE TC_Value__T; IMPORT char VS_Value__T__2446b70b3f7780a5; IMPORT t2 _Value__Load (); IMPORT char VS_Value__Load__d08505ae2a4de8ff; #line 11 IMPORT t38 _Value__ClassOf (); IMPORT char VS_Value__ClassOf__9c68d87829345fcf; IMPORT t80 _Error__QID (); IMPORT char VS_Error__QID__84a7ccd932b81b86; #line 11 IMPORT t80 _StmtRep__Init (); IMPORT char VS_StmtRep__Init__fe14377c36e397de; IMPORT TYPE TC_Stmt__T; IMPORT char VS_Stmt__T__2446b70b3f7780a5; #line 11 IMPORT t43 _Scanner__cur; IMPORT char VS_Scanner__cur__929fa6f8367ea415; IMPORT t80 _Scanner__Match (); IMPORT char VS_Scanner__Match__aaf5b32f2f19a6d8; #line 11 IMPORT t22 _Scanner__MatchID (); IMPORT char VS_Scanner__MatchID__4fb3c66f3429afd9; IMPORT t80 _Scanner__GetToken (); IMPORT char VS_Scanner__GetToken__192100a32c7e576d; #line 11 IMPORT t11 _Token__DeclStart; IMPORT char VS_Token__DeclStart__730c82bc2c2001b8; IMPORT t11 _Token__TypeStart; IMPORT char VS_Token__TypeStart__f71616cb38a20d02; #line 11 IMPORT t11 _Token__ExprStart; IMPORT char VS_Token__ExprStart__21dc8a0a27344836; IMPORT TYPE TC_Expr__T; IMPORT char VS_Expr__T__2446b70b3f7780a5; #line 11 IMPORT t13 _Expr__Parse (); IMPORT char VS_Expr__Parse__193c41662e6da77f; IMPORT t80 _Expr__Bind (); IMPORT char VS_Expr__Bind__7e2752da3eaf56eb; #line 11 IMPORT t7 _Expr__TypeOf (); IMPORT char VS_Expr__TypeOf__fef0a11b388c64fa; IMPORT t15 _Expr__IsDesignator (); IMPORT char VS_Expr__IsDesignator__e3556614321cb906; #line 11 IMPORT t80 _Expr__TypeCheck (); IMPORT char VS_Expr__TypeCheck__af9aa9073729e7f7; IMPORT t2 _Expr__Compile (); IMPORT char VS_Expr__Compile__a7e0cc4029a2ec76; #line 11 EXPORT t10 _RaiseStmt__Parse (); EXPORT char VS_RaiseStmt__Parse__3e73e9823f332d97 = '\0'; PRIVATE TYPE TC_RaiseStmt__P; #line 11 PRIVATE t80 _RaiseStmt__Bind (); PRIVATE t80 _RaiseStmt__Check (); PRIVATE t80 _RaiseStmt__Precompile (); PRIVATE void _RaiseStmt__Compile (); #line 11 IMPORT char VS_M3__Stmt__8851da472c4ee5cd; #line 29 "RaiseStmt.m3" EXPORT t10 _RaiseStmt__Parse (_fail) t11 * _fail; { t4 z0; t11 z4; t4 z2; t11 z3; t1 z5; t22 z6; t4 z1; t15 z7; t13 z8; #line 29 "RaiseStmt.m3" { auto t4 _p; auto t10 __result; { ZERO1 (& _p); #line 29 CHECKSTACKOVERFLOW; { register char** ptr = (char**) UNEWOBJ (TC4); z0 = (t4) ptr; }; _p = z0; _StmtRep__Init (_p); z4 = _Token__ExprStart; _Scanner__Match ( 76 , &(*_fail), &z4); NILCHECKA (z2 = _p); (((t4_fields*)(z2+(0+t40_size+t61_size)))->_except) = (t8) 0; NILCHECKA (z2 = _p); (((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg) = (t13) 0; NILCHECKA (z2 = _p); ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid)._module) = (t22) 0; z3.elts [0] = 0x00012000; z3.elts [1] = 0; z3.elts [2] = 0; z3.elts [3] = 0; z4 = z3; z6 = _Scanner__MatchID (&(*_fail), &z4); #line 39 NILCHECKA (z1 = _p); ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_qid)._item) = z6; z7 = ((_Scanner__cur._token) == 13 ); if (z7) { _Scanner__GetToken (); NILCHECKA (z1 = _p); ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_qid)._module) = ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_qid)._item); z3.elts [0] = 0x00010000; z3.elts [1] = 0; z3.elts [2] = 0; z3.elts [3] = 0; z4 = z3; z6 = _Scanner__MatchID (&(*_fail), &z4); #line 43 NILCHECKA (z1 = _p); ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_qid)._item) = z6; goto if_1_end; }; if_1_end: /**/; z7 = ((_Scanner__cur._token) == 16 ); if (z7) { _Scanner__GetToken (); z8 = _Expr__Parse (&(*_fail)); NILCHECKA (z1 = _p); (((t4_fields*)(z1+(0+t40_size+t61_size)))->_arg) = z8; z3.elts [0] = 0; z3.elts [1] = 0; z3.elts [2] = 0; z3.elts [3] = 0; z4 = z3; _Scanner__Match ( 28 , &(*_fail), &z4); #line 48 goto if_2_end; }; if_2_end: /**/; __result = _p; return __result; } } }; #line 53 "RaiseStmt.m3" PRIVATE t80 _RaiseStmt__Bind (_p) t4 _p; { t4 z2; t8 z3; t15 z4; t38 z5; t15 z1; #line 53 "RaiseStmt.m3" { auto t8 _v; { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Expr__Bind ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); NILCHECKA (z2 = _p); z3 = _Scope__LookUpQID (&(((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid)); _v = z3; z4 = (_v == 0); if (z4) { NILCHECKA (z2 = _p); _Error__QID (&(((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid), ((ADDRESS)(& txt1.str))); goto if_3_end; #line 59 }; z5 = _Value__ClassOf (_v); z1 = (z5 != 3 ); if (z1) { NILCHECKA (z2 = _p); _Error__QID (&(((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid), ((ADDRESS)(& txt2.str))); goto if_3_end; #line 61 }; NILCHECKA (z2 = _p); (((t4_fields*)(z2+(0+t40_size+t61_size)))->_except) = _v; if_3_end: /**/; } } }; #line 67 "RaiseStmt.m3" PRIVATE t80 _RaiseStmt__Check (_p) t4 _p; { t4 z2; t7 z3; t15 z4; t15 z0; t4 z1; t4 z5; t13 z6; #line 67 "RaiseStmt.m3" { auto t7 _t; auto t7 _u; { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); _Expr__TypeCheck ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); NILCHECKA (z2 = _p); z3 = _Expr__TypeOf ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); _t = z3; NILCHECKA (z2 = _p); z3 = _Exceptionz__ArgType ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_except)); _u = z3; z4 = (_u == 0); z0 = 1; if (! z4) { z4 = (_u == _Void__T); z0 = z4; }; if (z0) { NILCHECKA (z1 = _p); z4 = ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_arg) != 0); if (z4) { NILCHECKA (z2 = _p); _Error__QID (&(((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid), ((ADDRESS)(& txt3.str))); #line 76 goto if_5_end; }; if_5_end: /**/; goto if_4_end; }; NILCHECKA (z1 = _p); z4 = ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_arg) == 0); #line 76 if (z4) { NILCHECKA (z2 = _p); _Error__QID (&(((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid), ((ADDRESS)(& txt4.str))); goto if_4_end; #line 79 }; z4 = _Type__IsAssignable (_u, _t); z0 = ! z4; if (z0) { NILCHECKA (z2 = _p); _Error__QID (&(((t4_fields*)(z2+(0+t40_size+t61_size)))->_qid), ((ADDRESS)(& txt5.str))); goto if_4_end; #line 81 }; NILCHECKA (z5 = _p); z6 = _AssignStmt__CheckRHS (_t, (((t4_fields*)(z5+(0+t40_size+t61_size)))->_arg), 0 ); NILCHECKA (z1 = _p); (((t4_fields*)(z1+(0+t40_size+t61_size)))->_arg) = z6; NILCHECKA (z2 = _p); _Expr__Bind ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); NILCHECKA (z2 = _p); _Expr__TypeCheck ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); if_4_end: /**/; } } }; #line 90 "RaiseStmt.m3" PRIVATE t80 _RaiseStmt__Precompile (_p) t4 _p; { #line 90 "RaiseStmt.m3" { { CHECKSTACKOVERFLOW; } } }; #line 94 "RaiseStmt.m3" PRIVATE void _RaiseStmt__Compile (_p, _return) t4 _p; t3* _return; { t4 z2; t2 z3; t4 z1; t15 z4; t15 z0; t4 z5; t7 z6; t1 z7; t1 z8; t3 z9; #line 94 "RaiseStmt.m3" { auto t2 _t1; auto t2 _t2; auto t1 _sz; auto t3 __result; { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _p); z3 = _Value__Load ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_except)); _t1 = z3; NILCHECKA (z1 = _p); z4 = ((((t4_fields*)(z1+(0+t40_size+t61_size)))->_arg) == 0); if (z4) { _Emit__OpT (((ADDRESS)(& txt6.str)), _t1); goto if_6_end; }; NILCHECKA (z2 = _p); z3 = _Expr__Compile ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); _t2 = z3; NILCHECKA (z2 = _p); z4 = _Expr__IsDesignator ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); z0 = ! z4; if (z0) { { { auto t2 _t3; { NILCHECKA (z2 = _p); z3 = _Temp__Alloc ((((t4_fields*)(z2+(0+t40_size+t61_size)))->_arg)); #line 103 _t3 = z3; _Emit__OpTT (((ADDRESS)(& txt7.str)), _t3, _t2); _Temp__Free (_t2); _t2 = _t3; } } }; goto if_7_end; }; if_7_end: /**/; NILCHECKA (z5 = _p); z6 = _Exceptionz__ArgType ((((t4_fields*)(z5+(0+t40_size+t61_size)))->_except)); z7 = _Type__Size (z6); #line 110 _sz = z7; _Emit__OpTT (((ADDRESS)(& txt8.str)), _t1, _t2); z7 = _sz + 8 ; z8 = z7 - 1 ; z7 = IDIV (z8, 8 ); _Emit__OpI (((ADDRESS)(& txt9.str)), z7); _Temp__Free (_t2); if_6_end: /**/; _Temp__Free (_t1); z9.elts [0] = 0; __result = z9; *_return = __result; return; } } }; PRIVATE int init_done = -1; #line 116 "RaiseStmt.m3" PRIVATE void RaiseStmt__initProc (g) int g; { #line 116 "RaiseStmt.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& RaiseStmt__init); INITIALIZE (& AssignStmt__init); INITIALIZE (& Exceptionz__init); #line 116 INITIALIZE (& Target__init); INITIALIZE (& Marker__init); INITIALIZE (& Temp__init); INITIALIZE (& Emit__init); INITIALIZE (& Void__init); #line 116 INITIALIZE (& Scope__init); INITIALIZE (& Type__init); INITIALIZE (& Value__init); INITIALIZE (& String__init); INITIALIZE (& Error__init); #line 116 INITIALIZE (& StmtRep__init); INITIALIZE (& Stmt__init); INITIALIZE (& Scanner__init); INITIALIZE (& Token__init); INITIALIZE (& Expr__init); #line 116 return; }; #line 116 "RaiseStmt.m3" PRIVATE void t4_InitProc (obj) char* obj; { register t4_fields* p; #line 116 "RaiseStmt.m3" CHECKSTACKOVERFLOW; p = (t4_fields*) (obj + TC10->datasize); }; #line 116 "RaiseStmt.m3" PRIVATE void t4_SetupProc () { register int* p; #line 116 "RaiseStmt.m3" t4_TC.datasize += TC10->datasize; t4_TC.methodsize += TC10->methodsize; p = (int*) UALLOC (t4_TC.methodsize); COPY (TC10->defaultMethods, p, (TC10->methodsize)); #line 116 p[0] = (int)(& t4_TC); p[1] = 0; ((t40_methods*) (((char*)p) + TC61->methodsize))->_bind = _RaiseStmt__Bind; ((t40_methods*) (((char*)p) + TC61->methodsize))->_check = _RaiseStmt__Check; #line 116 ((t40_methods*) (((char*)p) + TC61->methodsize))->_precompile = _RaiseStmt__Precompile; ((t40_methods*) (((char*)p) + TC61->methodsize))->_compile = _RaiseStmt__Compile; #line 116 t4_TC.defaultMethods = (char*) p; }; #line 116 "RaiseStmt.m3" PRIVATE void t4_PrintProc (obj) char *obj; { t4_fields* o; #line 116 "RaiseStmt.m3" CHECKSTACKOVERFLOW; if (TC10->printProc != 0) {TC10->printProc (obj); } fprintf (stderr, "{%s} ", TC4->brand); o = (t4_fields*) (obj + TC10->datasize); #line 116 fprintf (stderr, "qid = { "); fprintf (stderr, "module = %#x", o->_qid._module); fprintf (stderr, "item = %#x", o->_qid._item); #line 116 fprintf (stderr, "}"); fprintf (stderr, ", "); fprintf (stderr, "except = %#x", o->_except); fprintf (stderr, ", "); fprintf (stderr, "arg = %#x", o->_arg); #line 116 fprintf (stderr, ", "); }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, RaiseStmt__initProc}; static char* VSimports[] = { &VS_AssignStmt__CheckRHS__9aaea40f392f387e, &VS_Exceptionz__ArgType__3188a9b832af1842, &VS_Target__CHARSIZE__bfc83af22ccab4e4, &VS_Marker__Prefix__819dde3f21a97326, &VS_Temp__T__3a6c7dc12615e4ee, &VS_Temp__Alloc__0b946c9d3ec0974e, &VS_Temp__Free__3b952a2225c26846, &VS_Emit__MaxStream__cf0a0e8934c9c9f3, &VS_Emit__Format__bc4a2b083b93bbd7, &VS_Emit__OpI__02cb878634bb9f49, &VS_Emit__OpT__764bdffe21d249e8, &VS_Emit__OpTT__cba0ce912431e01c, &VS_Void__T__d44caf853dc63223, &VS_Scope__T__3a6c7dc12615e4ee, &VS_Scope__ValueList__64bf053e22e4e53c, &VS_Scope__LookUpQID__725ce38220cfad93, &VS_Type__T__2446b70b3f7780a5, &VS_Type__Map__41dd9f4b33104fce, &VS_Type__List__5791758e343becc1, &VS_Type__Size__2f4d980e28adf05b, &VS_Type__IsAssignable__6d0a7b0e2c806002, &VS_Value__T__2446b70b3f7780a5, &VS_Value__Load__d08505ae2a4de8ff, &VS_Value__ClassOf__9c68d87829345fcf, &VS_String__T__3a6c7dc12615e4ee, &VS_Error__QID__84a7ccd932b81b86, &VS_StmtRep__Init__fe14377c36e397de, &VS_Stmt__T__2446b70b3f7780a5, &VS_Scanner__cur__929fa6f8367ea415, &VS_Scanner__Match__aaf5b32f2f19a6d8, &VS_Scanner__MatchID__4fb3c66f3429afd9, &VS_Scanner__GetToken__192100a32c7e576d, &VS_Token__DeclStart__730c82bc2c2001b8, &VS_Token__TypeStart__f71616cb38a20d02, &VS_Token__ExprStart__21dc8a0a27344836, &VS_Expr__T__2446b70b3f7780a5, &VS_Expr__List__3f87eceb2b9a246a, &VS_Expr__Parse__193c41662e6da77f, &VS_Expr__Bind__7e2752da3eaf56eb, &VS_Expr__TypeOf__fef0a11b388c64fa, &VS_Expr__IsDesignator__e3556614321cb906, &VS_Expr__TypeCheck__af9aa9073729e7f7, &VS_Expr__Compile__a7e0cc4029a2ec76, NIL }; void RaiseStmt__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = RaiseStmt__init; RaiseStmt__init = & me_0; t4_TC = t4_TC_init; REGISTERTYPE (TC4); break; }; case 1: { t4_TC.parent = TC_M3__Stmt; break; }; case 2: { break; }; }; };