From 2de9dcb34546f7c81b3c911d8f64ed35b487a996 Mon Sep 17 00:00:00 2001 From: Luigi Rizzo Date: Wed, 26 Apr 2006 18:40:09 +0000 Subject: whitespace-only change: fix formatting and indentation of the flex file, and regenerate the ael_lex.c git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22571 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx/ael/ael.flex | 795 +++++++++++++++++++++++----------------------- pbx/ael/ael_lex.c | 918 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 880 insertions(+), 833 deletions(-) diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex index 2a9a2e36e..d3965c15f 100644 --- a/pbx/ael/ael.flex +++ b/pbx/ael/ael.flex @@ -19,7 +19,7 @@ /*! \file * * \brief Flex scanner description of tokens used in AEL2 . - * + * */#include #include #include @@ -52,12 +52,11 @@ static int pbcpop(char x); static void pbcwhere(char *text, int *line, int *col ); static int c_prevword(void); -struct stackelement -{ - char *fname; - int lineno; - int colno; - YY_BUFFER_STATE bufstate; +struct stackelement { + char *fname; + int lineno; + int colno; + YY_BUFFER_STATE bufstate; }; struct stackelement include_stack[MAX_INCLUDE_DEPTH]; int include_stack_index = 0; @@ -120,352 +119,384 @@ includes {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_colum [ ]+ {/* nothing */ int wid = 8-(my_col%8); my_col+=wid;} [-a-zA-Z0-9'"_/.\<\>\*\+!$#\[\]][-a-zA-Z0-9'"_/.!\*\+\<\>\{\}$#\[\]]* { - yylloc->first_line = yylloc->last_line = my_lineno;yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col; /* set up the ptr */ - yylval->str = strdup(yytext); - /* printf("\nGot WORD %s[%d][%d:%d]\n", yylval->str, my_lineno ,yylloc->first_column,yylloc->last_column ); */ - my_col+=yyleng; - prev_word = yylval->str; - return word; - } - -[^()\[\]\{\}]*\) {yylloc->first_line = my_lineno; yylloc->first_column=my_col; - if ( pbcpop(')') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression: %s !\n", my_file, my_lineno+l4, c4, yytext); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - prev_word = 0; - return word; - } - parencount--; - if ( parencount >= 0) { - yymore(); - } else { - int l4,c4; - pbcwhere(yytext, &l4, &c4); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - yylval->str = strdup(yytext); - *(yylval->str+strlen(yylval->str)-1)=0; - /* printf("Got paren word %s\n", yylval->str); */ - unput(')'); - my_col=c4; - my_lineno += l4; - BEGIN(0); - return word; - } - } - -[^()\[\]\{\}]*\( {yylloc->first_line = my_lineno; yylloc->first_column=my_col; - parencount++; pbcpush('('); - yymore(); - } + yylloc->first_line = yylloc->last_line = my_lineno; + yylloc->last_column=my_col+yyleng-1; + yylloc->first_column=my_col; /* set up the ptr */ + my_col+=yyleng; + yylval->str = strdup(yytext); + /* printf("\nGot WORD %s[%d][%d:%d]\n", yylval->str, my_lineno ,yylloc->first_column,yylloc->last_column ); */ + prev_word = yylval->str; + return word; + } + +[^()\[\]\{\}]*\) { + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + if ( pbcpop(')') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression: %s !\n", my_file, my_lineno+l4, c4, yytext); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + prev_word = 0; + return word; + } + parencount--; + if ( parencount >= 0) { + yymore(); + } else { + int l4,c4; + pbcwhere(yytext, &l4, &c4); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + yylval->str = strdup(yytext); + *(yylval->str+strlen(yylval->str)-1)=0; + /* printf("Got paren word %s\n", yylval->str); */ + unput(')'); + my_col=c4; + my_lineno += l4; + BEGIN(0); + return word; + } + } + +[^()\[\]\{\}]*\( { + yylloc->first_line = my_lineno; yylloc->first_column=my_col; + parencount++; + pbcpush('('); + yymore(); + } + [^()\[\]\{\}]*\[ {yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } -[^()\[\]\{\}]*\] {yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(']') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); - } + +[^()\[\]\{\}]*\] { + yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(']') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } + [^()\[\]\{\}]*\{ {yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('{'); } -[^()\[\]\{\}]*\} {yylloc->first_line = my_lineno; - yylloc->first_column=my_col; - if ( pbcpop('}') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); - } - - -[^(),\{\}\[\]]*\) {/* printf("ARGG:%s\n",yytext); */ - int linecount = 0; - int colcount = my_col; - char *pt = yytext; - - yylloc->first_line = my_lineno; - yylloc->first_column=my_col; - if ( pbcpop(')') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - - - while (*pt) { - if (*pt == '\n') { - linecount++; - colcount=0; - } - pt++; - colcount++; - } - yylloc->last_line = my_lineno+linecount; - yylloc->last_column=colcount; - parencount--; - if( parencount >= 0){ - yymore(); - } else { - yylval->str = strdup(yytext); - if(yyleng > 1 ) - *(yylval->str+yyleng-1)=0; - /* printf("Got argg word '%s'\n", yylval->str); */ - BEGIN(0); - if ( !strcmp(yylval->str,")") ) { - free(yylval->str); - yylval->str = 0; - my_col+=1; - return RP; - } else { - unput(')'); - my_col=colcount; - my_lineno+=linecount; - return word; - } - } - } -[^(),\{\}\[\]]*\( { /* printf("ARGG:%s\n",yytext); */ - /* printf("GOT AN LP!!!\n"); */ - yylloc->first_line = my_lineno; - yylloc->first_column=my_col; - parencount++; - pbcpush('('); - yymore(); - } - -[^(),\{\}\[\]]*\, { /* printf("ARGG:%s\n",yytext); */ - if( parencount != 0) { - /* printf("Folding in a comma!\n"); */ - yymore(); - } else { - /* printf("got a comma!\n\n"); */ - int linecount = 0; - int colcount = my_col; - char *pt; - - pt = yytext; - while (*pt) { - if ( *pt == '\n' ) { - linecount++; - colcount=0; - } - pt++; - colcount++; - } - yylloc->first_line = my_lineno; - yylloc->last_line = my_lineno+linecount; - yylloc->last_column=colcount; - yylloc->first_column=my_col; - if( !commaout ) { - if( !strcmp(yytext,"," ) ) - {commaout = 0; my_col+=1; return COMMA;} - yylval->str = strdup(yytext); /* printf("Got argg2 word %s\n", yylval->str); */ - unput(','); - commaout = 1; - if(yyleng > 1 ) - *(yylval->str+yyleng-1)=0; - my_lineno+=linecount; - my_col=colcount; - return word; - } else { - commaout = 0; - my_col+=1; - return COMMA; - } - } - } -[^(),\{\}\[\]]*\{ {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; pbcpush('{'); yymore(); } -[^(),\{\}\[\]]*\} {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop('}') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=my_col+c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); +[^()\[\]\{\}]*\} { + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + if ( pbcpop('}') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } + +[^(),\{\}\[\]]*\) { + /* printf("ARGG:%s\n",yytext); */ + int linecount = 0; + int colcount = my_col; + char *pt = yytext; + + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + if ( pbcpop(')') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + + + while (*pt) { + if (*pt == '\n') { + linecount++; + colcount=0; + } + pt++; + colcount++; + } + yylloc->last_line = my_lineno+linecount; + yylloc->last_column=colcount; + parencount--; + if( parencount >= 0){ + yymore(); + } else { + yylval->str = strdup(yytext); + if(yyleng > 1 ) + *(yylval->str+yyleng-1)=0; + /* printf("Got argg word '%s'\n", yylval->str); */ + BEGIN(0); + if ( !strcmp(yylval->str,")") ) { + free(yylval->str); + yylval->str = 0; + my_col+=1; + return RP; + } else { + unput(')'); + my_col=colcount; + my_lineno+=linecount; + return word; + } + } + } + +[^(),\{\}\[\]]*\( { + /* printf("ARGG:%s\n",yytext); */ + /* printf("GOT AN LP!!!\n"); */ + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + parencount++; + pbcpush('('); + yymore(); + } + +[^(),\{\}\[\]]*\, { + /* printf("ARGG:%s\n",yytext); */ + if( parencount != 0) { + /* printf("Folding in a comma!\n"); */ + yymore(); + } else { + /* printf("got a comma!\n\n"); */ + int linecount = 0; + int colcount = my_col; + char *pt; + + pt = yytext; + while (*pt) { + if ( *pt == '\n' ) { + linecount++; + colcount=0; } -[^(),\{\}\[\]]*\[ {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } -[^(),\{\}\[\]]*\] {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(']') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); + pt++; + colcount++; + } + yylloc->first_line = my_lineno; + yylloc->last_line = my_lineno+linecount; + yylloc->last_column=colcount; + yylloc->first_column=my_col; + if( !commaout ) { + if( !strcmp(yytext,"," ) ) { + commaout = 0; + my_col+=1; + return COMMA; } + yylval->str = strdup(yytext); /* printf("Got argg2 word %s\n", yylval->str); */ + unput(','); + commaout = 1; + if(yyleng > 1 ) + *(yylval->str+yyleng-1)=0; + my_lineno+=linecount; + my_col=colcount; + return word; + } else { + commaout = 0; + my_col+=1; + return COMMA; + } + } + } +[^(),\{\}\[\]]*\{ { + /*printf("ARGG:%s\n",yytext);*/ + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + pbcpush('{'); yymore(); + } + +[^(),\{\}\[\]]*\} { + /*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop('}') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=my_col+c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } + +[^(),\{\}\[\]]*\[ {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } + +[^(),\{\}\[\]]*\] {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(']') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } [^;()\{\}\[\]]*\[ {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } -[^;()\{\}\[\]]*\] {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(']') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore();} + +[^;()\{\}\[\]]*\] {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(']') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } + [^;()\{\}\[\]]*\{ {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('{');} -[^;()\{\}\[\]]*\} {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop('}') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=my_col+c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore();} + +[^;()\{\}\[\]]*\} {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop('}') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=my_col+c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } + [^;()\{\}\[\]]*\( {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('(');} -[^;()\{\}\[\]]*\) {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(')') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, my_col+c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=my_col+c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore();} + +[^;()\{\}\[\]]*\) {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(')') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, my_col+c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=my_col+c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } + [^;()\{\}\[\]]*; { - int linecount = 0; - int colcount = my_col; - char *pt = yytext; - while (*pt) { - if ( *pt == '\n' ) { - linecount++; - colcount=0; - } - pt++; - colcount++; - } - yylloc->first_line = my_lineno; - yylloc->last_line = my_lineno+linecount; - yylloc->last_column=colcount; - yylloc->first_column=my_col; - yylval->str = strdup(yytext); - if(yyleng > 1) - *(yylval->str+yyleng-1)=0; - /* printf("Got semic word %s\n", yylval->str); */ - unput(';'); - BEGIN(0); - my_col=colcount; - my_lineno += linecount; - return word; - } + int linecount = 0; + int colcount = my_col; + char *pt = yytext; + while (*pt) { + if ( *pt == '\n' ) { + linecount++; + colcount=0; + } + pt++; + colcount++; + } + yylloc->first_line = my_lineno; + yylloc->last_line = my_lineno+linecount; + yylloc->last_column=colcount; + yylloc->first_column=my_col; + yylval->str = strdup(yytext); + if(yyleng > 1) + *(yylval->str+yyleng-1)=0; + /* printf("Got semic word %s\n", yylval->str); */ + unput(';'); + BEGIN(0); + my_col=colcount; + my_lineno += linecount; + return word; + } \#include[ \t]+\"[^\"]+\" { - FILE *in1; - char fnamebuf[1024],*p1,*p2; - if ( include_stack_index >= MAX_INCLUDE_DEPTH ) { - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Includes nested too deeply! Wow!!! How did you do that?\n", my_file, my_lineno, my_col); - } else { - p1 = strchr(yytext,'"'); - p2 = strrchr(yytext,'"'); - if ( (int)(p2-p1) > 1023 ) { - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Filename is incredibly way too long (%d chars!). Inclusion ignored!\n", my_file, my_lineno, my_col, yyleng - 10); - } else { - int i; - int found = 0; - strncpy(fnamebuf,p1,p2-p1); - fnamebuf[p2-p1] = 0; - for (i=0; i= MAX_INCLUDE_DEPTH ) { + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Includes nested too deeply! Wow!!! How did you do that?\n", my_file, my_lineno, my_col); + } else { + p1 = strchr(yytext,'"'); + p2 = strrchr(yytext,'"'); + if ( (int)(p2-p1) > 1023 ) { + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Filename is incredibly way too long (%d chars!). Inclusion ignored!\n", my_file, my_lineno, my_col, yyleng - 10); + } else { + int i; + int found = 0; + strncpy(fnamebuf,p1,p2-p1); + fnamebuf[p2-p1] = 0; + for (i=0; ifirst_line = yylloc->last_line = my_lineno; yylloc->last_colum include_stack[include_stack_index].colno = my_col+yyleng; include_stack[include_stack_index++].bufstate = YY_CURRENT_BUFFER; - yy_switch_to_buffer(ael_yy_scan_string (buffer ,yyscanner),yyscanner); - free(buffer); - my_lineno = 1; - my_col = 1; - BEGIN(INITIAL); - } - } - } - } - } - -<> { - if ( --include_stack_index < 0 ) { - yyterminate(); - } else { - free(my_file); - yy_delete_buffer( YY_CURRENT_BUFFER, yyscanner ); - yy_switch_to_buffer(include_stack[include_stack_index].bufstate, yyscanner ); - my_lineno = include_stack[include_stack_index].lineno; - my_col = include_stack[include_stack_index].colno; - my_file = include_stack[include_stack_index].fname; - } - } + yy_switch_to_buffer(ael_yy_scan_string (buffer ,yyscanner),yyscanner); + free(buffer); + my_lineno = 1; + my_col = 1; + BEGIN(INITIAL); + } + } + } + } + } +<> { + if ( --include_stack_index < 0 ) { + yyterminate(); + } else { + free(my_file); + yy_delete_buffer( YY_CURRENT_BUFFER, yyscanner ); + yy_switch_to_buffer(include_stack[include_stack_index].bufstate, yyscanner ); + my_lineno = include_stack[include_stack_index].lineno; + my_col = include_stack[include_stack_index].colno; + my_file = include_stack[include_stack_index].fname; + } + } %% @@ -513,25 +543,24 @@ static int pbcpop(char x) pbcpos--; return 0; } - else - return 1; /* error */ + return 1; /* error */ } static int c_prevword(void) { - char *c = prev_word; + char *c = prev_word; int ret = 0; while ( c && *c ) { - switch (*c) { - case '{': pbcpush('{');break; - case '}': ret = pbcpop('}');break; - case '[':pbcpush('[');break; - case ']':ret = pbcpop(']');break; - case '(':pbcpush('(');break; - case ')':ret = pbcpop(')'); break; - } - if( ret ) - return 1; + switch (*c) { + case '{': pbcpush('{');break; + case '}': ret = pbcpop('}');break; + case '[':pbcpush('[');break; + case ']':ret = pbcpop(']');break; + case '(':pbcpush('(');break; + case ')':ret = pbcpop(')'); break; + } + if( ret ) + return 1; c++; } return 0; @@ -540,18 +569,18 @@ static int c_prevword(void) static void pbcwhere(char *text, int *line, int *col ) { int loc_line = 0; - int loc_col = 0; + int loc_col = 0; while ( *text ) { - if ( *text == '\n' ) { - loc_line++; - loc_col = 1; - } else { - loc_col++; - } - text++; - } + if ( *text == '\n' ) { + loc_line++; + loc_col = 1; + } else { + loc_col++; + } + text++; + } *line = loc_line; - *col = loc_col; + *col = loc_col; } void reset_parencount(yyscan_t yyscanner ) @@ -613,7 +642,7 @@ struct pval *ael2_parse(char *filename, int *errors) fread(buffer, 1, stats.st_size, fin); buffer[stats.st_size]=0; fclose(fin); - + ael_yy_scan_string (buffer ,io->scanner); ael_yyset_lineno(1 , io->scanner); diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c index 3866b49ed..b48aedd28 100644 --- a/pbx/ael/ael_lex.c +++ b/pbx/ael/ael_lex.c @@ -654,7 +654,7 @@ static yyconst flex_int16_t yy_chk[553] = /*! \file * * \brief Flex scanner description of tokens used in AEL2 . - * + * */#include #include #include @@ -687,19 +687,18 @@ static int pbcpop(char x); static void pbcwhere(char *text, int *line, int *col ); static int c_prevword(void); -struct stackelement -{ - char *fname; - int lineno; - int colno; - YY_BUFFER_STATE bufstate; +struct stackelement { + char *fname; + int lineno; + int colno; + YY_BUFFER_STATE bufstate; }; struct stackelement include_stack[MAX_INCLUDE_DEPTH]; int include_stack_index = 0; /* %option yylineno I've tried hard, but haven't been able to use this */ -#line 703 "ael_lex.c" +#line 702 "ael_lex.c" #define INITIAL 0 #define paren 1 @@ -939,9 +938,9 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 77 "ael.flex" +#line 76 "ael.flex" -#line 945 "ael_lex.c" +#line 944 "ael_lex.c" yylval = yylval_param; @@ -1032,661 +1031,681 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 78 "ael.flex" +#line 77 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return LC;} YY_BREAK case 2: YY_RULE_SETUP -#line 79 "ael.flex" +#line 78 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return RC;} YY_BREAK case 3: YY_RULE_SETUP -#line 80 "ael.flex" +#line 79 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return LP;} YY_BREAK case 4: YY_RULE_SETUP -#line 81 "ael.flex" +#line 80 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return RP;} YY_BREAK case 5: YY_RULE_SETUP -#line 82 "ael.flex" +#line 81 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return SEMI;} YY_BREAK case 6: YY_RULE_SETUP -#line 83 "ael.flex" +#line 82 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return EQ;} YY_BREAK case 7: YY_RULE_SETUP -#line 84 "ael.flex" +#line 83 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return COMMA;} YY_BREAK case 8: YY_RULE_SETUP -#line 85 "ael.flex" +#line 84 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return COLON;} YY_BREAK case 9: YY_RULE_SETUP -#line 86 "ael.flex" +#line 85 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return AMPER;} YY_BREAK case 10: YY_RULE_SETUP -#line 87 "ael.flex" +#line 86 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return BAR;} YY_BREAK case 11: YY_RULE_SETUP -#line 88 "ael.flex" +#line 87 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return EXTENMARK;} YY_BREAK case 12: YY_RULE_SETUP -#line 89 "ael.flex" +#line 88 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return AT;} YY_BREAK case 13: YY_RULE_SETUP -#line 90 "ael.flex" +#line 89 "ael.flex" {/*comment*/} YY_BREAK case 14: YY_RULE_SETUP -#line 91 "ael.flex" +#line 90 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CONTEXT;} YY_BREAK case 15: YY_RULE_SETUP -#line 92 "ael.flex" +#line 91 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ABSTRACT;} YY_BREAK case 16: YY_RULE_SETUP -#line 93 "ael.flex" +#line 92 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_MACRO;}; YY_BREAK case 17: YY_RULE_SETUP -#line 94 "ael.flex" +#line 93 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_GLOBALS;} YY_BREAK case 18: YY_RULE_SETUP -#line 95 "ael.flex" +#line 94 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IGNOREPAT;} YY_BREAK case 19: YY_RULE_SETUP -#line 96 "ael.flex" +#line 95 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_SWITCH;} YY_BREAK case 20: YY_RULE_SETUP -#line 97 "ael.flex" +#line 96 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IF;} YY_BREAK case 21: YY_RULE_SETUP -#line 98 "ael.flex" +#line 97 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_IFTIME;} YY_BREAK case 22: YY_RULE_SETUP -#line 99 "ael.flex" +#line 98 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_RANDOM;} YY_BREAK case 23: YY_RULE_SETUP -#line 100 "ael.flex" +#line 99 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_REGEXTEN;} YY_BREAK case 24: YY_RULE_SETUP -#line 101 "ael.flex" +#line 100 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_HINT;} YY_BREAK case 25: YY_RULE_SETUP -#line 102 "ael.flex" +#line 101 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ELSE;} YY_BREAK case 26: YY_RULE_SETUP -#line 103 "ael.flex" +#line 102 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_GOTO;} YY_BREAK case 27: YY_RULE_SETUP -#line 104 "ael.flex" +#line 103 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_JUMP;} YY_BREAK case 28: YY_RULE_SETUP -#line 105 "ael.flex" +#line 104 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_RETURN;} YY_BREAK case 29: YY_RULE_SETUP -#line 106 "ael.flex" +#line 105 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_BREAK;} YY_BREAK case 30: YY_RULE_SETUP -#line 107 "ael.flex" +#line 106 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CONTINUE;} YY_BREAK case 31: YY_RULE_SETUP -#line 108 "ael.flex" +#line 107 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_FOR;} YY_BREAK case 32: YY_RULE_SETUP -#line 109 "ael.flex" +#line 108 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_WHILE;} YY_BREAK case 33: YY_RULE_SETUP -#line 110 "ael.flex" +#line 109 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CASE;} YY_BREAK case 34: YY_RULE_SETUP -#line 111 "ael.flex" +#line 110 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_DEFAULT;} YY_BREAK case 35: YY_RULE_SETUP -#line 112 "ael.flex" +#line 111 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_PATTERN;} YY_BREAK case 36: YY_RULE_SETUP -#line 113 "ael.flex" +#line 112 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_CATCH;} YY_BREAK case 37: YY_RULE_SETUP -#line 114 "ael.flex" +#line 113 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_SWITCHES;} YY_BREAK case 38: YY_RULE_SETUP -#line 115 "ael.flex" +#line 114 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_ESWITCHES;} YY_BREAK case 39: YY_RULE_SETUP -#line 116 "ael.flex" +#line 115 "ael.flex" {yylloc->first_line = yylloc->last_line = my_lineno; yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col;my_col+=yyleng;return KW_INCLUDES;} YY_BREAK case 40: /* rule 40 can match eol */ YY_RULE_SETUP -#line 118 "ael.flex" +#line 117 "ael.flex" {my_lineno++;my_col=0;} YY_BREAK case 41: YY_RULE_SETUP -#line 119 "ael.flex" +#line 118 "ael.flex" {/* nothing */ my_col+=yyleng;} YY_BREAK case 42: YY_RULE_SETUP -#line 120 "ael.flex" +#line 119 "ael.flex" {/* nothing */ int wid = 8-(my_col%8); my_col+=wid;} YY_BREAK case 43: YY_RULE_SETUP -#line 122 "ael.flex" +#line 121 "ael.flex" { - yylloc->first_line = yylloc->last_line = my_lineno;yylloc->last_column=my_col+yyleng-1; yylloc->first_column=my_col; /* set up the ptr */ - yylval->str = strdup(yytext); - /* printf("\nGot WORD %s[%d][%d:%d]\n", yylval->str, my_lineno ,yylloc->first_column,yylloc->last_column ); */ - my_col+=yyleng; - prev_word = yylval->str; - return word; - } + yylloc->first_line = yylloc->last_line = my_lineno; + yylloc->last_column=my_col+yyleng-1; + yylloc->first_column=my_col; /* set up the ptr */ + my_col+=yyleng; + yylval->str = strdup(yytext); + /* printf("\nGot WORD %s[%d][%d:%d]\n", yylval->str, my_lineno ,yylloc->first_column,yylloc->last_column ); */ + prev_word = yylval->str; + return word; + } YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP -#line 131 "ael.flex" -{yylloc->first_line = my_lineno; yylloc->first_column=my_col; - if ( pbcpop(')') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression: %s !\n", my_file, my_lineno+l4, c4, yytext); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - prev_word = 0; - return word; - } - parencount--; - if ( parencount >= 0) { - yymore(); - } else { - int l4,c4; - pbcwhere(yytext, &l4, &c4); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - yylval->str = strdup(yytext); - *(yylval->str+strlen(yylval->str)-1)=0; - /* printf("Got paren word %s\n", yylval->str); */ - unput(')'); - my_col=c4; - my_lineno += l4; - BEGIN(0); - return word; - } - } +#line 132 "ael.flex" +{ + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + if ( pbcpop(')') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression: %s !\n", my_file, my_lineno+l4, c4, yytext); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + prev_word = 0; + return word; + } + parencount--; + if ( parencount >= 0) { + yymore(); + } else { + int l4,c4; + pbcwhere(yytext, &l4, &c4); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + yylval->str = strdup(yytext); + *(yylval->str+strlen(yylval->str)-1)=0; + /* printf("Got paren word %s\n", yylval->str); */ + unput(')'); + my_col=c4; + my_lineno += l4; + BEGIN(0); + return word; + } + } YY_BREAK case 45: /* rule 45 can match eol */ YY_RULE_SETUP -#line 165 "ael.flex" -{yylloc->first_line = my_lineno; yylloc->first_column=my_col; - parencount++; pbcpush('('); - yymore(); - } +#line 168 "ael.flex" +{ + yylloc->first_line = my_lineno; yylloc->first_column=my_col; + parencount++; + pbcpush('('); + yymore(); + } YY_BREAK case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 169 "ael.flex" +#line 175 "ael.flex" {yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } YY_BREAK case 47: /* rule 47 can match eol */ YY_RULE_SETUP -#line 170 "ael.flex" -{yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(']') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); - } +#line 177 "ael.flex" +{ + yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(']') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 186 "ael.flex" +#line 195 "ael.flex" {yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('{'); } YY_BREAK case 49: /* rule 49 can match eol */ YY_RULE_SETUP -#line 187 "ael.flex" -{yylloc->first_line = my_lineno; - yylloc->first_column=my_col; - if ( pbcpop('}') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); - } +#line 197 "ael.flex" +{ + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + if ( pbcpop('}') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 50: /* rule 50 can match eol */ YY_RULE_SETUP -#line 206 "ael.flex" -{/* printf("ARGG:%s\n",yytext); */ - int linecount = 0; - int colcount = my_col; - char *pt = yytext; - - yylloc->first_line = my_lineno; - yylloc->first_column=my_col; - if ( pbcpop(')') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - - - while (*pt) { - if (*pt == '\n') { - linecount++; - colcount=0; - } - pt++; - colcount++; - } - yylloc->last_line = my_lineno+linecount; - yylloc->last_column=colcount; - parencount--; - if( parencount >= 0){ - yymore(); - } else { - yylval->str = strdup(yytext); - if(yyleng > 1 ) - *(yylval->str+yyleng-1)=0; - /* printf("Got argg word '%s'\n", yylval->str); */ - BEGIN(0); - if ( !strcmp(yylval->str,")") ) { - free(yylval->str); - yylval->str = 0; - my_col+=1; - return RP; - } else { - unput(')'); - my_col=colcount; - my_lineno+=linecount; - return word; - } - } - } +#line 216 "ael.flex" +{ + /* printf("ARGG:%s\n",yytext); */ + int linecount = 0; + int colcount = my_col; + char *pt = yytext; + + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + if ( pbcpop(')') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + + + while (*pt) { + if (*pt == '\n') { + linecount++; + colcount=0; + } + pt++; + colcount++; + } + yylloc->last_line = my_lineno+linecount; + yylloc->last_column=colcount; + parencount--; + if( parencount >= 0){ + yymore(); + } else { + yylval->str = strdup(yytext); + if(yyleng > 1 ) + *(yylval->str+yyleng-1)=0; + /* printf("Got argg word '%s'\n", yylval->str); */ + BEGIN(0); + if ( !strcmp(yylval->str,")") ) { + free(yylval->str); + yylval->str = 0; + my_col+=1; + return RP; + } else { + unput(')'); + my_col=colcount; + my_lineno+=linecount; + return word; + } + } + } YY_BREAK case 51: /* rule 51 can match eol */ YY_RULE_SETUP -#line 260 "ael.flex" -{ /* printf("ARGG:%s\n",yytext); */ - /* printf("GOT AN LP!!!\n"); */ - yylloc->first_line = my_lineno; - yylloc->first_column=my_col; - parencount++; - pbcpush('('); - yymore(); - } +#line 272 "ael.flex" +{ + /* printf("ARGG:%s\n",yytext); */ + /* printf("GOT AN LP!!!\n"); */ + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + parencount++; + pbcpush('('); + yymore(); + } YY_BREAK case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 269 "ael.flex" -{ /* printf("ARGG:%s\n",yytext); */ - if( parencount != 0) { - /* printf("Folding in a comma!\n"); */ - yymore(); - } else { - /* printf("got a comma!\n\n"); */ - int linecount = 0; - int colcount = my_col; - char *pt; - - pt = yytext; - while (*pt) { - if ( *pt == '\n' ) { - linecount++; - colcount=0; - } - pt++; - colcount++; - } - yylloc->first_line = my_lineno; - yylloc->last_line = my_lineno+linecount; - yylloc->last_column=colcount; - yylloc->first_column=my_col; - if( !commaout ) { - if( !strcmp(yytext,"," ) ) - {commaout = 0; my_col+=1; return COMMA;} - yylval->str = strdup(yytext); /* printf("Got argg2 word %s\n", yylval->str); */ - unput(','); - commaout = 1; - if(yyleng > 1 ) - *(yylval->str+yyleng-1)=0; - my_lineno+=linecount; - my_col=colcount; - return word; - } else { - commaout = 0; - my_col+=1; - return COMMA; - } - } +#line 282 "ael.flex" +{ + /* printf("ARGG:%s\n",yytext); */ + if( parencount != 0) { + /* printf("Folding in a comma!\n"); */ + yymore(); + } else { + /* printf("got a comma!\n\n"); */ + int linecount = 0; + int colcount = my_col; + char *pt; + + pt = yytext; + while (*pt) { + if ( *pt == '\n' ) { + linecount++; + colcount=0; } + pt++; + colcount++; + } + yylloc->first_line = my_lineno; + yylloc->last_line = my_lineno+linecount; + yylloc->last_column=colcount; + yylloc->first_column=my_col; + if( !commaout ) { + if( !strcmp(yytext,"," ) ) { + commaout = 0; + my_col+=1; + return COMMA; + } + yylval->str = strdup(yytext); /* printf("Got argg2 word %s\n", yylval->str); */ + unput(','); + commaout = 1; + if(yyleng > 1 ) + *(yylval->str+yyleng-1)=0; + my_lineno+=linecount; + my_col=colcount; + return word; + } else { + commaout = 0; + my_col+=1; + return COMMA; + } + } + } YY_BREAK case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 311 "ael.flex" -{/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; pbcpush('{'); yymore(); } +#line 328 "ael.flex" +{ + /*printf("ARGG:%s\n",yytext);*/ + yylloc->first_line = my_lineno; + yylloc->first_column=my_col; + pbcpush('{'); yymore(); + } YY_BREAK case 54: /* rule 54 can match eol */ YY_RULE_SETUP -#line 312 "ael.flex" -{/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop('}') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=my_col+c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); - } +#line 335 "ael.flex" +{ + /*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop('}') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=my_col+c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 328 "ael.flex" +#line 353 "ael.flex" {/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } YY_BREAK case 56: /* rule 56 can match eol */ YY_RULE_SETUP -#line 329 "ael.flex" -{/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(']') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore(); - } +#line 355 "ael.flex" +{/*printf("ARGG:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(']') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 57: /* rule 57 can match eol */ YY_RULE_SETUP -#line 347 "ael.flex" +#line 372 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('['); } YY_BREAK case 58: /* rule 58 can match eol */ YY_RULE_SETUP -#line 348 "ael.flex" -{/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(']') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore();} +#line 374 "ael.flex" +{/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(']') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno+l4, c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 59: /* rule 59 can match eol */ YY_RULE_SETUP -#line 363 "ael.flex" +#line 391 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('{');} YY_BREAK case 60: /* rule 60 can match eol */ YY_RULE_SETUP -#line 364 "ael.flex" -{/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop('}') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=my_col+c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore();} +#line 393 "ael.flex" +{/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop('}') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno+l4, my_col+c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=my_col+c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 61: /* rule 61 can match eol */ YY_RULE_SETUP -#line 379 "ael.flex" +#line 410 "ael.flex" {/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; yymore(); pbcpush('(');} YY_BREAK case 62: /* rule 62 can match eol */ YY_RULE_SETUP -#line 380 "ael.flex" -{/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; - if ( pbcpop(')') ) { - /* error */ - int l4,c4; - pbcwhere(yytext, &l4, &c4); - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, my_col+c4); - BEGIN(0); - yylloc->last_line = my_lineno+l4; - yylloc->last_column=my_col+c4; - my_col=c4; - my_lineno += l4; - yylval->str = strdup(yytext); - return word; - } - yymore();} +#line 412 "ael.flex" +{/*printf("SEMIC:%s\n",yytext);*/yylloc->first_line = my_lineno;yylloc->first_column=my_col; + if ( pbcpop(')') ) { + /* error */ + int l4,c4; + pbcwhere(yytext, &l4, &c4); + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno+l4, my_col+c4); + BEGIN(0); + yylloc->last_line = my_lineno+l4; + yylloc->last_column=my_col+c4; + my_col=c4; + my_lineno += l4; + yylval->str = strdup(yytext); + return word; + } + yymore(); + } YY_BREAK case 63: /* rule 63 can match eol */ YY_RULE_SETUP -#line 395 "ael.flex" -{ - int linecount = 0; - int colcount = my_col; - char *pt = yytext; - while (*pt) { - if ( *pt == '\n' ) { - linecount++; - colcount=0; - } - pt++; - colcount++; - } - yylloc->first_line = my_lineno; - yylloc->last_line = my_lineno+linecount; - yylloc->last_column=colcount; - yylloc->first_column=my_col; - yylval->str = strdup(yytext); - if(yyleng > 1) - *(yylval->str+yyleng-1)=0; - /* printf("Got semic word %s\n", yylval->str); */ - unput(';'); - BEGIN(0); - my_col=colcount; - my_lineno += linecount; - return word; - } +#line 429 "ael.flex" +{ + int linecount = 0; + int colcount = my_col; + char *pt = yytext; + while (*pt) { + if ( *pt == '\n' ) { + linecount++; + colcount=0; + } + pt++; + colcount++; + } + yylloc->first_line = my_lineno; + yylloc->last_line = my_lineno+linecount; + yylloc->last_column=colcount; + yylloc->first_column=my_col; + yylval->str = strdup(yytext); + if(yyleng > 1) + *(yylval->str+yyleng-1)=0; + /* printf("Got semic word %s\n", yylval->str); */ + unput(';'); + BEGIN(0); + my_col=colcount; + my_lineno += linecount; + return word; + } YY_BREAK case 64: /* rule 64 can match eol */ YY_RULE_SETUP -#line 422 "ael.flex" -{ - FILE *in1; - char fnamebuf[1024],*p1,*p2; - if ( include_stack_index >= MAX_INCLUDE_DEPTH ) { - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Includes nested too deeply! Wow!!! How did you do that?\n", my_file, my_lineno, my_col); - } else { - p1 = strchr(yytext,'"'); - p2 = strrchr(yytext,'"'); - if ( (int)(p2-p1) > 1023 ) { - ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Filename is incredibly way too long (%d chars!). Inclusion ignored!\n", my_file, my_lineno, my_col, yyleng - 10); - } else { - int i; - int found = 0; - strncpy(fnamebuf,p1,p2-p1); - fnamebuf[p2-p1] = 0; - for (i=0; i= MAX_INCLUDE_DEPTH ) { + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Includes nested too deeply! Wow!!! How did you do that?\n", my_file, my_lineno, my_col); + } else { + p1 = strchr(yytext,'"'); + p2 = strrchr(yytext,'"'); + if ( (int)(p2-p1) > 1023 ) { + ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Filename is incredibly way too long (%d chars!). Inclusion ignored!\n", my_file, my_lineno, my_col, yyleng - 10); + } else { + int i; + int found = 0; + strncpy(fnamebuf,p1,p2-p1); + fnamebuf[p2-p1] = 0; + for (i=0; iscanner); ael_yyset_lineno(1 , io->scanner); -- cgit v1.2.3