diff options
Diffstat (limited to 'src/glsl/glcpp')
| -rw-r--r-- | src/glsl/glcpp/glcpp-lex.c | 8 | ||||
| -rw-r--r-- | src/glsl/glcpp/glcpp-parse.c | 408 | ||||
| -rw-r--r-- | src/glsl/glcpp/glcpp-parse.h | 7 | ||||
| -rw-r--r-- | src/glsl/glcpp/glcpp-parse.y | 8 | 
4 files changed, 225 insertions, 206 deletions
| diff --git a/src/glsl/glcpp/glcpp-lex.c b/src/glsl/glcpp/glcpp-lex.c index af8f07419a..156af3008c 100644 --- a/src/glsl/glcpp/glcpp-lex.c +++ b/src/glsl/glcpp/glcpp-lex.c @@ -795,10 +795,6 @@ int glcpp_get_lineno (yyscan_t yyscanner );  void glcpp_set_lineno (int line_number ,yyscan_t yyscanner ); -int glcpp_get_column  (yyscan_t yyscanner ); - -void glcpp_set_column (int column_no ,yyscan_t yyscanner ); -  YYSTYPE * glcpp_get_lval (yyscan_t yyscanner );  void glcpp_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); @@ -958,7 +954,7 @@ YY_DECL  	/* Single-line comments */ -#line 962 "glcpp/glcpp-lex.c" +#line 958 "glcpp/glcpp-lex.c"      yylval = yylval_param; @@ -1475,7 +1471,7 @@ YY_RULE_SETUP  #line 319 "glcpp/glcpp-lex.l"  ECHO;  	YY_BREAK -#line 1479 "glcpp/glcpp-lex.c" +#line 1475 "glcpp/glcpp-lex.c"  			case YY_STATE_EOF(DONE):  			case YY_STATE_EOF(COMMENT):  			case YY_STATE_EOF(UNREACHABLE): diff --git a/src/glsl/glcpp/glcpp-parse.c b/src/glsl/glcpp/glcpp-parse.c index 30b6fd6ef9..0cd1fe5d59 100644 --- a/src/glsl/glcpp/glcpp-parse.c +++ b/src/glsl/glcpp/glcpp-parse.c @@ -1,10 +1,9 @@ - -/* A Bison parser, made by GNU Bison 2.4.1.  */ +/* A Bison parser, made by GNU Bison 2.4.3.  */  /* Skeleton implementation for Bison's Yacc-like parsers in C -      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -   Free Software Foundation, Inc. +      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +   2009, 2010 Free Software Foundation, Inc.     This program is free software: you can redistribute it and/or modify     it under the terms of the GNU General Public License as published by @@ -46,7 +45,7 @@  #define YYBISON 1  /* Bison version.  */ -#define YYBISON_VERSION "2.4.1" +#define YYBISON_VERSION "2.4.3"  /* Skeleton name.  */  #define YYSKELETON_NAME "yacc.c" @@ -220,7 +219,7 @@ add_builtin_define(glcpp_parser_t *parser, const char *name, int value);  /* Line 189 of yacc.c  */ -#line 224 "glcpp/glcpp-parse.c" +#line 223 "glcpp/glcpp-parse.c"  /* Enabling traces.  */  #ifndef YYDEBUG @@ -308,7 +307,7 @@ typedef struct YYLTYPE  /* Line 264 of yacc.c  */ -#line 312 "glcpp/glcpp-parse.c" +#line 311 "glcpp/glcpp-parse.c"  #ifdef short  # undef short @@ -358,7 +357,7 @@ typedef short int yytype_int16;  #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)  #ifndef YY_ -# if YYENABLE_NLS +# if defined YYENABLE_NLS && YYENABLE_NLS  #  if ENABLE_NLS  #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */  #   define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -635,15 +634,15 @@ static const yytype_uint16 yyrline[] =  {         0,   188,   188,   190,   194,   197,   202,   203,   207,   210,       216,   219,   222,   225,   233,   252,   262,   267,   272,   291, -     306,   309,   312,   325,   329,   338,   343,   344,   347,   350, -     353,   356,   359,   362,   365,   368,   371,   374,   377,   380, -     383,   386,   389,   392,   395,   398,   401,   404,   407,   410, -     416,   421,   429,   430,   434,   440,   441,   444,   446,   453, -     457,   461,   466,   472,   480,   486,   494,   498,   502,   506, -     510,   517,   518,   519,   520,   521,   522,   523,   524,   525, -     526,   527,   528,   529,   530,   531,   532,   533,   534,   535, -     536,   537,   538,   539,   540,   541,   542,   543,   544,   545, -     546,   547 +     306,   309,   312,   333,   337,   346,   351,   352,   355,   358, +     361,   364,   367,   370,   373,   376,   379,   382,   385,   388, +     391,   394,   397,   400,   403,   406,   409,   412,   415,   418, +     424,   429,   437,   438,   442,   448,   449,   452,   454,   461, +     465,   469,   474,   480,   488,   494,   502,   506,   510,   514, +     518,   525,   526,   527,   528,   529,   530,   531,   532,   533, +     534,   535,   536,   537,   538,   539,   540,   541,   542,   543, +     544,   545,   546,   547,   548,   549,   550,   551,   552,   553, +     554,   555  };  #endif @@ -946,9 +945,18 @@ static const yytype_uint8 yystos[] =  /* Like YYERROR except do call yyerror.  This remains here temporarily     to ease the transition to the new meaning of YYERROR, for GCC. -   Once GCC version 2 has supplanted version 1, this can go.  */ +   Once GCC version 2 has supplanted version 1, this can go.  However, +   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated +   in Bison 2.4.2's NEWS entry, where a plan to phase it out is +   discussed.  */  #define YYFAIL		goto yyerrlab +#if defined YYFAIL +  /* This is here to suppress warnings from the GCC cpp's +     -Wunused-macros.  Normally we don't worry about that warning, but +     some users do, and we want to make it easy for users to remove +     YYFAIL uses, which will produce warnings from Bison 2.5.  */ +#endif  #define YYRECOVERING()  (!!yyerrstatus) @@ -1005,7 +1013,7 @@ while (YYID (0))     we won't break user code: when these are the locations we know.  */  #ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL  #  define YY_LOCATION_PRINT(File, Loc)			\       fprintf (File, "%d.%d-%d.%d",			\  	      (Loc).first_line, (Loc).first_column,	\ @@ -1547,7 +1555,7 @@ YYLTYPE yylloc;      YYLTYPE *yylsp;      /* The locations where the error started and ended.  */ -    YYLTYPE yyerror_range[2]; +    YYLTYPE yyerror_range[3];      YYSIZE_T yystacksize; @@ -1594,7 +1602,7 @@ YYLTYPE yylloc;    yyvsp = yyvs;    yylsp = yyls; -#if YYLTYPE_IS_TRIVIAL +#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL    /* Initialize the default location before parsing starts.  */    yylloc.first_line   = yylloc.last_line   = 1;    yylloc.first_column = yylloc.last_column = 1; @@ -1602,7 +1610,7 @@ YYLTYPE yylloc;  /* User initialization code.  */ -/* Line 1242 of yacc.c  */ +/* Line 1251 of yacc.c  */  #line 155 "glcpp/glcpp-parse.y"  {  	yylloc.first_line = 1; @@ -1612,8 +1620,8 @@ YYLTYPE yylloc;  	yylloc.source = 0;  } -/* Line 1242 of yacc.c  */ -#line 1617 "glcpp/glcpp-parse.c" +/* Line 1251 of yacc.c  */ +#line 1625 "glcpp/glcpp-parse.c"    yylsp[0] = yylloc;    goto yysetstate; @@ -1800,7 +1808,7 @@ yyreduce:      {          case 4: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 194 "glcpp/glcpp-parse.y"      {  		glcpp_print(parser->output, "\n"); @@ -1809,7 +1817,7 @@ yyreduce:    case 5: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 197 "glcpp/glcpp-parse.y"      {  		_glcpp_parser_print_expanded_token_list (parser, (yyvsp[(1) - (1)].token_list)); @@ -1820,7 +1828,7 @@ yyreduce:    case 8: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 207 "glcpp/glcpp-parse.y"      {  		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (3)]), (yyvsp[(2) - (3)].ival)); @@ -1829,7 +1837,7 @@ yyreduce:    case 9: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 210 "glcpp/glcpp-parse.y"      {  		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (3)]), "elif", (yyvsp[(2) - (3)].ival)); @@ -1838,7 +1846,7 @@ yyreduce:    case 10: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 216 "glcpp/glcpp-parse.y"      {  		_define_object_macro (parser, & (yylsp[(2) - (4)]), (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].token_list)); @@ -1847,7 +1855,7 @@ yyreduce:    case 11: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 219 "glcpp/glcpp-parse.y"      {  		_define_function_macro (parser, & (yylsp[(2) - (6)]), (yyvsp[(2) - (6)].str), NULL, (yyvsp[(5) - (6)].token_list)); @@ -1856,7 +1864,7 @@ yyreduce:    case 12: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 222 "glcpp/glcpp-parse.y"      {  		_define_function_macro (parser, & (yylsp[(2) - (7)]), (yyvsp[(2) - (7)].str), (yyvsp[(4) - (7)].string_list), (yyvsp[(6) - (7)].token_list)); @@ -1865,7 +1873,7 @@ yyreduce:    case 13: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 225 "glcpp/glcpp-parse.y"      {  		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (3)].str)); @@ -1879,7 +1887,7 @@ yyreduce:    case 14: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 233 "glcpp/glcpp-parse.y"      {  		/* Be careful to only evaluate the 'if' expression if @@ -1904,7 +1912,7 @@ yyreduce:    case 15: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 252 "glcpp/glcpp-parse.y"      {  		/* #if without an expression is only an error if we @@ -1920,7 +1928,7 @@ yyreduce:    case 16: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 262 "glcpp/glcpp-parse.y"      {  		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str)); @@ -1931,7 +1939,7 @@ yyreduce:    case 17: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 267 "glcpp/glcpp-parse.y"      {  		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str)); @@ -1942,7 +1950,7 @@ yyreduce:    case 18: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 272 "glcpp/glcpp-parse.y"      {  		/* Be careful to only evaluate the 'elif' expression @@ -1967,7 +1975,7 @@ yyreduce:    case 19: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 291 "glcpp/glcpp-parse.y"      {  		/* #elif without an expression is an error unless we @@ -1988,7 +1996,7 @@ yyreduce:    case 20: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 306 "glcpp/glcpp-parse.y"      {  		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (2)]), "else", 1); @@ -1997,7 +2005,7 @@ yyreduce:    case 21: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 309 "glcpp/glcpp-parse.y"      {  		_glcpp_parser_skip_stack_pop (parser, & (yylsp[(1) - (2)])); @@ -2006,7 +2014,7 @@ yyreduce:    case 22: -/* Line 1455 of yacc.c  */ +/* Line 1464 of yacc.c  */  #line 312 "glcpp/glcpp-parse.y"      {  		macro_t *macro = hash_table_find (parser->defines, "__VERSION__"); @@ -2019,14 +2027,22 @@ yyreduce:  		if ((yyvsp[(2) - (3)].ival) == 100)  			add_builtin_define (parser, "GL_ES", 1); +		/* Currently, all ES2 implementations support highp in the +		 * fragment shader, so we always define this macro in ES2. +		 * If we ever get a driver that doesn't support highp, we'll +		 * need to add a flag to the gl_context and check that here. +		 */ +		if ((yyvsp[(2) - (3)].ival) >= 130 || (yyvsp[(2) - (3)].ival) == 100) +			add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1); +  		glcpp_printf(parser->output, "#version %" PRIiMAX, (yyvsp[(2) - (3)].ival));  	;}      break;    case 24: -/* Line 1455 of yacc.c  */ -#line 329 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 337 "glcpp/glcpp-parse.y"      {  		if (strlen ((yyvsp[(1) - (1)].str)) >= 3 && strncmp ((yyvsp[(1) - (1)].str), "0x", 2) == 0) {  			(yyval.ival) = strtoll ((yyvsp[(1) - (1)].str) + 2, NULL, 16); @@ -2040,8 +2056,8 @@ yyreduce:    case 25: -/* Line 1455 of yacc.c  */ -#line 338 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 346 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (1)].ival);  	;} @@ -2049,8 +2065,8 @@ yyreduce:    case 27: -/* Line 1455 of yacc.c  */ -#line 344 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 352 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) || (yyvsp[(3) - (3)].ival);  	;} @@ -2058,8 +2074,8 @@ yyreduce:    case 28: -/* Line 1455 of yacc.c  */ -#line 347 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 355 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) && (yyvsp[(3) - (3)].ival);  	;} @@ -2067,8 +2083,8 @@ yyreduce:    case 29: -/* Line 1455 of yacc.c  */ -#line 350 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 358 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival);  	;} @@ -2076,8 +2092,8 @@ yyreduce:    case 30: -/* Line 1455 of yacc.c  */ -#line 353 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 361 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) ^ (yyvsp[(3) - (3)].ival);  	;} @@ -2085,8 +2101,8 @@ yyreduce:    case 31: -/* Line 1455 of yacc.c  */ -#line 356 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 364 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) & (yyvsp[(3) - (3)].ival);  	;} @@ -2094,8 +2110,8 @@ yyreduce:    case 32: -/* Line 1455 of yacc.c  */ -#line 359 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 367 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) != (yyvsp[(3) - (3)].ival);  	;} @@ -2103,8 +2119,8 @@ yyreduce:    case 33: -/* Line 1455 of yacc.c  */ -#line 362 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 370 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) == (yyvsp[(3) - (3)].ival);  	;} @@ -2112,8 +2128,8 @@ yyreduce:    case 34: -/* Line 1455 of yacc.c  */ -#line 365 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 373 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) >= (yyvsp[(3) - (3)].ival);  	;} @@ -2121,8 +2137,8 @@ yyreduce:    case 35: -/* Line 1455 of yacc.c  */ -#line 368 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 376 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) <= (yyvsp[(3) - (3)].ival);  	;} @@ -2130,8 +2146,8 @@ yyreduce:    case 36: -/* Line 1455 of yacc.c  */ -#line 371 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 379 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) > (yyvsp[(3) - (3)].ival);  	;} @@ -2139,8 +2155,8 @@ yyreduce:    case 37: -/* Line 1455 of yacc.c  */ -#line 374 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 382 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) < (yyvsp[(3) - (3)].ival);  	;} @@ -2148,8 +2164,8 @@ yyreduce:    case 38: -/* Line 1455 of yacc.c  */ -#line 377 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 385 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) >> (yyvsp[(3) - (3)].ival);  	;} @@ -2157,8 +2173,8 @@ yyreduce:    case 39: -/* Line 1455 of yacc.c  */ -#line 380 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 388 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) << (yyvsp[(3) - (3)].ival);  	;} @@ -2166,8 +2182,8 @@ yyreduce:    case 40: -/* Line 1455 of yacc.c  */ -#line 383 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 391 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) - (yyvsp[(3) - (3)].ival);  	;} @@ -2175,8 +2191,8 @@ yyreduce:    case 41: -/* Line 1455 of yacc.c  */ -#line 386 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 394 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) + (yyvsp[(3) - (3)].ival);  	;} @@ -2184,8 +2200,8 @@ yyreduce:    case 42: -/* Line 1455 of yacc.c  */ -#line 389 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 397 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) % (yyvsp[(3) - (3)].ival);  	;} @@ -2193,8 +2209,8 @@ yyreduce:    case 43: -/* Line 1455 of yacc.c  */ -#line 392 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 400 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) / (yyvsp[(3) - (3)].ival);  	;} @@ -2202,8 +2218,8 @@ yyreduce:    case 44: -/* Line 1455 of yacc.c  */ -#line 395 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 403 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(1) - (3)].ival) * (yyvsp[(3) - (3)].ival);  	;} @@ -2211,8 +2227,8 @@ yyreduce:    case 45: -/* Line 1455 of yacc.c  */ -#line 398 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 406 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = ! (yyvsp[(2) - (2)].ival);  	;} @@ -2220,8 +2236,8 @@ yyreduce:    case 46: -/* Line 1455 of yacc.c  */ -#line 401 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 409 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = ~ (yyvsp[(2) - (2)].ival);  	;} @@ -2229,8 +2245,8 @@ yyreduce:    case 47: -/* Line 1455 of yacc.c  */ -#line 404 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 412 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = - (yyvsp[(2) - (2)].ival);  	;} @@ -2238,8 +2254,8 @@ yyreduce:    case 48: -/* Line 1455 of yacc.c  */ -#line 407 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 415 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = + (yyvsp[(2) - (2)].ival);  	;} @@ -2247,8 +2263,8 @@ yyreduce:    case 49: -/* Line 1455 of yacc.c  */ -#line 410 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 418 "glcpp/glcpp-parse.y"      {  		(yyval.ival) = (yyvsp[(2) - (3)].ival);  	;} @@ -2256,8 +2272,8 @@ yyreduce:    case 50: -/* Line 1455 of yacc.c  */ -#line 416 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 424 "glcpp/glcpp-parse.y"      {  		(yyval.string_list) = _string_list_create (parser);  		_string_list_append_item ((yyval.string_list), (yyvsp[(1) - (1)].str)); @@ -2267,8 +2283,8 @@ yyreduce:    case 51: -/* Line 1455 of yacc.c  */ -#line 421 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 429 "glcpp/glcpp-parse.y"      {  		(yyval.string_list) = (yyvsp[(1) - (3)].string_list);	  		_string_list_append_item ((yyval.string_list), (yyvsp[(3) - (3)].str)); @@ -2278,15 +2294,15 @@ yyreduce:    case 52: -/* Line 1455 of yacc.c  */ -#line 429 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 437 "glcpp/glcpp-parse.y"      { (yyval.token_list) = NULL; ;}      break;    case 54: -/* Line 1455 of yacc.c  */ -#line 434 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 442 "glcpp/glcpp-parse.y"      {  		yyerror (& (yylsp[(1) - (2)]), parser, "Invalid tokens after #");  	;} @@ -2294,15 +2310,15 @@ yyreduce:    case 55: -/* Line 1455 of yacc.c  */ -#line 440 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 448 "glcpp/glcpp-parse.y"      { (yyval.token_list) = NULL; ;}      break;    case 58: -/* Line 1455 of yacc.c  */ -#line 446 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 454 "glcpp/glcpp-parse.y"      {  		glcpp_warning(&(yylsp[(1) - (1)]), parser, "extra tokens at end of directive");  	;} @@ -2310,8 +2326,8 @@ yyreduce:    case 59: -/* Line 1455 of yacc.c  */ -#line 453 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 461 "glcpp/glcpp-parse.y"      {  		int v = hash_table_find (parser->defines, (yyvsp[(2) - (2)].str)) ? 1 : 0;  		(yyval.token) = _token_create_ival (parser, INTEGER, v); @@ -2320,8 +2336,8 @@ yyreduce:    case 60: -/* Line 1455 of yacc.c  */ -#line 457 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 465 "glcpp/glcpp-parse.y"      {  		int v = hash_table_find (parser->defines, (yyvsp[(3) - (4)].str)) ? 1 : 0;  		(yyval.token) = _token_create_ival (parser, INTEGER, v); @@ -2330,8 +2346,8 @@ yyreduce:    case 62: -/* Line 1455 of yacc.c  */ -#line 466 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 474 "glcpp/glcpp-parse.y"      {  		parser->space_tokens = 1;  		(yyval.token_list) = _token_list_create (parser); @@ -2342,8 +2358,8 @@ yyreduce:    case 63: -/* Line 1455 of yacc.c  */ -#line 472 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 480 "glcpp/glcpp-parse.y"      {  		(yyval.token_list) = (yyvsp[(1) - (2)].token_list);  		_token_list_append ((yyval.token_list), (yyvsp[(2) - (2)].token)); @@ -2353,8 +2369,8 @@ yyreduce:    case 64: -/* Line 1455 of yacc.c  */ -#line 480 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 488 "glcpp/glcpp-parse.y"      {  		parser->space_tokens = 1;  		(yyval.token_list) = _token_list_create (parser); @@ -2365,8 +2381,8 @@ yyreduce:    case 65: -/* Line 1455 of yacc.c  */ -#line 486 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 494 "glcpp/glcpp-parse.y"      {  		(yyval.token_list) = (yyvsp[(1) - (2)].token_list);  		_token_list_append ((yyval.token_list), (yyvsp[(2) - (2)].token)); @@ -2376,8 +2392,8 @@ yyreduce:    case 66: -/* Line 1455 of yacc.c  */ -#line 494 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 502 "glcpp/glcpp-parse.y"      {  		(yyval.token) = _token_create_str (parser, IDENTIFIER, (yyvsp[(1) - (1)].str));  		(yyval.token)->location = yylloc; @@ -2386,8 +2402,8 @@ yyreduce:    case 67: -/* Line 1455 of yacc.c  */ -#line 498 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 506 "glcpp/glcpp-parse.y"      {  		(yyval.token) = _token_create_str (parser, INTEGER_STRING, (yyvsp[(1) - (1)].str));  		(yyval.token)->location = yylloc; @@ -2396,8 +2412,8 @@ yyreduce:    case 68: -/* Line 1455 of yacc.c  */ -#line 502 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 510 "glcpp/glcpp-parse.y"      {  		(yyval.token) = _token_create_ival (parser, (yyvsp[(1) - (1)].ival), (yyvsp[(1) - (1)].ival));  		(yyval.token)->location = yylloc; @@ -2406,8 +2422,8 @@ yyreduce:    case 69: -/* Line 1455 of yacc.c  */ -#line 506 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 514 "glcpp/glcpp-parse.y"      {  		(yyval.token) = _token_create_str (parser, OTHER, (yyvsp[(1) - (1)].str));  		(yyval.token)->location = yylloc; @@ -2416,8 +2432,8 @@ yyreduce:    case 70: -/* Line 1455 of yacc.c  */ -#line 510 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 518 "glcpp/glcpp-parse.y"      {  		(yyval.token) = _token_create_ival (parser, SPACE, SPACE);  		(yyval.token)->location = yylloc; @@ -2426,225 +2442,225 @@ yyreduce:    case 71: -/* Line 1455 of yacc.c  */ -#line 517 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 525 "glcpp/glcpp-parse.y"      { (yyval.ival) = '['; ;}      break;    case 72: -/* Line 1455 of yacc.c  */ -#line 518 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 526 "glcpp/glcpp-parse.y"      { (yyval.ival) = ']'; ;}      break;    case 73: -/* Line 1455 of yacc.c  */ -#line 519 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 527 "glcpp/glcpp-parse.y"      { (yyval.ival) = '('; ;}      break;    case 74: -/* Line 1455 of yacc.c  */ -#line 520 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 528 "glcpp/glcpp-parse.y"      { (yyval.ival) = ')'; ;}      break;    case 75: -/* Line 1455 of yacc.c  */ -#line 521 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 529 "glcpp/glcpp-parse.y"      { (yyval.ival) = '{'; ;}      break;    case 76: -/* Line 1455 of yacc.c  */ -#line 522 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 530 "glcpp/glcpp-parse.y"      { (yyval.ival) = '}'; ;}      break;    case 77: -/* Line 1455 of yacc.c  */ -#line 523 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 531 "glcpp/glcpp-parse.y"      { (yyval.ival) = '.'; ;}      break;    case 78: -/* Line 1455 of yacc.c  */ -#line 524 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 532 "glcpp/glcpp-parse.y"      { (yyval.ival) = '&'; ;}      break;    case 79: -/* Line 1455 of yacc.c  */ -#line 525 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 533 "glcpp/glcpp-parse.y"      { (yyval.ival) = '*'; ;}      break;    case 80: -/* Line 1455 of yacc.c  */ -#line 526 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 534 "glcpp/glcpp-parse.y"      { (yyval.ival) = '+'; ;}      break;    case 81: -/* Line 1455 of yacc.c  */ -#line 527 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 535 "glcpp/glcpp-parse.y"      { (yyval.ival) = '-'; ;}      break;    case 82: -/* Line 1455 of yacc.c  */ -#line 528 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 536 "glcpp/glcpp-parse.y"      { (yyval.ival) = '~'; ;}      break;    case 83: -/* Line 1455 of yacc.c  */ -#line 529 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 537 "glcpp/glcpp-parse.y"      { (yyval.ival) = '!'; ;}      break;    case 84: -/* Line 1455 of yacc.c  */ -#line 530 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 538 "glcpp/glcpp-parse.y"      { (yyval.ival) = '/'; ;}      break;    case 85: -/* Line 1455 of yacc.c  */ -#line 531 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 539 "glcpp/glcpp-parse.y"      { (yyval.ival) = '%'; ;}      break;    case 86: -/* Line 1455 of yacc.c  */ -#line 532 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 540 "glcpp/glcpp-parse.y"      { (yyval.ival) = LEFT_SHIFT; ;}      break;    case 87: -/* Line 1455 of yacc.c  */ -#line 533 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 541 "glcpp/glcpp-parse.y"      { (yyval.ival) = RIGHT_SHIFT; ;}      break;    case 88: -/* Line 1455 of yacc.c  */ -#line 534 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 542 "glcpp/glcpp-parse.y"      { (yyval.ival) = '<'; ;}      break;    case 89: -/* Line 1455 of yacc.c  */ -#line 535 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 543 "glcpp/glcpp-parse.y"      { (yyval.ival) = '>'; ;}      break;    case 90: -/* Line 1455 of yacc.c  */ -#line 536 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 544 "glcpp/glcpp-parse.y"      { (yyval.ival) = LESS_OR_EQUAL; ;}      break;    case 91: -/* Line 1455 of yacc.c  */ -#line 537 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 545 "glcpp/glcpp-parse.y"      { (yyval.ival) = GREATER_OR_EQUAL; ;}      break;    case 92: -/* Line 1455 of yacc.c  */ -#line 538 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 546 "glcpp/glcpp-parse.y"      { (yyval.ival) = EQUAL; ;}      break;    case 93: -/* Line 1455 of yacc.c  */ -#line 539 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 547 "glcpp/glcpp-parse.y"      { (yyval.ival) = NOT_EQUAL; ;}      break;    case 94: -/* Line 1455 of yacc.c  */ -#line 540 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 548 "glcpp/glcpp-parse.y"      { (yyval.ival) = '^'; ;}      break;    case 95: -/* Line 1455 of yacc.c  */ -#line 541 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 549 "glcpp/glcpp-parse.y"      { (yyval.ival) = '|'; ;}      break;    case 96: -/* Line 1455 of yacc.c  */ -#line 542 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 550 "glcpp/glcpp-parse.y"      { (yyval.ival) = AND; ;}      break;    case 97: -/* Line 1455 of yacc.c  */ -#line 543 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 551 "glcpp/glcpp-parse.y"      { (yyval.ival) = OR; ;}      break;    case 98: -/* Line 1455 of yacc.c  */ -#line 544 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 552 "glcpp/glcpp-parse.y"      { (yyval.ival) = ';'; ;}      break;    case 99: -/* Line 1455 of yacc.c  */ -#line 545 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 553 "glcpp/glcpp-parse.y"      { (yyval.ival) = ','; ;}      break;    case 100: -/* Line 1455 of yacc.c  */ -#line 546 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 554 "glcpp/glcpp-parse.y"      { (yyval.ival) = '='; ;}      break;    case 101: -/* Line 1455 of yacc.c  */ -#line 547 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c  */ +#line 555 "glcpp/glcpp-parse.y"      { (yyval.ival) = PASTE; ;}      break; -/* Line 1455 of yacc.c  */ -#line 2648 "glcpp/glcpp-parse.c" +/* Line 1464 of yacc.c  */ +#line 2664 "glcpp/glcpp-parse.c"        default: break;      }    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2716,7 +2732,7 @@ yyerrlab:  #endif      } -  yyerror_range[0] = yylloc; +  yyerror_range[1] = yylloc;    if (yyerrstatus == 3)      { @@ -2753,7 +2769,7 @@ yyerrorlab:    if (/*CONSTCOND*/ 0)       goto yyerrorlab; -  yyerror_range[0] = yylsp[1-yylen]; +  yyerror_range[1] = yylsp[1-yylen];    /* Do not reclaim the symbols of the rule which action triggered       this YYERROR.  */    YYPOPSTACK (yylen); @@ -2787,7 +2803,7 @@ yyerrlab1:        if (yyssp == yyss)  	YYABORT; -      yyerror_range[0] = *yylsp; +      yyerror_range[1] = *yylsp;        yydestruct ("Error: popping",  		  yystos[yystate], yyvsp, yylsp, parser);        YYPOPSTACK (1); @@ -2797,10 +2813,10 @@ yyerrlab1:    *++yyvsp = yylval; -  yyerror_range[1] = yylloc; +  yyerror_range[2] = yylloc;    /* Using YYLLOC is tempting, but would change the location of       the lookahead.  YYLOC is available though.  */ -  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); +  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);    *++yylsp = yyloc;    /* Shift the error token.  */ @@ -2862,8 +2878,8 @@ yyreturn: -/* Line 1675 of yacc.c  */ -#line 550 "glcpp/glcpp-parse.y" +/* Line 1684 of yacc.c  */ +#line 558 "glcpp/glcpp-parse.y"  string_list_t * diff --git a/src/glsl/glcpp/glcpp-parse.h b/src/glsl/glcpp/glcpp-parse.h index 50758930e9..40556854f3 100644 --- a/src/glsl/glcpp/glcpp-parse.h +++ b/src/glsl/glcpp/glcpp-parse.h @@ -1,10 +1,9 @@ - -/* A Bison parser, made by GNU Bison 2.4.1.  */ +/* A Bison parser, made by GNU Bison 2.4.3.  */  /* Skeleton interface for Bison's Yacc-like parsers in C -      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -   Free Software Foundation, Inc. +      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +   2009, 2010 Free Software Foundation, Inc.     This program is free software: you can redistribute it and/or modify     it under the terms of the GNU General Public License as published by diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index b31a18f87d..8475e08f00 100644 --- a/src/glsl/glcpp/glcpp-parse.y +++ b/src/glsl/glcpp/glcpp-parse.y @@ -320,6 +320,14 @@ control_line:  		if ($2 == 100)  			add_builtin_define (parser, "GL_ES", 1); +		/* Currently, all ES2 implementations support highp in the +		 * fragment shader, so we always define this macro in ES2. +		 * If we ever get a driver that doesn't support highp, we'll +		 * need to add a flag to the gl_context and check that here. +		 */ +		if ($2 >= 130 || $2 == 100) +			add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1); +  		glcpp_printf(parser->output, "#version %" PRIiMAX, $2);  	}  |	HASH NEWLINE | 
