|
|
|
|
@ -995,12 +995,12 @@ static const yytype_uint16 yyrline[] =
|
|
|
|
|
3510, 3515, 3526, 3529, 3535, 3544, 3547, 3553, 3557, 3558,
|
|
|
|
|
3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3575, 3583,
|
|
|
|
|
3584, 3588, 3584, 3600, 3601, 3605, 3605, 3612, 3612, 3626,
|
|
|
|
|
3629, 3637, 3645, 3656, 3657, 3661, 3664, 3670, 3677, 3681,
|
|
|
|
|
3689, 3693, 3706, 3709, 3715, 3715, 3735, 3738, 3744, 3756,
|
|
|
|
|
3768, 3771, 3777, 3777, 3792, 3792, 3808, 3808, 3829, 3832,
|
|
|
|
|
3838, 3841, 3847, 3851, 3858, 3863, 3868, 3875, 3878, 3887,
|
|
|
|
|
3891, 3900, 3903, 3906, 3914, 3914, 3936, 3942, 3945, 3950,
|
|
|
|
|
3953
|
|
|
|
|
3629, 3637, 3645, 3656, 3657, 3661, 3664, 3672, 3679, 3683,
|
|
|
|
|
3691, 3695, 3708, 3711, 3719, 3719, 3739, 3742, 3748, 3760,
|
|
|
|
|
3772, 3775, 3783, 3783, 3798, 3798, 3814, 3814, 3835, 3838,
|
|
|
|
|
3844, 3847, 3853, 3857, 3864, 3869, 3874, 3881, 3884, 3893,
|
|
|
|
|
3897, 3906, 3909, 3912, 3920, 3920, 3942, 3948, 3951, 3958,
|
|
|
|
|
3963
|
|
|
|
|
};
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
@ -9956,50 +9956,52 @@ yyreduce:
|
|
|
|
|
case 536:
|
|
|
|
|
#line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
#ifndef GLSLANG_WEB
|
|
|
|
|
parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
|
|
|
|
|
#endif
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 9963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 9965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 537:
|
|
|
|
|
#line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3672 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
|
|
|
|
|
}
|
|
|
|
|
#line 9972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 9974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 538:
|
|
|
|
|
#line 3677 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3679 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
|
|
|
|
|
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 9981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 9983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 539:
|
|
|
|
|
#line 3681 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3683 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
|
|
|
|
|
(yyval.interm.nodePair).node2 = 0;
|
|
|
|
|
}
|
|
|
|
|
#line 9990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 9992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 540:
|
|
|
|
|
#line 3689 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3691 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
|
|
|
|
|
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
|
|
|
|
|
}
|
|
|
|
|
#line 9999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 541:
|
|
|
|
|
#line 3693 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3695 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
|
|
|
|
|
|
|
|
|
|
@ -10010,28 +10012,30 @@ yyreduce:
|
|
|
|
|
else
|
|
|
|
|
(yyval.interm.intermTypedNode) = 0;
|
|
|
|
|
}
|
|
|
|
|
#line 10014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 542:
|
|
|
|
|
#line 3706 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3708 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 543:
|
|
|
|
|
#line 3709 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3711 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
#ifndef GLSLANG_WEB
|
|
|
|
|
parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
|
|
|
|
|
#endif
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 544:
|
|
|
|
|
#line 3715 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3719 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
// start new switch sequence on the switch stack
|
|
|
|
|
++parseContext.controlFlowNestingLevel;
|
|
|
|
|
@ -10040,11 +10044,11 @@ yyreduce:
|
|
|
|
|
parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
|
|
|
|
|
parseContext.symbolTable.push();
|
|
|
|
|
}
|
|
|
|
|
#line 10044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 545:
|
|
|
|
|
#line 3723 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3727 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
|
|
|
|
|
delete parseContext.switchSequenceStack.back();
|
|
|
|
|
@ -10054,27 +10058,27 @@ yyreduce:
|
|
|
|
|
--parseContext.statementNestingLevel;
|
|
|
|
|
--parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 546:
|
|
|
|
|
#line 3735 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3739 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = 0;
|
|
|
|
|
}
|
|
|
|
|
#line 10066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10070 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 547:
|
|
|
|
|
#line 3738 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3742 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10074 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 548:
|
|
|
|
|
#line 3744 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3748 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = 0;
|
|
|
|
|
if (parseContext.switchLevel.size() == 0)
|
|
|
|
|
@ -10087,11 +10091,11 @@ yyreduce:
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#line 10091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 549:
|
|
|
|
|
#line 3756 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3760 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = 0;
|
|
|
|
|
if (parseContext.switchLevel.size() == 0)
|
|
|
|
|
@ -10101,28 +10105,30 @@ yyreduce:
|
|
|
|
|
else
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
|
|
|
|
|
}
|
|
|
|
|
#line 10105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 550:
|
|
|
|
|
#line 3768 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3772 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10113 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 551:
|
|
|
|
|
#line 3771 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3775 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
#ifndef GLSLANG_WEB
|
|
|
|
|
parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
|
|
|
|
|
#endif
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 552:
|
|
|
|
|
#line 3777 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3783 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
if (! parseContext.limits.whileLoops)
|
|
|
|
|
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
|
|
|
|
|
@ -10131,11 +10137,11 @@ yyreduce:
|
|
|
|
|
++parseContext.statementNestingLevel;
|
|
|
|
|
++parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 553:
|
|
|
|
|
#line 3785 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3791 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
|
|
|
|
|
@ -10143,21 +10149,21 @@ yyreduce:
|
|
|
|
|
--parseContext.statementNestingLevel;
|
|
|
|
|
--parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 554:
|
|
|
|
|
#line 3792 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3798 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
++parseContext.loopNestingLevel;
|
|
|
|
|
++parseContext.statementNestingLevel;
|
|
|
|
|
++parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 555:
|
|
|
|
|
#line 3797 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3803 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
if (! parseContext.limits.whileLoops)
|
|
|
|
|
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
|
|
|
|
|
@ -10169,22 +10175,22 @@ yyreduce:
|
|
|
|
|
--parseContext.statementNestingLevel;
|
|
|
|
|
--parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 556:
|
|
|
|
|
#line 3808 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3814 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.symbolTable.push();
|
|
|
|
|
++parseContext.loopNestingLevel;
|
|
|
|
|
++parseContext.statementNestingLevel;
|
|
|
|
|
++parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 557:
|
|
|
|
|
#line 3814 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3820 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
|
|
|
|
|
@ -10197,81 +10203,81 @@ yyreduce:
|
|
|
|
|
--parseContext.statementNestingLevel;
|
|
|
|
|
--parseContext.controlFlowNestingLevel;
|
|
|
|
|
}
|
|
|
|
|
#line 10201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10207 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 558:
|
|
|
|
|
#line 3829 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3835 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 559:
|
|
|
|
|
#line 3832 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3838 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 560:
|
|
|
|
|
#line 3838 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3844 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 561:
|
|
|
|
|
#line 3841 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3847 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermTypedNode) = 0;
|
|
|
|
|
}
|
|
|
|
|
#line 10233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 562:
|
|
|
|
|
#line 3847 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3853 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
|
|
|
|
|
(yyval.interm.nodePair).node2 = 0;
|
|
|
|
|
}
|
|
|
|
|
#line 10242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 563:
|
|
|
|
|
#line 3851 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3857 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
|
|
|
|
|
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 564:
|
|
|
|
|
#line 3858 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3864 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
if (parseContext.loopNestingLevel <= 0)
|
|
|
|
|
parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
|
|
|
|
|
}
|
|
|
|
|
#line 10261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 565:
|
|
|
|
|
#line 3863 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3869 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
|
|
|
|
|
parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
|
|
|
|
|
}
|
|
|
|
|
#line 10271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 566:
|
|
|
|
|
#line 3868 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3874 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
|
|
|
|
|
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
|
|
|
|
|
@ -10279,83 +10285,83 @@ yyreduce:
|
|
|
|
|
if (parseContext.inMain)
|
|
|
|
|
parseContext.postEntryPointReturn = true;
|
|
|
|
|
}
|
|
|
|
|
#line 10283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 567:
|
|
|
|
|
#line 3875 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3881 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
|
|
|
|
|
}
|
|
|
|
|
#line 10291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 568:
|
|
|
|
|
#line 3878 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3884 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
|
|
|
|
|
}
|
|
|
|
|
#line 10300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 569:
|
|
|
|
|
#line 3887 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3893 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
|
|
|
|
|
}
|
|
|
|
|
#line 10309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10315 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 570:
|
|
|
|
|
#line 3891 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3897 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
if ((yyvsp[0].interm.intermNode) != nullptr) {
|
|
|
|
|
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
|
|
|
|
|
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#line 10320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 571:
|
|
|
|
|
#line 3900 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3906 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 572:
|
|
|
|
|
#line 3903 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3909 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
|
|
|
|
|
}
|
|
|
|
|
#line 10336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 573:
|
|
|
|
|
#line 3906 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3912 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
|
|
|
|
|
parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
|
|
|
|
|
(yyval.interm.intermNode) = nullptr;
|
|
|
|
|
}
|
|
|
|
|
#line 10346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10352 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 574:
|
|
|
|
|
#line 3914 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3920 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
|
|
|
|
|
(yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
|
|
|
|
|
}
|
|
|
|
|
#line 10355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 575:
|
|
|
|
|
#line 3918 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3924 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
// May be best done as post process phase on intermediate code
|
|
|
|
|
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
|
|
|
|
|
@ -10371,52 +10377,58 @@ yyreduce:
|
|
|
|
|
(yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
|
|
|
|
|
(yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
|
|
|
|
|
}
|
|
|
|
|
#line 10375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 576:
|
|
|
|
|
#line 3936 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3942 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
|
|
|
|
|
parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
|
|
|
|
|
}
|
|
|
|
|
#line 10384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 577:
|
|
|
|
|
#line 3942 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3948 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.attributes) = (yyvsp[0].interm.attributes);
|
|
|
|
|
}
|
|
|
|
|
#line 10392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 578:
|
|
|
|
|
#line 3945 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
#line 3951 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
#ifndef GLSLANG_WEB
|
|
|
|
|
(yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
|
|
|
|
|
}
|
|
|
|
|
#line 10400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 579:
|
|
|
|
|
#line 3950 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
#line 10408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 580:
|
|
|
|
|
#line 3953 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
case 579:
|
|
|
|
|
#line 3958 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
|
|
|
|
|
#ifndef GLSLANG_WEB
|
|
|
|
|
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
#line 10416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 580:
|
|
|
|
|
#line 3963 "MachineIndependent/glslang.y" /* yacc.c:1646 */
|
|
|
|
|
{
|
|
|
|
|
#ifndef GLSLANG_WEB
|
|
|
|
|
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
#line 10428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 10420 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
#line 10432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
/* User semantic actions sometimes alter yychar, and that requires
|
|
|
|
|
@ -10644,5 +10656,5 @@ yyreturn:
|
|
|
|
|
#endif
|
|
|
|
|
return yyresult;
|
|
|
|
|
}
|
|
|
|
|
#line 3957 "MachineIndependent/glslang.y" /* yacc.c:1906 */
|
|
|
|
|
#line 3969 "MachineIndependent/glslang.y" /* yacc.c:1906 */
|
|
|
|
|
|
|
|
|
|
|