Matteo Bruni : d3dcompiler: Parse "do-while" loop.

Alexandre Julliard julliard at winehq.org
Fri Sep 21 14:22:41 CDT 2012


Module: wine
Branch: master
Commit: 2b7ad731a4a44a38ae8bac97a7682fee2fee4ec8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2b7ad731a4a44a38ae8bac97a7682fee2fee4ec8

Author: Matteo Bruni <mbruni at 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:           ';'
                             {




More information about the wine-cvs mailing list