diff options
Diffstat (limited to 'src/gas_assembly_generator.h')
-rw-r--r-- | src/gas_assembly_generator.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gas_assembly_generator.h b/src/gas_assembly_generator.h index 044e8ed..d7d2e1e 100644 --- a/src/gas_assembly_generator.h +++ b/src/gas_assembly_generator.h @@ -21,11 +21,30 @@ #include "vector.h" #include <stdio.h> +typedef enum evaluation_result_kind_t +{ + EVALUATION_RESULT_VOID, + EVALUATION_RESULT_REGISTER, + EVALUATION_RESULT_LITERAL_INTEGER +} evaluation_result_kind_t; + +typedef union evaluation_result_data_t +{ + int64_t literal_int; +} evaluation_result_data_t; + +typedef struct evaluation_result_t +{ + evaluation_result_kind_t kind; + evaluation_result_data_t data; +} evaluation_result_t; + typedef struct gas_assembly_generator_t { FILE *stream; vector_t *refs; int stack_offset; + evaluation_result_t latest_evaluation; } gas_assembly_generator_t; void |