diff options
| author | Lorenzo Torres <lorenzotorres@outlook.it> | 2026-06-10 00:16:07 +0200 |
|---|---|---|
| committer | Lorenzo Torres <lorenzotorres@outlook.it> | 2026-06-10 00:16:07 +0200 |
| commit | 6c9d0f7fad1d96796efef43a6db7eef6df8de054 (patch) | |
| tree | 5ef7befd9b853f857caed70570cbd007ca970410 /parser.h | |
| parent | 13d591df4ae3dc07f3be8477f7bcbed296d7bc40 (diff) | |
finished lexer, preliminary work on parser
Diffstat (limited to 'parser.h')
| -rw-r--r-- | parser.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/parser.h b/parser.h new file mode 100644 index 0000000..4c750cf --- /dev/null +++ b/parser.h @@ -0,0 +1,29 @@ +#ifndef PARSER_H +#define PARSER_H + +#include <stdint.h> +#include <stddef.h> + +typedef enum { + NODE_START, + NODE_RETURN, + NODE_CONST, +} node_type; + +typedef struct _node { + union { + uint64_t integer; + double flt; + } data; + + node_type type; + struct _node **children; + size_t children_length; + size_t children_size; + size_t id; +} node; + +void add_child(node *n, node *child); +node *ir_parse(token *tokens); + +#endif |
