diff options
Diffstat (limited to 'ast.c')
-rw-r--r-- | ast.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -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; |