This wont be needed any more
authorMichal Krol <mjkrol@gmail.org>
Mon, 29 Mar 2004 11:01:57 +0000 (11:01 +0000)
committerMichal Krol <mjkrol@gmail.org>
Mon, 29 Mar 2004 11:01:57 +0000 (11:01 +0000)
src/mesa/main/arbvp_grammar.txt [deleted file]

diff --git a/src/mesa/main/arbvp_grammar.txt b/src/mesa/main/arbvp_grammar.txt
deleted file mode 100644 (file)
index f2e392a..0000000
+++ /dev/null
@@ -1,1279 +0,0 @@
-==========================================
-0:     <program>              ::= <optionSequence> <statementSequence> "END"
-       ------
-       first: <OPTION> "" 
-                        <ARL> <ABS> <FLR> <FRC> <LIT> <MOV> <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-                       <POW>  <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-                       <MAD> <SWZ> <ATTRIB> <PARAM> <TEMP> <ADDRESS> <OUTPUT> <ALIAS> 
-                       <END>
-       follow: $
-
-==========================================
-1:     <optionSequence>                        ::= <optionSequence2>
-       -----
-       first: <OPTION> ""
-       follow: =  <ARL> <ABS> <FLR> <FRC> <LIT> <MOV> <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-                       <POW>  <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-                       <MAD> <SWZ> <ATTRIB> <PARAM> <TEMP> <ADDRESS> <OUTPUT> <ALIAS> 
-                       <END>
-       
-==========================================
-2:     <optionSequence2>                       ::= <option> <optionSequence2>
-       ------
-       first: <OPTION>
-3:                                                                      | ""
-       ------
-       first: ""
-       follow:  <ARL> <ABS> <FLR> <FRC> <LIT> <MOV> <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-                       <POW>  <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-                       <MAD> <SWZ> <ATTRIB> <PARAM> <TEMP> <ADDRESS> <OUTPUT> <ALIAS> 
-                       <END>
-       
-==========================================                                                             
-4:     <option>               ::= "OPTION" <identifier> ";"
-       -------
-       first: <OPTION>
-
-==========================================
-5:     <statementSequence>             ::= <statementSequence2>
-   -------
-       first:  <ARL> <ABS> <FLR> <FRC> <LIT> <MOV> <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-                       <POW>  <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-                       <MAD> <SWZ> <ATTRIB> <PARAM> <TEMP> <ADDRESS> <OUTPUT> <ALIAS> 
-                       ""
-       follow: <END>
-       
-=========================================
-6:     <statementSequence2>            ::= <statement> <statementSequence2>
-       ----------
-       first:  <ARL> <ABS> <FLR> <FRC> <LIT> <MOV> <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-                       <POW>  <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-                       <MAD> <SWZ> <ATTRIB> <PARAM> <TEMP> <ADDRESS> <OUTPUT> <ALIAS>
-7:                                                                       | ""
-   -------
-       first: ""
-       follow: <END>
-       
-==========================================
-8:     <statement>            ::= <instruction> ";"
-       ----------
-       first: <ARL> <ABS> <FLR> <FRC> <LIT> <MOV> <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-                       <POW>  <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-                       <MAD> <SWZ>
-9:                               | <namingStatement> ";"
-       --------
-       first: <ATTRIB> <PARAM> <TEMP> <ADDRESS> <OUTPUT> <ALIAS>
-
-==========================================
-10:   <instruction>          ::= <ARL_instruction>
-        ---------
-        first: <ARL>
-11:                           | <VECTORop_instruction>
-       ----------
-       first: <ABS> <FLR> <FRC> <LIT> <MOV>
-12:                            | <SCALARop_instruction>
-        ---------
-        first: <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-13:                            | <BINSCop_instruction>
-    -----
-        first: <POW>
-14:                            | <BINop_instruction>
-    ----
-        first: <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-15:                             | <TRIop_instruction>
-        ----
-        first: <MAD>
-16:                             | <SWZ_instruction>
-    -----
-        first: <SWZ>
-                                                                         
-===========================================
-17:    <ARL_instruction>      ::= "ARL" <maskedAddrReg> "," <scalarSrcReg>
-        ---------
-        first: <ARL>
-        
-==========================================
-18:   <VECTORop_instruction> ::= <VECTORop> <maskedDstReg> "," <swizzleSrcReg>
-       ----------
-       first: <ABS> <FLR> <FRC> <LIT> <MOV>
-
-==========================================
-19:    <VECTORop>             ::= "ABS"
-20:                             | "FLR"
-21:                             | "FRC"
-22:                             | "LIT"
-23:                             | "MOV"
-                                                                         
-==========================================
-24:    <SCALARop_instruction> ::= <SCALARop> <maskedDstReg> "," <scalarSrcReg>
-        ---------
-        first: <EX2> <EXP> <LG2> <LOG> <RCP> <RSQ>
-        
-==========================================
-25:    <SCALARop>             ::= "EX2"
-26:                             | "EXP"
-27:                             | "LG2" 
-28:                             | "LOG"                          
-29:                             | "RCP"
-30:                             | "RSQ"
-
-==========================================
-31:   <BINSCop_instruction>  ::= <BINSCop> <maskedDstReg> <BINSCop_instruction2>
-    -----
-        first: <POW>
-        
-32:     <BINSCop_instruction2> ::= "," <scalarSrcReg> ","  <scalarSrcReg> 
-        -----
-        first: ","
-        
-==========================================
-33:    <BINSCop>              ::= "POW"
-        ----
-        first: <POW>
-        
-==========================================
-34:    <BINop_instruction>    ::= <BINop> <maskedDstReg> <BINop_instruction2>
-    ----
-        first: <ADD> <DP3> <DP4> <DPH> <DST> <MAX> <MIN> <MUL> <SGE> <SLT> <SUB> <XPD>
-
-35:            <BINop_instruction2> ::= "," <swizzleSrcReg> "," <swizzleSrcReg>
-       -----
-       first: ","
-                               
-        
-==========================================
-36:    <BINop>                ::= "ADD"
-        -----
-        first: <ADD>
-37:                             | "DP3"
-    -----
-        first: <DP3>
-38:                            | "DP4"
-    -----
-        first: <DP4>
-39:                             | "DPH"
-    -----
-        first: <DPH>
-40:                             | "DST"
-    -----
-        first: <DST>
-41:                             | "MAX"
-    -----
-        first: <MAX>
-42:                             | "MIN"
-    -----
-        first: <MIN>
-43:                             | "MUL"
-    ----
-        first: <MUL>
-44:                             | "SGE"
-    ----
-        first: <SGE>
-45:                             | "SLT"
-    ----
-        first: <SLT>
-46:                             | "SUB"
-    ----
-        first: <SUB>
-47:                             | "XPD"
-    -----
-        first: <XPD>
-==========================================
-48:    <TRIop_instruction>    ::= <TRIop> <maskedDstReg> <TRIop_instruction2>
-         ----
-        first: <MAD>
-49:     <TRIop_instruction2>   ::= "," <swizzleSrcReg> <TRIop_instruction3>
-        -----
-        first: ","
-
-50:     <TRIop_instruction3>   ::= "," <swizzleSrcReg> "," <swizzleSrcReg>
-    -----
-        first: ","
-        
-==========================================
-51:    <TRIop>                ::= "MAD"
-        -----
-        first: <MAD>
-        
-==========================================
-52:    <SWZ_instruction>      ::= "SWZ" <maskedDstReg> <SWZ_instruction2>
-        -----
-        first: <SWZ>
-53:     <SWZ_instruction2>     ::= "," <srcReg> "," <extendedSwizzle>
-        -----
-        first: ","
-                               
-==========================================
-54:    <scalarSrcReg>         ::= <optionalSign> <srcReg> <scalarSuffix>
-        --------
-        first: "+" "-" "vertex"  "state" "program" "{" <float> <int>
-                <id> that is vertexAttrib       
-                <id> that is a TEMP
-                <id> that is a single, <id> that is an array, 
-
-==========================================
-55:   <swizzleSrcReg>        ::= <optionalSign> <srcReg> <swizzleSuffix>
-        ---------
-        first: "+" "-" "vertex"  "state" "program" "{" <float> <int>
-                <id> that is vertexAttrib       
-                <id> that is a TEMP
-                <id> that is a single, <id> that is an array, 
-
-==========================================
-56:   <maskedDstReg>         ::= <dstReg> <optionalMask>
-        ---------
-        first:  first: <id>, that is a TEMP  "result", <id> that is a vertexResult
-
-==========================================
-57:    <maskedAddrReg>        ::= <addrReg> <addrWriteMask>
-        ---------
-        first: <id> (that is an addr reg)
-        
-==========================================
-58:    <extendedSwizzle>      ::= <extSwizComp> "," <extSwizComp> <extendedSwizzle2>
-        -------
-        first: "+" "-" "0" "1" "x" "y" "z" "w"
-        
-59:     <extendedSwizzle2>     ::= ","  <extSwizComp> "," <extSwizComp>
-        -------
-        first: ","
-                                
-==========================================
-60:    <extSwizComp>          ::= <optionalSign> <extSwizSel>
-        -------
-        first: "+" "-" "0" "1" "x" "y" "z" "w"
-
-==========================================
-61:    <extSwizSel>           ::= "0" 
-62:                             | "1" 
-63:                             | <component>
-
-==========================================
-64:    <srcReg>               ::= <vertexAttribReg>
-        ----
-       first: "vertex" <id> that is vertexAttrib        
-65:                             | <temporaryReg>
-       -----
-       first: <id> that is a TEMP
-66:                             | <progParamReg>
-       ----
-       first: <id> that is a single, <id> that is an array,  "state" "program" "{" <float> <int>
-
-==========================================
-67:    <dstReg>               ::= <temporaryReg>
-        ---------
-        first: <id>, that is a TEMP 
-68:                             | <vertexResultReg>
-    --------
-        first: "result", <id> that is a vertexResult
-
-==========================================
-69:    <vertexAttribReg>      ::= <establishedName>
-        -----
-        first: <id>, 
-70:                             | <vtxAttribBinding>
-    -----
-        first: "vertex"
-
-==========================================
- 71:   <temporaryReg>         ::= <establishedName>
-        ------
-        first: <id> that is a TEMP
-        
-==========================================
-72:   <progParamReg>         ::= <progParamSingle>
-        ------
-        first: <id>, that is single
-73:                             | <progParamArray> "[" <progParamArrayMem> "]"
-    -----
-        first: <id>, that is an array
-74:                             | <paramSingleItemUse>
-    -------                                                                      
-        first: "state" "program" "{" <float> <int>
-
-==========================================
-75:    <progParamSingle>      ::= <establishedName>
-        ------
-        first: <id>, that is a single
-
-==========================================
-76:    <progParamArray>       ::= <establishedName>
-        ------
-        first: <id>, that is an array
-        
-==========================================
-77:    <progParamArrayMem>    ::= <progParamArrayAbs>
-        ------
-        first: <integer>
-78:                             | <progParamArrayRel>
-    -----
-        first: <id>
-        
-==========================================                            
-79:    <progParamArrayAbs>    ::= <integer>
-        -------
-        first: <integer>
-        
-==========================================
-80:    <progParamArrayRel>    ::= <addrReg> <addrComponent> <addrRegRelOffset>
-        ------
-        first: <id>
-        
-==========================================
-81:    <addrRegRelOffset>     ::= ""
-        -----
-        first: ""
-        follow: "]"
-82:                             | "+" <addrRegPosOffset>
-    -----
-        first: "+"
-83:                             | "-" <addrRegNegOffset>
-    -----
-        first: "-"
-        
-==========================================
-84:    <addrRegPosOffset>     ::= <integer> from 0 to 63
-        -------
-        first: <integer>
-        
-==========================================
-85:    <addrRegNegOffset>     ::= <integer> from 0 to 64
-        -------
-        first: <integer>
-        
-==========================================
-86:    <vertexResultReg>      ::= <establishedName>
-        ------
-        first: <id>
-87:                             | <resultBinding>
-        first: "result"
-
-==========================================
-88:    <addrReg>              ::= <establishedName>
-        first: <id>
-        
-==========================================
-89:    <addrComponent>        ::= "." "x"
-        -------
-        first: "."
-        
-==========================================
-90:    <addrWriteMask>        ::= "." "x"
-        --------
-        first: "."
-        
-==========================================
-91:    <scalarSuffix>         ::= "." <component>
-        ---------
-        first: "."
-        
-==========================================
-92:    <swizzleSuffix>        ::= ""
-        ---------
-        first: ""
-        follow: "," ";"
-
-
-/*
-custom:                             | "." <component>              | --> Treat as the same production
-custom:                             | "." <component> <component>  | -->  but check the lenght of <component>
-                                   <component> <component>
-*/                                                                                       
-317:                                                   | "." <swizzleSuffix2>
-    --------
-        first: "."
-318:   swizzleSuffix2 ::= <component>
-       
-319:                                                   | <component4>
-                                                       
-==========================================
-93:    <component>            ::= "x"
-94:                             | "y"
-95:                             | "z"
-96:                             | "w"
-
-=========================================
-               <component4> := strlen() == 4, chars are from {x, y, z, w} --> push the input onto the stack
-               ----
-
-==========================================                                                               
-97:    <optionalMask>                          ::= "." <optionalMask2>
-       ---------
-       first: "."
-98:                                                                            | ""
-   ---------
-       first: ""
-       follow: ","
-       
-==========================================                     
-99:    <optionalMask2>                 ::= "x"
-100:                             | "y"
-101:                             | "xy"
-102:                             | "z"
-103:                             | "xz"
-104:                             | "yz"
-105:                               | "xyz"
-106:                               | "w"
-107:                               | "xw"
-108:                               | "yw"
-109:                               | "xyw"
-110:                             | "zw"
-111:                             | "xzw"
-112:                             | "yzw"
-113:                             | "xyzw"
-                                                                         
-==========================================
-114:    <namingStatement>      ::= <ATTRIB_statement>
-        ------
-        first: "ATTRIB"
-115:                             | <PARAM_statement>
-    -----
-        first: "PARAM"
-116:                             | <TEMP_statement>
-    -----
-        first: "TEMP"
-117:                             | <ADDRESS_statement>
-    -----
-        first: "ADDRESS"
-118:                             | <OUTPUT_statement>
-    -----
-        first: "OUTPUT"
-119:                             | <ALIAS_statement>
-    -----
-        first: "ALIAS"
-
-==========================================
-120:    <ATTRIB_statement>     ::= "ATTRIB" <establishName> "="
-                                 <vtxAttribBinding>
-    ------
-        first: "ATTRIB"
-        
-==========================================
-121:    <vtxAttribBinding>     ::= "vertex" "." <vtxAttribItem>
-        -----
-        first: "vertex"
-        
-==========================================
-122:    <vtxAttribItem>        ::= "position"
-        ------
-        first: "position"
-123:                             | "weight" <vtxOptWeightNum>
-    -----
-        first: "weight"
-124:                             | "normal"
-    -----
-        first: "normal"
-125:                             | "color" <optColorType>
-    -----
-        first: "color"
-126:                             | "fogcoord"
-    -----
-        first: "fogcoord"
-127:                             | "texcoord" <optTexCoordNum>
-    -----
-        first: "texcoord"
-128:                             | "matrixindex" "[" <vtxWeightNum> "]"
-    ----
-        first: "matrixindex"
-129:                             | "attrib" "[" <vtxAttribNum> "]"
-    ----
-        first: "attrib"
-
-==========================================
-130:   <vtxAttribNum>         ::= <integer> from 0 to MAX_VERTEX_ATTRIBS_ARB-1
-       ------
-       first: <integer>
-       
-==========================================
-131:   <vtxOptWeightNum>      ::= ""
-       ------
-       first: ""
-       follow: ";" "," "."
-132:                             | "[" <vtxWeightNum> "]"
-   ------                                                                        
-   first: "["
-
-==========================================
-133:    <vtxWeightNum>         ::= <integer> from 0 to MAX_VERTEX_UNITS_ARB-1,
-                                 must be divisible by four
-    -----
-        first: <integer>
-        
-==========================================
-134:   <PARAM_statement>               ::= "PARAM" <establishName> <PARAM_statement2>
-       -----------
-       first: "PARAM"
-
-135:   <PARAM_statement2>   ::= <paramSingleInit>
-       ------
-       first: "="
-136:                                                                   | "[" <optArraySize> "]" <paramMultipleInit>
-       ------
-       first: "["
-        
-==========================================
-137:    <optArraySize>         ::= ""
-        ---------
-        first: ""
-        follow: "]"
-138:                             | <integer> from 1 to MAX_PROGRAM_PARAMETERS_ARB
-                                 (maximum number of allowed program 
-                                  parameter bindings)
-    --------
-        first: <integer>
-
-==========================================
-139:    <paramSingleInit>      ::= "=" <paramSingleItemDecl>
-        ------
-        first: "="
-        
-==========================================
-140:    <paramMultipleInit>    ::= "=" "{" <paramMultInitList> "}"
-        ------
-        first: "="
-        
-==========================================
-141:   <paramMultInitList>             ::= <paramMultipleItem> <paramMultInitList2>
-       ------
-       first: "state" "program" "+" "-" <float> <int> "{"
-
-==========================================
-142:   <paramMultInitList2>            ::= "," <paramMultInitList>
-       ------
-       first: ","
-143:                                                                           | ""
-   ------
-       first: ""
-       follow: "}"
-       
-==========================================
-144:    <paramSingleItemDecl>  ::= <stateSingleItem>
-        ------
-        first: "state"
-145:                             | <programSingleItem>
-    ------                                                                       
-    first: "program"                                                                     
-146:                             | <paramConstDecl>
-        ------                                                           
-        first: "+" "-" <float> <int>"{"
-        
-==========================================
-147:    <paramSingleItemUse>   ::= <stateSingleItem>
-        ------
-        first: "state"
-148:                             | <programSingleItem>
-    ------                     
-        first: "program"
-149:                             | <paramConstUse>
-        ------
-        first: "{" <float> <int>
-
-==========================================
-150:    <paramMultipleItem>    ::= <stateMultipleItem>
-        -----
-        first: "state"
-151:                             | <programMultipleItem>
-    ------                     
-        first: "program"
-152:                             | <paramConstDecl>
-    ------                     
-        first: "+" "-" <float> <int> "{"
-
-==========================================
-153:    <stateMultipleItem>            ::= "state" "." <stateMultipleItem2>
-    -------
-        first: "state"
-
-========================================
-154:    <stateMultipleItem2>   ::= <stateMaterialItem>
-       -----
-       first: "material"
-155:                                                                   |   <stateLightItem>
-   ------                      
-       first: "light"
-156:                                                                   |   <stateLightModelItem>
-   ------              
-       first: "lightmodel"
-157:                                                                   |   <stateLightProdItem>
-   ------                              
-       first: "lightprod"
-158:                                                                   |   <stateTexGenItem>
-   ------                              
-       first: "texgen"
-159:                                                                   |   <stateFogItem>
-   ------                      
-       first: "fog"
-160:                                                                   |   <stateClipPlaneItem>
-   ------              
-       first: "clip"
-161:                                                                   |   <statePointItem>
-   ------              
-       first: "point"
-
-162                    ::= "matrix" "." <stateMatrixName> <foo>
- ----
- first: "matrix"
-
-===========================
-163: <foo>  ::= "." <foo2>
-------
- first: "."
-316:                           |  ""
------
-follow: "," "}"
-                               
-164: <foo2> ::= <stateMatModifier> <foo3>
- -----
- first: "inverse" "transpose" "invtrans"
-165:           | "row" "[" <stateMatrixRowNum> <foo4>
- ------
- first: "row"
-
-===========================
-166: <foo3> ::= ""
- -----
- first: ""
- follow: , }
-167:          | "." "row" "[" <foo35> 
- -----
- first: "."
-
-==============================
-168: <foo35> ::= <stateMatrixRowNum> <foo4> 
-     ------
-     first: <int>
-
-==============================
-169: <foo4> ::= "]"
- -----
- first: "]"
-170:          | ".." <stateMatrixRowNum> "]"
- -----
- first: ..
-
-==========================================
-171:   <stateSingleItem>                       ::= "state" "." <stateSingleItem2>
-       -------
-       first: "state"
-       
-==========================================
-172:   <stateSingleItem2>              ::= <stateMaterialItem>
-       ------
-       first: "material"
-173:                             | <stateLightItem>
-   ------                      
-       first: "light"
-174:                             | <stateLightModelItem>
-   ------              
-       first: "lightmodel"
-175:                             | <stateLightProdItem>
-   ------                              
-       first: "lightprod"
-176:                             | <stateTexGenItem>
-   ------                              
-       first: "texgen"
-177:                             | <stateFogItem>
-   ------                      
-       first: "fog"
-178:                             | <stateClipPlaneItem>
-   ------              
-       first: "clip"
-179:                             | <statePointItem>
-   ------              
-       first: "point"
-180:                             | <stateMatrixRow>
-   ------
-       first: "matrix"
-==========================================
-181:   <stateMaterialItem>  ::= "material" "." <stateMaterialItem2>
-       ------
-       first: "material"
-
-========================================       
-182:   <stateMaterialItem2> ::= <stateMatProperty>
-       ------
-       first: "ambient" "diffuse" "specular" "emission" "shininess"
-183:                                                             | "." <optFaceType2> "." <stateMatProperty>
-       -----
-       first: "."
-
-==========================================
-184:    <stateMatProperty>     ::= "ambient"
-        -----
-        first: "ambient"
-185;                             | "diffuse"
-        -----
-        first: "diffuse"
-186:                             | "specular"
-    -----
-        first: "specular"
-187:                             | "emission"
-        -----
-        first: "emission"
-188:                             | "shininess"
-        -----
-        first: "shininess"
-==========================================
-189:   <stateLightItem>       ::= "light" "[" <stateLightNumber>  <stateLightItem2>
-       ------
-       first: "light"
-       
-190:   <stateLightItem2>      ::= "]" "." <stateLightProperty>
-       -----
-       first: "]"
-                                 
-
-==========================================
-191:    <stateLightProperty>   ::= "ambient"
-        -------
-        first: "ambient"
-192:                             | "diffuse" 
-        -------
-        first: "diffuse"
-193:                             | "specular"
-        -------
-        first: "specular"
-194:                             | "position"
-        -------
-        first: "position"
-195:                             | "attenuation"
-        -------
-        first: "attenuation"
-196:                             | "spot" "." <stateSpotProperty>
-        --------
-        first: "spot"
-197:                             | "half"
-        --------
-        first: "half"
-        
-==========================================
-198:    <stateSpotProperty>    ::= "direction" 
-        ---------
-        first: "direction"
-        
-==========================================
-199:    <stateLightModelItem>  ::= "lightmodel" <stateLModProperty>
-        --------
-        first: "lightmodel"
-        
-==========================================
-200:   <stateLModProperty>        ::= "." <stateLModProperty2>
-       -------
-       first: "."
-
-201:   <stateLModProperty2>    ::= "ambient"
-       -------
-       first: "ambient"
-202:                                                                           | "scenecolor"
-       ------
-       first: "scenecolor"
-203:                                                                           | <optFaceType2> "." "scenecolor"
-        -------
-        first: "front" "back"
-==========================================
-204:    <stateLightProdItem>  ::= "lightprod" "[" <stateLightNumber> <stateLightProdItem15>
-         ------
-        first: "lightprod"
-
-205:    <stateLightProdItem15> ::= "]" "." <stateLightProdItem2>
-        --------
-        first: "]"
-
-===============
-206:    <stateLightProdItem2> ::= <stateLProdProperty>
-        ----------
-        first: "ambient" "diffuse" "specular"
-207:                                                                   |  <optFaceType2> "." <stateLProdProperty> 
-        ---------
-        first: "front" "back"
-
-==========================================
-208:    <stateLProdProperty>   ::= "ambient"
-        -------
-        first: "ambient"
-209:                             | "diffuse"
-        -------
-        first: "diffuse"
-210:                             | "specular"
-        -------
-        first: "specular"
-        
-==========================================
-211:    <stateLightNumber>     ::= <integer> from 0 to MAX_LIGHTS-1
-        ---------
-        first: <integer>
-        
-==========================================
-212:    <stateTexGenItem>      ::= "texgen" <optTexCoordNum> <stateTexGenItem2> 
-        -----------
-        first: "texgen"
-
-213:   <stateTexGenItem2>  ::= "."   <stateTexGenType> "." <stateTexGenCoord>
-        
-==========================================
-214:    <stateTexGenType>      ::= "eye"
-        --------------
-        first: "eye"
-215:                            | "object"
-        --------------
-        first: "object"
-        
-==========================================
-216:    <stateTexGenCoord>     ::= "s" 
-        ------
-        first: "s"
-217:                             | "t" 
-        -------
-        first: "t"
-218:                             | "r" 
-        -------
-        first: "r"
-219:                             | "q"
-    -------
-        first: "q"
-==========================================
-220:    <stateFogItem>         ::= "fog" "." <stateFogProperty>
-        --------
-        first: "fog"
-
-==========================================
-221:    <stateFogProperty>     ::= "color" 
-        ------
-        first: "color"
-222:                             | "params" 
-        ------
-        first: "params"
-==========================================
-223:    <stateClipPlaneItem>   ::= "clip" "[" <stateClipPlaneNum> <stateClipPlaneItem2> 
-        ------
-        first: "clip"
-
-224:    <stateClipPlaneItem2> ::= "]" "." "plane"
-    -----
-        first: "]"
-        
-==========================================
-225:   <stateClipPlaneNum>    ::= <integer> from 0 to MAX_CLIP_PLANES-1
-       -------
-       first: <integer>
-       
-==========================================
-226:    <statePointItem>       ::= "point" . <statePointProperty>
-        -----
-        first: "point"
-        
-==========================================
-227:    <statePointProperty>   ::= "size"
-        -------
-        first: "size"
-228:                             | "attenuation"
-        --------
-        first: "attenuation"
-        
-==========================================
-229:   <stateMatrixRow>                ::= "matrix" "." <stateMatrixName> <stateMatrixRow15>
-       --------
-       first: "matrix"
-       
-230:   <stateMatrixRow15>  ::= "." <stateMatrixRow2>
-       -----
-       first: "."
-       
-===========================
-231:   <stateMatrixRow2>               ::= "row" "[" <stateMatrixRowNum> "]"
-       --------
-       first: "row"
-232:                                                            |  <stateMatModifier> "." "row" <stateMatrixRow3>
-       ------
-       first: "inverse" "transpose" "invtrans"
-
-233:   <stateMatrixRow3>  ::= "[" <stateMatrixRowNum> "]"
-       -----
-       first: "["
-
-==========================================
-234:    <stateMatModifier>     ::= "inverse" 
-        --------
-        first: "inverse"
-235:                             | "transpose" 
-        -------
-        first: "transpose"
-236:                             | "invtrans"
-        -------
-        first: "invtrans"
-
-==========================================
-237: <stateMatrixRowNum>    ::= <integer> from 0 to 3
-       ----------
-       first: <integer>
-       
-==========================================
-238:    <stateMatrixName>      ::= "modelview" <stateOptModMatNum>
-        ------------
-        first: "modelview"
-239:                             | "projection"
-        ------------
-        first: "projection"
-240:                             | "mvp"
-        -----------
-        first: "mvp"
-241:                             | "texture" <optTexCoordNum>
-        -----------
-        first: "texture"
-242:                             | "palette" "[" <statePaletteMatNum> "]"
-        -----------
-        first: "palette"
-243:                             | "program" "[" <stateProgramMatNum> "]"
-        -----------
-        first: "program"
-                             
-==========================================
-244:    <stateOptModMatNum>    ::= ""
-        -------------
-        first: ""
-        follow: "." "," "}"
-245:                             | "[" <stateModMatNum> "]"
-        -------------
-        first: "["
-
-==========================================
-246:    <stateModMatNum>       ::= <integer> from 0 to MAX_VERTEX_UNITS_ARB-1
-       -----------
-       first: <integer>
-       
-==========================================
-247:  <statePaletteMatNum>   ::= <integer> from 0 to MAX_PALETTE_MATRICES_ARB-1
-       -----------
-       first: <integer>
-       
-==========================================
-248:  <stateProgramMatNum>   ::= <integer> from 0 to MAX_PROGRAM_MATRICES_ARB-1
-        ------------
-        first: <integer>
-
-==========================================
-249:   <programSingleItem>     ::= "program" "." <programSingleItem2>
-       ---------------
-       first: "program"
-
-250:   <programSingleItem2>            ::= <progEnvParam>
-       --------------
-       first: "env"
-251:                                                                           | <progLocalParam>
-       --------------
-       first: "local"
-
-==========================================
-252:    <programMultipleItem> ::= "program" "." <programMultipleItem2>
-        ---------------
-        first: "program"
-
-==========================================
-253:    <programMultipleItem2> ::= <progEnvParams>
-        ---------------
-        first: "env"
-254:                                                                     | <progLocalParams>
-        --------------
-        first: "local"
-
-==========================================
-255:    <progEnvParams>        ::= "env" "[" <progEnvParamNums> "]"
-       -----------
-       first: "env"
-
-==========================================
-256:   <progEnvParamNums>              ::= <progEnvParamNum> <progEnvParamNums2>
-   ---------
-       first: <integer>
-
-==========================================
-257:   <progEnvParamNums2>             ::= ".." <progEnvParamNum>
-       ----------
-       first: ".."
-258:                                                                           | ""
-       ---------
-       first: ""
-       follow: "]"
-
-==========================================
-259:    <progEnvParam>         ::= "env" "[" <progEnvParamNum> "]"
-        ---------
-        first: "env"
-
-==========================================
-260:    <progLocalParams>      ::= "local" "[" <progLocalParamNums> "]"
-        ---------
-        first: "local"
-
-==========================================
-261:   <progLocalParamNums>            ::= <progLocalParamNum> <progLocalParamNums2>
-       ----------
-       first: <integer>
-       
-==========================================
-262:   <progLocalParamNums2>   ::= ".." <progLocalParamNum>
-       ---------
-       first: ".."
-263:                                                                           | ""
-   --------
-       first: ""
-       follow: "]"
-==========================================
-264:    <progLocalParam>       ::= "local" "[" <progLocalParamNum> "]"
-    ---------
-        first: "local"
-
-==========================================
-265:    <progEnvParamNum>      ::= <integer> from 0 to MAX_PROGRAM_ENV_PARAMETERS_ARB - 1
-        ---------
-        first: <integer>
-                               
-
-==========================================
-266:    <progLocalParamNum>    ::= <integer> from 0 to MAX_PROGRAM_LOCAL_PARAMETERS_ARB - 1
-    -------------
-        first: <integer>
-       
-==========================================
-267:    <paramConstDecl>       ::= <paramConstScalarDecl>
-        ------------
-        first: "+" "-" <float> <int>
-        
-268:                             | <paramConstVector>
-       ------------
-       first: "{"
-
-==========================================
-269:   <paramConstUse>        ::= <paramConstScalarUse>
-       -----------
-       first: <float> <int>
-270:                             | <paramConstVector>
-       ----------
-       first: "{"
-
-==========================================
-271:    <paramConstScalarDecl> ::= <signedFloatConstant>
-       ----------
-       first: "+" "-" <float> <int>
-
-==========================================
-272:    <paramConstScalarUse>  ::= <floatConstant>
-        ------------
-        first: <float> <int>
-
-==========================================
-273:   <paramConstVector>              ::= "{" <signedFloatConstant> <paramConstVector2>
-       -------------
-
-==========================================
-274:   <paramConstVector2>             ::= "}" 
-       -------------
-       first: "}"
-275:                                                                           | "," <signedFloatConstant> <paramConstVector3>
-       -------------
-       first: ","
-
-==========================================
-276:   <paramConstVector3>             ::= "}"
-       -------------
-       first: "}"
-277:                                                                           | "," <signedFloatConstant> <paramConstVector4>
-       ------------
-       first: ","
-
-==========================================
-278:   <paramConstVector4>             ::= "}"
-       ------------
-       first: "}"
-279:                                                                           | "," <signedFloatConstant> "}"
-       ------------
-       first: ","
-                                                                               
-==========================================
-280:   <signedFloatConstant>  ::= <optionalSign> <floatConstant>
-       ----------
-       first: "-" "+" <float> <int>
-       
-==========================================
-    <floatConstant>        ::= see text
-       ----------
-       first: <float> <int>
-       
-==========================================
-281:    <optionalSign>         ::= ""
-        -----------
-        first: ""
-        follow: <float> <int> "0" "1" "x" "y" "z" "w" "state" "program" "vertex" "{"
-                       vertexattr <id>
-                                                temp <id>
-                                                single <id>
-                                                array <id>
-
-                             | "-"
-        -----------
-282:    first: "-"
-
-                             | "+"
-        ---------
-283:    first: "+"
-
-==========================================
-284:    <TEMP_statement>       ::= "TEMP" <varNameList>
-        --------
-        first: "TEMP"
-
-==========================================
-285:    <ADDRESS_statement>    ::= "ADDRESS" <varNameList>
-       -------------
-       first: "ADDRESS"
-
-==========================================
-286:    <varNameList>          ::= <establishName>
-        -------------
-        first: <id>
-287:                             | <establishName> "," <varNameList>
-        -------------
-        first: <id>
-
-==========================================
-288:    <OUTPUT_statement>     ::= "OUTPUT" <establishName> "=" <resultBinding>
-    ------------------
-        first: "OUTPUT"
-
-==========================================
-289:   <resultBinding>                 ::= "result" "." <resultBinding2>
-   -------------------
-       first: "result"
-       
-==========================================
-290:   <resultBinding2>                        ::= "position"
-       ----------------------------------
-       first: "position"
-291:                                                                           | "fogcoord"
-       ----------------------------------
-       first: "fogcoord"
-292:                                                                           | "pointsize"
-       ----------------------------------
-       first: "pointsize"
-293:                                                                           | <resultColBinding>
-       ----------------------------------
-       first: "color"
-294:                                                                           | "texcoord" <optTexCoordNum>
-       ----------------------------------
-       first: "texcoord"
-
-==========================================
-295:   <resultColBinding>  ::= "color" <resultColBinding2>
-       -----
-       first: "color"
-
-=============
-296:   <resultColBinding2> ::= ""
-       ----
-       first: ""
-       follow: ";" "," "."     
-297:                                                           | "." <resultColBinding3>
-       ----
-       first: "."
-                                               --> HACK: If we have a ".", look ahead 1 and see if we have
-                                                                               "front" | back". If so, choose the second production.
-                                                                               If not, choose the first.
-                                                                               
-===========
-298:   <resultColBinding3> ::= "front" <resultColBinding4>
-       ---------
-       first: "front"
-299:                                                            | "back"  <resultColBinding4>
-       --------
-       first: "back"
-       
-===========
-300:   <resultColBinding4> ::= ""
-       ---------
-       first: ""
-       follow: ";" "," "."
-301:                                                           | "." <resultColBinding5>
-       ---------                                                       
-       first "."
-
-                                       ----> HACK: If we have a ".", peek ahead 1 and see if we have "primary" | "secondary".
-                                                               If so, choose teh second production. If not, choose the first.
-                                       
-===============
-302:   <resultColBinding5> ::= "primary"
-       --------
-       first: "primary"
-303:                                                           |  "secondary"
-       --------
-       first: "secondary"
-                                                               
-
-==========================================
-304:   <optFaceType2>                          ::= "front"
-       ----------------------------------
-       first: "front"
-305:                                                                           | "back"
-       ----------------------------------
-       first: "back"
-
-==========================================
-306:   <optColorType>                          ::= "." <optColorType2>
-       ----------------------------------
-       first: "."
-307:                                                                           | ""
-       ----------------------------------
-       first: ""
-       follow: ";" "," "."
-
-                                                                       --> HACK: If we get a ".", peek ahead 1 token. if we have
-                                                                                       "primary" | "secondary", go choose the first production.
-                                                                                       else, choose the second.
-
-==========================================
-308:   <optColorType2>                 ::= "primary"
-       ----------------------------------
-       first: "primary"
-309:                                                                           | "secondary"
-       ----------------------------------
-       first: "secondary"
-
-==========================================
-310:   <optTexCoordNum>       ::= ""
-       ----------------------------------
-       first:  ""
-       follow: "." ";" "," "}"
-311:                             | "[" <texCoordNum> "]"
-       ----------------------------------
-       first: "["
-
-==========================================
-312:   <texCoordNum>          ::= <integer> from 0 to MAX_TEXTURE_UNITS-1
-       -----------------------------------
-       first: <integer>
-
-==========================================
-313:   <ALIAS_statement>      ::= "ALIAS" <establishName> "=" <establishedName>
-       -----------------------------------
-       first: "ALIAS"
-                                 
-==========================================
-314:   <establishName>        ::= <identifier>
-       -----------------------------------
-       first: <id>
-       
-==========================================
-315:   <establishedName>      ::= <identifier>
-       -----------------------------------
-       first: <id>
-
-==========================================
-       <identifier>           ::= see text
-       -----------------------------------
-       first: <id>
-
-HIGHEST PRODUCTION: 319