diff options
Diffstat (limited to 'ast.h')
-rw-r--r-- | ast.h | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -0,0 +1,39 @@ +#ifndef _ast_h +#define _ast_h + +#include <stdlib.h> +#include <stddef.h> + +typedef enum { + AST_NUM, + AST_LIST, +} 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; + } as; +}; + + +AstVec astvec_new(); +void astvec_append(AstVec *v, AstNode val); + +AstNode astnode_new_num(int n); +AstNode astnode_new_list(); + + + + +#endif |