Changeset 653

Show
Ignore:
Timestamp:
09/30/08 17:55:48 (2 months ago)
Author:
steve
Message:
  • shader parser stuff
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/shader_parser/main.c

    r652 r653  
    66#include "shader.h" 
    77 
     8#ifdef _MSC_VER 
     9#define strcasecmp _stricmp 
     10#define strncasecmp _strnicmp 
     11#endif 
     12 
     13 
    814int line_number; 
    915 
     
    1117extern void             Parse           ( void *yyp, int yymajor, Token *A ); 
    1218extern void             ParseFree       ( void *p, void (*freeProc)(void*) ); 
     19 
     20shader_t *rootShader; 
    1321 
    1422 
     
    8088        {"mode",                                TK_MODE }, 
    8189        {"src",                                 TK_SRC }, 
     90        {"scale",                               TK_SCALE }, 
    8291        {"wrap",                                TK_WRAP }, 
    8392        {"env_modulate",                TK_ENV_MODULATE }, 
     
    147156 
    148157                // "informant" gets sscanf'd to infinity, so make sure that doesn't happen 
    149                 if ( (strncmp(z,"inf", 3 ) != 0) && (sscanf( z, "%f", &f) == 1 || sscanf( z, "%d", &i ) == 1) ) { 
     158                if ( (strncmp(z,"inf", 3 ) != 0) && (sscanf_s( z, "%f", &f) == 1 || sscanf_s( z, "%d", &i ) == 1) ) { 
    150159                        *tokenType = TK_NUMBER; 
    151160                        return strlen(z); 
     
    166175        return 1; 
    167176} 
    168  
     177/* just prints out the shaders contents 
    169178void print_vector( Token *t ) { 
    170179} 
     
    222231        } 
    223232        register_shader( shader ); 
    224 
     233}*/ 
     234 
     235void register_collection ( shader_t *shader ) { 
     236        if ( rootShader == NULL ) { 
     237                rootShader = shader; 
     238        } else { 
     239                shader_t *ptr; 
     240                ptr = rootShader; 
     241                while ( ptr->next != NULL ) { 
     242                        ptr = ptr->next; 
     243                } 
     244                ptr->next = shader; 
     245        } 
     246
     247 
     248 
    225249 
    226250void parse_error( char *msg ) { 
     
    251275                                        s[-1] = 0; 
    252276                                *sptr = s; 
    253                                 *match = c; 
     277                                *match = (unsigned char )c; 
    254278                                return tok; 
    255279                        } 
     
    259283 
    260284 
    261 int main(int argc, char* argv[]){ 
     285int getShaderDeps(char * shaderName){ 
    262286        FILE * fp; 
    263287        char* fileContents; 
     
    271295 
    272296 
    273         if(argc < 2
    274                 return 1
    275          
    276         fp = fopen(argv[1],"rb"); 
     297        if(!shaderName
     298                return 0
     299        fp = NULL; 
     300        fopen_s(&fp, shaderName,"rb"); 
    277301         
    278302        if( !fp ) 
    279                 return 1
     303                return 0
    280304 
    281305        fseek( fp, 0, SEEK_END ); 
     
    336360                if ( in_comment == 0 ) { 
    337361         
    338                         A = malloc( sizeof( Token ) ); 
     362                        A = (Token *)calloc( 1, sizeof( Token ) ); 
    339363                         
    340364                        A->left                 = NULL; 
    341365                        A->right                = NULL; 
    342366         
    343                         A->s                    = malloc( length + 1 ); 
    344                         strncpy                        ( A->s, tok, length ); 
     367                        A->s                    = (char *)malloc( length + 1 ); 
     368                        strncpy_s              ( A->s, length + 1, tok, length ); 
    345369                        A->s[length]    = 0; 
    346370                        A->n                    = length; 
     
    363387        free( fileContents ); 
    364388 
     389        return 1; 
     390} 
     391shader_t * getShaderByName( char *shaderName ) { 
     392        shader_t *shader; 
     393 
     394 
     395        for(shader = rootShader; shader; shader = shader->next) 
     396        { 
     397                if(!strcasecmp(shader->name, shaderName)) break; 
     398        } 
     399        return shader; 
     400} 
     401 
     402int shaderHasAlpha( char *shaderName ) { 
     403        shader_t *shader; 
     404        shaderStage_t *shaderStage; 
     405        Token *token; 
     406 
     407        shader = getShaderByName(shaderName); 
     408        if ( shader == NULL ) return 0; 
     409 
     410 
     411 
     412        for ( token = shader->commands; token; token = token->right ) { 
     413                if (!strcasecmp(token->s, "surfaceparm") ) { 
     414                        if ( !strcasecmp(token->left->s, "trans" ) ) { 
     415                                printf("WARNING: surfaceparm trans set, making %s transparent\n", shaderName); 
     416                                return 1; 
     417                        } 
     418                } 
     419        } 
     420 
     421        for(shaderStage = shader->stages; shaderStage; shaderStage = shaderStage->next) 
     422        { 
     423                for(token = shaderStage->commands; token; token = token->right) 
     424                { 
     425                        if(!strcasecmp(token->s, "alphaFunc")){ 
     426                                if ( strcasecmp(token->left->s, "gt0" ) != 0 ) { 
     427                                        printf("WARNING: alphaFunc for %s set to %s\n", shaderName, token->left->s ); 
     428                                } 
     429                                return 1; 
     430                        } 
     431                        if (!strcasecmp(token->s, "blendfunc") ) { 
     432                                if ( !strcasecmp(token->left->s, "blend") || !strcasecmp(token->left->s, "GL_SRC_ALPHA" ) ) { 
     433                                        return 1; 
     434                                } 
     435                                if ( token->left->left && !strcasecmp(token->left->left->s, "GL_ONE_MINUS_SRC_ALPHA" ) ) { 
     436                                        return 1; 
     437                                } 
     438                        } 
     439                } 
     440        } 
    365441        return 0; 
    366442} 
     443 
     444int     tex_from_shader( char *shaderName, size_t bufSize, char *textureName ){ 
     445        shader_t * shader; 
     446        shaderStage_t *shaderStage; 
     447        Token *token; 
     448        int found_texture = 0; 
     449 
     450         
     451        shader = getShaderByName(shaderName); 
     452 
     453        if(shader == NULL) return 0; 
     454 
     455        for ( token = shader->commands; token; token = token->right ) { 
     456                if (!strcasecmp(token->s, "q3map_lightimage") ) { 
     457                        strncpy_s(textureName, bufSize, token->left->s, bufSize); 
     458                        return 1; 
     459                } 
     460        } 
     461        for(shaderStage = shader->stages; shaderStage; shaderStage = shaderStage->next) 
     462        { 
     463                for(token = shaderStage->commands; token; token = token->right) 
     464                { 
     465                        if(!strcasecmp(token->s, "map")){ 
     466                                if ( token->left->s[0] != '$' ) { 
     467                                        strncpy_s(textureName, bufSize, token->left->s, bufSize); 
     468                                        found_texture = 1; 
     469                                } 
     470                        } 
     471 
     472                        if(!strcasecmp(token->s, "clampmap")){ 
     473                                strncpy_s(textureName, bufSize, token->left->s, bufSize); 
     474                                found_texture = 1; 
     475                        } 
     476                } 
     477        } 
     478 
     479        if ( found_texture == 1 ) { 
     480                return 1; 
     481        } 
     482 
     483        return 0; 
     484 
     485} 
  • trunk/shader_parser/shader.c

    r652 r653  
    22** The author disclaims copyright to this source code. 
    33*/ 
    4 /* First off, code is included that follows the "include" declaration 
    5 ** in the input grammar file. */ 
     4/* First off, code is include which follows the "include" declaration 
     5** in the input file. */ 
    66#include <stdio.h> 
    7 #line 3 "shader.y" 
     7#line 3 "c:\\Documents and Settings\\Steve\\Desktop\\may2q3\\shader_parser\\shader.y" 
    88 
    99#include "shader_parser.h" 
     
    2525 
    2626 
    27 #line 30 "shader.c" 
     27#line 29 "c:\\Documents and Settings\\Steve\\Desktop\\may2q3\\shader_parser\\shader.c" 
    2828/* Next is all token values, in a form suitable for use by makeheaders. 
    2929** This section will be null unless lemon is run with the -m switch. 
     
    6464**                       which is ParseTOKENTYPE.  The entry in the union 
    6565**                       for base tokens is called "yy0". 
    66 **    YYSTACKDEPTH       is the maximum depth of the parser's stack.  If 
    67 **                       zero the stack is dynamically sized using realloc() 
     66**    YYSTACKDEPTH       is the maximum depth of the parser's stack. 
    6867**    ParseARG_SDECL     A static variable declaration for the %extra_argument 
    6968**    ParseARG_PDECL     A parameter declaration for the %extra_argument 
     
    8483  shaderStage_t * yy73; 
    8584  shader_t * yy99; 
     85  int yy187; 
    8686} YYMINORTYPE; 
    87 #ifndef YYSTACKDEPTH 
    8887#define YYSTACKDEPTH 100 
    89 #endif 
    9088#define ParseARG_SDECL 
    9189#define ParseARG_PDECL 
     
    9391#define ParseARG_STORE 
    9492#define YYNSTATE 243 
    95 #define YYNRULE 101 
     93#define YYNRULE 102 
     94#define YYERRORSYMBOL 75 
     95#define YYERRSYMDT yy187 
    9696#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2) 
    9797#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1) 
    9898#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE) 
    9999 
    100 /* The yyzerominor constant is used to initialize instances of 
    101 ** YYMINORTYPE objects to zero. */ 
    102 #ifdef __cplusplus 
    103 static YYMINORTYPE yyzerominor; 
    104 #else 
    105 static const YYMINORTYPE yyzerominor; 
    106 #endif 
    107  
    108 /* Next are the tables used to determine what action to take based on the 
     100/* Next are that tables used to determine what action to take based on the 
    109101** current state and lookahead token.  These tables are used to implement 
    110102** functions that take a state number and lookahead value and return an 
     
    154146*/ 
    155147static const YYACTIONTYPE yy_action[] = { 
    156  /*     0 */     4,  206,   97,  174,  174,  174,  174,  174,  174,  174, 
    157  /*    10 */   168,    3,   10,  171,   29,    2,  166,  178,  178,  178, 
    158  /*    20 */   178,  242,   17,  345,   11,  108,  109,  110,  111,  112, 
    159  /*    30 */   113,  114,   27,  216,  217,  218,  115,  122,  222,  223, 
    160  /*    40 */   123,   19,   32,  134,  142,  227,  144,  145,  146,  150, 
    161  /*    50 */   153,  154,  156,  235,  236,  237,  158,  164,    4,  241, 
    162  /*    60 */    97,  168,   18,  179,  179,  179,  179,  167,  169,  184, 
    163  /*    70 */     6,  183,    7,    9,  166,   48,  182,   20,  243,   29, 
    164  /*    80 */    52,    5,   33,  108,  109,  110,  111,  112,  113,  114, 
    165  /*    90 */    27,  216,  217,  218,  115,  122,  222,  223,  123,    4, 
    166  /*   100 */   170,  134,  142,  227,  144,  145,  146,  150,  153,  154, 
    167  /*   110 */   156,  235,  236,  237,  158,  164,    4,   58,   97,   47, 
    168  /*   120 */    21,   79,   89,  167,  215,   12,   74,   87,   47,  215, 
    169  /*   130 */   172,  117,  175,   15,   14,   21,  121,   16,  180,  165, 
    170  /*   140 */   169,  108,  109,  110,  111,  112,  113,  114,   27,  216, 
    171  /*   150 */   217,  218,  115,  122,  222,  223,  123,  240,   97,  134, 
    172  /*   160 */   142,  227,  144,  145,  146,  150,  153,  154,  156,  235, 
    173  /*   170 */   236,  237,  158,  164,  173,   31,  177,  181,   19,    1, 
    174  /*   180 */     8,  108,  109,  110,  111,  112,  113,  114,   27,  216, 
    175  /*   190 */   217,  218,  115,  122,  222,  223,  123,   30,  176,  134, 
    176  /*   200 */   142,  227,  144,  145,  146,  150,  153,  154,  156,  235, 
    177  /*   210 */   236,  237,  158,  164,   13,  186,  185,  187,   37,  188, 
    178  /*   220 */    40,   93,   30,   41,   39,   42,   43,   44,   45,   46, 
    179  /*   230 */   189,   34,   35,   36,   38,   23,   24,   62,   73,  197, 
    180  /*   240 */    83,   84,  200,  201,   86,   22,   93,  190,   49,   50, 
    181  /*   250 */    51,  191,   63,   53,   54,   55,   34,   35,   36,   38, 
    182  /*   260 */    23,   24,   62,   73,  197,   83,   84,  200,  201,   86, 
    183  /*   270 */    22,   26,   56,   57,  192,   59,  193,   60,   61,   64, 
    184  /*   280 */    65,   66,   67,   68,   69,   70,   26,   71,   72,   25, 
    185  /*   290 */    75,   76,  194,   77,  132,   78,  195,   80,   81,   82, 
    186  /*   300 */   196,  198,   85,  199,  202,   88,  203,  128,  159,   90, 
    187  /*   310 */    91,  346,   92,  204,  129,  160,   94,   95,  346,   96, 
    188  /*   320 */   205,  130,   98,  232,   99,   26,  100,  101,  104,  102, 
    189  /*   330 */   157,  103,  239,  107,  105,  106,  208,  207,  209,  210, 
    190  /*   340 */   211,  212,  213,  116,  346,  214,  346,  346,  346,   28, 
    191  /*   350 */   118,  346,  119,  346,  346,  346,  120,  219,  346,  220, 
    192  /*   360 */   163,  124,  346,  221,  125,  126,  127,  238,  131,  346, 
    193  /*   370 */   346,  346,  133,  224,  346,  135,  346,  346,  346,  136, 
    194  /*   380 */   137,  346,  138,  346,  346,  346,  139,  140,  346,  141, 
    195  /*   390 */   346,  346,  346,  225,  143,  346,  226,  346,  346,  346, 
    196  /*   400 */   228,  229,  346,  147,  346,  346,  346,  148,  149,  346, 
    197  /*   410 */   230,  346,  346,  346,  151,  152,  155,  231,  233,  346, 
    198  /*   420 */   346,  346,  234,  346,  161,  162, 
     148 /*     0 */     4,  241,  135,  224,  224,  224,  224,  224,  224,  224, 
     149 /*    10 */   216,  216,  216,  216,  218,  218,  218,  218,  234,    2, 
     150 /*    20 */   212,   20,  215,    3,  238,  147,  149,  151,  153,  155, 
     151 /*    30 */   157,  159,   28,  167,  166,  165,  164,  150,  178,  179, 
     152 /*    40 */   148,   19,   31,  109,   61,  204,   48,   46,   44,   39, 
     153 /*    50 */    30,   33,   37,  226,  227,  228,   65,  120,    4,  182, 
     154 /*    60 */   135,  242,   18,  346,  233,  234,   17,   27,  161,    9, 
     155 /*    70 */   238,  236,    6,   43,  104,   10,  231,   24,  233,   98, 
     156 /*    80 */     4,  232,   27,  147,  149,  151,  153,  155,  157,  159, 
     157 /*    90 */    28,  167,  166,  165,  164,  150,  178,  179,  148,   24, 
     158 /*   100 */   239,  109,   61,  204,   48,   46,   44,   39,   30,   33, 
     159 /*   110 */    37,  226,  227,  228,   65,  120,    4,   22,  135,  211, 
     160 /*   120 */     5,   27,   63,  160,  210,    7,   36,  220,  152,   19, 
     161 /*   130 */   124,   63,   22,  168,  214,  121,   13,   25,  168,   15, 
     162 /*   140 */   196,  147,  149,  151,  153,  155,  157,  159,   28,  167, 
     163 /*   150 */   166,  165,  164,  150,  178,  179,  148,  240,  135,  109, 
     164 /*   160 */    61,  204,   48,   46,   44,   39,   30,   33,   37,  226, 
     165 /*   170 */   227,  228,   65,  120,  229,   67,   11,    1,  223,  158, 
     166 /*   180 */    72,  147,  149,  151,  153,  155,  157,  159,   28,  167, 
     167 /*   190 */   166,  165,  164,  150,  178,  179,  148,   62,  169,  109, 
     168 /*   200 */    61,  204,   48,   46,   44,   39,   30,   33,   37,  226, 
     169 /*   210 */   227,  228,   65,  120,  230,  236,  156,   79,   12,  170, 
     170 /*   220 */    14,  129,   62,  154,  171,  219,  173,   16,  172,   34, 
     171 /*   230 */   174,   45,   47,   49,   52,   29,   26,   84,   23,  192, 
     172 /*   240 */   110,  112,  188,  187,  117,   21,  129,  217,  175,  222, 
     173 /*   250 */   177,   32,  176,  221,  146,   38,   45,   47,   49,   52, 
     174 /*   260 */    29,   26,   84,   23,  192,  110,  112,  188,  187,  117, 
     175 /*   270 */    21,  180,  225,  134,   35,  145,  181,  213,   40,  144, 
     176 /*   280 */   142,   41,  143,  207,  209,  197,   42,  141,  139,  140, 
     177 /*   290 */   208,  205,  197,   50,  138,  206,  114,  137,  123,  136, 
     178 /*   300 */    58,  202,  203,  133,  128,   66,   53,  184,   54,   59, 
     179 /*   310 */   183,  132,   55,   56,  197,  131,  127,   57,   60,  130, 
     180 /*   320 */   126,  201,  197,  185,  125,   51,  197,  118,   74,  199, 
     181 /*   330 */     8,  197,  122,  197,  237,  191,  200,  235,  197,  197, 
     182 /*   340 */    86,   82,   75,  116,   68,  197,  197,  100,  186,   76, 
     183 /*   350 */    69,  115,  197,  197,   87,   70,  108,  198,  111,  189, 
     184 /*   360 */   197,  113,   64,  190,  197,   73,  197,  119,   90,   77, 
     185 /*   370 */   103,  197,  193,  197,   89,   83,   71,  107,  197,   80, 
     186 /*   380 */   197,   97,  197,  106,   81,  197,  105,  197,   92,  197, 
     187 /*   390 */   162,   95,  197,   96,  197,   94,  197,  194,   78,   85, 
     188 /*   400 */   102,  195,   93,  163,  197,  101,   99,   88,  197,  197, 
     189 /*   410 */   197,  197,  197,  197,  197,  197,  197,  197,  197,   91, 
    199190}; 
    200191static const YYCODETYPE yy_lookahead[] = { 
    201192 /*     0 */     2,    3,    4,    8,    9,   10,   11,   12,   13,   14, 
    202  /*    10 */    76,   77,   83,   84,    1,   81,   82,   15,   16,   17, 
    203  /*    20 */    18,   78,   79,   80,   25,   27,   28,   29,   30,   31, 
     193 /*    10 */    19,   20,   21,   22,   15,   16,   17,   18,   76,   77, 
     194 /*    20 */    89,   90,   88,   81,   82,   27,   28,   29,   30,   31, 
    204195 /*    30 */    32,   33,   34,   35,   36,   37,   38,   39,   40,   41, 
    205196 /*    40 */    42,   23,   24,   45,   46,   47,   48,   49,   50,   51, 
    206197 /*    50 */    52,   53,   54,   55,   56,   57,   58,   59,    2,    3, 
    207  /*    60 */     4,   76,   77,   19,   20,   21,   22,   82,   76,   89
    208  /*    70 */    90,   89,   90,   81,   82,    1,   89,   90,    0,    1
    209  /*    80 */     6,   91,   92,   27,   28,   29,   30,   31,   32,   33, 
    210  /*    90 */    34,   35,   36,   37,   38,   39,   40,   41,   42,    2
    211  /*   100 */    3,   45,   46,   47,   48,   49,   50,   51,   52,   53, 
    212  /*   110 */    54,   55,   56,   57,   58,   59,    2,   43,    4,    1
    213  /*   120 */    1,    1,    1,   82,    1,   85,    6,    6,   10,    6
    214  /*   130 */    84,    1,   85,   88,   86,   16,    6,   86,   88,   78
    215  /*   140 */    76,   27,   28,   29,   30,   31,   32,   33,   34,   35, 
     198 /*    60 */     4,   78,   79,   80,   76,   76,   77,    1,    1,   81
     199 /*    70 */    82,   82,   91,   92,    1,   83,   84,    1,   76,    6
     200 /*    80 */     2,    3,   16,   27,   28,   29,   30,   31,   32,   33, 
     201 /*    90 */    34,   35,   36,   37,   38,   39,   40,   41,   42,   23
     202 /*   100 */    78,   45,   46,   47,   48,   49,   50,   51,   52,   53, 
     203 /*   110 */    54,   55,   56,   57,   58,   59,    2,    1,    4,   89
     204 /*   120 */    90,   55,    1,    1,   89,   90,    6,   87,    6,   23
     205 /*   130 */    1,   10,   16,    1,   89,    6,   88,    6,    6,   86
     206 /*   140 */    44,   27,   28,   29,   30,   31,   32,   33,   34,   35, 
    216207 /*   150 */    36,   37,   38,   39,   40,   41,   42,    3,    4,   45, 
    217208 /*   160 */    46,   47,   48,   49,   50,   51,   52,   53,   54,   55, 
    218  /*   170 */    56,   57,   58,   59,    3,    6,   87,   89,   23,    2
    219  /*   180 */     5,   27,   28,   29,   30,   31,   32,   33,   34,   35, 
     209 /*   170 */    56,   57,   58,   59,    3,    1,   85,    2,   85,    6
     210 /*   180 */     6,   27,   28,   29,   30,   31,   32,   33,   34,   35, 
    220211 /*   190 */    36,   37,   38,   39,   40,   41,   42,   26,    6,   45, 
    221212 /*   200 */    46,   47,   48,   49,   50,   51,   52,   53,   54,   55, 
    222  /*   210 */    56,   57,   58,   59,    6,    1,    7,    1,    1,    6
    223  /*   220 */    1,   50,   26,    1,    6,    1,    1,    1,    1,    1, 
     213 /*   210 */    56,   57,   58,   59,   84,   82,    6,   43,   25,    1
     214 /*   220 */    86,   50,   26,    6,    1,    1,    6,    6,    6,    1, 
    224215 /*   230 */     1,   60,   61,   62,   63,   64,   65,   66,   67,   68, 
    225  /*   240 */    69,   70,   71,   72,   73,   74,   50,    1,    6,    6
    226  /*   250 */     6,    6,    1,    6,   43,    6,   60,   61,   62,   63, 
     216 /*   240 */    69,   70,   71,   72,   73,   74,   50,    6,    6,    1
     217 /*   250 */     6,    6,    1,    6,    1,    6,   60,   61,   62,   63, 
    227218 /*   260 */    64,   65,   66,   67,   68,   69,   70,   71,   72,   73, 
    228  /*   270 */    74,    1,    6,    6,   44,    6,   44,    6,    6,   43, 
    229  /*   280 */     6,    6,    6,   44,   43,    6,   16,    6,    6,    1, 
    230  /*   290 */     6,    6,   44,    6,   44,    6,    6,    6,    6,    6, 
    231  /*   300 */     6,    1,    1,    1,    6,    6,    1,   43,   43,    6, 
    232  /*   310 */     6,   93,    6,    6,    6,    6,    6,    6,   93,    6, 
    233  /*   320 */     6,    6,    5,    1,    6,   55,    6,    1,    1,    6, 
    234  /*   330 */     6,    6,    1,    1,    6,    6,    1,    7,    1,    1, 
    235  /*   340 */     6,    1,    1,    1,   93,    6,   93,   93,   93,    6, 
    236  /*   350 */     6,   93,    6,   93,   93,   93,    6,    6,   93,    6, 
    237  /*   360 */    44,    1,   93,    6,    6,    1,    1,    6,    6,   93, 
    238  /*   370 */    93,   93,    6,    6,   93,    6,   93,   93,   93,    6, 
    239  /*   380 */     6,   93,    6,   93,   93,   93,    6,    6,   93,    6, 
    240  /*   390 */    93,   93,   93,    6,    6,   93,    6,   93,   93,   93, 
    241  /*   400 */     6,    6,   93,    6,   93,   93,   93,    6,    6,   93, 
    242  /*   410 */     6,   93,   93,   93,    6,    6,    1,    6,    1,   93, 
    243  /*   420 */    93,   93,    6,   93,    6,    6, 
     219 /*   270 */    74,    1,    6,    6,    6,    1,    7,    6,    6,    6, 
     220 /*   280 */     1,    6,    6,    1,    7,   93,    6,    6,    1,    6, 
     221 /*   290 */     6,    1,   93,    1,    6,    6,   44,    6,   43,    5, 
     222 /*   300 */     1,    6,    6,    1,    1,   43,    6,    6,    1,    1, 
     223 /*   310 */     6,    6,    1,    1,   93,    6,    6,    1,    1,    6, 
     224 /*   320 */     6,    1,   44,    1,    6,    6,   93,    6,   43,    1, 
     225 /*   330 */     5,   93,    6,   93,    1,    6,    6,    6,   93,   93, 
     226 /*   340 */    43,    6,    6,    6,    6,   93,   93,    6,    6,    6, 
     227 /*   350 */     6,    6,   93,   93,    6,    6,    6,    6,    6,    1, 
     228 /*   360 */    93,    1,    6,    1,   93,    6,   93,   44,   44,    6, 
     229 /*   370 */     6,   93,    6,   93,    6,    6,    6,    6,   93,    6, 
     230 /*   380 */    93,    6,   93,    6,    6,   93,    6,   93,    6,   93, 
     231 /*   390 */     6,    6,   93,    6,   93,    6,   93,    6,    6,    1, 
     232 /*   400 */     6,   44,    6,    1,   93,    6,    6,    6,   93,   93, 
     233 /*   410 */    93,   93,   93,   93,   93,   93,   93,   93,   93,   43, 
    244234}; 
    245 #define YY_SHIFT_USE_DFLT (-6
     235#define YY_SHIFT_USE_DFLT (-10
    246236#define YY_SHIFT_MAX 164 
    247237static const short yy_shift_ofst[] = { 
    248  /*     0 */    13,  114,   -2,   56,  196,   18,   18,   18,   -1,  154, 
    249  /*    10 */   171,   -5,   -5,    2,   44,    2,   44,   78,   97,  169
    250  /*    20 */   155,   74,  270,  118,  119,  120,  121,  123,  130,  177
    251  /*    30 */   175,  192,  208,  209,  214,  216,  217,  213,  218,  219
    252  /*    40 */   222,  224,  225,  226,  227,  228,  229,  246,  242,  243
    253  /*    50 */   244,  245,  247,  211,  249,  266,  267,  230,  269,  271
    254  /*    60 */   272,  232,  251,  236,  274,  275,  276,  239,  241,  279, 
    255  /*    70 */   281,  282,  248,  288,  284,  285,  287,  289,  290,  291
    256  /*    80 */   292,  293,  294,  300,  301,  302,  298,  299,  305,  303
    257  /*    90 */   304,  306,  307,  310,  311,  313,  314,  317,  318,  320
    258  /*   100 */   326,  323,  325,  327,  328,  329,  332,  330,  335,  337
    259  /*   110 */   338,  334,  340,  341,  339,  342,  343,  344,  346,  350
    260  /*   120 */   351,  353,  357,  360,  358,  364,  365,  264,  308,  315
    261  /*   130 */   362,  250,  366,  367,  369,  373,  374,  376,  380,  381
    262  /*   140 */   383,  387,  388,  390,  394,  395,  397,  401,  402,  404
    263  /*   150 */   408,  409,  411,  322,  415,  417,  324,  416,  265,  309
    264  /*   160 */   418,  419,  316,  361,  331
     238 /*     0 */    67,  114,   -2,   56,  196,   18,   18,   18,  193,  154, 
     239 /*    10 */   171,   -5,   -5,   -1,   -9,   -9,   -1,   78,   67,  120
     240 /*    20 */   106,   66,  174,   76,   73,  122,  116,  129,  132,  121
     241 /*    30 */   224,  221,  241,  228,  248,  245,  247,  249,  266,  268
     242 /*    40 */   271,  272,  275,  277,  280,  282,  284,  290,  289,  292
     243 /*    50 */   295,  296,  300,  307,  311,  312,  316,  299,  308,  317
     244 /*    60 */   320,  319,  325,  328,  330,  262,  335,  338,  344,  349, 
     245 /*    70 */   351,  356,  359,  285,  336,  343,  363,  278,  370,  373
     246 /*    80 */   378,  384,  387,  392,  398,  297,  348,  401,  368,  324
     247 /*    90 */   376,  382,  396,  389,  357,  369,  375,  323,  400,  341
     248 /*   100 */   399,  394,  391,  385,  380,  377,  371,  366,  364,  350
     249 /*   110 */   362,  329,  360,  358,  352,  252,  345,  342,  337,  331
     250 /*   120 */   333,  326,  322,  321,  318,  314,  310,  301,  255,  313
     251 /*   130 */   309,  305,  304,  303,  302,  294,  291,  288,  287,  283
     252 /*   140 */   281,  279,  276,  273,  274,  269,  267,  270,  253,  251
     253 /*   150 */   244,  229,  242,  222,  220,  223,  217,  218,  210,  192
     254 /*   160 */   173,  175,   96,  131,  402
    265255}; 
    266 #define YY_REDUCE_USE_DFLT (-72
     256#define YY_REDUCE_USE_DFLT (-70
    267257#define YY_REDUCE_MAX 20 
    268 static const signed char yy_reduce_ofst[] = { 
    269  /*     0 */   -57,  -66,  -15,   -8,  -71,  -20,  -18,  -13,  -10,   41
    270  /*    10 */    46,   40,   47,   48,   45,   51,   50,   61,   64,   89
    271  /*    20 */    88
     258static const short yy_reduce_ofst[] = { 
     259 /*     0 */   -17,  -58,  -12,  -11,   -8,  -69,   35,   30,  -19,  133
     260 /*    10 */   130,   93,   91,   53,   48,  -66,  134,    2,   22,   40
     261 /*    20 */    45
    272262}; 
    273263static const YYACTIONTYPE yy_default[] = { 
    274  /*     0 */   344,  344,  344,  344,  344,  265,  266,  267,  344,  344
    275  /*    10 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    276  /*    20 */   268,  325,  344,  344,  344,  344,  339,  344,  344,  344
    277  /*    30 */   344,  344,  344,  344,  344,  344,  344,  310,  344,  344
    278  /*    40 */   312,  313,  314,  315,  316,  317,  318,  320,  344,  344
    279  /*    50 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    280  /*    60 */   344,  344,  344,  326,  344,  344,  344,  344,  344,  344
    281  /*    70 */   344,  344,  344,  344,  328,  329,  344,  330,  344,  344
    282  /*    80 */   344,  344,  344,  344,  344,  344,  344,  340,  344,  344
    283  /*    90 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    284  /*   100 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    285  /*   110 */   344,  344,  344,  344,  344,  344,  287,  344,  344,  344
    286  /*   120 */   344,  344,  344,  344,  344,  344,  291,  344,  344,  344
    287  /*   130 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    288  /*   140 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    289  /*   150 */   344,  344,  344,  344,  344,  344,  344,  344,  344,  344
    290  /*   160 */   344,  344,  344,  344,  344,  245,  246,  247,  250,  251, 
    291  /*   170 */   252,  248,  249,  256,  258,  264,  260,  262,  259,  261, 
    292  /*   180 */   263,  272,  271,  270,  269,  273,  308,  309,  311,  319
    293  /*   190 */   321,  322,  323,  324,  327,  332,  331,  333,  334,  335
    294  /*   200 */   336,  337,  338,  342,  341,  343,  255,  257,  274,  275
    295  /*   210 */   276,  277,  278,  279,  280,  281,  282,  283,  284,  285
    296  /*   220 */   286,  288,  289,  290,  292,  293,  294,  295,  296,  297
    297  /*   230 */   298,  299,  300,  301,  302,  303,  304,  305,  306,  307
     264 /*     0 */   345,  345,  345,  345,  345,  268,  266,  267,  345,  345
     265 /*    10 */   345,  345,  345,  345,  345,  345,  345,  345,  243,  345
     266 /*    20 */   269,  345,  326,  345,  345,  345,  345,  340,  345,  345
     267 /*    30 */   345,  345,  345,  345,  345,  345,  261,  345,  345,  345
     268 /*    40 */   345,  345,  345,  345,  345,  345,  345,  345,  345,  345
     269 /*    50 */   311,  345,  345,  345,  313,  314,  315,  316,  317,  318
     270 /*    60 */   319,  345,  345,  321,  345,  345,  345,  345,  345,  345
     271 /*    70 */   345,  345,  345,  345,  345,  345,  345,  345,  345,  345
     272 /*    80 */   345,  345,  345,  345,  345,  327,  345,  345,  345,  345
     273 /*    90 */   345,  345,  345,  345,  345,  345,  345,  345,  329,  330
     274 /*   100 */   345,  331,  345,  345,  345,  345,  345,  345,  345,  345
     275 /*   110 */   345,  345,  345,  345,  345,  345,  345,  345,  345,  345
     276 /*   120 */   345,  341,  345,  345,  345,  345,  345,  345,  345,  345
     277 /*   130 */   345,  345,  345,  292,  345,  345,  345,  345,  345,  345
     278 /*   140 */   345,  345,  345,  345,  345,  345,  345,  345,  345,  345
     279 /*   150 */   345,  345,  345,  345,  345,  345,  345,  345,  345,  345
     280 /*   160 */   345,  345,  345,  288,  345,  285,  284,  283,  282,  281, 
     281 /*   170 */   280,  279,  278,  286,  277,  287,  276,  289,  290,  291, 
     282 /*   180 */   275,  257,  255,  344,  342,  343,  339,  338,  337,  336
     283 /*   190 */   335,  293,  334,  332,  333,  328,  325,  324,  323,  322
     284 /*   200 */   294,  320,  312,  295,  296,  310,  297,  309,  298,  274
     285 /*   210 */   270,  271,  272,  299,  273,  264,  262,  300,  259,  301
     286 /*   220 */   263,  260,  302,  265,  258,  303,  304,  305,  306,  256
     287 /*   230 */   249,  248,  252,  251,  250,  307,  247,  308,  246,  245
    298288 /*   240 */   253,  254,  244, 
    299289}; 
     
    305295**      %fallback ID X Y Z. 
    306296** 
    307 ** appears in the grammar, then ID becomes a fallback token for X, Y, 
     297** appears in the grammer, then ID becomes a fallback token for X, Y, 
    308298** and Z.  Whenever one of the tokens X, Y, or Z is input to the parser 
    309299** but it does not parse, the type of the token is changed to ID and 
     
    328318*/ 
    329319struct yyStackEntry { 
    330   YYACTIONTYPE stateno;  /* The state-number */ 
    331   YYCODETYPE major;      /* The major token value.  This is the code 
    332                          ** number for the token at this stack level */ 
    333   YYMINORTYPE minor;     /* The user-supplied minor token value.  This 
    334                          ** is the value of the token  */ 
     320  int stateno;       /* The state-number */ 
     321  int major;         /* The major token value.  This is the code 
     322                     ** number for the token at this stack level */ 
     323  YYMINORTYPE minor; /* The user-supplied minor token value.  This 
     324                     ** is the value of the token  */ 
    335325}; 
    336326typedef struct yyStackEntry yyStackEntry; 
     
    340330struct yyParser { 
    341331  int yyidx;                    /* Index of top element in stack */ 
    342 #ifdef YYTRACKMAXSTACKDEPTH 
    343   int yyidxMax;                 /* Maximum value of yyidx */ 
    344 #endif 
    345332  int yyerrcnt;                 /* Shifts left before out of the error */ 
    346333  ParseARG_SDECL                /* A place to hold %extra_argument */ 
    347 #if YYSTACKDEPTH<=0 
    348   int yystksz;                  /* Current side of the stack */ 
    349   yyStackEntry *yystack;        /* The parser's stack */ 
    350 #else 
    351334  yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */ 
    352 #endif 
    353335}; 
    354336typedef struct yyParser yyParser; 
     
    439421 /*  16 */ "env_combine_source ::= TEXTURE|CONST|PRIMARY|PREVIOUS", 
    440422 /*  17 */ "env_combine_scale ::= NUMBER NUMBER", 
    441  /*  18 */ "env_combine_op ::= COLOR|INVCOLOR|ALPHA|INVALPHA", 
    442  /*  19 */ "env_scale ::= SCALE env_combine_scale", 
    443  /*  20 */ "env_src ::= SRC NUMBER env_combine_source env_combine_op env_combine_source env_combine_op", 
    444  /*  21 */ "env_mode ::= MODE env_combine_mode env_combine_mode", 
    445  /*  22 */ "env_cmd ::= env_mode", 
    446  /*  23 */ "env_cmd ::= env_mode env_src", 
    447  /*  24 */ "env_cmd ::= env_mode env_src env_src", 
    448  /*  25 */ "env_cmd ::= env_mode env_src env_src env_src", 
    449  /*  26 */ "env_cmd ::= env_mode env_scale", 
    450  /*  27 */ "env_cmd ::= env_mode env_src env_scale", 
    451  /*  28 */ "env_cmd ::= env_mode env_src env_src env_scale", 
    452  /*  29 */ "env_cmd ::= env_mode env_src env_src env_src env_scale", 
    453  /*  30 */ "stagecmd ::= ENV_COMBINE LT env_cmd GT", 
    454  /*  31 */ "shadercmd ::= QER_EDITORIMAGE STRING", 
    455  /*  32 */ "shadercmd ::= SURFACEPARM STRING", 
    456  /*  33 */ "shadercmd ::= Q3MAP_LIGHTIMAGE STRING", 
    457  /*  34 */ "shadercmd ::= Q3MAP_SURFACELIGHT NUMBER", 
    458  /*  35 */ "shadercmd ::= Q3MAP_BACKSHADER STRING", 
    459  /*  36 */ "shadercmd ::= CULL STRING", 
    460  /*  37 */ "shadercmd ::= QER_TRANS NUMBER", 
    461  /*  38 */ "shadercmd ::= SORT STRING|NUMBER", 
    462  /*  39 */ "shadercmd ::= Q3MAP_FORCEMETA", 
    463  /*  40 */ "shadercmd ::= QER_NOCARVE", 
    464  /*  41 */ "shadercmd ::= Q3MAP_TERRAIN", 
    465  /*  42 */ "shadercmd ::= DEFORMVERTEXES STRING NUMBER STRING NUMBER NUMBER NUMBER NUMBER", 
    466  /*  43 */ "shadercmd ::= DEFORMVERTEXES STRING NUMBER NUMBER NUMBER", 
    467  /*  44 */ "shadercmd ::= DEFORMVERTEXES STRING", 
    468  /*  45 */ "shadercmd ::= TESSSIZE NUMBER", 
    469  /*  46 */ "shadercmd ::= Q3MAP_GLOBALTEXTURE", 
    470  /*  47 */ "shadercmd ::= POLYGONOFFSET", 
    471  /*  48 */ "shadercmd ::= SKYPARMS STRING NUMBER STRING", 
    472  /*  49 */ "shadercmd ::= SKYPARMS STRING NUMBER STRING STRING LB NUMBER NUMBER NUMBER RB NUMBER NUMBER", 
    473  /*  50 */ "shadercmd ::= Q3MAP_SUNEXT NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER", 
    474  /*  51 */ "shadercmd ::= Q3MAP_LIGHTMAPFILTERRADIUS NUMBER NUMBER", 
    475  /*  52 */ "shadercmd ::= Q3MAP_NOFAST", 
    476  /*  53 */ "shadercmd ::= Q3MAP_DEVIANCE NUMBER", 
    477  /*  54 */ "shadercmd ::= Q3MAP_LIGHTSUBDIVIDE NUMBER", 
    478  /*  55 */ "shadercmd ::= SPECCONTROL NUMBER NUMBER NUMBER NUMBER", 
    479  /*  56 */ "shadercmd ::= Q3MAP_LIGHTRGB NUMBER NUMBER NUMBER", 
    480  /*  57 */ "shadercmd ::= CGFX STRING", 
    481  /*  58 */ "shadercmd ::= CGFXPARAM STRING STRING", 
    482  /*  59 */ "shadercmd ::= Q3MAP_SKYLIGHT NUMBER NUMBER", 
    483  /*  60 */ "shadercmd ::= PORTAL", 
    484  /*  61 */ "shadercmd ::= NOPICMIP", 
    485  /*  62 */ "shadercmd ::= NOMIPMAPS", 
    486  /*  63 */ "shadercmd ::= FOGPARMS LB NUMBER NUMBER NUMBER RB NUMBER", 
    487  /*  64 */ "shadercmd ::= SPECIAL STRING", 
    488  /*  65 */ "stagecmd ::= MAP STRING", 
    489  /*  66 */ "stagecmd ::= CLAMPMAP STRING", 
    490  /*  67 */ "stagecmd ::= NORMALMAP STRING", 
    491  /*  68 */ "stagecmd ::= NORMALMAP STRING NUMBER", 
    492  /*  69 */ "stagecmd ::= ANIMMAP NUMBER STRING", 
    493  /*  70 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING", 
    494  /*  71 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING", 
    495  /*  72 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING", 
    496  /*  73 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING", 
    497  /*  74 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING STRING", 
    498  /*  75 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING STRING STRING", 
    499  /*  76 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING STRING STRING STRING", 
    500  /*  77 */ "stagecmd ::= BLENDFUNC ADD|STRING", 
    501  /*  78 */ "stagecmd ::= BLENDFUNC ADD|STRING STRING", 
    502  /*  79 */ "stagecmd ::= RGBGEN CONST|STRING STRING NUMBER NUMBER NUMBER NUMBER", 
    503  /*  80 */ "stagecmd ::= RGBGEN CONST|STRING NUMBER NUMBER LB NUMBER NUMBER NUMBER RB", 
    504  /*  81 */ "stagecmd ::= RGBGEN CONST|STRING LB NUMBER NUMBER NUMBER RB", 
    505  /*  82 */ "stagecmd ::= RGBGEN CONST|STRING", 
    506  /*  83 */ "stagecmd ::= TCGEN STRING", 
    507  /*  84 */ "stagecmd ::= TCGEN STRING LB NUMBER NUMBER NUMBER RB LB NUMBER NUMBER NUMBER RB", 
    508  /*  85 */ "stagecmd ::= TCMOD STRING NUMBER", 
    509  /*  86 */ "stagecmd ::= TCMOD STRING NUMBER NUMBER", 
    510  /*  87 */ "stagecmd ::= TCMOD STRING NUMBER NUMBER NUMBER NUMBER", 
    511  /*  88 */ "stagecmd ::= TCMOD STRING STRING NUMBER NUMBER NUMBER NUMBER", 
    512  /*  89 */ "stagecmd ::= TCMOD STRING NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER", 
    513  /*  90 */ "stagecmd ::= DEPTHWRITE", 
    514  /*  91 */ "stagecmd ::= ALPHAFUNC STRING", 
    515  /*  92 */ "stagecmd ::= WRAP STRING STRING", 
    516  /*  93 */ "stagecmd ::= ENV_MODULATE", 
    517  /*  94 */ "stagecmd ::= ENV_REPLACE", 
    518  /*  95 */ "stagecmd ::= LINEWIDTH NUMBER", 
    519  /*  96 */ "stagecmd ::= ALPHAGEN CONST|PORTAL|STRING", 
    520  /*  97 */ "stagecmd ::= ALPHAGEN CONST|PORTAL|STRING NUMBER", 
    521  /*  98 */ "stagecmd ::= ALPHAGEN CONST|PORTAL|STRING STRING NUMBER NUMBER NUMBER NUMBER", 
    522  /*  99 */ "stagecmd ::= ALPHAGEN CONST|PORTAL|STRING NUMBER NUMBER STRING", 
    523  /* 100 */ "stagecmd ::= SPECCONTROL NUMBER NUMBER NUMBER NUMBER", 
     423 /*  18 */ "env_combine_scale ::= NUMBER", 
     424 /*  19 */ "env_combine_op ::= COLOR|INVCOLOR|ALPHA|INVALPHA", 
     425 /*  20 */ "env_scale ::= SCALE env_combine_scale", 
     426 /*  21 */ "env_src ::= SRC NUMBER env_combine_source env_combine_op env_combine_source env_combine_op", 
     427 /*  22 */ "env_mode ::= MODE env_combine_mode env_combine_mode", 
     428 /*  23 */ "env_cmd ::= env_mode", 
     429 /*  24 */ "env_cmd ::= env_mode env_src", 
     430 /*  25 */ "env_cmd ::= env_mode env_src env_src", 
     431 /*  26 */ "env_cmd ::= env_mode env_src env_src env_src", 
     432 /*  27 */ "env_cmd ::= env_mode env_scale", 
     433 /*  28 */ "env_cmd ::= env_mode env_src env_scale", 
     434 /*  29 */ "env_cmd ::= env_mode env_src env_src env_scale", 
     435 /*  30 */ "env_cmd ::= env_mode env_src env_src env_src env_scale", 
     436 /*  31 */ "stagecmd ::= ENV_COMBINE LT env_cmd GT", 
     437 /*  32 */ "shadercmd ::= QER_EDITORIMAGE STRING", 
     438 /*  33 */ "shadercmd ::= SURFACEPARM STRING", 
     439 /*  34 */ "shadercmd ::= Q3MAP_LIGHTIMAGE STRING", 
     440 /*  35 */ "shadercmd ::= Q3MAP_SURFACELIGHT NUMBER", 
     441 /*  36 */ "shadercmd ::= Q3MAP_BACKSHADER STRING", 
     442 /*  37 */ "shadercmd ::= CULL STRING", 
     443 /*  38 */ "shadercmd ::= QER_TRANS NUMBER", 
     444 /*  39 */ "shadercmd ::= SORT STRING|NUMBER", 
     445 /*  40 */ "shadercmd ::= Q3MAP_FORCEMETA", 
     446 /*  41 */ "shadercmd ::= QER_NOCARVE", 
     447 /*  42 */ "shadercmd ::= Q3MAP_TERRAIN", 
     448 /*  43 */ "shadercmd ::= DEFORMVERTEXES STRING NUMBER STRING NUMBER NUMBER NUMBER NUMBER", 
     449 /*  44 */ "shadercmd ::= DEFORMVERTEXES STRING NUMBER NUMBER NUMBER", 
     450 /*  45 */ "shadercmd ::= DEFORMVERTEXES STRING", 
     451 /*  46 */ "shadercmd ::= TESSSIZE NUMBER", 
     452 /*  47 */ "shadercmd ::= Q3MAP_GLOBALTEXTURE", 
     453 /*  48 */ "shadercmd ::= POLYGONOFFSET", 
     454 /*  49 */ "shadercmd ::= SKYPARMS STRING NUMBER STRING", 
     455 /*  50 */ "shadercmd ::= SKYPARMS STRING NUMBER STRING STRING LB NUMBER NUMBER NUMBER RB NUMBER NUMBER", 
     456 /*  51 */ "shadercmd ::= Q3MAP_SUNEXT NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER", 
     457 /*  52 */ "shadercmd ::= Q3MAP_LIGHTMAPFILTERRADIUS NUMBER NUMBER", 
     458 /*  53 */ "shadercmd ::= Q3MAP_NOFAST", 
     459 /*  54 */ "shadercmd ::= Q3MAP_DEVIANCE NUMBER", 
     460 /*  55 */ "shadercmd ::= Q3MAP_LIGHTSUBDIVIDE NUMBER", 
     461 /*  56 */ "shadercmd ::= SPECCONTROL NUMBER NUMBER NUMBER NUMBER", 
     462 /*  57 */ "shadercmd ::= Q3MAP_LIGHTRGB NUMBER NUMBER NUMBER", 
     463 /*  58 */ "shadercmd ::= CGFX STRING", 
     464 /*  59 */ "shadercmd ::= CGFXPARAM STRING STRING", 
     465 /*  60 */ "shadercmd ::= Q3MAP_SKYLIGHT NUMBER NUMBER", 
     466 /*  61 */ "shadercmd ::= PORTAL", 
     467 /*  62 */ "shadercmd ::= NOPICMIP", 
     468 /*  63 */ "shadercmd ::= NOMIPMAPS", 
     469 /*  64 */ "shadercmd ::= FOGPARMS LB NUMBER NUMBER NUMBER RB NUMBER", 
     470 /*  65 */ "shadercmd ::= SPECIAL STRING", 
     471 /*  66 */ "stagecmd ::= MAP STRING", 
     472 /*  67 */ "stagecmd ::= CLAMPMAP STRING", 
     473 /*  68 */ "stagecmd ::= NORMALMAP STRING", 
     474 /*  69 */ "stagecmd ::= NORMALMAP STRING NUMBER", 
     475 /*  70 */ "stagecmd ::= ANIMMAP NUMBER STRING", 
     476 /*  71 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING", 
     477 /*  72 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING", 
     478 /*  73 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING", 
     479 /*  74 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING", 
     480 /*  75 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING STRING", 
     481 /*  76 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING STRING STRING", 
     482 /*  77 */ "stagecmd ::= ANIMMAP NUMBER STRING STRING STRING STRING STRING STRING STRING STRING", 
     483 /*  78 */ "stagecmd ::= BLENDFUNC ADD|STRING", 
     484 /*  79 */ "stagecmd ::= BLENDFUNC ADD|STRING STRING", 
     485 /*  80 */ "stagecmd ::= RGBGEN CONST|STRING STRING NUMBER NUMBER NUMBER NUMBER", 
     486 /*  81 */ "stagecmd ::= RGBGEN CONST|STRING NUMBER NUMBER LB NUMBER NUMBER NUMBER RB", 
     487 /*  82 */ "stagecmd ::= RGBGEN CONST|STRING LB NUMBER NUMBER NUMBER RB", 
     488 /*  83 */ "stagecmd ::= RGBGEN CONST|STRING", 
     489 /*  84 */ "stagecmd ::= TCGEN STRING", 
     490 /*  85 */ "stagecmd ::= TCGEN STRING LB NUMBER NUMBER NUMBER RB LB NUMBER NUMBER NUMBER RB", 
     491 /*  86 */ "stagecmd ::= TCMOD SCALE|STRING NUMBER", 
     492 /*  87 */ "stagecmd ::= TCMOD SCALE|STRING NUMBER NUMBER", 
     493 /*  88 */ "stagecmd ::= TCMOD SCALE|STRING NUMBER NUMBER NUMBER NUMBER", 
     494 /*  89 */ "st