Merge commit 'origin/master' into gallium-0.2
[mesa.git] / src / mesa / shader / slang / library / slang_shader_syn.h
index 6ee8145ab2363eefdf1b209d293fabe8c5112b81..e1705dfe19366b43e151260bdb050b5de61799e2 100644 (file)
@@ -1,13 +1,24 @@
+
+/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED FROM THE .syn FILE */
+
 ".syntax translation_unit;\n"
-".emtcode REVISION 3\n"
+".emtcode REVISION 5\n"
 ".emtcode EXTERNAL_NULL 0\n"
 ".emtcode EXTERNAL_FUNCTION_DEFINITION 1\n"
 ".emtcode EXTERNAL_DECLARATION 2\n"
+".emtcode DEFAULT_PRECISION 3\n"
+".emtcode INVARIANT_STMT 4\n"
+".emtcode PRECISION_DEFAULT 0\n"
+".emtcode PRECISION_LOW 1\n"
+".emtcode PRECISION_MEDIUM 2\n"
+".emtcode PRECISION_HIGH 3\n"
 ".emtcode DECLARATION_FUNCTION_PROTOTYPE 1\n"
 ".emtcode DECLARATION_INIT_DECLARATOR_LIST 2\n"
 ".emtcode FUNCTION_ORDINARY 0\n"
 ".emtcode FUNCTION_CONSTRUCTOR 1\n"
 ".emtcode FUNCTION_OPERATOR 2\n"
+".emtcode FUNCTION_CALL_NONARRAY 0\n"
+".emtcode FUNCTION_CALL_ARRAY 1\n"
 ".emtcode OPERATOR_ADDASSIGN 1\n"
 ".emtcode OPERATOR_SUBASSIGN 2\n"
 ".emtcode OPERATOR_MULASSIGN 3\n"
 ".emtcode TYPE_QUALIFIER_UNIFORM 4\n"
 ".emtcode TYPE_QUALIFIER_FIXEDOUTPUT 5\n"
 ".emtcode TYPE_QUALIFIER_FIXEDINPUT 6\n"
+".emtcode TYPE_VARIANT 90\n"
+".emtcode TYPE_INVARIANT 91\n"
+".emtcode TYPE_CENTER 95\n"
+".emtcode TYPE_CENTROID 96\n"
 ".emtcode TYPE_SPECIFIER_VOID 0\n"
 ".emtcode TYPE_SPECIFIER_BOOL 1\n"
 ".emtcode TYPE_SPECIFIER_BVEC2 2\n"
 ".emtcode TYPE_SPECIFIER_SAMPLERCUBE 19\n"
 ".emtcode TYPE_SPECIFIER_SAMPLER1DSHADOW 20\n"
 ".emtcode TYPE_SPECIFIER_SAMPLER2DSHADOW 21\n"
-".emtcode TYPE_SPECIFIER_STRUCT 22\n"
-".emtcode TYPE_SPECIFIER_TYPENAME 23\n"
+".emtcode TYPE_SPECIFIER_SAMPLER2DRECT 22\n"
+".emtcode TYPE_SPECIFIER_SAMPLER2DRECTSHADOW 23\n"
+".emtcode TYPE_SPECIFIER_STRUCT 24\n"
+".emtcode TYPE_SPECIFIER_TYPENAME 25\n"
+".emtcode TYPE_SPECIFIER_MAT23 26\n"
+".emtcode TYPE_SPECIFIER_MAT32 27\n"
+".emtcode TYPE_SPECIFIER_MAT24 28\n"
+".emtcode TYPE_SPECIFIER_MAT42 29\n"
+".emtcode TYPE_SPECIFIER_MAT34 30\n"
+".emtcode TYPE_SPECIFIER_MAT43 31\n"
+".emtcode TYPE_SPECIFIER_NONARRAY 0\n"
+".emtcode TYPE_SPECIFIER_ARRAY 1\n"
 ".emtcode FIELD_NONE 0\n"
 ".emtcode FIELD_NEXT 1\n"
 ".emtcode FIELD_ARRAY 2\n"
 ".emtcode OP_FIELD 59\n"
 ".emtcode OP_POSTINCREMENT 60\n"
 ".emtcode OP_POSTDECREMENT 61\n"
+".emtcode OP_PRECISION 62\n"
+".emtcode OP_METHOD 63\n"
 ".emtcode PARAM_QUALIFIER_IN 0\n"
 ".emtcode PARAM_QUALIFIER_OUT 1\n"
 ".emtcode PARAM_QUALIFIER_INOUT 2\n"
 ".emtcode PARAMETER_NEXT 1\n"
 ".emtcode PARAMETER_ARRAY_NOT_PRESENT 0\n"
 ".emtcode PARAMETER_ARRAY_PRESENT 1\n"
-".errtext INVALID_EXTERNAL_DECLARATION \"error 2001: invalid external declaration\"\n"
-".errtext INVALID_OPERATOR_OVERRIDE \"error 2002: invalid operator override\"\n"
-".errtext LBRACE_EXPECTED \"error 2003: '{' expected but '$err_token$' found\"\n"
-".errtext LPAREN_EXPECTED \"error 2004: '(' expected but '$err_token$' found\"\n"
-".errtext RPAREN_EXPECTED \"error 2005: ')' expected but '$err_token$' found\"\n"
+".errtext INVALID_EXTERNAL_DECLARATION \"2001: Syntax error.\"\n"
+".errtext INVALID_OPERATOR_OVERRIDE \"2002: Invalid operator override.\"\n"
+".errtext LBRACE_EXPECTED \"2003: '{' expected but '$err_token$' found.\"\n"
+".errtext LPAREN_EXPECTED \"2004: '(' expected but '$err_token$' found.\"\n"
+".errtext RPAREN_EXPECTED \"2005: ')' expected but '$err_token$' found.\"\n"
+".errtext INVALID_PRECISION \"2006: Invalid precision specifier '$err_token$'.\"\n"
+".errtext INVALID_PRECISION_TYPE \"2007: Invalid precision type '$err_token$'.\"\n"
 ".regbyte parsing_builtin 0\n"
 ".regbyte shader_type 0\n"
 "variable_identifier\n"
 "integer_expression\n"
 " expression;\n"
 "function_call\n"
+" function_call_or_method;\n"
+"function_call_or_method\n"
+" regular_function_call .or method_call;\n"
+"method_call\n"
+" identifier .emit OP_METHOD .and dot .and function_call_generic .and .true .emit OP_END;\n"
+"regular_function_call\n"
 " function_call_generic .emit OP_CALL .and .true .emit OP_END;\n"
 "function_call_generic\n"
 " function_call_generic_1 .or function_call_generic_2;\n"
 "function_call_header\n"
 " function_identifier .and lparen;\n"
 "function_identifier\n"
-" identifier;\n"
+" identifier .and function_identifier_opt_array;\n"
+"function_identifier_opt_array\n"
+" function_identifier_array .emit FUNCTION_CALL_ARRAY .or\n"
+" .true .emit FUNCTION_CALL_NONARRAY;\n"
+"function_identifier_array\n"
+" lbracket .and constant_expression .and rbracket;\n"
 "unary_expression\n"
 " postfix_expression .or unary_expression_1 .or unary_expression_2 .or unary_expression_3 .or\n"
 " unary_expression_4 .or unary_expression_5;\n"
 "parameter_declaration_3\n"
 " parameter_qualifier .emit TYPE_QUALIFIER_NONE .and parameter_declaration_4;\n"
 "parameter_declaration_4\n"
+" parameter_declaration_optprec .and parameter_declaration_rest;\n"
+"parameter_declaration_optprec\n"
+" parameter_declaration_prec .or .true .emit PRECISION_DEFAULT;\n"
+"parameter_declaration_prec\n"
+" precision .and space;\n"
+"parameter_declaration_rest\n"
 " parameter_declarator .or parameter_type_specifier;\n"
 "parameter_qualifier\n"
 " parameter_qualifier_1 .or .true .emit PARAM_QUALIFIER_IN;\n"
 "single_declaration_6\n"
 " constant_expression .emit VARIABLE_ARRAY_EXPLICIT .or .true .emit VARIABLE_ARRAY_UNKNOWN;\n"
 "fully_specified_type_space\n"
-" fully_specified_type_1 .and type_specifier_space;\n"
+" fully_specified_type_optinvariant .and fully_specified_type_optcentroid .and fully_specified_type_optqual .and fully_specified_type_optprec .and type_specifier_space;\n"
 "fully_specified_type_nospace\n"
-" fully_specified_type_1 .and type_specifier_nospace;\n"
-"fully_specified_type_1\n"
-" fully_specified_type_2 .or .true .emit TYPE_QUALIFIER_NONE;\n"
-"fully_specified_type_2\n"
+" fully_specified_type_optinvariant .and fully_specified_type_optcentroid .and fully_specified_type_optqual .and fully_specified_type_optprec .and type_specifier_nospace;\n"
+"fully_specified_type_optinvariant\n"
+" fully_specified_type_invariant .or .true .emit TYPE_VARIANT;\n"
+"fully_specified_type_invariant\n"
+" invariant_qualifier .and space;\n"
+"fully_specified_type_optcentroid\n"
+" fully_specified_type_centroid .or .true .emit TYPE_CENTER;\n"
+"fully_specified_type_centroid\n"
+" centroid_qualifier .and space;\n"
+"fully_specified_type_optqual\n"
+" fully_specified_type_qual .or .true .emit TYPE_QUALIFIER_NONE;\n"
+"fully_specified_type_qual\n"
 " type_qualifier .and space;\n"
+"fully_specified_type_optprec\n"
+" fully_specified_type_prec .or .true .emit PRECISION_DEFAULT;\n"
+"fully_specified_type_prec\n"
+" precision .and space;\n"
+"invariant_qualifier\n"
+" \"invariant\" .emit TYPE_INVARIANT;\n"
+"centroid_qualifier\n"
+" \"centroid\" .emit TYPE_CENTROID;\n"
 "type_qualifier\n"
 " \"const\" .emit TYPE_QUALIFIER_CONST .or\n"
 " .if (shader_type == 2) \"attribute\" .emit TYPE_QUALIFIER_ATTRIBUTE .or\n"
 " \"varying\" .emit TYPE_QUALIFIER_VARYING .or\n"
 " \"uniform\" .emit TYPE_QUALIFIER_UNIFORM .or\n"
-"      .if (parsing_builtin != 0) \"__fixed_output\" .emit TYPE_QUALIFIER_FIXEDOUTPUT .or\n"
-"      .if (parsing_builtin != 0) \"__fixed_input\" .emit TYPE_QUALIFIER_FIXEDINPUT;\n"
-"type_specifier_space\n"
+" .if (parsing_builtin != 0) \"__fixed_output\" .emit TYPE_QUALIFIER_FIXEDOUTPUT .or\n"
+" .if (parsing_builtin != 0) \"__fixed_input\" .emit TYPE_QUALIFIER_FIXEDINPUT;\n"
+"type_specifier_nonarray_space\n"
 " \"void\" .emit TYPE_SPECIFIER_VOID .or\n"
 " \"float\" .emit TYPE_SPECIFIER_FLOAT .or\n"
 " \"int\" .emit TYPE_SPECIFIER_INT .or\n"
 " \"mat2\" .emit TYPE_SPECIFIER_MAT2 .or\n"
 " \"mat3\" .emit TYPE_SPECIFIER_MAT3 .or\n"
 " \"mat4\" .emit TYPE_SPECIFIER_MAT4 .or\n"
+" \"mat2x3\" .emit TYPE_SPECIFIER_MAT23 .or\n"
+" \"mat3x2\" .emit TYPE_SPECIFIER_MAT32 .or\n"
+" \"mat2x4\" .emit TYPE_SPECIFIER_MAT24 .or\n"
+" \"mat4x2\" .emit TYPE_SPECIFIER_MAT42 .or\n"
+" \"mat3x4\" .emit TYPE_SPECIFIER_MAT34 .or\n"
+" \"mat4x3\" .emit TYPE_SPECIFIER_MAT43 .or\n"
 " \"sampler1D\" .emit TYPE_SPECIFIER_SAMPLER1D .or\n"
 " \"sampler2D\" .emit TYPE_SPECIFIER_SAMPLER2D .or\n"
 " \"sampler3D\" .emit TYPE_SPECIFIER_SAMPLER3D .or\n"
 " \"samplerCube\" .emit TYPE_SPECIFIER_SAMPLERCUBE .or\n"
 " \"sampler1DShadow\" .emit TYPE_SPECIFIER_SAMPLER1DSHADOW .or\n"
 " \"sampler2DShadow\" .emit TYPE_SPECIFIER_SAMPLER2DSHADOW .or\n"
+" \"sampler2DRect\" .emit TYPE_SPECIFIER_SAMPLER2DRECT .or\n"
+" \"sampler2DRectShadow\" .emit TYPE_SPECIFIER_SAMPLER2DRECTSHADOW .or\n"
 " type_name .emit TYPE_SPECIFIER_TYPENAME;\n"
-"type_specifier_nospace\n"
+"type_specifier_nonarray_nospace\n"
 " struct_specifier .emit TYPE_SPECIFIER_STRUCT;\n"
+"type_specifier_nonarray\n"
+" type_specifier_nonarray_nospace .or type_specifier_nonarray_space;\n"
+"type_specifier_space\n"
+" type_specifier_nonarray_space .and .true .emit TYPE_SPECIFIER_NONARRAY;\n"
+"type_specifier_nospace\n"
+" type_specifier_nospace_array .or type_specifier_nospace_1;\n"
+"type_specifier_nospace_1\n"
+" type_specifier_nonarray_nospace .and .true .emit TYPE_SPECIFIER_NONARRAY;\n"
+"type_specifier_nospace_array\n"
+" type_specifier_nonarray .and lbracket .emit TYPE_SPECIFIER_ARRAY .and constant_expression .and rbracket;\n"
 "struct_specifier\n"
 " \"struct\" .and struct_specifier_1 .and optional_space .and lbrace .error LBRACE_EXPECTED .and\n"
 " struct_declaration_list .and rbrace .emit FIELD_NONE;\n"
 " .if (parsing_builtin != 0) __asm_statement .emit OP_ASM .or\n"
 " selection_statement .or\n"
 " iteration_statement .or\n"
+" precision_stmt .emit OP_PRECISION .or\n"
 " jump_statement .or\n"
 " expression_statement .emit OP_EXPRESSION .or\n"
 " declaration_statement .emit OP_DECLARE;\n"
 " iteration_statement_1 .or iteration_statement_2 .or iteration_statement_3;\n"
 "iteration_statement_1\n"
 " \"while\" .emit OP_WHILE .and lparen .error LPAREN_EXPECTED .and condition .and\n"
-" rparen .error RPAREN_EXPECTED .and statement_no_new_scope;\n"
+" rparen .error RPAREN_EXPECTED .and statement;\n"
 "iteration_statement_2\n"
 " \"do\" .emit OP_DO .and statement_space .and \"while\" .and lparen .error LPAREN_EXPECTED .and\n"
 " expression .and rparen .error RPAREN_EXPECTED .emit OP_END .and semicolon;\n"
 "asm_arguments_1\n"
 " comma .and asm_argument .and .true .emit OP_END;\n"
 "asm_argument\n"
-" variable_identifier .or floatconstant;\n"
+" var_with_field .or\n"
+" variable_identifier .or\n"
+" floatconstant;\n"
+"var_with_field\n"
+" variable_identifier .and dot .and field_selection .emit OP_FIELD;\n"
 "translation_unit\n"
 " optional_space .emit REVISION .and external_declaration .error INVALID_EXTERNAL_DECLARATION .and\n"
 " .loop external_declaration .and optional_space .and\n"
 " '\\0' .error INVALID_EXTERNAL_DECLARATION .emit EXTERNAL_NULL;\n"
 "external_declaration\n"
+" precision_stmt .emit DEFAULT_PRECISION .or\n"
 " function_definition .emit EXTERNAL_FUNCTION_DEFINITION .or\n"
+" invariant_stmt .emit INVARIANT_STMT .or\n"
 " declaration .emit EXTERNAL_DECLARATION;\n"
+"precision_stmt\n"
+" \"precision\" .and space .and precision .error INVALID_PRECISION .and space .and prectype .error INVALID_PRECISION_TYPE .and semicolon;\n"
+"precision\n"
+" \"lowp\" .emit PRECISION_LOW .or\n"
+" \"mediump\" .emit PRECISION_MEDIUM .or\n"
+" \"highp\" .emit PRECISION_HIGH;\n"
+"prectype\n"
+" \"int\" .emit TYPE_SPECIFIER_INT .or\n"
+" \"float\" .emit TYPE_SPECIFIER_FLOAT .or\n"
+" \"sampler1D\" .emit TYPE_SPECIFIER_SAMPLER1D .or\n"
+" \"sampler2D\" .emit TYPE_SPECIFIER_SAMPLER2D .or\n"
+" \"sampler3D\" .emit TYPE_SPECIFIER_SAMPLER3D .or\n"
+" \"samplerCube\" .emit TYPE_SPECIFIER_SAMPLERCUBE .or\n"
+" \"sampler1DShadow\" .emit TYPE_SPECIFIER_SAMPLER1DSHADOW .or\n"
+" \"sampler2DShadow\" .emit TYPE_SPECIFIER_SAMPLER2DSHADOW .or\n"
+" \"sampler2DRect\" .emit TYPE_SPECIFIER_SAMPLER2DRECT .or\n"
+" \"sampler2DRectShadow\" .emit TYPE_SPECIFIER_SAMPLER2DRECTSHADOW;\n"
+"invariant_stmt\n"
+" \"invariant\" .and space .and identifier .and semicolon;\n"
 "function_definition\n"
 " function_prototype .and compound_statement_no_new_scope;\n"
 "digit_oct\n"
 "identifier\n"
 " id_character_first .emit * .and .loop id_character_next .emit * .and .true .emit '\\0';\n"
 "float\n"
-" float_1 .or float_2;\n"
+" float_1 .or float_2 .or float_3;\n"
 "float_1\n"
-" float_fractional_constant .and float_optional_exponent_part;\n"
+" float_fractional_constant .and float_optional_exponent_part .and optional_f_suffix;\n"
 "float_2\n"
-" float_digit_sequence .and .true .emit '\\0' .and float_exponent_part;\n"
+" float_digit_sequence .and .true .emit '\\0' .and float_exponent_part .and optional_f_suffix;\n"
+"float_3\n"
+" float_digit_sequence .and .true .emit '\\0' .and 'f' .emit '\\0';\n"
 "float_fractional_constant\n"
 " float_fractional_constant_1 .or float_fractional_constant_2 .or float_fractional_constant_3;\n"
 "float_fractional_constant_1\n"
 " float_sign .or .true;\n"
 "float_sign\n"
 " '+' .or '-' .emit '-';\n"
+"optional_f_suffix\n"
+" 'f' .or .true;\n"
 "integer\n"
 " integer_hex .or integer_oct .or integer_dec;\n"
 "integer_hex\n"
 " '\\'' .or '<' .or ',' .or '>' .or '.' .or '/' .or '?' .or err_identifier;\n"
 "err_identifier\n"
 " id_character_first .and .loop id_character_next;\n"
-""
\ No newline at end of file
+""