Exemple #1
0
sc_addr sc_generator::generate_find_internal(const char *idtf,sc_type type,sc_segment *seg)
{
	if (!seg)
		seg = active_segment;
	sc_addr el = (idtf && idtf[0])?session->find_by_idtf(idtf,seg):0;
	if (!el)
		return generate_internal(idtf,type,seg);
	if (type && type != session->get_type(el))
		return 0;
	return el;
}
Exemple #2
0
char* markov_generate_to_string(MarkovData* data, int max_words) {
    
    const int initial_size = 1024;
    
    TextBuffer* buffer = init_textbuffer(initial_size);
    
    int err = generate_internal(data, max_words, write_word_to_string, buffer);
    
    if (err) {
        free(buffer->text);
        free(buffer);
        return NULL;
    }
    
    buffer->text[buffer->used - 1] = '\0';
    buffer->text = realloc(buffer->text, sizeof(char[buffer->used]));
    char* output = buffer->text;
    free(buffer);
    return output;
}
Exemple #3
0
int markov_generate_to_stream(MarkovData* data, FILE* dest, int max_words) {

    return generate_internal(data, max_words, write_word_to_stream, dest);
}