diff options
Diffstat (limited to 'ast.h')
-rw-r--r-- | ast.h | 51 |
1 files changed, 0 insertions, 51 deletions
@@ -1,51 +0,0 @@ -#ifndef _ast_h -#define _ast_h - -#include <stdlib.h> -#include <stddef.h> - -typedef enum { - AST_LIST, - AST_NUM, - AST_IDENT, - AST_STRING, - AST_ARR, -} AstTy; - -struct _astnode; -typedef struct _astnode AstNode; - -typedef struct { - size_t len; - size_t cap; - AstNode *vals; -} AstVec; - -struct _astnode { - AstTy ty; - union { - int num; - AstVec list; - char *str; - } as; -}; - - -AstVec astvec_new(); -void astvec_append(AstVec *v, AstNode val); -void astnode_append(AstNode *l, AstNode val); - -AstNode astnode_new_num(int n); -AstNode astnode_new_list(); -AstNode astnode_new_arr(); -AstNode astnode_new_ident(const char *s); -AstNode astnode_new_string(const char *s); - -void astnode_disp(AstNode *a); -void astnode_free(AstNode *a); - -const char *ast_ty_to_str(AstTy ty); - - - -#endif |