#include "M3Runtime.h" typedef struct { int tc; char* str; int len; } TXT; PRIVATE TXT txt1 = { 3, "TRUE", 5}; PRIVATE TXT txt2 = { 3, "FALSE", 6}; #line 84 "Scan.m3" #define t4 ADDRESS #define t24 void typedef unsigned char t1; #line 37 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef struct { char* elts; int size[1]; } t16; #line 84 "Scan.m3" #define t5 t16 PRIVATE void t4_PrintProc (); #line 84 PRIVATE typecell t4_TC; PRIVATE typecell t4_TC_init = {0, 0, 0, 0, 0, (PROC)NIL, -2, 0, NIL, 1, 1, (PROC)NIL, (PROC)NIL, t4_PrintProc, #line 84 "", 1336334074, 816400397}; PRIVATE TYPE TC4 = &t4_TC; #define t28 ADDRESS #define TC28 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t29 ADDRESS typedef int t6; #define TC29 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #define t30 ADDRESS #define TC30 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #define t2 ADDRESS #define TC2 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t2_MapProc TC_TEXT->mapProc typedef t1 (*t3)(); typedef double t7; #line 77 typedef t7 (*t8)(); typedef float t9; #line 58 typedef t9 (*t10)(); #line 40 typedef t6 (*t11)(); typedef unsigned char t12; #line 12 typedef t12 (*t13)(); #line 19 ".ROOT/.boots/corelib/Interfaces/Convert.i3" typedef signed_char t14; typedef unsigned char t15; #line 67 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef signed_char t17; typedef t17 (*t18)(); #line 52 typedef t2 (*t19)(); #line 49 typedef t24 (*t20)(); typedef int t21; #line 26 typedef t21 (*t22)(); typedef CLOSURE t23; #define t27 ADDRESS typedef struct { TYPE self; int private; } t27_methods; #define t27_msize (sizeof (t27_methods)) typedef struct { ADDRESS methods; } t27_fields; #define t27_size (sizeof (t27_fields)) #define TC27 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t27_MapProc TC_ROOT->mapProc #define t25 ADDRESS #define TC25 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t25_MapProc TC_MUTEX->mapProc #define t26 ADDRESS typedef struct { TYPE self; int private; } t26_methods; #define t26_msize (sizeof (t26_methods)) typedef struct { ADDRESS methods; } t26_fields; #define t26_size (sizeof (t26_fields)) #define TC26 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; #line 8 "Scan.m3" IMPORT INITLINK* Convert__init; IMPORT INITLINK* Word__init; IMPORT INITLINK* Text__init; IMPORT INITLINK* Scan__init; IMPORT EXCEPTION_NAME _Convert__Failed; #line 8 IMPORT char VS_Convert__Failed__2816e40d3f5c20d1; IMPORT t6 _Convert__ToInt (); IMPORT char VS_Convert__ToInt__0308a0ac308d5373; #line 8 IMPORT t6 _Convert__ToUnsigned (); IMPORT char VS_Convert__ToUnsigned__e3e78ac723cc3b63; IMPORT t9 _Convert__ToFloat (); IMPORT char VS_Convert__ToFloat__4e28ff0029a13ad9; #line 8 IMPORT t7 _Convert__ToLongFloat (); IMPORT char VS_Convert__ToLongFloat__bbb3a4a8226c11b1; IMPORT TYPE TC_Text__T; IMPORT char VS_Text__T__fc4b369f3ab271fd; #line 8 IMPORT t12 _Text__Equal (); IMPORT char VS_Text__Equal__f19b6e6f34d36826; IMPORT t1 _Text__GetChar (); IMPORT char VS_Text__GetChar__0f4bd6e72493f4ff; #line 8 IMPORT t21 _Text__Length (); IMPORT char VS_Text__Length__661a58173d76f41c; IMPORT t24 _Text__PutStr (); IMPORT char VS_Text__PutStr__d073d76a395ab9cd; #line 8 IMPORT EXCEPTION_NAME _Scan__BadFormat; IMPORT char VS_Scan__BadFormat__da88aaec2fb97846; EXPORT t12 _Scan__Bool (); EXPORT char VS_Scan__Bool__53c5db943265766b = '\0'; #line 8 EXPORT t6 _Scan__Int (); EXPORT char VS_Scan__Int__b77b6e86262d56f2 = '\0'; EXPORT t6 _Scan__Unsigned (); EXPORT char VS_Scan__Unsigned__2c083d423f589e92 = '\0'; #line 8 EXPORT t9 _Scan__Real (); EXPORT char VS_Scan__Real__d631b36524bd9453 = '\0'; EXPORT t7 _Scan__LongReal (); EXPORT char VS_Scan__LongReal__aff8a1e33220e8f3 = '\0'; #line 8 EXPORT t1 _Scan__Char (); EXPORT char VS_Scan__Char__9961e9d121519c16 = '\0'; PRIVATE EXCEPTION_NAME *raises_2 [] = { #line 8 & _Scan__BadFormat, (EXCEPTION_NAME *) NULL}; #line 37 PRIVATE EXCEPTION_NAME *raises_3 [] = { & _Scan__BadFormat, (EXCEPTION_NAME *) NULL}; #line 55 PRIVATE EXCEPTION_NAME *raises_4 [] = { & _Scan__BadFormat, (EXCEPTION_NAME *) NULL}; #line 73 PRIVATE EXCEPTION_NAME *raises_5 [] = { & _Scan__BadFormat, (EXCEPTION_NAME *) NULL}; #line 92 PRIVATE EXCEPTION_NAME *raises_6 [] = { & _Scan__BadFormat, (EXCEPTION_NAME *) NULL}; #line 12 "Scan.m3" EXPORT t12 _Scan__Bool (_t) t2 _t; { t12 z3; #line 12 "Scan.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_2, proc_0); { auto t12 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z3 = _Text__Equal (_t, ((ADDRESS)(& txt1.str))); if (z3) { __result = 1 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; }; z3 = _Text__Equal (_t, ((ADDRESS)(& txt2.str))); #line 15 if (z3) { __result = 0 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; }; RAISE (& _Scan__BadFormat, 0, 0); } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 22 "Scan.m3" EXPORT t6 _Scan__Int (_t) t2 _t; { t4 z0; t21 z3; t4 z2; t6 z5; t12 z4; #line 22 "Scan.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_3, proc_0); { auto t4 _x; auto t6 _value; auto t6 _used; auto t6 __result; #line 22 { CHECKSTACKOVERFLOW; { register t16* ptr; int sz[1]; z3 = _Text__Length (_t); sz[0] = z3; ptr = (t16*) UNEWA(TC4, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 29 ptr->size[0] = sz[0]; z0 = (t4) ptr; }; _x = z0; NILCHECKB (z2 = _x); _Text__PutStr (&(*((t5*) z2)), _t); NILCHECKB (z2 = _x); z5 = _Convert__ToInt (&(*((t5*) z2)), &_used, 10 ); _value = z5; z4 = (_used == 0 ); if (z4) { UVDISPOSE(& _x); RAISE (& _Scan__BadFormat, 0, 0); }; UVDISPOSE(& _x); __result = _value; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 37 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 40 "Scan.m3" EXPORT t6 _Scan__Unsigned (_t) t2 _t; { t4 z0; t21 z3; t4 z2; t6 z5; t12 z4; #line 40 "Scan.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_3, proc_0); { auto t4 _x; auto t6 _value; auto t6 _used; auto t6 __result; #line 40 { CHECKSTACKOVERFLOW; { register t16* ptr; int sz[1]; z3 = _Text__Length (_t); sz[0] = z3; ptr = (t16*) UNEWA(TC4, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 47 ptr->size[0] = sz[0]; z0 = (t4) ptr; }; _x = z0; NILCHECKB (z2 = _x); _Text__PutStr (&(*((t5*) z2)), _t); NILCHECKB (z2 = _x); z5 = _Convert__ToUnsigned (&(*((t5*) z2)), &_used, 10 ); _value = z5; z4 = (_used == 0 ); if (z4) { UVDISPOSE(& _x); RAISE (& _Scan__BadFormat, 0, 0); }; UVDISPOSE(& _x); __result = _value; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 55 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 58 "Scan.m3" EXPORT t9 _Scan__Real (_t) t2 _t; { t4 z0; t21 z3; t4 z2; t9 z4; t12 z5; #line 58 "Scan.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_4, proc_0); { auto t4 _x; auto t9 _value; auto t6 _used; auto t9 __result; #line 58 { ZERO1 (& _value); #line 58 ZERO1 (& __result); CHECKSTACKOVERFLOW; { register t16* ptr; int sz[1]; z3 = _Text__Length (_t); sz[0] = z3; ptr = (t16*) UNEWA(TC4, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 65 ptr->size[0] = sz[0]; z0 = (t4) ptr; }; _x = z0; NILCHECKB (z2 = _x); _Text__PutStr (&(*((t5*) z2)), _t); NILCHECKB (z2 = _x); z4 = _Convert__ToFloat (&(*((t5*) z2)), &_used); _value = z4; z5 = (_used == 0 ); if (z5) { UVDISPOSE(& _x); RAISE (& _Scan__BadFormat, 0, 0); }; UVDISPOSE(& _x); __result = _value; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 73 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 77 "Scan.m3" EXPORT t7 _Scan__LongReal (_t) t2 _t; { t4 z0; t21 z3; t4 z2; t7 z4; t12 z5; #line 77 "Scan.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_5, proc_0); { auto t4 _x; auto t7 _value; auto t6 _used; auto t7 __result; #line 77 { ZERO2 (& _value); #line 77 ZERO2 (& __result); CHECKSTACKOVERFLOW; { register t16* ptr; int sz[1]; z3 = _Text__Length (_t); sz[0] = z3; ptr = (t16*) UNEWA(TC4, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 84 ptr->size[0] = sz[0]; z0 = (t4) ptr; }; _x = z0; NILCHECKB (z2 = _x); _Text__PutStr (&(*((t5*) z2)), _t); NILCHECKB (z2 = _x); z4 = _Convert__ToLongFloat (&(*((t5*) z2)), &_used); _value = z4; z5 = (_used == 0 ); if (z5) { UVDISPOSE(& _x); RAISE (& _Scan__BadFormat, 0, 0); }; UVDISPOSE(& _x); __result = _value; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 92 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 96 "Scan.m3" EXPORT t1 _Scan__Char (_t) t2 _t; { t21 z2; t12 z1; t1 z3; #line 96 "Scan.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_6, proc_0); { auto t1 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; z2 = _Text__Length (_t); z1 = (z2 == 0 ); if (z1) { RAISE (& _Scan__BadFormat, 0, 0); }; z3 = _Text__GetChar (_t, 0 ); __result = z3; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 101 }; }; PRIVATE int init_done = -1; #line 101 "Scan.m3" PRIVATE void Scan__initProc (g) int g; { #line 101 "Scan.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& Scan__init); INITIALIZE (& Convert__init); INITIALIZE (& Word__init); #line 101 INITIALIZE (& Text__init); return; }; #line 101 "Scan.m3" PRIVATE void t4_PrintProc (ref) t5* ref; { CHECKSTACKOVERFLOW; fprintf (stderr, "%s {", TC4->brand); fprintf (stderr, "^ = array"); #line 101 fprintf (stderr, "}\n"); }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, Scan__initProc}; static char* VSimports[] = { &VS_Convert__Failed__2816e40d3f5c20d1, &VS_Convert__ToInt__0308a0ac308d5373, &VS_Convert__ToUnsigned__e3e78ac723cc3b63, &VS_Convert__ToFloat__4e28ff0029a13ad9, &VS_Convert__ToLongFloat__bbb3a4a8226c11b1, &VS_Text__T__fc4b369f3ab271fd, &VS_Text__Equal__f19b6e6f34d36826, &VS_Text__GetChar__0f4bd6e72493f4ff, &VS_Text__Length__661a58173d76f41c, &VS_Text__PutStr__d073d76a395ab9cd, &VS_Scan__BadFormat__da88aaec2fb97846, NIL }; void Scan__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = Scan__init; Scan__init = & me_0; t4_TC = t4_TC_init; REGISTERTYPE (TC4); break; }; case 1: { break; }; case 2: { break; }; }; };