/* generated by Id 1.0 at 2007-08-31 06:59:29 Z */
/* with the command: -I../stage1/ -I../st80 -c Encoder.st -o ../stage2/Encoder.o.c */

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <setjmp.h>
#include <string.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <assert.h>
#define GC_DLL 1
#include <gc/gc.h>
#if defined(WIN32)
# include <malloc.h>
# include <windows.h>
  typedef HINSTANCE dlhandle_t;
# define dlopen(path, mode)	LoadLibrary(path)
# define dlsym(handle, name)	((void *)GetProcAddress(handle, name))
# define dlclose(handle)	FreeLibrary(handle)
# include <winbase.h>
  inline int gettimeofday(struct timeval *tp, void *tzp)
  {
     union {
       long long ns100;
       FILETIME ft;
     } _now;
     GetSystemTimeAsFileTime(&_now.ft);
     tp->tv_usec= (long)((_now.ns100 / 10LL) % 1000000LL);
     tp->tv_sec= (long)((_now.ns100 - (116444736000000000LL)) / 10000000LL);
     return 0;
   }
#else
# include <dlfcn.h>
  typedef void *dlhandle_t;
#endif
#ifndef O_BINARY
# define O_BINARY 0
#endif

typedef struct t__object *oop;

typedef oop (*_imp_t)(oop _thunk, oop receiver, ...);

struct __closure
{
  _imp_t method;
  oop	 data;
};

static void              *(*_local_param   )(int index)= 0;
static oop  		  (*_local_intern  )(const char *string)= 0;
static oop  		  (*_local_proto   )(oop base)= 0;
static oop  		  (*_local_import  )(const char *name)= 0;
static oop  		  (*_local_export  )(const char *name, oop value)= 0;
static void 		  (*_local_method  )(oop type, oop selector, _imp_t method)= 0;
static oop  		  (*_local_alloc   )(oop type, size_t size)= 0;
static oop  		 *(*_local_palloc  )(size_t size)= 0;
static void  		 *(*_local_balloc  )(size_t size)= 0;
static struct __closure  *(*_local_bind    )(oop selector, oop receiver)= 0;
static oop                (*_local_nlreturn)(oop nlr, oop result)= 0;
static oop                (*_local_nlresult)(void)= 0;
static oop  		    _local_object= 0;
static oop  		   *_local_tag_vtable= 0;
static oop  		   *_local_nil_vtable= 0;
static void               (*_local_gc_addRoots)(char *lo, char *hi)= 0;
static void	          (*_local_gc_unregisterDisappearingLink)(void *ptr)= 0;
static void		  (*_local_gc_generalRegisterDisappearingLink)(void *link, void *ptr)= 0;
static void		  (*_local_gc_gcollect)(void)= 0;
static void		 *(*_local_enter)(char *name, char *type, char *file)= 0;
static void		  (*_local_line)(int line)= 0;
static void		  (*_local_leave)(void *)= 0;
static char		 *(*_local_backtrace)(void)= 0;

#define _param(INDEX)		_local_param(INDEX)
#define _selector(NAME)		_local_intern(NAME)
#define _proto(BASE)		_local_proto(BASE)
#define _id_import(NAME)	_local_import(NAME)
#define _id_export(NAME, VAL)	_local_export((NAME), (VAL))
#define _method(TYPE, SEL, IMP)	_local_method((TYPE), (SEL), (_imp_t)(IMP))
#define _alloc(RCV, LBS)	_local_alloc((RCV), (LBS))
#define _palloc(LBS)		_local_palloc((LBS))
#define _balloc(LBS)		_local_balloc((LBS))
#define _nlreturn(NLR, ARG)	_local_nlreturn((NLR), (ARG))
#define _nlresult()		_local_nlresult()
#define _backtrace()		_local_backtrace()
#ifdef ID_DEBUG
# define _enter(NM, TYPE, FILE)	void *__id_debug= _local_enter(NM, TYPE, FILE)
# define _line(line)		_local_line(line)
# define _leave()		_local_leave(__id_debug)
#else
# define _enter(NM, TYPE, FILE)
# define _line(line)
# define _leave()
#endif
#define _return			_leave(); return

#define _send(MSG, RCV, ARG...) ({					\
  register oop _r= (RCV);						\
  struct __closure *_c= (struct __closure *)_local_bind((MSG), _r);	\
  (_c->method)((oop)_c, _r, _r, ##ARG);					\
})

#define _super(TYP, MSG, RCV, ARG...) ({				\
  register oop _r= (RCV);						\
  struct __closure *_c= (struct __closure *)_local_bind((MSG), (TYP));	\
  (_c->method)((oop)_c, _r, _r, ##ARG);					\
})

static oop s_digitValue_= 0;
static oop s_inlineTaggedArithmetic= 0;
static oop s_withGlobalContext_= 0;
static oop s_key= 0;
static oop s_inlineMacroSelectors= 0;
static oop s_macroEncoders= 0;
static oop s_inlineSpecialSelectors= 0;
static oop s_specialEncoders= 0;
static oop s_taggedEncoders= 0;
static oop s_superTypeAt_= 0;
static oop s_errorNoSuper_at_= 0;
static oop s_thisTypeAt_= 0;
static oop s_size_5f_value_5f_= 0;
static oop s_function_5f_arity_5f_= 0;
static oop s_mangleSelector_= 0;
static oop s_writeStream= 0;
static oop s_perform_with_with_= 0;
static oop s_addSelector_= 0;
static oop s_at_ifAbsent_= 0;
static oop s_contents= 0;
static oop s_encodeLiteral_= 0;
static oop s_encodeBlock_= 0;
static oop s_encodeType_position_= 0;
static oop s_size= 0;
static oop s_warn_at_= 0;
static oop s_noteUsed= 0;
static oop s__5c_5c= 0;
static oop s__2a= 0;
static oop s_endBlock= 0;
static oop s_notNil= 0;
static oop s_name= 0;
static oop s_addBlock_= 0;
static oop s_error_at_= 0;
static oop s_new_5f_= 0;
static oop s_noteNLR= 0;
static oop s__5fimport_= 0;
static oop s_ifFalse_= 0;
static oop s_ifTrue_= 0;
static oop s__2f_2f= 0;
static oop s_pop_= 0;
static oop s_add_= 0;
static oop s_position= 0;
static oop s_isVariadic= 0;
static oop s_literals= 0;
static oop s_stackSize_= 0;
static oop s_endScope= 0;
static oop s_at_= 0;
static oop s_encode_= 0;
static oop s_at_put_= 0;
static oop s_level= 0;
static oop s_outer= 0;
static oop s_endMethod= 0;
static oop s_atAllPut_= 0;
static oop s_nextPut_= 0;
static oop s_pop= 0;
static oop s__5fdebugName= 0;
static oop s_new= 0;
static oop s_stackSize= 0;
static oop s_base= 0;
static oop s_beginBlock= 0;
static oop s_selectors= 0;
static oop s_addAll_= 0;
static oop s_error_= 0;
static oop s_asciiValue= 0;
static oop s__5fsizeof= 0;
static oop s_new_= 0;
static oop s_value_5f_= 0;
static oop s_do_= 0;
static oop s_push= 0;
static oop s__2d= 0;
static oop s_scope= 0;
static oop s_isNil= 0;
static oop s__2c= 0;
static oop s__2b= 0;
static oop s_newScope= 0;
static oop s_removeLast= 0;
static oop s_selector= 0;
static oop s_methodType= 0;
static oop s_noteImplementation_in_at_= 0;
static oop s_requireType_at_= 0;
static oop s_constructorFor_= 0;
static oop s_encode_position_= 0;
static oop s_requireBooleanAt_= 0;
static oop s_beginSequence= 0;
static oop s_endSequence= 0;
static oop s_increaseLevel= 0;
static oop s_addLast_= 0;
static oop s_beginMethod_in_= 0;
static oop s_hasVarargs_= 0;
static oop s_declareSlot_position_type_receiver_= 0;
static oop s_errorRedefined_at_= 0;
static oop s_declareArgument_position_= 0;
static oop s_declareTemporary_position_= 0;
static oop s_beginScope= 0;
static oop s__3e= 0;
static oop s_errorUndefined_at_= 0;
static oop s_withName_position_scope_= 0;
static oop s_nextLiteralTag= 0;
static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0;
static oop s_value= 0;
static oop s_mangleLetter_to_= 0;
static oop s_mangleColon_to_= 0;
static oop s_mangleOther_to_= 0;
static oop s__3c= 0;
static struct _Selector { const char *name; oop *addr; } _Selectors[]= {
  { "digitValue:", &s_digitValue_ },
  { "inlineTaggedArithmetic", &s_inlineTaggedArithmetic },
  { "withGlobalContext:", &s_withGlobalContext_ },
  { "key", &s_key },
  { "inlineMacroSelectors", &s_inlineMacroSelectors },
  { "macroEncoders", &s_macroEncoders },
  { "inlineSpecialSelectors", &s_inlineSpecialSelectors },
  { "specialEncoders", &s_specialEncoders },
  { "taggedEncoders", &s_taggedEncoders },
  { "superTypeAt:", &s_superTypeAt_ },
  { "errorNoSuper:at:", &s_errorNoSuper_at_ },
  { "thisTypeAt:", &s_thisTypeAt_ },
  { "size_:value_:", &s_size_5f_value_5f_ },
  { "function_:arity_:", &s_function_5f_arity_5f_ },
  { "mangleSelector:", &s_mangleSelector_ },
  { "writeStream", &s_writeStream },
  { "perform:with:with:", &s_perform_with_with_ },
  { "addSelector:", &s_addSelector_ },
  { "at:ifAbsent:", &s_at_ifAbsent_ },
  { "contents", &s_contents },
  { "encodeLiteral:", &s_encodeLiteral_ },
  { "encodeBlock:", &s_encodeBlock_ },
  { "encodeType:position:", &s_encodeType_position_ },
  { "size", &s_size },
  { "warn:at:", &s_warn_at_ },
  { "noteUsed", &s_noteUsed },
  { "\\\\", &s__5c_5c },
  { "*", &s__2a },
  { "endBlock", &s_endBlock },
  { "notNil", &s_notNil },
  { "name", &s_name },
  { "addBlock:", &s_addBlock_ },
  { "error:at:", &s_error_at_ },
  { "new_:", &s_new_5f_ },
  { "noteNLR", &s_noteNLR },
  { "_import:", &s__5fimport_ },
  { "ifFalse:", &s_ifFalse_ },
  { "ifTrue:", &s_ifTrue_ },
  { "//", &s__2f_2f },
  { "pop:", &s_pop_ },
  { "add:", &s_add_ },
  { "position", &s_position },
  { "isVariadic", &s_isVariadic },
  { "literals", &s_literals },
  { "stackSize:", &s_stackSize_ },
  { "endScope", &s_endScope },
  { "at:", &s_at_ },
  { "encode:", &s_encode_ },
  { "at:put:", &s_at_put_ },
  { "level", &s_level },
  { "outer", &s_outer },
  { "endMethod", &s_endMethod },
  { "atAllPut:", &s_atAllPut_ },
  { "nextPut:", &s_nextPut_ },
  { "pop", &s_pop },
  { "_debugName", &s__5fdebugName },
  { "new", &s_new },
  { "stackSize", &s_stackSize },
  { "base", &s_base },
  { "beginBlock", &s_beginBlock },
  { "selectors", &s_selectors },
  { "addAll:", &s_addAll_ },
  { "error:", &s_error_ },
  { "asciiValue", &s_asciiValue },
  { "_sizeof", &s__5fsizeof },
  { "new:", &s_new_ },
  { "value_:", &s_value_5f_ },
  { "do:", &s_do_ },
  { "push", &s_push },
  { "-", &s__2d },
  { "scope", &s_scope },
  { "isNil", &s_isNil },
  { ",", &s__2c },
  { "+", &s__2b },
  { "newScope", &s_newScope },
  { "removeLast", &s_removeLast },
  { "selector", &s_selector },
  { "methodType", &s_methodType },
  { "noteImplementation:in:at:", &s_noteImplementation_in_at_ },
  { "requireType:at:", &s_requireType_at_ },
  { "constructorFor:", &s_constructorFor_ },
  { "encode:position:", &s_encode_position_ },
  { "requireBooleanAt:", &s_requireBooleanAt_ },
  { "beginSequence", &s_beginSequence },
  { "endSequence", &s_endSequence },
  { "increaseLevel", &s_increaseLevel },
  { "addLast:", &s_addLast_ },
  { "beginMethod:in:", &s_beginMethod_in_ },
  { "hasVarargs:", &s_hasVarargs_ },
  { "declareSlot:position:type:receiver:", &s_declareSlot_position_type_receiver_ },
  { "errorRedefined:at:", &s_errorRedefined_at_ },
  { "declareArgument:position:", &s_declareArgument_position_ },
  { "declareTemporary:position:", &s_declareTemporary_position_ },
  { "beginScope", &s_beginScope },
  { ">", &s__3e },
  { "errorUndefined:at:", &s_errorUndefined_at_ },
  { "withName:position:scope:", &s_withName_position_scope_ },
  { "nextLiteralTag", &s_nextLiteralTag },
  { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ },
  { "value", &s_value },
  { "mangleLetter:to:", &s_mangleLetter_to_ },
  { "mangleColon:to:", &s_mangleColon_to_ },
  { "mangleOther:to:", &s_mangleOther_to_ },
  { "<", &s__3c },
  { 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_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_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_SlotVariableNode {
  struct _vtable *_vtable[0];
  oop v_name;
  oop v_position;
  oop v_scope;
  oop v_receiver;
  oop v_type;
};
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_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_ParseNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
};
struct t_VariableNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_name;
  oop v_variable;
  oop v_level;
};
struct t_LiteralNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_value;
  oop v_tag;
  oop v_constructor;
};
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;
};
static oop l_1= 0;
struct t_NameManglingTable {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
static oop l_2= 0;
static oop l_3= 0;
static oop l_4= 0;
static oop l_5= 0;
static oop l_6= 0;
static oop l_8= 0;
static oop l_7= 0;
static oop l_9= 0;
static oop l_11= 0;
static oop l_12= 0;
static oop l_13= 0;
static oop l_14= 0;
static oop l_18= 0;
static oop l_19= 0;
static oop l_20= 0;
static oop l_21= 0;
static oop l_22= 0;
static oop l_23= 0;
static oop l_24= 0;
static oop l_25= 0;
static oop l_26= 0;
static oop l_27= 0;
static oop l_28= 0;
static oop l_29= 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_Set= 0;
static oop v_LookupKey= 0;
static oop v_OrderedCollection= 0;
static oop v_Dictionary= 0;
static oop v_EncodedVariableNode= 0;
static oop v_LocalVariableNode= 0;
static oop v_Scope= 0;
static oop v_ParseNode= 0;
static oop v_LiteralNode= 0;
static oop v_SendNode= 0;
static oop v_GlobalVariableNode= 0;
static oop v_Encoder= 0;
static oop v_NameManglingTable= 0;
static size_t Encoder___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_Encoder); }
static char *Encoder___5fdebugName(oop _closure, oop v_self) { return "Encoder"; }
static oop Encoder__withGlobalContext_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aGlobalContext)
 {
  _enter("withGlobalContext:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(44);
  _1= v_self;
  _line(46);
  _1=_send(s_new, _1);
  v_self= _1;
  v_stateful_self= _1;
  _1= v_aGlobalContext;
  ((struct t_Encoder *)v_stateful_self)->v_globalContext= _1;
  _1= v_Scope;
  _line(48);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_scope= _1;
  ((struct t_Encoder *)v_stateful_self)->v_globals= _1;
  _1= l_1;
  ((struct t_Encoder *)v_stateful_self)->v_tempMax= _1;
  ((struct t_Encoder *)v_stateful_self)->v_tempCount= _1;
  _1= v_OrderedCollection;
  _line(50);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_outerCount= _1;
  _1= v_Dictionary;
  _line(51);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_selectors= _1;
  _1= v_OrderedCollection;
  _line(52);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_literals= _1;
  _1= v_Dictionary;
  _line(53);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_literalMap= _1;
  _1= l_1;
  ((struct t_Encoder *)v_stateful_self)->v_literalTag= _1;
  _1= v_nil;
  ((struct t_Encoder *)v_stateful_self)->v_methodType= _1;
  _1= v_Dictionary;
  _line(56);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_specialEncoders= _1;
  _1= v_Dictionary;
  _line(57);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_implementations= _1;
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _line(58);
  _2=_send(s_inlineMacroSelectors, _2);
  if (!_2) goto _l1;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_specialEncoders;
  _2= v_SendNode;
  _line(58);
  _2=_send(s_macroEncoders, _2);
  _line(58);
  _1=_send(s_addAll_, _1, _2);
 }
 _l1:;
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _line(59);
  _2=_send(s_inlineSpecialSelectors, _2);
  if (!_2) goto _l2;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_specialEncoders;
  _2= v_SendNode;
  _line(59);
  _2=_send(s_specialEncoders, _2);
  _line(59);
  _1=_send(s_addAll_, _1, _2);
 }
 _l2:;
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _line(60);
  _2=_send(s_inlineTaggedArithmetic, _2);
  if (!_2) goto _l3;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_specialEncoders;
  _2= v_SendNode;
  _line(60);
  _2=_send(s_taggedEncoders, _2);
  _line(60);
  _1=_send(s_addAll_, _1, _2);
 }
 _l3:;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__scope(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("scope", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(63);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__selectors(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("selectors", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(64);
  _1= ((struct t_Encoder *)v_stateful_self)->v_selectors;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__level(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("level", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(65);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _line(65);
  _1=_send(s_level, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__noteNLR(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("noteNLR", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(66);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _line(66);
  _1=_send(s_noteNLR, _1);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__methodType(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("methodType", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(68);
  _1= ((struct t_Encoder *)v_stateful_self)->v_methodType;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__superTypeAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_position)
 {
  _enter("superTypeAt:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(70);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_methodType;
  _line(73);
  _2=_send(s_base, _2);
  _line(73);
  _2=_send(s_isNil, _2);
  if (!_2) goto _l4;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= ((struct t_Encoder *)v_stateful_self)->v_methodType;
  _line(73);
  _2=_send(s_name, _2);
  _3= v_position;
  _line(73);
  _1=_send(s_errorNoSuper_at_, _1, _2, _3);
 }
 _l4:;
  _1= ((struct t_Encoder *)v_stateful_self)->v_methodType;
  _line(74);
  _1=_send(s_base, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__thisTypeAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_position)
 {
  _enter("thisTypeAt:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(77);
  _1= ((struct t_Encoder *)v_stateful_self)->v_methodType;
  _line(80);
  _1=_send(s_name, _1);
  _leave();
  return _1;
  _leave();
 }
static size_t NameManglingTable___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_NameManglingTable); }
static char *NameManglingTable___5fdebugName(oop _closure, oop v_self) { return "NameManglingTable"; }
static oop b_7(oop v__closure, oop v__self, oop v_char)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(96);
  _1= v_NameManglingTable;
  _2= v_char;
  _line(96);
  _2=_send(s_asciiValue, _2);
  _3= l_8;
  _line(96);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_10(oop v__closure, oop v__self, oop v_char)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(103);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* self */
  _2= v_NameManglingTable;
  _3= v_char;
  _line(103);
  _3=_send(s_asciiValue, _3);
  _line(103);
  _2=_send(s_at_, _2, _3);
  _3= v_char;
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* mangled */
  _line(103);
  _1=_send(s_perform_with_with_, _1, _2, _3, _4);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__mangleSelector_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aString)
 {
  _enter("mangleSelector:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _state1= _send(s_new_5f_, v__vector, 17);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_self;
  _line(99);
  _1= v_String;
  _2= v_aString;
  _line(102);
  _2=_send(s_size, _2);
  _3= l_9;
  {
    int _l= (int)_2 >> 1;
    int _r= (int)_3 >> 1;
    int _s= (_l * _r);
    if ((1 & (int)_2) && ((_r == 0) || (_s / _r == _l)) && ((_s ^ (_s << 1)) >= 0))  _2= (oop)(_s << 1 | 1);  else _2= _send(s__2a, _2, _3);
  }
  _line(102);
  _1=_send(s_new_, _1, _2);
  _line(102);
  _1=_send(s_writeStream, _1);
  ((oop *)_state1)[3]= _1;  /* mangled */
  _1= v_aString;
  /* Scope('char'->ArgumentVariableNode) */
  /* Scope('literalTag'->SlotVariableNode 'aString'->ArgumentVariableNode 'tempCount'->SlotVariableNode 'outerCount'->SlotVariableNode 'globalContext'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'tempMax'->SlotVariableNode 'methodType'->SlotVariableNode 'self'->ArgumentVariableNode 'globals'->SlotVariableNode 'literals'->SlotVariableNode 'specialEncoders'->SlotVariableNode 'literalMap'->SlotVariableNode 'mangled'->TemporaryVariableNode 'selectors'->SlotVariableNode 'implementations'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_10, 1, 0, ((oop *)_state1), 0);
  _line(103);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[3];  /* mangled */
  _line(104);
  _1=_send(s_contents, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__mangleLetter_to_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCharacter, oop v_aStream)
 {
  _enter("mangleLetter:to:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(107);
  _1= v_aStream;
  _2= v_aCharacter;
  _line(107);
  _1=_send(s_nextPut_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__mangleColon_to_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCharacter, oop v_aStream)
 {
  _enter("mangleColon:to:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(108);
  _1= v_aStream;
  _2= l_11;
  _line(108);
  _1=_send(s_nextPut_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__mangleOther_to_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aCharacter, oop v_aStream)
 {
  _enter("mangleOther:to:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_ascii= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_ascii;
  _line(110);
  _1= v_aCharacter;
  _line(113);
  _1=_send(s_asciiValue, _1);
  v_ascii= _1;
  _1= v_aStream;
  _2= l_12;
  _line(114);
  _1=_send(s_nextPut_, _1, _2);
  /* ifTrue: */
  _1= 0;
  _2= v_ascii;
  _3= l_13;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l5;
 {
  _1= v_aStream;
  _2= v_Character;
  _3= v_ascii;
  _4= l_14;
  _3= _send(s__2f_2f, _3, _4);
  _line(118);
  _2=_send(s_digitValue_, _2, _3);
  _line(118);
  _send(s_nextPut_, _1, _2);
  _2= v_Character;
  _3= v_ascii;
  _4= l_14;
  _3= _send(s__5c_5c, _3, _4);
  _line(119);
  _2=_send(s_digitValue_, _2, _3);
  _1=_send(s_nextPut_, _1, _2);
 }
 _l5:;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_15(oop v__closure, oop v__self)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  _line(124);
  _1= ((struct t_Encoder *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_selectors;  /* selectors */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* aSelector */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* self */
  _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* aSelector */
  _line(124);
  _3=_send(s_mangleSelector_, _3, _4);
  _line(124);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__addSelector_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aSelector)
 {
  _enter("addSelector:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _state1= _send(s_new_5f_, v__vector, 17);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  ((oop *)_state1)[1]= v_stateful_self;
  ((oop *)_state1)[3]= v_self;
  ((oop *)_state1)[2]= v_aSelector;
  _line(122);
  _1= ((struct t_Encoder *)((oop *)_state1)[1])->v_selectors;  /* selectors */
  _2= ((oop *)_state1)[2];  /* aSelector */
  /* Scope() */
  /* Scope('literalTag'->SlotVariableNode 'tempCount'->SlotVariableNode 'aSelector'->ArgumentVariableNode 'globalContext'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'tempMax'->SlotVariableNode 'outerCount'->SlotVariableNode 'self'->ArgumentVariableNode 'globals'->SlotVariableNode 'literals'->SlotVariableNode 'methodType'->SlotVariableNode 'literalMap'->SlotVariableNode 'selectors'->SlotVariableNode 'specialEncoders'->SlotVariableNode 'implementations'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_15, 0, 0, ((oop *)_state1), 0);
  _line(124);
  _1=_send(s_at_ifAbsent_, _1, _2, _3);
  _1= ((oop *)_state1)[3];  /* self */
  _leave();
  return _1;
  _leave();
 }
static oop b_16(oop v__closure, oop v__self)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(130);
  _1= ((struct t_Encoder *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_implementations;  /* implementations */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* typeName */
  _3= v_Dictionary;
  _line(130);
  _3=_send(s_new, _3);
  _line(130);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_17(oop v__closure, oop v__self)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(131);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* dict */
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[4];  /* selectorName */
  _3= l_22;
  _line(131);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__noteImplementation_in_at_(oop v__closure, oop v_stateful_self, oop v_self, oop v_selectorName, oop v_typeName, oop v_aPosition)
 {
  _enter("noteImplementation:in:at:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _state1= _send(s_new_5f_, v__vector, 18);
  oop v_count= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_count;
  ((oop *)_state1)[1]= v_stateful_self;
  ((oop *)_state1)[4]= v_selectorName;
  ((oop *)_state1)[2]= v_typeName;
  _line(127);
  _1= ((struct t_Encoder *)((oop *)_state1)[1])->v_implementations;  /* implementations */
  _2= ((oop *)_state1)[2];  /* typeName */
  /* Scope() */
  /* Scope('literalTag'->SlotVariableNode 'outerCount'->SlotVariableNode 'aPosition'->ArgumentVariableNode 'count'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'selectorName'->ArgumentVariableNode 'typeName'->ArgumentVariableNode 'globalContext'->SlotVariableNode 'self'->ArgumentVariableNode 'globals'->SlotVariableNode 'tempCount'->SlotVariableNode 'dict'->TemporaryVariableNode 'tempMax'->SlotVariableNode 'selectors'->SlotVariableNode 'literals'->SlotVariableNode 'literalMap'->SlotVariableNode 'methodType'->SlotVariableNode 'specialEncoders'->SlotVariableNode 'scope'->SlotVariableNode 'implementations'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_16, 0, 0, ((oop *)_state1), 0);
  _line(130);
  _1=_send(s_at_ifAbsent_, _1, _2, _3);
  ((oop *)_state1)[3]= _1;  /* dict */
  _1= ((oop *)_state1)[3];  /* dict */
  _2= ((oop *)_state1)[4];  /* selectorName */
  /* Scope() */
  /* Scope('literalTag'->SlotVariableNode 'outerCount'->SlotVariableNode 'aPosition'->ArgumentVariableNode 'count'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'selectorName'->ArgumentVariableNode 'typeName'->ArgumentVariableNode 'globalContext'->SlotVariableNode 'self'->ArgumentVariableNode 'globals'->SlotVariableNode 'tempCount'->SlotVariableNode 'dict'->TemporaryVariableNode 'tempMax'->SlotVariableNode 'selectors'->SlotVariableNode 'literals'->SlotVariableNode 'literalMap'->SlotVariableNode 'methodType'->SlotVariableNode 'specialEncoders'->SlotVariableNode 'scope'->SlotVariableNode 'implementations'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_17, 0, 0, ((oop *)_state1), 0);
  _line(131);
  _1=_send(s_at_ifAbsent_, _1, _2, _3);
  v_count= _1;
  /* ifFalse: */
  _1= 0;
  _2= v_count;
  _3= l_18;
  if (1 & (int)_2) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (_2) goto _l6;
 {
  _1= v_self;
  _2= ((oop *)_state1)[2];  /* typeName */
  _3= l_19;
  _line(132);
  _2=_send(s__2c, _2, _3);
  _3= ((oop *)_state1)[4];  /* selectorName */
  _line(132);
  _2=_send(s__2c, _2, _3);
  _3= l_20;
  _line(132);
  _2=_send(s__2c, _2, _3);
  _3= v_aPosition;
  _line(132);
  _1=_send(s_warn_at_, _1, _2, _3);
 }
 _l6:;
  _1= ((oop *)_state1)[3];  /* dict */
  _2= ((oop *)_state1)[4];  /* selectorName */
  _3= v_count;
  _4= l_21;
  {
    int _l= (int)_3 >> 1;
    int _r= (int)_4 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_3) && ((_s ^ (_s << 1)) >= 0))  _3= (oop)(_s << 1 | 1);  else _3= _send(s__2b, _3, _4);
  }
  _line(133);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__requireType_at_(oop v__closure, oop v_stateful_self, oop v_self, oop v_typeName, oop v_aPosition)
 {
  _enter("requireType:at:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_constructor= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_constructor;
  _line(136);
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_typeName;
  _line(140);
  _1=_send(s_constructorFor_, _1, _2);
  v_constructor= _1;
  _1= v_self;
  _2= v_constructor;
  _line(142);
  _2=_send(s_key, _2);
  _3= v_aPosition;
  _line(142);
  _1=_send(s_encode_position_, _1, _2, _3);
  /* ifTrue: */
  _1= 0;
  _2= v_constructor;
  _line(144);
  _2=_send(s_value, _2);
  _line(144);
  _2=_send(s_notNil, _2);
  if (!_2) goto _l7;
 {
  _1= v_self;
  _2= v_constructor;
  _line(144);
  _2=_send(s_value, _2);
  _line(144);
  _1=_send(s_addSelector_, _1, _2);
 }
 _l7:;
  _1= v_constructor;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__requireBooleanAt_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aPosition)
 {
  _enter("requireBooleanAt:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(148);
  _1= v_self;
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _3= l_23;
  _line(151);
  _2=_send(s_constructorFor_, _2, _3);
  _line(151);
  _2=_send(s_key, _2);
  _3= v_aPosition;
  _line(151);
  _send(s_encode_position_, _1, _2, _3);
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _3= l_24;
  _line(152);
  _2=_send(s_constructorFor_, _2, _3);
  _line(152);
  _2=_send(s_key, _2);
  _3= v_aPosition;
  _1=_send(s_encode_position_, _1, _2, _3);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__beginScope(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("beginScope", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(155);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _line(155);
  _1=_send(s_newScope, _1);
  ((struct t_Encoder *)v_stateful_self)->v_scope= _1;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__endScope(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("endScope", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(156);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _line(156);
  _1=_send(s_outer, _1);
  ((struct t_Encoder *)v_stateful_self)->v_scope= _1;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__beginSequence(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("beginSequence", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(158);
  _1= v_self;
  _line(158);
  _1=_send(s_beginScope, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__endSequence(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("endSequence", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(159);
  _1= v_self;
  _line(159);
  _1=_send(s_endScope, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__beginBlock(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("beginBlock", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(161);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _2= ((struct t_Encoder *)v_stateful_self)->v_tempMax;
  _line(164);
  _1=_send(s_stackSize_, _1, _2);
  _1= ((struct t_Encoder *)v_stateful_self)->v_outerCount;
  _2= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  _line(165);
  _1=_send(s_addLast_, _1, _2);
  _1= v_self;
  _line(166);
  _1=_send(s_beginSequence, _1);
  _1= l_25;
  ((struct t_Encoder *)v_stateful_self)->v_tempMax= _1;
  ((struct t_Encoder *)v_stateful_self)->v_tempCount= _1;
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _line(168);
  _1=_send(s_increaseLevel, _1);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__endBlock(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("endBlock", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(172);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _2= ((struct t_Encoder *)v_stateful_self)->v_tempMax;
  _line(174);
  _1=_send(s_stackSize_, _1, _2);
  _1= v_self;
  _line(175);
  _1=_send(s_endSequence, _1);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _line(176);
  _1=_send(s_stackSize, _1);
  ((struct t_Encoder *)v_stateful_self)->v_tempMax= _1;
  _1= ((struct t_Encoder *)v_stateful_self)->v_outerCount;
  _line(177);
  _1=_send(s_removeLast, _1);
  ((struct t_Encoder *)v_stateful_self)->v_tempCount= _1;
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__beginMethod_in_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aMethodNode, oop v_typeNode)
 {
  _enter("beginMethod:in:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(181);
  _1= v_self;
  _line(183);
  _1=_send(s_beginBlock, _1);
  _1= v_self;
  _2= v_aMethodNode;
  _line(184);
  _2=_send(s_selector, _2);
  _line(184);
  _1=_send(s_addSelector_, _1, _2);
  _1= v_typeNode;
  ((struct t_Encoder *)v_stateful_self)->v_methodType= _1;
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _2= v_aMethodNode;
  _line(186);
  _2=_send(s_isVariadic, _2);
  _line(186);
  _1=_send(s_hasVarargs_, _1, _2);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__endMethod(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("endMethod", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(190);
  _1= v_nil;
  ((struct t_Encoder *)v_stateful_self)->v_methodType= _1;
  _1= v_self;
  _line(193);
  _1=_send(s_endBlock, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__declareSlot_position_type_receiver_(oop v__closure, oop v_stateful_self, oop v_self, oop v_name, oop v_position, oop v_type, oop v_selfNode)
 {
  _enter("declareSlot:position:type:receiver:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_var= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  oop _6= 0;
  (void)v_var;
  _line(196);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _3= v_name;
  _4= v_position;
  _5= v_type;
  _6= v_selfNode;
  _line(199);
  _2=_send(s_declareSlot_position_type_receiver_, _2, _3, _4, _5, _6);
  v_var= _2;
  _line(199);
  _2=_send(s_isNil, _2);
  if (!_2) goto _l8;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_name;
  _3= v_position;
  _line(200);
  _1=_send(s_errorRedefined_at_, _1, _2, _3);
 }
 _l8:;
  _1= v_var;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__declareArgument_position_(oop v__closure, oop v_stateful_self, oop v_self, oop v_name, oop v_position)
 {
  _enter("declareArgument:position:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_var= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_var;
  _line(204);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _3= v_name;
  _4= v_position;
  _line(207);
  _2=_send(s_declareArgument_position_, _2, _3, _4);
  v_var= _2;
  _line(207);
  _2=_send(s_isNil, _2);
  if (!_2) goto _l9;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_name;
  _3= v_position;
  _line(208);
  _1=_send(s_errorRedefined_at_, _1, _2, _3);
 }
 _l9:;
  _1= v_var;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__declareTemporary_position_(oop v__closure, oop v_stateful_self, oop v_self, oop v_name, oop v_position)
 {
  _enter("declareTemporary:position:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_var= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_var;
  _line(212);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _3= v_name;
  _4= v_position;
  _line(215);
  _2=_send(s_declareTemporary_position_, _2, _3, _4);
  v_var= _2;
  _line(215);
  _2=_send(s_isNil, _2);
  if (!_2) goto _l10;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_name;
  _3= v_position;
  _line(216);
  _1=_send(s_errorRedefined_at_, _1, _2, _3);
 }
 _l10:;
  _1= v_var;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__push(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("push", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(220);
  _1= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  _2= l_26;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((struct t_Encoder *)v_stateful_self)->v_tempCount= _1;
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  _3= ((struct t_Encoder *)v_stateful_self)->v_tempMax;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 > (int)_3) ? v_true : v_false);
  } else _2= _send(s__3e, _2, _3);
  if (!_2) goto _l11;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  ((struct t_Encoder *)v_stateful_self)->v_tempMax= _1;
 }
 _l11:;
  _1= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__pop_(oop v__closure, oop v_stateful_self, oop v_self, oop v_count)
 {
  _enter("pop:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(227);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  _3= v_count;
  if (1 & (int)_2 & (int)_3) {
    _2= (((int)_2 < (int)_3) ? v_true : v_false);
  } else _2= _send(s__3c, _2, _3);
  if (!_2) goto _l12;
 {
  _1= v_self;
  _2= l_27;
  _line(229);
  _1=_send(s_error_, _1, _2);
 }
 _l12:;
  _1= ((struct t_Encoder *)v_stateful_self)->v_tempCount;
  _2= v_count;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= (_l - _r);
    if ((1 & (int)_1 & (int)_2) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2d, _1, _2);
  }
  ((struct t_Encoder *)v_stateful_self)->v_tempCount= _1;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__pop(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("pop", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(233);
  _1= v_self;
  _2= l_28;
  _line(235);
  _1=_send(s_pop_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__encode_position_(oop v__closure, oop v_stateful_self, oop v_self, oop v_nameString, oop v_aPosition)
 {
  _enter("encode:position:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_node= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  oop _6= 0;
  (void)v_node;
  _line(238);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _3= v_nameString;
  _line(242);
  _2=_send(s_encode_, _2, _3);
  v_node= _2;
  _line(242);
  _2=_send(s_notNil, _2);
  if (!_2) goto _l13;
 {
  _1= v_node;
  _leave();
  return _1;
 }
 _l13:;
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _3= v_nameString;
  _line(245);
  _2=_send(s_encode_, _2, _3);
  v_node= _2;
  _line(245);
  _2=_send(s_isNil, _2);
  if (!_2) goto _l14;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_nameString;
  _3= v_aPosition;
  _line(246);
  _1=_send(s_errorUndefined_at_, _1, _2, _3);
 }
 _l14:;
  _1= v_node;
  _line(247);
  _1=_send(s_noteUsed, _1);
  _1= ((struct t_Encoder *)v_stateful_self)->v_globals;
  _2= v_nameString;
  _3= v_GlobalVariableNode;
  _4= v_nameString;
  _5= v_node;
  _line(249);
  _5=_send(s_position, _5);
  _6= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _line(249);
  _3=_send(s_withName_position_scope_, _3, _4, _5, _6);
  _line(249);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__nextLiteralTag(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("nextLiteralTag", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(252);
  _1= ((struct t_Encoder *)v_stateful_self)->v_literalTag;
  _2= l_29;
  {
    int _l= (int)_1 >> 1;
    int _r= (int)_2 >> 1;
    int _s= _l + _r;
    if ((1 & (int)_1) && ((_s ^ (_s << 1)) >= 0))  _1= (oop)(_s << 1 | 1);  else _1= _send(s__2b, _1, _2);
  }
  ((struct t_Encoder *)v_stateful_self)->v_literalTag= _1;
  _leave();
  return _1;
  _leave();
 }
static oop b_30(oop v__closure, oop v__self)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(261);
  _1= ((struct t_Encoder *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_literalMap;  /* literalMap */
  _2= ((struct t_Encoder *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_literals;  /* literals */
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2];  /* literalNode */
  _line(261);
  _2=_send(s_add_, _2, _3);
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* self */
  _line(261);
  _3=_send(s_nextLiteralTag, _3);
  _line(261);
  _1=_send(s_at_put_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__encodeLiteral_(oop v__closure, oop v_stateful_self, oop v_self, oop v_literalNode)
 {
  _enter("encodeLiteral:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _state1= _send(s_new_5f_, v__vector, 17);
  oop v_lit= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_lit;
  ((oop *)_state1)[1]= v_stateful_self;
  ((oop *)_state1)[3]= v_self;
  ((oop *)_state1)[2]= v_literalNode;
  _line(257);
  _1= ((struct t_Encoder *)((oop *)_state1)[1])->v_literalMap;  /* literalMap */
  _2= ((oop *)_state1)[2];  /* literalNode */
  /* Scope() */
  /* Scope('literalTag'->SlotVariableNode 'tempCount'->SlotVariableNode 'outerCount'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'globalContext'->SlotVariableNode 'literalNode'->ArgumentVariableNode 'tempMax'->SlotVariableNode 'self'->ArgumentVariableNode 'globals'->SlotVariableNode 'literals'->SlotVariableNode 'methodType'->SlotVariableNode 'literalMap'->SlotVariableNode 'selectors'->SlotVariableNode 'specialEncoders'->SlotVariableNode 'implementations'->SlotVariableNode 'scope'->SlotVariableNode 'lit'->TemporaryVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _3= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_30, 0, 0, ((oop *)_state1), 0);
  _line(261);
  _1=_send(s_at_ifAbsent_, _1, _2, _3);
  v_lit= _1;
  _1= v_lit;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__literals(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("literals", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_lits= 0;
  oop _1= 0;
  (void)v_lits;
  _line(265);
  _1= ((struct t_Encoder *)v_stateful_self)->v_literals;
  v_lits= _1;
  _1= v_OrderedCollection;
  _line(273);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_literals= _1;
  _1= v_Dictionary;
  _line(274);
  _1=_send(s_new, _1);
  ((struct t_Encoder *)v_stateful_self)->v_literalMap= _1;
  _1= v_lits;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__encodeBlock_(oop v__closure, oop v_stateful_self, oop v_self, oop v_blockNode)
 {
  _enter("encodeBlock:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(278);
  _1= v_self;
  _line(280);
  _1=_send(s_nextLiteralTag, _1);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__addBlock_(oop v__closure, oop v_stateful_self, oop v_self, oop v_blockNode)
 {
  _enter("addBlock:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  _line(283);
  _1= ((struct t_Encoder *)v_stateful_self)->v_scope;
  _2= v_blockNode;
  _line(285);
  _1=_send(s_addBlock_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__encodeType_position_(oop v__closure, oop v_stateful_self, oop v_self, oop v_typeName, oop v_aPosition)
 {
  _enter("encodeType:position:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop v_type= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  (void)v_type;
  _line(288);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _3= v_typeName;
  _line(294);
  _2=_send(s_encode_, _2, _3);
  v_type= _2;
  _line(294);
  _2=_send(s_isNil, _2);
  if (!_2) goto _l15;
 {
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_typeName;
  _3= v_aPosition;
  _line(295);
  _1=_send(s_errorUndefined_at_, _1, _2, _3);
 }
 _l15:;
  _1= v_type;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__specialEncoders(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("specialEncoders", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  _line(300);
  _1= ((struct t_Encoder *)v_stateful_self)->v_specialEncoders;
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__error_at_(oop v__closure, oop v_stateful_self, oop v_self, oop v_message, oop v_aPosition)
 {
  _enter("error:at:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(305);
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_message;
  _3= v_aPosition;
  _line(305);
  _1=_send(s_error_at_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop Encoder__warn_at_(oop v__closure, oop v_stateful_self, oop v_self, oop v_message, oop v_aPosition)
 {
  _enter("warn:at:", "Encoder", "/home/saintiss/source/svn/stIdst_278/object/idc/Encoder.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(306);
  _1= ((struct t_Encoder *)v_stateful_self)->v_globalContext;
  _2= v_message;
  _3= v_aPosition;
  _line(306);
  _1=_send(s_warn_at_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }

void __id__init__Encoder(void)
{
  if (_local_object) return;
  { 
    dlhandle_t global= dlopen(0, RTLD_LAZY);
    _local_object= *(oop *)dlsym(global, "_libid_object");
    _local_param= dlsym(global, "_libid_param");
    _local_intern= dlsym(global, "_libid_intern");
    _local_proto= dlsym(global, "_libid_proto");
    _local_import= dlsym(global, "_libid_import");
    _local_export= dlsym(global, "_libid_export");
    _local_method= dlsym(global, "_libid_method");
    _local_alloc= dlsym(global, "_libid_alloc");
    _local_palloc= dlsym(global, "_libid_palloc");
    _local_balloc= dlsym(global, "_libid_balloc");
    _local_bind= dlsym(global, "_libid_bind");
    _local_nlreturn= dlsym(global, "_libid_nlreturn");
    _local_nlresult= dlsym(global, "_libid_nlresult");
    _local_enter= dlsym(global, "_libid_enter");
    _local_line= dlsym(global, "_libid_line");
    _local_leave= dlsym(global, "_libid_leave");
    _local_backtrace= dlsym(global, "_libid_backtrace");
    _local_tag_vtable= dlsym(global, "_libid_tag_vtable");
    _local_nil_vtable= dlsym(global, "_libid_nil_vtable");
    _local_gc_addRoots= dlsym(global, "GC_add_roots");
    _local_gc_unregisterDisappearingLink= dlsym(global, "GC_unregister_disappearing_link");
    _local_gc_generalRegisterDisappearingLink= dlsym(global, "GC_general_register_disappearing_link");
    _local_gc_gcollect= dlsym(global, "GC_gcollect");
    dlclose(global);
  }
# define GC_add_roots _local_gc_addRoots
  GC_INIT();
  {
    struct _Selector *s= 0;
    for (s= _Selectors;  s->name;  ++s)
      *s->addr= _selector(s->name);
  }
  _enter("__id__init__", "<initialisation>", "Encoder.st");

  _send(s__5fimport_, _local_object, "Object", "__id__init__Object");
  _send(s__5fimport_, _local_object, "_object", "__id__init___5fobject");
  v__object= _id_import("_object");
  v__vector= _id_import("_vector");
  v_Object= _id_import("Object");
  v_UndefinedObject= _id_import("UndefinedObject");
  v_StaticBlockClosure= _id_import("StaticBlockClosure");
  v_BlockClosure= _id_import("BlockClosure");
  v_Magnitude= _id_import("Magnitude");
  v_Character= _id_import("Character");
  v_Number= _id_import("Number");
  v_Integer= _id_import("Integer");
  v_SmallInteger= _id_import("SmallInteger");
  v_LargePositiveInteger= _id_import("LargePositiveInteger");
  v_Collection= _id_import("Collection");
  v_SequenceableCollection= _id_import("SequenceableCollection");
  v_ArrayedCollection= _id_import("ArrayedCollection");
  v_Array= _id_import("Array");
  v_WordArray= _id_import("WordArray");
  v_ByteArray= _id_import("ByteArray");
  v_String= _id_import("String");
  v_ImmutableString= _id_import("ImmutableString");
  v_Symbol= _id_import("Symbol");
  v_nil= _id_import("nil");
  v_true= _id_import("true");
  v_false= _id_import("false");
  _send(s__5fimport_, _local_object, "BlockClosure", "__id__init__BlockClosure");
  _send(s__5fimport_, _local_object, "SmallInteger", "__id__init__SmallInteger");
  _send(s__5fimport_, _local_object, "Integer", "__id__init__Integer");
  _send(s__5fimport_, _local_object, "Number", "__id__init__Number");
  _send(s__5fimport_, _local_object, "Magnitude", "__id__init__Magnitude");
  _send(s__5fimport_, _local_object, "Array", "__id__init__Array");
  _send(s__5fimport_, _local_object, "ArrayedCollection", "__id__init__ArrayedCollection");
  _send(s__5fimport_, _local_object, "SequenceableCollection", "__id__init__SequenceableCollection");
  _send(s__5fimport_, _local_object, "Collection", "__id__init__Collection");
  _send(s__5fimport_, _local_object, "Character", "__id__init__Character");
  _send(s__5fimport_, _local_object, "String", "__id__init__String");
  _send(s__5fimport_, _local_object, "ByteArray", "__id__init__ByteArray");
  _send(s__5fimport_, _local_object, "WordArray", "__id__init__WordArray");
  _send(s__5fimport_, _local_object, "Scope", "__id__init__Scope");
  _send(s__5fimport_, _local_object, "Dictionary", "__id__init__Dictionary");
  _send(s__5fimport_, _local_object, "Set", "__id__init__Set");
  v_Set= _id_import("Set");
  _send(s__5fimport_, _local_object, "Association", "__id__init__Association");
  _send(s__5fimport_, _local_object, "LookupKey", "__id__init__LookupKey");
  v_LookupKey= _id_import("LookupKey");
  _send(s__5fimport_, _local_object, "OrderedCollection", "__id__init__OrderedCollection");
  v_OrderedCollection= _id_import("OrderedCollection");
  v_Dictionary= _id_import("Dictionary");
  _send(s__5fimport_, _local_object, "SlotVariableNode", "__id__init__SlotVariableNode");
  _send(s__5fimport_, _local_object, "ArgumentVariableNode", "__id__init__ArgumentVariableNode");
  _send(s__5fimport_, _local_object, "LocalVariableNode", "__id__init__LocalVariableNode");
  _send(s__5fimport_, _local_object, "EncodedVariableNode", "__id__init__EncodedVariableNode");
  v_EncodedVariableNode= _id_import("EncodedVariableNode");
  v_LocalVariableNode= _id_import("LocalVariableNode");
  _send(s__5fimport_, _local_object, "TemporaryVariableNode", "__id__init__TemporaryVariableNode");
  v_Scope= _id_import("Scope");
  _send(s__5fimport_, _local_object, "SendNode", "__id__init__SendNode");
  _send(s__5fimport_, _local_object, "ParseNode", "__id__init__ParseNode");
  v_ParseNode= _id_import("ParseNode");
  _send(s__5fimport_, _local_object, "VariableNode", "__id__init__VariableNode");
  _send(s__5fimport_, _local_object, "IntegerNode", "__id__init__IntegerNode");
  _send(s__5fimport_, _local_object, "LiteralNode", "__id__init__LiteralNode");
  v_LiteralNode= _id_import("LiteralNode");
  v_SendNode= _id_import("SendNode");
  _send(s__5fimport_, _local_object, "GlobalVariableNode", "__id__init__GlobalVariableNode");
  v_GlobalVariableNode= _id_import("GlobalVariableNode");
  v_Encoder= _proto(v_Object);
  _method(v_Encoder, s__5fsizeof, Encoder___5fsizeof);
  _method(v_Encoder, s__5fdebugName, Encoder___5fdebugName);
  _id_export("Encoder", v_Encoder);
  l_1= _send(s_value_5f_, v_SmallInteger, 0);
  _method(v_Encoder, s_withGlobalContext_, Encoder__withGlobalContext_);
  _method(v_Encoder, s_scope, Encoder__scope);
  _method(v_Encoder, s_selectors, Encoder__selectors);
  _method(v_Encoder, s_level, Encoder__level);
  _method(v_Encoder, s_noteNLR, Encoder__noteNLR);
  _method(v_Encoder, s_methodType, Encoder__methodType);
  _method(v_Encoder, s_superTypeAt_, Encoder__superTypeAt_);
  _method(v_Encoder, s_thisTypeAt_, Encoder__thisTypeAt_);
  v_NameManglingTable= _proto(v_Array);
  _method(v_NameManglingTable, s__5fsizeof, NameManglingTable___5fsizeof);
  _method(v_NameManglingTable, s__5fdebugName, NameManglingTable___5fdebugName);
  _id_export("NameManglingTable", v_NameManglingTable);
  l_2= _send(s_value_5f_, v_SmallInteger, 256);
  l_3= _send(s_size_5f_value_5f_, v_Symbol, 15, "mangleOther:to:");
  l_4= _send(s_value_5f_, v_Character, 58);
  l_5= _send(s_size_5f_value_5f_, v_Symbol, 15, "mangleColon:to:");
  l_6= _send(s_size_5f_value_5f_, v_ImmutableString, 62, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
  l_8= _send(s_size_5f_value_5f_, v_Symbol, 16, "mangleLetter:to:");
  l_7= _send(s_function_5f_arity_5f_, v_StaticBlockClosure, b_7, 1);
 {
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _1= v_Array;
  _2= l_2;
  _line(92);
  _1=_send(s_new_, _1, _2);
  v_NameManglingTable= _1;
  _id_export("NameManglingTable", v_NameManglingTable);
  _1= v_NameManglingTable;
  _2= l_3;
  _line(93);
  _1=_send(s_atAllPut_, _1, _2);
  _1= v_NameManglingTable;
  _2= l_4;
  _line(94);
  _2=_send(s_asciiValue, _2);
  _3= l_5;
  _line(94);
  _1=_send(s_at_put_, _1, _2, _3);
  _1= l_6;
  _2= l_7;
  _line(96);
  _1=_send(s_do_, _1, _2);
 }
  l_9= _send(s_value_5f_, v_SmallInteger, 2);
  _method(v_Encoder, s_mangleSelector_, Encoder__mangleSelector_);
  _method(v_Encoder, s_mangleLetter_to_, Encoder__mangleLetter_to_);
  l_11= _send(s_value_5f_, v_Character, 95);
  _method(v_Encoder, s_mangleColon_to_, Encoder__mangleColon_to_);
  l_12= _send(s_value_5f_, v_Character, 95);
  l_13= _send(s_value_5f_, v_SmallInteger, 127);
  l_14= _send(s_value_5f_, v_SmallInteger, 16);
  _method(v_Encoder, s_mangleOther_to_, Encoder__mangleOther_to_);
  _method(v_Encoder, s_addSelector_, Encoder__addSelector_);
  l_18= _send(s_value_5f_, v_SmallInteger, 0);
  l_19= _send(s_size_5f_value_5f_, v_ImmutableString, 1, ".");
  l_20= _send(s_size_5f_value_5f_, v_ImmutableString, 10, " redefined");
  l_21= _send(s_value_5f_, v_SmallInteger, 1);
  l_22= _send(s_value_5f_, v_SmallInteger, -1);
  _method(v_Encoder, s_noteImplementation_in_at_, Encoder__noteImplementation_in_at_);
  _method(v_Encoder, s_requireType_at_, Encoder__requireType_at_);
  l_23= _send(s_size_5f_value_5f_, v_ImmutableString, 4, "true");
  l_24= _send(s_size_5f_value_5f_, v_ImmutableString, 5, "false");
  _method(v_Encoder, s_requireBooleanAt_, Encoder__requireBooleanAt_);
  _method(v_Encoder, s_beginScope, Encoder__beginScope);
  _method(v_Encoder, s_endScope, Encoder__endScope);
  _method(v_Encoder, s_beginSequence, Encoder__beginSequence);
  _method(v_Encoder, s_endSequence, Encoder__endSequence);
  l_25= _send(s_value_5f_, v_SmallInteger, 0);
  _method(v_Encoder, s_beginBlock, Encoder__beginBlock);
  _method(v_Encoder, s_endBlock, Encoder__endBlock);
  _method(v_Encoder, s_beginMethod_in_, Encoder__beginMethod_in_);
  _method(v_Encoder, s_endMethod, Encoder__endMethod);
  _method(v_Encoder, s_declareSlot_position_type_receiver_, Encoder__declareSlot_position_type_receiver_);
  _method(v_Encoder, s_declareArgument_position_, Encoder__declareArgument_position_);
  _method(v_Encoder, s_declareTemporary_position_, Encoder__declareTemporary_position_);
  l_26= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Encoder, s_push, Encoder__push);
  l_27= _send(s_size_5f_value_5f_, v_ImmutableString, 26, "internal compiler error #1");
  _method(v_Encoder, s_pop_, Encoder__pop_);
  l_28= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Encoder, s_pop, Encoder__pop);
  _method(v_Encoder, s_encode_position_, Encoder__encode_position_);
  l_29= _send(s_value_5f_, v_SmallInteger, 1);
  _method(v_Encoder, s_nextLiteralTag, Encoder__nextLiteralTag);
  _method(v_Encoder, s_encodeLiteral_, Encoder__encodeLiteral_);
  _method(v_Encoder, s_literals, Encoder__literals);
  _method(v_Encoder, s_encodeBlock_, Encoder__encodeBlock_);
  _method(v_Encoder, s_addBlock_, Encoder__addBlock_);
  _method(v_Encoder, s_encodeType_position_, Encoder__encodeType_position_);
  _method(v_Encoder, s_specialEncoders, Encoder__specialEncoders);
  _method(v_Encoder, s_error_at_, Encoder__error_at_);
  _method(v_Encoder, s_warn_at_, Encoder__warn_at_);
  _leave();
}
