コード例 #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;
}
コード例 #2
0
ファイル: IoMessage.c プロジェクト: mikedouglas/io
IO_METHOD(IoMessage, setLabel)
{
	/*doc Message setLabel(aString)
	Sets the label of the message and its children. Returns self.
	*/

	IoMessage_label_(self, IoMessage_locals_symbolArgAt_(m , locals, 0));
	return self;
}
コード例 #3
0
ファイル: IoMessage.c プロジェクト: mikedouglas/io
void IoMessage_label_(IoMessage *self, IoSymbol *ioSymbol) /* sets label for children too */
{
	IoMessage_rawSetLabel_(self, ioSymbol);
	List_do_with_(DATA(self)->args, (ListDoWithCallback *)IoMessage_label_, ioSymbol);

	if (DATA(self)->next)
	{
		IoMessage_label_(DATA(self)->next, ioSymbol);
	}
}
コード例 #4
0
ファイル: IoMessage_parser.c プロジェクト: eklitzke/io
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;
}