diff options
author | Chris Forbes <[email protected]> | 2014-04-27 16:03:54 +1200 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2014-06-04 18:56:05 +1200 |
commit | 5ecffe5a3a41cac5fe28d8136095a0c2acf385a8 (patch) | |
tree | 0c63558b0000aae323abfbaff2b693bd1e3e228d /src/glsl/glsl_parser.yy | |
parent | 4b756b20c446bbaf0911d1b66c5a405ab3b133ef (diff) |
glsl: Add support for `precise` redeclarations
This works like glsl-1.20+'s invariant redeclarations, but with fewer
restrictions, since `precise` is allowed on pretty much anything.
Signed-off-by: Chris Forbes <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/glsl/glsl_parser.yy')
-rw-r--r-- | src/glsl/glsl_parser.yy | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy index 83cbb902b5d..ba6bfa1e1fa 100644 --- a/src/glsl/glsl_parser.yy +++ b/src/glsl/glsl_parser.yy @@ -1083,6 +1083,18 @@ single_declaration: $$->declarations.push_tail(&decl->link); } + | PRECISE variable_identifier + { + void *ctx = state; + ast_declaration *decl = new(ctx) ast_declaration($2, NULL, NULL); + decl->set_location(@2); + + $$ = new(ctx) ast_declarator_list(NULL); + $$->set_location_range(@1, @2); + $$->precise = true; + + $$->declarations.push_tail(&decl->link); + } ; fully_specified_type: |