diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-05-04 12:43:11 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-05-04 12:43:11 -0400 |
| commit | b6a679c0edd74d996bd0c1769cf4b161b4d42c4d (patch) | |
| tree | b9b90568cb38ec6edaa1fa094b8da18575144a08 /src/ast_render.cpp | |
| parent | 0454e610bf8627537855ce96e922dfbe7322e4a1 (diff) | |
| download | zig-b6a679c0edd74d996bd0c1769cf4b161b4d42c4d.tar.gz zig-b6a679c0edd74d996bd0c1769cf4b161b4d42c4d.zip | |
implement else on loops and break can give an expression
closes #357
Diffstat (limited to 'src/ast_render.cpp')
| -rw-r--r-- | src/ast_render.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp index 348d825332..e1186da2c4 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -485,6 +485,15 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { } break; } + case NodeTypeBreak: + { + fprintf(ar->f, "break"); + if (node->data.break_expr.expr) { + fprintf(ar->f, " "); + render_node_grouped(ar, node->data.break_expr.expr); + } + break; + } case NodeTypeDefer: { const char *defer_str = defer_string(node->data.defer.kind); @@ -880,11 +889,10 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { fprintf(ar->f, "| "); } render_node_grouped(ar, node->data.for_expr.body); - break; - } - case NodeTypeBreak: - { - fprintf(ar->f, "break"); + if (node->data.for_expr.else_node) { + fprintf(ar->f, " else"); + render_node_grouped(ar, node->data.for_expr.else_node); + } break; } case NodeTypeContinue: |
