diff options
Diffstat (limited to 'src/types.h')
| -rw-r--r-- | src/types.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/types.h b/src/types.h new file mode 100644 index 0000000..5f6f45a --- /dev/null +++ b/src/types.h @@ -0,0 +1,26 @@ +#pragma once + +#include "common.h" +#include <stdio.h> + +typedef enum { + TYPE_NONE, + TYPE_INT, + TYPE_PTR, +} DataType; + +typedef struct data_type_node { + DataType type; + struct data_type_node *ptr; +} Type; + +Type *type_new(DataType type); +i64 size_for_type(Type *type); +bool type_equals(Type *a, Type *b); +char *type_to_str(Type *type); + +// Type checking / casting expressions to right types +typedef struct ast_node Node; + +Node *handle_unary_expr_types(Node *, Token *); +Node *handle_binary_expr_types(Node *, Token *);
\ No newline at end of file |