summaryrefslogtreecommitdiff
path: root/src/ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast.h')
-rw-r--r--src/ast.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/ast.h b/src/ast.h
index cb9b8d5..70852b1 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -62,6 +62,7 @@ typedef struct ast_visitor_t {
void (*visit_function)(struct ast_visitor_t *, ast_function_declaration_t *);
void (*visit_return_stmt)(struct ast_visitor_t *, ast_return_stmt_t *);
void (*visit_literal)(struct ast_visitor_t *, ast_literal_t *);
+ void (*visit_binary_operation)(struct ast_visitor_t *, ast_binary_operation_t *);
} ast_visitor_t;
typedef enum {
@@ -90,8 +91,10 @@ void ast_node_accept_visitor(ast_node_t *node, ast_visitor_t *visitor);
ast_node_t* ast_node_new();
void ast_node_destroy(ast_node_t *node);
-void ast_node_init_function_declaration(ast_node_t* node, string_view_t name, type_t return_type, ast_node_t *body);
-void ast_node_init_return_stmt(ast_node_t* node, ast_node_t *argument);
+void ast_node_init_function_declaration(ast_node_t *node, string_view_t name, type_t return_type, ast_node_t *body);
+void ast_node_init_return_stmt(ast_node_t *node, ast_node_t *argument);
+void ast_node_init_binary_operation(ast_node_t *node, string_view_t op, ast_node_t *left, ast_node_t *right);
+// FIXME: use the naming convention
void ast_literal_integer_create(ast_node_t* node, uint32_t number);
#endif /* AST_H */