@ -9,7 +9,7 @@
# define FLEX_SCANNER
# define YY_FLEX_MAJOR_VERSION 2
# define YY_FLEX_MINOR_VERSION 5
# define YY_FLEX_SUBMINOR_VERSION 3 1
# define YY_FLEX_SUBMINOR_VERSION 3 3
# if YY_FLEX_SUBMINOR_VERSION > 0
# define FLEX_BETA
# endif
@ -32,7 +32,15 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# if !defined __STDC_VERSION__ || __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit ( max / min ) macros for int types .
*/
# ifndef __STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS 1
# endif
# include <inttypes.h>
typedef int8_t flex_int8_t ;
typedef uint8_t flex_uint8_t ;
@ -155,6 +163,10 @@ int ael_yylex_init (yyscan_t* scanner);
# define YY_BUF_SIZE 16384
# endif
/* The state buf must be large enough to hold one state per character in the main buffer.
*/
# define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
# ifndef YY_TYPEDEF_YY_BUFFER_STATE
# define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state * YY_BUFFER_STATE ;
@ -765,6 +777,8 @@ static yyconst flex_int16_t yy_chk[1033] =
* This renames also ael_yywrap , but since we do not use it , we just
* add option noyywrap to remove it .
*/
/* ael_yyfree normally just frees its arg. It can be null sometimes,
which some systems will complain about , so , we ' ll define our own version */
/* batch gives a bit more performance if we are using it in
* a non - interactive mode . We probably don ' t care much .
*/
@ -777,7 +791,7 @@ static yyconst flex_int16_t yy_chk[1033] =
* bison - bridge passes an additional yylval argument to ael_yylex ( ) .
* bison - locations is probably not needed .
*/
# line 59 "ael.flex"
# line 63 "ael.flex"
ASTERISK_FILE_VERSION ( __FILE__ , " $Revision$ " )
# include <sys/types.h>
@ -891,7 +905,7 @@ static void pbcwhere(const char *text, int *line, int *col )
# define STORE_POS
# define STORE_LOC
# endif
# line 894 "ael_lex.c"
# line 908 "ael_lex.c"
# define INITIAL 0
# define paren 1
@ -1101,11 +1115,9 @@ static int input (yyscan_t yyscanner );
# ifndef YY_DECL
# define YY_DECL_IS_OURS 1
extern int ael_yylex \
( YYSTYPE * yylval_param , YYLTYPE * yylloc_param , yyscan_t yyscanner ) ;
extern int ael_yylex ( YYSTYPE * yylval_param , YYLTYPE * yylloc_param , yyscan_t yyscanner ) ;
# define YY_DECL int ael_yylex \
( YYSTYPE * yylval_param , YYLTYPE * yylloc_param , yyscan_t yyscanner )
# define YY_DECL int ael_yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
# endif /* !YY_DECL */
/* Code executed at the beginning of each rule, after yytext and yyleng
@ -1132,18 +1144,18 @@ YY_DECL
register int yy_act ;
struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ;
# line 18 1 "ael.flex"
# line 18 5 "ael.flex"
# line 11 38 "ael_lex.c"
# line 11 50 "ael_lex.c"
yylval = yylval_param ;
yylloc = yylloc_param ;
if ( yyg - > yy_init )
if ( ! yyg - > yy_init )
{
yyg - > yy_init = 0 ;
yyg - > yy_init = 1 ;
# ifdef YY_USER_INIT
YY_USER_INIT ;
@ -1226,255 +1238,255 @@ do_action: /* This label is used only to access EOF actions. */
case 1 :
YY_RULE_SETUP
# line 18 3 "ael.flex"
# line 18 7 "ael.flex"
{ STORE_POS ; return LC ; }
YY_BREAK
case 2 :
YY_RULE_SETUP
# line 18 4 "ael.flex"
# line 18 8 "ael.flex"
{ STORE_POS ; return RC ; }
YY_BREAK
case 3 :
YY_RULE_SETUP
# line 18 5 "ael.flex"
# line 18 9 "ael.flex"
{ STORE_POS ; return LP ; }
YY_BREAK
case 4 :
YY_RULE_SETUP
# line 1 86 "ael.flex"
# line 1 90 "ael.flex"
{ STORE_POS ; return RP ; }
YY_BREAK
case 5 :
YY_RULE_SETUP
# line 1 87 "ael.flex"
# line 1 91 "ael.flex"
{ STORE_POS ; return SEMI ; }
YY_BREAK
case 6 :
YY_RULE_SETUP
# line 1 88 "ael.flex"
# line 1 92 "ael.flex"
{ STORE_POS ; return EQ ; }
YY_BREAK
case 7 :
YY_RULE_SETUP
# line 1 8 9 "ael.flex"
# line 1 93 "ael.flex"
{ STORE_POS ; return COMMA ; }
YY_BREAK
case 8 :
YY_RULE_SETUP
# line 19 0 "ael.flex"
# line 19 4 "ael.flex"
{ STORE_POS ; return COLON ; }
YY_BREAK
case 9 :
YY_RULE_SETUP
# line 19 1 "ael.flex"
# line 19 5 "ael.flex"
{ STORE_POS ; return AMPER ; }
YY_BREAK
case 10 :
YY_RULE_SETUP
# line 19 2 "ael.flex"
# line 19 6 "ael.flex"
{ STORE_POS ; return BAR ; }
YY_BREAK
case 11 :
YY_RULE_SETUP
# line 19 3 "ael.flex"
# line 19 7 "ael.flex"
{ STORE_POS ; return EXTENMARK ; }
YY_BREAK
case 12 :
YY_RULE_SETUP
# line 19 4 "ael.flex"
# line 19 8 "ael.flex"
{ STORE_POS ; return AT ; }
YY_BREAK
case 13 :
YY_RULE_SETUP
# line 19 5 "ael.flex"
# line 19 9 "ael.flex"
{ /*comment*/ }
YY_BREAK
case 14 :
YY_RULE_SETUP
# line 196 "ael.flex"
# line 200 "ael.flex"
{ STORE_POS ; return KW_CONTEXT ; }
YY_BREAK
case 15 :
YY_RULE_SETUP
# line 197 "ael.flex"
# line 20 1 "ael.flex"
{ STORE_POS ; return KW_ABSTRACT ; }
YY_BREAK
case 16 :
YY_RULE_SETUP
# line 198 "ael.flex"
# line 202 "ael.flex"
{ STORE_POS ; return KW_EXTEND ; }
YY_BREAK
case 17 :
YY_RULE_SETUP
# line 199 "ael.flex"
# line 203 "ael.flex"
{ STORE_POS ; return KW_MACRO ; } ;
YY_BREAK
case 18 :
YY_RULE_SETUP
# line 20 0 "ael.flex"
# line 20 4 "ael.flex"
{ STORE_POS ; return KW_GLOBALS ; }
YY_BREAK
case 19 :
YY_RULE_SETUP
# line 20 1 "ael.flex"
# line 20 5 "ael.flex"
{ STORE_POS ; return KW_IGNOREPAT ; }
YY_BREAK
case 20 :
YY_RULE_SETUP
# line 20 2 "ael.flex"
# line 20 6 "ael.flex"
{ STORE_POS ; return KW_SWITCH ; }
YY_BREAK
case 21 :
YY_RULE_SETUP
# line 20 3 "ael.flex"
# line 20 7 "ael.flex"
{ STORE_POS ; return KW_IF ; }
YY_BREAK
case 22 :
YY_RULE_SETUP
# line 20 4 "ael.flex"
# line 20 8 "ael.flex"
{ STORE_POS ; return KW_IFTIME ; }
YY_BREAK
case 23 :
YY_RULE_SETUP
# line 20 5 "ael.flex"
# line 20 9 "ael.flex"
{ STORE_POS ; return KW_RANDOM ; }
YY_BREAK
case 24 :
YY_RULE_SETUP
# line 2 06 "ael.flex"
# line 2 1 0 "ael.flex"
{ STORE_POS ; return KW_REGEXTEN ; }
YY_BREAK
case 25 :
YY_RULE_SETUP
# line 2 07 "ael.flex"
# line 2 11 "ael.flex"
{ STORE_POS ; return KW_HINT ; }
YY_BREAK
case 26 :
YY_RULE_SETUP
# line 2 08 "ael.flex"
# line 2 12 "ael.flex"
{ STORE_POS ; return KW_ELSE ; }
YY_BREAK
case 27 :
YY_RULE_SETUP
# line 2 09 "ael.flex"
# line 2 13 "ael.flex"
{ STORE_POS ; return KW_GOTO ; }
YY_BREAK
case 28 :
YY_RULE_SETUP
# line 21 0 "ael.flex"
# line 21 4 "ael.flex"
{ STORE_POS ; return KW_JUMP ; }
YY_BREAK
case 29 :
YY_RULE_SETUP
# line 21 1 "ael.flex"
# line 21 5 "ael.flex"
{ STORE_POS ; return KW_RETURN ; }
YY_BREAK
case 30 :
YY_RULE_SETUP
# line 21 2 "ael.flex"
# line 21 6 "ael.flex"
{ STORE_POS ; return KW_BREAK ; }
YY_BREAK
case 31 :
YY_RULE_SETUP
# line 21 3 "ael.flex"
# line 21 7 "ael.flex"
{ STORE_POS ; return KW_CONTINUE ; }
YY_BREAK
case 32 :
YY_RULE_SETUP
# line 21 4 "ael.flex"
# line 21 8 "ael.flex"
{ STORE_POS ; return KW_FOR ; }
YY_BREAK
case 33 :
YY_RULE_SETUP
# line 21 5 "ael.flex"
# line 21 9 "ael.flex"
{ STORE_POS ; return KW_WHILE ; }
YY_BREAK
case 34 :
YY_RULE_SETUP
# line 2 16 "ael.flex"
# line 2 20 "ael.flex"
{ STORE_POS ; return KW_CASE ; }
YY_BREAK
case 35 :
YY_RULE_SETUP
# line 2 17 "ael.flex"
# line 2 2 1 "ael.flex"
{ STORE_POS ; return KW_DEFAULT ; }
YY_BREAK
case 36 :
YY_RULE_SETUP
# line 2 18 "ael.flex"
# line 2 22 "ael.flex"
{ STORE_POS ; return KW_PATTERN ; }
YY_BREAK
case 37 :
YY_RULE_SETUP
# line 2 19 "ael.flex"
# line 2 23 "ael.flex"
{ STORE_POS ; return KW_CATCH ; }
YY_BREAK
case 38 :
YY_RULE_SETUP
# line 22 0 "ael.flex"
# line 22 4 "ael.flex"
{ STORE_POS ; return KW_SWITCHES ; }
YY_BREAK
case 39 :
YY_RULE_SETUP
# line 22 1 "ael.flex"
# line 22 5 "ael.flex"
{ STORE_POS ; return KW_ESWITCHES ; }
YY_BREAK
case 40 :
YY_RULE_SETUP
# line 22 2 "ael.flex"
# line 22 6 "ael.flex"
{ STORE_POS ; return KW_INCLUDES ; }
YY_BREAK
case 41 :
YY_RULE_SETUP
# line 22 3 "ael.flex"
# line 22 7 "ael.flex"
{ BEGIN ( comment ) ; my_col + = 2 ; }
YY_BREAK
case 42 :
YY_RULE_SETUP
# line 22 5 "ael.flex"
# line 22 9 "ael.flex"
{ my_col + = yyleng ; }
YY_BREAK
case 43 :
/* rule 43 can match eol */
YY_RULE_SETUP
# line 2 26 "ael.flex"
# line 2 30 "ael.flex"
{ + + my_lineno ; my_col = 1 ; }
YY_BREAK
case 44 :
YY_RULE_SETUP
# line 2 27 "ael.flex"
# line 2 31 "ael.flex"
{ my_col + = yyleng ; }
YY_BREAK
case 45 :
/* rule 45 can match eol */
YY_RULE_SETUP
# line 2 28 "ael.flex"
# line 2 3 2 "ael.flex"
{ + + my_lineno ; my_col = 1 ; }
YY_BREAK
case 46 :
YY_RULE_SETUP
# line 2 29 "ael.flex"
# line 2 33 "ael.flex"
{ my_col + = 2 ; BEGIN ( INITIAL ) ; }
YY_BREAK
case 47 :
/* rule 47 can match eol */
YY_RULE_SETUP
# line 23 1 "ael.flex"
# line 23 5 "ael.flex"
{ my_lineno + + ; my_col = 1 ; }
YY_BREAK
case 48 :
YY_RULE_SETUP
# line 23 2 "ael.flex"
# line 23 6 "ael.flex"
{ my_col + = yyleng ; }
YY_BREAK
case 49 :
YY_RULE_SETUP
# line 23 3 "ael.flex"
# line 23 7 "ael.flex"
{ my_col + = ( yyleng * 8 ) - ( my_col % 8 ) ; }
YY_BREAK
case 50 :
YY_RULE_SETUP
# line 23 5 "ael.flex"
# line 23 9 "ael.flex"
{
STORE_POS ;
yylval - > str = strdup ( yytext ) ;
@ -1492,7 +1504,7 @@ YY_RULE_SETUP
case 51 :
/* rule 51 can match eol */
YY_RULE_SETUP
# line 25 1 "ael.flex"
# line 25 5 "ael.flex"
{
if ( pbcpop ( ' ) ' ) ) { /* error */
STORE_LOC ;
@ -1518,7 +1530,7 @@ YY_RULE_SETUP
case 52 :
/* rule 52 can match eol */
YY_RULE_SETUP
# line 27 3 "ael.flex"
# line 27 7 "ael.flex"
{
char c = yytext [ yyleng - 1 ] ;
if ( c = = ' ( ' )
@ -1530,7 +1542,7 @@ YY_RULE_SETUP
case 53 :
/* rule 53 can match eol */
YY_RULE_SETUP
# line 28 1 "ael.flex"
# line 28 5 "ael.flex"
{
char c = yytext [ yyleng - 1 ] ;
if ( pbcpop ( c ) ) { /* error */
@ -1555,7 +1567,7 @@ YY_RULE_SETUP
case 54 :
/* rule 54 can match eol */
YY_RULE_SETUP
# line 30 3 "ael.flex"
# line 30 7 "ael.flex"
{
char c = yytext [ yyleng - 1 ] ;
if ( c = = ' ( ' )
@ -1567,7 +1579,7 @@ YY_RULE_SETUP
case 55 :
/* rule 55 can match eol */
YY_RULE_SETUP
# line 31 1 "ael.flex"
# line 31 5 "ael.flex"
{
if ( pbcpop ( ' ) ' ) ) { /* error */
STORE_LOC ;
@ -1595,7 +1607,7 @@ YY_RULE_SETUP
case 56 :
/* rule 56 can match eol */
YY_RULE_SETUP
# line 33 5 "ael.flex"
# line 33 9 "ael.flex"
{
if ( parencount ! = 0 ) { /* printf("Folding in a comma!\n"); */
yymore ( ) ;
@ -1613,7 +1625,7 @@ YY_RULE_SETUP
case 57 :
/* rule 57 can match eol */
YY_RULE_SETUP
# line 3 49 "ael.flex"
# line 3 53 "ael.flex"
{
char c = yytext [ yyleng - 1 ] ;
if ( pbcpop ( c ) ) { /* error */
@ -1634,7 +1646,7 @@ YY_RULE_SETUP
case 58 :
/* rule 58 can match eol */
YY_RULE_SETUP
# line 3 66 "ael.flex"
# line 3 70 "ael.flex"
{
char c = yytext [ yyleng - 1 ] ;
yymore ( ) ;
@ -1644,7 +1656,7 @@ YY_RULE_SETUP
case 59 :
/* rule 59 can match eol */
YY_RULE_SETUP
# line 37 2 "ael.flex"
# line 37 6 "ael.flex"
{
char c = yytext [ yyleng - 1 ] ;
if ( pbcpop ( c ) ) { /* error */
@ -1660,7 +1672,7 @@ YY_RULE_SETUP
case 60 :
/* rule 60 can match eol */
YY_RULE_SETUP
# line 38 4 "ael.flex"
# line 38 8 "ael.flex"
{
STORE_LOC ;
yylval - > str = strdup ( yytext ) ;
@ -1673,7 +1685,7 @@ YY_RULE_SETUP
case 61 :
/* rule 61 can match eol */
YY_RULE_SETUP
# line 39 3 "ael.flex"
# line 39 7 "ael.flex"
{
char fnamebuf [ 1024 ] , * p1 , * p2 ;
int glob_ret ;
@ -1719,7 +1731,7 @@ case YY_STATE_EOF(paren):
case YY_STATE_EOF ( semic ) :
case YY_STATE_EOF ( argg ) :
case YY_STATE_EOF ( comment ) :
# line 43 4 "ael.flex"
# line 43 8 "ael.flex"
{
char fnamebuf [ 2048 ] ;
if ( include_stack_index > 0 & & include_stack [ include_stack_index - 1 ] . globbuf_pos < include_stack [ include_stack_index - 1 ] . globbuf . gl_pathc - 1 ) {
@ -1756,10 +1768,10 @@ case YY_STATE_EOF(comment):
YY_BREAK
case 62 :
YY_RULE_SETUP
# line 4 68 "ael.flex"
# line 4 72 "ael.flex"
ECHO ;
YY_BREAK
# line 17 62 "ael_lex.c"
# line 17 74 "ael_lex.c"
case YY_END_OF_BUFFER :
{
@ -2061,7 +2073,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
static yy_state_type yy_try_NUL_trans ( yy_state_type yy_current_state , yyscan_t yyscanner )
{
register int yy_is_jam ;
struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ;
struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ; /* This var may be unused depending upon options. */
register char * yy_cp = yyg - > yy_c_buf_p ;
register YY_CHAR yy_c = 1 ;
@ -2510,10 +2522,10 @@ YY_BUFFER_STATE ael_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yys
* @ note If you want to scan bytes that may contain NUL values , then use
* ael_yy_scan_bytes ( ) instead .
*/
YY_BUFFER_STATE ael_yy_scan_string ( yyconst char * yy _ str , yyscan_t yyscanner )
YY_BUFFER_STATE ael_yy_scan_string ( yyconst char * yy str , yyscan_t yyscanner )
{
return ael_yy_scan_bytes ( yy _ str, strlen ( yy _ str) , yyscanner ) ;
return ael_yy_scan_bytes ( yy str, strlen ( yy str) , yyscanner ) ;
}
/** Setup the input buffer state to scan the given bytes. The next call to ael_yylex() will
@ -2523,7 +2535,7 @@ YY_BUFFER_STATE ael_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner)
* @ param yyscanner The scanner object .
* @ return the newly allocated buffer state object .
*/
YY_BUFFER_STATE ael_yy_scan_bytes ( yyconst char * bytes, int len , yyscan_t yyscanner )
YY_BUFFER_STATE ael_yy_scan_bytes ( yyconst char * yy bytes, int _yybytes_ len , yyscan_t yyscanner )
{
YY_BUFFER_STATE b ;
char * buf ;
@ -2531,15 +2543,15 @@ YY_BUFFER_STATE ael_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yy
int i ;
/* Get memory for full buffer, including space for trailing EOB's. */
n = len + 2 ;
n = _yybytes_ len + 2 ;
buf = ( char * ) ael_yyalloc ( n , yyscanner ) ;
if ( ! buf )
YY_FATAL_ERROR ( " out of dynamic memory in ael_yy_scan_bytes() " ) ;
for ( i = 0 ; i < len; + + i )
buf [ i ] = bytes[ i ] ;
for ( i = 0 ; i < _yybytes_ len; + + i )
buf [ i ] = yy bytes[ i ] ;
buf [ len] = buf [ len+ 1 ] = YY_END_OF_BUFFER_CHAR ;
buf [ _yybytes_ len] = buf [ _yybytes_ len+ 1 ] = YY_END_OF_BUFFER_CHAR ;
b = ael_yy_scan_buffer ( buf , n , yyscanner ) ;
if ( ! b )
@ -2750,21 +2762,51 @@ void ael_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
yylloc = yylloc_param ;
}
/* User-visible API */
/* ael_yylex_init is special because it creates the scanner itself, so it is
* the ONLY reentrant function that doesn ' t take the scanner as the last argument .
* That ' s why we explicitly handle the declaration , instead of using our macros .
*/
int ael_yylex_init ( yyscan_t * ptr_yy_globals )
{
if ( ptr_yy_globals = = NULL ) {
errno = EINVAL ;
return 1 ;
}
* ptr_yy_globals = ( yyscan_t ) ael_yyalloc ( sizeof ( struct yyguts_t ) , NULL ) ;
if ( * ptr_yy_globals = = NULL ) {
errno = ENOMEM ;
return 1 ;
}
/* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
memset ( * ptr_yy_globals , 0x00 , sizeof ( struct yyguts_t ) ) ;
return yy_init_globals ( * ptr_yy_globals ) ;
}
static int yy_init_globals ( yyscan_t yyscanner )
{
struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ;
/* Initialization is the same as for the non-reentrant scanner.
This function is called once per scanner lifetime . */
* This function is called from ael_yylex_destroy ( ) , so don ' t allocate here .
*/
yyg - > yy_buffer_stack = 0 ;
yyg - > yy_buffer_stack_top = 0 ;
yyg - > yy_buffer_stack_max = 0 ;
yyg - > yy_c_buf_p = ( char * ) 0 ;
yyg - > yy_init = 1 ;
yyg - > yy_init = 0 ;
yyg - > yy_start = 0 ;
yyg - > yy_start_stack_ptr = 0 ;
yyg - > yy_start_stack_depth = 0 ;
yyg - > yy_start_stack = ( int * ) 0 ;
yyg - > yy_start_stack = NULL ;
/* Defined in main.c */
# ifdef YY_STDINIT
@ -2781,33 +2823,6 @@ static int yy_init_globals (yyscan_t yyscanner)
return 0 ;
}
/* User-visible API */
/* ael_yylex_init is special because it creates the scanner itself, so it is
* the ONLY reentrant function that doesn ' t take the scanner as the last argument .
* That ' s why we explicitly handle the declaration , instead of using our macros .
*/
int ael_yylex_init ( yyscan_t * ptr_yy_globals )
{
if ( ptr_yy_globals = = NULL ) {
errno = EINVAL ;
return 1 ;
}
* ptr_yy_globals = ( yyscan_t ) ael_yyalloc ( sizeof ( struct yyguts_t ) , NULL ) ;
if ( * ptr_yy_globals = = NULL ) {
errno = ENOMEM ;
return 1 ;
}
memset ( * ptr_yy_globals , 0 , sizeof ( struct yyguts_t ) ) ;
return yy_init_globals ( * ptr_yy_globals ) ;
}
/* ael_yylex_destroy is for both reentrant and non-reentrant scanners. */
int ael_yylex_destroy ( yyscan_t yyscanner )
{
@ -2828,8 +2843,13 @@ int ael_yylex_destroy (yyscan_t yyscanner)
ael_yyfree ( yyg - > yy_start_stack , yyscanner ) ;
yyg - > yy_start_stack = NULL ;
/* Reset the globals. This is important in a non-reentrant scanner so the next time
* ael_yylex ( ) is called , initialization will occur . */
yy_init_globals ( yyscanner ) ;
/* Destroy the main struct (reentrant only). */
ael_yyfree ( yyscanner , yyscanner ) ;
yyscanner = NULL ;
return 0 ;
}
@ -2841,7 +2861,6 @@ int ael_yylex_destroy (yyscan_t yyscanner)
static void yy_flex_strncpy ( char * s1 , yyconst char * s2 , int n , yyscan_t yyscanner )
{
register int i ;
struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ;
for ( i = 0 ; i < n ; + + i )
s1 [ i ] = s2 [ i ] ;
}
@ -2851,7 +2870,6 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yysca
static int yy_flex_strlen ( yyconst char * s , yyscan_t yyscanner )
{
register int n ;
struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ;
for ( n = 0 ; s [ n ] ; + + n )
;
@ -2876,26 +2894,9 @@ void *ael_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
return ( void * ) realloc ( ( char * ) ptr , size ) ;
}
void ael_yyfree ( void * ptr , yyscan_t yyscanner )
{
free ( ( char * ) ptr ) ; /* see ael_yyrealloc() for (char *) cast */
}
# define YYTABLES_NAME "yytables"
# undef YY_NEW_FILE
# undef YY_FLUSH_BUFFER
# undef yy_set_bol
# undef yy_new_buffer
# undef yy_set_interactive
# undef yytext_ptr
# undef YY_DO_BEFORE_ACTION
# ifdef YY_DECL_IS_OURS
# undef YY_DECL_IS_OURS
# undef YY_DECL
# endif
# line 468 "ael.flex"
# line 472 "ael.flex"
@ -2904,6 +2905,12 @@ static void pbcpush(char x)
pbcstack [ pbcpos + + ] = x ;
}
void ael_yyfree ( void * ptr , yyscan_t yyscanner )
{
if ( ptr )
free ( ( char * ) ptr ) ;
}
static int pbcpop ( char x )
{
if ( ( x = = ' ) ' & & pbcstack [ pbcpos - 1 ] = = ' ( ' )