⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doslex.c

📁 Wxpython Implemented on Windows CE, Source code
💻 C
📖 第 1 页 / 共 3 页
字号:
/* A lexical scanner generated by flex */

/* scanner skeleton version:
 * $Header: /pack/cvsroots/wxwidgets/wxWidgets/contrib/src/deprecated/doslex.c,v 1.6 2005/06/09 18:37:44 ABX Exp $
  Last change:  JS   13 Jul 97    6:17 pm
 */
/* Copyright: (c) Julian Smart */
/* Licence:   wxWindows Licence */

#ifdef __VISUALC__
    #pragma warning(push)
    #pragma warning(disable:4127) /* warning C4127: conditional expression is constant [about while ( 0 | 1 )] */
    #pragma warning(disable:4244) /* warning C4244: '=' : conversion from 'A' to 'B', possible loss of data    */
#endif

#define FLEX_SCANNER

#include <stdio.h>


/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
  #ifndef __cplusplus
    #define __cplusplus
  #endif
#endif


#ifdef __cplusplus

  #include <stdlib.h>

  #ifdef __SALFORDC__
    #include <io.h>
    #include <clib.h>
  #else
    #include <osfcn.h>
  #endif

  #ifdef __VISAGECPP__
    #include <io.h>
  #endif

  #ifdef __cplusplus
    static int yyinput()
  #else
    static int input()
  #endif

  /* use prototypes in function declarations */
  #define YY_USE_PROTOS

  /* the "const" storage-class-modifier is valid */
  #define YY_USE_CONST

#else /* ! __cplusplus */

  #ifdef __STDC__

    #ifdef __GNUC__
      #include <stddef.h>
    #else
      #include <stdlib.h>
    #endif  /* __GNUC__ */

    #define YY_USE_PROTOS
    #define YY_USE_CONST

  #endif  /* __STDC__ */

  #ifdef __VISUALC__
    #define YY_USE_PROTOS
  #endif

  #ifdef __BORLANDC__
    #include <io.h>
    #define YY_USE_PROTOS
    #define YY_USE_CONST
  #endif

  #if defined(__MINGW32__) || defined(__WATCOMC__)
    #include <io.h>
  #endif

#endif /* ! __cplusplus */


#ifdef __TURBOC__
  #define YY_USE_CONST
#endif


#ifndef YY_USE_CONST
  #define const
#endif


#ifdef YY_USE_PROTOS
  #define YY_PROTO(proto) proto
#else
  #define YY_PROTO(proto) ()
  /* we can't get here if it's an ANSI C compiler, or a C++ compiler,
 * so it's got to be a K&R compiler, and therefore there's no standard
 * place from which to include these definitions
 */
  /*
   char *malloc();
   int free();
  */
#endif


/* amount of stuff to slurp up with each read */
#ifndef YY_READ_BUF_SIZE
  #define YY_READ_BUF_SIZE 8192
#endif


/* returned upon end-of-file */
#define YY_END_TOK 0


/* copy whatever the last rule matched to the standard output */

/* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
/* this used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite()
 */
#define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )


/* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#define YY_INPUT(buf,result,max_size) \
    if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
        YY_FATAL_ERROR( "read() in flex scanner failed" );
#define YY_NULL 0


/* no semi-colon after return; correct usage is to write "yyterminate();" -
 * we don't want an extra ';' after the "return" because that will cause
 * some compilers to complain about unreachable statements.
 */
#define yyterminate() return ( YY_NULL )


/* report a fatal error */

/* The funky do-while is used to turn this macro definition into
 * a single C statement (which needs a semi-colon terminator).
 * This avoids problems with code like:
 *
 *   if ( something_happens )
 *       YY_FATAL_ERROR( "oops, the something happened" );
 *   else
 *       everything_okay();
 *
 * Prior to using the do-while the compiler would get upset at the
 * "else" because it interpreted the "if" statement as being all
 * done when it reached the ';' after the YY_FATAL_ERROR() call.
 */

#if !defined(__VISAGECPP__)
    #define YY_FATAL_ERROR(msg)             \
        do                                  \
        {                                   \
            (void) fputs( msg, stderr );    \
            (void) putc( '\n', stderr );    \
            exit( 1 );                      \
        }                                   \
        while ( 0 )
#else
    /* suppress expression always false warning */
    int os2var = 0;
    #define YY_FATAL_ERROR(msg)             \
        do                                  \
        {                                   \
            (void) fputs( msg, stderr );    \
            (void) putc( '\n', stderr );    \
            exit( 1 );                      \
        }                                   \
        while ( os2var == 0 )
#endif


/* default yywrap function - always treat EOF as an EOF */
int yywrap(void) { return 1; }


/* enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN
 */
#define BEGIN yy_start = 1 + 2 *

/* action number for EOF rule of a given start state */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* special action meaning "start processing a new file" */
#if !defined(__VISAGECPP__)
    #define YY_NEW_FILE                                \
        do                                             \
        {                                              \
            yy_init_buffer( yy_current_buffer, yyin ); \
            yy_load_buffer_state();                    \
        }                                              \
        while ( 0 )
#else
    #define YY_NEW_FILE                                \
        do                                             \
        {                                              \
            yy_init_buffer( yy_current_buffer, yyin ); \
            yy_load_buffer_state();                    \
        }                                              \
        while ( os2var == 0 )
#endif


/* default declaration of generated scanner - a define so the user can
 * easily add parameters
 */
#define YY_DECL int yylex YY_PROTO(( void ))


#define YY_END_OF_BUFFER_CHAR 0

#ifndef YY_BUF_SIZE
  #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
#endif

typedef struct yy_buffer_state *YY_BUFFER_STATE;

#define YY_CHAR unsigned char
/* # line 1 "lexer.l" */
#define INITIAL 0
/* # line 9 "lexer.l" */
/*
 * File:         lexer.l
 * Description:  Lexical analyser for PROLOGIO; can be used with
 *               either lex and flex.
 */
#include <string.h>

/* +++steve162e: added, otherwise, PROIO_input will be undefined (at least under LINUX)
             please check, if this is also TRUE under other UNIXes.
 */

#if defined(FLEX_SCANNER) && defined(_LINUX)
  #define PROIO_input my_input
#endif
/* ---steve162e */

#include "wx/deprecated/expr.h"
#ifdef wx_x
  extern char *malloc();
#endif

#if defined(VMS) && ( __VMS_VER < 70000000 )
  #define strdup(s) (strcpy((char *)malloc(strlen(s)+1), s));
#endif

static size_t lex_buffer_length = 0;
static const char *lex_buffer = NULL;
static size_t lex_string_ptr = 0;
static int lex_read_from_string = 0;

static int my_input(void);
#ifndef FLEX_SCANNER
  static int my_unput(char);
#endif

#ifdef FLEX_SCANNER
    #undef YY_INPUT
    #define YY_INPUT(buf,result,max_size)                                  \
    if (lex_read_from_string)                                              \
    {                                                                      \
        int c = my_input();                                                \
        result = (c == 0) ? YY_NULL : ((buf)[0]=(c), 1);                   \
    }                                                                      \
    else                                                                   \
        if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
            YY_FATAL_ERROR( "read() in flex scanner failed" );
#else
    #ifndef unput
        #undef unput
    #endif
    #define unput(_c) my_unput(_c)
#endif

/* # line 58 "lexer.l" */

/* done after the current pattern has been matched and before the
 * corresponding action - sets up yytext
 */

#define YY_DO_BEFORE_ACTION \
    yytext = yy_bp;         \
    yyleng = yy_cp - yy_bp; \
    yy_hold_char = *yy_cp;  \
    *yy_cp = '\0';          \
    yy_c_buf_p = yy_cp;

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

/* return all but the first 'n' matched characters back to the input stream */
#if !defined(__VISAGECPP__)
    #define yyless(n)                                      \
        do                                                 \
        {                                                  \
            /* undo effects of setting up yytext */        \
            *yy_cp = yy_hold_char;                         \
            yy_c_buf_p = yy_cp = yy_bp + n;                \
            YY_DO_BEFORE_ACTION; /* set up yytext again */ \
        }                                                  \
        while ( 0 )
#else
    #define yyless(n)                                      \
        do                                                 \
        {                                                  \
            /* undo effects of setting up yytext */        \
            *yy_cp = yy_hold_char;                         \
            yy_c_buf_p = yy_cp = yy_bp + n;                \
            YY_DO_BEFORE_ACTION; /* set up yytext again */ \
        }                                                  \
        while ( os2var == 0 )
#endif

#undef unput
#define unput(c) yyunput( c, yytext )

struct yy_buffer_state
{
    FILE *yy_input_file;

    YY_CHAR *yy_ch_buf;     /* input buffer */
    YY_CHAR *yy_buf_pos;    /* current position in input buffer */

    /* size of input buffer in bytes, not including room for EOB characters*/
    int yy_buf_size;

    /* number of characters read into yy_ch_buf, not including EOB characters */
    int yy_n_chars;

    int yy_eof_status;      /* whether we've seen an EOF on this buffer */

#define EOF_NOT_SEEN 0

    /* "pending" happens when the EOF has been seen but there's still
     * some text process
     */

#define EOF_PENDING 1
#define EOF_DONE 2
};

static YY_BUFFER_STATE yy_current_buffer;

/* we provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state"
 */
#define YY_CURRENT_BUFFER yy_current_buffer


/* yy_hold_char holds the character lost when yytext is formed */
static YY_CHAR yy_hold_char;

static int yy_n_chars;      /* number of characters read into yy_ch_buf */



#ifndef YY_USER_ACTION
    #define YY_USER_ACTION
#endif

#ifndef YY_USER_INIT
    #define YY_USER_INIT
#endif

extern YY_CHAR *yytext;
extern int yyleng;
extern FILE *yyin, *yyout;

YY_CHAR *yytext;
int yyleng;

FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;

#define YY_END_OF_BUFFER 18
typedef int yy_state_type;
static const short int yy_accept[34] =
    {   0,
        0,    0,   18,   16,   13,   14,   16,   16,    6,    7,
       16,    8,   12,   16,    1,   11,    3,    9,   10,    2,
        0,    5,    0,    0,    0,    4,    1,   15,    3,    5,
        0,    0,    0
    } ;

static const YY_CHAR yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    1,    4,    1,    1,    1,    1,    5,    6,
        7,    8,    9,   10,    9,   11,   12,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,    1,    1,    1,
       14,    1,    1,    1,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       16,   17,   18,    1,   15,    1,   15,   15,   15,   15,

       19,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,    1,   20,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

static const YY_CHAR yy_meta[21] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    2,    1,    2,    1,    3,    1,    2,    1
    } ;

static const short int yy_base[37] =
    {   0,
        0,    0,   48,   55,   55,   55,   17,   42,   55,   55,
       19,   55,   55,   23,   17,   55,    0,   55,   55,    0,
       18,   55,   19,   23,   21,   55,   12,   55,    0,   24,
       25,   29,   55,   49,   52,   22
    } ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -