/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -I../st80 -c Parser.st -o ../stage2/Parser.o.c */ #include static struct __libid *_libid= 0; #ifdef ID_DEBUG # define _enter(info) void *__id_debug= _libid->enter(info) # define _line(lno) _libid->line(lno) # define _leave() _libid->leave(__id_debug) # define _backtrace() _libid->backtrace() #else # define _enter(info) (void)info # define _line(lno) # define _leave() # define _backtrace() "(no debugging information)\n" #endif #define _return _leave(); return #define _sendv(MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (RCV) }; \ ((_imp_t)(_libid->bindv(&_s)))(&_s, _s.receiver, _s.receiver, ##ARG); \ }) #define _superv(TYP, MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (TYP) }; \ _imp_t _imp= _libid->bindv(&_s); \ _s.receiver= (RCV); \ _imp(&_s, _s.receiver, _s.receiver, ##ARG); \ }) static oop s_notEmpty= 0; static oop s_isSendNode= 0; static oop s_on_= 0; static oop s_parseBlock= 0; static oop s_parseUnary= 0; static oop s_parseArray= 0; static oop s_second= 0; static oop s_parseExec= 0; static oop s_nextPut_= 0; static oop s_parsePrimary= 0; static oop s_withName_position_= 0; static oop s_parseExpression= 0; static oop s_withPosition_= 0; static oop s_withReceiver_selector_position_= 0; static oop s_parseBinary= 0; static oop s_addArgument_= 0; static oop s_on_notifying_= 0; static oop s__5fdebugName= 0; static oop s_note_= 0; static oop s_size_5f_value_5f_= 0; static oop s_parseByteArray= 0; static oop s_new= 0; static oop s_whileFalse_= 0; static oop s_between_and_= 0; static oop s_fromString_position_= 0; static oop s_withElements_position_= 0; static oop s_parseWordArray= 0; static oop s_parseArrayLiteral= 0; static oop s_notNil= 0; static oop s_parseLiteralP= 0; static oop s_scanKeywords= 0; static oop s_whileTrue_= 0; static oop s_function_5f_arity_5f_outer_state_nlr_5f_= 0; static oop s_error_= 0; static oop s__5fsizeof= 0; static oop s_new_5f_= 0; static oop s_withValue_position_= 0; static oop s_error_at_= 0; static oop s_addKeyword_= 0; static oop s_isVariableNode= 0; static oop s_withVariable_value_position_= 0; static oop s_not= 0; static oop s_ifTrue_ifFalse_= 0; static oop s_value_5f_= 0; static oop s_addCascade_= 0; static oop s__5fimport_= 0; static oop s_parseTemporaries_= 0; static oop s_ifFalse_= 0; static oop s_addTemporary_= 0; static oop s_parseSequence_= 0; static oop s_addStatement_= 0; static oop s_parsePrimitive= 0; static oop s_isReturnNode= 0; static oop s_lastStatement= 0; static oop s__5fslots= 0; static oop s_ifTrue_= 0; static oop s__7e_7e= 0; static oop s__2c= 0; static oop s_parseBlockParameters_= 0; static oop s_resetToStart= 0; static oop s_parseExtern= 0; static oop s_first= 0; static oop s__3d_3d= 0; static oop s_beginsWith_= 0; static oop s_import_= 0; static oop s_tokenized_= 0; static oop s_include_= 0; static oop s_input_= 0; static oop s_pragma_= 0; static oop s_add_= 0; static oop s__3d= 0; static oop s_position= 0; static oop s_external_= 0; static oop s_internal_= 0; static oop s_withCode_position_= 0; static oop s_parsePrototype_= 0; static oop s_withName_base_slots_position_= 0; static oop s_and_= 0; static oop s_parseVarParams_= 0; static oop s_parseMethod_= 0; static oop s_withType_selector_arguments_position_= 0; static oop s_beVariadic= 0; static oop s_sourceEnd_= 0; static oop s_parseDefinition_= 0; static oop s_withName_exec_position_= 0; static oop s_or_= 0; static oop s_parseDeclaration= 0; static oop s_parse= 0; static oop s_isNil= 0; static oop s_atEnd= 0; static oop s_scan= 0; static oop s_includes_= 0; static oop s_value= 0; static oop s_contents= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "notEmpty", &s_notEmpty }, { "isSendNode", &s_isSendNode }, { "on:", &s_on_ }, { "parseBlock", &s_parseBlock }, { "parseUnary", &s_parseUnary }, { "parseArray", &s_parseArray }, { "second", &s_second }, { "parseExec", &s_parseExec }, { "nextPut:", &s_nextPut_ }, { "parsePrimary", &s_parsePrimary }, { "withName:position:", &s_withName_position_ }, { "parseExpression", &s_parseExpression }, { "withPosition:", &s_withPosition_ }, { "withReceiver:selector:position:", &s_withReceiver_selector_position_ }, { "parseBinary", &s_parseBinary }, { "addArgument:", &s_addArgument_ }, { "on:notifying:", &s_on_notifying_ }, { "_debugName", &s__5fdebugName }, { "note:", &s_note_ }, { "size_:value_:", &s_size_5f_value_5f_ }, { "parseByteArray", &s_parseByteArray }, { "new", &s_new }, { "whileFalse:", &s_whileFalse_ }, { "between:and:", &s_between_and_ }, { "fromString:position:", &s_fromString_position_ }, { "withElements:position:", &s_withElements_position_ }, { "parseWordArray", &s_parseWordArray }, { "parseArrayLiteral", &s_parseArrayLiteral }, { "notNil", &s_notNil }, { "parseLiteralP", &s_parseLiteralP }, { "scanKeywords", &s_scanKeywords }, { "whileTrue:", &s_whileTrue_ }, { "function_:arity_:outer:state:nlr_:", &s_function_5f_arity_5f_outer_state_nlr_5f_ }, { "error:", &s_error_ }, { "_sizeof", &s__5fsizeof }, { "new_:", &s_new_5f_ }, { "withValue:position:", &s_withValue_position_ }, { "error:at:", &s_error_at_ }, { "addKeyword:", &s_addKeyword_ }, { "isVariableNode", &s_isVariableNode }, { "withVariable:value:position:", &s_withVariable_value_position_ }, { "not", &s_not }, { "ifTrue:ifFalse:", &s_ifTrue_ifFalse_ }, { "value_:", &s_value_5f_ }, { "addCascade:", &s_addCascade_ }, { "_import:", &s__5fimport_ }, { "parseTemporaries:", &s_parseTemporaries_ }, { "ifFalse:", &s_ifFalse_ }, { "addTemporary:", &s_addTemporary_ }, { "parseSequence:", &s_parseSequence_ }, { "addStatement:", &s_addStatement_ }, { "parsePrimitive", &s_parsePrimitive }, { "isReturnNode", &s_isReturnNode }, { "lastStatement", &s_lastStatement }, { "_slots", &s__5fslots }, { "ifTrue:", &s_ifTrue_ }, { "~~", &s__7e_7e }, { ",", &s__2c }, { "parseBlockParameters:", &s_parseBlockParameters_ }, { "resetToStart", &s_resetToStart }, { "parseExtern", &s_parseExtern }, { "first", &s_first }, { "==", &s__3d_3d }, { "beginsWith:", &s_beginsWith_ }, { "import:", &s_import_ }, { "tokenized:", &s_tokenized_ }, { "include:", &s_include_ }, { "input:", &s_input_ }, { "pragma:", &s_pragma_ }, { "add:", &s_add_ }, { "=", &s__3d }, { "position", &s_position }, { "external:", &s_external_ }, { "internal:", &s_internal_ }, { "withCode:position:", &s_withCode_position_ }, { "parsePrototype:", &s_parsePrototype_ }, { "withName:base:slots:position:", &s_withName_base_slots_position_ }, { "and:", &s_and_ }, { "parseVarParams:", &s_parseVarParams_ }, { "parseMethod:", &s_parseMethod_ }, { "withType:selector:arguments:position:", &s_withType_selector_arguments_position_ }, { "beVariadic", &s_beVariadic }, { "sourceEnd:", &s_sourceEnd_ }, { "parseDefinition:", &s_parseDefinition_ }, { "withName:exec:position:", &s_withName_exec_position_ }, { "or:", &s_or_ }, { "parseDeclaration", &s_parseDeclaration }, { "parse", &s_parse }, { "isNil", &s_isNil }, { "atEnd", &s_atEnd }, { "scan", &s_scan }, { "includes:", &s_includes_ }, { "value", &s_value }, { "contents", &s_contents }, { 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_IdentitySet { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_IdentityDictionary { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_Stream { struct _vtable *_vtable[0]; }; struct t_PositionableStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; }; struct t_WriteStream { struct _vtable *_vtable[0]; oop v_collection; oop v_position; oop v_readLimit; oop v_writeLimit; }; struct t_ScannerPosition { struct _vtable *_vtable[0]; oop v_file; oop v_line; }; struct t_SymbolTable { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_Scanner { struct _vtable *_vtable[0]; oop v_charTable; oop v_charEscapes; oop v_context; oop v_c; oop v_token; oop v_type; oop v_prevHash; oop v_line; }; struct t_ParseNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; }; struct t_LiteralNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_ArrayLiteralNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_ByteArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_WordArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_ArrayNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_SymbolNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_StringNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_IntegerNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_FloatNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_CharacterNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_tag; oop v_constructor; }; struct t_VariableNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_variable; oop v_level; }; struct t_VarargNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; }; 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_AssignmentNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_value; oop v_variable; }; 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_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_BlockNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_temporaries; oop v_statements; oop v_scope; oop v_literals; oop v_blocks; oop v_arguments; oop v_tag; oop v_constructor; oop v_stateConstructor; }; struct t_MethodNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_temporaries; oop v_statements; oop v_scope; oop v_literals; oop v_blocks; oop v_arguments; oop v_tag; oop v_constructor; oop v_stateConstructor; oop v_type; oop v_selector; oop v_sequenceNumber; oop v_variadic; oop v_sourceEnd; }; struct t_ExecNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_temporaries; oop v_statements; oop v_scope; oop v_literals; oop v_blocks; oop v_stateConstructor; }; struct t_IncludeNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; }; struct t_ImportNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_included; }; struct t_ExternNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_code; }; struct t_PrimitiveNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_code; oop v_mtype; }; struct t_PrototypeNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_base; oop v_slots; oop v_used; oop v_external; oop v_resized; }; struct t_DefinitionNode { struct _vtable *_vtable[0]; oop v_position; oop v_location; oop v_name; oop v_exec; oop v_used; oop v_external; }; struct t_SelectorTable { struct _vtable *_vtable[0]; oop v_tally; oop v_array; }; struct t_PerformWithArgumentsSelectors { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_Parser { struct _vtable *_vtable[0]; oop v_charTable; oop v_charEscapes; oop v_context; oop v_c; oop v_token; oop v_type; oop v_prevHash; oop v_line; oop v_client; }; static oop l_4= 0; static oop l_5= 0; static oop l_7= 0; static oop l_8= 0; static oop l_9= 0; static oop l_10= 0; static oop l_11= 0; static oop l_12= 0; static oop l_13= 0; static oop l_15= 0; static oop l_16= 0; static oop l_17= 0; static oop l_18= 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_28= 0; static oop l_29= 0; static oop l_30= 0; static oop l_32= 0; static oop l_33= 0; static oop l_35= 0; static oop l_37= 0; static oop l_39= 0; static oop l_41= 0; static oop l_42= 0; static oop l_43= 0; static oop l_44= 0; static oop l_45= 0; static oop l_46= 0; static oop l_47= 0; static oop l_49= 0; static oop l_50= 0; static oop l_51= 0; static oop l_52= 0; static oop l_53= 0; static oop l_55= 0; static oop l_56= 0; static oop l_57= 0; static oop l_58= 0; static oop l_59= 0; static oop l_60= 0; static oop l_61= 0; static oop l_62= 0; static oop l_63= 0; static oop l_64= 0; static oop l_65= 0; static oop l_67= 0; static oop l_69= 0; static oop l_71= 0; static oop l_72= 0; static oop l_73= 0; static oop l_74= 0; static oop l_75= 0; static oop l_76= 0; static oop l_77= 0; static oop l_78= 0; static oop l_81= 0; static oop l_82= 0; static oop l_83= 0; static oop l_84= 0; static oop l_86= 0; static oop l_87= 0; static oop l_88= 0; static oop l_89= 0; static oop l_91= 0; static oop l_92= 0; static oop l_93= 0; static oop l_94= 0; static oop l_95= 0; static oop l_96= 0; static oop l_97= 0; static oop l_98= 0; static oop l_99= 0; static oop l_100= 0; static oop l_101= 0; static oop l_102= 0; static oop l_103= 0; static oop l_105= 0; static oop l_106= 0; static oop l_107= 0; static oop l_108= 0; static oop l_109= 0; static oop l_110= 0; static oop l_111= 0; static oop l_112= 0; static oop l_114= 0; static oop l_117= 0; static oop l_118= 0; static oop l_119= 0; static oop l_120= 0; static oop l_121= 0; static oop l_122= 0; static oop l_123= 0; static oop l_124= 0; static oop l_125= 0; static oop l_126= 0; static oop l_127= 0; static oop l_128= 0; static oop l_129= 0; static oop l_130= 0; static oop l_133= 0; static oop l_134= 0; static oop l_135= 0; static oop l_136= 0; static oop l_137= 0; static oop l_138= 0; static oop l_139= 0; static oop l_141= 0; static oop l_142= 0; static oop l_143= 0; static oop l_145= 0; static oop l_146= 0; static oop l_147= 0; static oop l_148= 0; static oop l_149= 0; static oop l_150= 0; static oop l_151= 0; static oop l_152= 0; static oop l_153= 0; static oop l_154= 0; static oop l_155= 0; static oop l_156= 0; static oop l_157= 0; static oop l_158= 0; static oop l_159= 0; static oop l_160= 0; static oop l_162= 0; static oop l_163= 0; static oop l_165= 0; static oop l_166= 0; static oop l_167= 0; static oop l_169= 0; static oop l_170= 0; static oop l_171= 0; static oop l_172= 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_ImmutableArray= 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_IdentityDictionary= 0; static oop v_Stream= 0; static oop v_PositionableStream= 0; static oop v_Scanner= 0; static oop v_ParseNode= 0; static oop v_LiteralNode= 0; static oop v_ArrayLiteralNode= 0; static oop v_ByteArrayNode= 0; static oop v_WordArrayNode= 0; static oop v_ArrayNode= 0; static oop v_SymbolNode= 0; static oop v_StringNode= 0; static oop v_IntegerNode= 0; static oop v_FloatNode= 0; static oop v_CharacterNode= 0; static oop v_VariableNode= 0; static oop v_VarargNode= 0; static oop v_SendNode= 0; static oop v_AssignmentNode= 0; static oop v_ReturnNode= 0; static oop v_SequenceNode= 0; static oop v_BlockNode= 0; static oop v_MethodNode= 0; static oop v_ExecNode= 0; static oop v_IncludeNode= 0; static oop v_ExternNode= 0; static oop v_PrimitiveNode= 0; static oop v_PrototypeNode= 0; static oop v_DefinitionNode= 0; static oop v_Parser= 0; static oop al_23[3]= { (oop)&l_20, (oop)&l_21, (oop)&l_22 }; static oop al_47[4]= { (oop)&l_44, (oop)&l_45, (oop)&l_46, (oop)&l_37 }; static size_t Parser___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_Parser); } static char *Parser___5fdebugName(oop _closure, oop v_self) { return "Parser"; } static struct __slotinfo *Parser___5fslots(oop _closure, oop v_self) { static struct __slotinfo info[]= { { "charTable", 0, 4 }, { "charEscapes", 4, 4 }, { "context", 8, 4 }, { "c", 12, 4 }, { "token", 16, 4 }, { "type", 20, 4 }, { "prevHash", 24, 4 }, { "line", 28, 4 }, { "client", 32, 4 }, { 0, 0, 0 } }; return &info[0]; } static struct __methodinfo __info1= { "on:notifying:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 53, 60, 0 }; static oop Parser__on_notifying_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aScannerContext, oop v_aCompiler) { _enter(&__info1); oop _1= 0; oop _2= 0; _line(53); _1= v_self; _2= v_aScannerContext; _line(55); _1=_superv(v_Scanner, s_on_, 2, _1, _2); v_self= _1; v_stateful_self= _1; _1= v_aCompiler; ((struct t_Parser *)v_stateful_self)->v_client= _1; _1= v_self; _line(57); _1=_sendv(s_scan, 1, _1); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info2= { "note:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 60, 69, &__info1 }; static oop Parser__note_(oop v__closure, oop v_stateful_self, oop v_self, oop v_marker) { _enter(&__info2); oop _1= 0; _line(60); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info3= { "error:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 69, 77, &__info2 }; static oop Parser__error_(oop v__closure, oop v_stateful_self, oop v_self, oop v_message) { _enter(&__info3); oop v_detail= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_detail; _line(69); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(73); _2=_sendv(s_contents, 1, _2); v_detail= _2; _line(73); _2=_sendv(s_notEmpty, 1, _2); if (!_2) goto _l1; { _1= l_4; _2= v_detail; _line(73); _1=_sendv(s__2c, 2, _1, _2); _2= l_5; _line(73); _1=_sendv(s__2c, 2, _1, _2); v_detail= _1; } _l1:; _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_message; _3= v_detail; _line(74); _2=_sendv(s__2c, 2, _2, _3); _3= v_self; _line(74); _3=_sendv(s_position, 1, _3); _line(74); _1=_sendv(s_error_at_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "parseByteArray", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 77, 93, &__info3 }; static oop Parser__parseByteArray(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info6); oop v_position= 0; oop v_elements= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; (void)v_position; (void)v_elements; _line(77); _1= v_self; _line(80); _1=_sendv(s_position, 1, _1); v_position= _1; _1= v_OrderedCollection; _line(81); _1=_sendv(s_new, 1, _1); v_elements= _1; /* whileFalse: */ goto _l3; _l2:; { _1= v_self; _2= l_8; _line(84); _1=_sendv(s_note_, 2, _1, _2); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_9; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l4; { _1= v_self; _2= l_10; _line(85); _1=_sendv(s_error_, 2, _1, _2); } _l4:; /* ifFalse: */ _1= 0; _2= v_elements; _3= v_IntegerNode; _4= ((struct t_Parser *)v_stateful_self)->v_token; _line(86); _4=_sendv(s_contents, 1, _4); _5= v_self; _line(86); _5=_sendv(s_position, 1, _5); _line(86); _3=_sendv(s_fromString_position_, 3, _3, _4, _5); _line(86); _2=_sendv(s_add_, 2, _2, _3); _line(86); _2=_sendv(s_value, 1, _2); _3= l_11; _4= l_12; _line(86); _2=_sendv(s_between_and_, 3, _2, _3, _4); if (_2) goto _l5; { _1= v_self; _2= l_13; _line(87); _1=_sendv(s_error_, 2, _1, _2); } _l5:; _1= v_self; _line(88); _1=_sendv(s_scan, 1, _1); } _l3:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_7; _1= (_1 == _2) ? v_true : v_false; } if (!_1) goto _l2; _1= 0; _1= v_self; _line(89); _1=_sendv(s_scan, 1, _1); _1= v_ByteArrayNode; _2= v_elements; _3= v_position; _line(90); _1=_sendv(s_withElements_position_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info14= { "parseWordArray", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 93, 108, &__info6 }; static oop Parser__parseWordArray(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info14); oop v_position= 0; oop v_elements= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_position; (void)v_elements; _line(93); _1= v_self; _line(96); _1=_sendv(s_position, 1, _1); v_position= _1; _1= v_OrderedCollection; _line(97); _1=_sendv(s_new, 1, _1); v_elements= _1; /* whileFalse: */ goto _l7; _l6:; { _1= v_self; _2= l_16; _line(100); _1=_sendv(s_note_, 2, _1, _2); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_17; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l8; { _1= v_self; _2= l_18; _line(101); _1=_sendv(s_error_, 2, _1, _2); } _l8:; _1= v_elements; _2= v_IntegerNode; _3= ((struct t_Parser *)v_stateful_self)->v_token; _line(102); _3=_sendv(s_contents, 1, _3); _4= v_self; _line(102); _4=_sendv(s_position, 1, _4); _line(102); _2=_sendv(s_fromString_position_, 3, _2, _3, _4); _line(102); _1=_sendv(s_add_, 2, _1, _2); _1= v_self; _line(103); _1=_sendv(s_scan, 1, _1); } _l7:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_15; _1= (_1 == _2) ? v_true : v_false; } if (!_1) goto _l6; _1= 0; _1= v_self; _line(104); _1=_sendv(s_scan, 1, _1); _1= v_WordArrayNode; _2= v_elements; _3= v_position; _line(105); _1=_sendv(s_withElements_position_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info19= { "parseArrayLiteral", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 108, 124, &__info14 }; static oop Parser__parseArrayLiteral(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info19); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(108); /* ifTrue: */ _1= 0; _2= v_self; _line(112); _2=_sendv(s_parseLiteralP, 1, _2); v_node= _2; _line(112); _2=_sendv(s_notNil, 1, _2); if (!_2) goto _l9; { _1= v_node; _leave(); return _1; } _l9:; /* ifTrue: */ _1= 0; /* or: */ _2= l_23; _3= ((struct t_Parser *)v_stateful_self)->v_type; _line(113); _2=_sendv(s_includes_, 2, _2, _3); if (_2) goto _l11; { _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_24; _2= (_2 == _3) ? v_true : v_false; } _l11:; if (!_2) goto _l10; { _1= v_self; _2= l_25; _line(115); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_22; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l12; { _1= v_self; _line(116); _1=_sendv(s_scanKeywords, 1, _1); } _l12:; _1= v_SymbolNode; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(117); _2=_sendv(s_contents, 1, _2); _3= v_self; _line(117); _3=_sendv(s_position, 1, _3); _line(117); _1=_sendv(s_fromString_position_, 3, _1, _2, _3); v_node= _1; _1= v_self; _line(118); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _1; } _l10:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_26; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l13; { _1= v_self; _line(120); _sendv(s_scan, 1, _1); _1=_sendv(s_parseArray, 1, _1); _leave(); return _1; } _l13:; _1= v_nil; _leave(); return _1; _leave(); } static struct __methodinfo __info27= { "parseArray", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 124, 136, &__info19 }; static oop Parser__parseArray(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info27); oop v_position= 0; oop v_elements= 0; oop v_element= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_position; (void)v_elements; (void)v_element; _line(124); _1= v_self; _line(127); _1=_sendv(s_position, 1, _1); v_position= _1; _1= v_OrderedCollection; _line(128); _1=_sendv(s_new, 1, _1); v_elements= _1; /* whileTrue: */ goto _l15; _l14:; { _1= v_elements; _2= v_element; _line(129); _1=_sendv(s_add_, 2, _1, _2); } _l15:; { _1= v_self; _line(129); _1=_sendv(s_parseArrayLiteral, 1, _1); v_element= _1; _line(129); _1=_sendv(s_notNil, 1, _1); } if (_1) goto _l14; _1= 0; _1= v_self; _2= l_28; _line(130); _1=_sendv(s_note_, 2, _1, _2); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_29; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l16; { _1= v_self; _2= l_30; _line(131); _1=_sendv(s_error_, 2, _1, _2); } _l16:; _1= v_self; _line(132); _1=_sendv(s_scan, 1, _1); _1= v_ArrayNode; _2= v_elements; _3= v_position; _line(133); _1=_sendv(s_withElements_position_, 3, _1, _2, _3); _leave(); return _1; _leave(); } static struct __methodinfo __info34= { "[] parseLiteralP", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 136, 162, &__info27 }; static oop b_34(oop v__closure, oop v__self) { _enter(&__info34); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(139); _1= v_IntegerNode; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(139); _2=_sendv(s_contents, 1, _2); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(139); _3=_sendv(s_position, 1, _3); _line(139); _1=_sendv(s_fromString_position_, 3, _1, _2, _3); v_node= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(139); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info36= { "[] parseLiteralP", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 136, 162, &__info34 }; static oop b_36(oop v__closure, oop v__self) { _enter(&__info36); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(140); _1= v_FloatNode; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(140); _2=_sendv(s_contents, 1, _2); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(140); _3=_sendv(s_position, 1, _3); _line(140); _1=_sendv(s_fromString_position_, 3, _1, _2, _3); v_node= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(140); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info38= { "[] parseLiteralP", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 136, 162, &__info36 }; static oop b_38(oop v__closure, oop v__self) { _enter(&__info38); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(141); _1= v_StringNode; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(141); _2=_sendv(s_contents, 1, _2); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(141); _3=_sendv(s_position, 1, _3); _line(141); _1=_sendv(s_fromString_position_, 3, _1, _2, _3); v_node= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(141); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info40= { "[] parseLiteralP", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 136, 162, &__info38 }; static oop b_40(oop v__closure, oop v__self) { _enter(&__info40); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(142); _1= v_CharacterNode; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(142); _2=_sendv(s_contents, 1, _2); _line(142); _2=_sendv(s_first, 1, _2); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(142); _3=_sendv(s_position, 1, _3); _line(142); _1=_sendv(s_withValue_position_, 3, _1, _2, _3); v_node= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(142); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info48= { "[] parseLiteralP", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 136, 162, &__info40 }; static oop b_48(oop v__closure, oop v__self) { _enter(&__info48); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(150); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _3= l_46; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l17; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(151); _1=_sendv(s_scanKeywords, 1, _1); } _l17:; _1= v_SymbolNode; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(152); _2=_sendv(s_contents, 1, _2); _3= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(152); _3=_sendv(s_position, 1, _3); _line(152); _1=_sendv(s_fromString_position_, 3, _1, _2, _3); v_node= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(153); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info31= { "parseLiteralP", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 136, 162, &__info48 }; static oop Parser__parseLiteralP(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info31); oop _state1= _sendv(s_new_5f_, 2, v__vector, 12); oop _1= 0; oop _2= 0; oop _3= 0; jmp_buf __nlr; oop _nlr; ((oop *)_state1)[1]= v_stateful_self; ((oop *)_state1)[2]= v_self; _nlr= (oop)&__nlr; if (setjmp(__nlr)) { return _libid->nlresult(); } _line(136); _1= ((oop *)_state1)[2]; /* self */ _2= l_32; _line(138); _1=_sendv(s_note_, 2, _1, _2); _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_33; _1= (_1 == _2) ? v_true : v_false; /* Scope('node'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'type'->SlotVariableNode 'charEscapes'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_34, 0, 0, ((oop *)_state1), _nlr); _line(139); _1=_sendv(s_ifTrue_, 2, _1, _2); _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_35; _1= (_1 == _2) ? v_true : v_false; /* Scope('node'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'type'->SlotVariableNode 'charEscapes'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_36, 0, 0, ((oop *)_state1), _nlr); _line(140); _1=_sendv(s_ifTrue_, 2, _1, _2); _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_37; _1= (_1 == _2) ? v_true : v_false; /* Scope('node'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'type'->SlotVariableNode 'charEscapes'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_38, 0, 0, ((oop *)_state1), _nlr); _line(141); _1=_sendv(s_ifTrue_, 2, _1, _2); _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_39; _1= (_1 == _2) ? v_true : v_false; /* Scope('node'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'type'->SlotVariableNode 'charEscapes'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_40, 0, 0, ((oop *)_state1), _nlr); _line(142); _1=_sendv(s_ifTrue_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _2= l_41; _line(143); _1=_sendv(s_note_, 2, _1, _2); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_42; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l18; { _1= v_nil; _leave(); return _1; } _l18:; _1= ((oop *)_state1)[2]; /* self */ _line(146); _1=_sendv(s_scan, 1, _1); _1= ((oop *)_state1)[2]; /* self */ _2= l_43; _line(147); _1=_sendv(s_note_, 2, _1, _2); _1= l_47; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _line(148); _1=_sendv(s_includes_, 2, _1, _2); /* Scope('node'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'type'->SlotVariableNode 'charEscapes'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_48, 0, 0, ((oop *)_state1), _nlr); _line(149); _1=_sendv(s_ifTrue_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _2= l_49; _line(155); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_50; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l19; { _1= ((oop *)_state1)[2]; /* self */ _line(156); _sendv(s_scan, 1, _1); _1=_sendv(s_parseArray, 1, _1); _leave(); return _1; } _l19:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_51; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l20; { _1= ((oop *)_state1)[2]; /* self */ _line(157); _sendv(s_scan, 1, _1); _1=_sendv(s_parseWordArray, 1, _1); _leave(); return _1; } _l20:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_52; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l21; { _1= ((oop *)_state1)[2]; /* self */ _line(158); _sendv(s_scan, 1, _1); _1=_sendv(s_parseByteArray, 1, _1); _leave(); return _1; } _l21:; _1= ((oop *)_state1)[2]; /* self */ _2= l_53; _line(159); _1=_sendv(s_error_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info54= { "parsePrimary", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 162, 194, &__info31 }; static oop Parser__parsePrimary(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info54); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(162); _1= v_self; _2= l_55; _line(165); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_56; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l22; { _1= v_VariableNode; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(168); _2=_sendv(s_contents, 1, _2); _3= v_self; _line(168); _3=_sendv(s_position, 1, _3); _line(168); _1=_sendv(s_withName_position_, 3, _1, _2, _3); v_node= _1; _1= v_self; _line(169); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _1; } _l22:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_57; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l23; { _1= v_self; _line(173); _sendv(s_scan, 1, _1); _1=_sendv(s_parseExpression, 1, _1); v_node= _1; /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_58; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l24; { _1= v_self; _2= l_59; _line(174); _1=_sendv(s_error_, 2, _1, _2); } _l24:; _1= v_self; _line(175); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _1; } _l23:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_60; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l25; { _1= v_self; _line(179); _sendv(s_scan, 1, _1); _1=_sendv(s_parseBlock, 1, _1); _leave(); return _1; } _l25:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_61; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l26; { _1= v_VarargNode; _2= v_self; _line(182); _2=_sendv(s_position, 1, _2); _line(182); _1=_sendv(s_withPosition_, 2, _1, _2); v_node= _1; _1= v_self; _line(183); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _1; } _l26:; _1= v_self; _2= l_62; _line(185); _1=_sendv(s_note_, 2, _1, _2); _1= v_self; _line(186); _1=_sendv(s_parseLiteralP, 1, _1); v_node= _1; _1= v_self; _2= l_63; _line(187); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= v_node; _line(188); _2=_sendv(s_notNil, 1, _2); if (!_2) goto _l27; { _1= v_node; _leave(); return _1; } _l27:; _1= v_self; _2= l_64; _line(190); _1=_sendv(s_note_, 2, _1, _2); _1= v_self; _2= l_65; _line(191); _1=_sendv(s_error_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info66= { "parseUnary", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 194, 209, &__info54 }; static oop Parser__parseUnary(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info66); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_node; _line(194); _1= v_self; _line(197); _1=_sendv(s_parsePrimary, 1, _1); v_node= _1; /* whileTrue: */ goto _l29; _l28:; { _1= v_SendNode; _2= v_node; _3= ((struct t_Parser *)v_stateful_self)->v_token; _line(200); _3=_sendv(s_contents, 1, _3); _4= v_self; _line(200); _4=_sendv(s_position, 1, _4); _line(200); _1=_sendv(s_withReceiver_selector_position_, 4, _1, _2, _3, _4); v_node= _1; _1= v_self; _line(201); _1=_sendv(s_scan, 1, _1); } _l29:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_67; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l28; _1= 0; _1= v_node; _leave(); return _1; _leave(); } static struct __methodinfo __info68= { "parseBinary", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 209, 220, &__info66 }; static oop Parser__parseBinary(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info68); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_node; _line(209); _1= v_self; _line(212); _1=_sendv(s_parseUnary, 1, _1); v_node= _1; /* whileTrue: */ goto _l31; _l30:; { _1= v_SendNode; _2= v_node; _3= ((struct t_Parser *)v_stateful_self)->v_token; _line(215); _3=_sendv(s_contents, 1, _3); _4= v_self; _line(215); _4=_sendv(s_position, 1, _4); _line(215); _1=_sendv(s_withReceiver_selector_position_, 4, _1, _2, _3, _4); v_node= _1; _1= v_node; _2= v_self; _line(216); _sendv(s_scan, 1, _2); _2=_sendv(s_parseUnary, 1, _2); _line(216); _1=_sendv(s_addArgument_, 2, _1, _2); } _l31:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_69; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l30; _1= 0; _1= v_node; _leave(); return _1; _leave(); } static struct __methodinfo __info79= { "[] parseExpression", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 220, 264, &__info68 }; static oop b_79(oop v__closure, oop v__self) { _enter(&__info79); oop _1= 0; oop _2= 0; _line(240); _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_77; _1= (_1 == _2) ? v_true : v_false; _leave(); return _1; _leave(); } static struct __methodinfo __info80= { "[] parseExpression", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 220, 264, &__info79 }; static oop b_80(oop v__closure, oop v__self) { _enter(&__info80); oop v_cascade= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_cascade; _line(242); _1= v_SendNode; _2= v_nil; _3= l_81; _4= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(243); _4=_sendv(s_position, 1, _4); _line(243); _1=_sendv(s_withReceiver_selector_position_, 4, _1, _2, _3, _4); v_cascade= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(244); _1=_sendv(s_scan, 1, _1); /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_73; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l32; { /* whileTrue: */ goto _l35; _l34:; { _1= v_cascade; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(249); _2=_sendv(s_contents, 1, _2); _line(249); _sendv(s_addKeyword_, 2, _1, _2); _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(249); _sendv(s_scan, 1, _2); _2=_sendv(s_parseBinary, 1, _2); _1=_sendv(s_addArgument_, 2, _1, _2); } _l35:; { _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_73; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l34; _1= 0; } goto _l33; _l32:; { /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_82; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l36; { _1= v_cascade; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(252); _2=_sendv(s_contents, 1, _2); _line(252); _sendv(s_addKeyword_, 2, _1, _2); _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(252); _sendv(s_scan, 1, _2); _2=_sendv(s_parseUnary, 1, _2); _1=_sendv(s_addArgument_, 2, _1, _2); } goto _l37; _l36:; { /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_83; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l38; { _1= v_cascade; _2= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(256); _2=_sendv(s_contents, 1, _2); _line(256); _1=_sendv(s_addKeyword_, 2, _1, _2); _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(257); _1=_sendv(s_scan, 1, _1); } goto _l39; _l38:; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _2= l_84; _line(258); _1=_sendv(s_error_, 2, _1, _2); } _l39:; } _l37:; } _l33:; /* whileTrue: */ goto _l41; _l40:; { _1= v_cascade; _2= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(259); _sendv(s_scan, 1, _2); _2=_sendv(s_parseBinary, 1, _2); _line(259); _1=_sendv(s_addArgument_, 2, _1, _2); } _l41:; { _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_75; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l40; _1= 0; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[3]; /* node */ _2= v_cascade; _line(260); _1=_sendv(s_addCascade_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info70= { "parseExpression", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 220, 264, &__info80 }; static oop Parser__parseExpression(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info70); oop _state1= _sendv(s_new_5f_, 2, v__vector, 13); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; ((oop *)_state1)[1]= v_stateful_self; ((oop *)_state1)[2]= v_self; _line(220); _1= ((oop *)_state1)[2]; /* self */ _2= l_71; _line(223); _1=_sendv(s_note_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _line(224); _1=_sendv(s_parseBinary, 1, _1); ((oop *)_state1)[3]= _1; /* node */ _1= ((oop *)_state1)[2]; /* self */ _2= l_72; _line(225); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_73; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l42; { _1= v_SendNode; _2= ((oop *)_state1)[3]; /* node */ _3= ((struct t_Parser *)((oop *)_state1)[1])->v_token; /* token */ _line(228); _3=_sendv(s_contents, 1, _3); _4= ((oop *)_state1)[2]; /* self */ _line(228); _4=_sendv(s_position, 1, _4); _line(228); _1=_sendv(s_withReceiver_selector_position_, 4, _1, _2, _3, _4); ((oop *)_state1)[3]= _1; /* node */ _1= ((oop *)_state1)[3]; /* node */ _2= ((oop *)_state1)[2]; /* self */ _line(229); _sendv(s_scan, 1, _2); _2=_sendv(s_parseBinary, 1, _2); _line(229); _1=_sendv(s_addArgument_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _2= l_74; _line(230); _1=_sendv(s_note_, 2, _1, _2); /* whileTrue: */ goto _l44; _l43:; { _1= ((oop *)_state1)[3]; /* node */ _2= ((struct t_Parser *)((oop *)_state1)[1])->v_token; /* token */ _line(233); _2=_sendv(s_contents, 1, _2); _line(233); _sendv(s_addKeyword_, 2, _1, _2); _2= ((oop *)_state1)[2]; /* self */ _line(233); _sendv(s_scan, 1, _2); _2=_sendv(s_parseBinary, 1, _2); _1=_sendv(s_addArgument_, 2, _1, _2); } _l44:; { _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_73; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l43; _1= 0; } _l42:; /* whileTrue: */ goto _l46; _l45:; { _1= ((oop *)_state1)[3]; /* node */ _2= ((oop *)_state1)[2]; /* self */ _line(235); _sendv(s_scan, 1, _2); _2=_sendv(s_parseBinary, 1, _2); _line(235); _1=_sendv(s_addArgument_, 2, _1, _2); } _l46:; { /* and: */ _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_75; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l47; { _1= ((oop *)_state1)[3]; /* node */ _line(234); _1=_sendv(s_isSendNode, 1, _1); } _l47:; } if (_1) goto _l45; _1= 0; /* ifTrue: */ _1= 0; /* and: */ _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_76; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l49; { _2= ((oop *)_state1)[3]; /* node */ _line(236); _2=_sendv(s_isVariableNode, 1, _2); } _l49:; if (!_2) goto _l48; { _1= v_AssignmentNode; _2= ((oop *)_state1)[3]; /* node */ _3= ((oop *)_state1)[2]; /* self */ _line(237); _sendv(s_scan, 1, _3); _3=_sendv(s_parseExpression, 1, _3); _4= ((oop *)_state1)[3]; /* node */ _line(237); _4=_sendv(s_position, 1, _4); _line(237); _1=_sendv(s_withVariable_value_position_, 4, _1, _2, _3, _4); _leave(); return _1; } _l48:; /* ifTrue: */ _1= 0; /* and: */ _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_77; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l51; { _2= ((oop *)_state1)[3]; /* node */ _line(238); _2=_sendv(s_isSendNode, 1, _2); _line(238); _2=_sendv(s_not, 1, _2); } _l51:; if (!_2) goto _l50; { _1= ((oop *)_state1)[2]; /* self */ _2= l_78; _line(239); _1=_sendv(s_error_, 2, _1, _2); } _l50:; /* Scope() */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'node'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'charEscapes'->SlotVariableNode 'type'->SlotVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _1= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_79, 0, 0, ((oop *)_state1), 0); /* Scope('cascade'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'node'->TemporaryVariableNode 'stateful_self'->ArgumentVariableNode 'charEscapes'->SlotVariableNode 'type'->SlotVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_80, 0, 0, ((oop *)_state1), 0); _line(241); _1=_sendv(s_whileTrue_, 2, _1, _2); _1= ((oop *)_state1)[3]; /* node */ _leave(); return _1; _leave(); } static struct __methodinfo __info85= { "parseTemporaries:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 264, 276, &__info70 }; static oop Parser__parseTemporaries_(oop v__closure, oop v_stateful_self, oop v_self, oop v_block) { _enter(&__info85); oop _1= 0; oop _2= 0; oop _3= 0; _line(264); /* whileTrue: */ goto _l53; _l52:; { _1= v_block; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(268); _2=_sendv(s_contents, 1, _2); _line(268); _1=_sendv(s_addTemporary_, 2, _1, _2); _1= v_self; _line(269); _1=_sendv(s_scan, 1, _1); } _l53:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_86; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l52; _1= 0; /* ifFalse: */ _1= 0; /* and: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_87; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l55; { _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(270); _2=_sendv(s_contents, 1, _2); _3= l_88; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); } _l55:; if (_2) goto _l54; { _1= v_self; _2= l_89; _line(271); _1=_sendv(s_error_, 2, _1, _2); } _l54:; _1= v_self; _line(272); _1=_sendv(s_scan, 1, _1); _1= v_block; _leave(); return _1; _leave(); } static struct __methodinfo __info90= { "parseSequence:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 276, 299, &__info85 }; static oop Parser__parseSequence_(oop v__closure, oop v_stateful_self, oop v_self, oop v_block) { _enter(&__info90); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(276); _1= v_self; _2= l_91; _line(278); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; /* and: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_92; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l57; { _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(279); _2=_sendv(s_contents, 1, _2); _3= l_93; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); } _l57:; if (!_2) goto _l56; { _1= v_self; _line(280); _sendv(s_scan, 1, _1); _2= v_block; _1=_sendv(s_parseTemporaries_, 2, _1, _2); } _l56:; _1= v_self; _2= l_94; _line(281); _1=_sendv(s_note_, 2, _1, _2); /* whileFalse: */ goto _l59; _l58:; { _1= v_self; _2= l_96; _line(284); _1=_sendv(s_note_, 2, _1, _2); _1= v_block; /* ifTrue:ifFalse: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_97; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l60; { _2= v_self; _line(286); _2=_sendv(s_parsePrimitive, 1, _2); } goto _l61; _l60:; { /* ifTrue:ifFalse: */ /* and: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_92; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l64; { _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(287); _2=_sendv(s_contents, 1, _2); _3= l_98; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); } _l64:; if (!_2) goto _l62; { _2= v_ReturnNode; _3= v_self; _line(288); _sendv(s_scan, 1, _3); _3=_sendv(s_parseExpression, 1, _3); _4= v_self; _line(288); _4=_sendv(s_position, 1, _4); _line(288); _2=_sendv(s_withValue_position_, 3, _2, _3, _4); } goto _l63; _l62:; { _2= v_self; _line(289); _2=_sendv(s_parseExpression, 1, _2); } _l63:; } _l61:; _line(285); _1=_sendv(s_addStatement_, 2, _1, _2); /* ifFalse: */ _1= 0; /* or: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_99; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l66; { _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_95; _2= (_2 == _3) ? v_true : v_false; } _l66:; if (_2) goto _l65; { _1= v_self; _2= l_100; _line(290); _1=_sendv(s_error_, 2, _1, _2); } _l65:; /* whileTrue: */ goto _l68; _l67:; { _1= v_self; _line(291); _1=_sendv(s_scan, 1, _1); } _l68:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_99; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l67; _1= 0; /* ifTrue: */ _1= 0; /* and: */ _2= v_block; _line(292); _2=_sendv(s_lastStatement, 1, _2); _line(292); _2=_sendv(s_isReturnNode, 1, _2); if (!_2) goto _l70; { _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_95; _2= (_2 != _3) ? v_true : v_false; } _l70:; if (!_2) goto _l69; { _1= v_self; _2= l_101; _line(292); _1=_sendv(s_error_, 2, _1, _2); } _l69:; } _l59:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_95; _1= (_1 == _2) ? v_true : v_false; } if (!_1) goto _l58; _1= 0; _1= v_self; _2= l_102; _line(293); _1=_sendv(s_note_, 2, _1, _2); _1= v_self; _line(294); _1=_sendv(s_scan, 1, _1); _1= v_self; _2= l_103; _line(295); _1=_sendv(s_note_, 2, _1, _2); _1= v_block; _leave(); return _1; _leave(); } static struct __methodinfo __info104= { "parseBlockParameters:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 299, 315, &__info90 }; static oop Parser__parseBlockParameters_(oop v__closure, oop v_stateful_self, oop v_self, oop v_block) { _enter(&__info104); oop _1= 0; oop _2= 0; oop _3= 0; _line(299); /* whileTrue: */ goto _l72; _l71:; { _1= v_self; _line(303); _1=_sendv(s_scan, 1, _1); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_106; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l73; { _1= v_self; _2= l_107; _line(304); _1=_sendv(s_error_, 2, _1, _2); } _l73:; _1= v_block; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(305); _2=_sendv(s_contents, 1, _2); _line(305); _1=_sendv(s_addArgument_, 2, _1, _2); _1= v_self; _line(306); _1=_sendv(s_scan, 1, _1); } _l72:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_105; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l71; _1= 0; /* ifTrue:ifFalse: */ /* and: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_108; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l76; { _1= ((struct t_Parser *)v_stateful_self)->v_token; _line(307); _1=_sendv(s_contents, 1, _1); _2= l_109; if (1 & (long)_1 & (long)_2) { _1= (((long)_1 == (long)_2) ? v_true : v_false); } else _1= _sendv(s__3d, 2, _1, _2); } _l76:; if (!_1) goto _l74; { _1= ((struct t_Parser *)v_stateful_self)->v_token; _line(308); _sendv(s_resetToStart, 1, _1); _2= l_110; _1=_sendv(s_nextPut_, 2, _1, _2); } goto _l75; _l74:; { /* ifFalse: */ _1= 0; /* and: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_108; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l78; { _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(310); _2=_sendv(s_contents, 1, _2); _3= l_111; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); } _l78:; if (_2) goto _l77; { _1= v_self; _2= l_112; _line(311); _1=_sendv(s_error_, 2, _1, _2); } _l77:; _1= v_self; _line(312); _1=_sendv(s_scan, 1, _1); } _l75:; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info113= { "parseBlock", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 315, 323, &__info104 }; static oop Parser__parseBlock(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info113); oop v_block= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_block; _line(315); _1= v_BlockNode; _2= v_self; _line(318); _2=_sendv(s_position, 1, _2); _line(318); _1=_sendv(s_withPosition_, 2, _1, _2); v_block= _1; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_114; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l79; { _1= v_self; _2= v_block; _line(319); _1=_sendv(s_parseBlockParameters_, 2, _1, _2); } _l79:; _1= v_self; _2= v_block; _line(320); _1=_sendv(s_parseSequence_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info115= { "parseExec", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 323, 330, &__info113 }; static oop Parser__parseExec(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info115); oop v_position= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_position; _line(323); _1= v_self; _line(326); _1=_sendv(s_position, 1, _1); v_position= _1; _1= v_self; _line(327); _sendv(s_scan, 1, _1); _2= v_ExecNode; _3= v_position; _line(327); _2=_sendv(s_withPosition_, 2, _2, _3); _1=_sendv(s_parseSequence_, 2, _1, _2); _leave(); return _1; _leave(); } static struct __methodinfo __info116= { "parseExtern", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 330, 348, &__info115 }; static oop Parser__parseExtern(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info116); oop v_text= 0; oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_text; (void)v_node; _line(330); _1= ((struct t_Parser *)v_stateful_self)->v_token; _line(333); _1=_sendv(s_contents, 1, _1); v_text= _1; _1= v_nil; v_node= _1; /* ifTrue:ifFalse: */ _1= v_text; _2= l_117; _line(335); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l80; { _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_text; _3= l_118; _line(335); _2=_sendv(s_tokenized_, 2, _2, _3); _line(335); _2=_sendv(s_second, 1, _2); _line(335); _1=_sendv(s_import_, 2, _1, _2); } goto _l81; _l80:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_119; _line(336); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l82; { _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_text; _3= l_118; _line(336); _2=_sendv(s_tokenized_, 2, _2, _3); _line(336); _2=_sendv(s_second, 1, _2); _line(336); _1=_sendv(s_include_, 2, _1, _2); } goto _l83; _l82:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_120; _line(337); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l84; { _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_text; _3= l_118; _line(337); _2=_sendv(s_tokenized_, 2, _2, _3); _line(337); _2=_sendv(s_second, 1, _2); _line(337); _1=_sendv(s_input_, 2, _1, _2); } goto _l85; _l84:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_121; _line(338); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l86; { _1= v_IncludeNode; _2= l_122; _3= v_text; _4= l_123; _line(338); _3=_sendv(s_tokenized_, 2, _3, _4); _line(338); _3=_sendv(s_second, 1, _3); _line(338); _2=_sendv(s__2c, 2, _2, _3); _3= l_124; _line(338); _2=_sendv(s__2c, 2, _2, _3); _3= v_self; _line(338); _3=_sendv(s_position, 1, _3); _line(338); _1=_sendv(s_withName_position_, 3, _1, _2, _3); v_node= _1; } goto _l87; _l86:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_125; _line(339); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l88; { _1= v_IncludeNode; _2= l_126; _3= v_text; _4= l_127; _line(339); _3=_sendv(s_tokenized_, 2, _3, _4); _line(339); _3=_sendv(s_second, 1, _3); _line(339); _2=_sendv(s__2c, 2, _2, _3); _3= l_126; _line(339); _2=_sendv(s__2c, 2, _2, _3); _3= v_self; _line(339); _3=_sendv(s_position, 1, _3); _line(339); _1=_sendv(s_withName_position_, 3, _1, _2, _3); v_node= _1; } goto _l89; _l88:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_128; _line(340); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l90; { _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_text; _line(340); _1=_sendv(s_pragma_, 2, _1, _2); } goto _l91; _l90:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_129; _line(341); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l92; { _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_text; _line(341); _1=_sendv(s_external_, 2, _1, _2); } goto _l93; _l92:; { /* ifTrue:ifFalse: */ _1= v_text; _2= l_130; _line(342); _1=_sendv(s_beginsWith_, 2, _1, _2); if (!_1) goto _l94; { _1= ((struct t_Parser *)v_stateful_self)->v_client; _2= v_text; _line(342); _1=_sendv(s_internal_, 2, _1, _2); } goto _l95; _l94:; { _1= v_ExternNode; _2= v_text; _3= v_self; _line(343); _3=_sendv(s_position, 1, _3); _line(343); _1=_sendv(s_withCode_position_, 3, _1, _2, _3); v_node= _1; } _l95:; } _l93:; } _l91:; } _l89:; } _l87:; } _l85:; } _l83:; } _l81:; _1= v_self; _line(344); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _1; _leave(); } static struct __methodinfo __info131= { "parsePrimitive", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 348, 356, &__info116 }; static oop Parser__parsePrimitive(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info131); oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; (void)v_node; _line(348); _1= v_PrimitiveNode; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(351); _2=_sendv(s_contents, 1, _2); _3= v_self; _line(351); _3=_sendv(s_position, 1, _3); _line(351); _1=_sendv(s_withCode_position_, 3, _1, _2, _3); v_node= _1; _1= v_self; _line(352); _1=_sendv(s_scan, 1, _1); _1= v_node; _leave(); return _1; _leave(); } static struct __methodinfo __info132= { "parsePrototype:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 356, 379, &__info131 }; static oop Parser__parsePrototype_(oop v__closure, oop v_stateful_self, oop v_self, oop v_name) { _enter(&__info132); oop v_position= 0; oop v_base= 0; oop v_slots= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; (void)v_position; (void)v_base; (void)v_slots; _line(356); _1= v_self; _line(359); _1=_sendv(s_position, 1, _1); v_position= _1; _1= v_nil; v_base= _1; _1= v_OrderedCollection; _line(361); _1=_sendv(s_new, 1, _1); v_slots= _1; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_133; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l96; { _1= v_self; _line(364); _1=_sendv(s_scan, 1, _1); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_134; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l97; { _1= v_self; _2= l_135; _line(365); _1=_sendv(s_error_, 2, _1, _2); } _l97:; _1= ((struct t_Parser *)v_stateful_self)->v_token; _line(366); _1=_sendv(s_contents, 1, _1); v_base= _1; _1= v_self; _line(367); _1=_sendv(s_scan, 1, _1); } _l96:; /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_136; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l98; { _1= v_self; _2= l_137; _line(368); _1=_sendv(s_error_, 2, _1, _2); } _l98:; _1= v_self; _line(369); _1=_sendv(s_scan, 1, _1); /* whileTrue: */ goto _l100; _l99:; { _1= v_slots; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(372); _2=_sendv(s_contents, 1, _2); _line(372); _1=_sendv(s_add_, 2, _1, _2); _1= v_self; _line(373); _1=_sendv(s_scan, 1, _1); } _l100:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_134; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l99; _1= 0; /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_138; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l101; { _1= v_self; _2= l_139; _line(374); _1=_sendv(s_error_, 2, _1, _2); } _l101:; _1= v_self; _line(375); _1=_sendv(s_scan, 1, _1); _1= v_PrototypeNode; _2= v_name; _3= v_base; _4= v_slots; _5= v_position; _line(376); _1=_sendv(s_withName_base_slots_position_, 5, _1, _2, _3, _4, _5); _leave(); return _1; _leave(); } static struct __methodinfo __info140= { "parseVarParams:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 379, 389, &__info132 }; static oop Parser__parseVarParams_(oop v__closure, oop v_stateful_self, oop v_self, oop v_params) { _enter(&__info140); oop _1= 0; oop _2= 0; oop _3= 0; _line(379); /* whileTrue: */ goto _l103; _l102:; { _1= v_self; _line(383); _1=_sendv(s_scan, 1, _1); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_142; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l104; { _1= v_self; _2= l_143; _line(384); _1=_sendv(s_error_, 2, _1, _2); } _l104:; _1= v_params; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(385); _2=_sendv(s_contents, 1, _2); _line(385); _1=_sendv(s_add_, 2, _1, _2); _1= v_self; _line(386); _1=_sendv(s_scan, 1, _1); } _l103:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_141; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l102; _1= 0; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info144= { "parseMethod:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 389, 447, &__info140 }; static oop Parser__parseMethod_(oop v__closure, oop v_stateful_self, oop v_self, oop v_typeName) { _enter(&__info144); oop v_position= 0; oop v_selector= 0; oop v_arguments= 0; oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; (void)v_position; (void)v_selector; (void)v_arguments; (void)v_node; _line(389); _1= v_self; _2= l_145; _line(392); _1=_sendv(s_note_, 2, _1, _2); _1= v_self; _line(393); _1=_sendv(s_position, 1, _1); v_position= _1; _1= l_146; v_selector= _1; _1= v_OrderedCollection; _line(395); _1=_sendv(s_new, 1, _1); v_arguments= _1; /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_147; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l105; { /* whileTrue: */ goto _l108; _l107:; { _1= v_selector; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(400); _2=_sendv(s_contents, 1, _2); _line(400); _1=_sendv(s__2c, 2, _1, _2); v_selector= _1; _1= v_self; _line(401); _1=_sendv(s_scan, 1, _1); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_148; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l109; { _1= v_self; _2= l_149; _line(402); _1=_sendv(s_error_, 2, _1, _2); } _l109:; _1= v_arguments; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(403); _2=_sendv(s_contents, 1, _2); _line(403); _1=_sendv(s_add_, 2, _1, _2); _1= v_self; _line(404); _1=_sendv(s_scan, 1, _1); } _l108:; { _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_147; _1= (_1 == _2) ? v_true : v_false; } if (_1) goto _l107; _1= 0; _1= v_self; _2= v_arguments; _line(405); _1=_sendv(s_parseVarParams_, 2, _1, _2); } goto _l106; _l105:; { /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_150; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l110; { _1= v_selector; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(409); _2=_sendv(s_contents, 1, _2); _line(409); _1=_sendv(s__2c, 2, _1, _2); v_selector= _1; _1= v_self; _line(410); _1=_sendv(s_scan, 1, _1); /* ifFalse: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_148; _2= (_2 == _3) ? v_true : v_false; if (_2) goto _l112; { _1= v_self; _2= l_149; _line(411); _1=_sendv(s_error_, 2, _1, _2); } _l112:; _1= v_arguments; _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(412); _2=_sendv(s_contents, 1, _2); _line(412); _1=_sendv(s_add_, 2, _1, _2); _1= v_self; _line(413); _1=_sendv(s_scan, 1, _1); } goto _l111; _l110:; { /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_148; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l113; { _1= ((struct t_Parser *)v_stateful_self)->v_token; _line(417); _1=_sendv(s_contents, 1, _1); v_selector= _1; _1= v_self; _line(418); _sendv(s_scan, 1, _1); _2= v_arguments; _1=_sendv(s_parseVarParams_, 2, _1, _2); } goto _l114; _l113:; { _1= v_self; _2= l_151; _line(420); _1=_sendv(s_error_, 2, _1, _2); } _l114:; } _l111:; } _l106:; _1= v_MethodNode; _2= v_typeName; _3= v_selector; _4= v_arguments; _5= v_position; _line(421); _1=_sendv(s_withType_selector_arguments_position_, 5, _1, _2, _3, _4, _5); v_node= _1; _1= v_self; _2= l_152; _line(422); _1=_sendv(s_note_, 2, _1, _2); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_153; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l115; { _1= v_node; _line(425); _1=_sendv(s_beVariadic, 1, _1); _1= v_self; _line(426); _1=_sendv(s_scan, 1, _1); } _l115:; /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_154; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l116; { _1= v_self; _line(429); _1=_sendv(s_scan, 1, _1); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_155; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l118; { _1= v_self; _2= v_arguments; _line(433); _1=_sendv(s_parseVarParams_, 2, _1, _2); /* ifFalse: */ _1= 0; /* and: */ _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_150; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l120; { _2= ((struct t_Parser *)v_stateful_self)->v_token; _line(434); _2=_sendv(s_contents, 1, _2); _3= l_156; if (1 & (long)_2 & (long)_3) { _2= (((long)_2 == (long)_3) ? v_true : v_false); } else _2= _sendv(s__3d, 2, _2, _3); } _l120:; if (_2) goto _l119; { _1= v_self; _2= l_157; _line(435); _1=_sendv(s_error_, 2, _1, _2); } _l119:; _1= v_self; _line(436); _1=_sendv(s_scan, 1, _1); } _l118:; _1= v_self; _2= v_node; _line(438); _1=_sendv(s_parseSequence_, 2, _1, _2); } goto _l117; _l116:; { /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _2= l_158; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l121; { _1= v_node; _2= v_self; _line(440); _2=_sendv(s_parsePrimitive, 1, _2); _line(440); _1=_sendv(s_external_, 2, _1, _2); } goto _l122; _l121:; { _1= v_self; _2= l_159; _line(441); _1=_sendv(s_error_, 2, _1, _2); } _l122:; } _l117:; _1= v_self; _2= l_160; _line(442); _1=_sendv(s_note_, 2, _1, _2); _1= v_node; _2= ((struct t_Parser *)v_stateful_self)->v_line; _line(443); _1=_sendv(s_sourceEnd_, 2, _1, _2); _1= v_node; _leave(); return _1; _leave(); } static struct __methodinfo __info161= { "parseDefinition:", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 447, 456, &__info144 }; static oop Parser__parseDefinition_(oop v__closure, oop v_stateful_self, oop v_self, oop v_name) { _enter(&__info161); oop v_position= 0; oop v_node= 0; oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; (void)v_position; (void)v_node; _line(447); _1= v_self; _line(450); _1=_sendv(s_position, 1, _1); v_position= _1; _1= v_self; _line(451); _1=_sendv(s_scan, 1, _1); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _3= l_162; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l123; { _1= v_DefinitionNode; _2= v_name; _3= v_self; _line(452); _3=_sendv(s_parseExec, 1, _3); _4= v_position; _line(452); _1=_sendv(s_withName_exec_position_, 4, _1, _2, _3, _4); v_node= _1; _leave(); return _1; } _l123:; _1= v_self; _2= l_163; _line(453); _1=_sendv(s_error_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info168= { "[] parseDeclaration", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 456, 474, &__info161 }; static oop b_168(oop v__closure, oop v__self) { _enter(&__info168); oop v_name= 0; oop _1= 0; oop _2= 0; (void)v_name; _line(462); _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_token; /* token */ _line(463); _1=_sendv(s_contents, 1, _1); v_name= _1; _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _line(464); _1=_sendv(s_scan, 1, _1); /* ifTrue:ifFalse: */ /* or: */ _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_170; _1= (_1 == _2) ? v_true : v_false; if (_1) goto _l126; { _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_171; _1= (_1 == _2) ? v_true : v_false; } _l126:; if (!_1) goto _l124; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _2= v_name; _line(466); _1=_sendv(s_parsePrototype_, 2, _1, _2); } goto _l125; _l124:; { /* ifTrue:ifFalse: */ _1= ((struct t_Parser *)((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[1])->v_type; /* type */ _2= l_172; _1= (_1 == _2) ? v_true : v_false; if (!_1) goto _l127; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _2= v_name; _line(469); _1=_sendv(s_parseDefinition_, 2, _1, _2); } goto _l128; _l127:; { _1= ((oop *)((struct t_BlockClosure *)((struct t_BlockClosure *)v__self)->v_state))[2]; /* self */ _2= v_name; _line(470); _1=_sendv(s_parseMethod_, 2, _1, _2); } _l128:; } _l125:; _leave(); return _libid->nlreturn(((struct t_BlockClosure *)v__self)->v__nlr, _1); _leave(); } static struct __methodinfo __info164= { "parseDeclaration", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 456, 474, &__info168 }; static oop Parser__parseDeclaration(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info164); oop _state1= _sendv(s_new_5f_, 2, v__vector, 12); oop _1= 0; oop _2= 0; oop _3= 0; jmp_buf __nlr; oop _nlr; ((oop *)_state1)[1]= v_stateful_self; ((oop *)_state1)[2]= v_self; _nlr= (oop)&__nlr; if (setjmp(__nlr)) { return _libid->nlresult(); } _line(456); /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_165; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l129; { _1= ((oop *)_state1)[2]; /* self */ _line(458); _1=_sendv(s_parseExtern, 1, _1); _leave(); return _1; } _l129:; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _3= l_166; _2= (_2 == _3) ? v_true : v_false; if (!_2) goto _l130; { _1= ((oop *)_state1)[2]; /* self */ _line(459); _1=_sendv(s_parseExec, 1, _1); _leave(); return _1; } _l130:; _1= ((struct t_Parser *)((oop *)_state1)[1])->v_type; /* type */ _2= l_167; _1= (_1 == _2) ? v_true : v_false; /* Scope('name'->TemporaryVariableNode) */ /* Scope('context'->SlotVariableNode 'token'->SlotVariableNode 'prevHash'->SlotVariableNode 'client'->SlotVariableNode 'type'->SlotVariableNode 'charEscapes'->SlotVariableNode 'stateful_self'->ArgumentVariableNode 'charTable'->SlotVariableNode 'self'->ArgumentVariableNode 'line'->SlotVariableNode 'c'->SlotVariableNode) */ /* nil */ /* 2 */ /* 1 */ _2= _sendv(s_function_5f_arity_5f_outer_state_nlr_5f_, 6, v_BlockClosure, (oop)b_168, 0, 0, ((oop *)_state1), _nlr); _line(461); _1=_sendv(s_ifTrue_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _2= l_169; _line(471); _1=_sendv(s_error_, 2, _1, _2); _1= ((oop *)_state1)[2]; /* self */ _leave(); return _1; _leave(); } static struct __methodinfo __info173= { "parse", "Parser", "/Users/piumarta/src/idst/object/idc/Parser.st", 0, 474, 485, &__info164 }; static oop Parser__parse(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info173); oop v_node= 0; oop _1= 0; oop _2= 0; (void)v_node; _line(474); _1= v_nil; v_node= _1; /* whileTrue: */ goto _l132; _l131:; { /* whileTrue: */ goto _l134; _l133:; { _1= v_self; _line(481); _1=_sendv(s_scan, 1, _1); } _l134:; { /* and: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _line(481); _1=_sendv(s_isNil, 1, _1); if (!_1) goto _l135; { _1= v_self; _line(481); _1=_sendv(s_atEnd, 1, _1); _line(481); _1=_sendv(s_not, 1, _1); } _l135:; } if (_1) goto _l133; _1= 0; /* ifTrue: */ _1= 0; _2= ((struct t_Parser *)v_stateful_self)->v_type; _line(482); _2=_sendv(s_notNil, 1, _2); if (!_2) goto _l136; { _1= v_self; _line(482); _1=_sendv(s_parseDeclaration, 1, _1); v_node= _1; } _l136:; } _l132:; { /* and: */ _1= v_node; _line(479); _1=_sendv(s_isNil, 1, _1); if (!_1) goto _l137; { /* or: */ _1= ((struct t_Parser *)v_stateful_self)->v_type; _line(479); _1=_sendv(s_notNil, 1, _1); if (_1) goto _l138; { _1= v_self; _line(479); _1=_sendv(s_atEnd, 1, _1); _line(479); _1=_sendv(s_not, 1, _1); } _l138:; } _l137:; } if (_1) goto _l131; _1= 0; _1= v_node; _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "Parser.st", 0, 0, 0, &__info173 }; void __id__init__Parser(struct __libid *__libid) { if (_libid) return; if (!(_libid= __libid)) { fprintf(stderr, "init _libid %p\n", __libid); abort(); } # define GC_add_roots _libid->gc_addRoots GC_INIT(); { struct _Selector *s= 0; for (s= _Selectors; s->name; ++s) *s->addr= _libid->intern(s->name); } _enter(&__info); _libid->infos(&__info, &__info1); _sendv(s__5fimport_, 3, _libid->_object, "Scanner", "__id__init__Scanner"); v__object= _libid->import("_object"); v__vector= _libid->import("_vector"); v_Object= _libid->import("Object"); v_UndefinedObject= _libid->import("UndefinedObject"); v_StaticBlockClosure= _libid->import("StaticBlockClosure"); v_BlockClosure= _libid->import("BlockClosure"); v_Magnitude= _libid->import("Magnitude"); v_Character= _libid->import("Character"); v_Number= _libid->import("Number"); v_Integer= _libid->import("Integer"); v_SmallInteger= _libid->import("SmallInteger"); v_LargePositiveInteger= _libid->import("LargePositiveInteger"); v_Collection= _libid->import("Collection"); v_SequenceableCollection= _libid->import("SequenceableCollection"); v_ArrayedCollection= _libid->import("ArrayedCollection"); v_Array= _libid->import("Array"); v_ImmutableArray= _libid->import("ImmutableArray"); v_WordArray= _libid->import("WordArray"); v_ByteArray= _libid->import("ByteArray"); v_String= _libid->import("String"); v_ImmutableString= _libid->import("ImmutableString"); v_Symbol= _libid->import("Symbol"); v_nil= _libid->import("nil"); v_true= _libid->import("true"); v_false= _libid->import("false"); v_Set= _libid->import("Set"); v_LookupKey= _libid->import("LookupKey"); v_OrderedCollection= _libid->import("OrderedCollection"); v_Dictionary= _libid->import("Dictionary"); v_IdentityDictionary= _libid->import("IdentityDictionary"); v_Stream= _libid->import("Stream"); v_PositionableStream= _libid->import("PositionableStream"); v_Scanner= _libid->import("Scanner"); _sendv(s__5fimport_, 3, _libid->_object, "ByteArrayNode", "__id__init__ByteArrayNode"); v_ParseNode= _libid->import("ParseNode"); v_LiteralNode= _libid->import("LiteralNode"); v_ArrayLiteralNode= _libid->import("ArrayLiteralNode"); v_ByteArrayNode= _libid->import("ByteArrayNode"); _sendv(s__5fimport_, 3, _libid->_object, "WordArrayNode", "__id__init__WordArrayNode"); v_WordArrayNode= _libid->import("WordArrayNode"); _sendv(s__5fimport_, 3, _libid->_object, "ArrayNode", "__id__init__ArrayNode"); v_ArrayNode= _libid->import("ArrayNode"); _sendv(s__5fimport_, 3, _libid->_object, "SymbolNode", "__id__init__SymbolNode"); v_SymbolNode= _libid->import("SymbolNode"); _sendv(s__5fimport_, 3, _libid->_object, "StringNode", "__id__init__StringNode"); v_StringNode= _libid->import("StringNode"); _sendv(s__5fimport_, 3, _libid->_object, "IntegerNode", "__id__init__IntegerNode"); v_IntegerNode= _libid->import("IntegerNode"); _sendv(s__5fimport_, 3, _libid->_object, "FloatNode", "__id__init__FloatNode"); v_FloatNode= _libid->import("FloatNode"); _sendv(s__5fimport_, 3, _libid->_object, "CharacterNode", "__id__init__CharacterNode"); v_CharacterNode= _libid->import("CharacterNode"); _sendv(s__5fimport_, 3, _libid->_object, "VariableNode", "__id__init__VariableNode"); v_VariableNode= _libid->import("VariableNode"); _sendv(s__5fimport_, 3, _libid->_object, "VarargNode", "__id__init__VarargNode"); v_VarargNode= _libid->import("VarargNode"); _sendv(s__5fimport_, 3, _libid->_object, "SendNode", "__id__init__SendNode"); v_SendNode= _libid->import("SendNode"); _sendv(s__5fimport_, 3, _libid->_object, "AssignmentNode", "__id__init__AssignmentNode"); v_AssignmentNode= _libid->import("AssignmentNode"); _sendv(s__5fimport_, 3, _libid->_object, "ReturnNode", "__id__init__ReturnNode"); v_ReturnNode= _libid->import("ReturnNode"); _sendv(s__5fimport_, 3, _libid->_object, "BlockNode", "__id__init__BlockNode"); v_SequenceNode= _libid->import("SequenceNode"); v_BlockNode= _libid->import("BlockNode"); _sendv(s__5fimport_, 3, _libid->_object, "MethodNode", "__id__init__MethodNode"); v_MethodNode= _libid->import("MethodNode"); _sendv(s__5fimport_, 3, _libid->_object, "ExecNode", "__id__init__ExecNode"); v_ExecNode= _libid->import("ExecNode"); _sendv(s__5fimport_, 3, _libid->_object, "IncludeNode", "__id__init__IncludeNode"); v_IncludeNode= _libid->import("IncludeNode"); _sendv(s__5fimport_, 3, _libid->_object, "ImportNode", "__id__init__ImportNode"); _sendv(s__5fimport_, 3, _libid->_object, "ExternNode", "__id__init__ExternNode"); v_ExternNode= _libid->import("ExternNode"); _sendv(s__5fimport_, 3, _libid->_object, "PrimitiveNode", "__id__init__PrimitiveNode"); v_PrimitiveNode= _libid->import("PrimitiveNode"); _sendv(s__5fimport_, 3, _libid->_object, "PrototypeNode", "__id__init__PrototypeNode"); v_PrototypeNode= _libid->import("PrototypeNode"); _sendv(s__5fimport_, 3, _libid->_object, "DefinitionNode", "__id__init__DefinitionNode"); v_DefinitionNode= _libid->import("DefinitionNode"); _sendv(s__5fimport_, 3, _libid->_object, "perform", "__id__init__perform"); _sendv(s__5fimport_, 3, _libid->_object, "tokenization", "__id__init__tokenization"); v_Parser= _libid->proto2(v_Scanner, Parser___5fsizeof(0, 0)); _libid->method(v_Parser, s__5fsizeof, (_imp_t)Parser___5fsizeof); _libid->method(v_Parser, s__5fdebugName, (_imp_t)Parser___5fdebugName); _libid->method(v_Parser, s__5fslots, (_imp_t)Parser___5fslots); _libid->export("Parser", v_Parser); _libid->method(v_Parser, s_on_notifying_, (_imp_t)Parser__on_notifying_); _libid->method(v_Parser, s_note_, (_imp_t)Parser__note_); l_4= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 7, " near '"); l_5= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "'"); _libid->method(v_Parser, s_error_, (_imp_t)Parser__error_); l_7= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "]"); l_8= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 18, "PARSE_BYTE_ARRAY-1"); l_9= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "integer"); l_10= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 36, "ByteArrays can only contain integers"); l_11= _sendv(s_value_5f_, 2, v_SmallInteger, 0); l_12= _sendv(s_value_5f_, 2, v_SmallInteger, 255); l_13= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 39, "ByteArray element not between 0 and 255"); _libid->method(v_Parser, s_parseByteArray, (_imp_t)Parser__parseByteArray); l_15= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "}"); l_16= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 18, "PARSE_WORD_ARRAY-1"); l_17= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "integer"); l_18= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 36, "WordArrays can only contain integers"); _libid->method(v_Parser, s_parseWordArray, (_imp_t)Parser__parseWordArray); l_20= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_21= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_22= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "keyword"); l_23= _sendv(s_size_5f_value_5f_, 3, v_ImmutableArray, 3, al_23); l_24= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_25= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 21, "PARSE_ARRAY_LITERAL-1"); l_26= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "("); _libid->method(v_Parser, s_parseArrayLiteral, (_imp_t)Parser__parseArrayLiteral); l_28= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 7, "ARRAY-1"); l_29= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ")"); l_30= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 36, "')' expected at end of literal Array"); _libid->method(v_Parser, s_parseArray, (_imp_t)Parser__parseArray); l_32= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "LITERAL-1"); l_33= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "integer"); l_35= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 5, "float"); l_37= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "string"); l_39= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 9, "character"); l_41= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "LITERAL-2"); l_42= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "#"); l_43= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "LITERAL-3"); l_44= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_45= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_46= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "keyword"); l_47= _sendv(s_size_5f_value_5f_, 3, v_ImmutableArray, 4, al_47); l_49= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "LITERAL-4"); l_50= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "("); l_51= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "{"); l_52= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "["); l_53= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 29, "illegal literal following '#'"); _libid->method(v_Parser, s_parseLiteralP, (_imp_t)Parser__parseLiteralP); l_55= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "PRIMARY-1"); l_56= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_57= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "("); l_58= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ")"); l_59= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 12, "')' expected"); l_60= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "["); l_61= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 8, "ellipsis"); l_62= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "PRIMARY-2"); l_63= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, "PRIMARY-3"); l_64= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 13, "PRIMARY-ABORT"); l_65= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 12, "syntax error"); _libid->method(v_Parser, s_parsePrimary, (_imp_t)Parser__parsePrimary); l_67= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); _libid->method(v_Parser, s_parseUnary, (_imp_t)Parser__parseUnary); l_69= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); _libid->method(v_Parser, s_parseBinary, (_imp_t)Parser__parseBinary); l_71= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 6, "EXPR-1"); l_72= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 6, "EXPR-2"); l_73= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "keyword"); l_74= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 6, "EXPR-3"); l_75= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_76= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "assign"); l_77= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ";"); l_78= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 38, "cascade does not follow a message send"); l_81= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 0, ""); l_82= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_83= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_84= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 23, "syntax error in cascade"); _libid->method(v_Parser, s_parseExpression, (_imp_t)Parser__parseExpression); l_86= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_87= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_88= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "|"); l_89= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 41, "identifier or '|' expected in temporaries"); _libid->method(v_Parser, s_parseTemporaries_, (_imp_t)Parser__parseTemporaries_); l_91= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 5, "SEQ-1"); l_92= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_93= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "|"); l_94= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 5, "SEQ-2"); l_95= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "]"); l_96= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 5, "SEQ-3"); l_97= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "extern"); l_98= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "^"); l_99= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "."); l_100= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 28, "'.' or ']' expected in block"); l_101= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 28, "']' expected at end of block"); l_102= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 5, "SEQ-4"); l_103= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 5, "SEQ-5"); _libid->method(v_Parser, s_parseSequence_, (_imp_t)Parser__parseSequence_); l_105= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_106= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_107= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 23, "parameter name expected"); l_108= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_109= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 2, "||"); l_110= _sendv(s_value_5f_, 2, v_Character, 124); l_111= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "|"); l_112= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 39, "'|' expected at end of block parameters"); _libid->method(v_Parser, s_parseBlockParameters_, (_imp_t)Parser__parseBlockParameters_); l_114= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); _libid->method(v_Parser, s_parseBlock, (_imp_t)Parser__parseBlock); _libid->method(v_Parser, s_parseExec, (_imp_t)Parser__parseExec); l_117= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 8, " import:"); l_118= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, " "); l_119= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 9, " include:"); l_120= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 7, " input:"); l_121= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 10, " include <"); l_122= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "<"); l_123= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 3, " <>"); l_124= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, ">"); l_125= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 10, " include \""); l_126= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "\""); l_127= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 2, " \""); l_128= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 8, " pragma:"); l_129= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 10, " external "); l_130= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 10, " internal "); _libid->method(v_Parser, s_parseExtern, (_imp_t)Parser__parseExtern); _libid->method(v_Parser, s_parsePrimitive, (_imp_t)Parser__parsePrimitive); l_133= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_134= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_135= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 38, "base type name expected in declaration"); l_136= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "("); l_137= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 39, "slot names expected in type declaration"); l_138= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ")"); l_139= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 49, "')' expected after slot names in type declaration"); _libid->method(v_Parser, s_parsePrototype_, (_imp_t)Parser__parsePrototype_); l_141= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_142= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_143= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 23, "parameter name expected"); _libid->method(v_Parser, s_parseVarParams_, (_imp_t)Parser__parseVarParams_); l_145= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 8, "METHOD-1"); l_146= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 0, ""); l_147= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 7, "keyword"); l_148= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_149= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 22, "missing parameter name"); l_150= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "binary"); l_151= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 23, "method pattern expected"); l_152= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 8, "METHOD-2"); l_153= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 8, "ellipsis"); l_154= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "["); l_155= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_156= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 1, "|"); l_157= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 34, "'|' expected after block arguments"); l_158= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "extern"); l_159= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 20, "method body expected"); l_160= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 8, "METHOD-3"); _libid->method(v_Parser, s_parseMethod_, (_imp_t)Parser__parseMethod_); l_162= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "["); l_163= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 22, "literal block expected"); _libid->method(v_Parser, s_parseDefinition_, (_imp_t)Parser__parseDefinition_); l_165= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "extern"); l_166= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "["); l_167= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 10, "identifier"); l_169= _sendv(s_size_5f_value_5f_, 3, v_ImmutableString, 12, "syntax error"); l_170= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, ":"); l_171= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 1, "("); l_172= _sendv(s_size_5f_value_5f_, 3, v_Symbol, 6, "assign"); _libid->method(v_Parser, s_parseDeclaration, (_imp_t)Parser__parseDeclaration); _libid->method(v_Parser, s_parse, (_imp_t)Parser__parse); _leave(); }