/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -c Fraction.st -o ../stage2/Fraction.o.c */ #include static struct __libid *_libid= 0; #ifdef ID_DEBUG # define _enter(info) void *__id_debug= _libid->enter(info) # define _line(lno) _libid->line(lno) # define _leave() _libid->leave(__id_debug) # define _backtrace() _libid->backtrace() #else # define _enter(info) (void)info # define _line(lno) # define _leave() # define _backtrace() "(no debugging information)\n" #endif #define _return _leave(); return #define _sendv(MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (RCV) }; \ ((_imp_t)(_libid->bindv(&_s)))(&_s, _s.receiver, _s.receiver, ##ARG); \ }) #define _superv(TYP, MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (TYP) }; \ _imp_t _imp= _libid->bindv(&_s); \ _s.receiver= (RCV); \ _imp(&_s, _s.receiver, _s.receiver, ##ARG); \ }) static oop s_hash= 0; static oop s_asFloat= 0; static oop s_isFraction= 0; static oop s_asFraction= 0; static oop s_value_5f_= 0; static oop s_isNumber= 0; static oop s__5fimport_= 0; static oop s_bitXor_= 0; static oop s_ifFalse_= 0; static oop s_quo_= 0; static oop s_negated= 0; static oop s_print= 0; static oop s_put= 0; static oop s_reciprocal= 0; static oop s__2d= 0; static oop s_ifTrue_= 0; static oop s__2b= 0; static oop s__2f_2f= 0; static oop s__2f= 0; static oop s_gcd_= 0; static oop s_abs= 0; static oop s_nextPut_= 0; static oop s__3d= 0; static oop s_numerator= 0; static oop s_numerator_denominator_= 0; static oop s_denominator= 0; static oop s_ifTrue_ifFalse_= 0; static oop s_new= 0; static oop s_errorDivisionByZero= 0; static oop s__3c= 0; static oop s__2a= 0; static oop s_adaptToFraction_andSend_= 0; static oop s_size_5f_value_5f_= 0; static oop s_and_= 0; static oop s_truncated= 0; static oop s_adaptToInteger_andSend_= 0; static oop s_perform_with_= 0; static oop s_digitLength= 0; static oop s_bitShift_= 0; static oop s_timesTwoPower_= 0; static oop s_reduced= 0; static oop s_raisedToInteger_= 0; static oop s_squared= 0; static oop s_printOn_= 0; static oop s_error_= 0; static oop s_asInteger= 0; static oop s_max_= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "hash", &s_hash }, { "asFloat", &s_asFloat }, { "isFraction", &s_isFraction }, { "asFraction", &s_asFraction }, { "value_:", &s_value_5f_ }, { "isNumber", &s_isNumber }, { "_import:", &s__5fimport_ }, { "bitXor:", &s_bitXor_ }, { "ifFalse:", &s_ifFalse_ }, { "quo:", &s_quo_ }, { "negated", &s_negated }, { "print", &s_print }, { "put", &s_put }, { "reciprocal", &s_reciprocal }, { "-", &s__2d }, { "ifTrue:", &s_ifTrue_ }, { "+", &s__2b }, { "//", &s__2f_2f }, { "/", &s__2f }, { "gcd:", &s_gcd_ }, { "abs", &s_abs }, { "nextPut:", &s_nextPut_ }, { "=", &s__3d }, { "numerator", &s_numerator }, { "numerator:denominator:", &s_numerator_denominator_ }, { "denominator", &s_denominator }, { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ }, { "new", &s_new }, { "errorDivisionByZero", &s_errorDivisionByZero }, { "<", &s__3c }, { "*", &s__2a }, { "adaptToFraction:andSend:", &s_adaptToFraction_andSend_ }, { "size_:value_:", &s_size_5f_value_5f_ }, { "and:", &s_and_ }, { "truncated", &s_truncated }, { "adaptToInteger:andSend:", &s_adaptToInteger_andSend_ }, { "perform:with:", &s_perform_with_ }, { "digitLength", &s_digitLength }, { "bitShift:", &s_bitShift_ }, { "timesTwoPower:", &s_timesTwoPower_ }, { "reduced", &s_reduced }, { "raisedToInteger:", &s_raisedToInteger_ }, { "squared", &s_squared }, { "printOn:", &s_printOn_ }, { "error:", &s_error_ }, { "asInteger", &s_asInteger }, { "max:", &s_max_ }, { 0, 0 } }; struct t__object { struct _vtable *_vtable[0]; }; struct t__selector { struct _vtable *_vtable[0]; oop v__size; oop v__elements; }; struct t__assoc { struct _vtable *_vtable[0]; oop v_key; oop v_value; }; struct t__closure { struct _vtable *_vtable[0]; oop v__method; oop v_data; }; struct t__vector { struct _vtable *_vtable[0]; oop v__size; }; struct t__vtable { struct _vtable *_vtable[0]; oop v__tally; oop v_bindings; oop v_delegate; }; struct t_Object { struct _vtable *_vtable[0]; }; struct t_UndefinedObject { struct _vtable *_vtable[0]; }; struct t_StaticBlockClosure { struct _vtable *_vtable[0]; oop v__function; oop v__arity; }; struct t_BlockClosure { struct _vtable *_vtable[0]; oop v__function; oop v__arity; oop v_outer; oop v_state; oop v__nlr; }; struct t_Magnitude { struct _vtable *_vtable[0]; }; struct t_Character { struct _vtable *_vtable[0]; oop v_value; }; struct t_Number { struct _vtable *_vtable[0]; }; struct t_Fraction { struct _vtable *_vtable[0]; oop v_numerator; oop v_denominator; }; struct t_Float { struct _vtable *_vtable[0]; }; struct t_Integer { struct _vtable *_vtable[0]; }; struct t_SmallInteger { struct _vtable *_vtable[0]; }; struct t_LargePositiveInteger { struct _vtable *_vtable[0]; oop v_bytes; }; struct t_LargeNegativeInteger { struct _vtable *_vtable[0]; oop v_bytes; }; struct t_Collection { struct _vtable *_vtable[0]; }; struct t_SequenceableCollection { struct _vtable *_vtable[0]; }; struct t_ArrayedCollection { struct _vtable *_vtable[0]; oop v_size; }; struct t_Array { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_ImmutableArray { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_WordArray { struct _vtable *_vtable[0]; oop v_size; oop v__words; }; struct t_ImmutableWordArray { struct _vtable *_vtable[0]; oop v_size; oop v__words; }; struct t_ByteArray { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_ImmutableByteArray { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_String { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_ImmutableString { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_Symbol { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_nil { struct _vtable *_vtable[0]; }; struct t_true { struct _vtable *_vtable[0]; }; struct t_false { struct _vtable *_vtable[0]; }; struct t_CharacterTable { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; static oop l_7= 0; static oop l_9= 0; static oop l_10= 0; static oop l_12= 0; static oop l_14= 0; static oop l_16= 0; static oop l_19= 0; static oop l_20= 0; static oop l_21= 0; static oop l_23= 0; static oop l_25= 0; static oop l_26= 0; static oop l_31= 0; static oop l_32= 0; static oop l_34= 0; static oop l_35= 0; static oop l_37= 0; static oop l_38= 0; static oop l_41= 0; static oop l_42= 0; static oop l_43= 0; static oop l_45= 0; static oop l_46= 0; static oop l_47= 0; static oop l_49= 0; static oop v__object= 0; static oop v_Object= 0; static oop v_UndefinedObject= 0; static oop v_StaticBlockClosure= 0; static oop v_Magnitude= 0; static oop v_Character= 0; static oop v_Number= 0; static oop v_Fraction= 0; static oop v_Integer= 0; static oop v_SmallInteger= 0; static oop v_LargePositiveInteger= 0; static oop v_Collection= 0; static oop v_SequenceableCollection= 0; static oop v_ArrayedCollection= 0; static oop v_Array= 0; static oop v_WordArray= 0; static oop v_ByteArray= 0; static oop v_String= 0; static oop v_ImmutableString= 0; static oop v_Symbol= 0; static oop v_true= 0; static oop v_false= 0; static struct __methodinfo __info1= { "isFraction", "Object", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 25, 26, 0 }; static oop Object__isFraction(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info1); oop _1= 0; _line(25); _1= v_false; _leave(); return _1; _leave(); } static struct __methodinfo __info2= { "isFraction", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 26, 28, &__info1 }; static oop Fraction__isFraction(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info2); oop _1= 0; _line(26); _1= v_true; _leave(); return _1; _leave(); } static struct __methodinfo __info3= { "asFraction", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 28, 30, &__info2 }; static oop Fraction__asFraction(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info3); oop _1= 0; _line(28); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info4= { "denominator", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 30, 31, &__info3 }; static oop Fraction__denominator(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info4); oop _1= 0; _line(30); _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _leave(); return _1; _leave(); } static struct __methodinfo __info5= { "numerator", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 31, 33, &__info4 }; static oop Fraction__numerator(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info5); oop _1= 0; _line(31); _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "numerator:denominator:", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 33, 44, &__info5 }; static oop Fraction__numerator_denominator_(oop v__closure, oop v_stateful_self, oop v_self, oop v_n, oop v_d) { _enter(&__info6); oop _1= 0; oop _2= 0; oop _3= 0; _line(33); _1= v_self; _line(35); _1=_sendv(s_new, 1, _1); v_self= _1; v_stateful_self= _1; /* ifTrue:ifFalse: */ _1= v_d; _2= l_7; if (1 & (long)_1) { _1= (((long)_1 == (long)_2) ? v_true : v_false); } else _1= _sendv(s__3d, 2, _1, _2); if (!_1) goto _l1; { _1= v_self; _line(37); _1=_sendv(s_errorDivisionByZero, 1, _1); } goto _l2; _l1:; { _1= v_n; _line(39); _1=_sendv(s_asInteger, 1, _1); ((struct t_Fraction *)v_stateful_self)->v_numerator= _1; _1= v_d; _line(40); _1=_sendv(s_asInteger, 1, _1); _line(40); _1=_sendv(s_abs, 1, _1); ((struct t_Fraction *)v_stateful_self)->v_denominator= _1; /* ifTrue: */ _1= 0; _2= v_d; _3= l_7; if (1 & (long)_2) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l3; { _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(41); _1=_sendv(s_negated, 1, _1); ((struct t_Fraction *)v_stateful_self)->v_numerator= _1; } _l3:; } _l2:; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info8= { "+", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 44, 58, &__info6 }; static oop Fraction___2b(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber) { _enter(&__info8); oop v_n= 0; oop v_d= 0; oop v_d1= 0; oop v_d2= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_n; (void)v_d; (void)v_d1; (void)v_d2; _line(44); /* ifTrue: */ _1= 0; _2= v_aNumber; _line(47); _2=_sendv(s_isFraction, 1, _2); if (!_2) goto _l4; { _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _2= v_aNumber; _line(49); _2=_sendv(s_denominator, 1, _2); _line(49); _1=_sendv(s_gcd_, 2, _1, _2); v_d= _1; _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_aNumber; _line(50); _2=_sendv(s_denominator, 1, _2); _3= v_d; _2= _sendv(s__2f_2f, 2, _2, _3); v_d1= _2; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } _2= v_aNumber; _line(50); _2=_sendv(s_numerator, 1, _2); _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; _4= v_d; _3= _sendv(s__2f_2f, 2, _3, _4); v_d2= _3; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l * _r); if ((1 & (long)_2 & (long)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2a, 2, _2, _3); } { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_n= _1; _1= v_d1; _2= v_d2; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } v_d1= _1; _1= v_n; _2= v_n; _3= v_d; _line(52); _2=_sendv(s_gcd_, 2, _2, _3); v_d2= _2; _1= _sendv(s__2f_2f, 2, _1, _2); v_n= _1; /* ifTrue: */ _1= 0; _2= v_d1; _3= v_d; _4= v_d2; _3= _sendv(s__2f_2f, 2, _3, _4); { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l * _r); if ((1 & (long)_2 & (long)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2a, 2, _2, _3); } v_d= _2; _3= l_9; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l5; { _1= v_n; _leave(); return _1; } _l5:; _1= v_Fraction; _2= v_n; _3= v_d; _line(54); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; } _l4:; _1= v_aNumber; _2= v_self; _3= l_10; _line(55); _1=_sendv(s_adaptToFraction_andSend_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info11= { "-", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 58, 64, &__info8 }; static oop Fraction___2d(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber) { _enter(&__info11); oop _1= 0; oop _2= 0; oop _3= 0; _line(58); /* ifTrue: */ _1= 0; _2= v_aNumber; _line(60); _2=_sendv(s_isFraction, 1, _2); if (!_2) goto _l6; { _1= v_self; _2= v_aNumber; _line(60); _2=_sendv(s_negated, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } _leave(); return _1; } _l6:; _1= v_aNumber; _2= v_self; _3= l_12; _line(61); _1=_sendv(s_adaptToFraction_andSend_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info13= { "*", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 64, 78, &__info11 }; static oop Fraction___2a(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber) { _enter(&__info13); oop v_d1= 0; oop v_d2= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; (void)v_d1; (void)v_d2; _line(64); /* ifTrue: */ _1= 0; _2= v_aNumber; _line(67); _2=_sendv(s_isFraction, 1, _2); if (!_2) goto _l7; { _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_aNumber; _line(69); _2=_sendv(s_denominator, 1, _2); _line(69); _1=_sendv(s_gcd_, 2, _1, _2); v_d1= _1; _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _2= v_aNumber; _line(70); _2=_sendv(s_numerator, 1, _2); _line(70); _1=_sendv(s_gcd_, 2, _1, _2); v_d2= _1; /* ifTrue: */ _1= 0; /* and: */ _2= v_d2; _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l9; { _2= v_d1; _3= v_aNumber; _line(71); _3=_sendv(s_denominator, 1, _3); if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); } _l9:; if (!_2) goto _l8; { _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_d1; _1= _sendv(s__2f_2f, 2, _1, _2); _2= v_aNumber; _line(72); _2=_sendv(s_numerator, 1, _2); _3= v_d2; _2= _sendv(s__2f_2f, 2, _2, _3); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } _leave(); return _1; } _l8:; _1= v_Fraction; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= v_d1; _2= _sendv(s__2f_2f, 2, _2, _3); _3= v_aNumber; _line(73); _3=_sendv(s_numerator, 1, _3); _4= v_d2; _3= _sendv(s__2f_2f, 2, _3, _4); { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l * _r); if ((1 & (long)_2 & (long)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2a, 2, _2, _3); } _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; _4= v_d2; _3= _sendv(s__2f_2f, 2, _3, _4); _4= v_aNumber; _line(74); _4=_sendv(s_denominator, 1, _4); _5= v_d1; _4= _sendv(s__2f_2f, 2, _4, _5); { int _l= (long)_3 >> 1; int _r= (long)_4 >> 1; int _s= (_l * _r); if ((1 & (long)_3 & (long)_4) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _3= (oop)(long)(_s << 1 | 1); else _3= _sendv(s__2a, 2, _3, _4); } _line(73); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; } _l7:; _1= v_aNumber; _2= v_self; _3= l_14; _line(75); _1=_sendv(s_adaptToFraction_andSend_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info15= { "/", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 78, 84, &__info13 }; static oop Fraction___2f(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber) { _enter(&__info15); oop _1= 0; oop _2= 0; oop _3= 0; _line(78); /* ifTrue: */ _1= 0; _2= v_aNumber; _line(80); _2=_sendv(s_isFraction, 1, _2); if (!_2) goto _l10; { _1= v_self; _2= v_aNumber; _line(80); _2=_sendv(s_reciprocal, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } _leave(); return _1; } _l10:; _1= v_aNumber; _2= v_self; _3= l_16; _line(81); _1=_sendv(s_adaptToFraction_andSend_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info17= { "negated", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 84, 91, &__info15 }; static oop Fraction__negated(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info17); oop _1= 0; oop _2= 0; oop _3= 0; _line(84); _1= v_Fraction; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(87); _2=_sendv(s_negated, 1, _2); _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(87); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info18= { "reciprocal", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 91, 100, &__info17 }; static oop Fraction__reciprocal(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info18); oop _1= 0; oop _2= 0; oop _3= 0; _line(91); /* ifTrue: */ _1= 0; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= l_19; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l11; { _1= v_self; _2= l_20; _line(93); _1=_sendv(s_error_, 2, _1, _2); } _l11:; /* ifTrue: */ _1= 0; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= l_19; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l12; { _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _leave(); return _1; } _l12:; /* ifTrue: */ _1= 0; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= l_21; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l13; { _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(95); _1=_sendv(s_negated, 1, _1); _leave(); return _1; } _l13:; _1= v_Fraction; _2= ((struct t_Fraction *)v_stateful_self)->v_denominator; _3= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(96); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info22= { "<", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 100, 106, &__info18 }; static oop Fraction___3c(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber) { _enter(&__info22); oop _1= 0; oop _2= 0; oop _3= 0; _line(100); /* ifTrue: */ _1= 0; _2= v_aNumber; _line(102); _2=_sendv(s_isFraction, 1, _2); if (!_2) goto _l14; { _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_aNumber; _line(102); _2=_sendv(s_denominator, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } _2= v_aNumber; _line(102); _2=_sendv(s_numerator, 1, _2); _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l * _r); if ((1 & (long)_2 & (long)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2a, 2, _2, _3); } if (1 & (long)_1 & (long)_2) { _1= (((long)_1 < (long)_2) ? v_true : v_false); } else _1= _sendv(s__3c, 2, _1, _2); _leave(); return _1; } _l14:; _1= v_aNumber; _2= v_self; _3= l_23; _line(103); _1=_sendv(s_adaptToFraction_andSend_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info24= { "=", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 106, 116, &__info22 }; static oop Fraction___3d(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNumber) { _enter(&__info24); oop _1= 0; oop _2= 0; oop _3= 0; _line(106); /* ifFalse: */ _1= 0; _2= v_aNumber; _line(108); _2=_sendv(s_isNumber, 1, _2); if (_2) goto _l15; { _1= v_false; _leave(); return _1; } _l15:; /* ifTrue: */ _1= 0; _2= v_aNumber; _line(109); _2=_sendv(s_isFraction, 1, _2); if (!_2) goto _l16; { /* ifTrue: */ _1= 0; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= l_25; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l17; { _1= v_aNumber; _line(111); _1=_sendv(s_numerator, 1, _1); _2= l_25; if (1 & (long)_1) { _1= (((long)_1 == (long)_2) ? v_true : v_false); } else _1= _sendv(s__3d, 2, _1, _2); _leave(); return _1; } _l17:; _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_aNumber; _line(112); _2=_sendv(s_denominator, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } _2= v_aNumber; _line(112); _2=_sendv(s_numerator, 1, _2); _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l * _r); if ((1 & (long)_2 & (long)_3) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2a, 2, _2, _3); } if (1 & (long)_1 & (long)_2) { _1= (((long)_1 == (long)_2) ? v_true : v_false); } else _1= _sendv(s__3d, 2, _1, _2); _leave(); return _1; } _l16:; _1= v_aNumber; _2= v_self; _3= l_26; _line(113); _1=_sendv(s_adaptToFraction_andSend_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info27= { "hash", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 116, 121, &__info24 }; static oop Fraction__hash(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info27); oop _1= 0; oop _2= 0; _line(116); _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(118); _1=_sendv(s_hash, 1, _1); _2= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(118); _2=_sendv(s_hash, 1, _2); if ((1 & (long)_1 & (long)_2) && (_1 > 0) && (_2 > 0)) { _1= (oop)(((long)_1 ^ (long)_2) | 1); } else _1= _sendv(s_bitXor_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info28= { "truncated", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 121, 126, &__info27 }; static oop Fraction__truncated(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info28); oop _1= 0; oop _2= 0; _line(121); _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(123); _1=_sendv(s_quo_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info29= { "adaptToInteger:andSend:", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 126, 131, &__info28 }; static oop Fraction__adaptToInteger_andSend_(oop v__closure, oop v_stateful_self, oop v_self, oop v_rcvr, oop v_selector) { _enter(&__info29); oop _1= 0; oop _2= 0; oop _3= 0; _line(126); _1= v_rcvr; _line(128); _1=_sendv(s_asFraction, 1, _1); _2= v_selector; _3= v_self; _line(128); _1=_sendv(s_perform_with_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info30= { "asFloat", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 131, 151, &__info29 }; static oop Fraction__asFloat(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info30); oop v_nScaleBits= 0; oop v_dScaleBits= 0; oop v_nScaled= 0; oop v_dScaled= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_nScaleBits; (void)v_dScaleBits; (void)v_nScaled; (void)v_dScaled; _line(131); _1= l_31; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(141); _2=_sendv(s_digitLength, 1, _2); _3= l_31; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l - _r); if ((1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2d, 2, _2, _3); } _3= l_32; _line(141); _2=_sendv(s_max_, 2, _2, _3); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } v_nScaleBits= _1; _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_nScaleBits; _line(142); _2=_sendv(s_negated, 1, _2); { int _l= (long)_1 >> 1, _r= (long)_2 >> 1, _s= ((_r < 0) ? (_l >> -_r) : (_l << _r)); if ((1 & (long)_1 & (long)_2) && ( ( (_r >= 0) && (_r <= 31) && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s_bitShift_, 2, _1, _2); } _line(142); _1=_sendv(s_asFloat, 1, _1); v_nScaled= _1; _1= l_31; _2= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(144); _2=_sendv(s_digitLength, 1, _2); _3= l_31; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l - _r); if ((1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2d, 2, _2, _3); } _3= l_32; _line(144); _2=_sendv(s_max_, 2, _2, _3); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= (_l * _r); if ((1 & (long)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2a, 2, _1, _2); } v_dScaleBits= _1; _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _2= v_dScaleBits; _line(145); _2=_sendv(s_negated, 1, _2); { int _l= (long)_1 >> 1, _r= (long)_2 >> 1, _s= ((_r < 0) ? (_l >> -_r) : (_l << _r)); if ((1 & (long)_1 & (long)_2) && ( ( (_r >= 0) && (_r <= 31) && (_l == (_s >> _r)) && ((_s ^ (_s << 1)) >= 0) ) || ((_r < 0) && (_r >= -31)) )) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s_bitShift_, 2, _1, _2); } _line(145); _1=_sendv(s_asFloat, 1, _1); v_dScaled= _1; _1= v_nScaled; _2= v_dScaled; _line(148); _1=_sendv(s__2f, 2, _1, _2); _2= v_nScaleBits; _3= v_dScaleBits; { int _l= (long)_2 >> 1; int _r= (long)_3 >> 1; int _s= (_l - _r); if ((1 & (long)_2 & (long)_3) && ((_s ^ (_s << 1)) >= 0)) _2= (oop)(long)(_s << 1 | 1); else _2= _sendv(s__2d, 2, _2, _3); } _line(148); _1=_sendv(s_timesTwoPower_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info33= { "reduced", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 151, 163, &__info30 }; static oop Fraction__reduced(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info33); oop v_gcd= 0; oop v_numer= 0; oop v_denom= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_gcd; (void)v_numer; (void)v_denom; _line(151); /* ifTrue: */ _1= 0; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= l_34; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l18; { _1= l_34; _leave(); return _1; } _l18:; _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(156); _1=_sendv(s_gcd_, 2, _1, _2); v_gcd= _1; _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_gcd; _1= _sendv(s__2f_2f, 2, _1, _2); v_numer= _1; _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _2= v_gcd; _1= _sendv(s__2f_2f, 2, _1, _2); v_denom= _1; /* ifTrue: */ _1= 0; _2= v_denom; _3= l_35; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l19; { _1= v_numer; _leave(); return _1; } _l19:; _1= v_Fraction; _2= v_numer; _3= v_denom; _line(160); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info36= { "raisedToInteger:", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 163, 172, &__info33 }; static oop Fraction__raisedToInteger_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anInteger) { _enter(&__info36); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(163); /* ifTrue: */ _1= 0; _2= v_anInteger; _3= l_37; if (1 & (long)_2) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); if (!_2) goto _l20; { _1= l_38; _leave(); return _1; } _l20:; /* ifTrue: */ _1= 0; _2= v_anInteger; _3= l_37; if (1 & (long)_2) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l21; { _1= v_self; _line(167); _1=_sendv(s_reciprocal, 1, _1); _2= v_anInteger; _line(167); _2=_sendv(s_negated, 1, _2); _line(167); _1=_sendv(s_raisedToInteger_, 2, _1, _2); _leave(); return _1; } _l21:; _1= v_Fraction; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _3= v_anInteger; _line(168); _2=_sendv(s_raisedToInteger_, 2, _2, _3); _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; _4= v_anInteger; _line(169); _3=_sendv(s_raisedToInteger_, 2, _3, _4); _line(168); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info39= { "squared", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 172, 178, &__info36 }; static oop Fraction__squared(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info39); oop _1= 0; oop _2= 0; oop _3= 0; _line(172); _1= v_Fraction; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(175); _2=_sendv(s_squared, 1, _2); _3= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(175); _3=_sendv(s_squared, 1, _3); _line(175); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info40= { "printOn:", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 178, 189, &__info39 }; static oop Fraction__printOn_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aStream) { _enter(&__info40); oop _1= 0; oop _2= 0; _line(178); _1= v_aStream; _2= l_41; _line(181); _1=_sendv(s_nextPut_, 2, _1, _2); _1= ((struct t_Fraction *)v_stateful_self)->v_numerator; _2= v_aStream; _line(182); _1=_sendv(s_printOn_, 2, _1, _2); _1= v_aStream; _2= l_42; _line(183); _1=_sendv(s_nextPut_, 2, _1, _2); _1= ((struct t_Fraction *)v_stateful_self)->v_denominator; _2= v_aStream; _line(184); _1=_sendv(s_printOn_, 2, _1, _2); _1= v_aStream; _2= l_43; _line(185); _1=_sendv(s_nextPut_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info44= { "print", "Fraction", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 189, 200, &__info40 }; static oop Fraction__print(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info44); oop v_n= 0; oop _1= 0; oop _2= 0; (void)v_n; _line(189); _1= l_45; _line(192); _1=_sendv(s_put, 1, _1); v_n= _1; _1= v_n; _2= ((struct t_Fraction *)v_stateful_self)->v_numerator; _line(193); _2=_sendv(s_print, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_n= _1; _1= v_n; _2= l_46; _line(194); _2=_sendv(s_put, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_n= _1; _1= v_n; _2= ((struct t_Fraction *)v_stateful_self)->v_denominator; _line(195); _2=_sendv(s_print, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_n= _1; _1= v_n; _2= l_47; _line(196); _2=_sendv(s_put, 1, _2); { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1 & (long)_2) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } v_n= _1; _1= v_n; _leave(); return _1; _leave(); } static struct __methodinfo __info48= { "asFraction", "Integer", "/Users/piumarta/src/idst/object/st80/Fraction.st", 0, 200, 204, &__info44 }; static oop Integer__asFraction(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info48); oop _1= 0; oop _2= 0; oop _3= 0; _line(200); _1= v_Fraction; _2= v_self; _3= l_49; _line(202); _1=_sendv(s_numerator_denominator_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "Fraction.st", 0, 0, 0, &__info48 }; void __id__init__Fraction(struct __libid *__libid) { if (_libid) return; if (!(_libid= __libid)) { fprintf(stderr, "init _libid %p\n", __libid); abort(); } # define GC_add_roots _libid->gc_addRoots GC_INIT(); { struct _Selector *s= 0; for (s= _Selectors; s->name; ++s) *s->addr= _libid->intern(s->name); } _enter(&__info); _libid->infos(&__info, &__info1); _sendv(s__5fimport_, 3, _libid->_object, "Number", "__id__init__Number"); v__object= _libid->import("_object"); v_Object= _libid->import("Object"); v_UndefinedObject= _libid->import("UndefinedObject"); v_StaticBlockClosure= _libid->import("StaticBlockClosure"); v_Magnitude= _libid->import("Magnitude"); v_Character= _libid->import("Character"); v_Number= _libid->import("Number"); v_Fraction= _libid->import("Fraction"); v_Integer= _libid->import("Integer"); v_SmallInteger= _libid->import("SmallInteger"); v_LargePositiveInteger= _libid->import("LargePositiveInteger"); v_Collection= _libid->import("Collection"); v_SequenceableCollection= _libid->import("SequenceableCollection"); v_ArrayedCollection= _libid->import("ArrayedCollection"); v_Array= _libid->import("Array"); v_WordArray= _libid->import("WordArray"); v_ByteArray= _libid->import("ByteArray"); v_String= _libid->import("String"); v_ImmutableString= _libid->import("ImmutableString"); v_Symbol= _libid->import("Symbol"); v_true= _libid->import("true"); v_false= _libid->import("false"); _libid->method(v_Object, s_isFraction, (_imp_t)Object__isFraction); _libid->method(v_Fraction, s_isFraction, (_imp_t)Fraction__isFraction); _libid->method(v_Fraction, s_asFraction, (_imp_t)Fraction__asFraction); _libid->method(v_Fraction, s_denominator, (_imp_t)Fraction__denominator); _libid->method(v_Fraction, s_numerator, (_imp_t)Fraction__numerator); l_7= _sendv(s_value_5f_, 2, v_SmallInteger, 0); _libid->method(v_Fraction, s_numerator_denominator_, (_imp_t)Fraction__numerator_denominator_); l_9= _sendv(s_value_5f_, 2, v_SmallInteger, 1); l_10= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "+"); _libid->method(v_Fraction, s__2b, (_imp_t)Fraction___2b); l_12= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "-"); _libid->method(v_Fraction, s__2d, (_imp_t)Fraction___2d); l_14= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "*"); _libid->method(v_Fraction, s__2a, (_imp_t)Fraction___2a); l_16= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "/"); _libid->method(v_Fraction, s__2f, (_imp_t)Fraction___2f); _libid->method(v_Fraction, s_negated, (_imp_t)Fraction__negated); l_19= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_20= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 19, "0 has no reciprocal"); l_21= _sendv(s_value_5f_, 2, v_SmallInteger, -1); _libid->method(v_Fraction, s_reciprocal, (_imp_t)Fraction__reciprocal); l_23= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "<"); _libid->method(v_Fraction, s__3c, (_imp_t)Fraction___3c); l_25= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_26= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "="); _libid->method(v_Fraction, s__3d, (_imp_t)Fraction___3d); _libid->method(v_Fraction, s_hash, (_imp_t)Fraction__hash); _libid->method(v_Fraction, s_truncated, (_imp_t)Fraction__truncated); _libid->method(v_Fraction, s_adaptToInteger_andSend_, (_imp_t)Fraction__adaptToInteger_andSend_); l_31= _sendv(s_value_5f_, 2, v_SmallInteger, 8); l_32= _sendv(s_value_5f_, 2, v_SmallInteger, 0); _libid->method(v_Fraction, s_asFloat, (_imp_t)Fraction__asFloat); l_34= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_35= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_Fraction, s_reduced, (_imp_t)Fraction__reduced); l_37= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_38= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_Fraction, s_raisedToInteger_, (_imp_t)Fraction__raisedToInteger_); _libid->method(v_Fraction, s_squared, (_imp_t)Fraction__squared); l_41= _sendv(s_value_5f_, 2, v_Character, 40); l_42= _sendv(s_value_5f_, 2, v_Character, 47); l_43= _sendv(s_value_5f_, 2, v_Character, 41); _libid->method(v_Fraction, s_printOn_, (_imp_t)Fraction__printOn_); l_45= _sendv(s_value_5f_, 2, v_Character, 40); l_46= _sendv(s_value_5f_, 2, v_Character, 47); l_47= _sendv(s_value_5f_, 2, v_Character, 41); _libid->method(v_Fraction, s_print, (_imp_t)Fraction__print); l_49= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_Integer, s_asFraction, (_imp_t)Integer__asFraction); _leave(); }