glsl: Change is_precision_statement to default_precision != none. 77/7577/1
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 15 Jul 2013 22:39:35 +0000 (15:39 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 18 Jul 2013 23:57:23 +0000 (16:57 -0700)
commit308d4c71466af7ad5cbb99f8b4fddd743f2a2b25
tree797ee94145e9492a4507ca550160f0d6a5702762
parent7855482138480d88e7ca167d2acca9b93fe011b9
glsl: Change is_precision_statement to default_precision != none.

Currently, we store precision in ast_type_specifier, rather than
ast_type_qualifier.  This works because precision is the last qualifier,
and immediately adjacent to the type.

Default precision statements (such as "precision highp float") are
represented as ast_type_specifier objects, with a boolean to indicate
that it's a default precision statement rather than an ordinary type.

ast_type_specifier::precision will be moving to ast_type_qualifier soon,
in order to support arbitrary qualifier ordering.  However, we still
need to store a "this is a precision statement" flag /and/ the default
precision in ast_type_specifier.

This patch changes the boolean into a new field, default_precision.
If default_precision != ast_precision_none, it's a precision statement
with the specified precision.  Otherwise, it's an ordinary type.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/glsl/ast.h
src/glsl/ast_to_hir.cpp
src/glsl/glsl_parser.yy