The build of aelparse was still broken in some cases, so instead of having to
authorRussell Bryant <russell@russellbryant.com>
Tue, 2 May 2006 03:03:27 +0000 (03:03 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 2 May 2006 03:03:27 +0000 (03:03 +0000)
keep figuring out workarounds for build issues on various platforms, just go
ahead and remove what started all of this.  Two instances of ast_calloc have
been changed to calloc in pbx/ael/ael.y.

ast_copy_string isn't actually needed here because the only place it is used is
in ast_expr2f.c.  However, the utils Makefile already builds its own
ast_expr2f.o with -DSTANDALONE, which makes it use strncpy instead of
ast_copy_string.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24115 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/ael/ael.tab.c
pbx/ael/ael.tab.h
pbx/ael/ael.y
utils/ael_main.c

index f8cd615..0a4f64c 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include "asterisk/logger.h"
-#include "asterisk/utils.h"            /* ast_calloc() */
 #include "asterisk/ael_structs.h"
 
 static pval * linku1(pval *head, pval *tail);
@@ -217,14 +216,14 @@ static char *ael_token_subst(char *mess);
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 49 "ael.y"
+#line 48 "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 228 "ael.tab.c"
+#line 227 "ael.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -245,7 +244,7 @@ typedef struct YYLTYPE
 
 
 /* Copy the second part of user declarations.  */
-#line 55 "ael.y"
+#line 54 "ael.y"
 
        /* declaring these AFTER the union makes things a lot simpler! */
 void yyerror(YYLTYPE *locp, struct parse_io *parseio, char const *s);
@@ -268,7 +267,7 @@ static pval *update_last(pval *, YYLTYPE *);
 
 
 /* Line 219 of yacc.c.  */
-#line 272 "ael.tab.c"
+#line 271 "ael.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -563,22 +562,22 @@ static const yysigned_char yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       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,   521,   524,   527,   534,   541,   548,   557,
-     557,   562,   570,   570,   581,   588,   591,   592,   595,   596,
-     599,   605,   606,   611,   615,   619,   623,   626,   629,   634,
-     635,   640,   641,   647,   652,   657,   658,   661,   664,   669,
-     672,   675,   689,   698,   703,   718,   730,   733,   734,   737,
-     740
+       0,   176,   176,   179,   180,   191,   194,   195,   196,   197,
+     200,   201,   204,   212,   213,   216,   219,   222,   226,   231,
+     234,   238,   239,   240,   243,   243,   249,   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,   340,   356,   357,
+     364,   365,   370,   378,   379,   383,   389,   389,   397,   400,
+     400,   404,   407,   410,   413,   414,   415,   413,   421,   421,
+     425,   427,   430,   432,   434,   437,   437,   470,   471,   472,
+     473,   477,   481,   485,   488,   489,   494,   495,   498,   501,
+     505,   509,   513,   520,   523,   526,   533,   540,   547,   556,
+     556,   561,   569,   569,   580,   587,   590,   591,   594,   595,
+     598,   604,   605,   610,   614,   618,   622,   625,   628,   633,
+     634,   639,   640,   646,   651,   656,   657,   660,   663,   668,
+     671,   674,   688,   697,   702,   717,   729,   732,   733,   736,
+     739
 };
 #endif
 
@@ -1295,327 +1294,327 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
   switch (yytype)
     {
       case 41: /* "word" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1301 "ael.tab.c"
+#line 1300 "ael.tab.c"
         break;
       case 44: /* "objects" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1309 "ael.tab.c"
+#line 1308 "ael.tab.c"
         break;
       case 45: /* "object" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1317 "ael.tab.c"
+#line 1316 "ael.tab.c"
         break;
       case 46: /* "word_or_default" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1322 "ael.tab.c"
+#line 1321 "ael.tab.c"
         break;
       case 47: /* "context" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1330 "ael.tab.c"
+#line 1329 "ael.tab.c"
         break;
       case 49: /* "macro" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1338 "ael.tab.c"
+#line 1337 "ael.tab.c"
         break;
       case 50: /* "globals" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1346 "ael.tab.c"
+#line 1345 "ael.tab.c"
         break;
       case 51: /* "global_statements" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1354 "ael.tab.c"
+#line 1353 "ael.tab.c"
         break;
       case 52: /* "global_statement" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1362 "ael.tab.c"
+#line 1361 "ael.tab.c"
         break;
       case 54: /* "arglist" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1370 "ael.tab.c"
+#line 1369 "ael.tab.c"
         break;
       case 55: /* "elements_block" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1378 "ael.tab.c"
+#line 1377 "ael.tab.c"
         break;
       case 56: /* "elements" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1386 "ael.tab.c"
+#line 1385 "ael.tab.c"
         break;
       case 57: /* "element" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1394 "ael.tab.c"
+#line 1393 "ael.tab.c"
         break;
       case 59: /* "ignorepat" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1402 "ael.tab.c"
+#line 1401 "ael.tab.c"
         break;
       case 60: /* "extension" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1410 "ael.tab.c"
+#line 1409 "ael.tab.c"
         break;
       case 61: /* "statements" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1418 "ael.tab.c"
+#line 1417 "ael.tab.c"
         break;
       case 62: /* "if_head" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1426 "ael.tab.c"
+#line 1425 "ael.tab.c"
         break;
       case 64: /* "random_head" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1434 "ael.tab.c"
+#line 1433 "ael.tab.c"
         break;
       case 66: /* "iftime_head" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1442 "ael.tab.c"
+#line 1441 "ael.tab.c"
         break;
       case 67: /* "word_list" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1447 "ael.tab.c"
+#line 1446 "ael.tab.c"
         break;
       case 68: /* "word3_list" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1452 "ael.tab.c"
+#line 1451 "ael.tab.c"
         break;
       case 69: /* "goto_word" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1457 "ael.tab.c"
+#line 1456 "ael.tab.c"
         break;
       case 70: /* "switch_head" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1465 "ael.tab.c"
+#line 1464 "ael.tab.c"
         break;
       case 72: /* "statement" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1473 "ael.tab.c"
+#line 1472 "ael.tab.c"
         break;
       case 79: /* "opt_else" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1481 "ael.tab.c"
+#line 1480 "ael.tab.c"
         break;
       case 80: /* "target" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1489 "ael.tab.c"
+#line 1488 "ael.tab.c"
         break;
       case 81: /* "jumptarget" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1497 "ael.tab.c"
+#line 1496 "ael.tab.c"
         break;
       case 82: /* "macro_call" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1505 "ael.tab.c"
+#line 1504 "ael.tab.c"
         break;
       case 84: /* "application_call_head" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1513 "ael.tab.c"
+#line 1512 "ael.tab.c"
         break;
       case 86: /* "application_call" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1521 "ael.tab.c"
+#line 1520 "ael.tab.c"
         break;
       case 87: /* "opt_word" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1526 "ael.tab.c"
+#line 1525 "ael.tab.c"
         break;
       case 88: /* "eval_arglist" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1534 "ael.tab.c"
+#line 1533 "ael.tab.c"
         break;
       case 89: /* "case_statements" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1542 "ael.tab.c"
+#line 1541 "ael.tab.c"
         break;
       case 90: /* "case_statement" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1550 "ael.tab.c"
+#line 1549 "ael.tab.c"
         break;
       case 91: /* "macro_statements" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1558 "ael.tab.c"
+#line 1557 "ael.tab.c"
         break;
       case 92: /* "macro_statement" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1566 "ael.tab.c"
+#line 1565 "ael.tab.c"
         break;
       case 93: /* "switches" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1574 "ael.tab.c"
+#line 1573 "ael.tab.c"
         break;
       case 94: /* "eswitches" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1582 "ael.tab.c"
+#line 1581 "ael.tab.c"
         break;
       case 95: /* "switchlist_block" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1590 "ael.tab.c"
+#line 1589 "ael.tab.c"
         break;
       case 96: /* "switchlist" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1598 "ael.tab.c"
+#line 1597 "ael.tab.c"
         break;
       case 97: /* "includeslist" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1606 "ael.tab.c"
+#line 1605 "ael.tab.c"
         break;
       case 98: /* "includedname" */
-#line 172 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1611 "ael.tab.c"
+#line 1610 "ael.tab.c"
         break;
       case 99: /* "includes" */
-#line 159 "ael.y"
+#line 158 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1619 "ael.tab.c"
+#line 1618 "ael.tab.c"
         break;
 
       default:
@@ -1932,17 +1931,17 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 177 "ael.y"
+#line 176 "ael.y"
     { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;}
     break;
 
   case 3:
-#line 180 "ael.y"
+#line 179 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 4:
-#line 182 "ael.y"
+#line 181 "ael.y"
     {
                        if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {
                                (yyval.pval)=(yyvsp[-1].pval);
@@ -1956,42 +1955,42 @@ yyreduce:
     break;
 
   case 5:
-#line 192 "ael.y"
+#line 191 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 6:
-#line 195 "ael.y"
+#line 194 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 7:
-#line 196 "ael.y"
+#line 195 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 8:
-#line 197 "ael.y"
+#line 196 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 9:
-#line 198 "ael.y"
+#line 197 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 10:
-#line 201 "ael.y"
+#line 200 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
   case 11:
-#line 202 "ael.y"
+#line 201 "ael.y"
     { (yyval.str) = strdup("default"); ;}
     break;
 
   case 12:
-#line 205 "ael.y"
+#line 204 "ael.y"
     {
                (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);
@@ -2000,31 +1999,31 @@ yyreduce:
     break;
 
   case 13:
-#line 213 "ael.y"
+#line 212 "ael.y"
     { (yyval.intval) = 1; ;}
     break;
 
   case 14:
-#line 214 "ael.y"
+#line 213 "ael.y"
     { (yyval.intval) = 0; ;}
     break;
 
   case 15:
-#line 217 "ael.y"
+#line 216 "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 220 "ael.y"
+#line 219 "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 223 "ael.y"
+#line 222 "ael.y"
     {
                (yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-5].str);
@@ -2032,47 +2031,47 @@ yyreduce:
     break;
 
   case 18:
-#line 227 "ael.y"
+#line 226 "ael.y"
     {
                (yyval.pval) = npval2(PV_MACRO, &(yylsp[-5]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str); ;}
     break;
 
   case 19:
-#line 232 "ael.y"
+#line 231 "ael.y"
     {
                (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
     break;
 
   case 20:
-#line 235 "ael.y"
+#line 234 "ael.y"
     { /* empty globals is OK */
                (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-2]), &(yylsp[0])); ;}
     break;
 
   case 21:
-#line 239 "ael.y"
+#line 238 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 22:
-#line 240 "ael.y"
+#line 239 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));;}
     break;
 
   case 23:
-#line 241 "ael.y"
+#line 240 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 24:
-#line 244 "ael.y"
+#line 243 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 25:
-#line 244 "ael.y"
+#line 243 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2080,12 +2079,12 @@ yyreduce:
     break;
 
   case 26:
-#line 250 "ael.y"
+#line 249 "ael.y"
     { (yyval.pval)= nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 27:
-#line 251 "ael.y"
+#line 250 "ael.y"
     {
                pval *z = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[0]));
                z->u1.str = (yyvsp[0].str);
@@ -2093,74 +2092,74 @@ yyreduce:
     break;
 
   case 28:
-#line 255 "ael.y"
+#line 254 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 29:
-#line 258 "ael.y"
+#line 257 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 30:
-#line 259 "ael.y"
+#line 258 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
   case 31:
-#line 262 "ael.y"
+#line 261 "ael.y"
     { (yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 32:
-#line 263 "ael.y"
+#line 262 "ael.y"
     {(yyval.pval)=0;;}
     break;
 
   case 33:
-#line 264 "ael.y"
+#line 263 "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 267 "ael.y"
+#line 266 "ael.y"
     { (yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 35:
-#line 270 "ael.y"
+#line 269 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 36:
-#line 271 "ael.y"
+#line 270 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 37:
-#line 272 "ael.y"
+#line 271 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 38:
-#line 273 "ael.y"
+#line 272 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 39:
-#line 274 "ael.y"
+#line 273 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 40:
-#line 275 "ael.y"
+#line 274 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 41:
-#line 275 "ael.y"
+#line 274 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2168,24 +2167,24 @@ yyreduce:
     break;
 
   case 42:
-#line 279 "ael.y"
+#line 278 "ael.y"
     {free((yyvsp[-1].str)); (yyval.pval)=0;;}
     break;
 
   case 43:
-#line 280 "ael.y"
+#line 279 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 44:
-#line 283 "ael.y"
+#line 282 "ael.y"
     {
                (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 45:
-#line 288 "ael.y"
+#line 287 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2193,7 +2192,7 @@ yyreduce:
     break;
 
   case 46:
-#line 292 "ael.y"
+#line 291 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2202,7 +2201,7 @@ yyreduce:
     break;
 
   case 47:
-#line 297 "ael.y"
+#line 296 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2211,7 +2210,7 @@ yyreduce:
     break;
 
   case 48:
-#line 302 "ael.y"
+#line 301 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2221,48 +2220,48 @@ yyreduce:
     break;
 
   case 49:
-#line 311 "ael.y"
+#line 310 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 50:
-#line 312 "ael.y"
+#line 311 "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 315 "ael.y"
+#line 314 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 52:
-#line 318 "ael.y"
+#line 317 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 53:
-#line 318 "ael.y"
+#line 317 "ael.y"
     {
                (yyval.pval)= npval2(PV_IF, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 54:
-#line 323 "ael.y"
+#line 322 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 55:
-#line 323 "ael.y"
+#line 322 "ael.y"
     {
                (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str=(yyvsp[-1].str);;}
     break;
 
   case 56:
-#line 329 "ael.y"
+#line 328 "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]));
@@ -2278,7 +2277,7 @@ yyreduce:
     break;
 
   case 57:
-#line 341 "ael.y"
+#line 340 "ael.y"
     {
                (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-9]), &(yylsp[-5])); /* XXX @5 or greater ? */
                (yyval.pval)->u1.list = nword((yyvsp[-7].str), &(yylsp[-7]));
@@ -2290,12 +2289,12 @@ yyreduce:
     break;
 
   case 58:
-#line 357 "ael.y"
+#line 356 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 59:
-#line 358 "ael.y"
+#line 357 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2304,12 +2303,12 @@ yyreduce:
     break;
 
   case 60:
-#line 365 "ael.y"
+#line 364 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 61:
-#line 366 "ael.y"
+#line 365 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2318,7 +2317,7 @@ yyreduce:
     break;
 
   case 62:
-#line 371 "ael.y"
+#line 370 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-2].str));
@@ -2328,12 +2327,12 @@ yyreduce:
     break;
 
   case 63:
-#line 379 "ael.y"
+#line 378 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 64:
-#line 380 "ael.y"
+#line 379 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2341,7 +2340,7 @@ yyreduce:
     break;
 
   case 65:
-#line 384 "ael.y"
+#line 383 "ael.y"
     {
                asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str));
                free((yyvsp[-2].str));
@@ -2349,31 +2348,31 @@ yyreduce:
     break;
 
   case 66:
-#line 390 "ael.y"
+#line 389 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 67:
-#line 390 "ael.y"
+#line 389 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCH, &(yylsp[-5]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
   case 68:
-#line 398 "ael.y"
+#line 397 "ael.y"
     {
                (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
   case 69:
-#line 401 "ael.y"
+#line 400 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 70:
-#line 401 "ael.y"
+#line 400 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2381,43 +2380,43 @@ yyreduce:
     break;
 
   case 71:
-#line 405 "ael.y"
+#line 404 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 72:
-#line 408 "ael.y"
+#line 407 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 73:
-#line 411 "ael.y"
+#line 410 "ael.y"
     {
                (yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 74:
-#line 414 "ael.y"
+#line 413 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 75:
-#line 415 "ael.y"
+#line 414 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 76:
-#line 416 "ael.y"
+#line 415 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 77:
-#line 416 "ael.y"
+#line 415 "ael.y"
     {
                (yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0]));
                (yyval.pval)->u1.for_init = (yyvsp[-8].str);
@@ -2427,12 +2426,12 @@ yyreduce:
     break;
 
   case 78:
-#line 422 "ael.y"
+#line 421 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 79:
-#line 422 "ael.y"
+#line 421 "ael.y"
     {
                (yyval.pval) = npval2(PV_WHILE, &(yylsp[-5]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2440,44 +2439,44 @@ yyreduce:
     break;
 
   case 80:
-#line 426 "ael.y"
+#line 425 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 81:
-#line 428 "ael.y"
+#line 427 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);;}
     break;
 
   case 82:
-#line 431 "ael.y"
+#line 430 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;}
     break;
 
   case 83:
-#line 433 "ael.y"
+#line 432 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 84:
-#line 435 "ael.y"
+#line 434 "ael.y"
     {
                (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 85:
-#line 438 "ael.y"
+#line 437 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 86:
-#line 438 "ael.y"
+#line 437 "ael.y"
     {
                char *bufx;
                int tot=0;
@@ -2492,7 +2491,7 @@ yyreduce:
                        tot++; /* for a sep like a comma */
                }
                tot+=4; /* for safety */
-               bufx = ast_calloc(1, tot);
+               bufx = calloc(1, tot);
                strcpy(bufx,(yyvsp[-4].pval)->u1.str);
                strcat(bufx,"(");
                /* XXX need to advance the pointer or the loop is very inefficient */
@@ -2514,22 +2513,22 @@ yyreduce:
     break;
 
   case 87:
-#line 471 "ael.y"
+#line 470 "ael.y"
     { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 88:
-#line 472 "ael.y"
+#line 471 "ael.y"
     { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 89:
-#line 473 "ael.y"
+#line 472 "ael.y"
     { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 90:
-#line 474 "ael.y"
+#line 473 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2537,7 +2536,7 @@ yyreduce:
     break;
 
   case 91:
-#line 478 "ael.y"
+#line 477 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2545,7 +2544,7 @@ yyreduce:
     break;
 
   case 92:
-#line 482 "ael.y"
+#line 481 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2553,41 +2552,41 @@ yyreduce:
     break;
 
   case 93:
-#line 486 "ael.y"
+#line 485 "ael.y"
     { (yyval.pval)=0; ;}
     break;
 
   case 94:
-#line 489 "ael.y"
+#line 488 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
   case 95:
-#line 490 "ael.y"
+#line 489 "ael.y"
     { (yyval.pval) = NULL ; ;}
     break;
 
   case 96:
-#line 495 "ael.y"
+#line 494 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 97:
-#line 496 "ael.y"
+#line 495 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 98:
-#line 499 "ael.y"
+#line 498 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 99:
-#line 502 "ael.y"
+#line 501 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2595,7 +2594,7 @@ yyreduce:
     break;
 
   case 100:
-#line 506 "ael.y"
+#line 505 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2603,7 +2602,7 @@ yyreduce:
     break;
 
   case 101:
-#line 510 "ael.y"
+#line 509 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2611,7 +2610,7 @@ yyreduce:
     break;
 
   case 102:
-#line 514 "ael.y"
+#line 513 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2619,21 +2618,21 @@ yyreduce:
     break;
 
   case 103:
-#line 521 "ael.y"
+#line 520 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
                (yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;}
     break;
 
   case 104:
-#line 524 "ael.y"
+#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 527 "ael.y"
+#line 526 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
                (yyval.pval)->u1.str = (yyvsp[0].str);  /* XXX must check this */
@@ -2644,7 +2643,7 @@ yyreduce:
     break;
 
   case 106:
-#line 534 "ael.y"
+#line 533 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
                (yyval.pval)->u1.str = (yyvsp[0].str);
@@ -2655,7 +2654,7 @@ yyreduce:
     break;
 
   case 107:
-#line 541 "ael.y"
+#line 540 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
                (yyval.pval)->u1.str = strdup("default");
@@ -2666,7 +2665,7 @@ yyreduce:
     break;
 
   case 108:
-#line 548 "ael.y"
+#line 547 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
                (yyval.pval)->u1.str = strdup("default");
@@ -2677,12 +2676,12 @@ yyreduce:
     break;
 
   case 109:
-#line 557 "ael.y"
+#line 556 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 110:
-#line 557 "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]));
@@ -2691,19 +2690,19 @@ yyreduce:
     break;
 
   case 111:
-#line 562 "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 570 "ael.y"
+#line 569 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 113:
-#line 570 "ael.y"
+#line 569 "ael.y"
     {
                if (strcasecmp((yyvsp[-2].str),"goto") == 0) {
                        (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[-1]));
@@ -2716,7 +2715,7 @@ yyreduce:
     break;
 
   case 114:
-#line 581 "ael.y"
+#line 580 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
                if( (yyval.pval)->type == PV_GOTO )
@@ -2727,34 +2726,34 @@ yyreduce:
     break;
 
   case 115:
-#line 588 "ael.y"
+#line 587 "ael.y"
     { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 116:
-#line 591 "ael.y"
+#line 590 "ael.y"
     { (yyval.str) = (yyvsp[0].str) ;}
     break;
 
   case 117:
-#line 592 "ael.y"
+#line 591 "ael.y"
     { (yyval.str) = strdup(""); ;}
     break;
 
   case 118:
-#line 595 "ael.y"
+#line 594 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 119:
-#line 596 "ael.y"
+#line 595 "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 599 "ael.y"
+#line 598 "ael.y"
     {
                pval *z = nword((yyvsp[0].str), &(yylsp[0]));
                (yyval.pval) = (yyvsp[-2].pval);
@@ -2762,19 +2761,19 @@ yyreduce:
     break;
 
   case 121:
-#line 605 "ael.y"
+#line 604 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 122:
-#line 606 "ael.y"
+#line 605 "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 611 "ael.y"
+#line 610 "ael.y"
     {
                (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2782,7 +2781,7 @@ yyreduce:
     break;
 
   case 124:
-#line 615 "ael.y"
+#line 614 "ael.y"
     {
                (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = NULL;
@@ -2790,7 +2789,7 @@ yyreduce:
     break;
 
   case 125:
-#line 619 "ael.y"
+#line 618 "ael.y"
     {
                (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2798,45 +2797,45 @@ yyreduce:
     break;
 
   case 126:
-#line 623 "ael.y"
+#line 622 "ael.y"
     {
                (yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 127:
-#line 626 "ael.y"
+#line 625 "ael.y"
     {
                (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = NULL;;}
     break;
 
   case 128:
-#line 629 "ael.y"
+#line 628 "ael.y"
     {
                (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 129:
-#line 634 "ael.y"
+#line 633 "ael.y"
     {(yyval.pval) = (yyvsp[0].pval);;}
     break;
 
   case 130:
-#line 635 "ael.y"
+#line 634 "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 131:
-#line 640 "ael.y"
+#line 639 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 132:
-#line 641 "ael.y"
+#line 640 "ael.y"
     {
                (yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-3].str);
@@ -2844,38 +2843,38 @@ yyreduce:
     break;
 
   case 133:
-#line 647 "ael.y"
+#line 646 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[0].pval); ;}
     break;
 
   case 134:
-#line 652 "ael.y"
+#line 651 "ael.y"
     {
                (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[0].pval); ;}
     break;
 
   case 135:
-#line 657 "ael.y"
+#line 656 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
   case 136:
-#line 658 "ael.y"
+#line 657 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 137:
-#line 661 "ael.y"
+#line 660 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 138:
-#line 664 "ael.y"
+#line 663 "ael.y"
     {
                pval *z = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0]));
                z->u1.str = (yyvsp[-1].str);
@@ -2884,19 +2883,19 @@ yyreduce:
     break;
 
   case 139:
-#line 669 "ael.y"
+#line 668 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 140:
-#line 672 "ael.y"
+#line 671 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 141:
-#line 676 "ael.y"
+#line 675 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-13]), &(yylsp[-12]));
                (yyval.pval)->u1.str = (yyvsp[-13].str);
@@ -2913,7 +2912,7 @@ yyreduce:
     break;
 
   case 142:
-#line 689 "ael.y"
+#line 688 "ael.y"
     {
                (yyval.pval) = npval2(PV_WORD, &(yylsp[-9]), &(yylsp[-8]));
                (yyval.pval)->u1.str = (yyvsp[-9].str);
@@ -2926,7 +2925,7 @@ yyreduce:
     break;
 
   case 143:
-#line 698 "ael.y"
+#line 697 "ael.y"
     {
                pval *z = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0])); /* XXX don't we need @1-@3 ?*/
                (yyval.pval)=(yyvsp[-2].pval);
@@ -2935,7 +2934,7 @@ yyreduce:
     break;
 
   case 144:
-#line 704 "ael.y"
+#line 703 "ael.y"
     {
                pval *z = npval2(PV_WORD, &(yylsp[-13]), &(yylsp[-12]));
                (yyval.pval)=(yyvsp[-14].pval); z->u1.str = (yyvsp[-13].str);
@@ -2953,7 +2952,7 @@ yyreduce:
     break;
 
   case 145:
-#line 718 "ael.y"
+#line 717 "ael.y"
     {
                pval *z = npval2(PV_WORD, &(yylsp[-9]), &(yylsp[-8]));
                (yyval.pval)=(yyvsp[-10].pval);
@@ -2969,29 +2968,29 @@ yyreduce:
     break;
 
   case 146:
-#line 730 "ael.y"
+#line 729 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 147:
-#line 733 "ael.y"
+#line 732 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 148:
-#line 734 "ael.y"
+#line 733 "ael.y"
     {(yyval.str)=strdup("default");;}
     break;
 
   case 149:
-#line 737 "ael.y"
+#line 736 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 150:
-#line 740 "ael.y"
+#line 739 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;}
     break;
@@ -3001,7 +3000,7 @@ yyreduce:
     }
 
 /* Line 1126 of yacc.c.  */
-#line 3005 "ael.tab.c"
+#line 3004 "ael.tab.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3276,7 +3275,7 @@ yyreturn:
 }
 
 
-#line 745 "ael.y"
+#line 744 "ael.y"
 
 
 static char *token_equivs1[] =
@@ -3379,7 +3378,7 @@ static char *ael_token_subst(char *mess)
                }
                len++;
        }
-       res = ast_calloc(1, len+1);
+       res = calloc(1, len+1);
        res[0] = 0;
        s = res;
        for (p=mess; *p;) {
@@ -3419,7 +3418,7 @@ static struct pval *npval(pvaltype type, int first_line, int last_line,
        int first_column, int last_column)
 {
        extern char *my_file;
-       pval *z = ast_calloc(1, sizeof(struct pval));
+       pval *z = calloc(1, sizeof(struct pval));
        z->type = type;
        z->startline = first_line;
        z->endline = last_line;
index 4c64dd7..60aff7d 100644 (file)
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 49 "ael.y"
+#line 48 "ael.y"
 typedef union YYSTYPE {
        int     intval;         /* integer value, typically flags */
        char    *str;           /* strings */
index 1ce724c..9b1984c 100644 (file)
@@ -25,7 +25,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include "asterisk/logger.h"
-#include "asterisk/utils.h"            /* ast_calloc() */
 #include "asterisk/ael_structs.h"
 
 static pval * linku1(pval *head, pval *tail);
@@ -449,7 +448,7 @@ statement : LC statements RC {
                        tot++; /* for a sep like a comma */
                }
                tot+=4; /* for safety */
-               bufx = ast_calloc(1, tot);
+               bufx = calloc(1, tot);
                strcpy(bufx,$1->u1.str);
                strcat(bufx,"(");
                /* XXX need to advance the pointer or the loop is very inefficient */
@@ -844,7 +843,7 @@ static char *ael_token_subst(char *mess)
                }
                len++;
        }
-       res = ast_calloc(1, len+1);
+       res = calloc(1, len+1);
        res[0] = 0;
        s = res;
        for (p=mess; *p;) {
@@ -884,7 +883,7 @@ static struct pval *npval(pvaltype type, int first_line, int last_line,
        int first_column, int last_column)
 {
        extern char *my_file;
-       pval *z = ast_calloc(1, sizeof(struct pval));
+       pval *z = calloc(1, sizeof(struct pval));
        z->type = type;
        z->startline = first_line;
        z->endline = last_line;
index a511f61..4e875e6 100644 (file)
 #include <regex.h>
 #include <limits.h>
 
-/* ast_copy_string */
-#define AST_API_MODULE
-#include "asterisk/strings.h"
-
-/* ensure that _ast_calloc works */
-#define AST_API_MODULE 
-#include "asterisk/utils.h"
-
 #include "asterisk/ast_expr.h"
 #include "asterisk/logger.h"
 #include "asterisk/module.h"
@@ -57,7 +49,6 @@ struct ast_app *pbx_findapp(const char *app);
 static int no_comp = 0;
 static int use_curr_dir = 0;
 
-
 struct ast_app *pbx_findapp(const char *app)
 {
        return (struct ast_app*)1; /* so as not to trigger an error */
@@ -258,42 +249,3 @@ int main(int argc, char **argv)
        
     return 0;
 }
-
-/*
- * XXX the code below is replicated here from utils.c, because
- * the #define AST_API_MODULE references functions that are
- * not available on all platforms.
- * We hit the problem with strndup (which in turn uses strnlen),
- * but it is possible that there are more of these issues.
- *
- * When utils.c is properly split and functions become available
- * through a library, this file will just link to the library and
- * the problem will go away together with the code below.
- */
-#ifndef HAVE_STRNLEN
-size_t strnlen(const char *s, size_t n)
-{
-        size_t len;   
-
-        for (len=0; len < n; len++)
-                if (s[len] == '\0')
-                        break;
-
-        return len;
-}
-#endif /* !HAVE_STRNLEN */
-
-#if !defined(HAVE_STRNDUP) && !defined(__AST_DEBUG_MALLOC)
-char *strndup(const char *s, size_t n)
-{
-        size_t len = strnlen(s, n);
-        char *new = malloc(len + 1);
-
-        if (!new)
-                return NULL;
-
-        new[len] = '\0';
-        return memcpy(new, s, len);
-}
-#endif /* !defined(HAVE_STRNDUP) && !defined(__AST_DEBUG_MALLOC) */
-