Module: wine Branch: master Commit: 2b7ad731a4a44a38ae8bac97a7682fee2fee4ec8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2b7ad731a4a44a38ae8bac97a7...
Author: Matteo Bruni mbruni@codeweavers.com Date: Fri Sep 21 16:25:57 2012 +0200
d3dcompiler: Parse "do-while" loop.
---
dlls/d3dcompiler_43/hlsl.y | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/dlls/d3dcompiler_43/hlsl.y b/dlls/d3dcompiler_43/hlsl.y index 491a826..9bc9145 100644 --- a/dlls/d3dcompiler_43/hlsl.y +++ b/dlls/d3dcompiler_43/hlsl.y @@ -1368,6 +1368,21 @@ loop_statement: KW_WHILE '(' expr ')' statement set_location(&loc, &@1); $$ = create_loop(LOOP_WHILE, NULL, cond, NULL, $5, &loc); } + | KW_DO statement KW_WHILE '(' expr ')' ';' + { + struct source_location loc; + struct list *cond = d3dcompiler_alloc(sizeof(*cond)); + + if (!cond) + { + ERR("Out of memory.\n"); + return -1; + } + list_init(cond); + list_add_head(cond, &$5->entry); + set_location(&loc, &@1); + $$ = create_loop(LOOP_DO_WHILE, NULL, cond, NULL, $2, &loc); + }
expr_statement: ';' {