Snoopy Version 6.0 (Albert)
scanner.c File Reference
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <ctype.h>
#include "grammar.h"
Include dependency graph for scanner.c:

Data Structures

struct  yy_buffer_state
struct  yy_trans_info
struct  yyguts_t

Defines

#define YY_INT_ALIGNED   short int
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION   2
#define YY_FLEX_MINOR_VERSION   5
#define YY_FLEX_SUBMINOR_VERSION   35
#define FLEXINT_H
#define INT8_MIN   (-128)
#define INT16_MIN   (-32767-1)
#define INT32_MIN   (-2147483647-1)
#define INT8_MAX   (127)
#define INT16_MAX   (32767)
#define INT32_MAX   (2147483647)
#define UINT8_MAX   (255U)
#define UINT16_MAX   (65535U)
#define UINT32_MAX   (4294967295U)
#define yyconst
#define YY_NULL   0
#define YY_SC_TO_UI(c)   ((unsigned int) (unsigned char) c)
#define YY_TYPEDEF_YY_SCANNER_T
#define yyin   yyg->yyin_r
#define yyout   yyg->yyout_r
#define yyextra   yyg->yyextra_r
#define yyleng   yyg->yyleng_r
#define yytext   yyg->yytext_r
#define yylineno   (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
#define yycolumn   (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
#define yy_flex_debug   yyg->yy_flex_debug_r
#define BEGIN   yyg->yy_start = 1 + 2 *
#define YY_START   ((yyg->yy_start - 1) / 2)
#define YYSTATE   YY_START
#define YY_STATE_EOF(state)   (YY_END_OF_BUFFER + state + 1)
#define YY_NEW_FILE   libconfig_yyrestart(yyin ,yyscanner )
#define YY_END_OF_BUFFER_CHAR   0
#define YY_BUF_SIZE   16384
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
#define YY_TYPEDEF_YY_BUFFER_STATE
#define EOB_ACT_CONTINUE_SCAN   0
#define EOB_ACT_END_OF_FILE   1
#define EOB_ACT_LAST_MATCH   2
#define YY_LESS_LINENO(n)
#define yyless(n)
#define unput(c)   yyunput( c, yyg->yytext_ptr , yyscanner )
#define YY_TYPEDEF_YY_SIZE_T
#define YY_STRUCT_YY_BUFFER_STATE
#define YY_BUFFER_NEW   0
#define YY_BUFFER_NORMAL   1
#define YY_BUFFER_EOF_PENDING   2
#define YY_CURRENT_BUFFER
#define YY_CURRENT_BUFFER_LVALUE   yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
#define YY_FLUSH_BUFFER   libconfig_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
#define yy_new_buffer   libconfig_yy_create_buffer
#define yy_set_interactive(is_interactive)
#define yy_set_bol(at_bol)
#define YY_AT_BOL()   (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
#define libconfig_yywrap(n)   1
#define YY_SKIP_YYWRAP
#define yytext_ptr   yytext_r
#define YY_DO_BEFORE_ACTION
#define YY_NUM_RULES   26
#define YY_END_OF_BUFFER   27
#define REJECT   reject_used_but_not_detected
#define yymore()   yymore_used_but_not_detected
#define YY_MORE_ADJ   0
#define YY_RESTORE_YY_MORE_OFFSET
#define YY_EXTRA_TYPE   void*
#define YY_NO_UNISTD_H   1
#define INITIAL   0
#define COMMENT   1
#define YY_EXTRA_TYPE   void *
#define yylval   yyg->yylval_r
#define YY_READ_BUF_SIZE   8192
#define ECHO   fwrite( yytext, yyleng, 1, yyout )
#define YY_INPUT(buf, result, max_size)
#define yyterminate()   return YY_NULL
#define YY_START_STACK_INCR   25
#define YY_FATAL_ERROR(msg)   yy_fatal_error( msg , yyscanner)
#define YY_DECL_IS_OURS   1
#define YY_DECL
#define YY_USER_ACTION
#define YY_BREAK   break;
#define YY_RULE_SETUP   YY_USER_ACTION
#define YY_EXIT_FAILURE   2
#define yyless(n)
#define YYTABLES_NAME   "yytables"

Typedefs

typedef signed char flex_int8_t
typedef short int flex_int16_t
typedef int flex_int32_t
typedef unsigned char flex_uint8_t
typedef unsigned short int flex_uint16_t
typedef unsigned int flex_uint32_t
typedef void * yyscan_t
typedef struct yy_buffer_stateYY_BUFFER_STATE
typedef size_t yy_size_t
typedef unsigned char YY_CHAR
typedef int yy_state_type

Functions

void libconfig_yyrestart (FILE *input_file, yyscan_t yyscanner)
void libconfig_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
YY_BUFFER_STATE libconfig_yy_create_buffer (FILE *file, int size, yyscan_t yyscanner)
void libconfig_yy_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner)
void libconfig_yy_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner)
void libconfig_yypush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
void libconfig_yypop_buffer_state (yyscan_t yyscanner)
YY_BUFFER_STATE libconfig_yy_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner)
YY_BUFFER_STATE libconfig_yy_scan_string (yyconst char *yy_str, yyscan_t yyscanner)
YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner)
void * libconfig_yyalloc (yy_size_t, yyscan_t yyscanner)
void * libconfig_yyrealloc (void *, yy_size_t, yyscan_t yyscanner)
void libconfig_yyfree (void *, yyscan_t yyscanner)
int libconfig_yylex_init (yyscan_t *scanner)
int libconfig_yylex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t *scanner)
int libconfig_yylex_destroy (yyscan_t yyscanner)
int libconfig_yyget_debug (yyscan_t yyscanner)
void libconfig_yyset_debug (int debug_flag, yyscan_t yyscanner)
YY_EXTRA_TYPE libconfig_yyget_extra (yyscan_t yyscanner)
void libconfig_yyset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner)
FILE * libconfig_yyget_in (yyscan_t yyscanner)
void libconfig_yyset_in (FILE *in_str, yyscan_t yyscanner)
FILE * libconfig_yyget_out (yyscan_t yyscanner)
void libconfig_yyset_out (FILE *out_str, yyscan_t yyscanner)
int libconfig_yyget_leng (yyscan_t yyscanner)
char * libconfig_yyget_text (yyscan_t yyscanner)
int libconfig_yyget_lineno (yyscan_t yyscanner)
void libconfig_yyset_lineno (int line_number, yyscan_t yyscanner)
YYSTYPElibconfig_yyget_lval (yyscan_t yyscanner)
void libconfig_yyset_lval (YYSTYPE *yylval_param, yyscan_t yyscanner)
int libconfig_yywrap (yyscan_t yyscanner)
int libconfig_yylex (YYSTYPE *yylval_param, yyscan_t yyscanner)
int libconfig_yyget_column (yyscan_t yyscanner)
void libconfig_yyset_column (int column_no, yyscan_t yyscanner)

Define Documentation

#define BEGIN   yyg->yy_start = 1 + 2 *
#define COMMENT   1
#define ECHO   fwrite( yytext, yyleng, 1, yyout )
#define EOB_ACT_CONTINUE_SCAN   0
#define EOB_ACT_END_OF_FILE   1
#define EOB_ACT_LAST_MATCH   2
#define FLEX_SCANNER
#define FLEXINT_H
#define INITIAL   0
#define INT16_MAX   (32767)
#define INT16_MIN   (-32767-1)
#define INT32_MAX   (2147483647)
#define INT32_MIN   (-2147483647-1)
#define INT8_MAX   (127)
#define INT8_MIN   (-128)
#define libconfig_yywrap (   n)    1
#define REJECT   reject_used_but_not_detected
#define UINT16_MAX   (65535U)
#define UINT32_MAX   (4294967295U)
#define UINT8_MAX   (255U)
#define unput (   c)    yyunput( c, yyg->yytext_ptr , yyscanner )
#define YY_AT_BOL ( )    (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
#define YY_BREAK   break;
#define YY_BUF_SIZE   16384
#define YY_BUFFER_EOF_PENDING   2
#define YY_BUFFER_NEW   0
#define YY_BUFFER_NORMAL   1
#define YY_CURRENT_BUFFER
Value:
( yyg->yy_buffer_stack \
                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
                          : NULL)
#define YY_CURRENT_BUFFER_LVALUE   yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
#define YY_DECL
Value:
int libconfig_yylex \
               (YYSTYPE * yylval_param , yyscan_t yyscanner)
#define YY_DECL_IS_OURS   1
#define YY_DO_BEFORE_ACTION
Value:
yyg->yytext_ptr = yy_bp; \
        yyleng = (size_t) (yy_cp - yy_bp); \
        yyg->yy_hold_char = *yy_cp; \
        *yy_cp = '\0'; \
        yyg->yy_c_buf_p = yy_cp;
#define YY_END_OF_BUFFER   27
#define YY_END_OF_BUFFER_CHAR   0
#define YY_EXIT_FAILURE   2
#define YY_EXTRA_TYPE   void*
#define YY_EXTRA_TYPE   void *
#define YY_FATAL_ERROR (   msg)    yy_fatal_error( msg , yyscanner)
#define yy_flex_debug   yyg->yy_flex_debug_r
#define YY_FLEX_MAJOR_VERSION   2
#define YY_FLEX_MINOR_VERSION   5
#define YY_FLEX_SUBMINOR_VERSION   35
#define YY_FLUSH_BUFFER   libconfig_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
#define YY_INPUT (   buf,
  result,
  max_size 
)
Value:
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
                unsigned n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
                if ( c == '\n' ) \
                        buf[n++] = (char) c; \
                if ( c == EOF && ferror( yyin ) ) \
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
                result = n; \
                } \
        else \
                { \
                errno=0; \
                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
                        { \
                        if( errno != EINTR) \
                                { \
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
                                break; \
                                } \
                        errno=0; \
                        clearerr(yyin); \
                        } \
                }\
\
#define YY_INT_ALIGNED   short int
#define YY_LESS_LINENO (   n)
Value:
do { \
                int yyl;\
                for ( yyl = n; yyl < yyleng; ++yyl )\
                    if ( yytext[yyl] == '\n' )\
                        --yylineno;\
            }while(0)
#define YY_MORE_ADJ   0
#define yy_new_buffer   libconfig_yy_create_buffer
#define YY_NEW_FILE   libconfig_yyrestart(yyin ,yyscanner )
#define YY_NO_UNISTD_H   1
#define YY_NULL   0
#define YY_NUM_RULES   26
#define YY_READ_BUF_SIZE   8192
#define YY_RESTORE_YY_MORE_OFFSET
#define YY_RULE_SETUP   YY_USER_ACTION
#define YY_SC_TO_UI (   c)    ((unsigned int) (unsigned char) c)
#define yy_set_bol (   at_bol)
Value:
{ \
        if ( ! YY_CURRENT_BUFFER ){\
        libconfig_yyensure_buffer_stack (yyscanner); \
                YY_CURRENT_BUFFER_LVALUE =    \
            libconfig_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        }
#define yy_set_interactive (   is_interactive)
Value:
{ \
        if ( ! YY_CURRENT_BUFFER ){ \
        libconfig_yyensure_buffer_stack (yyscanner); \
                YY_CURRENT_BUFFER_LVALUE =    \
            libconfig_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        }
#define YY_SKIP_YYWRAP
#define YY_START   ((yyg->yy_start - 1) / 2)
#define YY_START_STACK_INCR   25
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
#define YY_STATE_EOF (   state)    (YY_END_OF_BUFFER + state + 1)
#define YY_STRUCT_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_SCANNER_T
#define YY_TYPEDEF_YY_SIZE_T
#define YY_USER_ACTION
#define yycolumn   (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
#define yyconst
#define yyextra   yyg->yyextra_r
#define yyin   yyg->yyin_r
#define yyleng   yyg->yyleng_r
#define yyless (   n)
Value:
do \
                { \
                /* Undo effects of setting up yytext. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
                *yy_cp = yyg->yy_hold_char; \
                YY_RESTORE_YY_MORE_OFFSET \
                yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
                } \
        while ( 0 )
#define yyless (   n)
Value:
do \
                { \
                /* Undo effects of setting up yytext. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
                yytext[yyleng] = yyg->yy_hold_char; \
                yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
                yyg->yy_hold_char = *yyg->yy_c_buf_p; \
                *yyg->yy_c_buf_p = '\0'; \
                yyleng = yyless_macro_arg; \
                } \
        while ( 0 )
#define yylineno   (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
#define yylval   yyg->yylval_r
#define yymore ( )    yymore_used_but_not_detected
#define yyout   yyg->yyout_r
#define YYSTATE   YY_START
#define YYTABLES_NAME   "yytables"
#define yyterminate ( )    return YY_NULL
#define yytext   yyg->yytext_r
#define yytext_ptr   yytext_r

Typedef Documentation

typedef short int flex_int16_t
typedef int flex_int32_t
typedef signed char flex_int8_t
typedef unsigned short int flex_uint16_t
typedef unsigned int flex_uint32_t
typedef unsigned char flex_uint8_t
typedef unsigned char YY_CHAR
typedef size_t yy_size_t
typedef int yy_state_type
typedef void* yyscan_t

Function Documentation

YY_BUFFER_STATE libconfig_yy_create_buffer ( FILE *  file,
int  size,
yyscan_t  yyscanner 
)
void libconfig_yy_delete_buffer ( YY_BUFFER_STATE  b,
yyscan_t  yyscanner 
)

Here is the caller graph for this function:

void libconfig_yy_flush_buffer ( YY_BUFFER_STATE  b,
yyscan_t  yyscanner 
)

Discard all buffered characters. On the next scan, YY_INPUT will be called.

Parameters:
bthe buffer state to be flushed, usually YY_CURRENT_BUFFER.
yyscannerThe scanner object.
YY_BUFFER_STATE libconfig_yy_scan_buffer ( char *  base,
yy_size_t  size,
yyscan_t  yyscanner 
)

Setup the input buffer state to scan directly from a user-specified character buffer.

Parameters:
basethe character buffer
sizethe size in bytes of the character buffer
yyscannerThe scanner object.
Returns:
the newly allocated buffer state object.

Here is the call graph for this function:

Here is the caller graph for this function:

YY_BUFFER_STATE libconfig_yy_scan_bytes ( yyconst char *  yybytes,
int  _yybytes_len,
yyscan_t  yyscanner 
)

Setup the input buffer state to scan the given bytes. The next call to libconfig_yylex() will scan from a copy of bytes.

Parameters:
bytesthe byte buffer to scan
lenthe number of bytes in the buffer pointed to by bytes.
yyscannerThe scanner object.
Returns:
the newly allocated buffer state object.

Here is the call graph for this function:

Here is the caller graph for this function:

YY_BUFFER_STATE libconfig_yy_scan_string ( yyconst char *  yystr,
yyscan_t  yyscanner 
)

Setup the input buffer state to scan a string. The next call to libconfig_yylex() will scan from a copy of str.

Parameters:
yystra NUL-terminated string to scan
yyscannerThe scanner object.
Returns:
the newly allocated buffer state object.
Note:
If you want to scan bytes that may contain NUL values, then use libconfig_yy_scan_bytes() instead.

Here is the call graph for this function:

void libconfig_yy_switch_to_buffer ( YY_BUFFER_STATE  new_buffer,
yyscan_t  yyscanner 
)

Here is the caller graph for this function:

void * libconfig_yyalloc ( yy_size_t  size,
yyscan_t  yyscanner 
)

Here is the caller graph for this function:

void libconfig_yyfree ( void *  ptr,
yyscan_t  yyscanner 
)

Here is the caller graph for this function:

int libconfig_yyget_column ( yyscan_t  yyscanner)

Get the current column number.

Parameters:
yyscannerThe scanner object.
int libconfig_yyget_debug ( yyscan_t  yyscanner)
YY_EXTRA_TYPE libconfig_yyget_extra ( yyscan_t  yyscanner)

Get the user-defined data for this scanner.

Parameters:
yyscannerThe scanner object.
FILE * libconfig_yyget_in ( yyscan_t  yyscanner)

Get the input stream.

Parameters:
yyscannerThe scanner object.
int libconfig_yyget_leng ( yyscan_t  yyscanner)

Get the length of the current token.

Parameters:
yyscannerThe scanner object.
int libconfig_yyget_lineno ( yyscan_t  yyscanner)

Get the current line number.

Parameters:
yyscannerThe scanner object.
YYSTYPE * libconfig_yyget_lval ( yyscan_t  yyscanner)
FILE * libconfig_yyget_out ( yyscan_t  yyscanner)

Get the output stream.

Parameters:
yyscannerThe scanner object.
char * libconfig_yyget_text ( yyscan_t  yyscanner)

Get the current token.

Parameters:
yyscannerThe scanner object.
int libconfig_yylex ( YYSTYPE yylval_param,
yyscan_t  yyscanner 
)
int libconfig_yylex_destroy ( yyscan_t  yyscanner)

Here is the call graph for this function:

Here is the caller graph for this function:

int libconfig_yylex_init ( yyscan_t scanner)

Here is the call graph for this function:

Here is the caller graph for this function:

int libconfig_yylex_init_extra ( YY_EXTRA_TYPE  user_defined,
yyscan_t scanner 
)

Here is the call graph for this function:

void libconfig_yypop_buffer_state ( yyscan_t  yyscanner)

Removes and deletes the top of the stack, if present. The next element becomes the new top.

Parameters:
yyscannerThe scanner object.

Here is the call graph for this function:

Here is the caller graph for this function:

void libconfig_yypush_buffer_state ( YY_BUFFER_STATE  new_buffer,
yyscan_t  yyscanner 
)

Pushes the new state onto the stack. The new state becomes the current state. This function will allocate the stack if necessary.

Parameters:
new_bufferThe new state.
yyscannerThe scanner object.
void * libconfig_yyrealloc ( void *  ptr,
yy_size_t  size,
yyscan_t  yyscanner 
)
void libconfig_yyrestart ( FILE *  input_file,
yyscan_t  yyscanner 
)

Here is the caller graph for this function:

void libconfig_yyset_column ( int  column_no,
yyscan_t  yyscanner 
)

Set the current column.

Parameters:
line_number
yyscannerThe scanner object.
void libconfig_yyset_debug ( int  debug_flag,
yyscan_t  yyscanner 
)
void libconfig_yyset_extra ( YY_EXTRA_TYPE  user_defined,
yyscan_t  yyscanner 
)

Set the user-defined data. This data is never touched by the scanner.

Parameters:
user_definedThe data to be associated with this scanner.
yyscannerThe scanner object.

Here is the caller graph for this function:

void libconfig_yyset_in ( FILE *  in_str,
yyscan_t  yyscanner 
)

Set the input stream. This does not discard the current input buffer.

Parameters:
in_strA readable stream.
yyscannerThe scanner object.
See also:
libconfig_yy_switch_to_buffer
void libconfig_yyset_lineno ( int  line_number,
yyscan_t  yyscanner 
)

Set the current line number.

Parameters:
line_number
yyscannerThe scanner object.
void libconfig_yyset_lval ( YYSTYPE yylval_param,
yyscan_t  yyscanner 
)
void libconfig_yyset_out ( FILE *  out_str,
yyscan_t  yyscanner 
)
int libconfig_yywrap ( yyscan_t  yyscanner)