diff options
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/glcpp/glcpp-parse.c | 460 |
1 files changed, 231 insertions, 229 deletions
diff --git a/src/glsl/glcpp/glcpp-parse.c b/src/glsl/glcpp/glcpp-parse.c index a5566dc0aaf..fa594378189 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" @@ -160,10 +159,7 @@ _token_create_ival (void *ctx, int type, int ival); static token_list_t * _token_list_create (void *ctx); -/* Note: This function adds a talloc_reference() to token. - * - * You may want to talloc_unlink any current reference if you no - * longer need it. */ +/* Note: This function calls talloc_steal on token. */ static void _token_list_append (token_list_t *list, token_t *token); @@ -220,7 +216,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 220 "glcpp/glcpp-parse.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -308,7 +304,7 @@ typedef struct YYLTYPE /* Line 264 of yacc.c */ -#line 312 "glcpp/glcpp-parse.c" +#line 308 "glcpp/glcpp-parse.c" #ifdef short # undef short @@ -358,7 +354,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) @@ -633,17 +629,17 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 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, 333, 337, 346, 351, 352, 355, 358, - 361, 364, 367, 370, 373, 376, 379, 382, 385, 388, - 391, 394, 397, 400, 408, 411, 414, 417, 420, 423, - 429, 434, 442, 443, 447, 453, 454, 457, 459, 466, - 470, 474, 479, 484, 492, 498, 506, 510, 514, 518, - 522, 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, 556, 557, - 558, 559 + 0, 185, 185, 187, 191, 194, 199, 200, 204, 207, + 213, 216, 219, 222, 230, 249, 259, 264, 269, 288, + 303, 306, 309, 330, 334, 343, 348, 349, 352, 355, + 358, 361, 364, 367, 370, 373, 376, 379, 382, 385, + 388, 391, 394, 397, 405, 408, 411, 414, 417, 420, + 426, 431, 439, 440, 444, 450, 451, 454, 456, 463, + 467, 471, 476, 480, 487, 492, 499, 503, 507, 511, + 515, 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, 548, 549, 550, + 551, 552 }; #endif @@ -946,9 +942,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 +1010,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 +1552,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 +1599,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,8 +1607,8 @@ YYLTYPE yylloc; /* User initialization code. */ -/* Line 1242 of yacc.c */ -#line 155 "glcpp/glcpp-parse.y" +/* Line 1251 of yacc.c */ +#line 152 "glcpp/glcpp-parse.y" { yylloc.first_line = 1; yylloc.first_column = 1; @@ -1612,8 +1617,8 @@ YYLTYPE yylloc; yylloc.source = 0; } -/* Line 1242 of yacc.c */ -#line 1617 "glcpp/glcpp-parse.c" +/* Line 1251 of yacc.c */ +#line 1622 "glcpp/glcpp-parse.c" yylsp[0] = yylloc; goto yysetstate; @@ -1800,8 +1805,8 @@ yyreduce: { case 4: -/* Line 1455 of yacc.c */ -#line 194 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 191 "glcpp/glcpp-parse.y" { glcpp_print(parser->output, "\n"); ;} @@ -1809,8 +1814,8 @@ yyreduce: case 5: -/* Line 1455 of yacc.c */ -#line 197 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 194 "glcpp/glcpp-parse.y" { _glcpp_parser_print_expanded_token_list (parser, (yyvsp[(1) - (1)].token_list)); glcpp_print(parser->output, "\n"); @@ -1820,8 +1825,8 @@ yyreduce: case 8: -/* Line 1455 of yacc.c */ -#line 207 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 204 "glcpp/glcpp-parse.y" { _glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (3)]), (yyvsp[(2) - (3)].ival)); ;} @@ -1829,8 +1834,8 @@ yyreduce: case 9: -/* Line 1455 of yacc.c */ -#line 210 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 207 "glcpp/glcpp-parse.y" { _glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (3)]), "elif", (yyvsp[(2) - (3)].ival)); ;} @@ -1838,8 +1843,8 @@ yyreduce: case 10: -/* Line 1455 of yacc.c */ -#line 216 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 213 "glcpp/glcpp-parse.y" { _define_object_macro (parser, & (yylsp[(2) - (4)]), (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].token_list)); ;} @@ -1847,8 +1852,8 @@ yyreduce: case 11: -/* Line 1455 of yacc.c */ -#line 219 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 216 "glcpp/glcpp-parse.y" { _define_function_macro (parser, & (yylsp[(2) - (6)]), (yyvsp[(2) - (6)].str), NULL, (yyvsp[(5) - (6)].token_list)); ;} @@ -1856,8 +1861,8 @@ yyreduce: case 12: -/* Line 1455 of yacc.c */ -#line 222 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 219 "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,8 +1870,8 @@ yyreduce: case 13: -/* Line 1455 of yacc.c */ -#line 225 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 222 "glcpp/glcpp-parse.y" { macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (3)].str)); if (macro) { @@ -1879,8 +1884,8 @@ yyreduce: case 14: -/* Line 1455 of yacc.c */ -#line 233 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 230 "glcpp/glcpp-parse.y" { /* Be careful to only evaluate the 'if' expression if * we are not skipping. When we are skipping, we @@ -1904,8 +1909,8 @@ yyreduce: case 15: -/* Line 1455 of yacc.c */ -#line 252 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 249 "glcpp/glcpp-parse.y" { /* #if without an expression is only an error if we * are not skipping */ @@ -1920,8 +1925,8 @@ yyreduce: case 16: -/* Line 1455 of yacc.c */ -#line 262 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 259 "glcpp/glcpp-parse.y" { macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str)); talloc_free ((yyvsp[(2) - (4)].str)); @@ -1931,8 +1936,8 @@ yyreduce: case 17: -/* Line 1455 of yacc.c */ -#line 267 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 264 "glcpp/glcpp-parse.y" { macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str)); talloc_free ((yyvsp[(2) - (4)].str)); @@ -1942,8 +1947,8 @@ yyreduce: case 18: -/* Line 1455 of yacc.c */ -#line 272 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 269 "glcpp/glcpp-parse.y" { /* Be careful to only evaluate the 'elif' expression * if we are not skipping. When we are skipping, we @@ -1967,8 +1972,8 @@ yyreduce: case 19: -/* Line 1455 of yacc.c */ -#line 291 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 288 "glcpp/glcpp-parse.y" { /* #elif without an expression is an error unless we * are skipping. */ @@ -1988,8 +1993,8 @@ yyreduce: case 20: -/* Line 1455 of yacc.c */ -#line 306 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 303 "glcpp/glcpp-parse.y" { _glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (2)]), "else", 1); ;} @@ -1997,8 +2002,8 @@ yyreduce: case 21: -/* Line 1455 of yacc.c */ -#line 309 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 306 "glcpp/glcpp-parse.y" { _glcpp_parser_skip_stack_pop (parser, & (yylsp[(1) - (2)])); ;} @@ -2006,8 +2011,8 @@ yyreduce: case 22: -/* Line 1455 of yacc.c */ -#line 312 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 309 "glcpp/glcpp-parse.y" { macro_t *macro = hash_table_find (parser->defines, "__VERSION__"); if (macro) { @@ -2033,8 +2038,8 @@ yyreduce: case 24: -/* Line 1455 of yacc.c */ -#line 337 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 334 "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); @@ -2048,8 +2053,8 @@ yyreduce: case 25: -/* Line 1455 of yacc.c */ -#line 346 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 343 "glcpp/glcpp-parse.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} @@ -2057,8 +2062,8 @@ yyreduce: case 27: -/* Line 1455 of yacc.c */ -#line 352 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 349 "glcpp/glcpp-parse.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) || (yyvsp[(3) - (3)].ival); ;} @@ -2066,8 +2071,8 @@ yyreduce: case 28: -/* Line 1455 of yacc.c */ -#line 355 "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); ;} @@ -2075,8 +2080,8 @@ yyreduce: case 29: -/* Line 1455 of yacc.c */ -#line 358 "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); ;} @@ -2084,8 +2089,8 @@ yyreduce: case 30: -/* Line 1455 of yacc.c */ -#line 361 "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); ;} @@ -2093,8 +2098,8 @@ yyreduce: case 31: -/* Line 1455 of yacc.c */ -#line 364 "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); ;} @@ -2102,8 +2107,8 @@ yyreduce: case 32: -/* Line 1455 of yacc.c */ -#line 367 "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); ;} @@ -2111,8 +2116,8 @@ yyreduce: case 33: -/* Line 1455 of yacc.c */ -#line 370 "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); ;} @@ -2120,8 +2125,8 @@ yyreduce: case 34: -/* Line 1455 of yacc.c */ -#line 373 "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); ;} @@ -2129,8 +2134,8 @@ yyreduce: case 35: -/* Line 1455 of yacc.c */ -#line 376 "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); ;} @@ -2138,8 +2143,8 @@ yyreduce: case 36: -/* Line 1455 of yacc.c */ -#line 379 "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); ;} @@ -2147,8 +2152,8 @@ yyreduce: case 37: -/* Line 1455 of yacc.c */ -#line 382 "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); ;} @@ -2156,8 +2161,8 @@ yyreduce: case 38: -/* Line 1455 of yacc.c */ -#line 385 "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); ;} @@ -2165,8 +2170,8 @@ yyreduce: case 39: -/* Line 1455 of yacc.c */ -#line 388 "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); ;} @@ -2174,8 +2179,8 @@ yyreduce: case 40: -/* Line 1455 of yacc.c */ -#line 391 "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); ;} @@ -2183,8 +2188,8 @@ yyreduce: case 41: -/* Line 1455 of yacc.c */ -#line 394 "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); ;} @@ -2192,8 +2197,8 @@ yyreduce: case 42: -/* Line 1455 of yacc.c */ -#line 397 "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); ;} @@ -2201,8 +2206,8 @@ yyreduce: case 43: -/* Line 1455 of yacc.c */ -#line 400 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 397 "glcpp/glcpp-parse.y" { if ((yyvsp[(3) - (3)].ival) == 0) { yyerror (& (yylsp[(1) - (3)]), parser, @@ -2215,8 +2220,8 @@ yyreduce: case 44: -/* Line 1455 of yacc.c */ -#line 408 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 405 "glcpp/glcpp-parse.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) * (yyvsp[(3) - (3)].ival); ;} @@ -2224,8 +2229,8 @@ yyreduce: case 45: -/* Line 1455 of yacc.c */ -#line 411 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 408 "glcpp/glcpp-parse.y" { (yyval.ival) = ! (yyvsp[(2) - (2)].ival); ;} @@ -2233,8 +2238,8 @@ yyreduce: case 46: -/* Line 1455 of yacc.c */ -#line 414 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 411 "glcpp/glcpp-parse.y" { (yyval.ival) = ~ (yyvsp[(2) - (2)].ival); ;} @@ -2242,8 +2247,8 @@ yyreduce: case 47: -/* Line 1455 of yacc.c */ -#line 417 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 414 "glcpp/glcpp-parse.y" { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} @@ -2251,8 +2256,8 @@ yyreduce: case 48: -/* Line 1455 of yacc.c */ -#line 420 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 417 "glcpp/glcpp-parse.y" { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} @@ -2260,8 +2265,8 @@ yyreduce: case 49: -/* Line 1455 of yacc.c */ -#line 423 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 420 "glcpp/glcpp-parse.y" { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;} @@ -2269,8 +2274,8 @@ yyreduce: case 50: -/* Line 1455 of yacc.c */ -#line 429 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 426 "glcpp/glcpp-parse.y" { (yyval.string_list) = _string_list_create (parser); _string_list_append_item ((yyval.string_list), (yyvsp[(1) - (1)].str)); @@ -2280,8 +2285,8 @@ yyreduce: case 51: -/* Line 1455 of yacc.c */ -#line 434 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 431 "glcpp/glcpp-parse.y" { (yyval.string_list) = (yyvsp[(1) - (3)].string_list); _string_list_append_item ((yyval.string_list), (yyvsp[(3) - (3)].str)); @@ -2291,15 +2296,15 @@ yyreduce: case 52: -/* Line 1455 of yacc.c */ -#line 442 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 439 "glcpp/glcpp-parse.y" { (yyval.token_list) = NULL; ;} break; case 54: -/* Line 1455 of yacc.c */ -#line 447 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 444 "glcpp/glcpp-parse.y" { yyerror (& (yylsp[(1) - (2)]), parser, "Invalid tokens after #"); ;} @@ -2307,15 +2312,15 @@ yyreduce: case 55: -/* Line 1455 of yacc.c */ -#line 453 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 450 "glcpp/glcpp-parse.y" { (yyval.token_list) = NULL; ;} break; case 58: -/* Line 1455 of yacc.c */ -#line 459 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 456 "glcpp/glcpp-parse.y" { glcpp_warning(&(yylsp[(1) - (1)]), parser, "extra tokens at end of directive"); ;} @@ -2323,8 +2328,8 @@ yyreduce: case 59: -/* Line 1455 of yacc.c */ -#line 466 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 463 "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); @@ -2333,8 +2338,8 @@ yyreduce: case 60: -/* Line 1455 of yacc.c */ -#line 470 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 467 "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); @@ -2343,53 +2348,49 @@ yyreduce: case 62: -/* Line 1455 of yacc.c */ -#line 479 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 476 "glcpp/glcpp-parse.y" { (yyval.token_list) = _token_list_create (parser); _token_list_append ((yyval.token_list), (yyvsp[(1) - (1)].token)); - talloc_unlink (parser, (yyvsp[(1) - (1)].token)); ;} break; case 63: -/* Line 1455 of yacc.c */ -#line 484 "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)); - talloc_unlink (parser, (yyvsp[(2) - (2)].token)); ;} break; case 64: -/* Line 1455 of yacc.c */ -#line 492 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 487 "glcpp/glcpp-parse.y" { parser->space_tokens = 1; (yyval.token_list) = _token_list_create (parser); _token_list_append ((yyval.token_list), (yyvsp[(1) - (1)].token)); - talloc_unlink (parser, (yyvsp[(1) - (1)].token)); ;} break; case 65: -/* Line 1455 of yacc.c */ -#line 498 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 492 "glcpp/glcpp-parse.y" { (yyval.token_list) = (yyvsp[(1) - (2)].token_list); _token_list_append ((yyval.token_list), (yyvsp[(2) - (2)].token)); - talloc_unlink (parser, (yyvsp[(2) - (2)].token)); ;} break; case 66: -/* Line 1455 of yacc.c */ -#line 506 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 499 "glcpp/glcpp-parse.y" { (yyval.token) = _token_create_str (parser, IDENTIFIER, (yyvsp[(1) - (1)].str)); (yyval.token)->location = yylloc; @@ -2398,8 +2399,8 @@ yyreduce: case 67: -/* Line 1455 of yacc.c */ -#line 510 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 503 "glcpp/glcpp-parse.y" { (yyval.token) = _token_create_str (parser, INTEGER_STRING, (yyvsp[(1) - (1)].str)); (yyval.token)->location = yylloc; @@ -2408,8 +2409,8 @@ yyreduce: case 68: -/* Line 1455 of yacc.c */ -#line 514 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 507 "glcpp/glcpp-parse.y" { (yyval.token) = _token_create_ival (parser, (yyvsp[(1) - (1)].ival), (yyvsp[(1) - (1)].ival)); (yyval.token)->location = yylloc; @@ -2418,8 +2419,8 @@ yyreduce: case 69: -/* Line 1455 of yacc.c */ -#line 518 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 511 "glcpp/glcpp-parse.y" { (yyval.token) = _token_create_str (parser, OTHER, (yyvsp[(1) - (1)].str)); (yyval.token)->location = yylloc; @@ -2428,8 +2429,8 @@ yyreduce: case 70: -/* Line 1455 of yacc.c */ -#line 522 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 515 "glcpp/glcpp-parse.y" { (yyval.token) = _token_create_ival (parser, SPACE, SPACE); (yyval.token)->location = yylloc; @@ -2438,225 +2439,225 @@ yyreduce: case 71: -/* Line 1455 of yacc.c */ -#line 529 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 522 "glcpp/glcpp-parse.y" { (yyval.ival) = '['; ;} break; case 72: -/* Line 1455 of yacc.c */ -#line 530 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 523 "glcpp/glcpp-parse.y" { (yyval.ival) = ']'; ;} break; case 73: -/* Line 1455 of yacc.c */ -#line 531 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 524 "glcpp/glcpp-parse.y" { (yyval.ival) = '('; ;} break; case 74: -/* Line 1455 of yacc.c */ -#line 532 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 525 "glcpp/glcpp-parse.y" { (yyval.ival) = ')'; ;} break; case 75: -/* Line 1455 of yacc.c */ -#line 533 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 526 "glcpp/glcpp-parse.y" { (yyval.ival) = '{'; ;} break; case 76: -/* Line 1455 of yacc.c */ -#line 534 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 527 "glcpp/glcpp-parse.y" { (yyval.ival) = '}'; ;} break; case 77: -/* Line 1455 of yacc.c */ -#line 535 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 528 "glcpp/glcpp-parse.y" { (yyval.ival) = '.'; ;} break; case 78: -/* Line 1455 of yacc.c */ -#line 536 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 529 "glcpp/glcpp-parse.y" { (yyval.ival) = '&'; ;} break; case 79: -/* Line 1455 of yacc.c */ -#line 537 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 530 "glcpp/glcpp-parse.y" { (yyval.ival) = '*'; ;} break; case 80: -/* Line 1455 of yacc.c */ -#line 538 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 531 "glcpp/glcpp-parse.y" { (yyval.ival) = '+'; ;} break; case 81: -/* Line 1455 of yacc.c */ -#line 539 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 532 "glcpp/glcpp-parse.y" { (yyval.ival) = '-'; ;} break; case 82: -/* Line 1455 of yacc.c */ -#line 540 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 533 "glcpp/glcpp-parse.y" { (yyval.ival) = '~'; ;} break; case 83: -/* Line 1455 of yacc.c */ -#line 541 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 534 "glcpp/glcpp-parse.y" { (yyval.ival) = '!'; ;} break; case 84: -/* Line 1455 of yacc.c */ -#line 542 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 535 "glcpp/glcpp-parse.y" { (yyval.ival) = '/'; ;} break; case 85: -/* Line 1455 of yacc.c */ -#line 543 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 536 "glcpp/glcpp-parse.y" { (yyval.ival) = '%'; ;} break; case 86: -/* Line 1455 of yacc.c */ -#line 544 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 537 "glcpp/glcpp-parse.y" { (yyval.ival) = LEFT_SHIFT; ;} break; case 87: -/* Line 1455 of yacc.c */ -#line 545 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 538 "glcpp/glcpp-parse.y" { (yyval.ival) = RIGHT_SHIFT; ;} break; case 88: -/* Line 1455 of yacc.c */ -#line 546 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 539 "glcpp/glcpp-parse.y" { (yyval.ival) = '<'; ;} break; case 89: -/* Line 1455 of yacc.c */ -#line 547 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 540 "glcpp/glcpp-parse.y" { (yyval.ival) = '>'; ;} break; case 90: -/* Line 1455 of yacc.c */ -#line 548 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 541 "glcpp/glcpp-parse.y" { (yyval.ival) = LESS_OR_EQUAL; ;} break; case 91: -/* Line 1455 of yacc.c */ -#line 549 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 542 "glcpp/glcpp-parse.y" { (yyval.ival) = GREATER_OR_EQUAL; ;} break; case 92: -/* Line 1455 of yacc.c */ -#line 550 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 543 "glcpp/glcpp-parse.y" { (yyval.ival) = EQUAL; ;} break; case 93: -/* Line 1455 of yacc.c */ -#line 551 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 544 "glcpp/glcpp-parse.y" { (yyval.ival) = NOT_EQUAL; ;} break; case 94: -/* Line 1455 of yacc.c */ -#line 552 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 545 "glcpp/glcpp-parse.y" { (yyval.ival) = '^'; ;} break; case 95: -/* Line 1455 of yacc.c */ -#line 553 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 546 "glcpp/glcpp-parse.y" { (yyval.ival) = '|'; ;} break; case 96: -/* Line 1455 of yacc.c */ -#line 554 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 547 "glcpp/glcpp-parse.y" { (yyval.ival) = AND; ;} break; case 97: -/* Line 1455 of yacc.c */ -#line 555 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 548 "glcpp/glcpp-parse.y" { (yyval.ival) = OR; ;} break; case 98: -/* Line 1455 of yacc.c */ -#line 556 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 549 "glcpp/glcpp-parse.y" { (yyval.ival) = ';'; ;} break; case 99: -/* Line 1455 of yacc.c */ -#line 557 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 550 "glcpp/glcpp-parse.y" { (yyval.ival) = ','; ;} break; case 100: -/* Line 1455 of yacc.c */ -#line 558 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 551 "glcpp/glcpp-parse.y" { (yyval.ival) = '='; ;} break; case 101: -/* Line 1455 of yacc.c */ -#line 559 "glcpp/glcpp-parse.y" +/* Line 1464 of yacc.c */ +#line 552 "glcpp/glcpp-parse.y" { (yyval.ival) = PASTE; ;} break; -/* Line 1455 of yacc.c */ -#line 2660 "glcpp/glcpp-parse.c" +/* Line 1464 of yacc.c */ +#line 2661 "glcpp/glcpp-parse.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2728,7 +2729,7 @@ yyerrlab: #endif } - yyerror_range[0] = yylloc; + yyerror_range[1] = yylloc; if (yyerrstatus == 3) { @@ -2765,7 +2766,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); @@ -2799,7 +2800,7 @@ yyerrlab1: if (yyssp == yyss) YYABORT; - yyerror_range[0] = *yylsp; + yyerror_range[1] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp, parser); YYPOPSTACK (1); @@ -2809,10 +2810,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. */ @@ -2874,8 +2875,8 @@ yyreturn: -/* Line 1675 of yacc.c */ -#line 562 "glcpp/glcpp-parse.y" +/* Line 1684 of yacc.c */ +#line 555 "glcpp/glcpp-parse.y" string_list_t * @@ -3081,7 +3082,7 @@ _token_list_append (token_list_t *list, token_t *token) token_node_t *node; node = talloc (list, token_node_t); - node->token = talloc_reference (list, token); + node->token = talloc_steal (list, token); node->next = NULL; @@ -3122,8 +3123,11 @@ _token_list_copy (void *ctx, token_list_t *other) return NULL; copy = _token_list_create (ctx); - for (node = other->head; node; node = node->next) - _token_list_append (copy, node->token); + for (node = other->head; node; node = node->next) { + token_t *new_token = talloc (copy, token_t); + *new_token = *node->token; + _token_list_append (copy, new_token); + } return copy; } @@ -3398,8 +3402,6 @@ static void add_builtin_define(glcpp_parser_t *parser, list = _token_list_create(parser); _token_list_append(list, tok); _define_object_macro(parser, NULL, name, list); - - talloc_unlink(parser, tok); } glcpp_parser_t * |