sslscanner.cpp

Go to the documentation of this file.
00001 #define YY_CHAR char
00002 #line 1 "//usr/local/lib/flexskel.cc"
00003 /* A lexical scanner generated by flex */
00004 /* scanner skeleton version:
00005  * $Header: /cvsroot/boomerang/boomerang/db/sslscanner.cpp,v 1.53 2006/09/08 03:27:02 emmerik Exp $
00006  */
00007 /* MODIFIED FOR C++ CLASS BY Alain Coetmeur: coetmeur(at)icdc.fr */
00008 /* Note that (at) mean the 'at' symbol that I cannot write */
00009 /* because it is expanded to the class name */
00010 /* made at Informatique-CDC, Research&development department */
00011 /* company from the Caisse Des Depots et Consignations */
00012 /* institutional financial group  */
00013 
00014 /* theses symbols are added before this file */
00015 /* #define YY_CHAR 'unsigned char' if 8bit or 'char' if 7bit */
00016 /* #define FLEX_DEBUG if debug mode */
00017 #define FLEX_SCANNER
00018 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
00019 #ifdef c_plusplus
00020 #ifndef __cplusplus
00021 #define __cplusplus
00022 #endif
00023 #endif
00024 /* Old MSC, before c7 */
00025 #ifdef MSDOS
00026 #ifndef _MSDOS
00027 #define _MSDOS
00028 #endif
00029 #endif
00030 /* turboc */
00031 #ifdef __MSDOS__
00032 #ifndef _MSDOS
00033 #define _MSDOS
00034 #endif
00035 #endif
00036 
00037 #ifdef __cplusplus
00038 #include <stdlib.h>
00039 #define YY_USE_CONST
00040 #define YY_USE_PROTOS
00041 #ifndef YY_USE_CLASS
00042 #define YY_USE_CLASS
00043 #endif
00044 #ifndef _MSDOS
00045 #include <osfcn.h>
00046 #endif
00047 #else   /* ! __cplusplus */
00048 #ifdef __STDC__
00049 #ifdef __GNUC__
00050 #include <stddef.h>
00051 void *malloc( size_t );
00052 void free( void* );
00053 int read();
00054 #else
00055 #include <stdlib.h>
00056 #endif  /* __GNUC__ */
00057 #define YY_USE_PROTOS
00058 #define YY_USE_CONST
00059 #endif  /* __STDC__ */
00060 #endif  /* ! __cplusplus */
00061 #ifdef __TURBOC__
00062 #define YY_USE_CONST
00063 #endif
00064 #include <stdio.h>
00065 
00066 
00067 /*********************************************/
00068 /* COMPILER DEPENDENT   MACROS               */
00069 /*********************************************/
00070 /* use prototypes in function declarations */
00071 /* the "const" storage-class-modifier is valid */
00072 #ifndef YY_USE_CONST
00073 #define const
00074 #endif
00075 /* use prototypes in function declarations */
00076 #ifndef YY_PROTO
00077 #ifdef YY_USE_PROTOS
00078 #define YY_PROTO(proto) proto
00079 #else
00080 #define YY_PROTO(proto) ()
00081 #endif
00082 #endif
00083 
00084 
00085 /*********************/
00086 /* parameters        */
00087 
00088 /* amount of stuff to slurp up with each read */
00089 #ifndef YY_READ_BUF_SIZE
00090 #define YY_READ_BUF_SIZE 8192
00091 #endif
00092 /* size of default input buffer */
00093 #ifndef YY_BUF_SIZE
00094 #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) 
00095 #endif
00096 
00097 /***********************************/
00098 /* to be redefined for application */
00099 
00100 /* returned upon end-of-file */
00101 #define YY_END_TOK 0
00102 /* no semi-colon after return; correct usage is to write "yyterminate();" -
00103  * we don't want an extra ';' after the "return" because that will cause
00104  * some compilers to complain about unreachable statements.
00105  */
00106 #define yyterminate() return ( YY_NULL )
00107 
00108 /* code executed at the end of each rule */
00109 #define YY_BREAK break;
00110 
00111 /* #define YY_USER_ACTION */
00112 /* #define YY_USER_INIT */
00113 
00114 
00115 #ifndef YY_USE_CLASS
00116 /* copy whatever the last rule matched to the standard output */
00117 /* cast to (char *) is because for 8-bit chars, yy___text is (unsigned char *) */
00118 /* this used to be an fputs(), but since the string might contain NUL's,
00119  * we now use fwrite()
00120  */
00121 #define ECHO (void) fwrite( (char *) yy___text, yy___leng, 1, yy___out )
00122 
00123 /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00124  * is returned in "result".
00125  */
00126 #ifdef _MSDOS
00127 #define YY_INPUT(buf,result,max_size) \
00128     if ( (result = fread(buf,1,max_size,yy___in)) < 0 ) \
00129         YY_FATAL_ERROR( "fread() in flex scanner failed" );
00130 #else
00131 #define YY_INPUT(buf,result,max_size) \
00132     if ( (result = read( fileno(yy___in), (char *) buf, max_size )) < 0 ) \
00133         YY_FATAL_ERROR( "read() in flex scanner failed" );
00134 
00135 #endif
00136 /* report a fatal error */
00137 
00138 /* The funky do-while is used to turn this macro definition into
00139  * a single C statement (which needs a semi-colon terminator).
00140  * This avoids problems with code like:
00141  *
00142  *      if ( something_happens )
00143  *              YY_FATAL_ERROR( "oops, the something happened" );
00144  *      else
00145  *              everything_okay();
00146  *
00147  * Prior to using the do-while the compiler would get upset at the
00148  * "else" because it interpreted the "if" statement as being all
00149  * done when it reached the ';' after the YY_FATAL_ERROR() call.
00150  */
00151 
00152 #define YY_FATAL_ERROR(msg) \
00153     do \
00154         { \
00155         (void) fputs( msg, yy___stderr  ); \
00156         (void) putc( '\n', yy___stderr  ); \
00157         exit( 1 ); \
00158         } \
00159     while ( 0 )
00160 
00161 /* default yywrap function - always treat EOF as an EOF */
00162 #define yywrap() 1
00163 
00164 
00165 /* default declaration of generated scanner - a define so the user can
00166  * easily add parameters
00167  */
00168 #define YY_DECL int yylex YY_PROTO(( void )) 
00169 #else 
00170 /* c++ */
00171 #define ECHO yy___echo()
00172 #define YY_INPUT(buf,result,max_size) \
00173     if ( yy___input((char *)buf, result,max_size) < 0 ) \
00174         YY_FATAL_ERROR( "YY_INPUT() in flex scanner failed" );
00175 
00176 #define YY_FATAL_ERROR(msg) yy___fatal_error(msg)
00177 #define yywrap() yy___wrap()
00178 
00179 #endif
00180 /***********************************/
00181 /* not to be changed */
00182 #define YY_NULL 0
00183 #define YY_END_OF_BUFFER_CHAR 0
00184 /* special action meaning "start processing a new file" */
00185 #define YY_NEW_FILE yy___newfile 
00186 /* enter a start condition.  This macro really ought to take a parameter,
00187  * but we do it the disgusting crufty way forced on us by the ()-less
00188  * definition of BEGIN
00189  */
00190 #define BEGIN yy_start = 1 + 2 *
00191 
00192 /* action number for EOF rule of a given start state */
00193 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00194 
00195 
00196 
00197 /* % section 1 definitions go here */ 
00198 #line 1 "sslscanner.l"
00199 #define INITIAL 0
00200 /*
00201  * Copyright (C) 1997, Shane Sendall
00202  * Copyright (C) 1998-2001, The University of Queensland
00203  * Copyright (C) 2001, Sun Microsystems, Inc
00204  *
00205  * See the file "LICENSE.TERMS" for information on usage and
00206  * redistribution of this file, and for a DISCLAIMER OF ALL
00207  * WARRANTIES.
00208  *
00209  */
00210 /*==============================================================================
00211  * FILE:          sslscanner.l
00212  * OVERVIEW:      Defines a scanner to parse the tokens of a Semantic
00213  *                Specification Language specification.
00214  *============================================================================*/
00215 /* 
00216  * Shane Sendall (original C version) Dec 1997
00217  * Doug Simon (C++ version) Jan 1998
00218  * 29 Apr 02 - Mike: Mods for boomerang; removed &~, |~, and ^~ operators
00219  * 09 May 02 - Mike: ASSIGNSIZE is an num now
00220  * 05 May 04 - Mike: ASSIGNSIZE replaced by ASSIGNTYPE (text)
00221  */
00222 #define YY_SSLScanner_FLEX_SCANNER
00223 #line 35 "sslscanner.l"
00224 #include <assert.h>
00225 #if defined(_MSC_VER) && _MSC_VER <= 1200
00226 #pragma warning(disable:4786)
00227 #endif 
00228 #if defined(_MSC_VER) && _MSC_VER >= 1400
00229 #pragma warning(disable:4996)       // Warnings about e.g. _strdup deprecated in VS 2005
00230 #endif
00231 
00232 #include "sslscanner.h"
00233 #include "sslscanner.h"
00234 #line 62 "sslscanner.l"
00235 #line 196 "//usr/local/lib/flexskel.cc"
00236 
00237 #define yy___stderr YY_SSLScanner_ERRFILE
00238 #define yy___text YY_SSLScanner_TEXT
00239 #define yy___leng YY_SSLScanner_LENG
00240 #define yy___in YY_SSLScanner_IN
00241 #define yy___out YY_SSLScanner_OUT
00242 #define yy___newfile \
00243     do \
00244         { \
00245         YY_SSLScanner_INIT_BUFFER( YY_SSLScanner_CURRENT_BUFFER, yy___in ); \
00246         YY_SSLScanner_LOAD_BUFFER_STATE(); \
00247         } \
00248     while ( 0 )
00249 #if YY_SSLScanner_DEBUG != 0
00250 #define yy___flex_debug YY_SSLScanner_DEBUG_FLAG
00251 #endif
00252 
00253 
00254 #ifdef YY_USE_CLASS
00255 
00256 #define yy___echo YY_SSLScanner_ECHO
00257 #define yy___input YY_SSLScanner_INPUT
00258 #define yy___fatal_error YY_SSLScanner_FATAL_ERROR
00259 #define yy___wrap YY_SSLScanner_WRAP
00260 
00261 #endif
00262 
00263 /* done after the current pattern has been matched and before the
00264  * corresponding action - sets up yy___text
00265  */
00266 #define YY_DO_BEFORE_ACTION \
00267     yy___text = yy_bp; \
00268 /* % code to fiddle yy___text and yy___leng for yymore() goes here */ \
00269     yy___leng = yy_cp - yy_bp; \
00270     yy_hold_char = *yy_cp; \
00271     *yy_cp = '\0'; \
00272     yy_c_buf_p = yy_cp;
00273 
00274 #define EOB_ACT_CONTINUE_SCAN 0
00275 #define EOB_ACT_END_OF_FILE 1
00276 #define EOB_ACT_LAST_MATCH 2
00277 
00278 /* return all but the first 'n' matched characters back to the input stream */
00279 #define yyless(n) \
00280     do \
00281         { \
00282         /* undo effects of setting up yy___text */ \
00283         *yy_cp = yy_hold_char; \
00284         yy_c_buf_p = yy_cp = yy_bp + n; \
00285         YY_DO_BEFORE_ACTION; /* set up yy___text again */ \
00286         } \
00287     while ( 0 )
00288 
00289 #define unput(c) yyunput( c, yy___text )
00290 
00291 
00292 
00293 struct yy_buffer_state
00294     {
00295     YY_SSLScanner_IFILE  *yy_input_file;
00296 
00297     YY_SSLScanner_CHAR *yy_ch_buf;               /* input buffer */
00298     YY_SSLScanner_CHAR *yy_buf_pos;      /* current position in input buffer */
00299 
00300     /* size of input buffer in bytes, not including room for EOB characters */
00301     int yy_buf_size;    
00302 
00303     /* number of characters read into yy_ch_buf, not including EOB characters */
00304     int yy_n_chars;
00305 
00306     int yy_eof_status;          /* whether we've seen an EOF on this buffer */
00307 #define EOF_NOT_SEEN 0
00308     /* "pending" happens when the EOF has been seen but there's still
00309      * some text process
00310      */
00311 #define EOF_PENDING 1
00312 #define EOF_DONE 2
00313     };
00314 
00315 /* we provide macros for accessing buffer states in case in the
00316  * future we want to put the buffer states in a more general
00317  * "scanner state"
00318  */
00319 
00320 #ifndef YY_USE_CLASS
00321 
00322 #if YY_SSLScanner_DEBUG != 0
00323 int YY_SSLScanner_DEBUG_FLAG=YY_SSLScanner_DEBUG_INIT;
00324 #endif
00325 #define YY_CURRENT_BUFFER YY_SSLScanner_CURRENT_BUFFER
00326 static YY_BUFFER_STATE YY_SSLScanner_CURRENT_BUFFER;
00327 /* yy_hold_char holds the character lost when yy___text is formed */
00328 static YY_SSLScanner_CHAR yy_hold_char;
00329 
00330 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00331 
00332 /* GLOBAL */
00333 YY_SSLScanner_CHAR *yy___text;
00334 int yy___leng;
00335 
00336 YY_SSLScanner_IFILE  *yy___in = (YY_SSLScanner_IFILE  *) 0;
00337 YY_SSLScanner_OFILE *yy___out = (YY_SSLScanner_OFILE  *) 0;
00338 
00339 #ifdef __cplusplus
00340 static int yyinput YY_PROTO(( void ));
00341 #else
00342 static int input YY_PROTO(( void ));
00343 #endif
00344 /* these variables are all declared out here so that section 3 code can
00345  * manipulate them
00346  */
00347 /* points to current character in buffer */
00348 static YY_SSLScanner_CHAR *yy_c_buf_p = (YY_SSLScanner_CHAR *) 0;
00349 static int yy_init = 1;         /* whether we need to initialize */
00350 static int yy_start = 0;        /* start state number */
00351 
00352 /* flag which is used to allow yywrap()'s to do buffer switches
00353  * instead of setting up a fresh yy___in.  A bit of a hack ...
00354  */
00355 static int yy_did_buffer_switch_on_eof;
00356 
00357 static int yy_get_next_buffer YY_PROTO(( void ));
00358 static void yyunput YY_PROTO(( YY_SSLScanner_CHAR c, YY_SSLScanner_CHAR *buf_ptr ));
00359 
00360 #else
00361 /* c++ */
00362 #ifndef YY_SSLScanner_ECHO_NOCODE
00363 void YY_SSLScanner_CLASS::yy___echo()
00364 {YY_SSLScanner_ECHO_CODE
00365 }
00366 #endif
00367 #ifndef YY_SSLScanner_INPUT_NOCODE
00368 int  YY_SSLScanner_CLASS::yy___input(char * buffer,int &result,int max_size)
00369 {YY_SSLScanner_INPUT_CODE
00370 }
00371 #endif
00372 #ifndef YY_SSLScanner_FATAL_ERROR_NOCODE
00373 void YY_SSLScanner_CLASS::yy___fatal_error(char *msg)
00374 {YY_SSLScanner_FATAL_ERROR_CODE
00375 }
00376 #endif
00377 #ifndef YY_SSLScanner_WRAP_NOCODE
00378 int  YY_SSLScanner_CLASS::yy___wrap()
00379 {YY_SSLScanner_WRAP_CODE
00380 }
00381 #endif
00382 void YY_SSLScanner_CLASS::yy_initialize()
00383 {
00384  yy___in=0;yy___out=0;yy_init = 1;
00385  yy_start=0;
00386  yy___text=0;yy___leng=0;
00387  YY_SSLScanner_CURRENT_BUFFER=0;
00388  yy_did_buffer_switch_on_eof=0;
00389  yy_c_buf_p=0;yy_hold_char=0;yy_n_chars=0;
00390 #if YY_SSLScanner_DEBUG != 0
00391  YY_SSLScanner_DEBUG_FLAG=YY_SSLScanner_DEBUG_INIT;
00392 #endif
00393 }
00394 
00395 YY_SSLScanner_CLASS::YY_SSLScanner_CLASS(YY_SSLScanner_CONSTRUCTOR_PARAM) YY_SSLScanner_CONSTRUCTOR_INIT
00396 {yy_initialize();
00397  YY_SSLScanner_CONSTRUCTOR_CODE;
00398 }
00399 YY_SSLScanner_CLASS::~YY_SSLScanner_CLASS() 
00400 {YY_SSLScanner_DESTRUCTOR_CODE;
00401  if(YY_SSLScanner_CURRENT_BUFFER)
00402   YY_SSLScanner_DELETE_BUFFER(YY_SSLScanner_CURRENT_BUFFER);
00403 }
00404 
00405 #endif
00406 
00407 
00408 #ifndef YY_USER_ACTION
00409 #define YY_USER_ACTION
00410 #endif
00411 
00412 #ifndef YY_USER_INIT
00413 #define YY_USER_INIT
00414 #endif
00415 
00416 /* % data tables for the DFA go here */ 
00417 #define YY_END_OF_BUFFER 123
00418 typedef int yy_state_type;
00419 static const short int yy_acclist[480] =
00420     {   0,
00421       123,  120,  122,  118,  120,  122,  121,  122,   71,  120,
00422       122,  109,  120,  122,  120,  122,16503,  113,  120,  122,
00423        39,  120,  122,   37,  120,  122,   40,  120,  122,   45,
00424       120,  122,   46,  120,  122,  120,  122,   41,  120,  122,
00425       115,  120,  122,  115,  120,  122,  115,  120,  122,   70,
00426       120,  122,  112,  120,  122,   21,  120,  122,   19,  120,
00427       122,   22,  120,  122,   72,  120,  122,  106,  120,  122,
00428       106,  120,  122,  106,  120,  122,  106,  120,  122,  106,
00429       120,  122,  106,  120,  122,  106,  120,  122,  106,  120,
00430       122,  106,  120,  122,  111,  120,  122,  110,  120,  122,
00431 
00432        38,  120,  122,  102,  120,  122,  106,  120,  122,  106,
00433       120,  122,  106,  120,  122,  106,  120,  122,  106,  120,
00434       122,  106,  120,  122,  106,  120,  122,  106,  120,  122,
00435       106,  120,  122,  106,  120,  122,  106,  120,  122,  100,
00436       106,  120,  122,  106,  120,  122,  106,  120,  122,  106,
00437       120,  122,  106,  120,  122,   36,  120,  122,   62,  120,
00438       122,  118,  121,16503, 8311,   44,  103,   42,   16,   47,
00439        55,  115,  115,   66,   58,   69,  107,   43,   52,   67,
00440        34,   23,   25,   65,   24,   33,   26,  104,  106,  105,
00441       106,  106,  106,  106,  106,  106,  106,  106,  106,   63,
00442 
00443       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00444       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00445       101,  105,   17,  106,  106,  100,  106,   99,  105,   31,
00446       106,   32,  106,  106,  106,  106,  106,  106,  106,  106,
00447       106,  106,   20,   64,  103,   48,   49,   56,   57,   59,
00448        60,  107,   53,   54,  114,  116,   68,   27,   28,   35,
00449         8,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00450       106,  106,  106,  106,   18,  106,  106,    9,  106,  106,
00451       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00452       106,  106,  106,   61,  106,   29,  106,   30,  106,  106,
00453 
00454       106,  106,  106,  106,   98,  106,  106,  106,  106,   51,
00455        50,  117,  106,  106,   14,  106,  106,  106,   86,  106,
00456       106,  106,  106,  106,  106,  108,  106,  106,   89,  104,
00457       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00458       106,  106,  106,  106,  106,  106,   88,  104,  106,  106,
00459        90,  104,   98,  106,  106,  106,  106,  106,  106,  106,
00460         3,  106,   87,  106,  106,  106,  106,  106,   73,  104,
00461       106,  106,  106,  106,   83,  104,    4,  106,  106,  106,
00462        76,  104,  106,  106,   75,  104,  106,  106,   92,  104,
00463        93,  104,  106,   96,  104,   97,  104,  106,  106,  106,
00464 
00465        12,  106,  106,  106,  106,   10,  106,  106,   13,  106,
00466       106,  106,  106,  106,  106,   74,  104,  106,  106,   11,
00467       106,   94,  104,   81,  104,  106,  106,  106,   80,  104,
00468       106,  106,    1,  106,    5,  106,   91,  104,  106,  106,
00469       106,   77,  104,   82,  104,    2,  106,   79,  104,   78,
00470       104,  106,  106,  106,  106,  106,   95,  104,  106,  106,
00471        15,  106,  106,  106,  106,    6,  106,  106,    7,  106,
00472       106,  106,  106,   84,  104,  106,  106,   85,  104
00473     } ;
00474 
00475 static const short int yy_accept[337] =
00476     {   0,
00477         1,    1,    1,    2,    4,    7,    9,   12,   15,   18,
00478        21,   24,   27,   30,   33,   36,   38,   41,   44,   47,
00479        50,   53,   56,   59,   62,   65,   68,   71,   74,   77,
00480        80,   83,   86,   89,   92,   95,   98,  101,  104,  107,
00481       110,  113,  116,  119,  122,  125,  128,  131,  134,  137,
00482       140,  144,  147,  150,  153,  156,  159,  162,  163,  164,
00483       165,  166,  167,  168,  169,  170,  170,  170,  171,  172,
00484       173,  174,  175,  176,  177,  178,  179,  180,  180,  180,
00485       180,  180,  181,  182,  183,  184,  185,  186,  187,  188,
00486       189,  190,  191,  192,  193,  194,  195,  196,  197,  198,
00487 
00488       199,  200,  201,  202,  203,  203,  204,  205,  206,  207,
00489       208,  209,  210,  211,  212,  213,  214,  215,  216,  217,
00490       218,  219,  220,  221,  223,  225,  226,  228,  230,  232,
00491       234,  235,  236,  237,  238,  239,  240,  241,  242,  243,
00492       244,  245,  246,  247,  248,  248,  249,  250,  251,  252,
00493       253,  254,  255,  256,  257,  257,  258,  259,  260,  261,
00494       263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
00495       273,  274,  274,  275,  277,  278,  280,  281,  282,  283,
00496       284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
00497       294,  296,  298,  300,  301,  302,  303,  304,  305,  307,
00498 
00499       308,  309,  310,  311,  312,  313,  314,  315,  317,  318,
00500       319,  321,  322,  323,  324,  325,  326,  327,  327,  328,
00501       329,  331,  332,  333,  334,  335,  336,  337,  338,  339,
00502       340,  341,  342,  343,  344,  345,  346,  347,  349,  350,
00503       351,  353,  355,  356,  357,  358,  359,  360,  361,  363,
00504       365,  366,  367,  368,  369,  371,  372,  373,  374,  375,
00505       377,  379,  380,  381,  383,  384,  385,  387,  388,  389,
00506       391,  393,  394,  396,  398,  399,  400,  401,  403,  404,
00507       405,  406,  408,  409,  411,  412,  413,  414,  415,  416,
00508       418,  419,  420,  422,  424,  426,  427,  428,  429,  431,
00509 
00510       432,  433,  435,  437,  439,  440,  441,  442,  444,  446,
00511       448,  450,  452,  453,  454,  455,  456,  457,  459,  460,
00512       461,  463,  464,  465,  466,  468,  469,  471,  472,  473,
00513       474,  476,  477,  478,  480,  480
00514     } ;
00515 
00516 static const YY_CHAR yy_ec[128] =
00517     {   0,
00518         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00520         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00521         1,    2,    4,    5,    6,    7,    8,    9,   10,   11,
00522        10,   12,   13,   10,   14,   15,   16,   17,   18,   19,
00523        20,   20,   20,   20,   20,   20,   20,   21,   22,   23,
00524        24,   25,   10,   26,   27,   28,   29,   30,   31,   32,
00525        33,   34,   35,   36,   36,   37,   36,   38,   39,   40,
00526        36,   41,   42,   43,   44,   45,   36,   46,   36,   36,
00527        47,    1,   48,   49,   50,    1,   51,   52,   53,   54,
00528 
00529        55,   56,   57,   58,   59,   58,   58,   60,   61,   62,
00530        63,   64,   65,   66,   67,   68,   69,   58,   70,   71,
00531        58,   72,   10,   73,   10,   74,    1
00532     } ;
00533 
00534 static const YY_CHAR yy_meta[75] =
00535     {   0,
00536         1,    1,    2,    3,    4,    1,    1,    1,    1,    1,
00537         5,    6,    1,    1,    7,    1,    8,    8,    8,    8,
00538         1,    1,    1,    1,    1,    1,    9,    9,    9,    9,
00539         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
00540         9,    9,    9,    9,    9,    9,    5,    1,    1,    5,
00541        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
00542        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
00543        10,   10,    1,    1
00544     } ;
00545 
00546 static const short int yy_base[348] =
00547     {   0,
00548         0,    0,  260,  993,  256,    0,  993,  993,  240,  993,
00549       235,  993,   71,  182,   59,  220,   76,   77,   83,   92,
00550        61,  993,   82,  209,   62,  993,   70,   88,   82,  102,
00551        97,  103,  107,  105,  109,  993,  993,  225,    0,  108,
00552       114,  119,  122,  125,  142,  136,  148,  111,  128,  152,
00553       201,  167,  180,  154,  181,  993,  144,  223,    0,  214,
00554       993,  993,    0,  993,  993,  232,  245,  254,   92,  260,
00555       269,  993,  106,  993,    0,  993,  125,  236,  273,  201,
00556       164,  993,  993,  116,  993,  993,  115,  153,  993,  993,
00557       156,  993,  212,  195,  175,  265,  186,  259,  271,  283,
00558 
00559       284,  993,  285,  286,    0,  236,  288,  298,  300,  303,
00560       309,  311,  312,  314,  318,  317,  325,  326,  327,  328,
00561       332,  330,  335,  993,  337,  340,  383,  993,  344,  352,
00562       357,  360,  367,  370,  378,  395,  397,  398,  401,  993,
00563       993,    0,  111,  993,  110,  993,  993,  993,  993,    0,
00564       993,  993,  409,  444,  417,  993,  993,  993,  993,  400,
00565       407,  404,  410,  402,  454,  430,  444,  447,  445,  456,
00566       457,  133,  458,  432,  469,  435,  472,  473,  474,  476,
00567       478,  479,  484,  488,  489,  495,  491,  496,  497,  536,
00568       502,  503,  504,  511,  516,  528,  523,  530,  545,  546,
00569 
00570       548,  550,  993,  993,  492,  557,  558,  560,  567,  568,
00571       562,  578,  569,  576,  573,  575,  993,  121,  570,  577,
00572       993,  571,  579,  588,  608,  616,  618,  620,  621,  623,
00573       625,  626,  627,  629,  630,  631,  632,  993,  634,  636,
00574       993,  639,  641,  642,  645,  648,  653,  682,  649,  650,
00575       688,  690,  693,  660,  993,  695,  697,  698,  699,  993,
00576       700,  701,  703,  993,  706,  707,  993,  709,  704,  993,
00577       993,  711,  993,  993,  714,  716,  719,  721,  727,  723,
00578       730,  725,  762,  732,  738,  765,  767,  769,  771,  993,
00579       773,  775,  776,  993,  993,  778,  779,  780,  993,  784,
00580 
00581       786,  783,  785,  993,  787,  788,  789,  993,  993,  790,
00582       993,  993,  791,  797,  829,  802,  808,  993,  817,  837,
00583       834,  839,  840,  841,  843,  845,  846,  848,  850,  851,
00584       993,  855,  856,  993,  993,  922,  932,  940,  948,  952,
00585       958,  960,  963,  967,  969,  976,  982
00586     } ;
00587 
00588 static const short int yy_def[348] =
00589     {   0,
00590       335,    1,  335,  335,  335,  336,  335,  335,  337,  335,
00591       338,  335,  339,  335,  335,  340,  335,  335,  335,  335,
00592       335,  335,  335,  335,  335,  335,  341,  341,  341,  341,
00593       341,  341,  341,  341,  341,  335,  335,  335,  342,  341,
00594       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
00595       341,  341,  341,  341,  341,  335,  335,  335,  336,  337,
00596       335,  335,  343,  335,  335,  335,  335,  335,  335,  335,
00597       335,  335,  335,  335,  344,  335,  335,  335,  335,  335,
00598       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00599       341,  335,  341,  341,  341,  341,  341,  341,  341,  341,
00600 
00601       341,  335,  341,  341,  345,  341,  341,  341,  341,  341,
00602       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
00603       341,  341,  341,  335,  341,  341,  341,  335,  341,  341,
00604       341,  341,  341,  341,  341,  341,  341,  341,  341,  335,
00605       335,  343,  335,  335,  335,  335,  335,  335,  335,  344,
00606       335,  335,  335,  335,  335,  335,  335,  335,  335,  341,
00607       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
00608       341,  346,  341,  341,  341,  341,  341,  341,  341,  341,
00609       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
00610       341,  341,  341,  341,  341,  341,  341,  341,  347,  341,
00611 
00612       341,  341,  335,  335,  335,  341,  341,  341,  341,  341,
00613       341,  341,  341,  341,  341,  341,  335,  346,  341,  341,
00614       335,  341,  341,  341,  341,  341,  341,  341,  341,  341,
00615       341,  341,  341,  341,  341,  341,  341,  335,  341,  341,
00616       335,  347,  341,  341,  341,  341,  341,  341,  341,  341,
00617       341,  341,  341,  341,  335,  341,  341,  341,  341,  335,
00618       341,  341,  341,  335,  341,  341,  335,  341,  341,  335,
00619       335,  341,  335,  335,  341,  341,  341,  341,  341,  341,
00620       341,  341,  341,  341,  341,  341,  341,  341,  341,  335,
00621       341,  341,  341,  335,  335,  341,  341,  341,  335,  341,
00622 
00623       341,  341,  341,  335,  341,  341,  341,  335,  335,  341,
00624       335,  335,  341,  341,  341,  341,  341,  335,  341,  341,
00625       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
00626       335,  341,  341,  335,    0,  335,  335,  335,  335,  335,
00627       335,  335,  335,  335,  335,  335,  335
00628     } ;
00629 
00630 static const short int yy_nxt[1068] =
00631     {   0,
00632         4,    5,    6,    7,    8,    9,   10,   11,   12,    8,
00633         8,   13,   14,   15,   16,   17,   18,   19,   20,   19,
00634        21,   22,   23,   24,   25,   26,   27,   28,   29,   27,
00635        30,   31,   27,   27,   32,   27,   33,   27,   34,   27,
00636        27,   35,   27,   27,   27,   27,   36,   37,   38,   39,
00637        40,   41,   42,   43,   44,   45,   27,   27,   46,   47,
00638        48,   27,   49,   50,   27,   51,   52,   53,   54,   27,
00639        27,   55,   56,   57,   64,   70,   70,   71,   70,   76,
00640        90,   81,   65,   72,   82,   87,   88,   66,   66,   66,
00641        66,   78,   90,   70,   70,   70,   70,   78,   90,   70,
00642 
00643        70,   70,   70,   80,   83,   84,   78,   90,   70,   70,
00644        70,   70,   90,   90,   73,   90,   92,   90,   90,   90,
00645        94,   90,   93,   96,   90,  217,   68,   97,   92,   90,
00646        89,   77,   90,   98,   92,   90,   99,  217,   90,   95,
00647       100,  101,  104,   92,  103,  146,   90,   79,   92,   92,
00648        85,   92,   90,   92,   92,   92,  147,  124,   90,  148,
00649        92,  107,   90,  204,   90,   92,   90,  140,   92,  108,
00650       149,   92,  110,  109,   92,  203,  112,   90,  151,  159,
00651       102,  111,   92,  158,  157,   90,  113,  156,   92,  152,
00652        90,   90,  115,  125,   92,  114,   90,  120,   92,  141,
00653 
00654        92,  116,   92,  121,  162,   90,  122,  117,  118,  119,
00655       123,   90,  155,   92,  126,  138,   61,  127,  127,  127,
00656       127,   92,   90,  131,   58,  132,   92,   92,  164,  105,
00657       135,  133,   92,   86,   74,  134,  139,   69,   62,  161,
00658       136,   92,   61,   65,  160,  137,   90,  128,   66,   66,
00659        66,   66,  153,  153,  153,  153,   65,   58,   92,  335,
00660       129,   66,   66,   66,   66,   65,  130,  335,  335,   90,
00661        66,   66,   66,   66,   78,   90,   70,   70,   70,   70,
00662        80,   90,   92,   78,  335,   70,   70,   70,   70,  154,
00663       154,  154,  154,   90,   90,   90,   90,  165,   90,  154,
00664 
00665       154,  154,  154,  154,  154,   92,  163,  143,   90,  166,
00666        90,   92,  171,   90,  167,  170,  335,   92,  144,   90,
00667       145,   90,   90,  335,   90,  168,  169,   90,   90,   92,
00668        92,   92,   92,  335,   92,   90,   90,   90,   90,  335,
00669        90,  173,   90,  335,   92,   90,   92,   90,  335,   92,
00670        90,  174,  175,  335,   90,   92,  335,   92,   92,  176,
00671        92,  335,   90,   92,   92,  179,  178,   90,  180,  181,
00672        90,   92,   92,   92,   92,  177,   92,   90,   92,  182,
00673        90,   92,  335,   92,  184,  335,   92,  183,   90,  185,
00674        92,  190,  186,   90,  188,  187,  192,  189,   92,  127,
00675 
00676       127,  127,  127,   92,  193,   90,   92,   90,   90,  191,
00677        90,   90,   90,   92,   90,  335,   92,   90,  194,  335,
00678        90,  195,  197,  335,   92,  153,  153,  153,  153,   92,
00679       209,  335,  196,  205,  205,  205,  205,  206,  207,  198,
00680        90,   92,   90,   92,   92,   90,   92,   92,   92,  335,
00681        92,  201,  208,   92,   90,   90,   92,   90,  199,  202,
00682       154,  154,  154,  154,   90,  200,   90,   90,   90,  211,
00683       154,  154,  154,  154,  154,  154,   92,  213,   92,   90,
00684       210,   92,  221,   90,   90,  212,   90,  214,   90,   90,
00685        92,   92,  335,   92,   90,  335,  215,  216,   90,   90,
00686 
00687        92,   90,   92,   92,   92,   90,   90,   90,  205,  205,
00688       205,  205,   90,   90,   90,   92,  335,  335,   92,   92,
00689        92,   90,   92,  219,   92,   92,  238,  335,  224,  226,
00690        92,  222,  223,   90,   92,   92,  220,   92,   90,  335,
00691       241,   92,   92,   92,  225,  231,   90,  229,   92,   92,
00692        92,  232,  227,  234,  235,   90,   90,   92,   90,  228,
00693        90,  335,   92,  230,  233,  237,  335,   90,   90,   92,
00694        90,  335,   90,  335,   92,  240,   92,   90,   90,   90,
00695       255,   90,   92,   90,  247,   90,   90,   90,   90,   90,
00696       236,   92,   92,  335,   92,  239,   92,  246,   90,  253,
00697 
00698       248,  251,  244,   92,   92,  254,   92,  243,   92,  245,
00699       249,  250,  252,   92,   92,   92,   92,   92,  260,   92,
00700       335,   92,   92,   92,   92,   92,   90,  256,   90,  258,
00701        90,  264,  257,   90,   92,   90,  267,   90,  335,   90,
00702       270,  271,   90,  335,  273,  269,  274,  335,  335,   90,
00703       335,   90,   90,  335,   92,   90,  259,  335,   90,   90,
00704        90,  335,   92,   90,   92,  335,   92,   92,  335,   92,
00705        90,   92,   92,   92,  263,   92,   92,   92,   92,  262,
00706        92,  266,   92,  261,  265,   92,  268,   92,   92,  278,
00707       279,   92,   90,  275,   92,   92,   92,  276,   90,   92,
00708 
00709        90,  284,  272,   90,  277,   90,   92,   90,   90,   90,
00710        90,   90,  280,  290,  294,  335,   90,   90,  281,   90,
00711       282,  295,  335,  335,   90,  335,   90,  335,   92,  299,
00712       283,   90,  335,   90,   92,   90,   92,   90,  335,   92,
00713        90,   92,   90,   92,   92,   92,   92,   92,  304,   92,
00714        92,  286,   92,   92,  289,   92,  285,   92,  291,  287,
00715        92,  292,   92,  293,  300,   92,  288,   92,  301,   92,
00716       302,   92,   90,   92,  298,   90,   92,   90,   92,   90,
00717       296,  308,  297,  309,   92,   90,   90,  335,  311,  312,
00718        90,  303,  335,   90,   90,   90,   90,   90,   90,  318,
00719 
00720        90,   90,  335,  335,  335,  335,  335,   90,   92,  335,
00721       335,   92,   90,   92,  314,   92,  315,   92,   90,   92,
00722       305,   92,   92,  307,   92,   92,   92,   90,  306,   92,
00723        92,   92,   92,   92,   92,   92,   92,   92,  320,   90,
00724       310,  313,  317,   92,   90,  319,  316,   90,   92,   90,
00725        90,   90,  322,   90,   92,   90,   90,  321,   90,  335,
00726       331,   90,  335,   92,  335,   90,  334,  335,  335,  335,
00727       335,  335,  324,  335,  323,   92,  335,  335,  325,  335,
00728        92,  335,  335,   92,  335,   92,   92,   92,  335,   92,
00729       335,   92,   92,  335,   92,  326,   92,   92,  330,  335,
00730 
00731       328,   92,   92,  335,  335,  335,  327,  332,  335,  335,
00732       335,  329,  335,  335,  335,  335,  335,  335,  335,  335,
00733       335,  333,   59,  335,   59,   59,   59,   59,   59,   59,
00734        59,   59,   60,   60,   60,   60,   60,   60,   60,   60,
00735        60,   60,   63,  335,  335,  335,  335,  335,   63,   63,
00736        67,  335,  335,   67,  335,   67,  335,   67,   75,  335,
00737        75,   75,   91,  335,  335,   91,   91,   91,  106,  106,
00738       142,  142,  142,  150,  150,  150,  150,  172,  172,  218,
00739       335,  335,  335,  335,  218,  218,  242,  335,  335,  242,
00740       242,  242,    3,  335,  335,  335,  335,  335,  335,  335,
00741 
00742       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00743       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00744       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00745       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00746       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00747       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00748       335,  335,  335,  335,  335,  335,  335
00749     } ;
00750 
00751 static const short int yy_chk[1068] =
00752     {   0,
00753         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00754         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00755         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00756         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00757         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00758         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00759         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00760         1,    1,    1,    1,   13,   15,   15,   15,   15,   17,
00761        27,   21,   13,   15,   21,   25,   25,   13,   13,   13,
00762        13,   18,   29,   18,   18,   18,   18,   19,   28,   19,
00763 
00764        19,   19,   19,   20,   23,   23,   20,   31,   20,   20,
00765        20,   20,   30,   32,   15,   34,   27,   33,   40,   35,
00766        29,   48,   28,   31,   41,  218,   13,   31,   29,   42,
00767        25,   17,   43,   31,   28,   44,   31,  172,   49,   30,
00768        32,   33,   35,   31,   34,   69,   46,   18,   30,   32,
00769        23,   34,   45,   33,   40,   35,   69,   48,   47,   73,
00770        41,   40,   50,  145,   54,   42,   91,   57,   43,   40,
00771        73,   44,   41,   40,   49,  143,   43,   52,   77,   88,
00772        33,   42,   46,   87,   84,   95,   44,   81,   45,   77,
00773        53,   55,   45,   49,   47,   44,   97,   46,   50,   57,
00774 
00775        54,   45,   91,   46,   95,   94,   47,   45,   45,   45,
00776        47,   51,   80,   52,   50,   54,   60,   51,   51,   51,
00777        51,   95,   93,   52,   58,   52,   53,   55,   97,   38,
00778        53,   52,   97,   24,   16,   52,   55,   14,   11,   94,
00779        53,   94,    9,   66,   93,   53,  106,   51,   66,   66,
00780        66,   66,   78,   78,   78,   78,   67,    5,   93,    3,
00781        51,   67,   67,   67,   67,   68,   51,    0,    0,   98,
00782        68,   68,   68,   68,   70,   96,   70,   70,   70,   70,
00783        71,   99,  106,   71,    0,   71,   71,   71,   71,   79,
00784        79,   79,   79,  100,  101,  103,  104,   98,  107,   79,
00785 
00786        79,   79,   79,   79,   79,   98,   96,   68,  108,   99,
00787       109,   96,  104,  110,   99,  103,    0,   99,   68,  111,
00788        68,  112,  113,    0,  114,  100,  101,  116,  115,  100,
00789       101,  103,  104,    0,  107,  117,  118,  119,  120,    0,
00790       122,  107,  121,    0,  108,  123,  109,  125,    0,  110,
00791       126,  108,  109,    0,  129,  111,    0,  112,  113,  110,
00792       114,    0,  130,  116,  115,  113,  112,  131,  114,  115,
00793       132,  117,  118,  119,  120,  111,  122,  133,  121,  116,
00794       134,  123,    0,  125,  118,    0,  126,  117,  135,  119,
00795       129,  123,  119,  127,  121,  120,  129,  122,  130,  127,
00796 
00797       127,  127,  127,  131,  130,  136,  132,  137,  138,  126,
00798       160,  139,  164,  133,  162,    0,  134,  161,  131,    0,
00799       163,  132,  134,    0,  135,  153,  153,  153,  153,  127,
00800       164,    0,  133,  155,  155,  155,  155,  161,  162,  135,
00801       166,  136,  174,  137,  138,  176,  160,  139,  164,    0,
00802       162,  138,  163,  161,  167,  169,  163,  168,  136,  139,
00803       154,  154,  154,  154,  165,  137,  170,  171,  173,  166,
00804       154,  154,  154,  154,  154,  154,  166,  168,  174,  175,
00805       165,  176,  177,  178,  179,  167,  180,  169,  181,  182,
00806       167,  169,    0,  168,  183,    0,  170,  171,  184,  185,
00807 
00808       165,  187,  170,  171,  173,  186,  188,  189,  205,  205,
00809       205,  205,  191,  192,  193,  175,    0,    0,  177,  178,
00810       179,  194,  180,  173,  181,  182,  195,    0,  180,  182,
00811       183,  178,  179,  197,  184,  185,  175,  187,  196,    0,
00812       198,  186,  188,  189,  181,  187,  190,  185,  191,  192,
00813       193,  188,  183,  190,  190,  199,  200,  194,  201,  184,
00814       202,    0,  195,  186,  189,  194,    0,  206,  207,  197,
00815       208,    0,  211,    0,  196,  197,  198,  209,  210,  213,
00816       219,  222,  190,  215,  207,  216,  214,  220,  212,  223,
00817       190,  199,  200,    0,  201,  196,  202,  206,  224,  215,
00818 
00819       209,  213,  201,  206,  207,  216,  208,  200,  211,  202,
00820       210,  212,  214,  209,  210,  213,  219,  222,  225,  215,
00821         0,  216,  214,  220,  212,  223,  226,  220,  227,  223,
00822       228,  229,  222,  230,  224,  231,  232,  233,    0,  234,
00823       235,  236,  237,    0,  239,  234,  240,    0,    0,  242,
00824         0,  243,  244,    0,  225,  245,  224,    0,  246,  249,
00825       250,    0,  226,  247,  227,    0,  228,  229,    0,  230,
00826       254,  231,  232,  233,  228,  234,  235,  236,  237,  227,
00827       239,  231,  240,  226,  230,  242,  233,  243,  244,  246,
00828       247,  245,  248,  243,  246,  249,  250,  244,  251,  247,
00829 
00830       252,  254,  237,  253,  245,  256,  254,  257,  258,  259,
00831       261,  262,  248,  263,  269,    0,  265,  266,  251,  268,
00832       252,  272,    0,    0,  275,    0,  276,    0,  248,  277,
00833       253,  278,    0,  280,  251,  282,  252,  279,    0,  253,
00834       281,  256,  284,  257,  258,  259,  261,  262,  285,  263,
00835       269,  257,  265,  266,  262,  268,  256,  272,  265,  258,
00836       275,  266,  276,  268,  279,  277,  259,  278,  280,  280,
00837       281,  282,  283,  279,  276,  286,  281,  287,  284,  288,
00838       275,  289,  275,  291,  285,  292,  293,    0,  296,  297,
00839       298,  283,    0,  302,  300,  303,  301,  305,  306,  307,
00840 
00841       310,  313,    0,    0,    0,    0,    0,  314,  283,    0,
00842         0,  286,  316,  287,  300,  288,  301,  289,  317,  291,
00843       286,  292,  293,  288,  296,  297,  298,  319,  287,  302,
00844       300,  303,  301,  305,  306,  307,  310,  313,  314,  315,
00845       292,  298,  306,  314,  321,  313,  305,  320,  316,  322,
00846       323,  324,  316,  325,  317,  326,  327,  315,  328,    0,
00847       329,  330,    0,  319,    0,  332,  333,    0,    0,    0,
00848         0,    0,  319,    0,  317,  315,    0,    0,  320,    0,
00849       321,    0,    0,  320,    0,  322,  323,  324,    0,  325,
00850         0,  326,  327,    0,  328,  322,  329,  330,  328,    0,
00851 
00852       324,  332,  333,    0,    0,    0,  323,  330,    0,    0,
00853         0,  326,    0,    0,    0,    0,    0,    0,    0,    0,
00854         0,  332,  336,    0,  336,  336,  336,  336,  336,  336,
00855       336,  336,  337,  337,  337,  337,  337,  337,  337,  337,
00856       337,  337,  338,    0,    0,    0,    0,    0,  338,  338,
00857       339,    0,    0,  339,    0,  339,    0,  339,  340,    0,
00858       340,  340,  341,    0,    0,  341,  341,  341,  342,  342,
00859       343,  343,  343,  344,  344,  344,  344,  345,  345,  346,
00860         0,    0,    0,    0,  346,  346,  347,    0,    0,  347,
00861       347,  347,  335,  335,  335,  335,  335,  335,  335,  335,
00862 
00863       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00864       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00865       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00866       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00867       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00868       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
00869       335,  335,  335,  335,  335,  335,  335
00870     } ;
00871 
00872 static yy_state_type yy_last_accepting_state;
00873 static YY_CHAR *yy_last_accepting_cpos;
00874 
00875 #if YY_SSLScanner_DEBUG != 0
00876 static const short int yy_rule_linenum[122] =
00877     {   0,
00878        64,   65,   66,   67,   68,   69,   70,   74,   75,   79,
00879        80,   84,   85,   86,   87,   89,   94,   95,   99,  100,
00880       101,  102,  103,  104,  105,  106,  107,  108,  113,  114,
00881       115,  116,  117,  118,  119,  120,  121,  122,  127,  128,
00882       129,  130,  131,  132,  133,  134,  138,  139,  140,  141,
00883       142,  143,  144,  145,  146,  147,  148,  149,  150,  151,
00884       152,  156,  159,  162,  165,  168,  171,  174,  178,  181,
00885       184,  187,  190,  193,  194,  195,  196,  197,  198,  199,
00886       200,  205,  210,  215,  216,  219,  220,  221,  222,  223,
00887       224,  225,  226,  227,  228,  229,  235,  239,  244,  245,
00888 
00889       247,  248,  249,  253,  258,  263,  267,  268,  272,  273,
00890       274,  275,  276,  277,  281,  286,  291,  303,  304,  305,
00891       306
00892     } ;
00893 
00894 #endif
00895 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
00896 static YY_CHAR *yy_full_match;
00897 static int yy_lp;
00898 static int yy_looking_for_trail_begin = 0;
00899 static int yy_full_lp;
00900 static int *yy_full_state;
00901 #define YY_TRAILING_MASK 0x2000
00902 #define YY_TRAILING_HEAD_MASK 0x4000
00903 #define REJECT \
00904 { \
00905 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
00906 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
00907 yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
00908 yy_state_ptr = yy_full_state; /* restore orig. state */ \
00909 yy_current_state = *yy_state_ptr; /* restore curr. state */ \
00910 ++yy_lp; \
00911 goto find_rule; \
00912 }
00913 #define yymore() yymore_used_but_not_detected
00914 #define YY_MORE_ADJ 0
00915 #line 376 "//usr/local/lib/flexskel.cc"
00916 #ifndef YY_USE_CLASS
00917 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
00918 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
00919 #else
00920 #define yy_get_previous_state() ((yy_state_type)(yy_get_previous_state_()))
00921 #define yy_try_NUL_trans(c) ((yy_state_type)(yy_try_NUL_trans_(c)))
00922 #endif
00923 
00924 #ifndef YY_USE_CLASS
00925 #ifdef YY_SSLScanner_LEX_DEFINED
00926 YY_SSLScanner_LEX_RETURN YY_SSLScanner_LEX ( YY_SSLScanner_LEX_PARAM )
00927 YY_SSLScanner_LEX_PARAM_DEF
00928 #else
00929 YY_DECL
00930 #endif
00931 #else
00932 YY_SSLScanner_LEX_RETURN YY_SSLScanner_CLASS::YY_SSLScanner_LEX ( YY_SSLScanner_LEX_PARAM)
00933 
00934 #endif
00935     {
00936     register yy_state_type yy_current_state;
00937     register YY_SSLScanner_CHAR *yy_cp, *yy_bp;
00938     register int yy_act;
00939 
00940 /* % user's declarations go here */ 
00941 
00942 
00943 /* % end of prolog */ 
00944 #line 401 "//usr/local/lib/flexskel.cc"
00945 
00946     if ( yy_init )
00947     {
00948      
00949      {
00950      YY_USER_INIT;
00951      }
00952     if ( ! yy_start )
00953         yy_start = 1;       /* first start state */
00954 
00955     if ( ! yy___in )
00956         yy___in = YY_SSLScanner_IFILE_DEFAULT;
00957 
00958     if ( ! yy___out )
00959         yy___out = YY_SSLScanner_OFILE_DEFAULT;
00960 
00961     if ( YY_SSLScanner_CURRENT_BUFFER )
00962         YY_SSLScanner_INIT_BUFFER( YY_SSLScanner_CURRENT_BUFFER, yy___in );
00963     else
00964         YY_SSLScanner_CURRENT_BUFFER = YY_SSLScanner_CREATE_BUFFER( yy___in, YY_BUF_SIZE );
00965 
00966     YY_SSLScanner_LOAD_BUFFER_STATE();
00967     yy_init=0;
00968     }
00969 
00970     while ( 1 )         /* loops until end-of-file is reached */
00971     {
00972 /* % yymore()-related code goes here */ 
00973 #line 429 "//usr/local/lib/flexskel.cc"
00974     yy_cp = yy_c_buf_p;
00975 
00976     /* support of yy___text */
00977     *yy_cp = yy_hold_char;
00978 
00979     /* yy_bp points to the position in yy_ch_buf of the start of the
00980      * current run.
00981      */
00982     yy_bp = yy_cp;
00983 
00984 /* % code to set up and find next match goes here */ 
00985     yy_current_state = yy_start;
00986     yy_state_ptr = yy_state_buf;
00987     *yy_state_ptr++ = yy_current_state;
00988 yy_match:
00989     do
00990         {
00991         register YY_CHAR yy_c = yy_ec[(unsigned char)*yy_cp];
00992         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00993         {
00994         yy_current_state = yy_def[yy_current_state];
00995         if ( yy_current_state >= 336 )
00996             yy_c = yy_meta[(unsigned char)yy_c];
00997         }
00998         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
00999         *yy_state_ptr++ = yy_current_state;
01000         ++yy_cp;
01001         }
01002     while ( yy_current_state != 335 );
01003 #line 440 "//usr/local/lib/flexskel.cc"
01004 
01005 yy_find_action:
01006 /* % code to find the action number goes here */ 
01007     yy_current_state = *--yy_state_ptr;
01008     yy_lp = yy_accept[yy_current_state];
01009 find_rule: /* we branch to this label when backtracking */
01010     for ( ; ; ) /* until we find what rule we matched */
01011         {
01012         if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
01013         {
01014         yy_act = yy_acclist[yy_lp];
01015         if ( yy_act & YY_TRAILING_HEAD_MASK ||
01016              yy_looking_for_trail_begin )
01017             {
01018             if ( yy_act == yy_looking_for_trail_begin )
01019             {
01020             yy_looking_for_trail_begin = 0;
01021             yy_act &= ~YY_TRAILING_HEAD_MASK;
01022             break;
01023             }
01024             }
01025         else if ( yy_act & YY_TRAILING_MASK )
01026             {
01027             yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
01028             yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
01029             }
01030         else
01031             {
01032             yy_full_match = yy_cp;
01033             yy_full_state = yy_state_ptr;
01034             yy_full_lp = yy_lp;
01035             break;
01036             }
01037         ++yy_lp;
01038         goto find_rule;
01039         }
01040         --yy_cp;
01041         yy_current_state = *--yy_state_ptr;
01042         yy_lp = yy_accept[yy_current_state];
01043         }
01044 #line 443 "//usr/local/lib/flexskel.cc"
01045 
01046     YY_DO_BEFORE_ACTION;
01047     YY_USER_ACTION;
01048 
01049 do_action:      /* this label is used only to access EOF actions */
01050 #if YY_SSLScanner_DEBUG != 0
01051     if ( yy___flex_debug )
01052         {
01053         if ( yy_act == 0 )
01054 #ifndef YY_SSLScanner_IOSTREAM
01055             fprintf( yy___stderr , "--scanner backtracking\n" );
01056 #else
01057             yy___stderr <<"--scanner backtracking"<<endl;
01058 #endif
01059         else if ( yy_act < YY_END_OF_BUFFER -1 )
01060 #ifndef YY_SSLScanner_IOSTREAM
01061             fprintf( yy___stderr , 
01062              "--accepting rule at line %d (\"%s\")\n",
01063              yy_rule_linenum[yy_act], yy___text );
01064 #else
01065             yy___stderr <<"--accepting rule at line "
01066                           <<(int)yy_rule_linenum[yy_act]
01067                           <<" (\""<<(char *)yy___text<<"\")"<<endl;
01068 #endif
01069         else if ( yy_act == YY_END_OF_BUFFER -1 )
01070 #ifndef YY_SSLScanner_IOSTREAM
01071             fprintf( yy___stderr , 
01072              "--accepting default rule (\"%s\")\n",
01073              yy___text );
01074 #else
01075             yy___stderr <<"--accepting default rule"
01076                           <<" (\""<<(char *)yy___text<<"\")"<<endl;
01077 #endif
01078         else if ( yy_act == YY_END_OF_BUFFER )
01079 #ifndef YY_SSLScanner_IOSTREAM
01080             fprintf( yy___stderr , "--(end of buffer or a NUL)\n" );
01081 #else
01082             yy___stderr <<"--(end of buffer or a NUL)"<<endl;
01083 #endif
01084         else
01085 #ifndef YY_SSLScanner_IOSTREAM
01086             fprintf( yy___stderr , "--EOF\n" );
01087 #else
01088             yy___stderr <<"--EOF"<<endl;
01089 #endif
01090         }
01091 #endif
01092     switch ( yy_act )
01093         {
01094 /* % actions go here */ 
01095 case 1:
01096 #line 65 "sslscanner.l"
01097 case 2:
01098 #line 65 "sslscanner.l"
01099 { return SSLParser::TOK_INTEGER; }
01100     YY_BREAK
01101 case 3:
01102 #line 67 "sslscanner.l"
01103 case 4:
01104 #line 67 "sslscanner.l"
01105 { return SSLParser::TOK_FLOAT; }
01106     YY_BREAK
01107 case 5:
01108 #line 68 "sslscanner.l"
01109 { return SSLParser::OPERAND; }
01110     YY_BREAK
01111 case 6:
01112 #line 70 "sslscanner.l"
01113 case 7:
01114 #line 70 "sslscanner.l"
01115 {
01116                yylval.str = strdup(yytext);
01117                return SSLParser::ENDIANNESS;
01118              }
01119     YY_BREAK
01120 case 8:
01121 #line 75 "sslscanner.l"
01122 case 9:
01123 #line 75 "sslscanner.l"
01124 {
01125                yylval.str = strdup(yytext);
01126                return SSLParser::BIG;
01127              }
01128     YY_BREAK
01129 case 10:
01130 #line 80 "sslscanner.l"
01131 case 11:
01132 #line 80 "sslscanner.l"
01133 {
01134                 yylval.str = strdup(yytext);
01135                 return SSLParser::LITTLE;
01136              }
01137     YY_BREAK
01138 case 12:
01139 #line 84 "sslscanner.l"
01140 { return SSLParser::COVERS; }
01141     YY_BREAK
01142 case 13:
01143 #line 85 "sslscanner.l"
01144 { return SSLParser::SHARES; }
01145     YY_BREAK
01146 case 14:
01147 #line 86 "sslscanner.l"
01148 { return SSLParser::FAST; }
01149     YY_BREAK
01150 case 15:
01151 #line 87 "sslscanner.l"
01152 { return SSLParser::FETCHEXEC; }
01153     YY_BREAK
01154 case 16:
01155 #line 89 "sslscanner.l"
01156 {
01157                 yylval.str = strdup(yytext);
01158                 return SSLParser::ASSIGNTYPE;
01159              }
01160     YY_BREAK
01161 case 17:
01162 #line 95 "sslscanner.l"
01163 case 18:
01164 #line 95 "sslscanner.l"
01165 {
01166                yylval.str = strdup(yytext);
01167                return SSLParser::LOG_OP;
01168              }
01169     YY_BREAK
01170 case 19:
01171 #line 100 "sslscanner.l"
01172 case 20:
01173 #line 101 "sslscanner.l"
01174 case 21:
01175 #line 102 "sslscanner.l"
01176 case 22:
01177 #line 103 "sslscanner.l"
01178 case 23:
01179 #line 104 "sslscanner.l"
01180 case 24:
01181 #line 105 "sslscanner.l"
01182 case 25:
01183 #line 106 "sslscanner.l"
01184 case 26:
01185 #line 107 "sslscanner.l"
01186 case 27:
01187 #line 108 "sslscanner.l"
01188 case 28:
01189 #line 108 "sslscanner.l"
01190 {
01191                yylval.str = strdup(yytext);
01192                return SSLParser::COND_OP;
01193              }
01194     YY_BREAK
01195 case 29:
01196 #line 114 "sslscanner.l"
01197 case 30:
01198 #line 115 "sslscanner.l"
01199 case 31:
01200 #line 116 "sslscanner.l"
01201 case 32:
01202 #line 117 "sslscanner.l"
01203 case 33:
01204 #line 118 "sslscanner.l"
01205 case 34:
01206 #line 119 "sslscanner.l"
01207 case 35:
01208 #line 120 "sslscanner.l"
01209 case 36:
01210 #line 121 "sslscanner.l"
01211 case 37:
01212 #line 122 "sslscanner.l"
01213 case 38:
01214 #line 122 "sslscanner.l"
01215 {
01216         yylval.str = strdup(yytext);
01217         return SSLParser::BIT_OP;
01218 
01219       }
01220     YY_BREAK
01221 case 39:
01222 #line 128 "sslscanner.l"
01223 case 40:
01224 #line 129 "sslscanner.l"
01225 case 41:
01226 #line 130 "sslscanner.l"
01227 case 42:
01228 #line 131 "sslscanner.l"
01229 case 43:
01230 #line 132 "sslscanner.l"
01231 case 44:
01232 #line 133 "sslscanner.l"
01233 case 45:
01234 #line 134 "sslscanner.l"
01235 case 46:
01236 #line 134 "sslscanner.l"
01237 {
01238         yylval.str = strdup(yytext);
01239         return SSLParser::ARITH_OP;
01240       }
01241     YY_BREAK
01242 case 47:
01243 #line 139 "sslscanner.l"
01244 case 48:
01245 #line 140 "sslscanner.l"
01246 case 49:
01247 #line 141 "sslscanner.l"
01248 case 50:
01249 #line 142 "sslscanner.l"
01250 case 51:
01251 #line 143 "sslscanner.l"
01252 case 52:
01253 #line 144 "sslscanner.l"
01254 case 53:
01255 #line 145 "sslscanner.l"
01256 case 54:
01257 #line 146 "sslscanner.l"
01258 case 55:
01259 #line 147 "sslscanner.l"
01260 case 56:
01261 #line 148 "sslscanner.l"
01262 case 57:
01263 #line 149 "sslscanner.l"
01264 case 58:
01265 #line 150 "sslscanner.l"
01266 case 59:
01267 #line 151 "sslscanner.l"
01268 case 60:
01269 #line 152 "sslscanner.l"
01270 case 61:
01271 #line 152 "sslscanner.l"
01272 {
01273         yylval.str = strdup(yytext);
01274         return SSLParser::FARITH_OP;
01275       }
01276     YY_BREAK
01277 case 62:
01278 #line 156 "sslscanner.l"
01279 {
01280         return SSLParser::NOT;
01281       }
01282     YY_BREAK
01283 case 63:
01284 #line 159 "sslscanner.l"
01285 {
01286         return SSLParser::LNOT;
01287       }
01288     YY_BREAK
01289 case 64:
01290 #line 162 "sslscanner.l"
01291 {
01292         return SSLParser::FNEG;
01293       }
01294     YY_BREAK
01295 case 65:
01296 #line 165 "sslscanner.l"
01297 {
01298         return SSLParser::THEN;
01299       }
01300     YY_BREAK
01301 case 66:
01302 #line 168 "sslscanner.l"
01303 {
01304         return SSLParser::INDEX;
01305        }
01306     YY_BREAK
01307 case 67:
01308 #line 171 "sslscanner.l"
01309 {
01310         return SSLParser::EQUATE;
01311       }
01312     YY_BREAK
01313 case 68:
01314 #line 174 "sslscanner.l"
01315 {
01316         yylval.str = strdup(yytext);
01317         return SSLParser::ASSIGN;
01318       }
01319     YY_BREAK
01320 case 69:
01321 #line 178 "sslscanner.l"
01322 {
01323         return SSLParser::TO;
01324       }
01325     YY_BREAK
01326 case 70:
01327 #line 181 "sslscanner.l"
01328 {
01329         return SSLParser::COLON;
01330       }
01331     YY_BREAK
01332 case 71:
01333 #line 184 "sslscanner.l"
01334 {
01335         return SSLParser::S_E;
01336       }
01337     YY_BREAK
01338 case 72:
01339 #line 187 "sslscanner.l"
01340 {
01341         return SSLParser::AT;
01342       }
01343     YY_BREAK
01344 case 73:
01345 #line 190 "sslscanner.l"
01346 {
01347                 return SSLParser::ADDR;
01348             }
01349     YY_BREAK
01350 case 74:
01351 #line 194 "sslscanner.l"
01352 case 75:
01353 #line 195 "sslscanner.l"
01354 case 76:
01355 #line 196 "sslscanner.l"
01356 case 77:
01357 #line 197 "sslscanner.l"
01358 case 78:
01359 #line 198 "sslscanner.l"
01360 case 79:
01361 #line 199 "sslscanner.l"
01362 case 80:
01363 #line 200 "sslscanner.l"
01364 case 81:
01365 #line 200 "sslscanner.l"
01366 {
01367                 yylval.str = strdup(yytext);
01368                 yylval.str[strlen(yylval.str)-1] = '\0';
01369                 return SSLParser::CONV_FUNC;
01370             }
01371     YY_BREAK
01372 case 82:
01373 #line 205 "sslscanner.l"
01374 {
01375                 yylval.str = strdup(yytext);
01376                 yylval.str[strlen(yylval.str)-1] = '\0';
01377                 return SSLParser::TRUNC_FUNC;
01378             }
01379     YY_BREAK
01380 case 83:
01381 #line 210 "sslscanner.l"
01382 {
01383                 yylval.str = strdup(yytext);
01384                 yylval.str[strlen(yylval.str)-1] = '\0';
01385                 return SSLParser::FABS_FUNC;
01386             }
01387     YY_BREAK
01388 case 84:
01389 #line 216 "sslscanner.l"
01390 case 85:
01391 #line 216 "sslscanner.l"
01392 {
01393                 return SSLParser::FLAGMACRO;
01394                 }
01395     YY_BREAK
01396 case 86:
01397 #line 219 "sslscanner.l"
01398 {   return SSLParser::FPOP; }
01399     YY_BREAK
01400 case 87:
01401 #line 220 "sslscanner.l"
01402 {   return SSLParser::FPUSH; }
01403     YY_BREAK
01404 case 88:
01405 #line 222 "sslscanner.l"
01406 case 89:
01407 #line 223 "sslscanner.l"
01408 case 90:
01409 #line 224 "sslscanner.l"
01410 case 91:
01411 #line 225 "sslscanner.l"
01412 case 92:
01413 #line 226 "sslscanner.l"
01414 case 93:
01415 #line 227 "sslscanner.l"
01416 case 94:
01417 #line 228 "sslscanner.l"
01418 case 95:
01419 #line 229 "sslscanner.l"
01420 case 96:
01421 #line 229 "sslscanner.l"
01422 {
01423                 yylval.str = strdup(yytext);
01424                 yylval.str[strlen(yylval.str)-1] = '\0';
01425                 return SSLParser::TRANSCEND;
01426             }
01427     YY_BREAK
01428 case 97:
01429 #line 235 "sslscanner.l"
01430 {
01431                 return SSLParser::SUCCESSOR;
01432             }
01433     YY_BREAK
01434 case 98:
01435 #line 239 "sslscanner.l"
01436 {
01437                 yylval.str = strdup(yytext);
01438                 return SSLParser::TEMP;
01439             }
01440     YY_BREAK
01441 case 99:
01442 #line 244 "sslscanner.l"
01443 {   return SSLParser::REG_IDX; }
01444     YY_BREAK
01445 case 100:
01446 #line 245 "sslscanner.l"
01447 {   yylval.str = strdup(yytext);
01448                 return SSLParser::REG_NUM; }
01449     YY_BREAK
01450 case 101:
01451 #line 247 "sslscanner.l"
01452 {   return SSLParser::MEM_IDX; }
01453     YY_BREAK
01454 case 102:
01455 #line 248 "sslscanner.l"
01456 {   return yytext[0];   }
01457     YY_BREAK
01458 case 103:
01459 #line 249 "sslscanner.l"
01460 {
01461                 yylval.str = strdup(yytext);
01462                 return SSLParser::REG_ID;
01463             }
01464     YY_BREAK
01465 case 104:
01466 #line 253 "sslscanner.l"
01467 {
01468                 yylval.str = strdup(yytext);
01469                 yylval.str[strlen(yylval.str)-1] = '\0';
01470                 return SSLParser::NAME_CALL;
01471             }
01472     YY_BREAK
01473 case 105:
01474 #line 258 "sslscanner.l"
01475 {
01476                 yylval.str = strdup(yytext);
01477                 yylval.str[strlen(yylval.str)-1] = '\0';
01478                 return SSLParser::NAME_LOOKUP;
01479             }
01480     YY_BREAK
01481 case 106:
01482 #line 263 "sslscanner.l"
01483 {
01484                 yylval.str = strdup(yytext);
01485                 return SSLParser::NAME;
01486             }
01487     YY_BREAK
01488 case 107:
01489 #line 268 "sslscanner.l"
01490 case 108:
01491 #line 268 "sslscanner.l"
01492 {
01493                     yylval.str = strdup(yytext);
01494                     return SSLParser::DECOR;
01495             }
01496     YY_BREAK
01497 case 109:
01498 #line 272 "sslscanner.l"
01499 {   return yytext[0];   }
01500     YY_BREAK
01501 case 110:
01502 #line 273 "sslscanner.l"
01503 {   return yytext[0];   }
01504     YY_BREAK
01505 case 111:
01506 #line 274 "sslscanner.l"
01507 {   return yytext[0];   }
01508     YY_BREAK
01509 case 112:
01510 #line 275 "sslscanner.l"
01511 {   return yytext[0];   }
01512     YY_BREAK
01513 case 113:
01514 #line 276 "sslscanner.l"
01515 {   return yytext[0];   }
01516     YY_BREAK
01517 case 114:
01518 #line 277 "sslscanner.l"
01519 {
01520         yylval.dbl = atof(yytext);
01521         return SSLParser::FLOATNUM;
01522      }
01523     YY_BREAK
01524 case 115:
01525 #line 281 "sslscanner.l"
01526 {
01527         yylval.num = strtol(yytext,0,10);
01528         return SSLParser::NUM;
01529      }
01530     YY_BREAK
01531 case 116:
01532 #line 286 "sslscanner.l"
01533 {
01534         yylval.num = strtol(yytext,0,16);
01535         return SSLParser::NUM;
01536      }
01537     YY_BREAK
01538 case 117:
01539 #line 291 "sslscanner.l"
01540 {
01541                     // a power of two
01542                     int sign = (yytext[0] == '-' ? -1 : 1);
01543                     char* start = yytext + (sign == -1 ? 4:3);
01544 
01545                         // David - changed to << for more efficient and 
01546                         // not depend on the <cmath> anymore.
01547                     yylval.num = 1 << (strtol(start,0,10) * sign);
01548                         // yylval.num = (int)pow(2,strtol(start,0,10)) * sign;
01549                     return SSLParser::NUM;
01550                 }
01551     YY_BREAK
01552 case 118:
01553 #line 303 "sslscanner.l"
01554 ;
01555     YY_BREAK
01556 case 119:
01557 #line 304 "sslscanner.l"
01558 ;   /* comment */
01559     YY_BREAK
01560 case 120:
01561 #line 305 "sslscanner.l"
01562 ;
01563     YY_BREAK
01564 case 121:
01565 #line 306 "sslscanner.l"
01566 {   // funky print-next-line-for-debug token
01567                     if (yyleng > MAX_LINE)
01568                     {
01569                         std::cerr << theLine + 1 << ": line too long.\n";
01570                         exit(1);
01571                     }
01572                     // saves the next line
01573                     strcpy(lineBuf, yytext+1);
01574                     theLine++;
01575                     // reparse from char 1
01576                     // give back all but the \n to rescan
01577                     yyless(1);
01578 
01579                     // echo the line if line tracing is turned on
01580                     if (traceLines)
01581                     std::cerr << lineBuf << std::endl;
01582 
01583                     // Quell a warning
01584                     yy_last_accepting_state = 0;
01585                     yy_last_accepting_cpos = 0;
01586                 }
01587     YY_BREAK
01588 case 122:
01589 #line 327 "sslscanner.l"
01590 ECHO;
01591     YY_BREAK
01592         case YY_STATE_EOF(INITIAL):
01593         yyterminate();
01594 #line 493 "//usr/local/lib/flexskel.cc"
01595 
01596         case YY_END_OF_BUFFER:
01597         {
01598         /* amount of text matched not including the EOB char */
01599         int yy_amount_of_matched_text = yy_cp - yy___text - 1;
01600 
01601         /* undo the effects of YY_DO_BEFORE_ACTION */
01602         *yy_cp = yy_hold_char;
01603 
01604         /* note that here we test for yy_c_buf_p "<=" to the position
01605          * of the first EOB in the buffer, since yy_c_buf_p will
01606          * already have been incremented past the NUL character
01607          * (since all states make transitions on EOB to the end-
01608          * of-buffer state).  Contrast this with the test in yyinput().
01609          */
01610         if ( yy_c_buf_p <= &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[yy_n_chars] )
01611             /* this was really a NUL */
01612             {
01613             yy_state_type yy_next_state;
01614 
01615             yy_c_buf_p = yy___text + yy_amount_of_matched_text;
01616 
01617             yy_current_state = yy_get_previous_state();
01618 
01619             /* okay, we're now positioned to make the
01620              * NUL transition.  We couldn't have
01621              * yy_get_previous_state() go ahead and do it
01622              * for us because it doesn't know how to deal
01623              * with the possibility of jamming (and we
01624              * don't want to build jamming into it because
01625              * then it will run more slowly)
01626              */
01627 
01628             yy_next_state = yy_try_NUL_trans( yy_current_state );
01629 
01630             yy_bp = yy___text + YY_MORE_ADJ;
01631 
01632             if ( yy_next_state )
01633             {
01634             /* consume the NUL */
01635             yy_cp = ++yy_c_buf_p;
01636             yy_current_state = yy_next_state;
01637             goto yy_match;
01638             }
01639 
01640             else
01641             {
01642 /* % code to do backtracking for compressed tables and set up yy_cp goes here */ 
01643 #line 541 "//usr/local/lib/flexskel.cc"
01644             goto yy_find_action;
01645             }
01646             }
01647 
01648         else switch ( yy_get_next_buffer() )
01649             {
01650             case EOB_ACT_END_OF_FILE:
01651             {
01652             yy_did_buffer_switch_on_eof = 0;
01653 
01654             if ( yywrap() )
01655                 {
01656                 /* note: because we've taken care in
01657                  * yy_get_next_buffer() to have set up yy___text,
01658                  * we can now set up yy_c_buf_p so that if some
01659                  * total hoser (like flex itself) wants
01660                  * to call the scanner after we return the
01661                  * YY_NULL, it'll still work - another YY_NULL
01662                  * will get returned.
01663                  */
01664                 yy_c_buf_p = yy___text + YY_MORE_ADJ;
01665 
01666                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
01667                 goto do_action;
01668                 }
01669 
01670             else
01671                 {
01672                 if ( ! yy_did_buffer_switch_on_eof )
01673                 YY_NEW_FILE;
01674                 }
01675             }
01676             break;
01677 
01678             case EOB_ACT_CONTINUE_SCAN:
01679             yy_c_buf_p = yy___text + yy_amount_of_matched_text;
01680 
01681             yy_current_state = yy_get_previous_state();
01682 
01683             yy_cp = yy_c_buf_p;
01684             yy_bp = yy___text + YY_MORE_ADJ;
01685             goto yy_match;
01686 
01687             case EOB_ACT_LAST_MATCH:
01688             yy_c_buf_p =
01689                 &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[yy_n_chars];
01690 
01691             yy_current_state = yy_get_previous_state();
01692 
01693             yy_cp = yy_c_buf_p;
01694             yy_bp = yy___text + YY_MORE_ADJ;
01695             goto yy_find_action;
01696             }
01697         break;
01698         }
01699 
01700         default:
01701 #if YY_SSLScanner_DEBUG != 0
01702 #ifndef YY_SSLScanner_IOSTREAM
01703         fprintf(yy___stderr , "action # %d\n", yy_act );
01704 #else
01705         yy___stderr <<"action # "<<(int)yy_act<<endl;
01706 #endif
01707 #endif
01708         YY_FATAL_ERROR(
01709             "fatal flex scanner internal error--no action found" );
01710         }
01711     }
01712     yyterminate();/* avoid the no return value error message on MS-C7/dos */
01713     }
01714 
01715 
01716 /* yy_get_next_buffer - try to read in a new buffer
01717  *
01718  * synopsis
01719  *     int yy_get_next_buffer();
01720  *     
01721  * returns a code representing an action
01722  *     EOB_ACT_LAST_MATCH - 
01723  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01724  *     EOB_ACT_END_OF_FILE - end of file
01725  */
01726 #ifndef YY_USE_CLASS
01727 static int yy_get_next_buffer()
01728 #else
01729 int YY_SSLScanner_CLASS::yy_get_next_buffer()
01730 #endif
01731     {
01732     register YY_SSLScanner_CHAR *dest = YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf;
01733     register YY_SSLScanner_CHAR *source = yy___text - 1; /* copy prev. char, too */
01734     register int number_to_move, i;
01735     int ret_val;
01736 
01737     if ( yy_c_buf_p > &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[yy_n_chars + 1] )
01738     YY_FATAL_ERROR(
01739         "fatal flex scanner internal error--end of buffer missed" );
01740 
01741     /* try to read more data */
01742 
01743     /* first move last chars to start of buffer */
01744     number_to_move = yy_c_buf_p - yy___text;
01745 
01746     for ( i = 0; i < number_to_move; ++i )
01747     *(dest++) = *(source++);
01748 
01749     if ( YY_SSLScanner_CURRENT_BUFFER->yy_eof_status != EOF_NOT_SEEN )
01750     /* don't do the read, it's not guaranteed to return an EOF,
01751      * just force an EOF
01752      */
01753     yy_n_chars = 0;
01754 
01755     else
01756     {
01757     int num_to_read = YY_SSLScanner_CURRENT_BUFFER->yy_buf_size - number_to_move - 1;
01758 
01759     if ( num_to_read > YY_READ_BUF_SIZE )
01760         num_to_read = YY_READ_BUF_SIZE;
01761 
01762     else if ( num_to_read <= 0 )
01763         YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
01764 
01765     /* read in more data */
01766     YY_INPUT( (&YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[number_to_move]),
01767           yy_n_chars, num_to_read );
01768     }
01769 
01770     if ( yy_n_chars == 0 )
01771     {
01772     if ( number_to_move - YY_MORE_ADJ == 1 )
01773         {
01774         ret_val = EOB_ACT_END_OF_FILE;
01775         YY_SSLScanner_CURRENT_BUFFER->yy_eof_status = EOF_DONE;
01776         }
01777 
01778     else
01779         {
01780         ret_val = EOB_ACT_LAST_MATCH;
01781         YY_SSLScanner_CURRENT_BUFFER->yy_eof_status = EOF_PENDING;
01782         }
01783     }
01784 
01785     else
01786     ret_val = EOB_ACT_CONTINUE_SCAN;
01787 
01788     yy_n_chars += number_to_move;
01789     YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
01790     YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
01791 
01792     /* yy___text begins at the second character in yy_ch_buf; the first
01793      * character is the one which preceded it before reading in the latest
01794      * buffer; it needs to be kept around in case it's a newline, so
01795      * yy_get_previous_state() will have with '^' rules active
01796      */
01797 
01798     yy___text = &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[1];
01799 
01800     return ( ret_val );
01801     }
01802 
01803 
01804 /* yy_get_previous_state - get the state just before the EOB char was reached
01805  *
01806  * synopsis
01807  *     yy_state_type yy_get_previous_state();
01808  */
01809 
01810 #ifndef YY_USE_CLASS
01811 static yy_state_type yy_get_previous_state()
01812 #else
01813 long YY_SSLScanner_CLASS::yy_get_previous_state_()
01814 #endif
01815     {
01816     register yy_state_type yy_current_state;
01817     register YY_SSLScanner_CHAR *yy_cp;
01818 
01819 /* % code to get the start state into yy_current_state goes here */ 
01820     yy_current_state = yy_start;
01821     yy_state_ptr = yy_state_buf;
01822     *yy_state_ptr++ = yy_current_state;
01823 #line 717 "//usr/local/lib/flexskel.cc"
01824 
01825     for ( yy_cp = yy___text + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
01826     {
01827 /* % code to find the next state goes here */ 
01828     register YY_CHAR yy_c = (*yy_cp ? yy_ec[(unsigned char)*yy_cp] : 1);
01829     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01830         {
01831         yy_current_state = yy_def[yy_current_state];
01832         if ( yy_current_state >= 336 )
01833         yy_c = yy_meta[(unsigned char)yy_c];
01834         }
01835     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
01836     *yy_state_ptr++ = yy_current_state;
01837 #line 721 "//usr/local/lib/flexskel.cc"
01838     }
01839 
01840 #ifndef YY_USE_CLASS
01841     return ( yy_current_state );
01842 #else
01843     return (long)( yy_current_state );
01844 #endif
01845     }
01846 
01847 
01848 /* yy_try_NUL_trans - try to make a transition on the NUL character
01849  *
01850  * synopsis
01851  *     next_state = yy_try_NUL_trans( current_state );
01852  */
01853 
01854 #ifndef YY_USE_CLASS
01855 #ifdef YY_USE_PROTOS
01856 static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
01857 #else
01858 static yy_state_type yy_try_NUL_trans( yy_current_state )
01859 register yy_state_type yy_current_state;
01860 #endif
01861 #else
01862 long YY_SSLScanner_CLASS::yy_try_NUL_trans_(long yy_current_state_)
01863 #endif
01864 
01865     {
01866 #ifndef YY_USE_CLASS
01867 #else
01868     yy_state_type yy_current_state=(yy_state_type)yy_current_state_;
01869 #endif
01870     register int yy_is_jam;
01871 /* % code to find the next state, and perhaps do backtracking, goes here */ 
01872 
01873     register YY_CHAR yy_c = 1;
01874     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01875     {
01876     yy_current_state = yy_def[yy_current_state];
01877     if ( yy_current_state >= 336 )
01878         yy_c = yy_meta[(unsigned char)yy_c];
01879     }
01880     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
01881     *yy_state_ptr++ = yy_current_state;
01882     yy_is_jam = (yy_current_state == 335);
01883 #line 755 "//usr/local/lib/flexskel.cc"
01884 
01885 #ifndef YY_USE_CLASS
01886     return ( yy_is_jam ? 0 : yy_current_state );
01887 #else
01888     return (long)( yy_is_jam ? 0 : yy_current_state );
01889 #endif
01890     }
01891 
01892 #ifndef YY_USE_CLASS
01893 #ifdef YY_USE_PROTOS
01894 static void yyunput( YY_SSLScanner_CHAR c, register YY_SSLScanner_CHAR *yy_bp )
01895 #else
01896 static void yyunput( c, yy_bp )
01897 YY_SSLScanner_CHAR c;
01898 register YY_SSLScanner_CHAR *yy_bp;
01899 #endif
01900 #else
01901 void YY_SSLScanner_CLASS::yyunput( YY_SSLScanner_CHAR c, YY_SSLScanner_CHAR *yy_bp )
01902 #endif
01903 
01904     {
01905     register YY_SSLScanner_CHAR *yy_cp = yy_c_buf_p;
01906 
01907     /* undo effects of setting up yy___text */
01908     *yy_cp = yy_hold_char;
01909 
01910     if ( yy_cp < YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf + 2 )
01911     { /* need to shift things up to make room */
01912     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
01913     register YY_SSLScanner_CHAR *dest =
01914         &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[YY_SSLScanner_CURRENT_BUFFER->yy_buf_size + 2];
01915     register YY_SSLScanner_CHAR *source =
01916         &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[number_to_move];
01917 
01918     while ( source > YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf )
01919         *--dest = *--source;
01920 
01921     yy_cp += dest - source;
01922     yy_bp += dest - source;
01923     yy_n_chars = YY_SSLScanner_CURRENT_BUFFER->yy_buf_size;
01924 
01925     if ( yy_cp < YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf + 2 )
01926         YY_FATAL_ERROR( "flex scanner push-back overflow" );
01927     }
01928 
01929     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
01930     yy_cp[-2] = '\n';
01931 
01932     *--yy_cp = c;
01933 
01934     /* note: the formal parameter *must* be called "yy_bp" for this
01935      *       macro to now work correctly
01936      */
01937     YY_DO_BEFORE_ACTION; /* set up yy___text again */
01938     }
01939 
01940 #ifndef YY_USE_CLASS
01941 #ifdef __cplusplus
01942 static int yyinput()
01943 #else
01944 static int input()
01945 #endif
01946 #else
01947 int YY_SSLScanner_CLASS::input()
01948 #endif
01949     {
01950     int c;
01951     YY_SSLScanner_CHAR *yy_cp = yy_c_buf_p;
01952 
01953     *yy_cp = yy_hold_char;
01954 
01955     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01956     {
01957     /* yy_c_buf_p now points to the character we want to return.
01958      * If this occurs *before* the EOB characters, then it's a
01959      * valid NUL; if not, then we've hit the end of the buffer.
01960      */
01961     if ( yy_c_buf_p < &YY_SSLScanner_CURRENT_BUFFER->yy_ch_buf[yy_n_chars] )
01962         /* this was really a NUL */
01963         *yy_c_buf_p = '\0';
01964 
01965     else
01966         { /* need more input */
01967         yy___text = yy_c_buf_p;
01968         ++yy_c_buf_p;
01969 
01970         switch ( yy_get_next_buffer() )
01971         {
01972         case EOB_ACT_END_OF_FILE:
01973             {
01974             if ( yywrap() )
01975             {
01976             yy_c_buf_p = yy___text + YY_MORE_ADJ;
01977             return ( EOF );
01978             }
01979 
01980             YY_NEW_FILE;
01981 #ifndef YY_USE_CLASS
01982 #ifdef __cplusplus
01983             return ( yyinput() );
01984 #else
01985             return ( input() );
01986 #endif
01987 #else
01988             return ( input() );
01989 #endif
01990             }
01991             break;
01992 
01993         case EOB_ACT_CONTINUE_SCAN:
01994             yy_c_buf_p = yy___text + YY_MORE_ADJ;
01995             break;
01996 
01997         case EOB_ACT_LAST_MATCH:
01998 #ifndef YY_USE_CLASS
01999 #ifdef __cplusplus
02000             YY_FATAL_ERROR( "unexpected last match in yyinput()" );
02001 #else
02002             YY_FATAL_ERROR( "unexpected last match in input()" );
02003 #endif
02004 #else
02005             YY_FATAL_ERROR( "unexpected last match in YY_SSLScanner_CLASS::input()" );
02006 #endif
02007         }
02008         }
02009     }
02010 
02011     c = *yy_c_buf_p;
02012     yy_hold_char = *++yy_c_buf_p;
02013 
02014     return ( c );
02015     }
02016 
02017 
02018 #ifndef YY_USE_CLASS
02019 #ifdef YY_USE_PROTOS
02020 void YY_SSLScanner_RESTART( YY_SSLScanner_IFILE  *input_file )
02021 #else
02022 void YY_SSLScanner_RESTART( input_file )
02023 YY_SSLScanner_IFILE  *input_file;
02024 #endif
02025 #else
02026 void YY_SSLScanner_CLASS::YY_SSLScanner_RESTART ( YY_SSLScanner_IFILE  *input_file )
02027 #endif
02028 
02029     {
02030     YY_SSLScanner_INIT_BUFFER( YY_SSLScanner_CURRENT_BUFFER, input_file );
02031     YY_SSLScanner_LOAD_BUFFER_STATE();
02032     }
02033 
02034 
02035 #ifndef YY_USE_CLASS
02036 #ifdef YY_USE_PROTOS
02037 void YY_SSLScanner_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer )
02038 #else
02039 void YY_SSLScanner_SWITCH_TO_BUFFER( new_buffer )
02040 YY_BUFFER_STATE new_buffer;
02041 #endif
02042 #else
02043 void YY_SSLScanner_CLASS::YY_SSLScanner_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer )
02044 #endif
02045 
02046     {
02047     if ( YY_SSLScanner_CURRENT_BUFFER == new_buffer )
02048     return;
02049 
02050     if ( YY_SSLScanner_CURRENT_BUFFER )
02051     {
02052     /* flush out information for old buffer */
02053     *yy_c_buf_p = yy_hold_char;
02054     YY_SSLScanner_CURRENT_BUFFER->yy_buf_pos = yy_c_buf_p;
02055     YY_SSLScanner_CURRENT_BUFFER->yy_n_chars = yy_n_chars;
02056     }
02057 
02058     YY_SSLScanner_CURRENT_BUFFER = new_buffer;
02059     YY_SSLScanner_LOAD_BUFFER_STATE();
02060 
02061     /* we don't actually know whether we did this switch during
02062      * EOF (yywrap()) processing, but the only time this flag
02063      * is looked at is after yywrap() is called, so it's safe
02064      * to go ahead and always set it.
02065      */
02066     yy_did_buffer_switch_on_eof = 1;
02067     }
02068 
02069 
02070 #ifndef YY_USE_CLASS
02071 #ifdef YY_USE_PROTOS
02072 void YY_SSLScanner_LOAD_BUFFER_STATE( void )
02073 #else
02074 void YY_SSLScanner_LOAD_BUFFER_STATE()
02075 #endif
02076 #else
02077 void YY_SSLScanner_CLASS::YY_SSLScanner_LOAD_BUFFER_STATE(  )
02078 #endif
02079 
02080     {
02081     yy_n_chars = YY_SSLScanner_CURRENT_BUFFER->yy_n_chars;
02082     yy___text = yy_c_buf_p = YY_SSLScanner_CURRENT_BUFFER->yy_buf_pos;
02083     yy___in = YY_SSLScanner_CURRENT_BUFFER->yy_input_file;
02084     yy_hold_char = *yy_c_buf_p;
02085     }
02086 
02087 
02088 #ifndef YY_USE_CLASS
02089 #ifdef YY_USE_PROTOS
02090 YY_BUFFER_STATE YY_SSLScanner_CREATE_BUFFER( YY_SSLScanner_IFILE  *file, int size )
02091 #else
02092 YY_BUFFER_STATE YY_SSLScanner_CREATE_BUFFER( file, size )
02093 YY_SSLScanner_IFILE  *file;
02094 int size;
02095 #endif
02096 #else
02097 YY_BUFFER_STATE YY_SSLScanner_CLASS::YY_SSLScanner_CREATE_BUFFER( YY_SSLScanner_IFILE  *file, int size )
02098 #endif
02099 
02100     {
02101     YY_BUFFER_STATE b;
02102 
02103     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
02104 
02105     if ( ! b )
02106     YY_FATAL_ERROR( "out of dynamic memory in YY_SSLScanner_CREATE_BUFFER()" );
02107 
02108     b->yy_buf_size = size;
02109 
02110     /* yy_ch_buf has to be 2 characters longer than the size given because
02111      * we need to put in 2 end-of-buffer characters.
02112      */
02113     b->yy_ch_buf = (YY_SSLScanner_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
02114 
02115     if ( ! b->yy_ch_buf )
02116     YY_FATAL_ERROR( "out of dynamic memory in YY_SSLScanner_CREATE_BUFFER()" );
02117 
02118     YY_SSLScanner_INIT_BUFFER( b, file );
02119 
02120     return ( b );
02121     }
02122 
02123 
02124 #ifndef YY_USE_CLASS
02125 #ifdef YY_USE_PROTOS
02126 void YY_SSLScanner_DELETE_BUFFER( YY_BUFFER_STATE b )
02127 #else
02128 void YY_SSLScanner_DELETE_BUFFER( b )
02129 YY_BUFFER_STATE b;
02130 #endif
02131 #else
02132 void YY_SSLScanner_CLASS::YY_SSLScanner_DELETE_BUFFER( YY_BUFFER_STATE b )
02133 #endif
02134 
02135     {
02136     if ( b == YY_SSLScanner_CURRENT_BUFFER )
02137     YY_SSLScanner_CURRENT_BUFFER = (YY_BUFFER_STATE) 0;
02138 
02139     free( (char *) b->yy_ch_buf );
02140     free( (char *) b );
02141     }
02142 
02143 
02144 #ifndef YY_USE_CLASS
02145 #ifdef YY_USE_PROTOS
02146 void YY_SSLScanner_INIT_BUFFER( YY_BUFFER_STATE b, YY_SSLScanner_IFILE  *file )
02147 #else
02148 void YY_SSLScanner_INIT_BUFFER( b, file )
02149 YY_BUFFER_STATE b;
02150 YY_SSLScanner_IFILE  *file;
02151 #endif
02152 #else
02153 void YY_SSLScanner_CLASS::YY_SSLScanner_INIT_BUFFER( YY_BUFFER_STATE b, YY_SSLScanner_IFILE  *file)
02154 #endif
02155 
02156     {
02157     b->yy_input_file = file;
02158 
02159     /* we put in the '\n' and start reading from [1] so that an
02160      * initial match-at-newline will be true.
02161      */
02162 
02163     b->yy_ch_buf[0] = '\n';
02164     b->yy_n_chars = 1;
02165 
02166     /* we always need two end-of-buffer characters.  The first causes
02167      * a transition to the end-of-buffer state.  The second causes
02168      * a jam in that state.
02169      */
02170     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02171     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
02172 
02173     b->yy_buf_pos = &b->yy_ch_buf[1];
02174 
02175     b->yy_eof_status = EOF_NOT_SEEN;
02176     }
02177 #line 327 "sslscanner.l"
02178 

Generated on Tue Sep 19 21:18:33 2006 for Boomerang by  doxygen 1.4.6