Category : C Source Code
Archive   : CPPCOMBO.ZIP
Filename : FLEX.SKL

 
Output of file : FLEX.SKL contained in archive : CPPCOMBO.ZIP
/* A lexical scanner generated by flex */

#ifdef MSDOS
#include "\LIB\fskeldef.h"
#else
#include "\LIB\flexskeldef.h"
#endif

%% section 1 code and data tables for DFA go here

/* these declarations have to come after the section 1 code or lint gets
* confused about whether the variables are used
*/
FILE *yyin = stdin, *yyout = stdout;

/* these variables are all declared out here so that section 3 code can
* manipulate them
*/
static int yy_start, yy_b_buf_p, yy_c_buf_p, yy_e_buf_p;
static int yy_saw_eof, yy_init = 1;

/* yy_ch_buf has to be 1 character longer than YY_BUF_SIZE, since when
* setting up yytext we can try to put a '\0' just past the end of the
* matched text
*/
static char yy_ch_buf[YY_BUF_SIZE + 1];
static int yy_st_buf[YY_BUF_SIZE];
static char yy_hold_char;
char *yytext;
static int yyleng;

YY_DECL
{
int yy_n_chars, yy_lp, yy_iii, yy_buf_pos, yy_act;

%% user's declarations go here

if ( yy_init )
{
YY_INIT;
yy_start = 1;
yy_init = 0;
}

goto get_next_token;

do_action:
for ( ; ; )
{
YY_DO_BEFORE_ACTION

#ifdef FLEX_DEBUG
fprintf( stderr, "--accepting rule #%d\n", yy_act );
#endif
switch ( yy_act )
{
%% actions go here

case YY_NEW_FILE:
break; /* begin reading from new file */

case YY_DO_DEFAULT:
YY_DEFAULT_ACTION;
break;

case YY_END_TOK:
return ( YY_END_TOK );

default:
YY_FATAL_ERROR( "fatal flex scanner internal error" );
}

get_next_token:
{
register int yy_curst;
register char yy_sym;

YY_DO_BEFORE_SCAN

/* set up to begin running DFA */

yy_curst = yy_start;

if ( yy_ch_buf[yy_c_buf_p] == '\n' )
++yy_curst;

/* yy_b_buf_p points to the position in yy_ch_buf
* of the start of the current run.
*/

yy_b_buf_p = yy_c_buf_p + 1;

do /* until the machine jams */
{
if ( yy_c_buf_p == yy_e_buf_p )
{ /* need more input */
if ( yy_e_buf_p >= YY_BUF_LIM )
{ /* not enough room to do another read */
/* see if we can make some room for more chars */

yy_n_chars = yy_e_buf_p - yy_b_buf_p;

if ( yy_n_chars >= 0 )
/* shift down buffer to make room */
for ( yy_iii = 0; yy_iii <= yy_n_chars; ++yy_iii )
{
yy_buf_pos = yy_b_buf_p + yy_iii;
yy_ch_buf[yy_iii] = yy_ch_buf[yy_buf_pos];
yy_st_buf[yy_iii] = yy_st_buf[yy_buf_pos];
}

yy_b_buf_p = 0;
yy_e_buf_p = yy_n_chars;

if ( yy_e_buf_p >= YY_BUF_LIM )
YY_FATAL_ERROR( "flex input buffer overflowed" );

yy_c_buf_p = yy_e_buf_p;
}

else if ( yy_saw_eof )
{
saweof: if ( yy_b_buf_p > yy_e_buf_p )
{
if ( yywrap() )
{
yy_act = YY_END_TOK;
goto do_action;
}

else
{
YY_INIT;
yy_act = YY_NEW_FILE;
goto do_action;
}
}

else /* do a jam to eat up more input */
{
#ifndef FLEX_INTERACTIVE_SCANNER
/* we're going to decrement yy_c_buf_p upon doing
* the jam. In this case, that's wrong, since
* it points to the last non-jam character. So
* we increment it now to counter the decrement.
*/
++yy_c_buf_p;
#endif
break;
}
}

YY_INPUT( (yy_ch_buf + yy_c_buf_p + 1), yy_n_chars,
YY_MAX_LINE );

if ( yy_n_chars == YY_NULL )
{
if ( yy_saw_eof )
YY_FATAL_ERROR( "flex scanner saw EOF twice - shouldn't happen" );
yy_saw_eof = 1;
goto saweof;
}

yy_e_buf_p += yy_n_chars;
}

++yy_c_buf_p;

#ifdef FLEX_USE_ECS
yy_sym = e[yy_ch_buf[yy_c_buf_p]];
#else
yy_sym = yy_ch_buf[yy_c_buf_p];
#endif

#ifdef FLEX_FULL_TABLE
yy_curst = n[yy_curst][yy_sym];

#else /* get next state from compressed table */

while ( c[b[yy_curst] + yy_sym] != yy_curst )
{
yy_curst = d[yy_curst];

#ifdef FLEX_USE_MECS
/* we've arrange it so that templates are never chained
* to one another. This means we can afford make a
* very simple test to see if we need to convert to
* yy_sym's meta-equivalence class without worrying
* about erroneously looking up the meta-equivalence
* class twice
*/

if ( yy_curst >= YY_TEMPLATE )
yy_sym = m[yy_sym];
#endif
}

yy_curst = n[b[yy_curst] + yy_sym];

#endif

yy_st_buf[yy_c_buf_p] = yy_curst;

}
#ifdef FLEX_INTERACTIVE_SCANNER
while ( b[yy_curst] != YY_JAM_BASE );
#else
while ( yy_curst != YY_JAM );
--yy_c_buf_p; /* put back character we jammed on */

#endif

if ( yy_c_buf_p >= yy_b_buf_p )
{ /* we matched some text */
yy_curst = yy_st_buf[yy_c_buf_p];
yy_lp = l[yy_curst];

#ifdef FLEX_REJECT_ENABLED
find_rule: /* we branch to this label when doing a REJECT */
#endif

for ( ; ; ) /* until we find what rule we matched */
{
#ifdef FLEX_REJECT_ENABLED
if ( yy_lp && yy_lp < l[yy_curst + 1] )
{
yy_act = a[yy_lp];
goto do_action; /* "continue 2" */
}
#else
if ( yy_lp )
{
yy_act = yy_lp;

goto do_action; /* "continue 2" */
}
#endif

if ( --yy_c_buf_p < yy_b_buf_p )
break;

yy_curst = yy_st_buf[yy_c_buf_p];
yy_lp = l[yy_curst];
}
}

/* if we got this far, then we didn't find any accepting
* states
*/

/* so that the default applies to the first char read */
++yy_c_buf_p;

yy_act = YY_DO_DEFAULT;
}
}

/*NOTREACHED*/
}


/* static int unput( c ) */
void unput( c ) /* This seems more correct - Tim Capps */
char c;

{
YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */

if ( yy_c_buf_p == 0 )
{
register int i;
register int yy_buf_pos = YY_BUF_MAX;

for ( i = yy_e_buf_p; i >= yy_c_buf_p; --i )
{
yy_ch_buf[yy_buf_pos] = yy_ch_buf[i];
yy_st_buf[yy_buf_pos] = yy_st_buf[i];
--yy_buf_pos;
}

yy_c_buf_p = YY_BUF_MAX - yy_e_buf_p;
yy_e_buf_p = YY_BUF_MAX;
}

if ( yy_c_buf_p <= 0 )
YY_FATAL_ERROR( "flex scanner push-back overflow" );

if ( yy_c_buf_p >= yy_b_buf_p && yy_ch_buf[yy_c_buf_p] == '\n' )
yy_ch_buf[yy_c_buf_p - 1] = '\n';

yy_ch_buf[yy_c_buf_p--] = c;

YY_DO_BEFORE_ACTION; /* set up yytext again */
}


static int input()

{
int c;

YY_DO_BEFORE_SCAN

if ( yy_c_buf_p == yy_e_buf_p )
{ /* need more input */
int yy_n_chars;

/* we can throw away the entire current buffer */
if ( yy_saw_eof )
{
if ( yywrap() )
return ( EOF );

YY_INIT;
}

yy_b_buf_p = 0;
YY_INPUT( yy_ch_buf, yy_n_chars, YY_MAX_LINE );

if ( yy_n_chars == YY_NULL )
{
yy_saw_eof = 1;

if ( yywrap() )
return ( EOF );

YY_INIT;

return ( input() );
}

yy_c_buf_p = -1;
yy_e_buf_p = yy_n_chars - 1;
}

c = yy_ch_buf[++yy_c_buf_p];

YY_DO_BEFORE_ACTION;

return ( c );
}


  3 Responses to “Category : C Source Code
Archive   : CPPCOMBO.ZIP
Filename : FLEX.SKL

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/