diff options
| author | Carson Fleming <cflems@cflems.net> | 2026-07-26 19:20:30 -0700 |
|---|---|---|
| committer | Carson Fleming <cflems@cflems.net> | 2026-07-26 19:20:30 -0700 |
| commit | 4f9d0247549b06ddb25b76bb425541190105cb48 (patch) | |
| tree | 56f191c3611fc7509e6350138ce03c20956b656f /type.c | |
| parent | 6a169de321b131e73b86967a1a8564365217275a (diff) | |
| download | ccc-4f9d0247549b06ddb25b76bb425541190105cb48.tar.gz | |
functioning type system perhaps?
Diffstat (limited to 'type.c')
| -rw-r--r-- | type.c | 52 |
1 files changed, 52 insertions, 0 deletions
@@ -0,0 +1,52 @@ +#include "type.h" +#include <stddef.h> + +const struct data_type void_type = { + .name = "void", + .sz = 0, + .is_floating = false, +}; +const struct data_type char_type = { + .name = "char", + .sz = 1, + .is_floating = false, +}; +const struct data_type short_type = { + .name = "short", + .sz = 2, + .is_floating = false, +}; +const struct data_type int_type = { + .name = "int", + .sz = 4, + .is_floating = false, +}; +const struct data_type long_type = { + .name = "long", + .sz = 8, + .is_floating = false, +}; +const struct data_type long_long_type = { + .name = "long long", + .sz = 8, + .is_floating = false, +}; +const struct data_type float_type = { + .name = "float", + .sz = 4, + .is_floating = true, +}; +const struct data_type double_type = { + .name = "double", + .sz = 8, + .is_floating = true, +}; + +const struct data_type* integral_type = &long_type; +const struct data_type* floating_type = &double_type; +const struct data_type* character_type = &char_type; +const struct data_type* primitive_types[] = { + &void_type, &char_type, &short_type, &int_type, &long_type, &long_long_type, + &float_type, &double_type, + NULL +}; |
