/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -I../st80 -m idc1.st -o ../stage2/idc1.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_new_5f_= 0; static oop s_addFirst_= 0; static oop s_value_5f_= 0; static oop s__5fimport_= 0; static oop s_ifFalse_= 0; static oop s_arguments= 0; static oop s_ifTrue_= 0; static oop s__2c= 0; static oop s_size= 0; static oop s_first= 0; static oop s_macroFlag_= 0; static oop s_add_= 0; static oop s_asString= 0; static oop s_parse_startingAt_= 0; static oop s__3c= 0; static oop s_size_5f_value_5f_= 0; static oop s_new= 0; static oop s_searchPaths= 0; static oop s_compileFile_toFile_withOptions_= 0; static oop s__3e= 0; static oop s_outputType_= 0; static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0; static oop s_cacheLevel_= 0; static oop s_specialFlag_= 0; static oop s_taggedFlag_= 0; static oop s_default_= 0; static oop s_verboseFlag_= 0; static oop s_debugging_= 0; static oop s_executionModel_= 0; static oop s_function_5f_arity_5f_= 0; static oop s_includes_= 0; static oop s_error_= 0; static oop s_at_put_= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "new_:", &s_new_5f_ }, { "addFirst:", &s_addFirst_ }, { "value_:", &s_value_5f_ }, { "_import:", &s__5fimport_ }, { "ifFalse:", &s_ifFalse_ }, { "arguments", &s_arguments }, { "ifTrue:", &s_ifTrue_ }, { ",", &s__2c }, { "size", &s_size }, { "first", &s_first }, { "macroFlag:", &s_macroFlag_ }, { "add:", &s_add_ }, { "asString", &s_asString }, { "parse:startingAt:", &s_parse_startingAt_ }, { "<", &s__3c }, { "size_:value_:", &s_size_5f_value_5f_ }, { "new", &s_new }, { "searchPaths", &s_searchPaths }, { "compileFile:toFile:withOptions:", &s_compileFile_toFile_withOptions_ }, { ">", &s__3e }, { "outputType:", &s_outputType_ }, { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ }, { "cacheLevel:", &s_cacheLevel_ }, { "specialFlag:", &s_specialFlag_ }, { "taggedFlag:", &s_taggedFlag_ }, { "default:", &s_default_ }, { "verboseFlag:", &s_verboseFlag_ }, { "debugging:", &s_debugging_ }, { "executionModel:", &s_executionModel_ }, { "function_:arity_:", &s_function_5f_arity_5f_ }, { "includes:", &s_includes_ }, { "error:", &s_error_ }, { "at:put:", &s_at_put_ }, { 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_LookupKey { struct _vtable *_vtable[0]; oop v_key; }; struct t_Association { struct _vtable *_vtable[0]; oop v_key; oop v_value; }; struct t_AVLTreeNode { struct _vtable *_vtable[0]; oop v_left; oop v_right; oop v_height; oop v_value; }; struct t_AVLTree { struct _vtable *_vtable[0]; oop v_rootNode; oop v_orderBlock; }; struct t_Set { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_OrderedCollection { struct _vtable *_vtable[0]; oop v_array; oop v_firstIndex; oop v_lastIndex; }; struct t_Dictionary { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_IdentitySet { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_IdentityDictionary { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_Stream { struct _vtable *_vtable[0]; }; struct t_PositionableStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; }; struct t_ReadStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; }; struct t_GetOpt { struct _vtable *_vtable[0]; oop v_tally; oop v_array; oop v_defaultBlock; }; struct t_Smalltalk { struct _vtable *_vtable[0]; oop v_argumentCount; oop v_argumentVector; }; struct t_SymbolTable { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_WriteStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; oop v_writeLimit; }; struct t_SelectorTable { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_PerformWithArgumentsSelectors { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_EncodedVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_offset; }; struct t_LocalVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_offset; oop v_index; }; struct t_ArgumentVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_offset; oop v_index; oop v_tied; }; struct t_ParseNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; }; struct t_LiteralNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_ArrayLiteralNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_ArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_AssignmentNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_variable; }; 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_ByteArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_SlotVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_receiver; oop v_type; }; struct t_TemporaryVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_offset; oop v_index; }; struct t_Scope { struct _vtable *_vtable[0]; oop v_tally; oop v_array; oop v_argumentCount; oop v_temporaryCount; oop v_stackSize; oop v_outer; oop v_blocks; oop v_tag; oop v_level; oop v_lastOffset; oop v_encodings; oop v_exportFlag; oop v_importFlag; oop v_nlrFlag; oop v_hasVarargs; }; struct t_IntegerNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_SendNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_receiver; oop v_selector; oop v_arguments; oop v_cascades; oop v_superedType; oop v_specialGenerator; }; struct t_GlobalVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_offset; }; struct t_Encoder { struct _vtable *_vtable[0]; oop v_globalContext; oop v_globals; oop v_scope; oop v_tempCount; oop v_tempMax; oop v_outerCount; oop v_selectors; oop v_literals; oop v_literalMap; oop v_literalTag; oop v_methodType; oop v_specialEncoders; oop v_implementations; oop v_knownSelectors; }; struct t_NameManglingTable { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_CodeGenerator { struct _vtable *_vtable[0]; oop v_compiler; oop v_encoder; oop v_nextLabel; }; struct t_CCodeGenerator { struct _vtable *_vtable[0]; oop v_compiler; oop v_encoder; oop v_nextLabel; oop v_output; oop v_firstInfoTag; oop v_lastInfoTag; }; struct t_CManagedCodeGenerator { struct _vtable *_vtable[0]; oop v_compiler; oop v_encoder; oop v_nextLabel; oop v_output; }; struct t_CharacterNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_ImportNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_included; }; struct t_ScannerPosition { struct _vtable *_vtable[0]; oop v_file; oop v_line; }; struct t_Scanner { struct _vtable *_vtable[0]; oop v_charTable; oop v_charEscapes; oop v_context; oop v_c; oop v_token; oop v_type; oop v_prevHash; oop v_line; }; struct t_WordArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_SymbolNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_StringNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_FloatNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_VarargNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; }; 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; }; struct t_ExecNode { 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_stateConstructor; }; struct t_IncludeNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; }; struct t_ExternNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_code; }; struct t_PrimitiveNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_code; oop v_mtype; }; struct t_PrototypeNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_base; oop v_slots; oop v_used; oop v_external; oop v_resized; }; struct t_DefinitionNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_exec; oop v_used; oop v_external; }; struct t_Parser { struct _vtable *_vtable[0]; oop v_charTable; oop v_charEscapes; oop v_context; oop v_c; oop v_token; oop v_type; oop v_prevHash; oop v_line; oop v_client; }; struct t_ScannerContext { struct _vtable *_vtable[0]; oop v_file; oop v_line; oop v_stream; }; struct t_Compiler { struct _vtable *_vtable[0]; oop v_parser; oop v_options; oop v_including; oop v_program; oop v_types; oop v_sources; oop v_imports; oop v_externalFlags; oop v_intrinsicTypes; oop v_knownSelectors; }; struct t_CompilerOptions { struct _vtable *_vtable[0]; oop v_searchPaths; oop v_outputType; oop v_debugging; oop v_verboseFlag; oop v_macroFlag; oop v_specialFlag; oop v_taggedFlag; oop v_cacheLevel; oop v_executionModel; }; static oop l_1= 0; static oop l_3= 0; static oop l_5= 0; static oop l_7= 0; static oop l_9= 0; static oop l_11= 0; static oop l_13= 0; static oop l_15= 0; static oop l_17= 0; static oop l_19= 0; static oop l_21= 0; static oop l_23= 0; static oop l_25= 0; static oop l_27= 0; static oop l_30= 0; static oop l_31= 0; static oop l_32= 0; static oop l_33= 0; static oop l_34= 0; static oop l_35= 0; static oop l_36= 0; static oop l_37= 0; static oop l_38= 0; static oop l_39= 0; static oop l_28= 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_Symbol= 0; static oop v_nil= 0; static oop v_true= 0; static oop v_false= 0; static oop v_LookupKey= 0; static oop v_Set= 0; static oop v_OrderedCollection= 0; static oop v_Dictionary= 0; static oop v_IdentityDictionary= 0; static oop v_Stream= 0; static oop v_PositionableStream= 0; static oop v_GetOpt= 0; static oop v_Smalltalk= 0; static oop v_EncodedVariableNode= 0; static oop v_LocalVariableNode= 0; static oop v_ParseNode= 0; static oop v_LiteralNode= 0; static oop v_ArrayLiteralNode= 0; static oop v_SequenceNode= 0; static oop v_ReturnNode= 0; static oop v_BlockNode= 0; static oop v_CodeGenerator= 0; static oop v_Scanner= 0; static oop v_Compiler= 0; static oop v_CompilerOptions= 0; static struct __methodinfo __info2= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, 0 }; static oop b_2(oop v__closure, oop v__self, oop v_opt) { _enter(&__info2); oop _1= 0; oop _2= 0; _line(31); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= l_35; _line(31); _1=_sendv(s_outputType_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info4= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info2 }; static oop b_4(oop v__closure, oop v__self, oop v_opt) { _enter(&__info4); oop _1= 0; oop _2= 0; _line(32); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_true; _line(32); _1=_sendv(s_debugging_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info4 }; static oop b_6(oop v__closure, oop v__self, oop v_opt, oop v_arg) { _enter(&__info6); oop _1= 0; oop _2= 0; _line(33); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _line(33); _1=_sendv(s_searchPaths, 1, _1); _2= v_arg; _line(33); _1=_sendv(s_addFirst_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info8= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info6 }; static oop b_8(oop v__closure, oop v__self, oop v_opt) { _enter(&__info8); oop _1= 0; oop _2= 0; _line(34); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= l_36; _line(34); _1=_sendv(s_outputType_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info10= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info8 }; static oop b_10(oop v__closure, oop v__self, oop v_opt) { _enter(&__info10); oop _1= 0; oop _2= 0; _line(35); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_false; _line(35); _1=_sendv(s_macroFlag_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info12= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info10 }; static oop b_12(oop v__closure, oop v__self, oop v_opt, oop v_arg) { _enter(&__info12); oop _1= 0; oop _2= 0; _line(36); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_arg; _line(36); _1=_sendv(s_cacheLevel_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info14= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info12 }; static oop b_14(oop v__closure, oop v__self, oop v_opt, oop v_arg) { _enter(&__info14); oop _1= 0; _line(37); _1= v_arg; ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]= _1; /* outputPath */ _leave(); return _1; _leave(); } static struct __methodinfo __info16= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info14 }; static oop b_16(oop v__closure, oop v__self, oop v_opt) { _enter(&__info16); oop _1= 0; oop _2= 0; _line(38); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= l_37; _line(38); _1=_sendv(s_outputType_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info18= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info16 }; static oop b_18(oop v__closure, oop v__self, oop v_opt) { _enter(&__info18); oop _1= 0; oop _2= 0; _line(39); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_false; _line(39); _1=_sendv(s_specialFlag_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info20= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info18 }; static oop b_20(oop v__closure, oop v__self, oop v_opt) { _enter(&__info20); oop _1= 0; oop _2= 0; _line(40); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_false; _line(40); _1=_sendv(s_taggedFlag_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info22= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info20 }; static oop b_22(oop v__closure, oop v__self, oop v_opt) { _enter(&__info22); oop _1= 0; oop _2= 0; _line(41); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_true; _line(41); _1=_sendv(s_verboseFlag_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info24= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info22 }; static oop b_24(oop v__closure, oop v__self, oop v_opt) { _enter(&__info24); oop _1= 0; oop _2= 0; _line(42); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= l_38; _line(42); _1=_sendv(s_outputType_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info26= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info24 }; static oop b_26(oop v__closure, oop v__self, oop v_opt, oop v_arg) { _enter(&__info26); oop _1= 0; oop _2= 0; _line(43); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1]; /* options */ _2= v_arg; _line(43); _1=_sendv(s_executionModel_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info28= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info26 }; static oop b_28(oop v__closure, oop v__self, oop v_opt) { _enter(&__info28); oop _1= 0; oop _2= 0; oop _3= 0; _line(44); _1= v_Compiler; _2= l_39; _3= v_opt; _line(44); _3=_sendv(s_asString, 1, _3); _line(44); _2=_sendv(s__2c, 2, _2, _3); _line(44); _1=_sendv(s_error_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info29= { "[] ?", "?", "/Users/piumarta/src/idst/object/idc/idc1.st", 0, 0, 0, &__info28 }; static oop b_29(oop v__closure, oop v__self, oop v_arg) { _enter(&__info29); oop _1= 0; oop _2= 0; _line(45); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* files */ _2= v_arg; _line(45); _1=_sendv(s_add_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "idc1.st", 0, 0, 0, &__info29 }; void __id__init__(struct __libid *__libid) { if (_libid) return; if (!(_libid= __libid)) { fprintf(stderr, "init _libid %p\n", __libid); abort(); } { struct _Selector *s= 0; for (s= _Selectors; s->name; ++s) *s->addr= _libid->intern(s->name); } _enter(&__info); _libid->infos(&__info, &__info2); _sendv(s__5fimport_, 3, _libid->_object, "st80", "__id__init__st80"); 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_Symbol= _libid->import("Symbol"); v_nil= _libid->import("nil"); v_true= _libid->import("true"); v_false= _libid->import("false"); v_LookupKey= _libid->import("LookupKey"); v_Set= _libid->import("Set"); v_OrderedCollection= _libid->import("OrderedCollection"); v_Dictionary= _libid->import("Dictionary"); v_IdentityDictionary= _libid->import("IdentityDictionary"); v_Stream= _libid->import("Stream"); v_PositionableStream= _libid->import("PositionableStream"); v_GetOpt= _libid->import("GetOpt"); v_Smalltalk= _libid->import("Smalltalk"); _sendv(s__5fimport_, 3, _libid->_object, "idst", "__id__init__idst"); v_EncodedVariableNode= _libid->import("EncodedVariableNode"); v_LocalVariableNode= _libid->import("LocalVariableNode"); v_ParseNode= _libid->import("ParseNode"); v_LiteralNode= _libid->import("LiteralNode"); v_ArrayLiteralNode= _libid->import("ArrayLiteralNode"); v_SequenceNode= _libid->import("SequenceNode"); v_ReturnNode= _libid->import("ReturnNode"); v_BlockNode= _libid->import("BlockNode"); v_CodeGenerator= _libid->import("CodeGenerator"); v_Scanner= _libid->import("Scanner"); v_Compiler= _libid->import("Compiler"); v_CompilerOptions= _libid->import("CompilerOptions"); l_1= _sendv(s_value_5f_, 2, v_Character, 99); l_3= _sendv(s_value_5f_, 2, v_Character, 103); l_5= _sendv(s_value_5f_, 2, v_Character, 73); l_7= _sendv(s_value_5f_, 2, v_Character, 109); l_9= _sendv(s_value_5f_, 2, v_Character, 77); l_11= _sendv(s_value_5f_, 2, v_Character, 78); l_13= _sendv(s_value_5f_, 2, v_Character, 111); l_15= _sendv(s_value_5f_, 2, v_Character, 115); l_17= _sendv(s_value_5f_, 2, v_Character, 83); l_19= _sendv(s_value_5f_, 2, v_Character, 84); l_21= _sendv(s_value_5f_, 2, v_Character, 118); l_23= _sendv(s_value_5f_, 2, v_Character, 119); l_25= _sendv(s_value_5f_, 2, v_Character, 120); l_27= _sendv(s_value_5f_, 2, v_Character, 63); l_30= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_31= _sendv(s_value_5f_, 2, v_SmallInteger, 1); l_32= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 24, "no source file specified"); l_33= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 31, "multiple source files specified"); l_34= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "."); l_35= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "object"); l_36= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "program"); l_37= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "shared"); l_38= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "windows"); l_39= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 17, "illegal option: -"); l_28= _sendv(s_function_5f_arity_5f_, 3, v_StaticBlockClosure, b_28, 1); { oop _state1= _sendv(s_new_5f_, 2, v__vector, 4); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _1= v_OrderedCollection; _line(26); _1=_sendv(s_new, 1, _1); ((oop *)_state1)[3]= _1; /* files */ _1= v_CompilerOptions; _line(27); _1=_sendv(s_new, 1, _1); ((oop *)_state1)[1]= _1; /* options */ _1= v_nil; ((oop *)_state1)[2]= _1; /* outputPath */ _1= v_GetOpt; _line(30); _1=_sendv(s_new, 1, _1); _2= l_1; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_2, 1, 0, ((oop *)_state1), 0); _line(31); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_3; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_4, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_5; /* Scope('opt'->ArgumentVariableNode 'arg'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_6, 2, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_7; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_8, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_9; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_10, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_11; /* Scope('opt'->ArgumentVariableNode 'arg'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_12, 2, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_13; /* Scope('opt'->ArgumentVariableNode 'arg'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_14, 2, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_15; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_16, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_17; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_18, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_19; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_20, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_21; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_22, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_23; /* Scope('opt'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_24, 1, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_25; /* Scope('opt'->ArgumentVariableNode 'arg'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _3= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_26, 2, 0, ((oop *)_state1), 0); _sendv(s_at_put_, 3, _1, _2, _3); _2= l_27; _3= l_28; _sendv(s_at_put_, 3, _1, _2, _3); /* Scope('arg'->ArgumentVariableNode) */ /* Scope('outputPath'->TemporaryVariableNode 'files'->TemporaryVariableNode 'options'->TemporaryVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_29, 1, 0, ((oop *)_state1), 0); _sendv(s_default_, 2, _1, _2); _2= v_Smalltalk; _line(46); _2=_sendv(s_arguments, 1, _2); _3= l_30; _1=_sendv(s_parse_startingAt_, 3, _1, _2, _3); /* ifTrue: */ _1= 0; _2= ((oop *)_state1)[3]; /* files */ _line(47); _2=_sendv(s_size, 1, _2); _3= l_31; if (1 & (long)_2) { _2= (((long)_2 < (long)_3) ? v_true : v_false); } else _2= _sendv(s__3c, 2, _2, _3); if (!_2) goto _l1; { _1= v_Compiler; _2= l_32; _line(47); _1=_sendv(s_error_, 2, _1, _2); } _l1:; /* ifTrue: */ _1= 0; _2= ((oop *)_state1)[3]; /* files */ _line(48); _2=_sendv(s_size, 1, _2); _3= l_31; if (1 & (long)_2) { _2= (((long)_2 > (long)_3) ? v_true : v_false); } else _2= _sendv(s__3e, 2, _2, _3); if (!_2) goto _l2; { _1= v_Compiler; _2= l_33; _line(48); _1=_sendv(s_error_, 2, _1, _2); } _l2:; /* ifFalse: */ _1= 0; _2= ((oop *)_state1)[1]; /* options */ _line(50); _2=_sendv(s_searchPaths, 1, _2); _3= l_34; _line(50); _2=_sendv(s_includes_, 2, _2, _3); if (_2) goto _l3; { _1= ((oop *)_state1)[1]; /* options */ _line(50); _1=_sendv(s_searchPaths, 1, _1); _2= l_34; _line(50); _1=_sendv(s_addFirst_, 2, _1, _2); } _l3:; _1= v_Compiler; _2= ((oop *)_state1)[3]; /* files */ _line(54); _2=_sendv(s_first, 1, _2); _3= ((oop *)_state1)[2]; /* outputPath */ _4= ((oop *)_state1)[1]; /* options */ _line(54); _1=_sendv(s_compileFile_toFile_withOptions_, 4, _1, _2, _3, _4); } _leave(); } int main(int argc, char *argv[]) { #if defined(WIN32) void *init= GetProcAddress(GetModuleHandle(0), "_libid_init"); #else void *init= dlsym(RTLD_DEFAULT, "_libid_init"); #endif struct __libid *libid; char **envp= { 0 }; if (!init) { fprintf(stderr, "id runtime not found\n"); abort(); } libid= ((struct __libid *(*)(int *, char ***, char ***))init)(&argc, &argv, &envp); __id__init__(libid); return 0; } #if defined(EMBEDDED) extern void _start(void); void *StartTVector[2]= { (void *)_start, 0 }; #endif