Zebediah Figura : vkd3d-shader: Move parse_* structure definitions to hlsl.y.

Alexandre Julliard julliard at winehq.org
Wed Feb 10 15:32:47 CST 2021


Module: vkd3d
Branch: master
Commit: 3854991154d9961b34c89f3e9d99d46112915212
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=3854991154d9961b34c89f3e9d99d46112915212

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Thu Feb  4 16:33:49 2021 -0600

vkd3d-shader: Move parse_* structure definitions to hlsl.y.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d-shader/hlsl.h | 70 -----------------------------------------
 libs/vkd3d-shader/hlsl.y | 81 ++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 79 insertions(+), 72 deletions(-)

diff --git a/libs/vkd3d-shader/hlsl.h b/libs/vkd3d-shader/hlsl.h
index daa2db2..a3c16c5 100644
--- a/libs/vkd3d-shader/hlsl.h
+++ b/libs/vkd3d-shader/hlsl.h
@@ -398,76 +398,6 @@ struct hlsl_scope
     struct hlsl_scope *upper;
 };
 
-/* Structures used only during parsing */
-struct parse_parameter
-{
-    struct hlsl_type *type;
-    const char *name;
-    const char *semantic;
-    const struct hlsl_reg_reservation *reg_reservation;
-    unsigned int modifiers;
-};
-
-struct parse_colon_attribute
-{
-    const char *semantic;
-    struct hlsl_reg_reservation *reg_reservation;
-};
-
-struct parse_initializer
-{
-    struct hlsl_ir_node **args;
-    unsigned int args_count;
-    struct list *instrs;
-};
-
-struct parse_variable_def
-{
-    struct list entry;
-    struct source_location loc;
-
-    char *name;
-    unsigned int array_size;
-    const char *semantic;
-    struct hlsl_reg_reservation *reg_reservation;
-    struct parse_initializer initializer;
-};
-
-struct parse_function
-{
-    char *name;
-    struct hlsl_ir_function_decl *decl;
-};
-
-struct parse_if_body
-{
-    struct list *then_instrs;
-    struct list *else_instrs;
-};
-
-enum parse_unary_op
-{
-    UNARY_OP_PLUS,
-    UNARY_OP_MINUS,
-    UNARY_OP_LOGICNOT,
-    UNARY_OP_BITNOT,
-};
-
-enum parse_assign_op
-{
-    ASSIGN_OP_ASSIGN,
-    ASSIGN_OP_ADD,
-    ASSIGN_OP_SUB,
-    ASSIGN_OP_MUL,
-    ASSIGN_OP_DIV,
-    ASSIGN_OP_MOD,
-    ASSIGN_OP_LSHIFT,
-    ASSIGN_OP_RSHIFT,
-    ASSIGN_OP_AND,
-    ASSIGN_OP_OR,
-    ASSIGN_OP_XOR,
-};
-
 struct hlsl_parse_ctx
 {
     const char **source_files;
diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
index c97ce05..5c3160f 100644
--- a/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d-shader/hlsl.y
@@ -19,10 +19,87 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
-%{
+
+%code requires
+{
+
 #include "hlsl.h"
 #include <stdio.h>
 
+struct parse_parameter
+{
+    struct hlsl_type *type;
+    const char *name;
+    const char *semantic;
+    const struct hlsl_reg_reservation *reg_reservation;
+    unsigned int modifiers;
+};
+
+struct parse_colon_attribute
+{
+    const char *semantic;
+    struct hlsl_reg_reservation *reg_reservation;
+};
+
+struct parse_initializer
+{
+    struct hlsl_ir_node **args;
+    unsigned int args_count;
+    struct list *instrs;
+};
+
+struct parse_variable_def
+{
+    struct list entry;
+    struct source_location loc;
+
+    char *name;
+    uint32_t array_size;
+    const char *semantic;
+    struct hlsl_reg_reservation *reg_reservation;
+    struct parse_initializer initializer;
+};
+
+struct parse_function
+{
+    char *name;
+    struct hlsl_ir_function_decl *decl;
+};
+
+struct parse_if_body
+{
+    struct list *then_instrs;
+    struct list *else_instrs;
+};
+
+enum parse_unary_op
+{
+    UNARY_OP_PLUS,
+    UNARY_OP_MINUS,
+    UNARY_OP_LOGICNOT,
+    UNARY_OP_BITNOT,
+};
+
+enum parse_assign_op
+{
+    ASSIGN_OP_ASSIGN,
+    ASSIGN_OP_ADD,
+    ASSIGN_OP_SUB,
+    ASSIGN_OP_MUL,
+    ASSIGN_OP_DIV,
+    ASSIGN_OP_MOD,
+    ASSIGN_OP_LSHIFT,
+    ASSIGN_OP_RSHIFT,
+    ASSIGN_OP_AND,
+    ASSIGN_OP_OR,
+    ASSIGN_OP_XOR,
+};
+
+}
+
+%code
+{
+
 int hlsl_lex(void);
 
 struct hlsl_parse_ctx hlsl_ctx;
@@ -1504,7 +1581,7 @@ static struct list *declare_vars(struct hlsl_type *basic_type, DWORD modifiers,
     return statements_list;
 }
 
-%}
+}
 
 %locations
 %define parse.error verbose




More information about the wine-cvs mailing list