+++ /dev/null
-==========================================
-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