IoMessage *IoMessage_newFromText_labelSymbol_(void *state, const char *text, IoSymbol *label) { IoLexer *lexer; IoMessage *msg; IoState_pushCollectorPause((IoState *)state); // needed? lexer = IoLexer_new(); IoLexer_string_(lexer, text); IoLexer_lex(lexer); // This also applies line numbers. msg = IoMessage_newParse(state, lexer); IoMessage_opShuffle_(msg); IoMessage_label_(msg, label); // DLF: Check for pending breakpoint on this message. iovm_set_pending_breakpoints(msg); IoLexer_free(lexer); IoState_popCollectorPause((IoState *)state); return msg; }
IoMessage *IoMessage_newFromText_labelSymbol_(void *state, const char *text, IoSymbol *label) { IoLexer *lexer = IoLexer_new(); IoMessage *msg; IoLexer_string_(lexer, text); IoLexer_lex(lexer); msg = IoMessage_newParse(state, lexer); IoMessage_opShuffle_(msg); IoMessage_label_(msg, label); IoLexer_free(lexer); return msg; }
IO_METHOD(IoObject, messageForString2) { /*doc Compiler messageForString2(aString) Returns the compiled message object for aString. (Runs raw string against lexer directly.) */ IoLexer *lexer = IoLexer_new(); char *text = IoMessage_locals_cStringArgAt_(m, locals, 0); IoMessage *msg; IoLexer_string_(lexer, text); IoLexer_lex(lexer); msg = IoMessage_newParse(IOSTATE, lexer); IoLexer_free(lexer); return msg; }