/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -I../st80 idst.st -o ../stage2/idst.so.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__5fimport_= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "_import:", &s__5fimport_ }, { 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_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_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_ByteArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_Set { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; 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_Dictionary { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_SymbolTable { 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_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_Smalltalk { struct _vtable *_vtable[0]; oop v_argumentCount; oop v_argumentVector; }; 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_Stream { struct _vtable *_vtable[0]; }; struct t_PositionableStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; }; struct t_WriteStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; oop v_writeLimit; }; 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_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_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 v__object= 0; static oop v_Object= 0; static oop v_UndefinedObject= 0; static oop v_StaticBlockClosure= 0; static oop v_Magnitude= 0; static oop v_Number= 0; static oop v_Integer= 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_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_Set= 0; static oop v_LookupKey= 0; static oop v_Dictionary= 0; static oop v_IdentityDictionary= 0; static oop v_CodeGenerator= 0; static oop v_Stream= 0; static oop v_PositionableStream= 0; static oop v_Scanner= 0; static struct __methodinfo __info= { "__id__init__", "", "idst.st", 0, 0, 0, 0 }; void __id__init__(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, &__info); _sendv(s__5fimport_, 3, _libid->_object, "ArgumentVariableNode", "__id__init__ArgumentVariableNode"); v__object= _libid->import("_object"); v_Object= _libid->import("Object"); v_UndefinedObject= _libid->import("UndefinedObject"); v_StaticBlockClosure= _libid->import("StaticBlockClosure"); v_Magnitude= _libid->import("Magnitude"); v_Number= _libid->import("Number"); v_Integer= _libid->import("Integer"); 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_EncodedVariableNode= _libid->import("EncodedVariableNode"); v_LocalVariableNode= _libid->import("LocalVariableNode"); _sendv(s__5fimport_, 3, _libid->_object, "ArrayLiteralNode", "__id__init__ArrayLiteralNode"); v_ParseNode= _libid->import("ParseNode"); v_LiteralNode= _libid->import("LiteralNode"); v_ArrayLiteralNode= _libid->import("ArrayLiteralNode"); _sendv(s__5fimport_, 3, _libid->_object, "ArrayNode", "__id__init__ArrayNode"); _sendv(s__5fimport_, 3, _libid->_object, "AssignmentNode", "__id__init__AssignmentNode"); _sendv(s__5fimport_, 3, _libid->_object, "BlockNode", "__id__init__BlockNode"); v_SequenceNode= _libid->import("SequenceNode"); v_ReturnNode= _libid->import("ReturnNode"); v_BlockNode= _libid->import("BlockNode"); _sendv(s__5fimport_, 3, _libid->_object, "ByteArrayNode", "__id__init__ByteArrayNode"); _sendv(s__5fimport_, 3, _libid->_object, "CCodeGenerator", "__id__init__CCodeGenerator"); v_Set= _libid->import("Set"); v_LookupKey= _libid->import("LookupKey"); v_Dictionary= _libid->import("Dictionary"); v_IdentityDictionary= _libid->import("IdentityDictionary"); v_CodeGenerator= _libid->import("CodeGenerator"); _sendv(s__5fimport_, 3, _libid->_object, "CManagedCodeGenerator", "__id__init__CManagedCodeGenerator"); _sendv(s__5fimport_, 3, _libid->_object, "CharacterNode", "__id__init__CharacterNode"); _sendv(s__5fimport_, 3, _libid->_object, "Compiler", "__id__init__Compiler"); v_Stream= _libid->import("Stream"); v_PositionableStream= _libid->import("PositionableStream"); v_Scanner= _libid->import("Scanner"); _sendv(s__5fimport_, 3, _libid->_object, "CompilerOptions", "__id__init__CompilerOptions"); _leave(); }