Web: Turn off bracket-style attributes, reflection, and IO mapping.
authorJohn Kessenich <cepheus@frii.com>
Tue, 6 Aug 2019 08:20:45 +0000 (02:20 -0600)
committerJohn Kessenich <cepheus@frii.com>
Wed, 21 Aug 2019 05:21:55 +0000 (23:21 -0600)
12 files changed:
StandAlone/StandAlone.cpp
glslang/MachineIndependent/ParseHelper.h
glslang/MachineIndependent/ShaderLang.cpp
glslang/MachineIndependent/attribute.cpp
glslang/MachineIndependent/glslang.y
glslang/MachineIndependent/glslang_tab.cpp
glslang/MachineIndependent/iomapper.cpp
glslang/MachineIndependent/iomapper.h
glslang/MachineIndependent/reflection.cpp
glslang/MachineIndependent/reflection.h
glslang/Public/ShaderLang.h
gtests/TestFixture.h

index d1f80b5..17561a2 100644 (file)
@@ -1071,11 +1071,13 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
     if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages))
         LinkFailed = true;
 
+#ifndef GLSLANG_WEB
     // Map IO
     if (Options & EOptionSpv) {
         if (!program.mapIO())
             LinkFailed = true;
     }
+#endif
 
     // Report
     if (! (Options & EOptionSuppressInfolog) &&
@@ -1084,11 +1086,13 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
         PutsIfNonEmpty(program.getInfoDebugLog());
     }
 
+#ifndef GLSLANG_WEB
     // Reflect
     if (Options & EOptionDumpReflection) {
         program.buildReflection(ReflectOptions);
         program.dumpReflection();
     }
+#endif
 
     // Dump SPIR-V
     if (Options & EOptionSpv) {
index 35239d1..2c39d68 100644 (file)
@@ -421,6 +421,7 @@ public:
     void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode);
     TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body);
 
+#ifndef GLSLANG_WEB
     TAttributeType attributeFromName(const TString& name) const;
     TAttributes* makeAttributes(const TString& identifier) const;
     TAttributes* makeAttributes(const TString& identifier, TIntermNode* node) const;
@@ -429,9 +430,9 @@ public:
     // Determine selection control from attributes
     void handleSelectionAttributes(const TAttributes& attributes, TIntermNode*);
     void handleSwitchAttributes(const TAttributes& attributes, TIntermNode*);
-
     // Determine loop control from attributes
     void handleLoopAttributes(const TAttributes& attributes, TIntermNode*);
+#endif
 
     void checkAndResizeMeshViewDim(const TSourceLoc&, TType&, bool isBlockMember);
 
index a36e74f..ec01050 100755 (executable)
@@ -1860,7 +1860,11 @@ const char* TShader::getInfoDebugLog()
     return infoSink->debug.c_str();
 }
 
-TProgram::TProgram() : reflection(0), linked(false)
+TProgram::TProgram() :
+#ifndef GLSLANG_WEB
+    reflection(0),
+#endif
+    linked(false)
 {
     pool = new TPoolAllocator;
     infoSink = new TInfoSink;
@@ -1873,7 +1877,9 @@ TProgram::TProgram() : reflection(0), linked(false)
 TProgram::~TProgram()
 {
     delete infoSink;
+#ifndef GLSLANG_WEB
     delete reflection;
+#endif
 
     for (int s = 0; s < EShLangCount; ++s)
         if (newedIntermediate[s])
@@ -1985,6 +1991,8 @@ const char* TProgram::getInfoDebugLog()
     return infoSink->debug.c_str();
 }
 
+#ifndef GLSLANG_WEB
+
 //
 // Reflection implementation.
 //
@@ -2062,4 +2070,6 @@ bool TProgram::mapIO(TIoMapResolver* pResolver, TIoMapper* pIoMapper)
     return ioMapper->doMap(pResolver, *infoSink);
 }
 
+#endif // GLSLANG_WEB
+
 } // end namespace glslang
index d4a23f3..9585518 100644 (file)
@@ -34,6 +34,8 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
+#ifndef GLSLANG_WEB
+
 #include "attribute.h"
 #include "../Include/intermediate.h"
 #include "ParseHelper.h"
@@ -339,5 +341,6 @@ void TParseContext::handleLoopAttributes(const TAttributes& attributes, TIntermN
     }
 }
 
-
 } // end namespace glslang
+
+#endif // GLSLANG_WEB
index f9d7b5f..2de1919 100644 (file)
@@ -3662,7 +3662,9 @@ selection_statement
         $$ = $1;
     }
     | attribute selection_statement_nonattributed {
+#ifndef GLSLANG_WEB
         parseContext.handleSelectionAttributes(*$1, $2);
+#endif
         $$ = $2;
     }
 
@@ -3707,7 +3709,9 @@ switch_statement
         $$ = $1;
     }
     | attribute switch_statement_nonattributed {
+#ifndef GLSLANG_WEB
         parseContext.handleSwitchAttributes(*$1, $2);
+#endif
         $$ = $2;
     }
 
@@ -3769,7 +3773,9 @@ iteration_statement
         $$ = $1;
     }
     | attribute iteration_statement_nonattributed {
+#ifndef GLSLANG_WEB
         parseContext.handleLoopAttributes(*$1, $2);
+#endif
         $$ = $2;
     }
 
@@ -3943,15 +3949,21 @@ attribute_list
         $$ = $1;
     }
     | attribute_list COMMA single_attribute {
+#ifndef GLSLANG_WEB
         $$ = parseContext.mergeAttributes($1, $3);
+#endif
     }
 
 single_attribute
     : IDENTIFIER {
+#ifndef GLSLANG_WEB
         $$ = parseContext.makeAttributes(*$1.string);
+#endif
     }
     | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN {
+#ifndef GLSLANG_WEB
         $$ = parseContext.makeAttributes(*$1.string, $3);
+#endif
     }
 
 %%
index 3597730..cf754b4 100644 (file)
@@ -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));
+#endif
     }
-#line 10400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
+#line 10408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
     break;
 
   case 579:
-#line 3950 "MachineIndependent/glslang.y" /* yacc.c:1646  */
+#line 3958 "MachineIndependent/glslang.y" /* yacc.c:1646  */
     {
+#ifndef GLSLANG_WEB
         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
+#endif
     }
-#line 10408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
+#line 10418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
     break;
 
   case 580:
-#line 3953 "MachineIndependent/glslang.y" /* yacc.c:1646  */
+#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 10416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646  */
+#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  */
 
index 6edc080..8a6ea3c 100644 (file)
@@ -33,6 +33,8 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
+#ifndef GLSLANG_WEB
+
 #include "../Include/Common.h"
 #include "../Include/InfoSink.h"
 
@@ -1239,3 +1241,5 @@ bool TGlslIoMapper::doMap(TIoMapResolver* resolver, TInfoSink& infoSink) {
 }
 
 } // end namespace glslang
+
+#endif // GLSLANG_WEB
index 87922fd..a95238b 100644 (file)
@@ -33,6 +33,8 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
+#ifndef GLSLANG_WEB
+
 #ifndef _IOMAPPER_INCLUDED
 #define _IOMAPPER_INCLUDED
 
@@ -293,3 +295,5 @@ public:
 } // end namespace glslang
 
 #endif // _IOMAPPER_INCLUDED
+
+#endif //  GLSLANG_WEB
index a09a048..575f146 100644 (file)
@@ -33,6 +33,8 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
+#ifndef GLSLANG_WEB
+
 #include "../Include/Common.h"
 #include "reflection.h"
 #include "LiveTraverser.h"
@@ -1198,3 +1200,5 @@ void TReflection::dump()
 }
 
 } // end namespace glslang
+
+#endif // GLSLANG_WEB
index 44b17a0..e3561a9 100644 (file)
@@ -33,6 +33,8 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
+#ifndef GLSLANG_WEB
+
 #ifndef _REFLECTION_INCLUDED
 #define _REFLECTION_INCLUDED
 
@@ -201,3 +203,5 @@ protected:
 } // end namespace glslang
 
 #endif // _REFLECTION_INCLUDED
+
+#endif // GLSLANG_WEB
\ No newline at end of file
index 9930ed2..1000e17 100755 (executable)
@@ -617,6 +617,8 @@ private:
     TShader& operator=(TShader&);
 };
 
+#ifndef GLSLANG_WEB
+
 //
 // A reflection database and its interface, consistent with the OpenGL API reflection queries.
 //
@@ -732,6 +734,8 @@ public:
     virtual void addStage(EShLanguage stage) = 0;
 };
 
+#endif // GLSLANG_WEB
+
 // Make one TProgram per set of shaders that will get linked together.  Add all
 // the shaders that are to be linked together.  After calling shader.parse()
 // for all shaders, call link().
@@ -751,14 +755,14 @@ public:
 
     TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; }
 
+#ifndef GLSLANG_WEB
+
     // Reflection Interface
 
     // call first, to do liveness analysis, index mapping, etc.; returns false on failure
     bool buildReflection(int opts = EShReflectionDefault);
-
     unsigned getLocalSize(int dim) const;                  // return dim'th local size
     int getReflectionIndex(const char *name) const;
-
     int getNumUniformVariables() const;
     const TObjectReflection& getUniform(int index) const;
     int getNumUniformBlocks() const;
@@ -837,11 +841,11 @@ public:
     const TType *getAttributeTType(int index) const    { return getPipeInput(index).getType(); }
 
     void dumpReflection();
-
     // I/O mapping: apply base offsets and map live unbound variables
     // If resolver is not provided it uses the previous approach
     // and respects auto assignment and offsets.
     bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr);
+#endif
 
 protected:
     bool linkStage(EShLanguage, EShMessages);
@@ -851,7 +855,9 @@ protected:
     TIntermediate* intermediate[EShLangCount];
     bool newedIntermediate[EShLangCount];      // track which intermediate were "new" versus reusing a singleton unit in a stage
     TInfoSink* infoSink;
+#ifndef GLSLANG_WEB
     TReflection* reflection;
+#endif
     bool linked;
 
 private:
index 4d28d32..faca801 100755 (executable)
@@ -308,7 +308,9 @@ public:
         program.addShader(&shader);
         
         success &= program.link(controls);
+#ifndef GLSLANG_WEB
         success &= program.mapIO();
+#endif
 
         spv::SpvBuildLogger logger;