Mesa (master): glsl: Create AST structs corresponding to new productions in grammar

Dan McCabe danm at kemper.freedesktop.org
Tue Nov 8 00:46:28 UTC 2011


Module: Mesa
Branch: master
Commit: a0afcc67196baa588ec0ac246be6c4996a328f0b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a0afcc67196baa588ec0ac246be6c4996a328f0b

Author: Dan McCabe <zen3d.linux at gmail.com>
Date:   Mon Nov  7 15:09:40 2011 -0800

glsl: Create AST structs corresponding to new productions in grammar

Previously we added productions for:
	switch_body
	case_label_list
	case_statement
	case_statement_list
Now add AST structs corresponding to those productions.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/glsl/ast.h |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ast.h b/src/glsl/ast.h
index 208ffc4..d899bc6 100644
--- a/src/glsl/ast.h
+++ b/src/glsl/ast.h
@@ -642,6 +642,65 @@ public:
 };
 
 
+class ast_case_label_list : public ast_node {
+public:
+   ast_case_label_list(void);
+   virtual void print(void) const;
+
+   virtual ir_rvalue *hir(exec_list *instructions,
+			  struct _mesa_glsl_parse_state *state);
+
+   /**
+    * A list of case labels.
+    */
+   exec_list labels;
+};
+
+
+class ast_case_statement : public ast_node {
+public:
+   ast_case_statement(ast_case_label_list *labels);
+   virtual void print(void) const;
+
+   virtual ir_rvalue *hir(exec_list *instructions,
+			  struct _mesa_glsl_parse_state *state);
+
+   ast_case_label_list *labels;
+
+   /**
+    * A list of statements.
+    */
+   exec_list stmts;
+};
+
+
+class ast_case_statement_list : public ast_node {
+public:
+   ast_case_statement_list(void);
+   virtual void print(void) const;
+
+   virtual ir_rvalue *hir(exec_list *instructions,
+			  struct _mesa_glsl_parse_state *state);
+
+   /**
+    * A list of cases.
+    */
+   exec_list cases;
+};
+
+
+class ast_switch_body : public ast_node {
+public:
+   ast_switch_body(ast_case_statement_list *stmts);
+   virtual void print(void) const;
+
+   virtual ir_rvalue *hir(exec_list *instructions,
+			  struct _mesa_glsl_parse_state *state);
+
+   ast_case_statement_list *stmts;
+};
+
+
 class ast_selection_statement : public ast_node {
 public:
    ast_selection_statement(ast_expression *condition,




More information about the mesa-commit mailing list