/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -I../st80 -c MethodNode.st -o ../stage2/MethodNode.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_hasNLR= 0; static oop s_line= 0; static oop s_tag= 0; static oop s_print= 0; static oop s_collect_= 0; static oop s_last= 0; static oop s_debugLine_= 0; static oop s_println_= 0; static oop s_endMethod= 0; static oop s_slots= 0; static oop s_addMethod_= 0; static oop s_second= 0; static oop s_pop= 0; static oop s_hasExports= 0; static oop s_noteUsed= 0; static oop s_withValue_position_= 0; static oop s_withName_position_= 0; static oop s_withPosition_= 0; static oop s_withType_selector_arguments_position_= 0; static oop s__5fdebugName= 0; static oop s_sequenceNumber= 0; static oop s_addStatement_= 0; static oop s_encodeType_position_= 0; static oop s_external_= 0; static oop s_noteImplementation_in_at_= 0; static oop s_nextLiteralTag= 0; static oop s_size_5f_value_5f_= 0; static oop s_noteResized= 0; static oop s_printString= 0; static oop s_beginMethod_in_= 0; static oop s_not= 0; static oop s_isReturnNode= 0; static oop s_name= 0; static oop s_requireType_at_= 0; static oop s_declareArgument_position_= 0; static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0; static oop s_declareTemporary_position_= 0; static oop s__5fsizeof= 0; static oop s_declareSlot_position_type_receiver_= 0; static oop s_encodeBody_= 0; static oop s_genDeclaration_= 0; static oop s_new_5f_= 0; static oop s_genDefinition_= 0; static oop s_genImplementation_= 0; static oop s_beginMethod_in_arguments_variadic_sequence_= 0; static oop s_beginSequence_= 0; static oop s_debugMethod_= 0; static oop s_addFirst_= 0; static oop s_createStateVector_inScope_constructor_= 0; static oop s_value_5f_= 0; static oop s_stateVectorSize= 0; static oop s__5fimport_= 0; static oop s_declareStack_= 0; static oop s_do_= 0; static oop s_blocks= 0; static oop s_stackSize= 0; static oop s_declareNonLocalReturn= 0; static oop s_declareVariadic_= 0; static oop s_defineStack_= 0; static oop s_defineNonLocalReturn= 0; static oop s__5fslots= 0; static oop s_ifTrue_= 0; static oop s_debugReturn_= 0; static oop s__2c= 0; static oop s_endSequence_= 0; static oop s_genImplementation_in_= 0; static oop s_ifFalse_= 0; static oop s_sourceEnd_= 0; static oop s_first= 0; static oop s_isFree= 0; static oop s_declareTemporary_= 0; static oop s_defineTemporary_= 0; static oop s_saveArgument_= 0; static oop s_generate_= 0; static oop s_genInitialisation_= 0; static oop s_add_= 0; static oop s__3d= 0; static oop s_selector= 0; static oop s_type= 0; static oop s_isVariadic= 0; static oop s_sourceEnd= 0; static oop s_beVariadic= 0; static oop s_isEmpty= 0; static oop s_initialiseMethod_in_sequence_= 0; static oop s_literals= 0; static oop s_printIndent_= 0; static oop s_println= 0; static oop s__2b= 0; static oop s_or_= 0; static oop s_addTo_= 0; static oop s_putln= 0; static oop s_tied_= 0; static oop s_encode_= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "hasNLR", &s_hasNLR }, { "line", &s_line }, { "tag", &s_tag }, { "print", &s_print }, { "collect:", &s_collect_ }, { "last", &s_last }, { "debugLine:", &s_debugLine_ }, { "println:", &s_println_ }, { "endMethod", &s_endMethod }, { "slots", &s_slots }, { "addMethod:", &s_addMethod_ }, { "second", &s_second }, { "pop", &s_pop }, { "hasExports", &s_hasExports }, { "noteUsed", &s_noteUsed }, { "withValue:position:", &s_withValue_position_ }, { "withName:position:", &s_withName_position_ }, { "withPosition:", &s_withPosition_ }, { "withType:selector:arguments:position:", &s_withType_selector_arguments_position_ }, { "_debugName", &s__5fdebugName }, { "sequenceNumber", &s_sequenceNumber }, { "addStatement:", &s_addStatement_ }, { "encodeType:position:", &s_encodeType_position_ }, { "external:", &s_external_ }, { "noteImplementation:in:at:", &s_noteImplementation_in_at_ }, { "nextLiteralTag", &s_nextLiteralTag }, { "size_:value_:", &s_size_5f_value_5f_ }, { "noteResized", &s_noteResized }, { "printString", &s_printString }, { "beginMethod:in:", &s_beginMethod_in_ }, { "not", &s_not }, { "isReturnNode", &s_isReturnNode }, { "name", &s_name }, { "requireType:at:", &s_requireType_at_ }, { "declareArgument:position:", &s_declareArgument_position_ }, { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ }, { "declareTemporary:position:", &s_declareTemporary_position_ }, { "_sizeof", &s__5fsizeof }, { "declareSlot:position:type:receiver:", &s_declareSlot_position_type_receiver_ }, { "encodeBody:", &s_encodeBody_ }, { "genDeclaration:", &s_genDeclaration_ }, { "new_:", &s_new_5f_ }, { "genDefinition:", &s_genDefinition_ }, { "genImplementation:", &s_genImplementation_ }, { "beginMethod:in:arguments:variadic:sequence:", &s_beginMethod_in_arguments_variadic_sequence_ }, { "beginSequence:", &s_beginSequence_ }, { "debugMethod:", &s_debugMethod_ }, { "addFirst:", &s_addFirst_ }, { "createStateVector:inScope:constructor:", &s_createStateVector_inScope_constructor_ }, { "value_:", &s_value_5f_ }, { "stateVectorSize", &s_stateVectorSize }, { "_import:", &s__5fimport_ }, { "declareStack:", &s_declareStack_ }, { "do:", &s_do_ }, { "blocks", &s_blocks }, { "stackSize", &s_stackSize }, { "declareNonLocalReturn", &s_declareNonLocalReturn }, { "declareVariadic:", &s_declareVariadic_ }, { "defineStack:", &s_defineStack_ }, { "defineNonLocalReturn", &s_defineNonLocalReturn }, { "_slots", &s__5fslots }, { "ifTrue:", &s_ifTrue_ }, { "debugReturn:", &s_debugReturn_ }, { ",", &s__2c }, { "endSequence:", &s_endSequence_ }, { "genImplementation:in:", &s_genImplementation_in_ }, { "ifFalse:", &s_ifFalse_ }, { "sourceEnd:", &s_sourceEnd_ }, { "first", &s_first }, { "isFree", &s_isFree }, { "declareTemporary:", &s_declareTemporary_ }, { "defineTemporary:", &s_defineTemporary_ }, { "saveArgument:", &s_saveArgument_ }, { "generate:", &s_generate_ }, { "genInitialisation:", &s_genInitialisation_ }, { "add:", &s_add_ }, { "=", &s__3d }, { "selector", &s_selector }, { "type", &s_type }, { "isVariadic", &s_isVariadic }, { "sourceEnd", &s_sourceEnd }, { "beVariadic", &s_beVariadic }, { "isEmpty", &s_isEmpty }, { "initialiseMethod:in:sequence:", &s_initialiseMethod_in_sequence_ }, { "literals", &s_literals }, { "printIndent:", &s_printIndent_ }, { "println", &s_println }, { "+", &s__2b }, { "or:", &s_or_ }, { "addTo:", &s_addTo_ }, { "putln", &s_putln }, { "tied:", &s_tied_ }, { "encode:", &s_encode_ }, { 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_ParseNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; }; struct t_OrderedCollection { struct _vtable *_vtable[0]; oop v_array; oop v_firstIndex; oop v_lastIndex; }; struct t_SequenceNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_temporaries; oop v_statements; oop v_scope; oop v_literals; oop v_blocks; }; struct t_VariableNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_variable; oop v_level; }; struct t_ReturnNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_nonLocal; oop v_variadic; }; struct t_LocalReturnNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_nonLocal; oop v_variadic; }; struct t_BlockNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_temporaries; oop v_statements; oop v_scope; oop v_literals; oop v_blocks; oop v_arguments; oop v_tag; oop v_constructor; oop v_stateConstructor; }; struct t_MethodNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_temporaries; oop v_statements; oop v_scope; oop v_literals; oop v_blocks; oop v_arguments; oop v_tag; oop v_constructor; oop v_stateConstructor; oop v_type; oop v_selector; oop v_sequenceNumber; oop v_variadic; oop v_sourceEnd; }; static oop l_2= 0; static oop l_13= 0; static oop l_14= 0; static oop l_15= 0; static oop l_16= 0; static oop l_22= 0; static oop l_39= 0; static oop l_40= 0; static oop l_41= 0; static oop l_42= 0; static oop l_43= 0; static oop l_44= 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_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_true= 0; static oop v_false= 0; static oop v_ParseNode= 0; static oop v_SequenceNode= 0; static oop v_VariableNode= 0; static oop v_ReturnNode= 0; static oop v_BlockNode= 0; static oop v_MethodNode= 0; static size_t MethodNode___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_MethodNode); } static char *MethodNode___5fdebugName(oop _closure, oop v_self) { return "MethodNode"; } static struct __slotinfo *MethodNode___5fslots(oop _closure, oop v_self) { static struct __slotinfo info[]= { { "position", 0, 4 }, { "location", 4, 4 }, { "temporaries", 8, 4 }, { "statements", 12, 4 }, { "scope", 16, 4 }, { "literals", 20, 4 }, { "blocks", 24, 4 }, { "arguments", 28, 4 }, { "tag", 32, 4 }, { "constructor", 36, 4 }, { "stateConstructor", 40, 4 }, { "type", 44, 4 }, { "selector", 48, 4 }, { "sequenceNumber", 52, 4 }, { "variadic", 56, 4 }, { "sourceEnd", 60, 4 }, { 0, 0, 0 } }; return &info[0]; } static struct __methodinfo __info1= { "withType:selector:arguments:position:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 30, 41, 0 }; static oop MethodNode__withType_selector_arguments_position_(oop v__closure, oop v_stateful_self, oop v_self, oop v_typeString, oop v_selectorString, oop v_argumentStrings, oop v_aPosition) { _enter(&__info1); oop _1= 0; oop _2= 0; _line(30); _1= v_self; _2= v_aPosition; _line(32); _1=_sendv(s_withPosition_, 2, _1, _2); v_self= _1; v_stateful_self= _1; _1= v_typeString; ((struct t_MethodNode *)v_stateful_self)->v_type= _1; _1= v_selectorString; ((struct t_MethodNode *)v_stateful_self)->v_selector= _1; _1= l_2; ((struct t_MethodNode *)v_stateful_self)->v_sequenceNumber= _1; _1= v_argumentStrings; ((struct t_MethodNode *)v_stateful_self)->v_arguments= _1; _1= v_false; ((struct t_MethodNode *)v_stateful_self)->v_variadic= _1; _1= v_aPosition; _line(38); _1=_sendv(s_line, 1, _1); ((struct t_MethodNode *)v_stateful_self)->v_sourceEnd= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info3= { "type", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 41, 42, &__info1 }; static oop MethodNode__type(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info3); oop _1= 0; _line(41); _1= ((struct t_MethodNode *)v_stateful_self)->v_type; _leave(); return _1; _leave(); } static struct __methodinfo __info4= { "selector", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 42, 43, &__info3 }; static oop MethodNode__selector(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info4); oop _1= 0; _line(42); _1= ((struct t_MethodNode *)v_stateful_self)->v_selector; _leave(); return _1; _leave(); } static struct __methodinfo __info5= { "sequenceNumber", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 43, 44, &__info4 }; static oop MethodNode__sequenceNumber(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info5); oop _1= 0; _line(43); _1= ((struct t_MethodNode *)v_stateful_self)->v_sequenceNumber; _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "isVariadic", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 44, 45, &__info5 }; static oop MethodNode__isVariadic(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info6); oop _1= 0; _line(44); _1= ((struct t_MethodNode *)v_stateful_self)->v_variadic; _leave(); return _1; _leave(); } static struct __methodinfo __info7= { "sourceEnd", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 45, 47, &__info6 }; static oop MethodNode__sourceEnd(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info7); oop _1= 0; _line(45); _1= ((struct t_MethodNode *)v_stateful_self)->v_sourceEnd; _leave(); return _1; _leave(); } static struct __methodinfo __info8= { "beVariadic", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 47, 48, &__info7 }; static oop MethodNode__beVariadic(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info8); oop _1= 0; _line(47); _1= v_true; ((struct t_MethodNode *)v_stateful_self)->v_variadic= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info9= { "sourceEnd:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 48, 50, &__info8 }; static oop MethodNode__sourceEnd_(oop v__closure, oop v_stateful_self, oop v_self, oop v_lineNum) { _enter(&__info9); oop _1= 0; _line(48); _1= v_lineNum; ((struct t_MethodNode *)v_stateful_self)->v_sourceEnd= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info10= { "external:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 50, 51, &__info9 }; static oop MethodNode__external_(oop v__closure, oop v_stateful_self, oop v_self, oop v_externalNode) { _enter(&__info10); oop _1= 0; oop _2= 0; _line(50); _1= v_self; _2= v_externalNode; _line(50); _1=_sendv(s_addStatement_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info11= { "addTo:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 51, 53, &__info10 }; static oop MethodNode__addTo_(oop v__closure, oop v_stateful_self, oop v_self, oop v_client) { _enter(&__info11); oop _1= 0; oop _2= 0; _line(51); _1= v_client; _2= v_self; _line(51); _1=_sendv(s_addMethod_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info17= { "[] encode:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 53, 87, &__info11 }; static oop b_17(oop v__closure, oop v__self, oop v_arg) { _enter(&__info17); oop _1= 0; oop _2= 0; oop _3= 0; _line(68); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* encoder */ _2= v_arg; _3= ((struct t_MethodNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_position; /* position */ _line(68); _1=_sendv(s_declareArgument_position_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info18= { "[] encode:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 53, 87, &__info17 }; static oop b_18(oop v__closure, oop v__self, oop v_tmp) { _enter(&__info18); oop _1= 0; oop _2= 0; oop _3= 0; _line(69); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* encoder */ _2= v_tmp; _3= ((struct t_MethodNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_position; /* position */ _line(69); _1=_sendv(s_declareTemporary_position_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info19= { "[] encode:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 53, 87, &__info18 }; static oop b_19(oop v__closure, oop v__self, oop v_slot) { _enter(&__info19); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; _line(72); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* encoder */ _2= v_slot; _3= ((struct t_MethodNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_position; /* position */ _4= ((struct t_MethodNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_type; /* type */ _5= ((struct t_MethodNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_arguments; /* arguments */ _line(72); _5=_sendv(s_first, 1, _5); _line(72); _1=_sendv(s_declareSlot_position_type_receiver_, 5, _1, _2, _3, _4, _5); _leave(); return _1; _leave(); } static struct __methodinfo __info20= { "[] encode:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 53, 87, &__info19 }; static oop b_20(oop v__closure, oop v__self, oop v_stmt) { _enter(&__info20); oop _1= 0; oop _2= 0; _line(76); _1= v_stmt; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* encoder */ _line(77); _1=_sendv(s_encode_, 2, _1, _2); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* encoder */ _line(78); _1=_sendv(s_pop, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info21= { "[] encode:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 53, 87, &__info20 }; static oop b_21(oop v__closure, oop v__self, oop v_block) { _enter(&__info21); oop _1= 0; oop _2= 0; _line(80); _1= v_block; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* encoder */ _line(80); _1=_sendv(s_encodeBody_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info12= { "encode:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 53, 87, &__info21 }; static oop MethodNode__encode_(oop v__closure, oop v_stateful_self, oop v_self, oop v_encoder) { _enter(&__info12); oop _state1= _sendv(s_new_5f_, 2, v__vector, 19); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; ((oop *)_state1)[2]= v_stateful_self; ((oop *)_state1)[1]= v_encoder; _line(53); _1= ((oop *)_state1)[1]; /* encoder */ _2= ((struct t_MethodNode *)((oop *)_state1)[2])->v_type; /* type */ _3= ((struct t_MethodNode *)((oop *)_state1)[2])->v_position; /* position */ _line(56); _1=_sendv(s_encodeType_position_, 3, _1, _2, _3); ((struct t_MethodNode *)((oop *)_state1)[2])->v_type= _1; /* type */ _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_type; /* type */ _line(57); _1=_sendv(s_noteUsed, 1, _1); _1= ((oop *)_state1)[1]; /* encoder */ _2= ((struct t_MethodNode *)((oop *)_state1)[2])->v_selector; /* selector */ _3= ((struct t_MethodNode *)((oop *)_state1)[2])->v_type; /* type */ _line(58); _3=_sendv(s_name, 1, _3); _4= ((struct t_MethodNode *)((oop *)_state1)[2])->v_position; /* position */ _line(58); _1=_sendv(s_noteImplementation_in_at_, 4, _1, _2, _3, _4); ((struct t_MethodNode *)((oop *)_state1)[2])->v_sequenceNumber= _1; /* sequenceNumber */ _1= ((oop *)_state1)[1]; /* encoder */ _line(59); _1=_sendv(s_nextLiteralTag, 1, _1); ((struct t_MethodNode *)((oop *)_state1)[2])->v_tag= _1; /* tag */ /* ifTrue: */ _1= 0; _2= l_13; _3= ((struct t_MethodNode *)((oop *)_state1)[2])->v_selector; /* selector */ 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 _l1; { _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_type; /* type */ _line(62); _1=_sendv(s_noteResized, 1, _1); _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_position; /* position */ _line(63); _1=_sendv(s_printString, 1, _1); _2= l_14; _line(63); _1=_sendv(s__2c, 2, _1, _2); _line(63); _1=_sendv(s_putln, 1, _1); } _l1:; _1= ((oop *)_state1)[1]; /* encoder */ _2= v_self; _3= ((struct t_MethodNode *)((oop *)_state1)[2])->v_type; /* type */ _line(65); _1=_sendv(s_beginMethod_in_, 3, _1, _2, _3); ((struct t_MethodNode *)((oop *)_state1)[2])->v_scope= _1; /* scope */ _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_arguments; /* arguments */ _2= l_15; _line(66); _1=_sendv(s_addFirst_, 2, _1, _2); _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_arguments; /* arguments */ _2= l_16; _line(67); _1=_sendv(s_addFirst_, 2, _1, _2); _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_arguments; /* arguments */ /* Scope('arg'->ArgumentVariableNode) */ /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'sourceEnd'->SlotVariableNode 'scope'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_17, 1, 0, ((oop *)_state1), 0); _line(68); _1=_sendv(s_collect_, 2, _1, _2); ((struct t_MethodNode *)((oop *)_state1)[2])->v_arguments= _1; /* arguments */ _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_temporaries; /* temporaries */ /* Scope('tmp'->ArgumentVariableNode) */ /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'sourceEnd'->SlotVariableNode 'scope'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_18, 1, 0, ((oop *)_state1), 0); _line(69); _1=_sendv(s_collect_, 2, _1, _2); ((struct t_MethodNode *)((oop *)_state1)[2])->v_temporaries= _1; /* temporaries */ _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_arguments; /* arguments */ _line(71); _1=_sendv(s_second, 1, _1); _2= ((struct t_MethodNode *)((oop *)_state1)[2])->v_arguments; /* arguments */ _line(71); _2=_sendv(s_first, 1, _2); _line(71); _1=_sendv(s_tied_, 2, _1, _2); _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_type; /* type */ _line(72); _1=_sendv(s_slots, 1, _1); /* Scope('slot'->ArgumentVariableNode) */ /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'sourceEnd'->SlotVariableNode 'scope'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_19, 1, 0, ((oop *)_state1), 0); _line(72); _1=_sendv(s_do_, 2, _1, _2); /* ifTrue: */ _1= 0; /* or: */ _2= ((struct t_MethodNode *)((oop *)_state1)[2])->v_statements; /* statements */ _line(74); _2=_sendv(s_isEmpty, 1, _2); if (_2) goto _l3; { _2= ((struct t_MethodNode *)((oop *)_state1)[2])->v_statements; /* statements */ _line(74); _2=_sendv(s_last, 1, _2); _line(74); _2=_sendv(s_isReturnNode, 1, _2); _line(74); _2=_sendv(s_not, 1, _2); } _l3:; if (!_2) goto _l2; { _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_statements; /* statements */ _2= v_ReturnNode; _3= v_VariableNode; _4= l_15; _5= ((struct t_MethodNode *)((oop *)_state1)[2])->v_position; /* position */ _line(75); _3=_sendv(s_withName_position_, 3, _3, _4, _5); _4= ((struct t_MethodNode *)((oop *)_state1)[2])->v_position; /* position */ _line(75); _2=_sendv(s_withValue_position_, 3, _2, _3, _4); _line(75); _1=_sendv(s_add_, 2, _1, _2); } _l2:; _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_statements; /* statements */ /* Scope('stmt'->ArgumentVariableNode) */ /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'sourceEnd'->SlotVariableNode 'scope'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_20, 1, 0, ((oop *)_state1), 0); _line(76); _1=_sendv(s_do_, 2, _1, _2); _1= ((struct t_MethodNode *)((oop *)_state1)[2])->v_scope; /* scope */ _line(80); _1=_sendv(s_blocks, 1, _1); /* Scope('block'->ArgumentVariableNode) */ /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'sourceEnd'->SlotVariableNode 'scope'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_21, 1, 0, ((oop *)_state1), 0); _line(80); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* encoder */ _line(82); _1=_sendv(s_endMethod, 1, _1); _1= ((oop *)_state1)[1]; /* encoder */ _line(83); _1=_sendv(s_literals, 1, _1); ((struct t_MethodNode *)((oop *)_state1)[2])->v_literals= _1; /* literals */ /* ifTrue: */ _1= 0; _2= ((struct t_MethodNode *)((oop *)_state1)[2])->v_scope; /* scope */ _line(84); _2=_sendv(s_hasExports, 1, _2); if (!_2) goto _l4; { _1= ((oop *)_state1)[1]; /* encoder */ _2= l_22; _3= ((struct t_MethodNode *)((oop *)_state1)[2])->v_position; /* position */ _line(84); _1=_sendv(s_requireType_at_, 3, _1, _2, _3); ((struct t_MethodNode *)((oop *)_state1)[2])->v_stateConstructor= _1; /* stateConstructor */ } _l4:; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info24= { "[] genDeclaration:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 87, 93, &__info12 }; static oop b_24(oop v__closure, oop v__self, oop v_literal) { _enter(&__info24); oop _1= 0; oop _2= 0; _line(89); _1= v_literal; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(89); _1=_sendv(s_genDeclaration_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info25= { "[] genDeclaration:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 87, 93, &__info24 }; static oop b_25(oop v__closure, oop v__self, oop v_block) { _enter(&__info25); oop _1= 0; oop _2= 0; _line(90); _1= v_block; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(90); _1=_sendv(s_genDeclaration_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info23= { "genDeclaration:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 87, 93, &__info25 }; static oop MethodNode__genDeclaration_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen) { _enter(&__info23); oop _state1= _sendv(s_new_5f_, 2, v__vector, 2); oop _1= 0; oop _2= 0; ((oop *)_state1)[1]= v_gen; _line(87); _1= ((struct t_MethodNode *)v_stateful_self)->v_literals; /* Scope('literal'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_24, 1, 0, ((oop *)_state1), 0); _line(89); _1=_sendv(s_do_, 2, _1, _2); _1= ((struct t_MethodNode *)v_stateful_self)->v_scope; _line(90); _1=_sendv(s_blocks, 1, _1); /* Scope('block'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_25, 1, 0, ((oop *)_state1), 0); _line(90); _1=_sendv(s_do_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info27= { "[] genDefinition:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 93, 99, &__info23 }; static oop b_27(oop v__closure, oop v__self, oop v_literal) { _enter(&__info27); oop _1= 0; oop _2= 0; _line(95); _1= v_literal; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(95); _1=_sendv(s_genDefinition_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info28= { "[] genDefinition:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 93, 99, &__info27 }; static oop b_28(oop v__closure, oop v__self, oop v_block) { _enter(&__info28); oop _1= 0; oop _2= 0; _line(96); _1= v_block; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(96); _1=_sendv(s_genDefinition_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info26= { "genDefinition:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 93, 99, &__info28 }; static oop MethodNode__genDefinition_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen) { _enter(&__info26); oop _state1= _sendv(s_new_5f_, 2, v__vector, 2); oop _1= 0; oop _2= 0; ((oop *)_state1)[1]= v_gen; _line(93); _1= ((struct t_MethodNode *)v_stateful_self)->v_literals; /* Scope('literal'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_27, 1, 0, ((oop *)_state1), 0); _line(95); _1=_sendv(s_do_, 2, _1, _2); _1= ((struct t_MethodNode *)v_stateful_self)->v_scope; _line(96); _1=_sendv(s_blocks, 1, _1); /* Scope('block'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_28, 1, 0, ((oop *)_state1), 0); _line(96); _1=_sendv(s_do_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info30= { "[] genImplementation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 99, 132, &__info26 }; static oop b_30(oop v__closure, oop v__self, oop v_block) { _enter(&__info30); oop _1= 0; oop _2= 0; oop _3= 0; _line(101); _1= v_block; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(101); _1=_sendv(s_genImplementation_in_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info31= { "[] genImplementation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 99, 132, &__info30 }; static oop b_31(oop v__closure, oop v__self, oop v_var) { _enter(&__info31); oop _1= 0; oop _2= 0; _line(107); /* ifFalse: */ _1= 0; _2= v_var; _line(107); _2=_sendv(s_isFree, 1, _2); if (_2) goto _l5; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _2= v_var; _line(107); _1=_sendv(s_declareTemporary_, 2, _1, _2); } _l5:; _leave(); return _1; _leave(); } static struct __methodinfo __info32= { "[] genImplementation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 99, 132, &__info31 }; static oop b_32(oop v__closure, oop v__self, oop v_var) { _enter(&__info32); oop _1= 0; oop _2= 0; _line(112); /* ifFalse: */ _1= 0; _2= v_var; _line(112); _2=_sendv(s_isFree, 1, _2); if (_2) goto _l6; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _2= v_var; _line(112); _1=_sendv(s_defineTemporary_, 2, _1, _2); } _l6:; _leave(); return _1; _leave(); } static struct __methodinfo __info33= { "[] genImplementation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 99, 132, &__info32 }; static oop b_33(oop v__closure, oop v__self, oop v_var) { _enter(&__info33); oop _1= 0; oop _2= 0; _line(114); /* ifTrue: */ _1= 0; _2= v_var; _line(114); _2=_sendv(s_isFree, 1, _2); if (!_2) goto _l7; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _2= v_var; _line(114); _1=_sendv(s_saveArgument_, 2, _1, _2); } _l7:; _leave(); return _1; _leave(); } static struct __methodinfo __info34= { "[] genImplementation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 99, 132, &__info33 }; static oop b_34(oop v__closure, oop v__self, oop v_stmt) { _enter(&__info34); oop _1= 0; oop _2= 0; _line(126); _1= v_stmt; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(126); _1=_sendv(s_generate_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info29= { "genImplementation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 99, 132, &__info34 }; static oop MethodNode__genImplementation_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen) { _enter(&__info29); oop _state1= _sendv(s_new_5f_, 2, v__vector, 20); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; oop _6= 0; ((oop *)_state1)[3]= v_stateful_self; ((oop *)_state1)[2]= v_self; ((oop *)_state1)[1]= v_gen; _line(99); _1= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(101); _1=_sendv(s_blocks, 1, _1); /* Scope('block'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_30, 1, 0, ((oop *)_state1), 0); _line(101); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((oop *)_state1)[2]; /* self */ _3= ((struct t_MethodNode *)((oop *)_state1)[3])->v_type; /* type */ _4= ((struct t_MethodNode *)((oop *)_state1)[3])->v_arguments; /* arguments */ _5= ((struct t_MethodNode *)((oop *)_state1)[3])->v_variadic; /* variadic */ _6= ((struct t_MethodNode *)((oop *)_state1)[3])->v_sequenceNumber; /* sequenceNumber */ _line(102); _1=_sendv(s_beginMethod_in_arguments_variadic_sequence_, 6, _1, _2, _3, _4, _5, _6); _1= ((oop *)_state1)[1]; /* gen */ _2= ((oop *)_state1)[2]; /* self */ _line(103); _1=_sendv(s_beginSequence_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((oop *)_state1)[2]; /* self */ _line(104); _1=_sendv(s_debugMethod_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(105); _2=_sendv(s_hasExports, 1, _2); if (!_2) goto _l8; { _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(105); _2=_sendv(s_stateVectorSize, 1, _2); _3= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(105); _3=_sendv(s_tag, 1, _3); _4= ((struct t_MethodNode *)((oop *)_state1)[3])->v_stateConstructor; /* stateConstructor */ _line(105); _1=_sendv(s_createStateVector_inScope_constructor_, 4, _1, _2, _3, _4); } _l8:; _1= ((struct t_MethodNode *)((oop *)_state1)[3])->v_temporaries; /* temporaries */ /* Scope('var'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_31, 1, 0, ((oop *)_state1), 0); _line(107); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(108); _2=_sendv(s_stackSize, 1, _2); _line(108); _1=_sendv(s_declareStack_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(109); _2=_sendv(s_hasNLR, 1, _2); if (!_2) goto _l9; { _1= ((oop *)_state1)[1]; /* gen */ _line(109); _1=_sendv(s_declareNonLocalReturn, 1, _1); } _l9:; /* ifTrue: */ _1= 0; _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_variadic; /* variadic */ if (!_2) goto _l10; { _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_arguments; /* arguments */ _line(110); _2=_sendv(s_last, 1, _2); _line(110); _1=_sendv(s_declareVariadic_, 2, _1, _2); } _l10:; _1= ((struct t_MethodNode *)((oop *)_state1)[3])->v_temporaries; /* temporaries */ /* Scope('var'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_32, 1, 0, ((oop *)_state1), 0); _line(112); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(113); _2=_sendv(s_stackSize, 1, _2); _line(113); _1=_sendv(s_defineStack_, 2, _1, _2); _1= ((struct t_MethodNode *)((oop *)_state1)[3])->v_arguments; /* arguments */ /* Scope('var'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_33, 1, 0, ((oop *)_state1), 0); _line(114); _1=_sendv(s_do_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_scope; /* scope */ _line(123); _2=_sendv(s_hasNLR, 1, _2); if (!_2) goto _l11; { _1= ((oop *)_state1)[1]; /* gen */ _line(123); _1=_sendv(s_defineNonLocalReturn, 1, _1); } _l11:; _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_position; /* position */ _line(125); _1=_sendv(s_debugLine_, 2, _1, _2); _1= ((struct t_MethodNode *)((oop *)_state1)[3])->v_statements; /* statements */ /* Scope('stmt'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_34, 1, 0, ((oop *)_state1), 0); _line(126); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)((oop *)_state1)[3])->v_position; /* position */ _line(127); _1=_sendv(s_debugReturn_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((oop *)_state1)[2]; /* self */ _line(128); _1=_sendv(s_endSequence_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info36= { "[] genInitialisation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 132, 139, &__info29 }; static oop b_36(oop v__closure, oop v__self, oop v_literal) { _enter(&__info36); oop _1= 0; oop _2= 0; _line(134); _1= v_literal; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(134); _1=_sendv(s_genInitialisation_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info37= { "[] genInitialisation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 132, 139, &__info36 }; static oop b_37(oop v__closure, oop v__self, oop v_block) { _enter(&__info37); oop _1= 0; oop _2= 0; _line(135); _1= v_block; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* gen */ _line(135); _1=_sendv(s_genInitialisation_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info35= { "genInitialisation:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 132, 139, &__info37 }; static oop MethodNode__genInitialisation_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen) { _enter(&__info35); oop _state1= _sendv(s_new_5f_, 2, v__vector, 2); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; ((oop *)_state1)[1]= v_gen; _line(132); _1= ((struct t_MethodNode *)v_stateful_self)->v_literals; /* Scope('literal'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_36, 1, 0, ((oop *)_state1), 0); _line(134); _1=_sendv(s_do_, 2, _1, _2); _1= ((struct t_MethodNode *)v_stateful_self)->v_scope; _line(135); _1=_sendv(s_blocks, 1, _1); /* Scope('block'->ArgumentVariableNode) */ /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'type'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'selector'->SlotVariableNode 'sequenceNumber'->SlotVariableNode 'variadic'->SlotVariableNode 'scope'->SlotVariableNode 'sourceEnd'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_37, 1, 0, ((oop *)_state1), 0); _line(135); _1=_sendv(s_do_, 2, _1, _2); _1= ((oop *)_state1)[1]; /* gen */ _2= ((struct t_MethodNode *)v_stateful_self)->v_selector; _3= ((struct t_MethodNode *)v_stateful_self)->v_type; _4= ((struct t_MethodNode *)v_stateful_self)->v_sequenceNumber; _line(136); _1=_sendv(s_initialiseMethod_in_sequence_, 4, _1, _2, _3, _4); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info38= { "println:", "MethodNode", "/Users/piumarta/src/idst/object/idc/MethodNode.st", 0, 139, 149, &__info35 }; static oop MethodNode__println_(oop v__closure, oop v_stateful_self, oop v_self, oop v_indent) { _enter(&__info38); oop _1= 0; oop _2= 0; oop _3= 0; _line(139); _1= v_self; _2= v_indent; _line(141); _1=_sendv(s_printIndent_, 2, _1, _2); _1= l_39; _2= ((struct t_MethodNode *)v_stateful_self)->v_type; _line(142); _2=_sendv(s_printString, 1, _2); _line(142); _1=_sendv(s__2c, 2, _1, _2); _2= l_40; _line(142); _1=_sendv(s__2c, 2, _1, _2); _2= ((struct t_MethodNode *)v_stateful_self)->v_selector; _line(142); _1=_sendv(s__2c, 2, _1, _2); _line(142); _1=_sendv(s_print, 1, _1); /* ifTrue: */ _1= 0; _2= ((struct t_MethodNode *)v_stateful_self)->v_variadic; if (!_2) goto _l12; { _1= l_41; _line(143); _1=_sendv(s_print, 1, _1); } _l12:; _1= l_42; _line(144); _1=_sendv(s_println, 1, _1); _1= v_self; _2= v_indent; _3= l_43; { 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__2b, 2, _2, _3); } _line(145); _1=_superv(v_BlockNode, s_println_, 2, _1, _2); _1= v_self; _2= v_indent; _line(146); _1=_sendv(s_printIndent_, 2, _1, _2); _1= l_44; _line(147); _1=_sendv(s_println, 1, _1); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "MethodNode.st", 0, 0, 0, &__info38 }; void __id__init__MethodNode(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, "BlockNode", "__id__init__BlockNode"); 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_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_true= _libid->import("true"); v_false= _libid->import("false"); v_ParseNode= _libid->import("ParseNode"); v_SequenceNode= _libid->import("SequenceNode"); v_VariableNode= _libid->import("VariableNode"); v_ReturnNode= _libid->import("ReturnNode"); v_BlockNode= _libid->import("BlockNode"); v_MethodNode= _libid->proto2(v_BlockNode, MethodNode___5fsizeof(0, 0)); _libid->method(v_MethodNode, s__5fsizeof, (_imp_t)MethodNode___5fsizeof); _libid->method(v_MethodNode, s__5fdebugName, (_imp_t)MethodNode___5fdebugName); _libid->method(v_MethodNode, s__5fslots, (_imp_t)MethodNode___5fslots); _libid->export("MethodNode", v_MethodNode); l_2= _sendv(s_value_5f_, 2, v_SmallInteger, 0); _libid->method(v_MethodNode, s_withType_selector_arguments_position_, (_imp_t)MethodNode__withType_selector_arguments_position_); _libid->method(v_MethodNode, s_type, (_imp_t)MethodNode__type); _libid->method(v_MethodNode, s_selector, (_imp_t)MethodNode__selector); _libid->method(v_MethodNode, s_sequenceNumber, (_imp_t)MethodNode__sequenceNumber); _libid->method(v_MethodNode, s_isVariadic, (_imp_t)MethodNode__isVariadic); _libid->method(v_MethodNode, s_sourceEnd, (_imp_t)MethodNode__sourceEnd); _libid->method(v_MethodNode, s_beVariadic, (_imp_t)MethodNode__beVariadic); _libid->method(v_MethodNode, s_sourceEnd_, (_imp_t)MethodNode__sourceEnd_); _libid->method(v_MethodNode, s_external_, (_imp_t)MethodNode__external_); _libid->method(v_MethodNode, s_addTo_, (_imp_t)MethodNode__addTo_); l_13= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 7, "_sizeof"); l_14= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 98, ": WARNING: redefining _sizeof can break object allocation; check _sizeof carefully in all subtypes"); l_15= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 4, "self"); l_16= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 13, "stateful_self"); l_22= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 6, "vector"); _libid->method(v_MethodNode, s_encode_, (_imp_t)MethodNode__encode_); _libid->method(v_MethodNode, s_genDeclaration_, (_imp_t)MethodNode__genDeclaration_); _libid->method(v_MethodNode, s_genDefinition_, (_imp_t)MethodNode__genDefinition_); _libid->method(v_MethodNode, s_genImplementation_, (_imp_t)MethodNode__genImplementation_); _libid->method(v_MethodNode, s_genInitialisation_, (_imp_t)MethodNode__genInitialisation_); l_39= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 7, "Method "); l_40= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, " "); l_41= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 4, " ..."); l_42= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 2, " ["); l_43= _sendv(s_value_5f_, 2, v_SmallInteger, 1); l_44= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "]"); _libid->method(v_MethodNode, s_println_, (_imp_t)MethodNode__println_); _leave(); }