[asterisk-commits] trunk r23640 - in /trunk/pbx/ael: ael.tab.c ael.tab.h ael.y

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Sun Apr 30 06:57:08 MST 2006


Author: rizzo
Date: Sun Apr 30 08:57:08 2006
New Revision: 23640

URL: http://svn.digium.com/view/asterisk?rev=23640&view=rev
Log:
introduce a new frontend to npval for the very common case
of creating an object for a tring value PV_WORD.
Start using it.


Modified:
    trunk/pbx/ael/ael.tab.c
    trunk/pbx/ael/ael.tab.h
    trunk/pbx/ael/ael.y

Modified: trunk/pbx/ael/ael.tab.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx/ael/ael.tab.c?rev=23640&r1=23639&r2=23640&view=diff
==============================================================================
--- trunk/pbx/ael/ael.tab.c (original)
+++ trunk/pbx/ael/ael.tab.c Sun Apr 30 08:57:08 2006
@@ -181,10 +181,6 @@
 #include "asterisk/utils.h"		/* ast_calloc() */
 #include "asterisk/ael_structs.h"
 
-/* create a new object with start-end marker */
-static pval *npval(pvaltype type, int first_line, int last_line,
-	int first_column, int last_column);
-
 static pval * linku1(pval *head, pval *tail);
 
 void reset_parencount(yyscan_t yyscanner);
@@ -221,14 +217,14 @@
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 53 "ael.y"
+#line 49 "ael.y"
 typedef union YYSTYPE {
 	int	intval;		/* integer value, typically flags */
 	char	*str;		/* strings */
 	struct pval *pval;	/* full objects */
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 232 "ael.tab.c"
+#line 228 "ael.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -249,23 +245,30 @@
 
 
 /* Copy the second part of user declarations.  */
-#line 59 "ael.y"
+#line 55 "ael.y"
 
 	/* declaring these AFTER the union makes things a lot simpler! */
 void yyerror(YYLTYPE *locp, struct parse_io *parseio, char const *s);
 int ael_yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , void * yyscanner);
+
+/* create a new object with start-end marker */
+static pval *npval(pvaltype type, int first_line, int last_line,
+	int first_column, int last_column);
 
 /* create a new object with start-end marker, simplified interface.
  * Must be declared here because YYLTYPE is not known before
  */
 static pval *npval2(pvaltype type, YYLTYPE *first, YYLTYPE *last);
 
+/* another frontend for npval, this time for a string */
+static pval *nword(char *string, YYLTYPE *pos);
+
 /* update end position of an object, return the object */
 static pval *update_last(pval *, YYLTYPE *);
 
 
 /* Line 219 of yacc.c.  */
-#line 269 "ael.tab.c"
+#line 272 "ael.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -560,22 +563,22 @@
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,   174,   174,   177,   178,   189,   192,   193,   194,   195,
-     198,   199,   202,   210,   211,   214,   217,   220,   224,   229,
-     232,   236,   237,   238,   241,   241,   247,   250,   254,   257,
-     258,   261,   262,   263,   266,   269,   270,   271,   272,   273,
-     274,   274,   278,   279,   282,   287,   291,   296,   301,   310,
-     311,   314,   317,   317,   322,   322,   327,   343,   363,   364,
-     371,   372,   377,   385,   386,   390,   396,   396,   404,   407,
-     407,   411,   414,   417,   420,   421,   422,   420,   428,   428,
-     432,   434,   437,   439,   441,   444,   444,   477,   478,   479,
-     480,   484,   488,   492,   495,   496,   501,   503,   508,   513,
-     520,   527,   534,   543,   548,   553,   560,   567,   574,   583,
-     583,   588,   593,   593,   603,   610,   613,   614,   617,   620,
-     623,   630,   631,   636,   640,   644,   648,   651,   654,   659,
-     660,   665,   666,   672,   677,   682,   683,   686,   689,   694,
-     697,   700,   717,   730,   735,   753,   768,   771,   772,   775,
-     778
+       0,   177,   177,   180,   181,   192,   195,   196,   197,   198,
+     201,   202,   205,   213,   214,   217,   220,   223,   227,   232,
+     235,   239,   240,   241,   244,   244,   250,   251,   255,   258,
+     259,   262,   263,   264,   267,   270,   271,   272,   273,   274,
+     275,   275,   279,   280,   283,   288,   292,   297,   302,   311,
+     312,   315,   318,   318,   323,   323,   328,   341,   357,   358,
+     365,   366,   371,   379,   380,   384,   390,   390,   398,   401,
+     401,   405,   408,   411,   414,   415,   416,   414,   422,   422,
+     426,   428,   431,   433,   435,   438,   438,   471,   472,   473,
+     474,   478,   482,   486,   489,   490,   495,   496,   499,   502,
+     506,   510,   514,   520,   523,   526,   533,   540,   547,   556,
+     556,   561,   566,   566,   576,   583,   586,   587,   590,   593,
+     596,   603,   604,   609,   613,   617,   621,   624,   627,   632,
+     633,   638,   639,   645,   650,   655,   656,   659,   662,   667,
+     670,   673,   690,   703,   708,   726,   741,   744,   745,   748,
+     751
 };
 #endif
 
@@ -1292,327 +1295,327 @@
   switch (yytype)
     {
       case 41: /* "word" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1298 "ael.tab.c"
+#line 1301 "ael.tab.c"
         break;
       case 44: /* "objects" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1306 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1309 "ael.tab.c"
         break;
       case 45: /* "object" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1314 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1317 "ael.tab.c"
         break;
       case 46: /* "word_or_default" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1319 "ael.tab.c"
+#line 1322 "ael.tab.c"
         break;
       case 47: /* "context" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1327 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1330 "ael.tab.c"
         break;
       case 49: /* "macro" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1335 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1338 "ael.tab.c"
         break;
       case 50: /* "globals" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1343 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1346 "ael.tab.c"
         break;
       case 51: /* "global_statements" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1351 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1354 "ael.tab.c"
         break;
       case 52: /* "global_statement" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1359 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1362 "ael.tab.c"
         break;
       case 54: /* "arglist" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1367 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1370 "ael.tab.c"
         break;
       case 55: /* "elements_block" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1375 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1378 "ael.tab.c"
         break;
       case 56: /* "elements" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1383 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1386 "ael.tab.c"
         break;
       case 57: /* "element" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1391 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1394 "ael.tab.c"
         break;
       case 59: /* "ignorepat" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1399 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1402 "ael.tab.c"
         break;
       case 60: /* "extension" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1407 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1410 "ael.tab.c"
         break;
       case 61: /* "statements" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1415 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1418 "ael.tab.c"
         break;
       case 62: /* "if_head" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1423 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1426 "ael.tab.c"
         break;
       case 64: /* "random_head" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1431 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1434 "ael.tab.c"
         break;
       case 66: /* "iftime_head" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1439 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1442 "ael.tab.c"
         break;
       case 67: /* "word_list" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1444 "ael.tab.c"
+#line 1447 "ael.tab.c"
         break;
       case 68: /* "word3_list" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1449 "ael.tab.c"
+#line 1452 "ael.tab.c"
         break;
       case 69: /* "goto_word" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1454 "ael.tab.c"
+#line 1457 "ael.tab.c"
         break;
       case 70: /* "switch_head" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1462 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1465 "ael.tab.c"
         break;
       case 72: /* "statement" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1470 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1473 "ael.tab.c"
         break;
       case 79: /* "opt_else" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1478 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1481 "ael.tab.c"
         break;
       case 80: /* "target" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1486 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1489 "ael.tab.c"
         break;
       case 81: /* "jumptarget" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1494 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1497 "ael.tab.c"
         break;
       case 82: /* "macro_call" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1502 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1505 "ael.tab.c"
         break;
       case 84: /* "application_call_head" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1510 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1513 "ael.tab.c"
         break;
       case 86: /* "application_call" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1518 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1521 "ael.tab.c"
         break;
       case 87: /* "opt_word" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1523 "ael.tab.c"
+#line 1526 "ael.tab.c"
         break;
       case 88: /* "eval_arglist" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1531 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1534 "ael.tab.c"
         break;
       case 89: /* "case_statements" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1539 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1542 "ael.tab.c"
         break;
       case 90: /* "case_statement" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1547 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1550 "ael.tab.c"
         break;
       case 91: /* "macro_statements" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1555 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1558 "ael.tab.c"
         break;
       case 92: /* "macro_statement" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1563 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1566 "ael.tab.c"
         break;
       case 93: /* "switches" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1571 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1574 "ael.tab.c"
         break;
       case 94: /* "eswitches" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1579 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1582 "ael.tab.c"
         break;
       case 95: /* "switchlist_block" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1587 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1590 "ael.tab.c"
         break;
       case 96: /* "switchlist" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1595 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1598 "ael.tab.c"
         break;
       case 97: /* "includeslist" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1603 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1606 "ael.tab.c"
         break;
       case 98: /* "includedname" */
-#line 169 "ael.y"
+#line 172 "ael.y"
         { free((yyvaluep->str));};
-#line 1608 "ael.tab.c"
+#line 1611 "ael.tab.c"
         break;
       case 99: /* "includes" */
-#line 156 "ael.y"
-        {
-		destroy_pval((yyvaluep->pval));
-		prev_word=0;
-	};
-#line 1616 "ael.tab.c"
+#line 159 "ael.y"
+        {
+		destroy_pval((yyvaluep->pval));
+		prev_word=0;
+	};
+#line 1619 "ael.tab.c"
         break;
 
       default:
@@ -1929,17 +1932,17 @@
   switch (yyn)
     {
         case 2:
-#line 174 "ael.y"
+#line 177 "ael.y"
     { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;}
     break;
 
   case 3:
-#line 177 "ael.y"
+#line 180 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 4:
-#line 179 "ael.y"
+#line 182 "ael.y"
     {
 			if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {
 				(yyval.pval)=(yyvsp[-1].pval);
@@ -1953,42 +1956,42 @@
     break;
 
   case 5:
-#line 189 "ael.y"
+#line 192 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 6:
-#line 192 "ael.y"
+#line 195 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 7:
-#line 193 "ael.y"
+#line 196 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 8:
-#line 194 "ael.y"
+#line 197 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 9:
-#line 195 "ael.y"
+#line 198 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 10:
-#line 198 "ael.y"
+#line 201 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
   case 11:
-#line 199 "ael.y"
+#line 202 "ael.y"
     { (yyval.str) = strdup("default"); ;}
     break;
 
   case 12:
-#line 202 "ael.y"
+#line 205 "ael.y"
     {
 		(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str);
@@ -1997,31 +2000,31 @@
     break;
 
   case 13:
-#line 210 "ael.y"
+#line 213 "ael.y"
     { (yyval.intval) = 1; ;}
     break;
 
   case 14:
-#line 211 "ael.y"
+#line 214 "ael.y"
     { (yyval.intval) = 0; ;}
     break;
 
   case 15:
-#line 214 "ael.y"
+#line 217 "ael.y"
     {
 		(yyval.pval) = npval2(PV_MACRO, &(yylsp[-7]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-6].str); (yyval.pval)->u2.arglist = (yyvsp[-4].pval); (yyval.pval)->u3.macro_statements = (yyvsp[-1].pval); ;}
     break;
 
   case 16:
-#line 217 "ael.y"
+#line 220 "ael.y"
     {
 		(yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u2.arglist = (yyvsp[-3].pval); ;}
     break;
 
   case 17:
-#line 220 "ael.y"
+#line 223 "ael.y"
     {
 		(yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-5].str);
@@ -2029,47 +2032,47 @@
     break;
 
   case 18:
-#line 224 "ael.y"
+#line 227 "ael.y"
     {
 		(yyval.pval) = npval2(PV_MACRO, &(yylsp[-5]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-4].str); ;}
     break;
 
   case 19:
-#line 229 "ael.y"
+#line 232 "ael.y"
     {
 		(yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
     break;
 
   case 20:
-#line 232 "ael.y"
+#line 235 "ael.y"
     { /* empty globals is OK */
 		(yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-2]), &(yylsp[0])); ;}
     break;
 
   case 21:
-#line 236 "ael.y"
+#line 239 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 22:
-#line 237 "ael.y"
+#line 240 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));;}
     break;
 
   case 23:
-#line 238 "ael.y"
+#line 241 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 24:
-#line 241 "ael.y"
+#line 244 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 25:
-#line 241 "ael.y"
+#line 244 "ael.y"
     {
 		(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2077,14 +2080,12 @@
     break;
 
   case 26:
-#line 247 "ael.y"
-    {
-		(yyval.pval)= npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->u1.str = (yyvsp[0].str); ;}
+#line 250 "ael.y"
+    { (yyval.pval)= nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 27:
-#line 250 "ael.y"
+#line 251 "ael.y"
     {
 		pval *z = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[0]));
 		z->u1.str = (yyvsp[0].str);
@@ -2092,74 +2093,74 @@
     break;
 
   case 28:
-#line 254 "ael.y"
+#line 255 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 29:
-#line 257 "ael.y"
+#line 258 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 30:
-#line 258 "ael.y"
+#line 259 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
   case 31:
-#line 261 "ael.y"
+#line 262 "ael.y"
     { (yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 32:
-#line 262 "ael.y"
+#line 263 "ael.y"
     {(yyval.pval)=0;;}
     break;
 
   case 33:
-#line 263 "ael.y"
+#line 264 "ael.y"
     { if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
 				else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
 				else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
     break;
 
   case 34:
-#line 266 "ael.y"
+#line 267 "ael.y"
     { (yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 35:
-#line 269 "ael.y"
-    {(yyval.pval)=(yyvsp[0].pval);;}
-    break;
-
-  case 36:
 #line 270 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
-  case 37:
+  case 36:
 #line 271 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
-  case 38:
+  case 37:
 #line 272 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
-  case 39:
+  case 38:
 #line 273 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
+  case 39:
+#line 274 "ael.y"
+    {(yyval.pval)=(yyvsp[0].pval);;}
+    break;
+
   case 40:
-#line 274 "ael.y"
+#line 275 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 41:
-#line 274 "ael.y"
+#line 275 "ael.y"
     {
 		(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2167,24 +2168,24 @@
     break;
 
   case 42:
-#line 278 "ael.y"
+#line 279 "ael.y"
     {free((yyvsp[-1].str)); (yyval.pval)=0;;}
     break;
 
   case 43:
-#line 279 "ael.y"
+#line 280 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 44:
-#line 282 "ael.y"
+#line 283 "ael.y"
     {
 		(yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 45:
-#line 287 "ael.y"
+#line 288 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2192,7 +2193,7 @@
     break;
 
   case 46:
-#line 291 "ael.y"
+#line 292 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2201,7 +2202,7 @@
     break;
 
   case 47:
-#line 296 "ael.y"
+#line 297 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2210,7 +2211,7 @@
     break;
 
   case 48:
-#line 301 "ael.y"
+#line 302 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2220,48 +2221,48 @@
     break;
 
   case 49:
-#line 310 "ael.y"
+#line 311 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 50:
-#line 311 "ael.y"
+#line 312 "ael.y"
     {if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
 						 else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
 						 else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
     break;
 
   case 51:
-#line 314 "ael.y"
+#line 315 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 52:
-#line 317 "ael.y"
+#line 318 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 53:
-#line 317 "ael.y"
+#line 318 "ael.y"
     {
 		(yyval.pval)= npval2(PV_IF, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 54:
-#line 322 "ael.y"
+#line 323 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 55:
-#line 322 "ael.y"
+#line 323 "ael.y"
     {
 		(yyval.pval) = npval2(PV_RANDOM, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str=(yyvsp[-1].str);;}
     break;
 
   case 56:
-#line 328 "ael.y"
+#line 329 "ael.y"
     {
 		(yyval.pval) = npval2(PV_IFTIME, &(yylsp[-13]), &(yylsp[-9])); /* XXX really @5 or more ? */
 		(yyval.pval)->u1.list = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-11]));
@@ -2269,39 +2270,32 @@
 		free((yyvsp[-11].str));
 		free((yyvsp[-9].str));
 		free((yyvsp[-7].str));
-		(yyval.pval)->u1.list->next = npval2(PV_WORD, &(yylsp[-5]), &(yylsp[-5]));
-		(yyval.pval)->u1.list->next->u1.str = (yyvsp[-5].str);
-		(yyval.pval)->u1.list->next->next = npval2(PV_WORD, &(yylsp[-3]), &(yylsp[-3]));
-		(yyval.pval)->u1.list->next->next->u1.str = (yyvsp[-3].str);
-		(yyval.pval)->u1.list->next->next->next = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[-1]));
-		(yyval.pval)->u1.list->next->next->next->u1.str = (yyvsp[-1].str);
+		(yyval.pval)->u1.list->next = nword((yyvsp[-5].str), &(yylsp[-5]));
+		(yyval.pval)->u1.list->next->next = nword((yyvsp[-3].str), &(yylsp[-3]));
+		(yyval.pval)->u1.list->next->next->next = nword((yyvsp[-1].str), &(yylsp[-1]));
 		prev_word = 0;
 	;}
     break;
 
   case 57:
-#line 343 "ael.y"
+#line 341 "ael.y"
     {
 		(yyval.pval) = npval2(PV_IFTIME, &(yylsp[-9]), &(yylsp[-5])); /* XXX @5 or greater ? */
-		(yyval.pval)->u1.list = npval2(PV_WORD, &(yylsp[-7]), &(yylsp[-7]));
-		(yyval.pval)->u1.list->u1.str = (yyvsp[-7].str);
-		(yyval.pval)->u1.list->next = npval2(PV_WORD, &(yylsp[-5]), &(yylsp[-5]));
-		(yyval.pval)->u1.list->next->u1.str = (yyvsp[-5].str);
-		(yyval.pval)->u1.list->next->next = npval2(PV_WORD, &(yylsp[-3]), &(yylsp[-3]));
-		(yyval.pval)->u1.list->next->next->u1.str = (yyvsp[-3].str);
-		(yyval.pval)->u1.list->next->next->next = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[-1]));
-		(yyval.pval)->u1.list->next->next->next->u1.str = (yyvsp[-1].str);
+		(yyval.pval)->u1.list = nword((yyvsp[-7].str), &(yylsp[-7]));
+		(yyval.pval)->u1.list->next = nword((yyvsp[-5].str), &(yylsp[-5]));
+		(yyval.pval)->u1.list->next->next = nword((yyvsp[-3].str), &(yylsp[-3]));
+		(yyval.pval)->u1.list->next->next->next = nword((yyvsp[-1].str), &(yylsp[-1]));
 		prev_word = 0;
 	;}
     break;
 
   case 58:
-#line 363 "ael.y"
+#line 357 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 59:
-#line 364 "ael.y"
+#line 358 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-1].str));
@@ -2310,12 +2304,12 @@
     break;
 
   case 60:
-#line 371 "ael.y"
+#line 365 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 61:
-#line 372 "ael.y"
+#line 366 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-1].str));
@@ -2324,7 +2318,7 @@
     break;
 
   case 62:
-#line 377 "ael.y"
+#line 371 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-2].str));
@@ -2334,12 +2328,12 @@
     break;
 
   case 63:
-#line 385 "ael.y"
+#line 379 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 64:
-#line 386 "ael.y"
+#line 380 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-1].str));
@@ -2347,7 +2341,7 @@
     break;
 
   case 65:
-#line 390 "ael.y"
+#line 384 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str));
 		free((yyvsp[-2].str));
@@ -2355,31 +2349,31 @@
     break;
 
   case 66:
-#line 396 "ael.y"
+#line 390 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 67:
-#line 396 "ael.y"
+#line 390 "ael.y"
     {
 		(yyval.pval) = npval2(PV_SWITCH, &(yylsp[-5]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
   case 68:
-#line 404 "ael.y"
+#line 398 "ael.y"
     {
 		(yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
   case 69:
-#line 407 "ael.y"
+#line 401 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 70:
-#line 407 "ael.y"
+#line 401 "ael.y"
     {
 		(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2387,43 +2381,43 @@
     break;
 
   case 71:
-#line 411 "ael.y"
+#line 405 "ael.y"
     {
 		(yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 72:
-#line 414 "ael.y"
+#line 408 "ael.y"
     {
 		(yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 73:
-#line 417 "ael.y"
+#line 411 "ael.y"
     {
 		(yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 74:
-#line 420 "ael.y"
+#line 414 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 75:
-#line 421 "ael.y"
+#line 415 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 76:
-#line 422 "ael.y"
+#line 416 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 77:
-#line 422 "ael.y"
+#line 416 "ael.y"
     {
 		(yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0]));
 		(yyval.pval)->u1.for_init = (yyvsp[-8].str);
@@ -2433,12 +2427,12 @@
     break;
 
   case 78:
-#line 428 "ael.y"
+#line 422 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 79:
-#line 428 "ael.y"
+#line 422 "ael.y"
     {
 		(yyval.pval) = npval2(PV_WHILE, &(yylsp[-5]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2446,44 +2440,44 @@
     break;
 
   case 80:
-#line 432 "ael.y"
+#line 426 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 81:
-#line 434 "ael.y"
+#line 428 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
 		(yyval.pval)->u2.statements = (yyvsp[-1].pval);;}
     break;
 
   case 82:
-#line 437 "ael.y"
+#line 431 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;}
     break;
 
   case 83:
-#line 439 "ael.y"
+#line 433 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 84:
-#line 441 "ael.y"
+#line 435 "ael.y"
     {
 		(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 85:
-#line 444 "ael.y"
+#line 438 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 86:
-#line 444 "ael.y"
+#line 438 "ael.y"
     {
 		char *bufx;
 		int tot=0;
@@ -2520,22 +2514,22 @@
     break;
 
   case 87:
-#line 477 "ael.y"
+#line 471 "ael.y"
     { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 88:
-#line 478 "ael.y"
+#line 472 "ael.y"
     { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 89:
-#line 479 "ael.y"
+#line 473 "ael.y"
     { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 90:
-#line 480 "ael.y"
+#line 474 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
 		(yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2543,7 +2537,7 @@
     break;
 
   case 91:
-#line 484 "ael.y"
+#line 478 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
 		(yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2551,7 +2545,7 @@
     break;
 
   case 92:
-#line 488 "ael.y"
+#line 482 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
 		(yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2559,108 +2553,87 @@
     break;
 
   case 93:
-#line 492 "ael.y"
+#line 486 "ael.y"
     { (yyval.pval)=0; ;}
     break;
 
   case 94:
+#line 489 "ael.y"
+    { (yyval.pval) = (yyvsp[0].pval); ;}
+    break;
+
+  case 95:
+#line 490 "ael.y"
+    { (yyval.pval) = NULL ; ;}
+    break;
+
+  case 96:
 #line 495 "ael.y"
-    { (yyval.pval) = (yyvsp[0].pval); ;}
-    break;
-
-  case 95:
+    { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
+    break;
+
+  case 97:
 #line 496 "ael.y"
-    { (yyval.pval) = NULL ; ;}
-    break;
-
-  case 96:
-#line 501 "ael.y"
-    { (yyval.pval) = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->u1.str = (yyvsp[0].str);;}
-    break;
-
-  case 97:
-#line 503 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->u1.str = (yyvsp[0].str);;}
+    {
+		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 98:
-#line 508 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->u1.str = (yyvsp[0].str);;}
+#line 499 "ael.y"
+    {
+		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 99:
-#line 513 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
-		(yyval.pval)->u1.str = (yyvsp[-4].str);
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->next->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
+#line 502 "ael.y"
+    {
+		(yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
+		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 100:
+#line 506 "ael.y"
+    {
+		(yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
+		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
+    break;
+
+  case 101:
+#line 510 "ael.y"
+    {
+		(yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
+		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
+    break;
+
+  case 102:
+#line 514 "ael.y"
+    {
+		(yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
+		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
+    break;
+
+  case 103:
 #line 520 "ael.y"
     {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
-		(yyval.pval)->u1.str = (yyvsp[-4].str);
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->next->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
-    break;
-
-  case 101:
-#line 527 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
-		(yyval.pval)->u1.str = strdup("default");
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->next->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
-    break;
-
-  case 102:
-#line 534 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
-		(yyval.pval)->u1.str = strdup("default");
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->next->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
-    break;
-
-  case 103:
-#line 543 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->u1.str = (yyvsp[0].str);
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0])); /* XXX not really @1 */
-		(yyval.pval)->next->u1.str = strdup("1");;}
+		(yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
+		(yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;}
     break;
 
   case 104:
-#line 548 "ael.y"
-    {
-		(yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
-		(yyval.pval)->u1.str = (yyvsp[-2].str);
-		(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
-		(yyval.pval)->next->u1.str = (yyvsp[0].str);;}
+#line 523 "ael.y"
+    {
+		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
+		(yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 105:
-#line 553 "ael.y"
+#line 526 "ael.y"
     {
 		(yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
 		(yyval.pval)->u1.str = (yyvsp[0].str);
@@ -2671,7 +2644,7 @@
     break;
 
   case 106:
-#line 560 "ael.y"
+#line 533 "ael.y"
     {
 		(yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
 		(yyval.pval)->u1.str = (yyvsp[0].str);
@@ -2682,7 +2655,7 @@
     break;
 
   case 107:
-#line 567 "ael.y"
+#line 540 "ael.y"
     {
 		(yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
 		(yyval.pval)->u1.str = strdup("default");
@@ -2693,7 +2666,7 @@
     break;
 
   case 108:
-#line 574 "ael.y"
+#line 547 "ael.y"
     {
 		(yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
 		(yyval.pval)->u1.str = strdup("default");
@@ -2704,12 +2677,12 @@
     break;
 
   case 109:
-#line 583 "ael.y"
+#line 556 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 110:
-#line 583 "ael.y"
+#line 556 "ael.y"
     {
 		/* XXX original code had @2 but i think we need @5 */
 		(yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0]));
@@ -2718,19 +2691,19 @@
     break;
 
   case 111:
-#line 588 "ael.y"
+#line 561 "ael.y"
     {
 		(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
   case 112:
-#line 593 "ael.y"
+#line 566 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 113:
-#line 593 "ael.y"
+#line 566 "ael.y"
     {
 		if (strcasecmp((yyvsp[-2].str),"goto") == 0) {
 			(yyval.pval)= npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
@@ -2742,7 +2715,7 @@
     break;
 
   case 114:
-#line 603 "ael.y"
+#line 576 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
  		if( (yyval.pval)->type == PV_GOTO )
@@ -2753,36 +2726,36 @@
     break;
 
   case 115:
-#line 610 "ael.y"
+#line 583 "ael.y"
     { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 116:
-#line 613 "ael.y"
+#line 586 "ael.y"
     { (yyval.str) = (yyvsp[0].str) ;}
     break;
 
   case 117:
-#line 614 "ael.y"
+#line 587 "ael.y"
     { (yyval.str) = strdup(""); ;}
     break;
 
   case 118:
-#line 617 "ael.y"
+#line 590 "ael.y"
     { 
 		(yyval.pval)= npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[0].str);;}
     break;
 
   case 119:
-#line 620 "ael.y"
+#line 593 "ael.y"
     {
 		(yyval.pval)= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/);
 		(yyval.pval)->u1.str = strdup(""); ;}
     break;
 
   case 120:
-#line 623 "ael.y"
+#line 596 "ael.y"
     {
 		pval *z = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
 		(yyval.pval) = (yyvsp[-2].pval);
@@ -2791,19 +2764,19 @@
     break;
 
   case 121:
-#line 630 "ael.y"
+#line 603 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 122:
-#line 631 "ael.y"
+#line 604 "ael.y"
     { if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
 						 else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
 						 else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
     break;
 
   case 123:
-#line 636 "ael.y"
+#line 609 "ael.y"
     {
 		(yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2811,7 +2784,7 @@
     break;
 
   case 124:
-#line 640 "ael.y"

[... 429 lines stripped ...]


More information about the asterisk-commits mailing list