/*  macro definitions for fast/full-table  C/FTL programs generated by flex */

#include "s:flexskelcom.h"

#define YY_END_OF_BUFFER_CHAR 0

/* action number for "not an accepting state; back-track (not implemented)" */
#define YY_BACK_TRACK 0

/* action number for end-of-buffer was seen */
#define YY_END_OF_BUFFER -3

/* reinitializes everything except the current start condition.  The last
 * input character is set to a newline so an initial beginning-of-line
 * rule will match
 */
#define YY_FAST_INIT \
        { \
        yytext = yy_c_buf_p = &yy_ch_buf[1]; \
        yyleng = 0; \
        yy_hold_char = *yy_c_buf_p; \
        }

/* done before the next pattern has been matched action
 * change both of these if you change them at all!
 */
#define YY_DO_BEFORE_SCAN \
        *yy_c_buf_p = yy_hold_char
#define YY_DO_BEFORE_RESTART \
        yy_hold_char = *yy_c_buf_p

/* done after the current pattern has been matched and before the
 * corresponding action
 */
#define YY_DO_BEFORE_ACTION \
        yytext = yy_b_buf_p; \
        yyleng = YY_LENG; \
        yy_hold_char = *yy_c_buf_p; \
        *yy_c_buf_p = '\0'

/* returns the length of the matched text */
#define YY_LENG (yy_c_buf_p - yy_b_buf_p)

#ifdef FLEX_FULL_TABLE
#define YY_CS_TYPE int
#else
#define YY_CS_TYPE struct yy_trans_info *
#endif

/* find starting state */
#ifdef FLEX_FULL_TABLE
#    define YY_FIND_START_STATE( x ) \
            x = yy_start; \
            if ( yy_b_buf_p[-1] == '\n' ) \
                ++x
#else
#    define YY_FIND_START_STATE( x ) \
            x = yy_state_ptr[yy_start]; \
            if ( yy_b_buf_p[-1] == '\n' ) \
                x = yy_state_ptr[yy_start + 1]
#endif

# ifdef FLEX_USE_ECS
#     define yy_eq(x) e[x]
# else
#     define yy_eq(x) x
# endif

/* get next jam state from packed table */
#ifdef FLEX_FULL_TABLE
#    define YY_FIND_NEXT_MATCH \
            { \
            register int yy_state_info; \
            while ( (yy_state_info = n[yy_current_state][yy_eq(*yy_c_buf_p)] ) != YY_JAM ) \
                { \
                yy_current_state = yy_state_info; \
                YY_BACKTRACKING_ACTION \
                yy_c_buf_p++; \
                } \
            }
#else
#    define YY_FIND_NEXT_MATCH \
            for ( yy_c = yy_eq(*yy_c_buf_p); \
                  (yy_trans_info = &yy_current_state[yy_c])->v == yy_c; \
                  yy_c = yy_eq(*++yy_c_buf_p) ) \
                { \
                yy_current_state += yy_trans_info->n; \
                YY_BACKTRACKING_ACTION \
                }
#endif

#ifdef FLEX_FULL_TABLE
#    define YY_FIND_ACTION( x ) x = l[yy_current_state]
#else
#    define YY_FIND_ACTION( x ) x = yy_current_state[-1].n
#endif


#ifdef FLEX_FULL_TABLE
#    define YY_GET_NEXT_STATE yy_cur_state = n[yy_cur_state][*(yy_temp_char_ptr++)]
#else
#    define YY_GET_NEXT_STATE yy_cur_state += yy_cur_state[*(yy_temp_char_ptr++)].n
#endif

#define EOB_ACT_RESTART_SCAN 2
#define EOB_ACT_END_OF_FILE 3
#define EOB_ACT_LAST_MATCH 4

#ifdef FLEX_FULL_TABLE
#define YY_DECLARE_YY_CS_PARAM int *yy_current_state
#else
#define YY_DECLARE_YY_CS_PARAM struct yy_trans_info *yy_current_state
#endif
