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