[Mesa-dev] [PATCH 3/6] glsl: Create AST structs corresponding to new productions in grammar

Ian Romanick idr at freedesktop.org
Mon Jun 20 15:31:49 PDT 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 06/17/2011 05:43 PM, Dan McCabe wrote:
> Previously we added productions for:
> 	switch_body
> 	case_label_list
> 	case_statement
> 	case_statement_list
> Now add AST structs corresponding to those productions.
> ---
>  src/glsl/ast.h |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 49 insertions(+), 0 deletions(-)
> 
> diff --git a/src/glsl/ast.h b/src/glsl/ast.h
> index 39a59d4..b0222a8 100644
> --- a/src/glsl/ast.h
> +++ b/src/glsl/ast.h
> @@ -641,6 +641,55 @@ 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);
> +
> +   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;
> +   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);
> +
> +   exec_list cases;

What types are in this list?  If this is a list of ast_case_statements,
there should be a comment to that effect.  We've been really sloppy
about that before, but we should change that. :)

> +};
> +
> +
> +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,
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAk3/ylUACgkQX1gOwKyEAw9UzwCeNhX7SPdYSS5dQYhJNrbsH/Yg
9lAAn2dmUxijIURida5CbJpHUnJMtyZz
=okU7
-----END PGP SIGNATURE-----


More information about the mesa-dev mailing list