remove another useless nonterminal
authorLuigi Rizzo <rizzo@icir.org>
Wed, 3 May 2006 16:46:55 +0000 (16:46 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Wed, 3 May 2006 16:46:55 +0000 (16:46 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24430 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/ael/ael.tab.c
pbx/ael/ael.y

index d09233f..6f82e61 100644 (file)
@@ -420,16 +420,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  14
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   276
+#define YYLAST   281
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  42
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  53
+#define YYNNTS  52
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  129
+#define YYNRULES  128
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  261
+#define YYNSTATES  260
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -479,18 +479,18 @@ static const unsigned char yytranslate[] =
 static const unsigned short int yyprhs[] =
 {
        0,     0,     3,     5,     7,    10,    13,    15,    17,    19,
-      21,    23,    25,    30,    32,    33,    42,    47,    48,    51,
-      54,    55,    61,    62,    64,    68,    71,    75,    76,    79,
-      82,    84,    86,    88,    90,    92,    94,    97,    99,   104,
-     108,   113,   121,   130,   131,   134,   137,   143,   145,   153,
-     154,   159,   162,   165,   170,   172,   175,   177,   180,   184,
-     186,   189,   193,   199,   203,   205,   209,   213,   216,   217,
-     218,   219,   232,   236,   238,   242,   245,   248,   249,   255,
-     258,   261,   264,   268,   270,   273,   274,   276,   280,   284,
-     290,   296,   302,   308,   310,   314,   320,   324,   325,   331,
-     335,   336,   340,   344,   347,   349,   350,   352,   353,   357,
-     358,   361,   366,   370,   375,   376,   379,   381,   387,   392,
-     397,   398,   402,   405,   407,   411,   414,   418,   421,   426
+      21,    23,    25,    32,    34,    35,    44,    49,    50,    53,
+      56,    57,    63,    64,    66,    70,    73,    74,    77,    80,
+      82,    84,    86,    88,    90,    92,    95,    97,   102,   106,
+     111,   119,   128,   129,   132,   135,   141,   143,   151,   152,
+     157,   160,   163,   168,   170,   173,   175,   178,   182,   184,
+     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
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -498,65 +498,65 @@ static const yysigned_char yyrhs[] =
 {
       43,     0,    -1,    44,    -1,    45,    -1,    44,    45,    -1,
       44,     1,    -1,    47,    -1,    49,    -1,    50,    -1,     8,
-      -1,    41,    -1,    36,    -1,    48,     3,    46,    55,    -1,
-      23,    -1,    -1,    15,    41,     6,    54,     7,     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,     4,    56,     5,    -1,    -1,    57,    56,    -1,    56,
-       1,    -1,    59,    -1,    94,    -1,    89,    -1,    90,    -1,
-      58,    -1,    52,    -1,    41,     1,    -1,     8,    -1,    17,
-      24,    41,     8,    -1,    41,    24,    70,    -1,    30,    41,
-      24,    70,    -1,    31,     6,    67,     7,    41,    24,    70,
-      -1,    30,    31,     6,    67,     7,    41,    24,    70,    -1,
-      -1,    70,    60,    -1,    60,     1,    -1,    67,    11,    67,
-      11,    67,    -1,    41,    -1,    61,    13,    67,    13,    67,
-      13,    67,    -1,    -1,     6,    64,    66,     7,    -1,    19,
-      63,    -1,    22,    63,    -1,    20,     6,    62,     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,    63,     4,    85,     5,    -1,     4,
-      60,     5,    -1,    52,    -1,    25,    76,     8,    -1,    26,
-      77,     8,    -1,    41,    11,    -1,    -1,    -1,    -1,    32,
-       6,    71,    41,     8,    72,    41,     8,    73,    41,     7,
-      70,    -1,    33,    63,    70,    -1,    69,    -1,    12,    78,
-       8,    -1,    82,     8,    -1,    41,     8,    -1,    -1,    82,
-       9,    74,    41,     8,    -1,    28,     8,    -1,    27,     8,
-      -1,    29,     8,    -1,    65,    70,    75,    -1,     8,    -1,
-      21,    70,    -1,    -1,    68,    -1,    68,    13,    68,    -1,
-      68,    10,    68,    -1,    68,    13,    68,    13,    68,    -1,
-      68,    10,    68,    10,    68,    -1,    36,    13,    68,    13,
-      68,    -1,    36,    10,    68,    10,    68,    -1,    68,    -1,
-      68,    10,    68,    -1,    68,    10,    41,    14,    46,    -1,
-      68,    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,
-      66,    -1,    -1,    84,    10,    83,    -1,    -1,    86,    85,
-      -1,    34,    41,    11,    60,    -1,    36,    11,    60,    -1,
-      35,    41,    11,    60,    -1,    -1,    88,    87,    -1,    70,
-      -1,    37,    41,     4,    60,     5,    -1,    38,     4,    91,
-       5,    -1,    39,     4,    91,     5,    -1,    -1,    41,     8,
-      91,    -1,    91,     1,    -1,    46,    -1,    46,    13,    62,
-      -1,    92,     8,    -1,    93,    92,     8,    -1,    93,     1,
-      -1,    40,     4,    93,     5,    -1,    40,     4,     5,    -1
+      -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,
+      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,
+      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,
+      31,     6,    66,     7,    41,    24,    69,    -1,    -1,    69,
+      59,    -1,    59,     1,    -1,    66,    11,    66,    11,    66,
+      -1,    41,    -1,    60,    13,    66,    13,    66,    13,    66,
+      -1,    -1,     6,    63,    65,     7,    -1,    19,    62,    -1,
+      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,    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,
+      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,
+      67,    -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
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,   179,   179,   182,   183,   184,   187,   188,   189,   190,
-     193,   194,   197,   205,   206,   209,   214,   219,   220,   221,
-     224,   224,   230,   231,   232,   233,   236,   239,   240,   241,
-     244,   245,   246,   247,   248,   249,   250,   251,   254,   259,
-     263,   268,   273,   283,   284,   285,   291,   296,   300,   308,
-     308,   313,   316,   319,   330,   331,   338,   339,   344,   352,
-     353,   357,   363,   372,   375,   376,   379,   382,   385,   386,
-     387,   385,   393,   397,   398,   400,   402,   405,   405,   438,
-     439,   440,   441,   445,   448,   449,   454,   455,   458,   461,
-     465,   469,   473,   480,   483,   486,   490,   496,   496,   501,
-     509,   509,   520,   527,   530,   531,   534,   535,   538,   541,
-     542,   545,   549,   553,   559,   560,   563,   564,   570,   575,
-     580,   581,   582,   585,   586,   593,   594,   595,   598,   601
+       0,   177,   177,   180,   181,   182,   185,   186,   187,   188,
+     191,   192,   195,   203,   204,   207,   212,   217,   218,   219,
+     222,   222,   228,   229,   230,   231,   234,   235,   236,   239,
+     240,   241,   242,   243,   244,   245,   246,   249,   254,   258,
+     263,   268,   278,   279,   280,   286,   291,   295,   303,   303,
+     308,   311,   314,   325,   326,   333,   334,   339,   347,   348,
+     352,   358,   367,   370,   371,   374,   377,   380,   381,   382,
+     380,   388,   392,   393,   395,   397,   400,   400,   433,   434,
+     435,   436,   440,   443,   444,   449,   450,   453,   456,   460,
+     464,   468,   475,   478,   481,   485,   491,   491,   496,   504,
+     504,   515,   522,   525,   526,   529,   530,   533,   536,   537,
+     540,   544,   548,   554,   555,   558,   559,   565,   570,   575,
+     576,   577,   580,   581,   588,   589,   590,   593,   596
 };
 #endif
 
@@ -574,11 +574,11 @@ static const char *const yytname[] =
   "KW_SWITCHES", "KW_ESWITCHES", "KW_INCLUDES", "word", "$accept", "file",
   "objects", "object", "context_name", "context", "opt_abstract", "macro",
   "globals", "global_statements", "assignment", "@1", "arglist",
-  "elements_block", "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",
+  "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",
   "eval_arglist", "case_statements", "case_statement", "macro_statements",
   "macro_statement", "switches", "eswitches", "switchlist",
   "included_entry", "includeslist", "includes", 0
@@ -603,35 +603,35 @@ static const unsigned char yyr1[] =
 {
        0,    42,    43,    44,    44,    44,    45,    45,    45,    45,
       46,    46,    47,    48,    48,    49,    50,    51,    51,    51,
-      53,    52,    54,    54,    54,    54,    55,    56,    56,    56,
-      57,    57,    57,    57,    57,    57,    57,    57,    58,    59,
-      59,    59,    59,    60,    60,    60,    61,    61,    62,    64,
-      63,    65,    65,    65,    66,    66,    67,    67,    67,    68,
-      68,    68,    69,    70,    70,    70,    70,    70,    71,    72,
-      73,    70,    70,    70,    70,    70,    70,    74,    70,    70,
-      70,    70,    70,    70,    75,    75,    76,    76,    76,    76,
-      76,    76,    76,    77,    77,    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
+      53,    52,    54,    54,    54,    54,    55,    55,    55,    56,
+      56,    56,    56,    56,    56,    56,    56,    57,    58,    58,
+      58,    58,    59,    59,    59,    60,    60,    61,    63,    62,
+      64,    64,    64,    65,    65,    66,    66,    66,    67,    67,
+      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
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const unsigned char yyr2[] =
 {
        0,     2,     1,     1,     2,     2,     1,     1,     1,     1,
-       1,     1,     4,     1,     0,     8,     4,     0,     2,     2,
-       0,     5,     0,     1,     3,     2,     3,     0,     2,     2,
-       1,     1,     1,     1,     1,     1,     2,     1,     4,     3,
-       4,     7,     8,     0,     2,     2,     5,     1,     7,     0,
-       4,     2,     2,     4,     1,     2,     1,     2,     3,     1,
-       2,     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,     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
+       1,     1,     6,     1,     0,     8,     4,     0,     2,     2,
+       0,     5,     0,     1,     3,     2,     0,     2,     2,     1,
+       1,     1,     1,     1,     1,     2,     1,     4,     3,     4,
+       7,     8,     0,     2,     2,     5,     1,     7,     0,     4,
+       2,     2,     4,     1,     2,     1,     2,     3,     1,     2,
+       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,
+       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
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -642,155 +642,155 @@ static const unsigned char yydefact[] =
       14,     9,     0,     0,    13,     0,     0,     3,     6,     0,
        7,     8,     0,    17,     1,     5,     4,     0,    22,     0,
        0,    17,    11,    10,     0,    23,     0,    20,    19,    16,
-       0,    27,    12,    25,     0,     0,     0,    37,     0,     0,
-       0,     0,     0,     0,     0,    35,     0,    27,    34,    30,
-      32,    33,    31,   114,    24,     0,     0,     0,     0,     0,
-     120,   120,     0,    36,     0,    29,    26,     0,    43,    83,
+       0,    26,    25,     0,     0,     0,    36,     0,     0,     0,
+       0,     0,     0,     0,    34,     0,    26,    33,    29,    31,
+      32,    30,   113,    24,     0,     0,     0,     0,     0,   119,
+     119,     0,    35,     0,    28,    12,     0,    42,    82,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    64,     0,    73,   116,   107,     0,
-       0,   114,    21,     0,     0,     0,    56,     0,     0,     0,
-       0,   129,   123,     0,     0,    39,     0,    43,     0,     0,
-      49,     0,    51,     0,    52,     0,    59,    86,     0,    93,
-       0,    80,    79,    81,    68,     0,     0,   100,    76,    67,
-      85,   103,    54,   106,     0,    75,    77,    15,   115,    38,
-       0,    40,    57,     0,   120,   122,   118,   119,     0,   125,
-     127,   128,     0,    45,    63,     0,    97,    74,     0,   109,
-      47,     0,     0,     0,     0,     0,     0,    60,     0,     0,
-      65,     0,     0,    66,     0,    72,    43,   101,     0,    82,
-      55,   102,   105,     0,     0,    58,     0,     0,   124,   126,
-      99,   107,     0,     0,     0,     0,     0,   109,     0,    53,
-       0,     0,     0,    61,    88,    87,    59,    94,    96,     0,
-       0,    84,   104,   108,     0,     0,     0,     0,    50,     0,
-       0,    43,    62,   110,     0,     0,     0,     0,     0,     0,
-       0,    69,   117,    78,     0,    41,    98,    43,    43,     0,
-       0,     0,    92,    91,    90,    89,    95,     0,    42,     0,
-       0,     0,    46,     0,     0,    70,    48,     0,     0,     0,
-      71
+       0,     0,     0,    63,     0,    72,   115,   106,     0,     0,
+     113,    21,     0,     0,     0,    55,     0,     0,     0,     0,
+     128,   122,     0,     0,    38,     0,    42,     0,     0,    48,
+       0,    50,     0,    51,     0,    58,    85,     0,    92,     0,
+      79,    78,    80,    67,     0,     0,    99,    75,    66,    84,
+     102,    53,   105,     0,    74,    76,    15,   114,    37,     0,
+      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,
+     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,    58,    93,    95,     0,     0,
+      83,   103,   107,     0,     0,     0,     0,    49,     0,     0,
+      42,    61,   109,     0,     0,     0,     0,     0,     0,     0,
+      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
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short int yydefgoto[] =
 {
-      -1,     5,     6,     7,   102,     8,     9,    10,    11,    20,
-      84,    36,    26,    32,    46,    47,    48,    49,   106,   161,
-     162,   111,   158,    85,   133,   163,   117,    86,   107,   174,
-     247,   257,   183,   179,   118,   120,   109,   191,    88,   177,
-      89,   213,   134,   196,   197,    90,    91,    50,    51,    99,
-     103,   104,    52
+      -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,   246,
+     256,   182,   178,   117,   119,   108,   190,    87,   176,    88,
+     212,   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 -105
+#define YYPACT_NINF -104
 static const short int yypact[] =
 {
-       1,  -105,   -13,    83,  -105,    64,   200,  -105,  -105,    93,
-    -105,  -105,    99,    79,  -105,  -105,  -105,   -15,    89,   110,
-      24,    79,  -105,  -105,   135,  -105,    12,  -105,  -105,  -105,
-      70,   155,  -105,  -105,   148,   113,   130,  -105,   116,   -23,
-     167,   170,   171,   172,    60,  -105,    73,   155,  -105,  -105,
-    -105,  -105,  -105,    26,  -105,   169,   137,   173,   156,   140,
-     146,   146,    -1,  -105,    96,  -105,  -105,    78,    96,  -105,
-     147,   183,   183,   184,   183,    -9,   150,   190,   191,   194,
-     186,   183,   163,   136,  -105,    96,  -105,  -105,     8,   104,
-     201,    26,  -105,   197,   140,    96,   168,   203,   204,    80,
-      81,  -105,   198,   206,     6,  -105,    92,    96,   211,   210,
-    -105,   215,  -105,   179,  -105,   125,     9,   138,   213,     0,
-     214,  -105,  -105,  -105,  -105,    96,   220,  -105,  -105,  -105,
-     205,  -105,   187,  -105,   139,  -105,  -105,  -105,  -105,  -105,
-     218,  -105,   188,   189,   146,  -105,  -105,  -105,   179,  -105,
-    -105,  -105,   219,  -105,  -105,    55,   224,  -105,   192,   134,
-      25,   221,   225,   226,   150,   150,   195,  -105,   150,   150,
-    -105,   199,   -15,  -105,   202,  -105,    96,  -105,    96,  -105,
-    -105,  -105,   207,   208,   209,  -105,   217,   101,  -105,  -105,
-    -105,   192,   228,   212,   216,   227,   234,   134,   140,  -105,
-     140,   232,   231,  -105,   235,   233,    51,  -105,  -105,   239,
-     102,  -105,  -105,  -105,   243,   230,    96,   143,  -105,   241,
-     244,    96,  -105,  -105,   245,   248,   150,   150,   150,   150,
-     -15,  -105,  -105,  -105,    96,  -105,  -105,    96,    96,    75,
-     140,   140,  -105,  -105,  -105,  -105,  -105,   222,  -105,   126,
-     131,   247,  -105,   253,   140,  -105,  -105,   223,   249,    96,
-    -105
+       2,  -104,   -27,    18,  -104,    56,   165,  -104,  -104,    66,
+    -104,  -104,    68,    40,  -104,  -104,  -104,   -12,    54,   105,
+      27,    40,  -104,  -104,    92,  -104,   109,  -104,  -104,  -104,
+      63,   122,  -104,   128,    99,   101,  -104,   135,   -22,   171,
+     181,   187,   188,    12,  -104,   107,   122,  -104,  -104,  -104,
+    -104,  -104,    26,  -104,   185,   153,   189,   172,   157,   158,
+     158,    -1,  -104,    58,  -104,  -104,   108,    58,  -104,   159,
+     195,   195,   196,   195,    24,   162,   197,   198,   200,   203,
+     195,   163,   161,  -104,    58,  -104,  -104,     8,    93,   205,
+      26,  -104,   206,   157,    58,   174,   204,   208,   123,   124,
+    -104,   207,   209,     6,  -104,   130,    58,   212,   211,  -104,
+     217,  -104,   182,  -104,    69,    16,   166,   214,   137,   216,
+    -104,  -104,  -104,  -104,    58,   221,  -104,  -104,  -104,   192,
+    -104,   186,  -104,   179,  -104,  -104,  -104,  -104,  -104,   219,
+    -104,   190,   191,   158,  -104,  -104,  -104,   182,  -104,  -104,
+    -104,   220,  -104,  -104,    70,   222,  -104,   193,   114,    20,
+     223,   226,   224,   162,   162,   199,  -104,   162,   162,  -104,
+     201,   -12,  -104,   202,  -104,    58,  -104,    58,  -104,  -104,
+    -104,   210,   213,   215,  -104,   225,   170,  -104,  -104,  -104,
+     193,   230,   218,   227,   228,   233,   114,   157,  -104,   157,
+     231,   232,  -104,   234,   235,     9,  -104,  -104,   238,   173,
+    -104,  -104,  -104,   239,   229,    58,   180,  -104,   241,   244,
+      58,  -104,  -104,   237,   246,   162,   162,   162,   162,   -12,
+    -104,  -104,  -104,    58,  -104,  -104,    58,    58,    87,   157,
+     157,  -104,  -104,  -104,  -104,  -104,   236,  -104,   102,   110,
+     245,  -104,   252,   157,  -104,  -104,   240,   254,    58,  -104
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -105,  -105,  -105,   256,   -17,  -105,  -105,  -105,  -105,   246,
-      10,  -105,  -105,  -105,   229,  -105,  -105,  -105,  -104,  -105,
-     117,    -4,  -105,  -105,   108,   -57,   -70,  -105,   -52,  -105,
-    -105,  -105,  -105,  -105,  -105,  -105,  -105,  -105,  -105,  -105,
-    -105,  -105,    77,    72,  -105,   180,  -105,  -105,  -105,   -56,
-     166,  -105,  -105
+    -104,  -104,  -104,   256,   -17,  -104,  -104,  -104,  -104,   242,
+      -5,  -104,  -104,   184,  -104,  -104,  -104,  -103,  -104,   117,
+      47,  -104,  -104,   112,   -56,   -70,  -104,   -51,  -104,  -104,
+    -104,  -104,  -104,  -104,  -104,  -104,  -104,  -104,  -104,  -104,
+    -104,    75,    71,  -104,   176,  -104,  -104,  -104,   -54,   167,
+    -104,  -104
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -122
+#define YYTABLE_NINF -121
 static const short int yytable[] =
 {
-      24,    87,    97,   155,   101,   100,   119,   150,    57,     1,
-     171,   151,   105,    33,   172,   131,     2,     3,    58,    34,
-     166,    22,    35,    21,     4,    28,    23,   115,    12,    29,
-      68,    21,   116,   130,    69,    22,   -56,   140,    70,    87,
-      23,    45,    22,   141,    71,    72,    73,    23,    74,   132,
-     167,    75,    76,    77,    78,    79,   153,    45,    80,    81,
-     -44,    63,   166,    82,    14,   230,   142,    83,   112,    27,
-     114,    28,   210,   175,    65,   -18,   153,   125,    66,    65,
-    -112,   145,   145,   -28,    64,   146,   147,    13,   187,   -44,
-     -44,   -44,   167,   153,   201,   202,    17,   154,   204,   205,
-      68,   207,   145,   153,    69,    18,  -121,   232,    70,  -112,
-    -112,  -112,   135,   136,    71,    72,    73,   239,    74,    27,
-      19,    75,    76,    77,    78,    79,   211,   153,    80,    81,
-      25,  -111,   153,   249,   250,   164,  -113,    83,   165,    31,
-      56,   224,   127,   225,   128,    27,   181,   129,   168,   182,
-     236,   169,    53,   182,    54,   208,   242,   243,   244,   245,
-    -111,  -111,  -111,    37,   235,  -113,  -113,  -113,   193,   194,
-     195,    55,    38,    59,    60,    61,    62,    92,    93,    94,
-      95,    96,   248,   251,   252,    39,    40,    98,   108,   110,
-     113,   116,   124,    41,    42,    43,    44,   256,   121,   122,
-      -2,    15,   123,   -14,   126,   139,   137,   260,     1,   142,
-     143,   148,   144,   246,   149,     2,     3,   156,   157,   159,
-     160,   170,   173,     4,   176,   184,   178,   189,   180,   185,
-     186,   190,   199,   132,   198,   218,   203,   200,   221,   222,
-     206,   216,   226,   209,   227,   228,   229,   231,   212,   214,
-     215,   233,   237,   219,   234,   238,   259,   220,   240,   241,
-     254,   255,    16,   253,   258,   188,   192,    30,   217,   223,
-     152,   138,     0,     0,     0,     0,    67
+      24,    86,    96,   154,   100,   118,    99,   149,    21,    56,
+       1,   150,   104,    62,    12,   130,    21,     2,     3,    57,
+     165,    27,    13,   229,    22,     4,    44,   165,    28,    23,
+      67,   -55,    29,   129,    68,    22,    63,   139,    69,    86,
+      23,    44,    22,   140,    70,    71,    72,    23,    73,   131,
+     166,    74,    75,    76,    77,    78,    14,   166,    79,    80,
+     114,   141,    67,    81,    28,   115,    68,    82,   -18,    17,
+      69,   152,   209,   174,    18,   -43,    70,    71,    72,   163,
+      73,    19,   164,    74,    75,    76,    77,    78,   152,   186,
+      79,    80,  -111,   200,   201,    25,    31,   203,   204,    82,
+     206,   134,   135,   152,   -43,   -43,   -43,  -110,    64,    64,
+      32,   152,    65,   -27,    27,  -112,    33,   238,   111,    34,
+     113,  -111,  -111,  -111,   144,   144,   210,   124,   145,   146,
+      36,   152,    52,   248,   249,   153,  -110,  -110,  -110,    37,
+      53,   223,    54,   224,  -112,  -112,  -112,   170,   192,   193,
+     194,   171,    38,    39,   207,   241,   242,   243,   244,    55,
+      40,    41,    42,    43,   234,    -2,    15,   126,   -14,   127,
+      27,   144,   128,     1,   152,  -120,   167,    58,   231,   168,
+       2,     3,   247,   250,   251,    59,   180,   235,     4,   181,
+     181,    60,    61,    91,    92,    93,    94,   255,    95,    97,
+     107,   109,   112,   115,   125,   120,   121,   259,   122,   123,
+     136,   142,   245,   177,   138,   141,   143,   148,   155,   156,
+     147,   158,   169,   159,   172,   175,   183,   179,   188,   189,
+      66,   184,   185,   198,   131,   199,   197,   217,   221,   220,
+     202,   225,   205,   208,   227,   226,   230,   232,   228,   215,
+     239,   211,   236,   233,   213,   237,   214,   240,   253,   218,
+     254,   258,    16,    30,   187,   216,   137,   222,   219,   191,
+     151,     0,     0,     0,     0,     0,     0,   252,     0,     0,
+       0,   257
 };
 
 static const short int yycheck[] =
 {
-      17,    53,    59,   107,     5,    61,    76,     1,    31,     8,
-      10,     5,    64,     1,    14,     7,    15,    16,    41,     7,
-      11,    36,    10,    13,    23,     1,    41,    36,    41,     5,
-       4,    21,    41,    85,     8,    36,    11,    94,    12,    91,
-      41,    31,    36,    95,    18,    19,    20,    41,    22,    41,
-      41,    25,    26,    27,    28,    29,     1,    47,    32,    33,
-       5,     1,    11,    37,     0,    14,    41,    41,    72,     9,
-      74,     1,   176,   125,     1,     5,     1,    81,     5,     1,
-       5,     1,     1,     5,    24,     5,     5,     4,   144,    34,
-      35,    36,    41,     1,   164,   165,     3,     5,   168,   169,
-       4,   171,     1,     1,     8,     6,     5,     5,    12,    34,
-      35,    36,     8,     9,    18,    19,    20,   221,    22,     9,
-      41,    25,    26,    27,    28,    29,   178,     1,    32,    33,
-      41,     5,     1,   237,   238,    10,     5,    41,    13,     4,
-      24,   198,     6,   200,     8,     9,     7,    11,    10,    10,
-       7,    13,     4,    10,    41,   172,   226,   227,   228,   229,
-      34,    35,    36,     8,   216,    34,    35,    36,    34,    35,
-      36,    41,    17,     6,     4,     4,     4,     8,    41,     6,
-      24,    41,   234,   240,   241,    30,    31,    41,    41,     6,
-       6,    41,     6,    38,    39,    40,    41,   254,     8,     8,
-       0,     1,     8,     3,    41,     8,     5,   259,     8,    41,
-       7,    13,     8,   230,     8,    15,    16,     6,     8,     4,
-      41,     8,     8,    23,     4,     7,    21,     8,    41,    41,
-      41,     7,     7,    41,    13,     7,    41,    11,    11,     5,
-      41,    24,    10,    41,    13,    10,    13,     8,    41,    41,
-      41,     8,    11,    41,    24,    11,     7,    41,    13,    11,
-      13,     8,     6,    41,    41,   148,   158,    21,   191,   197,
-     104,    91,    -1,    -1,    -1,    -1,    47
+      17,    52,    58,   106,     5,    75,    60,     1,    13,    31,
+       8,     5,    63,     1,    41,     7,    21,    15,    16,    41,
+      11,     9,     4,    14,    36,    23,    31,    11,     1,    41,
+       4,    11,     5,    84,     8,    36,    24,    93,    12,    90,
+      41,    46,    36,    94,    18,    19,    20,    41,    22,    41,
+      41,    25,    26,    27,    28,    29,     0,    41,    32,    33,
+      36,    41,     4,    37,     1,    41,     8,    41,     5,     3,
+      12,     1,   175,   124,     6,     5,    18,    19,    20,    10,
+      22,    41,    13,    25,    26,    27,    28,    29,     1,   143,
+      32,    33,     5,   163,   164,    41,     4,   167,   168,    41,
+     170,     8,     9,     1,    34,    35,    36,     5,     1,     1,
+       1,     1,     5,     5,     9,     5,     7,   220,    71,    10,
+      73,    34,    35,    36,     1,     1,   177,    80,     5,     5,
+       8,     1,     4,   236,   237,     5,    34,    35,    36,    17,
+      41,   197,    41,   199,    34,    35,    36,    10,    34,    35,
+      36,    14,    30,    31,   171,   225,   226,   227,   228,    24,
+      38,    39,    40,    41,   215,     0,     1,     6,     3,     8,
+       9,     1,    11,     8,     1,     5,    10,     6,     5,    13,
+      15,    16,   233,   239,   240,     4,     7,     7,    23,    10,
+      10,     4,     4,     8,    41,     6,    24,   253,    41,    41,
+      41,     6,     6,    41,    41,     8,     8,   258,     8,     6,
+       5,     7,   229,    21,     8,    41,     8,     8,     6,     8,
+      13,     4,     8,    41,     8,     4,     7,    41,     8,     7,
+      46,    41,    41,     7,    41,    11,    13,     7,     5,    11,
+      41,    10,    41,    41,    10,    13,     8,     8,    13,    24,
+      13,    41,    11,    24,    41,    11,    41,    11,    13,    41,
+       8,     7,     6,    21,   147,   190,    90,   196,    41,   157,
+     103,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
+      -1,    41
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -800,30 +800,29 @@ static const unsigned char yystos[] =
        0,     8,    15,    16,    23,    43,    44,    45,    47,    48,
       49,    50,    41,     4,     0,     1,    45,     3,     6,    41,
       51,    52,    36,    41,    46,    41,    54,     9,     1,     5,
-      51,     4,    55,     1,     7,    10,    53,     8,    17,    30,
-      31,    38,    39,    40,    41,    52,    56,    57,    58,    59,
-      89,    90,    94,     4,    41,    41,    24,    31,    41,     6,
-       4,     4,     4,     1,    24,     1,     5,    56,     4,     8,
-      12,    18,    19,    20,    22,    25,    26,    27,    28,    29,
-      32,    33,    37,    41,    52,    65,    69,    70,    80,    82,
-      87,    88,     8,    41,     6,    24,    41,    67,    41,    91,
-      91,     5,    46,    92,    93,    70,    60,    70,    41,    78,
-       6,    63,    63,     6,    63,    36,    41,    68,    76,    68,
-      77,     8,     8,     8,     6,    63,    41,     6,     8,    11,
-      70,     7,    41,    66,    84,     8,     9,     5,    87,     8,
-      67,    70,    41,     7,     8,     1,     5,     5,    13,     8,
-       1,     5,    92,     1,     5,    60,     6,     8,    64,     4,
-      41,    61,    62,    67,    10,    13,    11,    41,    10,    13,
-       8,    10,    14,     8,    71,    70,     4,    81,    21,    75,
-      41,     7,    10,    74,     7,    41,    41,    91,    62,     8,
-       7,    79,    66,    34,    35,    36,    85,    86,    13,     7,
-      11,    68,    68,    41,    68,    68,    41,    68,    46,    41,
-      60,    70,    41,    83,    41,    41,    24,    84,     7,    41,
-      41,    11,     5,    85,    67,    67,    10,    13,    10,    13,
-      14,     8,     5,     8,    24,    70,     7,    11,    11,    60,
-      13,    11,    68,    68,    68,    68,    46,    72,    70,    60,
-      60,    67,    67,    41,    13,     8,    67,    73,    41,     7,
-      70
+      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,
+       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,
+       8,     8,     8,     6,    62,    41,     6,     8,    11,    69,
+       7,    41,    65,    83,     8,     9,     5,    86,     8,    66,
+      69,    41,     7,     8,     1,     5,     5,    13,     8,     1,
+       5,    91,     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,    67,    46,    41,    59,
+      69,    41,    82,    41,    41,    24,    83,     7,    41,    41,
+      11,     5,    84,    66,    66,    10,    13,    10,    13,    14,
+       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
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1199,324 +1198,316 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
   switch (yytype)
     {
       case 41: /* "word" */
-#line 172 "ael.y"
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1205 "ael.tab.c"
+#line 1204 "ael.tab.c"
         break;
       case 44: /* "objects" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1213 "ael.tab.c"
+#line 1212 "ael.tab.c"
         break;
       case 45: /* "object" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1221 "ael.tab.c"
+#line 1220 "ael.tab.c"
         break;
       case 46: /* "context_name" */
-#line 172 "ael.y"
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1226 "ael.tab.c"
+#line 1225 "ael.tab.c"
         break;
       case 47: /* "context" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1234 "ael.tab.c"
+#line 1233 "ael.tab.c"
         break;
       case 49: /* "macro" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1242 "ael.tab.c"
+#line 1241 "ael.tab.c"
         break;
       case 50: /* "globals" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1250 "ael.tab.c"
+#line 1249 "ael.tab.c"
         break;
       case 51: /* "global_statements" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1258 "ael.tab.c"
+#line 1257 "ael.tab.c"
         break;
       case 52: /* "assignment" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1266 "ael.tab.c"
+#line 1265 "ael.tab.c"
         break;
       case 54: /* "arglist" */
-#line 158 "ael.y"
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1274 "ael.tab.c"
+#line 1273 "ael.tab.c"
         break;
-      case 55: /* "elements_block" */
-#line 158 "ael.y"
+      case 55: /* "elements" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1282 "ael.tab.c"
+#line 1281 "ael.tab.c"
         break;
-      case 56: /* "elements" */
-#line 158 "ael.y"
+      case 56: /* "element" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1290 "ael.tab.c"
+#line 1289 "ael.tab.c"
         break;
-      case 57: /* "element" */
-#line 158 "ael.y"
+      case 57: /* "ignorepat" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1298 "ael.tab.c"
+#line 1297 "ael.tab.c"
         break;
-      case 58: /* "ignorepat" */
-#line 158 "ael.y"
+      case 58: /* "extension" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1306 "ael.tab.c"
+#line 1305 "ael.tab.c"
         break;
-      case 59: /* "extension" */
-#line 158 "ael.y"
+      case 59: /* "statements" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1314 "ael.tab.c"
+#line 1313 "ael.tab.c"
         break;
-      case 60: /* "statements" */
-#line 158 "ael.y"
-        {
-               destroy_pval((yyvaluep->pval));
-               prev_word=0;
-       };
-#line 1322 "ael.tab.c"
-        break;
-      case 61: /* "timerange" */
-#line 172 "ael.y"
+      case 60: /* "timerange" */
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1327 "ael.tab.c"
+#line 1318 "ael.tab.c"
         break;
-      case 62: /* "timespec" */
-#line 158 "ael.y"
+      case 61: /* "timespec" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1335 "ael.tab.c"
+#line 1326 "ael.tab.c"
         break;
-      case 63: /* "test_expr" */
-#line 172 "ael.y"
+      case 62: /* "test_expr" */
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1340 "ael.tab.c"
+#line 1331 "ael.tab.c"
         break;
-      case 65: /* "if_like_head" */
-#line 158 "ael.y"
+      case 64: /* "if_like_head" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1348 "ael.tab.c"
+#line 1339 "ael.tab.c"
         break;
-      case 66: /* "word_list" */
-#line 172 "ael.y"
+      case 65: /* "word_list" */
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1353 "ael.tab.c"
+#line 1344 "ael.tab.c"
         break;
-      case 67: /* "word3_list" */
-#line 172 "ael.y"
+      case 66: /* "word3_list" */
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1358 "ael.tab.c"
+#line 1349 "ael.tab.c"
         break;
-      case 68: /* "goto_word" */
-#line 172 "ael.y"
+      case 67: /* "goto_word" */
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1363 "ael.tab.c"
+#line 1354 "ael.tab.c"
         break;
-      case 69: /* "switch_statement" */
-#line 158 "ael.y"
+      case 68: /* "switch_statement" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1371 "ael.tab.c"
+#line 1362 "ael.tab.c"
         break;
-      case 70: /* "statement" */
-#line 158 "ael.y"
+      case 69: /* "statement" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1379 "ael.tab.c"
+#line 1370 "ael.tab.c"
         break;
-      case 75: /* "opt_else" */
-#line 158 "ael.y"
+      case 74: /* "opt_else" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1387 "ael.tab.c"
+#line 1378 "ael.tab.c"
         break;
-      case 76: /* "target" */
-#line 158 "ael.y"
+      case 75: /* "target" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1395 "ael.tab.c"
+#line 1386 "ael.tab.c"
         break;
-      case 77: /* "jumptarget" */
-#line 158 "ael.y"
+      case 76: /* "jumptarget" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1403 "ael.tab.c"
+#line 1394 "ael.tab.c"
         break;
-      case 78: /* "macro_call" */
-#line 158 "ael.y"
+      case 77: /* "macro_call" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1411 "ael.tab.c"
+#line 1402 "ael.tab.c"
         break;
-      case 80: /* "application_call_head" */
-#line 158 "ael.y"
+      case 79: /* "application_call_head" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1419 "ael.tab.c"
+#line 1410 "ael.tab.c"
         break;
-      case 82: /* "application_call" */
-#line 158 "ael.y"
+      case 81: /* "application_call" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1427 "ael.tab.c"
+#line 1418 "ael.tab.c"
         break;
-      case 83: /* "opt_word" */
-#line 172 "ael.y"
+      case 82: /* "opt_word" */
+#line 170 "ael.y"
         { free((yyvaluep->str));};
-#line 1432 "ael.tab.c"
+#line 1423 "ael.tab.c"
         break;
-      case 84: /* "eval_arglist" */
-#line 158 "ael.y"
+      case 83: /* "eval_arglist" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1440 "ael.tab.c"
+#line 1431 "ael.tab.c"
         break;
-      case 85: /* "case_statements" */
-#line 158 "ael.y"
+      case 84: /* "case_statements" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1448 "ael.tab.c"
+#line 1439 "ael.tab.c"
         break;
-      case 86: /* "case_statement" */
-#line 158 "ael.y"
+      case 85: /* "case_statement" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1456 "ael.tab.c"
+#line 1447 "ael.tab.c"
         break;
-      case 87: /* "macro_statements" */
-#line 158 "ael.y"
+      case 86: /* "macro_statements" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1464 "ael.tab.c"
+#line 1455 "ael.tab.c"
         break;
-      case 88: /* "macro_statement" */
-#line 158 "ael.y"
+      case 87: /* "macro_statement" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1472 "ael.tab.c"
+#line 1463 "ael.tab.c"
         break;
-      case 89: /* "switches" */
-#line 158 "ael.y"
+      case 88: /* "switches" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1480 "ael.tab.c"
+#line 1471 "ael.tab.c"
         break;
-      case 90: /* "eswitches" */
-#line 158 "ael.y"
+      case 89: /* "eswitches" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1488 "ael.tab.c"
+#line 1479 "ael.tab.c"
         break;
-      case 91: /* "switchlist" */
-#line 158 "ael.y"
+      case 90: /* "switchlist" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1496 "ael.tab.c"
+#line 1487 "ael.tab.c"
         break;
-      case 92: /* "included_entry" */
-#line 158 "ael.y"
+      case 91: /* "included_entry" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1504 "ael.tab.c"
+#line 1495 "ael.tab.c"
         break;
-      case 93: /* "includeslist" */
-#line 158 "ael.y"
+      case 92: /* "includeslist" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1512 "ael.tab.c"
+#line 1503 "ael.tab.c"
         break;
-      case 94: /* "includes" */
-#line 158 "ael.y"
+      case 93: /* "includes" */
+#line 157 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1520 "ael.tab.c"
+#line 1511 "ael.tab.c"
         break;
 
       default:
@@ -1833,110 +1824,110 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 179 "ael.y"
+#line 177 "ael.y"
     { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;}
     break;
 
   case 3:
-#line 182 "ael.y"
+#line 180 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 4:
-#line 183 "ael.y"
+#line 181 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 5:
-#line 184 "ael.y"
+#line 182 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 6:
-#line 187 "ael.y"
+#line 185 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 7:
-#line 188 "ael.y"
+#line 186 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 8:
-#line 189 "ael.y"
+#line 187 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 9:
-#line 190 "ael.y"
+#line 188 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 10:
-#line 193 "ael.y"
+#line 191 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
   case 11:
-#line 194 "ael.y"
+#line 192 "ael.y"
     { (yyval.str) = strdup("default"); ;}
     break;
 
   case 12:
-#line 197 "ael.y"
+#line 195 "ael.y"
     {
-               (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0]));
-               (yyval.pval)->u1.str = (yyvsp[-1].str);
-               (yyval.pval)->u2.statements = (yyvsp[0].pval);
-               (yyval.pval)->u3.abstract = (yyvsp[-3].intval); ;}
+               (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0]));
+               (yyval.pval)->u1.str = (yyvsp[-3].str);
+               (yyval.pval)->u2.statements = (yyvsp[-1].pval);
+               (yyval.pval)->u3.abstract = (yyvsp[-5].intval); ;}
     break;
 
   case 13:
-#line 205 "ael.y"
+#line 203 "ael.y"
     { (yyval.intval) = 1; ;}
     break;
 
   case 14:
-#line 206 "ael.y"
+#line 204 "ael.y"
     { (yyval.intval) = 0; ;}
     break;
 
   case 15:
-#line 209 "ael.y"
+#line 207 "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 214 "ael.y"
+#line 212 "ael.y"
     {
                (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
     break;
 
   case 17:
-#line 219 "ael.y"
+#line 217 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 18:
-#line 220 "ael.y"
+#line 218 "ael.y"
     {(yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 19:
-#line 221 "ael.y"
+#line 219 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 20:
-#line 224 "ael.y"
+#line 222 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 21:
-#line 224 "ael.y"
+#line 222 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -1944,102 +1935,97 @@ yyreduce:
     break;
 
   case 22:
-#line 230 "ael.y"
+#line 228 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 23:
-#line 231 "ael.y"
+#line 229 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 24:
-#line 232 "ael.y"
+#line 230 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;}
     break;
 
   case 25:
-#line 233 "ael.y"
+#line 231 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 26:
-#line 236 "ael.y"
-    { (yyval.pval) = (yyvsp[-1].pval); ;}
+#line 234 "ael.y"
+    {(yyval.pval)=0;;}
     break;
 
   case 27:
-#line 239 "ael.y"
-    {(yyval.pval)=0;;}
+#line 235 "ael.y"
+    { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 28:
-#line 240 "ael.y"
-    { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
+#line 236 "ael.y"
+    { (yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 29:
-#line 241 "ael.y"
-    { (yyval.pval)=(yyvsp[-1].pval);;}
+#line 239 "ael.y"
+    {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 30:
-#line 244 "ael.y"
+#line 240 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 31:
-#line 245 "ael.y"
+#line 241 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 32:
-#line 246 "ael.y"
+#line 242 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 33:
-#line 247 "ael.y"
+#line 243 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 34:
-#line 248 "ael.y"
+#line 244 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 35:
-#line 249 "ael.y"
-    {(yyval.pval)=(yyvsp[0].pval);;}
-    break;
-
-  case 36:
-#line 250 "ael.y"
+#line 245 "ael.y"
     {free((yyvsp[-1].str)); (yyval.pval)=0;;}
     break;
 
-  case 37:
-#line 251 "ael.y"
+  case 36:
+#line 246 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
-  case 38:
-#line 254 "ael.y"
+  case 37:
+#line 249 "ael.y"
     {
                (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
-  case 39:
-#line 259 "ael.y"
+  case 38:
+#line 254 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
                (yyval.pval)->u2.statements = (yyvsp[0].pval); ;}
     break;
 
-  case 40:
-#line 263 "ael.y"
+  case 39:
+#line 258 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2047,8 +2033,8 @@ yyreduce:
                (yyval.pval)->u4.regexten=1;;}
     break;
 
-  case 41:
-#line 268 "ael.y"
+  case 40:
+#line 263 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2056,8 +2042,8 @@ yyreduce:
                (yyval.pval)->u3.hints = (yyvsp[-4].str);;}
     break;
 
-  case 42:
-#line 273 "ael.y"
+  case 41:
+#line 268 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2066,23 +2052,23 @@ yyreduce:
                (yyval.pval)->u3.hints = (yyvsp[-4].str);;}
     break;
 
-  case 43:
-#line 283 "ael.y"
+  case 42:
+#line 278 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 44:
-#line 284 "ael.y"
+  case 43:
+#line 279 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
-  case 45:
-#line 285 "ael.y"
+  case 44:
+#line 280 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
-  case 46:
-#line 291 "ael.y"
+  case 45:
+#line 286 "ael.y"
     {
                asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[-4].str), (yyvsp[-2].str), (yyvsp[0].str));
                free((yyvsp[-4].str));
@@ -2090,13 +2076,13 @@ yyreduce:
                free((yyvsp[0].str)); ;}
     break;
 
-  case 47:
-#line 296 "ael.y"
+  case 46:
+#line 291 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
-  case 48:
-#line 300 "ael.y"
+  case 47:
+#line 295 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-6].str), &(yylsp[-6]));
                (yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4]));
@@ -2104,46 +2090,46 @@ yyreduce:
                (yyval.pval)->next->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 49:
-#line 308 "ael.y"
+  case 48:
+#line 303 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
-  case 50:
-#line 308 "ael.y"
+  case 49:
+#line 303 "ael.y"
     {
                (yyval.str) = (yyvsp[-1].str); ;}
     break;
 
-  case 51:
-#line 313 "ael.y"
+  case 50:
+#line 308 "ael.y"
     {
                (yyval.pval)= npval2(PV_IF, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[0].str); ;}
     break;
 
-  case 52:
-#line 316 "ael.y"
+  case 51:
+#line 311 "ael.y"
     {
                (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str=(yyvsp[0].str);;}
     break;
 
-  case 53:
-#line 319 "ael.y"
+  case 52:
+#line 314 "ael.y"
     {
                (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);
                prev_word = 0; ;}
     break;
 
-  case 54:
-#line 330 "ael.y"
+  case 53:
+#line 325 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
-  case 55:
-#line 331 "ael.y"
+  case 54:
+#line 326 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2151,13 +2137,13 @@ yyreduce:
                prev_word = (yyval.str);;}
     break;
 
-  case 56:
-#line 338 "ael.y"
+  case 55:
+#line 333 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
-  case 57:
-#line 339 "ael.y"
+  case 56:
+#line 334 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2165,8 +2151,8 @@ yyreduce:
                prev_word = (yyval.str);;}
     break;
 
-  case 58:
-#line 344 "ael.y"
+  case 57:
+#line 339 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-2].str));
@@ -2175,85 +2161,85 @@ yyreduce:
                prev_word=(yyval.str);;}
     break;
 
-  case 59:
-#line 352 "ael.y"
+  case 58:
+#line 347 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
-  case 60:
-#line 353 "ael.y"
+  case 59:
+#line 348 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
                free((yyvsp[0].str));;}
     break;
 
-  case 61:
-#line 357 "ael.y"
+  case 60:
+#line 352 "ael.y"
     {
                asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str));
                free((yyvsp[-2].str));
                free((yyvsp[0].str));;}
     break;
 
-  case 62:
-#line 363 "ael.y"
+  case 61:
+#line 358 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCH, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-3].str);
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);;}
     break;
 
-  case 63:
-#line 372 "ael.y"
+  case 62:
+#line 367 "ael.y"
     {
                (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
-  case 64:
-#line 375 "ael.y"
+  case 63:
+#line 370 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
-  case 65:
-#line 376 "ael.y"
+  case 64:
+#line 371 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
-  case 66:
-#line 379 "ael.y"
+  case 65:
+#line 374 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
-  case 67:
-#line 382 "ael.y"
+  case 66:
+#line 377 "ael.y"
     {
                (yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
-  case 68:
-#line 385 "ael.y"
+  case 67:
+#line 380 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
-  case 69:
-#line 386 "ael.y"
+  case 68:
+#line 381 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
-  case 70:
-#line 387 "ael.y"
+  case 69:
+#line 382 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
-  case 71:
-#line 387 "ael.y"
+  case 70:
+#line 382 "ael.y"
     { /* XXX word_list maybe ? */
                (yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0]));
                (yyval.pval)->u1.for_init = (yyvsp[-8].str);
@@ -2262,45 +2248,45 @@ yyreduce:
                (yyval.pval)->u4.for_statements = (yyvsp[0].pval);;}
     break;
 
-  case 72:
-#line 393 "ael.y"
+  case 71:
+#line 388 "ael.y"
     {
                (yyval.pval) = npval2(PV_WHILE, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);
                (yyval.pval)->u2.statements = (yyvsp[0].pval); ;}
     break;
 
-  case 73:
-#line 397 "ael.y"
+  case 72:
+#line 392 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
-  case 74:
-#line 398 "ael.y"
+  case 73:
+#line 393 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;}
     break;
 
-  case 75:
-#line 400 "ael.y"
+  case 74:
+#line 395 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
-  case 76:
-#line 402 "ael.y"
+  case 75:
+#line 397 "ael.y"
     {
                (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
-  case 77:
-#line 405 "ael.y"
+  case 76:
+#line 400 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
-  case 78:
-#line 405 "ael.y"
+  case 77:
+#line 400 "ael.y"
     {
                char *bufx;
                int tot=0;
@@ -2336,132 +2322,132 @@ yyreduce:
        ;}
     break;
 
-  case 79:
-#line 438 "ael.y"
+  case 78:
+#line 433 "ael.y"
     { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
-  case 80:
-#line 439 "ael.y"
+  case 79:
+#line 434 "ael.y"
     { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
-  case 81:
-#line 440 "ael.y"
+  case 80:
+#line 435 "ael.y"
     { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
-  case 82:
-#line 441 "ael.y"
+  case 81:
+#line 436 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1]));
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);
                (yyval.pval)->u3.else_statements = (yyvsp[0].pval);;}
     break;
 
-  case 83:
-#line 445 "ael.y"
+  case 82:
+#line 440 "ael.y"
     { (yyval.pval)=0; ;}
     break;
 
-  case 84:
-#line 448 "ael.y"
+  case 83:
+#line 443 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
-  case 85:
-#line 449 "ael.y"
+  case 84:
+#line 444 "ael.y"
     { (yyval.pval) = NULL ; ;}
     break;
 
-  case 86:
-#line 454 "ael.y"
+  case 85:
+#line 449 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 87:
-#line 455 "ael.y"
+  case 86:
+#line 450 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 88:
-#line 458 "ael.y"
+  case 87:
+#line 453 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 89:
-#line 461 "ael.y"
+  case 88:
+#line 456 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 90:
-#line 465 "ael.y"
+  case 89:
+#line 460 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 91:
-#line 469 "ael.y"
+  case 90:
+#line 464 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 92:
-#line 473 "ael.y"
+  case 91:
+#line 468 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 93:
-#line 480 "ael.y"
+  case 92:
+#line 475 "ael.y"
     {                  /* ext, 1 */
                (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
                (yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;}
     break;
 
-  case 94:
-#line 483 "ael.y"
+  case 93:
+#line 478 "ael.y"
     {          /* ext, pri */
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 95:
-#line 486 "ael.y"
+  case 94:
+#line 481 "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->next = nword((yyvsp[-2].str), &(yylsp[-2])); ;}
     break;
 
-  case 96:
-#line 490 "ael.y"
+  case 95:
+#line 485 "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 97:
-#line 496 "ael.y"
+  case 96:
+#line 491 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
-  case 98:
-#line 496 "ael.y"
+  case 97:
+#line 491 "ael.y"
     {
                /* XXX original code had @2 but i think we need @5 */
                (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0]));
@@ -2469,20 +2455,20 @@ yyreduce:
                (yyval.pval)->u2.arglist = (yyvsp[-1].pval);;}
     break;
 
-  case 99:
-#line 501 "ael.y"
+  case 98:
+#line 496 "ael.y"
     {
                (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
-  case 100:
-#line 509 "ael.y"
+  case 99:
+#line 504 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
-  case 101:
-#line 509 "ael.y"
+  case 100:
+#line 504 "ael.y"
     {
                if (strcasecmp((yyvsp[-2].str),"goto") == 0) {
                        (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[-1]));
@@ -2494,8 +2480,8 @@ yyreduce:
                } ;}
     break;
 
-  case 102:
-#line 520 "ael.y"
+  case 101:
+#line 515 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
                if( (yyval.pval)->type == PV_GOTO )
@@ -2505,161 +2491,161 @@ yyreduce:
        ;}
     break;
 
-  case 103:
-#line 527 "ael.y"
+  case 102:
+#line 522 "ael.y"
     { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
-  case 104:
-#line 530 "ael.y"
+  case 103:
+#line 525 "ael.y"
     { (yyval.str) = (yyvsp[0].str) ;}
     break;
 
-  case 105:
-#line 531 "ael.y"
+  case 104:
+#line 526 "ael.y"
     { (yyval.str) = strdup(""); ;}
     break;
 
-  case 106:
-#line 534 "ael.y"
+  case 105:
+#line 529 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 107:
-#line 535 "ael.y"
+  case 106:
+#line 530 "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 108:
-#line 538 "ael.y"
+  case 107:
+#line 533 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;}
     break;
 
-  case 109:
-#line 541 "ael.y"
+  case 108:
+#line 536 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 110:
-#line 542 "ael.y"
+  case 109:
+#line 537 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
-  case 111:
-#line 545 "ael.y"
+  case 110:
+#line 540 "ael.y"
     {
                (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */
                (yyval.pval)->u1.str = (yyvsp[-2].str);
                (yyval.pval)->u2.statements = (yyvsp[0].pval);;}
     break;
 
-  case 112:
-#line 549 "ael.y"
+  case 111:
+#line 544 "ael.y"
     {
                (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = NULL;
                (yyval.pval)->u2.statements = (yyvsp[0].pval);;}
     break;
 
-  case 113:
-#line 553 "ael.y"
+  case 112:
+#line 548 "ael.y"
     {
                (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */
                (yyval.pval)->u1.str = (yyvsp[-2].str);
                (yyval.pval)->u2.statements = (yyvsp[0].pval);;}
     break;
 
-  case 114:
-#line 559 "ael.y"
+  case 113:
+#line 554 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 115:
-#line 560 "ael.y"
+  case 114:
+#line 555 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
-  case 116:
-#line 563 "ael.y"
+  case 115:
+#line 558 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
-  case 117:
-#line 564 "ael.y"
+  case 116:
+#line 559 "ael.y"
     {
                (yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-3].str);
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);;}
     break;
 
-  case 118:
-#line 570 "ael.y"
+  case 117:
+#line 565 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-3]), &(yylsp[-2]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
-  case 119:
-#line 575 "ael.y"
+  case 118:
+#line 570 "ael.y"
     {
                (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-3]), &(yylsp[-2]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
-  case 120:
-#line 580 "ael.y"
+  case 119:
+#line 575 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 121:
-#line 581 "ael.y"
+  case 120:
+#line 576 "ael.y"
     { (yyval.pval) = linku1(nword((yyvsp[-2].str), &(yylsp[-2])), (yyvsp[0].pval)); ;}
     break;
 
-  case 122:
-#line 582 "ael.y"
+  case 121:
+#line 577 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
-  case 123:
-#line 585 "ael.y"
+  case 122:
+#line 580 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 124:
-#line 586 "ael.y"
+  case 123:
+#line 581 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->u2.arglist = (yyvsp[0].pval);
                prev_word=0; /* XXX sure ? */ ;}
     break;
 
-  case 125:
-#line 593 "ael.y"
+  case 124:
+#line 588 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
-  case 126:
-#line 594 "ael.y"
+  case 125:
+#line 589 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), (yyvsp[-1].pval)); ;}
     break;
 
-  case 127:
-#line 595 "ael.y"
+  case 126:
+#line 590 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
-  case 128:
-#line 598 "ael.y"
+  case 127:
+#line 593 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
-  case 129:
-#line 601 "ael.y"
+  case 128:
+#line 596 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;}
     break;
@@ -2669,7 +2655,7 @@ yyreduce:
     }
 
 /* Line 1126 of yacc.c.  */
-#line 2673 "ael.tab.c"
+#line 2659 "ael.tab.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -2944,7 +2930,7 @@ yyreturn:
 }
 
 
-#line 606 "ael.y"
+#line 601 "ael.y"
 
 
 static char *token_equivs1[] =
index 1f1799d..11a8afb 100644 (file)
@@ -117,7 +117,6 @@ static pval *update_last(pval *, YYLTYPE *);
 %type <pval>file
 /* XXX lr changes */
 %type <pval>opt_else
-%type <pval>elements_block
 %type <pval>timespec
 %type <pval>included_entry
 
@@ -166,7 +165,6 @@ static pval *update_last(pval *, YYLTYPE *);
                ignorepat element elements arglist assignment
                global_statements globals macro context object objects
                opt_else
-               elements_block
                timespec included_entry
 
 %destructor { free($$);}  word word_list goto_word word3_list opt_word context_name
@@ -194,10 +192,10 @@ context_name : word { $$ = $1; }
        | KW_DEFAULT { $$ = strdup("default"); }
        ;
 
-context : opt_abstract KW_CONTEXT context_name elements_block {
-               $$ = npval2(PV_CONTEXT, &@1, &@4);
+context : opt_abstract KW_CONTEXT context_name LC elements RC {
+               $$ = npval2(PV_CONTEXT, &@1, &@6);
                $$->u1.str = $3;
-               $$->u2.statements = $4;
+               $$->u2.statements = $5;
                $$->u3.abstract = $1; }
        ;
 
@@ -233,9 +231,6 @@ arglist : /* empty */ { $$ = NULL; }
        | arglist error {$$=$1;}
        ;
 
-elements_block : LC elements RC { $$ = $2; }
-       ;
-
 elements : {$$=0;}
        | element elements { $$ = linku1($1, $2); }
        | elements error   { $$=$1;}