summaryrefslogtreecommitdiff
path: root/src/gas_assembly_generator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gas_assembly_generator.h')
-rw-r--r--src/gas_assembly_generator.h19
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