|
Micro C Compiler - MCC
|
definições das estruturas de dados para a representação intermediária (ir). More...
#include "symbol_table.h"Classes | |
| struct | IROperand |
| estrutura para um operando. More... | |
| struct | IR_Instruction |
| estrutura para uma única instrução da nossa ir. More... | |
Typedefs | |
| typedef struct IR_Instruction | IR_Instruction |
| estrutura para uma única instrução da nossa ir. | |
Enumerations | |
| enum | IROpcode { IR_ADD , IR_SUB , IR_MUL , IR_DIV , IR_MOD , IR_EQ , IR_NEQ , IR_LT , IR_LEQ , IR_GT , IR_GEQ , IR_AND , IR_OR , IR_NEG , IR_NOT , IR_ASSIGN , IR_STORE , IR_LOAD , IR_LABEL , IR_GOTO , IR_IF_FALSE , IR_PARAM , IR_CALL , IR_RETURN , IR_PRINT_INT , IR_PRINT_CHAR , IR_PRINT_STRING } |
| enumeração de todos os opcodes possíveis na nossa ir. More... | |
| enum | OperandType { OPERAND_EMPTY , OPERAND_SYMBOL , OPERAND_TEMP , OPERAND_CONST , OPERAND_STRING_LBL , OPERAND_LABEL } |
| enumeração dos tipos de operandos. More... | |
Functions | |
| void | liberar_ir (IR_Instruction *ir_head) |
| libera toda a memória alocada por uma lista de instruções da ir. | |
definições das estruturas de dados para a representação intermediária (ir).
este arquivo define as estruturas para o código de três endereços (tac), que serve como uma ponte de alto nível e independente de máquina entre o front-end e o back-end gerador de assembly.
| typedef struct IR_Instruction IR_Instruction |
estrutura para uma única instrução da nossa ir.
| enum IROpcode |
enumeração de todos os opcodes possíveis na nossa ir.
| enum OperandType |
enumeração dos tipos de operandos.
| void liberar_ir | ( | IR_Instruction * | ir_head | ) |
libera toda a memória alocada por uma lista de instruções da ir.
| ir_head | ponteiro para a primeira instrução da lista. |
percorre a lista encadeada de instruções, liberando cada operando, os dados internos (como nomes de labels) e a própria instrução, evitando vazamentos de memória.
| ir_head | ponteiro para a primeira instrução da lista. |