Newer
Older

Clemens Paumgarten
committed
#include <string.h>
char *mcc_tac_new_temporary_string(struct mcc_tac *tac) {
// + 2 for character t and for \0 and + 1 in case temporay_count is 0
size_t num_digits = (size_t) mcc_get_number_of_digits(tac -> temporary_count) + 1 + 2;
if (t == NULL) {
return NULL;
}
sprintf(t, "t%d", tac -> temporary_count);
tac -> last_temporary = t;
return t;
}
char *mcc_tac_new_label_string(struct mcc_tac *tac) {
// + 2 for character L and for \0 and + 1 in case temporay_count is 0
size_t num_digits = (size_t) mcc_get_number_of_digits(tac -> label_count) + 1 + 2;

Clemens Paumgarten
committed
char *concat_strs(char *prefix, char *infix, char *suffix)
{
size_t p_len = strlen(prefix);
size_t i_len = strlen(infix);
size_t s_len = strlen(suffix);
char *str = malloc(sizeof(char) * (p_len + i_len + s_len + 1));
strcpy(str, prefix);
strcpy(str + p_len, infix);
strcpy(str + p_len + i_len, suffix);
str[p_len + i_len + s_len] = '\0';
return str;
}

Clemens Paumgarten
committed
char *mcc_tac_new_return_function_name(char* function_name) {