security/nss/cmd/crlutil/crlgen_lex.c

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 /* A lexical scanner generated by flex */
     7 #define FLEX_SCANNER
     8 #define YY_FLEX_MAJOR_VERSION 2
     9 #define YY_FLEX_MINOR_VERSION 5
    11 #include <stdio.h>
    12 #ifdef _WIN32
    13 #include <io.h>
    14 #else
    15 #include <unistd.h>
    16 #endif
    18 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
    19 #ifdef c_plusplus
    20 #ifndef __cplusplus
    21 #define __cplusplus
    22 #endif
    23 #endif
    25 #ifdef __cplusplus
    27 #include <stdlib.h>
    29 /* Use prototypes in function declarations. */
    30 #define YY_USE_PROTOS
    32 /* The "const" storage-class-modifier is valid. */
    33 #define YY_USE_CONST
    35 #else	/* ! __cplusplus */
    37 #if __STDC__
    39 #define YY_USE_PROTOS
    40 #define YY_USE_CONST
    42 #endif	/* __STDC__ */
    43 #endif	/* ! __cplusplus */
    45 #ifdef __TURBOC__
    46  #pragma warn -rch
    47  #pragma warn -use
    48 #include <io.h>
    49 #include <stdlib.h>
    50 #define YY_USE_CONST
    51 #define YY_USE_PROTOS
    52 #endif
    54 #ifdef YY_USE_CONST
    55 #define yyconst const
    56 #else
    57 #define yyconst
    58 #endif
    61 #ifdef YY_USE_PROTOS
    62 #define YY_PROTO(proto) proto
    63 #else
    64 #define YY_PROTO(proto) ()
    65 #endif
    67 /* Returned upon end-of-file. */
    68 #define YY_NULL 0
    70 /* Promotes a possibly negative, possibly signed char to an unsigned
    71  * integer for use as an array index.  If the signed char is negative,
    72  * we want to instead treat it as an 8-bit unsigned char, hence the
    73  * double cast.
    74  */
    75 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
    77 /* Enter a start condition.  This macro really ought to take a parameter,
    78  * but we do it the disgusting crufty way forced on us by the ()-less
    79  * definition of BEGIN.
    80  */
    81 #define BEGIN yy_start = 1 + 2 *
    83 /* Translate the current start state into a value that can be later handed
    84  * to BEGIN to return to the state.  The YYSTATE alias is for lex
    85  * compatibility.
    86  */
    87 #define YY_START ((yy_start - 1) / 2)
    88 #define YYSTATE YY_START
    90 /* Action number for EOF rule of a given start state. */
    91 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
    93 /* Special action meaning "start processing a new file". */
    94 #define YY_NEW_FILE yyrestart( yyin )
    96 #define YY_END_OF_BUFFER_CHAR 0
    98 /* Size of default input buffer. */
    99 #define YY_BUF_SIZE 16384
   101 typedef struct yy_buffer_state *YY_BUFFER_STATE;
   103 extern int yyleng;
   104 extern FILE *yyin, *yyout;
   106 #define EOB_ACT_CONTINUE_SCAN 0
   107 #define EOB_ACT_END_OF_FILE 1
   108 #define EOB_ACT_LAST_MATCH 2
   110 /* The funky do-while in the following #define is used to turn the definition
   111  * int a single C statement (which needs a semi-colon terminator).  This
   112  * avoids problems with code like:
   113  *
   114  * 	if ( condition_holds )
   115  *		yyless( 5 );
   116  *	else
   117  *		do_something_else();
   118  *
   119  * Prior to using the do-while the compiler would get upset at the
   120  * "else" because it interpreted the "if" statement as being all
   121  * done when it reached the ';' after the yyless() call.
   122  */
   124 /* Return all but the first 'n' matched characters back to the input stream. */
   126 #define yyless(n) \
   127 	do \
   128 		{ \
   129 		/* Undo effects of setting up yytext. */ \
   130 		*yy_cp = yy_hold_char; \
   131 		YY_RESTORE_YY_MORE_OFFSET \
   132 		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
   133 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
   134 		} \
   135 	while ( 0 )
   137 #define unput(c) yyunput( c, yytext_ptr )
   139 /* The following is because we cannot portably get our hands on size_t
   140  * (without autoconf's help, which isn't available because we want
   141  * flex-generated scanners to compile on their own).
   142  */
   143 typedef unsigned int yy_size_t;
   146 struct yy_buffer_state
   147 	{
   148 	FILE *yy_input_file;
   150 	char *yy_ch_buf;		/* input buffer */
   151 	char *yy_buf_pos;		/* current position in input buffer */
   153 	/* Size of input buffer in bytes, not including room for EOB
   154 	 * characters.
   155 	 */
   156 	yy_size_t yy_buf_size;
   158 	/* Number of characters read into yy_ch_buf, not including EOB
   159 	 * characters.
   160 	 */
   161 	int yy_n_chars;
   163 	/* Whether we "own" the buffer - i.e., we know we created it,
   164 	 * and can realloc() it to grow it, and should free() it to
   165 	 * delete it.
   166 	 */
   167 	int yy_is_our_buffer;
   169 	/* Whether this is an "interactive" input source; if so, and
   170 	 * if we're using stdio for input, then we want to use getc()
   171 	 * instead of fread(), to make sure we stop fetching input after
   172 	 * each newline.
   173 	 */
   174 	int yy_is_interactive;
   176 	/* Whether we're considered to be at the beginning of a line.
   177 	 * If so, '^' rules will be active on the next match, otherwise
   178 	 * not.
   179 	 */
   180 	int yy_at_bol;
   182 	/* Whether to try to fill the input buffer when we reach the
   183 	 * end of it.
   184 	 */
   185 	int yy_fill_buffer;
   187 	int yy_buffer_status;
   188 #define YY_BUFFER_NEW 0
   189 #define YY_BUFFER_NORMAL 1
   190 	/* When an EOF's been seen but there's still some text to process
   191 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
   192 	 * shouldn't try reading from the input source any more.  We might
   193 	 * still have a bunch of tokens to match, though, because of
   194 	 * possible backing-up.
   195 	 *
   196 	 * When we actually see the EOF, we change the status to "new"
   197 	 * (via yyrestart()), so that the user can continue scanning by
   198 	 * just pointing yyin at a new input file.
   199 	 */
   200 #define YY_BUFFER_EOF_PENDING 2
   201 	};
   203 static YY_BUFFER_STATE yy_current_buffer = 0;
   205 /* We provide macros for accessing buffer states in case in the
   206  * future we want to put the buffer states in a more general
   207  * "scanner state".
   208  */
   209 #define YY_CURRENT_BUFFER yy_current_buffer
   212 /* yy_hold_char holds the character lost when yytext is formed. */
   213 static char yy_hold_char;
   215 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
   218 int yyleng;
   220 /* Points to current character in buffer. */
   221 static char *yy_c_buf_p = (char *) 0;
   222 static int yy_init = 1;		/* whether we need to initialize */
   223 static int yy_start = 0;	/* start state number */
   225 /* Flag which is used to allow yywrap()'s to do buffer switches
   226  * instead of setting up a fresh yyin.  A bit of a hack ...
   227  */
   228 static int yy_did_buffer_switch_on_eof;
   230 void yyrestart YY_PROTO(( FILE *input_file ));
   232 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
   233 void yy_load_buffer_state YY_PROTO(( void ));
   234 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
   235 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
   236 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
   237 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
   238 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
   240 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
   241 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
   242 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
   244 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
   245 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
   246 static void yy_flex_free YY_PROTO(( void * ));
   248 #define yy_new_buffer yy_create_buffer
   250 #define yy_set_interactive(is_interactive) \
   251 	{ \
   252 	if ( ! yy_current_buffer ) \
   253 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
   254 	yy_current_buffer->yy_is_interactive = is_interactive; \
   255 	}
   257 #define yy_set_bol(at_bol) \
   258 	{ \
   259 	if ( ! yy_current_buffer ) \
   260 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
   261 	yy_current_buffer->yy_at_bol = at_bol; \
   262 	}
   264 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
   266 typedef unsigned char YY_CHAR;
   267 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
   268 typedef int yy_state_type;
   269 extern char *yytext;
   270 #define yytext_ptr yytext
   272 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
   273 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
   274 static int yy_get_next_buffer YY_PROTO(( void ));
   275 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
   277 /* Done after the current pattern has been matched and before the
   278  * corresponding action - sets up yytext.
   279  */
   280 #define YY_DO_BEFORE_ACTION \
   281 	yytext_ptr = yy_bp; \
   282 	yytext_ptr -= yy_more_len; \
   283 	yyleng = (int) (yy_cp - yytext_ptr); \
   284 	yy_hold_char = *yy_cp; \
   285 	*yy_cp = '\0'; \
   286 	yy_c_buf_p = yy_cp;
   288 #define YY_NUM_RULES 17
   289 #define YY_END_OF_BUFFER 18
   290 static yyconst short int yy_accept[67] =
   291     {   0,
   292         0,    0,   18,   16,   14,   15,   16,   11,   12,    2,
   293        10,    9,    9,    9,    9,    9,   13,   14,   15,   11,
   294        12,    0,   12,    2,    9,    9,    9,    9,    9,   13,
   295         3,    4,    2,    9,    9,    9,    9,    2,    9,    9,
   296         9,    9,    2,    2,    9,    9,    8,    9,    2,    5,
   297         9,    6,    2,    9,    2,    9,    2,    9,    2,    7,
   298         2,    2,    2,    2,    1,    0
   299     } ;
   301 static yyconst int yy_ec[256] =
   302     {   0,
   303         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
   304         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
   305         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   306         1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
   307         1,    1,    1,    1,    7,    8,    1,    9,    9,   10,
   308        11,   12,   12,   12,   13,   13,   13,   14,    1,    1,
   309        15,    1,    1,    1,   16,   16,   16,   16,   16,   16,
   310        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
   311        16,   16,   16,   16,   16,   16,   16,   16,   16,   17,
   312         1,    1,    1,    1,    1,    1,   18,   16,   16,   19,
   314        20,   16,   21,   16,   22,   16,   16,   16,   16,   23,
   315        16,   24,   16,   25,   26,   27,   28,   16,   16,   29,
   316        16,   16,    1,   14,    1,    1,    1,    1,    1,    1,
   317         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   318         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   319         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   320         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   321         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   322         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   323         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   325         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   326         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   327         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   328         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   329         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   330         1,    1,    1,    1,    1
   331     } ;
   333 static yyconst int yy_meta[30] =
   334     {   0,
   335         1,    1,    2,    1,    3,    1,    1,    4,    5,    5,
   336         5,    5,    5,    4,    1,    4,    4,    4,    4,    4,
   337         4,    4,    4,    4,    4,    4,    4,    4,    4
   338     } ;
   340 static yyconst short int yy_base[72] =
   341     {   0,
   342         0,  149,  154,  205,  138,  205,  103,    0,    0,   23,
   343       205,   29,   30,   31,   32,   33,    0,   99,  205,    0,
   344         0,    0,   50,   55,   34,   61,   41,   63,   64,    0,
   345         0,    0,   79,   65,   68,   86,   66,   99,  105,   88,
   346       106,   90,  118,   76,  107,  110,   89,  125,   43,   91,
   347       127,  128,  138,  144,  113,  129,  154,  160,  160,  130,
   348       172,  166,  177,  144,    0,  205,  190,  192,  194,  199,
   349        76
   350     } ;
   352 static yyconst short int yy_def[72] =
   353     {   0,
   354        66,    1,   66,   66,   66,   66,   66,   67,   68,   68,
   355        66,   69,   69,   69,   69,   69,   70,   66,   66,   67,
   356        68,   71,   68,   10,   69,   69,   69,   69,   69,   70,
   357        71,   23,   10,   69,   69,   69,   69,   10,   69,   69,
   358        69,   69,   10,   38,   69,   69,   69,   69,   38,   69,
   359        69,   69,   38,   69,   38,   69,   38,   69,   38,   69,
   360        38,   38,   38,   38,   68,    0,   66,   66,   66,   66,
   361        66
   362     } ;
   364 static yyconst short int yy_nxt[235] =
   365     {   0,
   366         4,    5,    6,    7,    8,    4,    4,    9,   10,   10,
   367        10,   10,   10,    9,   11,   12,   12,   12,   12,   12,
   368        12,   13,   14,   12,   15,   12,   12,   16,   12,   22,
   369        23,   24,   24,   24,   24,   24,   21,   21,   21,   21,
   370        21,   21,   21,   21,   21,   21,   21,   21,   21,   28,
   371        27,   53,   53,   53,   21,   26,   29,   32,   32,   32,
   372        32,   32,   32,   33,   33,   33,   33,   33,   21,   35,
   373        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
   374        31,   21,   37,   42,   44,   36,   34,   38,   38,   38,
   375        38,   38,   39,   21,   40,   21,   21,   21,   21,   21,
   377        18,   21,   21,   21,   21,   19,   41,   43,   44,   44,
   378        44,   44,   21,   21,   21,   46,   48,   21,   21,   21,
   379        21,   57,   57,   21,   45,   47,   49,   49,   49,   49,
   380        49,   50,   21,   51,   21,   21,   21,   21,   21,   18,
   381        21,   21,   21,   21,   52,   54,   55,   55,   55,   55,
   382        55,   21,   44,   66,   17,   58,   66,   21,   66,   66,
   383        65,   56,   59,   59,   59,   59,   59,   21,   61,   61,
   384        61,   61,   66,   21,   63,   63,   63,   63,   66,   60,
   385        62,   62,   62,   62,   62,   64,   64,   64,   64,   64,
   386        20,   20,   66,   20,   20,   21,   21,   25,   25,   30,
   388        66,   30,   30,   30,    3,   66,   66,   66,   66,   66,
   389        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
   390        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
   391        66,   66,   66,   66
   392     } ;
   394 static yyconst short int yy_chk[235] =
   395     {   0,
   396         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   397         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   398         1,    1,    1,    1,    1,    1,    1,    1,    1,   10,
   399        10,   10,   10,   10,   10,   10,   12,   13,   14,   15,
   400        16,   25,   12,   13,   14,   15,   16,   25,   27,   15,
   401        14,   49,   49,   49,   27,   13,   16,   23,   23,   23,
   402        23,   23,   23,   24,   24,   24,   24,   24,   26,   27,
   403        28,   29,   34,   37,   26,   35,   28,   29,   34,   37,
   404        71,   35,   29,   37,   44,   28,   26,   33,   33,   33,
   405        33,   33,   34,   36,   35,   40,   47,   42,   50,   36,
   407        18,   40,   47,   42,   50,    7,   36,   38,   38,   38,
   408        38,   38,   39,   41,   45,   40,   42,   46,   39,   41,
   409        45,   55,   55,   46,   39,   41,   43,   43,   43,   43,
   410        43,   45,   48,   46,   51,   52,   56,   60,   48,    5,
   411        51,   52,   56,   60,   48,   51,   53,   53,   53,   53,
   412        53,   54,   64,    3,    2,   56,    0,   54,    0,    0,
   413        64,   54,   57,   57,   57,   57,   57,   58,   59,   59,
   414        59,   59,    0,   58,   62,   62,   62,   62,    0,   58,
   415        61,   61,   61,   61,   61,   63,   63,   63,   63,   63,
   416        67,   67,    0,   67,   67,   68,   68,   69,   69,   70,
   418         0,   70,   70,   70,   66,   66,   66,   66,   66,   66,
   419        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
   420        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
   421        66,   66,   66,   66
   422     } ;
   424 static yy_state_type yy_last_accepting_state;
   425 static char *yy_last_accepting_cpos;
   427 /* The intent behind this definition is that it'll catch
   428  * any uses of REJECT which flex missed.
   429  */
   430 #define REJECT reject_used_but_not_detected
   431 static int yy_more_flag = 0;
   432 static int yy_more_len = 0;
   433 #define yymore() (yy_more_flag = 1)
   434 #define YY_MORE_ADJ yy_more_len
   435 #define YY_RESTORE_YY_MORE_OFFSET
   436 char *yytext;
   437 #line 1 "crlgen_lex_orig.l"
   438 #define INITIAL 0
   439 #line 2 "crlgen_lex_orig.l"
   441 #include "crlgen.h"
   443 static SECStatus parserStatus = SECSuccess;
   444 static CRLGENGeneratorData *parserData;
   445 static PRFileDesc *src;
   447 #define YY_INPUT(buf,result,max_size) \
   448     if ( parserStatus != SECFailure) { \
   449 	 if (((result = PR_Read(src, buf, max_size)) == 0) && \
   450 	     ferror( yyin )) \
   451 	   return SECFailure; \
   452     } else  { return SECFailure; }
   456 /* Macros after this point can all be overridden by user definitions in
   457  * section 1.
   458  */
   460 #ifndef YY_SKIP_YYWRAP
   461 #ifdef __cplusplus
   462 extern "C" int yywrap YY_PROTO(( void ));
   463 #else
   464 extern int yywrap YY_PROTO(( void ));
   465 #endif
   466 #endif
   468 #ifndef YY_NO_UNPUT
   469 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
   470 #endif
   472 #ifndef yytext_ptr
   473 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
   474 #endif
   476 #ifdef YY_NEED_STRLEN
   477 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
   478 #endif
   480 #ifndef YY_NO_INPUT
   481 #ifdef __cplusplus
   482 static int yyinput YY_PROTO(( void ));
   483 #else
   484 static int input YY_PROTO(( void ));
   485 #endif
   486 #endif
   488 #if YY_STACK_USED
   489 static int yy_start_stack_ptr = 0;
   490 static int yy_start_stack_depth = 0;
   491 static int *yy_start_stack = 0;
   492 #ifndef YY_NO_PUSH_STATE
   493 static void yy_push_state YY_PROTO(( int new_state ));
   494 #endif
   495 #ifndef YY_NO_POP_STATE
   496 static void yy_pop_state YY_PROTO(( void ));
   497 #endif
   498 #ifndef YY_NO_TOP_STATE
   499 static int yy_top_state YY_PROTO(( void ));
   500 #endif
   502 #else
   503 #define YY_NO_PUSH_STATE 1
   504 #define YY_NO_POP_STATE 1
   505 #define YY_NO_TOP_STATE 1
   506 #endif
   508 #ifdef YY_MALLOC_DECL
   509 YY_MALLOC_DECL
   510 #else
   511 #if __STDC__
   512 #ifndef __cplusplus
   513 #include <stdlib.h>
   514 #endif
   515 #else
   516 /* Just try to get by without declaring the routines.  This will fail
   517  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
   518  * or sizeof(void*) != sizeof(int).
   519  */
   520 #endif
   521 #endif
   523 /* Amount of stuff to slurp up with each read. */
   524 #ifndef YY_READ_BUF_SIZE
   525 #define YY_READ_BUF_SIZE 8192
   526 #endif
   528 /* Copy whatever the last rule matched to the standard output. */
   530 #ifndef ECHO
   531 /* This used to be an fputs(), but since the string might contain NUL's,
   532  * we now use fwrite().
   533  */
   534 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
   535 #endif
   537 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
   538  * is returned in "result".
   539  */
   540 #ifndef YY_INPUT
   541 #define YY_INPUT(buf,result,max_size) \
   542 	if ( yy_current_buffer->yy_is_interactive ) \
   543 		{ \
   544 		int c = '*', n; \
   545 		for ( n = 0; n < max_size && \
   546 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
   547 			buf[n] = (char) c; \
   548 		if ( c == '\n' ) \
   549 			buf[n++] = (char) c; \
   550 		if ( c == EOF && ferror( yyin ) ) \
   551 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
   552 		result = n; \
   553 		} \
   554 	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
   555 		  && ferror( yyin ) ) \
   556 		YY_FATAL_ERROR( "input in flex scanner failed" );
   557 #endif
   559 /* No semi-colon after return; correct usage is to write "yyterminate();" -
   560  * we don't want an extra ';' after the "return" because that will cause
   561  * some compilers to complain about unreachable statements.
   562  */
   563 #ifndef yyterminate
   564 #define yyterminate() return YY_NULL
   565 #endif
   567 /* Number of entries by which start-condition stack grows. */
   568 #ifndef YY_START_STACK_INCR
   569 #define YY_START_STACK_INCR 25
   570 #endif
   572 /* Report a fatal error. */
   573 #ifndef YY_FATAL_ERROR
   574 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
   575 #endif
   577 /* Default declaration of generated scanner - a define so the user can
   578  * easily add parameters.
   579  */
   580 #ifndef YY_DECL
   581 #define YY_DECL int yylex YY_PROTO(( void ))
   582 #endif
   584 /* Code executed at the beginning of each rule, after yytext and yyleng
   585  * have been set up.
   586  */
   587 #ifndef YY_USER_ACTION
   588 #define YY_USER_ACTION
   589 #endif
   591 /* Code executed at the end of each rule. */
   592 #ifndef YY_BREAK
   593 #define YY_BREAK break;
   594 #endif
   596 #define YY_RULE_SETUP \
   597 	if ( yyleng > 0 ) \
   598 		yy_current_buffer->yy_at_bol = \
   599 				(yytext[yyleng - 1] == '\n'); \
   600 	YY_USER_ACTION
   602 YY_DECL
   603 	{
   604 	register yy_state_type yy_current_state;
   605 	register char *yy_cp = NULL, *yy_bp = NULL;
   606 	register int yy_act;
   608 #line 28 "crlgen_lex_orig.l"
   612 	if ( yy_init )
   613 		{
   614 		yy_init = 0;
   616 #ifdef YY_USER_INIT
   617 		YY_USER_INIT;
   618 #endif
   620 		if ( ! yy_start )
   621 			yy_start = 1;	/* first start state */
   623 		if ( ! yyin )
   624 			yyin = stdin;
   626 		if ( ! yyout )
   627 			yyout = stdout;
   629 		if ( ! yy_current_buffer )
   630 			yy_current_buffer =
   631 				yy_create_buffer( yyin, YY_BUF_SIZE );
   633 		yy_load_buffer_state();
   634 		}
   636 	while ( 1 )		/* loops until end-of-file is reached */
   637 		{
   638 		yy_more_len = 0;
   639 		if ( yy_more_flag )
   640 			{
   641 			yy_more_len = yy_c_buf_p - yytext_ptr;
   642 			yy_more_flag = 0;
   643 			}
   644 		yy_cp = yy_c_buf_p;
   646 		/* Support of yytext. */
   647 		*yy_cp = yy_hold_char;
   649 		/* yy_bp points to the position in yy_ch_buf of the start of
   650 		 * the current run.
   651 		 */
   652 		yy_bp = yy_cp;
   654 		yy_current_state = yy_start;
   655 		yy_current_state += YY_AT_BOL();
   656 yy_match:
   657 		do
   658 			{
   659 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
   660 			if ( yy_accept[yy_current_state] )
   661 				{
   662 				yy_last_accepting_state = yy_current_state;
   663 				yy_last_accepting_cpos = yy_cp;
   664 				}
   665 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   666 				{
   667 				yy_current_state = (int) yy_def[yy_current_state];
   668 				if ( yy_current_state >= 67 )
   669 					yy_c = yy_meta[(unsigned int) yy_c];
   670 				}
   671 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   672 			++yy_cp;
   673 			}
   674 		while ( yy_base[yy_current_state] != 205 );
   676 yy_find_action:
   677 		yy_act = yy_accept[yy_current_state];
   678 		if ( yy_act == 0 )
   679 			{ /* have to back up */
   680 			yy_cp = yy_last_accepting_cpos;
   681 			yy_current_state = yy_last_accepting_state;
   682 			yy_act = yy_accept[yy_current_state];
   683 			}
   685 		YY_DO_BEFORE_ACTION;
   688 do_action:	/* This label is used only to access EOF actions. */
   691 		switch ( yy_act )
   692 	{ /* beginning of action switch */
   693 			case 0: /* must back up */
   694 			/* undo the effects of YY_DO_BEFORE_ACTION */
   695 			*yy_cp = yy_hold_char;
   696 			yy_cp = yy_last_accepting_cpos;
   697 			yy_current_state = yy_last_accepting_state;
   698 			goto yy_find_action;
   700 case 1:
   701 YY_RULE_SETUP
   702 #line 30 "crlgen_lex_orig.l"
   703 {
   704 parserStatus = crlgen_setNextData(parserData, yytext, CRLGEN_TYPE_ZDATE);
   705 if (parserStatus != SECSuccess)
   706     return parserStatus;
   707 }
   708 	YY_BREAK
   709 case 2:
   710 YY_RULE_SETUP
   711 #line 36 "crlgen_lex_orig.l"
   712 {
   713 parserStatus = crlgen_setNextData(parserData, yytext, CRLGEN_TYPE_DIGIT);
   714 if (parserStatus != SECSuccess)
   715     return parserStatus;
   716 }
   717 	YY_BREAK
   718 case 3:
   719 YY_RULE_SETUP
   720 #line 42 "crlgen_lex_orig.l"
   721 {
   722 parserStatus = crlgen_setNextData(parserData, yytext, CRLGEN_TYPE_DIGIT_RANGE);
   723 if (parserStatus != SECSuccess)
   724     return parserStatus;
   725 }
   726 	YY_BREAK
   727 case 4:
   728 YY_RULE_SETUP
   729 #line 48 "crlgen_lex_orig.l"
   730 {
   731 parserStatus = crlgen_setNextData(parserData, yytext, CRLGEN_TYPE_OID);
   732 if (parserStatus != SECSuccess)
   733     return parserStatus;
   734 }
   735 	YY_BREAK
   736 case 5:
   737 YY_RULE_SETUP
   738 #line 54 "crlgen_lex_orig.l"
   739 {
   740 parserStatus = crlgen_createNewLangStruct(parserData, CRLGEN_ISSUER_CONTEXT);
   741 if (parserStatus != SECSuccess)
   742     return parserStatus;
   743 }
   744 	YY_BREAK
   745 case 6:
   746 YY_RULE_SETUP
   747 #line 60 "crlgen_lex_orig.l"
   748 {
   749 parserStatus = crlgen_createNewLangStruct(parserData, CRLGEN_UPDATE_CONTEXT);
   750 if (parserStatus != SECSuccess)
   751     return parserStatus;
   752 }
   753 	YY_BREAK
   754 case 7:
   755 YY_RULE_SETUP
   756 #line 65 "crlgen_lex_orig.l"
   757 {
   758 parserStatus = crlgen_createNewLangStruct(parserData, CRLGEN_NEXT_UPDATE_CONTEXT);
   759 if (parserStatus != SECSuccess)
   760     return parserStatus;
   761 }
   762 	YY_BREAK
   763 case 8:
   764 YY_RULE_SETUP
   765 #line 71 "crlgen_lex_orig.l"
   766 {
   767 parserStatus = crlgen_createNewLangStruct(parserData, CRLGEN_CHANGE_RANGE_CONTEXT);
   768 if (parserStatus != SECSuccess)
   769     return parserStatus;
   770 }
   771 	YY_BREAK
   772 case 9:
   773 YY_RULE_SETUP
   774 #line 77 "crlgen_lex_orig.l"
   775 {
   776 if (strcmp(yytext, "addcert") == 0) {
   777     parserStatus = crlgen_createNewLangStruct(parserData,
   778                                     CRLGEN_ADD_CERT_CONTEXT);
   779     if (parserStatus != SECSuccess)
   780         return parserStatus;
   781 } else if (strcmp(yytext, "rmcert") == 0) {
   782     parserStatus = crlgen_createNewLangStruct(parserData,
   783                                     CRLGEN_RM_CERT_CONTEXT);
   784     if (parserStatus != SECSuccess)
   785         return parserStatus;
   786 } else if (strcmp(yytext, "addext") == 0) {
   787     parserStatus = crlgen_createNewLangStruct(parserData,
   788                                     CRLGEN_ADD_EXTENSION_CONTEXT);
   789     if (parserStatus != SECSuccess)
   790         return parserStatus;
   791 } else {
   792     parserStatus = crlgen_setNextData(parserData, yytext, CRLGEN_TYPE_ID);
   793     if (parserStatus != SECSuccess)
   794         return parserStatus;
   795 }
   796 }
   797 	YY_BREAK
   798 case 10:
   799 YY_RULE_SETUP
   800 #line 100 "crlgen_lex_orig.l"
   802 	YY_BREAK
   803 case 11:
   804 YY_RULE_SETUP
   805 #line 102 "crlgen_lex_orig.l"
   806 {
   807 if (yytext[yyleng-1] == '\\') {
   808     yymore();
   809 } else {
   810     register int c;
   811     c = input();
   812     if (c != '\"') {
   813         printf( "Error: Line ending \" is missing:  %c\n", c);
   814         unput(c);
   815     } else {
   816         parserStatus = crlgen_setNextData(parserData, yytext + 1,
   817                                           CRLGEN_TYPE_STRING);
   818         if (parserStatus != SECSuccess)
   819             return parserStatus;
   820     }
   821 }
   822 }
   823 	YY_BREAK
   824 case 12:
   825 YY_RULE_SETUP
   826 #line 120 "crlgen_lex_orig.l"
   827 {
   828 parserStatus = crlgen_setNextData(parserData, yytext, CRLGEN_TYPE_STRING);
   829 if (parserStatus != SECSuccess)
   830     return parserStatus;
   831 }
   832 	YY_BREAK
   833 case 13:
   834 YY_RULE_SETUP
   835 #line 128 "crlgen_lex_orig.l"
   836 /* eat up one-line comments */ {}
   837 	YY_BREAK
   838 case 14:
   839 YY_RULE_SETUP
   840 #line 130 "crlgen_lex_orig.l"
   841 {}
   842 	YY_BREAK
   843 case 15:
   844 YY_RULE_SETUP
   845 #line 132 "crlgen_lex_orig.l"
   846 {
   847 parserStatus = crlgen_updateCrl(parserData);
   848 if (parserStatus != SECSuccess)
   849     return parserStatus;
   850 }
   851 	YY_BREAK
   852 case 16:
   853 YY_RULE_SETUP
   854 #line 138 "crlgen_lex_orig.l"
   855 {
   856     fprintf(stderr, "Syntax error at line %d: unknown token %s\n",
   857             parserData->parsedLineNum, yytext);
   858     return SECFailure;
   859 }
   860 	YY_BREAK
   861 case 17:
   862 YY_RULE_SETUP
   863 #line 144 "crlgen_lex_orig.l"
   864 ECHO;
   865 	YY_BREAK
   866 case YY_STATE_EOF(INITIAL):
   867 	yyterminate();
   869 	case YY_END_OF_BUFFER:
   870 		{
   871 		/* Amount of text matched not including the EOB char. */
   872 		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
   874 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
   875 		*yy_cp = yy_hold_char;
   876 		YY_RESTORE_YY_MORE_OFFSET
   878 		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
   879 			{
   880 			/* We're scanning a new file or input source.  It's
   881 			 * possible that this happened because the user
   882 			 * just pointed yyin at a new source and called
   883 			 * yylex().  If so, then we have to assure
   884 			 * consistency between yy_current_buffer and our
   885 			 * globals.  Here is the right place to do so, because
   886 			 * this is the first action (other than possibly a
   887 			 * back-up) that will match for the new input source.
   888 			 */
   889 			yy_n_chars = yy_current_buffer->yy_n_chars;
   890 			yy_current_buffer->yy_input_file = yyin;
   891 			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
   892 			}
   894 		/* Note that here we test for yy_c_buf_p "<=" to the position
   895 		 * of the first EOB in the buffer, since yy_c_buf_p will
   896 		 * already have been incremented past the NUL character
   897 		 * (since all states make transitions on EOB to the
   898 		 * end-of-buffer state).  Contrast this with the test
   899 		 * in input().
   900 		 */
   901 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
   902 			{ /* This was really a NUL. */
   903 			yy_state_type yy_next_state;
   905 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
   907 			yy_current_state = yy_get_previous_state();
   909 			/* Okay, we're now positioned to make the NUL
   910 			 * transition.  We couldn't have
   911 			 * yy_get_previous_state() go ahead and do it
   912 			 * for us because it doesn't know how to deal
   913 			 * with the possibility of jamming (and we don't
   914 			 * want to build jamming into it because then it
   915 			 * will run more slowly).
   916 			 */
   918 			yy_next_state = yy_try_NUL_trans( yy_current_state );
   920 			yy_bp = yytext_ptr + YY_MORE_ADJ;
   922 			if ( yy_next_state )
   923 				{
   924 				/* Consume the NUL. */
   925 				yy_cp = ++yy_c_buf_p;
   926 				yy_current_state = yy_next_state;
   927 				goto yy_match;
   928 				}
   930 			else
   931 				{
   932 				yy_cp = yy_c_buf_p;
   933 				goto yy_find_action;
   934 				}
   935 			}
   937 		else switch ( yy_get_next_buffer() )
   938 			{
   939 			case EOB_ACT_END_OF_FILE:
   940 				{
   941 				yy_did_buffer_switch_on_eof = 0;
   943 				if ( yywrap() )
   944 					{
   945 					/* Note: because we've taken care in
   946 					 * yy_get_next_buffer() to have set up
   947 					 * yytext, we can now set up
   948 					 * yy_c_buf_p so that if some total
   949 					 * hoser (like flex itself) wants to
   950 					 * call the scanner after we return the
   951 					 * YY_NULL, it'll still work - another
   952 					 * YY_NULL will get returned.
   953 					 */
   954 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
   956 					yy_act = YY_STATE_EOF(YY_START);
   957 					goto do_action;
   958 					}
   960 				else
   961 					{
   962 					if ( ! yy_did_buffer_switch_on_eof )
   963 						YY_NEW_FILE;
   964 					}
   965 				break;
   966 				}
   968 			case EOB_ACT_CONTINUE_SCAN:
   969 				yy_c_buf_p =
   970 					yytext_ptr + yy_amount_of_matched_text;
   972 				yy_current_state = yy_get_previous_state();
   974 				yy_cp = yy_c_buf_p;
   975 				yy_bp = yytext_ptr + YY_MORE_ADJ;
   976 				goto yy_match;
   978 			case EOB_ACT_LAST_MATCH:
   979 				yy_c_buf_p =
   980 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
   982 				yy_current_state = yy_get_previous_state();
   984 				yy_cp = yy_c_buf_p;
   985 				yy_bp = yytext_ptr + YY_MORE_ADJ;
   986 				goto yy_find_action;
   987 			}
   988 		break;
   989 		}
   991 	default:
   992 		YY_FATAL_ERROR(
   993 			"fatal flex scanner internal error--no action found" );
   994 	} /* end of action switch */
   995 		} /* end of scanning one token */
   996 	} /* end of yylex */
   999 /* yy_get_next_buffer - try to read in a new buffer
  1001  * Returns a code representing an action:
  1002  *	EOB_ACT_LAST_MATCH -
  1003  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  1004  *	EOB_ACT_END_OF_FILE - end of file
  1005  */
  1007 static int yy_get_next_buffer()
  1009 	register char *dest = yy_current_buffer->yy_ch_buf;
  1010 	register char *source = yytext_ptr;
  1011 	register int number_to_move, i;
  1012 	int ret_val;
  1014 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  1015 		YY_FATAL_ERROR(
  1016 		"fatal flex scanner internal error--end of buffer missed" );
  1018 	if ( yy_current_buffer->yy_fill_buffer == 0 )
  1019 		{ /* Don't try to fill the buffer, so this is an EOF. */
  1020 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  1022 			/* We matched a single character, the EOB, so
  1023 			 * treat this as a final EOF.
  1024 			 */
  1025 			return EOB_ACT_END_OF_FILE;
  1028 		else
  1030 			/* We matched some text prior to the EOB, first
  1031 			 * process it.
  1032 			 */
  1033 			return EOB_ACT_LAST_MATCH;
  1037 	/* Try to read more data. */
  1039 	/* First move last chars to start of buffer. */
  1040 	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
  1042 	for ( i = 0; i < number_to_move; ++i )
  1043 		*(dest++) = *(source++);
  1045 	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  1046 		/* don't do the read, it's not guaranteed to return an EOF,
  1047 		 * just force an EOF
  1048 		 */
  1049 		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
  1051 	else
  1053 		int num_to_read =
  1054 			yy_current_buffer->yy_buf_size - number_to_move - 1;
  1056 		while ( num_to_read <= 0 )
  1057 			{ /* Not enough room in the buffer - grow it. */
  1058 #ifdef YY_USES_REJECT
  1059 			YY_FATAL_ERROR(
  1060 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  1061 #else
  1063 			/* just a shorter name for the current buffer */
  1064 			YY_BUFFER_STATE b = yy_current_buffer;
  1066 			int yy_c_buf_p_offset =
  1067 				(int) (yy_c_buf_p - b->yy_ch_buf);
  1069 			if ( b->yy_is_our_buffer )
  1071 				int new_size = b->yy_buf_size * 2;
  1073 				if ( new_size <= 0 )
  1074 					b->yy_buf_size += b->yy_buf_size / 8;
  1075 				else
  1076 					b->yy_buf_size *= 2;
  1078 				b->yy_ch_buf = (char *)
  1079 					/* Include room in for 2 EOB chars. */
  1080 					yy_flex_realloc( (void *) b->yy_ch_buf,
  1081 							 b->yy_buf_size + 2 );
  1083 			else
  1084 				/* Can't grow it, we don't own it. */
  1085 				b->yy_ch_buf = 0;
  1087 			if ( ! b->yy_ch_buf )
  1088 				YY_FATAL_ERROR(
  1089 				"fatal error - scanner input buffer overflow" );
  1091 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  1093 			num_to_read = yy_current_buffer->yy_buf_size -
  1094 						number_to_move - 1;
  1095 #endif
  1098 		if ( num_to_read > YY_READ_BUF_SIZE )
  1099 			num_to_read = YY_READ_BUF_SIZE;
  1101 		/* Read in more data. */
  1102 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  1103 			yy_n_chars, num_to_read );
  1105 		yy_current_buffer->yy_n_chars = yy_n_chars;
  1108 	if ( yy_n_chars == 0 )
  1110 		if ( number_to_move == YY_MORE_ADJ )
  1112 			ret_val = EOB_ACT_END_OF_FILE;
  1113 			yyrestart( yyin );
  1116 		else
  1118 			ret_val = EOB_ACT_LAST_MATCH;
  1119 			yy_current_buffer->yy_buffer_status =
  1120 				YY_BUFFER_EOF_PENDING;
  1124 	else
  1125 		ret_val = EOB_ACT_CONTINUE_SCAN;
  1127 	yy_n_chars += number_to_move;
  1128 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1129 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1131 	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
  1133 	return ret_val;
  1137 /* yy_get_previous_state - get the state just before the EOB char was reached */
  1139 static yy_state_type yy_get_previous_state()
  1141 	register yy_state_type yy_current_state;
  1142 	register char *yy_cp;
  1144 	yy_current_state = yy_start;
  1145 	yy_current_state += YY_AT_BOL();
  1147 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  1149 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  1150 		if ( yy_accept[yy_current_state] )
  1152 			yy_last_accepting_state = yy_current_state;
  1153 			yy_last_accepting_cpos = yy_cp;
  1155 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1157 			yy_current_state = (int) yy_def[yy_current_state];
  1158 			if ( yy_current_state >= 67 )
  1159 				yy_c = yy_meta[(unsigned int) yy_c];
  1161 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1164 	return yy_current_state;
  1168 /* yy_try_NUL_trans - try to make a transition on the NUL character
  1170  * synopsis
  1171  *	next_state = yy_try_NUL_trans( current_state );
  1172  */
  1174 #ifdef YY_USE_PROTOS
  1175 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  1176 #else
  1177 static yy_state_type yy_try_NUL_trans( yy_current_state )
  1178 yy_state_type yy_current_state;
  1179 #endif
  1181 	register int yy_is_jam;
  1182 	register char *yy_cp = yy_c_buf_p;
  1184 	register YY_CHAR yy_c = 1;
  1185 	if ( yy_accept[yy_current_state] )
  1187 		yy_last_accepting_state = yy_current_state;
  1188 		yy_last_accepting_cpos = yy_cp;
  1190 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1192 		yy_current_state = (int) yy_def[yy_current_state];
  1193 		if ( yy_current_state >= 67 )
  1194 			yy_c = yy_meta[(unsigned int) yy_c];
  1196 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1197 	yy_is_jam = (yy_current_state == 66);
  1199 	return yy_is_jam ? 0 : yy_current_state;
  1203 #ifndef YY_NO_UNPUT
  1204 #ifdef YY_USE_PROTOS
  1205 static void yyunput( int c, register char *yy_bp )
  1206 #else
  1207 static void yyunput( c, yy_bp )
  1208 int c;
  1209 register char *yy_bp;
  1210 #endif
  1212 	register char *yy_cp = yy_c_buf_p;
  1214 	/* undo effects of setting up yytext */
  1215 	*yy_cp = yy_hold_char;
  1217 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1218 		{ /* need to shift things up to make room */
  1219 		/* +2 for EOB chars. */
  1220 		register int number_to_move = yy_n_chars + 2;
  1221 		register char *dest = &yy_current_buffer->yy_ch_buf[
  1222 					yy_current_buffer->yy_buf_size + 2];
  1223 		register char *source =
  1224 				&yy_current_buffer->yy_ch_buf[number_to_move];
  1226 		while ( source > yy_current_buffer->yy_ch_buf )
  1227 			*--dest = *--source;
  1229 		yy_cp += (int) (dest - source);
  1230 		yy_bp += (int) (dest - source);
  1231 		yy_current_buffer->yy_n_chars =
  1232 			yy_n_chars = yy_current_buffer->yy_buf_size;
  1234 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1235 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1238 	*--yy_cp = (char) c;
  1241 	yytext_ptr = yy_bp;
  1242 	yy_hold_char = *yy_cp;
  1243 	yy_c_buf_p = yy_cp;
  1245 #endif	/* ifndef YY_NO_UNPUT */
  1248 #ifndef YY_NO_INPUT
  1249 #ifdef __cplusplus
  1250 static int yyinput()
  1251 #else
  1252 static int input()
  1253 #endif
  1255 	int c;
  1257 	*yy_c_buf_p = yy_hold_char;
  1259 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1261 		/* yy_c_buf_p now points to the character we want to return.
  1262 		 * If this occurs *before* the EOB characters, then it's a
  1263 		 * valid NUL; if not, then we've hit the end of the buffer.
  1264 		 */
  1265 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1266 			/* This was really a NUL. */
  1267 			*yy_c_buf_p = '\0';
  1269 		else
  1270 			{ /* need more input */
  1271 			int offset = yy_c_buf_p - yytext_ptr;
  1272 			++yy_c_buf_p;
  1274 			switch ( yy_get_next_buffer() )
  1276 				case EOB_ACT_LAST_MATCH:
  1277 					/* This happens because yy_g_n_b()
  1278 					 * sees that we've accumulated a
  1279 					 * token and flags that we need to
  1280 					 * try matching the token before
  1281 					 * proceeding.  But for input(),
  1282 					 * there's no matching to consider.
  1283 					 * So convert the EOB_ACT_LAST_MATCH
  1284 					 * to EOB_ACT_END_OF_FILE.
  1285 					 */
  1287 					/* Reset buffer status. */
  1288 					yyrestart( yyin );
  1290 					/* fall through */
  1292 				case EOB_ACT_END_OF_FILE:
  1294 					if ( yywrap() )
  1295 						return EOF;
  1297 					if ( ! yy_did_buffer_switch_on_eof )
  1298 						YY_NEW_FILE;
  1299 #ifdef __cplusplus
  1300 					return yyinput();
  1301 #else
  1302 					return input();
  1303 #endif
  1306 				case EOB_ACT_CONTINUE_SCAN:
  1307 					yy_c_buf_p = yytext_ptr + offset;
  1308 					break;
  1313 	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
  1314 	*yy_c_buf_p = '\0';	/* preserve yytext */
  1315 	yy_hold_char = *++yy_c_buf_p;
  1317 	yy_current_buffer->yy_at_bol = (c == '\n');
  1319 	return c;
  1321 #endif /* YY_NO_INPUT */
  1323 #ifdef YY_USE_PROTOS
  1324 void yyrestart( FILE *input_file )
  1325 #else
  1326 void yyrestart( input_file )
  1327 FILE *input_file;
  1328 #endif
  1330 	if ( ! yy_current_buffer )
  1331 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1333 	yy_init_buffer( yy_current_buffer, input_file );
  1334 	yy_load_buffer_state();
  1338 #ifdef YY_USE_PROTOS
  1339 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  1340 #else
  1341 void yy_switch_to_buffer( new_buffer )
  1342 YY_BUFFER_STATE new_buffer;
  1343 #endif
  1345 	if ( yy_current_buffer == new_buffer )
  1346 		return;
  1348 	if ( yy_current_buffer )
  1350 		/* Flush out information for old buffer. */
  1351 		*yy_c_buf_p = yy_hold_char;
  1352 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  1353 		yy_current_buffer->yy_n_chars = yy_n_chars;
  1356 	yy_current_buffer = new_buffer;
  1357 	yy_load_buffer_state();
  1359 	/* We don't actually know whether we did this switch during
  1360 	 * EOF (yywrap()) processing, but the only time this flag
  1361 	 * is looked at is after yywrap() is called, so it's safe
  1362 	 * to go ahead and always set it.
  1363 	 */
  1364 	yy_did_buffer_switch_on_eof = 1;
  1368 #ifdef YY_USE_PROTOS
  1369 void yy_load_buffer_state( void )
  1370 #else
  1371 void yy_load_buffer_state()
  1372 #endif
  1374 	yy_n_chars = yy_current_buffer->yy_n_chars;
  1375 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  1376 	yyin = yy_current_buffer->yy_input_file;
  1377 	yy_hold_char = *yy_c_buf_p;
  1381 #ifdef YY_USE_PROTOS
  1382 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  1383 #else
  1384 YY_BUFFER_STATE yy_create_buffer( file, size )
  1385 FILE *file;
  1386 int size;
  1387 #endif
  1389 	YY_BUFFER_STATE b;
  1391 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  1392 	if ( ! b )
  1393 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1395 	b->yy_buf_size = size;
  1397 	/* yy_ch_buf has to be 2 characters longer than the size given because
  1398 	 * we need to put in 2 end-of-buffer characters.
  1399 	 */
  1400 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  1401 	if ( ! b->yy_ch_buf )
  1402 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1404 	b->yy_is_our_buffer = 1;
  1406 	yy_init_buffer( b, file );
  1408 	return b;
  1412 #ifdef YY_USE_PROTOS
  1413 void yy_delete_buffer( YY_BUFFER_STATE b )
  1414 #else
  1415 void yy_delete_buffer( b )
  1416 YY_BUFFER_STATE b;
  1417 #endif
  1419 	if ( ! b )
  1420 		return;
  1422 	if ( b == yy_current_buffer )
  1423 		yy_current_buffer = (YY_BUFFER_STATE) 0;
  1425 	if ( b->yy_is_our_buffer )
  1426 		yy_flex_free( (void *) b->yy_ch_buf );
  1428 	yy_flex_free( (void *) b );
  1433 #ifdef YY_USE_PROTOS
  1434 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  1435 #else
  1436 void yy_init_buffer( b, file )
  1437 YY_BUFFER_STATE b;
  1438 FILE *file;
  1439 #endif
  1443 	yy_flush_buffer( b );
  1445 	b->yy_input_file = file;
  1446 	b->yy_fill_buffer = 1;
  1448 #if YY_ALWAYS_INTERACTIVE
  1449 	b->yy_is_interactive = 1;
  1450 #else
  1451 #if YY_NEVER_INTERACTIVE
  1452 	b->yy_is_interactive = 0;
  1453 #else
  1454 	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  1455 #endif
  1456 #endif
  1460 #ifdef YY_USE_PROTOS
  1461 void yy_flush_buffer( YY_BUFFER_STATE b )
  1462 #else
  1463 void yy_flush_buffer( b )
  1464 YY_BUFFER_STATE b;
  1465 #endif
  1468 	if ( ! b )
  1469 		return;
  1471 	b->yy_n_chars = 0;
  1473 	/* We always need two end-of-buffer characters.  The first causes
  1474 	 * a transition to the end-of-buffer state.  The second causes
  1475 	 * a jam in that state.
  1476 	 */
  1477 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  1478 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  1480 	b->yy_buf_pos = &b->yy_ch_buf[0];
  1482 	b->yy_at_bol = 1;
  1483 	b->yy_buffer_status = YY_BUFFER_NEW;
  1485 	if ( b == yy_current_buffer )
  1486 		yy_load_buffer_state();
  1490 #ifndef YY_NO_SCAN_BUFFER
  1491 #ifdef YY_USE_PROTOS
  1492 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
  1493 #else
  1494 YY_BUFFER_STATE yy_scan_buffer( base, size )
  1495 char *base;
  1496 yy_size_t size;
  1497 #endif
  1499 	YY_BUFFER_STATE b;
  1501 	if ( size < 2 ||
  1502 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
  1503 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
  1504 		/* They forgot to leave room for the EOB's. */
  1505 		return 0;
  1507 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  1508 	if ( ! b )
  1509 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
  1511 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
  1512 	b->yy_buf_pos = b->yy_ch_buf = base;
  1513 	b->yy_is_our_buffer = 0;
  1514 	b->yy_input_file = 0;
  1515 	b->yy_n_chars = b->yy_buf_size;
  1516 	b->yy_is_interactive = 0;
  1517 	b->yy_at_bol = 1;
  1518 	b->yy_fill_buffer = 0;
  1519 	b->yy_buffer_status = YY_BUFFER_NEW;
  1521 	yy_switch_to_buffer( b );
  1523 	return b;
  1525 #endif
  1528 #ifndef YY_NO_SCAN_STRING
  1529 #ifdef YY_USE_PROTOS
  1530 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
  1531 #else
  1532 YY_BUFFER_STATE yy_scan_string( yy_str )
  1533 yyconst char *yy_str;
  1534 #endif
  1536 	int len;
  1537 	for ( len = 0; yy_str[len]; ++len )
  1540 	return yy_scan_bytes( yy_str, len );
  1542 #endif
  1545 #ifndef YY_NO_SCAN_BYTES
  1546 #ifdef YY_USE_PROTOS
  1547 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
  1548 #else
  1549 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
  1550 yyconst char *bytes;
  1551 int len;
  1552 #endif
  1554 	YY_BUFFER_STATE b;
  1555 	char *buf;
  1556 	yy_size_t n;
  1557 	int i;
  1559 	/* Get memory for full buffer, including space for trailing EOB's. */
  1560 	n = len + 2;
  1561 	buf = (char *) yy_flex_alloc( n );
  1562 	if ( ! buf )
  1563 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
  1565 	for ( i = 0; i < len; ++i )
  1566 		buf[i] = bytes[i];
  1568 	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
  1570 	b = yy_scan_buffer( buf, n );
  1571 	if ( ! b )
  1572 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
  1574 	/* It's okay to grow etc. this buffer, and we should throw it
  1575 	 * away when we're done.
  1576 	 */
  1577 	b->yy_is_our_buffer = 1;
  1579 	return b;
  1581 #endif
  1584 #ifndef YY_NO_PUSH_STATE
  1585 #ifdef YY_USE_PROTOS
  1586 static void yy_push_state( int new_state )
  1587 #else
  1588 static void yy_push_state( new_state )
  1589 int new_state;
  1590 #endif
  1592 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
  1594 		yy_size_t new_size;
  1596 		yy_start_stack_depth += YY_START_STACK_INCR;
  1597 		new_size = yy_start_stack_depth * sizeof( int );
  1599 		if ( ! yy_start_stack )
  1600 			yy_start_stack = (int *) yy_flex_alloc( new_size );
  1602 		else
  1603 			yy_start_stack = (int *) yy_flex_realloc(
  1604 					(void *) yy_start_stack, new_size );
  1606 		if ( ! yy_start_stack )
  1607 			YY_FATAL_ERROR(
  1608 			"out of memory expanding start-condition stack" );
  1611 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
  1613 	BEGIN(new_state);
  1615 #endif
  1618 #ifndef YY_NO_POP_STATE
  1619 static void yy_pop_state()
  1621 	if ( --yy_start_stack_ptr < 0 )
  1622 		YY_FATAL_ERROR( "start-condition stack underflow" );
  1624 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
  1626 #endif
  1629 #ifndef YY_NO_TOP_STATE
  1630 static int yy_top_state()
  1632 	return yy_start_stack[yy_start_stack_ptr - 1];
  1634 #endif
  1636 #ifndef YY_EXIT_FAILURE
  1637 #define YY_EXIT_FAILURE 2
  1638 #endif
  1640 #ifdef YY_USE_PROTOS
  1641 static void yy_fatal_error( yyconst char msg[] )
  1642 #else
  1643 static void yy_fatal_error( msg )
  1644 char msg[];
  1645 #endif
  1647 	(void) fprintf( stderr, "%s\n", msg );
  1648 	exit( YY_EXIT_FAILURE );
  1653 /* Redefine yyless() so it works in section 3 code. */
  1655 #undef yyless
  1656 #define yyless(n) \
  1657 	do \
  1658 		{ \
  1659 		/* Undo effects of setting up yytext. */ \
  1660 		yytext[yyleng] = yy_hold_char; \
  1661 		yy_c_buf_p = yytext + n; \
  1662 		yy_hold_char = *yy_c_buf_p; \
  1663 		*yy_c_buf_p = '\0'; \
  1664 		yyleng = n; \
  1665 		} \
  1666 	while ( 0 )
  1669 /* Internal utility routines. */
  1671 #ifndef yytext_ptr
  1672 #ifdef YY_USE_PROTOS
  1673 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
  1674 #else
  1675 static void yy_flex_strncpy( s1, s2, n )
  1676 char *s1;
  1677 yyconst char *s2;
  1678 int n;
  1679 #endif
  1681 	register int i;
  1682 	for ( i = 0; i < n; ++i )
  1683 		s1[i] = s2[i];
  1685 #endif
  1687 #ifdef YY_NEED_STRLEN
  1688 #ifdef YY_USE_PROTOS
  1689 static int yy_flex_strlen( yyconst char *s )
  1690 #else
  1691 static int yy_flex_strlen( s )
  1692 yyconst char *s;
  1693 #endif
  1695 	register int n;
  1696 	for ( n = 0; s[n]; ++n )
  1699 	return n;
  1701 #endif
  1704 #ifdef YY_USE_PROTOS
  1705 static void *yy_flex_alloc( yy_size_t size )
  1706 #else
  1707 static void *yy_flex_alloc( size )
  1708 yy_size_t size;
  1709 #endif
  1711 	return (void *) malloc( size );
  1714 #ifdef YY_USE_PROTOS
  1715 static void *yy_flex_realloc( void *ptr, yy_size_t size )
  1716 #else
  1717 static void *yy_flex_realloc( ptr, size )
  1718 void *ptr;
  1719 yy_size_t size;
  1720 #endif
  1722 	/* The cast to (char *) in the following accommodates both
  1723 	 * implementations that use char* generic pointers, and those
  1724 	 * that use void* generic pointers.  It works with the latter
  1725 	 * because both ANSI C and C++ allow castless assignment from
  1726 	 * any pointer type to void*, and deal with argument conversions
  1727 	 * as though doing an assignment.
  1728 	 */
  1729 	return (void *) realloc( (char *) ptr, size );
  1732 #ifdef YY_USE_PROTOS
  1733 static void yy_flex_free( void *ptr )
  1734 #else
  1735 static void yy_flex_free( ptr )
  1736 void *ptr;
  1737 #endif
  1739 	free( ptr );
  1742 #if YY_MAIN
  1743 int main()
  1745 	yylex();
  1746 	return 0;
  1748 #endif
  1749 #line 144 "crlgen_lex_orig.l"
  1751 #include "prlock.h"
  1753 static PRLock *parserInvocationLock;
  1755 void CRLGEN_InitCrlGenParserLock()
  1757     parserInvocationLock = PR_NewLock();
  1760 void CRLGEN_DestroyCrlGenParserLock()
  1762     PR_DestroyLock(parserInvocationLock);
  1766 SECStatus CRLGEN_StartCrlGen(CRLGENGeneratorData *parserCtlData)
  1768     SECStatus rv;
  1770     PR_Lock(parserInvocationLock);
  1772     parserStatus = SECSuccess;
  1773     parserData = parserCtlData;
  1774     src = parserCtlData->src;
  1776     rv = yylex();
  1778     PR_Unlock(parserInvocationLock);
  1780     return rv;
  1783 int yywrap() {return 1;}

mercurial