Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}