if/ifTime/random statements are all the same thing
authorLuigi Rizzo <rizzo@icir.org>
Tue, 2 May 2006 18:08:27 +0000 (18:08 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Tue, 2 May 2006 18:08:27 +0000 (18:08 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24248 65c4cc65-6c06-0410-ace0-fbb531ad65f3

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

index a34cdc7..07836db 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   492
+#define YYLAST   510
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  42
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  57
+#define YYNNTS  55
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  148
+#define YYNRULES  146
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  338
+#define YYNSTATES  332
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -487,12 +487,12 @@ static const unsigned short int yyprhs[] =
      221,   223,   226,   230,   232,   235,   239,   240,   247,   251,
      252,   258,   262,   266,   269,   270,   271,   272,   285,   286,
      293,   296,   300,   304,   307,   310,   311,   317,   320,   323,
-     326,   330,   334,   338,   340,   343,   344,   346,   350,   354,
-     360,   366,   372,   378,   380,   384,   390,   394,   400,   404,
-     405,   411,   415,   416,   420,   424,   427,   429,   430,   432,
-     433,   437,   439,   442,   447,   451,   456,   460,   463,   467,
-     469,   472,   474,   480,   483,   486,   490,   493,   496,   500,
-     503,   506,   521,   532,   536,   552,   564,   567,   572
+     326,   330,   332,   335,   336,   338,   342,   346,   352,   358,
+     364,   370,   372,   376,   382,   386,   392,   396,   397,   403,
+     407,   408,   412,   416,   419,   421,   422,   424,   425,   429,
+     431,   434,   439,   443,   448,   452,   455,   459,   461,   464,
+     466,   472,   475,   478,   482,   485,   488,   492,   495,   498,
+     513,   524,   528,   544,   556,   559,   564
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -501,81 +501,80 @@ 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,    91,
+      23,    -1,    -1,    15,    41,     6,    54,     7,     4,    89,
        5,    -1,    15,    41,     6,    54,     7,     4,     5,    -1,
-      15,    41,     6,     7,     4,    91,     5,    -1,    15,    41,
+      15,    41,     6,     7,     4,    89,     5,    -1,    15,    41,
        6,     7,     4,     5,    -1,    16,     4,    51,     5,    -1,
       16,     4,     5,    -1,    52,    -1,    51,    52,    -1,    51,
        1,    -1,    -1,    41,     9,    53,    41,     8,    -1,    41,
       -1,    54,    10,    41,    -1,    54,     1,    -1,     4,     5,
       -1,     4,    56,     5,    -1,    57,    -1,     1,    -1,    56,
-      57,    -1,    56,     1,    -1,    60,    -1,    98,    -1,    93,
-      -1,    94,    -1,    59,    -1,    -1,    41,     9,    58,    41,
+      57,    -1,    56,     1,    -1,    60,    -1,    96,    -1,    91,
+      -1,    92,    -1,    59,    -1,    -1,    41,     9,    58,    41,
        8,    -1,    41,     1,    -1,     8,    -1,    17,    24,    41,
-       8,    -1,    41,    24,    72,    -1,    30,    41,    24,    72,
-      -1,    31,     6,    68,     7,    41,    24,    72,    -1,    30,
-      31,     6,    68,     7,    41,    24,    72,    -1,    72,    -1,
-      61,    72,    -1,    61,     1,    -1,    -1,    19,     6,    63,
-      67,     7,    -1,    -1,    22,     6,    65,    67,     7,    -1,
-      20,     6,    68,    11,    68,    11,    68,    13,    68,    13,
-      68,    13,    68,     7,    -1,    20,     6,    41,    13,    68,
-      13,    68,    13,    68,     7,    -1,    41,    -1,    41,    41,
+       8,    -1,    41,    24,    70,    -1,    30,    41,    24,    70,
+      -1,    31,     6,    66,     7,    41,    24,    70,    -1,    30,
+      31,     6,    66,     7,    41,    24,    70,    -1,    70,    -1,
+      61,    70,    -1,    61,     1,    -1,    -1,    19,     6,    63,
+      65,     7,    -1,    -1,    22,     6,    64,    65,     7,    -1,
+      20,     6,    66,    11,    66,    11,    66,    13,    66,    13,
+      66,    13,    66,     7,    -1,    20,     6,    41,    13,    66,
+      13,    66,    13,    66,     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,    -1,
-      18,     6,    71,    41,     7,     4,    -1,     4,    61,     5,
-      -1,    -1,    41,     9,    73,    41,     8,    -1,    25,    80,
-       8,    -1,    26,    81,     8,    -1,    41,    11,    -1,    -1,
-      -1,    -1,    32,     6,    74,    41,     8,    75,    41,     8,
-      76,    41,     7,    72,    -1,    -1,    33,     6,    77,    41,
-       7,    72,    -1,    70,     5,    -1,    70,    89,     5,    -1,
-      12,    82,     8,    -1,    86,     8,    -1,    41,     8,    -1,
-      -1,    86,     9,    78,    41,     8,    -1,    28,     8,    -1,
-      27,     8,    -1,    29,     8,    -1,    64,    72,    79,    -1,
-      62,    72,    79,    -1,    66,    72,    79,    -1,     8,    -1,
-      21,    72,    -1,    -1,    69,    -1,    69,    13,    69,    -1,
-      69,    10,    69,    -1,    69,    13,    69,    13,    69,    -1,
-      69,    10,    69,    10,    69,    -1,    36,    13,    69,    13,
-      69,    -1,    36,    10,    69,    10,    69,    -1,    69,    -1,
-      69,    10,    69,    -1,    69,    10,    41,    14,    41,    -1,
-      69,    14,    69,    -1,    69,    10,    41,    14,    36,    -1,
-      69,    14,    36,    -1,    -1,    41,     6,    83,    88,     7,
-      -1,    41,     6,     7,    -1,    -1,    41,     6,    85,    -1,
-      84,    88,     7,    -1,    84,     7,    -1,    41,    -1,    -1,
-      67,    -1,    -1,    88,    10,    87,    -1,    90,    -1,    89,
-      90,    -1,    34,    41,    11,    61,    -1,    36,    11,    61,
-      -1,    35,    41,    11,    61,    -1,    34,    41,    11,    -1,
-      36,    11,    -1,    35,    41,    11,    -1,    92,    -1,    91,
-      92,    -1,    72,    -1,    37,    41,     4,    61,     5,    -1,
-      38,    95,    -1,    39,    95,    -1,     4,    96,     5,    -1,
-       4,     5,    -1,    41,     8,    -1,    96,    41,     8,    -1,
-      96,     1,    -1,    46,     8,    -1,    46,    13,    68,    11,
-      68,    11,    68,    13,    68,    13,    68,    13,    68,     8,
-      -1,    46,    13,    41,    13,    68,    13,    68,    13,    68,
-       8,    -1,    97,    46,     8,    -1,    97,    46,    13,    68,
-      11,    68,    11,    68,    13,    68,    13,    68,    13,    68,
-       8,    -1,    97,    46,    13,    41,    13,    68,    13,    68,
-      13,    68,     8,    -1,    97,     1,    -1,    40,     4,    97,
-       5,    -1,    40,     4,     5,    -1
+      18,     6,    69,    41,     7,     4,    -1,     4,    61,     5,
+      -1,    -1,    41,     9,    71,    41,     8,    -1,    25,    78,
+       8,    -1,    26,    79,     8,    -1,    41,    11,    -1,    -1,
+      -1,    -1,    32,     6,    72,    41,     8,    73,    41,     8,
+      74,    41,     7,    70,    -1,    -1,    33,     6,    75,    41,
+       7,    70,    -1,    68,     5,    -1,    68,    87,     5,    -1,
+      12,    80,     8,    -1,    84,     8,    -1,    41,     8,    -1,
+      -1,    84,     9,    76,    41,     8,    -1,    28,     8,    -1,
+      27,     8,    -1,    29,     8,    -1,    62,    70,    77,    -1,
+       8,    -1,    21,    70,    -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,
+      41,    -1,    67,    14,    67,    -1,    67,    10,    41,    14,
+      36,    -1,    67,    14,    36,    -1,    -1,    41,     6,    81,
+      86,     7,    -1,    41,     6,     7,    -1,    -1,    41,     6,
+      83,    -1,    82,    86,     7,    -1,    82,     7,    -1,    41,
+      -1,    -1,    65,    -1,    -1,    86,    10,    85,    -1,    88,
+      -1,    87,    88,    -1,    34,    41,    11,    61,    -1,    36,
+      11,    61,    -1,    35,    41,    11,    61,    -1,    34,    41,
+      11,    -1,    36,    11,    -1,    35,    41,    11,    -1,    90,
+      -1,    89,    90,    -1,    70,    -1,    37,    41,     4,    61,
+       5,    -1,    38,    93,    -1,    39,    93,    -1,     4,    94,
+       5,    -1,     4,     5,    -1,    41,     8,    -1,    94,    41,
+       8,    -1,    94,     1,    -1,    46,     8,    -1,    46,    13,
+      66,    11,    66,    11,    66,    13,    66,    13,    66,    13,
+      66,     8,    -1,    46,    13,    41,    13,    66,    13,    66,
+      13,    66,     8,    -1,    95,    46,     8,    -1,    95,    46,
+      13,    66,    11,    66,    11,    66,    13,    66,    13,    66,
+      13,    66,     8,    -1,    95,    46,    13,    41,    13,    66,
+      13,    66,    13,    66,     8,    -1,    95,     1,    -1,    40,
+       4,    95,     5,    -1,    40,     4,     5,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,   175,   175,   178,   179,   180,   183,   184,   185,   186,
-     189,   190,   193,   201,   202,   205,   208,   211,   215,   220,
-     223,   227,   228,   229,   232,   232,   238,   239,   240,   243,
-     244,   247,   248,   249,   250,   253,   254,   255,   256,   257,
-     258,   258,   262,   263,   266,   271,   275,   280,   285,   294,
-     295,   296,   299,   299,   304,   304,   309,   322,   338,   339,
-     346,   347,   352,   360,   361,   365,   371,   371,   379,   382,
-     382,   386,   389,   392,   395,   396,   397,   395,   403,   403,
-     407,   409,   412,   414,   416,   419,   419,   452,   453,   454,
-     455,   459,   463,   467,   470,   471,   476,   477,   480,   483,
-     487,   491,   495,   502,   505,   508,   512,   516,   520,   526,
-     526,   531,   539,   539,   550,   557,   560,   561,   564,   565,
-     568,   571,   572,   575,   579,   583,   587,   590,   593,   598,
-     599,   602,   603,   609,   614,   619,   620,   623,   624,   625,
-     628,   629,   642,   650,   651,   665,   676,   679,   682
+       0,   173,   173,   176,   177,   178,   181,   182,   183,   184,
+     187,   188,   191,   199,   200,   203,   206,   209,   213,   218,
+     221,   225,   226,   227,   230,   230,   236,   237,   238,   241,
+     242,   245,   246,   247,   248,   251,   252,   253,   254,   255,
+     256,   256,   260,   261,   264,   269,   273,   278,   283,   292,
+     293,   294,   298,   298,   301,   301,   304,   317,   333,   334,
+     341,   342,   347,   355,   356,   360,   366,   366,   374,   377,
+     377,   381,   384,   387,   390,   391,   392,   390,   398,   398,
+     402,   404,   407,   409,   411,   414,   414,   447,   448,   449,
+     450,   454,   457,   458,   463,   464,   467,   470,   474,   478,
+     482,   489,   492,   495,   499,   503,   507,   513,   513,   518,
+     526,   526,   537,   544,   547,   548,   551,   552,   555,   558,
+     559,   562,   566,   570,   574,   577,   580,   585,   586,   589,
+     590,   596,   601,   606,   607,   610,   611,   612,   615,   616,
+     629,   637,   638,   652,   663,   666,   669
 };
 #endif
 
@@ -594,14 +593,13 @@ static const char *const yytname[] =
   "objects", "object", "word_or_default", "context", "opt_abstract",
   "macro", "globals", "global_statements", "global_statement", "@1",
   "arglist", "elements_block", "elements", "element", "@2", "ignorepat",
-  "extension", "statements", "if_head", "@3", "random_head", "@4",
-  "iftime_head", "word_list", "word3_list", "goto_word", "switch_head",
-  "@5", "statement", "@6", "@7", "@8", "@9", "@10", "@11", "opt_else",
-  "target", "jumptarget", "macro_call", "@12", "application_call_head",
-  "@13", "application_call", "opt_word", "eval_arglist", "case_statements",
-  "case_statement", "macro_statements", "macro_statement", "switches",
-  "eswitches", "switchlist_block", "switchlist", "includeslist",
-  "includes", 0
+  "extension", "statements", "if_like_head", "@3", "@4", "word_list",
+  "word3_list", "goto_word", "switch_head", "@5", "statement", "@6", "@7",
+  "@8", "@9", "@10", "@11", "opt_else", "target", "jumptarget",
+  "macro_call", "@12", "application_call_head", "@13", "application_call",
+  "opt_word", "eval_arglist", "case_statements", "case_statement",
+  "macro_statements", "macro_statement", "switches", "eswitches",
+  "switchlist_block", "switchlist", "includeslist", "includes", 0
 };
 #endif
 
@@ -626,16 +624,16 @@ static const unsigned char yyr1[] =
       50,    51,    51,    51,    53,    52,    54,    54,    54,    55,
       55,    56,    56,    56,    56,    57,    57,    57,    57,    57,
       58,    57,    57,    57,    59,    60,    60,    60,    60,    61,
-      61,    61,    63,    62,    65,    64,    66,    66,    67,    67,
-      68,    68,    68,    69,    69,    69,    71,    70,    72,    73,
-      72,    72,    72,    72,    74,    75,    76,    72,    77,    72,
-      72,    72,    72,    72,    72,    78,    72,    72,    72,    72,
-      72,    72,    72,    72,    79,    79,    80,    80,    80,    80,
-      80,    80,    80,    81,    81,    81,    81,    81,    81,    83,
-      82,    82,    85,    84,    86,    86,    87,    87,    88,    88,
-      88,    89,    89,    90,    90,    90,    90,    90,    90,    91,
-      91,    92,    92,    93,    94,    95,    95,    96,    96,    96,
-      97,    97,    97,    97,    97,    97,    97,    98,    98
+      61,    61,    63,    62,    64,    62,    62,    62,    65,    65,
+      66,    66,    66,    67,    67,    67,    69,    68,    70,    71,
+      70,    70,    70,    70,    72,    73,    74,    70,    75,    70,
+      70,    70,    70,    70,    70,    76,    70,    70,    70,    70,
+      70,    70,    77,    77,    78,    78,    78,    78,    78,    78,
+      78,    79,    79,    79,    79,    79,    79,    81,    80,    80,
+      83,    82,    84,    84,    85,    85,    86,    86,    86,    87,
+      87,    88,    88,    88,    88,    88,    88,    89,    89,    90,
+      90,    91,    92,    93,    93,    94,    94,    94,    95,    95,
+      95,    95,    95,    95,    95,    96,    96
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -650,12 +648,12 @@ static const unsigned char yyr2[] =
        1,     2,     3,     1,     2,     3,     0,     6,     3,     0,
        5,     3,     3,     2,     0,     0,     0,    12,     0,     6,
        2,     3,     3,     2,     2,     0,     5,     2,     2,     2,
-       3,     3,     3,     1,     2,     0,     1,     3,     3,     5,
-       5,     5,     5,     1,     3,     5,     3,     5,     3,     0,
-       5,     3,     0,     3,     3,     2,     1,     0,     1,     0,
-       3,     1,     2,     4,     3,     4,     3,     2,     3,     1,
-       2,     1,     5,     2,     2,     3,     2,     2,     3,     2,
-       2,    14,    10,     3,    15,    11,     2,     4,     3
+       3,     1,     2,     0,     1,     3,     3,     5,     5,     5,
+       5,     1,     3,     5,     3,     5,     3,     0,     5,     3,
+       0,     3,     3,     2,     1,     0,     1,     0,     3,     1,
+       2,     4,     3,     4,     3,     2,     3,     1,     2,     1,
+       5,     2,     2,     3,     2,     2,     3,     2,     2,    14,
+      10,     3,    15,    11,     2,     4,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -668,211 +666,215 @@ static const unsigned char yydefact[] =
        0,     0,    21,    11,    10,     0,     0,    26,     0,    24,
       23,    19,    22,     0,    12,     0,    28,     0,     0,     0,
       32,    29,    43,     0,     0,     0,     0,     0,     0,     0,
-       0,    31,    39,    35,    37,    38,    36,     0,    18,    93,
+       0,    31,    39,    35,    37,    38,    36,     0,    18,    91,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   131,   119,
-       0,     0,   129,     0,    27,     0,     0,     0,     0,     0,
-       0,   133,   134,     0,    42,    40,     0,    34,    30,    33,
-       0,    49,     0,     0,    66,    52,     0,    54,     0,    63,
-      96,     0,   103,     0,    88,    87,    89,    74,    78,     0,
-     112,    84,    69,    73,    95,    95,    95,    80,     0,     0,
-       0,     0,   121,   115,    58,   118,     0,    83,    85,    17,
-     130,    16,     0,    25,     0,     0,     0,    60,     0,   136,
-       0,     0,   148,     0,     0,     0,    45,    51,    68,    50,
-     109,    82,     0,     0,    60,     0,     0,     0,     0,     0,
-      64,     0,     0,    71,     0,     0,    72,     0,     0,     0,
-     113,     0,     0,    91,    90,    92,     0,     0,   127,    81,
-     122,    59,   114,   117,     0,    15,    44,     0,    46,    61,
-       0,   137,   139,   135,     0,   140,     0,   146,   147,     0,
-       0,   111,   119,     0,     0,     0,     0,     0,     0,     0,
-      65,    98,    97,    63,   104,   108,   106,     0,     0,     0,
-       0,    94,   126,   128,     0,   116,   120,     0,     0,    62,
-       0,   138,    60,     0,   143,     0,    41,     0,     0,    53,
-       0,     0,    55,     0,     0,     0,     0,     0,    75,     0,
-     132,    70,     0,     0,    86,     0,     0,     0,     0,    60,
-       0,   110,    67,     0,     0,   102,   101,   100,    99,   107,
-     105,     0,    79,     0,    47,     0,     0,     0,     0,     0,
-       0,     0,    48,     0,     0,     0,     0,     0,     0,    76,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
-     142,     0,     0,     0,     0,    77,     0,   145,     0,     0,
-       0,     0,    56,     0,     0,   141,     0,   144
+       0,     0,     0,     0,     0,     0,   129,   117,     0,     0,
+     127,     0,    27,     0,     0,     0,     0,     0,     0,   131,
+     132,     0,    42,    40,     0,    34,    30,    33,     0,    49,
+       0,     0,    66,    52,     0,    54,     0,    63,    94,     0,
+     101,     0,    88,    87,    89,    74,    78,     0,   110,    84,
+      69,    73,    93,    80,     0,     0,     0,     0,   119,   113,
+      58,   116,     0,    83,    85,    17,   128,    16,     0,    25,
+       0,     0,     0,    60,     0,   134,     0,     0,   146,     0,
+       0,     0,    45,    51,    68,    50,   107,    82,     0,     0,
+      60,     0,     0,     0,     0,     0,    64,     0,     0,    71,
+       0,     0,    72,     0,     0,     0,   111,     0,     0,    90,
+       0,     0,   125,    81,   120,    59,   112,   115,     0,    15,
+      44,     0,    46,    61,     0,   135,   137,   133,     0,   138,
+       0,   144,   145,     0,     0,   109,   117,     0,     0,     0,
+       0,     0,     0,     0,    65,    96,    95,    63,   102,   106,
+     104,     0,     0,     0,     0,    92,   124,   126,     0,   114,
+     118,     0,     0,    62,     0,   136,    60,     0,   141,     0,
+      41,     0,     0,    53,     0,     0,    55,     0,     0,     0,
+       0,     0,    75,     0,   130,    70,     0,     0,    86,     0,
+       0,     0,     0,    60,     0,   108,    67,     0,     0,   100,
+      99,    98,    97,   105,   103,     0,    79,     0,    47,     0,
+       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
+       0,     0,     0,    76,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    57,     0,     0,     0,     0,
+       0,     0,     0,     0,   140,     0,     0,     0,     0,    77,
+       0,   143,     0,     0,     0,     0,    56,     0,     0,   139,
+       0,   142
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short int yydefgoto[] =
 {
       -1,     5,     6,     7,    25,     8,     9,    10,    11,    21,
-      22,    39,    28,    34,    50,    51,   155,    52,    53,   100,
-      74,   163,    75,   166,    76,   135,   148,   110,    77,   162,
-     101,   181,   177,   281,   306,   178,   194,   183,   111,   113,
-     103,   212,    79,   180,    80,   236,   136,   131,   132,    81,
-      82,    54,    55,    91,   151,   154,    56
+      22,    39,    28,    34,    50,    51,   151,    52,    53,    98,
+      74,   159,   162,   131,   144,   108,    75,   158,    99,   177,
+     173,   275,   300,   174,   188,   179,   109,   111,   101,   206,
+      77,   176,    78,   230,   132,   127,   128,    79,    80,    54,
+      55,    89,   147,   150,    56
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -175
+#define YYPACT_NINF -173
 static const short int yypact[] =
 {
-      70,  -175,   -31,    15,  -175,    32,   152,  -175,  -175,    68,
-    -175,  -175,    82,     4,  -175,  -175,  -175,    55,     9,  -175,
-      83,     3,  -175,  -175,  -175,    90,   101,  -175,    20,  -175,
-    -175,  -175,  -175,   140,  -175,   347,  -175,   136,   132,   133,
-    -175,  -175,  -175,   164,   -18,   183,   186,   186,   187,    11,
-     297,  -175,  -175,  -175,  -175,  -175,  -175,   451,  -175,  -175,
-     151,   189,   192,   194,   195,    95,   163,   185,   197,   200,
-     203,   204,   172,    25,   451,   451,   451,    74,  -175,    10,
-     141,   373,  -175,   399,  -175,   206,   174,   212,   196,   178,
-       6,  -175,  -175,     1,  -175,  -175,   451,  -175,  -175,  -175,
-     291,  -175,   216,   215,  -175,  -175,   188,  -175,    16,    14,
-      91,   224,     8,   226,  -175,  -175,  -175,  -175,  -175,   231,
-    -175,  -175,  -175,  -175,   217,   217,   217,  -175,   199,   201,
-     225,    98,  -175,  -175,   208,  -175,   154,  -175,  -175,  -175,
-    -175,  -175,   425,  -175,   233,   178,   451,   209,   244,  -175,
-     245,    23,  -175,   129,     2,   211,  -175,  -175,  -175,  -175,
-     248,  -175,   218,   219,    56,   251,   219,   163,   163,   222,
-    -175,   163,   163,  -175,   223,   102,  -175,   227,   228,   451,
-    -175,   229,   451,  -175,  -175,  -175,   255,   256,   451,  -175,
-    -175,  -175,  -175,   235,   236,  -175,  -175,   249,  -175,   242,
-     250,  -175,  -175,  -175,   266,  -175,   252,  -175,  -175,   131,
-     282,  -175,   219,   290,   293,   178,   178,   294,   296,   295,
-    -175,   302,   308,    76,  -175,  -175,  -175,   299,   323,   321,
-     307,  -175,   451,   451,    48,  -175,  -175,   326,   263,  -175,
-     318,  -175,    59,   320,  -175,   303,  -175,   162,   341,  -175,
-     343,   346,  -175,   163,   163,   163,   163,   115,  -175,   451,
-    -175,  -175,    94,   253,  -175,   334,   451,   178,   178,   105,
-     349,  -175,  -175,   178,   178,  -175,  -175,  -175,  -175,  -175,
-    -175,   322,  -175,   451,  -175,   348,   353,   178,   178,   355,
-     357,   363,  -175,   178,   178,   369,   372,   178,   178,  -175,
-     374,   376,   178,   178,   379,   377,   356,   178,   178,   381,
-     383,  -175,   178,   401,   404,   396,   178,   178,   400,   451,
-    -175,   178,   407,   403,   178,  -175,   409,  -175,   178,   413,
-     178,   410,  -175,   426,   178,  -175,   427,  -175
+     117,  -173,   -23,     2,  -173,    27,   164,  -173,  -173,    55,
+    -173,  -173,    72,    10,  -173,  -173,  -173,    70,     7,  -173,
+      76,    33,  -173,  -173,  -173,    87,   104,  -173,   146,  -173,
+    -173,  -173,  -173,   322,  -173,   365,  -173,   112,    79,    81,
+    -173,  -173,  -173,   100,    41,   124,   135,   135,   145,    19,
+     327,  -173,  -173,  -173,  -173,  -173,  -173,   469,  -173,  -173,
+     119,   160,   169,   201,   202,   116,   157,   143,   204,   205,
+     203,   208,   176,   175,   469,    65,  -173,    34,   195,   391,
+    -173,   417,  -173,   215,   187,   210,   206,   188,    12,  -173,
+    -173,    -1,  -173,  -173,   469,  -173,  -173,  -173,     4,  -173,
+     220,   224,  -173,  -173,   193,  -173,    54,     8,   113,   227,
+      11,   228,  -173,  -173,  -173,  -173,  -173,   239,  -173,  -173,
+    -173,  -173,   223,  -173,   209,   212,   234,   110,  -173,  -173,
+     213,  -173,   185,  -173,  -173,  -173,  -173,  -173,   443,  -173,
+     238,   188,   469,   216,   240,  -173,   241,    51,  -173,   155,
+       6,   217,  -173,  -173,  -173,  -173,   249,  -173,   219,   221,
+      63,   250,   221,   157,   157,   222,  -173,   157,   157,  -173,
+     229,   133,  -173,   230,   236,   469,  -173,   243,   469,  -173,
+     253,   257,   469,  -173,  -173,  -173,  -173,   244,   246,  -173,
+    -173,   284,  -173,   251,   254,  -173,  -173,  -173,   286,  -173,
+     255,  -173,  -173,   165,   290,  -173,   221,   292,   293,   188,
+     188,   294,   296,   289,  -173,   298,   302,    57,  -173,  -173,
+    -173,   301,   309,   109,   314,  -173,   469,   469,    61,  -173,
+    -173,   316,   288,  -173,   307,  -173,    64,   323,  -173,   295,
+    -173,   192,   321,  -173,   320,   326,  -173,   157,   157,   157,
+     157,   153,  -173,   469,  -173,  -173,   247,   285,  -173,   317,
+     469,   188,   188,    71,   329,  -173,  -173,   188,   188,  -173,
+    -173,  -173,  -173,  -173,  -173,   297,  -173,   469,  -173,   330,
+     331,   188,   188,   332,   333,   339,  -173,   188,   188,   335,
+     338,   188,   188,  -173,   337,   341,   188,   188,   344,   342,
+     315,   188,   188,   346,   351,  -173,   188,   364,   366,   359,
+     188,   188,   362,   469,  -173,   188,   368,   367,   188,  -173,
+     369,  -173,   188,   371,   188,   373,  -173,   380,   188,  -173,
+     381,  -173
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -175,  -175,  -175,   432,   -92,  -175,  -175,  -175,  -175,  -175,
-     418,  -175,  -175,  -175,  -175,   391,  -175,  -175,  -175,  -174,
-    -175,  -175,  -175,  -175,  -175,    21,   -91,    -9,  -175,  -175,
-     -35,  -175,  -175,  -175,  -175,  -175,  -175,    60,  -175,  -175,
-    -175,  -175,  -175,  -175,  -175,  -175,   230,  -175,   315,   365,
-     -79,  -175,  -175,   402,  -175,  -175,  -175
+    -173,  -173,  -173,   375,   -90,  -173,  -173,  -173,  -173,  -173,
+     358,  -173,  -173,  -173,  -173,   350,  -173,  -173,  -173,  -172,
+    -173,  -173,  -173,    23,   -91,    -9,  -173,  -173,   -35,  -173,
+    -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,
+    -173,  -173,  -173,  -173,   198,  -173,   274,   324,   -77,  -173,
+    -173,   360,  -173,  -173,  -173
 };
 
 /* 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 -126
+#define YYTABLE_NINF -124
 static const short int yytable[] =
 {
-      78,   153,   140,   207,    30,   229,   152,   208,    31,    19,
-      12,   149,    94,    87,   234,   165,    26,   133,   174,    13,
-      95,    36,   175,    88,   202,   169,   167,    37,   203,   168,
-      38,   120,    14,   121,   122,    96,   123,    23,    23,   124,
-     125,   126,    24,    24,    20,    20,    78,   150,    78,   157,
-      27,   134,    57,  -124,   197,   170,    59,   112,   262,   263,
-      60,   156,   209,   140,   204,   159,    61,    62,    63,   215,
-      64,    17,   267,    65,    66,    67,    68,    69,     1,   127,
-      70,    71,  -124,  -124,  -124,     2,     3,   169,    18,    73,
-     257,    23,    29,     4,    33,   157,    24,   199,    57,  -123,
-     199,   171,    59,   189,   172,    35,    60,    78,   128,   129,
-     130,   198,    61,    62,    63,   243,    64,   170,   287,    65,
-      66,    67,    68,    69,   250,   251,    70,    71,  -123,  -123,
-    -123,   108,   128,   129,   130,    73,   109,   205,   225,   244,
-      83,    40,   206,   109,   245,    41,   199,   231,    42,   137,
-     138,   279,    -2,    15,   270,   -14,   280,    43,   218,   219,
-       1,   192,   221,   222,   193,   224,   226,     2,     3,   271,
-      44,    45,   193,    84,    85,     4,   285,   286,    46,    47,
-      48,    49,   289,   290,   214,   184,   185,   217,    86,    89,
-      90,    93,   102,   114,   159,   104,   295,   296,   105,   159,
-     106,   107,   300,   301,   109,   115,   304,   305,   116,   117,
-     118,   309,   310,   119,   143,   144,   314,   315,   145,   147,
-     146,   318,   160,   161,   282,   322,   323,   159,   159,   164,
-     326,   284,   173,   329,   176,   179,   188,   331,   182,   333,
-     186,   196,   187,   336,   275,   276,   277,   278,   292,   191,
-     199,   200,   210,   201,   157,   211,   238,    57,  -125,   213,
-     134,    59,   216,   220,   223,    60,   232,   233,   227,   228,
-     230,    61,    62,    63,   241,    64,   235,   237,    65,    66,
-      67,    68,    69,   239,   325,    70,    71,  -125,  -125,  -125,
-     246,   240,   157,   242,    73,    57,   158,   248,    97,    59,
-     249,   252,    98,    60,   265,    42,   253,   258,   254,    61,
-      62,    63,   255,    64,    43,   261,    65,    66,    67,    68,
-      69,   256,   157,    70,    71,    57,   260,    44,    45,    59,
-     259,   268,    73,    60,   264,    46,    47,    48,    49,    61,
-      62,    63,   266,    64,   269,   272,    65,    66,    67,    68,
-      69,    57,    58,    70,    71,    59,   273,   274,   283,    60,
-     288,   293,    73,   291,   294,    61,    62,    63,   297,    64,
-     298,   299,    65,    66,    67,    68,    69,    57,   139,    70,
-      71,    59,   302,   303,    72,    60,   311,   307,    73,   308,
-     312,    61,    62,    63,   316,    64,   317,   313,    65,    66,
-      67,    68,    69,    57,   141,    70,    71,    59,   319,   321,
-      72,    60,   320,   324,    73,   327,   328,    61,    62,    63,
-     332,    64,   330,   334,    65,    66,    67,    68,    69,    57,
-     195,    70,    71,    59,   335,   337,    72,    60,    16,    32,
-      73,    99,   247,    61,    62,    63,   190,    64,   142,    92,
-      65,    66,    67,    68,    69,    57,     0,    70,    71,    59,
-       0,     0,    72,    60,     0,     0,    73,     0,     0,    61,
+      76,   149,   136,   223,   148,   153,    13,   201,    57,   154,
+     228,   202,    59,   161,    26,    19,    60,   145,    12,   165,
+      92,   170,    61,    62,    63,   171,    64,    14,    93,    65,
+      66,    67,    68,    69,    30,    23,    70,    71,    31,   122,
+      24,   129,    23,    94,    76,    73,    76,    24,    27,   166,
+     191,    20,   196,   146,   256,   257,   197,   110,    17,   152,
+     203,   136,   153,   155,   163,    57,  -122,   164,   165,    59,
+     123,   251,    85,    60,    20,   130,   209,   261,    18,    61,
+      62,    63,    86,    64,   281,    29,    65,    66,    67,    68,
+      69,    33,   198,    70,    71,  -122,  -122,  -122,   166,   124,
+     125,   126,    73,    76,   193,   193,    23,   192,    35,   237,
+     153,    24,   193,    57,   254,   183,    81,    59,   244,   245,
+      82,    60,    83,   167,    84,     1,   168,    61,    62,    63,
+      87,    64,     2,     3,    65,    66,    67,    68,    69,    88,
+       4,    70,    71,   225,   124,   125,   126,    36,   264,    91,
+      73,   112,   106,    37,   212,   213,    38,   107,   215,   216,
+     100,   218,   220,   199,    -2,    15,   102,   -14,   200,   219,
+     279,   280,     1,   238,   107,   103,   283,   284,   239,     2,
+       3,   118,   208,   119,   120,   211,   121,     4,   155,   273,
+     289,   290,   186,   155,   274,   187,   294,   295,   107,   265,
+     298,   299,   187,   133,   134,   303,   304,   104,   105,   115,
+     308,   309,   113,   114,   116,   312,   141,   117,   276,   316,
+     317,   155,   155,   139,   320,   278,   156,   323,   140,   143,
+     142,   325,   157,   327,   160,   169,   172,   330,   269,   270,
+     271,   272,   286,   175,   178,   182,   190,   194,   153,   195,
+     180,    57,  -121,   181,   185,    59,   205,   193,   204,    60,
+     207,   210,   130,   214,   226,    61,    62,    63,   227,    64,
+     217,   221,    65,    66,    67,    68,    69,   222,   319,    70,
+      71,  -121,  -121,  -121,   224,   229,   153,   231,    73,    57,
+    -123,   232,   233,    59,   235,   234,   236,    60,   240,   242,
+     243,   246,   248,    61,    62,    63,   247,    64,   249,   252,
+      65,    66,    67,    68,    69,   250,   253,    70,    71,  -123,
+    -123,  -123,   255,    40,   258,   266,    73,    41,    95,   259,
+      42,   260,    96,   267,   262,    42,   263,   268,   285,    43,
+     282,   277,   288,   287,    43,   291,   292,   293,   296,   297,
+     301,   305,    44,    45,   302,   306,   307,    44,    45,   310,
+      46,    47,    48,    49,   311,    46,    47,    48,    49,    57,
+      58,   313,   315,    59,   314,   318,   321,    60,   326,    32,
+     322,    16,   324,    61,    62,    63,   328,    64,   329,   331,
+      65,    66,    67,    68,    69,    57,   135,    70,    71,    59,
+      97,   184,    72,    60,   241,   138,    73,    90,     0,    61,
       62,    63,     0,    64,     0,     0,    65,    66,    67,    68,
-      69,     0,     0,    70,    71,     0,     0,     0,     0,     0,
-       0,     0,    73
+      69,    57,   137,    70,    71,    59,     0,     0,    72,    60,
+       0,     0,    73,     0,     0,    61,    62,    63,     0,    64,
+       0,     0,    65,    66,    67,    68,    69,    57,   189,    70,
+      71,    59,     0,     0,    72,    60,     0,     0,    73,     0,
+       0,    61,    62,    63,     0,    64,     0,     0,    65,    66,
+      67,    68,    69,    57,     0,    70,    71,    59,     0,     0,
+      72,    60,     0,     0,    73,     0,     0,    61,    62,    63,
+       0,    64,     0,     0,    65,    66,    67,    68,    69,     0,
+       0,    70,    71,     0,     0,     0,     0,     0,     0,     0,
+      73
 };
 
 static const short int yycheck[] =
 {
-      35,    93,    81,     1,     1,   179,     5,     5,     5,     5,
-      41,     5,     1,    31,   188,   106,     7,     7,    10,     4,
-       9,     1,    14,    41,     1,    11,    10,     7,     5,    13,
-      10,     6,     0,     8,     9,    24,    11,    36,    36,    74,
-      75,    76,    41,    41,    41,    41,    81,    41,    83,     1,
-      41,    41,     4,     5,   145,    41,     8,    66,   232,   233,
-      12,    96,   154,   142,    41,   100,    18,    19,    20,    13,
-      22,     3,    13,    25,    26,    27,    28,    29,     8,     5,
-      32,    33,    34,    35,    36,    15,    16,    11,     6,    41,
-      14,    36,     9,    23,     4,     1,    41,    41,     4,     5,
-      41,    10,     8,     5,    13,     4,    12,   142,    34,    35,
-      36,   146,    18,    19,    20,   206,    22,    41,    13,    25,
-      26,    27,    28,    29,   215,   216,    32,    33,    34,    35,
-      36,    36,    34,    35,    36,    41,    41,     8,    36,     8,
-       4,     1,    13,    41,    13,     5,    41,   182,     8,     8,
-       9,    36,     0,     1,   245,     3,    41,    17,   167,   168,
-       8,     7,   171,   172,    10,   174,   175,    15,    16,     7,
-      30,    31,    10,    41,    41,    23,   267,   268,    38,    39,
-      40,    41,   273,   274,   163,   125,   126,   166,    24,     6,
-       4,     4,    41,     8,   229,     6,   287,   288,     6,   234,
-       6,     6,   293,   294,    41,     8,   297,   298,     8,     6,
-       6,   302,   303,    41,     8,    41,   307,   308,     6,    41,
-      24,   312,     6,     8,   259,   316,   317,   262,   263,    41,
-     321,   266,     8,   324,     8,     4,    11,   328,    21,   330,
-      41,     8,    41,   334,   253,   254,   255,   256,   283,    41,
-      41,     7,    41,     8,     1,     7,     7,     4,     5,    41,
-      41,     8,    11,    41,    41,    12,    11,    11,    41,    41,
-      41,    18,    19,    20,     8,    22,    41,    41,    25,    26,
-      27,    28,    29,    41,   319,    32,    33,    34,    35,    36,
-       8,    41,     1,    41,    41,     4,     5,     7,     1,     8,
-       7,     7,     5,    12,    41,     8,    10,     8,    13,    18,
-      19,    20,    10,    22,    17,     8,    25,    26,    27,    28,
-      29,    13,     1,    32,    33,     4,     5,    30,    31,     8,
-       7,    11,    41,    12,     8,    38,    39,    40,    41,    18,
-      19,    20,    24,    22,    41,     4,    25,    26,    27,    28,
-      29,     4,     5,    32,    33,     8,    13,    11,    24,    12,
-      11,    13,    41,    41,    11,    18,    19,    20,    13,    22,
-      13,     8,    25,    26,    27,    28,    29,     4,     5,    32,
-      33,     8,    13,    11,    37,    12,     7,    13,    41,    13,
-      13,    18,    19,    20,    13,    22,    13,    41,    25,    26,
-      27,    28,    29,     4,     5,    32,    33,     8,     7,    13,
-      37,    12,     8,    13,    41,     8,    13,    18,    19,    20,
-       7,    22,    13,    13,    25,    26,    27,    28,    29,     4,
-       5,    32,    33,     8,     8,     8,    37,    12,     6,    21,
-      41,    50,   212,    18,    19,    20,   131,    22,    83,    47,
-      25,    26,    27,    28,    29,     4,    -1,    32,    33,     8,
-      -1,    -1,    37,    12,    -1,    -1,    41,    -1,    -1,    18,
+      35,    91,    79,   175,     5,     1,     4,     1,     4,     5,
+     182,     5,     8,   104,     7,     5,    12,     5,    41,    11,
+       1,    10,    18,    19,    20,    14,    22,     0,     9,    25,
+      26,    27,    28,    29,     1,    36,    32,    33,     5,    74,
+      41,     7,    36,    24,    79,    41,    81,    41,    41,    41,
+     141,    41,     1,    41,   226,   227,     5,    66,     3,    94,
+     150,   138,     1,    98,    10,     4,     5,    13,    11,     8,
+       5,    14,    31,    12,    41,    41,    13,    13,     6,    18,
+      19,    20,    41,    22,    13,     9,    25,    26,    27,    28,
+      29,     4,    41,    32,    33,    34,    35,    36,    41,    34,
+      35,    36,    41,   138,    41,    41,    36,   142,     4,   200,
+       1,    41,    41,     4,     5,     5,     4,     8,   209,   210,
+      41,    12,    41,    10,    24,     8,    13,    18,    19,    20,
+       6,    22,    15,    16,    25,    26,    27,    28,    29,     4,
+      23,    32,    33,   178,    34,    35,    36,     1,   239,     4,
+      41,     8,    36,     7,   163,   164,    10,    41,   167,   168,
+      41,   170,   171,     8,     0,     1,     6,     3,    13,    36,
+     261,   262,     8,     8,    41,     6,   267,   268,    13,    15,
+      16,     6,   159,     8,     9,   162,    11,    23,   223,    36,
+     281,   282,     7,   228,    41,    10,   287,   288,    41,     7,
+     291,   292,    10,     8,     9,   296,   297,     6,     6,     6,
+     301,   302,     8,     8,     6,   306,     6,    41,   253,   310,
+     311,   256,   257,     8,   315,   260,     6,   318,    41,    41,
+      24,   322,     8,   324,    41,     8,     8,   328,   247,   248,
+     249,   250,   277,     4,    21,    11,     8,     7,     1,     8,
+      41,     4,     5,    41,    41,     8,     7,    41,    41,    12,
+      41,    11,    41,    41,    11,    18,    19,    20,    11,    22,
+      41,    41,    25,    26,    27,    28,    29,    41,   313,    32,
+      33,    34,    35,    36,    41,    41,     1,    41,    41,     4,
+       5,     7,    41,     8,     8,    41,    41,    12,     8,     7,
+       7,     7,    13,    18,    19,    20,    10,    22,    10,     8,
+      25,    26,    27,    28,    29,    13,     7,    32,    33,    34,
+      35,    36,     8,     1,     8,     4,    41,     5,     1,    41,
+       8,    24,     5,    13,    11,     8,    41,    11,    41,    17,
+      11,    24,    11,    13,    17,    13,    13,     8,    13,    11,
+      13,     7,    30,    31,    13,    13,    41,    30,    31,    13,
+      38,    39,    40,    41,    13,    38,    39,    40,    41,     4,
+       5,     7,    13,     8,     8,    13,     8,    12,     7,    21,
+      13,     6,    13,    18,    19,    20,    13,    22,     8,     8,
+      25,    26,    27,    28,    29,     4,     5,    32,    33,     8,
+      50,   127,    37,    12,   206,    81,    41,    47,    -1,    18,
       19,    20,    -1,    22,    -1,    -1,    25,    26,    27,    28,
-      29,    -1,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    41
+      29,     4,     5,    32,    33,     8,    -1,    -1,    37,    12,
+      -1,    -1,    41,    -1,    -1,    18,    19,    20,    -1,    22,
+      -1,    -1,    25,    26,    27,    28,    29,     4,     5,    32,
+      33,     8,    -1,    -1,    37,    12,    -1,    -1,    41,    -1,
+      -1,    18,    19,    20,    -1,    22,    -1,    -1,    25,    26,
+      27,    28,    29,     4,    -1,    32,    33,     8,    -1,    -1,
+      37,    12,    -1,    -1,    41,    -1,    -1,    18,    19,    20,
+      -1,    22,    -1,    -1,    25,    26,    27,    28,    29,    -1,
+      -1,    32,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      41
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -884,35 +886,35 @@ static const unsigned char yystos[] =
       41,    51,    52,    36,    41,    46,     7,    41,    54,     9,
        1,     5,    52,     4,    55,     4,     1,     7,    10,    53,
        1,     5,     8,    17,    30,    31,    38,    39,    40,    41,
-      56,    57,    59,    60,    93,    94,    98,     4,     5,     8,
+      56,    57,    59,    60,    91,    92,    96,     4,     5,     8,
       12,    18,    19,    20,    22,    25,    26,    27,    28,    29,
-      32,    33,    37,    41,    62,    64,    66,    70,    72,    84,
-      86,    91,    92,     4,    41,    41,    24,    31,    41,     6,
-       4,    95,    95,     4,     1,     9,    24,     1,     5,    57,
-      61,    72,    41,    82,     6,     6,     6,     6,    36,    41,
-      69,    80,    69,    81,     8,     8,     8,     6,     6,    41,
-       6,     8,     9,    11,    72,    72,    72,     5,    34,    35,
-      36,    89,    90,     7,    41,    67,    88,     8,     9,     5,
-      92,     5,    91,     8,    41,     6,    24,    41,    68,     5,
-      41,    96,     5,    46,    97,    58,    72,     1,     5,    72,
-       6,     8,    71,    63,    41,    68,    65,    10,    13,    11,
-      41,    10,    13,     8,    10,    14,     8,    74,    77,     4,
-      85,    73,    21,    79,    79,    79,    41,    41,    11,     5,
-      90,    41,     7,    10,    78,     5,     8,    68,    72,    41,
-       7,     8,     1,     5,    41,     8,    13,     1,     5,    46,
-      41,     7,    83,    41,    67,    13,    11,    67,    69,    69,
-      41,    69,    69,    41,    69,    36,    69,    41,    41,    61,
-      41,    72,    11,    11,    61,    41,    87,    41,     7,    41,
-      41,     8,    41,    68,     8,    13,     8,    88,     7,     7,
-      68,    68,     7,    10,    13,    10,    13,    14,     8,     7,
-       5,     8,    61,    61,     8,    41,    24,    13,    11,    41,
-      68,     7,     4,    13,    11,    69,    69,    69,    69,    36,
-      41,    75,    72,    24,    72,    68,    68,    13,    11,    68,
-      68,    41,    72,    13,    11,    68,    68,    13,    13,     8,
-      68,    68,    13,    11,    68,    68,    76,    13,    13,    68,
-      68,     7,    13,    41,    68,    68,    13,    13,    68,     7,
-       8,    13,    68,    68,    13,    72,    68,     8,    13,    68,
-      13,    68,     7,    68,    13,     8,    68,     8
+      32,    33,    37,    41,    62,    68,    70,    82,    84,    89,
+      90,     4,    41,    41,    24,    31,    41,     6,     4,    93,
+      93,     4,     1,     9,    24,     1,     5,    57,    61,    70,
+      41,    80,     6,     6,     6,     6,    36,    41,    67,    78,
+      67,    79,     8,     8,     8,     6,     6,    41,     6,     8,
+       9,    11,    70,     5,    34,    35,    36,    87,    88,     7,
+      41,    65,    86,     8,     9,     5,    90,     5,    89,     8,
+      41,     6,    24,    41,    66,     5,    41,    94,     5,    46,
+      95,    58,    70,     1,     5,    70,     6,     8,    69,    63,
+      41,    66,    64,    10,    13,    11,    41,    10,    13,     8,
+      10,    14,     8,    72,    75,     4,    83,    71,    21,    77,
+      41,    41,    11,     5,    88,    41,     7,    10,    76,     5,
+       8,    66,    70,    41,     7,     8,     1,     5,    41,     8,
+      13,     1,     5,    46,    41,     7,    81,    41,    65,    13,
+      11,    65,    67,    67,    41,    67,    67,    41,    67,    36,
+      67,    41,    41,    61,    41,    70,    11,    11,    61,    41,
+      85,    41,     7,    41,    41,     8,    41,    66,     8,    13,
+       8,    86,     7,     7,    66,    66,     7,    10,    13,    10,
+      13,    14,     8,     7,     5,     8,    61,    61,     8,    41,
+      24,    13,    11,    41,    66,     7,     4,    13,    11,    67,
+      67,    67,    67,    36,    41,    73,    70,    24,    70,    66,
+      66,    13,    11,    66,    66,    41,    70,    13,    11,    66,
+      66,    13,    13,     8,    66,    66,    13,    11,    66,    66,
+      74,    13,    13,    66,    66,     7,    13,    41,    66,    66,
+      13,    13,    66,     7,     8,    13,    66,    66,    13,    70,
+      66,     8,    13,    66,    13,    66,     7,    66,    13,     8,
+      66,     8
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1288,322 +1290,306 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
   switch (yytype)
     {
       case 41: /* "word" */
-#line 170 "ael.y"
+#line 168 "ael.y"
         { free((yyvaluep->str));};
-#line 1294 "ael.tab.c"
+#line 1296 "ael.tab.c"
         break;
       case 44: /* "objects" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1302 "ael.tab.c"
+#line 1304 "ael.tab.c"
         break;
       case 45: /* "object" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1310 "ael.tab.c"
+#line 1312 "ael.tab.c"
         break;
       case 46: /* "word_or_default" */
-#line 170 "ael.y"
+#line 168 "ael.y"
         { free((yyvaluep->str));};
-#line 1315 "ael.tab.c"
+#line 1317 "ael.tab.c"
         break;
       case 47: /* "context" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1323 "ael.tab.c"
+#line 1325 "ael.tab.c"
         break;
       case 49: /* "macro" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1331 "ael.tab.c"
+#line 1333 "ael.tab.c"
         break;
       case 50: /* "globals" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1339 "ael.tab.c"
+#line 1341 "ael.tab.c"
         break;
       case 51: /* "global_statements" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1347 "ael.tab.c"
+#line 1349 "ael.tab.c"
         break;
       case 52: /* "global_statement" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1355 "ael.tab.c"
+#line 1357 "ael.tab.c"
         break;
       case 54: /* "arglist" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1363 "ael.tab.c"
+#line 1365 "ael.tab.c"
         break;
       case 55: /* "elements_block" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1371 "ael.tab.c"
+#line 1373 "ael.tab.c"
         break;
       case 56: /* "elements" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1379 "ael.tab.c"
+#line 1381 "ael.tab.c"
         break;
       case 57: /* "element" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1387 "ael.tab.c"
+#line 1389 "ael.tab.c"
         break;
       case 59: /* "ignorepat" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1395 "ael.tab.c"
+#line 1397 "ael.tab.c"
         break;
       case 60: /* "extension" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1403 "ael.tab.c"
+#line 1405 "ael.tab.c"
         break;
       case 61: /* "statements" */
-#line 157 "ael.y"
-        {
-               destroy_pval((yyvaluep->pval));
-               prev_word=0;
-       };
-#line 1411 "ael.tab.c"
-        break;
-      case 62: /* "if_head" */
-#line 157 "ael.y"
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1419 "ael.tab.c"
+#line 1413 "ael.tab.c"
         break;
-      case 64: /* "random_head" */
-#line 157 "ael.y"
+      case 62: /* "if_like_head" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1427 "ael.tab.c"
+#line 1421 "ael.tab.c"
         break;
-      case 66: /* "iftime_head" */
-#line 157 "ael.y"
-        {
-               destroy_pval((yyvaluep->pval));
-               prev_word=0;
-       };
-#line 1435 "ael.tab.c"
-        break;
-      case 67: /* "word_list" */
-#line 170 "ael.y"
+      case 65: /* "word_list" */
+#line 168 "ael.y"
         { free((yyvaluep->str));};
-#line 1440 "ael.tab.c"
+#line 1426 "ael.tab.c"
         break;
-      case 68: /* "word3_list" */
-#line 170 "ael.y"
+      case 66: /* "word3_list" */
+#line 168 "ael.y"
         { free((yyvaluep->str));};
-#line 1445 "ael.tab.c"
+#line 1431 "ael.tab.c"
         break;
-      case 69: /* "goto_word" */
-#line 170 "ael.y"
+      case 67: /* "goto_word" */
+#line 168 "ael.y"
         { free((yyvaluep->str));};
-#line 1450 "ael.tab.c"
+#line 1436 "ael.tab.c"
         break;
-      case 70: /* "switch_head" */
-#line 157 "ael.y"
+      case 68: /* "switch_head" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1458 "ael.tab.c"
+#line 1444 "ael.tab.c"
         break;
-      case 72: /* "statement" */
-#line 157 "ael.y"
+      case 70: /* "statement" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1466 "ael.tab.c"
+#line 1452 "ael.tab.c"
         break;
-      case 79: /* "opt_else" */
-#line 157 "ael.y"
+      case 77: /* "opt_else" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1474 "ael.tab.c"
+#line 1460 "ael.tab.c"
         break;
-      case 80: /* "target" */
-#line 157 "ael.y"
+      case 78: /* "target" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1482 "ael.tab.c"
+#line 1468 "ael.tab.c"
         break;
-      case 81: /* "jumptarget" */
-#line 157 "ael.y"
+      case 79: /* "jumptarget" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1490 "ael.tab.c"
+#line 1476 "ael.tab.c"
         break;
-      case 82: /* "macro_call" */
-#line 157 "ael.y"
+      case 80: /* "macro_call" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1498 "ael.tab.c"
+#line 1484 "ael.tab.c"
         break;
-      case 84: /* "application_call_head" */
-#line 157 "ael.y"
+      case 82: /* "application_call_head" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1506 "ael.tab.c"
+#line 1492 "ael.tab.c"
         break;
-      case 86: /* "application_call" */
-#line 157 "ael.y"
+      case 84: /* "application_call" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1514 "ael.tab.c"
+#line 1500 "ael.tab.c"
         break;
-      case 87: /* "opt_word" */
-#line 170 "ael.y"
+      case 85: /* "opt_word" */
+#line 168 "ael.y"
         { free((yyvaluep->str));};
-#line 1519 "ael.tab.c"
+#line 1505 "ael.tab.c"
         break;
-      case 88: /* "eval_arglist" */
-#line 157 "ael.y"
+      case 86: /* "eval_arglist" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1527 "ael.tab.c"
+#line 1513 "ael.tab.c"
         break;
-      case 89: /* "case_statements" */
-#line 157 "ael.y"
+      case 87: /* "case_statements" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1535 "ael.tab.c"
+#line 1521 "ael.tab.c"
         break;
-      case 90: /* "case_statement" */
-#line 157 "ael.y"
+      case 88: /* "case_statement" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1543 "ael.tab.c"
+#line 1529 "ael.tab.c"
         break;
-      case 91: /* "macro_statements" */
-#line 157 "ael.y"
+      case 89: /* "macro_statements" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1551 "ael.tab.c"
+#line 1537 "ael.tab.c"
         break;
-      case 92: /* "macro_statement" */
-#line 157 "ael.y"
+      case 90: /* "macro_statement" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1559 "ael.tab.c"
+#line 1545 "ael.tab.c"
         break;
-      case 93: /* "switches" */
-#line 157 "ael.y"
+      case 91: /* "switches" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1567 "ael.tab.c"
+#line 1553 "ael.tab.c"
         break;
-      case 94: /* "eswitches" */
-#line 157 "ael.y"
+      case 92: /* "eswitches" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1575 "ael.tab.c"
+#line 1561 "ael.tab.c"
         break;
-      case 95: /* "switchlist_block" */
-#line 157 "ael.y"
+      case 93: /* "switchlist_block" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1583 "ael.tab.c"
+#line 1569 "ael.tab.c"
         break;
-      case 96: /* "switchlist" */
-#line 157 "ael.y"
+      case 94: /* "switchlist" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1591 "ael.tab.c"
+#line 1577 "ael.tab.c"
         break;
-      case 97: /* "includeslist" */
-#line 157 "ael.y"
+      case 95: /* "includeslist" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1599 "ael.tab.c"
+#line 1585 "ael.tab.c"
         break;
-      case 98: /* "includes" */
-#line 157 "ael.y"
+      case 96: /* "includes" */
+#line 155 "ael.y"
         {
                destroy_pval((yyvaluep->pval));
                prev_word=0;
        };
-#line 1607 "ael.tab.c"
+#line 1593 "ael.tab.c"
         break;
 
       default:
@@ -1920,57 +1906,57 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 175 "ael.y"
+#line 173 "ael.y"
     { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;}
     break;
 
   case 3:
-#line 178 "ael.y"
+#line 176 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 4:
-#line 179 "ael.y"
+#line 177 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 5:
-#line 180 "ael.y"
+#line 178 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 6:
-#line 183 "ael.y"
+#line 181 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 7:
-#line 184 "ael.y"
+#line 182 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 8:
-#line 185 "ael.y"
+#line 183 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 9:
-#line 186 "ael.y"
+#line 184 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 10:
-#line 189 "ael.y"
+#line 187 "ael.y"
     { (yyval.str) = (yyvsp[0].str); ;}
     break;
 
   case 11:
-#line 190 "ael.y"
+#line 188 "ael.y"
     { (yyval.str) = strdup("default"); ;}
     break;
 
   case 12:
-#line 193 "ael.y"
+#line 191 "ael.y"
     {
                (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);
@@ -1979,31 +1965,31 @@ yyreduce:
     break;
 
   case 13:
-#line 201 "ael.y"
+#line 199 "ael.y"
     { (yyval.intval) = 1; ;}
     break;
 
   case 14:
-#line 202 "ael.y"
+#line 200 "ael.y"
     { (yyval.intval) = 0; ;}
     break;
 
   case 15:
-#line 205 "ael.y"
+#line 203 "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 208 "ael.y"
+#line 206 "ael.y"
     {
                (yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u2.arglist = (yyvsp[-3].pval); ;}
     break;
 
   case 17:
-#line 211 "ael.y"
+#line 209 "ael.y"
     {
                (yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-5].str);
@@ -2011,47 +1997,47 @@ yyreduce:
     break;
 
   case 18:
-#line 215 "ael.y"
+#line 213 "ael.y"
     {
                (yyval.pval) = npval2(PV_MACRO, &(yylsp[-5]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str); ;}
     break;
 
   case 19:
-#line 220 "ael.y"
+#line 218 "ael.y"
     {
                (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
     break;
 
   case 20:
-#line 223 "ael.y"
+#line 221 "ael.y"
     { /* empty globals is OK */
                (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-2]), &(yylsp[0])); ;}
     break;
 
   case 21:
-#line 227 "ael.y"
+#line 225 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 22:
-#line 228 "ael.y"
+#line 226 "ael.y"
     {(yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 23:
-#line 229 "ael.y"
+#line 227 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 24:
-#line 232 "ael.y"
+#line 230 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 25:
-#line 232 "ael.y"
+#line 230 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2059,82 +2045,82 @@ yyreduce:
     break;
 
   case 26:
-#line 238 "ael.y"
+#line 236 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
   case 27:
-#line 239 "ael.y"
+#line 237 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;}
     break;
 
   case 28:
-#line 240 "ael.y"
+#line 238 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 29:
-#line 243 "ael.y"
+#line 241 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 30:
-#line 244 "ael.y"
+#line 242 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
   case 31:
-#line 247 "ael.y"
+#line 245 "ael.y"
     { (yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 32:
-#line 248 "ael.y"
+#line 246 "ael.y"
     {(yyval.pval)=0;;}
     break;
 
   case 33:
-#line 249 "ael.y"
+#line 247 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 34:
-#line 250 "ael.y"
+#line 248 "ael.y"
     { (yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 35:
-#line 253 "ael.y"
+#line 251 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 36:
-#line 254 "ael.y"
+#line 252 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 37:
-#line 255 "ael.y"
+#line 253 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 38:
-#line 256 "ael.y"
+#line 254 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 39:
-#line 257 "ael.y"
+#line 255 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 40:
-#line 258 "ael.y"
+#line 256 "ael.y"
     { reset_semicount(parseio->scanner); ;}
     break;
 
   case 41:
-#line 258 "ael.y"
+#line 256 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2142,24 +2128,24 @@ yyreduce:
     break;
 
   case 42:
-#line 262 "ael.y"
+#line 260 "ael.y"
     {free((yyvsp[-1].str)); (yyval.pval)=0;;}
     break;
 
   case 43:
-#line 263 "ael.y"
+#line 261 "ael.y"
     {(yyval.pval)=0;/* allow older docs to be read */;}
     break;
 
   case 44:
-#line 266 "ael.y"
+#line 264 "ael.y"
     {
                (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 45:
-#line 271 "ael.y"
+#line 269 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2167,7 +2153,7 @@ yyreduce:
     break;
 
   case 46:
-#line 275 "ael.y"
+#line 273 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2176,7 +2162,7 @@ yyreduce:
     break;
 
   case 47:
-#line 280 "ael.y"
+#line 278 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2185,7 +2171,7 @@ yyreduce:
     break;
 
   case 48:
-#line 285 "ael.y"
+#line 283 "ael.y"
     {
                (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2195,46 +2181,46 @@ yyreduce:
     break;
 
   case 49:
-#line 294 "ael.y"
+#line 292 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
   case 50:
-#line 295 "ael.y"
+#line 293 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
   case 51:
-#line 296 "ael.y"
+#line 294 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
   case 52:
-#line 299 "ael.y"
+#line 298 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 53:
-#line 299 "ael.y"
+#line 298 "ael.y"
     {
                (yyval.pval)= npval2(PV_IF, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 54:
-#line 304 "ael.y"
+#line 301 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 55:
-#line 304 "ael.y"
+#line 301 "ael.y"
     {
                (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str=(yyvsp[-1].str);;}
     break;
 
   case 56:
-#line 310 "ael.y"
+#line 305 "ael.y"
     {
                (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-13]), &(yylsp[-13]));
                (yyval.pval)->u1.list = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-7]));
@@ -2250,7 +2236,7 @@ yyreduce:
     break;
 
   case 57:
-#line 322 "ael.y"
+#line 317 "ael.y"
     {
                (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-9]), &(yylsp[-5])); /* XXX @5 or greater ? */
                (yyval.pval)->u1.list = nword((yyvsp[-7].str), &(yylsp[-7]));
@@ -2262,12 +2248,12 @@ yyreduce:
     break;
 
   case 58:
-#line 338 "ael.y"
+#line 333 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 59:
-#line 339 "ael.y"
+#line 334 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2276,12 +2262,12 @@ yyreduce:
     break;
 
   case 60:
-#line 346 "ael.y"
+#line 341 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 61:
-#line 347 "ael.y"
+#line 342 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2290,7 +2276,7 @@ yyreduce:
     break;
 
   case 62:
-#line 352 "ael.y"
+#line 347 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-2].str));
@@ -2300,12 +2286,12 @@ yyreduce:
     break;
 
   case 63:
-#line 360 "ael.y"
+#line 355 "ael.y"
     { (yyval.str) = (yyvsp[0].str);;}
     break;
 
   case 64:
-#line 361 "ael.y"
+#line 356 "ael.y"
     {
                asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
                free((yyvsp[-1].str));
@@ -2313,7 +2299,7 @@ yyreduce:
     break;
 
   case 65:
-#line 365 "ael.y"
+#line 360 "ael.y"
     {
                asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str));
                free((yyvsp[-2].str));
@@ -2321,31 +2307,31 @@ yyreduce:
     break;
 
   case 66:
-#line 371 "ael.y"
+#line 366 "ael.y"
     { reset_parencount(parseio->scanner); ;}
     break;
 
   case 67:
-#line 371 "ael.y"
+#line 366 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCH, &(yylsp[-5]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
   case 68:
-#line 379 "ael.y"
+#line 374 "ael.y"
     {
                (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
     break;
 
   case 69:
-#line 382 "ael.y"
+#line 377 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 70:
-#line 382 "ael.y"
+#line 377 "ael.y"
     {
                (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2353,43 +2339,43 @@ yyreduce:
     break;
 
   case 71:
-#line 386 "ael.y"
+#line 381 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 72:
-#line 389 "ael.y"
+#line 384 "ael.y"
     {
                (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
   case 73:
-#line 392 "ael.y"
+#line 387 "ael.y"
     {
                (yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str); ;}
     break;
 
   case 74:
-#line 395 "ael.y"
+#line 390 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 75:
-#line 396 "ael.y"
+#line 391 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 76:
-#line 397 "ael.y"
+#line 392 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 77:
-#line 397 "ael.y"
+#line 392 "ael.y"
     {
                (yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0]));
                (yyval.pval)->u1.for_init = (yyvsp[-8].str);
@@ -2399,12 +2385,12 @@ yyreduce:
     break;
 
   case 78:
-#line 403 "ael.y"
+#line 398 "ael.y"
     {reset_parencount(parseio->scanner);;}
     break;
 
   case 79:
-#line 403 "ael.y"
+#line 398 "ael.y"
     {
                (yyval.pval) = npval2(PV_WHILE, &(yylsp[-5]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2412,44 +2398,44 @@ yyreduce:
     break;
 
   case 80:
-#line 407 "ael.y"
+#line 402 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 81:
-#line 409 "ael.y"
+#line 404 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
                (yyval.pval)->u2.statements = (yyvsp[-1].pval);;}
     break;
 
   case 82:
-#line 412 "ael.y"
+#line 407 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;}
     break;
 
   case 83:
-#line 414 "ael.y"
+#line 409 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
   case 84:
-#line 416 "ael.y"
+#line 411 "ael.y"
     {
                (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
   case 85:
-#line 419 "ael.y"
+#line 414 "ael.y"
     {reset_semicount(parseio->scanner);;}
     break;
 
   case 86:
-#line 419 "ael.y"
+#line 414 "ael.y"
     {
                char *bufx;
                int tot=0;
@@ -2486,163 +2472,147 @@ yyreduce:
     break;
 
   case 87:
-#line 452 "ael.y"
+#line 447 "ael.y"
     { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 88:
-#line 453 "ael.y"
+#line 448 "ael.y"
     { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 89:
-#line 454 "ael.y"
+#line 449 "ael.y"
     { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;}
     break;
 
   case 90:
-#line 455 "ael.y"
+#line 450 "ael.y"
     {
-               (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
+               (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 91:
-#line 459 "ael.y"
-    {
-               (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
-               (yyval.pval)->u2.statements = (yyvsp[-1].pval);
-               (yyval.pval)->u3.else_statements = (yyvsp[0].pval);;}
-    break;
-
-  case 92:
-#line 463 "ael.y"
-    {
-               (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); /* XXX probably @3... */
-               (yyval.pval)->u2.statements = (yyvsp[-1].pval);
-               (yyval.pval)->u3.else_statements = (yyvsp[0].pval);;}
-    break;
-
-  case 93:
-#line 467 "ael.y"
+#line 454 "ael.y"
     { (yyval.pval)=0; ;}
     break;
 
-  case 94:
-#line 470 "ael.y"
+  case 92:
+#line 457 "ael.y"
     { (yyval.pval) = (yyvsp[0].pval); ;}
     break;
 
-  case 95:
-#line 471 "ael.y"
+  case 93:
+#line 458 "ael.y"
     { (yyval.pval) = NULL ; ;}
     break;
 
-  case 96:
-#line 476 "ael.y"
+  case 94:
+#line 463 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 97:
-#line 477 "ael.y"
+  case 95:
+#line 464 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 98:
-#line 480 "ael.y"
+  case 96:
+#line 467 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 99:
-#line 483 "ael.y"
+  case 97:
+#line 470 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 100:
-#line 487 "ael.y"
+  case 98:
+#line 474 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 101:
-#line 491 "ael.y"
+  case 99:
+#line 478 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 102:
-#line 495 "ael.y"
+  case 100:
+#line 482 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 103:
-#line 502 "ael.y"
+  case 101:
+#line 489 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0]));
                (yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;}
     break;
 
-  case 104:
-#line 505 "ael.y"
+  case 102:
+#line 492 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 105:
-#line 508 "ael.y"
+  case 103:
+#line 495 "ael.y"
     {  /* XXX they are stored in a different order */
                (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 106:
-#line 512 "ael.y"
+  case 104:
+#line 499 "ael.y"
     {
                (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 107:
-#line 516 "ael.y"
+  case 105:
+#line 503 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-4]));
                (yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4]));
                (yyval.pval)->next->next = nword((yyvsp[-2].str), &(yylsp[-2])); ;}
     break;
 
-  case 108:
-#line 520 "ael.y"
+  case 106:
+#line 507 "ael.y"
     {
                (yyval.pval) = nword(strdup("default"), &(yylsp[-2]));
                (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[0]));
                (yyval.pval)->next->next = nword( strdup("1"), &(yylsp[0])); ;}
     break;
 
-  case 109:
-#line 526 "ael.y"
+  case 107:
+#line 513 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
-  case 110:
-#line 526 "ael.y"
+  case 108:
+#line 513 "ael.y"
     {
                /* XXX original code had @2 but i think we need @5 */
                (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0]));
@@ -2650,20 +2620,20 @@ yyreduce:
                (yyval.pval)->u2.arglist = (yyvsp[-1].pval);;}
     break;
 
-  case 111:
-#line 531 "ael.y"
+  case 109:
+#line 518 "ael.y"
     {
                (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-2].str); ;}
     break;
 
-  case 112:
-#line 539 "ael.y"
+  case 110:
+#line 526 "ael.y"
     {reset_argcount(parseio->scanner);;}
     break;
 
-  case 113:
-#line 539 "ael.y"
+  case 111:
+#line 526 "ael.y"
     {
                if (strcasecmp((yyvsp[-2].str),"goto") == 0) {
                        (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[-1]));
@@ -2675,8 +2645,8 @@ yyreduce:
                } ;}
     break;
 
-  case 114:
-#line 550 "ael.y"
+  case 112:
+#line 537 "ael.y"
     {
                (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0]));
                if( (yyval.pval)->type == PV_GOTO )
@@ -2686,162 +2656,162 @@ yyreduce:
        ;}
     break;
 
-  case 115:
-#line 557 "ael.y"
+  case 113:
+#line 544 "ael.y"
     { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;}
     break;
 
-  case 116:
-#line 560 "ael.y"
+  case 114:
+#line 547 "ael.y"
     { (yyval.str) = (yyvsp[0].str) ;}
     break;
 
-  case 117:
-#line 561 "ael.y"
+  case 115:
+#line 548 "ael.y"
     { (yyval.str) = strdup(""); ;}
     break;
 
-  case 118:
-#line 564 "ael.y"
+  case 116:
+#line 551 "ael.y"
     { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;}
     break;
 
-  case 119:
-#line 565 "ael.y"
+  case 117:
+#line 552 "ael.y"
     {
                (yyval.pval)= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/);
                (yyval.pval)->u1.str = strdup(""); ;}
     break;
 
-  case 120:
-#line 568 "ael.y"
+  case 118:
+#line 555 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;}
     break;
 
-  case 121:
-#line 571 "ael.y"
+  case 119:
+#line 558 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
-  case 122:
-#line 572 "ael.y"
+  case 120:
+#line 559 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
-  case 123:
-#line 575 "ael.y"
+  case 121:
+#line 562 "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 124:
-#line 579 "ael.y"
+  case 122:
+#line 566 "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 125:
-#line 583 "ael.y"
+  case 123:
+#line 570 "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 126:
-#line 587 "ael.y"
+  case 124:
+#line 574 "ael.y"
     {
                (yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
-  case 127:
-#line 590 "ael.y"
+  case 125:
+#line 577 "ael.y"
     {
                (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.str = NULL;;}
     break;
 
-  case 128:
-#line 593 "ael.y"
+  case 126:
+#line 580 "ael.y"
     {
                (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0]));
                (yyval.pval)->u1.str = (yyvsp[-1].str);;}
     break;
 
-  case 129:
-#line 598 "ael.y"
+  case 127:
+#line 585 "ael.y"
     {(yyval.pval) = (yyvsp[0].pval);;}
     break;
 
-  case 130:
-#line 599 "ael.y"
+  case 128:
+#line 586 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;}
     break;
 
-  case 131:
-#line 602 "ael.y"
+  case 129:
+#line 589 "ael.y"
     {(yyval.pval)=(yyvsp[0].pval);;}
     break;
 
-  case 132:
-#line 603 "ael.y"
+  case 130:
+#line 590 "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 133:
-#line 609 "ael.y"
+  case 131:
+#line 596 "ael.y"
     {
                (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[0].pval); ;}
     break;
 
-  case 134:
-#line 614 "ael.y"
+  case 132:
+#line 601 "ael.y"
     {
                (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-1]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[0].pval); ;}
     break;
 
-  case 135:
-#line 619 "ael.y"
+  case 133:
+#line 606 "ael.y"
     { (yyval.pval) = (yyvsp[-1].pval); ;}
     break;
 
-  case 136:
-#line 620 "ael.y"
+  case 134:
+#line 607 "ael.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 137:
-#line 623 "ael.y"
+  case 135:
+#line 610 "ael.y"
     { (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); ;}
     break;
 
-  case 138:
-#line 624 "ael.y"
+  case 136:
+#line 611 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[-1].str), &(yylsp[-1]))); ;}
     break;
 
-  case 139:
-#line 625 "ael.y"
+  case 137:
+#line 612 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
-  case 140:
-#line 628 "ael.y"
+  case 138:
+#line 615 "ael.y"
     { (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); ;}
     break;
 
-  case 141:
-#line 630 "ael.y"
+  case 139:
+#line 617 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-13].str), &(yylsp[-13]));
                (yyval.pval)->u2.arglist = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-7]));
@@ -2856,8 +2826,8 @@ yyreduce:
        ;}
     break;
 
-  case 142:
-#line 642 "ael.y"
+  case 140:
+#line 629 "ael.y"
     {
                (yyval.pval) = nword((yyvsp[-9].str), &(yylsp[-9]));
                (yyval.pval)->u2.arglist = nword((yyvsp[-7].str), &(yylsp[-7]));
@@ -2868,13 +2838,13 @@ yyreduce:
        ;}
     break;
 
-  case 143:
-#line 650 "ael.y"
+  case 141:
+#line 637 "ael.y"
     { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[-1].str), &(yylsp[-1]))); ;}
     break;
 
-  case 144:
-#line 652 "ael.y"
+  case 142:
+#line 639 "ael.y"
     {
                pval *z = nword((yyvsp[-13].str), &(yylsp[-13]));
                (yyval.pval) = linku1((yyvsp[-14].pval), z);
@@ -2890,8 +2860,8 @@ yyreduce:
        ;}
     break;
 
-  case 145:
-#line 665 "ael.y"
+  case 143:
+#line 652 "ael.y"
     {
                pval *z = npval2(PV_WORD, &(yylsp[-9]), &(yylsp[-8]));
                (yyval.pval) = linku1((yyvsp[-10].pval), z);
@@ -2905,20 +2875,20 @@ yyreduce:
        ;}
     break;
 
-  case 146:
-#line 676 "ael.y"
+  case 144:
+#line 663 "ael.y"
     {(yyval.pval)=(yyvsp[-1].pval);;}
     break;
 
-  case 147:
-#line 679 "ael.y"
+  case 145:
+#line 666 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0]));
                (yyval.pval)->u1.list = (yyvsp[-1].pval);;}
     break;
 
-  case 148:
-#line 682 "ael.y"
+  case 146:
+#line 669 "ael.y"
     {
                (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;}
     break;
@@ -2928,7 +2898,7 @@ yyreduce:
     }
 
 /* Line 1126 of yacc.c.  */
-#line 2932 "ael.tab.c"
+#line 2902 "ael.tab.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3203,7 +3173,7 @@ yyreturn:
 }
 
 
-#line 687 "ael.y"
+#line 674 "ael.y"
 
 
 static char *token_equivs1[] =
index 0b5e1e9..9eebf4e 100644 (file)
@@ -100,9 +100,7 @@ static pval *update_last(pval *, YYLTYPE *);
 %type <pval>statement
 %type <pval>switch_head
 
-%type <pval>if_head
-%type <pval>random_head
-%type <pval>iftime_head
+%type <pval>if_like_head
 %type <pval>statements
 %type <pval>extension
 %type <pval>ignorepat
@@ -161,7 +159,7 @@ static pval *update_last(pval *, YYLTYPE *);
                macro_statement macro_statements case_statement case_statements
                eval_arglist application_call application_call_head
                macro_call target jumptarget statement switch_head
-               if_head random_head iftime_head statements extension
+               if_like_head statements extension
                ignorepat element elements arglist global_statement
                global_statements globals macro context object objects
                opt_else
@@ -296,17 +294,14 @@ statements : statement {$$=$1;}
        | statements error {$$=$1;}
        ;
 
-if_head : KW_IF LP { reset_parencount(parseio->scanner); }  word_list RP {
+/* 'if' like statements: if, iftime, random */
+if_like_head : KW_IF LP { reset_parencount(parseio->scanner); }  word_list RP {
                $$= npval2(PV_IF, &@1, &@5);
                $$->u1.str = $4; }
-       ;
-
-random_head : KW_RANDOM LP { reset_parencount(parseio->scanner); } word_list RP {
+       |  KW_RANDOM LP { reset_parencount(parseio->scanner); } word_list RP {
                $$ = npval2(PV_RANDOM, &@1, &@5);
                $$->u1.str=$4;}
-       ;
-
-iftime_head : KW_IFTIME LP word3_list COLON word3_list COLON word3_list
+       | KW_IFTIME LP word3_list COLON word3_list COLON word3_list
                BAR word3_list BAR word3_list BAR word3_list RP {
                $$ = npval2(PV_IFTIME, &@1, &@1);
                $$->u1.list = npval2(PV_WORD, &@3, &@7);
@@ -452,16 +447,8 @@ statement : LC statements RC {
        | KW_BREAK SEMI { $$ = npval2(PV_BREAK, &@1, &@2); }
        | KW_RETURN SEMI { $$ = npval2(PV_RETURN, &@1, &@2); }
        | KW_CONTINUE SEMI { $$ = npval2(PV_CONTINUE, &@1, &@2); }
-       | random_head statement opt_else {
-               $$ = update_last($1, &@2); /* XXX probably @3... */
-               $$->u2.statements = $2;
-               $$->u3.else_statements = $3;}
-       | if_head statement opt_else {
-               $$ = update_last($1, &@2); /* XXX probably @3... */
-               $$->u2.statements = $2;
-               $$->u3.else_statements = $3;}
-       | iftime_head statement opt_else {
-               $$ = update_last($1, &@2); /* XXX probably @3... */
+       | if_like_head statement opt_else {
+               $$ = update_last($1, &@2);
                $$->u2.statements = $2;
                $$->u3.else_statements = $3;}
        | SEMI { $$=0; }