Merged revisions 162264 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162264 | murf | 2008-12-09 13:20:54 -0700 (Tue, 09 Dec 2008) | 1 line

In discussion with seanbright on #asterisk-dev,  I have added a default rule, and an option to suppress the default rule from being generated in the flex output, for the sake of those OS's where they didn't tweak flex's ECHO macro, and the compiler doesn't like it. The regressions are OK with this.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2008-12-09 20:40:31 +00:00
parent 5f4dc23293
commit 08225b9f7a
2 changed files with 108 additions and 86 deletions

View File

@@ -35,6 +35,14 @@
%option prefix="ael_yy" %option prefix="ael_yy"
%option noyywrap 8bit %option noyywrap 8bit
/* I specify this option to suppress flex generating code with ECHO
in it. This generates compiler warnings in some systems; We've
seen the fwrite generate Unused variable warnings with 4.1.2 gcc.
Some systems have tweaked flex ECHO macro to keep the compiler
happy. To keep the warning message from getting output, I added
a default rule at the end of the patterns section */
%option nodefault
/* yyfree normally just frees its arg. It can be null sometimes, /* yyfree normally just frees its arg. It can be null sometimes,
which some systems will complain about, so, we'll define our own version */ which some systems will complain about, so, we'll define our own version */
%option noyyfree %option noyyfree
@@ -643,6 +651,8 @@ includes { STORE_POS; return KW_INCLUDES;}
} }
} }
<*>.|\n { /* default rule */ ast_log(LOG_ERROR,"Unhandled char(s): %s\n", yytext); }
%% %%
static void pbcpush(char x) static void pbcpush(char x)

View File

@@ -352,8 +352,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*yy_cp = '\0'; \ *yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp; yyg->yy_c_buf_p = yy_cp;
#define YY_NUM_RULES 75 #define YY_NUM_RULES 76
#define YY_END_OF_BUFFER 76 #define YY_END_OF_BUFFER 77
/* This struct is not used in this scanner, /* This struct is not used in this scanner,
but its presence is necessary. */ but its presence is necessary. */
struct yy_trans_info struct yy_trans_info
@@ -364,7 +364,7 @@ struct yy_trans_info
static yyconst flex_int16_t yy_accept[285] = static yyconst flex_int16_t yy_accept[285] =
{ 0, { 0,
0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43,
0, 0, 0, 0, 0, 0, 76, 75, 50, 48, 0, 0, 0, 0, 0, 0, 77, 75, 50, 48,
49, 51, 51, 51, 9, 3, 4, 7, 51, 8, 49, 51, 51, 51, 9, 3, 4, 7, 51, 8,
5, 6, 12, 75, 51, 51, 51, 51, 51, 51, 5, 6, 12, 75, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
@@ -797,6 +797,12 @@ static yyconst flex_int16_t yy_chk[1073] =
* This renames also ael_yywrap, but since we do not use it, we just * This renames also ael_yywrap, but since we do not use it, we just
* add option noyywrap to remove it. * add option noyywrap to remove it.
*/ */
/* I specify this option to suppress flex generating code with ECHO
in it. This generates compiler warnings in some systems; We've
seen the fwrite generate Unused variable warnings with 4.1.2 gcc.
Some systems have tweaked flex ECHO macro to keep the compiler
happy. To keep the warning message from getting output, I added
a default rule at the end of the patterns section */
/* ael_yyfree normally just frees its arg. It can be null sometimes, /* 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 */ 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 /* batch gives a bit more performance if we are using it in
@@ -811,7 +817,7 @@ static yyconst flex_int16_t yy_chk[1073] =
* bison-bridge passes an additional yylval argument to ael_yylex(). * bison-bridge passes an additional yylval argument to ael_yylex().
* bison-locations is probably not needed. * bison-locations is probably not needed.
*/ */
#line 63 "ael.flex" #line 71 "ael.flex"
#include "asterisk.h" #include "asterisk.h"
ASTERISK_FILE_VERSION(__FILE__, "$Revision$") ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
@@ -946,7 +952,7 @@ static void pbcwhere(const char *text, int *line, int *col )
#define STORE_POS #define STORE_POS
#define STORE_LOC #define STORE_LOC
#endif #endif
#line 949 "ael_lex.c" #line 955 "ael_lex.c"
#define INITIAL 0 #define INITIAL 0
#define paren 1 #define paren 1
@@ -1194,10 +1200,10 @@ YY_DECL
register int yy_act; register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
#line 209 "ael.flex" #line 217 "ael.flex"
#line 1200 "ael_lex.c" #line 1206 "ael_lex.c"
yylval = yylval_param; yylval = yylval_param;
@@ -1288,260 +1294,260 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 211 "ael.flex" #line 219 "ael.flex"
{ STORE_POS; return LC;} { STORE_POS; return LC;}
YY_BREAK YY_BREAK
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 212 "ael.flex" #line 220 "ael.flex"
{ STORE_POS; return RC;} { STORE_POS; return RC;}
YY_BREAK YY_BREAK
case 3: case 3:
YY_RULE_SETUP YY_RULE_SETUP
#line 213 "ael.flex" #line 221 "ael.flex"
{ STORE_POS; return LP;} { STORE_POS; return LP;}
YY_BREAK YY_BREAK
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 214 "ael.flex" #line 222 "ael.flex"
{ STORE_POS; return RP;} { STORE_POS; return RP;}
YY_BREAK YY_BREAK
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 215 "ael.flex" #line 223 "ael.flex"
{ STORE_POS; return SEMI;} { STORE_POS; return SEMI;}
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 216 "ael.flex" #line 224 "ael.flex"
{ STORE_POS; return EQ;} { STORE_POS; return EQ;}
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 217 "ael.flex" #line 225 "ael.flex"
{ STORE_POS; return COMMA;} { STORE_POS; return COMMA;}
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 218 "ael.flex" #line 226 "ael.flex"
{ STORE_POS; return COLON;} { STORE_POS; return COLON;}
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 219 "ael.flex" #line 227 "ael.flex"
{ STORE_POS; return AMPER;} { STORE_POS; return AMPER;}
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 220 "ael.flex" #line 228 "ael.flex"
{ STORE_POS; return BAR;} { STORE_POS; return BAR;}
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 221 "ael.flex" #line 229 "ael.flex"
{ STORE_POS; return EXTENMARK;} { STORE_POS; return EXTENMARK;}
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 222 "ael.flex" #line 230 "ael.flex"
{ STORE_POS; return AT;} { STORE_POS; return AT;}
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 223 "ael.flex" #line 231 "ael.flex"
{/*comment*/} {/*comment*/}
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 224 "ael.flex" #line 232 "ael.flex"
{ STORE_POS; return KW_CONTEXT;} { STORE_POS; return KW_CONTEXT;}
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 225 "ael.flex" #line 233 "ael.flex"
{ STORE_POS; return KW_ABSTRACT;} { STORE_POS; return KW_ABSTRACT;}
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 226 "ael.flex" #line 234 "ael.flex"
{ STORE_POS; return KW_EXTEND;} { STORE_POS; return KW_EXTEND;}
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 227 "ael.flex" #line 235 "ael.flex"
{ STORE_POS; return KW_MACRO;}; { STORE_POS; return KW_MACRO;};
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 228 "ael.flex" #line 236 "ael.flex"
{ STORE_POS; return KW_GLOBALS;} { STORE_POS; return KW_GLOBALS;}
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 229 "ael.flex" #line 237 "ael.flex"
{ STORE_POS; return KW_LOCAL;} { STORE_POS; return KW_LOCAL;}
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 230 "ael.flex" #line 238 "ael.flex"
{ STORE_POS; return KW_IGNOREPAT;} { STORE_POS; return KW_IGNOREPAT;}
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 231 "ael.flex" #line 239 "ael.flex"
{ STORE_POS; return KW_SWITCH;} { STORE_POS; return KW_SWITCH;}
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 232 "ael.flex" #line 240 "ael.flex"
{ STORE_POS; return KW_IF;} { STORE_POS; return KW_IF;}
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 233 "ael.flex" #line 241 "ael.flex"
{ STORE_POS; return KW_IFTIME;} { STORE_POS; return KW_IFTIME;}
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 234 "ael.flex" #line 242 "ael.flex"
{ STORE_POS; return KW_RANDOM;} { STORE_POS; return KW_RANDOM;}
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 235 "ael.flex" #line 243 "ael.flex"
{ STORE_POS; return KW_REGEXTEN;} { STORE_POS; return KW_REGEXTEN;}
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 236 "ael.flex" #line 244 "ael.flex"
{ STORE_POS; return KW_HINT;} { STORE_POS; return KW_HINT;}
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 237 "ael.flex" #line 245 "ael.flex"
{ STORE_POS; return KW_ELSE;} { STORE_POS; return KW_ELSE;}
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 238 "ael.flex" #line 246 "ael.flex"
{ STORE_POS; return KW_GOTO;} { STORE_POS; return KW_GOTO;}
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 239 "ael.flex" #line 247 "ael.flex"
{ STORE_POS; return KW_JUMP;} { STORE_POS; return KW_JUMP;}
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 240 "ael.flex" #line 248 "ael.flex"
{ STORE_POS; return KW_RETURN;} { STORE_POS; return KW_RETURN;}
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 241 "ael.flex" #line 249 "ael.flex"
{ STORE_POS; return KW_BREAK;} { STORE_POS; return KW_BREAK;}
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 242 "ael.flex" #line 250 "ael.flex"
{ STORE_POS; return KW_CONTINUE;} { STORE_POS; return KW_CONTINUE;}
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 243 "ael.flex" #line 251 "ael.flex"
{ STORE_POS; return KW_FOR;} { STORE_POS; return KW_FOR;}
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 244 "ael.flex" #line 252 "ael.flex"
{ STORE_POS; return KW_WHILE;} { STORE_POS; return KW_WHILE;}
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 245 "ael.flex" #line 253 "ael.flex"
{ STORE_POS; return KW_CASE;} { STORE_POS; return KW_CASE;}
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 246 "ael.flex" #line 254 "ael.flex"
{ STORE_POS; return KW_DEFAULT;} { STORE_POS; return KW_DEFAULT;}
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 247 "ael.flex" #line 255 "ael.flex"
{ STORE_POS; return KW_PATTERN;} { STORE_POS; return KW_PATTERN;}
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 248 "ael.flex" #line 256 "ael.flex"
{ STORE_POS; return KW_CATCH;} { STORE_POS; return KW_CATCH;}
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 249 "ael.flex" #line 257 "ael.flex"
{ STORE_POS; return KW_SWITCHES;} { STORE_POS; return KW_SWITCHES;}
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 250 "ael.flex" #line 258 "ael.flex"
{ STORE_POS; return KW_ESWITCHES;} { STORE_POS; return KW_ESWITCHES;}
YY_BREAK YY_BREAK
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
#line 251 "ael.flex" #line 259 "ael.flex"
{ STORE_POS; return KW_INCLUDES;} { STORE_POS; return KW_INCLUDES;}
YY_BREAK YY_BREAK
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
#line 252 "ael.flex" #line 260 "ael.flex"
{ BEGIN(comment); my_col += 2; } { BEGIN(comment); my_col += 2; }
YY_BREAK YY_BREAK
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
#line 254 "ael.flex" #line 262 "ael.flex"
{ my_col += yyleng; } { my_col += yyleng; }
YY_BREAK YY_BREAK
case 44: case 44:
/* rule 44 can match eol */ /* rule 44 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 255 "ael.flex" #line 263 "ael.flex"
{ ++my_lineno; my_col=1;} { ++my_lineno; my_col=1;}
YY_BREAK YY_BREAK
case 45: case 45:
YY_RULE_SETUP YY_RULE_SETUP
#line 256 "ael.flex" #line 264 "ael.flex"
{ my_col += yyleng; } { my_col += yyleng; }
YY_BREAK YY_BREAK
case 46: case 46:
/* rule 46 can match eol */ /* rule 46 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 257 "ael.flex" #line 265 "ael.flex"
{ ++my_lineno; my_col=1;} { ++my_lineno; my_col=1;}
YY_BREAK YY_BREAK
case 47: case 47:
YY_RULE_SETUP YY_RULE_SETUP
#line 258 "ael.flex" #line 266 "ael.flex"
{ my_col += 2; BEGIN(INITIAL); } /* the nice thing about comments is that you know exactly what ends them */ { my_col += 2; BEGIN(INITIAL); } /* the nice thing about comments is that you know exactly what ends them */
YY_BREAK YY_BREAK
case 48: case 48:
/* rule 48 can match eol */ /* rule 48 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 260 "ael.flex" #line 268 "ael.flex"
{ my_lineno++; my_col = 1; } { my_lineno++; my_col = 1; }
YY_BREAK YY_BREAK
case 49: case 49:
YY_RULE_SETUP YY_RULE_SETUP
#line 261 "ael.flex" #line 269 "ael.flex"
{ my_col += yyleng; } { my_col += yyleng; }
YY_BREAK YY_BREAK
case 50: case 50:
YY_RULE_SETUP YY_RULE_SETUP
#line 262 "ael.flex" #line 270 "ael.flex"
{ my_col += (yyleng*8)-(my_col%8); } { my_col += (yyleng*8)-(my_col%8); }
YY_BREAK YY_BREAK
case 51: case 51:
YY_RULE_SETUP YY_RULE_SETUP
#line 264 "ael.flex" #line 272 "ael.flex"
{ {
/* boy did I open a can of worms when I changed the lexical token "word". /* boy did I open a can of worms when I changed the lexical token "word".
all the above keywords can be used as a beginning to a "word".- all the above keywords can be used as a beginning to a "word".-
@@ -1570,22 +1576,22 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 52: case 52:
YY_RULE_SETUP YY_RULE_SETUP
#line 290 "ael.flex" #line 298 "ael.flex"
{ yymore(); /* Keep going */ } { yymore(); /* Keep going */ }
YY_BREAK YY_BREAK
case 53: case 53:
YY_RULE_SETUP YY_RULE_SETUP
#line 291 "ael.flex" #line 299 "ael.flex"
{ yymore(); /* Keep going */ } { yymore(); /* Keep going */ }
YY_BREAK YY_BREAK
case 54: case 54:
YY_RULE_SETUP YY_RULE_SETUP
#line 292 "ael.flex" #line 300 "ael.flex"
{ yymore(); /* Keep Going */ } { yymore(); /* Keep Going */ }
YY_BREAK YY_BREAK
case 55: case 55:
YY_RULE_SETUP YY_RULE_SETUP
#line 293 "ael.flex" #line 301 "ael.flex"
{ /* the beginning of a ${} construct. prepare and pop into curlystate */ { /* the beginning of a ${} construct. prepare and pop into curlystate */
parencount2 = 0; parencount2 = 0;
pbcpos2 = 0; pbcpos2 = 0;
@@ -1596,7 +1602,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 56: case 56:
YY_RULE_SETUP YY_RULE_SETUP
#line 300 "ael.flex" #line 308 "ael.flex"
{ /* the beginning of a $[] construct. prepare and pop into brackstate */ { /* the beginning of a $[] construct. prepare and pop into brackstate */
parencount3 = 0; parencount3 = 0;
pbcpos3 = 0; pbcpos3 = 0;
@@ -1608,7 +1614,7 @@ YY_RULE_SETUP
case 57: case 57:
/* rule 57 can match eol */ /* rule 57 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 307 "ael.flex" #line 315 "ael.flex"
{ {
/* a non-word constituent char, like a space, tab, curly, paren, etc */ /* a non-word constituent char, like a space, tab, curly, paren, etc */
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
@@ -1624,7 +1630,7 @@ YY_RULE_SETUP
case 58: case 58:
/* rule 58 can match eol */ /* rule 58 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 320 "ael.flex" #line 328 "ael.flex"
{ {
if ( pbcpop2('}') ) { /* error */ if ( pbcpop2('}') ) { /* error */
STORE_LOC; STORE_LOC;
@@ -1647,7 +1653,7 @@ YY_RULE_SETUP
case 59: case 59:
/* rule 59 can match eol */ /* rule 59 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 339 "ael.flex" #line 347 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if (c == '{') if (c == '{')
@@ -1659,7 +1665,7 @@ YY_RULE_SETUP
case 60: case 60:
/* rule 60 can match eol */ /* rule 60 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 347 "ael.flex" #line 355 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if ( pbcpop2(c)) { /* error */ if ( pbcpop2(c)) { /* error */
@@ -1678,7 +1684,7 @@ YY_RULE_SETUP
case 61: case 61:
/* rule 61 can match eol */ /* rule 61 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 363 "ael.flex" #line 371 "ael.flex"
{ {
if ( pbcpop3(']') ) { /* error */ if ( pbcpop3(']') ) { /* error */
STORE_LOC; STORE_LOC;
@@ -1701,7 +1707,7 @@ YY_RULE_SETUP
case 62: case 62:
/* rule 62 can match eol */ /* rule 62 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 382 "ael.flex" #line 390 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if (c == '[') if (c == '[')
@@ -1713,7 +1719,7 @@ YY_RULE_SETUP
case 63: case 63:
/* rule 63 can match eol */ /* rule 63 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 390 "ael.flex" #line 398 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if ( pbcpop3(c)) { /* error */ if ( pbcpop3(c)) { /* error */
@@ -1739,7 +1745,7 @@ YY_RULE_SETUP
case 64: case 64:
/* rule 64 can match eol */ /* rule 64 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 413 "ael.flex" #line 421 "ael.flex"
{ {
if ( pbcpop(')') ) { /* error */ if ( pbcpop(')') ) { /* error */
STORE_LOC; STORE_LOC;
@@ -1768,7 +1774,7 @@ YY_RULE_SETUP
case 65: case 65:
/* rule 65 can match eol */ /* rule 65 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 438 "ael.flex" #line 446 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if (c == '(') if (c == '(')
@@ -1780,7 +1786,7 @@ YY_RULE_SETUP
case 66: case 66:
/* rule 66 can match eol */ /* rule 66 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 446 "ael.flex" #line 454 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if ( pbcpop(c)) { /* error */ if ( pbcpop(c)) { /* error */
@@ -1807,7 +1813,7 @@ YY_RULE_SETUP
case 67: case 67:
/* rule 67 can match eol */ /* rule 67 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 470 "ael.flex" #line 478 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if (c == '(') if (c == '(')
@@ -1819,7 +1825,7 @@ YY_RULE_SETUP
case 68: case 68:
/* rule 68 can match eol */ /* rule 68 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 478 "ael.flex" #line 486 "ael.flex"
{ {
if ( pbcpop(')') ) { /* error */ if ( pbcpop(')') ) { /* error */
STORE_LOC; STORE_LOC;
@@ -1850,7 +1856,7 @@ YY_RULE_SETUP
case 69: case 69:
/* rule 69 can match eol */ /* rule 69 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 505 "ael.flex" #line 513 "ael.flex"
{ {
if( parencount != 0) { /* ast_log(LOG_NOTICE,"Folding in a comma!\n"); */ if( parencount != 0) { /* ast_log(LOG_NOTICE,"Folding in a comma!\n"); */
yymore(); yymore();
@@ -1869,7 +1875,7 @@ YY_RULE_SETUP
case 70: case 70:
/* rule 70 can match eol */ /* rule 70 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 520 "ael.flex" #line 528 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if ( pbcpop(c) ) { /* error */ if ( pbcpop(c) ) { /* error */
@@ -1892,7 +1898,7 @@ YY_RULE_SETUP
case 71: case 71:
/* rule 71 can match eol */ /* rule 71 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 539 "ael.flex" #line 547 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
yymore(); yymore();
@@ -1902,7 +1908,7 @@ YY_RULE_SETUP
case 72: case 72:
/* rule 72 can match eol */ /* rule 72 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 545 "ael.flex" #line 553 "ael.flex"
{ {
char c = yytext[yyleng-1]; char c = yytext[yyleng-1];
if ( pbcpop(c) ) { /* error */ if ( pbcpop(c) ) { /* error */
@@ -1920,7 +1926,7 @@ YY_RULE_SETUP
case 73: case 73:
/* rule 73 can match eol */ /* rule 73 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 559 "ael.flex" #line 567 "ael.flex"
{ {
STORE_LOC; STORE_LOC;
yylval->str = malloc(yyleng); yylval->str = malloc(yyleng);
@@ -1934,7 +1940,7 @@ YY_RULE_SETUP
case 74: case 74:
/* rule 74 can match eol */ /* rule 74 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 569 "ael.flex" #line 577 "ael.flex"
{ {
char fnamebuf[1024],*p1,*p2; char fnamebuf[1024],*p1,*p2;
int glob_ret; int glob_ret;
@@ -1987,7 +1993,7 @@ case YY_STATE_EOF(comment):
case YY_STATE_EOF(curlystate): case YY_STATE_EOF(curlystate):
case YY_STATE_EOF(wordstate): case YY_STATE_EOF(wordstate):
case YY_STATE_EOF(brackstate): case YY_STATE_EOF(brackstate):
#line 614 "ael.flex" #line 622 "ael.flex"
{ {
char fnamebuf[2048]; 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) { if (include_stack_index > 0 && include_stack[include_stack_index-1].globbuf_pos < include_stack[include_stack_index-1].globbuf.gl_pathc-1) {
@@ -2021,11 +2027,17 @@ case YY_STATE_EOF(brackstate):
} }
YY_BREAK YY_BREAK
case 75: case 75:
/* rule 75 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 646 "ael.flex" #line 654 "ael.flex"
ECHO; { /* default rule */ ast_log(LOG_ERROR,"Unhandled char(s): %s\n", yytext); }
YY_BREAK YY_BREAK
#line 2028 "ael_lex.c" case 76:
YY_RULE_SETUP
#line 656 "ael.flex"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
#line 2040 "ael_lex.c"
case YY_END_OF_BUFFER: case YY_END_OF_BUFFER:
{ {
@@ -3198,7 +3210,7 @@ void *ael_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables" #define YYTABLES_NAME "yytables"
#line 646 "ael.flex" #line 656 "ael.flex"