[PATCH vkd3d 1/5] vkd3d-shader: Move parse_* structure definitions to hlsl.y.

Zebediah Figura zfigura at codeweavers.com
Thu Feb 4 16:33:49 CST 2021


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 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 daa2db23..a3c16c51 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 c97ce059..5c3160f4 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
-- 
2.30.0




More information about the wine-devel mailing list