/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -c AVLTree.st -o ../stage2/AVLTree.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_print= 0; static oop s_delta= 0; static oop s_nextPut_= 0; static oop s_height= 0; static oop s_avlTreeNodeMoveRight_= 0; static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0; static oop s_avlTreeNodeDo_= 0; static oop s_avlTreeNodeReverseDo_= 0; static oop s_withSortBlock_= 0; static oop s_function_5f_arity_5f_= 0; static oop s_precedes_orderedBy_= 0; static oop s__5fdebugName= 0; static oop s_value_value_= 0; static oop s_new= 0; static oop s_equals_orderedBy_= 0; static oop s_avlTreeNodeInsert_orderedBy_= 0; static oop s_printOn_= 0; static oop s_ifTrue_ifFalse_= 0; static oop s_avlTreeNodeHeight= 0; static oop s_right= 0; static oop s_not= 0; static oop s_rotateRight= 0; static oop s_notNil= 0; static oop s_avlTreeNodeFind_= 0; static oop s_avlTreeNodeFind_orderedBy_= 0; static oop s_avlTreeNodeRemove_orderedBy_= 0; static oop s__5fsizeof= 0; static oop s_remove_orderedBy_= 0; static oop s_depth= 0; static oop s_balance= 0; static oop s_new_5f_= 0; static oop s_with_= 0; static oop s_removeNode_= 0; static oop s_reverseDo_= 0; static oop s_value_5f_= 0; static oop s_addNode_= 0; static oop s__5fimport_= 0; static oop s_left_= 0; static oop s_print_= 0; static oop s_find_= 0; static oop s_findNode_= 0; static oop s_do_= 0; static oop s_remove_= 0; static oop s_initialize= 0; static oop s__5fslots= 0; static oop s__2d= 0; static oop s_ifTrue_= 0; static oop s__2b= 0; static oop s_isNil= 0; static oop s_left= 0; static oop s_add_= 0; static oop s_isEmpty= 0; static oop s__3c= 0; static oop s_and_= 0; static oop s__3e= 0; static oop s_rotateLeft= 0; static oop s_right_= 0; static oop s_or_= 0; static oop s_value_= 0; static oop s_withValue_= 0; static oop s_value= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "print", &s_print }, { "delta", &s_delta }, { "nextPut:", &s_nextPut_ }, { "height", &s_height }, { "avlTreeNodeMoveRight:", &s_avlTreeNodeMoveRight_ }, { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ }, { "avlTreeNodeDo:", &s_avlTreeNodeDo_ }, { "avlTreeNodeReverseDo:", &s_avlTreeNodeReverseDo_ }, { "withSortBlock:", &s_withSortBlock_ }, { "function_:arity_:", &s_function_5f_arity_5f_ }, { "precedes:orderedBy:", &s_precedes_orderedBy_ }, { "_debugName", &s__5fdebugName }, { "value:value:", &s_value_value_ }, { "new", &s_new }, { "equals:orderedBy:", &s_equals_orderedBy_ }, { "avlTreeNodeInsert:orderedBy:", &s_avlTreeNodeInsert_orderedBy_ }, { "printOn:", &s_printOn_ }, { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ }, { "avlTreeNodeHeight", &s_avlTreeNodeHeight }, { "right", &s_right }, { "not", &s_not }, { "rotateRight", &s_rotateRight }, { "notNil", &s_notNil }, { "avlTreeNodeFind:", &s_avlTreeNodeFind_ }, { "avlTreeNodeFind:orderedBy:", &s_avlTreeNodeFind_orderedBy_ }, { "avlTreeNodeRemove:orderedBy:", &s_avlTreeNodeRemove_orderedBy_ }, { "_sizeof", &s__5fsizeof }, { "remove:orderedBy:", &s_remove_orderedBy_ }, { "depth", &s_depth }, { "balance", &s_balance }, { "new_:", &s_new_5f_ }, { "with:", &s_with_ }, { "removeNode:", &s_removeNode_ }, { "reverseDo:", &s_reverseDo_ }, { "value_:", &s_value_5f_ }, { "addNode:", &s_addNode_ }, { "_import:", &s__5fimport_ }, { "left:", &s_left_ }, { "print:", &s_print_ }, { "find:", &s_find_ }, { "findNode:", &s_findNode_ }, { "do:", &s_do_ }, { "remove:", &s_remove_ }, { "initialize", &s_initialize }, { "_slots", &s__5fslots }, { "-", &s__2d }, { "ifTrue:", &s_ifTrue_ }, { "+", &s__2b }, { "isNil", &s_isNil }, { "left", &s_left }, { "add:", &s_add_ }, { "isEmpty", &s_isEmpty }, { "<", &s__3c }, { "and:", &s_and_ }, { ">", &s__3e }, { "rotateLeft", &s_rotateLeft }, { "right:", &s_right_ }, { "or:", &s_or_ }, { "value:", &s_value_ }, { "withValue:", &s_withValue_ }, { "value", &s_value }, { 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; }; struct t_AVLTreeNode { struct _vtable *_vtable[0]; oop v_left; oop v_right; oop v_height; oop v_value; }; static oop l_8= 0; static oop l_15= 0; static oop l_19= 0; static oop l_20= 0; static oop l_21= 0; static oop l_37= 0; static oop l_38= 0; struct t_AVLTree { struct _vtable *_vtable[0]; oop v_rootNode; oop v_orderBlock; }; static oop l_41= 0; static oop v__object= 0; static oop v__vector= 0; static oop v_Object= 0; static oop v_UndefinedObject= 0; static oop v_StaticBlockClosure= 0; static oop v_BlockClosure= 0; static oop v_Magnitude= 0; static oop v_Character= 0; static oop v_Number= 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_nil= 0; static oop v_true= 0; static oop v_false= 0; static oop v_AVLTreeNode= 0; static oop v_AVLTree= 0; static size_t AVLTreeNode___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_AVLTreeNode); } static char *AVLTreeNode___5fdebugName(oop _closure, oop v_self) { return "AVLTreeNode"; } static struct __slotinfo *AVLTreeNode___5fslots(oop _closure, oop v_self) { static struct __slotinfo info[]= { { "left", 0, 4 }, { "right", 4, 4 }, { "height", 8, 4 }, { "value", 12, 4 }, { 0, 0, 0 } }; return &info[0]; } static struct __methodinfo __info1= { "left", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 25, 26, 0 }; static oop AVLTreeNode__left(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info1); oop _1= 0; _line(25); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _leave(); return _1; _leave(); } static struct __methodinfo __info2= { "left:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 26, 27, &__info1 }; static oop AVLTreeNode__left_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info2); oop _1= 0; _line(26); _1= v_aNode; ((struct t_AVLTreeNode *)v_stateful_self)->v_left= _1; _leave(); return _1; _leave(); } static struct __methodinfo __info3= { "right", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 27, 28, &__info2 }; static oop AVLTreeNode__right(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info3); oop _1= 0; _line(27); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _leave(); return _1; _leave(); } static struct __methodinfo __info4= { "right:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 28, 29, &__info3 }; static oop AVLTreeNode__right_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info4); oop _1= 0; _line(28); _1= v_aNode; ((struct t_AVLTreeNode *)v_stateful_self)->v_right= _1; _leave(); return _1; _leave(); } static struct __methodinfo __info5= { "height", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 29, 30, &__info4 }; static oop AVLTreeNode__height(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info5); oop _1= 0; _line(29); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_height; _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "value", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 30, 32, &__info5 }; static oop AVLTreeNode__value(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info6); oop _1= 0; _line(30); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_value; _leave(); return _1; _leave(); } static struct __methodinfo __info7= { "initialize", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 32, 40, &__info6 }; static oop AVLTreeNode__initialize(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info7); oop _1= 0; _line(32); _1= v_self; _line(34); _1=_superv(v_Object, s_initialize, 1, _1); _1= v_nil; ((struct t_AVLTreeNode *)v_stateful_self)->v_right= _1; ((struct t_AVLTreeNode *)v_stateful_self)->v_left= _1; _1= l_8; ((struct t_AVLTreeNode *)v_stateful_self)->v_height= _1; _1= v_nil; ((struct t_AVLTreeNode *)v_stateful_self)->v_value= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info9= { "withValue:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 40, 46, &__info7 }; static oop AVLTreeNode__withValue_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject) { _enter(&__info9); oop _1= 0; _line(40); _1= v_self; _line(42); _1=_sendv(s_new, 1, _1); v_self= _1; v_stateful_self= _1; _1= v_anObject; ((struct t_AVLTreeNode *)v_stateful_self)->v_value= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info10= { "precedes:orderedBy:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 46, 48, &__info9 }; static oop AVLTreeNode__precedes_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info10); oop _1= 0; oop _2= 0; oop _3= 0; _line(46); _1= v_binaryBlock; _2= v_self; _line(46); _2=_sendv(s_value, 1, _2); _3= v_aNode; _line(46); _3=_sendv(s_value, 1, _3); _line(46); _1=_sendv(s_value_value_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info11= { "equals:orderedBy:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 48, 61, &__info10 }; static oop AVLTreeNode__equals_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info11); oop v_l= 0; oop v_r= 0; oop v_lr= 0; oop v_rl= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_l; (void)v_r; (void)v_lr; (void)v_rl; _line(48); _1= v_self; _line(51); _1=_sendv(s_value, 1, _1); v_l= _1; _1= v_aNode; _line(52); _1=_sendv(s_value, 1, _1); v_r= _1; _1= v_binaryBlock; _2= v_l; _3= v_r; _line(53); _1=_sendv(s_value_value_, 3, _1, _2, _3); v_lr= _1; _1= v_binaryBlock; _2= v_r; _3= v_l; _line(54); _1=_sendv(s_value_value_, 3, _1, _2, _3); v_rl= _1; /* or: */ /* and: */ _1= v_lr; if (!_1) goto _l2; { _1= v_rl; } _l2:; if (_1) goto _l1; { /* or: */ _1= v_lr; if (_1) goto _l3; { _1= v_rl; } _l3:; _line(58); _1=_sendv(s_not, 1, _1); } _l1:; _leave(); return _1; _leave(); } static struct __methodinfo __info12= { "avlTreeNodeInsert:orderedBy:", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 61, 66, &__info11 }; static oop UndefinedObject__avlTreeNodeInsert_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info12); oop _1= 0; _line(61); _1= v_aNode; _leave(); return _1; _leave(); } static struct __methodinfo __info13= { "avlTreeNodeInsert:orderedBy:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 66, 74, &__info12 }; static oop AVLTreeNode__avlTreeNodeInsert_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info13); oop _1= 0; oop _2= 0; oop _3= 0; _line(66); /* ifTrue:ifFalse: */ _1= v_aNode; _2= v_self; _3= v_binaryBlock; _line(68); _1=_sendv(s_precedes_orderedBy_, 3, _1, _2, _3); if (!_1) goto _l4; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _2= v_aNode; _3= v_binaryBlock; _line(69); _1=_sendv(s_avlTreeNodeInsert_orderedBy_, 3, _1, _2, _3); ((struct t_AVLTreeNode *)v_stateful_self)->v_left= _1; } goto _l5; _l4:; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _2= v_aNode; _3= v_binaryBlock; _line(70); _1=_sendv(s_avlTreeNodeInsert_orderedBy_, 3, _1, _2, _3); ((struct t_AVLTreeNode *)v_stateful_self)->v_right= _1; } _l5:; _1= v_self; _line(71); _1=_sendv(s_balance, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info14= { "avlTreeNodeHeight", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 74, 75, &__info13 }; static oop UndefinedObject__avlTreeNodeHeight(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info14); oop _1= 0; _line(74); _1= l_15; _leave(); return _1; _leave(); } static struct __methodinfo __info16= { "avlTreeNodeHeight", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 75, 77, &__info14 }; static oop AVLTreeNode__avlTreeNodeHeight(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info16); oop _1= 0; _line(75); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_height; _leave(); return _1; _leave(); } static struct __methodinfo __info17= { "delta", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 77, 79, &__info16 }; static oop AVLTreeNode__delta(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info17); oop _1= 0; oop _2= 0; _line(77); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _line(77); _1=_sendv(s_avlTreeNodeHeight, 1, _1); _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _line(77); _2=_sendv(s_avlTreeNodeHeight, 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__2d, 2, _1, _2); } _leave(); return _1; _leave(); } static struct __methodinfo __info18= { "balance", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 79, 97, &__info17 }; static oop AVLTreeNode__balance(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info18); oop v_delta= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_delta; _line(79); _1= v_self; _line(82); _1=_sendv(s_delta, 1, _1); v_delta= _1; /* ifTrue: */ _1= 0; _2= v_delta; _3= l_19; if (1 & (long)_2) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l6; { /* ifTrue: */ _1= 0; _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _line(85); _2=_sendv(s_delta, 1, _2); _3= l_20; if (1 & (long)_2) { _2= (((long)_2 > (long)_3) ? v_true : v_false); } else _2= _sendv(s__3e, 2, _2, _3); if (!_2) goto _l7; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _line(85); _1=_sendv(s_rotateRight, 1, _1); ((struct t_AVLTreeNode *)v_stateful_self)->v_right= _1; } _l7:; _1= v_self; _line(86); _1=_sendv(s_rotateLeft, 1, _1); _leave(); return _1; } _l6:; /* ifTrue: */ _1= 0; _2= v_delta; _3= l_21; if (1 & (long)_2) { _2= (((long)_2 > (long)_3) ? v_true : v_false); } else _2= _sendv(s__3e, 2, _2, _3); if (!_2) goto _l8; { /* ifTrue: */ _1= 0; _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _line(89); _2=_sendv(s_delta, 1, _2); _3= l_20; if (1 & (long)_2) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l9; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _line(89); _1=_sendv(s_rotateLeft, 1, _1); ((struct t_AVLTreeNode *)v_stateful_self)->v_left= _1; } _l9:; _1= v_self; _line(90); _1=_sendv(s_rotateRight, 1, _1); _leave(); return _1; } _l8:; _1= l_20; ((struct t_AVLTreeNode *)v_stateful_self)->v_height= _1; /* ifTrue: */ _1= 0; /* and: */ _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _line(92); _2=_sendv(s_notNil, 1, _2); if (!_2) goto _l11; { _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _line(92); _2=_sendv(s_height, 1, _2); _3= ((struct t_AVLTreeNode *)v_stateful_self)->v_height; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 > (long)_3) ? v_true : v_false); } else _2= _sendv(s__3e, 2, _2, _3); } _l11:; if (!_2) goto _l10; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _line(92); _1=_sendv(s_height, 1, _1); ((struct t_AVLTreeNode *)v_stateful_self)->v_height= _1; } _l10:; /* ifTrue: */ _1= 0; /* and: */ _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _line(93); _2=_sendv(s_notNil, 1, _2); if (!_2) goto _l13; { _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _line(93); _2=_sendv(s_height, 1, _2); _3= ((struct t_AVLTreeNode *)v_stateful_self)->v_height; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 > (long)_3) ? v_true : v_false); } else _2= _sendv(s__3e, 2, _2, _3); } _l13:; if (!_2) goto _l12; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _line(93); _1=_sendv(s_height, 1, _1); ((struct t_AVLTreeNode *)v_stateful_self)->v_height= _1; } _l12:; _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_height; _2= l_21; { int _l= (long)_1 >> 1; int _r= (long)_2 >> 1; int _s= _l + _r; if ((1 & (long)_1) && ((_s ^ (_s << 1)) >= 0)) _1= (oop)(long)(_s << 1 | 1); else _1= _sendv(s__2b, 2, _1, _2); } ((struct t_AVLTreeNode *)v_stateful_self)->v_height= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info22= { "rotateLeft", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 97, 106, &__info18 }; static oop AVLTreeNode__rotateLeft(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info22); oop v_pivot= 0; oop _1= 0; oop _2= 0; (void)v_pivot; _line(97); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; v_pivot= _1; _1= v_pivot; _line(101); _1=_sendv(s_left, 1, _1); ((struct t_AVLTreeNode *)v_stateful_self)->v_right= _1; _1= v_pivot; _2= v_self; _line(102); _2=_sendv(s_balance, 1, _2); _line(102); _1=_sendv(s_left_, 2, _1, _2); _1= v_pivot; _line(103); _1=_sendv(s_balance, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info23= { "rotateRight", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 106, 115, &__info22 }; static oop AVLTreeNode__rotateRight(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info23); oop v_pivot= 0; oop _1= 0; oop _2= 0; (void)v_pivot; _line(106); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; v_pivot= _1; _1= v_pivot; _line(110); _1=_sendv(s_right, 1, _1); ((struct t_AVLTreeNode *)v_stateful_self)->v_left= _1; _1= v_pivot; _2= v_self; _line(111); _2=_sendv(s_balance, 1, _2); _line(111); _1=_sendv(s_right_, 2, _1, _2); _1= v_pivot; _line(112); _1=_sendv(s_balance, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info24= { "avlTreeNodeFind:", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 115, 120, &__info23 }; static oop UndefinedObject__avlTreeNodeFind_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info24); oop _1= 0; _line(115); _1= v_nil; _leave(); return _1; _leave(); } static struct __methodinfo __info25= { "avlTreeNodeFind:orderedBy:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 120, 128, &__info24 }; static oop AVLTreeNode__avlTreeNodeFind_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info25); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(120); /* ifTrue: */ _1= 0; _2= v_self; _3= v_aNode; _4= v_binaryBlock; _line(122); _2=_sendv(s_equals_orderedBy_, 3, _2, _3, _4); if (!_2) goto _l14; { _1= v_self; _leave(); return _1; } _l14:; /* ifTrue:ifFalse: */ _1= v_aNode; _2= v_self; _3= v_binaryBlock; _line(123); _1=_sendv(s_precedes_orderedBy_, 3, _1, _2, _3); if (!_1) goto _l15; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _2= v_aNode; _3= v_binaryBlock; _line(124); _1=_sendv(s_avlTreeNodeFind_orderedBy_, 3, _1, _2, _3); } goto _l16; _l15:; { _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _2= v_aNode; _3= v_binaryBlock; _line(125); _1=_sendv(s_avlTreeNodeFind_orderedBy_, 3, _1, _2, _3); } _l16:; _leave(); return _1; _leave(); } static struct __methodinfo __info26= { "avlTreeNodeRemove:orderedBy:", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 128, 133, &__info25 }; static oop UndefinedObject__avlTreeNodeRemove_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info26); oop _1= 0; _line(128); _1= v_nil; _leave(); return _1; _leave(); } static struct __methodinfo __info28= { "[] remove:orderedBy:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 133, 147, &__info26 }; static oop b_28(oop v__closure, oop v__self) { _enter(&__info28); oop v_temp= 0; oop _1= 0; oop _2= 0; (void)v_temp; _line(137); _1= ((struct t_AVLTreeNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_left; /* left */ _2= ((struct t_AVLTreeNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_right; /* right */ _line(138); _1=_sendv(s_avlTreeNodeMoveRight_, 2, _1, _2); v_temp= _1; _1= v_nil; ((struct t_AVLTreeNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_right= _1; /* right */ ((struct t_AVLTreeNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_left= _1; /* left */ _1= v_temp; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info27= { "remove:orderedBy:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 133, 147, &__info28 }; static oop AVLTreeNode__remove_orderedBy_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode, oop v_binaryBlock) { _enter(&__info27); oop _state1= _sendv(s_new_5f_, 2, v__vector, 6); oop _1= 0; oop _2= 0; oop _3= 0; jmp_buf __nlr; oop _nlr; ((oop *)_state1)[1]= v_stateful_self; _nlr= (oop)&__nlr; if (setjmp(__nlr)) { return _libid->nlresult(); } _line(133); _1= v_aNode; _2= v_self; _3= v_binaryBlock; _line(135); _1=_sendv(s_equals_orderedBy_, 3, _1, _2, _3); /* Scope('temp'->TemporaryVariableNode) */ /* Scope('right'->SlotVariableNode 'height'->SlotVariableNode 'aNode'->ArgumentVariableNode 'binaryBlock'->ArgumentVariableNode 'stateful_self'->ArgumentVariableNode 'self'->ArgumentVariableNode 'value'->SlotVariableNode 'left'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_28, 0, 0, ((oop *)_state1), _nlr); _line(136); _1=_sendv(s_ifTrue_, 2, _1, _2); /* ifTrue:ifFalse: */ _1= v_aNode; _2= v_self; _3= v_binaryBlock; _line(141); _1=_sendv(s_precedes_orderedBy_, 3, _1, _2, _3); if (!_1) goto _l17; { _1= ((struct t_AVLTreeNode *)((oop *)_state1)[1])->v_left; /* left */ _2= v_aNode; _3= v_binaryBlock; _line(142); _1=_sendv(s_avlTreeNodeRemove_orderedBy_, 3, _1, _2, _3); ((struct t_AVLTreeNode *)((oop *)_state1)[1])->v_left= _1; /* left */ } goto _l18; _l17:; { _1= ((struct t_AVLTreeNode *)((oop *)_state1)[1])->v_right; /* right */ _2= v_aNode; _3= v_binaryBlock; _line(143); _1=_sendv(s_avlTreeNodeRemove_orderedBy_, 3, _1, _2, _3); ((struct t_AVLTreeNode *)((oop *)_state1)[1])->v_right= _1; /* right */ } _l18:; _1= v_self; _line(144); _1=_sendv(s_balance, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info29= { "avlTreeNodeMoveRight:", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 147, 152, &__info27 }; static oop UndefinedObject__avlTreeNodeMoveRight_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info29); oop _1= 0; _line(147); _1= v_aNode; _leave(); return _1; _leave(); } static struct __methodinfo __info30= { "avlTreeNodeMoveRight:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 152, 158, &__info29 }; static oop AVLTreeNode__avlTreeNodeMoveRight_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info30); oop _1= 0; oop _2= 0; _line(152); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _2= v_aNode; _line(154); _1=_sendv(s_avlTreeNodeMoveRight_, 2, _1, _2); ((struct t_AVLTreeNode *)v_stateful_self)->v_right= _1; _1= v_self; _line(155); _1=_sendv(s_balance, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info31= { "avlTreeNodeDo:", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 158, 163, &__info30 }; static oop UndefinedObject__avlTreeNodeDo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info31); oop _1= 0; _line(158); _1= v_nil; _leave(); return _1; _leave(); } static struct __methodinfo __info32= { "avlTreeNodeDo:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 163, 170, &__info31 }; static oop AVLTreeNode__avlTreeNodeDo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info32); oop _1= 0; oop _2= 0; _line(163); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _2= v_unaryBlock; _line(165); _1=_sendv(s_avlTreeNodeDo_, 2, _1, _2); _1= v_unaryBlock; _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_value; _line(166); _1=_sendv(s_value_, 2, _1, _2); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _2= v_unaryBlock; _line(167); _1=_sendv(s_avlTreeNodeDo_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info33= { "avlTreeNodeReverseDo:", "UndefinedObject", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 170, 175, &__info32 }; static oop UndefinedObject__avlTreeNodeReverseDo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info33); oop _1= 0; _line(170); _1= v_nil; _leave(); return _1; _leave(); } static struct __methodinfo __info34= { "avlTreeNodeReverseDo:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 175, 182, &__info33 }; static oop AVLTreeNode__avlTreeNodeReverseDo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info34); oop _1= 0; oop _2= 0; _line(175); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_right; _2= v_unaryBlock; _line(177); _1=_sendv(s_avlTreeNodeReverseDo_, 2, _1, _2); _1= v_unaryBlock; _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_value; _line(178); _1=_sendv(s_value_, 2, _1, _2); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_left; _2= v_unaryBlock; _line(179); _1=_sendv(s_avlTreeNodeReverseDo_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info35= { "print", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 182, 187, &__info34 }; static oop AVLTreeNode__print(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info35); oop _1= 0; _line(182); _1= ((struct t_AVLTreeNode *)v_stateful_self)->v_value; _line(184); _1=_sendv(s_print, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info36= { "printOn:", "AVLTreeNode", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 187, 197, &__info35 }; static oop AVLTreeNode__printOn_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aStream) { _enter(&__info36); oop _1= 0; oop _2= 0; _line(187); _1= v_self; _2= v_aStream; _line(189); _1=_superv(v_Object, s_printOn_, 2, _1, _2); _1= v_aStream; _2= l_37; _line(191); _sendv(s_nextPut_, 2, _1, _2); _2= ((struct t_AVLTreeNode *)v_stateful_self)->v_value; _sendv(s_print_, 2, _1, _2); _2= l_38; _1=_sendv(s_nextPut_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static size_t AVLTree___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_AVLTree); } static char *AVLTree___5fdebugName(oop _closure, oop v_self) { return "AVLTree"; } static struct __slotinfo *AVLTree___5fslots(oop _closure, oop v_self) { static struct __slotinfo info[]= { { "rootNode", 0, 4 }, { "orderBlock", 4, 4 }, { 0, 0, 0 } }; return &info[0]; } static struct __methodinfo __info39= { "withSortBlock:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 199, 205, &__info36 }; static oop AVLTree__withSortBlock_(oop v__closure, oop v_stateful_self, oop v_self, oop v_binaryBlock) { _enter(&__info39); oop _1= 0; _line(199); _1= v_self; _line(201); _1=_sendv(s_new, 1, _1); v_self= _1; v_stateful_self= _1; _1= v_binaryBlock; ((struct t_AVLTree *)v_stateful_self)->v_orderBlock= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info41= { "[] initialize", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 205, 212, &__info39 }; static oop b_41(oop v__closure, oop v__self, oop v_a, oop v_b) { _enter(&__info41); oop _1= 0; oop _2= 0; _line(209); _1= v_a; _2= v_b; 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; _leave(); } static struct __methodinfo __info40= { "initialize", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 205, 212, &__info41 }; static oop AVLTree__initialize(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info40); oop _1= 0; _line(205); _1= v_self; _line(207); _1=_superv(v_SequenceableCollection, s_initialize, 1, _1); _1= v_nil; ((struct t_AVLTree *)v_stateful_self)->v_rootNode= _1; _1= l_41; ((struct t_AVLTree *)v_stateful_self)->v_orderBlock= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info42= { "isEmpty", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 212, 217, &__info40 }; static oop AVLTree__isEmpty(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info42); oop _1= 0; _line(212); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _line(214); _1=_sendv(s_isNil, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info43= { "add:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 217, 223, &__info42 }; static oop AVLTree__add_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject) { _enter(&__info43); oop _1= 0; oop _2= 0; oop _3= 0; _line(217); _1= v_self; _2= v_AVLTreeNode; _3= v_anObject; _line(219); _2=_sendv(s_withValue_, 2, _2, _3); _line(219); _1=_sendv(s_addNode_, 2, _1, _2); _1= v_anObject; _leave(); return _1; _leave(); } static struct __methodinfo __info44= { "addNode:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 223, 229, &__info43 }; static oop AVLTree__addNode_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info44); oop _1= 0; oop _2= 0; oop _3= 0; _line(223); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _2= v_aNode; _3= ((struct t_AVLTree *)v_stateful_self)->v_orderBlock; _line(225); _1=_sendv(s_avlTreeNodeInsert_orderedBy_, 3, _1, _2, _3); ((struct t_AVLTree *)v_stateful_self)->v_rootNode= _1; _1= v_aNode; _leave(); return _1; _leave(); } static struct __methodinfo __info45= { "depth", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 229, 231, &__info44 }; static oop AVLTree__depth(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info45); oop _1= 0; _line(229); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _line(229); _1=_sendv(s_avlTreeNodeHeight, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info46= { "find:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 231, 232, &__info45 }; static oop AVLTree__find_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject) { _enter(&__info46); oop _1= 0; oop _2= 0; oop _3= 0; _line(231); _1= v_self; _2= v_AVLTreeNode; _3= v_anObject; _line(231); _2=_sendv(s_with_, 2, _2, _3); _line(231); _1=_sendv(s_findNode_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info47= { "findNode:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 232, 234, &__info46 }; static oop AVLTree__findNode_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info47); oop _1= 0; oop _2= 0; oop _3= 0; _line(232); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _2= v_aNode; _3= ((struct t_AVLTree *)v_stateful_self)->v_orderBlock; _line(232); _1=_sendv(s_avlTreeNodeFind_orderedBy_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info48= { "remove:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 234, 235, &__info47 }; static oop AVLTree__remove_(oop v__closure, oop v_stateful_self, oop v_self, oop v_anObject) { _enter(&__info48); oop _1= 0; oop _2= 0; oop _3= 0; _line(234); _1= v_self; _2= v_AVLTreeNode; _3= v_anObject; _line(234); _2=_sendv(s_withValue_, 2, _2, _3); _line(234); _1=_sendv(s_removeNode_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info49= { "removeNode:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 235, 237, &__info48 }; static oop AVLTree__removeNode_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aNode) { _enter(&__info49); oop _1= 0; oop _2= 0; oop _3= 0; _line(235); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _2= v_aNode; _3= ((struct t_AVLTree *)v_stateful_self)->v_orderBlock; _line(235); _1=_sendv(s_avlTreeNodeRemove_orderedBy_, 3, _1, _2, _3); ((struct t_AVLTree *)v_stateful_self)->v_rootNode= _1; _leave(); return _1; _leave(); } static struct __methodinfo __info50= { "do:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 237, 238, &__info49 }; static oop AVLTree__do_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info50); oop _1= 0; oop _2= 0; _line(237); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _2= v_unaryBlock; _line(237); _1=_sendv(s_avlTreeNodeDo_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info51= { "reverseDo:", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 238, 240, &__info50 }; static oop AVLTree__reverseDo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_unaryBlock) { _enter(&__info51); oop _1= 0; oop _2= 0; _line(238); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _2= v_unaryBlock; _line(238); _1=_sendv(s_avlTreeNodeReverseDo_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info52= { "print", "AVLTree", "/Users/piumarta/src/idst/object/st80/AVLTree.st", 0, 240, 241, &__info51 }; static oop AVLTree__print(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info52); oop _1= 0; _line(240); _1= ((struct t_AVLTree *)v_stateful_self)->v_rootNode; _line(240); _1=_sendv(s_print, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "AVLTree.st", 0, 0, 0, &__info52 }; void __id__init__AVLTree(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, "Object", "__id__init__Object"); v__object= _libid->import("_object"); v__vector= _libid->import("_vector"); v_Object= _libid->import("Object"); v_UndefinedObject= _libid->import("UndefinedObject"); v_StaticBlockClosure= _libid->import("StaticBlockClosure"); v_BlockClosure= _libid->import("BlockClosure"); v_Magnitude= _libid->import("Magnitude"); v_Character= _libid->import("Character"); v_Number= _libid->import("Number"); 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_nil= _libid->import("nil"); v_true= _libid->import("true"); v_false= _libid->import("false"); v_AVLTreeNode= _libid->proto2(v_Object, AVLTreeNode___5fsizeof(0, 0)); _libid->method(v_AVLTreeNode, s__5fsizeof, (_imp_t)AVLTreeNode___5fsizeof); _libid->method(v_AVLTreeNode, s__5fdebugName, (_imp_t)AVLTreeNode___5fdebugName); _libid->method(v_AVLTreeNode, s__5fslots, (_imp_t)AVLTreeNode___5fslots); _libid->export("AVLTreeNode", v_AVLTreeNode); _libid->method(v_AVLTreeNode, s_left, (_imp_t)AVLTreeNode__left); _libid->method(v_AVLTreeNode, s_left_, (_imp_t)AVLTreeNode__left_); _libid->method(v_AVLTreeNode, s_right, (_imp_t)AVLTreeNode__right); _libid->method(v_AVLTreeNode, s_right_, (_imp_t)AVLTreeNode__right_); _libid->method(v_AVLTreeNode, s_height, (_imp_t)AVLTreeNode__height); _libid->method(v_AVLTreeNode, s_value, (_imp_t)AVLTreeNode__value); l_8= _sendv(s_value_5f_, 2, v_SmallInteger, 0); _libid->method(v_AVLTreeNode, s_initialize, (_imp_t)AVLTreeNode__initialize); _libid->method(v_AVLTreeNode, s_withValue_, (_imp_t)AVLTreeNode__withValue_); _libid->method(v_AVLTreeNode, s_precedes_orderedBy_, (_imp_t)AVLTreeNode__precedes_orderedBy_); _libid->method(v_AVLTreeNode, s_equals_orderedBy_, (_imp_t)AVLTreeNode__equals_orderedBy_); _libid->method(v_UndefinedObject, s_avlTreeNodeInsert_orderedBy_, (_imp_t)UndefinedObject__avlTreeNodeInsert_orderedBy_); _libid->method(v_AVLTreeNode, s_avlTreeNodeInsert_orderedBy_, (_imp_t)AVLTreeNode__avlTreeNodeInsert_orderedBy_); l_15= _sendv(s_value_5f_, 2, v_SmallInteger, 0); _libid->method(v_UndefinedObject, s_avlTreeNodeHeight, (_imp_t)UndefinedObject__avlTreeNodeHeight); _libid->method(v_AVLTreeNode, s_avlTreeNodeHeight, (_imp_t)AVLTreeNode__avlTreeNodeHeight); _libid->method(v_AVLTreeNode, s_delta, (_imp_t)AVLTreeNode__delta); l_19= _sendv(s_value_5f_, 2, v_SmallInteger, -1); l_20= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_21= _sendv(s_value_5f_, 2, v_SmallInteger, 1); _libid->method(v_AVLTreeNode, s_balance, (_imp_t)AVLTreeNode__balance); _libid->method(v_AVLTreeNode, s_rotateLeft, (_imp_t)AVLTreeNode__rotateLeft); _libid->method(v_AVLTreeNode, s_rotateRight, (_imp_t)AVLTreeNode__rotateRight); _libid->method(v_UndefinedObject, s_avlTreeNodeFind_, (_imp_t)UndefinedObject__avlTreeNodeFind_); _libid->method(v_AVLTreeNode, s_avlTreeNodeFind_orderedBy_, (_imp_t)AVLTreeNode__avlTreeNodeFind_orderedBy_); _libid->method(v_UndefinedObject, s_avlTreeNodeRemove_orderedBy_, (_imp_t)UndefinedObject__avlTreeNodeRemove_orderedBy_); _libid->method(v_AVLTreeNode, s_remove_orderedBy_, (_imp_t)AVLTreeNode__remove_orderedBy_); _libid->method(v_UndefinedObject, s_avlTreeNodeMoveRight_, (_imp_t)UndefinedObject__avlTreeNodeMoveRight_); _libid->method(v_AVLTreeNode, s_avlTreeNodeMoveRight_, (_imp_t)AVLTreeNode__avlTreeNodeMoveRight_); _libid->method(v_UndefinedObject, s_avlTreeNodeDo_, (_imp_t)UndefinedObject__avlTreeNodeDo_); _libid->method(v_AVLTreeNode, s_avlTreeNodeDo_, (_imp_t)AVLTreeNode__avlTreeNodeDo_); _libid->method(v_UndefinedObject, s_avlTreeNodeReverseDo_, (_imp_t)UndefinedObject__avlTreeNodeReverseDo_); _libid->method(v_AVLTreeNode, s_avlTreeNodeReverseDo_, (_imp_t)AVLTreeNode__avlTreeNodeReverseDo_); _libid->method(v_AVLTreeNode, s_print, (_imp_t)AVLTreeNode__print); l_37= _sendv(s_value_5f_, 2, v_Character, 40); l_38= _sendv(s_value_5f_, 2, v_Character, 41); _libid->method(v_AVLTreeNode, s_printOn_, (_imp_t)AVLTreeNode__printOn_); v_AVLTree= _libid->proto2(v_SequenceableCollection, AVLTree___5fsizeof(0, 0)); _libid->method(v_AVLTree, s__5fsizeof, (_imp_t)AVLTree___5fsizeof); _libid->method(v_AVLTree, s__5fdebugName, (_imp_t)AVLTree___5fdebugName); _libid->method(v_AVLTree, s__5fslots, (_imp_t)AVLTree___5fslots); _libid->export("AVLTree", v_AVLTree); _libid->method(v_AVLTree, s_withSortBlock_, (_imp_t)AVLTree__withSortBlock_); l_41= _sendv(s_function_5f_arity_5f_, 3, v_StaticBlockClosure, b_41, 2); _libid->method(v_AVLTree, s_initialize, (_imp_t)AVLTree__initialize); _libid->method(v_AVLTree, s_isEmpty, (_imp_t)AVLTree__isEmpty); _libid->method(v_AVLTree, s_add_, (_imp_t)AVLTree__add_); _libid->method(v_AVLTree, s_addNode_, (_imp_t)AVLTree__addNode_); _libid->method(v_AVLTree, s_depth, (_imp_t)AVLTree__depth); _libid->method(v_AVLTree, s_find_, (_imp_t)AVLTree__find_); _libid->method(v_AVLTree, s_findNode_, (_imp_t)AVLTree__findNode_); _libid->method(v_AVLTree, s_remove_, (_imp_t)AVLTree__remove_); _libid->method(v_AVLTree, s_removeNode_, (_imp_t)AVLTree__removeNode_); _libid->method(v_AVLTree, s_do_, (_imp_t)AVLTree__do_); _libid->method(v_AVLTree, s_reverseDo_, (_imp_t)AVLTree__reverseDo_); _libid->method(v_AVLTree, s_print, (_imp_t)AVLTree__print); _leave(); }