[asterisk-commits] trunk r23153 - in /trunk/pbx/ael: ael.flex ael_lex.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri Apr 28 08:42:13 MST 2006


Author: rizzo
Date: Fri Apr 28 10:42:13 2006
New Revision: 23153

URL: http://svn.digium.com/view/asterisk?rev=23153&view=rev
Log:
simplify handling of line numbers


Modified:
    trunk/pbx/ael/ael.flex
    trunk/pbx/ael/ael_lex.c

Modified: trunk/pbx/ael/ael.flex
URL: http://svn.digium.com/view/asterisk/trunk/pbx/ael/ael.flex?rev=23153&r1=23152&r2=23153&view=diff
==============================================================================
--- trunk/pbx/ael/ael.flex (original)
+++ trunk/pbx/ael/ael.flex Fri Apr 28 10:42:13 2006
@@ -149,21 +149,15 @@
 		my_col+=yyleng;						\
 	} while (0)
 
-#define	STORE_START do {				\
+#define	STORE_LOC do {					\
 		yylloc->first_line = my_lineno;		\
 		yylloc->first_column=my_col;		\
-	} while (0)
-
-#define	STORE_END do {					\
 		pbcwhere(yytext, &my_lineno, &my_col);	\
 		yylloc->last_line = my_lineno;		\
 		yylloc->last_column = my_col - 1;	\
 	} while (0)
-#define STORE_LOC do { STORE_START; STORE_END } while (0)
 #else
 #define	STORE_POS
-#define	STORE_START
-#define	STORE_END
 #define	STORE_LOC
 #endif
 %}
@@ -232,9 +226,8 @@
 
 
 <paren>{NOPARENS}\)	{
-		STORE_START;
 		if ( pbcpop(')') ) {	/* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression: %s !\n", my_file, my_lineno, my_col, yytext);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -245,7 +238,7 @@
 		if ( parencount >= 0) {
 			yymore();
 		} else {
-			STORE_END;
+			STORE_LOC;
 			yylval->str = strdup(yytext);
 			*(yylval->str+strlen(yylval->str)-1)=0;
 			/* printf("Got paren word %s\n", yylval->str); */
@@ -257,7 +250,6 @@
 
 <paren>{NOPARENS}[\(\[\{]	{
 		char c = yytext[yyleng-1];
-		// STORE_START;
 		if (c == '(')
 			parencount++;
 		pbcpush(c);
@@ -266,9 +258,8 @@
 
 <paren>{NOPARENS}[\]\}]	{
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if ( pbcpop(c))  { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n",
 				my_file, my_lineno, my_col, c);
 			BEGIN(0);
@@ -280,7 +271,6 @@
 
 <argg>{NOARGG}[\(\[\{]	  {
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if (c == '(')
 			parencount++;
 		pbcpush(c);
@@ -288,9 +278,8 @@
 	}
 
 <argg>{NOARGG}\)	{
-		STORE_START;
 		if ( pbcpop(')') ) { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno, my_col);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -301,7 +290,7 @@
 		if( parencount >= 0){
 			yymore();
 		} else {
-			STORE_END;
+			STORE_LOC;
 			yylval->str = strdup(yytext);
 			if(yyleng > 1 )
 				*(yylval->str+yyleng-1)=0;
@@ -319,12 +308,10 @@
 	}
 
 <argg>{NOARGG}\,	{
-		if( parencount != 0) {
-			/* printf("Folding in a comma!\n"); */
+		if( parencount != 0) { /* printf("Folding in a comma!\n"); */
 			yymore();
 		} else  {
-			STORE_START;
-			STORE_END;
+			STORE_LOC;
 			if( !commaout ) {
 				if( !strcmp(yytext,"," ) ) {
 					commaout = 0;
@@ -348,9 +335,8 @@
 
 <argg>{NOARGG}[\]\}]	{
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if ( pbcpop(c) ) { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -363,16 +349,14 @@
 
 <semic>{NOSEMIC}[\(\[\{]	{
 		char c = yytext[yyleng-1];
-		STORE_START;
 		yymore();
 		pbcpush(c);
 	}
 
 <semic>{NOSEMIC}[\)\]\}]	{
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if ( pbcpop(c) ) { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -382,8 +366,7 @@
 	}
 
 <semic>{NOSEMIC};	{
-		STORE_START;
-		STORE_END;
+		STORE_LOC;
 		yylval->str = strdup(yytext);
 		if(yyleng > 1)
 			*(yylval->str+yyleng-1)=0;

Modified: trunk/pbx/ael/ael_lex.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx/ael/ael_lex.c?rev=23153&r1=23152&r2=23153&view=diff
==============================================================================
--- trunk/pbx/ael/ael_lex.c (original)
+++ trunk/pbx/ael/ael_lex.c Fri Apr 28 10:42:13 2006
@@ -765,24 +765,18 @@
 		my_col+=yyleng;						\
 	} while (0)
 
-#define	STORE_START do {				\
+#define	STORE_LOC do {					\
 		yylloc->first_line = my_lineno;		\
 		yylloc->first_column=my_col;		\
-	} while (0)
-
-#define	STORE_END do {					\
 		pbcwhere(yytext, &my_lineno, &my_col);	\
 		yylloc->last_line = my_lineno;		\
 		yylloc->last_column = my_col - 1;	\
 	} while (0)
-#define STORE_LOC do { STORE_START; STORE_END } while (0)
 #else
 #define	STORE_POS
-#define	STORE_START
-#define	STORE_END
 #define	STORE_LOC
 #endif
-#line 786 "ael_lex.c"
+#line 780 "ael_lex.c"
 
 #define INITIAL 0
 #define paren 1
@@ -1022,10 +1016,10 @@
 	register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 178 "ael.flex"
-
-
-#line 1029 "ael_lex.c"
+#line 172 "ael.flex"
+
+
+#line 1023 "ael_lex.c"
 
     yylval = yylval_param;
 
@@ -1116,218 +1110,218 @@
 
 case 1:
 YY_RULE_SETUP
+#line 174 "ael.flex"
+{ STORE_POS; return LC;}
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 175 "ael.flex"
+{ STORE_POS; return RC;}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 176 "ael.flex"
+{ STORE_POS; return LP;}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 177 "ael.flex"
+{ STORE_POS; return RP;}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 178 "ael.flex"
+{ STORE_POS; return SEMI;}
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 179 "ael.flex"
+{ STORE_POS; return EQ;}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
 #line 180 "ael.flex"
-{ STORE_POS; return LC;}
-	YY_BREAK
-case 2:
+{ STORE_POS; return COMMA;}
+	YY_BREAK
+case 8:
 YY_RULE_SETUP
 #line 181 "ael.flex"
-{ STORE_POS; return RC;}
-	YY_BREAK
-case 3:
+{ STORE_POS; return COLON;}
+	YY_BREAK
+case 9:
 YY_RULE_SETUP
 #line 182 "ael.flex"
-{ STORE_POS; return LP;}
-	YY_BREAK
-case 4:
+{ STORE_POS; return AMPER;}
+	YY_BREAK
+case 10:
 YY_RULE_SETUP
 #line 183 "ael.flex"
-{ STORE_POS; return RP;}
-	YY_BREAK
-case 5:
+{ STORE_POS; return BAR;}
+	YY_BREAK
+case 11:
 YY_RULE_SETUP
 #line 184 "ael.flex"
-{ STORE_POS; return SEMI;}
-	YY_BREAK
-case 6:
+{ STORE_POS; return EXTENMARK;}
+	YY_BREAK
+case 12:
 YY_RULE_SETUP
 #line 185 "ael.flex"
-{ STORE_POS; return EQ;}
-	YY_BREAK
-case 7:
+{ STORE_POS; return AT;}
+	YY_BREAK
+case 13:
 YY_RULE_SETUP
 #line 186 "ael.flex"
-{ STORE_POS; return COMMA;}
-	YY_BREAK
-case 8:
+{/*comment*/}
+	YY_BREAK
+case 14:
 YY_RULE_SETUP
 #line 187 "ael.flex"
-{ STORE_POS; return COLON;}
-	YY_BREAK
-case 9:
+{ STORE_POS; return KW_CONTEXT;}
+	YY_BREAK
+case 15:
 YY_RULE_SETUP
 #line 188 "ael.flex"
-{ STORE_POS; return AMPER;}
-	YY_BREAK
-case 10:
+{ STORE_POS; return KW_ABSTRACT;}
+	YY_BREAK
+case 16:
 YY_RULE_SETUP
 #line 189 "ael.flex"
-{ STORE_POS; return BAR;}
-	YY_BREAK
-case 11:
+{ STORE_POS; return KW_MACRO;};
+	YY_BREAK
+case 17:
 YY_RULE_SETUP
 #line 190 "ael.flex"
-{ STORE_POS; return EXTENMARK;}
-	YY_BREAK
-case 12:
+{ STORE_POS; return KW_GLOBALS;}
+	YY_BREAK
+case 18:
 YY_RULE_SETUP
 #line 191 "ael.flex"
-{ STORE_POS; return AT;}
-	YY_BREAK
-case 13:
+{ STORE_POS; return KW_IGNOREPAT;}
+	YY_BREAK
+case 19:
 YY_RULE_SETUP
 #line 192 "ael.flex"
-{/*comment*/}
-	YY_BREAK
-case 14:
+{ STORE_POS; return KW_SWITCH;}
+	YY_BREAK
+case 20:
 YY_RULE_SETUP
 #line 193 "ael.flex"
-{ STORE_POS; return KW_CONTEXT;}
-	YY_BREAK
-case 15:
+{ STORE_POS; return KW_IF;}
+	YY_BREAK
+case 21:
 YY_RULE_SETUP
 #line 194 "ael.flex"
-{ STORE_POS; return KW_ABSTRACT;}
-	YY_BREAK
-case 16:
+{ STORE_POS; return KW_IFTIME;}
+	YY_BREAK
+case 22:
 YY_RULE_SETUP
 #line 195 "ael.flex"
-{ STORE_POS; return KW_MACRO;};
-	YY_BREAK
-case 17:
+{ STORE_POS; return KW_RANDOM;}
+	YY_BREAK
+case 23:
 YY_RULE_SETUP
 #line 196 "ael.flex"
-{ STORE_POS; return KW_GLOBALS;}
-	YY_BREAK
-case 18:
+{ STORE_POS; return KW_REGEXTEN;}
+	YY_BREAK
+case 24:
 YY_RULE_SETUP
 #line 197 "ael.flex"
-{ STORE_POS; return KW_IGNOREPAT;}
-	YY_BREAK
-case 19:
+{ STORE_POS; return KW_HINT;}
+	YY_BREAK
+case 25:
 YY_RULE_SETUP
 #line 198 "ael.flex"
-{ STORE_POS; return KW_SWITCH;}
-	YY_BREAK
-case 20:
+{ STORE_POS; return KW_ELSE;}
+	YY_BREAK
+case 26:
 YY_RULE_SETUP
 #line 199 "ael.flex"
-{ STORE_POS; return KW_IF;}
-	YY_BREAK
-case 21:
+{ STORE_POS; return KW_GOTO;}
+	YY_BREAK
+case 27:
 YY_RULE_SETUP
 #line 200 "ael.flex"
-{ STORE_POS; return KW_IFTIME;}
-	YY_BREAK
-case 22:
+{ STORE_POS; return KW_JUMP;}
+	YY_BREAK
+case 28:
 YY_RULE_SETUP
 #line 201 "ael.flex"
-{ STORE_POS; return KW_RANDOM;}
-	YY_BREAK
-case 23:
+{ STORE_POS; return KW_RETURN;}
+	YY_BREAK
+case 29:
 YY_RULE_SETUP
 #line 202 "ael.flex"
-{ STORE_POS; return KW_REGEXTEN;}
-	YY_BREAK
-case 24:
+{ STORE_POS; return KW_BREAK;}
+	YY_BREAK
+case 30:
 YY_RULE_SETUP
 #line 203 "ael.flex"
-{ STORE_POS; return KW_HINT;}
-	YY_BREAK
-case 25:
+{ STORE_POS; return KW_CONTINUE;}
+	YY_BREAK
+case 31:
 YY_RULE_SETUP
 #line 204 "ael.flex"
-{ STORE_POS; return KW_ELSE;}
-	YY_BREAK
-case 26:
+{ STORE_POS; return KW_FOR;}
+	YY_BREAK
+case 32:
 YY_RULE_SETUP
 #line 205 "ael.flex"
-{ STORE_POS; return KW_GOTO;}
-	YY_BREAK
-case 27:
+{ STORE_POS; return KW_WHILE;}
+	YY_BREAK
+case 33:
 YY_RULE_SETUP
 #line 206 "ael.flex"
-{ STORE_POS; return KW_JUMP;}
-	YY_BREAK
-case 28:
+{ STORE_POS; return KW_CASE;}
+	YY_BREAK
+case 34:
 YY_RULE_SETUP
 #line 207 "ael.flex"
-{ STORE_POS; return KW_RETURN;}
-	YY_BREAK
-case 29:
+{ STORE_POS; return KW_DEFAULT;}
+	YY_BREAK
+case 35:
 YY_RULE_SETUP
 #line 208 "ael.flex"
-{ STORE_POS; return KW_BREAK;}
-	YY_BREAK
-case 30:
+{ STORE_POS; return KW_PATTERN;}
+	YY_BREAK
+case 36:
 YY_RULE_SETUP
 #line 209 "ael.flex"
-{ STORE_POS; return KW_CONTINUE;}
-	YY_BREAK
-case 31:
+{ STORE_POS; return KW_CATCH;}
+	YY_BREAK
+case 37:
 YY_RULE_SETUP
 #line 210 "ael.flex"
-{ STORE_POS; return KW_FOR;}
-	YY_BREAK
-case 32:
+{ STORE_POS; return KW_SWITCHES;}
+	YY_BREAK
+case 38:
 YY_RULE_SETUP
 #line 211 "ael.flex"
-{ STORE_POS; return KW_WHILE;}
-	YY_BREAK
-case 33:
+{ STORE_POS; return KW_ESWITCHES;}
+	YY_BREAK
+case 39:
 YY_RULE_SETUP
 #line 212 "ael.flex"
-{ STORE_POS; return KW_CASE;}
-	YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 213 "ael.flex"
-{ STORE_POS; return KW_DEFAULT;}
-	YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 214 "ael.flex"
-{ STORE_POS; return KW_PATTERN;}
-	YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 215 "ael.flex"
-{ STORE_POS; return KW_CATCH;}
-	YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 216 "ael.flex"
-{ STORE_POS; return KW_SWITCHES;}
-	YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 217 "ael.flex"
-{ STORE_POS; return KW_ESWITCHES;}
-	YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 218 "ael.flex"
 { STORE_POS; return KW_INCLUDES;}
 	YY_BREAK
 case 40:
 /* rule 40 can match eol */
 YY_RULE_SETUP
-#line 220 "ael.flex"
+#line 214 "ael.flex"
 { my_lineno++; my_col = 1; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 221 "ael.flex"
+#line 215 "ael.flex"
 { my_col += yyleng; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 222 "ael.flex"
+#line 216 "ael.flex"
 { my_col += (yyleng*8)-(my_col%8); }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 224 "ael.flex"
+#line 218 "ael.flex"
 {
 		STORE_POS;
 		yylval->str = strdup(yytext);
@@ -1338,11 +1332,10 @@
 case 44:
 /* rule 44 can match eol */
 YY_RULE_SETUP
-#line 234 "ael.flex"
-{
-		STORE_START;
+#line 228 "ael.flex"
+{
 		if ( pbcpop(')') ) {	/* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression: %s !\n", my_file, my_lineno, my_col, yytext);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -1353,7 +1346,7 @@
 		if ( parencount >= 0) {
 			yymore();
 		} else {
-			STORE_END;
+			STORE_LOC;
 			yylval->str = strdup(yytext);
 			*(yylval->str+strlen(yylval->str)-1)=0;
 			/* printf("Got paren word %s\n", yylval->str); */
@@ -1366,10 +1359,9 @@
 case 45:
 /* rule 45 can match eol */
 YY_RULE_SETUP
-#line 258 "ael.flex"
+#line 251 "ael.flex"
 {
 		char c = yytext[yyleng-1];
-		// STORE_START;
 		if (c == '(')
 			parencount++;
 		pbcpush(c);
@@ -1379,12 +1371,11 @@
 case 46:
 /* rule 46 can match eol */
 YY_RULE_SETUP
-#line 267 "ael.flex"
+#line 259 "ael.flex"
 {
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if ( pbcpop(c))  { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n",
 				my_file, my_lineno, my_col, c);
 			BEGIN(0);
@@ -1397,10 +1388,9 @@
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 281 "ael.flex"
+#line 272 "ael.flex"
 {
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if (c == '(')
 			parencount++;
 		pbcpush(c);
@@ -1410,11 +1400,10 @@
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 290 "ael.flex"
-{
-		STORE_START;
+#line 280 "ael.flex"
+{
 		if ( pbcpop(')') ) { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno, my_col);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -1425,7 +1414,7 @@
 		if( parencount >= 0){
 			yymore();
 		} else {
-			STORE_END;
+			STORE_LOC;
 			yylval->str = strdup(yytext);
 			if(yyleng > 1 )
 				*(yylval->str+yyleng-1)=0;
@@ -1445,14 +1434,12 @@
 case 49:
 /* rule 49 can match eol */
 YY_RULE_SETUP
-#line 321 "ael.flex"
-{
-		if( parencount != 0) {
-			/* printf("Folding in a comma!\n"); */
+#line 310 "ael.flex"
+{
+		if( parencount != 0) { /* printf("Folding in a comma!\n"); */
 			yymore();
 		} else  {
-			STORE_START;
-			STORE_END;
+			STORE_LOC;
 			if( !commaout ) {
 				if( !strcmp(yytext,"," ) ) {
 					commaout = 0;
@@ -1477,12 +1464,11 @@
 case 50:
 /* rule 50 can match eol */
 YY_RULE_SETUP
-#line 349 "ael.flex"
+#line 336 "ael.flex"
 {
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if ( pbcpop(c) ) { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -1494,10 +1480,9 @@
 case 51:
 /* rule 51 can match eol */
 YY_RULE_SETUP
-#line 364 "ael.flex"
+#line 350 "ael.flex"
 {
 		char c = yytext[yyleng-1];
-		STORE_START;
 		yymore();
 		pbcpush(c);
 	}
@@ -1505,12 +1490,11 @@
 case 52:
 /* rule 52 can match eol */
 YY_RULE_SETUP
-#line 371 "ael.flex"
+#line 356 "ael.flex"
 {
 		char c = yytext[yyleng-1];
-		STORE_START;
 		if ( pbcpop(c) ) { /* error */
-			STORE_END;
+			STORE_LOC;
 			ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
 			BEGIN(0);
 			yylval->str = strdup(yytext);
@@ -1522,10 +1506,9 @@
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-#line 384 "ael.flex"
-{
-		STORE_START;
-		STORE_END;
+#line 368 "ael.flex"
+{
+		STORE_LOC;
 		yylval->str = strdup(yytext);
 		if(yyleng > 1)
 			*(yylval->str+yyleng-1)=0;
@@ -1537,7 +1520,7 @@
 case 54:
 /* rule 54 can match eol */
 YY_RULE_SETUP
-#line 395 "ael.flex"
+#line 378 "ael.flex"
 {
 		FILE *in1;
 		char fnamebuf[1024],*p1,*p2;
@@ -1604,7 +1587,7 @@
 case YY_STATE_EOF(paren):
 case YY_STATE_EOF(semic):
 case YY_STATE_EOF(argg):
-#line 457 "ael.flex"
+#line 440 "ael.flex"
 {
 		if ( --include_stack_index < 0 ) {
 			yyterminate();
@@ -1620,10 +1603,10 @@
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 470 "ael.flex"
+#line 453 "ael.flex"
 ECHO;
 	YY_BREAK
-#line 1627 "ael_lex.c"
+#line 1610 "ael_lex.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2753,7 +2736,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 470 "ael.flex"
+#line 453 "ael.flex"
 
 
 



More information about the asterisk-commits mailing list