diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex index 0a063b8b70..ffd9cdef0f 100644 --- a/pbx/ael/ael.flex +++ b/pbx/ael/ael.flex @@ -78,7 +78,7 @@ static int commaout = 0; * current line, column and filename, updated as we read the input. */ static int my_lineno = 1; /* current line in the source */ -static int my_col = 0; /* current column in the source */ +static int my_col = 1; /* current column in the source */ char *my_file = 0; /* used also in the bison code */ char *prev_word; /* XXX document it */ @@ -155,7 +155,7 @@ static void pbcwhere(const char *text, int *line, int *col ) #define STORE_END do { \ pbcwhere(yytext, &my_lineno, &my_col); \ yylloc->last_line = my_lineno; \ - yylloc->last_column = my_col; \ + yylloc->last_column = my_col - 1; \ } while (0) #else #define STORE_POS @@ -253,7 +253,7 @@ includes { STORE_POS; return KW_INCLUDES;} {NOPARENS}[\(\[\{] { char c = yytext[yyleng-1]; - STORE_START; + // STORE_START; if (c == '(') parencount++; pbcpush(c); @@ -293,11 +293,11 @@ includes { STORE_POS; return KW_INCLUDES;} return word; } - STORE_END; parencount--; if( parencount >= 0){ yymore(); } else { + STORE_END; yylval->str = strdup(yytext); if(yyleng > 1 ) *(yylval->str+yyleng-1)=0; diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c index b1aa53f51f..62aad1370b 100644 --- a/pbx/ael/ael_lex.c +++ b/pbx/ael/ael_lex.c @@ -694,7 +694,7 @@ static int commaout = 0; * current line, column and filename, updated as we read the input. */ static int my_lineno = 1; /* current line in the source */ -static int my_col = 0; /* current column in the source */ +static int my_col = 1; /* current column in the source */ char *my_file = 0; /* used also in the bison code */ char *prev_word; /* XXX document it */ @@ -771,7 +771,7 @@ static void pbcwhere(const char *text, int *line, int *col ) #define STORE_END do { \ pbcwhere(yytext, &my_lineno, &my_col); \ yylloc->last_line = my_lineno; \ - yylloc->last_column = my_col; \ + yylloc->last_column = my_col - 1; \ } while (0) #else #define STORE_POS @@ -1365,7 +1365,7 @@ YY_RULE_SETUP #line 254 "ael.flex" { char c = yytext[yyleng-1]; - STORE_START; + // STORE_START; if (c == '(') parencount++; pbcpush(c); @@ -1417,11 +1417,11 @@ YY_RULE_SETUP return word; } - STORE_END; parencount--; if( parencount >= 0){ yymore(); } else { + STORE_END; yylval->str = strdup(yytext); if(yyleng > 1 ) *(yylval->str+yyleng-1)=0;