From b569ebd593e4a790306236323ae2ccb9483610a4 Mon Sep 17 00:00:00 2001
From: Luigi Rizzo <rizzo@icir.org>
Date: Wed, 3 May 2006 17:07:56 +0000
Subject: [PATCH] more simplifications

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 pbx/ael/ael.tab.c | 757 +++++++++++++++++++++++-----------------------
 pbx/ael/ael.y     |  32 +-
 2 files changed, 391 insertions(+), 398 deletions(-)

diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index e62b35fa5b..999818cff7 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -420,16 +420,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  14
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   273
+#define YYLAST   275
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  42
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  52
+#define YYNNTS  53
 /* YYNRULES -- Number of rules. */
 #define YYNRULES  128
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  259
+#define YYNSTATES  258
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -487,10 +487,10 @@ static const unsigned short int yyprhs[] =
      187,   191,   197,   201,   203,   207,   211,   214,   215,   216,
      217,   230,   234,   236,   240,   243,   246,   247,   253,   256,
      259,   262,   266,   268,   271,   272,   274,   278,   282,   288,
-     294,   300,   306,   308,   312,   318,   322,   323,   329,   333,
-     334,   338,   342,   345,   347,   348,   350,   351,   355,   356,
-     359,   364,   368,   373,   374,   377,   379,   385,   390,   395,
-     396,   400,   403,   405,   409,   412,   416,   419,   424
+     294,   300,   306,   307,   310,   313,   318,   319,   325,   329,
+     330,   334,   338,   341,   343,   344,   346,   347,   351,   352,
+     355,   360,   364,   369,   370,   373,   375,   381,   386,   391,
+     392,   396,   399,   401,   405,   408,   412,   415,   420
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -500,11 +500,11 @@ static const yysigned_char yyrhs[] =
       44,     1,    -1,    47,    -1,    49,    -1,    50,    -1,     8,
       -1,    41,    -1,    36,    -1,    48,     3,    46,     4,    55,
        5,    -1,    23,    -1,    -1,    15,    41,     6,    54,     7,
-       4,    86,     5,    -1,    16,     4,    51,     5,    -1,    -1,
+       4,    87,     5,    -1,    16,     4,    51,     5,    -1,    -1,
       52,    51,    -1,    51,     1,    -1,    -1,    41,     9,    53,
       41,     8,    -1,    -1,    41,    -1,    54,    10,    41,    -1,
       54,     1,    -1,    -1,    56,    55,    -1,    55,     1,    -1,
-      58,    -1,    93,    -1,    88,    -1,    89,    -1,    57,    -1,
+      58,    -1,    94,    -1,    89,    -1,    90,    -1,    57,    -1,
       52,    -1,    41,     1,    -1,     8,    -1,    17,    24,    41,
        8,    -1,    41,    24,    69,    -1,    30,    41,    24,    69,
       -1,    31,     6,    66,     7,    41,    24,    69,    -1,    30,
@@ -515,48 +515,48 @@ static const yysigned_char yyrhs[] =
       22,    62,    -1,    20,     6,    61,     7,    -1,    41,    -1,
       41,    41,    -1,    41,    -1,    41,    41,    -1,    41,    41,
       41,    -1,    41,    -1,    41,    41,    -1,    41,    11,    41,
-      -1,    18,    62,     4,    84,     5,    -1,     4,    59,     5,
-      -1,    52,    -1,    25,    75,     8,    -1,    26,    76,     8,
+      -1,    18,    62,     4,    85,     5,    -1,     4,    59,     5,
+      -1,    52,    -1,    25,    75,     8,    -1,    26,    77,     8,
       -1,    41,    11,    -1,    -1,    -1,    -1,    32,     6,    70,
       41,     8,    71,    41,     8,    72,    41,     7,    69,    -1,
-      33,    62,    69,    -1,    68,    -1,    12,    77,     8,    -1,
-      81,     8,    -1,    41,     8,    -1,    -1,    81,     9,    73,
+      33,    62,    69,    -1,    68,    -1,    12,    78,     8,    -1,
+      82,     8,    -1,    41,     8,    -1,    -1,    82,     9,    73,
       41,     8,    -1,    28,     8,    -1,    27,     8,    -1,    29,
        8,    -1,    64,    69,    74,    -1,     8,    -1,    21,    69,
       -1,    -1,    67,    -1,    67,    13,    67,    -1,    67,    10,
       67,    -1,    67,    13,    67,    13,    67,    -1,    67,    10,
       67,    10,    67,    -1,    36,    13,    67,    13,    67,    -1,
-      36,    10,    67,    10,    67,    -1,    67,    -1,    67,    10,
-      41,    -1,    67,    10,    41,    14,    46,    -1,    67,    14,
-      46,    -1,    -1,    41,     6,    78,    83,     7,    -1,    41,
-       6,     7,    -1,    -1,    41,     6,    80,    -1,    79,    83,
-       7,    -1,    79,     7,    -1,    41,    -1,    -1,    65,    -1,
-      -1,    83,    10,    82,    -1,    -1,    85,    84,    -1,    34,
-      41,    11,    59,    -1,    36,    11,    59,    -1,    35,    41,
-      11,    59,    -1,    -1,    87,    86,    -1,    69,    -1,    37,
-      41,     4,    59,     5,    -1,    38,     4,    90,     5,    -1,
-      39,     4,    90,     5,    -1,    -1,    41,     8,    90,    -1,
-      90,     1,    -1,    46,    -1,    46,    13,    61,    -1,    91,
-       8,    -1,    92,    91,     8,    -1,    92,     1,    -1,    40,
-       4,    92,     5,    -1,    40,     4,     5,    -1
+      36,    10,    67,    10,    67,    -1,    -1,    10,    41,    -1,
+      67,    76,    -1,    67,    76,    14,    46,    -1,    -1,    41,
+       6,    79,    84,     7,    -1,    41,     6,     7,    -1,    -1,
+      41,     6,    81,    -1,    80,    84,     7,    -1,    80,     7,
+      -1,    41,    -1,    -1,    65,    -1,    -1,    84,    10,    83,
+      -1,    -1,    86,    85,    -1,    34,    41,    11,    59,    -1,
+      36,    11,    59,    -1,    35,    41,    11,    59,    -1,    -1,
+      88,    87,    -1,    69,    -1,    37,    41,     4,    59,     5,
+      -1,    38,     4,    91,     5,    -1,    39,     4,    91,     5,
+      -1,    -1,    41,     8,    91,    -1,    91,     1,    -1,    46,
+      -1,    46,    13,    61,    -1,    92,     8,    -1,    93,    92,
+       8,    -1,    93,     1,    -1,    40,     4,    93,     5,    -1,
+      40,     4,     5,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,   177,   177,   180,   181,   182,   185,   186,   187,   188,
-     191,   192,   195,   203,   204,   207,   212,   217,   218,   219,
-     222,   222,   229,   230,   231,   232,   235,   236,   237,   240,
-     241,   242,   243,   244,   245,   246,   247,   250,   255,   259,
-     264,   269,   279,   280,   281,   287,   292,   296,   304,   304,
-     309,   312,   315,   326,   327,   334,   335,   340,   348,   349,
-     353,   359,   368,   371,   372,   375,   378,   381,   382,   383,
-     381,   389,   393,   394,   396,   398,   401,   401,   434,   435,
-     436,   437,   441,   444,   445,   450,   451,   454,   457,   461,
-     465,   469,   476,   479,   482,   486,   492,   492,   497,   505,
-     505,   516,   523,   526,   527,   530,   531,   534,   537,   538,
-     541,   545,   549,   555,   556,   559,   560,   566,   571,   576,
-     577,   578,   581,   582,   589,   590,   591,   594,   597
+       0,   179,   179,   182,   183,   184,   187,   188,   189,   190,
+     193,   194,   197,   205,   206,   209,   214,   219,   220,   221,
+     224,   224,   231,   232,   233,   234,   237,   238,   239,   242,
+     243,   244,   245,   246,   247,   248,   249,   252,   257,   261,
+     266,   271,   281,   282,   283,   289,   294,   298,   306,   306,
+     310,   313,   316,   327,   328,   335,   336,   341,   349,   350,
+     354,   360,   369,   372,   373,   376,   379,   382,   383,   384,
+     382,   390,   394,   395,   396,   397,   400,   400,   433,   434,
+     435,   436,   440,   443,   444,   449,   450,   453,   456,   460,
+     464,   468,   474,   475,   479,   482,   488,   488,   493,   501,
+     501,   512,   519,   522,   523,   526,   527,   530,   533,   534,
+     537,   541,   545,   551,   552,   555,   556,   562,   567,   572,
+     573,   574,   577,   578,   585,   586,   587,   590,   593
 };
 #endif
 
@@ -577,8 +577,8 @@ static const char *const yytname[] =
   "elements", "element", "ignorepat", "extension", "statements",
   "timerange", "timespec", "test_expr", "@2", "if_like_head", "word_list",
   "word3_list", "goto_word", "switch_statement", "statement", "@3", "@4",
-  "@5", "@6", "opt_else", "target", "jumptarget", "macro_call", "@7",
-  "application_call_head", "@8", "application_call", "opt_word",
+  "@5", "@6", "opt_else", "target", "opt_pri", "jumptarget", "macro_call",
+  "@7", "application_call_head", "@8", "application_call", "opt_word",
   "eval_arglist", "case_statements", "case_statement", "macro_statements",
   "macro_statement", "switches", "eswitches", "switchlist",
   "included_entry", "includeslist", "includes", 0
@@ -610,10 +610,10 @@ static const unsigned char yyr1[] =
       67,    68,    69,    69,    69,    69,    69,    70,    71,    72,
       69,    69,    69,    69,    69,    69,    73,    69,    69,    69,
       69,    69,    69,    74,    74,    75,    75,    75,    75,    75,
-      75,    75,    76,    76,    76,    76,    78,    77,    77,    80,
-      79,    81,    81,    82,    82,    83,    83,    83,    84,    84,
-      85,    85,    85,    86,    86,    87,    87,    88,    89,    90,
-      90,    90,    91,    91,    92,    92,    92,    93,    93
+      75,    75,    76,    76,    77,    77,    79,    78,    78,    81,
+      80,    82,    82,    83,    83,    84,    84,    84,    85,    85,
+      86,    86,    86,    87,    87,    88,    88,    89,    90,    91,
+      91,    91,    92,    92,    93,    93,    93,    94,    94
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -628,7 +628,7 @@ static const unsigned char yyr2[] =
        3,     5,     3,     1,     3,     3,     2,     0,     0,     0,
       12,     3,     1,     3,     2,     2,     0,     5,     2,     2,
        2,     3,     1,     2,     0,     1,     3,     3,     5,     5,
-       5,     5,     1,     3,     5,     3,     0,     5,     3,     0,
+       5,     5,     0,     2,     2,     4,     0,     5,     3,     0,
        3,     3,     2,     1,     0,     1,     0,     3,     0,     2,
        4,     3,     4,     0,     2,     1,     5,     4,     4,     0,
        3,     2,     1,     3,     2,     3,     2,     4,     3
@@ -656,15 +656,15 @@ static const unsigned char yydefact[] =
       39,    56,     0,   119,   121,   117,   118,     0,   124,   126,
      127,     0,    44,    62,     0,    96,    73,     0,   108,    46,
        0,     0,     0,     0,     0,     0,    59,     0,     0,    64,
-       0,     0,    65,     0,    71,    42,   100,     0,    81,    54,
+       0,    94,    65,     0,    71,    42,   100,     0,    81,    54,
      101,   104,     0,     0,    57,     0,     0,   123,   125,    98,
      106,     0,     0,     0,     0,     0,   108,     0,    52,     0,
-       0,     0,    60,    87,    86,    93,    95,     0,     0,    83,
+       0,     0,    60,    87,    86,    93,     0,     0,     0,    83,
      103,   107,     0,     0,     0,     0,    49,     0,     0,    42,
-      61,   109,     0,     0,     0,     0,     0,     0,     0,    68,
+      61,   109,     0,     0,     0,     0,     0,     0,    95,    68,
      116,    77,     0,    40,    97,    42,    42,     0,     0,     0,
-      91,    90,    89,    88,    94,     0,    41,     0,     0,     0,
-      45,     0,     0,    69,    47,     0,     0,     0,    70
+      91,    90,    89,    88,     0,    41,     0,     0,     0,    45,
+       0,     0,    69,    47,     0,     0,     0,    70
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
@@ -672,54 +672,54 @@ static const short int yydefgoto[] =
 {
       -1,     5,     6,     7,   101,     8,     9,    10,    11,    20,
       83,    35,    26,    45,    46,    47,    48,   105,   160,   161,
-     110,   157,    84,   132,   162,   116,    85,   106,   173,   245,
-     255,   182,   178,   117,   119,   108,   190,    87,   176,    88,
-     211,   133,   195,   196,    89,    90,    49,    50,    98,   102,
-     103,    51
+     110,   157,    84,   132,   162,   116,    85,   106,   173,   244,
+     254,   182,   178,   117,   171,   119,   108,   190,    87,   176,
+      88,   211,   133,   195,   196,    89,    90,    49,    50,    98,
+     102,   103,    51
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -104
+#define YYPACT_NINF -103
 static const short int yypact[] =
 {
-       2,  -104,   -27,    19,  -104,    32,    61,  -104,  -104,    83,
-    -104,  -104,   113,    39,  -104,  -104,  -104,   -12,    66,   129,
-      80,    39,  -104,  -104,   148,  -104,    21,  -104,  -104,  -104,
-      82,    84,  -104,   149,   119,   120,  -104,   142,   -22,   161,
-     164,   165,   167,    12,  -104,    92,    84,  -104,  -104,  -104,
-    -104,  -104,    26,  -104,   168,   131,   169,   153,   146,   159,
-     159,    -1,  -104,   166,  -104,  -104,    95,   166,  -104,   160,
-     173,   173,   174,   173,    30,   162,   181,   182,   189,   196,
-     173,   163,   128,  -104,   166,  -104,  -104,     8,   156,   200,
-      26,  -104,   201,   146,   166,   171,   203,   205,   101,   116,
-    -104,   195,   206,     6,  -104,   130,   166,   209,   208,  -104,
-     213,  -104,   177,  -104,   137,     9,   138,   211,   132,   212,
-    -104,  -104,  -104,  -104,   166,   217,  -104,  -104,  -104,   202,
-    -104,   183,  -104,    58,  -104,  -104,  -104,  -104,  -104,   215,
-    -104,   184,   185,   159,  -104,  -104,  -104,   177,  -104,  -104,
-    -104,   219,  -104,  -104,    55,   221,  -104,   188,    94,    16,
-     218,   223,   222,   162,   162,   191,  -104,   162,   162,  -104,
-     193,   -12,  -104,   194,  -104,   166,  -104,   166,  -104,  -104,
-    -104,   197,   198,   199,  -104,   220,   139,  -104,  -104,  -104,
-     188,   229,   204,   207,   226,   236,    94,   146,  -104,   146,
-     232,   230,  -104,   237,   233,   235,  -104,   242,   144,  -104,
-    -104,  -104,   243,   228,   166,   152,  -104,   244,   245,   166,
-    -104,  -104,   240,   246,   162,   162,   162,   162,   -12,  -104,
-    -104,  -104,   166,  -104,  -104,   166,   166,    69,   146,   146,
-    -104,  -104,  -104,  -104,  -104,   224,  -104,    74,    77,   241,
-    -104,   250,   146,  -104,  -104,   225,   252,   166,  -104
+     142,  -103,   -28,    52,  -103,    80,   148,  -103,  -103,    84,
+    -103,  -103,    88,    65,  -103,  -103,  -103,   -20,    77,   126,
+      29,    65,  -103,  -103,   133,  -103,    16,  -103,  -103,  -103,
+      58,    91,  -103,   143,   105,   134,  -103,   150,   -23,   161,
+     173,   174,   180,    11,  -103,    63,    91,  -103,  -103,  -103,
+    -103,  -103,    25,  -103,   177,   146,   182,   166,   151,   152,
+     152,    19,  -103,    57,  -103,  -103,   110,    57,  -103,   154,
+     183,   183,   190,   183,   -14,   156,   191,   192,   193,   196,
+     183,   157,   130,  -103,    57,  -103,  -103,     7,   104,   198,
+      25,  -103,   197,   151,    57,   170,   199,   200,   118,   119,
+    -103,   194,   201,     5,  -103,   165,    57,   204,   205,  -103,
+     208,  -103,   175,  -103,    18,    -2,    68,   206,   207,   210,
+    -103,  -103,  -103,  -103,    57,   211,  -103,  -103,  -103,   202,
+    -103,   178,  -103,   169,  -103,  -103,  -103,  -103,  -103,   213,
+    -103,   181,   184,   152,  -103,  -103,  -103,   175,  -103,  -103,
+    -103,   216,  -103,  -103,    66,   214,  -103,   185,   125,     8,
+     215,   220,   218,   156,   156,   189,  -103,   156,   156,  -103,
+     195,   217,  -103,   203,  -103,    57,  -103,    57,  -103,  -103,
+    -103,   209,   212,   219,  -103,   221,   167,  -103,  -103,  -103,
+     185,   225,   222,   223,   224,   228,   125,   151,  -103,   151,
+     227,   226,  -103,   230,   229,  -103,   -20,   233,   168,  -103,
+    -103,  -103,   235,   231,    57,   176,  -103,   236,   237,    57,
+    -103,  -103,   238,   241,   156,   156,   156,   156,  -103,  -103,
+    -103,  -103,    57,  -103,  -103,    57,    57,    69,   151,   151,
+    -103,  -103,  -103,  -103,   232,  -103,    92,   109,   243,  -103,
+     246,   151,  -103,  -103,   234,   239,    57,  -103
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -104,  -104,  -104,   254,   -17,  -104,  -104,  -104,  -104,   247,
-      -5,  -104,  -104,   127,  -104,  -104,  -104,  -103,  -104,   114,
-      47,  -104,  -104,   105,   -56,   -69,  -104,   -51,  -104,  -104,
-    -104,  -104,  -104,  -104,  -104,  -104,  -104,  -104,  -104,  -104,
-    -104,    73,    68,  -104,   179,  -104,  -104,  -104,   -55,   170,
-    -104,  -104
+    -103,  -103,  -103,   251,   -15,  -103,  -103,  -103,  -103,   240,
+      -6,  -103,  -103,   188,  -103,  -103,  -103,  -102,  -103,   102,
+      36,  -103,  -103,    81,   -57,   -72,  -103,   -52,  -103,  -103,
+    -103,  -103,  -103,  -103,  -103,  -103,  -103,  -103,  -103,  -103,
+    -103,  -103,    72,    62,  -103,   179,  -103,  -103,  -103,   -55,
+     162,  -103,  -103
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -729,66 +729,66 @@ static const short int yypgoto[] =
 #define YYTABLE_NINF -121
 static const short int yytable[] =
 {
-      24,    86,    96,   154,   100,    99,   118,   149,    21,    56,
-       1,   150,   104,    62,    12,   130,    21,     2,     3,    57,
-     165,    27,    32,    13,    22,     4,    44,   -55,    33,    23,
-      67,    34,    14,   129,    68,    22,    63,   139,    69,    86,
-      23,    44,    22,   140,    70,    71,    72,    23,    73,   131,
-     166,    74,    75,    76,    77,    78,   152,   141,    79,    80,
-     -43,    -2,    15,    81,   -14,   180,   114,    82,   181,     1,
-     152,   115,   208,   174,  -111,   152,     2,     3,   152,  -110,
-      19,    28,  -112,    28,     4,    29,    17,   -18,   186,   -43,
-     -43,   -43,    36,    64,   200,   201,    64,    65,   203,   204,
-     -27,    37,   144,  -111,  -111,  -111,   145,    25,  -110,  -110,
-    -110,  -112,  -112,  -112,    38,    39,   237,   144,   111,    18,
-     113,   146,    40,    41,    42,    43,   209,   124,   192,   193,
-     194,   152,   247,   248,   126,   153,   127,    27,    27,   128,
-     144,   222,   170,   223,  -120,   152,   171,   163,   167,   230,
-     164,   168,    31,    52,   206,   240,   241,   242,   243,   234,
-      53,    54,   181,   233,   134,   135,    55,    58,    59,    60,
-      67,    61,    92,    66,    68,    93,    91,    94,    69,   109,
-     112,   246,   249,   250,    70,    71,    72,    95,    73,   120,
-     121,    74,    75,    76,    77,    78,   254,   122,    79,    80,
-      97,   107,   123,   115,   125,   136,   258,    82,   147,   138,
-     142,   244,   141,   143,   148,   155,   156,   158,   159,   169,
-     172,   175,   183,   177,   179,   184,   185,   188,   189,   131,
-     198,   197,   202,   199,   205,   207,   216,   219,   210,   212,
-     213,   220,   224,   225,   214,   217,   227,   226,   218,   228,
-     229,   231,   232,   238,   252,   235,   236,   239,   253,   257,
-      16,   187,   191,   215,   221,   251,   256,     0,    30,   137,
-       0,     0,     0,   151
+      86,    96,    24,   118,   154,    99,   149,    21,    56,   165,
+     150,   104,    62,    12,   130,    21,    22,    32,    57,   -55,
+      27,    23,   114,    33,   100,    44,    34,   115,   163,    67,
+      28,   164,   129,    68,    29,    63,   139,    69,    86,   166,
+      44,    22,   140,    70,    71,    72,    23,    73,   131,   141,
+      74,    75,    76,    77,    78,    22,    13,    79,    80,    28,
+      23,    67,    81,   -18,    64,    68,    82,   152,    65,    69,
+     152,   -43,   174,   208,  -111,    70,    71,    72,   167,    73,
+      14,   168,    74,    75,    76,    77,    78,    17,   186,    79,
+      80,   200,   201,   152,    18,   203,   204,  -110,    82,    36,
+     -43,   -43,   -43,  -111,  -111,  -111,    19,   111,    37,   113,
+     152,    64,   134,   135,  -112,   -27,   124,   237,    25,   144,
+     144,    38,    39,   145,   146,   209,  -110,  -110,  -110,    40,
+      41,    42,    43,   246,   247,    27,   126,    31,   127,    27,
+     222,   128,   223,  -112,  -112,  -112,    53,    52,    -2,    15,
+       1,   -14,   240,   241,   242,   243,     1,     2,     3,   192,
+     193,   194,   233,     2,     3,     4,   152,    58,   144,   152,
+     153,     4,  -120,   230,    55,    54,   180,    59,    60,   181,
+     245,   248,   249,   234,    61,    91,   181,    92,    93,   109,
+      94,   228,    95,    97,   253,   107,   112,   115,   125,   120,
+     121,   122,   123,   136,   257,   138,   142,   147,   143,   148,
+     155,   141,   158,   156,   169,   175,   159,   170,   172,   179,
+     183,   189,   184,   177,   188,   185,   131,   198,   197,   199,
+     202,   206,   216,   220,    66,   219,   205,   224,   191,   225,
+     226,   229,   227,   231,   207,   214,   256,   235,   236,   187,
+     210,   238,   239,   212,   252,   232,   251,    16,   221,     0,
+     213,    30,   215,   217,   218,   151,     0,     0,     0,   137,
+       0,     0,     0,   250,     0,   255
 };
 
 static const short int yycheck[] =
 {
-      17,    52,    58,   106,     5,    60,    75,     1,    13,    31,
-       8,     5,    63,     1,    41,     7,    21,    15,    16,    41,
-      11,     9,     1,     4,    36,    23,    31,    11,     7,    41,
-       4,    10,     0,    84,     8,    36,    24,    93,    12,    90,
-      41,    46,    36,    94,    18,    19,    20,    41,    22,    41,
-      41,    25,    26,    27,    28,    29,     1,    41,    32,    33,
-       5,     0,     1,    37,     3,     7,    36,    41,    10,     8,
-       1,    41,   175,   124,     5,     1,    15,    16,     1,     5,
-      41,     1,     5,     1,    23,     5,     3,     5,   143,    34,
-      35,    36,     8,     1,   163,   164,     1,     5,   167,   168,
-       5,    17,     1,    34,    35,    36,     5,    41,    34,    35,
-      36,    34,    35,    36,    30,    31,   219,     1,    71,     6,
-      73,     5,    38,    39,    40,    41,   177,    80,    34,    35,
-      36,     1,   235,   236,     6,     5,     8,     9,     9,    11,
-       1,   197,    10,   199,     5,     1,    14,    10,    10,     5,
-      13,    13,     4,     4,   171,   224,   225,   226,   227,     7,
-      41,    41,    10,   214,     8,     9,    24,     6,     4,     4,
-       4,     4,    41,    46,     8,     6,     8,    24,    12,     6,
-       6,   232,   238,   239,    18,    19,    20,    41,    22,     8,
-       8,    25,    26,    27,    28,    29,   252,     8,    32,    33,
-      41,    41,     6,    41,    41,     5,   257,    41,    13,     8,
-       7,   228,    41,     8,     8,     6,     8,     4,    41,     8,
-       8,     4,     7,    21,    41,    41,    41,     8,     7,    41,
-       7,    13,    41,    11,    41,    41,     7,    11,    41,    41,
-      41,     5,    10,    13,    24,    41,    13,    10,    41,    14,
-       8,     8,    24,    13,    13,    11,    11,    11,     8,     7,
-       6,   147,   157,   190,   196,    41,    41,    -1,    21,    90,
-      -1,    -1,    -1,   103
+      52,    58,    17,    75,   106,    60,     1,    13,    31,    11,
+       5,    63,     1,    41,     7,    21,    36,     1,    41,    11,
+       9,    41,    36,     7,     5,    31,    10,    41,    10,     4,
+       1,    13,    84,     8,     5,    24,    93,    12,    90,    41,
+      46,    36,    94,    18,    19,    20,    41,    22,    41,    41,
+      25,    26,    27,    28,    29,    36,     4,    32,    33,     1,
+      41,     4,    37,     5,     1,     8,    41,     1,     5,    12,
+       1,     5,   124,   175,     5,    18,    19,    20,    10,    22,
+       0,    13,    25,    26,    27,    28,    29,     3,   143,    32,
+      33,   163,   164,     1,     6,   167,   168,     5,    41,     8,
+      34,    35,    36,    34,    35,    36,    41,    71,    17,    73,
+       1,     1,     8,     9,     5,     5,    80,   219,    41,     1,
+       1,    30,    31,     5,     5,   177,    34,    35,    36,    38,
+      39,    40,    41,   235,   236,     9,     6,     4,     8,     9,
+     197,    11,   199,    34,    35,    36,    41,     4,     0,     1,
+       8,     3,   224,   225,   226,   227,     8,    15,    16,    34,
+      35,    36,   214,    15,    16,    23,     1,     6,     1,     1,
+       5,    23,     5,     5,    24,    41,     7,     4,     4,    10,
+     232,   238,   239,     7,     4,     8,    10,    41,     6,     6,
+      24,   206,    41,    41,   251,    41,     6,    41,    41,     8,
+       8,     8,     6,     5,   256,     8,     7,    13,     8,     8,
+       6,    41,     4,     8,     8,     4,    41,    10,     8,    41,
+       7,     7,    41,    21,     8,    41,    41,     7,    13,    11,
+      41,    14,     7,     5,    46,    11,    41,    10,   157,    13,
+      10,     8,    13,     8,    41,    24,     7,    11,    11,   147,
+      41,    13,    11,    41,     8,    24,    13,     6,   196,    -1,
+      41,    21,   190,    41,    41,   103,    -1,    -1,    -1,    90,
+      -1,    -1,    -1,    41,    -1,    41
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -799,28 +799,28 @@ static const unsigned char yystos[] =
       49,    50,    41,     4,     0,     1,    45,     3,     6,    41,
       51,    52,    36,    41,    46,    41,    54,     9,     1,     5,
       51,     4,     1,     7,    10,    53,     8,    17,    30,    31,
-      38,    39,    40,    41,    52,    55,    56,    57,    58,    88,
-      89,    93,     4,    41,    41,    24,    31,    41,     6,     4,
+      38,    39,    40,    41,    52,    55,    56,    57,    58,    89,
+      90,    94,     4,    41,    41,    24,    31,    41,     6,     4,
        4,     4,     1,    24,     1,     5,    55,     4,     8,    12,
       18,    19,    20,    22,    25,    26,    27,    28,    29,    32,
-      33,    37,    41,    52,    64,    68,    69,    79,    81,    86,
-      87,     8,    41,     6,    24,    41,    66,    41,    90,    90,
-       5,    46,    91,    92,    69,    59,    69,    41,    77,     6,
-      62,    62,     6,    62,    36,    41,    67,    75,    67,    76,
+      33,    37,    41,    52,    64,    68,    69,    80,    82,    87,
+      88,     8,    41,     6,    24,    41,    66,    41,    91,    91,
+       5,    46,    92,    93,    69,    59,    69,    41,    78,     6,
+      62,    62,     6,    62,    36,    41,    67,    75,    67,    77,
        8,     8,     8,     6,    62,    41,     6,     8,    11,    69,
-       7,    41,    65,    83,     8,     9,     5,    86,     8,    66,
+       7,    41,    65,    84,     8,     9,     5,    87,     8,    66,
       69,    41,     7,     8,     1,     5,     5,    13,     8,     1,
-       5,    91,     1,     5,    59,     6,     8,    63,     4,    41,
+       5,    92,     1,     5,    59,     6,     8,    63,     4,    41,
       60,    61,    66,    10,    13,    11,    41,    10,    13,     8,
-      10,    14,     8,    70,    69,     4,    80,    21,    74,    41,
-       7,    10,    73,     7,    41,    41,    90,    61,     8,     7,
-      78,    65,    34,    35,    36,    84,    85,    13,     7,    11,
-      67,    67,    41,    67,    67,    41,    46,    41,    59,    69,
-      41,    82,    41,    41,    24,    83,     7,    41,    41,    11,
-       5,    84,    66,    66,    10,    13,    10,    13,    14,     8,
+      10,    76,     8,    70,    69,     4,    81,    21,    74,    41,
+       7,    10,    73,     7,    41,    41,    91,    61,     8,     7,
+      79,    65,    34,    35,    36,    85,    86,    13,     7,    11,
+      67,    67,    41,    67,    67,    41,    14,    41,    59,    69,
+      41,    83,    41,    41,    24,    84,     7,    41,    41,    11,
+       5,    85,    66,    66,    10,    13,    10,    13,    46,     8,
        5,     8,    24,    69,     7,    11,    11,    59,    13,    11,
-      67,    67,    67,    67,    46,    71,    69,    59,    59,    66,
-      66,    41,    13,     8,    66,    72,    41,     7,    69
+      67,    67,    67,    67,    71,    69,    59,    59,    66,    66,
+      41,    13,     8,    66,    72,    41,     7,    69
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -1196,12 +1196,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
   switch (yytype)
     {
       case 41: /* "word" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1202 "ael.tab.c"
         break;
       case 44: /* "objects" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1209,7 +1209,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1210 "ael.tab.c"
         break;
       case 45: /* "object" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1217,12 +1217,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1218 "ael.tab.c"
         break;
       case 46: /* "context_name" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1223 "ael.tab.c"
         break;
       case 47: /* "context" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1230,7 +1230,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1231 "ael.tab.c"
         break;
       case 49: /* "macro" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1238,7 +1238,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1239 "ael.tab.c"
         break;
       case 50: /* "globals" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1246,7 +1246,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1247 "ael.tab.c"
         break;
       case 51: /* "global_statements" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1254,7 +1254,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1255 "ael.tab.c"
         break;
       case 52: /* "assignment" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1262,7 +1262,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1263 "ael.tab.c"
         break;
       case 54: /* "arglist" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1270,7 +1270,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1271 "ael.tab.c"
         break;
       case 55: /* "elements" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1278,7 +1278,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1279 "ael.tab.c"
         break;
       case 56: /* "element" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1286,7 +1286,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1287 "ael.tab.c"
         break;
       case 57: /* "ignorepat" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1294,7 +1294,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1295 "ael.tab.c"
         break;
       case 58: /* "extension" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1302,7 +1302,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1303 "ael.tab.c"
         break;
       case 59: /* "statements" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1310,12 +1310,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1311 "ael.tab.c"
         break;
       case 60: /* "timerange" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1316 "ael.tab.c"
         break;
       case 61: /* "timespec" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1323,12 +1323,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1324 "ael.tab.c"
         break;
       case 62: /* "test_expr" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1329 "ael.tab.c"
         break;
       case 64: /* "if_like_head" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1336,22 +1336,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1337 "ael.tab.c"
         break;
       case 65: /* "word_list" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1342 "ael.tab.c"
         break;
       case 66: /* "word3_list" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1347 "ael.tab.c"
         break;
       case 67: /* "goto_word" */
-#line 170 "ael.y"
+#line 171 "ael.y"
         { free((yyvaluep->str));};
 #line 1352 "ael.tab.c"
         break;
       case 68: /* "switch_statement" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1359,7 +1359,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1360 "ael.tab.c"
         break;
       case 69: /* "statement" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1367,7 +1367,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1368 "ael.tab.c"
         break;
       case 74: /* "opt_else" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
@@ -1375,137 +1375,142 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 #line 1376 "ael.tab.c"
         break;
       case 75: /* "target" */
-#line 157 "ael.y"
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
 #line 1384 "ael.tab.c"
         break;
-      case 76: /* "jumptarget" */
-#line 157 "ael.y"
+      case 76: /* "opt_pri" */
+#line 171 "ael.y"
+        { free((yyvaluep->str));};
+#line 1389 "ael.tab.c"
+        break;
+      case 77: /* "jumptarget" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1392 "ael.tab.c"
+#line 1397 "ael.tab.c"
         break;
-      case 77: /* "macro_call" */
-#line 157 "ael.y"
+      case 78: /* "macro_call" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1400 "ael.tab.c"
+#line 1405 "ael.tab.c"
         break;
-      case 79: /* "application_call_head" */
-#line 157 "ael.y"
+      case 80: /* "application_call_head" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1408 "ael.tab.c"
+#line 1413 "ael.tab.c"
         break;
-      case 81: /* "application_call" */
-#line 157 "ael.y"
+      case 82: /* "application_call" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1416 "ael.tab.c"
+#line 1421 "ael.tab.c"
         break;
-      case 82: /* "opt_word" */
-#line 170 "ael.y"
+      case 83: /* "opt_word" */
+#line 171 "ael.y"
         { free((yyvaluep->str));};
-#line 1421 "ael.tab.c"
+#line 1426 "ael.tab.c"
         break;
-      case 83: /* "eval_arglist" */
-#line 157 "ael.y"
+      case 84: /* "eval_arglist" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1429 "ael.tab.c"
+#line 1434 "ael.tab.c"
         break;
-      case 84: /* "case_statements" */
-#line 157 "ael.y"
+      case 85: /* "case_statements" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1437 "ael.tab.c"
+#line 1442 "ael.tab.c"
         break;
-      case 85: /* "case_statement" */
-#line 157 "ael.y"
+      case 86: /* "case_statement" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1445 "ael.tab.c"
+#line 1450 "ael.tab.c"
         break;
-      case 86: /* "macro_statements" */
-#line 157 "ael.y"
+      case 87: /* "macro_statements" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1453 "ael.tab.c"
+#line 1458 "ael.tab.c"
         break;
-      case 87: /* "macro_statement" */
-#line 157 "ael.y"
+      case 88: /* "macro_statement" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1461 "ael.tab.c"
+#line 1466 "ael.tab.c"
         break;
-      case 88: /* "switches" */
-#line 157 "ael.y"
+      case 89: /* "switches" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1469 "ael.tab.c"
+#line 1474 "ael.tab.c"
         break;
-      case 89: /* "eswitches" */
-#line 157 "ael.y"
+      case 90: /* "eswitches" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1477 "ael.tab.c"
+#line 1482 "ael.tab.c"
         break;
-      case 90: /* "switchlist" */
-#line 157 "ael.y"
+      case 91: /* "switchlist" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1485 "ael.tab.c"
+#line 1490 "ael.tab.c"
         break;
-      case 91: /* "included_entry" */
-#line 157 "ael.y"
+      case 92: /* "included_entry" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1493 "ael.tab.c"
+#line 1498 "ael.tab.c"
         break;
-      case 92: /* "includeslist" */
-#line 157 "ael.y"
+      case 93: /* "includeslist" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1501 "ael.tab.c"
+#line 1506 "ael.tab.c"
         break;
-      case 93: /* "includes" */
-#line 157 "ael.y"
+      case 94: /* "includes" */
+#line 158 "ael.y"
         {
 		destroy_pval((yyvaluep->pval));
 		prev_word=0;
 	};
-#line 1509 "ael.tab.c"
+#line 1514 "ael.tab.c"
         break;
 
       default:
@@ -1822,57 +1827,57 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 177 "ael.y"
+#line 179 "ael.y"
     { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;}
     break;
 
   case 3:
-#line 180 "ael.y"
+#line 182 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 4:
-#line 181 "ael.y"
+#line 183 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 5:
-#line 182 "ael.y"
+#line 184 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 6:
-#line 185 "ael.y"
+#line 187 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 7:
-#line 186 "ael.y"
+#line 188 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 8:
-#line 187 "ael.y"
+#line 189 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 9:
-#line 188 "ael.y"
+#line 190 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 10:
-#line 191 "ael.y"
+#line 193 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
   case 11:
-#line 192 "ael.y"
+#line 194 "ael.y"
     { (yyval.str) = strdup("default"); ;}
     break;
 
   case 12:
-#line 195 "ael.y"
+#line 197 "ael.y"
     {
 		(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-3].str);
@@ -1881,51 +1886,51 @@ yyreduce:
     break;
 
   case 13:
-#line 203 "ael.y"
+#line 205 "ael.y"
     { (yyval.intval) = 1; ;}
     break;
 
   case 14:
-#line 204 "ael.y"
+#line 206 "ael.y"
     { (yyval.intval) = 0; ;}
     break;
 
   case 15:
-#line 207 "ael.y"
+#line 209 "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 212 "ael.y"
+#line 214 "ael.y"
     {
 		(yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
     break;
 
   case 17:
-#line 217 "ael.y"
+#line 219 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 18:
-#line 218 "ael.y"
+#line 220 "ael.y"
     {(yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 19:
-#line 219 "ael.y"
+#line 221 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 20:
-#line 222 "ael.y"
+#line 224 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 21:
-#line 222 "ael.y"
+#line 224 "ael.y"
     {
 		(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -1933,89 +1938,89 @@ yyreduce:
     break;
 
   case 22:
-#line 229 "ael.y"
+#line 231 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 23:
-#line 230 "ael.y"
+#line 232 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 24:
-#line 231 "ael.y"
+#line 233 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;}
     break;
 
   case 25:
-#line 232 "ael.y"
+#line 234 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 26:
-#line 235 "ael.y"
+#line 237 "ael.y"
     {(yyval.pval)=0;;}
     break;
 
   case 27:
-#line 236 "ael.y"
+#line 238 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 28:
-#line 237 "ael.y"
+#line 239 "ael.y"
     { (yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 29:
-#line 240 "ael.y"
+#line 242 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 30:
-#line 241 "ael.y"
+#line 243 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 31:
-#line 242 "ael.y"
+#line 244 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 32:
-#line 243 "ael.y"
+#line 245 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 33:
-#line 244 "ael.y"
+#line 246 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 34:
-#line 245 "ael.y"
+#line 247 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 35:
-#line 246 "ael.y"
+#line 248 "ael.y"
     {free((yyvsp[-1].str)); (yyval.pval)=0;;}
     break;
 
   case 36:
-#line 247 "ael.y"
+#line 249 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 37:
-#line 250 "ael.y"
+#line 252 "ael.y"
     {
 		(yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 38:
-#line 255 "ael.y"
+#line 257 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2023,7 +2028,7 @@ yyreduce:
     break;
 
   case 39:
-#line 259 "ael.y"
+#line 261 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2032,7 +2037,7 @@ yyreduce:
     break;
 
   case 40:
-#line 264 "ael.y"
+#line 266 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2041,7 +2046,7 @@ yyreduce:
     break;
 
   case 41:
-#line 269 "ael.y"
+#line 271 "ael.y"
     {
 		(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2051,22 +2056,22 @@ yyreduce:
     break;
 
   case 42:
-#line 279 "ael.y"
+#line 281 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 43:
-#line 280 "ael.y"
+#line 282 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 44:
-#line 281 "ael.y"
+#line 283 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 45:
-#line 287 "ael.y"
+#line 289 "ael.y"
     {
 		asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[-4].str), (yyvsp[-2].str), (yyvsp[0].str));
 		free((yyvsp[-4].str));
@@ -2075,12 +2080,12 @@ yyreduce:
     break;
 
   case 46:
-#line 292 "ael.y"
+#line 294 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
   case 47:
-#line 296 "ael.y"
+#line 298 "ael.y"
     {
 		(yyval.pval) = nword((yyvsp[-6].str), &(yylsp[-6]));
 		(yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4]));
@@ -2089,32 +2094,31 @@ yyreduce:
     break;
 
   case 48:
-#line 304 "ael.y"
+#line 306 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 49:
-#line 304 "ael.y"
-    {
-		(yyval.str) = (yyvsp[-1].str); ;}
+#line 306 "ael.y"
+    { (yyval.str) = (yyvsp[-1].str); ;}
     break;
 
   case 50:
-#line 309 "ael.y"
+#line 310 "ael.y"
     {
 		(yyval.pval)= npval2(PV_IF, &(yylsp[-1]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[0].str); ;}
     break;
 
   case 51:
-#line 312 "ael.y"
+#line 313 "ael.y"
     {
 		(yyval.pval) = npval2(PV_RANDOM, &(yylsp[-1]), &(yylsp[0]));
 		(yyval.pval)->u1.str=(yyvsp[0].str);;}
     break;
 
   case 52:
-#line 315 "ael.y"
+#line 316 "ael.y"
     {
 		(yyval.pval) = npval2(PV_IFTIME, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval);
@@ -2122,12 +2126,12 @@ yyreduce:
     break;
 
   case 53:
-#line 326 "ael.y"
+#line 327 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 54:
-#line 327 "ael.y"
+#line 328 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-1].str));
@@ -2136,12 +2140,12 @@ yyreduce:
     break;
 
   case 55:
-#line 334 "ael.y"
+#line 335 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 56:
-#line 335 "ael.y"
+#line 336 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-1].str));
@@ -2150,7 +2154,7 @@ yyreduce:
     break;
 
   case 57:
-#line 340 "ael.y"
+#line 341 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-2].str));
@@ -2160,12 +2164,12 @@ yyreduce:
     break;
 
   case 58:
-#line 348 "ael.y"
+#line 349 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 59:
-#line 349 "ael.y"
+#line 350 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
 		free((yyvsp[-1].str));
@@ -2173,7 +2177,7 @@ yyreduce:
     break;
 
   case 60:
-#line 353 "ael.y"
+#line 354 "ael.y"
     {
 		asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str));
 		free((yyvsp[-2].str));
@@ -2181,7 +2185,7 @@ yyreduce:
     break;
 
   case 61:
-#line 359 "ael.y"
+#line 360 "ael.y"
     {
 		(yyval.pval) = npval2(PV_SWITCH, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-3].str);
@@ -2189,55 +2193,55 @@ yyreduce:
     break;
 
   case 62:
-#line 368 "ael.y"
+#line 369 "ael.y"
     {
 		(yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
   case 63:
-#line 371 "ael.y"
+#line 372 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
   case 64:
-#line 372 "ael.y"
+#line 373 "ael.y"
     {
 		(yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 65:
-#line 375 "ael.y"
+#line 376 "ael.y"
     {
 		(yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 66:
-#line 378 "ael.y"
+#line 379 "ael.y"
     {
 		(yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 67:
-#line 381 "ael.y"
+#line 382 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 68:
-#line 382 "ael.y"
+#line 383 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 69:
-#line 383 "ael.y"
+#line 384 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 70:
-#line 383 "ael.y"
+#line 384 "ael.y"
     { /* XXX word_list maybe ? */
 		(yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0]));
 		(yyval.pval)->u1.for_init = (yyvsp[-8].str);
@@ -2247,7 +2251,7 @@ yyreduce:
     break;
 
   case 71:
-#line 389 "ael.y"
+#line 390 "ael.y"
     {
 		(yyval.pval) = npval2(PV_WHILE, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str);
@@ -2255,36 +2259,34 @@ yyreduce:
     break;
 
   case 72:
-#line 393 "ael.y"
+#line 394 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
   case 73:
-#line 394 "ael.y"
-    {
-		(yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;}
+#line 395 "ael.y"
+    { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;}
     break;
 
   case 74:
 #line 396 "ael.y"
-    {
-		(yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
+    { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 75:
-#line 398 "ael.y"
+#line 397 "ael.y"
     {
 		(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 76:
-#line 401 "ael.y"
+#line 400 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 77:
-#line 401 "ael.y"
+#line 400 "ael.y"
     {
 		char *bufx;
 		int tot=0;
@@ -2321,22 +2323,22 @@ yyreduce:
     break;
 
   case 78:
-#line 434 "ael.y"
+#line 433 "ael.y"
     { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 79:
-#line 435 "ael.y"
+#line 434 "ael.y"
     { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 80:
-#line 436 "ael.y"
+#line 435 "ael.y"
     { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 81:
-#line 437 "ael.y"
+#line 436 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1]));
 		(yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2344,41 +2346,41 @@ yyreduce:
     break;
 
   case 82:
-#line 441 "ael.y"
+#line 440 "ael.y"
     { (yyval.pval)=0; ;}
     break;
 
   case 83:
-#line 444 "ael.y"
+#line 443 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
   case 84:
-#line 445 "ael.y"
+#line 444 "ael.y"
     { (yyval.pval) = NULL ; ;}
     break;
 
   case 85:
-#line 450 "ael.y"
+#line 449 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 86:
-#line 451 "ael.y"
+#line 450 "ael.y"
     {
 		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
 		(yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 87:
-#line 454 "ael.y"
+#line 453 "ael.y"
     {
 		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
 		(yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 88:
-#line 457 "ael.y"
+#line 456 "ael.y"
     {
 		(yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
 		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2386,7 +2388,7 @@ yyreduce:
     break;
 
   case 89:
-#line 461 "ael.y"
+#line 460 "ael.y"
     {
 		(yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
 		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2394,7 +2396,7 @@ yyreduce:
     break;
 
   case 90:
-#line 465 "ael.y"
+#line 464 "ael.y"
     {
 		(yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
 		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2402,7 +2404,7 @@ yyreduce:
     break;
 
   case 91:
-#line 469 "ael.y"
+#line 468 "ael.y"
     {
 		(yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
 		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
@@ -2410,42 +2412,37 @@ yyreduce:
     break;
 
   case 92:
-#line 476 "ael.y"
-    {			/* ext, 1 */
-		(yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
-		(yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;}
+#line 474 "ael.y"
+    { (yyval.str) = strdup("1"); ;}
     break;
 
   case 93:
+#line 475 "ael.y"
+    { (yyval.str) = (yyvsp[0].str); ;}
+    break;
+
+  case 94:
 #line 479 "ael.y"
-    {		/* ext, pri */
-		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
+    {			/* ext[, pri] default 1 */
+		(yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1]));
 		(yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 94:
+  case 95:
 #line 482 "ael.y"
     {	/* context, ext, pri */
 		(yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
-		(yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4]));
+		(yyval.pval)->next = nword((yyvsp[-3].str), &(yylsp[-3]));
 		(yyval.pval)->next->next = nword((yyvsp[-2].str), &(yylsp[-2])); ;}
     break;
 
-  case 95:
-#line 486 "ael.y"
-    {		/* context, ext, 1 */
-		(yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
-		(yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
-		(yyval.pval)->next->next = nword(strdup("1"), &(yylsp[0])); ;}
-    break;
-
   case 96:
-#line 492 "ael.y"
+#line 488 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 97:
-#line 492 "ael.y"
+#line 488 "ael.y"
     {
 		/* XXX original code had @2 but i think we need @5 */
 		(yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0]));
@@ -2454,19 +2451,19 @@ yyreduce:
     break;
 
   case 98:
-#line 497 "ael.y"
+#line 493 "ael.y"
     {
 		(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
   case 99:
-#line 505 "ael.y"
+#line 501 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
   case 100:
-#line 505 "ael.y"
+#line 501 "ael.y"
     {
 		if (strcasecmp((yyvsp[-2].str),"goto") == 0) {
 			(yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[-1]));
@@ -2479,7 +2476,7 @@ yyreduce:
     break;
 
   case 101:
-#line 516 "ael.y"
+#line 512 "ael.y"
     {
 		(yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
  		if( (yyval.pval)->type == PV_GOTO )
@@ -2490,49 +2487,49 @@ yyreduce:
     break;
 
   case 102:
-#line 523 "ael.y"
+#line 519 "ael.y"
     { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 103:
-#line 526 "ael.y"
+#line 522 "ael.y"
     { (yyval.str) = (yyvsp[0].str) ;}
     break;
 
   case 104:
-#line 527 "ael.y"
+#line 523 "ael.y"
     { (yyval.str) = strdup(""); ;}
     break;
 
   case 105:
-#line 530 "ael.y"
+#line 526 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 106:
-#line 531 "ael.y"
+#line 527 "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 107:
-#line 534 "ael.y"
+#line 530 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;}
     break;
 
   case 108:
-#line 537 "ael.y"
+#line 533 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 109:
-#line 538 "ael.y"
+#line 534 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 110:
-#line 541 "ael.y"
+#line 537 "ael.y"
     {
 		(yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2540,7 +2537,7 @@ yyreduce:
     break;
 
   case 111:
-#line 545 "ael.y"
+#line 541 "ael.y"
     {
 		(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0]));
 		(yyval.pval)->u1.str = NULL;
@@ -2548,7 +2545,7 @@ yyreduce:
     break;
 
   case 112:
-#line 549 "ael.y"
+#line 545 "ael.y"
     {
 		(yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */
 		(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2556,22 +2553,22 @@ yyreduce:
     break;
 
   case 113:
-#line 555 "ael.y"
+#line 551 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 114:
-#line 556 "ael.y"
+#line 552 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 115:
-#line 559 "ael.y"
+#line 555 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 116:
-#line 560 "ael.y"
+#line 556 "ael.y"
     {
 		(yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0]));
 		(yyval.pval)->u1.str = (yyvsp[-3].str);
@@ -2579,41 +2576,41 @@ yyreduce:
     break;
 
   case 117:
-#line 566 "ael.y"
+#line 562 "ael.y"
     {
 		(yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-3]), &(yylsp[-2]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
   case 118:
-#line 571 "ael.y"
+#line 567 "ael.y"
     {
 		(yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-3]), &(yylsp[-2]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
   case 119:
-#line 576 "ael.y"
+#line 572 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 120:
-#line 577 "ael.y"
+#line 573 "ael.y"
     { (yyval.pval) = linku1(nword((yyvsp[-2].str), &(yylsp[-2])), (yyvsp[0].pval)); ;}
     break;
 
   case 121:
-#line 578 "ael.y"
+#line 574 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 122:
-#line 581 "ael.y"
+#line 577 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 123:
-#line 582 "ael.y"
+#line 578 "ael.y"
     {
 		(yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
 		(yyval.pval)->u2.arglist = (yyvsp[0].pval);
@@ -2621,29 +2618,29 @@ yyreduce:
     break;
 
   case 124:
-#line 589 "ael.y"
+#line 585 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
   case 125:
-#line 590 "ael.y"
+#line 586 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), (yyvsp[-1].pval)); ;}
     break;
 
   case 126:
-#line 591 "ael.y"
+#line 587 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 127:
-#line 594 "ael.y"
+#line 590 "ael.y"
     {
 		(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0]));
 		(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 128:
-#line 597 "ael.y"
+#line 593 "ael.y"
     {
 		(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;}
     break;
@@ -2653,7 +2650,7 @@ yyreduce:
     }
 
 /* Line 1126 of yacc.c.  */
-#line 2657 "ael.tab.c"
+#line 2654 "ael.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -2928,7 +2925,7 @@ yyreturn:
 }
 
 
-#line 602 "ael.y"
+#line 598 "ael.y"
 
 
 static char *token_equivs1[] =
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index 75cffb0538..1b129f80b5 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -128,6 +128,7 @@ static pval *update_last(pval *, YYLTYPE *);
 %type <str>word_list
 %type <str>word3_list
 %type <str>test_expr
+%type <str>opt_pri
 
 %type <intval>opt_abstract
 
@@ -170,6 +171,7 @@ static pval *update_last(pval *, YYLTYPE *);
 %destructor { free($$);}  word word_list goto_word word3_list opt_word context_name
 		timerange
 		test_expr
+		opt_pri
 
 
 %%
@@ -301,8 +303,7 @@ timespec : timerange BAR word3_list BAR word3_list BAR word3_list {
 	;
 
 /* expression used in if, random, while, switch */
-test_expr : LP { reset_parencount(parseio->scanner); }  word_list RP {
-		$$ = $3; }
+test_expr : LP { reset_parencount(parseio->scanner); }  word_list RP { $$ = $3; }
 	;
 
 /* 'if' like statements: if, iftime, random */
@@ -391,10 +392,8 @@ statement : LC statements RC {
 		$$->u1.str = $2;
 		$$->u2.statements = $3; }
 	| switch_statement { $$ = $1; }
-	| AMPER macro_call SEMI {
-		$$ = update_last($2, &@2); }
-	| application_call SEMI {
-		$$ = update_last($1, &@2); }
+	| AMPER macro_call SEMI { $$ = update_last($2, &@2); }
+	| application_call SEMI { $$ = update_last($1, &@2); }
 	| word SEMI {
 		$$= npval2(PV_APPLICATION_CALL, &@1, &@2);
 		$$->u1.str = $1;}
@@ -472,21 +471,18 @@ target : goto_word { $$ = nword($1, &@1); }
 		$$->next->next = nword($5, &@5); }
 	;
 
+opt_pri : /* empty */ { $$ = strdup("1"); }
+	| COMMA word { $$ = $2; }
+	;
+
 /* XXX please document the form of jumptarget */
-jumptarget : goto_word {			/* ext, 1 */
-		$$ = nword($1, &@1);
-		$$->next = nword(strdup("1"), &@1); }  /*  jump extension[,priority][@context] */
-	| goto_word COMMA word {		/* ext, pri */
+jumptarget : goto_word opt_pri {			/* ext[, pri] default 1 */
 		$$ = nword($1, &@1);
-		$$->next = nword($3, &@3); }
-	| goto_word COMMA word AT context_name {	/* context, ext, pri */
-		$$ = nword($5, &@5);
-		$$->next = nword($1, &@1);
-		$$->next->next = nword($3, &@3); }
-	| goto_word AT context_name {		/* context, ext, 1 */
-		$$ = nword($3, &@3);
+		$$->next = nword($2, &@2); }  /*  jump extension[,priority][@context] */
+	| goto_word opt_pri AT context_name {	/* context, ext, pri */
+		$$ = nword($4, &@4);
 		$$->next = nword($1, &@1);
-		$$->next->next = nword(strdup("1"), &@3); }
+		$$->next->next = nword($2, &@2); }
 	;
 
 macro_call : word LP {reset_argcount(parseio->scanner);} eval_arglist RP {
-- 
GitLab