OLD | NEW |
1 /* A Bison parser, made by GNU Bison 2.5. */ | 1 /* A Bison parser, made by GNU Bison 2.4.3. */ |
2 | 2 |
3 /* Bison implementation for Yacc-like parsers in C | 3 /* Skeleton implementation for Bison's Yacc-like parsers in C |
4 | 4 |
5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. | 5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, |
| 6 2009, 2010 Free Software Foundation, Inc. |
6 | 7 |
7 This program is free software: you can redistribute it and/or modify | 8 This program is free software: you can redistribute it and/or modify |
8 it under the terms of the GNU General Public License as published by | 9 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation, either version 3 of the License, or | 10 the Free Software Foundation, either version 3 of the License, or |
10 (at your option) any later version. | 11 (at your option) any later version. |
11 | 12 |
12 This program is distributed in the hope that it will be useful, | 13 This program is distributed in the hope that it will be useful, |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 GNU General Public License for more details. | 16 GNU General Public License for more details. |
(...skipping 21 matching lines...) Expand all Loading... |
37 infringing on user name space. This should be done even for local | 38 infringing on user name space. This should be done even for local |
38 variables, as they might otherwise be expanded by user macros. | 39 variables, as they might otherwise be expanded by user macros. |
39 There are some unavoidable exceptions within include files to | 40 There are some unavoidable exceptions within include files to |
40 define necessary library symbols; they are noted "INFRINGES ON | 41 define necessary library symbols; they are noted "INFRINGES ON |
41 USER NAME SPACE" below. */ | 42 USER NAME SPACE" below. */ |
42 | 43 |
43 /* Identify Bison output. */ | 44 /* Identify Bison output. */ |
44 #define YYBISON 1 | 45 #define YYBISON 1 |
45 | 46 |
46 /* Bison version. */ | 47 /* Bison version. */ |
47 #define YYBISON_VERSION "2.5" | 48 #define YYBISON_VERSION "2.4.3" |
48 | 49 |
49 /* Skeleton name. */ | 50 /* Skeleton name. */ |
50 #define YYSKELETON_NAME "yacc.c" | 51 #define YYSKELETON_NAME "yacc.c" |
51 | 52 |
52 /* Pure parsers. */ | 53 /* Pure parsers. */ |
53 #define YYPURE 1 | 54 #define YYPURE 1 |
54 | 55 |
55 /* Push parsers. */ | 56 /* Push parsers. */ |
56 #define YYPUSH 0 | 57 #define YYPUSH 0 |
57 | 58 |
58 /* Pull parsers. */ | 59 /* Pull parsers. */ |
59 #define YYPULL 1 | 60 #define YYPULL 1 |
60 | 61 |
61 /* Using locations. */ | 62 /* Using locations. */ |
62 #define YYLSP_NEEDED 1 | 63 #define YYLSP_NEEDED 1 |
63 | 64 |
64 /* Substitute the variable and function names. */ | 65 /* Substitute the variable and function names. */ |
65 #define yyparse _mesa_glsl_parse | 66 #define yyparse _mesa_glsl_parse |
66 #define yylex _mesa_glsl_lex | 67 #define yylex _mesa_glsl_lex |
67 #define yyerror _mesa_glsl_error | 68 #define yyerror _mesa_glsl_error |
68 #define yylval _mesa_glsl_lval | 69 #define yylval _mesa_glsl_lval |
69 #define yychar _mesa_glsl_char | 70 #define yychar _mesa_glsl_char |
70 #define yydebug _mesa_glsl_debug | 71 #define yydebug _mesa_glsl_debug |
71 #define yynerrs _mesa_glsl_nerrs | 72 #define yynerrs _mesa_glsl_nerrs |
72 #define yylloc _mesa_glsl_lloc | 73 #define yylloc _mesa_glsl_lloc |
73 | 74 |
74 /* Copy the first part of user declarations. */ | 75 /* Copy the first part of user declarations. */ |
75 | 76 |
76 /* Line 268 of yacc.c */ | 77 /* Line 189 of yacc.c */ |
77 #line 1 "glsl_parser.ypp" | 78 #line 1 "glsl_parser.ypp" |
78 | 79 |
79 /* | 80 /* |
80 * Copyright © 2008, 2009 Intel Corporation | 81 * Copyright © 2008, 2009 Intel Corporation |
81 * | 82 * |
82 * Permission is hereby granted, free of charge, to any person obtaining a | 83 * Permission is hereby granted, free of charge, to any person obtaining a |
83 * copy of this software and associated documentation files (the "Software"), | 84 * copy of this software and associated documentation files (the "Software"), |
84 * to deal in the Software without restriction, including without limitation | 85 * to deal in the Software without restriction, including without limitation |
85 * the rights to use, copy, modify, merge, publish, distribute, sublicense, | 86 * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
86 * and/or sell copies of the Software, and to permit persons to whom the | 87 * and/or sell copies of the Software, and to permit persons to whom the |
(...skipping 12 matching lines...) Expand all Loading... |
99 * DEALINGS IN THE SOFTWARE. | 100 * DEALINGS IN THE SOFTWARE. |
100 */ | 101 */ |
101 #include <stdio.h> | 102 #include <stdio.h> |
102 #include <stdlib.h> | 103 #include <stdlib.h> |
103 #include <string.h> | 104 #include <string.h> |
104 #include <assert.h> | 105 #include <assert.h> |
105 | 106 |
106 #include "ast.h" | 107 #include "ast.h" |
107 #include "glsl_parser_extras.h" | 108 #include "glsl_parser_extras.h" |
108 #include "glsl_types.h" | 109 #include "glsl_types.h" |
| 110 #include "safe_strcmp.h" |
109 | 111 |
110 #define YYLEX_PARAM state->scanner | 112 #define YYLEX_PARAM state->scanner |
111 | 113 |
112 | 114 |
113 | 115 |
114 /* Line 268 of yacc.c */ | 116 /* Line 189 of yacc.c */ |
115 #line 116 "glsl_parser.cpp" | 117 #line 117 "glsl_parser.cpp" |
116 | 118 |
117 /* Enabling traces. */ | 119 /* Enabling traces. */ |
118 #ifndef YYDEBUG | 120 #ifndef YYDEBUG |
119 # define YYDEBUG 0 | 121 # define YYDEBUG 0 |
120 #endif | 122 #endif |
121 | 123 |
122 /* Enabling verbose error messages. */ | 124 /* Enabling verbose error messages. */ |
123 #ifdef YYERROR_VERBOSE | 125 #ifdef YYERROR_VERBOSE |
124 # undef YYERROR_VERBOSE | 126 # undef YYERROR_VERBOSE |
125 # define YYERROR_VERBOSE 1 | 127 # define YYERROR_VERBOSE 1 |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 ROW_MAJOR = 445 | 331 ROW_MAJOR = 445 |
330 }; | 332 }; |
331 #endif | 333 #endif |
332 | 334 |
333 | 335 |
334 | 336 |
335 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | 337 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED |
336 typedef union YYSTYPE | 338 typedef union YYSTYPE |
337 { | 339 { |
338 | 340 |
339 /* Line 293 of yacc.c */ | 341 /* Line 214 of yacc.c */ |
340 #line 52 "glsl_parser.ypp" | 342 #line 52 "glsl_parser.ypp" |
341 | 343 |
342 int n; | 344 int n; |
343 float real; | 345 float real; |
344 char *identifier; | 346 char *identifier; |
345 | 347 |
346 union { | 348 union { |
347 struct ast_type_qualifier q; | 349 struct ast_type_qualifier q; |
348 unsigned i; | 350 unsigned i; |
349 } type_qualifier; | 351 } type_qualifier; |
(...skipping 15 matching lines...) Expand all Loading... |
365 ast_expression *rest; | 367 ast_expression *rest; |
366 } for_rest_statement; | 368 } for_rest_statement; |
367 | 369 |
368 struct { | 370 struct { |
369 ast_node *then_statement; | 371 ast_node *then_statement; |
370 ast_node *else_statement; | 372 ast_node *else_statement; |
371 } selection_rest_statement; | 373 } selection_rest_statement; |
372 | 374 |
373 | 375 |
374 | 376 |
375 /* Line 293 of yacc.c */ | 377 /* Line 214 of yacc.c */ |
376 #line 377 "glsl_parser.cpp" | 378 #line 378 "glsl_parser.cpp" |
377 } YYSTYPE; | 379 } YYSTYPE; |
378 # define YYSTYPE_IS_TRIVIAL 1 | 380 # define YYSTYPE_IS_TRIVIAL 1 |
379 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ | 381 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ |
380 # define YYSTYPE_IS_DECLARED 1 | 382 # define YYSTYPE_IS_DECLARED 1 |
381 #endif | 383 #endif |
382 | 384 |
383 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED | 385 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED |
384 typedef struct YYLTYPE | 386 typedef struct YYLTYPE |
385 { | 387 { |
386 int first_line; | 388 int first_line; |
387 int first_column; | 389 int first_column; |
388 int last_line; | 390 int last_line; |
389 int last_column; | 391 int last_column; |
390 } YYLTYPE; | 392 } YYLTYPE; |
391 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ | 393 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ |
392 # define YYLTYPE_IS_DECLARED 1 | 394 # define YYLTYPE_IS_DECLARED 1 |
393 # define YYLTYPE_IS_TRIVIAL 1 | 395 # define YYLTYPE_IS_TRIVIAL 1 |
394 #endif | 396 #endif |
395 | 397 |
396 | 398 |
397 /* Copy the second part of user declarations. */ | 399 /* Copy the second part of user declarations. */ |
398 | 400 |
399 | 401 |
400 /* Line 343 of yacc.c */ | 402 /* Line 264 of yacc.c */ |
401 #line 402 "glsl_parser.cpp" | 403 #line 403 "glsl_parser.cpp" |
402 | 404 |
403 #ifdef short | 405 #ifdef short |
404 # undef short | 406 # undef short |
405 #endif | 407 #endif |
406 | 408 |
407 #ifdef YYTYPE_UINT8 | 409 #ifdef YYTYPE_UINT8 |
408 typedef YYTYPE_UINT8 yytype_uint8; | 410 typedef YYTYPE_UINT8 yytype_uint8; |
409 #else | 411 #else |
410 typedef unsigned char yytype_uint8; | 412 typedef unsigned char yytype_uint8; |
411 #endif | 413 #endif |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 # define YYSTACK_ALLOC __builtin_alloca | 496 # define YYSTACK_ALLOC __builtin_alloca |
495 # elif defined __BUILTIN_VA_ARG_INCR | 497 # elif defined __BUILTIN_VA_ARG_INCR |
496 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ | 498 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ |
497 # elif defined _AIX | 499 # elif defined _AIX |
498 # define YYSTACK_ALLOC __alloca | 500 # define YYSTACK_ALLOC __alloca |
499 # elif defined _MSC_VER | 501 # elif defined _MSC_VER |
500 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ | 502 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ |
501 # define alloca _alloca | 503 # define alloca _alloca |
502 # else | 504 # else |
503 # define YYSTACK_ALLOC alloca | 505 # define YYSTACK_ALLOC alloca |
504 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || de
fined __C99__FUNC__ \ | 506 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defin
ed __C99__FUNC__ \ |
505 || defined __cplusplus || defined _MSC_VER) | 507 || defined __cplusplus || defined _MSC_VER) |
506 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | 508 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ |
507 # ifndef EXIT_SUCCESS | 509 # ifndef _STDLIB_H |
508 # define EXIT_SUCCESS 0 | 510 # define _STDLIB_H 1 |
509 # endif | 511 # endif |
510 # endif | 512 # endif |
511 # endif | 513 # endif |
512 # endif | 514 # endif |
513 # endif | 515 # endif |
514 | 516 |
515 # ifdef YYSTACK_ALLOC | 517 # ifdef YYSTACK_ALLOC |
516 /* Pacify GCC's `empty if-body' warning. */ | 518 /* Pacify GCC's `empty if-body' warning. */ |
517 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) | 519 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) |
518 # ifndef YYSTACK_ALLOC_MAXIMUM | 520 # ifndef YYSTACK_ALLOC_MAXIMUM |
519 /* The OS might guarantee only one guard page at the bottom of the stack, | 521 /* The OS might guarantee only one guard page at the bottom of the stack, |
520 and a page size can be as small as 4096 bytes. So we cannot safely | 522 and a page size can be as small as 4096 bytes. So we cannot safely |
521 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number | 523 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number |
522 to allow for a few compiler-allocated temporary stack slots. */ | 524 to allow for a few compiler-allocated temporary stack slots. */ |
523 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ | 525 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ |
524 # endif | 526 # endif |
525 # else | 527 # else |
526 # define YYSTACK_ALLOC YYMALLOC | 528 # define YYSTACK_ALLOC YYMALLOC |
527 # define YYSTACK_FREE YYFREE | 529 # define YYSTACK_FREE YYFREE |
528 # ifndef YYSTACK_ALLOC_MAXIMUM | 530 # ifndef YYSTACK_ALLOC_MAXIMUM |
529 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM | 531 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM |
530 # endif | 532 # endif |
531 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ | 533 # if (defined __cplusplus && ! defined _STDLIB_H \ |
532 && ! ((defined YYMALLOC || defined malloc) \ | 534 && ! ((defined YYMALLOC || defined malloc) \ |
533 && (defined YYFREE || defined free))) | 535 && (defined YYFREE || defined free))) |
534 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | 536 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ |
535 # ifndef EXIT_SUCCESS | 537 # ifndef _STDLIB_H |
536 # define EXIT_SUCCESS 0 | 538 # define _STDLIB_H 1 |
537 # endif | 539 # endif |
538 # endif | 540 # endif |
539 # ifndef YYMALLOC | 541 # ifndef YYMALLOC |
540 # define YYMALLOC malloc | 542 # define YYMALLOC malloc |
541 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || define
d __C99__FUNC__ \ | 543 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined _
_C99__FUNC__ \ |
542 || defined __cplusplus || defined _MSC_VER) | 544 || defined __cplusplus || defined _MSC_VER) |
543 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ | 545 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ |
544 # endif | 546 # endif |
545 # endif | 547 # endif |
546 # ifndef YYFREE | 548 # ifndef YYFREE |
547 # define YYFREE free | 549 # define YYFREE free |
548 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined
__C99__FUNC__ \ | 550 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C
99__FUNC__ \ |
549 || defined __cplusplus || defined _MSC_VER) | 551 || defined __cplusplus || defined _MSC_VER) |
550 void free (void *); /* INFRINGES ON USER NAME SPACE */ | 552 void free (void *); /* INFRINGES ON USER NAME SPACE */ |
551 # endif | 553 # endif |
552 # endif | 554 # endif |
553 # endif | 555 # endif |
554 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ | 556 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ |
555 | 557 |
556 | 558 |
557 #if (! defined yyoverflow \ | 559 #if (! defined yyoverflow \ |
558 && (! defined __cplusplus \ | 560 && (! defined __cplusplus \ |
(...skipping 10 matching lines...) Expand all Loading... |
569 | 571 |
570 /* The size of the maximum gap between one aligned stack and the next. */ | 572 /* The size of the maximum gap between one aligned stack and the next. */ |
571 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | 573 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) |
572 | 574 |
573 /* The size of an array large to enough to hold all stacks, each with | 575 /* The size of an array large to enough to hold all stacks, each with |
574 N elements. */ | 576 N elements. */ |
575 # define YYSTACK_BYTES(N) \ | 577 # define YYSTACK_BYTES(N) \ |
576 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ | 578 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ |
577 + 2 * YYSTACK_GAP_MAXIMUM) | 579 + 2 * YYSTACK_GAP_MAXIMUM) |
578 | 580 |
579 # define YYCOPY_NEEDED 1 | 581 /* Copy COUNT objects from FROM to TO. The source and destination do |
| 582 not overlap. */ |
| 583 # ifndef YYCOPY |
| 584 # if defined __GNUC__ && 1 < __GNUC__ |
| 585 # define YYCOPY(To, From, Count) \ |
| 586 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) |
| 587 # else |
| 588 # define YYCOPY(To, From, Count)» » \ |
| 589 do» » » » » \ |
| 590 » {» » » » » \ |
| 591 » YYSIZE_T yyi;»» » » \ |
| 592 » for (yyi = 0; yyi < (Count); yyi++)» \ |
| 593 » (To)[yyi] = (From)[yyi];» » \ |
| 594 » }» » » » » \ |
| 595 while (YYID (0)) |
| 596 # endif |
| 597 # endif |
580 | 598 |
581 /* Relocate STACK from its old location to the new one. The | 599 /* Relocate STACK from its old location to the new one. The |
582 local variables YYSIZE and YYSTACKSIZE give the old and new number of | 600 local variables YYSIZE and YYSTACKSIZE give the old and new number of |
583 elements in the stack, and YYPTR gives the new location of the | 601 elements in the stack, and YYPTR gives the new location of the |
584 stack. Advance YYPTR to a properly aligned location for the next | 602 stack. Advance YYPTR to a properly aligned location for the next |
585 stack. */ | 603 stack. */ |
586 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ | 604 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ |
587 do \ | 605 do \ |
588 { \ | 606 { \ |
589 YYSIZE_T yynewbytes; \ | 607 YYSIZE_T yynewbytes; \ |
590 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ | 608 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ |
591 Stack = &yyptr->Stack_alloc; \ | 609 Stack = &yyptr->Stack_alloc; \ |
592 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | 610 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ |
593 yyptr += yynewbytes / sizeof (*yyptr); \ | 611 yyptr += yynewbytes / sizeof (*yyptr); \ |
594 } \ | 612 } \ |
595 while (YYID (0)) | 613 while (YYID (0)) |
596 | 614 |
597 #endif | 615 #endif |
598 | 616 |
599 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED | |
600 /* Copy COUNT objects from FROM to TO. The source and destination do | |
601 not overlap. */ | |
602 # ifndef YYCOPY | |
603 # if defined __GNUC__ && 1 < __GNUC__ | |
604 # define YYCOPY(To, From, Count) \ | |
605 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) | |
606 # else | |
607 # define YYCOPY(To, From, Count) \ | |
608 do \ | |
609 { \ | |
610 YYSIZE_T yyi; \ | |
611 for (yyi = 0; yyi < (Count); yyi++) \ | |
612 (To)[yyi] = (From)[yyi]; \ | |
613 } \ | |
614 while (YYID (0)) | |
615 # endif | |
616 # endif | |
617 #endif /* !YYCOPY_NEEDED */ | |
618 | |
619 /* YYFINAL -- State number of the termination state. */ | 617 /* YYFINAL -- State number of the termination state. */ |
620 #define YYFINAL 5 | 618 #define YYFINAL 5 |
621 /* YYLAST -- Last index in YYTABLE. */ | 619 /* YYLAST -- Last index in YYTABLE. */ |
622 #define YYLAST 4005 | 620 #define YYLAST 4005 |
623 | 621 |
624 /* YYNTOKENS -- Number of terminals. */ | 622 /* YYNTOKENS -- Number of terminals. */ |
625 #define YYNTOKENS 215 | 623 #define YYNTOKENS 215 |
626 /* YYNNTS -- Number of nonterminals. */ | 624 /* YYNNTS -- Number of nonterminals. */ |
627 #define YYNNTS 88 | 625 #define YYNNTS 88 |
628 /* YYNRULES -- Number of rules. */ | 626 /* YYNRULES -- Number of rules. */ |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1009 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1007 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
1010 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, | 1008 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, |
1011 4, 1, 2, 3, 1, 3, 1, 4, 1, 1, | 1009 4, 1, 2, 3, 1, 3, 1, 4, 1, 1, |
1012 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, | 1010 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, |
1013 3, 1, 1, 2, 3, 1, 2, 1, 2, 5, | 1011 3, 1, 1, 2, 3, 1, 2, 1, 2, 5, |
1014 3, 1, 1, 4, 5, 3, 2, 5, 7, 6, | 1012 3, 1, 1, 4, 5, 3, 2, 5, 7, 6, |
1015 1, 1, 1, 0, 2, 3, 2, 2, 2, 3, | 1013 1, 1, 1, 0, 2, 3, 2, 2, 2, 3, |
1016 2, 1, 1, 1, 2 | 1014 2, 1, 1, 1, 2 |
1017 }; | 1015 }; |
1018 | 1016 |
1019 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. | 1017 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state |
1020 Performed when YYTABLE doesn't specify something else to do. Zero | 1018 STATE-NUM when YYTABLE doesn't specify something else to do. Zero |
1021 means the default is an error. */ | 1019 means the default is an error. */ |
1022 static const yytype_uint16 yydefact[] = | 1020 static const yytype_uint16 yydefact[] = |
1023 { | 1021 { |
1024 4, 0, 0, 10, 0, 1, 2, 5, 0, 135, | 1022 4, 0, 0, 10, 0, 1, 2, 5, 0, 135, |
1025 11, 0, 149, 148, 169, 166, 167, 168, 173, 174, | 1023 11, 0, 149, 148, 169, 166, 167, 168, 173, 174, |
1026 175, 176, 177, 178, 179, 180, 181, 170, 171, 172, | 1024 175, 176, 177, 178, 179, 180, 181, 170, 171, 172, |
1027 0, 153, 156, 143, 142, 141, 182, 183, 184, 185, | 1025 0, 153, 156, 143, 142, 141, 182, 183, 184, 185, |
1028 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, | 1026 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, |
1029 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, | 1027 197, 199, 200, 201, 202, 203, 204, 205, 206, 207, |
1030 208, 209, 210, 211, 212, 213, 214, 215, 0, 165, | 1028 208, 209, 210, 211, 212, 213, 214, 215, 0, 165, |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1135 -17, -329, -133, -99, -329, -155, -189, 2, 5, -329, | 1133 -17, -329, -133, -99, -329, -155, -189, 2, 5, -329, |
1136 -329, -329, 68, 161, 155, 73, -329, -329, -215, -329, | 1134 -329, -329, 68, 161, 155, 73, -329, -329, -215, -329, |
1137 -329, -329, 48, -329, -329, -43, -329, -9, -31, -329, | 1135 -329, -329, 48, -329, -329, -43, -329, -9, -31, -329, |
1138 -329, 217, -329, 150, -131, -329, -24, -140, 56, -153, | 1136 -329, 217, -329, 150, -131, -329, -24, -140, 56, -153, |
1139 -328, -78, -90, 213, 124, 58, -329, -329, -19, -329, | 1137 -328, -78, -90, 213, 124, 58, -329, -329, -19, -329, |
1140 -329, -329, -329, -329, -329, -329, 219, -329 | 1138 -329, -329, -329, -329, -329, -329, 219, -329 |
1141 }; | 1139 }; |
1142 | 1140 |
1143 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If | 1141 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If |
1144 positive, shift that token. If negative, reduce the rule which | 1142 positive, shift that token. If negative, reduce the rule which |
1145 number is the opposite. If YYTABLE_NINF, syntax error. */ | 1143 number is the opposite. If zero, do what YYDEFACT says. |
| 1144 If YYTABLE_NINF, syntax error. */ |
1146 #define YYTABLE_NINF -264 | 1145 #define YYTABLE_NINF -264 |
1147 static const yytype_int16 yytable[] = | 1146 static const yytype_int16 yytable[] = |
1148 { | 1147 { |
1149 98, 245, 127, 250, 110, 252, 229, 301, 230, 12, | 1148 98, 245, 127, 250, 110, 252, 229, 301, 230, 12, |
1150 13, 85, 290, 291, 86, 239, 257, -164, 270, 271, | 1149 13, 85, 290, 291, 86, 239, 257, -164, 270, 271, |
1151 272, 273, 274, 275, 276, 277, 278, 279, 114, 260, | 1150 272, 273, 274, 275, 276, 277, 278, 279, 114, 260, |
1152 261, 128, 129, 130, 255, 256, 127, 313, 30, 331, | 1151 261, 128, 129, 130, 255, 256, 127, 313, 30, 331, |
1153 31, 225, 32, 226, 33, 34, 35, 134, 303, 393, | 1152 31, 225, 32, 226, 33, 34, 35, 134, 303, 393, |
1154 310, 1, 139, 122, 123, 282, 4, 319, 303, 306, | 1153 310, 1, 139, 122, 123, 282, 4, 319, 303, 306, |
1155 393, 227, 303, 135, 304, 128, 129, 130, 311, 303, | 1154 393, 227, 303, 135, 304, 128, 129, 130, 311, 303, |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1542 0, 81, 0, 82, 0, 0, 0, 0, 0, 0, | 1541 0, 81, 0, 82, 0, 0, 0, 0, 0, 0, |
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
1549 0, 0, 0, 81, 0, 82 | 1548 0, 0, 0, 81, 0, 82 |
1550 }; | 1549 }; |
1551 | 1550 |
1552 #define yypact_value_is_default(yystate) \ | |
1553 ((yystate) == (-329)) | |
1554 | |
1555 #define yytable_value_is_error(yytable_value) \ | |
1556 YYID (0) | |
1557 | |
1558 static const yytype_int16 yycheck[] = | 1551 static const yytype_int16 yycheck[] = |
1559 { | 1552 { |
1560 9, 154, 4, 158, 76, 160, 141, 91, 141, 3, | 1553 9, 154, 4, 158, 76, 160, 141, 91, 141, 3, |
1561 4, 9, 86, 87, 9, 146, 171, 76, 93, 94, | 1554 4, 9, 86, 87, 9, 146, 171, 76, 93, 94, |
1562 95, 96, 97, 98, 99, 100, 101, 102, 71, 84, | 1555 95, 96, 97, 98, 99, 100, 101, 102, 71, 84, |
1563 85, 33, 34, 35, 169, 170, 4, 226, 32, 254, | 1556 85, 33, 34, 35, 169, 170, 4, 226, 32, 254, |
1564 34, 191, 36, 193, 38, 39, 40, 196, 196, 377, | 1557 34, 191, 36, 193, 38, 39, 40, 196, 196, 377, |
1565 193, 109, 95, 212, 213, 190, 78, 196, 196, 212, | 1558 193, 109, 95, 212, 213, 190, 78, 196, 196, 212, |
1566 388, 211, 196, 212, 212, 33, 34, 35, 211, 196, | 1559 388, 211, 196, 212, 212, 33, 34, 35, 211, 196, |
1567 113, 102, 0, 212, 212, 84, 210, 33, 34, 197, | 1560 113, 102, 0, 212, 212, 84, 210, 33, 34, 197, |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2033 #endif | 2026 #endif |
2034 | 2027 |
2035 #define YYRECOVERING() (!!yyerrstatus) | 2028 #define YYRECOVERING() (!!yyerrstatus) |
2036 | 2029 |
2037 #define YYBACKUP(Token, Value) \ | 2030 #define YYBACKUP(Token, Value) \ |
2038 do \ | 2031 do \ |
2039 if (yychar == YYEMPTY && yylen == 1) \ | 2032 if (yychar == YYEMPTY && yylen == 1) \ |
2040 { \ | 2033 { \ |
2041 yychar = (Token); \ | 2034 yychar = (Token); \ |
2042 yylval = (Value); \ | 2035 yylval = (Value); \ |
| 2036 yytoken = YYTRANSLATE (yychar); \ |
2043 YYPOPSTACK (1); \ | 2037 YYPOPSTACK (1); \ |
2044 goto yybackup; \ | 2038 goto yybackup; \ |
2045 } \ | 2039 } \ |
2046 else \ | 2040 else \ |
2047 { \ | 2041 { \ |
2048 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \ | 2042 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \ |
2049 YYERROR; \ | 2043 YYERROR; \ |
2050 } \ | 2044 } \ |
2051 while (YYID (0)) | 2045 while (YYID (0)) |
2052 | 2046 |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2288 if the built-in stack extension method is used). | 2282 if the built-in stack extension method is used). |
2289 | 2283 |
2290 Do not make this value too large; the results are undefined if | 2284 Do not make this value too large; the results are undefined if |
2291 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) | 2285 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) |
2292 evaluated with infinite-precision integer arithmetic. */ | 2286 evaluated with infinite-precision integer arithmetic. */ |
2293 | 2287 |
2294 #ifndef YYMAXDEPTH | 2288 #ifndef YYMAXDEPTH |
2295 # define YYMAXDEPTH 10000 | 2289 # define YYMAXDEPTH 10000 |
2296 #endif | 2290 #endif |
2297 | 2291 |
| 2292 |
2298 | 2293 |
2299 #if YYERROR_VERBOSE | 2294 #if YYERROR_VERBOSE |
2300 | 2295 |
2301 # ifndef yystrlen | 2296 # ifndef yystrlen |
2302 # if defined __GLIBC__ && defined _STRING_H | 2297 # if defined __GLIBC__ && defined _STRING_H |
2303 # define yystrlen strlen | 2298 # define yystrlen strlen |
2304 # else | 2299 # else |
2305 /* Return the length of YYSTR. */ | 2300 /* Return the length of YYSTR. */ |
2306 #if (defined __STDC__ || defined __C99__FUNC__ \ | 2301 #if (defined __STDC__ || defined __C99__FUNC__ \ |
2307 || defined __cplusplus || defined _MSC_VER) | 2302 || defined __cplusplus || defined _MSC_VER) |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2390 do_not_strip_quotes: ; | 2385 do_not_strip_quotes: ; |
2391 } | 2386 } |
2392 | 2387 |
2393 if (! yyres) | 2388 if (! yyres) |
2394 return yystrlen (yystr); | 2389 return yystrlen (yystr); |
2395 | 2390 |
2396 return yystpcpy (yyres, yystr) - yyres; | 2391 return yystpcpy (yyres, yystr) - yyres; |
2397 } | 2392 } |
2398 # endif | 2393 # endif |
2399 | 2394 |
2400 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message | 2395 /* Copy into YYRESULT an error message about the unexpected token |
2401 about the unexpected token YYTOKEN for the state stack whose top is | 2396 YYCHAR while in state YYSTATE. Return the number of bytes copied, |
2402 YYSSP. | 2397 including the terminating null byte. If YYRESULT is null, do not |
| 2398 copy anything; just return the number of bytes that would be |
| 2399 copied. As a special case, return 0 if an ordinary "syntax error" |
| 2400 message will do. Return YYSIZE_MAXIMUM if overflow occurs during |
| 2401 size calculation. */ |
| 2402 static YYSIZE_T |
| 2403 yysyntax_error (char *yyresult, int yystate, int yychar) |
| 2404 { |
| 2405 int yyn = yypact[yystate]; |
2403 | 2406 |
2404 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is | 2407 if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) |
2405 not large enough to hold the message. In that case, also set | 2408 return 0; |
2406 *YYMSG_ALLOC to the required number of bytes. Return 2 if the | 2409 else |
2407 required number of bytes is too large to store. */ | 2410 { |
2408 static int | 2411 int yytype = YYTRANSLATE (yychar); |
2409 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | 2412 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); |
2410 yytype_int16 *yyssp, int yytoken) | 2413 YYSIZE_T yysize = yysize0; |
2411 { | 2414 YYSIZE_T yysize1; |
2412 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); | 2415 int yysize_overflow = 0; |
2413 YYSIZE_T yysize = yysize0; | 2416 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; |
2414 YYSIZE_T yysize1; | 2417 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; |
2415 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; | 2418 int yyx; |
2416 /* Internationalized format string. */ | |
2417 const char *yyformat = 0; | |
2418 /* Arguments of yyformat. */ | |
2419 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; | |
2420 /* Number of reported tokens (one for the "unexpected", one per | |
2421 "expected"). */ | |
2422 int yycount = 0; | |
2423 | 2419 |
2424 /* There are many possibilities here to consider: | 2420 # if 0 |
2425 - Assume YYFAIL is not used. It's too flawed to consider. See | 2421 /* This is so xgettext sees the translatable formats that are |
2426 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> | 2422 » constructed on the fly. */ |
2427 for details. YYERROR is fine as it does not invoke this | 2423 YY_("syntax error, unexpected %s"); |
2428 function. | 2424 YY_("syntax error, unexpected %s, expecting %s"); |
2429 - If this state is a consistent state with a default action, then | 2425 YY_("syntax error, unexpected %s, expecting %s or %s"); |
2430 the only way this function was invoked is if the default action | 2426 YY_("syntax error, unexpected %s, expecting %s or %s or %s"); |
2431 is an error action. In that case, don't check for expected | 2427 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); |
2432 tokens because there are none. | 2428 # endif |
2433 - The only way there can be no lookahead present (in yychar) is if | 2429 char *yyfmt; |
2434 this state is a consistent state with a default action. Thus, | 2430 char const *yyf; |
2435 detecting the absence of a lookahead is sufficient to determine | 2431 static char const yyunexpected[] = "syntax error, unexpected %s"; |
2436 that there is no unexpected or expected token to report. In that | 2432 static char const yyexpecting[] = ", expecting %s"; |
2437 case, just report a simple "syntax error". | 2433 static char const yyor[] = " or %s"; |
2438 - Don't assume there isn't a lookahead just because this state is a | 2434 char yyformat[sizeof yyunexpected |
2439 consistent state with a default action. There might have been a | 2435 » » + sizeof yyexpecting - 1 |
2440 previous inconsistent state, consistent state with a non-default | 2436 » » + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) |
2441 action, or user semantic action that manipulated yychar. | 2437 » » * (sizeof yyor - 1))]; |
2442 - Of course, the expected token list depends on states to have | 2438 char const *yyprefix = yyexpecting; |
2443 correct lookahead information, and it depends on the parser not | |
2444 to perform extra reductions after fetching a lookahead from the | |
2445 scanner and before detecting a syntax error. Thus, state merging | |
2446 (from LALR or IELR) and default reductions corrupt the expected | |
2447 token list. However, the list is correct for canonical LR with | |
2448 one exception: it will still contain any token that will not be | |
2449 accepted due to an error action in a later state. | |
2450 */ | |
2451 if (yytoken != YYEMPTY) | |
2452 { | |
2453 int yyn = yypact[*yyssp]; | |
2454 yyarg[yycount++] = yytname[yytoken]; | |
2455 if (!yypact_value_is_default (yyn)) | |
2456 { | |
2457 /* Start YYX at -YYN if negative to avoid negative indexes in | |
2458 YYCHECK. In other words, skip the first -YYN actions for | |
2459 this state because they are default actions. */ | |
2460 int yyxbegin = yyn < 0 ? -yyn : 0; | |
2461 /* Stay within bounds of both yycheck and yytname. */ | |
2462 int yychecklim = YYLAST - yyn + 1; | |
2463 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; | |
2464 int yyx; | |
2465 | 2439 |
2466 for (yyx = yyxbegin; yyx < yyxend; ++yyx) | 2440 /* Start YYX at -YYN if negative to avoid negative indexes in |
2467 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR | 2441 » YYCHECK. */ |
2468 && !yytable_value_is_error (yytable[yyx + yyn])) | 2442 int yyxbegin = yyn < 0 ? -yyn : 0; |
2469 { | 2443 |
2470 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) | 2444 /* Stay within bounds of both yycheck and yytname. */ |
2471 { | 2445 int yychecklim = YYLAST - yyn + 1; |
2472 yycount = 1; | 2446 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; |
2473 yysize = yysize0; | 2447 int yycount = 1; |
2474 break; | 2448 |
2475 } | 2449 yyarg[0] = yytname[yytype]; |
2476 yyarg[yycount++] = yytname[yyx]; | 2450 yyfmt = yystpcpy (yyformat, yyunexpected); |
2477 yysize1 = yysize + yytnamerr (0, yytname[yyx]); | 2451 |
2478 if (! (yysize <= yysize1 | 2452 for (yyx = yyxbegin; yyx < yyxend; ++yyx) |
2479 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | 2453 » if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) |
2480 return 2; | 2454 » { |
2481 yysize = yysize1; | 2455 » if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) |
2482 } | 2456 » { |
2483 } | 2457 » » yycount = 1; |
| 2458 » » yysize = yysize0; |
| 2459 » » yyformat[sizeof yyunexpected - 1] = '\0'; |
| 2460 » » break; |
| 2461 » } |
| 2462 » yyarg[yycount++] = yytname[yyx]; |
| 2463 » yysize1 = yysize + yytnamerr (0, yytname[yyx]); |
| 2464 » yysize_overflow |= (yysize1 < yysize); |
| 2465 » yysize = yysize1; |
| 2466 » yyfmt = yystpcpy (yyfmt, yyprefix); |
| 2467 » yyprefix = yyor; |
| 2468 » } |
| 2469 |
| 2470 yyf = YY_(yyformat); |
| 2471 yysize1 = yysize + yystrlen (yyf); |
| 2472 yysize_overflow |= (yysize1 < yysize); |
| 2473 yysize = yysize1; |
| 2474 |
| 2475 if (yysize_overflow) |
| 2476 » return YYSIZE_MAXIMUM; |
| 2477 |
| 2478 if (yyresult) |
| 2479 » { |
| 2480 » /* Avoid sprintf, as that infringes on the user's name space. |
| 2481 » Don't have undefined behavior even if the translation |
| 2482 » produced a string with the wrong number of "%s"s. */ |
| 2483 » char *yyp = yyresult; |
| 2484 » int yyi = 0; |
| 2485 » while ((*yyp = *yyf) != '\0') |
| 2486 » { |
| 2487 » if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) |
| 2488 » » { |
| 2489 » » yyp += yytnamerr (yyp, yyarg[yyi++]); |
| 2490 » » yyf += 2; |
| 2491 » » } |
| 2492 » else |
| 2493 » » { |
| 2494 » » yyp++; |
| 2495 » » yyf++; |
| 2496 » » } |
| 2497 » } |
| 2498 » } |
| 2499 return yysize; |
2484 } | 2500 } |
2485 | |
2486 switch (yycount) | |
2487 { | |
2488 # define YYCASE_(N, S) \ | |
2489 case N: \ | |
2490 yyformat = S; \ | |
2491 break | |
2492 YYCASE_(0, YY_("syntax error")); | |
2493 YYCASE_(1, YY_("syntax error, unexpected %s")); | |
2494 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); | |
2495 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); | |
2496 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); | |
2497 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %
s")); | |
2498 # undef YYCASE_ | |
2499 } | |
2500 | |
2501 yysize1 = yysize + yystrlen (yyformat); | |
2502 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | |
2503 return 2; | |
2504 yysize = yysize1; | |
2505 | |
2506 if (*yymsg_alloc < yysize) | |
2507 { | |
2508 *yymsg_alloc = 2 * yysize; | |
2509 if (! (yysize <= *yymsg_alloc | |
2510 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) | |
2511 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; | |
2512 return 1; | |
2513 } | |
2514 | |
2515 /* Avoid sprintf, as that infringes on the user's name space. | |
2516 Don't have undefined behavior even if the translation | |
2517 produced a string with the wrong number of "%s"s. */ | |
2518 { | |
2519 char *yyp = *yymsg; | |
2520 int yyi = 0; | |
2521 while ((*yyp = *yyformat) != '\0') | |
2522 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) | |
2523 { | |
2524 yyp += yytnamerr (yyp, yyarg[yyi++]); | |
2525 yyformat += 2; | |
2526 } | |
2527 else | |
2528 { | |
2529 yyp++; | |
2530 yyformat++; | |
2531 } | |
2532 } | |
2533 return 0; | |
2534 } | 2501 } |
2535 #endif /* YYERROR_VERBOSE */ | 2502 #endif /* YYERROR_VERBOSE */ |
| 2503 |
2536 | 2504 |
2537 /*-----------------------------------------------. | 2505 /*-----------------------------------------------. |
2538 | Release the memory associated to this symbol. | | 2506 | Release the memory associated to this symbol. | |
2539 `-----------------------------------------------*/ | 2507 `-----------------------------------------------*/ |
2540 | 2508 |
2541 /*ARGSUSED*/ | 2509 /*ARGSUSED*/ |
2542 #if (defined __STDC__ || defined __C99__FUNC__ \ | 2510 #if (defined __STDC__ || defined __C99__FUNC__ \ |
2543 || defined __cplusplus || defined _MSC_VER) | 2511 || defined __cplusplus || defined _MSC_VER) |
2544 static void | 2512 static void |
2545 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
np, struct _mesa_glsl_parse_state *state) | 2513 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
np, struct _mesa_glsl_parse_state *state) |
(...skipping 16 matching lines...) Expand all Loading... |
2562 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); | 2530 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); |
2563 | 2531 |
2564 switch (yytype) | 2532 switch (yytype) |
2565 { | 2533 { |
2566 | 2534 |
2567 default: | 2535 default: |
2568 break; | 2536 break; |
2569 } | 2537 } |
2570 } | 2538 } |
2571 | 2539 |
2572 | |
2573 /* Prevent warnings from -Wmissing-prototypes. */ | 2540 /* Prevent warnings from -Wmissing-prototypes. */ |
2574 #ifdef YYPARSE_PARAM | 2541 #ifdef YYPARSE_PARAM |
2575 #if defined __STDC__ || defined __cplusplus | 2542 #if defined __STDC__ || defined __cplusplus |
2576 int yyparse (void *YYPARSE_PARAM); | 2543 int yyparse (void *YYPARSE_PARAM); |
2577 #else | 2544 #else |
2578 int yyparse (); | 2545 int yyparse (); |
2579 #endif | 2546 #endif |
2580 #else /* ! YYPARSE_PARAM */ | 2547 #else /* ! YYPARSE_PARAM */ |
2581 #if defined __STDC__ || defined __cplusplus | 2548 #if defined __STDC__ || defined __cplusplus |
2582 int yyparse (struct _mesa_glsl_parse_state *state); | 2549 int yyparse (struct _mesa_glsl_parse_state *state); |
2583 #else | 2550 #else |
2584 int yyparse (); | 2551 int yyparse (); |
2585 #endif | 2552 #endif |
2586 #endif /* ! YYPARSE_PARAM */ | 2553 #endif /* ! YYPARSE_PARAM */ |
2587 | 2554 |
2588 | 2555 |
2589 /*----------. | 2556 |
2590 | yyparse. | | 2557 |
2591 `----------*/ | 2558 |
| 2559 /*-------------------------. |
| 2560 | yyparse or yypush_parse. | |
| 2561 `-------------------------*/ |
2592 | 2562 |
2593 #ifdef YYPARSE_PARAM | 2563 #ifdef YYPARSE_PARAM |
2594 #if (defined __STDC__ || defined __C99__FUNC__ \ | 2564 #if (defined __STDC__ || defined __C99__FUNC__ \ |
2595 || defined __cplusplus || defined _MSC_VER) | 2565 || defined __cplusplus || defined _MSC_VER) |
2596 int | 2566 int |
2597 yyparse (void *YYPARSE_PARAM) | 2567 yyparse (void *YYPARSE_PARAM) |
2598 #else | 2568 #else |
2599 int | 2569 int |
2600 yyparse (YYPARSE_PARAM) | 2570 yyparse (YYPARSE_PARAM) |
2601 void *YYPARSE_PARAM; | 2571 void *YYPARSE_PARAM; |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2700 yylsp = yyls; | 2670 yylsp = yyls; |
2701 | 2671 |
2702 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL | 2672 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL |
2703 /* Initialize the default location before parsing starts. */ | 2673 /* Initialize the default location before parsing starts. */ |
2704 yylloc.first_line = yylloc.last_line = 1; | 2674 yylloc.first_line = yylloc.last_line = 1; |
2705 yylloc.first_column = yylloc.last_column = 1; | 2675 yylloc.first_column = yylloc.last_column = 1; |
2706 #endif | 2676 #endif |
2707 | 2677 |
2708 /* User initialization code. */ | 2678 /* User initialization code. */ |
2709 | 2679 |
2710 /* Line 1590 of yacc.c */ | 2680 /* Line 1251 of yacc.c */ |
2711 #line 41 "glsl_parser.ypp" | 2681 #line 41 "glsl_parser.ypp" |
2712 { | 2682 { |
2713 yylloc.first_line = 1; | 2683 yylloc.first_line = 1; |
2714 yylloc.first_column = 1; | 2684 yylloc.first_column = 1; |
2715 yylloc.last_line = 1; | 2685 yylloc.last_line = 1; |
2716 yylloc.last_column = 1; | 2686 yylloc.last_column = 1; |
2717 yylloc.source = 0; | 2687 yylloc.source = 0; |
2718 } | 2688 } |
2719 | 2689 |
2720 /* Line 1590 of yacc.c */ | 2690 /* Line 1251 of yacc.c */ |
2721 #line 2722 "glsl_parser.cpp" | 2691 #line 2691 "glsl_parser.cpp" |
2722 yylsp[0] = yylloc; | 2692 yylsp[0] = yylloc; |
2723 | 2693 |
2724 goto yysetstate; | 2694 goto yysetstate; |
2725 | 2695 |
2726 /*------------------------------------------------------------. | 2696 /*------------------------------------------------------------. |
2727 | yynewstate -- Push a new state, which is found in yystate. | | 2697 | yynewstate -- Push a new state, which is found in yystate. | |
2728 `------------------------------------------------------------*/ | 2698 `------------------------------------------------------------*/ |
2729 yynewstate: | 2699 yynewstate: |
2730 /* In all cases, when you get here, the value and location stacks | 2700 /* In all cases, when you get here, the value and location stacks |
2731 have just been pushed. So pushing a state here evens the stacks. */ | 2701 have just been pushed. So pushing a state here evens the stacks. */ |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2810 /*-----------. | 2780 /*-----------. |
2811 | yybackup. | | 2781 | yybackup. | |
2812 `-----------*/ | 2782 `-----------*/ |
2813 yybackup: | 2783 yybackup: |
2814 | 2784 |
2815 /* Do appropriate processing given the current state. Read a | 2785 /* Do appropriate processing given the current state. Read a |
2816 lookahead token if we need one and don't already have one. */ | 2786 lookahead token if we need one and don't already have one. */ |
2817 | 2787 |
2818 /* First try to decide what to do without reference to lookahead token. */ | 2788 /* First try to decide what to do without reference to lookahead token. */ |
2819 yyn = yypact[yystate]; | 2789 yyn = yypact[yystate]; |
2820 if (yypact_value_is_default (yyn)) | 2790 if (yyn == YYPACT_NINF) |
2821 goto yydefault; | 2791 goto yydefault; |
2822 | 2792 |
2823 /* Not known => get a lookahead token if don't already have one. */ | 2793 /* Not known => get a lookahead token if don't already have one. */ |
2824 | 2794 |
2825 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ | 2795 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ |
2826 if (yychar == YYEMPTY) | 2796 if (yychar == YYEMPTY) |
2827 { | 2797 { |
2828 YYDPRINTF ((stderr, "Reading a token: ")); | 2798 YYDPRINTF ((stderr, "Reading a token: ")); |
2829 yychar = YYLEX; | 2799 yychar = YYLEX; |
2830 } | 2800 } |
(...skipping 10 matching lines...) Expand all Loading... |
2841 } | 2811 } |
2842 | 2812 |
2843 /* If the proper action on seeing token YYTOKEN is to reduce or to | 2813 /* If the proper action on seeing token YYTOKEN is to reduce or to |
2844 detect an error, take that action. */ | 2814 detect an error, take that action. */ |
2845 yyn += yytoken; | 2815 yyn += yytoken; |
2846 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | 2816 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) |
2847 goto yydefault; | 2817 goto yydefault; |
2848 yyn = yytable[yyn]; | 2818 yyn = yytable[yyn]; |
2849 if (yyn <= 0) | 2819 if (yyn <= 0) |
2850 { | 2820 { |
2851 if (yytable_value_is_error (yyn)) | 2821 if (yyn == 0 || yyn == YYTABLE_NINF) |
2852 goto yyerrlab; | 2822 » goto yyerrlab; |
2853 yyn = -yyn; | 2823 yyn = -yyn; |
2854 goto yyreduce; | 2824 goto yyreduce; |
2855 } | 2825 } |
2856 | 2826 |
2857 /* Count tokens shifted since error; after three, turn off error | 2827 /* Count tokens shifted since error; after three, turn off error |
2858 status. */ | 2828 status. */ |
2859 if (yyerrstatus) | 2829 if (yyerrstatus) |
2860 yyerrstatus--; | 2830 yyerrstatus--; |
2861 | 2831 |
2862 /* Shift the lookahead token. */ | 2832 /* Shift the lookahead token. */ |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2898 GCC warning that YYVAL may be used uninitialized. */ | 2868 GCC warning that YYVAL may be used uninitialized. */ |
2899 yyval = yyvsp[1-yylen]; | 2869 yyval = yyvsp[1-yylen]; |
2900 | 2870 |
2901 /* Default location. */ | 2871 /* Default location. */ |
2902 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); | 2872 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); |
2903 YY_REDUCE_PRINT (yyn); | 2873 YY_REDUCE_PRINT (yyn); |
2904 switch (yyn) | 2874 switch (yyn) |
2905 { | 2875 { |
2906 case 2: | 2876 case 2: |
2907 | 2877 |
2908 /* Line 1806 of yacc.c */ | 2878 /* Line 1464 of yacc.c */ |
2909 #line 214 "glsl_parser.ypp" | 2879 #line 214 "glsl_parser.ypp" |
2910 { | 2880 { |
2911 _mesa_glsl_initialize_types(state); | 2881 _mesa_glsl_initialize_types(state); |
2912 » } | 2882 » ;} |
2913 break; | 2883 break; |
2914 | 2884 |
2915 case 5: | 2885 case 5: |
2916 | 2886 |
2917 /* Line 1806 of yacc.c */ | 2887 /* Line 1464 of yacc.c */ |
2918 #line 223 "glsl_parser.ypp" | 2888 #line 223 "glsl_parser.ypp" |
2919 { | 2889 { |
2920 switch ((yyvsp[(2) - (3)].n)) { | 2890 switch ((yyvsp[(2) - (3)].n)) { |
2921 case 100: | 2891 case 100: |
2922 state->es_shader = true; | 2892 state->es_shader = true; |
2923 case 110: | 2893 case 110: |
2924 case 120: | 2894 case 120: |
2925 case 130: | 2895 case 130: |
2926 /* FINISHME: Check against implementation support versions. */ | 2896 /* FINISHME: Check against implementation support versions. */ |
2927 state->language_version = (yyvsp[(2) - (3)].n); | 2897 state->language_version = (yyvsp[(2) - (3)].n); |
2928 break; | 2898 break; |
2929 default: | 2899 default: |
2930 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language ve
rsion" | 2900 _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language ve
rsion" |
2931 "%u is not supported\n", (yyvsp[(2) - (3)].n)); | 2901 "%u is not supported\n", (yyvsp[(2) - (3)].n)); |
2932 break; | 2902 break; |
2933 } | 2903 } |
2934 » } | 2904 » ;} |
2935 break; | 2905 break; |
2936 | 2906 |
2937 case 12: | 2907 case 12: |
2938 | 2908 |
2939 /* Line 1806 of yacc.c */ | 2909 /* Line 1464 of yacc.c */ |
2940 #line 255 "glsl_parser.ypp" | 2910 #line 255 "glsl_parser.ypp" |
2941 { | 2911 { |
2942 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (y
ylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) { | 2912 if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (y
ylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) { |
2943 YYERROR; | 2913 YYERROR; |
2944 } | 2914 } |
2945 » } | 2915 » ;} |
2946 break; | 2916 break; |
2947 | 2917 |
2948 case 13: | 2918 case 13: |
2949 | 2919 |
2950 /* Line 1806 of yacc.c */ | 2920 /* Line 1464 of yacc.c */ |
2951 #line 264 "glsl_parser.ypp" | 2921 #line 264 "glsl_parser.ypp" |
2952 { | 2922 { |
2953 /* FINISHME: The NULL test is only required because 'precision' | 2923 /* FINISHME: The NULL test is only required because 'precision' |
2954 * FINISHME: statements are not yet supported. | 2924 * FINISHME: statements are not yet supported. |
2955 */ | 2925 */ |
2956 if ((yyvsp[(1) - (1)].node) != NULL) | 2926 if ((yyvsp[(1) - (1)].node) != NULL) |
2957 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link)
; | 2927 state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link)
; |
2958 » } | 2928 » ;} |
2959 break; | 2929 break; |
2960 | 2930 |
2961 case 14: | 2931 case 14: |
2962 | 2932 |
2963 /* Line 1806 of yacc.c */ | 2933 /* Line 1464 of yacc.c */ |
2964 #line 272 "glsl_parser.ypp" | 2934 #line 272 "glsl_parser.ypp" |
2965 { | 2935 { |
2966 /* FINISHME: The NULL test is only required because 'precision' | 2936 /* FINISHME: The NULL test is only required because 'precision' |
2967 * FINISHME: statements are not yet supported. | 2937 * FINISHME: statements are not yet supported. |
2968 */ | 2938 */ |
2969 if ((yyvsp[(2) - (2)].node) != NULL) | 2939 if ((yyvsp[(2) - (2)].node) != NULL) |
2970 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link)
; | 2940 state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link)
; |
2971 » } | 2941 » ;} |
2972 break; | 2942 break; |
2973 | 2943 |
2974 case 16: | 2944 case 16: |
2975 | 2945 |
2976 /* Line 1806 of yacc.c */ | 2946 /* Line 1464 of yacc.c */ |
2977 #line 287 "glsl_parser.ypp" | 2947 #line 287 "glsl_parser.ypp" |
2978 { | 2948 { |
2979 void *ctx = state; | 2949 void *ctx = state; |
2980 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NU
LL, NULL); | 2950 (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NU
LL, NULL); |
2981 (yyval.expression)->set_location(yylloc); | 2951 (yyval.expression)->set_location(yylloc); |
2982 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)]
.identifier); | 2952 (yyval.expression)->primary_expression.identifier = (yyvsp[(1) - (1)]
.identifier); |
2983 » } | 2953 » ;} |
2984 break; | 2954 break; |
2985 | 2955 |
2986 case 17: | 2956 case 17: |
2987 | 2957 |
2988 /* Line 1806 of yacc.c */ | 2958 /* Line 1464 of yacc.c */ |
2989 #line 294 "glsl_parser.ypp" | 2959 #line 294 "glsl_parser.ypp" |
2990 { | 2960 { |
2991 void *ctx = state; | 2961 void *ctx = state; |
2992 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL,
NULL, NULL); | 2962 (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL,
NULL, NULL); |
2993 (yyval.expression)->set_location(yylloc); | 2963 (yyval.expression)->set_location(yylloc); |
2994 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1
)].n); | 2964 (yyval.expression)->primary_expression.int_constant = (yyvsp[(1) - (1
)].n); |
2995 » } | 2965 » ;} |
2996 break; | 2966 break; |
2997 | 2967 |
2998 case 18: | 2968 case 18: |
2999 | 2969 |
3000 /* Line 1806 of yacc.c */ | 2970 /* Line 1464 of yacc.c */ |
3001 #line 301 "glsl_parser.ypp" | 2971 #line 301 "glsl_parser.ypp" |
3002 { | 2972 { |
3003 void *ctx = state; | 2973 void *ctx = state; |
3004 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL,
NULL, NULL); | 2974 (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL,
NULL, NULL); |
3005 (yyval.expression)->set_location(yylloc); | 2975 (yyval.expression)->set_location(yylloc); |
3006 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (
1)].n); | 2976 (yyval.expression)->primary_expression.uint_constant = (yyvsp[(1) - (
1)].n); |
3007 » } | 2977 » ;} |
3008 break; | 2978 break; |
3009 | 2979 |
3010 case 19: | 2980 case 19: |
3011 | 2981 |
3012 /* Line 1806 of yacc.c */ | 2982 /* Line 1464 of yacc.c */ |
3013 #line 308 "glsl_parser.ypp" | 2983 #line 308 "glsl_parser.ypp" |
3014 { | 2984 { |
3015 void *ctx = state; | 2985 void *ctx = state; |
3016 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL
, NULL, NULL); | 2986 (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL
, NULL, NULL); |
3017 (yyval.expression)->set_location(yylloc); | 2987 (yyval.expression)->set_location(yylloc); |
3018 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) -
(1)].real); | 2988 (yyval.expression)->primary_expression.float_constant = (yyvsp[(1) -
(1)].real); |
3019 » } | 2989 » ;} |
3020 break; | 2990 break; |
3021 | 2991 |
3022 case 20: | 2992 case 20: |
3023 | 2993 |
3024 /* Line 1806 of yacc.c */ | 2994 /* Line 1464 of yacc.c */ |
3025 #line 315 "glsl_parser.ypp" | 2995 #line 315 "glsl_parser.ypp" |
3026 { | 2996 { |
3027 void *ctx = state; | 2997 void *ctx = state; |
3028 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL,
NULL, NULL); | 2998 (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL,
NULL, NULL); |
3029 (yyval.expression)->set_location(yylloc); | 2999 (yyval.expression)->set_location(yylloc); |
3030 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (
1)].n); | 3000 (yyval.expression)->primary_expression.bool_constant = (yyvsp[(1) - (
1)].n); |
3031 » } | 3001 » ;} |
3032 break; | 3002 break; |
3033 | 3003 |
3034 case 21: | 3004 case 21: |
3035 | 3005 |
3036 /* Line 1806 of yacc.c */ | 3006 /* Line 1464 of yacc.c */ |
3037 #line 322 "glsl_parser.ypp" | 3007 #line 322 "glsl_parser.ypp" |
3038 { | 3008 { |
3039 (yyval.expression) = (yyvsp[(2) - (3)].expression); | 3009 (yyval.expression) = (yyvsp[(2) - (3)].expression); |
3040 » } | 3010 » ;} |
3041 break; | 3011 break; |
3042 | 3012 |
3043 case 23: | 3013 case 23: |
3044 | 3014 |
3045 /* Line 1806 of yacc.c */ | 3015 /* Line 1464 of yacc.c */ |
3046 #line 330 "glsl_parser.ypp" | 3016 #line 330 "glsl_parser.ypp" |
3047 { | 3017 { |
3048 void *ctx = state; | 3018 void *ctx = state; |
3049 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[
(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL); | 3019 (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[
(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL); |
3050 (yyval.expression)->set_location(yylloc); | 3020 (yyval.expression)->set_location(yylloc); |
3051 » } | 3021 » ;} |
3052 break; | 3022 break; |
3053 | 3023 |
3054 case 24: | 3024 case 24: |
3055 | 3025 |
3056 /* Line 1806 of yacc.c */ | 3026 /* Line 1464 of yacc.c */ |
3057 #line 336 "glsl_parser.ypp" | 3027 #line 336 "glsl_parser.ypp" |
3058 { | 3028 { |
3059 (yyval.expression) = (yyvsp[(1) - (1)].expression); | 3029 (yyval.expression) = (yyvsp[(1) - (1)].expression); |
3060 » } | 3030 » ;} |
3061 break; | 3031 break; |
3062 | 3032 |
3063 case 25: | 3033 case 25: |
3064 | 3034 |
3065 /* Line 1806 of yacc.c */ | 3035 /* Line 1464 of yacc.c */ |
3066 #line 340 "glsl_parser.ypp" | 3036 #line 340 "glsl_parser.ypp" |
3067 { | 3037 { |
3068 void *ctx = state; | 3038 void *ctx = state; |
3069 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy
vsp[(1) - (3)].expression), NULL, NULL); | 3039 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy
vsp[(1) - (3)].expression), NULL, NULL); |
3070 (yyval.expression)->set_location(yylloc); | 3040 (yyval.expression)->set_location(yylloc); |
3071 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)]
.identifier); | 3041 (yyval.expression)->primary_expression.identifier = (yyvsp[(3) - (3)]
.identifier); |
3072 » } | 3042 » ;} |
3073 break; | 3043 break; |
3074 | 3044 |
3075 case 26: | 3045 case 26: |
3076 | 3046 |
3077 /* Line 1806 of yacc.c */ | 3047 /* Line 1464 of yacc.c */ |
3078 #line 347 "glsl_parser.ypp" | 3048 #line 347 "glsl_parser.ypp" |
3079 { | 3049 { |
3080 void *ctx = state; | 3050 void *ctx = state; |
3081 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1)
- (2)].expression), NULL, NULL); | 3051 (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1)
- (2)].expression), NULL, NULL); |
3082 (yyval.expression)->set_location(yylloc); | 3052 (yyval.expression)->set_location(yylloc); |
3083 » } | 3053 » ;} |
3084 break; | 3054 break; |
3085 | 3055 |
3086 case 27: | 3056 case 27: |
3087 | 3057 |
3088 /* Line 1806 of yacc.c */ | 3058 /* Line 1464 of yacc.c */ |
3089 #line 353 "glsl_parser.ypp" | 3059 #line 353 "glsl_parser.ypp" |
3090 { | 3060 { |
3091 void *ctx = state; | 3061 void *ctx = state; |
3092 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1)
- (2)].expression), NULL, NULL); | 3062 (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1)
- (2)].expression), NULL, NULL); |
3093 (yyval.expression)->set_location(yylloc); | 3063 (yyval.expression)->set_location(yylloc); |
3094 » } | 3064 » ;} |
3095 break; | 3065 break; |
3096 | 3066 |
3097 case 31: | 3067 case 31: |
3098 | 3068 |
3099 /* Line 1806 of yacc.c */ | 3069 /* Line 1464 of yacc.c */ |
3100 #line 371 "glsl_parser.ypp" | 3070 #line 371 "glsl_parser.ypp" |
3101 { | 3071 { |
3102 void *ctx = state; | 3072 void *ctx = state; |
3103 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy
vsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); | 3073 (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yy
vsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); |
3104 (yyval.expression)->set_location(yylloc); | 3074 (yyval.expression)->set_location(yylloc); |
3105 » } | 3075 » ;} |
3106 break; | 3076 break; |
3107 | 3077 |
3108 case 36: | 3078 case 36: |
3109 | 3079 |
3110 /* Line 1806 of yacc.c */ | 3080 /* Line 1464 of yacc.c */ |
3111 #line 390 "glsl_parser.ypp" | 3081 #line 390 "glsl_parser.ypp" |
3112 { | 3082 { |
3113 (yyval.expression) = (yyvsp[(1) - (2)].expression); | 3083 (yyval.expression) = (yyvsp[(1) - (2)].expression); |
3114 (yyval.expression)->set_location(yylloc); | 3084 (yyval.expression)->set_location(yylloc); |
3115 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].express
ion)->link); | 3085 (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].express
ion)->link); |
3116 » } | 3086 » ;} |
3117 break; | 3087 break; |
3118 | 3088 |
3119 case 37: | 3089 case 37: |
3120 | 3090 |
3121 /* Line 1806 of yacc.c */ | 3091 /* Line 1464 of yacc.c */ |
3122 #line 396 "glsl_parser.ypp" | 3092 #line 396 "glsl_parser.ypp" |
3123 { | 3093 { |
3124 (yyval.expression) = (yyvsp[(1) - (3)].expression); | 3094 (yyval.expression) = (yyvsp[(1) - (3)].expression); |
3125 (yyval.expression)->set_location(yylloc); | 3095 (yyval.expression)->set_location(yylloc); |
3126 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); | 3096 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); |
3127 » } | 3097 » ;} |
3128 break; | 3098 break; |
3129 | 3099 |
3130 case 39: | 3100 case 39: |
3131 | 3101 |
3132 /* Line 1806 of yacc.c */ | 3102 /* Line 1464 of yacc.c */ |
3133 #line 412 "glsl_parser.ypp" | 3103 #line 412 "glsl_parser.ypp" |
3134 { | 3104 { |
3135 void *ctx = state; | 3105 void *ctx = state; |
3136 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1
)].type_specifier)); | 3106 (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1
)].type_specifier)); |
3137 (yyval.expression)->set_location(yylloc); | 3107 (yyval.expression)->set_location(yylloc); |
3138 » } | 3108 » ;} |
3139 break; | 3109 break; |
3140 | 3110 |
3141 case 40: | 3111 case 40: |
3142 | 3112 |
3143 /* Line 1806 of yacc.c */ | 3113 /* Line 1464 of yacc.c */ |
3144 #line 418 "glsl_parser.ypp" | 3114 #line 418 "glsl_parser.ypp" |
3145 { | 3115 { |
3146 void *ctx = state; | 3116 void *ctx = state; |
3147 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id
entifier)); | 3117 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id
entifier)); |
3148 (yyval.expression) = new(ctx) ast_function_expression(callee); | 3118 (yyval.expression) = new(ctx) ast_function_expression(callee); |
3149 (yyval.expression)->set_location(yylloc); | 3119 (yyval.expression)->set_location(yylloc); |
3150 » } | 3120 » ;} |
3151 break; | 3121 break; |
3152 | 3122 |
3153 case 41: | 3123 case 41: |
3154 | 3124 |
3155 /* Line 1806 of yacc.c */ | 3125 /* Line 1464 of yacc.c */ |
3156 #line 425 "glsl_parser.ypp" | 3126 #line 425 "glsl_parser.ypp" |
3157 { | 3127 { |
3158 void *ctx = state; | 3128 void *ctx = state; |
3159 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id
entifier)); | 3129 ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].id
entifier)); |
3160 (yyval.expression) = new(ctx) ast_function_expression(callee); | 3130 (yyval.expression) = new(ctx) ast_function_expression(callee); |
3161 (yyval.expression)->set_location(yylloc); | 3131 (yyval.expression)->set_location(yylloc); |
3162 » } | 3132 » ;} |
3163 break; | 3133 break; |
3164 | 3134 |
3165 case 43: | 3135 case 43: |
3166 | 3136 |
3167 /* Line 1806 of yacc.c */ | 3137 /* Line 1464 of yacc.c */ |
3168 #line 437 "glsl_parser.ypp" | 3138 #line 437 "glsl_parser.ypp" |
3169 { | 3139 { |
3170 void *ctx = state; | 3140 void *ctx = state; |
3171 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2)
- (2)].expression), NULL, NULL); | 3141 (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2)
- (2)].expression), NULL, NULL); |
3172 (yyval.expression)->set_location(yylloc); | 3142 (yyval.expression)->set_location(yylloc); |
3173 » } | 3143 » ;} |
3174 break; | 3144 break; |
3175 | 3145 |
3176 case 44: | 3146 case 44: |
3177 | 3147 |
3178 /* Line 1806 of yacc.c */ | 3148 /* Line 1464 of yacc.c */ |
3179 #line 443 "glsl_parser.ypp" | 3149 #line 443 "glsl_parser.ypp" |
3180 { | 3150 { |
3181 void *ctx = state; | 3151 void *ctx = state; |
3182 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2)
- (2)].expression), NULL, NULL); | 3152 (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2)
- (2)].expression), NULL, NULL); |
3183 (yyval.expression)->set_location(yylloc); | 3153 (yyval.expression)->set_location(yylloc); |
3184 » } | 3154 » ;} |
3185 break; | 3155 break; |
3186 | 3156 |
3187 case 45: | 3157 case 45: |
3188 | 3158 |
3189 /* Line 1806 of yacc.c */ | 3159 /* Line 1464 of yacc.c */ |
3190 #line 449 "glsl_parser.ypp" | 3160 #line 449 "glsl_parser.ypp" |
3191 { | 3161 { |
3192 void *ctx = state; | 3162 void *ctx = state; |
3193 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (y
yvsp[(2) - (2)].expression), NULL, NULL); | 3163 (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (y
yvsp[(2) - (2)].expression), NULL, NULL); |
3194 (yyval.expression)->set_location(yylloc); | 3164 (yyval.expression)->set_location(yylloc); |
3195 » } | 3165 » ;} |
3196 break; | 3166 break; |
3197 | 3167 |
3198 case 46: | 3168 case 46: |
3199 | 3169 |
3200 /* Line 1806 of yacc.c */ | 3170 /* Line 1464 of yacc.c */ |
3201 #line 458 "glsl_parser.ypp" | 3171 #line 458 "glsl_parser.ypp" |
3202 { (yyval.n) = ast_plus; } | 3172 { (yyval.n) = ast_plus; ;} |
3203 break; | 3173 break; |
3204 | 3174 |
3205 case 47: | 3175 case 47: |
3206 | 3176 |
3207 /* Line 1806 of yacc.c */ | 3177 /* Line 1464 of yacc.c */ |
3208 #line 459 "glsl_parser.ypp" | 3178 #line 459 "glsl_parser.ypp" |
3209 { (yyval.n) = ast_neg; } | 3179 { (yyval.n) = ast_neg; ;} |
3210 break; | 3180 break; |
3211 | 3181 |
3212 case 48: | 3182 case 48: |
3213 | 3183 |
3214 /* Line 1806 of yacc.c */ | 3184 /* Line 1464 of yacc.c */ |
3215 #line 460 "glsl_parser.ypp" | 3185 #line 460 "glsl_parser.ypp" |
3216 { (yyval.n) = ast_logic_not; } | 3186 { (yyval.n) = ast_logic_not; ;} |
3217 break; | 3187 break; |
3218 | 3188 |
3219 case 49: | 3189 case 49: |
3220 | 3190 |
3221 /* Line 1806 of yacc.c */ | 3191 /* Line 1464 of yacc.c */ |
3222 #line 461 "glsl_parser.ypp" | 3192 #line 461 "glsl_parser.ypp" |
3223 { (yyval.n) = ast_bit_not; } | 3193 { (yyval.n) = ast_bit_not; ;} |
3224 break; | 3194 break; |
3225 | 3195 |
3226 case 51: | 3196 case 51: |
3227 | 3197 |
3228 /* Line 1806 of yacc.c */ | 3198 /* Line 1464 of yacc.c */ |
3229 #line 467 "glsl_parser.ypp" | 3199 #line 467 "glsl_parser.ypp" |
3230 { | 3200 { |
3231 void *ctx = state; | 3201 void *ctx = state; |
3232 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); | 3202 (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
3233 (yyval.expression)->set_location(yylloc); | 3203 (yyval.expression)->set_location(yylloc); |
3234 » } | 3204 » ;} |
3235 break; | 3205 break; |
3236 | 3206 |
3237 case 52: | 3207 case 52: |
3238 | 3208 |
3239 /* Line 1806 of yacc.c */ | 3209 /* Line 1464 of yacc.c */ |
3240 #line 473 "glsl_parser.ypp" | 3210 #line 473 "glsl_parser.ypp" |
3241 { | 3211 { |
3242 void *ctx = state; | 3212 void *ctx = state; |
3243 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); | 3213 (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
3244 (yyval.expression)->set_location(yylloc); | 3214 (yyval.expression)->set_location(yylloc); |
3245 » } | 3215 » ;} |
3246 break; | 3216 break; |
3247 | 3217 |
3248 case 53: | 3218 case 53: |
3249 | 3219 |
3250 /* Line 1806 of yacc.c */ | 3220 /* Line 1464 of yacc.c */ |
3251 #line 479 "glsl_parser.ypp" | 3221 #line 479 "glsl_parser.ypp" |
3252 { | 3222 { |
3253 void *ctx = state; | 3223 void *ctx = state; |
3254 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); | 3224 (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
3255 (yyval.expression)->set_location(yylloc); | 3225 (yyval.expression)->set_location(yylloc); |
3256 » } | 3226 » ;} |
3257 break; | 3227 break; |
3258 | 3228 |
3259 case 55: | 3229 case 55: |
3260 | 3230 |
3261 /* Line 1806 of yacc.c */ | 3231 /* Line 1464 of yacc.c */ |
3262 #line 489 "glsl_parser.ypp" | 3232 #line 489 "glsl_parser.ypp" |
3263 { | 3233 { |
3264 void *ctx = state; | 3234 void *ctx = state; |
3265 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); | 3235 (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
3266 (yyval.expression)->set_location(yylloc); | 3236 (yyval.expression)->set_location(yylloc); |
3267 » } | 3237 » ;} |
3268 break; | 3238 break; |
3269 | 3239 |
3270 case 56: | 3240 case 56: |
3271 | 3241 |
3272 /* Line 1806 of yacc.c */ | 3242 /* Line 1464 of yacc.c */ |
3273 #line 495 "glsl_parser.ypp" | 3243 #line 495 "glsl_parser.ypp" |
3274 { | 3244 { |
3275 void *ctx = state; | 3245 void *ctx = state; |
3276 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); | 3246 (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
3277 (yyval.expression)->set_location(yylloc); | 3247 (yyval.expression)->set_location(yylloc); |
3278 » } | 3248 » ;} |
3279 break; | 3249 break; |
3280 | 3250 |
3281 case 58: | 3251 case 58: |
3282 | 3252 |
3283 /* Line 1806 of yacc.c */ | 3253 /* Line 1464 of yacc.c */ |
3284 #line 505 "glsl_parser.ypp" | 3254 #line 505 "glsl_parser.ypp" |
3285 { | 3255 { |
3286 void *ctx = state; | 3256 void *ctx = state; |
3287 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3257 (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3288 (yyval.expression)->set_location(yylloc); | 3258 (yyval.expression)->set_location(yylloc); |
3289 » } | 3259 » ;} |
3290 break; | 3260 break; |
3291 | 3261 |
3292 case 59: | 3262 case 59: |
3293 | 3263 |
3294 /* Line 1806 of yacc.c */ | 3264 /* Line 1464 of yacc.c */ |
3295 #line 511 "glsl_parser.ypp" | 3265 #line 511 "glsl_parser.ypp" |
3296 { | 3266 { |
3297 void *ctx = state; | 3267 void *ctx = state; |
3298 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3268 (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3299 (yyval.expression)->set_location(yylloc); | 3269 (yyval.expression)->set_location(yylloc); |
3300 » } | 3270 » ;} |
3301 break; | 3271 break; |
3302 | 3272 |
3303 case 61: | 3273 case 61: |
3304 | 3274 |
3305 /* Line 1806 of yacc.c */ | 3275 /* Line 1464 of yacc.c */ |
3306 #line 521 "glsl_parser.ypp" | 3276 #line 521 "glsl_parser.ypp" |
3307 { | 3277 { |
3308 void *ctx = state; | 3278 void *ctx = state; |
3309 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); | 3279 (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1)
- (3)].expression), (yyvsp[(3) - (3)].expression)); |
3310 (yyval.expression)->set_location(yylloc); | 3280 (yyval.expression)->set_location(yylloc); |
3311 » } | 3281 » ;} |
3312 break; | 3282 break; |
3313 | 3283 |
3314 case 62: | 3284 case 62: |
3315 | 3285 |
3316 /* Line 1806 of yacc.c */ | 3286 /* Line 1464 of yacc.c */ |
3317 #line 527 "glsl_parser.ypp" | 3287 #line 527 "glsl_parser.ypp" |
3318 { | 3288 { |
3319 void *ctx = state; | 3289 void *ctx = state; |
3320 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3290 (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3321 (yyval.expression)->set_location(yylloc); | 3291 (yyval.expression)->set_location(yylloc); |
3322 » } | 3292 » ;} |
3323 break; | 3293 break; |
3324 | 3294 |
3325 case 63: | 3295 case 63: |
3326 | 3296 |
3327 /* Line 1806 of yacc.c */ | 3297 /* Line 1464 of yacc.c */ |
3328 #line 533 "glsl_parser.ypp" | 3298 #line 533 "glsl_parser.ypp" |
3329 { | 3299 { |
3330 void *ctx = state; | 3300 void *ctx = state; |
3331 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3301 (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3332 (yyval.expression)->set_location(yylloc); | 3302 (yyval.expression)->set_location(yylloc); |
3333 » } | 3303 » ;} |
3334 break; | 3304 break; |
3335 | 3305 |
3336 case 64: | 3306 case 64: |
3337 | 3307 |
3338 /* Line 1806 of yacc.c */ | 3308 /* Line 1464 of yacc.c */ |
3339 #line 539 "glsl_parser.ypp" | 3309 #line 539 "glsl_parser.ypp" |
3340 { | 3310 { |
3341 void *ctx = state; | 3311 void *ctx = state; |
3342 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3312 (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3343 (yyval.expression)->set_location(yylloc); | 3313 (yyval.expression)->set_location(yylloc); |
3344 » } | 3314 » ;} |
3345 break; | 3315 break; |
3346 | 3316 |
3347 case 66: | 3317 case 66: |
3348 | 3318 |
3349 /* Line 1806 of yacc.c */ | 3319 /* Line 1464 of yacc.c */ |
3350 #line 549 "glsl_parser.ypp" | 3320 #line 549 "glsl_parser.ypp" |
3351 { | 3321 { |
3352 void *ctx = state; | 3322 void *ctx = state; |
3353 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1
) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3323 (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1
) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3354 (yyval.expression)->set_location(yylloc); | 3324 (yyval.expression)->set_location(yylloc); |
3355 » } | 3325 » ;} |
3356 break; | 3326 break; |
3357 | 3327 |
3358 case 67: | 3328 case 67: |
3359 | 3329 |
3360 /* Line 1806 of yacc.c */ | 3330 /* Line 1464 of yacc.c */ |
3361 #line 555 "glsl_parser.ypp" | 3331 #line 555 "glsl_parser.ypp" |
3362 { | 3332 { |
3363 void *ctx = state; | 3333 void *ctx = state; |
3364 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3334 (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3365 (yyval.expression)->set_location(yylloc); | 3335 (yyval.expression)->set_location(yylloc); |
3366 » } | 3336 » ;} |
3367 break; | 3337 break; |
3368 | 3338 |
3369 case 69: | 3339 case 69: |
3370 | 3340 |
3371 /* Line 1806 of yacc.c */ | 3341 /* Line 1464 of yacc.c */ |
3372 #line 565 "glsl_parser.ypp" | 3342 #line 565 "glsl_parser.ypp" |
3373 { | 3343 { |
3374 void *ctx = state; | 3344 void *ctx = state; |
3375 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3345 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3376 (yyval.expression)->set_location(yylloc); | 3346 (yyval.expression)->set_location(yylloc); |
3377 » } | 3347 » ;} |
3378 break; | 3348 break; |
3379 | 3349 |
3380 case 71: | 3350 case 71: |
3381 | 3351 |
3382 /* Line 1806 of yacc.c */ | 3352 /* Line 1464 of yacc.c */ |
3383 #line 575 "glsl_parser.ypp" | 3353 #line 575 "glsl_parser.ypp" |
3384 { | 3354 { |
3385 void *ctx = state; | 3355 void *ctx = state; |
3386 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3356 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[
(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3387 (yyval.expression)->set_location(yylloc); | 3357 (yyval.expression)->set_location(yylloc); |
3388 » } | 3358 » ;} |
3389 break; | 3359 break; |
3390 | 3360 |
3391 case 73: | 3361 case 73: |
3392 | 3362 |
3393 /* Line 1806 of yacc.c */ | 3363 /* Line 1464 of yacc.c */ |
3394 #line 585 "glsl_parser.ypp" | 3364 #line 585 "glsl_parser.ypp" |
3395 { | 3365 { |
3396 void *ctx = state; | 3366 void *ctx = state; |
3397 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3367 (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(
1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3398 (yyval.expression)->set_location(yylloc); | 3368 (yyval.expression)->set_location(yylloc); |
3399 » } | 3369 » ;} |
3400 break; | 3370 break; |
3401 | 3371 |
3402 case 75: | 3372 case 75: |
3403 | 3373 |
3404 /* Line 1806 of yacc.c */ | 3374 /* Line 1464 of yacc.c */ |
3405 #line 595 "glsl_parser.ypp" | 3375 #line 595 "glsl_parser.ypp" |
3406 { | 3376 { |
3407 void *ctx = state; | 3377 void *ctx = state; |
3408 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvs
p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3378 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvs
p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3409 (yyval.expression)->set_location(yylloc); | 3379 (yyval.expression)->set_location(yylloc); |
3410 » } | 3380 » ;} |
3411 break; | 3381 break; |
3412 | 3382 |
3413 case 77: | 3383 case 77: |
3414 | 3384 |
3415 /* Line 1806 of yacc.c */ | 3385 /* Line 1464 of yacc.c */ |
3416 #line 605 "glsl_parser.ypp" | 3386 #line 605 "glsl_parser.ypp" |
3417 { | 3387 { |
3418 void *ctx = state; | 3388 void *ctx = state; |
3419 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvs
p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3389 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvs
p[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3420 (yyval.expression)->set_location(yylloc); | 3390 (yyval.expression)->set_location(yylloc); |
3421 » } | 3391 » ;} |
3422 break; | 3392 break; |
3423 | 3393 |
3424 case 79: | 3394 case 79: |
3425 | 3395 |
3426 /* Line 1806 of yacc.c */ | 3396 /* Line 1464 of yacc.c */ |
3427 #line 615 "glsl_parser.ypp" | 3397 #line 615 "glsl_parser.ypp" |
3428 { | 3398 { |
3429 void *ctx = state; | 3399 void *ctx = state; |
3430 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp
[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); | 3400 (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp
[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); |
3431 (yyval.expression)->set_location(yylloc); | 3401 (yyval.expression)->set_location(yylloc); |
3432 » } | 3402 » ;} |
3433 break; | 3403 break; |
3434 | 3404 |
3435 case 81: | 3405 case 81: |
3436 | 3406 |
3437 /* Line 1806 of yacc.c */ | 3407 /* Line 1464 of yacc.c */ |
3438 #line 625 "glsl_parser.ypp" | 3408 #line 625 "glsl_parser.ypp" |
3439 { | 3409 { |
3440 void *ctx = state; | 3410 void *ctx = state; |
3441 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[
(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].express
ion)); | 3411 (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[
(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].express
ion)); |
3442 (yyval.expression)->set_location(yylloc); | 3412 (yyval.expression)->set_location(yylloc); |
3443 » } | 3413 » ;} |
3444 break; | 3414 break; |
3445 | 3415 |
3446 case 83: | 3416 case 83: |
3447 | 3417 |
3448 /* Line 1806 of yacc.c */ | 3418 /* Line 1464 of yacc.c */ |
3449 #line 635 "glsl_parser.ypp" | 3419 #line 635 "glsl_parser.ypp" |
3450 { | 3420 { |
3451 void *ctx = state; | 3421 void *ctx = state; |
3452 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (y
yvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); | 3422 (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (y
yvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); |
3453 (yyval.expression)->set_location(yylloc); | 3423 (yyval.expression)->set_location(yylloc); |
3454 » } | 3424 » ;} |
3455 break; | 3425 break; |
3456 | 3426 |
3457 case 84: | 3427 case 84: |
3458 | 3428 |
3459 /* Line 1806 of yacc.c */ | 3429 /* Line 1464 of yacc.c */ |
3460 #line 643 "glsl_parser.ypp" | 3430 #line 643 "glsl_parser.ypp" |
3461 { (yyval.n) = ast_assign; } | 3431 { (yyval.n) = ast_assign; ;} |
3462 break; | 3432 break; |
3463 | 3433 |
3464 case 85: | 3434 case 85: |
3465 | 3435 |
3466 /* Line 1806 of yacc.c */ | 3436 /* Line 1464 of yacc.c */ |
3467 #line 644 "glsl_parser.ypp" | 3437 #line 644 "glsl_parser.ypp" |
3468 { (yyval.n) = ast_mul_assign; } | 3438 { (yyval.n) = ast_mul_assign; ;} |
3469 break; | 3439 break; |
3470 | 3440 |
3471 case 86: | 3441 case 86: |
3472 | 3442 |
3473 /* Line 1806 of yacc.c */ | 3443 /* Line 1464 of yacc.c */ |
3474 #line 645 "glsl_parser.ypp" | 3444 #line 645 "glsl_parser.ypp" |
3475 { (yyval.n) = ast_div_assign; } | 3445 { (yyval.n) = ast_div_assign; ;} |
3476 break; | 3446 break; |
3477 | 3447 |
3478 case 87: | 3448 case 87: |
3479 | 3449 |
3480 /* Line 1806 of yacc.c */ | 3450 /* Line 1464 of yacc.c */ |
3481 #line 646 "glsl_parser.ypp" | 3451 #line 646 "glsl_parser.ypp" |
3482 { (yyval.n) = ast_mod_assign; } | 3452 { (yyval.n) = ast_mod_assign; ;} |
3483 break; | 3453 break; |
3484 | 3454 |
3485 case 88: | 3455 case 88: |
3486 | 3456 |
3487 /* Line 1806 of yacc.c */ | 3457 /* Line 1464 of yacc.c */ |
3488 #line 647 "glsl_parser.ypp" | 3458 #line 647 "glsl_parser.ypp" |
3489 { (yyval.n) = ast_add_assign; } | 3459 { (yyval.n) = ast_add_assign; ;} |
3490 break; | 3460 break; |
3491 | 3461 |
3492 case 89: | 3462 case 89: |
3493 | 3463 |
3494 /* Line 1806 of yacc.c */ | 3464 /* Line 1464 of yacc.c */ |
3495 #line 648 "glsl_parser.ypp" | 3465 #line 648 "glsl_parser.ypp" |
3496 { (yyval.n) = ast_sub_assign; } | 3466 { (yyval.n) = ast_sub_assign; ;} |
3497 break; | 3467 break; |
3498 | 3468 |
3499 case 90: | 3469 case 90: |
3500 | 3470 |
3501 /* Line 1806 of yacc.c */ | 3471 /* Line 1464 of yacc.c */ |
3502 #line 649 "glsl_parser.ypp" | 3472 #line 649 "glsl_parser.ypp" |
3503 { (yyval.n) = ast_ls_assign; } | 3473 { (yyval.n) = ast_ls_assign; ;} |
3504 break; | 3474 break; |
3505 | 3475 |
3506 case 91: | 3476 case 91: |
3507 | 3477 |
3508 /* Line 1806 of yacc.c */ | 3478 /* Line 1464 of yacc.c */ |
3509 #line 650 "glsl_parser.ypp" | 3479 #line 650 "glsl_parser.ypp" |
3510 { (yyval.n) = ast_rs_assign; } | 3480 { (yyval.n) = ast_rs_assign; ;} |
3511 break; | 3481 break; |
3512 | 3482 |
3513 case 92: | 3483 case 92: |
3514 | 3484 |
3515 /* Line 1806 of yacc.c */ | 3485 /* Line 1464 of yacc.c */ |
3516 #line 651 "glsl_parser.ypp" | 3486 #line 651 "glsl_parser.ypp" |
3517 { (yyval.n) = ast_and_assign; } | 3487 { (yyval.n) = ast_and_assign; ;} |
3518 break; | 3488 break; |
3519 | 3489 |
3520 case 93: | 3490 case 93: |
3521 | 3491 |
3522 /* Line 1806 of yacc.c */ | 3492 /* Line 1464 of yacc.c */ |
3523 #line 652 "glsl_parser.ypp" | 3493 #line 652 "glsl_parser.ypp" |
3524 { (yyval.n) = ast_xor_assign; } | 3494 { (yyval.n) = ast_xor_assign; ;} |
3525 break; | 3495 break; |
3526 | 3496 |
3527 case 94: | 3497 case 94: |
3528 | 3498 |
3529 /* Line 1806 of yacc.c */ | 3499 /* Line 1464 of yacc.c */ |
3530 #line 653 "glsl_parser.ypp" | 3500 #line 653 "glsl_parser.ypp" |
3531 { (yyval.n) = ast_or_assign; } | 3501 { (yyval.n) = ast_or_assign; ;} |
3532 break; | 3502 break; |
3533 | 3503 |
3534 case 95: | 3504 case 95: |
3535 | 3505 |
3536 /* Line 1806 of yacc.c */ | 3506 /* Line 1464 of yacc.c */ |
3537 #line 658 "glsl_parser.ypp" | 3507 #line 658 "glsl_parser.ypp" |
3538 { | 3508 { |
3539 (yyval.expression) = (yyvsp[(1) - (1)].expression); | 3509 (yyval.expression) = (yyvsp[(1) - (1)].expression); |
3540 » } | 3510 » ;} |
3541 break; | 3511 break; |
3542 | 3512 |
3543 case 96: | 3513 case 96: |
3544 | 3514 |
3545 /* Line 1806 of yacc.c */ | 3515 /* Line 1464 of yacc.c */ |
3546 #line 662 "glsl_parser.ypp" | 3516 #line 662 "glsl_parser.ypp" |
3547 { | 3517 { |
3548 void *ctx = state; | 3518 void *ctx = state; |
3549 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) { | 3519 if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) { |
3550 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, N
ULL, NULL); | 3520 (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, N
ULL, NULL); |
3551 (yyval.expression)->set_location(yylloc); | 3521 (yyval.expression)->set_location(yylloc); |
3552 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expr
ession)->link); | 3522 (yyval.expression)->expressions.push_tail(& (yyvsp[(1) - (3)].expr
ession)->link); |
3553 } else { | 3523 } else { |
3554 (yyval.expression) = (yyvsp[(1) - (3)].expression); | 3524 (yyval.expression) = (yyvsp[(1) - (3)].expression); |
3555 } | 3525 } |
3556 | 3526 |
3557 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); | 3527 (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].express
ion)->link); |
3558 » } | 3528 » ;} |
3559 break; | 3529 break; |
3560 | 3530 |
3561 case 98: | 3531 case 98: |
3562 | 3532 |
3563 /* Line 1806 of yacc.c */ | 3533 /* Line 1464 of yacc.c */ |
3564 #line 682 "glsl_parser.ypp" | 3534 #line 682 "glsl_parser.ypp" |
3565 { | 3535 { |
3566 (yyval.node) = (yyvsp[(1) - (2)].function); | 3536 (yyval.node) = (yyvsp[(1) - (2)].function); |
3567 » } | 3537 » ;} |
3568 break; | 3538 break; |
3569 | 3539 |
3570 case 99: | 3540 case 99: |
3571 | 3541 |
3572 /* Line 1806 of yacc.c */ | 3542 /* Line 1464 of yacc.c */ |
3573 #line 686 "glsl_parser.ypp" | 3543 #line 686 "glsl_parser.ypp" |
3574 { | 3544 { |
3575 (yyval.node) = (yyvsp[(1) - (2)].declarator_list); | 3545 (yyval.node) = (yyvsp[(1) - (2)].declarator_list); |
3576 » } | 3546 » ;} |
3577 break; | 3547 break; |
3578 | 3548 |
3579 case 100: | 3549 case 100: |
3580 | 3550 |
3581 /* Line 1806 of yacc.c */ | 3551 /* Line 1464 of yacc.c */ |
3582 #line 690 "glsl_parser.ypp" | 3552 #line 690 "glsl_parser.ypp" |
3583 { | 3553 { |
3584 if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float) | 3554 if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float) |
3585 && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)
) { | 3555 && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)
) { |
3586 _mesa_glsl_error(& (yylsp[(3) - (4)]), state, "global precision qu
alifier can " | 3556 _mesa_glsl_error(& (yylsp[(3) - (4)]), state, "global precision qu
alifier can " |
3587 "only be applied to `int' or `float'\n"); | 3557 "only be applied to `int' or `float'\n"); |
3588 YYERROR; | 3558 YYERROR; |
3589 } | 3559 } |
3590 | 3560 |
3591 (yyval.node) = NULL; /* FINISHME */ | 3561 (yyval.node) = NULL; /* FINISHME */ |
3592 » } | 3562 » ;} |
3593 break; | 3563 break; |
3594 | 3564 |
3595 case 104: | 3565 case 104: |
3596 | 3566 |
3597 /* Line 1806 of yacc.c */ | 3567 /* Line 1464 of yacc.c */ |
3598 #line 713 "glsl_parser.ypp" | 3568 #line 713 "glsl_parser.ypp" |
3599 { | 3569 { |
3600 (yyval.function) = (yyvsp[(1) - (2)].function); | 3570 (yyval.function) = (yyvsp[(1) - (2)].function); |
3601 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_
declarator)->link); | 3571 (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_
declarator)->link); |
3602 » } | 3572 » ;} |
3603 break; | 3573 break; |
3604 | 3574 |
3605 case 105: | 3575 case 105: |
3606 | 3576 |
3607 /* Line 1806 of yacc.c */ | 3577 /* Line 1464 of yacc.c */ |
3608 #line 718 "glsl_parser.ypp" | 3578 #line 718 "glsl_parser.ypp" |
3609 { | 3579 { |
3610 (yyval.function) = (yyvsp[(1) - (3)].function); | 3580 (yyval.function) = (yyvsp[(1) - (3)].function); |
3611 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_
declarator)->link); | 3581 (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_
declarator)->link); |
3612 » } | 3582 » ;} |
3613 break; | 3583 break; |
3614 | 3584 |
3615 case 106: | 3585 case 106: |
3616 | 3586 |
3617 /* Line 1806 of yacc.c */ | 3587 /* Line 1464 of yacc.c */ |
3618 #line 726 "glsl_parser.ypp" | 3588 #line 726 "glsl_parser.ypp" |
3619 { | 3589 { |
3620 void *ctx = state; | 3590 void *ctx = state; |
3621 (yyval.function) = new(ctx) ast_function(); | 3591 (yyval.function) = new(ctx) ast_function(); |
3622 (yyval.function)->set_location(yylloc); | 3592 (yyval.function)->set_location(yylloc); |
3623 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_typ
e); | 3593 (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_typ
e); |
3624 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier); | 3594 (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier); |
3625 » } | 3595 » ;} |
3626 break; | 3596 break; |
3627 | 3597 |
3628 case 107: | 3598 case 107: |
3629 | 3599 |
3630 /* Line 1806 of yacc.c */ | 3600 /* Line 1464 of yacc.c */ |
3631 #line 737 "glsl_parser.ypp" | 3601 #line 737 "glsl_parser.ypp" |
3632 { | 3602 { |
3633 void *ctx = state; | 3603 void *ctx = state; |
3634 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); | 3604 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
3635 (yyval.parameter_declarator)->set_location(yylloc); | 3605 (yyval.parameter_declarator)->set_location(yylloc); |
3636 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); | 3606 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
3637 (yyval.parameter_declarator)->type->set_location(yylloc); | 3607 (yyval.parameter_declarator)->type->set_location(yylloc); |
3638 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].typ
e_specifier); | 3608 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (2)].typ
e_specifier); |
3639 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifi
er); | 3609 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (2)].identifi
er); |
3640 » } | 3610 » ;} |
3641 break; | 3611 break; |
3642 | 3612 |
3643 case 108: | 3613 case 108: |
3644 | 3614 |
3645 /* Line 1806 of yacc.c */ | 3615 /* Line 1464 of yacc.c */ |
3646 #line 747 "glsl_parser.ypp" | 3616 #line 747 "glsl_parser.ypp" |
3647 { | 3617 { |
3648 void *ctx = state; | 3618 void *ctx = state; |
3649 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); | 3619 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
3650 (yyval.parameter_declarator)->set_location(yylloc); | 3620 (yyval.parameter_declarator)->set_location(yylloc); |
3651 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); | 3621 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
3652 (yyval.parameter_declarator)->type->set_location(yylloc); | 3622 (yyval.parameter_declarator)->type->set_location(yylloc); |
3653 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].typ
e_specifier); | 3623 (yyval.parameter_declarator)->type->specifier = (yyvsp[(1) - (5)].typ
e_specifier); |
3654 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifi
er); | 3624 (yyval.parameter_declarator)->identifier = (yyvsp[(2) - (5)].identifi
er); |
3655 (yyval.parameter_declarator)->is_array = true; | 3625 (yyval.parameter_declarator)->is_array = true; |
3656 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expressi
on); | 3626 (yyval.parameter_declarator)->array_size = (yyvsp[(4) - (5)].expressi
on); |
3657 » } | 3627 » ;} |
3658 break; | 3628 break; |
3659 | 3629 |
3660 case 109: | 3630 case 109: |
3661 | 3631 |
3662 /* Line 1806 of yacc.c */ | 3632 /* Line 1464 of yacc.c */ |
3663 #line 762 "glsl_parser.ypp" | 3633 #line 762 "glsl_parser.ypp" |
3664 { | 3634 { |
3665 (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifi
er).i; | 3635 (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifi
er).i; |
3666 | 3636 |
3667 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator
); | 3637 (yyval.parameter_declarator) = (yyvsp[(3) - (3)].parameter_declarator
); |
3668 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ
e_qualifier).q; | 3638 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ
e_qualifier).q; |
3669 » } | 3639 » ;} |
3670 break; | 3640 break; |
3671 | 3641 |
3672 case 110: | 3642 case 110: |
3673 | 3643 |
3674 /* Line 1806 of yacc.c */ | 3644 /* Line 1464 of yacc.c */ |
3675 #line 769 "glsl_parser.ypp" | 3645 #line 769 "glsl_parser.ypp" |
3676 { | 3646 { |
3677 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator
); | 3647 (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator
); |
3678 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ
e_qualifier).q; | 3648 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ
e_qualifier).q; |
3679 » } | 3649 » ;} |
3680 break; | 3650 break; |
3681 | 3651 |
3682 case 111: | 3652 case 111: |
3683 | 3653 |
3684 /* Line 1806 of yacc.c */ | 3654 /* Line 1464 of yacc.c */ |
3685 #line 774 "glsl_parser.ypp" | 3655 #line 774 "glsl_parser.ypp" |
3686 { | 3656 { |
3687 void *ctx = state; | 3657 void *ctx = state; |
3688 (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifi
er).i; | 3658 (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifi
er).i; |
3689 | 3659 |
3690 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); | 3660 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
3691 (yyval.parameter_declarator)->set_location(yylloc); | 3661 (yyval.parameter_declarator)->set_location(yylloc); |
3692 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); | 3662 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
3693 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ
e_qualifier).q; | 3663 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (3)].typ
e_qualifier).q; |
3694 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].typ
e_specifier); | 3664 (yyval.parameter_declarator)->type->specifier = (yyvsp[(3) - (3)].typ
e_specifier); |
3695 » } | 3665 » ;} |
3696 break; | 3666 break; |
3697 | 3667 |
3698 case 112: | 3668 case 112: |
3699 | 3669 |
3700 /* Line 1806 of yacc.c */ | 3670 /* Line 1464 of yacc.c */ |
3701 #line 785 "glsl_parser.ypp" | 3671 #line 785 "glsl_parser.ypp" |
3702 { | 3672 { |
3703 void *ctx = state; | 3673 void *ctx = state; |
3704 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); | 3674 (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); |
3705 (yyval.parameter_declarator)->set_location(yylloc); | 3675 (yyval.parameter_declarator)->set_location(yylloc); |
3706 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); | 3676 (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_typ
e(); |
3707 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ
e_qualifier).q; | 3677 (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].typ
e_qualifier).q; |
3708 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].typ
e_specifier); | 3678 (yyval.parameter_declarator)->type->specifier = (yyvsp[(2) - (2)].typ
e_specifier); |
3709 » } | 3679 » ;} |
3710 break; | 3680 break; |
3711 | 3681 |
3712 case 113: | 3682 case 113: |
3713 | 3683 |
3714 /* Line 1806 of yacc.c */ | 3684 /* Line 1464 of yacc.c */ |
3715 #line 796 "glsl_parser.ypp" | 3685 #line 796 "glsl_parser.ypp" |
3716 { (yyval.type_qualifier).i = 0; } | 3686 { (yyval.type_qualifier).i = 0; ;} |
3717 break; | 3687 break; |
3718 | 3688 |
3719 case 114: | 3689 case 114: |
3720 | 3690 |
3721 /* Line 1806 of yacc.c */ | 3691 /* Line 1464 of yacc.c */ |
3722 #line 797 "glsl_parser.ypp" | 3692 #line 797 "glsl_parser.ypp" |
3723 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; } | 3693 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;} |
3724 break; | 3694 break; |
3725 | 3695 |
3726 case 115: | 3696 case 115: |
3727 | 3697 |
3728 /* Line 1806 of yacc.c */ | 3698 /* Line 1464 of yacc.c */ |
3729 #line 798 "glsl_parser.ypp" | 3699 #line 798 "glsl_parser.ypp" |
3730 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; } | 3700 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;} |
3731 break; | 3701 break; |
3732 | 3702 |
3733 case 116: | 3703 case 116: |
3734 | 3704 |
3735 /* Line 1806 of yacc.c */ | 3705 /* Line 1464 of yacc.c */ |
3736 #line 799 "glsl_parser.ypp" | 3706 #line 799 "glsl_parser.ypp" |
3737 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type
_qualifier).q.out = 1; } | 3707 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type
_qualifier).q.out = 1; ;} |
3738 break; | 3708 break; |
3739 | 3709 |
3740 case 119: | 3710 case 119: |
3741 | 3711 |
3742 /* Line 1806 of yacc.c */ | 3712 /* Line 1464 of yacc.c */ |
3743 #line 809 "glsl_parser.ypp" | 3713 #line 809 "glsl_parser.ypp" |
3744 { | 3714 { |
3745 void *ctx = state; | 3715 void *ctx = state; |
3746 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].id
entifier), false, NULL, NULL); | 3716 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].id
entifier), false, NULL, NULL); |
3747 decl->set_location(yylloc); | 3717 decl->set_location(yylloc); |
3748 | 3718 |
3749 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list); | 3719 (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list); |
3750 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3720 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3751 » } | 3721 » ;} |
3752 break; | 3722 break; |
3753 | 3723 |
3754 case 120: | 3724 case 120: |
3755 | 3725 |
3756 /* Line 1806 of yacc.c */ | 3726 /* Line 1464 of yacc.c */ |
3757 #line 818 "glsl_parser.ypp" | 3727 #line 818 "glsl_parser.ypp" |
3758 { | 3728 { |
3759 void *ctx = state; | 3729 void *ctx = state; |
3760 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id
entifier), true, NULL, NULL); | 3730 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id
entifier), true, NULL, NULL); |
3761 decl->set_location(yylloc); | 3731 decl->set_location(yylloc); |
3762 | 3732 |
3763 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); | 3733 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); |
3764 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3734 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3765 » } | 3735 » ;} |
3766 break; | 3736 break; |
3767 | 3737 |
3768 case 121: | 3738 case 121: |
3769 | 3739 |
3770 /* Line 1806 of yacc.c */ | 3740 /* Line 1464 of yacc.c */ |
3771 #line 827 "glsl_parser.ypp" | 3741 #line 827 "glsl_parser.ypp" |
3772 { | 3742 { |
3773 void *ctx = state; | 3743 void *ctx = state; |
3774 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].id
entifier), true, (yyvsp[(5) - (6)].expression), NULL); | 3744 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].id
entifier), true, (yyvsp[(5) - (6)].expression), NULL); |
3775 decl->set_location(yylloc); | 3745 decl->set_location(yylloc); |
3776 | 3746 |
3777 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list); | 3747 (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list); |
3778 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3748 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3779 » } | 3749 » ;} |
3780 break; | 3750 break; |
3781 | 3751 |
3782 case 122: | 3752 case 122: |
3783 | 3753 |
3784 /* Line 1806 of yacc.c */ | 3754 /* Line 1464 of yacc.c */ |
3785 #line 836 "glsl_parser.ypp" | 3755 #line 836 "glsl_parser.ypp" |
3786 { | 3756 { |
3787 void *ctx = state; | 3757 void *ctx = state; |
3788 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].id
entifier), true, NULL, (yyvsp[(7) - (7)].expression)); | 3758 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].id
entifier), true, NULL, (yyvsp[(7) - (7)].expression)); |
3789 decl->set_location(yylloc); | 3759 decl->set_location(yylloc); |
3790 | 3760 |
3791 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list); | 3761 (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list); |
3792 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3762 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3793 » } | 3763 » ;} |
3794 break; | 3764 break; |
3795 | 3765 |
3796 case 123: | 3766 case 123: |
3797 | 3767 |
3798 /* Line 1806 of yacc.c */ | 3768 /* Line 1464 of yacc.c */ |
3799 #line 845 "glsl_parser.ypp" | 3769 #line 845 "glsl_parser.ypp" |
3800 { | 3770 { |
3801 void *ctx = state; | 3771 void *ctx = state; |
3802 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].id
entifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression)); | 3772 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].id
entifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression)); |
3803 decl->set_location(yylloc); | 3773 decl->set_location(yylloc); |
3804 | 3774 |
3805 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list); | 3775 (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list); |
3806 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3776 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3807 » } | 3777 » ;} |
3808 break; | 3778 break; |
3809 | 3779 |
3810 case 124: | 3780 case 124: |
3811 | 3781 |
3812 /* Line 1806 of yacc.c */ | 3782 /* Line 1464 of yacc.c */ |
3813 #line 854 "glsl_parser.ypp" | 3783 #line 854 "glsl_parser.ypp" |
3814 { | 3784 { |
3815 void *ctx = state; | 3785 void *ctx = state; |
3816 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id
entifier), false, NULL, (yyvsp[(5) - (5)].expression)); | 3786 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].id
entifier), false, NULL, (yyvsp[(5) - (5)].expression)); |
3817 decl->set_location(yylloc); | 3787 decl->set_location(yylloc); |
3818 | 3788 |
3819 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); | 3789 (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); |
3820 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3790 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3821 » } | 3791 » ;} |
3822 break; | 3792 break; |
3823 | 3793 |
3824 case 125: | 3794 case 125: |
3825 | 3795 |
3826 /* Line 1806 of yacc.c */ | 3796 /* Line 1464 of yacc.c */ |
3827 #line 867 "glsl_parser.ypp" | 3797 #line 867 "glsl_parser.ypp" |
3828 { | 3798 { |
3829 void *ctx = state; | 3799 void *ctx = state; |
3830 if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifie
r != ast_struct) { | 3800 if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifie
r != ast_struct) { |
3831 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "empty declaration l
ist\n"); | 3801 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "empty declaration l
ist\n"); |
3832 YYERROR; | 3802 YYERROR; |
3833 } else { | 3803 } else { |
3834 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1)
- (1)].fully_specified_type)); | 3804 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1)
- (1)].fully_specified_type)); |
3835 (yyval.declarator_list)->set_location(yylloc); | 3805 (yyval.declarator_list)->set_location(yylloc); |
3836 } | 3806 } |
3837 » } | 3807 » ;} |
3838 break; | 3808 break; |
3839 | 3809 |
3840 case 126: | 3810 case 126: |
3841 | 3811 |
3842 /* Line 1806 of yacc.c */ | 3812 /* Line 1464 of yacc.c */ |
3843 #line 878 "glsl_parser.ypp" | 3813 #line 878 "glsl_parser.ypp" |
3844 { | 3814 { |
3845 void *ctx = state; | 3815 void *ctx = state; |
3846 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id
entifier), false, NULL, NULL); | 3816 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id
entifier), false, NULL, NULL); |
3847 | 3817 |
3848 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
2)].fully_specified_type)); | 3818 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
2)].fully_specified_type)); |
3849 (yyval.declarator_list)->set_location(yylloc); | 3819 (yyval.declarator_list)->set_location(yylloc); |
3850 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3820 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3851 » } | 3821 » ;} |
3852 break; | 3822 break; |
3853 | 3823 |
3854 case 127: | 3824 case 127: |
3855 | 3825 |
3856 /* Line 1806 of yacc.c */ | 3826 /* Line 1464 of yacc.c */ |
3857 #line 887 "glsl_parser.ypp" | 3827 #line 887 "glsl_parser.ypp" |
3858 { | 3828 { |
3859 void *ctx = state; | 3829 void *ctx = state; |
3860 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), true, NULL, NULL); | 3830 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), true, NULL, NULL); |
3861 | 3831 |
3862 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
4)].fully_specified_type)); | 3832 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
4)].fully_specified_type)); |
3863 (yyval.declarator_list)->set_location(yylloc); | 3833 (yyval.declarator_list)->set_location(yylloc); |
3864 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3834 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3865 » } | 3835 » ;} |
3866 break; | 3836 break; |
3867 | 3837 |
3868 case 128: | 3838 case 128: |
3869 | 3839 |
3870 /* Line 1806 of yacc.c */ | 3840 /* Line 1464 of yacc.c */ |
3871 #line 896 "glsl_parser.ypp" | 3841 #line 896 "glsl_parser.ypp" |
3872 { | 3842 { |
3873 void *ctx = state; | 3843 void *ctx = state; |
3874 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].id
entifier), true, (yyvsp[(4) - (5)].expression), NULL); | 3844 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].id
entifier), true, (yyvsp[(4) - (5)].expression), NULL); |
3875 | 3845 |
3876 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
5)].fully_specified_type)); | 3846 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
5)].fully_specified_type)); |
3877 (yyval.declarator_list)->set_location(yylloc); | 3847 (yyval.declarator_list)->set_location(yylloc); |
3878 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3848 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3879 » } | 3849 » ;} |
3880 break; | 3850 break; |
3881 | 3851 |
3882 case 129: | 3852 case 129: |
3883 | 3853 |
3884 /* Line 1806 of yacc.c */ | 3854 /* Line 1464 of yacc.c */ |
3885 #line 905 "glsl_parser.ypp" | 3855 #line 905 "glsl_parser.ypp" |
3886 { | 3856 { |
3887 void *ctx = state; | 3857 void *ctx = state; |
3888 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].id
entifier), true, NULL, (yyvsp[(6) - (6)].expression)); | 3858 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].id
entifier), true, NULL, (yyvsp[(6) - (6)].expression)); |
3889 | 3859 |
3890 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
6)].fully_specified_type)); | 3860 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
6)].fully_specified_type)); |
3891 (yyval.declarator_list)->set_location(yylloc); | 3861 (yyval.declarator_list)->set_location(yylloc); |
3892 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3862 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3893 » } | 3863 » ;} |
3894 break; | 3864 break; |
3895 | 3865 |
3896 case 130: | 3866 case 130: |
3897 | 3867 |
3898 /* Line 1806 of yacc.c */ | 3868 /* Line 1464 of yacc.c */ |
3899 #line 914 "glsl_parser.ypp" | 3869 #line 914 "glsl_parser.ypp" |
3900 { | 3870 { |
3901 void *ctx = state; | 3871 void *ctx = state; |
3902 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].id
entifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression)); | 3872 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].id
entifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression)); |
3903 | 3873 |
3904 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
7)].fully_specified_type)); | 3874 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
7)].fully_specified_type)); |
3905 (yyval.declarator_list)->set_location(yylloc); | 3875 (yyval.declarator_list)->set_location(yylloc); |
3906 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3876 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3907 » } | 3877 » ;} |
3908 break; | 3878 break; |
3909 | 3879 |
3910 case 131: | 3880 case 131: |
3911 | 3881 |
3912 /* Line 1806 of yacc.c */ | 3882 /* Line 1464 of yacc.c */ |
3913 #line 923 "glsl_parser.ypp" | 3883 #line 923 "glsl_parser.ypp" |
3914 { | 3884 { |
3915 void *ctx = state; | 3885 void *ctx = state; |
3916 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), false, NULL, (yyvsp[(4) - (4)].expression)); | 3886 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), false, NULL, (yyvsp[(4) - (4)].expression)); |
3917 | 3887 |
3918 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
4)].fully_specified_type)); | 3888 (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[(1) - (
4)].fully_specified_type)); |
3919 (yyval.declarator_list)->set_location(yylloc); | 3889 (yyval.declarator_list)->set_location(yylloc); |
3920 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3890 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3921 » } | 3891 » ;} |
3922 break; | 3892 break; |
3923 | 3893 |
3924 case 132: | 3894 case 132: |
3925 | 3895 |
3926 /* Line 1806 of yacc.c */ | 3896 /* Line 1464 of yacc.c */ |
3927 #line 932 "glsl_parser.ypp" | 3897 #line 932 "glsl_parser.ypp" |
3928 { | 3898 { |
3929 void *ctx = state; | 3899 void *ctx = state; |
3930 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id
entifier), false, NULL, NULL); | 3900 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].id
entifier), false, NULL, NULL); |
3931 | 3901 |
3932 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL); | 3902 (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL); |
3933 (yyval.declarator_list)->set_location(yylloc); | 3903 (yyval.declarator_list)->set_location(yylloc); |
3934 (yyval.declarator_list)->invariant = true; | 3904 (yyval.declarator_list)->invariant = true; |
3935 | 3905 |
3936 (yyval.declarator_list)->declarations.push_tail(&decl->link); | 3906 (yyval.declarator_list)->declarations.push_tail(&decl->link); |
3937 » } | 3907 » ;} |
3938 break; | 3908 break; |
3939 | 3909 |
3940 case 133: | 3910 case 133: |
3941 | 3911 |
3942 /* Line 1806 of yacc.c */ | 3912 /* Line 1464 of yacc.c */ |
3943 #line 946 "glsl_parser.ypp" | 3913 #line 946 "glsl_parser.ypp" |
3944 { | 3914 { |
3945 void *ctx = state; | 3915 void *ctx = state; |
3946 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); | 3916 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); |
3947 (yyval.fully_specified_type)->set_location(yylloc); | 3917 (yyval.fully_specified_type)->set_location(yylloc); |
3948 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_spec
ifier); | 3918 (yyval.fully_specified_type)->specifier = (yyvsp[(1) - (1)].type_spec
ifier); |
3949 » } | 3919 » ;} |
3950 break; | 3920 break; |
3951 | 3921 |
3952 case 134: | 3922 case 134: |
3953 | 3923 |
3954 /* Line 1806 of yacc.c */ | 3924 /* Line 1464 of yacc.c */ |
3955 #line 953 "glsl_parser.ypp" | 3925 #line 953 "glsl_parser.ypp" |
3956 { | 3926 { |
3957 void *ctx = state; | 3927 void *ctx = state; |
3958 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); | 3928 (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); |
3959 (yyval.fully_specified_type)->set_location(yylloc); | 3929 (yyval.fully_specified_type)->set_location(yylloc); |
3960 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qual
ifier).q; | 3930 (yyval.fully_specified_type)->qualifier = (yyvsp[(1) - (2)].type_qual
ifier).q; |
3961 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_spec
ifier); | 3931 (yyval.fully_specified_type)->specifier = (yyvsp[(2) - (2)].type_spec
ifier); |
3962 » } | 3932 » ;} |
3963 break; | 3933 break; |
3964 | 3934 |
3965 case 135: | 3935 case 135: |
3966 | 3936 |
3967 /* Line 1806 of yacc.c */ | 3937 /* Line 1464 of yacc.c */ |
3968 #line 963 "glsl_parser.ypp" | 3938 #line 963 "glsl_parser.ypp" |
3969 { (yyval.type_qualifier).i = 0; } | 3939 { (yyval.type_qualifier).i = 0; ;} |
3970 break; | 3940 break; |
3971 | 3941 |
3972 case 137: | 3942 case 137: |
3973 | 3943 |
3974 /* Line 1806 of yacc.c */ | 3944 /* Line 1464 of yacc.c */ |
3975 #line 969 "glsl_parser.ypp" | 3945 #line 969 "glsl_parser.ypp" |
3976 { | 3946 { |
3977 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier); | 3947 (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier); |
3978 » } | 3948 » ;} |
3979 break; | 3949 break; |
3980 | 3950 |
3981 case 139: | 3951 case 139: |
3982 | 3952 |
3983 /* Line 1806 of yacc.c */ | 3953 /* Line 1464 of yacc.c */ |
3984 #line 977 "glsl_parser.ypp" | 3954 #line 977 "glsl_parser.ypp" |
3985 { | 3955 { |
3986 (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyv
sp[(3) - (3)].type_qualifier).i; | 3956 (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyv
sp[(3) - (3)].type_qualifier).i; |
3987 » } | 3957 » ;} |
3988 break; | 3958 break; |
3989 | 3959 |
3990 case 140: | 3960 case 140: |
3991 | 3961 |
3992 /* Line 1806 of yacc.c */ | 3962 /* Line 1464 of yacc.c */ |
3993 #line 984 "glsl_parser.ypp" | 3963 #line 984 "glsl_parser.ypp" |
3994 { | 3964 { |
3995 (yyval.type_qualifier).i = 0; | 3965 (yyval.type_qualifier).i = 0; |
3996 | 3966 |
3997 if (state->ARB_fragment_coord_conventions_enable) { | 3967 if (state->ARB_fragment_coord_conventions_enable) { |
3998 bool got_one = false; | 3968 bool got_one = false; |
3999 | 3969 |
4000 » if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") ==
0) { | 3970 » if (safe_strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left"
) == 0) { |
4001 got_one = true; | 3971 got_one = true; |
4002 (yyval.type_qualifier).q.origin_upper_left = 1; | 3972 (yyval.type_qualifier).q.origin_upper_left = 1; |
4003 » } else if (strcmp((yyvsp[(1) - (1)].identifier), "pixel_center_int
eger") == 0) { | 3973 » } else if (safe_strcmp((yyvsp[(1) - (1)].identifier), "pixel_cente
r_integer") == 0) { |
4004 got_one = true; | 3974 got_one = true; |
4005 (yyval.type_qualifier).q.pixel_center_integer = 1; | 3975 (yyval.type_qualifier).q.pixel_center_integer = 1; |
4006 } | 3976 } |
4007 | 3977 |
4008 if (state->ARB_fragment_coord_conventions_warn && got_one) { | 3978 if (state->ARB_fragment_coord_conventions_warn && got_one) { |
4009 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, | 3979 _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, |
4010 "GL_ARB_fragment_coord_conventions layout " | 3980 "GL_ARB_fragment_coord_conventions layout " |
4011 "identifier `%s' used\n", (yyvsp[(1) - (1)].
identifier)); | 3981 "identifier `%s' used\n", (yyvsp[(1) - (1)].
identifier)); |
4012 } | 3982 } |
4013 } | 3983 } |
4014 | 3984 |
4015 /* If the identifier didn't match any known layout identifiers, | 3985 /* If the identifier didn't match any known layout identifiers, |
4016 * emit an error. | 3986 * emit an error. |
4017 */ | 3987 */ |
4018 if ((yyval.type_qualifier).i == 0) { | 3988 if ((yyval.type_qualifier).i == 0) { |
4019 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout
identifier " | 3989 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout
identifier " |
4020 "`%s'\n", (yyvsp[(1) - (1)].identifier)); | 3990 "`%s'\n", (yyvsp[(1) - (1)].identifier)); |
4021 YYERROR; | 3991 YYERROR; |
4022 } | 3992 } |
4023 » } | 3993 » ;} |
4024 break; | 3994 break; |
4025 | 3995 |
4026 case 141: | 3996 case 141: |
4027 | 3997 |
4028 /* Line 1806 of yacc.c */ | 3998 /* Line 1464 of yacc.c */ |
4029 #line 1017 "glsl_parser.ypp" | 3999 #line 1017 "glsl_parser.ypp" |
4030 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; } | 4000 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; ;} |
4031 break; | 4001 break; |
4032 | 4002 |
4033 case 142: | 4003 case 142: |
4034 | 4004 |
4035 /* Line 1806 of yacc.c */ | 4005 /* Line 1464 of yacc.c */ |
4036 #line 1018 "glsl_parser.ypp" | 4006 #line 1018 "glsl_parser.ypp" |
4037 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; } | 4007 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; ;} |
4038 break; | 4008 break; |
4039 | 4009 |
4040 case 143: | 4010 case 143: |
4041 | 4011 |
4042 /* Line 1806 of yacc.c */ | 4012 /* Line 1464 of yacc.c */ |
4043 #line 1019 "glsl_parser.ypp" | 4013 #line 1019 "glsl_parser.ypp" |
4044 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1;
} | 4014 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1;
;} |
4045 break; | 4015 break; |
4046 | 4016 |
4047 case 144: | 4017 case 144: |
4048 | 4018 |
4049 /* Line 1806 of yacc.c */ | 4019 /* Line 1464 of yacc.c */ |
4050 #line 1023 "glsl_parser.ypp" | 4020 #line 1023 "glsl_parser.ypp" |
4051 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; } | 4021 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;} |
4052 break; | 4022 break; |
4053 | 4023 |
4054 case 146: | 4024 case 146: |
4055 | 4025 |
4056 /* Line 1806 of yacc.c */ | 4026 /* Line 1464 of yacc.c */ |
4057 #line 1029 "glsl_parser.ypp" | 4027 #line 1029 "glsl_parser.ypp" |
4058 { | 4028 { |
4059 (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyv
sp[(2) - (2)].type_qualifier).i; | 4029 (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyv
sp[(2) - (2)].type_qualifier).i; |
4060 » } | 4030 » ;} |
4061 break; | 4031 break; |
4062 | 4032 |
4063 case 147: | 4033 case 147: |
4064 | 4034 |
4065 /* Line 1806 of yacc.c */ | 4035 /* Line 1464 of yacc.c */ |
4066 #line 1033 "glsl_parser.ypp" | 4036 #line 1033 "glsl_parser.ypp" |
4067 { | 4037 { |
4068 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier); | 4038 (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier); |
4069 (yyval.type_qualifier).q.invariant = 1; | 4039 (yyval.type_qualifier).q.invariant = 1; |
4070 » } | 4040 » ;} |
4071 break; | 4041 break; |
4072 | 4042 |
4073 case 148: | 4043 case 148: |
4074 | 4044 |
4075 /* Line 1806 of yacc.c */ | 4045 /* Line 1464 of yacc.c */ |
4076 #line 1040 "glsl_parser.ypp" | 4046 #line 1040 "glsl_parser.ypp" |
4077 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; } | 4047 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;} |
4078 break; | 4048 break; |
4079 | 4049 |
4080 case 149: | 4050 case 149: |
4081 | 4051 |
4082 /* Line 1806 of yacc.c */ | 4052 /* Line 1464 of yacc.c */ |
4083 #line 1041 "glsl_parser.ypp" | 4053 #line 1041 "glsl_parser.ypp" |
4084 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; } | 4054 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; ;} |
4085 break; | 4055 break; |
4086 | 4056 |
4087 case 150: | 4057 case 150: |
4088 | 4058 |
4089 /* Line 1806 of yacc.c */ | 4059 /* Line 1464 of yacc.c */ |
4090 #line 1042 "glsl_parser.ypp" | 4060 #line 1042 "glsl_parser.ypp" |
4091 { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.typ
e_qualifier).q.varying = 1; } | 4061 { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.typ
e_qualifier).q.varying = 1; ;} |
4092 break; | 4062 break; |
4093 | 4063 |
4094 case 151: | 4064 case 151: |
4095 | 4065 |
4096 /* Line 1806 of yacc.c */ | 4066 /* Line 1464 of yacc.c */ |
4097 #line 1043 "glsl_parser.ypp" | 4067 #line 1043 "glsl_parser.ypp" |
4098 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyva
l.type_qualifier).q.varying = 1; } | 4068 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyva
l.type_qualifier).q.varying = 1; ;} |
4099 break; | 4069 break; |
4100 | 4070 |
4101 case 152: | 4071 case 152: |
4102 | 4072 |
4103 /* Line 1806 of yacc.c */ | 4073 /* Line 1464 of yacc.c */ |
4104 #line 1044 "glsl_parser.ypp" | 4074 #line 1044 "glsl_parser.ypp" |
4105 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; } | 4075 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;} |
4106 break; | 4076 break; |
4107 | 4077 |
4108 case 153: | 4078 case 153: |
4109 | 4079 |
4110 /* Line 1806 of yacc.c */ | 4080 /* Line 1464 of yacc.c */ |
4111 #line 1045 "glsl_parser.ypp" | 4081 #line 1045 "glsl_parser.ypp" |
4112 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; } | 4082 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;} |
4113 break; | 4083 break; |
4114 | 4084 |
4115 case 154: | 4085 case 154: |
4116 | 4086 |
4117 /* Line 1806 of yacc.c */ | 4087 /* Line 1464 of yacc.c */ |
4118 #line 1046 "glsl_parser.ypp" | 4088 #line 1046 "glsl_parser.ypp" |
4119 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyva
l.type_qualifier).q.in = 1; } | 4089 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyva
l.type_qualifier).q.in = 1; ;} |
4120 break; | 4090 break; |
4121 | 4091 |
4122 case 155: | 4092 case 155: |
4123 | 4093 |
4124 /* Line 1806 of yacc.c */ | 4094 /* Line 1464 of yacc.c */ |
4125 #line 1047 "glsl_parser.ypp" | 4095 #line 1047 "glsl_parser.ypp" |
4126 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyva
l.type_qualifier).q.out = 1; } | 4096 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyva
l.type_qualifier).q.out = 1; ;} |
4127 break; | 4097 break; |
4128 | 4098 |
4129 case 156: | 4099 case 156: |
4130 | 4100 |
4131 /* Line 1806 of yacc.c */ | 4101 /* Line 1464 of yacc.c */ |
4132 #line 1048 "glsl_parser.ypp" | 4102 #line 1048 "glsl_parser.ypp" |
4133 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; } | 4103 { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; ;} |
4134 break; | 4104 break; |
4135 | 4105 |
4136 case 158: | 4106 case 158: |
4137 | 4107 |
4138 /* Line 1806 of yacc.c */ | 4108 /* Line 1464 of yacc.c */ |
4139 #line 1054 "glsl_parser.ypp" | 4109 #line 1054 "glsl_parser.ypp" |
4140 { | 4110 { |
4141 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier); | 4111 (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier); |
4142 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n); | 4112 (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n); |
4143 » } | 4113 » ;} |
4144 break; | 4114 break; |
4145 | 4115 |
4146 case 160: | 4116 case 160: |
4147 | 4117 |
4148 /* Line 1806 of yacc.c */ | 4118 /* Line 1464 of yacc.c */ |
4149 #line 1063 "glsl_parser.ypp" | 4119 #line 1063 "glsl_parser.ypp" |
4150 { | 4120 { |
4151 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier); | 4121 (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier); |
4152 (yyval.type_specifier)->is_array = true; | 4122 (yyval.type_specifier)->is_array = true; |
4153 (yyval.type_specifier)->array_size = NULL; | 4123 (yyval.type_specifier)->array_size = NULL; |
4154 » } | 4124 » ;} |
4155 break; | 4125 break; |
4156 | 4126 |
4157 case 161: | 4127 case 161: |
4158 | 4128 |
4159 /* Line 1806 of yacc.c */ | 4129 /* Line 1464 of yacc.c */ |
4160 #line 1069 "glsl_parser.ypp" | 4130 #line 1069 "glsl_parser.ypp" |
4161 { | 4131 { |
4162 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier); | 4132 (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier); |
4163 (yyval.type_specifier)->is_array = true; | 4133 (yyval.type_specifier)->is_array = true; |
4164 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression); | 4134 (yyval.type_specifier)->array_size = (yyvsp[(3) - (4)].expression); |
4165 » } | 4135 » ;} |
4166 break; | 4136 break; |
4167 | 4137 |
4168 case 162: | 4138 case 162: |
4169 | 4139 |
4170 /* Line 1806 of yacc.c */ | 4140 /* Line 1464 of yacc.c */ |
4171 #line 1078 "glsl_parser.ypp" | 4141 #line 1078 "glsl_parser.ypp" |
4172 { | 4142 { |
4173 void *ctx = state; | 4143 void *ctx = state; |
4174 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].n)); | 4144 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].n)); |
4175 (yyval.type_specifier)->set_location(yylloc); | 4145 (yyval.type_specifier)->set_location(yylloc); |
4176 » } | 4146 » ;} |
4177 break; | 4147 break; |
4178 | 4148 |
4179 case 163: | 4149 case 163: |
4180 | 4150 |
4181 /* Line 1806 of yacc.c */ | 4151 /* Line 1464 of yacc.c */ |
4182 #line 1084 "glsl_parser.ypp" | 4152 #line 1084 "glsl_parser.ypp" |
4183 { | 4153 { |
4184 void *ctx = state; | 4154 void *ctx = state; |
4185 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].struct_specifier)); | 4155 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].struct_specifier)); |
4186 (yyval.type_specifier)->set_location(yylloc); | 4156 (yyval.type_specifier)->set_location(yylloc); |
4187 » } | 4157 » ;} |
4188 break; | 4158 break; |
4189 | 4159 |
4190 case 164: | 4160 case 164: |
4191 | 4161 |
4192 /* Line 1806 of yacc.c */ | 4162 /* Line 1464 of yacc.c */ |
4193 #line 1090 "glsl_parser.ypp" | 4163 #line 1090 "glsl_parser.ypp" |
4194 { | 4164 { |
4195 void *ctx = state; | 4165 void *ctx = state; |
4196 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].identifier)); | 4166 (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)
].identifier)); |
4197 (yyval.type_specifier)->set_location(yylloc); | 4167 (yyval.type_specifier)->set_location(yylloc); |
4198 » } | 4168 » ;} |
4199 break; | 4169 break; |
4200 | 4170 |
4201 case 165: | 4171 case 165: |
4202 | 4172 |
4203 /* Line 1806 of yacc.c */ | 4173 /* Line 1464 of yacc.c */ |
4204 #line 1098 "glsl_parser.ypp" | 4174 #line 1098 "glsl_parser.ypp" |
4205 { (yyval.n) = ast_void; } | 4175 { (yyval.n) = ast_void; ;} |
4206 break; | 4176 break; |
4207 | 4177 |
4208 case 166: | 4178 case 166: |
4209 | 4179 |
4210 /* Line 1806 of yacc.c */ | 4180 /* Line 1464 of yacc.c */ |
4211 #line 1099 "glsl_parser.ypp" | 4181 #line 1099 "glsl_parser.ypp" |
4212 { (yyval.n) = ast_float; } | 4182 { (yyval.n) = ast_float; ;} |
4213 break; | 4183 break; |
4214 | 4184 |
4215 case 167: | 4185 case 167: |
4216 | 4186 |
4217 /* Line 1806 of yacc.c */ | 4187 /* Line 1464 of yacc.c */ |
4218 #line 1100 "glsl_parser.ypp" | 4188 #line 1100 "glsl_parser.ypp" |
4219 { (yyval.n) = ast_int; } | 4189 { (yyval.n) = ast_int; ;} |
4220 break; | 4190 break; |
4221 | 4191 |
4222 case 168: | 4192 case 168: |
4223 | 4193 |
4224 /* Line 1806 of yacc.c */ | 4194 /* Line 1464 of yacc.c */ |
4225 #line 1101 "glsl_parser.ypp" | 4195 #line 1101 "glsl_parser.ypp" |
4226 { (yyval.n) = ast_uint; } | 4196 { (yyval.n) = ast_uint; ;} |
4227 break; | 4197 break; |
4228 | 4198 |
4229 case 169: | 4199 case 169: |
4230 | 4200 |
4231 /* Line 1806 of yacc.c */ | 4201 /* Line 1464 of yacc.c */ |
4232 #line 1102 "glsl_parser.ypp" | 4202 #line 1102 "glsl_parser.ypp" |
4233 { (yyval.n) = ast_bool; } | 4203 { (yyval.n) = ast_bool; ;} |
4234 break; | 4204 break; |
4235 | 4205 |
4236 case 170: | 4206 case 170: |
4237 | 4207 |
4238 /* Line 1806 of yacc.c */ | 4208 /* Line 1464 of yacc.c */ |
4239 #line 1103 "glsl_parser.ypp" | 4209 #line 1103 "glsl_parser.ypp" |
4240 { (yyval.n) = ast_vec2; } | 4210 { (yyval.n) = ast_vec2; ;} |
4241 break; | 4211 break; |
4242 | 4212 |
4243 case 171: | 4213 case 171: |
4244 | 4214 |
4245 /* Line 1806 of yacc.c */ | 4215 /* Line 1464 of yacc.c */ |
4246 #line 1104 "glsl_parser.ypp" | 4216 #line 1104 "glsl_parser.ypp" |
4247 { (yyval.n) = ast_vec3; } | 4217 { (yyval.n) = ast_vec3; ;} |
4248 break; | 4218 break; |
4249 | 4219 |
4250 case 172: | 4220 case 172: |
4251 | 4221 |
4252 /* Line 1806 of yacc.c */ | 4222 /* Line 1464 of yacc.c */ |
4253 #line 1105 "glsl_parser.ypp" | 4223 #line 1105 "glsl_parser.ypp" |
4254 { (yyval.n) = ast_vec4; } | 4224 { (yyval.n) = ast_vec4; ;} |
4255 break; | 4225 break; |
4256 | 4226 |
4257 case 173: | 4227 case 173: |
4258 | 4228 |
4259 /* Line 1806 of yacc.c */ | 4229 /* Line 1464 of yacc.c */ |
4260 #line 1106 "glsl_parser.ypp" | 4230 #line 1106 "glsl_parser.ypp" |
4261 { (yyval.n) = ast_bvec2; } | 4231 { (yyval.n) = ast_bvec2; ;} |
4262 break; | 4232 break; |
4263 | 4233 |
4264 case 174: | 4234 case 174: |
4265 | 4235 |
4266 /* Line 1806 of yacc.c */ | 4236 /* Line 1464 of yacc.c */ |
4267 #line 1107 "glsl_parser.ypp" | 4237 #line 1107 "glsl_parser.ypp" |
4268 { (yyval.n) = ast_bvec3; } | 4238 { (yyval.n) = ast_bvec3; ;} |
4269 break; | 4239 break; |
4270 | 4240 |
4271 case 175: | 4241 case 175: |
4272 | 4242 |
4273 /* Line 1806 of yacc.c */ | 4243 /* Line 1464 of yacc.c */ |
4274 #line 1108 "glsl_parser.ypp" | 4244 #line 1108 "glsl_parser.ypp" |
4275 { (yyval.n) = ast_bvec4; } | 4245 { (yyval.n) = ast_bvec4; ;} |
4276 break; | 4246 break; |
4277 | 4247 |
4278 case 176: | 4248 case 176: |
4279 | 4249 |
4280 /* Line 1806 of yacc.c */ | 4250 /* Line 1464 of yacc.c */ |
4281 #line 1109 "glsl_parser.ypp" | 4251 #line 1109 "glsl_parser.ypp" |
4282 { (yyval.n) = ast_ivec2; } | 4252 { (yyval.n) = ast_ivec2; ;} |
4283 break; | 4253 break; |
4284 | 4254 |
4285 case 177: | 4255 case 177: |
4286 | 4256 |
4287 /* Line 1806 of yacc.c */ | 4257 /* Line 1464 of yacc.c */ |
4288 #line 1110 "glsl_parser.ypp" | 4258 #line 1110 "glsl_parser.ypp" |
4289 { (yyval.n) = ast_ivec3; } | 4259 { (yyval.n) = ast_ivec3; ;} |
4290 break; | 4260 break; |
4291 | 4261 |
4292 case 178: | 4262 case 178: |
4293 | 4263 |
4294 /* Line 1806 of yacc.c */ | 4264 /* Line 1464 of yacc.c */ |
4295 #line 1111 "glsl_parser.ypp" | 4265 #line 1111 "glsl_parser.ypp" |
4296 { (yyval.n) = ast_ivec4; } | 4266 { (yyval.n) = ast_ivec4; ;} |
4297 break; | 4267 break; |
4298 | 4268 |
4299 case 179: | 4269 case 179: |
4300 | 4270 |
4301 /* Line 1806 of yacc.c */ | 4271 /* Line 1464 of yacc.c */ |
4302 #line 1112 "glsl_parser.ypp" | 4272 #line 1112 "glsl_parser.ypp" |
4303 { (yyval.n) = ast_uvec2; } | 4273 { (yyval.n) = ast_uvec2; ;} |
4304 break; | 4274 break; |
4305 | 4275 |
4306 case 180: | 4276 case 180: |
4307 | 4277 |
4308 /* Line 1806 of yacc.c */ | 4278 /* Line 1464 of yacc.c */ |
4309 #line 1113 "glsl_parser.ypp" | 4279 #line 1113 "glsl_parser.ypp" |
4310 { (yyval.n) = ast_uvec3; } | 4280 { (yyval.n) = ast_uvec3; ;} |
4311 break; | 4281 break; |
4312 | 4282 |
4313 case 181: | 4283 case 181: |
4314 | 4284 |
4315 /* Line 1806 of yacc.c */ | 4285 /* Line 1464 of yacc.c */ |
4316 #line 1114 "glsl_parser.ypp" | 4286 #line 1114 "glsl_parser.ypp" |
4317 { (yyval.n) = ast_uvec4; } | 4287 { (yyval.n) = ast_uvec4; ;} |
4318 break; | 4288 break; |
4319 | 4289 |
4320 case 182: | 4290 case 182: |
4321 | 4291 |
4322 /* Line 1806 of yacc.c */ | 4292 /* Line 1464 of yacc.c */ |
4323 #line 1115 "glsl_parser.ypp" | 4293 #line 1115 "glsl_parser.ypp" |
4324 { (yyval.n) = ast_mat2; } | 4294 { (yyval.n) = ast_mat2; ;} |
4325 break; | 4295 break; |
4326 | 4296 |
4327 case 183: | 4297 case 183: |
4328 | 4298 |
4329 /* Line 1806 of yacc.c */ | 4299 /* Line 1464 of yacc.c */ |
4330 #line 1116 "glsl_parser.ypp" | 4300 #line 1116 "glsl_parser.ypp" |
4331 { (yyval.n) = ast_mat2x3; } | 4301 { (yyval.n) = ast_mat2x3; ;} |
4332 break; | 4302 break; |
4333 | 4303 |
4334 case 184: | 4304 case 184: |
4335 | 4305 |
4336 /* Line 1806 of yacc.c */ | 4306 /* Line 1464 of yacc.c */ |
4337 #line 1117 "glsl_parser.ypp" | 4307 #line 1117 "glsl_parser.ypp" |
4338 { (yyval.n) = ast_mat2x4; } | 4308 { (yyval.n) = ast_mat2x4; ;} |
4339 break; | 4309 break; |
4340 | 4310 |
4341 case 185: | 4311 case 185: |
4342 | 4312 |
4343 /* Line 1806 of yacc.c */ | 4313 /* Line 1464 of yacc.c */ |
4344 #line 1118 "glsl_parser.ypp" | 4314 #line 1118 "glsl_parser.ypp" |
4345 { (yyval.n) = ast_mat3x2; } | 4315 { (yyval.n) = ast_mat3x2; ;} |
4346 break; | 4316 break; |
4347 | 4317 |
4348 case 186: | 4318 case 186: |
4349 | 4319 |
4350 /* Line 1806 of yacc.c */ | 4320 /* Line 1464 of yacc.c */ |
4351 #line 1119 "glsl_parser.ypp" | 4321 #line 1119 "glsl_parser.ypp" |
4352 { (yyval.n) = ast_mat3; } | 4322 { (yyval.n) = ast_mat3; ;} |
4353 break; | 4323 break; |
4354 | 4324 |
4355 case 187: | 4325 case 187: |
4356 | 4326 |
4357 /* Line 1806 of yacc.c */ | 4327 /* Line 1464 of yacc.c */ |
4358 #line 1120 "glsl_parser.ypp" | 4328 #line 1120 "glsl_parser.ypp" |
4359 { (yyval.n) = ast_mat3x4; } | 4329 { (yyval.n) = ast_mat3x4; ;} |
4360 break; | 4330 break; |
4361 | 4331 |
4362 case 188: | 4332 case 188: |
4363 | 4333 |
4364 /* Line 1806 of yacc.c */ | 4334 /* Line 1464 of yacc.c */ |
4365 #line 1121 "glsl_parser.ypp" | 4335 #line 1121 "glsl_parser.ypp" |
4366 { (yyval.n) = ast_mat4x2; } | 4336 { (yyval.n) = ast_mat4x2; ;} |
4367 break; | 4337 break; |
4368 | 4338 |
4369 case 189: | 4339 case 189: |
4370 | 4340 |
4371 /* Line 1806 of yacc.c */ | 4341 /* Line 1464 of yacc.c */ |
4372 #line 1122 "glsl_parser.ypp" | 4342 #line 1122 "glsl_parser.ypp" |
4373 { (yyval.n) = ast_mat4x3; } | 4343 { (yyval.n) = ast_mat4x3; ;} |
4374 break; | 4344 break; |
4375 | 4345 |
4376 case 190: | 4346 case 190: |
4377 | 4347 |
4378 /* Line 1806 of yacc.c */ | 4348 /* Line 1464 of yacc.c */ |
4379 #line 1123 "glsl_parser.ypp" | 4349 #line 1123 "glsl_parser.ypp" |
4380 { (yyval.n) = ast_mat4; } | 4350 { (yyval.n) = ast_mat4; ;} |
4381 break; | 4351 break; |
4382 | 4352 |
4383 case 191: | 4353 case 191: |
4384 | 4354 |
4385 /* Line 1806 of yacc.c */ | 4355 /* Line 1464 of yacc.c */ |
4386 #line 1124 "glsl_parser.ypp" | 4356 #line 1124 "glsl_parser.ypp" |
4387 { (yyval.n) = ast_sampler1d; } | 4357 { (yyval.n) = ast_sampler1d; ;} |
4388 break; | 4358 break; |
4389 | 4359 |
4390 case 192: | 4360 case 192: |
4391 | 4361 |
4392 /* Line 1806 of yacc.c */ | 4362 /* Line 1464 of yacc.c */ |
4393 #line 1125 "glsl_parser.ypp" | 4363 #line 1125 "glsl_parser.ypp" |
4394 { (yyval.n) = ast_sampler2d; } | 4364 { (yyval.n) = ast_sampler2d; ;} |
4395 break; | 4365 break; |
4396 | 4366 |
4397 case 193: | 4367 case 193: |
4398 | 4368 |
4399 /* Line 1806 of yacc.c */ | 4369 /* Line 1464 of yacc.c */ |
4400 #line 1126 "glsl_parser.ypp" | 4370 #line 1126 "glsl_parser.ypp" |
4401 { (yyval.n) = ast_sampler2drect; } | 4371 { (yyval.n) = ast_sampler2drect; ;} |
4402 break; | 4372 break; |
4403 | 4373 |
4404 case 194: | 4374 case 194: |
4405 | 4375 |
4406 /* Line 1806 of yacc.c */ | 4376 /* Line 1464 of yacc.c */ |
4407 #line 1127 "glsl_parser.ypp" | 4377 #line 1127 "glsl_parser.ypp" |
4408 { (yyval.n) = ast_sampler3d; } | 4378 { (yyval.n) = ast_sampler3d; ;} |
4409 break; | 4379 break; |
4410 | 4380 |
4411 case 195: | 4381 case 195: |
4412 | 4382 |
4413 /* Line 1806 of yacc.c */ | 4383 /* Line 1464 of yacc.c */ |
4414 #line 1128 "glsl_parser.ypp" | 4384 #line 1128 "glsl_parser.ypp" |
4415 { (yyval.n) = ast_samplercube; } | 4385 { (yyval.n) = ast_samplercube; ;} |
4416 break; | 4386 break; |
4417 | 4387 |
4418 case 196: | 4388 case 196: |
4419 | 4389 |
4420 /* Line 1806 of yacc.c */ | 4390 /* Line 1464 of yacc.c */ |
4421 #line 1129 "glsl_parser.ypp" | 4391 #line 1129 "glsl_parser.ypp" |
4422 { (yyval.n) = ast_sampler1dshadow; } | 4392 { (yyval.n) = ast_sampler1dshadow; ;} |
4423 break; | 4393 break; |
4424 | 4394 |
4425 case 197: | 4395 case 197: |
4426 | 4396 |
4427 /* Line 1806 of yacc.c */ | 4397 /* Line 1464 of yacc.c */ |
4428 #line 1130 "glsl_parser.ypp" | 4398 #line 1130 "glsl_parser.ypp" |
4429 { (yyval.n) = ast_sampler2dshadow; } | 4399 { (yyval.n) = ast_sampler2dshadow; ;} |
4430 break; | 4400 break; |
4431 | 4401 |
4432 case 198: | 4402 case 198: |
4433 | 4403 |
4434 /* Line 1806 of yacc.c */ | 4404 /* Line 1464 of yacc.c */ |
4435 #line 1131 "glsl_parser.ypp" | 4405 #line 1131 "glsl_parser.ypp" |
4436 { (yyval.n) = ast_sampler2drectshadow; } | 4406 { (yyval.n) = ast_sampler2drectshadow; ;} |
4437 break; | 4407 break; |
4438 | 4408 |
4439 case 199: | 4409 case 199: |
4440 | 4410 |
4441 /* Line 1806 of yacc.c */ | 4411 /* Line 1464 of yacc.c */ |
4442 #line 1132 "glsl_parser.ypp" | 4412 #line 1132 "glsl_parser.ypp" |
4443 { (yyval.n) = ast_samplercubeshadow; } | 4413 { (yyval.n) = ast_samplercubeshadow; ;} |
4444 break; | 4414 break; |
4445 | 4415 |
4446 case 200: | 4416 case 200: |
4447 | 4417 |
4448 /* Line 1806 of yacc.c */ | 4418 /* Line 1464 of yacc.c */ |
4449 #line 1133 "glsl_parser.ypp" | 4419 #line 1133 "glsl_parser.ypp" |
4450 { (yyval.n) = ast_sampler1darray; } | 4420 { (yyval.n) = ast_sampler1darray; ;} |
4451 break; | 4421 break; |
4452 | 4422 |
4453 case 201: | 4423 case 201: |
4454 | 4424 |
4455 /* Line 1806 of yacc.c */ | 4425 /* Line 1464 of yacc.c */ |
4456 #line 1134 "glsl_parser.ypp" | 4426 #line 1134 "glsl_parser.ypp" |
4457 { (yyval.n) = ast_sampler2darray; } | 4427 { (yyval.n) = ast_sampler2darray; ;} |
4458 break; | 4428 break; |
4459 | 4429 |
4460 case 202: | 4430 case 202: |
4461 | 4431 |
4462 /* Line 1806 of yacc.c */ | 4432 /* Line 1464 of yacc.c */ |
4463 #line 1135 "glsl_parser.ypp" | 4433 #line 1135 "glsl_parser.ypp" |
4464 { (yyval.n) = ast_sampler1darrayshadow; } | 4434 { (yyval.n) = ast_sampler1darrayshadow; ;} |
4465 break; | 4435 break; |
4466 | 4436 |
4467 case 203: | 4437 case 203: |
4468 | 4438 |
4469 /* Line 1806 of yacc.c */ | 4439 /* Line 1464 of yacc.c */ |
4470 #line 1136 "glsl_parser.ypp" | 4440 #line 1136 "glsl_parser.ypp" |
4471 { (yyval.n) = ast_sampler2darrayshadow; } | 4441 { (yyval.n) = ast_sampler2darrayshadow; ;} |
4472 break; | 4442 break; |
4473 | 4443 |
4474 case 204: | 4444 case 204: |
4475 | 4445 |
4476 /* Line 1806 of yacc.c */ | 4446 /* Line 1464 of yacc.c */ |
4477 #line 1137 "glsl_parser.ypp" | 4447 #line 1137 "glsl_parser.ypp" |
4478 { (yyval.n) = ast_isampler1d; } | 4448 { (yyval.n) = ast_isampler1d; ;} |
4479 break; | 4449 break; |
4480 | 4450 |
4481 case 205: | 4451 case 205: |
4482 | 4452 |
4483 /* Line 1806 of yacc.c */ | 4453 /* Line 1464 of yacc.c */ |
4484 #line 1138 "glsl_parser.ypp" | 4454 #line 1138 "glsl_parser.ypp" |
4485 { (yyval.n) = ast_isampler2d; } | 4455 { (yyval.n) = ast_isampler2d; ;} |
4486 break; | 4456 break; |
4487 | 4457 |
4488 case 206: | 4458 case 206: |
4489 | 4459 |
4490 /* Line 1806 of yacc.c */ | 4460 /* Line 1464 of yacc.c */ |
4491 #line 1139 "glsl_parser.ypp" | 4461 #line 1139 "glsl_parser.ypp" |
4492 { (yyval.n) = ast_isampler3d; } | 4462 { (yyval.n) = ast_isampler3d; ;} |
4493 break; | 4463 break; |
4494 | 4464 |
4495 case 207: | 4465 case 207: |
4496 | 4466 |
4497 /* Line 1806 of yacc.c */ | 4467 /* Line 1464 of yacc.c */ |
4498 #line 1140 "glsl_parser.ypp" | 4468 #line 1140 "glsl_parser.ypp" |
4499 { (yyval.n) = ast_isamplercube; } | 4469 { (yyval.n) = ast_isamplercube; ;} |
4500 break; | 4470 break; |
4501 | 4471 |
4502 case 208: | 4472 case 208: |
4503 | 4473 |
4504 /* Line 1806 of yacc.c */ | 4474 /* Line 1464 of yacc.c */ |
4505 #line 1141 "glsl_parser.ypp" | 4475 #line 1141 "glsl_parser.ypp" |
4506 { (yyval.n) = ast_isampler1darray; } | 4476 { (yyval.n) = ast_isampler1darray; ;} |
4507 break; | 4477 break; |
4508 | 4478 |
4509 case 209: | 4479 case 209: |
4510 | 4480 |
4511 /* Line 1806 of yacc.c */ | 4481 /* Line 1464 of yacc.c */ |
4512 #line 1142 "glsl_parser.ypp" | 4482 #line 1142 "glsl_parser.ypp" |
4513 { (yyval.n) = ast_isampler2darray; } | 4483 { (yyval.n) = ast_isampler2darray; ;} |
4514 break; | 4484 break; |
4515 | 4485 |
4516 case 210: | 4486 case 210: |
4517 | 4487 |
4518 /* Line 1806 of yacc.c */ | 4488 /* Line 1464 of yacc.c */ |
4519 #line 1143 "glsl_parser.ypp" | 4489 #line 1143 "glsl_parser.ypp" |
4520 { (yyval.n) = ast_usampler1d; } | 4490 { (yyval.n) = ast_usampler1d; ;} |
4521 break; | 4491 break; |
4522 | 4492 |
4523 case 211: | 4493 case 211: |
4524 | 4494 |
4525 /* Line 1806 of yacc.c */ | 4495 /* Line 1464 of yacc.c */ |
4526 #line 1144 "glsl_parser.ypp" | 4496 #line 1144 "glsl_parser.ypp" |
4527 { (yyval.n) = ast_usampler2d; } | 4497 { (yyval.n) = ast_usampler2d; ;} |
4528 break; | 4498 break; |
4529 | 4499 |
4530 case 212: | 4500 case 212: |
4531 | 4501 |
4532 /* Line 1806 of yacc.c */ | 4502 /* Line 1464 of yacc.c */ |
4533 #line 1145 "glsl_parser.ypp" | 4503 #line 1145 "glsl_parser.ypp" |
4534 { (yyval.n) = ast_usampler3d; } | 4504 { (yyval.n) = ast_usampler3d; ;} |
4535 break; | 4505 break; |
4536 | 4506 |
4537 case 213: | 4507 case 213: |
4538 | 4508 |
4539 /* Line 1806 of yacc.c */ | 4509 /* Line 1464 of yacc.c */ |
4540 #line 1146 "glsl_parser.ypp" | 4510 #line 1146 "glsl_parser.ypp" |
4541 { (yyval.n) = ast_usamplercube; } | 4511 { (yyval.n) = ast_usamplercube; ;} |
4542 break; | 4512 break; |
4543 | 4513 |
4544 case 214: | 4514 case 214: |
4545 | 4515 |
4546 /* Line 1806 of yacc.c */ | 4516 /* Line 1464 of yacc.c */ |
4547 #line 1147 "glsl_parser.ypp" | 4517 #line 1147 "glsl_parser.ypp" |
4548 { (yyval.n) = ast_usampler1darray; } | 4518 { (yyval.n) = ast_usampler1darray; ;} |
4549 break; | 4519 break; |
4550 | 4520 |
4551 case 215: | 4521 case 215: |
4552 | 4522 |
4553 /* Line 1806 of yacc.c */ | 4523 /* Line 1464 of yacc.c */ |
4554 #line 1148 "glsl_parser.ypp" | 4524 #line 1148 "glsl_parser.ypp" |
4555 { (yyval.n) = ast_usampler2darray; } | 4525 { (yyval.n) = ast_usampler2darray; ;} |
4556 break; | 4526 break; |
4557 | 4527 |
4558 case 216: | 4528 case 216: |
4559 | 4529 |
4560 /* Line 1806 of yacc.c */ | 4530 /* Line 1464 of yacc.c */ |
4561 #line 1152 "glsl_parser.ypp" | 4531 #line 1152 "glsl_parser.ypp" |
4562 { | 4532 { |
4563 if (!state->es_shader && state->language_version < 130) | 4533 if (!state->es_shader && state->language_version < 130) |
4564 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, | 4534 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
4565 "precision qualifier forbidden " | 4535 "precision qualifier forbidden " |
4566 "in GLSL %d.%d (1.30 or later " | 4536 "in GLSL %d.%d (1.30 or later " |
4567 "required)\n", | 4537 "required)\n", |
4568 state->language_version / 100, | 4538 state->language_version / 100, |
4569 state->language_version % 100); | 4539 state->language_version % 100); |
4570 | 4540 |
4571 (yyval.n) = ast_precision_high; | 4541 (yyval.n) = ast_precision_high; |
4572 » » } | 4542 » » ;} |
4573 break; | 4543 break; |
4574 | 4544 |
4575 case 217: | 4545 case 217: |
4576 | 4546 |
4577 /* Line 1806 of yacc.c */ | 4547 /* Line 1464 of yacc.c */ |
4578 #line 1163 "glsl_parser.ypp" | 4548 #line 1163 "glsl_parser.ypp" |
4579 { | 4549 { |
4580 if (!state->es_shader && state->language_version < 130) | 4550 if (!state->es_shader && state->language_version < 130) |
4581 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, | 4551 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
4582 "precision qualifier forbidden " | 4552 "precision qualifier forbidden " |
4583 "in GLSL %d.%d (1.30 or later " | 4553 "in GLSL %d.%d (1.30 or later " |
4584 "required)\n", | 4554 "required)\n", |
4585 state->language_version / 100, | 4555 state->language_version / 100, |
4586 state->language_version % 100); | 4556 state->language_version % 100); |
4587 | 4557 |
4588 (yyval.n) = ast_precision_medium; | 4558 (yyval.n) = ast_precision_medium; |
4589 » » } | 4559 » » ;} |
4590 break; | 4560 break; |
4591 | 4561 |
4592 case 218: | 4562 case 218: |
4593 | 4563 |
4594 /* Line 1806 of yacc.c */ | 4564 /* Line 1464 of yacc.c */ |
4595 #line 1174 "glsl_parser.ypp" | 4565 #line 1174 "glsl_parser.ypp" |
4596 { | 4566 { |
4597 if (!state->es_shader && state->language_version < 130) | 4567 if (!state->es_shader && state->language_version < 130) |
4598 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, | 4568 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, |
4599 "precision qualifier forbidden " | 4569 "precision qualifier forbidden " |
4600 "in GLSL %d.%d (1.30 or later " | 4570 "in GLSL %d.%d (1.30 or later " |
4601 "required)\n", | 4571 "required)\n", |
4602 state->language_version / 100, | 4572 state->language_version / 100, |
4603 state->language_version % 100); | 4573 state->language_version % 100); |
4604 | 4574 |
4605 (yyval.n) = ast_precision_low; | 4575 (yyval.n) = ast_precision_low; |
4606 » » } | 4576 » » ;} |
4607 break; | 4577 break; |
4608 | 4578 |
4609 case 219: | 4579 case 219: |
4610 | 4580 |
4611 /* Line 1806 of yacc.c */ | 4581 /* Line 1464 of yacc.c */ |
4612 #line 1189 "glsl_parser.ypp" | 4582 #line 1189 "glsl_parser.ypp" |
4613 { | 4583 { |
4614 void *ctx = state; | 4584 void *ctx = state; |
4615 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) -
(5)].identifier), (yyvsp[(4) - (5)].node)); | 4585 (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) -
(5)].identifier), (yyvsp[(4) - (5)].node)); |
4616 (yyval.struct_specifier)->set_location(yylloc); | 4586 (yyval.struct_specifier)->set_location(yylloc); |
4617 » } | 4587 » ;} |
4618 break; | 4588 break; |
4619 | 4589 |
4620 case 220: | 4590 case 220: |
4621 | 4591 |
4622 /* Line 1806 of yacc.c */ | 4592 /* Line 1464 of yacc.c */ |
4623 #line 1195 "glsl_parser.ypp" | 4593 #line 1195 "glsl_parser.ypp" |
4624 { | 4594 { |
4625 void *ctx = state; | 4595 void *ctx = state; |
4626 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp
[(3) - (4)].node)); | 4596 (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp
[(3) - (4)].node)); |
4627 (yyval.struct_specifier)->set_location(yylloc); | 4597 (yyval.struct_specifier)->set_location(yylloc); |
4628 » } | 4598 » ;} |
4629 break; | 4599 break; |
4630 | 4600 |
4631 case 221: | 4601 case 221: |
4632 | 4602 |
4633 /* Line 1806 of yacc.c */ | 4603 /* Line 1464 of yacc.c */ |
4634 #line 1204 "glsl_parser.ypp" | 4604 #line 1204 "glsl_parser.ypp" |
4635 { | 4605 { |
4636 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list); | 4606 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list); |
4637 (yyvsp[(1) - (1)].declarator_list)->link.self_link(); | 4607 (yyvsp[(1) - (1)].declarator_list)->link.self_link(); |
4638 » } | 4608 » ;} |
4639 break; | 4609 break; |
4640 | 4610 |
4641 case 222: | 4611 case 222: |
4642 | 4612 |
4643 /* Line 1806 of yacc.c */ | 4613 /* Line 1464 of yacc.c */ |
4644 #line 1209 "glsl_parser.ypp" | 4614 #line 1209 "glsl_parser.ypp" |
4645 { | 4615 { |
4646 (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node); | 4616 (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node); |
4647 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)
->link); | 4617 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)
->link); |
4648 » } | 4618 » ;} |
4649 break; | 4619 break; |
4650 | 4620 |
4651 case 223: | 4621 case 223: |
4652 | 4622 |
4653 /* Line 1806 of yacc.c */ | 4623 /* Line 1464 of yacc.c */ |
4654 #line 1217 "glsl_parser.ypp" | 4624 #line 1217 "glsl_parser.ypp" |
4655 { | 4625 { |
4656 void *ctx = state; | 4626 void *ctx = state; |
4657 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); | 4627 ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); |
4658 type->set_location(yylloc); | 4628 type->set_location(yylloc); |
4659 | 4629 |
4660 type->specifier = (yyvsp[(1) - (3)].type_specifier); | 4630 type->specifier = (yyvsp[(1) - (3)].type_specifier); |
4661 (yyval.declarator_list) = new(ctx) ast_declarator_list(type); | 4631 (yyval.declarator_list) = new(ctx) ast_declarator_list(type); |
4662 (yyval.declarator_list)->set_location(yylloc); | 4632 (yyval.declarator_list)->set_location(yylloc); |
4663 | 4633 |
4664 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(&
(yyvsp[(2) - (3)].declaration)->link); | 4634 (yyval.declarator_list)->declarations.push_degenerate_list_at_head(&
(yyvsp[(2) - (3)].declaration)->link); |
4665 » } | 4635 » ;} |
4666 break; | 4636 break; |
4667 | 4637 |
4668 case 224: | 4638 case 224: |
4669 | 4639 |
4670 /* Line 1806 of yacc.c */ | 4640 /* Line 1464 of yacc.c */ |
4671 #line 1232 "glsl_parser.ypp" | 4641 #line 1232 "glsl_parser.ypp" |
4672 { | 4642 { |
4673 (yyval.declaration) = (yyvsp[(1) - (1)].declaration); | 4643 (yyval.declaration) = (yyvsp[(1) - (1)].declaration); |
4674 (yyvsp[(1) - (1)].declaration)->link.self_link(); | 4644 (yyvsp[(1) - (1)].declaration)->link.self_link(); |
4675 » } | 4645 » ;} |
4676 break; | 4646 break; |
4677 | 4647 |
4678 case 225: | 4648 case 225: |
4679 | 4649 |
4680 /* Line 1806 of yacc.c */ | 4650 /* Line 1464 of yacc.c */ |
4681 #line 1237 "glsl_parser.ypp" | 4651 #line 1237 "glsl_parser.ypp" |
4682 { | 4652 { |
4683 (yyval.declaration) = (yyvsp[(1) - (3)].declaration); | 4653 (yyval.declaration) = (yyvsp[(1) - (3)].declaration); |
4684 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declarati
on)->link); | 4654 (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declarati
on)->link); |
4685 » } | 4655 » ;} |
4686 break; | 4656 break; |
4687 | 4657 |
4688 case 226: | 4658 case 226: |
4689 | 4659 |
4690 /* Line 1806 of yacc.c */ | 4660 /* Line 1464 of yacc.c */ |
4691 #line 1245 "glsl_parser.ypp" | 4661 #line 1245 "glsl_parser.ypp" |
4692 { | 4662 { |
4693 void *ctx = state; | 4663 void *ctx = state; |
4694 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].iden
tifier), false, NULL, NULL); | 4664 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].iden
tifier), false, NULL, NULL); |
4695 (yyval.declaration)->set_location(yylloc); | 4665 (yyval.declaration)->set_location(yylloc); |
4696 » } | 4666 » ;} |
4697 break; | 4667 break; |
4698 | 4668 |
4699 case 227: | 4669 case 227: |
4700 | 4670 |
4701 /* Line 1806 of yacc.c */ | 4671 /* Line 1464 of yacc.c */ |
4702 #line 1251 "glsl_parser.ypp" | 4672 #line 1251 "glsl_parser.ypp" |
4703 { | 4673 { |
4704 void *ctx = state; | 4674 void *ctx = state; |
4705 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].iden
tifier), true, (yyvsp[(3) - (4)].expression), NULL); | 4675 (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].iden
tifier), true, (yyvsp[(3) - (4)].expression), NULL); |
4706 (yyval.declaration)->set_location(yylloc); | 4676 (yyval.declaration)->set_location(yylloc); |
4707 » } | 4677 » ;} |
4708 break; | 4678 break; |
4709 | 4679 |
4710 case 230: | 4680 case 230: |
4711 | 4681 |
4712 /* Line 1806 of yacc.c */ | 4682 /* Line 1464 of yacc.c */ |
4713 #line 1269 "glsl_parser.ypp" | 4683 #line 1269 "glsl_parser.ypp" |
4714 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); } | 4684 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;} |
4715 break; | 4685 break; |
4716 | 4686 |
4717 case 235: | 4687 case 235: |
4718 | 4688 |
4719 /* Line 1806 of yacc.c */ | 4689 /* Line 1464 of yacc.c */ |
4720 #line 1277 "glsl_parser.ypp" | 4690 #line 1277 "glsl_parser.ypp" |
4721 { (yyval.node) = NULL; } | 4691 { (yyval.node) = NULL; ;} |
4722 break; | 4692 break; |
4723 | 4693 |
4724 case 236: | 4694 case 236: |
4725 | 4695 |
4726 /* Line 1806 of yacc.c */ | 4696 /* Line 1464 of yacc.c */ |
4727 #line 1278 "glsl_parser.ypp" | 4697 #line 1278 "glsl_parser.ypp" |
4728 { (yyval.node) = NULL; } | 4698 { (yyval.node) = NULL; ;} |
4729 break; | 4699 break; |
4730 | 4700 |
4731 case 239: | 4701 case 239: |
4732 | 4702 |
4733 /* Line 1806 of yacc.c */ | 4703 /* Line 1464 of yacc.c */ |
4734 #line 1285 "glsl_parser.ypp" | 4704 #line 1285 "glsl_parser.ypp" |
4735 { | 4705 { |
4736 void *ctx = state; | 4706 void *ctx = state; |
4737 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NU
LL); | 4707 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NU
LL); |
4738 (yyval.compound_statement)->set_location(yylloc); | 4708 (yyval.compound_statement)->set_location(yylloc); |
4739 » } | 4709 » ;} |
4740 break; | 4710 break; |
4741 | 4711 |
4742 case 240: | 4712 case 240: |
4743 | 4713 |
4744 /* Line 1806 of yacc.c */ | 4714 /* Line 1464 of yacc.c */ |
4745 #line 1291 "glsl_parser.ypp" | 4715 #line 1291 "glsl_parser.ypp" |
4746 { | 4716 { |
4747 void *ctx = state; | 4717 void *ctx = state; |
4748 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (y
yvsp[(2) - (3)].node)); | 4718 (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (y
yvsp[(2) - (3)].node)); |
4749 (yyval.compound_statement)->set_location(yylloc); | 4719 (yyval.compound_statement)->set_location(yylloc); |
4750 » } | 4720 » ;} |
4751 break; | 4721 break; |
4752 | 4722 |
4753 case 241: | 4723 case 241: |
4754 | 4724 |
4755 /* Line 1806 of yacc.c */ | 4725 /* Line 1464 of yacc.c */ |
4756 #line 1299 "glsl_parser.ypp" | 4726 #line 1299 "glsl_parser.ypp" |
4757 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); } | 4727 { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;} |
4758 break; | 4728 break; |
4759 | 4729 |
4760 case 243: | 4730 case 243: |
4761 | 4731 |
4762 /* Line 1806 of yacc.c */ | 4732 /* Line 1464 of yacc.c */ |
4763 #line 1305 "glsl_parser.ypp" | 4733 #line 1305 "glsl_parser.ypp" |
4764 { | 4734 { |
4765 void *ctx = state; | 4735 void *ctx = state; |
4766 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, N
ULL); | 4736 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, N
ULL); |
4767 (yyval.compound_statement)->set_location(yylloc); | 4737 (yyval.compound_statement)->set_location(yylloc); |
4768 » } | 4738 » ;} |
4769 break; | 4739 break; |
4770 | 4740 |
4771 case 244: | 4741 case 244: |
4772 | 4742 |
4773 /* Line 1806 of yacc.c */ | 4743 /* Line 1464 of yacc.c */ |
4774 #line 1311 "glsl_parser.ypp" | 4744 #line 1311 "glsl_parser.ypp" |
4775 { | 4745 { |
4776 void *ctx = state; | 4746 void *ctx = state; |
4777 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (
yyvsp[(2) - (3)].node)); | 4747 (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (
yyvsp[(2) - (3)].node)); |
4778 (yyval.compound_statement)->set_location(yylloc); | 4748 (yyval.compound_statement)->set_location(yylloc); |
4779 » } | 4749 » ;} |
4780 break; | 4750 break; |
4781 | 4751 |
4782 case 245: | 4752 case 245: |
4783 | 4753 |
4784 /* Line 1806 of yacc.c */ | 4754 /* Line 1464 of yacc.c */ |
4785 #line 1320 "glsl_parser.ypp" | 4755 #line 1320 "glsl_parser.ypp" |
4786 { | 4756 { |
4787 if ((yyvsp[(1) - (1)].node) == NULL) { | 4757 if ((yyvsp[(1) - (1)].node) == NULL) { |
4788 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n")
; | 4758 _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n")
; |
4789 assert((yyvsp[(1) - (1)].node) != NULL); | 4759 assert((yyvsp[(1) - (1)].node) != NULL); |
4790 } | 4760 } |
4791 | 4761 |
4792 (yyval.node) = (yyvsp[(1) - (1)].node); | 4762 (yyval.node) = (yyvsp[(1) - (1)].node); |
4793 (yyval.node)->link.self_link(); | 4763 (yyval.node)->link.self_link(); |
4794 » } | 4764 » ;} |
4795 break; | 4765 break; |
4796 | 4766 |
4797 case 246: | 4767 case 246: |
4798 | 4768 |
4799 /* Line 1806 of yacc.c */ | 4769 /* Line 1464 of yacc.c */ |
4800 #line 1330 "glsl_parser.ypp" | 4770 #line 1330 "glsl_parser.ypp" |
4801 { | 4771 { |
4802 if ((yyvsp[(2) - (2)].node) == NULL) { | 4772 if ((yyvsp[(2) - (2)].node) == NULL) { |
4803 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n")
; | 4773 _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n")
; |
4804 assert((yyvsp[(2) - (2)].node) != NULL); | 4774 assert((yyvsp[(2) - (2)].node) != NULL); |
4805 } | 4775 } |
4806 (yyval.node) = (yyvsp[(1) - (2)].node); | 4776 (yyval.node) = (yyvsp[(1) - (2)].node); |
4807 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link); | 4777 (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].node)->link); |
4808 » } | 4778 » ;} |
4809 break; | 4779 break; |
4810 | 4780 |
4811 case 247: | 4781 case 247: |
4812 | 4782 |
4813 /* Line 1806 of yacc.c */ | 4783 /* Line 1464 of yacc.c */ |
4814 #line 1342 "glsl_parser.ypp" | 4784 #line 1342 "glsl_parser.ypp" |
4815 { | 4785 { |
4816 void *ctx = state; | 4786 void *ctx = state; |
4817 (yyval.node) = new(ctx) ast_expression_statement(NULL); | 4787 (yyval.node) = new(ctx) ast_expression_statement(NULL); |
4818 (yyval.node)->set_location(yylloc); | 4788 (yyval.node)->set_location(yylloc); |
4819 » } | 4789 » ;} |
4820 break; | 4790 break; |
4821 | 4791 |
4822 case 248: | 4792 case 248: |
4823 | 4793 |
4824 /* Line 1806 of yacc.c */ | 4794 /* Line 1464 of yacc.c */ |
4825 #line 1348 "glsl_parser.ypp" | 4795 #line 1348 "glsl_parser.ypp" |
4826 { | 4796 { |
4827 void *ctx = state; | 4797 void *ctx = state; |
4828 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].ex
pression)); | 4798 (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].ex
pression)); |
4829 (yyval.node)->set_location(yylloc); | 4799 (yyval.node)->set_location(yylloc); |
4830 » } | 4800 » ;} |
4831 break; | 4801 break; |
4832 | 4802 |
4833 case 249: | 4803 case 249: |
4834 | 4804 |
4835 /* Line 1806 of yacc.c */ | 4805 /* Line 1464 of yacc.c */ |
4836 #line 1357 "glsl_parser.ypp" | 4806 #line 1357 "glsl_parser.ypp" |
4837 { | 4807 { |
4838 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].e
xpression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement, | 4808 (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].e
xpression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement, |
4839 (yyvsp[(5) - (5)].selection_r
est_statement).else_statement); | 4809 (yyvsp[(5) - (5)].selection_r
est_statement).else_statement); |
4840 (yyval.node)->set_location(yylloc); | 4810 (yyval.node)->set_location(yylloc); |
4841 » } | 4811 » ;} |
4842 break; | 4812 break; |
4843 | 4813 |
4844 case 250: | 4814 case 250: |
4845 | 4815 |
4846 /* Line 1806 of yacc.c */ | 4816 /* Line 1464 of yacc.c */ |
4847 #line 1366 "glsl_parser.ypp" | 4817 #line 1366 "glsl_parser.ypp" |
4848 { | 4818 { |
4849 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].n
ode); | 4819 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].n
ode); |
4850 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].n
ode); | 4820 (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].n
ode); |
4851 » } | 4821 » ;} |
4852 break; | 4822 break; |
4853 | 4823 |
4854 case 251: | 4824 case 251: |
4855 | 4825 |
4856 /* Line 1806 of yacc.c */ | 4826 /* Line 1464 of yacc.c */ |
4857 #line 1371 "glsl_parser.ypp" | 4827 #line 1371 "glsl_parser.ypp" |
4858 { | 4828 { |
4859 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].n
ode); | 4829 (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].n
ode); |
4860 (yyval.selection_rest_statement).else_statement = NULL; | 4830 (yyval.selection_rest_statement).else_statement = NULL; |
4861 » } | 4831 » ;} |
4862 break; | 4832 break; |
4863 | 4833 |
4864 case 252: | 4834 case 252: |
4865 | 4835 |
4866 /* Line 1806 of yacc.c */ | 4836 /* Line 1464 of yacc.c */ |
4867 #line 1379 "glsl_parser.ypp" | 4837 #line 1379 "glsl_parser.ypp" |
4868 { | 4838 { |
4869 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression); | 4839 (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression); |
4870 » } | 4840 » ;} |
4871 break; | 4841 break; |
4872 | 4842 |
4873 case 253: | 4843 case 253: |
4874 | 4844 |
4875 /* Line 1806 of yacc.c */ | 4845 /* Line 1464 of yacc.c */ |
4876 #line 1383 "glsl_parser.ypp" | 4846 #line 1383 "glsl_parser.ypp" |
4877 { | 4847 { |
4878 void *ctx = state; | 4848 void *ctx = state; |
4879 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), false, NULL, (yyvsp[(4) - (4)].expression)); | 4849 ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].id
entifier), false, NULL, (yyvsp[(4) - (4)].expression)); |
4880 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type)); | 4850 ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type)); |
4881 decl->set_location(yylloc); | 4851 decl->set_location(yylloc); |
4882 declarator->set_location(yylloc); | 4852 declarator->set_location(yylloc); |
4883 | 4853 |
4884 declarator->declarations.push_tail(&decl->link); | 4854 declarator->declarations.push_tail(&decl->link); |
4885 (yyval.node) = declarator; | 4855 (yyval.node) = declarator; |
4886 » } | 4856 » ;} |
4887 break; | 4857 break; |
4888 | 4858 |
4889 case 257: | 4859 case 257: |
4890 | 4860 |
4891 /* Line 1806 of yacc.c */ | 4861 /* Line 1464 of yacc.c */ |
4892 #line 1406 "glsl_parser.ypp" | 4862 #line 1406 "glsl_parser.ypp" |
4893 { | 4863 { |
4894 void *ctx = state; | 4864 void *ctx = state; |
4895 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_while, | 4865 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_while, |
4896 NULL, (yyvsp[(3) - (5)].node
), NULL, (yyvsp[(5) - (5)].node)); | 4866 NULL, (yyvsp[(3) - (5)].node
), NULL, (yyvsp[(5) - (5)].node)); |
4897 (yyval.node)->set_location(yylloc); | 4867 (yyval.node)->set_location(yylloc); |
4898 » } | 4868 » ;} |
4899 break; | 4869 break; |
4900 | 4870 |
4901 case 258: | 4871 case 258: |
4902 | 4872 |
4903 /* Line 1806 of yacc.c */ | 4873 /* Line 1464 of yacc.c */ |
4904 #line 1413 "glsl_parser.ypp" | 4874 #line 1413 "glsl_parser.ypp" |
4905 { | 4875 { |
4906 void *ctx = state; | 4876 void *ctx = state; |
4907 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_do_while, | 4877 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_do_while, |
4908 NULL, (yyvsp[(5) - (7)].expr
ession), NULL, (yyvsp[(2) - (7)].node)); | 4878 NULL, (yyvsp[(5) - (7)].expr
ession), NULL, (yyvsp[(2) - (7)].node)); |
4909 (yyval.node)->set_location(yylloc); | 4879 (yyval.node)->set_location(yylloc); |
4910 » } | 4880 » ;} |
4911 break; | 4881 break; |
4912 | 4882 |
4913 case 259: | 4883 case 259: |
4914 | 4884 |
4915 /* Line 1806 of yacc.c */ | 4885 /* Line 1464 of yacc.c */ |
4916 #line 1420 "glsl_parser.ypp" | 4886 #line 1420 "glsl_parser.ypp" |
4917 { | 4887 { |
4918 void *ctx = state; | 4888 void *ctx = state; |
4919 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_for, | 4889 (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_stateme
nt::ast_for, |
4920 (yyvsp[(3) - (6)].node), (yy
vsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).r
est, (yyvsp[(6) - (6)].node)); | 4890 (yyvsp[(3) - (6)].node), (yy
vsp[(4) - (6)].for_rest_statement).cond, (yyvsp[(4) - (6)].for_rest_statement).r
est, (yyvsp[(6) - (6)].node)); |
4921 (yyval.node)->set_location(yylloc); | 4891 (yyval.node)->set_location(yylloc); |
4922 » } | 4892 » ;} |
4923 break; | 4893 break; |
4924 | 4894 |
4925 case 263: | 4895 case 263: |
4926 | 4896 |
4927 /* Line 1806 of yacc.c */ | 4897 /* Line 1464 of yacc.c */ |
4928 #line 1436 "glsl_parser.ypp" | 4898 #line 1436 "glsl_parser.ypp" |
4929 { | 4899 { |
4930 (yyval.node) = NULL; | 4900 (yyval.node) = NULL; |
4931 » } | 4901 » ;} |
4932 break; | 4902 break; |
4933 | 4903 |
4934 case 264: | 4904 case 264: |
4935 | 4905 |
4936 /* Line 1806 of yacc.c */ | 4906 /* Line 1464 of yacc.c */ |
4937 #line 1443 "glsl_parser.ypp" | 4907 #line 1443 "glsl_parser.ypp" |
4938 { | 4908 { |
4939 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node); | 4909 (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node); |
4940 (yyval.for_rest_statement).rest = NULL; | 4910 (yyval.for_rest_statement).rest = NULL; |
4941 » } | 4911 » ;} |
4942 break; | 4912 break; |
4943 | 4913 |
4944 case 265: | 4914 case 265: |
4945 | 4915 |
4946 /* Line 1806 of yacc.c */ | 4916 /* Line 1464 of yacc.c */ |
4947 #line 1448 "glsl_parser.ypp" | 4917 #line 1448 "glsl_parser.ypp" |
4948 { | 4918 { |
4949 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node); | 4919 (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node); |
4950 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression); | 4920 (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression); |
4951 » } | 4921 » ;} |
4952 break; | 4922 break; |
4953 | 4923 |
4954 case 266: | 4924 case 266: |
4955 | 4925 |
4956 /* Line 1806 of yacc.c */ | 4926 /* Line 1464 of yacc.c */ |
4957 #line 1457 "glsl_parser.ypp" | 4927 #line 1457 "glsl_parser.ypp" |
4958 { | 4928 { |
4959 void *ctx = state; | 4929 void *ctx = state; |
4960 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_co
ntinue, NULL); | 4930 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_co
ntinue, NULL); |
4961 (yyval.node)->set_location(yylloc); | 4931 (yyval.node)->set_location(yylloc); |
4962 » } | 4932 » ;} |
4963 break; | 4933 break; |
4964 | 4934 |
4965 case 267: | 4935 case 267: |
4966 | 4936 |
4967 /* Line 1806 of yacc.c */ | 4937 /* Line 1464 of yacc.c */ |
4968 #line 1463 "glsl_parser.ypp" | 4938 #line 1463 "glsl_parser.ypp" |
4969 { | 4939 { |
4970 void *ctx = state; | 4940 void *ctx = state; |
4971 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_br
eak, NULL); | 4941 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_br
eak, NULL); |
4972 (yyval.node)->set_location(yylloc); | 4942 (yyval.node)->set_location(yylloc); |
4973 » } | 4943 » ;} |
4974 break; | 4944 break; |
4975 | 4945 |
4976 case 268: | 4946 case 268: |
4977 | 4947 |
4978 /* Line 1806 of yacc.c */ | 4948 /* Line 1464 of yacc.c */ |
4979 #line 1469 "glsl_parser.ypp" | 4949 #line 1469 "glsl_parser.ypp" |
4980 { | 4950 { |
4981 void *ctx = state; | 4951 void *ctx = state; |
4982 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re
turn, NULL); | 4952 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re
turn, NULL); |
4983 (yyval.node)->set_location(yylloc); | 4953 (yyval.node)->set_location(yylloc); |
4984 » } | 4954 » ;} |
4985 break; | 4955 break; |
4986 | 4956 |
4987 case 269: | 4957 case 269: |
4988 | 4958 |
4989 /* Line 1806 of yacc.c */ | 4959 /* Line 1464 of yacc.c */ |
4990 #line 1475 "glsl_parser.ypp" | 4960 #line 1475 "glsl_parser.ypp" |
4991 { | 4961 { |
4992 void *ctx = state; | 4962 void *ctx = state; |
4993 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re
turn, (yyvsp[(2) - (3)].expression)); | 4963 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_re
turn, (yyvsp[(2) - (3)].expression)); |
4994 (yyval.node)->set_location(yylloc); | 4964 (yyval.node)->set_location(yylloc); |
4995 » } | 4965 » ;} |
4996 break; | 4966 break; |
4997 | 4967 |
4998 case 270: | 4968 case 270: |
4999 | 4969 |
5000 /* Line 1806 of yacc.c */ | 4970 /* Line 1464 of yacc.c */ |
5001 #line 1481 "glsl_parser.ypp" | 4971 #line 1481 "glsl_parser.ypp" |
5002 { | 4972 { |
5003 void *ctx = state; | 4973 void *ctx = state; |
5004 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_di
scard, NULL); | 4974 (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_di
scard, NULL); |
5005 (yyval.node)->set_location(yylloc); | 4975 (yyval.node)->set_location(yylloc); |
5006 » } | 4976 » ;} |
5007 break; | 4977 break; |
5008 | 4978 |
5009 case 271: | 4979 case 271: |
5010 | 4980 |
5011 /* Line 1806 of yacc.c */ | 4981 /* Line 1464 of yacc.c */ |
5012 #line 1489 "glsl_parser.ypp" | 4982 #line 1489 "glsl_parser.ypp" |
5013 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); } | 4983 { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;} |
5014 break; | 4984 break; |
5015 | 4985 |
5016 case 272: | 4986 case 272: |
5017 | 4987 |
5018 /* Line 1806 of yacc.c */ | 4988 /* Line 1464 of yacc.c */ |
5019 #line 1490 "glsl_parser.ypp" | 4989 #line 1490 "glsl_parser.ypp" |
5020 { (yyval.node) = (yyvsp[(1) - (1)].node); } | 4990 { (yyval.node) = (yyvsp[(1) - (1)].node); ;} |
5021 break; | 4991 break; |
5022 | 4992 |
5023 case 273: | 4993 case 273: |
5024 | 4994 |
5025 /* Line 1806 of yacc.c */ | 4995 /* Line 1464 of yacc.c */ |
5026 #line 1491 "glsl_parser.ypp" | 4996 #line 1491 "glsl_parser.ypp" |
5027 { (yyval.node) = NULL; } | 4997 { (yyval.node) = NULL; ;} |
5028 break; | 4998 break; |
5029 | 4999 |
5030 case 274: | 5000 case 274: |
5031 | 5001 |
5032 /* Line 1806 of yacc.c */ | 5002 /* Line 1464 of yacc.c */ |
5033 #line 1496 "glsl_parser.ypp" | 5003 #line 1496 "glsl_parser.ypp" |
5034 { | 5004 { |
5035 void *ctx = state; | 5005 void *ctx = state; |
5036 (yyval.function_definition) = new(ctx) ast_function_definition(); | 5006 (yyval.function_definition) = new(ctx) ast_function_definition(); |
5037 (yyval.function_definition)->set_location(yylloc); | 5007 (yyval.function_definition)->set_location(yylloc); |
5038 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function); | 5008 (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function); |
5039 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statem
ent); | 5009 (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statem
ent); |
5040 » } | 5010 » ;} |
5041 break; | 5011 break; |
5042 | 5012 |
5043 | 5013 |
5044 | 5014 |
5045 /* Line 1806 of yacc.c */ | 5015 /* Line 1464 of yacc.c */ |
5046 #line 5047 "glsl_parser.cpp" | 5016 #line 5016 "glsl_parser.cpp" |
5047 default: break; | 5017 default: break; |
5048 } | 5018 } |
5049 /* User semantic actions sometimes alter yychar, and that requires | |
5050 that yytoken be updated with the new translation. We take the | |
5051 approach of translating immediately before every use of yytoken. | |
5052 One alternative is translating here after every semantic action, | |
5053 but that translation would be missed if the semantic action invokes | |
5054 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | |
5055 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an | |
5056 incorrect destructor might then be invoked immediately. In the | |
5057 case of YYERROR or YYBACKUP, subsequent parser actions might lead | |
5058 to an incorrect destructor call or verbose syntax error message | |
5059 before the lookahead is translated. */ | |
5060 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); | 5019 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); |
5061 | 5020 |
5062 YYPOPSTACK (yylen); | 5021 YYPOPSTACK (yylen); |
5063 yylen = 0; | 5022 yylen = 0; |
5064 YY_STACK_PRINT (yyss, yyssp); | 5023 YY_STACK_PRINT (yyss, yyssp); |
5065 | 5024 |
5066 *++yyvsp = yyval; | 5025 *++yyvsp = yyval; |
5067 *++yylsp = yyloc; | 5026 *++yylsp = yyloc; |
5068 | 5027 |
5069 /* Now `shift' the result of the reduction. Determine what state | 5028 /* Now `shift' the result of the reduction. Determine what state |
5070 that goes to, based on the state we popped back to and the rule | 5029 that goes to, based on the state we popped back to and the rule |
5071 number reduced by. */ | 5030 number reduced by. */ |
5072 | 5031 |
5073 yyn = yyr1[yyn]; | 5032 yyn = yyr1[yyn]; |
5074 | 5033 |
5075 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; | 5034 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; |
5076 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) | 5035 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) |
5077 yystate = yytable[yystate]; | 5036 yystate = yytable[yystate]; |
5078 else | 5037 else |
5079 yystate = yydefgoto[yyn - YYNTOKENS]; | 5038 yystate = yydefgoto[yyn - YYNTOKENS]; |
5080 | 5039 |
5081 goto yynewstate; | 5040 goto yynewstate; |
5082 | 5041 |
5083 | 5042 |
5084 /*------------------------------------. | 5043 /*------------------------------------. |
5085 | yyerrlab -- here on detecting error | | 5044 | yyerrlab -- here on detecting error | |
5086 `------------------------------------*/ | 5045 `------------------------------------*/ |
5087 yyerrlab: | 5046 yyerrlab: |
5088 /* Make sure we have latest lookahead translation. See comments at | |
5089 user semantic actions for why this is necessary. */ | |
5090 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); | |
5091 | |
5092 /* If not already recovering from an error, report this error. */ | 5047 /* If not already recovering from an error, report this error. */ |
5093 if (!yyerrstatus) | 5048 if (!yyerrstatus) |
5094 { | 5049 { |
5095 ++yynerrs; | 5050 ++yynerrs; |
5096 #if ! YYERROR_VERBOSE | 5051 #if ! YYERROR_VERBOSE |
5097 yyerror (&yylloc, state, YY_("syntax error")); | 5052 yyerror (&yylloc, state, YY_("syntax error")); |
5098 #else | 5053 #else |
5099 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ | |
5100 yyssp, yytoken) | |
5101 { | 5054 { |
5102 char const *yymsgp = YY_("syntax error"); | 5055 » YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); |
5103 int yysyntax_error_status; | 5056 » if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) |
5104 yysyntax_error_status = YYSYNTAX_ERROR; | 5057 » { |
5105 if (yysyntax_error_status == 0) | 5058 » YYSIZE_T yyalloc = 2 * yysize; |
5106 yymsgp = yymsg; | 5059 » if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) |
5107 else if (yysyntax_error_status == 1) | 5060 » yyalloc = YYSTACK_ALLOC_MAXIMUM; |
5108 { | 5061 » if (yymsg != yymsgbuf) |
5109 if (yymsg != yymsgbuf) | 5062 » YYSTACK_FREE (yymsg); |
5110 YYSTACK_FREE (yymsg); | 5063 » yymsg = (char *) YYSTACK_ALLOC (yyalloc); |
5111 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); | 5064 » if (yymsg) |
5112 if (!yymsg) | 5065 » yymsg_alloc = yyalloc; |
5113 { | 5066 » else |
5114 yymsg = yymsgbuf; | 5067 » { |
5115 yymsg_alloc = sizeof yymsgbuf; | 5068 » » yymsg = yymsgbuf; |
5116 yysyntax_error_status = 2; | 5069 » » yymsg_alloc = sizeof yymsgbuf; |
5117 } | 5070 » } |
5118 else | 5071 » } |
5119 { | 5072 |
5120 yysyntax_error_status = YYSYNTAX_ERROR; | 5073 » if (0 < yysize && yysize <= yymsg_alloc) |
5121 yymsgp = yymsg; | 5074 » { |
5122 } | 5075 » (void) yysyntax_error (yymsg, yystate, yychar); |
5123 } | 5076 » yyerror (&yylloc, state, yymsg); |
5124 yyerror (&yylloc, state, yymsgp); | 5077 » } |
5125 if (yysyntax_error_status == 2) | 5078 » else |
5126 goto yyexhaustedlab; | 5079 » { |
| 5080 » yyerror (&yylloc, state, YY_("syntax error")); |
| 5081 » if (yysize != 0) |
| 5082 » goto yyexhaustedlab; |
| 5083 » } |
5127 } | 5084 } |
5128 # undef YYSYNTAX_ERROR | |
5129 #endif | 5085 #endif |
5130 } | 5086 } |
5131 | 5087 |
5132 yyerror_range[1] = yylloc; | 5088 yyerror_range[1] = yylloc; |
5133 | 5089 |
5134 if (yyerrstatus == 3) | 5090 if (yyerrstatus == 3) |
5135 { | 5091 { |
5136 /* If just tried and failed to reuse lookahead token after an | 5092 /* If just tried and failed to reuse lookahead token after an |
5137 error, discard it. */ | 5093 error, discard it. */ |
5138 | 5094 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5178 | 5134 |
5179 /*-------------------------------------------------------------. | 5135 /*-------------------------------------------------------------. |
5180 | yyerrlab1 -- common code for both syntax error and YYERROR. | | 5136 | yyerrlab1 -- common code for both syntax error and YYERROR. | |
5181 `-------------------------------------------------------------*/ | 5137 `-------------------------------------------------------------*/ |
5182 yyerrlab1: | 5138 yyerrlab1: |
5183 yyerrstatus = 3; /* Each real token shifted decrements this. */ | 5139 yyerrstatus = 3; /* Each real token shifted decrements this. */ |
5184 | 5140 |
5185 for (;;) | 5141 for (;;) |
5186 { | 5142 { |
5187 yyn = yypact[yystate]; | 5143 yyn = yypact[yystate]; |
5188 if (!yypact_value_is_default (yyn)) | 5144 if (yyn != YYPACT_NINF) |
5189 { | 5145 { |
5190 yyn += YYTERROR; | 5146 yyn += YYTERROR; |
5191 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) | 5147 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) |
5192 { | 5148 { |
5193 yyn = yytable[yyn]; | 5149 yyn = yytable[yyn]; |
5194 if (0 < yyn) | 5150 if (0 < yyn) |
5195 break; | 5151 break; |
5196 } | 5152 } |
5197 } | 5153 } |
5198 | 5154 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5242 | yyexhaustedlab -- memory exhaustion comes here. | | 5198 | yyexhaustedlab -- memory exhaustion comes here. | |
5243 `-------------------------------------------------*/ | 5199 `-------------------------------------------------*/ |
5244 yyexhaustedlab: | 5200 yyexhaustedlab: |
5245 yyerror (&yylloc, state, YY_("memory exhausted")); | 5201 yyerror (&yylloc, state, YY_("memory exhausted")); |
5246 yyresult = 2; | 5202 yyresult = 2; |
5247 /* Fall through. */ | 5203 /* Fall through. */ |
5248 #endif | 5204 #endif |
5249 | 5205 |
5250 yyreturn: | 5206 yyreturn: |
5251 if (yychar != YYEMPTY) | 5207 if (yychar != YYEMPTY) |
5252 { | 5208 yydestruct ("Cleanup: discarding lookahead", |
5253 /* Make sure we have latest lookahead translation. See comments at | 5209 » » yytoken, &yylval, &yylloc, state); |
5254 user semantic actions for why this is necessary. */ | |
5255 yytoken = YYTRANSLATE (yychar); | |
5256 yydestruct ("Cleanup: discarding lookahead", | |
5257 yytoken, &yylval, &yylloc, state); | |
5258 } | |
5259 /* Do not reclaim the symbols of the rule which action triggered | 5210 /* Do not reclaim the symbols of the rule which action triggered |
5260 this YYABORT or YYACCEPT. */ | 5211 this YYABORT or YYACCEPT. */ |
5261 YYPOPSTACK (yylen); | 5212 YYPOPSTACK (yylen); |
5262 YY_STACK_PRINT (yyss, yyssp); | 5213 YY_STACK_PRINT (yyss, yyssp); |
5263 while (yyssp != yyss) | 5214 while (yyssp != yyss) |
5264 { | 5215 { |
5265 yydestruct ("Cleanup: popping", | 5216 yydestruct ("Cleanup: popping", |
5266 yystos[*yyssp], yyvsp, yylsp, state); | 5217 yystos[*yyssp], yyvsp, yylsp, state); |
5267 YYPOPSTACK (1); | 5218 YYPOPSTACK (1); |
5268 } | 5219 } |
5269 #ifndef yyoverflow | 5220 #ifndef yyoverflow |
5270 if (yyss != yyssa) | 5221 if (yyss != yyssa) |
5271 YYSTACK_FREE (yyss); | 5222 YYSTACK_FREE (yyss); |
5272 #endif | 5223 #endif |
5273 #if YYERROR_VERBOSE | 5224 #if YYERROR_VERBOSE |
5274 if (yymsg != yymsgbuf) | 5225 if (yymsg != yymsgbuf) |
5275 YYSTACK_FREE (yymsg); | 5226 YYSTACK_FREE (yymsg); |
5276 #endif | 5227 #endif |
5277 /* Make sure YYID is used. */ | 5228 /* Make sure YYID is used. */ |
5278 return YYID (yyresult); | 5229 return YYID (yyresult); |
5279 } | 5230 } |
5280 | 5231 |
5281 | 5232 |
5282 | 5233 |
OLD | NEW |