diff --git a/src/ast/ast.c b/src/ast/ast.c index bcdc3ba..c2ddb60 100644 --- a/src/ast/ast.c +++ b/src/ast/ast.c @@ -182,6 +182,12 @@ AST *ast_deep_copy(AST *src) { return memdup(src, sizeof(ASTExprVar)); } else if(src->nodeKind == AST_EXPR_PRIMITIVE) { return memdup(src, sizeof(ASTExprPrimitive)); + } else if(src->nodeKind == AST_EXPR_VAR) { + return memdup(src, sizeof(ASTExprVar)); + } else if(src->nodeKind == AST_EXPR_UNARY_OP) { + ASTExprUnaryOp *n = memdup(src, sizeof(ASTExprUnaryOp)); + n->operand = ast_deep_copy(n->operand); + return n; } abort();