Changeset 1412
- Timestamp:
- May 24, 2012, 9:16:51 AM (11 years ago)
- Location:
- trunk/test/sandbox/lex
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/sandbox/lex/lolfx.l
r1411 r1412 67 67 "left_op" { return GT_LEFT_OP; } 68 68 "right_op" { return GT_RIGHT_OP; } 69 "inc_op" { return GT_INC_OP; }70 "dec_op" { return GT_DEC_OP; }71 "le_op" { return GT_LE_OP; }72 "ge_op" { return GT_GE_OP; }73 "eq_op" { return GT_EQ_OP; }74 "ne_op" { return GT_NE_OP; }75 69 "and_op" { return GT_AND_OP; } 76 70 "or_op" { return GT_OR_OP; } … … 518 512 */ 519 513 514 "++" { return T_INC; } 515 "--" { return T_DEC; } 516 "<=" { return T_LE; } 517 ">=" { return T_GE; } 518 "==" { return T_EQ; } 519 "!=" { return T_NE; } 520 "<<" { return T_LEFT; } 521 ">>" { return T_RIGHT; } 522 "&&" { return T_AND; } 523 "||" { return T_OR; } 524 "^^" { return T_XOR; } 525 526 "*=" { return T_MULEQ; } 527 "/=" { return T_DIVEQ; } 528 "%=" { return T_MODEQ; } 529 "+=" { return T_ADDEQ; } 530 "-=" { return T_SUBEQ; } 531 "<<=" { return T_LEFTEQ; } 532 ">>=" { return T_RIGHTEQ; } 533 "&=" { return T_ANDEQ; } 534 "^=" { return T_XOREQ; } 535 "|=" { return T_OREQ; } 536 520 537 [0-9]+\.[0-9]+ { yylval.fval = atof(yytext); return FLOAT; } 521 538 [0-9]+ { yylval.ival = atoi(yytext); return INT; } -
trunk/test/sandbox/lex/lolfx.y
r1411 r1412 73 73 */ 74 74 75 %token HT_APPENDSTRUCTUREDBUFFER HT_ASM HT_ASM_FRAGMENT HT_BLENDSTATE HT_BOOL76 %token HT_B REAK HT_BUFFER HT_BYTEADDRESSBUFFER HT_CBUFFER HT_CENTROID77 %token HT_COLUMN_MAJOR HT_COMPILE HT_COMPILE_FRAGMENT HT_COMPILESHADER HT_CONST78 %token HT_CO NTINUE HT_COMPUTESHADER HT_CONSUMESTRUCTUREDBUFFER79 %token HT_DEPTHSTENCILSTATE HT_DEPTHSTENCILVIEW HT_DISCARD HT_DO HT_DOUBLE80 %token HT_DOMAINSHADER HT_DWORD HT_E LSE HT_EXTERN HT_FALSE HT_FLOAT HT_FOR81 %token HT_FXGROUP HT_GEOMETRYSHADER HT_GROUPSHARED HT_HALF HT_HULLSHADER HT_IF82 %token HT_IN HT_INLINE HT_INOUT HT_INPUTPATCH HT_INTHT_INTERFACE HT_LINE75 %token HT_APPENDSTRUCTUREDBUFFER HT_ASM HT_ASM_FRAGMENT HT_BLENDSTATE 76 %token HT_BUFFER HT_BYTEADDRESSBUFFER HT_CBUFFER 77 %token HT_COLUMN_MAJOR HT_COMPILE HT_COMPILE_FRAGMENT HT_COMPILESHADER 78 %token HT_COMPUTESHADER HT_CONSUMESTRUCTUREDBUFFER 79 %token HT_DEPTHSTENCILSTATE HT_DEPTHSTENCILVIEW 80 %token HT_DOMAINSHADER HT_DWORD HT_EXTERN HT_FALSE 81 %token HT_FXGROUP HT_GEOMETRYSHADER HT_GROUPSHARED HT_HALF HT_HULLSHADER 82 %token HT_INLINE HT_INPUTPATCH HT_INTERFACE HT_LINE 83 83 %token HT_LINEADJ HT_LINEAR HT_LINESTREAM HT_MATRIX HT_NAMESPACE 84 %token HT_NOINTERPOLATION HT_N OPERSPECTIVE HT_NULL HT_OUTHT_OUTPUTPATCH84 %token HT_NOINTERPOLATION HT_NULL HT_OUTPUTPATCH 85 85 %token HT_PACKOFFSET HT_PASS HT_PIXELFRAGMENT HT_PIXELSHADER HT_POINT 86 86 %token HT_POINTSTREAM HT_PRECISE HT_RASTERIZERSTATE HT_RENDERTARGETVIEW 87 %token HT_RE TURN HT_REGISTER HT_ROW_MAJOR HT_RWBUFFER HT_RWBYTEADDRESSBUFFER87 %token HT_REGISTER HT_ROW_MAJOR HT_RWBUFFER HT_RWBYTEADDRESSBUFFER 88 88 %token HT_RWSTRUCTUREDBUFFER HT_RWTEXTURE1D HT_RWTEXTURE1DARRAY HT_RWTEXTURE2D 89 %token HT_RWTEXTURE2DARRAY HT_RWTEXTURE3D HT_SAMPLER HT_SAMPLER1D HT_SAMPLER2D90 %token HT_SAMPLER 3D HT_SAMPLERCUBE HT_SAMPLER_STATE HT_SAMPLERSTATE89 %token HT_RWTEXTURE2DARRAY HT_RWTEXTURE3D HT_SAMPLER 90 %token HT_SAMPLER_STATE HT_SAMPLERSTATE 91 91 %token HT_SAMPLERCOMPARISONSTATE HT_SHARED HT_SNORM HT_STATEBLOCK 92 %token HT_STATEBLOCK_STATE HT_STATIC HT_STRING HT_STRUCT HT_SWITCH92 %token HT_STATEBLOCK_STATE HT_STATIC HT_STRING 93 93 %token HT_STRUCTUREDBUFFER HT_TBUFFER HT_TECHNIQUE HT_TECHNIQUE10 94 94 %token HT_TECHNIQUE11XZ HT_TEXTURE HT_TEXTURE1D HT_TEXTURE1DARRAY HT_TEXTURE2D 95 95 %token HT_TEXTURE2DARRAY HT_TEXTURE2DMS HT_TEXTURE2DMSARRAY HT_TEXTURE3D 96 96 %token HT_TEXTURECUBE HT_TEXTURECUBEARRAY HT_TRUE HT_TYPEDEF HT_TRIANGLE 97 %token HT_TRIANGLEADJ HT_TRIANGLESTREAM HT_UN IFORM HT_UNORM HT_UINTHT_VECTOR98 %token HT_VERTEXFRAGMENT HT_VERTEXSHADER HT_VO ID HT_VOLATILE HT_WHILE97 %token HT_TRIANGLEADJ HT_TRIANGLESTREAM HT_UNORM HT_VECTOR 98 %token HT_VERTEXFRAGMENT HT_VERTEXSHADER HT_VOLATILE 99 99 100 100 /* … … 145 145 */ 146 146 147 %token HT_AUTO HT_CA SE HT_CATCH HT_CHAR HT_CLASS HT_CONST_CAST HT_DEFAULT147 %token HT_AUTO HT_CATCH HT_CHAR HT_CLASS HT_CONST_CAST 148 148 %token HT_DELETE HT_DYNAMIC_CAST HT_ENUM HT_EXPLICIT HT_FRIEND HT_GOTO HT_LONG 149 149 %token HT_MUTABLE HT_NEW HT_OPERATOR HT_PRIVATE HT_PROTECTED HT_PUBLIC … … 151 151 %token HT_TEMPLATE HT_THIS HT_THROW HT_TRY HT_TYPENAME HT_UNION HT_UNSIGNED 152 152 %token HT_USING HT_VIRTUAL 153 154 /* 155 * Language keywords 156 */ 157 158 %token T_INC T_DEC T_LE T_GE T_EQ T_NE T_LEFT T_RIGHT T_AND T_OR T_XOR 159 %token T_MULEQ T_DIVEQ T_MODEQ T_ADDEQ T_SUBEQ T_LEFTEQ T_RIGHTEQ T_ANDEQ 160 %token T_XOREQ T_OREQ 153 161 154 162 /* … … 208 216 | NAME '[' INT ']' '=' NAME ';' 209 217 | NAME '[' INT ']' '=' INT ';' 218 ; 219 220 /* 221 * Grammar for GLSL 222 */ 223 224 glsl_variable_identifier: 225 GLSL_IDENTIFIER 226 ; 227 228 glsl_primary_expression: 229 glsl_variable_identifier 230 | INTCONSTANT 231 | UINTCONSTANT 232 | FLOATCONSTANT 233 | BOOLCONSTANT 234 | '(' glsl_expression ')' 235 ; 236 237 glsl_postfix_expression: 238 glsl_primary_expression 239 | glsl_postfix_expression '[' glsl_integer_expression ']' 240 | glsl_function_call 241 | glsl_postfix_expression '.' FIELD_SELECTION 242 | glsl_postfix_expression T_INC 243 | glsl_postfix_expression T_DEC 244 ; 245 246 glsl_integer_expression: 247 glsl_expression 248 ; 249 250 glsl_function_call: 251 glsl_function_call_or_method 252 ; 253 254 glsl_function_call_or_method: 255 glsl_function_call_generic 256 | glsl_postfix_expression '.' glsl_function_call_generic 257 ; 258 259 glsl_function_call_generic: 260 glsl_function_call_header_with_parameters ')' 261 | glsl_function_call_header_no_parameters ')' 262 ; 263 264 glsl_function_call_header_no_parameters: 265 glsl_function_call_header GHT_VOID 266 | glsl_function_call_header 267 ; 268 269 glsl_function_call_header_with_parameters: 270 glsl_function_call_header glsl_assignment_expression 271 | glsl_function_call_header_with_parameters ',' glsl_assignment_expression 272 ; 273 274 glsl_function_call_header: 275 glsl_function_identifier '(' 276 ; 277 278 glsl_function_identifier: 279 glsl_type_specifier 280 | IDENTIFIER 281 | FIELD_SELECTION 282 ; 283 284 glsl_unary_expression: 285 glsl_postfix_expression 286 | T_INC glsl_unary_expression 287 | T_DEC glsl_unary_expression 288 | glsl_unary_operator glsl_unary_expression 289 ; 290 291 glsl_unary_operator: 292 '+' 293 | '-' 294 | '!' 295 | '~' 296 ; 297 298 glsl_multiplicative_expression: 299 glsl_unary_expression 300 | glsl_multiplicative_expression '*' glsl_unary_expression 301 | glsl_multiplicative_expression '/' glsl_unary_expression 302 | glsl_multiplicative_expression '%' glsl_unary_expression 303 ; 304 305 glsl_additive_expression: 306 glsl_multiplicative_expression 307 | glsl_additive_expression '+' glsl_multiplicative_expression 308 | glsl_additive_expression '-' glsl_multiplicative_expression 309 ; 310 311 glsl_shift_expression: 312 glsl_additive_expression 313 | glsl_shift_expression T_LEFT glsl_additive_expression 314 | glsl_shift_expression T_RIGHT glsl_additive_expression 315 ; 316 317 glsl_relational_expression: 318 glsl_shift_expression 319 | glsl_relational_expression '<' glsl_shift_expression 320 | glsl_relational_expression '>' glsl_shift_expression 321 | glsl_relational_expression T_LE glsl_shift_expression 322 | glsl_relational_expression T_GE glsl_shift_expression 323 ; 324 325 glsl_equality_expression: 326 glsl_relational_expression 327 | glsl_equality_expression T_EQ glsl_relational_expression 328 | glsl_equality_expression T_NE glsl_relational_expression 329 ; 330 331 glsl_and_expression: 332 glsl_equality_expression 333 | glsl_and_expression '&' glsl_equality_expression 334 ; 335 336 glsl_exclusive_or_expression: 337 glsl_and_expression 338 | glsl_exclusive_or_expression '^' glsl_and_expression 339 ; 340 341 glsl_inclusive_or_expression: 342 glsl_exclusive_or_expression 343 | glsl_inclusive_or_expression '|' glsl_exclusive_or_expression 344 ; 345 346 glsl_logical_and_expression: 347 glsl_inclusive_or_expression 348 | glsl_logical_and_expression T_AND glsl_inclusive_or_expression 349 ; 350 351 glsl_logical_xor_expression: 352 glsl_logical_and_expression 353 | glsl_logical_xor_expression T_XOR glsl_logical_and_expression 354 ; 355 356 glsl_logical_or_expression: 357 glsl_logical_xor_expression 358 | glsl_logical_or_expression T_OR glsl_logical_xor_expression 359 ; 360 361 glsl_conditional_expression: 362 glsl_logical_or_expression 363 | glsl_logical_or_expression '?' glsl_expression ':' glsl_assignment_expression 364 ; 365 366 glsl_assignment_expression: 367 glsl_conditional_expression 368 | glsl_unary_expression glsl_assignment_operator glsl_assignment_expression 369 ; 370 371 glsl_assignment_operator: 372 '=' 373 | T_MULEQ 374 | T_DIVEQ 375 | T_MODEQ 376 | T_ADDEQ 377 | T_SUBEQ 378 | T_LEFTEQ 379 | T_RIGHTEQ 380 | T_ANDEQ 381 | T_XOREQ 382 | T_OREQ 383 ; 384 385 glsl_expression: 386 glsl_assignment_expression 387 | glsl_expression ',' glsl_assignment_expression 388 ; 389 390 glsl_constant_expression: 391 glsl_conditional_expression 392 ; 393 394 glsl_declaration: 395 glsl_function_prototype ';' 396 | glsl_init_declarator_list ';' 397 | PRECISION glsl_precision_qualifier glsl_type_specifier_no_prec ';' 398 | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' ';' 399 | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' IDENTIFIER ';' 400 | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' IDENTIFIER '[' ']' ';' 401 | glsl_type_qualifier IDENTIFIER '{' glsl_struct_declaration_list '}' IDENTIFIER '[' glsl_constant_expression ']' ';' 402 | glsl_type_qualifier ';' 403 ; 404 405 glsl_function_prototype: 406 glsl_function_declarator ')' 407 ; 408 409 glsl_function_declarator: 410 glsl_function_header 411 | glsl_function_header_with_parameters 412 ; 413 414 glsl_function_header_with_parameters: 415 glsl_function_header glsl_parameter_declaration 416 | glsl_function_header_with_parameters ',' glsl_parameter_declaration 417 ; 418 419 glsl_function_header: 420 glsl_fully_specified_type IDENTIFIER '(' 421 ; 422 423 glsl_parameter_declarator: 424 glsl_type_specifier IDENTIFIER 425 | glsl_type_specifier IDENTIFIER '[' glsl_constant_expression ']' 426 ; 427 428 glsl_parameter_declaration: 429 glsl_parameter_type_qualifier glsl_parameter_qualifier glsl_parameter_declarator 430 | glsl_parameter_qualifier glsl_parameter_declarator 431 | glsl_parameter_type_qualifier glsl_parameter_qualifier glsl_parameter_type_specifier 432 | glsl_parameter_qualifier glsl_parameter_type_specifier 433 ; 434 435 glsl_parameter_qualifier: 436 /* empty */ 437 | GHT_IN 438 | GHT_OUT 439 | GHT_INOUT 440 ; 441 442 glsl_parameter_type_specifier: 443 glsl_type_specifier 444 ; 445 446 glsl_init_declarator_list: 447 glsl_single_declaration 448 | glsl_init_declarator_list ',' IDENTIFIER 449 | glsl_init_declarator_list ',' IDENTIFIER '[' ']' 450 | glsl_init_declarator_list ',' IDENTIFIER '[' glsl_constant_expression ']' 451 | glsl_init_declarator_list ',' IDENTIFIER '[' ']' '=' glsl_initializer 452 | glsl_init_declarator_list ',' IDENTIFIER '[' glsl_constant_expression ']' '=' glsl_initializer 453 | glsl_init_declarator_list ',' IDENTIFIER '=' glsl_initializer 454 ; 455 456 glsl_single_declaration: 457 glsl_fully_specified_type 458 | glsl_fully_specified_type IDENTIFIER 459 | glsl_fully_specified_type IDENTIFIER '[' ']' 460 | glsl_fully_specified_type IDENTIFIER '[' glsl_constant_expression ']' 461 | glsl_fully_specified_type IDENTIFIER '[' ']' '=' glsl_initializer 462 | glsl_fully_specified_type IDENTIFIER '[' glsl_constant_expression ']' '=' glsl_initializer 463 | glsl_fully_specified_type IDENTIFIER '=' glsl_initializer 464 | INVARIANT IDENTIFIER 465 ; 466 467 glsl_fully_specified_type: 468 glsl_type_specifier 469 | glsl_type_qualifier glsl_type_specifier 470 ; 471 472 glsl_invariant_qualifier: 473 INVARIANT 474 ; 475 476 glsl_interpolation_qualifier: 477 GT_SMOOTH 478 | GT_FLAT 479 | GHT_NOPERSPECTIVE 480 ; 481 482 glsl_layout_qualifier: 483 GT_LAYOUT '(' glsl_layout_qualifier_id_list ')' 484 ; 485 486 glsl_layout_qualifier_id_list: 487 glsl_layout_qualifier_id 488 | glsl_layout_qualifier_id_list ',' glsl_layout_qualifier_id 489 ; 490 491 glsl_layout_qualifier_id: 492 IDENTIFIER 493 | IDENTIFIER '=' INTCONSTANT 494 ; 495 496 glsl_parameter_type_qualifier: 497 GHT_CONST 498 ; 499 500 glsl_type_qualifier: 501 glsl_storage_qualifier 502 | glsl_layout_qualifier 503 | glsl_layout_qualifier glsl_storage_qualifier 504 | glsl_interpolation_qualifier glsl_storage_qualifier 505 | glsl_interpolation_qualifier 506 | glsl_invariant_qualifier glsl_storage_qualifier 507 | glsl_invariant_qualifier glsl_interpolation_qualifier glsl_storage_qualifier 508 | glsl_invariant_qualifier 509 ; 510 511 glsl_storage_qualifier: 512 GHT_CONST 513 | GHT_IN 514 | GHT_OUT 515 | GHT_CENTROID GHT_IN 516 | GHT_CENTROID GHT_OUT 517 | GT_PATCH GHT_IN 518 | GT_PATCH GHT_OUT 519 | GT_SAMPLE GHT_IN 520 | GT_SAMPLE GHT_OUT 521 | GHT_UNIFORM 522 ; 523 524 glsl_type_specifier: 525 glsl_type_specifier_no_prec 526 | glsl_precision_qualifier glsl_type_specifier_no_prec 527 ; 528 529 glsl_type_specifier_no_prec: 530 glsl_type_specifier_nonarray 531 | glsl_type_specifier_nonarray '[' ']' 532 | glsl_type_specifier_nonarray '[' glsl_constant_expression ']' 533 534 glsl_type_specifier_nonarray: 535 GHT_VOID 536 | GHT_FLOAT 537 | GHT_DOUBLE 538 | GHT_INT 539 | GHT_UINT 540 | GHT_BOOL 541 | GT_VEC2 542 | GT_VEC3 543 | GT_VEC4 544 | GT_DVEC2 545 | GT_DVEC3 546 | GT_DVEC4 547 | GT_BVEC2 548 | GT_BVEC3 549 | GT_BVEC4 550 | GT_IVEC2 551 | GT_IVEC3 552 | GT_IVEC4 553 | GT_UVEC2 554 | GT_UVEC3 555 | GT_UVEC4 556 | GT_MAT2 557 | GT_MAT3 558 | GT_MAT4 559 | GT_MAT2X2 560 | GT_MAT2X3 561 | GT_MAT2X4 562 | GT_MAT3X2 563 | GT_MAT3X3 564 | GT_MAT3X4 565 | GT_MAT4X2 566 | GT_MAT4X3 567 | GT_MAT4X4 568 | GT_DMAT2 569 | GT_DMAT3 570 | GT_DMAT4 571 | GT_DMAT2X2 572 | GT_DMAT2X3 573 | GT_DMAT2X4 574 | GT_DMAT3X2 575 | GT_DMAT3X3 576 | GT_DMAT3X4 577 | GT_DMAT4X2 578 | GT_DMAT4X3 579 | GT_DMAT4X4 580 | GHT_SAMPLER1D 581 | GHT_SAMPLER2D 582 | GHT_SAMPLER3D 583 | GHT_SAMPLERCUBE 584 | GT_SAMPLER1DSHADOW 585 | GT_SAMPLER2DSHADOW 586 | GT_SAMPLERCUBESHADOW 587 | GT_SAMPLER1DARRAY 588 | GT_SAMPLER2DARRAY 589 | GT_SAMPLER1DARRAYSHADOW 590 | GT_SAMPLER2DARRAYSHADOW 591 | GT_SAMPLERCUBEARRAY 592 | GT_SAMPLERCUBEARRAYSHADOW 593 | GT_ISAMPLER1D 594 | GT_ISAMPLER2D 595 | GT_ISAMPLER3D 596 | GT_ISAMPLERCUBE 597 | GT_ISAMPLER1DARRAY 598 | GT_ISAMPLER2DARRAY 599 | GT_ISAMPLERCUBEARRAY 600 | GT_USAMPLER1D 601 | GT_USAMPLER2D 602 | GT_USAMPLER3D 603 | GT_USAMPLERCUBE 604 | GT_USAMPLER1DARRAY 605 | GT_USAMPLER2DARRAY 606 | GT_USAMPLERCUBEARRAY 607 | GT_SAMPLER2DRECT 608 | GT_SAMPLER2DRECTSHADOW 609 | GT_ISAMPLER2DRECT 610 | GT_USAMPLER2DRECT 611 | GT_SAMPLERBUFFER 612 | GT_ISAMPLERBUFFER 613 | GT_USAMPLERBUFFER 614 | GT_SAMPLER2DMS 615 | GT_ISAMPLER2DMS 616 | GT_USAMPLER2DMS 617 | GT_SAMPLER2DMSARRAY 618 | GT_ISAMPLER2DMSARRAY 619 | GT_USAMPLER2DMSARRAY 620 | glsl_struct_specifier 621 | TYPE_NAME 622 ; 623 624 glsl_precision_qualifier: 625 HIGH_PRECISION 626 | MEDIUM_PRECISION 627 | LOW_PRECISION 628 ; 629 630 glsl_struct_specifier: 631 GHT_STRUCT IDENTIFIER '{' glsl_struct_declaration_list '}' 632 | GHT_STRUCT '{' glsl_struct_declaration_list '}' 633 ; 634 635 glsl_struct_declaration_list: 636 glsl_struct_declaration 637 | glsl_struct_declaration_list glsl_struct_declaration 638 ; 639 640 glsl_struct_declaration: 641 glsl_type_specifier glsl_struct_declarator_list ';' 642 | glsl_type_qualifier glsl_type_specifier glsl_struct_declarator_list ';' 643 ; 644 645 glsl_struct_declarator_list: 646 glsl_struct_declarator 647 | glsl_struct_declarator_list ',' glsl_struct_declarator 648 ; 649 650 glsl_struct_declarator: 651 IDENTIFIER 652 | IDENTIFIER '[' ']' 653 | IDENTIFIER '[' glsl_constant_expression ']' 654 ; 655 656 glsl_initializer: 657 glsl_assignment_expression 658 ; 659 660 glsl_declaration_statement: 661 glsl_declaration 662 ; 663 664 glsl_statement: 665 glsl_compound_statement 666 | glsl_simple_statement 667 ; 668 669 glsl_simple_statement: 670 glsl_declaration_statement 671 | glsl_expression_statement 672 | glsl_selection_statement 673 | glsl_switch_statement 674 | glsl_case_label 675 | glsl_iteration_statement 676 | glsl_jump_statement 677 ; 678 679 glsl_compound_statement: 680 '{' '}' 681 | '{' glsl_statement_list '}' 682 ; 683 684 glsl_statement_no_new_scope: 685 glsl_compound_statement_no_new_scope 686 | glsl_simple_statement 687 ; 688 689 glsl_compound_statement_no_new_scope: 690 '{' '}' 691 | '{' glsl_statement_list '}' 692 ; 693 694 glsl_statement_list: 695 glsl_statement 696 | glsl_statement_list glsl_statement 697 ; 698 699 glsl_expression_statement: 700 ';' 701 | glsl_expression ';' 702 ; 703 704 glsl_selection_statement: 705 GHT_IF '(' glsl_expression ')' glsl_selection_rest_statement 706 ; 707 708 glsl_selection_rest_statement: 709 glsl_statement GHT_ELSE glsl_statement 710 | glsl_statement 711 ; 712 713 glsl_condition: 714 glsl_expression 715 | glsl_fully_specified_type IDENTIFIER '=' glsl_initializer 716 ; 717 718 glsl_switch_statement: 719 GHT_SWITCH '(' glsl_expression ')' '{' glsl_switch_statement_list '}' 720 ; 721 722 glsl_switch_statement_list: 723 /* nothing */ 724 | glsl_statement_list 725 ; 726 727 glsl_case_label: 728 GHT_CASE glsl_expression ':' 729 | GHT_DEFAULT ':' 730 ; 731 732 glsl_iteration_statement: 733 GHT_WHILE '(' glsl_condition ')' glsl_statement_no_new_scope 734 | GHT_DO glsl_statement GHT_WHILE '(' glsl_expression ')' ';' 735 | GHT_FOR '(' glsl_for_init_statement glsl_for_rest_statement ')' glsl_statement_no_new_scope 736 ; 737 738 glsl_for_init_statement: 739 glsl_expression_statement 740 | glsl_declaration_statement 741 ; 742 743 glsl_conditionopt: 744 glsl_condition 745 | /* empty */ 746 ; 747 748 glsl_for_rest_statement: 749 glsl_conditionopt ';' 750 | glsl_conditionopt ';' glsl_expression 751 ; 752 753 glsl_jump_statement: 754 GHT_CONTINUE ';' 755 | GHT_BREAK ';' 756 | GHT_RETURN ';' 757 | GHT_RETURN glsl_expression ';' 758 | GHT_DISCARD ';' 759 ; 760 761 glsl_translation_unit: 762 glsl_external_declaration 763 glsl_translation_unit glsl_external_declaration 764 ; 765 766 glsl_external_declaration: 767 glsl_function_definition 768 | glsl_declaration 769 ; 770 771 glsl_function_definition: 772 glsl_function_prototype glsl_compound_statement_no_new_scope 210 773 ; 211 774
Note: See TracChangeset
for help on using the changeset viewer.