36 .type = T_VOID, .is_function = false \
42#define TYPE_NUMBER_FROM_NUMBERTYPE_FROM_TOKEN(ttype) \
45 .type = ttype, .value.number = NUMBER_FROM_TYPE_VAL(token_type_to_number_type(ttype), 0), \
46 .is_function = false \
52#define TYPE_NUMBER_FROM_NUMBERTYPE_FROM_NUMBER(n) \
55 .type = number_to_token_type(n), .value.number = n, .is_function = false \
61#define TYPE_NUMBER_FROM_NUMBERTYPE(nt) \
64 .type = number_to_token_type((Number){.type = nt}), .is_function = false, \
65 .value.number = NUMBER_FROM_TYPE_VAL(nt, 0) \
68#define TYPE_FUNCTION(out, input_list, num_inputs) \
71 .type = T_FUNCTION_DECLARATION, .is_function = true, \
72 .value.function = FUNCTION_FROM_OUT_IN(out, input_list, num_inputs) \
Struct definitions and macros for functions.
Definitions and function headers for the internal "Number" type.
Lexical Scanner function headers.
TokenType
Types of scannable tokens.
Definition: scan.h:20
Container for function information.
Definition: function.h:27
Container for various kinds of number data.
Definition: number.h:51
Container for type data.
Definition: type.h:18
Function function
Definition: type.h:26
bool is_function
Definition: type.h:22
Number number
Definition: type.h:25
TokenType type
Definition: type.h:20
struct Type Type
Container for type data.