/* generated by Id 1.0 at 2007-08-31 06:59:16 Z */
/* with the command: -I../stage1/ -I../st80 -c BlockNode.st -o ../stage2/BlockNode.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_declareArgument_position_= 0;
static oop s_withValue_position_= 0;
static oop s_position= 0;
static oop s_generateFullClosure_= 0;
static oop s_printString= 0;
static oop s_level= 0;
static oop s_makeBlock_constructor_outerFlag_function_arity_state_nlrFlag_location_= 0;
static oop s_hasNLR= 0;
static oop s_generateStaticClosure_= 0;
static oop s_tag= 0;
static oop s_loadBlock_location_= 0;
static oop s_genDeclaration_= 0;
static oop s_declareLiteral_= 0;
static oop s_genDefinition_= 0;
static oop s_collect_= 0;
static oop s_last= 0;
static oop s_outer= 0;
static oop s_genImplementation_= 0;
static oop s_beginBlock_arguments_variadic_= 0;
static oop s_debugBlock_= 0;
static oop s_declareStack_= 0;
static oop s_defineStack_= 0;
static oop s_debugLine_= 0;
static oop s_debugReturn_= 0;
static oop s_saveArgument_= 0;
static oop s_size= 0;
static oop s_genInitialisation_= 0;
static oop s_initialiseBlock_function_arity_constructor_= 0;
static oop s_println_= 0;
static oop s_printIndent_= 0;
static oop s_pop= 0;
static oop s_hasExports= 0;
static oop s__5fdebugName= 0;
static oop s_new= 0;
static oop s_stackSize= 0;
static oop s_isFree= 0;
static oop s_beginBlock= 0;
static oop s_notNil= 0;
static oop s_endBlock= 0;
static oop s_generate_= 0;
static oop s_addBlock_= 0;
static oop s_comment_= 0;
static oop s__5fsizeof= 0;
static oop s_println= 0;
static oop s_hasImports= 0;
static oop s_new_5f_= 0;
static oop s__5fimport_= 0;
static oop s_do_= 0;
static oop s_blocks= 0;
static oop s_ifFalse_= 0;
static oop s_arguments= 0;
static oop s_initialize= 0;
static oop s_push= 0;
static oop s_ifTrue_= 0;
static oop s_scope= 0;
static oop s__2c= 0;
static oop s__3d_3d= 0;
static oop s_removeLast= 0;
static oop s_add_= 0;
static oop s_location= 0;
static oop s_isEmpty= 0;
static oop s_encodeBlock_= 0;
static oop s_encodeBody_= 0;
static oop s_addArgument_= 0;
static oop s_isBlockNode= 0;
static oop s_isOpenCodable= 0;
static oop s_and_= 0;
static oop s_encodeOpen_= 0;
static oop s_beginSequence= 0;
static oop s_addLast_= 0;
static oop s_withName_position_= 0;
static oop s_size_5f_value_5f_= 0;
static oop s_endSequence= 0;
static oop s_requireType_at_= 0;
static oop s_declareTemporary_position_= 0;
static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0;
static oop s_generateOpen_= 0;
static oop s_beginSequence_= 0;
static oop s_createStateVector_inScope_constructor_= 0;
static oop s_encode_= 0;
static oop s_stateVectorSize= 0;
static oop s_endSequence_= 0;
static oop s_declareTemporary_= 0;
static oop s_defineTemporary_= 0;
static oop s_isReturnNode= 0;
static oop s_ifTrue_ifFalse_= 0;
static oop s_needsOuterScope= 0;
static struct _Selector { const char *name; oop *addr; } _Selectors[]= {
  { "declareArgument:position:", &s_declareArgument_position_ },
  { "withValue:position:", &s_withValue_position_ },
  { "position", &s_position },
  { "generateFullClosure:", &s_generateFullClosure_ },
  { "printString", &s_printString },
  { "level", &s_level },
  { "makeBlock:constructor:outerFlag:function:arity:state:nlrFlag:location:", &s_makeBlock_constructor_outerFlag_function_arity_state_nlrFlag_location_ },
  { "hasNLR", &s_hasNLR },
  { "generateStaticClosure:", &s_generateStaticClosure_ },
  { "tag", &s_tag },
  { "loadBlock:location:", &s_loadBlock_location_ },
  { "genDeclaration:", &s_genDeclaration_ },
  { "declareLiteral:", &s_declareLiteral_ },
  { "genDefinition:", &s_genDefinition_ },
  { "collect:", &s_collect_ },
  { "last", &s_last },
  { "outer", &s_outer },
  { "genImplementation:", &s_genImplementation_ },
  { "beginBlock:arguments:variadic:", &s_beginBlock_arguments_variadic_ },
  { "debugBlock:", &s_debugBlock_ },
  { "declareStack:", &s_declareStack_ },
  { "defineStack:", &s_defineStack_ },
  { "debugLine:", &s_debugLine_ },
  { "debugReturn:", &s_debugReturn_ },
  { "saveArgument:", &s_saveArgument_ },
  { "size", &s_size },
  { "genInitialisation:", &s_genInitialisation_ },
  { "initialiseBlock:function:arity:constructor:", &s_initialiseBlock_function_arity_constructor_ },
  { "println:", &s_println_ },
  { "printIndent:", &s_printIndent_ },
  { "pop", &s_pop },
  { "hasExports", &s_hasExports },
  { "_debugName", &s__5fdebugName },
  { "new", &s_new },
  { "stackSize", &s_stackSize },
  { "isFree", &s_isFree },
  { "beginBlock", &s_beginBlock },
  { "notNil", &s_notNil },
  { "endBlock", &s_endBlock },
  { "generate:", &s_generate_ },
  { "addBlock:", &s_addBlock_ },
  { "comment:", &s_comment_ },
  { "_sizeof", &s__5fsizeof },
  { "println", &s_println },
  { "hasImports", &s_hasImports },
  { "new_:", &s_new_5f_ },
  { "_import:", &s__5fimport_ },
  { "do:", &s_do_ },
  { "blocks", &s_blocks },
  { "ifFalse:", &s_ifFalse_ },
  { "arguments", &s_arguments },
  { "initialize", &s_initialize },
  { "push", &s_push },
  { "ifTrue:", &s_ifTrue_ },
  { "scope", &s_scope },
  { ",", &s__2c },
  { "==", &s__3d_3d },
  { "removeLast", &s_removeLast },
  { "add:", &s_add_ },
  { "location", &s_location },
  { "isEmpty", &s_isEmpty },
  { "encodeBlock:", &s_encodeBlock_ },
  { "encodeBody:", &s_encodeBody_ },
  { "addArgument:", &s_addArgument_ },
  { "isBlockNode", &s_isBlockNode },
  { "isOpenCodable", &s_isOpenCodable },
  { "and:", &s_and_ },
  { "encodeOpen:", &s_encodeOpen_ },
  { "beginSequence", &s_beginSequence },
  { "addLast:", &s_addLast_ },
  { "withName:position:", &s_withName_position_ },
  { "size_:value_:", &s_size_5f_value_5f_ },
  { "endSequence", &s_endSequence },
  { "requireType:at:", &s_requireType_at_ },
  { "declareTemporary:position:", &s_declareTemporary_position_ },
  { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ },
  { "generateOpen:", &s_generateOpen_ },
  { "beginSequence:", &s_beginSequence_ },
  { "createStateVector:inScope:constructor:", &s_createStateVector_inScope_constructor_ },
  { "encode:", &s_encode_ },
  { "stateVectorSize", &s_stateVectorSize },
  { "endSequence:", &s_endSequence_ },
  { "declareTemporary:", &s_declareTemporary_ },
  { "defineTemporary:", &s_defineTemporary_ },
  { "isReturnNode", &s_isReturnNode },
  { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ },
  { "needsOuterScope", &s_needsOuterScope },
  { 0, 0 }
};
struct t__object {
  struct _vtable *_vtable[0];
};
struct t__selector {
  struct _vtable *_vtable[0];
  oop v__size;
  oop v__elements;
};
struct t__assoc {
  struct _vtable *_vtable[0];
  oop v_key;
  oop v_value;
};
struct t__closure {
  struct _vtable *_vtable[0];
  oop v__method;
  oop v_data;
};
struct t__vector {
  struct _vtable *_vtable[0];
  oop v__size;
};
struct t__vtable {
  struct _vtable *_vtable[0];
  oop v__tally;
  oop v_bindings;
  oop v_delegate;
};
struct t_Object {
  struct _vtable *_vtable[0];
};
struct t_UndefinedObject {
  struct _vtable *_vtable[0];
};
struct t_StaticBlockClosure {
  struct _vtable *_vtable[0];
  oop v__function;
  oop v__arity;
};
struct t_BlockClosure {
  struct _vtable *_vtable[0];
  oop v__function;
  oop v__arity;
  oop v_outer;
  oop v_state;
  oop v__nlr;
};
struct t_Magnitude {
  struct _vtable *_vtable[0];
};
struct t_Character {
  struct _vtable *_vtable[0];
  oop v_value;
};
struct t_Number {
  struct _vtable *_vtable[0];
};
struct t_Fraction {
  struct _vtable *_vtable[0];
  oop v_numerator;
  oop v_denominator;
};
struct t_Float {
  struct _vtable *_vtable[0];
};
struct t_Integer {
  struct _vtable *_vtable[0];
};
struct t_SmallInteger {
  struct _vtable *_vtable[0];
};
struct t_LargePositiveInteger {
  struct _vtable *_vtable[0];
  oop v_bytes;
};
struct t_LargeNegativeInteger {
  struct _vtable *_vtable[0];
  oop v_bytes;
};
struct t_Collection {
  struct _vtable *_vtable[0];
};
struct t_SequenceableCollection {
  struct _vtable *_vtable[0];
};
struct t_ArrayedCollection {
  struct _vtable *_vtable[0];
  oop v_size;
};
struct t_Array {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_ImmutableArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_WordArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__words;
};
struct t_ImmutableWordArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__words;
};
struct t_ByteArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_ImmutableByteArray {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_String {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_ImmutableString {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_Symbol {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__bytes;
};
struct t_nil {
  struct _vtable *_vtable[0];
};
struct t_true {
  struct _vtable *_vtable[0];
};
struct t_false {
  struct _vtable *_vtable[0];
};
struct t_CharacterTable {
  struct _vtable *_vtable[0];
  oop v_size;
  oop v__pointers;
};
struct t_ParseNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
};
struct t_OrderedCollection {
  struct _vtable *_vtable[0];
  oop v_array;
  oop v_firstIndex;
  oop v_lastIndex;
};
struct t_SequenceNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_temporaries;
  oop v_statements;
  oop v_scope;
  oop v_literals;
  oop v_blocks;
};
struct t_VariableNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_name;
  oop v_variable;
  oop v_level;
};
struct t_ReturnNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_value;
  oop v_nonLocal;
  oop v_variadic;
};
struct t_LocalReturnNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_value;
  oop v_nonLocal;
  oop v_variadic;
};
struct t_BlockNode {
  struct _vtable *_vtable[0];
  oop v_position;
  oop v_location;
  oop v_temporaries;
  oop v_statements;
  oop v_scope;
  oop v_literals;
  oop v_blocks;
  oop v_arguments;
  oop v_tag;
  oop v_constructor;
  oop v_stateConstructor;
};
static oop l_2= 0;
static oop l_5= 0;
static oop l_11= 0;
static oop l_15= 0;
static oop l_16= 0;
static oop l_17= 0;
static oop l_26= 0;
static oop v__object= 0;
static oop v__vector= 0;
static oop v_Object= 0;
static oop v_UndefinedObject= 0;
static oop v_StaticBlockClosure= 0;
static oop v_BlockClosure= 0;
static oop v_Magnitude= 0;
static oop v_Number= 0;
static oop v_Integer= 0;
static oop v_LargePositiveInteger= 0;
static oop v_Collection= 0;
static oop v_SequenceableCollection= 0;
static oop v_ArrayedCollection= 0;
static oop v_Array= 0;
static oop v_WordArray= 0;
static oop v_ByteArray= 0;
static oop v_String= 0;
static oop v_ImmutableString= 0;
static oop v_nil= 0;
static oop v_true= 0;
static oop v_false= 0;
static oop v_ParseNode= 0;
static oop v_OrderedCollection= 0;
static oop v_SequenceNode= 0;
static oop v_VariableNode= 0;
static oop v_ReturnNode= 0;
static oop v_LocalReturnNode= 0;
static oop v_BlockNode= 0;
static size_t BlockNode___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_BlockNode); }
static char *BlockNode___5fdebugName(oop _closure, oop v_self) { return "BlockNode"; }
static oop BlockNode__isBlockNode(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("isBlockNode", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(34);
  _1= v_true;
  _leave();
  return _1;
  _leave();
 }
static oop ParseNode__isBlockNode(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("isBlockNode", "ParseNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(35);
  _1= v_false;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__initialize(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("initialize", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(37);
  _1= v_self;
  _line(39);
  _1=_super(v_SequenceNode, s_initialize, _1);
  _1= v_OrderedCollection;
  _line(40);
  _1=_send(s_new, _1);
  ((struct t_BlockNode *)v_stateful_self)->v_arguments= _1;
  _1= v_nil;
  ((struct t_BlockNode *)v_stateful_self)->v_tag= _1;
  _1= v_nil;
  ((struct t_BlockNode *)v_stateful_self)->v_constructor= _1;
  _1= v_nil;
  ((struct t_BlockNode *)v_stateful_self)->v_stateConstructor= _1;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__addArgument_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aVariableNode)
 {
  _enter("addArgument:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(46);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _2= v_aVariableNode;
  _line(48);
  _1=_send(s_add_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__arguments(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("arguments", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(51);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__tag(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("tag", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(52);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _leave();
  return _1;
  _leave();
 }
static oop ParseNode__isOpenCodable(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("isOpenCodable", "ParseNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(54);
  _1= v_false;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__isOpenCodable(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("isOpenCodable", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(55);
  /* and: */
  _1= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _line(55);
  _1=_send(s_isEmpty, _1);
  if (!_1) goto _l1;
 {
  _1= ((struct t_BlockNode *)v_stateful_self)->v_temporaries;
  _line(55);
  _1=_send(s_isEmpty, _1);
 }
 _l1:;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__scope(oop v__closure, oop v_stateful_self, oop v_self)
 {
  _enter("scope", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  _line(57);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _leave();
  return _1;
  _leave();
 }
static oop b_1(oop v__closure, oop v__self, oop v_tmp)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(64);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _2= v_tmp;
  _3= ((struct t_BlockNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_position;  /* position */
  _line(64);
  _1=_send(s_declareTemporary_position_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_3(oop v__closure, oop v__self, oop v_stmt)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(69);
  _1= v_stmt;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _line(70);
  _1=_send(s_encode_, _1, _2);
  /* ifFalse: */
  _1= 0;
  _2= v_stmt;
  _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3];  /* last */
  _2= (_2 == _3) ? v_true : v_false;
  if (_2) goto _l2;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _line(71);
  _1=_send(s_pop, _1);
 }
 _l2:;
  _leave();
  return _1;
  _leave();
 }
static oop b_4(oop v__closure, oop v__self, oop v_block)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(75);
  _1= ((struct t_BlockNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_scope;  /* scope */
  _line(75);
  _1=_send(s_outer, _1);
  _2= v_block;
  _line(75);
  _1=_send(s_addBlock_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__encodeOpen_(oop v__closure, oop v_stateful_self, oop v_self, oop v_encoder)
 {
  _enter("encodeOpen:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 15);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_encoder;
  _line(59);
  _1= ((oop *)_state1)[1];  /* encoder */
  _line(63);
  _1=_send(s_beginSequence, _1);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope= _1;  /* scope */
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_temporaries;  /* temporaries */
  /* Scope('tmp'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'temporaries'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'last'->TemporaryVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_1, 1, 0, ((oop *)_state1), 0);
  _line(64);
  _1=_send(s_collect_, _1, _2);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_temporaries= _1;  /* temporaries */
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  _line(65);
  _2=_send(s_isEmpty, _2);
  if (!_2) goto _l3;
 {
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  _2= v_VariableNode;
  _3= l_2;
  _4= ((struct t_BlockNode *)((oop *)_state1)[2])->v_position;  /* position */
  _line(67);
  _2=_send(s_withName_position_, _2, _3, _4);
  _line(67);
  _1=_send(s_addLast_, _1, _2);
 }
 _l3:;
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  _line(68);
  _1=_send(s_last, _1);
  ((oop *)_state1)[3]= _1;  /* last */
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  /* Scope('stmt'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'temporaries'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'last'->TemporaryVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_3, 1, 0, ((oop *)_state1), 0);
  _line(69);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[3];  /* last */
  _line(73);
  _1=_send(s_location, _1);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_location= _1;  /* location */
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope;  /* scope */
  _line(75);
  _1=_send(s_blocks, _1);
  /* Scope('block'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'temporaries'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'last'->TemporaryVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_4, 1, 0, ((oop *)_state1), 0);
  _line(75);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* encoder */
  _line(76);
  _1=_send(s_endSequence, _1);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope;  /* scope */
  _line(77);
  _2=_send(s_hasExports, _2);
  if (!_2) goto _l4;
 {
  _1= ((oop *)_state1)[1];  /* encoder */
  _2= l_5;
  _3= ((struct t_BlockNode *)((oop *)_state1)[2])->v_position;  /* position */
  _line(77);
  _1=_send(s_requireType_at_, _1, _2, _3);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_stateConstructor= _1;  /* stateConstructor */
 }
 _l4:;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_6(oop v__closure, oop v__self, oop v_var)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(85);
  /* ifFalse: */
  _1= 0;
  _2= v_var;
  _line(85);
  _2=_send(s_isFree, _2);
  if (_2) goto _l5;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _2= v_var;
  _line(85);
  _1=_send(s_declareTemporary_, _1, _2);
 }
 _l5:;
  _leave();
  return _1;
  _leave();
 }
static oop b_7(oop v__closure, oop v__self, oop v_temp)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(86);
  /* ifFalse: */
  _1= 0;
  _2= v_temp;
  _line(86);
  _2=_send(s_isFree, _2);
  if (_2) goto _l6;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _2= v_temp;
  _line(86);
  _1=_send(s_defineTemporary_, _1, _2);
 }
 _l6:;
  _leave();
  return _1;
  _leave();
 }
static oop b_8(oop v__closure, oop v__self, oop v_stmt)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(87);
  _1= v_stmt;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _line(87);
  _1=_send(s_generate_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__generateOpen_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("generateOpen:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 2);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  ((oop *)_state1)[1]= v_gen;
  _line(80);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= v_self;
  _line(83);
  _1=_send(s_beginSequence_, _1, _2);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(84);
  _2=_send(s_hasExports, _2);
  if (!_2) goto _l7;
 {
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(84);
  _2=_send(s_stateVectorSize, _2);
  _3= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(84);
  _3=_send(s_tag, _3);
  _4= ((struct t_BlockNode *)v_stateful_self)->v_stateConstructor;
  _line(84);
  _1=_send(s_createStateVector_inScope_constructor_, _1, _2, _3, _4);
 }
 _l7:;
  _1= ((struct t_BlockNode *)v_stateful_self)->v_temporaries;
  /* Scope('var'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_6, 1, 0, ((oop *)_state1), 0);
  _line(85);
  _1=_send(s_do_, _1, _2);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_temporaries;
  /* Scope('temp'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_7, 1, 0, ((oop *)_state1), 0);
  _line(86);
  _1=_send(s_do_, _1, _2);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_statements;
  /* Scope('stmt'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_8, 1, 0, ((oop *)_state1), 0);
  _line(87);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= v_self;
  _line(88);
  _1=_send(s_endSequence_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__encode_(oop v__closure, oop v_stateful_self, oop v_self, oop v_encoder)
 {
  _enter("encode:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(91);
  _1= v_encoder;
  _2= v_self;
  _line(94);
  _1=_send(s_encodeBlock_, _1, _2);
  ((struct t_BlockNode *)v_stateful_self)->v_tag= _1;
  _1= v_encoder;
  _line(95);
  _1=_send(s_push, _1);
  ((struct t_BlockNode *)v_stateful_self)->v_location= _1;
  _1= v_encoder;
  _2= v_self;
  _line(96);
  _1=_send(s_addBlock_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_9(oop v__closure, oop v__self, oop v_arg)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(104);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _2= v_arg;
  _3= ((struct t_BlockNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_position;  /* position */
  _line(104);
  _1=_send(s_declareArgument_position_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_10(oop v__closure, oop v__self, oop v_tmp)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(105);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _2= v_tmp;
  _3= ((struct t_BlockNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_position;  /* position */
  _line(105);
  _1=_send(s_declareTemporary_position_, _1, _2, _3);
  _leave();
  return _1;
  _leave();
 }
static oop b_12(oop v__closure, oop v__self)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop v_last= 0;
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  (void)v_last;
  _line(111);
  _1= ((struct t_BlockNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_statements;  /* statements */
  _line(112);
  _1=_send(s_removeLast, _1);
  v_last= _1;
  _1= ((struct t_BlockNode *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2])->v_statements;  /* statements */
  _2= v_LocalReturnNode;
  _3= v_last;
  _4= v_last;
  _line(113);
  _4=_send(s_position, _4);
  _line(113);
  _2=_send(s_withValue_position_, _2, _3, _4);
  _line(113);
  _1=_send(s_addLast_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop b_13(oop v__closure, oop v__self, oop v_stmt)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(114);
  _1= v_stmt;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _line(115);
  _1=_send(s_encode_, _1, _2);
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _line(116);
  _1=_send(s_pop, _1);
  _leave();
  return _1;
  _leave();
 }
static oop b_14(oop v__closure, oop v__self, oop v_block)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(118);
  _1= v_block;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* encoder */
  _line(118);
  _1=_send(s_encodeBody_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__encodeBody_(oop v__closure, oop v_stateful_self, oop v_self, oop v_encoder)
 {
  _enter("encodeBody:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 14);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  ((oop *)_state1)[2]= v_stateful_self;
  ((oop *)_state1)[1]= v_encoder;
  _line(99);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope;  /* scope */
  _line(102);
  _2=_send(s_notNil, _2);
  if (!_2) goto _l8;
 {
  _1= v_self;
  _leave();
  return _1;
 }
 _l8:;
  _1= ((oop *)_state1)[1];  /* encoder */
  _line(103);
  _1=_send(s_beginBlock, _1);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope= _1;  /* scope */
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_arguments;  /* arguments */
  /* Scope('arg'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_9, 1, 0, ((oop *)_state1), 0);
  _line(104);
  _1=_send(s_collect_, _1, _2);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_arguments= _1;  /* arguments */
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_temporaries;  /* temporaries */
  /* Scope('tmp'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->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(105);
  _1=_send(s_collect_, _1, _2);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_temporaries= _1;  /* temporaries */
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  _line(106);
  _2=_send(s_isEmpty, _2);
  if (!_2) goto _l9;
 {
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  _2= v_VariableNode;
  _3= l_11;
  _4= ((struct t_BlockNode *)((oop *)_state1)[2])->v_position;  /* position */
  _line(108);
  _2=_send(s_withName_position_, _2, _3, _4);
  _line(108);
  _1=_send(s_addLast_, _1, _2);
 }
 _l9:;
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  _line(109);
  _1=_send(s_last, _1);
  _line(109);
  _1=_send(s_isReturnNode, _1);
  /* Scope('last'->TemporaryVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_12, 0, 0, ((oop *)_state1), 0);
  _line(110);
  _1=_send(s_ifFalse_, _1, _2);
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_statements;  /* statements */
  /* Scope('stmt'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_13, 1, 0, ((oop *)_state1), 0);
  _line(114);
  _1=_send(s_do_, _1, _2);
  _1= ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope;  /* scope */
  _line(118);
  _1=_send(s_blocks, _1);
  /* Scope('block'->ArgumentVariableNode) */
  /* Scope('encoder'->ArgumentVariableNode 'position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_14, 1, 0, ((oop *)_state1), 0);
  _line(118);
  _1=_send(s_do_, _1, _2);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope;  /* scope */
  _line(119);
  _2=_send(s_hasExports, _2);
  if (!_2) goto _l10;
 {
  _1= ((oop *)_state1)[1];  /* encoder */
  _2= l_15;
  _3= ((struct t_BlockNode *)((oop *)_state1)[2])->v_position;  /* position */
  _line(119);
  _1=_send(s_requireType_at_, _1, _2, _3);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_stateConstructor= _1;  /* stateConstructor */
 }
 _l10:;
  _1= ((oop *)_state1)[1];  /* encoder */
  /* ifTrue:ifFalse: */
  _2= ((struct t_BlockNode *)((oop *)_state1)[2])->v_scope;  /* scope */
  _line(121);
  _2=_send(s_needsOuterScope, _2);
  if (!_2) goto _l11;
 {
  _2= l_16;
 }
  goto _l12;
 _l11:;
 {
  _2= l_17;
 }
 _l12:;
  _3= ((struct t_BlockNode *)((oop *)_state1)[2])->v_position;  /* position */
  _line(121);
  _1=_send(s_requireType_at_, _1, _2, _3);
  ((struct t_BlockNode *)((oop *)_state1)[2])->v_constructor= _1;  /* constructor */
  _1= ((oop *)_state1)[1];  /* encoder */
  _line(123);
  _1=_send(s_endBlock, _1);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__generateFullClosure_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("generateFullClosure:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  oop _6= 0;
  oop _7= 0;
  oop _8= 0;
  oop _9= 0;
  _line(126);
  _1= v_gen;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(132);
  _2=_send(s_printString, _2);
  _line(132);
  _send(s_comment_, _1, _2);
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(133);
  _2=_send(s_outer, _2);
  _line(133);
  _2=_send(s_printString, _2);
  _send(s_comment_, _1, _2);
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(134);
  _2=_send(s_outer, _2);
  _line(134);
  _2=_send(s_hasImports, _2);
  _line(134);
  _2=_send(s_printString, _2);
  _send(s_comment_, _1, _2);
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(135);
  _2=_send(s_level, _2);
  _line(135);
  _2=_send(s_printString, _2);
  _send(s_comment_, _1, _2);
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(136);
  _2=_send(s_outer, _2);
  _line(136);
  _2=_send(s_level, _2);
  _line(136);
  _2=_send(s_printString, _2);
  _1=_send(s_comment_, _1, _2);
  _1= v_gen;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _3= ((struct t_BlockNode *)v_stateful_self)->v_constructor;
  _4= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(137);
  _4=_send(s_outer, _4);
  _line(137);
  _4=_send(s_hasImports, _4);
  _5= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _6= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _line(138);
  _6=_send(s_size, _6);
  /* ifTrue: */
  _7= 0;
  _8= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(138);
  _8=_send(s_outer, _8);
  _line(138);
  _8=_send(s_hasExports, _8);
  if (!_8) goto _l13;
 {
  _7= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(138);
  _7=_send(s_outer, _7);
  _line(138);
  _7=_send(s_tag, _7);
 }
 _l13:;
  _8= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(138);
  _8=_send(s_hasNLR, _8);
  _9= ((struct t_BlockNode *)v_stateful_self)->v_location;
  _line(137);
  _1=_send(s_makeBlock_constructor_outerFlag_function_arity_state_nlrFlag_location_, _1, _2, _3, _4, _5, _6, _7, _8, _9);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__generateStaticClosure_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("generateStaticClosure:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  _line(142);
  _1= v_gen;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _3= ((struct t_BlockNode *)v_stateful_self)->v_location;
  _line(145);
  _1=_send(s_loadBlock_location_, _1, _2, _3);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__generate_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("generate:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(148);
  /* ifTrue:ifFalse: */
  _1= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(150);
  _1=_send(s_needsOuterScope, _1);
  if (!_1) goto _l14;
 {
  _1= v_self;
  _2= v_gen;
  _line(151);
  _1=_send(s_generateFullClosure_, _1, _2);
 }
  goto _l15;
 _l14:;
 {
  _1= v_self;
  _2= v_gen;
  _line(152);
  _1=_send(s_generateStaticClosure_, _1, _2);
 }
 _l15:;
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_18(oop v__closure, oop v__self, oop v_block)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(158);
  _1= v_block;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _line(158);
  _1=_send(s_genDeclaration_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__genDeclaration_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("genDeclaration:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 2);
  oop _1= 0;
  oop _2= 0;
  ((oop *)_state1)[1]= v_gen;
  _line(155);
  /* ifFalse: */
  _1= 0;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(157);
  _2=_send(s_needsOuterScope, _2);
  if (_2) goto _l16;
 {
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _line(157);
  _1=_send(s_declareLiteral_, _1, _2);
 }
 _l16:;
  _1= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(158);
  _1=_send(s_blocks, _1);
  /* Scope('block'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_18, 1, 0, ((oop *)_state1), 0);
  _line(158);
  _1=_send(s_do_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_19(oop v__closure, oop v__self, oop v_block)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(163);
  _1= v_block;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _line(163);
  _1=_send(s_genDefinition_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__genDefinition_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("genDefinition:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 2);
  oop _1= 0;
  oop _2= 0;
  ((oop *)_state1)[1]= v_gen;
  _line(161);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(163);
  _1=_send(s_blocks, _1);
  /* Scope('block'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_19, 1, 0, ((oop *)_state1), 0);
  _line(163);
  _1=_send(s_do_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_20(oop v__closure, oop v__self, oop v_block)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(172);
  _1= v_block;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _line(172);
  _1=_send(s_genImplementation_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop b_21(oop v__closure, oop v__self, oop v_var)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(177);
  /* ifFalse: */
  _1= 0;
  _2= v_var;
  _line(177);
  _2=_send(s_isFree, _2);
  if (_2) goto _l17;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _2= v_var;
  _line(177);
  _1=_send(s_declareTemporary_, _1, _2);
 }
 _l17:;
  _leave();
  return _1;
  _leave();
 }
static oop b_22(oop v__closure, oop v__self, oop v_temp)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(179);
  /* ifFalse: */
  _1= 0;
  _2= v_temp;
  _line(179);
  _2=_send(s_isFree, _2);
  if (_2) goto _l18;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _2= v_temp;
  _line(179);
  _1=_send(s_defineTemporary_, _1, _2);
 }
 _l18:;
  _leave();
  return _1;
  _leave();
 }
static oop b_23(oop v__closure, oop v__self, oop v_var)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(181);
  /* ifTrue: */
  _1= 0;
  _2= v_var;
  _line(181);
  _2=_send(s_isFree, _2);
  if (!_2) goto _l19;
 {
  _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _2= v_var;
  _line(181);
  _1=_send(s_saveArgument_, _1, _2);
 }
 _l19:;
  _leave();
  return _1;
  _leave();
 }
static oop b_24(oop v__closure, oop v__self, oop v_stmt)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(183);
  _1= v_stmt;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _line(183);
  _1=_send(s_generate_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__genImplementation_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("genImplementation:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 2);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  ((oop *)_state1)[1]= v_gen;
  _line(166);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(172);
  _1=_send(s_blocks, _1);
  /* Scope('block'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_20, 1, 0, ((oop *)_state1), 0);
  _line(172);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= v_self;
  _3= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _4= v_false;
  _line(173);
  _1=_send(s_beginBlock_arguments_variadic_, _1, _2, _3, _4);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= v_self;
  _line(174);
  _1=_send(s_beginSequence_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= v_self;
  _line(175);
  _1=_send(s_debugBlock_, _1, _2);
  /* ifTrue: */
  _1= 0;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(176);
  _2=_send(s_hasExports, _2);
  if (!_2) goto _l20;
 {
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(176);
  _2=_send(s_stateVectorSize, _2);
  _3= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(176);
  _3=_send(s_tag, _3);
  _4= ((struct t_BlockNode *)v_stateful_self)->v_stateConstructor;
  _line(176);
  _1=_send(s_createStateVector_inScope_constructor_, _1, _2, _3, _4);
 }
 _l20:;
  _1= ((struct t_BlockNode *)v_stateful_self)->v_temporaries;
  /* Scope('var'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_21, 1, 0, ((oop *)_state1), 0);
  _line(177);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(178);
  _2=_send(s_stackSize, _2);
  _line(178);
  _1=_send(s_declareStack_, _1, _2);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_temporaries;
  /* Scope('temp'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_22, 1, 0, ((oop *)_state1), 0);
  _line(179);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(180);
  _2=_send(s_stackSize, _2);
  _line(180);
  _1=_send(s_defineStack_, _1, _2);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  /* Scope('var'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_23, 1, 0, ((oop *)_state1), 0);
  _line(181);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_position;
  _line(182);
  _1=_send(s_debugLine_, _1, _2);
  _1= ((struct t_BlockNode *)v_stateful_self)->v_statements;
  /* Scope('stmt'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_24, 1, 0, ((oop *)_state1), 0);
  _line(183);
  _1=_send(s_do_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_position;
  _line(184);
  _1=_send(s_debugReturn_, _1, _2);
  _1= ((oop *)_state1)[1];  /* gen */
  _2= v_self;
  _line(185);
  _1=_send(s_endSequence_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop b_25(oop v__closure, oop v__self, oop v_block)
 {
  _enter("[]", "?", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(192);
  _1= v_block;
  _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1];  /* gen */
  _line(192);
  _1=_send(s_genInitialisation_, _1, _2);
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__genInitialisation_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen)
 {
  _enter("genInitialisation:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _state1= _send(s_new_5f_, v__vector, 2);
  oop _1= 0;
  oop _2= 0;
  oop _3= 0;
  oop _4= 0;
  oop _5= 0;
  ((oop *)_state1)[1]= v_gen;
  _line(188);
  /* ifFalse: */
  _1= 0;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(191);
  _2=_send(s_needsOuterScope, _2);
  if (_2) goto _l21;
 {
  _1= ((oop *)_state1)[1];  /* gen */
  _2= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _3= ((struct t_BlockNode *)v_stateful_self)->v_tag;
  _4= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _line(191);
  _4=_send(s_size, _4);
  _5= ((struct t_BlockNode *)v_stateful_self)->v_constructor;
  _line(191);
  _1=_send(s_initialiseBlock_function_arity_constructor_, _1, _2, _3, _4, _5);
 }
 _l21:;
  _1= ((struct t_BlockNode *)v_stateful_self)->v_scope;
  _line(192);
  _1=_send(s_blocks, _1);
  /* Scope('block'->ArgumentVariableNode) */
  /* Scope('position'->SlotVariableNode 'location'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'temporaries'->SlotVariableNode 'constructor'->SlotVariableNode 'tag'->SlotVariableNode 'self'->ArgumentVariableNode 'literals'->SlotVariableNode 'stateConstructor'->SlotVariableNode 'blocks'->SlotVariableNode 'arguments'->SlotVariableNode 'gen'->ArgumentVariableNode 'statements'->SlotVariableNode 'scope'->SlotVariableNode) */
  /* nil */
  /* 2 */
  /* 1 */
  _2= _send(s_function_5f_arity_5f_outer_state_nlr_5f_, v_BlockClosure, (oop)b_25, 1, 0, ((oop *)_state1), 0);
  _line(192);
  _1=_send(s_do_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }
static oop BlockNode__println_(oop v__closure, oop v_stateful_self, oop v_self, oop v_indent)
 {
  _enter("println:", "BlockNode", "/home/saintiss/source/svn/stIdst_278/object/idc/BlockNode.st");
  oop _1= 0;
  oop _2= 0;
  _line(195);
  _1= v_self;
  _2= v_indent;
  _line(197);
  _1=_send(s_printIndent_, _1, _2);
  _1= l_26;
  _2= ((struct t_BlockNode *)v_stateful_self)->v_arguments;
  _line(198);
  _2=_send(s_printString, _2);
  _line(198);
  _1=_send(s__2c, _1, _2);
  _line(198);
  _1=_send(s_println, _1);
  _1= v_self;
  _2= v_indent;
  _line(199);
  _1=_super(v_SequenceNode, s_println_, _1, _2);
  _1= v_self;
  _leave();
  return _1;
  _leave();
 }

void __id__init__BlockNode(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>", "BlockNode.st");

  _send(s__5fimport_, _local_object, "SequenceNode", "__id__init__SequenceNode");
  _send(s__5fimport_, _local_object, "ParseNode", "__id__init__ParseNode");
  _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_Number= _id_import("Number");
  v_Integer= _id_import("Integer");
  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_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");
  v_ParseNode= _id_import("ParseNode");
  _send(s__5fimport_, _local_object, "OrderedCollection", "__id__init__OrderedCollection");
  v_OrderedCollection= _id_import("OrderedCollection");
  v_SequenceNode= _id_import("SequenceNode");
  _send(s__5fimport_, _local_object, "VariableNode", "__id__init__VariableNode");
  v_VariableNode= _id_import("VariableNode");
  _send(s__5fimport_, _local_object, "ReturnNode", "__id__init__ReturnNode");
  v_ReturnNode= _id_import("ReturnNode");
  v_LocalReturnNode= _id_import("LocalReturnNode");
  v_BlockNode= _proto(v_SequenceNode);
  _method(v_BlockNode, s__5fsizeof, BlockNode___5fsizeof);
  _method(v_BlockNode, s__5fdebugName, BlockNode___5fdebugName);
  _id_export("BlockNode", v_BlockNode);
  _method(v_BlockNode, s_isBlockNode, BlockNode__isBlockNode);
  _method(v_ParseNode, s_isBlockNode, ParseNode__isBlockNode);
  _method(v_BlockNode, s_initialize, BlockNode__initialize);
  _method(v_BlockNode, s_addArgument_, BlockNode__addArgument_);
  _method(v_BlockNode, s_arguments, BlockNode__arguments);
  _method(v_BlockNode, s_tag, BlockNode__tag);
  _method(v_ParseNode, s_isOpenCodable, ParseNode__isOpenCodable);
  _method(v_BlockNode, s_isOpenCodable, BlockNode__isOpenCodable);
  _method(v_BlockNode, s_scope, BlockNode__scope);
  l_2= _send(s_size_5f_value_5f_, v_ImmutableString, 3, "nil");
  l_5= _send(s_size_5f_value_5f_, v_ImmutableString, 6, "vector");
  _method(v_BlockNode, s_encodeOpen_, BlockNode__encodeOpen_);
  _method(v_BlockNode, s_generateOpen_, BlockNode__generateOpen_);
  _method(v_BlockNode, s_encode_, BlockNode__encode_);
  l_11= _send(s_size_5f_value_5f_, v_ImmutableString, 3, "nil");
  l_15= _send(s_size_5f_value_5f_, v_ImmutableString, 6, "vector");
  l_16= _send(s_size_5f_value_5f_, v_ImmutableString, 11, "fullClosure");
  l_17= _send(s_size_5f_value_5f_, v_ImmutableString, 13, "staticClosure");
  _method(v_BlockNode, s_encodeBody_, BlockNode__encodeBody_);
  _method(v_BlockNode, s_generateFullClosure_, BlockNode__generateFullClosure_);
  _method(v_BlockNode, s_generateStaticClosure_, BlockNode__generateStaticClosure_);
  _method(v_BlockNode, s_generate_, BlockNode__generate_);
  _method(v_BlockNode, s_genDeclaration_, BlockNode__genDeclaration_);
  _method(v_BlockNode, s_genDefinition_, BlockNode__genDefinition_);
  _method(v_BlockNode, s_genImplementation_, BlockNode__genImplementation_);
  _method(v_BlockNode, s_genInitialisation_, BlockNode__genInitialisation_);
  l_26= _send(s_size_5f_value_5f_, v_ImmutableString, 2, ": ");
  _method(v_BlockNode, s_println_, BlockNode__println_);
  _leave();
}
