diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-02-26 00:04:11 -0500 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-02-26 00:04:11 -0500 |
| commit | c60496a297a0d4c53ad0e22850ad62b0b4a2d841 (patch) | |
| tree | 821fd1f0399d8d013acba645a9f54df6914adad7 /src/ast_render.cpp | |
| parent | 6fef7406c80d6db26513a6ae53f9c44444bef1f2 (diff) | |
| download | zig-c60496a297a0d4c53ad0e22850ad62b0b4a2d841.tar.gz zig-c60496a297a0d4c53ad0e22850ad62b0b4a2d841.zip | |
parse await and suspend syntax
See #727
Diffstat (limited to 'src/ast_render.cpp')
| -rw-r--r-- | src/ast_render.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp index eec4b996a0..5f3e1998fd 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -246,6 +246,10 @@ static const char *node_type_str(NodeType node_type) { return "ErrorSetDecl"; case NodeTypeCancel: return "Cancel"; + case NodeTypeAwaitExpr: + return "AwaitExpr"; + case NodeTypeSuspend: + return "Suspend"; } zig_unreachable(); } @@ -1045,6 +1049,23 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { render_node_grouped(ar, node->data.cancel_expr.expr); break; } + case NodeTypeAwaitExpr: + { + fprintf(ar->f, "await "); + render_node_grouped(ar, node->data.await_expr.expr); + break; + } + case NodeTypeSuspend: + { + fprintf(ar->f, "suspend"); + if (node->data.suspend.block != nullptr) { + fprintf(ar->f, " |"); + render_node_grouped(ar, node->data.suspend.promise_symbol); + fprintf(ar->f, "| "); + render_node_grouped(ar, node->data.suspend.block); + } + break; + } case NodeTypeFnDecl: case NodeTypeParamDecl: case NodeTypeTestDecl: |
