fix a bug in computing line numbers
[asterisk/asterisk.git] / pbx / ael / ael.flex
index 0a063b8..ffd9cde 100644 (file)
@@ -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;}
 
 <paren>{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;