summaryrefslogtreecommitdiff
path: root/src/ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast.h')
-rw-r--r--src/ast.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ast.h b/src/ast.h
index 9e0e514..42f02ac 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -16,6 +16,7 @@
*/
#ifndef AST_H
#define AST_H
+#include "lexer.h"
#include "string_view.h"
#include "vector.h"
#include <stdint.h>
@@ -140,6 +141,12 @@ typedef struct ast_if_stmt_t
ast_node_t *body;
} ast_if_stmt_t;
+typedef struct ast_unkown_token_t
+{
+ type_t expected_type;
+ token_t reference_token;
+} ast_unkown_token_t;
+
typedef enum
{
AST_NAMESPACE,
@@ -151,10 +158,10 @@ typedef enum
AST_LITERAL,
AST_RETURN_STMT,
AST_IF_STMT,
- AST_UNKOWN_NODE,
AST_VARIABLE_DECLARATION,
AST_VARIABLE_ASSIGNMENT,
- AST_VARIABLE
+ AST_VARIABLE,
+ AST_UNKOWN_NODE
} ast_node_kind_t;
typedef union
@@ -171,6 +178,7 @@ typedef union
ast_variable_declaration_t variable_declaration;
ast_variable_assignment_t variable_assignment;
ast_variable_t variable;
+ ast_unkown_token_t unknown;
} ast_node_data_t;
typedef struct ast_node_t