#include "M3Runtime.h" typedef struct { int tc; char* str; int len; } TXT; PRIVATE TXT txt1 = { 3, "This shouldn\047t happen", 22}; #line 38 "TextWr.m3" #define t6 ADDRESS #define t36 void typedef unsigned char t7; #line 116 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef struct { char* elts; int size[1]; } t23; #line 38 "TextWr.m3" #define t8 t23 PRIVATE void t6_PrintProc (); #line 38 PRIVATE typecell t6_TC; PRIVATE typecell t6_TC_init = {0, 0, 0, 0, 0, (PROC)NIL, -2, 0, NIL, 1, 1, (PROC)NIL, (PROC)NIL, t6_PrintProc, #line 38 "", 991118862, 833218118}; PRIVATE TYPE TC6 = &t6_TC; #define t25 ADDRESS #define TC25 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t38 ADDRESS typedef int t14; #define TC38 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t39 ADDRESS #define TC39 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #define t1 ADDRESS #define TC1 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t1_MapProc TC_TEXT->mapProc #define t22 ADDRESS typedef struct { TYPE self; int private; } t22_methods; #define t22_msize (sizeof (t22_methods)) typedef struct { ADDRESS methods; } t22_fields; #define t22_size (sizeof (t22_fields)) #define TC22 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t22_MapProc TC_ROOT->mapProc #define t11 ADDRESS #define TC11 TC_Wr__T IMPORT TYPE TC_Wr__T; #line 90 ".ROOT/.boots/corelib/Interfaces/Wr.i3" IMPORT char VS_Wr__T__2555b70b3f7780b1; #define t11_MapProc TC_Wr__T->mapProc #define t2 ADDRESS #define TC2 TC_TextWr__T IMPORT TYPE TC_TextWr__T; #line 23 "./TextWr.i3" IMPORT char VS_TextWr__T__aa7fbe4a3afd8be5; #define t2_MapProc TC_TextWr__T->mapProc typedef t1 (*t3)(); #line 61 "TextWr.m3" typedef t36 (*t4)(); typedef int t5; #line 30 typedef t2 (*t9)(); #line 18 #define t10 ADDRESS #line 18 typedef struct { int filler; } t10_methods; #define t10_msize (sizeof (t10_methods)) typedef struct { #line 18 t1 _text; } t10_fields; #define t10_size (sizeof (t10_fields)) PRIVATE void t10_InitProc (); #line 18 PRIVATE void t10_SetupProc (); PRIVATE void t10_PrintProc (); PRIVATE void t10_MapProc (); PRIVATE typecell t10_TC; PRIVATE typecell t10_TC_init = {0, 0, 0, 0, 0, t10_MapProc, #line 18 t10_size, t10_msize, NIL, 0, 0, t10_InitProc, t10_SetupProc, t10_PrintProc, "TextWr#$%^_0002", 1632083400, 545117649}; PRIVATE TYPE TC10 = &t10_TC; #line 18 #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef signed_char t12; typedef t12 (*t13)(); #line 63 typedef t14 (*t15)(); typedef unsigned char t16; #line 55 typedef t16 (*t17)(); #line 26 typedef t5 (*t18)(); #line 23 typedef t7 (*t19)(); #line 79 ".ROOT/.boots/corelib/Interfaces/WrClass.i3" #define t20 ADDRESS #line 76 #define t21 ADDRESS #define TC21 TC_WrClass__Private IMPORT TYPE TC_WrClass__Private; #line 76 IMPORT char VS_WrClass__Private__5594af883f1b8361; #define t21_MapProc TC_WrClass__Private->mapProc typedef struct { t4 _seek; t18 _length; t4 _flush; t4 _close; } t20_methods; #define t20_msize (sizeof (t20_methods)) typedef struct { #line 79 t6 _buff; t5 _st; t5 _lo; t5 _hi; t5 _cur; t16 _closed; t16 _seekable; t16 _buffered; } t20_fields; #define t20_size (sizeof (t20_fields)) #define TC20 TC_Wr__T #define t20_MapProc TC_Wr__T->mapProc typedef unsigned char t24; #line 15 ".ROOT/.boots/corelib/Interfaces/Thread.i3" #define t26 ADDRESS #define TC26 TC_Thread__T IMPORT TYPE TC_Thread__T; #line 15 IMPORT char VS_Thread__T__2555b70b3f7780b1; #define t26_MapProc TC_Thread__T->mapProc typedef t25 (*t27)(); #define t28 ADDRESS #define TC28 TC_Thread__Condition IMPORT TYPE TC_Thread__Condition; #line 21 IMPORT char VS_Thread__Condition__26d5968239e08f4e; #define t28_MapProc TC_Thread__Condition->mapProc #define t29 ADDRESS #define TC29 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t29_MapProc TC_MUTEX->mapProc typedef t26 (*t30)(); #line 23 #define t31 ADDRESS #line 23 typedef struct { t27 _apply; } t31_methods; #define t31_msize (sizeof (t31_methods)) typedef struct { #line 23 int filler; } t31_fields; #define t31_size (sizeof (t31_fields)) #define TC31 TC_Thread__Closure IMPORT TYPE TC_Thread__Closure; #line 23 IMPORT char VS_Thread__Closure__7fb5c6232c5a658a; #define t31_MapProc TC_Thread__Closure->mapProc typedef t28 (*t32)(); typedef t29 (*t33)(); #line 28 #define t34 ADDRESS #line 28 typedef struct { int filler; } t34_methods; #define t34_msize (sizeof (t34_methods)) typedef struct { #line 28 t5 _stackSize; } t34_fields; #define t34_size (sizeof (t34_fields)) #define TC34 TC_Thread__SizedClosure IMPORT TYPE TC_Thread__SizedClosure; #line 28 IMPORT char VS_Thread__SizedClosure__8a46717d2eae7b07; #define t34_MapProc TC_Thread__SizedClosure->mapProc typedef CLOSURE t35; #define t37 ADDRESS typedef struct { TYPE self; int private; } t37_methods; #define t37_msize (sizeof (t37_methods)) typedef struct { ADDRESS methods; } t37_fields; #define t37_size (sizeof (t37_fields)) #define TC37 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; typedef double t40; typedef float t41; #line 13 "TextWr.m3" IMPORT INITLINK* Wr__init; IMPORT INITLINK* Text__init; IMPORT INITLINK* WrClass__init; IMPORT INITLINK* TextWr__init; IMPORT EXCEPTION_NAME _Thread__Alerted; #line 13 IMPORT char VS_Thread__Alerted__fc88feb43485af46; IMPORT EXCEPTION_NAME _Wr__Failure; IMPORT char VS_Wr__Failure__5f82cfb43dabf527; #line 13 IMPORT EXCEPTION_NAME _Wr__Error; IMPORT char VS_Wr__Error__c367253d3ed4fd15; IMPORT TYPE TC_Text__T; IMPORT char VS_Text__T__fc4b369f3ab271fd; #line 13 IMPORT t1 _Text__FromChars (); IMPORT char VS_Text__FromChars__4adb855d24ac83e3; IMPORT t36 _WrClass__Lock (); IMPORT char VS_WrClass__Lock__c7e43d8d3affa311; #line 13 IMPORT t36 _WrClass__Unlock (); IMPORT char VS_WrClass__Unlock__30e083913e7a52e9; IMPORT t5 _WrClass__LengthDefault (); IMPORT char VS_WrClass__LengthDefault__f78fa4a22d1f7f55; #line 13 IMPORT t36 _WrClass__CloseDefault (); IMPORT char VS_WrClass__CloseDefault__d8c30bfe280fb390; IMPORT t36 _WrClass__FlushDefault (); #line 13 IMPORT char VS_WrClass__FlushDefault__0f59e35131773891; EXPORT t2 _TextWr__New (); EXPORT char VS_TextWr__New__b2aced2f341cea58 = '\0'; #line 13 EXPORT t1 _TextWr__ToText (); EXPORT char VS_TextWr__ToText__07606fcd3a0c5476 = '\0'; PRIVATE t36 _TextWr__Seek (); PRIVATE t36 _TextWr__Close (); #line 13 EXPORT char VS_TextWr__T__0df0fafa219a746f = '\0'; IMPORT char VS_Wr__T__85e526fe26f23155; #line 32 PRIVATE EXCEPTION_NAME *raises_13 [] = { & _Wr__Failure, (EXCEPTION_NAME *) NULL}; #line 30 "TextWr.m3" EXPORT t2 _TextWr__New () { t2 z0; t6 z1; t4 z2; #line 30 "TextWr.m3" { auto t2 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; { register char** ptr = (char**) TNEWOBJ (TC2); ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_st = 0 ; ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_lo = 0 ; #line 32 ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_cur = 0 ; ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_hi = 500 ; #line 32 { register t23* ptr; int sz[1]; sz[0] = 500 ; ptr = (t23*) TNEWA(TC6, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 32 ptr->size[0] = sz[0]; z1 = (t6) ptr; }; ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_buff = z1; ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_closed = 0 ; #line 32 ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_seekable = 0 ; ((t20_fields*)((char*)ptr + (TC21->datasize + 0)))->_buffered = 1 ; #line 32 z2 = _TextWr__Seek; if (IS_CLOSURE (z2)) NARROWFAULT; CLONE_METHOD_SUITE (ptr, TC2); ((t20_methods*)((*ptr) + (TC21->methodsize + 0)))->_seek = z2; #line 32 z2 = _TextWr__Close; if (IS_CLOSURE (z2)) NARROWFAULT; ((t20_methods*)((*ptr) + (TC21->methodsize + 0)))->_close = z2; #line 32 ((t10_fields*)((char*)ptr + (TC21->datasize + 0+t20_size)))->_text = NULLTEXT; z0 = (t2) ptr; }; __result = z0; return __result; #line 32 } } }; #line 48 "TextWr.m3" PRIVATE t36 _TextWr__Seek (_wr, _n) t2 _wr; t5 _n; { t2 z1; t2 z0; t16 z3; t1 z2; t6 z4; t14 z6; t14 z8; t14 z5; t23 z7; t14 z9; t1 z10; t5 z11; #line 48 "TextWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_13, proc_0); { { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; z3 = ((((t20_fields*)(z0+(0)))->_cur) != _n); if (z3) { z2 = ((ADDRESS)(& txt1.str)); RAISE (& _Wr__Failure, & z2, 4); }; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; z3 = ((((t20_fields*)(z0+(0)))->_cur) != (((t20_fields*)(z0+(0)))->_lo)); #line 53 if (z3) { NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; NILCHECKB (z4 = (((t20_fields*)(z0+(0)))->_buff)); z6 = 0 ; #line 54 if (z6 < 0) RANGEFAULT; z8 = (((t20_fields*)(z0+(0)))->_cur) - (((t20_fields*)(z0+(0)))->_lo); z5 = z8; if (z5 < 0) RANGEFAULT; #line 54 { register t23* array = & (*((t8*) z4)); z8 = z6; z9 = z5; if ((z8+z9) > array->size[0]) RANGEFAULT; z7.size[0] = z9; #line 54 z7.elts = array->elts + (z8 * 1); }; z10 = _Text__FromChars (&z7); z2 = (ADDRESS) _Text__Cat ((((t10_fields*)(z0+(0+t20_size)))->_text), z10); #line 54 NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; (((t10_fields*)(z0+(0+t20_size)))->_text) = z2; goto if_2_end; #line 54 }; if_2_end: /**/; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; (((t20_fields*)(z0+(0)))->_lo) = (((t20_fields*)(z0+(0)))->_cur); NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; NILCHECKB (z4 = (((t20_fields*)(z0+(0)))->_buff)); z11 = (*((t8*) z4)).size[0]; #line 57 z5 = (((t20_fields*)(z0+(0)))->_lo) + z11; z6 = z5; if (z6 < 0) RANGEFAULT; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; #line 57 (((t20_fields*)(z0+(0)))->_hi) = z6; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 57 }; }; #line 61 "TextWr.m3" PRIVATE t36 _TextWr__Close (_wr) t2 _wr; { t2 z2; t2 z1; #line 61 "TextWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_1, proc_0); { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC21->datasize; (((t20_fields*)(z1+(0)))->_buff) = (t6) 0; NILCHECKA (z2 = _wr); #line 62 z1 = (char*)z2 + TC21->datasize; (((t10_fields*)(z1+(0+t20_size)))->_text) = (t1) 0; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 62 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 65 "TextWr.m3" EXPORT t1 _TextWr__ToText (_wr) t2 _wr; { t2 z1; t2 z0; t4 z2; t2 z3; t5 z4; t6 z5; #line 65 "TextWr.m3" { auto t1 _result; auto t1 __result; { ZERO1 (& _result); #line 65 ZERO1 (& __result); CHECKSTACKOVERFLOW; _WrClass__Lock (_wr); { HANDLER hfinally_0; PUSH_FINALLY (hfinally_0, finally_0); #line 71 NILCHECKA (z1 = _wr); z0 = (*(char**)z1) + TC21->methodsize; z2 = ((t20_methods*) (z0+(0)))->_seek; z0 = (char*)z1 + TC21->datasize; #line 71 z2 (z1, (((t20_fields*)(z0+(0)))->_cur)); NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; _result = (((t10_fields*)(z0+(0+t20_size)))->_text); NILCHECKA (z3 = _wr); z1 = (char*)z3 + TC21->datasize; (((t10_fields*)(z1+(0+t20_size)))->_text) = NULLTEXT; NILCHECKA (z3 = _wr); z1 = (char*)z3 + TC21->datasize; (((t20_fields*)(z1+(0)))->_cur) = 0 ; NILCHECKA (z3 = _wr); z1 = (char*)z3 + TC21->datasize; (((t20_fields*)(z1+(0)))->_lo) = 0 ; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; NILCHECKB (z5 = (((t20_fields*)(z0+(0)))->_buff)); z4 = (*((t8*) z5)).size[0]; #line 76 NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC21->datasize; (((t20_fields*)(z0+(0)))->_hi) = z4; finally_0: CUT_TO_NEXT_HANDLER (hfinally_0); _WrClass__Unlock (_wr); if (hfinally_0.exception != FALL_EXCEPTION) { RAISE_FOR_SURE (hfinally_0.exception); }; }; __result = _result; return __result; } } }; PRIVATE int init_done = -1; #line 80 "TextWr.m3" PRIVATE void TextWr__initProc (g) int g; { #line 80 "TextWr.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& TextWr__init); INITIALIZE (& Wr__init); INITIALIZE (& Text__init); #line 80 INITIALIZE (& WrClass__init); return; }; #line 80 "TextWr.m3" PRIVATE void t6_PrintProc (ref) t8* ref; { CHECKSTACKOVERFLOW; fprintf (stderr, "%s {", TC6->brand); fprintf (stderr, "^ = array"); #line 80 fprintf (stderr, "}\n"); }; #line 80 "TextWr.m3" PRIVATE void t10_InitProc (obj) char* obj; { register t10_fields* p; #line 80 "TextWr.m3" CHECKSTACKOVERFLOW; p = (t10_fields*) (obj + TC11->datasize); }; #line 80 "TextWr.m3" PRIVATE void t10_SetupProc () { register int* p; #line 80 "TextWr.m3" t10_TC.datasize += TC11->datasize; t10_TC.methodsize += TC11->methodsize; p = (int*) UALLOC (t10_TC.methodsize); COPY (TC11->defaultMethods, p, (TC11->methodsize)); #line 80 p[0] = (int)(& t10_TC); p[1] = 0; t10_TC.defaultMethods = (char*) p; }; #line 80 "TextWr.m3" PRIVATE void t10_PrintProc (obj) char *obj; { t10_fields* o; #line 80 "TextWr.m3" CHECKSTACKOVERFLOW; if (TC11->printProc != 0) {TC11->printProc (obj); } fprintf (stderr, "{%s} ", TC10->brand); o = (t10_fields*) (obj + TC11->datasize); #line 80 fprintf (stderr, "text = %#x", o->_text); }; PRIVATE void t10_MapProc (p, r, c) void (*p) (); char* r; ADDRESS c; { register t10_fields* o; #line 80 CHECKSTACKOVERFLOW; t11_MapProc (p, r, c); o = (t10_fields*) (r + TC11->datasize); p (& (o->_text), r, c); }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, TextWr__initProc}; static char* VSimports[] = { &VS_Thread__Alerted__fc88feb43485af46, &VS_Wr__T__2555b70b3f7780b1, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Wr__Error__c367253d3ed4fd15, &VS_Text__T__fc4b369f3ab271fd, &VS_Text__FromChars__4adb855d24ac83e3, &VS_Wr__Error__c367253d3ed4fd15, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Thread__Alerted__fc88feb43485af46, &VS_WrClass__Private__5594af883f1b8361, &VS_WrClass__Lock__c7e43d8d3affa311, &VS_WrClass__Unlock__30e083913e7a52e9, &VS_WrClass__LengthDefault__f78fa4a22d1f7f55, &VS_WrClass__CloseDefault__d8c30bfe280fb390, &VS_WrClass__FlushDefault__0f59e35131773891, &VS_TextWr__T__aa7fbe4a3afd8be5, &VS_Wr__Failure__5f82cfb43dabf527, NIL }; void TextWr__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = TextWr__init; TextWr__init = & me_0; t6_TC = t6_TC_init; REGISTERTYPE (TC6); t10_TC = t10_TC_init; REGISTERTYPE (TC10); break; }; case 1: { t10_TC.parent = TC_Wr__T; #line 18 "TextWr.m3" IDENTIFYTYPES (TC2, TC10); break; }; case 2: { break; }; }; };