Merged revisions 177225 via svnmerge from
[asterisk/asterisk.git] / res / ael / ael.tab.c
index 330a68f..34900ac 100644 (file)
@@ -203,6 +203,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/ael_structs.h"
 #include "asterisk/utils.h"
 
+extern struct ast_flags ast_compat;
+
 pval * linku1(pval *head, pval *tail);
 static void set_dads(pval *dad, pval *child_list);
 void reset_parencount(yyscan_t yyscanner);
@@ -217,7 +219,6 @@ extern char *my_file;
 int ael_is_funcname(char *name);
 #endif
 static char *ael_token_subst(const char *mess);
-static int only_one_app_set_warning = 0;
 
 
 
@@ -241,14 +242,14 @@ static int only_one_app_set_warning = 0;
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 58 "ael.y"
+#line 59 "ael.y"
 {
        int     intval;         /* integer value, typically flags */
        char    *str;           /* strings */
        struct pval *pval;      /* full objects */
 }
 /* Line 187 of yacc.c.  */
-#line 252 "ael.tab.c"
+#line 253 "ael.tab.c"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -270,7 +271,7 @@ typedef struct YYLTYPE
 
 
 /* Copy the second part of user declarations.  */
-#line 64 "ael.y"
+#line 65 "ael.y"
 
        /* declaring these AFTER the union makes things a lot simpler! */
 void yyerror(YYLTYPE *locp, struct parse_io *parseio, char const *s);
@@ -293,7 +294,7 @@ static pval *update_last(pval *, YYLTYPE *);
 
 
 /* Line 216 of yacc.c.  */
-#line 297 "ael.tab.c"
+#line 298 "ael.tab.c"
 
 #ifdef short
 # undef short
@@ -510,7 +511,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  17
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   327
+#define YYLAST   373
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  44
@@ -519,7 +520,7 @@ union yyalloc
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  142
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  288
+#define YYNSTATES  281
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -593,17 +594,17 @@ static const yytype_int8 yyrhs[] =
       -1,    43,    -1,    37,    -1,    50,     3,    48,     4,    59,
        5,    -1,    23,    -1,    -1,    24,    -1,    24,    23,    -1,
       23,    24,    -1,    15,    43,     6,    58,     7,     4,    92,
-       5,    -1,    16,     4,    53,     5,    -1,    -1,    54,    53,
+       5,    -1,    16,     4,    53,     5,    -1,    -1,    53,    54,
       -1,     1,    53,    -1,    -1,    43,     9,    55,    43,     8,
       -1,    -1,    42,    43,     9,    57,    43,     8,    -1,    -1,
       43,    -1,    58,    10,    43,    -1,    58,     1,    -1,    -1,
-      60,    59,    -1,     1,    59,    -1,    62,    -1,    99,    -1,
+      59,    60,    -1,     1,    59,    -1,    62,    -1,    99,    -1,
       94,    -1,    95,    -1,    61,    -1,    54,    -1,    56,    -1,
       43,     1,    -1,     8,    -1,    17,    25,    43,     8,    -1,
       43,    25,    74,    -1,    43,    14,    43,    25,    74,    -1,
       31,    43,    25,    74,    -1,    32,     6,    70,     7,    43,
       25,    74,    -1,    31,    32,     6,    70,     7,    43,    25,
-      74,    -1,    -1,    74,    63,    -1,     1,    63,    -1,    71,
+      74,    -1,    -1,    63,    74,    -1,     1,    63,    -1,    71,
       11,    71,    11,    71,    -1,    43,    -1,    64,    13,    71,
       13,    71,    13,    71,    -1,    -1,     6,    67,    69,     7,
       -1,    19,    66,    -1,    22,    66,    -1,    20,     6,    65,
@@ -627,12 +628,12 @@ static const yytype_int8 yyrhs[] =
       84,    89,     7,    -1,    43,     6,     7,    -1,    -1,    43,
        6,    86,    -1,    85,    89,     7,    -1,    85,     7,    -1,
       43,    -1,    -1,    69,    -1,    -1,    89,    10,    88,    -1,
-      -1,    91,    90,    -1,    35,    43,    11,    63,    -1,    37,
-      11,    63,    -1,    36,    43,    11,    63,    -1,    -1,    93,
-      92,    -1,    74,    -1,    99,    -1,    38,    43,     4,    63,
+      -1,    90,    91,    -1,    35,    43,    11,    63,    -1,    37,
+      11,    63,    -1,    36,    43,    11,    63,    -1,    -1,    92,
+      93,    -1,    74,    -1,    99,    -1,    38,    43,     4,    63,
        5,    -1,    39,     4,    96,     5,    -1,    40,     4,    96,
-       5,    -1,    -1,    43,     8,    96,    -1,    43,    14,    43,
-       8,    96,    -1,     1,    96,    -1,    48,    -1,    48,    13,
+       5,    -1,    -1,    96,    43,     8,    -1,    96,    43,    14,
+      43,     8,    -1,     1,    96,    -1,    48,    -1,    48,    13,
       65,    -1,    97,     8,    -1,    98,    97,     8,    -1,    98,
        1,    -1,    41,     4,    98,     5,    -1,    41,     4,     5,
       -1
@@ -641,21 +642,21 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   190,   190,   193,   194,   195,   198,   199,   200,   201,
-     204,   205,   208,   217,   218,   219,   220,   221,   224,   230,
-     236,   237,   238,   241,   241,   251,   251,   258,   259,   260,
-     261,   264,   265,   266,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   280,   285,   289,   297,   302,   307,   316,
-     317,   318,   324,   329,   333,   341,   341,   345,   348,   351,
-     362,   363,   370,   371,   375,   379,   385,   386,   391,   399,
-     400,   404,   410,   419,   422,   423,   424,   427,   430,   433,
-     434,   435,   433,   441,   445,   446,   447,   448,   451,   451,
-     484,   485,   486,   487,   491,   494,   495,   498,   499,   502,
-     505,   509,   513,   517,   523,   524,   528,   531,   537,   537,
-     542,   550,   550,   561,   568,   571,   572,   575,   576,   579,
-     582,   583,   586,   590,   594,   600,   601,   604,   605,   606,
-     612,   617,   622,   623,   624,   626,   629,   630,   637,   638,
-     639,   642,   645
+       0,   191,   191,   194,   195,   196,   199,   200,   201,   202,
+     205,   206,   209,   218,   219,   220,   221,   222,   225,   231,
+     237,   238,   239,   242,   242,   248,   248,   255,   256,   257,
+     258,   261,   262,   263,   266,   267,   268,   269,   270,   271,
+     272,   273,   274,   277,   282,   286,   294,   299,   304,   313,
+     314,   315,   321,   331,   335,   343,   343,   347,   350,   353,
+     364,   365,   377,   378,   387,   396,   407,   408,   418,   431,
+     432,   441,   452,   461,   464,   465,   466,   469,   472,   475,
+     476,   477,   475,   483,   487,   488,   489,   490,   493,   493,
+     526,   527,   528,   529,   533,   536,   537,   540,   541,   544,
+     547,   551,   555,   559,   565,   566,   570,   573,   579,   579,
+     584,   592,   592,   603,   610,   613,   614,   617,   618,   621,
+     624,   625,   628,   632,   636,   642,   643,   646,   647,   648,
+     654,   659,   664,   665,   666,   677,   680,   681,   688,   689,
+     690,   693,   696
 };
 #endif
 
@@ -745,91 +746,91 @@ static const yytype_uint8 yydefact[] =
 {
       14,     9,     0,     0,    13,    15,     0,     0,     3,     6,
        0,     7,     8,     0,     0,    17,    16,     1,     5,     4,
-       0,    27,     0,     0,     0,     0,    11,    10,     0,    28,
-       0,    22,    23,    19,    21,     0,    30,     0,     0,     0,
-       0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
-      39,    40,     0,     0,    38,    34,    36,    37,    35,   125,
-      29,     0,    33,     0,     0,     0,     0,     0,     0,     0,
-       0,    41,     0,     0,    12,    32,     0,    94,     0,     0,
+       0,    27,     0,     0,    11,    10,     0,    28,     0,    22,
+      19,     0,    21,     0,    30,     0,     0,    23,     0,     0,
+     125,    29,     0,    33,    12,    42,     0,     0,     0,     0,
+       0,     0,     0,     0,    39,    40,    32,    38,    34,    36,
+      37,    35,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    41,     0,     0,     0,    18,    94,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    74,    75,     0,    84,   127,   118,     0,     0,
-     125,   128,    24,     0,     0,     0,    62,     0,     0,     0,
-       0,     0,   142,   136,     0,     0,    25,     0,    44,     0,
-       0,     0,     0,     0,    55,     0,    57,     0,    58,     0,
-      69,    97,     0,   104,     0,    91,    90,    92,    79,     0,
-       0,   111,    87,    78,    96,   114,    60,   117,     0,    86,
-      88,    18,   126,    43,     0,    46,     0,     0,     0,    63,
-     135,     0,     0,   130,   131,     0,   138,   140,   141,     0,
-       0,     0,    51,    73,    50,   108,    85,     0,   120,    53,
-       0,     0,     0,     0,     0,    70,     0,     0,     0,    76,
-       0,   106,    77,     0,    83,     0,   112,     0,    93,    61,
-     113,   116,     0,     0,     0,    64,    65,   133,     0,   137,
-     139,     0,    45,   110,   118,     0,     0,     0,     0,     0,
-     120,    67,     0,    59,     0,     0,     0,    99,    71,    98,
+       0,     0,    74,    75,     0,    84,   127,   118,     0,   126,
+     128,    24,     0,     0,     0,    62,     0,     0,     0,     0,
+     142,   136,     0,     0,    25,     0,    44,     0,     0,     0,
+       0,    55,     0,    57,     0,    58,     0,    69,    97,     0,
+     104,     0,    91,    90,    92,    79,     0,     0,   111,    87,
+      78,    96,   114,    60,   117,     0,    86,    88,    43,     0,
+      46,     0,     0,     0,    63,   135,   130,     0,   131,     0,
+     138,   140,   141,     0,     0,     0,    51,    73,    50,   108,
+      85,     0,   120,    53,     0,     0,     0,     0,     0,    70,
+       0,     0,     0,    76,     0,   106,    77,     0,    83,     0,
+     112,     0,    93,    61,   113,   116,     0,     0,     0,    64,
+      65,   133,     0,   137,   139,     0,    45,   110,   118,     0,
+       0,    67,     0,    59,     0,     0,     0,    99,    71,    98,
      105,     0,     0,     0,    95,   115,   119,     0,     0,     0,
-       0,    26,     0,    56,     0,     0,     0,    72,   121,    68,
+       0,    26,     0,    56,    72,     0,     0,     0,   121,    68,
       66,     0,     0,     0,     0,     0,     0,   107,    80,   129,
-      89,     0,    47,   134,   109,     0,     0,   123,     0,     0,
-     103,   102,   101,   100,     0,    48,   122,   124,     0,    52,
-       0,     0,    81,    54,     0,     0,     0,    82
+      89,     0,    47,   134,   109,     0,     0,     0,     0,     0,
+     103,   102,   101,   100,     0,    48,     0,     0,   123,     0,
+      52,     0,   122,   124,     0,    81,    54,     0,     0,     0,
+      82
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     6,     7,     8,   113,     9,    10,    11,    12,    24,
-      92,    39,    93,   170,    30,    52,    53,    54,    55,   120,
-     180,   181,   125,   177,    94,   147,   107,   182,   131,    95,
-     121,   193,   274,   284,   202,   198,   132,   191,   134,   123,
-     214,    97,   196,    98,   236,   148,   219,   220,    99,   100,
-      56,    57,   110,   114,   115,    58
+      -1,     6,     7,     8,   111,     9,    10,    11,    12,    23,
+      92,    42,    93,   164,    28,    39,    56,    57,    58,   118,
+     174,   175,   122,   171,    94,   144,   106,   176,   128,    95,
+     168,   187,   264,   277,   196,   192,   129,   185,   131,   120,
+     208,    97,   190,    98,   226,   145,   210,   238,    62,    99,
+      59,    60,   108,   112,   113,    61
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -219
+#define YYPACT_NINF -209
 static const yytype_int16 yypact[] =
 {
-     102,  -219,   -25,    40,    24,    29,    70,   249,  -219,  -219,
-      74,  -219,  -219,   107,    11,  -219,  -219,  -219,  -219,  -219,
-      -6,    65,    11,   137,   148,    11,  -219,  -219,   152,  -219,
-      87,  -219,  -219,  -219,  -219,   123,  -219,   173,   126,   136,
-     123,  -219,   159,   -11,   186,   190,   194,   196,   158,    86,
-    -219,  -219,   203,   123,  -219,  -219,  -219,  -219,  -219,   177,
-    -219,   201,  -219,   170,   208,   191,   179,    12,    12,    19,
-     214,  -219,   181,   213,  -219,  -219,   115,  -219,   183,   222,
-     222,   223,   222,    36,   187,   226,   228,   229,   232,   222,
-     202,   182,  -219,  -219,   213,  -219,  -219,    16,   113,   239,
-     177,  -219,  -219,   240,   179,   213,  -219,    22,    12,   101,
-     246,   248,  -219,   241,   250,    10,  -219,   234,  -219,    56,
-     255,    56,   256,   253,  -219,   259,  -219,   224,  -219,    26,
-     225,   157,   258,   119,   261,  -219,  -219,  -219,  -219,   213,
-     266,  -219,  -219,  -219,   254,  -219,   231,  -219,    59,  -219,
-    -219,  -219,  -219,  -219,    60,  -219,   233,   235,   236,  -219,
-    -219,    12,   237,  -219,  -219,   224,  -219,  -219,  -219,   263,
-     238,   213,  -219,  -219,  -219,   270,  -219,   242,   124,    -1,
-     269,   276,   273,   187,   187,  -219,   187,   243,   187,  -219,
-     244,   274,  -219,   247,  -219,   115,  -219,   213,  -219,  -219,
-    -219,   251,   252,   257,   264,  -219,  -219,  -219,   283,  -219,
-    -219,   284,  -219,  -219,   242,   286,   260,   262,   285,   292,
-     124,   265,   267,  -219,   267,   172,    15,   176,  -219,   165,
-    -219,    -6,   290,   294,  -219,  -219,  -219,   293,   277,   213,
-      12,  -219,   129,  -219,   295,   296,    56,  -219,  -219,  -219,
-     268,   291,   298,   187,   187,   187,   187,  -219,  -219,  -219,
-    -219,   213,  -219,  -219,  -219,    56,    56,  -219,   267,   267,
-     301,   301,   301,   301,   271,  -219,  -219,  -219,   300,  -219,
-     307,   267,  -219,  -219,   275,   309,   213,  -219
+     262,  -209,   -32,    21,     5,    13,    69,   296,  -209,  -209,
+     112,  -209,  -209,   115,    14,  -209,  -209,  -209,  -209,  -209,
+     -29,    85,    14,     0,  -209,  -209,   129,  -209,   116,    92,
+    -209,   140,  -209,   105,  -209,   147,   125,  -209,   105,    99,
+    -209,  -209,   132,   252,  -209,  -209,   163,   -25,   159,   182,
+     186,   197,   162,   242,  -209,  -209,  -209,  -209,  -209,  -209,
+    -209,  -209,   165,   201,   170,   222,   204,   187,    16,    16,
+      68,   223,  -209,   190,   246,    59,  -209,  -209,   193,   234,
+     234,   236,   234,   -27,   212,   249,   251,   255,   238,   234,
+     228,   292,  -209,  -209,   246,  -209,  -209,    15,   146,  -209,
+    -209,  -209,   273,   187,   246,  -209,   107,    16,    25,    29,
+    -209,   269,   279,    39,  -209,   265,  -209,    19,   192,   299,
+     294,  -209,   302,  -209,   264,  -209,    70,   266,   161,   300,
+     168,   305,  -209,  -209,  -209,  -209,   246,   306,  -209,  -209,
+    -209,   293,  -209,   272,  -209,    84,  -209,  -209,  -209,   113,
+    -209,   274,   275,   278,  -209,   280,  -209,    76,  -209,   264,
+    -209,  -209,  -209,   308,   281,   246,   246,  -209,  -209,   315,
+    -209,   282,  -209,    22,   313,   320,   317,   212,   212,  -209,
+     212,   286,   212,  -209,   287,   318,  -209,   288,  -209,    59,
+    -209,   246,  -209,  -209,  -209,   290,   291,   295,   310,  -209,
+    -209,  -209,   297,  -209,  -209,   328,  -209,  -209,   282,   330,
+     122,   298,   301,  -209,   301,   171,    86,   205,  -209,   121,
+    -209,   -29,   331,   219,  -209,  -209,  -209,   334,   321,   246,
+     335,  -209,   102,  -209,  -209,   304,   307,   337,  -209,  -209,
+     309,   332,   338,   212,   212,   212,   212,  -209,  -209,  -209,
+    -209,   246,  -209,  -209,  -209,   340,   342,    19,   301,   301,
+     343,   343,   343,   343,   312,  -209,    19,    19,   246,   344,
+    -209,   348,   246,   246,   301,  -209,  -209,   316,   351,   246,
+    -209
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -219,  -219,  -219,   310,   -19,  -219,  -219,  -219,  -219,   125,
-       5,  -219,   -15,  -219,  -219,   -31,  -219,  -219,  -219,  -114,
-    -219,   154,    25,  -219,  -219,   143,   217,  -218,   -82,  -219,
-     -59,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,
-    -219,  -219,  -219,  -219,  -219,   108,   103,  -219,   227,  -219,
-    -219,  -219,   -65,   209,  -219,   -51
+    -209,  -209,  -209,   353,   -19,  -209,  -209,  -209,  -209,   339,
+     137,  -209,   -30,  -209,  -209,   324,  -209,  -209,  -209,  -114,
+    -209,   206,   -54,  -209,  -209,   195,   260,  -208,   -82,  -209,
+     -62,  -209,  -209,  -209,  -209,  -209,  -209,  -209,  -209,  -209,
+    -209,  -209,  -209,  -209,  -209,   156,  -209,  -209,  -209,  -209,
+    -209,  -209,     1,   254,  -209,   311
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -839,76 +840,86 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -133
 static const yytype_int16 yytable[] =
 {
-      96,    28,   133,   111,   251,   172,   252,   174,   101,    62,
-     -66,   167,    22,   108,   118,   168,   -20,  -132,    13,    25,
-      51,    64,    75,   145,   112,    51,   187,    25,   254,   156,
-      25,    26,    65,   157,   158,   144,   183,    27,    51,   184,
-      50,    96,   221,   160,    14,    50,   155,    26,    15,   101,
-     278,   279,    16,    27,    23,   109,    26,   119,    50,   146,
-      76,   -49,    27,   283,    77,   159,   200,   203,    78,   201,
-      17,   157,   158,   129,    79,    80,    81,    20,    82,   130,
-     194,   233,    83,    84,    85,    86,    87,    71,    36,    88,
-      89,   -49,   -49,   -49,    37,    32,   207,    38,    48,    91,
-      72,   225,   226,   159,   227,   126,   229,   128,    29,   161,
-       1,    73,   212,    21,   139,   162,   119,     2,     3,    76,
-     -49,   149,   150,    77,    40,     4,     5,    78,   -31,   190,
-     187,    41,   267,    79,    80,    81,   264,    82,   234,   201,
-      42,    83,    84,    85,    86,    87,    32,    31,    88,    89,
-      34,   276,   277,    33,    43,    44,    35,    48,    91,   216,
-     217,   218,    45,    46,    47,    48,    49,   186,   187,    60,
-     188,   270,   271,   272,   273,   263,   187,    59,   256,    61,
-     262,    76,   253,   187,    63,    77,   255,   187,   141,    78,
-     142,    32,    66,   143,    67,    79,    80,    81,    68,    82,
-      69,    70,   275,    83,    84,    85,    86,    87,    74,   102,
-      88,    89,   257,   103,   104,    90,   105,    76,    47,    48,
-      91,    77,   106,   116,   117,    78,   122,   287,   124,   127,
-     130,    79,    80,    81,   135,    82,   136,   137,   138,    83,
-      84,    85,    86,    87,   151,   140,    88,    89,   153,    -2,
-      18,   163,   -14,   164,   165,    48,    91,     1,   166,   171,
-     173,   176,   175,   178,     2,     3,   189,   179,   185,   192,
-     195,   210,     4,     5,   199,   197,   204,   213,   205,   206,
-     208,   211,   222,   223,   224,   146,   228,   230,   231,   239,
-     232,   240,   241,   243,   235,   237,   246,   247,   258,   259,
-     238,   260,   261,   244,   268,   245,   265,   266,   249,   269,
-     250,   221,   187,   281,   280,   282,   286,    19,   285,   209,
-     215,   154,   242,   248,   169,     0,     0,   152
+      96,    26,   130,   166,   241,    30,   242,    65,    24,    55,
+     126,    13,   116,    55,    25,    22,   127,   107,    66,   -20,
+     117,  -132,   142,   -49,   -49,    14,   123,   -49,   125,    15,
+     156,   -49,   141,   -66,   158,   136,    16,   -49,   -49,   -49,
+     161,   -49,   150,    31,   162,   -49,   -49,   -49,   -49,   -49,
+     269,   270,   -49,   -49,   -49,   -49,   -49,   -20,   143,  -132,
+     117,   -49,   -49,   -49,   -49,   211,   276,   -49,   157,    17,
+     109,   -49,   157,   110,   188,   223,    24,   -49,   -49,   -49,
+     177,   -49,    25,   178,   201,   -49,   -49,   -49,   -49,   -49,
+     202,   194,   -49,   -49,   195,   215,   216,   181,   217,   244,
+     219,   -49,   -49,   206,    44,    24,    38,    45,   155,   254,
+     -31,    25,   195,   -31,   151,    20,    46,    34,   152,   153,
+     197,    21,   -31,    35,   152,   153,    36,   234,    27,   224,
+      47,    48,   181,    33,   246,    31,   -31,   -31,    49,    50,
+      51,    52,    53,   268,   -31,   -31,   -31,   -31,   -31,    37,
+     154,    40,   272,   273,   146,   147,   154,   235,   236,   237,
+      32,   260,   261,   262,   263,    67,    32,   252,    41,    75,
+      76,   180,   181,    77,   182,    63,    54,    78,   184,   181,
+      54,   243,   181,    79,    80,    81,    68,    82,    64,   265,
+      69,    83,    84,    85,    86,    87,    75,   167,    88,    89,
+      77,    70,   247,    90,    78,    71,    51,    52,    91,   101,
+      79,    80,    81,   102,    82,   245,   181,   280,    83,    84,
+      85,    86,    87,    75,   249,    88,    89,    77,   103,   104,
+     105,    78,   114,   115,    52,    91,   119,    79,    80,    81,
+     121,    82,   124,    72,   135,    83,    84,    85,    86,    87,
+      75,    37,    88,    89,    77,   127,    73,   132,    78,   133,
+      45,    52,    91,   134,    79,    80,    81,    74,    82,    46,
+       1,   137,    83,    84,    85,    86,    87,     2,     3,    88,
+      89,   148,   159,    47,    48,     4,     5,   160,    52,    91,
+     165,    49,    50,    51,    52,    53,    -2,    18,   138,   -14,
+     139,    37,   170,   140,     1,   169,   172,   173,   183,   179,
+     189,     2,     3,   186,   191,   193,   204,   198,   199,     4,
+       5,   200,   207,   157,   205,   143,   212,   213,   214,   218,
+     220,   222,   221,   225,   227,   229,   231,   233,   228,   248,
+     230,   239,   250,   253,   240,   258,   251,   255,   257,   259,
+     256,   266,   211,   267,   181,   271,   275,   274,   279,   278,
+      19,    29,    43,   149,   232,   203,   209,   163,     0,     0,
+       0,     0,     0,   100
 };
 
 static const yytype_int16 yycheck[] =
 {
-      59,    20,    84,    68,   222,   119,   224,   121,    59,    40,
-      11,     1,     1,     1,    73,     5,     5,     5,    43,    14,
-      35,    32,    53,     7,     5,    40,    11,    22,    13,     7,
-      25,    37,    43,    11,    12,    94,    10,    43,    53,    13,
-      35,   100,    43,   108,     4,    40,   105,    37,    24,   100,
-     268,   269,    23,    43,    43,    43,    37,     1,    53,    43,
-       4,     5,    43,   281,     8,    43,     7,     7,    12,    10,
-       0,    11,    12,    37,    18,    19,    20,     3,    22,    43,
-     139,   195,    26,    27,    28,    29,    30,     1,     1,    33,
-      34,    35,    36,    37,     7,     9,   161,    10,    42,    43,
-      14,   183,   184,    43,   186,    80,   188,    82,    43,     8,
-       8,    25,   171,     6,    89,    14,     1,    15,    16,     4,
-       5,     8,     9,     8,     1,    23,    24,    12,     5,    10,
-      11,     8,   246,    18,    19,    20,     7,    22,   197,    10,
-      17,    26,    27,    28,    29,    30,     9,    22,    33,    34,
-      25,   265,   266,     5,    31,    32,     4,    42,    43,    35,
-      36,    37,    39,    40,    41,    42,    43,    10,    11,    43,
-      13,   253,   254,   255,   256,   240,    11,     4,    13,    43,
-     239,     4,    10,    11,    25,     8,    10,    11,     6,    12,
-       8,     9,     6,    11,     4,    18,    19,    20,     4,    22,
-       4,    43,   261,    26,    27,    28,    29,    30,     5,     8,
-      33,    34,   231,    43,     6,    38,    25,     4,    41,    42,
-      43,     8,    43,     9,    43,    12,    43,   286,     6,     6,
-      43,    18,    19,    20,     8,    22,     8,     8,     6,    26,
-      27,    28,    29,    30,     5,    43,    33,    34,     8,     0,
-       1,     5,     3,     5,    13,    42,    43,     8,     8,    25,
-       5,     8,     6,     4,    15,    16,     8,    43,    43,     8,
-       4,     8,    23,    24,    43,    21,    43,     7,    43,    43,
-      43,    43,    13,     7,    11,    43,    43,    43,    14,    25,
-      43,     8,     8,     7,    43,    43,    11,     5,     8,     5,
-      43,     8,    25,    43,    13,    43,    11,    11,    43,    11,
-      43,    43,    11,    13,    43,     8,     7,     7,    43,   165,
-     177,   104,   214,   220,   115,    -1,    -1,   100
+      62,    20,    84,   117,   212,     5,   214,    32,    37,    39,
+      37,    43,    74,    43,    43,     1,    43,     1,    43,     5,
+       1,     5,     7,     4,     5,     4,    80,     8,    82,    24,
+       5,    12,    94,    11,     5,    89,    23,    18,    19,    20,
+       1,    22,   104,    43,     5,    26,    27,    28,    29,    30,
+     258,   259,    33,    34,    35,    36,    37,    43,    43,    43,
+       1,    42,    43,     4,     5,    43,   274,     8,    43,     0,
+      69,    12,    43,     5,   136,   189,    37,    18,    19,    20,
+      10,    22,    43,    13,     8,    26,    27,    28,    29,    30,
+      14,     7,    33,    34,    10,   177,   178,    11,   180,    13,
+     182,    42,    43,   165,     5,    37,     1,     8,   107,     7,
+       5,    43,    10,     8,     7,     3,    17,     1,    11,    12,
+       7,     6,    17,     7,    11,    12,    10,     5,    43,   191,
+      31,    32,    11,     4,    13,    43,    31,    32,    39,    40,
+      41,    42,    43,   257,    39,    40,    41,    42,    43,     9,
+      43,     4,   266,   267,     8,     9,    43,    35,    36,    37,
+      23,   243,   244,   245,   246,     6,    29,   229,    43,     4,
+       5,    10,    11,     8,    13,    43,    39,    12,    10,    11,
+      43,    10,    11,    18,    19,    20,     4,    22,    25,   251,
+       4,    26,    27,    28,    29,    30,     4,     5,    33,    34,
+       8,     4,   221,    38,    12,    43,    41,    42,    43,     8,
+      18,    19,    20,    43,    22,    10,    11,   279,    26,    27,
+      28,    29,    30,     4,     5,    33,    34,     8,     6,    25,
+      43,    12,     9,    43,    42,    43,    43,    18,    19,    20,
+       6,    22,     6,     1,     6,    26,    27,    28,    29,    30,
+       4,     9,    33,    34,     8,    43,    14,     8,    12,     8,
+       8,    42,    43,     8,    18,    19,    20,    25,    22,    17,
+       8,    43,    26,    27,    28,    29,    30,    15,    16,    33,
+      34,     8,    13,    31,    32,    23,    24,     8,    42,    43,
+      25,    39,    40,    41,    42,    43,     0,     1,     6,     3,
+       8,     9,     8,    11,     8,     6,     4,    43,     8,    43,
+       4,    15,    16,     8,    21,    43,     8,    43,    43,    23,
+      24,    43,     7,    43,    43,    43,    13,     7,    11,    43,
+      43,    43,    14,    43,    43,    25,     8,     7,    43,     8,
+      43,    43,     8,     8,    43,    13,    25,    43,    11,    11,
+      43,    11,    43,    11,    11,    43,     8,    13,     7,    43,
+       7,    22,    38,   103,   208,   159,   171,   113,    -1,    -1,
+      -1,    -1,    -1,    62
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -917,33 +928,33 @@ static const yytype_uint8 yystos[] =
 {
        0,     8,    15,    16,    23,    24,    45,    46,    47,    49,
       50,    51,    52,    43,     4,    24,    23,     0,     1,    47,
-       3,     6,     1,    43,    53,    54,    37,    43,    48,    43,
-      58,    53,     9,     5,    53,     4,     1,     7,    10,    55,
-       1,     8,    17,    31,    32,    39,    40,    41,    42,    43,
-      54,    56,    59,    60,    61,    62,    94,    95,    99,     4,
-      43,    43,    59,    25,    32,    43,     6,     4,     4,     4,
-      43,     1,    14,    25,     5,    59,     4,     8,    12,    18,
+       3,     6,     1,    53,    37,    43,    48,    43,    58,    53,
+       5,    43,    54,     4,     1,     7,    10,     9,     1,    59,
+       4,    43,    55,    59,     5,     8,    17,    31,    32,    39,
+      40,    41,    42,    43,    54,    56,    60,    61,    62,    94,
+      95,    99,    92,    43,    25,    32,    43,     6,     4,     4,
+       4,    43,     1,    14,    25,     4,     5,     8,    12,    18,
       19,    20,    22,    26,    27,    28,    29,    30,    33,    34,
-      38,    43,    54,    56,    68,    73,    74,    85,    87,    92,
-      93,    99,     8,    43,     6,    25,    43,    70,     1,    43,
-      96,    96,     5,    48,    97,    98,     9,    43,    74,     1,
-      63,    74,    43,    83,     6,    66,    66,     6,    66,    37,
-      43,    72,    80,    72,    82,     8,     8,     8,     6,    66,
-      43,     6,     8,    11,    74,     7,    43,    69,    89,     8,
-       9,     5,    92,     8,    70,    74,     7,    11,    12,    43,
-      96,     8,    14,     5,     5,    13,     8,     1,     5,    97,
-      57,    25,    63,     5,    63,     6,     8,    67,     4,    43,
-      64,    65,    71,    10,    13,    43,    10,    11,    13,     8,
-      10,    81,     8,    75,    74,     4,    86,    21,    79,    43,
-       7,    10,    78,     7,    43,    43,    43,    96,    43,    65,
-       8,    43,    74,     7,    84,    69,    35,    36,    37,    90,
-      91,    43,    13,     7,    11,    72,    72,    72,    43,    72,
+      38,    43,    54,    56,    68,    73,    74,    85,    87,    93,
+      99,     8,    43,     6,    25,    43,    70,     1,    96,    96,
+       5,    48,    97,    98,     9,    43,    74,     1,    63,    43,
+      83,     6,    66,    66,     6,    66,    37,    43,    72,    80,
+      72,    82,     8,     8,     8,     6,    66,    43,     6,     8,
+      11,    74,     7,    43,    69,    89,     8,     9,     8,    70,
+      74,     7,    11,    12,    43,    96,     5,    43,     5,    13,
+       8,     1,     5,    97,    57,    25,    63,     5,    74,     6,
+       8,    67,     4,    43,    64,    65,    71,    10,    13,    43,
+      10,    11,    13,     8,    10,    81,     8,    75,    74,     4,
+      86,    21,    79,    43,     7,    10,    78,     7,    43,    43,
+      43,     8,    14,    65,     8,    43,    74,     7,    84,    69,
+      90,    43,    13,     7,    11,    72,    72,    72,    43,    72,
       43,    14,    43,    63,    74,    43,    88,    43,    43,    25,
-       8,     8,    89,     7,    43,    43,    11,     5,    90,    43,
+      43,     8,    89,     7,     5,    35,    36,    37,    91,    43,
       43,    71,    71,    10,    13,    10,    13,    48,     8,     5,
-       8,    25,    74,    96,     7,    11,    11,    63,    13,    11,
-      72,    72,    72,    72,    76,    74,    63,    63,    71,    71,
-      43,    13,     8,    71,    77,    43,     7,    74
+       8,    25,    74,     8,     7,    43,    43,    11,    13,    11,
+      72,    72,    72,    72,    76,    74,    11,    11,    63,    71,
+      71,    43,    63,    63,    13,     8,    71,    77,    43,     7,
+      74
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1466,329 +1477,329 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
   switch (yytype)
     {
       case 43: /* "word" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1472 "ael.tab.c"
+#line 1483 "ael.tab.c"
        break;
       case 46: /* "objects" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1480 "ael.tab.c"
+#line 1491 "ael.tab.c"
        break;
       case 47: /* "object" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1488 "ael.tab.c"
+#line 1499 "ael.tab.c"
        break;
       case 48: /* "context_name" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1493 "ael.tab.c"
+#line 1504 "ael.tab.c"
        break;
       case 49: /* "context" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1501 "ael.tab.c"
+#line 1512 "ael.tab.c"
        break;
       case 51: /* "macro" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1509 "ael.tab.c"
+#line 1520 "ael.tab.c"
        break;
       case 52: /* "globals" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1517 "ael.tab.c"
+#line 1528 "ael.tab.c"
        break;
       case 53: /* "global_statements" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1525 "ael.tab.c"
+#line 1536 "ael.tab.c"
        break;
       case 54: /* "assignment" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1533 "ael.tab.c"
+#line 1544 "ael.tab.c"
        break;
       case 56: /* "local_assignment" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1541 "ael.tab.c"
+#line 1552 "ael.tab.c"
        break;
       case 58: /* "arglist" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1549 "ael.tab.c"
+#line 1560 "ael.tab.c"
        break;
       case 59: /* "elements" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1557 "ael.tab.c"
+#line 1568 "ael.tab.c"
        break;
       case 60: /* "element" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1565 "ael.tab.c"
+#line 1576 "ael.tab.c"
        break;
       case 61: /* "ignorepat" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1573 "ael.tab.c"
+#line 1584 "ael.tab.c"
        break;
       case 62: /* "extension" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1581 "ael.tab.c"
+#line 1592 "ael.tab.c"
        break;
       case 63: /* "statements" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1589 "ael.tab.c"
+#line 1600 "ael.tab.c"
        break;
       case 64: /* "timerange" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1594 "ael.tab.c"
+#line 1605 "ael.tab.c"
        break;
       case 65: /* "timespec" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1602 "ael.tab.c"
+#line 1613 "ael.tab.c"
        break;
       case 66: /* "test_expr" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1607 "ael.tab.c"
+#line 1618 "ael.tab.c"
        break;
       case 68: /* "if_like_head" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1615 "ael.tab.c"
+#line 1626 "ael.tab.c"
        break;
       case 69: /* "word_list" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1620 "ael.tab.c"
+#line 1631 "ael.tab.c"
        break;
       case 71: /* "word3_list" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1625 "ael.tab.c"
+#line 1636 "ael.tab.c"
        break;
       case 72: /* "goto_word" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1630 "ael.tab.c"
+#line 1641 "ael.tab.c"
        break;
       case 73: /* "switch_statement" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1638 "ael.tab.c"
+#line 1649 "ael.tab.c"
        break;
       case 74: /* "statement" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1646 "ael.tab.c"
+#line 1657 "ael.tab.c"
        break;
       case 79: /* "opt_else" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1654 "ael.tab.c"
+#line 1665 "ael.tab.c"
        break;
       case 80: /* "target" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1662 "ael.tab.c"
+#line 1673 "ael.tab.c"
        break;
       case 81: /* "opt_pri" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1667 "ael.tab.c"
+#line 1678 "ael.tab.c"
        break;
       case 82: /* "jumptarget" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1675 "ael.tab.c"
+#line 1686 "ael.tab.c"
        break;
       case 83: /* "macro_call" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1683 "ael.tab.c"
+#line 1694 "ael.tab.c"
        break;
       case 85: /* "application_call_head" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1691 "ael.tab.c"
+#line 1702 "ael.tab.c"
        break;
       case 87: /* "application_call" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1699 "ael.tab.c"
+#line 1710 "ael.tab.c"
        break;
       case 88: /* "opt_word" */
-#line 182 "ael.y"
+#line 183 "ael.y"
        { free((yyvaluep->str));};
-#line 1704 "ael.tab.c"
+#line 1715 "ael.tab.c"
        break;
       case 89: /* "eval_arglist" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1712 "ael.tab.c"
+#line 1723 "ael.tab.c"
        break;
       case 90: /* "case_statements" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1720 "ael.tab.c"
+#line 1731 "ael.tab.c"
        break;
       case 91: /* "case_statement" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1728 "ael.tab.c"
+#line 1739 "ael.tab.c"
        break;
       case 92: /* "macro_statements" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1736 "ael.tab.c"
+#line 1747 "ael.tab.c"
        break;
       case 93: /* "macro_statement" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1744 "ael.tab.c"
+#line 1755 "ael.tab.c"
        break;
       case 94: /* "switches" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1752 "ael.tab.c"
+#line 1763 "ael.tab.c"
        break;
       case 95: /* "eswitches" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1760 "ael.tab.c"
+#line 1771 "ael.tab.c"
        break;
       case 96: /* "switchlist" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1768 "ael.tab.c"
+#line 1779 "ael.tab.c"
        break;
       case 97: /* "included_entry" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1776 "ael.tab.c"
+#line 1787 "ael.tab.c"
        break;
       case 98: /* "includeslist" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1784 "ael.tab.c"
+#line 1795 "ael.tab.c"
        break;
       case 99: /* "includes" */
-#line 169 "ael.y"
+#line 170 "ael.y"
        {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1792 "ael.tab.c"
+#line 1803 "ael.tab.c"
        break;
 
       default:
@@ -2111,57 +2122,57 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 190 "ael.y"
+#line 191 "ael.y"
     { (yyval.pval) = parseio->pval = (yyvsp[(1) - (1)].pval); ;}
     break;
 
   case 3:
-#line 193 "ael.y"
+#line 194 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 4:
-#line 194 "ael.y"
+#line 195 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 5:
-#line 195 "ael.y"
+#line 196 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
     break;
 
   case 6:
-#line 198 "ael.y"
+#line 199 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 7:
-#line 199 "ael.y"
+#line 200 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 8:
-#line 200 "ael.y"
+#line 201 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 9:
-#line 201 "ael.y"
+#line 202 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 10:
-#line 204 "ael.y"
+#line 205 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
     break;
 
   case 11:
-#line 205 "ael.y"
+#line 206 "ael.y"
     { (yyval.str) = strdup("default"); ;}
     break;
 
   case 12:
-#line 208 "ael.y"
+#line 209 "ael.y"
     {
                (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
                (yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
@@ -2171,32 +2182,32 @@ yyreduce:
     break;
 
   case 13:
-#line 217 "ael.y"
+#line 218 "ael.y"
     { (yyval.intval) = 1; ;}
     break;
 
   case 14:
-#line 218 "ael.y"
+#line 219 "ael.y"
     { (yyval.intval) = 0; ;}
     break;
 
   case 15:
-#line 219 "ael.y"
+#line 220 "ael.y"
     { (yyval.intval) = 2; ;}
     break;
 
   case 16:
-#line 220 "ael.y"
+#line 221 "ael.y"
     { (yyval.intval)=3; ;}
     break;
 
   case 17:
-#line 221 "ael.y"
+#line 222 "ael.y"
     { (yyval.intval)=3; ;}
     break;
 
   case 18:
-#line 224 "ael.y"
+#line 225 "ael.y"
     {
                (yyval.pval) = npval2(PV_MACRO, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (8)].str); (yyval.pval)->u2.arglist = (yyvsp[(4) - (8)].pval); (yyval.pval)->u3.macro_statements = (yyvsp[(7) - (8)].pval);
@@ -2204,7 +2215,7 @@ yyreduce:
     break;
 
   case 19:
-#line 230 "ael.y"
+#line 231 "ael.y"
     {
                (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
                (yyval.pval)->u1.statements = (yyvsp[(3) - (4)].pval);
@@ -2212,44 +2223,40 @@ yyreduce:
     break;
 
   case 20:
-#line 236 "ael.y"
+#line 237 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 21:
-#line 237 "ael.y"
+#line 238 "ael.y"
     {(yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 22:
-#line 238 "ael.y"
+#line 239 "ael.y"
     {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
     break;
 
   case 23:
-#line 241 "ael.y"
+#line 242 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 24:
-#line 241 "ael.y"
+#line 242 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
-               if (!ast_compat_app_set && !only_one_app_set_warning && strchr((yyvsp[(4) - (5)].str),'"')) {
-                       ast_log(LOG_NOTICE,"Note: In asterisk.conf, in the [compat] section, the app_set is set to 1.6 or greater. The Set() function no longer removes double quotes from the value. If this is a surprise to you, you can set app_set to 1.4.\n");
-                       only_one_app_set_warning = 1;
-               }
                (yyval.pval)->u1.str = (yyvsp[(1) - (5)].str);
                (yyval.pval)->u2.val = (yyvsp[(4) - (5)].str); ;}
     break;
 
   case 25:
-#line 251 "ael.y"
+#line 248 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 26:
-#line 251 "ael.y"
+#line 248 "ael.y"
     {
                (yyval.pval) = npval2(PV_LOCALVARDEC, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (6)].str);
@@ -2257,94 +2264,94 @@ yyreduce:
     break;
 
   case 27:
-#line 258 "ael.y"
+#line 255 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 28:
-#line 259 "ael.y"
+#line 256 "ael.y"
     { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
     break;
 
   case 29:
-#line 260 "ael.y"
+#line 257 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
     break;
 
   case 30:
-#line 261 "ael.y"
+#line 258 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
     break;
 
   case 31:
-#line 264 "ael.y"
+#line 261 "ael.y"
     {(yyval.pval)=0;;}
     break;
 
   case 32:
-#line 265 "ael.y"
+#line 262 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 33:
-#line 266 "ael.y"
+#line 263 "ael.y"
     { (yyval.pval)=(yyvsp[(2) - (2)].pval);;}
     break;
 
   case 34:
-#line 269 "ael.y"
+#line 266 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 35:
-#line 270 "ael.y"
+#line 267 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 36:
-#line 271 "ael.y"
+#line 268 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 37:
-#line 272 "ael.y"
+#line 269 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 38:
-#line 273 "ael.y"
+#line 270 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 39:
-#line 274 "ael.y"
+#line 271 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 40:
-#line 275 "ael.y"
+#line 272 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 41:
-#line 276 "ael.y"
+#line 273 "ael.y"
     {free((yyvsp[(1) - (2)].str)); (yyval.pval)=0;;}
     break;
 
   case 42:
-#line 277 "ael.y"
+#line 274 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 43:
-#line 280 "ael.y"
+#line 277 "ael.y"
     {
                (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
                (yyval.pval)->u1.str = (yyvsp[(3) - (4)].str);;}
     break;
 
   case 44:
-#line 285 "ael.y"
+#line 282 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str);
@@ -2352,7 +2359,7 @@ yyreduce:
     break;
 
   case 45:
-#line 289 "ael.y"
+#line 286 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (5)]), &(yylsp[(3) - (5)]));
                (yyval.pval)->u1.str = malloc(strlen((yyvsp[(1) - (5)].str))+strlen((yyvsp[(3) - (5)].str))+2);
@@ -2364,7 +2371,7 @@ yyreduce:
     break;
 
   case 46:
-#line 297 "ael.y"
+#line 294 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2373,7 +2380,7 @@ yyreduce:
     break;
 
   case 47:
-#line 302 "ael.y"
+#line 299 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (7)]), &(yylsp[(7) - (7)]));
                (yyval.pval)->u1.str = (yyvsp[(5) - (7)].str);
@@ -2382,7 +2389,7 @@ yyreduce:
     break;
 
   case 48:
-#line 307 "ael.y"
+#line 304 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
                (yyval.pval)->u1.str = (yyvsp[(6) - (8)].str);
@@ -2392,36 +2399,41 @@ yyreduce:
     break;
 
   case 49:
-#line 316 "ael.y"
+#line 313 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 50:
-#line 317 "ael.y"
+#line 314 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 51:
-#line 318 "ael.y"
+#line 315 "ael.y"
     {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
     break;
 
   case 52:
-#line 324 "ael.y"
+#line 321 "ael.y"
     {
-               asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str));
-               free((yyvsp[(1) - (5)].str));
-               free((yyvsp[(3) - (5)].str));
-               free((yyvsp[(5) - (5)].str)); ;}
+               if (asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (5)].str));
+                       free((yyvsp[(3) - (5)].str));
+                       free((yyvsp[(5) - (5)].str));
+               }
+       ;}
     break;
 
   case 53:
-#line 329 "ael.y"
+#line 331 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
     break;
 
   case 54:
-#line 333 "ael.y"
+#line 335 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[(1) - (7)].str), &(yylsp[(1) - (7)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (7)].str), &(yylsp[(3) - (7)]));
@@ -2430,31 +2442,31 @@ yyreduce:
     break;
 
   case 55:
-#line 341 "ael.y"
+#line 343 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 56:
-#line 341 "ael.y"
+#line 343 "ael.y"
     { (yyval.str) = (yyvsp[(3) - (4)].str); ;}
     break;
 
   case 57:
-#line 345 "ael.y"
+#line 347 "ael.y"
     {
                (yyval.pval)= npval2(PV_IF, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (2)].str); ;}
     break;
 
   case 58:
-#line 348 "ael.y"
+#line 350 "ael.y"
     {
                (yyval.pval) = npval2(PV_RANDOM, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
                (yyval.pval)->u1.str=(yyvsp[(2) - (2)].str);;}
     break;
 
   case 59:
-#line 351 "ael.y"
+#line 353 "ael.y"
     {
                (yyval.pval) = npval2(PV_IFTIME, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
                (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);
@@ -2462,95 +2474,135 @@ yyreduce:
     break;
 
   case 60:
-#line 362 "ael.y"
+#line 364 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str);;}
     break;
 
   case 61:
-#line 363 "ael.y"
+#line 365 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
-               free((yyvsp[(1) - (2)].str));
-               free((yyvsp[(2) - (2)].str));
-               prev_word = (yyval.str);;}
+               if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (2)].str));
+                       free((yyvsp[(2) - (2)].str));
+                       prev_word = (yyval.str);
+               }
+       ;}
     break;
 
   case 62:
-#line 370 "ael.y"
+#line 377 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
     break;
 
   case 63:
-#line 371 "ael.y"
+#line 378 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s %s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
-               free((yyvsp[(1) - (2)].str));
-               free((yyvsp[(2) - (2)].str)); ;}
+               if (asprintf(&((yyval.str)), "%s %s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (2)].str));
+                       free((yyvsp[(2) - (2)].str));
+               }
+       ;}
     break;
 
   case 64:
-#line 375 "ael.y"
+#line 387 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
-               free((yyvsp[(1) - (3)].str));
-               free((yyvsp[(3) - (3)].str)); ;}
+               if (asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
+               }
+       ;}
     break;
 
   case 65:
-#line 379 "ael.y"
+#line 396 "ael.y"
     {  /* there are often '&' in hints */
-               asprintf(&((yyval.str)), "%s&%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
-               free((yyvsp[(1) - (3)].str));
-               free((yyvsp[(3) - (3)].str));;}
+               if (asprintf(&((yyval.str)), "%s&%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
+               }
+       ;}
     break;
 
   case 66:
-#line 385 "ael.y"
+#line 407 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str);;}
     break;
 
   case 67:
-#line 386 "ael.y"
+#line 408 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
-               free((yyvsp[(1) - (2)].str));
-               free((yyvsp[(2) - (2)].str));
-               prev_word = (yyval.str);;}
+               if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (2)].str));
+                       free((yyvsp[(2) - (2)].str));
+                       prev_word = (yyval.str);
+               }                       
+       ;}
     break;
 
   case 68:
-#line 391 "ael.y"
+#line 418 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str));
-               free((yyvsp[(1) - (3)].str));
-               free((yyvsp[(2) - (3)].str));
-               free((yyvsp[(3) - (3)].str));
-               prev_word=(yyval.str);;}
+               if (asprintf(&((yyval.str)), "%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (3)].str));
+                       free((yyvsp[(2) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
+                       prev_word=(yyval.str);
+               }
+       ;}
     break;
 
   case 69:
-#line 399 "ael.y"
+#line 431 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str);;}
     break;
 
   case 70:
-#line 400 "ael.y"
+#line 432 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
-               free((yyvsp[(1) - (2)].str));
-               free((yyvsp[(2) - (2)].str));;}
+               if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (2)].str));
+                       free((yyvsp[(2) - (2)].str));
+               }
+       ;}
     break;
 
   case 71:
-#line 404 "ael.y"
+#line 441 "ael.y"
     {
-               asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
-               free((yyvsp[(1) - (3)].str));
-               free((yyvsp[(3) - (3)].str));;}
+               if (asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
+                       ast_log(LOG_WARNING, "asprintf() failed\n");
+                       (yyval.str) = NULL;
+               } else {
+                       free((yyvsp[(1) - (3)].str));
+                       free((yyvsp[(3) - (3)].str));
+               }
+       ;}
     break;
 
   case 72:
-#line 410 "ael.y"
+#line 452 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
@@ -2558,60 +2610,60 @@ yyreduce:
     break;
 
   case 73:
-#line 419 "ael.y"
+#line 461 "ael.y"
     {
                (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));;}
     break;
 
   case 74:
-#line 422 "ael.y"
+#line 464 "ael.y"
     { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
     break;
 
   case 75:
-#line 423 "ael.y"
+#line 465 "ael.y"
     { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
     break;
 
   case 76:
-#line 424 "ael.y"
+#line 466 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
     break;
 
   case 77:
-#line 427 "ael.y"
+#line 469 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
     break;
 
   case 78:
-#line 430 "ael.y"
+#line 472 "ael.y"
     {
                (yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
                (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;}
     break;
 
   case 79:
-#line 433 "ael.y"
+#line 475 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 80:
-#line 434 "ael.y"
+#line 476 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 81:
-#line 435 "ael.y"
+#line 477 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 82:
-#line 435 "ael.y"
+#line 477 "ael.y"
     { /* XXX word_list maybe ? */
                (yyval.pval) = npval2(PV_FOR, &(yylsp[(1) - (12)]), &(yylsp[(12) - (12)]));
                (yyval.pval)->u1.for_init = (yyvsp[(4) - (12)].str);
@@ -2621,7 +2673,7 @@ yyreduce:
     break;
 
   case 83:
-#line 441 "ael.y"
+#line 483 "ael.y"
     {
                (yyval.pval) = npval2(PV_WHILE, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (3)].str);
@@ -2629,34 +2681,34 @@ yyreduce:
     break;
 
   case 84:
-#line 445 "ael.y"
+#line 487 "ael.y"
     { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
     break;
 
   case 85:
-#line 446 "ael.y"
+#line 488 "ael.y"
     { (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;}
     break;
 
   case 86:
-#line 447 "ael.y"
+#line 489 "ael.y"
     { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
     break;
 
   case 87:
-#line 448 "ael.y"
+#line 490 "ael.y"
     {
                (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
                (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;}
     break;
 
   case 88:
-#line 451 "ael.y"
+#line 493 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 89:
-#line 451 "ael.y"
+#line 493 "ael.y"
     {
                char *bufx;
                int tot=0;
@@ -2693,22 +2745,22 @@ yyreduce:
     break;
 
   case 90:
-#line 484 "ael.y"
+#line 526 "ael.y"
     { (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
     break;
 
   case 91:
-#line 485 "ael.y"
+#line 527 "ael.y"
     { (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
     break;
 
   case 92:
-#line 486 "ael.y"
+#line 528 "ael.y"
     { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
     break;
 
   case 93:
-#line 487 "ael.y"
+#line 529 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(2) - (3)]));
                (yyval.pval)->u2.statements = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));
@@ -2716,41 +2768,41 @@ yyreduce:
     break;
 
   case 94:
-#line 491 "ael.y"
+#line 533 "ael.y"
     { (yyval.pval)=0; ;}
     break;
 
   case 95:
-#line 494 "ael.y"
+#line 536 "ael.y"
     { (yyval.pval) = (yyvsp[(2) - (2)].pval); ;}
     break;
 
   case 96:
-#line 495 "ael.y"
+#line 537 "ael.y"
     { (yyval.pval) = NULL ; ;}
     break;
 
   case 97:
-#line 498 "ael.y"
+#line 540 "ael.y"
     { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
     break;
 
   case 98:
-#line 499 "ael.y"
+#line 541 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;}
     break;
 
   case 99:
-#line 502 "ael.y"
+#line 544 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;}
     break;
 
   case 100:
-#line 505 "ael.y"
+#line 547 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2758,7 +2810,7 @@ yyreduce:
     break;
 
   case 101:
-#line 509 "ael.y"
+#line 551 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2766,7 +2818,7 @@ yyreduce:
     break;
 
   case 102:
-#line 513 "ael.y"
+#line 555 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2774,7 +2826,7 @@ yyreduce:
     break;
 
   case 103:
-#line 517 "ael.y"
+#line 559 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)]));
                (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2782,24 +2834,24 @@ yyreduce:
     break;
 
   case 104:
-#line 523 "ael.y"
+#line 565 "ael.y"
     { (yyval.str) = strdup("1"); ;}
     break;
 
   case 105:
-#line 524 "ael.y"
+#line 566 "ael.y"
     { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
     break;
 
   case 106:
-#line 528 "ael.y"
+#line 570 "ael.y"
     {                  /* ext[, pri] default 1 */
                (yyval.pval) = nword((yyvsp[(1) - (2)].str), &(yylsp[(1) - (2)]));
                (yyval.pval)->next = nword((yyvsp[(2) - (2)].str), &(yylsp[(2) - (2)])); ;}
     break;
 
   case 107:
-#line 531 "ael.y"
+#line 573 "ael.y"
     {  /* context, ext, pri */
                (yyval.pval) = nword((yyvsp[(4) - (4)].str), &(yylsp[(4) - (4)]));
                (yyval.pval)->next = nword((yyvsp[(1) - (4)].str), &(yylsp[(1) - (4)]));
@@ -2807,12 +2859,12 @@ yyreduce:
     break;
 
   case 108:
-#line 537 "ael.y"
+#line 579 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 109:
-#line 537 "ael.y"
+#line 579 "ael.y"
     {
                /* XXX original code had @2 but i think we need @5 */
                (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
@@ -2821,19 +2873,19 @@ yyreduce:
     break;
 
   case 110:
-#line 542 "ael.y"
+#line 584 "ael.y"
     {
                (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;}
     break;
 
   case 111:
-#line 550 "ael.y"
+#line 592 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 112:
-#line 550 "ael.y"
+#line 592 "ael.y"
     {
                if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) {
                        (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
@@ -2846,7 +2898,7 @@ yyreduce:
     break;
 
   case 113:
-#line 561 "ael.y"
+#line 603 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)]));
                if( (yyval.pval)->type == PV_GOTO )
@@ -2857,49 +2909,49 @@ yyreduce:
     break;
 
   case 114:
-#line 568 "ael.y"
+#line 610 "ael.y"
     { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
     break;
 
   case 115:
-#line 571 "ael.y"
+#line 613 "ael.y"
     { (yyval.str) = (yyvsp[(1) - (1)].str) ;}
     break;
 
   case 116:
-#line 572 "ael.y"
+#line 614 "ael.y"
     { (yyval.str) = strdup(""); ;}
     break;
 
   case 117:
-#line 575 "ael.y"
+#line 617 "ael.y"
     { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
     break;
 
   case 118:
-#line 576 "ael.y"
+#line 618 "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 119:
-#line 579 "ael.y"
+#line 621 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
     break;
 
   case 120:
-#line 582 "ael.y"
+#line 624 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 121:
-#line 583 "ael.y"
+#line 625 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 122:
-#line 586 "ael.y"
+#line 628 "ael.y"
     {
                (yyval.pval) = npval2(PV_CASE, &(yylsp[(1) - (4)]), &(yylsp[(3) - (4)])); /* XXX 3 or 4 ? */
                (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2907,7 +2959,7 @@ yyreduce:
     break;
 
   case 123:
-#line 590 "ael.y"
+#line 632 "ael.y"
     {
                (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
                (yyval.pval)->u1.str = NULL;
@@ -2915,7 +2967,7 @@ yyreduce:
     break;
 
   case 124:
-#line 594 "ael.y"
+#line 636 "ael.y"
     {
                (yyval.pval) = npval2(PV_PATTERN, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); /* XXX@3 or @4 ? */
                (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2923,27 +2975,27 @@ yyreduce:
     break;
 
   case 125:
-#line 600 "ael.y"
+#line 642 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 126:
-#line 601 "ael.y"
+#line 643 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 127:
-#line 604 "ael.y"
+#line 646 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 128:
-#line 605 "ael.y"
+#line 647 "ael.y"
     { (yyval.pval)=(yyvsp[(1) - (1)].pval);;}
     break;
 
   case 129:
-#line 606 "ael.y"
+#line 648 "ael.y"
     {
                (yyval.pval) = npval2(PV_CATCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
                (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
@@ -2951,47 +3003,56 @@ yyreduce:
     break;
 
   case 130:
-#line 612 "ael.y"
+#line 654 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
                (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
     break;
 
   case 131:
-#line 617 "ael.y"
+#line 659 "ael.y"
     {
                (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
                (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
     break;
 
   case 132:
-#line 622 "ael.y"
+#line 664 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 133:
-#line 623 "ael.y"
-    { (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;}
+#line 665 "ael.y"
+    { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval),nword((yyvsp[(2) - (3)].str), &(yylsp[(2) - (3)]))); ;}
     break;
 
   case 134:
-#line 624 "ael.y"
-    { char *x; asprintf(&x,"%s@%s", (yyvsp[(1) - (5)].str),(yyvsp[(3) - (5)].str)); free((yyvsp[(1) - (5)].str)); free((yyvsp[(3) - (5)].str));
-                                                                         (yyval.pval) = linku1(nword(x, &(yylsp[(1) - (5)])), (yyvsp[(5) - (5)].pval));;}
+#line 666 "ael.y"
+    {
+         char *x;
+         if (asprintf(&x,"%s@%s", (yyvsp[(2) - (5)].str), (yyvsp[(4) - (5)].str)) < 0) {
+               ast_log(LOG_WARNING, "asprintf() failed\n");
+               (yyval.pval) = NULL;
+         } else {
+               free((yyvsp[(2) - (5)].str));
+               free((yyvsp[(4) - (5)].str));
+               (yyval.pval) = linku1((yyvsp[(1) - (5)].pval),nword(x, &(yylsp[(2) - (5)])));
+         }
+       ;}
     break;
 
   case 135:
-#line 626 "ael.y"
+#line 677 "ael.y"
     {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
     break;
 
   case 136:
-#line 629 "ael.y"
+#line 680 "ael.y"
     { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
     break;
 
   case 137:
-#line 630 "ael.y"
+#line 681 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
                (yyval.pval)->u2.arglist = (yyvsp[(3) - (3)].pval);
@@ -2999,36 +3060,36 @@ yyreduce:
     break;
 
   case 138:
-#line 637 "ael.y"
+#line 688 "ael.y"
     { (yyval.pval) = (yyvsp[(1) - (2)].pval); ;}
     break;
 
   case 139:
-#line 638 "ael.y"
+#line 689 "ael.y"
     { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;}
     break;
 
   case 140:
-#line 639 "ael.y"
+#line 690 "ael.y"
     {(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
     break;
 
   case 141:
-#line 642 "ael.y"
+#line 693 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
                (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
     break;
 
   case 142:
-#line 645 "ael.y"
+#line 696 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;}
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 3032 "ael.tab.c"
+#line 3093 "ael.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3248,7 +3309,7 @@ yyreturn:
 }
 
 
-#line 650 "ael.y"
+#line 701 "ael.y"
 
 
 static char *token_equivs1[] =