aseFile.lex.cpp

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////////////
00002 //    Scorched3D (c) 2000-2009
00003 //
00004 //    This file is part of Scorched3D.
00005 //
00006 //    Scorched3D is free software; you can redistribute it and/or modify
00007 //    it under the terms of the GNU General Public License as published by
00008 //    the Free Software Foundation; either version 2 of the License, or
00009 //    (at your option) any later version.
00010 //
00011 //    Scorched3D is distributed in the hope that it will be useful,
00012 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //    GNU General Public License for more details.
00015 //
00016 //    You should have received a copy of the GNU General Public License
00017 //    along with Scorched3D; if not, write to the Free Software
00018 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 ////////////////////////////////////////////////////////////////////////////////
00020 
00021 
00022 #define yy_create_buffer ase_create_buffer
00023 #define yy_delete_buffer ase_delete_buffer
00024 #define yy_scan_buffer ase_scan_buffer
00025 #define yy_scan_string ase_scan_string
00026 #define yy_scan_bytes ase_scan_bytes
00027 #define yy_flex_debug ase_flex_debug
00028 #define yy_init_buffer ase_init_buffer
00029 #define yy_flush_buffer ase_flush_buffer
00030 #define yy_load_buffer_state ase_load_buffer_state
00031 #define yy_switch_to_buffer ase_switch_to_buffer
00032 #define yyin asein
00033 #define yyleng aseleng
00034 #define yylex aselex
00035 #define yyout aseout
00036 #define yyrestart aserestart
00037 #define yytext asetext
00038 #define yywrap asewrap
00039 
00040 /* A lexical scanner generated by flex */
00041 
00042 /* Scanner skeleton version:
00043  * $Header: /cvsroot/scorched3d/scorched/src/3dsparse/aseFile.lex.cpp,v 1.3 2006/02/13 14:17:11 scara Exp $
00044  */
00045 
00046 #define FLEX_SCANNER
00047 #define YY_FLEX_MAJOR_VERSION 2
00048 #define YY_FLEX_MINOR_VERSION 5
00049 
00050 #include <stdio.h>
00051 #include <common/DefinesString.h>
00052 
00053 
00054 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
00055 #ifdef c_plusplus
00056 #ifndef __cplusplus
00057 #define __cplusplus
00058 #endif
00059 #endif
00060 
00061 
00062 #ifdef __cplusplus
00063 
00064 #include <stdlib.h>
00065 /*#include <unistd.h>*/
00066 
00067 /* Use prototypes in function declarations. */
00068 #define YY_USE_PROTOS
00069 
00070 /* The "const" storage-class-modifier is valid. */
00071 #define YY_USE_CONST
00072 
00073 #else   /* ! __cplusplus */
00074 
00075 #if __STDC__
00076 
00077 #define YY_USE_PROTOS
00078 #define YY_USE_CONST
00079 
00080 #endif  /* __STDC__ */
00081 #endif  /* ! __cplusplus */
00082 
00083 #ifdef __TURBOC__
00084  #pragma warn -rch
00085  #pragma warn -use
00086 #include <io.h>
00087 #include <stdlib.h>
00088 #define YY_USE_CONST
00089 #define YY_USE_PROTOS
00090 #endif
00091 
00092 #ifdef YY_USE_CONST
00093 #define yyconst const
00094 #else
00095 #define yyconst
00096 #endif
00097 
00098 
00099 #ifdef YY_USE_PROTOS
00100 #define YY_PROTO(proto) proto
00101 #else
00102 #define YY_PROTO(proto) ()
00103 #endif
00104 
00105 /* Returned upon end-of-file. */
00106 #define YY_NULL 0
00107 
00108 /* Promotes a possibly negative, possibly signed char to an unsigned
00109  * integer for use as an array index.  If the signed char is negative,
00110  * we want to instead treat it as an 8-bit unsigned char, hence the
00111  * double cast.
00112  */
00113 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00114 
00115 /* Enter a start condition.  This macro really ought to take a parameter,
00116  * but we do it the disgusting crufty way forced on us by the ()-less
00117  * definition of BEGIN.
00118  */
00119 #define BEGIN yy_start = 1 + 2 *
00120 
00121 /* Translate the current start state into a value that can be later handed
00122  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00123  * compatibility.
00124  */
00125 #define YY_START ((yy_start - 1) / 2)
00126 #define YYSTATE YY_START
00127 
00128 /* Action number for EOF rule of a given start state. */
00129 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00130 
00131 /* Special action meaning "start processing a new file". */
00132 #define YY_NEW_FILE yyrestart( yyin )
00133 
00134 #define YY_END_OF_BUFFER_CHAR 0
00135 
00136 /* Size of default input buffer. */
00137 #define YY_BUF_SIZE 16384
00138 
00139 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00140 
00141 extern int yyleng;
00142 extern FILE *yyin, *yyout;
00143 
00144 #define EOB_ACT_CONTINUE_SCAN 0
00145 #define EOB_ACT_END_OF_FILE 1
00146 #define EOB_ACT_LAST_MATCH 2
00147 
00148 /* The funky do-while in the following #define is used to turn the definition
00149  * int a single C statement (which needs a semi-colon terminator).  This
00150  * avoids problems with code like:
00151  *
00152  *      if ( condition_holds )
00153  *              yyless( 5 );
00154  *      else
00155  *              do_something_else();
00156  *
00157  * Prior to using the do-while the compiler would get upset at the
00158  * "else" because it interpreted the "if" statement as being all
00159  * done when it reached the ';' after the yyless() call.
00160  */
00161 
00162 /* Return all but the first 'n' matched characters back to the input stream. */
00163 
00164 #define yyless(n) \
00165         do \
00166                 { \
00167                 /* Undo effects of setting up yytext. */ \
00168                 *yy_cp = yy_hold_char; \
00169                 YY_RESTORE_YY_MORE_OFFSET \
00170                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
00171                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00172                 } \
00173         while ( 0 )
00174 
00175 #define unput(c) yyunput( c, yytext_ptr )
00176 
00177 /* The following is because we cannot portably get our hands on size_t
00178  * (without autoconf's help, which isn't available because we want
00179  * flex-generated scanners to compile on their own).
00180  */
00181 typedef unsigned int yy_size_t;
00182 
00183 
00184 struct yy_buffer_state
00185         {
00186         FILE *yy_input_file;
00187 
00188         char *yy_ch_buf;                /* input buffer */
00189         char *yy_buf_pos;               /* current position in input buffer */
00190 
00191         /* Size of input buffer in bytes, not including room for EOB
00192          * characters.
00193          */
00194         yy_size_t yy_buf_size;
00195 
00196         /* Number of characters read into yy_ch_buf, not including EOB
00197          * characters.
00198          */
00199         int yy_n_chars;
00200 
00201         /* Whether we "own" the buffer - i.e., we know we created it,
00202          * and can realloc() it to grow it, and should free() it to
00203          * delete it.
00204          */
00205         int yy_is_our_buffer;
00206 
00207         /* Whether this is an "interactive" input source; if so, and
00208          * if we're using stdio for input, then we want to use getc()
00209          * instead of fread(), to make sure we stop fetching input after
00210          * each newline.
00211          */
00212         int yy_is_interactive;
00213 
00214         /* Whether we're considered to be at the beginning of a line.
00215          * If so, '^' rules will be active on the next match, otherwise
00216          * not.
00217          */
00218         int yy_at_bol;
00219 
00220         /* Whether to try to fill the input buffer when we reach the
00221          * end of it.
00222          */
00223         int yy_fill_buffer;
00224 
00225         int yy_buffer_status;
00226 #define YY_BUFFER_NEW 0
00227 #define YY_BUFFER_NORMAL 1
00228         /* When an EOF's been seen but there's still some text to process
00229          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00230          * shouldn't try reading from the input source any more.  We might
00231          * still have a bunch of tokens to match, though, because of
00232          * possible backing-up.
00233          *
00234          * When we actually see the EOF, we change the status to "new"
00235          * (via yyrestart()), so that the user can continue scanning by
00236          * just pointing yyin at a new input file.
00237          */
00238 #define YY_BUFFER_EOF_PENDING 2
00239         };
00240 
00241 static YY_BUFFER_STATE yy_current_buffer = 0;
00242 
00243 /* We provide macros for accessing buffer states in case in the
00244  * future we want to put the buffer states in a more general
00245  * "scanner state".
00246  */
00247 #define YY_CURRENT_BUFFER yy_current_buffer
00248 
00249 
00250 /* yy_hold_char holds the character lost when yytext is formed. */
00251 static char yy_hold_char;
00252 
00253 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00254 
00255 
00256 int yyleng;
00257 
00258 /* Points to current character in buffer. */
00259 static char *yy_c_buf_p = (char *) 0;
00260 static int yy_init = 1;         /* whether we need to initialize */
00261 static int yy_start = 0;        /* start state number */
00262 
00263 /* Flag which is used to allow yywrap()'s to do buffer switches
00264  * instead of setting up a fresh yyin.  A bit of a hack ...
00265  */
00266 static int yy_did_buffer_switch_on_eof;
00267 
00268 void yyrestart YY_PROTO(( FILE *input_file ));
00269 
00270 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
00271 void yy_load_buffer_state YY_PROTO(( void ));
00272 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
00273 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00274 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
00275 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00276 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
00277 
00278 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
00279 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
00280 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
00281 
00282 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
00283 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
00284 static void yy_flex_free YY_PROTO(( void * ));
00285 
00286 #define yy_new_buffer yy_create_buffer
00287 
00288 #define yy_set_interactive(is_interactive) \
00289         { \
00290         if ( ! yy_current_buffer ) \
00291                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00292         yy_current_buffer->yy_is_interactive = is_interactive; \
00293         }
00294 
00295 #define yy_set_bol(at_bol) \
00296         { \
00297         if ( ! yy_current_buffer ) \
00298                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00299         yy_current_buffer->yy_at_bol = at_bol; \
00300         }
00301 
00302 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
00303 
00304 typedef unsigned char YY_CHAR;
00305 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00306 typedef int yy_state_type;
00307 extern char *yytext;
00308 #define yytext_ptr yytext
00309 
00310 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
00311 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
00312 static int yy_get_next_buffer YY_PROTO(( void ));
00313 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
00314 
00315 /* Done after the current pattern has been matched and before the
00316  * corresponding action - sets up yytext.
00317  */
00318 #define YY_DO_BEFORE_ACTION \
00319         yytext_ptr = yy_bp; \
00320         yyleng = (int) (yy_cp - yy_bp); \
00321         yy_hold_char = *yy_cp; \
00322         *yy_cp = '\0'; \
00323         yy_c_buf_p = yy_cp;
00324 
00325 #define YY_NUM_RULES 56
00326 #define YY_END_OF_BUFFER 57
00327 static yyconst short int yy_accept[360] =
00328     {   0,
00329         0,    0,   57,   56,    3,    1,   56,    2,   56,    5,
00330         5,   47,   56,   56,   56,   56,   56,   56,   56,   56,
00331        56,   56,    8,    7,    3,    0,    6,    0,    0,    0,
00332         5,   47,    0,    0,    0,    0,    0,    0,    0,    0,
00333         0,    0,    0,    0,    0,    0,    4,    0,    0,    0,
00334         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00335         0,    0,    0,    0,   37,    0,    0,    0,    0,    0,
00336         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00337         0,   18,    0,    0,    0,    0,    0,    0,    0,    0,
00338         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00339 
00340         0,    0,    0,    0,   31,    0,    0,    0,    0,    0,
00341        10,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00342         0,   23,    0,    0,    0,    0,    0,    0,    0,    0,
00343         0,    0,   27,   28,   29,   30,    0,    0,    0,    0,
00344         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00345         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00346         0,   34,    0,    0,    0,    0,    0,    0,    0,   44,
00347         0,    0,    0,    0,    0,    0,    0,   22,    0,    0,
00348         0,    0,    0,    0,    0,    0,    0,    0,   38,    0,
00349         0,    0,    0,    0,   21,    0,    0,    0,    0,    0,
00350 
00351         0,    0,   46,    0,    0,    0,    0,    0,    0,    0,
00352         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00353        32,    0,    0,    0,   24,   25,   26,    0,    0,    0,
00354         0,    0,    0,    0,    0,    0,   42,    0,    0,    0,
00355         0,    0,    0,    0,    0,    0,    0,   33,   35,    0,
00356         0,    0,    0,    0,    0,   49,    0,    0,    0,    0,
00357         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00358         0,    0,    0,    0,    0,    0,   19,    0,    0,   40,
00359         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00360         0,    0,    0,    0,    0,    0,    0,    0,   20,    0,
00361 
00362        43,    0,   39,   45,    0,    0,    0,    0,    0,    0,
00363         0,   11,    0,    0,    0,    0,   36,    0,    0,   50,
00364        48,    0,    0,   53,   52,   54,    0,    0,    0,    0,
00365        13,    0,   55,    0,    0,   41,    0,    0,   12,   14,
00366         0,    0,   51,    0,    0,    0,    9,    0,    0,    0,
00367         0,    0,   15,   17,    0,    0,    0,   16,    0
00368     } ;
00369 
00370 static yyconst int yy_ec[256] =
00371     {   0,
00372         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00373         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00374         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00375         1,    2,    1,    4,    1,    1,    1,    1,    1,    1,
00376         1,    5,    1,    1,    6,    7,    1,    8,    9,   10,
00377        11,   12,   12,   12,   12,   12,   12,   13,    1,    1,
00378         1,    1,    1,    1,   14,   15,   16,   17,   18,   19,
00379        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
00380         1,   30,   31,   32,   33,   34,   35,   36,    1,    1,
00381         1,    1,    1,    1,   37,    1,    1,    1,    1,    1,
00382 
00383         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00384         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00385         1,    1,   38,    1,   39,    1,    1,    1,    1,    1,
00386         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00387         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00388         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00389         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00390         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00391         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00392         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00393 
00394         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00395         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00396         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00397         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00398         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00399         1,    1,    1,    1,    1
00400     } ;
00401 
00402 static yyconst int yy_meta[40] =
00403     {   0,
00404         1,    1,    2,    1,    1,    3,    4,    5,    5,    5,
00405         5,    5,    4,    1,    1,    1,    1,    1,    1,    1,
00406         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00407         1,    1,    1,    1,    1,    1,    1,    1,    1
00408     } ;
00409 
00410 static yyconst short int yy_base[363] =
00411     {   0,
00412         0,    0,  407,  408,  404,  408,  401,  408,  398,   33,
00413        34,  408,   44,  375,  384,  374,   30,  372,  369,  382,
00414        23,  375,  408,  408,  394,  391,  390,  387,   36,   53,
00415       375,  408,  360,   52,    0,  364,  361,  367,  355,  355,
00416       368,  356,  365,  356,  344,  350,   61,  353,  352,  351,
00417       358,  357,  353,  355,  343,  344,  352,   45,  351,  354,
00418       349,  338,  335,  334,  326,  325,  324,  342,  325,  330,
00419       329,  340,  336,  318,  326,  337,  329,  328,   58,   51,
00420        64,  312,  334,  316,   47,  332,  315,  307,  311,  319,
00421       309,  326,  325,  306,   53,  311,  318,  321,  308,  319,
00422 
00423       304,  313,   81,  305,  408,  315,   93,  303,  313,  312,
00424       408,  307,  287,  298,  306,  296,  290,  293,  290,  287,
00425       290,  408,  284,  282,  297,  286,  297,   69,  296,  287,
00426       275,   61,  408,  408,  408,  408,  289,  280,  274,  288,
00427        78,  266,  284,  279,  274,   86,  271,  266,  279,  264,
00428       273,  260,  278,  276,   68,  277,  259,  273,  270,  267,
00429       264,  271,  266,  267,  250,  253,  252,  263,   94,   84,
00430       261,  263,  262,  241,  256,  241,  254,  408,  240,  242,
00431       238,  246,  243,  248,  234,  238,  231,  238,  408,  236,
00432       229,  223,  221,  235,  408,  225,  223,  229,  225,  230,
00433 
00434       223,  225,  408,  224,  232,  229,  216,  224,  208,  222,
00435       215,  220,  222,  219,  211,  205,  218,  216,  203,  215,
00436       408,  210,  215,  208,  408,  408,  408,  196,  197,  197,
00437       204,  194,  206,  193,  190,  199,   85,  206,  204,  204,
00438       190,  186,  201,  195,  182,  182,  182,  408,  179,  181,
00439       190,  180,  174,  179,  173,  408,  172,  170,  183,  173,
00440       171,  173,  180,  171,  178,  162,  165,  166,  161,  161,
00441       175,  170,  173,  161,  149,  152,  408,  169,  150,  408,
00442       163,  144,  159,  148,  155,  148,  142,  146,  136,  139,
00443       153,  156,  151,  142,  137,  139,  137,  135,  408,  138,
00444 
00445       408,  126,  408,  408,  135,  129,  124,  128,  122,  125,
00446       128,  408,  128,  135,  134,  132,  408,  120,  121,  408,
00447       408,  134,  115,  408,  408,  408,  114,  128,  126,  126,
00448       408,  112,  408,  111,  115,  408,  125,  101,  408,  408,
00449       123,  104,  408,  103,  103,  107,  408,  107,   92,   99,
00450       100,  101,  408,  408,   82,   65,   34,  408,  408,  122,
00451       125,  127
00452     } ;
00453 
00454 static yyconst short int yy_def[363] =
00455     {   0,
00456       359,    1,  359,  359,  359,  359,  360,  359,  361,  362,
00457       362,  359,  359,   13,  359,  359,  359,  359,  359,  359,
00458       359,  359,  359,  359,  359,  360,  360,  361,  361,  359,
00459        11,  359,  359,   13,   13,  359,  359,  359,  359,  359,
00460       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00461       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00462       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00463       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00464       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00465       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00466 
00467       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00468       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00469       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00470       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00471       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00472       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00473       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00474       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00475       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00476       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00477 
00478       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00479       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00480       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00481       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00482       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00483       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00484       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00485       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00486       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00487       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00488 
00489       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00490       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00491       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00492       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00493       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00494       359,  359,  359,  359,  359,  359,  359,  359,    0,  359,
00495       359,  359
00496     } ;
00497 
00498 static yyconst short int yy_nxt[448] =
00499     {   0,
00500         4,    5,    6,    7,    8,    9,    4,   10,   10,   10,
00501        11,   10,   12,   13,   13,   14,    4,    4,    4,   15,
00502         4,   16,    4,    4,    4,   17,   18,    4,   19,    4,
00503        20,   21,    4,    4,   22,    4,    4,   23,   24,   30,
00504        30,  359,   30,   39,   44,   32,   32,   40,   45,  358,
00505        33,   34,   34,   34,   34,   34,   32,   35,   35,   35,
00506        47,   47,   47,   47,   47,  359,  359,  359,   47,   47,
00507        47,   47,   47,   70,   71,   72,   93,   98,  106,  100,
00508       117,  107,   99,   94,   95,  118,  357,  160,   96,  101,
00509       155,   97,  184,  102,  126,  127,  161,  185,  156,  128,
00510 
00511       133,  134,  135,  136,  173,  129,  166,  167,  168,  199,
00512       201,  261,  130,  356,  355,  354,  353,  174,  200,  175,
00513       202,  262,   26,  352,   26,   26,   26,   29,  351,   29,
00514        31,   31,  350,  349,  348,  347,  346,  345,  344,  343,
00515       342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
00516       332,  331,  330,  329,  328,  327,  326,  325,  324,  323,
00517       322,  321,  320,  319,  318,  317,  316,  315,  314,  313,
00518       312,  311,  310,  309,  308,  307,  306,  305,  304,  303,
00519       302,  301,  300,  299,  298,  297,  296,  295,  294,  293,
00520       292,  291,  290,  289,  288,  287,  286,  285,  284,  283,
00521 
00522       282,  281,  280,  279,  278,  277,  276,  275,  274,  273,
00523       272,  271,  270,  269,  268,  267,  266,  265,  264,  263,
00524       260,  259,  258,  257,  256,  255,  254,  253,  252,  251,
00525       250,  249,  248,  247,  246,  245,  244,  243,  242,  241,
00526       240,  239,  238,  237,  236,  235,  234,  233,  232,  231,
00527       230,  229,  228,  227,  226,  225,  224,  223,  222,  221,
00528       220,  219,  218,  217,  216,  215,  214,  213,  212,  211,
00529       210,  209,  208,  207,  206,  205,  204,  203,  198,  197,
00530       196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
00531       186,  183,  182,  181,  180,  179,  178,  177,  176,  172,
00532 
00533       171,  170,  169,  165,  164,  163,  162,  159,  158,  157,
00534       154,  153,  152,  151,  150,  149,  148,  147,  146,  145,
00535       144,  143,  142,  141,  140,  139,  138,  137,  132,  131,
00536       125,  124,  123,  122,  121,  120,  119,  116,  115,  114,
00537       113,  112,  111,  110,  109,  108,  105,  104,  103,   92,
00538        91,   90,   89,   88,   87,   86,   85,   84,   83,   82,
00539        81,   80,   79,   78,   77,   76,   75,   74,   73,   69,
00540        68,   67,   66,   65,   64,   63,   62,   61,   60,   59,
00541        58,   57,   56,   55,   54,   53,   52,   51,   50,   49,
00542        48,  359,   28,   27,   27,   25,   46,   43,   42,   41,
00543 
00544        38,   37,   36,   28,   27,   25,  359,    3,  359,  359,
00545       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00546       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00547       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00548       359,  359,  359,  359,  359,  359,  359
00549     } ;
00550 
00551 static yyconst short int yy_chk[448] =
00552     {   0,
00553         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00554         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00555         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00556         1,    1,    1,    1,    1,    1,    1,    1,    1,   10,
00557        11,   29,   29,   17,   21,   10,   11,   17,   21,  357,
00558        11,   13,   13,   13,   13,   13,   13,   13,   13,   13,
00559        30,   30,   30,   30,   30,   34,   34,   34,   47,   47,
00560        47,   47,   47,   58,   58,   58,   79,   80,   85,   81,
00561        95,   85,   80,   79,   79,   95,  356,  132,   79,   81,
00562       128,   79,  155,   81,  103,  103,  132,  155,  128,  103,
00563 
00564       107,  107,  107,  107,  146,  103,  141,  141,  141,  169,
00565       170,  237,  103,  355,  352,  351,  350,  146,  169,  146,
00566       170,  237,  360,  349,  360,  360,  360,  361,  348,  361,
00567       362,  362,  346,  345,  344,  342,  341,  338,  337,  335,
00568       334,  332,  330,  329,  328,  327,  323,  322,  319,  318,
00569       316,  315,  314,  313,  311,  310,  309,  308,  307,  306,
00570       305,  302,  300,  298,  297,  296,  295,  294,  293,  292,
00571       291,  290,  289,  288,  287,  286,  285,  284,  283,  282,
00572       281,  279,  278,  276,  275,  274,  273,  272,  271,  270,
00573       269,  268,  267,  266,  265,  264,  263,  262,  261,  260,
00574 
00575       259,  258,  257,  255,  254,  253,  252,  251,  250,  249,
00576       247,  246,  245,  244,  243,  242,  241,  240,  239,  238,
00577       236,  235,  234,  233,  232,  231,  230,  229,  228,  224,
00578       223,  222,  220,  219,  218,  217,  216,  215,  214,  213,
00579       212,  211,  210,  209,  208,  207,  206,  205,  204,  202,
00580       201,  200,  199,  198,  197,  196,  194,  193,  192,  191,
00581       190,  188,  187,  186,  185,  184,  183,  182,  181,  180,
00582       179,  177,  176,  175,  174,  173,  172,  171,  168,  167,
00583       166,  165,  164,  163,  162,  161,  160,  159,  158,  157,
00584       156,  154,  153,  152,  151,  150,  149,  148,  147,  145,
00585 
00586       144,  143,  142,  140,  139,  138,  137,  131,  130,  129,
00587       127,  126,  125,  124,  123,  121,  120,  119,  118,  117,
00588       116,  115,  114,  113,  112,  110,  109,  108,  106,  104,
00589       102,  101,  100,   99,   98,   97,   96,   94,   93,   92,
00590        91,   90,   89,   88,   87,   86,   84,   83,   82,   78,
00591        77,   76,   75,   74,   73,   72,   71,   70,   69,   68,
00592        67,   66,   65,   64,   63,   62,   61,   60,   59,   57,
00593        56,   55,   54,   53,   52,   51,   50,   49,   48,   46,
00594        45,   44,   43,   42,   41,   40,   39,   38,   37,   36,
00595        33,   31,   28,   27,   26,   25,   22,   20,   19,   18,
00596 
00597        16,   15,   14,    9,    7,    5,    3,  359,  359,  359,
00598       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00599       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00600       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
00601       359,  359,  359,  359,  359,  359,  359
00602     } ;
00603 
00604 static yy_state_type yy_last_accepting_state;
00605 static char *yy_last_accepting_cpos;
00606 
00607 /* The intent behind this definition is that it'll catch
00608  * any uses of REJECT which flex missed.
00609  */
00610 #define REJECT reject_used_but_not_detected
00611 #define yymore() yymore_used_but_not_detected
00612 #define YY_MORE_ADJ 0
00613 #define YY_RESTORE_YY_MORE_OFFSET
00614 char *yytext;
00615 #define INITIAL 0
00616 
00617 #include <string.h>
00618 #include <common/Vector.h>
00619 #include <3dsparse/aseFile.tab.cpp.h>
00620 
00621 Vector aseVector;
00622 
00623 int aselineno = 1;
00624 char aseString[1024];
00625 float aseFloat = 0.0f;
00626 int aseDigit = 0;
00627 
00628 /* Macros after this point can all be overridden by user definitions in
00629  * section 1.
00630  */
00631 
00632 #ifndef YY_SKIP_YYWRAP
00633 #ifdef __cplusplus
00634 extern "C" int yywrap YY_PROTO(( void ));
00635 #else
00636 extern int yywrap YY_PROTO(( void ));
00637 #endif
00638 #endif
00639 
00640 #ifndef YY_NO_UNPUT
00641 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
00642 #endif
00643 
00644 #ifndef yytext_ptr
00645 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
00646 #endif
00647 
00648 #ifdef YY_NEED_STRLEN
00649 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
00650 #endif
00651 
00652 #ifndef YY_NO_INPUT
00653 #ifdef __cplusplus
00654 static int yyinput YY_PROTO(( void ));
00655 #else
00656 static int input YY_PROTO(( void ));
00657 #endif
00658 #endif
00659 
00660 #if YY_STACK_USED
00661 static int yy_start_stack_ptr = 0;
00662 static int yy_start_stack_depth = 0;
00663 static int *yy_start_stack = 0;
00664 #ifndef YY_NO_PUSH_STATE
00665 static void yy_push_state YY_PROTO(( int new_state ));
00666 #endif
00667 #ifndef YY_NO_POP_STATE
00668 static void yy_pop_state YY_PROTO(( void ));
00669 #endif
00670 #ifndef YY_NO_TOP_STATE
00671 static int yy_top_state YY_PROTO(( void ));
00672 #endif
00673 
00674 #else
00675 #define YY_NO_PUSH_STATE 1
00676 #define YY_NO_POP_STATE 1
00677 #define YY_NO_TOP_STATE 1
00678 #endif
00679 
00680 #ifdef YY_MALLOC_DECL
00681 YY_MALLOC_DECL
00682 #else
00683 #if __STDC__
00684 #ifndef __cplusplus
00685 #include <stdlib.h>
00686 #endif
00687 #else
00688 /* Just try to get by without declaring the routines.  This will fail
00689  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
00690  * or sizeof(void*) != sizeof(int).
00691  */
00692 #endif
00693 #endif
00694 
00695 /* Amount of stuff to slurp up with each read. */
00696 #ifndef YY_READ_BUF_SIZE
00697 #define YY_READ_BUF_SIZE 8192
00698 #endif
00699 
00700 /* Copy whatever the last rule matched to the standard output. */
00701 
00702 #ifndef ECHO
00703 /* This used to be an fputs(), but since the string might contain NUL's,
00704  * we now use fwrite().
00705  */
00706 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00707 #endif
00708 
00709 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00710  * is returned in "result".
00711  */
00712 #ifndef YY_INPUT
00713 #define YY_INPUT(buf,result,max_size) \
00714         if ( yy_current_buffer->yy_is_interactive ) \
00715                 { \
00716                 int c = '*', n; \
00717                 for ( n = 0; n < max_size && \
00718                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00719                         buf[n] = (char) c; \
00720                 if ( c == '\n' ) \
00721                         buf[n++] = (char) c; \
00722                 if ( c == EOF && ferror( yyin ) ) \
00723                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
00724                 result = n; \
00725                 } \
00726         else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
00727                   && ferror( yyin ) ) \
00728                 YY_FATAL_ERROR( "input in flex scanner failed" );
00729 #endif
00730 
00731 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00732  * we don't want an extra ';' after the "return" because that will cause
00733  * some compilers to complain about unreachable statements.
00734  */
00735 #ifndef yyterminate
00736 #define yyterminate() return YY_NULL
00737 #endif
00738 
00739 /* Number of entries by which start-condition stack grows. */
00740 #ifndef YY_START_STACK_INCR
00741 #define YY_START_STACK_INCR 25
00742 #endif
00743 
00744 /* Report a fatal error. */
00745 #ifndef YY_FATAL_ERROR
00746 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00747 #endif
00748 
00749 /* Default declaration of generated scanner - a define so the user can
00750  * easily add parameters.
00751  */
00752 #ifndef YY_DECL
00753 #define YY_DECL int yylex YY_PROTO(( void ))
00754 #endif
00755 
00756 /* Code executed at the beginning of each rule, after yytext and yyleng
00757  * have been set up.
00758  */
00759 #ifndef YY_USER_ACTION
00760 #define YY_USER_ACTION
00761 #endif
00762 
00763 /* Code executed at the end of each rule. */
00764 #ifndef YY_BREAK
00765 #define YY_BREAK break;
00766 #endif
00767 
00768 #define YY_RULE_SETUP \
00769         YY_USER_ACTION
00770 
00771 YY_DECL
00772         {
00773         register yy_state_type yy_current_state;
00774         register char *yy_cp, *yy_bp;
00775         register int yy_act;
00776 
00777         if ( yy_init )
00778                 {
00779                 yy_init = 0;
00780 
00781 #ifdef YY_USER_INIT
00782                 YY_USER_INIT;
00783 #endif
00784 
00785                 if ( ! yy_start )
00786                         yy_start = 1;   /* first start state */
00787 
00788                 if ( ! yyin )
00789                         yyin = stdin;
00790 
00791                 if ( ! yyout )
00792                         yyout = stdout;
00793 
00794                 if ( ! yy_current_buffer )
00795                         yy_current_buffer =
00796                                 yy_create_buffer( yyin, YY_BUF_SIZE );
00797 
00798                 yy_load_buffer_state();
00799                 }
00800 
00801         while ( 1 )             /* loops until end-of-file is reached */
00802                 {
00803                 yy_cp = yy_c_buf_p;
00804 
00805                 /* Support of yytext. */
00806                 *yy_cp = yy_hold_char;
00807 
00808                 /* yy_bp points to the position in yy_ch_buf of the start of
00809                  * the current run.
00810                  */
00811                 yy_bp = yy_cp;
00812 
00813                 yy_current_state = yy_start;
00814 yy_match:
00815                 do
00816                         {
00817                         register YY_CHAR yy_c = (YY_CHAR) yy_ec[YY_SC_TO_UI(*yy_cp)];
00818                         if ( yy_accept[yy_current_state] )
00819                                 {
00820                                 yy_last_accepting_state = yy_current_state;
00821                                 yy_last_accepting_cpos = yy_cp;
00822                                 }
00823                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00824                                 {
00825                                 yy_current_state = (int) yy_def[yy_current_state];
00826                                 if ( yy_current_state >= 360 )
00827                                         yy_c = (YY_CHAR) yy_meta[(unsigned int) yy_c];
00828                                 }
00829                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00830                         ++yy_cp;
00831                         }
00832                 while ( yy_current_state != 359 );
00833                 yy_cp = yy_last_accepting_cpos;
00834                 yy_current_state = yy_last_accepting_state;
00835 
00836 yy_find_action:
00837                 yy_act = yy_accept[yy_current_state];
00838 
00839                 YY_DO_BEFORE_ACTION;
00840 
00841 
00842 do_action:      /* This label is used only to access EOF actions. */
00843 
00844 
00845                 switch ( yy_act )
00846         { /* beginning of action switch */
00847                         case 0: /* must back up */
00848                         /* undo the effects of YY_DO_BEFORE_ACTION */
00849                         *yy_cp = yy_hold_char;
00850                         yy_cp = yy_last_accepting_cpos;
00851                         yy_current_state = yy_last_accepting_state;
00852                         goto yy_find_action;
00853 
00854 case 1:
00855 YY_RULE_SETUP
00856 { aselineno++; }
00857         YY_BREAK
00858 case 2:
00859 YY_RULE_SETUP
00860 /* empty */ ;
00861         YY_BREAK
00862 case 3:
00863 YY_RULE_SETUP
00864 /* empty */ ;
00865         YY_BREAK
00866 case 4:
00867 YY_RULE_SETUP
00868 { aseVector[0] = aseVector[1]; aseVector[1] = aseVector[2];
00869                                                   aseVector[2] = (float) atof(asetext); return MAX_FLOAT; }
00870         YY_BREAK
00871 case 5:
00872 YY_RULE_SETUP
00873 { aseDigit = atoi(asetext); return MAX_DIGIT; }
00874         YY_BREAK
00875 case 6:
00876 YY_RULE_SETUP
00877 { snprintf(aseString, sizeof(aseString), "%s", asetext ); return MAX_STRING; }
00878         YY_BREAK
00879 case 7:
00880 YY_RULE_SETUP
00881 { return MAX_RBRACKET; }
00882         YY_BREAK
00883 case 8:
00884 YY_RULE_SETUP
00885 { return MAX_LBRACKET; }
00886         YY_BREAK
00887 case 9:
00888 YY_RULE_SETUP
00889 { return MAX_ASCIIEXPORT_SYM; }
00890         YY_BREAK
00891 case 10:
00892 YY_RULE_SETUP
00893 { return MAX_COMMENT; }
00894         YY_BREAK
00895 case 11:
00896 YY_RULE_SETUP
00897 { return MAX_SCENE_TOKEN; }
00898         YY_BREAK
00899 case 12:
00900 YY_RULE_SETUP
00901 { return MAX_SCENE_TOKEN; }
00902         YY_BREAK
00903 case 13:
00904 YY_RULE_SETUP
00905 { return MAX_SCENE_TOKEN; }
00906         YY_BREAK
00907 case 14:
00908 YY_RULE_SETUP
00909 { return MAX_SCENE_TOKEN; }
00910         YY_BREAK
00911 case 15:
00912 YY_RULE_SETUP
00913 { return MAX_SCENE_TOKEN; }
00914         YY_BREAK
00915 case 16:
00916 YY_RULE_SETUP
00917 { return MAX_SCENE_TOKEN; }
00918         YY_BREAK
00919 case 17:
00920 YY_RULE_SETUP
00921 { return MAX_SCENE_TOKEN; }
00922         YY_BREAK
00923 case 18:
00924 YY_RULE_SETUP
00925 { return MAX_SCENE; }
00926         YY_BREAK
00927 case 19:
00928 YY_RULE_SETUP
00929 { return MAX_MATERIAL_LIST; }
00930         YY_BREAK
00931 case 20:
00932 YY_RULE_SETUP
00933 { return MAX_MATERIAL_LIST_TOKEN; }
00934         YY_BREAK
00935 case 21:
00936 YY_RULE_SETUP
00937 { return MAX_GEOMOBJECT; }
00938         YY_BREAK
00939 case 22:
00940 YY_RULE_SETUP
00941 { return MAX_NODE_NAME; }
00942         YY_BREAK
00943 case 23:
00944 YY_RULE_SETUP
00945 { return MAX_NODE_TM; }
00946         YY_BREAK
00947 case 24:
00948 YY_RULE_SETUP
00949 { return MAX_NODE_TM_TOKEN; }
00950         YY_BREAK
00951 case 25:
00952 YY_RULE_SETUP
00953 { return MAX_NODE_TM_TOKEN; }
00954         YY_BREAK
00955 case 26:
00956 YY_RULE_SETUP
00957 { return MAX_NODE_TM_TOKEN; }
00958         YY_BREAK
00959 case 27:
00960 YY_RULE_SETUP
00961 { return MAX_TM_ROW0; }
00962         YY_BREAK
00963 case 28:
00964 YY_RULE_SETUP
00965 { return MAX_TM_ROW1; }
00966         YY_BREAK
00967 case 29:
00968 YY_RULE_SETUP
00969 { return MAX_TM_ROW2; }
00970         YY_BREAK
00971 case 30:
00972 YY_RULE_SETUP
00973 { return MAX_TM_ROW3; }
00974         YY_BREAK
00975 case 31:
00976 YY_RULE_SETUP
00977 { return MAX_NODE_TM_TOKEN; }
00978         YY_BREAK
00979 case 32:
00980 YY_RULE_SETUP
00981 { return MAX_NODE_TM_TOKEN; }
00982         YY_BREAK
00983 case 33:
00984 YY_RULE_SETUP
00985 { return MAX_NODE_TM_TOKEN; }
00986         YY_BREAK
00987 case 34:
00988 YY_RULE_SETUP
00989 { return MAX_NODE_TM_TOKEN; }
00990         YY_BREAK
00991 case 35:
00992 YY_RULE_SETUP
00993 { return MAX_NODE_TM_TOKEN; }
00994         YY_BREAK
00995 case 36:
00996 YY_RULE_SETUP
00997 { return MAX_NODE_TM_TOKEN; }
00998         YY_BREAK
00999 case 37:
01000 YY_RULE_SETUP
01001 { return MAX_MESH; }
01002         YY_BREAK
01003 case 38:
01004 YY_RULE_SETUP
01005 { return MAX_TIMEVALUE; }
01006         YY_BREAK
01007 case 39:
01008 YY_RULE_SETUP
01009 { return MAX_MESH_NUMVERTEX; }
01010         YY_BREAK
01011 case 40:
01012 YY_RULE_SETUP
01013 { return MAX_MESH_NUMFACES; }
01014         YY_BREAK
01015 case 41:
01016 YY_RULE_SETUP
01017 { return MAX_MESH_VERTEX_LIST; }
01018         YY_BREAK
01019 case 42:
01020 YY_RULE_SETUP
01021 { return MAX_MESH_VERTEX; }
01022         YY_BREAK
01023 case 43:
01024 YY_RULE_SETUP
01025 { return MAX_MESH_FACE_LIST; }
01026         YY_BREAK
01027 case 44:
01028 YY_RULE_SETUP
01029 { return MAX_MESH_FACE; }
01030         YY_BREAK
01031 case 45:
01032 YY_RULE_SETUP
01033 { return MAX_MESH_SMOOTHING; }
01034         YY_BREAK
01035 case 46:
01036 YY_RULE_SETUP
01037 { return MAX_MESH_MTLID; }
01038         YY_BREAK
01039 case 47:
01040 YY_RULE_SETUP
01041 { return MAX_MESH_FACE_ID; }
01042         YY_BREAK
01043 case 48:
01044 YY_RULE_SETUP
01045 { return MAX_MESH_NUMTVERTEX; }
01046         YY_BREAK
01047 case 49:
01048 YY_RULE_SETUP
01049 { return MAX_MESH_NORMALS; }
01050         YY_BREAK
01051 case 50:
01052 YY_RULE_SETUP
01053 { return MAX_MESH_FACENORMAL; }
01054         YY_BREAK
01055 case 51:
01056 YY_RULE_SETUP
01057 { return MAX_MESH_VERTEXNORMAL; }
01058         YY_BREAK
01059 case 52:
01060 YY_RULE_SETUP
01061 { return MAX_PROP_MOTIONBLUR; }
01062         YY_BREAK
01063 case 53:
01064 YY_RULE_SETUP
01065 { return MAX_PROP_CASTSHADOW; }
01066         YY_BREAK
01067 case 54:
01068 YY_RULE_SETUP
01069 { return MAX_PROP_RECVSHADOW; }
01070         YY_BREAK
01071 case 55:
01072 YY_RULE_SETUP
01073 { return MAX_WIREFRAME_COLOR; }
01074         YY_BREAK
01075 case 56:
01076 YY_RULE_SETUP
01077 //ECHO;
01078         YY_BREAK
01079 case YY_STATE_EOF(INITIAL):
01080         yyterminate();
01081 
01082         case YY_END_OF_BUFFER:
01083                 {
01084                 /* Amount of text matched not including the EOB char. */
01085                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
01086 
01087                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
01088                 *yy_cp = yy_hold_char;
01089                 YY_RESTORE_YY_MORE_OFFSET
01090 
01091                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
01092                         {
01093                         /* We're scanning a new file or input source.  It's
01094                          * possible that this happened because the user
01095                          * just pointed yyin at a new source and called
01096                          * yylex().  If so, then we have to assure
01097                          * consistency between yy_current_buffer and our
01098                          * globals.  Here is the right place to do so, because
01099                          * this is the first action (other than possibly a
01100                          * back-up) that will match for the new input source.
01101                          */
01102                         yy_n_chars = yy_current_buffer->yy_n_chars;
01103                         yy_current_buffer->yy_input_file = yyin;
01104                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
01105                         }
01106 
01107                 /* Note that here we test for yy_c_buf_p "<=" to the position
01108                  * of the first EOB in the buffer, since yy_c_buf_p will
01109                  * already have been incremented past the NUL character
01110                  * (since all states make transitions on EOB to the
01111                  * end-of-buffer state).  Contrast this with the test
01112                  * in input().
01113                  */
01114                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01115                         { /* This was really a NUL. */
01116                         yy_state_type yy_next_state;
01117 
01118                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
01119 
01120                         yy_current_state = yy_get_previous_state();
01121 
01122                         /* Okay, we're now positioned to make the NUL
01123                          * transition.  We couldn't have
01124                          * yy_get_previous_state() go ahead and do it
01125                          * for us because it doesn't know how to deal
01126                          * with the possibility of jamming (and we don't
01127                          * want to build jamming into it because then it
01128                          * will run more slowly).
01129                          */
01130 
01131                         yy_next_state = yy_try_NUL_trans( yy_current_state );
01132 
01133                         yy_bp = yytext_ptr + YY_MORE_ADJ;
01134 
01135                         if ( yy_next_state )
01136                                 {
01137                                 /* Consume the NUL. */
01138                                 yy_cp = ++yy_c_buf_p;
01139                                 yy_current_state = yy_next_state;
01140                                 goto yy_match;
01141                                 }
01142 
01143                         else
01144                                 {
01145                                 yy_cp = yy_last_accepting_cpos;
01146                                 yy_current_state = yy_last_accepting_state;
01147                                 goto yy_find_action;
01148                                 }
01149                         }
01150 
01151                 else switch ( yy_get_next_buffer() )
01152                         {
01153                         case EOB_ACT_END_OF_FILE:
01154                                 {
01155                                 yy_did_buffer_switch_on_eof = 0;
01156 
01157                                 if ( yywrap() )
01158                                         {
01159                                         /* Note: because we've taken care in
01160                                          * yy_get_next_buffer() to have set up
01161                                          * yytext, we can now set up
01162                                          * yy_c_buf_p so that if some total
01163                                          * hoser (like flex itself) wants to
01164                                          * call the scanner after we return the
01165                                          * YY_NULL, it'll still work - another
01166                                          * YY_NULL will get returned.
01167                                          */
01168                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
01169 
01170                                         yy_act = YY_STATE_EOF(YY_START);
01171                                         goto do_action;
01172                                         }
01173 
01174                                 else
01175                                         {
01176                                         if ( ! yy_did_buffer_switch_on_eof )
01177                                                 YY_NEW_FILE;
01178                                         }
01179                                 break;
01180                                 }
01181 
01182                         case EOB_ACT_CONTINUE_SCAN:
01183                                 yy_c_buf_p =
01184                                         yytext_ptr + yy_amount_of_matched_text;
01185 
01186                                 yy_current_state = yy_get_previous_state();
01187 
01188                                 yy_cp = yy_c_buf_p;
01189                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
01190                                 goto yy_match;
01191 
01192                         case EOB_ACT_LAST_MATCH:
01193                                 yy_c_buf_p =
01194                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
01195 
01196                                 yy_current_state = yy_get_previous_state();
01197 
01198                                 yy_cp = yy_c_buf_p;
01199                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
01200                                 goto yy_find_action;
01201                         }
01202                 break;
01203                 }
01204 
01205         default:
01206                 YY_FATAL_ERROR(
01207                         "fatal flex scanner internal error--no action found" );
01208         } /* end of action switch */
01209                 } /* end of scanning one token */
01210         } /* end of yylex */
01211 
01212 
01213 /* yy_get_next_buffer - try to read in a new buffer
01214  *
01215  * Returns a code representing an action:
01216  *      EOB_ACT_LAST_MATCH -
01217  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01218  *      EOB_ACT_END_OF_FILE - end of file
01219  */
01220 
01221 static int yy_get_next_buffer()
01222         {
01223         register char *dest = yy_current_buffer->yy_ch_buf;
01224         register char *source = yytext_ptr;
01225         register int number_to_move, i;
01226         int ret_val;
01227 
01228         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
01229                 YY_FATAL_ERROR(
01230                 "fatal flex scanner internal error--end of buffer missed" );
01231 
01232         if ( yy_current_buffer->yy_fill_buffer == 0 )
01233                 { /* Don't try to fill the buffer, so this is an EOF. */
01234                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
01235                         {
01236                         /* We matched a single character, the EOB, so
01237                          * treat this as a final EOF.
01238                          */
01239                         return EOB_ACT_END_OF_FILE;
01240                         }
01241 
01242                 else
01243                         {
01244                         /* We matched some text prior to the EOB, first
01245                          * process it.
01246                          */
01247                         return EOB_ACT_LAST_MATCH;
01248                         }
01249                 }
01250 
01251         /* Try to read more data. */
01252 
01253         /* First move last chars to start of buffer. */
01254         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
01255 
01256         for ( i = 0; i < number_to_move; ++i )
01257                 *(dest++) = *(source++);
01258 
01259         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01260                 /* don't do the read, it's not guaranteed to return an EOF,
01261                  * just force an EOF
01262                  */
01263                 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
01264 
01265         else
01266                 {
01267                 int num_to_read =
01268                         yy_current_buffer->yy_buf_size - number_to_move - 1;
01269 
01270                 while ( num_to_read <= 0 )
01271                         { /* Not enough room in the buffer - grow it. */
01272 #ifdef YY_USES_REJECT
01273                         YY_FATAL_ERROR(
01274 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
01275 #else
01276 
01277                         /* just a shorter name for the current buffer */
01278                         YY_BUFFER_STATE b = yy_current_buffer;
01279 
01280                         int yy_c_buf_p_offset =
01281                                 (int) (yy_c_buf_p - b->yy_ch_buf);
01282 
01283                         if ( b->yy_is_our_buffer )
01284                                 {
01285                                 int new_size = b->yy_buf_size * 2;
01286 
01287                                 if ( new_size <= 0 )
01288                                         b->yy_buf_size += b->yy_buf_size / 8;
01289                                 else
01290                                         b->yy_buf_size *= 2;
01291 
01292                                 b->yy_ch_buf = (char *)
01293                                         /* Include room in for 2 EOB chars. */
01294                                         yy_flex_realloc( (void *) b->yy_ch_buf,
01295                                                          b->yy_buf_size + 2 );
01296                                 }
01297                         else
01298                                 /* Can't grow it, we don't own it. */
01299                                 b->yy_ch_buf = 0;
01300 
01301                         if ( ! b->yy_ch_buf )
01302                                 YY_FATAL_ERROR(
01303                                 "fatal error - scanner input buffer overflow" );
01304 
01305                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
01306 
01307                         num_to_read = yy_current_buffer->yy_buf_size -
01308                                                 number_to_move - 1;
01309 #endif
01310                         }
01311 
01312                 if ( num_to_read > YY_READ_BUF_SIZE )
01313                         num_to_read = YY_READ_BUF_SIZE;
01314 
01315                 /* Read in more data. */
01316                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
01317                         yy_n_chars, num_to_read );
01318 
01319                 yy_current_buffer->yy_n_chars = yy_n_chars;
01320                 }
01321 
01322         if ( yy_n_chars == 0 )
01323                 {
01324                 if ( number_to_move == YY_MORE_ADJ )
01325                         {
01326                         ret_val = EOB_ACT_END_OF_FILE;
01327                         yyrestart( yyin );
01328                         }
01329 
01330                 else
01331                         {
01332                         ret_val = EOB_ACT_LAST_MATCH;
01333                         yy_current_buffer->yy_buffer_status =
01334                                 YY_BUFFER_EOF_PENDING;
01335                         }
01336                 }
01337 
01338         else
01339                 ret_val = EOB_ACT_CONTINUE_SCAN;
01340 
01341         yy_n_chars += number_to_move;
01342         yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
01343         yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
01344 
01345         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
01346 
01347         return ret_val;
01348         }
01349 
01350 
01351 /* yy_get_previous_state - get the state just before the EOB char was reached */
01352 
01353 static yy_state_type yy_get_previous_state()
01354         {
01355         register yy_state_type yy_current_state;
01356         register char *yy_cp;
01357 
01358         yy_current_state = yy_start;
01359 
01360         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
01361                 {
01362                 register YY_CHAR yy_c = (YY_CHAR)(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01363                 if ( yy_accept[yy_current_state] )
01364                         {
01365                         yy_last_accepting_state = yy_current_state;
01366                         yy_last_accepting_cpos = yy_cp;
01367                         }
01368                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01369                         {
01370                         yy_current_state = (int) yy_def[yy_current_state];
01371                         if ( yy_current_state >= 360 )
01372                                 yy_c = (YY_CHAR) yy_meta[(unsigned int) yy_c];
01373                         }
01374                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01375                 }
01376 
01377         return yy_current_state;
01378         }
01379 
01380 
01381 /* yy_try_NUL_trans - try to make a transition on the NUL character
01382  *
01383  * synopsis
01384  *      next_state = yy_try_NUL_trans( current_state );
01385  */
01386 
01387 #ifdef YY_USE_PROTOS
01388 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
01389 #else
01390 static yy_state_type yy_try_NUL_trans( yy_current_state )
01391 yy_state_type yy_current_state;
01392 #endif
01393         {
01394         register int yy_is_jam;
01395         register char *yy_cp = yy_c_buf_p;
01396 
01397         register YY_CHAR yy_c = 1;
01398         if ( yy_accept[yy_current_state] )
01399                 {
01400                 yy_last_accepting_state = yy_current_state;
01401                 yy_last_accepting_cpos = yy_cp;
01402                 }
01403         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01404                 {
01405                 yy_current_state = (int) yy_def[yy_current_state];
01406                 if ( yy_current_state >= 360 )
01407                         yy_c = (YY_CHAR) yy_meta[(unsigned int) yy_c];
01408                 }
01409         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01410         yy_is_jam = (yy_current_state == 359);
01411 
01412         return yy_is_jam ? 0 : yy_current_state;
01413         }
01414 
01415 
01416 #ifndef YY_NO_UNPUT
01417 #ifdef YY_USE_PROTOS
01418 static void yyunput( int c, register char *yy_bp )
01419 #else
01420 static void yyunput( c, yy_bp )
01421 int c;
01422 register char *yy_bp;
01423 #endif
01424         {
01425         register char *yy_cp = yy_c_buf_p;
01426 
01427         /* undo effects of setting up yytext */
01428         *yy_cp = yy_hold_char;
01429 
01430         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01431                 { /* need to shift things up to make room */
01432                 /* +2 for EOB chars. */
01433                 register int number_to_move = yy_n_chars + 2;
01434                 register char *dest = &yy_current_buffer->yy_ch_buf[
01435                                         yy_current_buffer->yy_buf_size + 2];
01436                 register char *source =
01437                                 &yy_current_buffer->yy_ch_buf[number_to_move];
01438 
01439                 while ( source > yy_current_buffer->yy_ch_buf )
01440                         *--dest = *--source;
01441 
01442                 yy_cp += (int) (dest - source);
01443                 yy_bp += (int) (dest - source);
01444                 yy_current_buffer->yy_n_chars =
01445                         yy_n_chars = yy_current_buffer->yy_buf_size;
01446 
01447                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01448                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
01449                 }
01450 
01451         *--yy_cp = (char) c;
01452 
01453 
01454         yytext_ptr = yy_bp;
01455         yy_hold_char = *yy_cp;
01456         yy_c_buf_p = yy_cp;
01457         }
01458 #endif  /* ifndef YY_NO_UNPUT */
01459 
01460 
01461 #ifdef __cplusplus
01462 static int yyinput()
01463 #else
01464 static int input()
01465 #endif
01466         {
01467         int c;
01468 
01469         *yy_c_buf_p = yy_hold_char;
01470 
01471         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01472                 {
01473                 /* yy_c_buf_p now points to the character we want to return.
01474                  * If this occurs *before* the EOB characters, then it's a
01475                  * valid NUL; if not, then we've hit the end of the buffer.
01476                  */
01477                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01478                         /* This was really a NUL. */
01479                         *yy_c_buf_p = '\0';
01480 
01481                 else
01482                         { /* need more input */
01483                         int offset = yy_c_buf_p - yytext_ptr;
01484                         ++yy_c_buf_p;
01485 
01486                         switch ( yy_get_next_buffer() )
01487                                 {
01488                                 case EOB_ACT_LAST_MATCH:
01489                                         /* This happens because yy_g_n_b()
01490                                          * sees that we've accumulated a
01491                                          * token and flags that we need to
01492                                          * try matching the token before
01493                                          * proceeding.  But for input(),
01494                                          * there's no matching to consider.
01495                                          * So convert the EOB_ACT_LAST_MATCH
01496                                          * to EOB_ACT_END_OF_FILE.
01497                                          */
01498 
01499                                         /* Reset buffer status. */
01500                                         yyrestart( yyin );
01501 
01502                                         /* fall through */
01503 
01504                                 case EOB_ACT_END_OF_FILE:
01505                                         {
01506                                         if ( yywrap() )
01507                                                 return EOF;
01508 
01509                                         if ( ! yy_did_buffer_switch_on_eof )
01510                                                 YY_NEW_FILE;
01511 #ifdef __cplusplus
01512                                         return yyinput();
01513 #else
01514                                         return input();
01515 #endif
01516                                         }
01517 
01518                                 case EOB_ACT_CONTINUE_SCAN:
01519                                         yy_c_buf_p = yytext_ptr + offset;
01520                                         break;
01521                                 }
01522                         }
01523                 }
01524 
01525         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
01526         *yy_c_buf_p = '\0';     /* preserve yytext */
01527         yy_hold_char = *++yy_c_buf_p;
01528 
01529 
01530         return c;
01531         }
01532 
01533 
01534 #ifdef YY_USE_PROTOS
01535 void yyrestart( FILE *input_file )
01536 #else
01537 void yyrestart( input_file )
01538 FILE *input_file;
01539 #endif
01540         {
01541         if ( ! yy_current_buffer )
01542                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
01543 
01544         yy_init_buffer( yy_current_buffer, input_file );
01545         yy_load_buffer_state();
01546         }
01547 
01548 
01549 #ifdef YY_USE_PROTOS
01550 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
01551 #else
01552 void yy_switch_to_buffer( new_buffer )
01553 YY_BUFFER_STATE new_buffer;
01554 #endif
01555         {
01556         if ( yy_current_buffer == new_buffer )
01557                 return;
01558 
01559         if ( yy_current_buffer )
01560                 {
01561                 /* Flush out information for old buffer. */
01562                 *yy_c_buf_p = yy_hold_char;
01563                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
01564                 yy_current_buffer->yy_n_chars = yy_n_chars;
01565                 }
01566 
01567         yy_current_buffer = new_buffer;
01568         yy_load_buffer_state();
01569 
01570         /* We don't actually know whether we did this switch during
01571          * EOF (yywrap()) processing, but the only time this flag
01572          * is looked at is after yywrap() is called, so it's safe
01573          * to go ahead and always set it.
01574          */
01575         yy_did_buffer_switch_on_eof = 1;
01576         }
01577 
01578 
01579 #ifdef YY_USE_PROTOS
01580 void yy_load_buffer_state( void )
01581 #else
01582 void yy_load_buffer_state()
01583 #endif
01584         {
01585         yy_n_chars = yy_current_buffer->yy_n_chars;
01586         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
01587         yyin = yy_current_buffer->yy_input_file;
01588         yy_hold_char = *yy_c_buf_p;
01589         }
01590 
01591 
01592 #ifdef YY_USE_PROTOS
01593 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
01594 #else
01595 YY_BUFFER_STATE yy_create_buffer( file, size )
01596 FILE *file;
01597 int size;
01598 #endif
01599         {
01600         YY_BUFFER_STATE b;
01601 
01602         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01603         if ( ! b )
01604                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01605 
01606         b->yy_buf_size = size;
01607 
01608         /* yy_ch_buf has to be 2 characters longer than the size given because
01609          * we need to put in 2 end-of-buffer characters.
01610          */
01611         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
01612         if ( ! b->yy_ch_buf )
01613                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01614 
01615         b->yy_is_our_buffer = 1;
01616 
01617         yy_init_buffer( b, file );
01618 
01619         return b;
01620         }
01621 
01622 
01623 #ifdef YY_USE_PROTOS
01624 void yy_delete_buffer( YY_BUFFER_STATE b )
01625 #else
01626 void yy_delete_buffer( b )
01627 YY_BUFFER_STATE b;
01628 #endif
01629         {
01630         if ( ! b )
01631                 return;
01632 
01633         if ( b == yy_current_buffer )
01634                 yy_current_buffer = (YY_BUFFER_STATE) 0;
01635 
01636         if ( b->yy_is_our_buffer )
01637                 yy_flex_free( (void *) b->yy_ch_buf );
01638 
01639         yy_flex_free( (void *) b );
01640         }
01641 
01642 
01643 #ifndef YY_ALWAYS_INTERACTIVE
01644 #ifndef YY_NEVER_INTERACTIVE
01645 #ifdef __cplusplus
01646 #ifndef __BIDE__
01647 extern "C"
01648 {
01649 extern int isatty YY_PROTO(( int ));
01650 }
01651 #endif
01652 #else
01653 extern int isatty YY_PROTO(( int ));
01654 #endif
01655 #endif
01656 #endif
01657 
01658 #ifdef YY_USE_PROTOS
01659 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
01660 #else
01661 void yy_init_buffer( b, file )
01662 YY_BUFFER_STATE b;
01663 FILE *file;
01664 #endif
01665 
01666 
01667         {
01668         yy_flush_buffer( b );
01669 
01670         b->yy_input_file = file;
01671         b->yy_fill_buffer = 1;
01672 
01673 #if YY_ALWAYS_INTERACTIVE
01674         b->yy_is_interactive = 1;
01675 #else
01676 #if YY_NEVER_INTERACTIVE
01677         b->yy_is_interactive = 0;
01678 #else
01679 #ifdef __BIDE__
01680         b->yy_is_interactive = file ? (std::isatty( fileno(file) ) > 0) : 0;
01681 #else
01682         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01683 #endif // __BIDE__
01684 #endif
01685 #endif
01686         }
01687 
01688 
01689 #ifdef YY_USE_PROTOS
01690 void yy_flush_buffer( YY_BUFFER_STATE b )
01691 #else
01692 void yy_flush_buffer( b )
01693 YY_BUFFER_STATE b;
01694 #endif
01695 
01696         {
01697         if ( ! b )
01698                 return;
01699 
01700         b->yy_n_chars = 0;
01701 
01702         /* We always need two end-of-buffer characters.  The first causes
01703          * a transition to the end-of-buffer state.  The second causes
01704          * a jam in that state.
01705          */
01706         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01707         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01708 
01709         b->yy_buf_pos = &b->yy_ch_buf[0];
01710 
01711         b->yy_at_bol = 1;
01712         b->yy_buffer_status = YY_BUFFER_NEW;
01713 
01714         if ( b == yy_current_buffer )
01715                 yy_load_buffer_state();
01716         }
01717 
01718 
01719 #ifndef YY_NO_SCAN_BUFFER
01720 #ifdef YY_USE_PROTOS
01721 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
01722 #else
01723 YY_BUFFER_STATE yy_scan_buffer( base, size )
01724 char *base;
01725 yy_size_t size;
01726 #endif
01727         {
01728         YY_BUFFER_STATE b;
01729 
01730         if ( size < 2 ||
01731              base[size-2] != YY_END_OF_BUFFER_CHAR ||
01732              base[size-1] != YY_END_OF_BUFFER_CHAR )
01733                 /* They forgot to leave room for the EOB's. */
01734                 return 0;
01735 
01736         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01737         if ( ! b )
01738                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01739 
01740         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
01741         b->yy_buf_pos = b->yy_ch_buf = base;
01742         b->yy_is_our_buffer = 0;
01743         b->yy_input_file = 0;
01744         b->yy_n_chars = b->yy_buf_size;
01745         b->yy_is_interactive = 0;
01746         b->yy_at_bol = 1;
01747         b->yy_fill_buffer = 0;
01748         b->yy_buffer_status = YY_BUFFER_NEW;
01749 
01750         yy_switch_to_buffer( b );
01751 
01752         return b;
01753         }
01754 #endif
01755 
01756 
01757 #ifndef YY_NO_SCAN_STRING
01758 #ifdef YY_USE_PROTOS
01759 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
01760 #else
01761 YY_BUFFER_STATE yy_scan_string( yy_str )
01762 yyconst char *yy_str;
01763 #endif
01764         {
01765         int len;
01766         for ( len = 0; yy_str[len]; ++len )
01767                 ;
01768 
01769         return yy_scan_bytes( yy_str, len );
01770         }
01771 #endif
01772 
01773 
01774 #ifndef YY_NO_SCAN_BYTES
01775 #ifdef YY_USE_PROTOS
01776 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
01777 #else
01778 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
01779 yyconst char *bytes;
01780 int len;
01781 #endif
01782         {
01783         YY_BUFFER_STATE b;
01784         char *buf;
01785         yy_size_t n;
01786         int i;
01787 
01788         /* Get memory for full buffer, including space for trailing EOB's. */
01789         n = len + 2;
01790         buf = (char *) yy_flex_alloc( n );
01791         if ( ! buf )
01792                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01793 
01794         for ( i = 0; i < len; ++i )
01795                 buf[i] = bytes[i];
01796 
01797         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
01798 
01799         b = yy_scan_buffer( buf, n );
01800         if ( ! b )
01801                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01802 
01803         /* It's okay to grow etc. this buffer, and we should throw it
01804          * away when we're done.
01805          */
01806         b->yy_is_our_buffer = 1;
01807 
01808         return b;
01809         }
01810 #endif
01811 
01812 
01813 #ifndef YY_NO_PUSH_STATE
01814 #ifdef YY_USE_PROTOS
01815 static void yy_push_state( int new_state )
01816 #else
01817 static void yy_push_state( new_state )
01818 int new_state;
01819 #endif
01820         {
01821         if ( yy_start_stack_ptr >= yy_start_stack_depth )
01822                 {
01823                 yy_size_t new_size;
01824 
01825                 yy_start_stack_depth += YY_START_STACK_INCR;
01826                 new_size = yy_start_stack_depth * sizeof( int );
01827 
01828                 if ( ! yy_start_stack )
01829                         yy_start_stack = (int *) yy_flex_alloc( new_size );
01830 
01831                 else
01832                         yy_start_stack = (int *) yy_flex_realloc(
01833                                         (void *) yy_start_stack, new_size );
01834 
01835                 if ( ! yy_start_stack )
01836                         YY_FATAL_ERROR(
01837                         "out of memory expanding start-condition stack" );
01838                 }
01839 
01840         yy_start_stack[yy_start_stack_ptr++] = YY_START;
01841 
01842         BEGIN(new_state);
01843         }
01844 #endif
01845 
01846 
01847 #ifndef YY_NO_POP_STATE
01848 static void yy_pop_state()
01849         {
01850         if ( --yy_start_stack_ptr < 0 )
01851                 YY_FATAL_ERROR( "start-condition stack underflow" );
01852 
01853         BEGIN(yy_start_stack[yy_start_stack_ptr]);
01854         }
01855 #endif
01856 
01857 
01858 #ifndef YY_NO_TOP_STATE
01859 static int yy_top_state()
01860         {
01861         return yy_start_stack[yy_start_stack_ptr - 1];
01862         }
01863 #endif
01864 
01865 #ifndef YY_EXIT_FAILURE
01866 #define YY_EXIT_FAILURE 2
01867 #endif
01868 
01869 #ifdef YY_USE_PROTOS
01870 static void yy_fatal_error( yyconst char msg[] )
01871 #else
01872 static void yy_fatal_error( msg )
01873 char msg[];
01874 #endif
01875         {
01876         (void) fprintf( stderr, "%s\n", msg );
01877         exit( YY_EXIT_FAILURE );
01878         }
01879 
01880 
01881 
01882 /* Redefine yyless() so it works in section 3 code. */
01883 
01884 #undef yyless
01885 #define yyless(n) \
01886         do \
01887                 { \
01888                 /* Undo effects of setting up yytext. */ \
01889                 yytext[yyleng] = yy_hold_char; \
01890                 yy_c_buf_p = yytext + n; \
01891                 yy_hold_char = *yy_c_buf_p; \
01892                 *yy_c_buf_p = '\0'; \
01893                 yyleng = n; \
01894                 } \
01895         while ( 0 )
01896 
01897 
01898 /* Internal utility routines. */
01899 
01900 #ifndef yytext_ptr
01901 #ifdef YY_USE_PROTOS
01902 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
01903 #else
01904 static void yy_flex_strncpy( s1, s2, n )
01905 char *s1;
01906 yyconst char *s2;
01907 int n;
01908 #endif
01909         {
01910         register int i;
01911         for ( i = 0; i < n; ++i )
01912                 s1[i] = s2[i];
01913         }
01914 #endif
01915 
01916 #ifdef YY_NEED_STRLEN
01917 #ifdef YY_USE_PROTOS
01918 static int yy_flex_strlen( yyconst char *s )
01919 #else
01920 static int yy_flex_strlen( s )
01921 yyconst char *s;
01922 #endif
01923         {
01924         register int n;
01925         for ( n = 0; s[n]; ++n )
01926                 ;
01927 
01928         return n;
01929         }
01930 #endif
01931 
01932 
01933 #ifdef YY_USE_PROTOS
01934 static void *yy_flex_alloc( yy_size_t size )
01935 #else
01936 static void *yy_flex_alloc( size )
01937 yy_size_t size;
01938 #endif
01939         {
01940         return (void *) malloc( size );
01941         }
01942 
01943 #ifdef YY_USE_PROTOS
01944 static void *yy_flex_realloc( void *ptr, yy_size_t size )
01945 #else
01946 static void *yy_flex_realloc( ptr, size )
01947 void *ptr;
01948 yy_size_t size;
01949 #endif
01950         {
01951         /* The cast to (char *) in the following accommodates both
01952          * implementations that use char* generic pointers, and those
01953          * that use void* generic pointers.  It works with the latter
01954          * because both ANSI C and C++ allow castless assignment from
01955          * any pointer type to void*, and deal with argument conversions
01956          * as though doing an assignment.
01957          */
01958         return (void *) realloc( (char *) ptr, size );
01959         }
01960 
01961 #ifdef YY_USE_PROTOS
01962 static void yy_flex_free( void *ptr )
01963 #else
01964 static void yy_flex_free( ptr )
01965 void *ptr;
01966 #endif
01967         {
01968         free( ptr );
01969         }
01970 
01971 #if YY_MAIN
01972 int main()
01973         {
01974         yylex();
01975         return 0;
01976         }
01977 #endif
01978 
01979 
01980 int asewrap()
01981 {
01982     return 1;
01983 }

Generated on Mon Feb 16 15:14:48 2009 for Scorched3D by  doxygen 1.5.3