summaryrefslogtreecommitdiff
path: root/ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'ast.c')
-rw-r--r--ast.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/ast.c b/ast.c
index 7456ee3..07e2006 100644
--- a/ast.c
+++ b/ast.c
@@ -142,6 +142,27 @@ static void ast_stringify_(const AST *ast,Buffer *buf){
buf_append(buf,")",1);
break;
+ case AST_LAMBDA:
+ buf_append(buf,"[[lambda ",9);
+ if(ast->la.cfunc)buf_append(buf,"cfunc]]",7);
+ else {
+ buf_append(buf,"body ",5);
+ ast_stringify_(ast->la.body,buf);
+ buf_append(buf,"]]",2);
+ }
+ break;
+
+ case AST_LAMBDAARG:{
+ buf_append(buf,"[[lambdaArg ",12);
+ char *s;
+ int len=asprintf(&s,"%d",ast->ar.idx);
+ if(!s)outofmem();
+ buf_append(buf,s,len);
+ free(s);
+ buf_append(buf,"]]",2);
+ break;
+ }
+
case AST_WORD:
buf_append(buf,ast->wo.word,strlen(ast->wo.word));
break;