コード例 #1
0
ファイル: lista.c プロジェクト: bfiss/Pico-Bruno-Felipe-Kaue
void print_tac(FILE* out, struct node_tac * code) {
	struct node_tac *list = code;
	if(list) { // se a lista não estiver vazia
		print_inst_tac(out, *list->inst);
		while(list->next != code) { // enquanto houver um próximo elemento
			list = list->next;
			print_inst_tac(out, *list->inst);
		}
	}
}
コード例 #2
0
/** \brief Imprime no arquivo apontado por 'out' o conteudo da lista apontada
 * por 'code'.
 *
 * @param out um ponteiro sobre um arquivo (aberto) aonde ira ser escrita a lista (uma linha por elemento).
 * @param code o ponteiro para a lista a ser impressa.
 *
 * Obs.: cada linha impressa no arquivo deve comecar por um numero inteiro
 * (3 digitos) seguido de ':'. O numero deve ser o numero da linha.
 * Exemplo:
 *   001:  instrucao_qualquer
 *   002:  outra_instrucao
 *    .....
 *   999:  ultima_instrucao
 *   000:  agora_tem_instrucao_demais
 */
void print_tac(FILE* out, struct node_tac * code){
	
	fprintf(out, "%d\n%d\n", vars_size,temps_size);
	struct node_tac * tac_pointer;
	tac_pointer = code;
	while(tac_pointer){
		fprintf(out, "%03d:   ", tac_pointer->number-1);
		print_inst_tac(out,*(tac_pointer->inst));
		tac_pointer=tac_pointer->next;
	}

}