~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to awktab.c

  • Committer: Arnold D. Robbins
  • Date: 2010-07-16 09:33:03 UTC
  • Revision ID: git-v1:2f83a4e72166e811a9f0b4726c19a3d5a0b17dcb
Tags: gawk-2.15.5
Move to gawk-2.15.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
164
164
 
165
165
#if YYDEBUG != 0
166
166
static const short yyprhs[] = {     0,
167
 
     0,     4,     6,     9,    11,    14,    15,    19,    20,    24,
168
 
    27,    30,    33,    35,    38,    41,    43,    45,    47,    49,
169
 
    51,    52,    60,    65,    67,    71,    72,    77,    83,    88,
170
 
    90,    93,    95,    98,   100,   103,   106,   109,   113,   115,
171
 
   122,   131,   140,   151,   161,   164,   167,   174,   179,   183,
172
 
   187,   188,   193,   200,   204,   207,   209,   211,   218,   228,
173
 
   230,   233,   234,   236,   237,   240,   241,   244,   247,   250,
174
 
   251,   253,   255,   259,   261,   264,   268,   269,   271,   272,
175
 
   274,   276,   280,   282,   285,   289,   293,   294,   296,   298,
176
 
   302,   304,   307,   311,   315,   316,   321,   327,   332,   336,
177
 
   340,   344,   348,   350,   353,   357,   361,   365,   369,   375,
178
 
   377,   380,   381,   386,   390,   394,   398,   400,   403,   407,
179
 
   411,   415,   421,   423,   426,   428,   432,   436,   440,   444,
180
 
   448,   452,   455,   458,   461,   465,   470,   475,   477,   482,
181
 
   484,   487,   490,   492,   494,   497,   500,   501,   503,   505,
182
 
   510,   513,   516,   519,   521,   522,   524,   526
 
167
     0,     4,     6,     9,    11,    14,    15,    16,    20,    21,
 
168
    25,    28,    31,    34,    36,    39,    42,    44,    46,    48,
 
169
    50,    52,    53,    61,    66,    68,    72,    73,    78,    84,
 
170
    89,    91,    94,    96,    99,   101,   104,   107,   110,   114,
 
171
   116,   123,   132,   141,   152,   162,   165,   168,   175,   180,
 
172
   184,   188,   189,   194,   201,   205,   208,   210,   212,   219,
 
173
   229,   231,   234,   235,   237,   238,   241,   242,   245,   248,
 
174
   251,   252,   254,   256,   260,   262,   265,   269,   270,   272,
 
175
   273,   275,   277,   281,   283,   286,   290,   294,   295,   297,
 
176
   299,   303,   305,   308,   312,   316,   317,   322,   328,   333,
 
177
   337,   341,   345,   349,   351,   354,   358,   362,   366,   370,
 
178
   376,   378,   381,   382,   387,   391,   395,   399,   401,   404,
 
179
   408,   412,   416,   422,   424,   427,   429,   433,   437,   441,
 
180
   445,   449,   453,   456,   459,   462,   466,   471,   476,   478,
 
181
   483,   485,   488,   491,   493,   495,   498,   501,   502,   504,
 
182
   506,   511,   514,   517,   520,   522,   523,   525,   527
183
183
};
184
184
 
185
185
#endif
186
186
 
187
187
static const short yyrhs[] = {    82,
188
188
    62,    82,     0,    63,     0,    62,    63,     0,     1,     0,
189
 
    62,     1,     0,     0,    15,    64,    74,     0,     0,    16,
190
 
    65,    74,     0,    15,    76,     0,    16,    76,     0,    71,
191
 
    74,     0,    74,     0,    71,    76,     0,    68,    70,     0,
192
 
     4,     0,     3,     0,    67,     0,    37,     0,    38,     0,
193
 
     0,    30,    69,    66,    54,    85,   102,    82,     0,   100,
194
 
    75,   101,   103,     0,    92,     0,    92,    41,    92,     0,
195
 
     0,    48,    73,     5,    48,     0,   100,    75,   101,   103,
196
 
    82,     0,   100,   101,   103,    82,     0,    77,     0,    75,
197
 
    77,     0,     1,     0,    75,     1,     0,    81,     0,   104,
198
 
    82,     0,   104,    82,     0,   100,   101,     0,   100,    75,
199
 
   101,     0,    80,     0,    21,    54,    92,   102,    82,    77,
200
 
     0,    22,    82,    77,    21,    54,    92,   102,    82,     0,
201
 
    23,    54,     4,    32,     4,   102,    82,    77,     0,    23,
202
 
    54,    87,   104,    92,   104,    87,   102,    82,    77,     0,
203
 
    23,    54,    87,   104,   104,    87,   102,    82,    77,     0,
204
 
    24,    76,     0,    25,    76,     0,    79,    54,    91,   102,
205
 
    84,    76,     0,    79,    88,    84,    76,     0,    28,    87,
206
 
    76,     0,    29,    87,    76,     0,     0,    19,    78,    87,
207
 
    76,     0,    20,     4,    56,    91,    57,    76,     0,    20,
208
 
     4,    76,     0,    92,    76,     0,    26,     0,    27,     0,
209
 
    17,    54,    92,   102,    82,    77,     0,    17,    54,    92,
210
 
   102,    82,    77,    18,    82,    77,     0,    13,     0,    81,
211
 
    13,     0,     0,    81,     0,     0,    42,    96,     0,     0,
212
 
    43,    92,     0,    10,    92,     0,    44,    92,     0,     0,
213
 
    86,     0,     4,     0,    86,   105,     4,     0,     1,     0,
214
 
    86,     1,     0,    86,   105,     1,     0,     0,    92,     0,
215
 
     0,    89,     0,    94,     0,    89,   105,    94,     0,     1,
216
 
     0,    89,     1,     0,    89,     1,    94,     0,    89,   105,
217
 
     1,     0,     0,    91,     0,    92,     0,    91,   105,    92,
218
 
     0,     1,     0,    91,     1,     0,    91,     1,    92,     0,
219
 
    91,   105,     1,     0,     0,    99,    11,    93,    92,     0,
220
 
    54,    91,   102,    32,     4,     0,    92,    44,    31,    98,
221
 
     0,    31,    98,    83,     0,    92,    33,    92,     0,    92,
222
 
    34,    92,     0,    92,    12,    92,     0,    72,     0,    50,
223
 
    72,     0,    92,    32,     4,     0,    92,     9,    92,     0,
224
 
    92,    42,    92,     0,    92,    43,    92,     0,    92,    39,
225
 
    92,    40,    92,     0,    96,     0,    92,    96,     0,     0,
226
 
    99,    11,    95,    94,     0,    94,    33,    94,     0,    94,
227
 
    34,    94,     0,    31,    98,    83,     0,    72,     0,    50,
228
 
    72,     0,    94,    12,    94,     0,    94,    32,     4,     0,
229
 
    94,     9,    94,     0,    94,    39,    94,    40,    94,     0,
230
 
    96,     0,    94,    96,     0,    97,     0,    96,    52,    96,
231
 
     0,    96,    47,    96,     0,    96,    48,    96,     0,    96,
232
 
    49,    96,     0,    96,    45,    96,     0,    96,    46,    96,
233
 
     0,    99,    35,     0,    99,    36,     0,    50,    96,     0,
234
 
    54,    92,   102,     0,    37,    54,    90,   102,     0,    38,
235
 
    54,    90,   102,     0,    38,     0,     3,    54,    90,   102,
236
 
     0,    99,     0,    35,    99,     0,    36,    99,     0,     7,
237
 
     0,     8,     0,    46,    96,     0,    45,    96,     0,     0,
238
 
    99,     0,     4,     0,     4,    56,    91,    57,     0,    53,
239
 
    97,     0,    58,    82,     0,    59,    82,     0,    55,     0,
240
 
     0,   104,     0,    60,     0,    41,    82,     0
 
189
    62,     1,     0,     0,     0,    15,    64,    74,     0,     0,
 
190
    16,    65,    74,     0,    15,    76,     0,    16,    76,     0,
 
191
    71,    74,     0,    74,     0,    71,    76,     0,    68,    70,
 
192
     0,     4,     0,     3,     0,    67,     0,    37,     0,    38,
 
193
     0,     0,    30,    69,    66,    54,    85,   102,    82,     0,
 
194
   100,    75,   101,   103,     0,    92,     0,    92,    41,    92,
 
195
     0,     0,    48,    73,     5,    48,     0,   100,    75,   101,
 
196
   103,    82,     0,   100,   101,   103,    82,     0,    77,     0,
 
197
    75,    77,     0,     1,     0,    75,     1,     0,    81,     0,
 
198
   104,    82,     0,   104,    82,     0,   100,   101,     0,   100,
 
199
    75,   101,     0,    80,     0,    21,    54,    92,   102,    82,
 
200
    77,     0,    22,    82,    77,    21,    54,    92,   102,    82,
 
201
     0,    23,    54,     4,    32,     4,   102,    82,    77,     0,
 
202
    23,    54,    87,   104,    92,   104,    87,   102,    82,    77,
 
203
     0,    23,    54,    87,   104,   104,    87,   102,    82,    77,
 
204
     0,    24,    76,     0,    25,    76,     0,    79,    54,    91,
 
205
   102,    84,    76,     0,    79,    88,    84,    76,     0,    28,
 
206
    87,    76,     0,    29,    87,    76,     0,     0,    19,    78,
 
207
    87,    76,     0,    20,     4,    56,    91,    57,    76,     0,
 
208
    20,     4,    76,     0,    92,    76,     0,    26,     0,    27,
 
209
     0,    17,    54,    92,   102,    82,    77,     0,    17,    54,
 
210
    92,   102,    82,    77,    18,    82,    77,     0,    13,     0,
 
211
    81,    13,     0,     0,    81,     0,     0,    42,    96,     0,
 
212
     0,    43,    92,     0,    10,    92,     0,    44,    92,     0,
 
213
     0,    86,     0,     4,     0,    86,   105,     4,     0,     1,
 
214
     0,    86,     1,     0,    86,   105,     1,     0,     0,    92,
 
215
     0,     0,    89,     0,    94,     0,    89,   105,    94,     0,
 
216
     1,     0,    89,     1,     0,    89,     1,    94,     0,    89,
 
217
   105,     1,     0,     0,    91,     0,    92,     0,    91,   105,
 
218
    92,     0,     1,     0,    91,     1,     0,    91,     1,    92,
 
219
     0,    91,   105,     1,     0,     0,    99,    11,    93,    92,
 
220
     0,    54,    91,   102,    32,     4,     0,    92,    44,    31,
 
221
    98,     0,    31,    98,    83,     0,    92,    33,    92,     0,
 
222
    92,    34,    92,     0,    92,    12,    92,     0,    72,     0,
 
223
    50,    72,     0,    92,    32,     4,     0,    92,     9,    92,
 
224
     0,    92,    42,    92,     0,    92,    43,    92,     0,    92,
 
225
    39,    92,    40,    92,     0,    96,     0,    92,    96,     0,
 
226
     0,    99,    11,    95,    94,     0,    94,    33,    94,     0,
 
227
    94,    34,    94,     0,    31,    98,    83,     0,    72,     0,
 
228
    50,    72,     0,    94,    12,    94,     0,    94,    32,     4,
 
229
     0,    94,     9,    94,     0,    94,    39,    94,    40,    94,
 
230
     0,    96,     0,    94,    96,     0,    97,     0,    96,    52,
 
231
    96,     0,    96,    47,    96,     0,    96,    48,    96,     0,
 
232
    96,    49,    96,     0,    96,    45,    96,     0,    96,    46,
 
233
    96,     0,    99,    35,     0,    99,    36,     0,    50,    96,
 
234
     0,    54,    92,   102,     0,    37,    54,    90,   102,     0,
 
235
    38,    54,    90,   102,     0,    38,     0,     3,    54,    90,
 
236
   102,     0,    99,     0,    35,    99,     0,    36,    99,     0,
 
237
     7,     0,     8,     0,    46,    96,     0,    45,    96,     0,
 
238
     0,    99,     0,     4,     0,     4,    56,    91,    57,     0,
 
239
    53,    97,     0,    58,    82,     0,    59,    82,     0,    55,
 
240
     0,     0,   104,     0,    60,     0,    41,    82,     0
241
241
};
242
242
 
243
243
#if YYDEBUG != 0
244
244
static const short yyrline[] = { 0,
245
 
   135,   140,   148,   164,   165,   169,   171,   185,   187,   201,
246
 
   207,   213,   215,   217,   230,   239,   241,   243,   253,   254,
247
 
   258,   262,   270,   279,   281,   290,   292,   310,   312,   317,
248
 
   319,   327,   329,   334,   335,   339,   341,   343,   345,   347,
249
 
   349,   351,   356,   360,   365,   368,   371,   373,   384,   411,
250
 
   413,   415,   417,   419,   433,   438,   440,   445,   450,   457,
251
 
   459,   463,   464,   468,   470,   475,   477,   479,   481,   486,
252
 
   488,   493,   495,   497,   499,   501,   507,   509,   514,   516,
253
 
   521,   523,   529,   531,   533,   535,   540,   542,   547,   549,
254
 
   555,   557,   559,   561,   566,   569,   574,   576,   581,   587,
255
 
   589,   591,   597,   599,   607,   609,   615,   617,   619,   621,
256
 
   623,   628,   631,   632,   634,   636,   642,   644,   646,   648,
257
 
   650,   652,   654,   656,   661,   663,   665,   667,   669,   671,
258
 
   673,   675,   677,   682,   684,   686,   689,   691,   699,   703,
259
 
   704,   706,   708,   710,   713,   720,   725,   727,   732,   734,
260
 
   742,   747,   751,   755,   759,   760,   764,   767
 
245
   135,   140,   148,   164,   165,   166,   170,   172,   186,   188,
 
246
   202,   208,   214,   216,   218,   231,   240,   242,   244,   254,
 
247
   255,   259,   263,   271,   280,   282,   291,   293,   311,   313,
 
248
   318,   320,   328,   330,   335,   336,   340,   342,   344,   346,
 
249
   348,   350,   352,   357,   361,   366,   369,   372,   374,   385,
 
250
   412,   414,   416,   418,   420,   434,   439,   441,   446,   451,
 
251
   458,   460,   464,   465,   469,   471,   476,   478,   480,   482,
 
252
   487,   489,   494,   496,   498,   500,   502,   508,   510,   515,
 
253
   517,   522,   524,   530,   532,   534,   536,   541,   543,   548,
 
254
   550,   556,   558,   560,   562,   567,   570,   575,   577,   582,
 
255
   588,   590,   592,   598,   600,   608,   610,   616,   618,   620,
 
256
   622,   624,   629,   632,   633,   635,   637,   643,   645,   647,
 
257
   649,   651,   653,   655,   657,   662,   664,   666,   668,   670,
 
258
   672,   674,   676,   678,   683,   685,   687,   690,   692,   700,
 
259
   704,   705,   707,   709,   711,   714,   721,   730,   732,   737,
 
260
   739,   747,   752,   756,   760,   764,   765,   769,   772
261
261
};
262
262
 
263
263
static const char * const yytname[] = {   "$","error","$illegal.","FUNC_CALL",
278
278
#endif
279
279
 
280
280
static const short yyr1[] = {     0,
281
 
    61,    62,    62,    62,    62,    64,    63,    65,    63,    63,
282
 
    63,    63,    63,    63,    63,    66,    66,    66,    67,    67,
283
 
    69,    68,    70,    71,    71,    73,    72,    74,    74,    75,
284
 
    75,    75,    75,    76,    76,    77,    77,    77,    77,    77,
 
281
    61,    62,    62,    62,    62,    62,    64,    63,    65,    63,
 
282
    63,    63,    63,    63,    63,    63,    66,    66,    66,    67,
 
283
    67,    69,    68,    70,    71,    71,    73,    72,    74,    74,
 
284
    75,    75,    75,    75,    76,    76,    77,    77,    77,    77,
285
285
    77,    77,    77,    77,    77,    77,    77,    77,    77,    77,
286
 
    78,    77,    77,    77,    77,    79,    79,    80,    80,    81,
287
 
    81,    82,    82,    83,    83,    84,    84,    84,    84,    85,
288
 
    85,    86,    86,    86,    86,    86,    87,    87,    88,    88,
289
 
    89,    89,    89,    89,    89,    89,    90,    90,    91,    91,
290
 
    91,    91,    91,    91,    93,    92,    92,    92,    92,    92,
 
286
    77,    78,    77,    77,    77,    77,    79,    79,    80,    80,
 
287
    81,    81,    82,    82,    83,    83,    84,    84,    84,    84,
 
288
    85,    85,    86,    86,    86,    86,    86,    87,    87,    88,
 
289
    88,    89,    89,    89,    89,    89,    89,    90,    90,    91,
 
290
    91,    91,    91,    91,    91,    93,    92,    92,    92,    92,
291
291
    92,    92,    92,    92,    92,    92,    92,    92,    92,    92,
292
 
    92,    95,    94,    94,    94,    94,    94,    94,    94,    94,
293
 
    94,    94,    94,    94,    96,    96,    96,    96,    96,    96,
294
 
    96,    96,    96,    97,    97,    97,    97,    97,    97,    97,
295
 
    97,    97,    97,    97,    97,    97,    98,    98,    99,    99,
296
 
    99,   100,   101,   102,   103,   103,   104,   105
 
292
    92,    92,    95,    94,    94,    94,    94,    94,    94,    94,
 
293
    94,    94,    94,    94,    94,    96,    96,    96,    96,    96,
 
294
    96,    96,    96,    96,    97,    97,    97,    97,    97,    97,
 
295
    97,    97,    97,    97,    97,    97,    97,    98,    98,    99,
 
296
    99,    99,   100,   101,   102,   103,   103,   104,   105
297
297
};
298
298
 
299
299
static const short yyr2[] = {     0,
300
 
     3,     1,     2,     1,     2,     0,     3,     0,     3,     2,
301
 
     2,     2,     1,     2,     2,     1,     1,     1,     1,     1,
302
 
     0,     7,     4,     1,     3,     0,     4,     5,     4,     1,
303
 
     2,     1,     2,     1,     2,     2,     2,     3,     1,     6,
304
 
     8,     8,    10,     9,     2,     2,     6,     4,     3,     3,
305
 
     0,     4,     6,     3,     2,     1,     1,     6,     9,     1,
306
 
     2,     0,     1,     0,     2,     0,     2,     2,     2,     0,
307
 
     1,     1,     3,     1,     2,     3,     0,     1,     0,     1,
308
 
     1,     3,     1,     2,     3,     3,     0,     1,     1,     3,
309
 
     1,     2,     3,     3,     0,     4,     5,     4,     3,     3,
310
 
     3,     3,     1,     2,     3,     3,     3,     3,     5,     1,
311
 
     2,     0,     4,     3,     3,     3,     1,     2,     3,     3,
312
 
     3,     5,     1,     2,     1,     3,     3,     3,     3,     3,
313
 
     3,     2,     2,     2,     3,     4,     4,     1,     4,     1,
314
 
     2,     2,     1,     1,     2,     2,     0,     1,     1,     4,
315
 
     2,     2,     2,     1,     0,     1,     1,     2
 
300
     3,     1,     2,     1,     2,     0,     0,     3,     0,     3,
 
301
     2,     2,     2,     1,     2,     2,     1,     1,     1,     1,
 
302
     1,     0,     7,     4,     1,     3,     0,     4,     5,     4,
 
303
     1,     2,     1,     2,     1,     2,     2,     2,     3,     1,
 
304
     6,     8,     8,    10,     9,     2,     2,     6,     4,     3,
 
305
     3,     0,     4,     6,     3,     2,     1,     1,     6,     9,
 
306
     1,     2,     0,     1,     0,     2,     0,     2,     2,     2,
 
307
     0,     1,     1,     3,     1,     2,     3,     0,     1,     0,
 
308
     1,     1,     3,     1,     2,     3,     3,     0,     1,     1,
 
309
     3,     1,     2,     3,     3,     0,     4,     5,     4,     3,
 
310
     3,     3,     3,     1,     2,     3,     3,     3,     3,     5,
 
311
     1,     2,     0,     4,     3,     3,     3,     1,     2,     3,
 
312
     3,     3,     5,     1,     2,     1,     3,     3,     3,     3,
 
313
     3,     3,     2,     2,     2,     3,     4,     4,     1,     4,
 
314
     1,     2,     2,     1,     1,     2,     2,     0,     1,     1,
 
315
     4,     2,     2,     2,     1,     0,     1,     1,     2
316
316
};
317
317
 
318
 
static const short yydefact[] = {    62,
319
 
    60,    63,     0,    61,     4,     0,   149,   143,   144,     6,
320
 
     8,    21,   147,     0,     0,     0,   138,     0,     0,    26,
321
 
     0,     0,     0,    62,     0,     2,     0,     0,   103,    13,
322
 
    24,   110,   125,   140,     0,     0,     0,   157,     0,    10,
323
 
    34,    62,     0,    11,     0,    64,   148,   141,   142,     0,
324
 
     0,     0,     0,   146,   140,   145,     0,   104,   134,   151,
325
 
   140,    91,     0,    89,   152,     5,     3,     1,    15,     0,
326
 
    12,    14,     0,     0,     0,     0,     0,     0,     0,     0,
327
 
     0,     0,   111,     0,     0,     0,     0,     0,     0,    95,
328
 
   132,   133,    32,     0,    51,     0,     0,    62,     0,     0,
329
 
     0,    56,    57,    77,    77,    62,     0,    30,     0,    39,
330
 
     0,     0,   155,    62,     0,     0,    89,     0,     7,    35,
331
 
     9,    17,    16,    19,    20,     0,    18,     0,    99,     0,
332
 
     0,     0,     0,    92,    62,   154,     0,     0,   135,     0,
333
 
   106,   102,   105,   100,   101,     0,    25,   107,   108,   147,
334
 
   130,   131,   127,   128,   129,   126,     0,     0,    77,     0,
335
 
     0,     0,    77,    45,    46,     0,    78,     0,   153,    33,
336
 
    31,   155,    83,   147,     0,     0,   117,    66,     0,    81,
337
 
   123,   140,    55,     0,    37,    62,   156,    36,   139,   150,
338
 
     0,    65,   136,   137,    27,    93,   158,     0,    94,    90,
339
 
   155,     0,    98,    96,     0,     0,     0,    54,     0,     0,
340
 
   149,     0,    49,    50,    62,    64,   118,     0,     0,     0,
341
 
     0,     0,    84,     0,     0,     0,     0,     0,     0,     0,
342
 
   124,   112,    38,    29,    74,    72,     0,     0,    97,    23,
343
 
   109,    62,    52,     0,    62,     0,     0,     0,    28,   116,
344
 
    66,    68,    67,    69,    48,    85,    86,    82,   121,   119,
345
 
   120,   114,   115,     0,     0,    62,    75,     0,     0,     0,
346
 
     0,     0,     0,     0,    77,     0,     0,   113,    22,    76,
347
 
    73,    58,    53,    40,     0,    62,    77,     0,    47,   122,
348
 
    62,    62,     0,     0,    62,     0,    41,    42,    62,     0,
349
 
    59,     0,    44,    43,     0,     0,     0
 
318
static const short yydefact[] = {    63,
 
319
    61,    64,     0,    62,     4,     0,   150,   144,   145,     7,
 
320
     9,    22,   148,     0,     0,     0,   139,     0,     0,    27,
 
321
     0,     0,     0,    63,     0,     2,     0,     0,   104,    14,
 
322
    25,   111,   126,   141,     0,     0,     0,   158,     0,    11,
 
323
    35,    63,     0,    12,     0,    65,   149,   142,   143,     0,
 
324
     0,     0,     0,   147,   141,   146,     0,   105,   135,   152,
 
325
   141,    92,     0,    90,   153,     5,     3,     1,    16,     0,
 
326
    13,    15,     0,     0,     0,     0,     0,     0,     0,     0,
 
327
     0,     0,   112,     0,     0,     0,     0,     0,     0,    96,
 
328
   133,   134,    33,     0,    52,     0,     0,    63,     0,     0,
 
329
     0,    57,    58,    78,    78,    63,     0,    31,     0,    40,
 
330
     0,     0,   156,    63,     0,     0,    90,     0,     8,    36,
 
331
    10,    18,    17,    20,    21,     0,    19,     0,   100,     0,
 
332
     0,     0,     0,    93,    63,   155,     0,     0,   136,     0,
 
333
   107,   103,   106,   101,   102,     0,    26,   108,   109,   148,
 
334
   131,   132,   128,   129,   130,   127,     0,     0,    78,     0,
 
335
     0,     0,    78,    46,    47,     0,    79,     0,   154,    34,
 
336
    32,   156,    84,   148,     0,     0,   118,    67,     0,    82,
 
337
   124,   141,    56,     0,    38,    63,   157,    37,   140,   151,
 
338
     0,    66,   137,   138,    28,    94,   159,     0,    95,    91,
 
339
   156,     0,    99,    97,     0,     0,     0,    55,     0,     0,
 
340
   150,     0,    50,    51,    63,    65,   119,     0,     0,     0,
 
341
     0,     0,    85,     0,     0,     0,     0,     0,     0,     0,
 
342
   125,   113,    39,    30,    75,    73,     0,     0,    98,    24,
 
343
   110,    63,    53,     0,    63,     0,     0,     0,    29,   117,
 
344
    67,    69,    68,    70,    49,    86,    87,    83,   122,   120,
 
345
   121,   115,   116,     0,     0,    63,    76,     0,     0,     0,
 
346
     0,     0,     0,     0,    78,     0,     0,   114,    23,    77,
 
347
    74,    59,    54,    41,     0,    63,    78,     0,    48,   123,
 
348
    63,    63,     0,     0,    63,     0,    42,    43,    63,     0,
 
349
    60,     0,    45,    44,     0,     0,     0
350
350
};
351
351
 
352
352
static const short yydefgoto[] = {   305,
358
358
};
359
359
 
360
360
static const short yypact[] = {     6,
361
 
-32768,    10,  1082,-32768,-32768,   -33,   -16,-32768,-32768,     4,
362
 
     4,-32768,    31,    31,    31,    14,    44,  1746,  1746,-32768,
363
 
  1740,  1746,  1155,     6,   874,-32768,    46,     0,-32768,-32768,
364
 
  1324,   284,-32768,    18,   654,   433,  1155,-32768,    46,-32768,
 
361
-32768,    10,   874,-32768,-32768,   -33,   -16,-32768,-32768,     4,
 
362
     4,-32768,    31,    31,    31,    14,    44,  1749,  1749,-32768,
 
363
  1743,  1749,  1158,     6,   930,-32768,    46,     0,-32768,-32768,
 
364
  1327,   284,-32768,    18,   654,   433,  1158,-32768,    46,-32768,
365
365
    10,     6,    46,-32768,    88,    65,-32768,-32768,-32768,   433,
366
 
   433,  1746,  1536,    59,    58,    59,   111,-32768,    59,-32768,
367
 
-32768,-32768,    40,  1271,-32768,-32768,-32768,-32768,-32768,   790,
368
 
-32768,-32768,  1536,  1536,   117,  1536,  1536,  1536,  1536,  1536,
369
 
  1536,    99,   284,  1746,  1746,  1746,  1746,  1746,  1746,-32768,
 
366
   433,  1749,  1539,    59,    58,    59,   111,-32768,    59,-32768,
 
367
-32768,-32768,    40,  1274,-32768,-32768,-32768,-32768,-32768,   790,
 
368
-32768,-32768,  1539,  1539,   117,  1539,  1539,  1539,  1539,  1539,
 
369
  1539,    99,   284,  1749,  1749,  1749,  1749,  1749,  1749,-32768,
370
370
-32768,-32768,-32768,    69,-32768,   132,    79,     6,    83,     4,
371
 
     4,-32768,-32768,  1536,  1536,     6,   742,-32768,   848,-32768,
372
 
   980,   654,    80,     6,    84,    42,  1420,     8,-32768,-32768,
373
 
-32768,-32768,-32768,-32768,-32768,    90,-32768,  1746,-32768,    84,
374
 
    84,  1271,    97,  1536,     6,-32768,   106,  1175,-32768,   742,
375
 
  1807,  1794,-32768,  1556,  1468,  1372,  1420,  1807,  1807,    31,
376
 
   129,   129,    59,    59,    59,    59,  1536,  1536,  1536,    50,
377
 
  1536,   922,  1664,-32768,-32768,     4,  1420,     4,-32768,-32768,
378
 
-32768,    80,-32768,    31,  1740,  1155,-32768,    75,     1,  1604,
 
371
     4,-32768,-32768,  1539,  1539,     6,   742,-32768,   848,-32768,
 
372
  1036,   654,    80,     6,    84,    42,  1423,     8,-32768,-32768,
 
373
-32768,-32768,-32768,-32768,-32768,    90,-32768,  1749,-32768,    84,
 
374
    84,  1274,    97,  1539,     6,-32768,   106,  1178,-32768,   742,
 
375
  1810,  1797,-32768,  1559,  1471,  1375,  1423,  1810,  1810,    31,
 
376
   129,   129,    59,    59,    59,    59,  1539,  1539,  1539,    50,
 
377
  1539,   978,  1667,-32768,-32768,     4,  1423,     4,-32768,-32768,
 
378
-32768,    80,-32768,    31,  1743,  1158,-32768,    75,     1,  1607,
379
379
   284,    92,-32768,   742,-32768,     6,-32768,-32768,-32768,-32768,
380
 
    11,   284,-32768,-32768,-32768,  1420,-32768,   145,-32768,  1420,
381
 
    80,  1536,-32768,  1420,  1271,     4,  1155,-32768,  1271,   138,
382
 
    57,    80,-32768,-32768,     6,    65,-32768,    40,  1536,  1536,
383
 
  1536,     4,  1720,  1223,  1720,  1720,   146,  1720,  1720,  1720,
 
380
    11,   284,-32768,-32768,-32768,  1423,-32768,   145,-32768,  1423,
 
381
    80,  1539,-32768,  1423,  1274,     4,  1158,-32768,  1274,   138,
 
382
    57,    80,-32768,-32768,     6,    65,-32768,    40,  1539,  1539,
 
383
  1539,     4,  1723,  1226,  1723,  1723,   146,  1723,  1723,  1723,
384
384
   284,-32768,-32768,-32768,-32768,-32768,    84,    45,-32768,-32768,
385
 
  1420,     6,-32768,    15,     6,   110,   149,  1107,-32768,-32768,
386
 
    75,  1420,  1420,  1420,-32768,  1604,-32768,  1604,   549,   139,
387
 
-32768,  1684,  1644,  1516,  1720,     6,-32768,    35,   922,     4,
388
 
   922,  1536,    84,  1034,  1536,     4,  1720,  1604,-32768,-32768,
389
 
-32768,   147,-32768,-32768,  1271,     6,  1536,    84,-32768,  1604,
390
 
     6,     6,   922,    84,     6,   922,-32768,-32768,     6,   922,
391
 
-32768,   922,-32768,-32768,   172,   180,-32768
 
385
  1423,     6,-32768,    15,     6,   110,   149,  1110,-32768,-32768,
 
386
    75,  1423,  1423,  1423,-32768,  1607,-32768,  1607,   549,   139,
 
387
-32768,  1687,  1647,  1519,  1723,     6,-32768,    35,   978,     4,
 
388
   978,  1539,    84,  1090,  1539,     4,  1723,  1607,-32768,-32768,
 
389
-32768,   147,-32768,-32768,  1274,     6,  1539,    84,-32768,  1607,
 
390
     6,     6,   978,    84,     6,   978,-32768,-32768,     6,   978,
 
391
-32768,   978,-32768,-32768,   172,   180,-32768
392
392
};
393
393
 
394
394
static const short yypgoto[] = {-32768,
400
400
};
401
401
 
402
402
 
403
 
#define YYLAST          1861
 
403
#define YYLAST          1864
404
404
 
405
405
 
406
406
static const short yytable[] = {    31,
407
407
   168,   223,   224,    63,   172,    65,    68,   215,   134,   185,
408
 
   -80,   235,     1,   -80,   236,   134,     1,   118,     1,    64,
 
408
   -81,   235,     1,   -81,   236,   134,     1,   118,     1,    64,
409
409
    36,    31,     4,   120,   256,   258,   259,   260,    90,   262,
410
410
   263,   264,   117,   117,     7,   280,   240,   201,   281,    37,
411
 
   134,   135,   134,   -80,   -80,   267,   117,   117,   135,   132,
 
411
   134,   135,   134,   -81,   -81,   267,   117,   117,   135,   132,
412
412
    41,    41,    91,    92,   206,   135,   171,    24,   212,    38,
413
 
   -80,   268,     1,    38,   190,   -70,   278,    50,    41,   141,
 
413
   -81,   268,     1,    38,   190,   -71,   278,    50,    41,   141,
414
414
   142,   270,   144,   145,   146,   147,   148,   149,   290,   162,
415
415
   135,   233,   135,    22,   219,   135,   140,   169,   247,   171,
416
 
   122,   123,    91,    92,   136,   188,   -88,    51,    58,   -71,
 
416
   122,   123,    91,    92,   136,   188,   -89,    51,    58,   -72,
417
417
   167,   167,   232,    24,    44,   207,   128,   203,    71,    38,
418
418
    89,   210,    37,   130,   131,   133,   197,   220,   221,   119,
419
419
   143,    72,   158,   121,   124,   125,    91,    92,   184,   150,
452
452
   155,   156,     0,   193,   194,     0,     0,     0,     0,     0,
453
453
     0,     0,     0,    13,     0,     0,     0,    14,    15,    16,
454
454
    17,   181,     0,    83,     0,     0,     0,    18,    19,    83,
455
 
    20,     0,    21,     0,     0,    22,    23,   -87,     0,     0,
 
455
    20,     0,    21,     0,     0,    22,    23,   -88,     0,     0,
456
456
   192,     0,   114,     0,    83,     0,     0,     0,     0,     0,
457
457
     0,     0,     0,    83,    83,     0,    83,    83,    83,    83,
458
458
    83,    83,     0,     0,     0,     0,     0,     0,     0,     0,
489
489
    13,     0,     0,     0,    14,    15,    16,    17,     0,     0,
490
490
     0,     0,     0,     0,    18,    19,     0,    20,     0,    21,
491
491
     0,     0,    22,    23,     0,     0,     0,    24,   173,    38,
492
 
     6,     7,     0,     0,     8,     9,     0,   -79,     0,     0,
493
 
   -79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
494
 
     0,     0,     0,   -62,    66,     0,     6,     7,   174,     0,
495
 
     8,     9,    14,    15,    16,    17,     1,     0,    10,    11,
496
 
   -79,   -79,    18,    19,     0,    20,     0,   175,     0,     0,
497
 
    22,   176,     0,    12,    13,     0,     0,   -79,    14,    15,
 
492
     6,     7,     0,     0,     8,     9,     0,   -80,     0,     0,
 
493
   -80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
494
     0,     0,     0,    -6,     5,     0,     6,     7,   174,     0,
 
495
     8,     9,    14,    15,    16,    17,    -6,     0,    10,    11,
 
496
   -80,   -80,    18,    19,     0,    20,     0,   175,     0,     0,
 
497
    22,   176,     0,    12,    13,     0,     0,   -80,    14,    15,
498
498
    16,    17,     0,     0,     0,     0,     0,     0,    18,    19,
499
 
     0,    20,     0,    21,     6,     7,    22,    23,     8,     9,
500
 
     0,    24,     0,     0,     0,     0,     0,     0,    94,     0,
501
 
    95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
502
 
   105,     0,    13,     0,     0,     0,    14,    15,    16,    17,
503
 
     0,     0,     0,     0,     0,     0,    18,    19,     0,    20,
504
 
     0,    21,     0,     0,    22,    23,     0,     0,     0,    24,
505
 
     0,    38,     6,     7,     0,     0,     8,     9,    73,     0,
506
 
     0,    74,     1,     0,     0,     0,     0,     0,     0,     0,
 
499
     0,    20,     0,    21,     0,     0,    22,    23,     0,   -63,
 
500
    66,    24,     6,     7,     0,     0,     8,     9,     0,     0,
 
501
     0,     0,     1,     0,    10,    11,     0,     0,     0,     0,
 
502
     0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
 
503
    13,     0,     0,     0,    14,    15,    16,    17,     0,     0,
 
504
     0,     0,     0,     0,    18,    19,     0,    20,     0,    21,
 
505
     6,     7,    22,    23,     8,     9,     0,    24,     0,     0,
 
506
     0,     0,     0,     0,    94,     0,    95,    96,    97,    98,
 
507
    99,   100,   101,   102,   103,   104,   105,     0,    13,     0,
 
508
     0,     0,    14,    15,    16,    17,     0,     0,     0,     0,
 
509
     0,     0,    18,    19,     0,    20,     0,    21,     0,     0,
 
510
    22,    23,     0,     0,     0,    24,     0,    38,     6,     7,
 
511
     0,     0,     8,     9,    73,     0,     0,    74,     1,     0,
507
512
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
513
     0,     0,     0,     0,     0,     0,     0,    75,    76,    77,
 
514
    14,    15,    16,    17,    78,     0,     0,    80,    81,    82,
 
515
    18,    19,     0,     0,     0,    52,     0,     0,    22,    53,
 
516
     0,     0,     6,     7,     0,    38,     8,     9,    73,     0,
 
517
     0,    74,     0,     0,     0,     0,     0,     0,     0,     0,
 
518
     0,     0,     6,     7,     0,     0,     8,     9,     0,     0,
508
519
     0,    75,    76,    77,    14,    15,    16,    17,    78,     0,
509
520
     0,    80,    81,    82,    18,    19,     0,     0,     0,    52,
510
 
     0,     0,    22,    53,     0,     0,     6,     7,     0,    38,
 
521
    13,     0,    22,    53,    14,    15,    16,    17,     0,    38,
 
522
     0,     0,     0,     0,    18,    19,     0,    20,    62,    21,
 
523
     6,     7,    22,    23,     8,     9,     0,     0,     0,    38,
 
524
     0,     0,     0,     0,     0,     0,     0,     0,   199,     0,
 
525
     6,     7,     0,     0,     8,     9,     0,     0,    13,     0,
 
526
     0,     0,    14,    15,    16,    17,     0,     0,     0,     0,
 
527
     0,     0,    18,    19,     0,    20,     0,    21,    13,     0,
 
528
    22,    23,    14,    15,    16,    17,     0,     0,     0,     0,
 
529
     0,     0,    18,    19,     0,    20,   257,    21,     6,     7,
 
530
    22,    23,     8,     9,     0,     0,     0,     0,     0,     0,
 
531
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
532
     0,     0,     0,     0,     0,     0,   174,     0,     0,     0,
 
533
    14,    15,    16,    17,     0,     0,     0,     0,     0,     0,
 
534
    18,    19,     0,    20,     0,   175,     6,     7,    22,    53,
511
535
     8,     9,    73,     0,     0,    74,     0,     0,     0,     0,
512
536
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
513
537
     0,     0,     0,     0,     0,    75,    76,    77,    14,    15,
514
538
    16,    17,    78,     0,     0,    80,    81,    82,    18,    19,
515
 
     0,     0,     5,    52,     6,     7,    22,    53,     8,     9,
516
 
     0,     0,     0,    38,     0,     0,    10,    11,     0,     0,
517
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
518
 
     7,    12,    13,     8,     9,     0,    14,    15,    16,    17,
519
 
     0,     0,     0,     0,     0,     0,    18,    19,     0,    20,
520
 
     0,    21,     0,     0,    22,    23,     0,    13,     0,    24,
521
 
     0,    14,    15,    16,    17,     0,     0,     0,     0,     0,
522
 
     0,    18,    19,     0,    20,    62,    21,     6,     7,    22,
523
 
    23,     8,     9,     0,     0,     0,    38,     0,     0,     0,
524
 
     0,     0,     0,     0,     0,   199,     0,     6,     7,     0,
525
 
     0,     8,     9,     0,     0,    13,     0,     0,     0,    14,
526
 
    15,    16,    17,     0,     0,     0,     0,     0,     0,    18,
527
 
    19,     0,    20,     0,    21,    13,     0,    22,    23,    14,
528
 
    15,    16,    17,     0,     0,     0,     0,     0,     0,    18,
529
 
    19,     0,    20,   257,    21,     6,     7,    22,    23,     8,
530
 
     9,     0,     0,     0,     0,     0,     0,     0,     0,     0,
531
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
532
 
     0,     0,     0,   174,     0,     0,     0,    14,    15,    16,
533
 
    17,     0,     0,     0,     0,     0,     0,    18,    19,     0,
534
 
    20,     0,   175,     6,     7,    22,    53,     8,     9,    73,
 
539
     0,     0,     0,    52,     0,     0,    22,    53,   136,     6,
 
540
     7,     0,     0,     8,     9,    73,     0,     0,    74,     0,
 
541
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
542
     0,     0,     0,     0,     0,     0,     0,     0,    75,    76,
 
543
    77,    14,    15,    16,    17,    78,     0,    79,    80,    81,
 
544
    82,    18,    19,     0,     0,     0,    52,     6,     7,    22,
 
545
    53,     8,     9,    73,     0,     0,    74,     0,     0,     0,
 
546
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
547
     0,     0,     0,     0,     0,     0,    75,    76,    77,    14,
 
548
    15,    16,    17,    78,   202,     0,    80,    81,    82,    18,
 
549
    19,     0,     0,     0,    52,     6,     7,    22,    53,     8,
 
550
     9,    73,     0,     0,    74,     0,     0,     0,     0,     0,
 
551
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
552
     0,     0,     0,     0,    75,    76,    77,    14,    15,    16,
 
553
    17,    78,     0,     0,    80,    81,    82,    18,    19,     0,
 
554
     0,     0,    52,     6,     7,    22,    53,     8,     9,    73,
535
555
     0,     0,    74,     0,     0,     0,     0,     0,     0,     0,
536
556
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
537
 
     0,     0,    75,    76,    77,    14,    15,    16,    17,    78,
 
557
     0,     0,    75,    76,     0,    14,    15,    16,    17,     0,
538
558
     0,     0,    80,    81,    82,    18,    19,     0,     0,     0,
539
 
    52,     0,     0,    22,    53,   136,     6,     7,     0,     0,
540
 
     8,     9,    73,     0,     0,    74,     0,     0,     0,     0,
541
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
542
 
     0,     0,     0,     0,     0,    75,    76,    77,    14,    15,
543
 
    16,    17,    78,     0,    79,    80,    81,    82,    18,    19,
544
 
     0,     0,     0,    52,     6,     7,    22,    53,     8,     9,
545
 
    73,     0,     0,    74,     0,     0,     0,     0,     0,     0,
546
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
547
 
     0,     0,     0,    75,    76,    77,    14,    15,    16,    17,
548
 
    78,   202,     0,    80,    81,    82,    18,    19,     0,     0,
549
 
     0,    52,     6,     7,    22,    53,     8,     9,    73,     0,
550
 
     0,    74,     0,     0,     0,     0,     0,     0,     0,     0,
551
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
552
 
     0,    75,    76,    77,    14,    15,    16,    17,    78,     0,
553
 
     0,    80,    81,    82,    18,    19,     0,     0,     0,    52,
554
 
     6,     7,    22,    53,     8,     9,    73,     0,     0,    74,
555
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
556
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
557
 
    76,     0,    14,    15,    16,    17,     0,     0,     0,    80,
558
 
    81,    82,    18,    19,     0,     0,     0,    52,     6,     7,
559
 
    22,    53,     8,     9,   225,     0,     0,   226,     0,     0,
560
 
     0,     0,     0,     0,     0,     0,     0,     0,     6,     7,
561
 
     0,     0,     8,     9,     0,     0,     0,   227,   228,   229,
562
 
    14,    15,    16,    17,   230,   277,     0,     0,     6,     7,
563
 
    18,    19,     8,     9,    73,    52,    13,    74,    22,    53,
564
 
    14,    15,    16,    17,     0,     0,     0,     0,     0,     0,
565
 
    18,    19,     0,    20,     0,    21,     0,    75,    22,    23,
566
 
    14,    15,    16,    17,     0,     0,     0,    80,    81,    82,
567
 
    18,    19,     0,     0,     0,    52,     6,     7,    22,    53,
568
 
     8,     9,   225,     0,     0,   226,     0,     0,     0,     0,
569
 
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
570
 
     0,     0,     0,     0,     0,   227,   228,   229,    14,    15,
571
 
    16,    17,   230,     0,     0,     0,     6,     7,    18,    19,
572
 
     8,     9,   225,    52,     0,   226,    22,    53,     0,     0,
573
 
     0,     0,     0,     0,     0,     0,     6,   211,     0,     0,
574
 
     8,     9,     0,     0,     0,   227,   228,     0,    14,    15,
575
 
    16,    17,     0,     0,     0,     0,     6,     7,    18,    19,
576
 
     8,     9,   225,    52,    13,   226,    22,    53,    14,    15,
577
 
    16,    17,     0,     0,     0,     0,     0,     0,    18,    19,
578
 
     0,    20,     0,    21,     0,   227,    22,    23,    14,    15,
579
 
    16,    17,     6,     7,     0,     0,     8,     9,    18,    19,
580
 
     0,     0,     0,    52,     0,     0,    22,    53,     0,     0,
581
 
     0,     0,     6,     7,     0,     0,     8,     9,     6,     7,
582
 
   174,     0,     8,     9,    14,    15,    16,    17,     0,     0,
583
 
     0,     0,     0,     0,    18,    19,     0,    20,     0,   175,
584
 
     0,     0,    22,    53,    14,    15,    16,    17,     0,     0,
585
 
    14,    15,    16,    17,    18,    19,     0,    20,     0,    52,
586
 
    18,    19,    22,    53,     0,    52,     0,     7,    22,    53,
587
 
     8,     9,    73,     0,     0,-32768,     0,     0,     0,     0,
588
 
     7,     0,     0,     8,     9,-32768,     0,     0,     0,     0,
589
 
     0,     0,     0,     0,     0,     0,     0,     0,    14,    15,
590
 
     0,     0,     0,     0,     0,    80,    81,    82,    18,    19,
591
 
     0,    14,    15,    52,     0,     0,    22,    53,-32768,-32768,
592
 
-32768,    18,    19,     0,     0,     0,    52,     0,     0,    22,
593
 
    53
 
559
    52,     6,     7,    22,    53,     8,     9,   225,     0,     0,
 
560
   226,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
561
     0,     6,     7,     0,     0,     8,     9,     0,     0,     0,
 
562
   227,   228,   229,    14,    15,    16,    17,   230,   277,     0,
 
563
     0,     6,     7,    18,    19,     8,     9,    73,    52,    13,
 
564
    74,    22,    53,    14,    15,    16,    17,     0,     0,     0,
 
565
     0,     0,     0,    18,    19,     0,    20,     0,    21,     0,
 
566
    75,    22,    23,    14,    15,    16,    17,     0,     0,     0,
 
567
    80,    81,    82,    18,    19,     0,     0,     0,    52,     6,
 
568
     7,    22,    53,     8,     9,   225,     0,     0,   226,     0,
 
569
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
570
     0,     0,     0,     0,     0,     0,     0,     0,   227,   228,
 
571
   229,    14,    15,    16,    17,   230,     0,     0,     0,     6,
 
572
     7,    18,    19,     8,     9,   225,    52,     0,   226,    22,
 
573
    53,     0,     0,     0,     0,     0,     0,     0,     0,     6,
 
574
   211,     0,     0,     8,     9,     0,     0,     0,   227,   228,
 
575
     0,    14,    15,    16,    17,     0,     0,     0,     0,     6,
 
576
     7,    18,    19,     8,     9,   225,    52,    13,   226,    22,
 
577
    53,    14,    15,    16,    17,     0,     0,     0,     0,     0,
 
578
     0,    18,    19,     0,    20,     0,    21,     0,   227,    22,
 
579
    23,    14,    15,    16,    17,     6,     7,     0,     0,     8,
 
580
     9,    18,    19,     0,     0,     0,    52,     0,     0,    22,
 
581
    53,     0,     0,     0,     0,     6,     7,     0,     0,     8,
 
582
     9,     6,     7,   174,     0,     8,     9,    14,    15,    16,
 
583
    17,     0,     0,     0,     0,     0,     0,    18,    19,     0,
 
584
    20,     0,   175,     0,     0,    22,    53,    14,    15,    16,
 
585
    17,     0,     0,    14,    15,    16,    17,    18,    19,     0,
 
586
    20,     0,    52,    18,    19,    22,    53,     0,    52,     0,
 
587
     7,    22,    53,     8,     9,    73,     0,     0,-32768,     0,
 
588
     0,     0,     0,     7,     0,     0,     8,     9,-32768,     0,
 
589
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
590
     0,    14,    15,     0,     0,     0,     0,     0,    80,    81,
 
591
    82,    18,    19,     0,    14,    15,    52,     0,     0,    22,
 
592
    53,-32768,-32768,-32768,    18,    19,     0,     0,     0,    52,
 
593
     0,     0,    22,    53
594
594
};
595
595
 
596
596
static const short yycheck[] = {     3,
686
686
    43,    44,    45,    46,    -1,    48,    -1,    50,    -1,    -1,
687
687
    53,    54,    -1,    30,    31,    -1,    -1,    60,    35,    36,
688
688
    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,
689
 
    -1,    48,    -1,    50,     3,     4,    53,    54,     7,     8,
690
 
    -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,    17,    -1,
691
 
    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
692
 
    29,    -1,    31,    -1,    -1,    -1,    35,    36,    37,    38,
693
 
    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,
694
 
    -1,    50,    -1,    -1,    53,    54,    -1,    -1,    -1,    58,
695
 
    -1,    60,     3,     4,    -1,    -1,     7,     8,     9,    -1,
696
 
    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
689
    -1,    48,    -1,    50,    -1,    -1,    53,    54,    -1,     0,
 
690
     1,    58,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
 
691
    -1,    -1,    13,    -1,    15,    16,    -1,    -1,    -1,    -1,
 
692
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,
 
693
    31,    -1,    -1,    -1,    35,    36,    37,    38,    -1,    -1,
 
694
    -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    50,
 
695
     3,     4,    53,    54,     7,     8,    -1,    58,    -1,    -1,
 
696
    -1,    -1,    -1,    -1,    17,    -1,    19,    20,    21,    22,
 
697
    23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
 
698
    -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,    -1,
 
699
    -1,    -1,    45,    46,    -1,    48,    -1,    50,    -1,    -1,
 
700
    53,    54,    -1,    -1,    -1,    58,    -1,    60,     3,     4,
 
701
    -1,    -1,     7,     8,     9,    -1,    -1,    12,    13,    -1,
697
702
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
703
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,    33,    34,
 
704
    35,    36,    37,    38,    39,    -1,    -1,    42,    43,    44,
 
705
    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    53,    54,
 
706
    -1,    -1,     3,     4,    -1,    60,     7,     8,     9,    -1,
 
707
    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
708
    -1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
698
709
    -1,    32,    33,    34,    35,    36,    37,    38,    39,    -1,
699
710
    -1,    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,
700
 
    -1,    -1,    53,    54,    -1,    -1,     3,     4,    -1,    60,
 
711
    31,    -1,    53,    54,    35,    36,    37,    38,    -1,    60,
 
712
    -1,    -1,    -1,    -1,    45,    46,    -1,    48,     1,    50,
 
713
     3,     4,    53,    54,     7,     8,    -1,    -1,    -1,    60,
 
714
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
 
715
     3,     4,    -1,    -1,     7,     8,    -1,    -1,    31,    -1,
 
716
    -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,    -1,
 
717
    -1,    -1,    45,    46,    -1,    48,    -1,    50,    31,    -1,
 
718
    53,    54,    35,    36,    37,    38,    -1,    -1,    -1,    -1,
 
719
    -1,    -1,    45,    46,    -1,    48,     1,    50,     3,     4,
 
720
    53,    54,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,
 
721
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
722
    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
 
723
    35,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
 
724
    45,    46,    -1,    48,    -1,    50,     3,     4,    53,    54,
701
725
     7,     8,     9,    -1,    -1,    12,    -1,    -1,    -1,    -1,
702
726
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
703
727
    -1,    -1,    -1,    -1,    -1,    32,    33,    34,    35,    36,
704
728
    37,    38,    39,    -1,    -1,    42,    43,    44,    45,    46,
705
 
    -1,    -1,     1,    50,     3,     4,    53,    54,     7,     8,
706
 
    -1,    -1,    -1,    60,    -1,    -1,    15,    16,    -1,    -1,
707
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
708
 
     4,    30,    31,     7,     8,    -1,    35,    36,    37,    38,
709
 
    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,
710
 
    -1,    50,    -1,    -1,    53,    54,    -1,    31,    -1,    58,
711
 
    -1,    35,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
712
 
    -1,    45,    46,    -1,    48,     1,    50,     3,     4,    53,
713
 
    54,     7,     8,    -1,    -1,    -1,    60,    -1,    -1,    -1,
714
 
    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,    -1,
715
 
    -1,     7,     8,    -1,    -1,    31,    -1,    -1,    -1,    35,
716
 
    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    45,
717
 
    46,    -1,    48,    -1,    50,    31,    -1,    53,    54,    35,
718
 
    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    45,
719
 
    46,    -1,    48,     1,    50,     3,     4,    53,    54,     7,
720
 
     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
721
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
722
 
    -1,    -1,    -1,    31,    -1,    -1,    -1,    35,    36,    37,
723
 
    38,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,
724
 
    48,    -1,    50,     3,     4,    53,    54,     7,     8,     9,
 
729
    -1,    -1,    -1,    50,    -1,    -1,    53,    54,    55,     3,
 
730
     4,    -1,    -1,     7,     8,     9,    -1,    -1,    12,    -1,
 
731
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
732
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,    33,
 
733
    34,    35,    36,    37,    38,    39,    -1,    41,    42,    43,
 
734
    44,    45,    46,    -1,    -1,    -1,    50,     3,     4,    53,
 
735
    54,     7,     8,     9,    -1,    -1,    12,    -1,    -1,    -1,
 
736
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
737
    -1,    -1,    -1,    -1,    -1,    -1,    32,    33,    34,    35,
 
738
    36,    37,    38,    39,    40,    -1,    42,    43,    44,    45,
 
739
    46,    -1,    -1,    -1,    50,     3,     4,    53,    54,     7,
 
740
     8,     9,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,
 
741
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
742
    -1,    -1,    -1,    -1,    32,    33,    34,    35,    36,    37,
 
743
    38,    39,    -1,    -1,    42,    43,    44,    45,    46,    -1,
 
744
    -1,    -1,    50,     3,     4,    53,    54,     7,     8,     9,
725
745
    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
726
746
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
727
 
    -1,    -1,    32,    33,    34,    35,    36,    37,    38,    39,
 
747
    -1,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
728
748
    -1,    -1,    42,    43,    44,    45,    46,    -1,    -1,    -1,
729
 
    50,    -1,    -1,    53,    54,    55,     3,     4,    -1,    -1,
730
 
     7,     8,     9,    -1,    -1,    12,    -1,    -1,    -1,    -1,
731
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
732
 
    -1,    -1,    -1,    -1,    -1,    32,    33,    34,    35,    36,
733
 
    37,    38,    39,    -1,    41,    42,    43,    44,    45,    46,
734
 
    -1,    -1,    -1,    50,     3,     4,    53,    54,     7,     8,
735
 
     9,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,
736
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
737
 
    -1,    -1,    -1,    32,    33,    34,    35,    36,    37,    38,
738
 
    39,    40,    -1,    42,    43,    44,    45,    46,    -1,    -1,
739
 
    -1,    50,     3,     4,    53,    54,     7,     8,     9,    -1,
740
 
    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
741
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
742
 
    -1,    32,    33,    34,    35,    36,    37,    38,    39,    -1,
743
 
    -1,    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,
744
 
     3,     4,    53,    54,     7,     8,     9,    -1,    -1,    12,
745
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
746
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,
747
 
    33,    -1,    35,    36,    37,    38,    -1,    -1,    -1,    42,
748
 
    43,    44,    45,    46,    -1,    -1,    -1,    50,     3,     4,
749
 
    53,    54,     7,     8,     9,    -1,    -1,    12,    -1,    -1,
750
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
751
 
    -1,    -1,     7,     8,    -1,    -1,    -1,    32,    33,    34,
752
 
    35,    36,    37,    38,    39,    40,    -1,    -1,     3,     4,
753
 
    45,    46,     7,     8,     9,    50,    31,    12,    53,    54,
754
 
    35,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
755
 
    45,    46,    -1,    48,    -1,    50,    -1,    32,    53,    54,
756
 
    35,    36,    37,    38,    -1,    -1,    -1,    42,    43,    44,
757
 
    45,    46,    -1,    -1,    -1,    50,     3,     4,    53,    54,
758
 
     7,     8,     9,    -1,    -1,    12,    -1,    -1,    -1,    -1,
759
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
760
 
    -1,    -1,    -1,    -1,    -1,    32,    33,    34,    35,    36,
761
 
    37,    38,    39,    -1,    -1,    -1,     3,     4,    45,    46,
762
 
     7,     8,     9,    50,    -1,    12,    53,    54,    -1,    -1,
763
 
    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
764
 
     7,     8,    -1,    -1,    -1,    32,    33,    -1,    35,    36,
765
 
    37,    38,    -1,    -1,    -1,    -1,     3,     4,    45,    46,
766
 
     7,     8,     9,    50,    31,    12,    53,    54,    35,    36,
767
 
    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,
768
 
    -1,    48,    -1,    50,    -1,    32,    53,    54,    35,    36,
769
 
    37,    38,     3,     4,    -1,    -1,     7,     8,    45,    46,
770
 
    -1,    -1,    -1,    50,    -1,    -1,    53,    54,    -1,    -1,
771
 
    -1,    -1,     3,     4,    -1,    -1,     7,     8,     3,     4,
772
 
    31,    -1,     7,     8,    35,    36,    37,    38,    -1,    -1,
773
 
    -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    50,
774
 
    -1,    -1,    53,    54,    35,    36,    37,    38,    -1,    -1,
775
 
    35,    36,    37,    38,    45,    46,    -1,    48,    -1,    50,
776
 
    45,    46,    53,    54,    -1,    50,    -1,     4,    53,    54,
777
 
     7,     8,     9,    -1,    -1,    12,    -1,    -1,    -1,    -1,
778
 
     4,    -1,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,
779
 
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,
780
 
    -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,
781
 
    -1,    35,    36,    50,    -1,    -1,    53,    54,    42,    43,
782
 
    44,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    53,
783
 
    54
 
749
    50,     3,     4,    53,    54,     7,     8,     9,    -1,    -1,
 
750
    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
751
    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,    -1,
 
752
    32,    33,    34,    35,    36,    37,    38,    39,    40,    -1,
 
753
    -1,     3,     4,    45,    46,     7,     8,     9,    50,    31,
 
754
    12,    53,    54,    35,    36,    37,    38,    -1,    -1,    -1,
 
755
    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    50,    -1,
 
756
    32,    53,    54,    35,    36,    37,    38,    -1,    -1,    -1,
 
757
    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,     3,
 
758
     4,    53,    54,     7,     8,     9,    -1,    -1,    12,    -1,
 
759
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
760
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,    33,
 
761
    34,    35,    36,    37,    38,    39,    -1,    -1,    -1,     3,
 
762
     4,    45,    46,     7,     8,     9,    50,    -1,    12,    53,
 
763
    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
 
764
     4,    -1,    -1,     7,     8,    -1,    -1,    -1,    32,    33,
 
765
    -1,    35,    36,    37,    38,    -1,    -1,    -1,    -1,     3,
 
766
     4,    45,    46,     7,     8,     9,    50,    31,    12,    53,
 
767
    54,    35,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
 
768
    -1,    45,    46,    -1,    48,    -1,    50,    -1,    32,    53,
 
769
    54,    35,    36,    37,    38,     3,     4,    -1,    -1,     7,
 
770
     8,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    53,
 
771
    54,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
 
772
     8,     3,     4,    31,    -1,     7,     8,    35,    36,    37,
 
773
    38,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,
 
774
    48,    -1,    50,    -1,    -1,    53,    54,    35,    36,    37,
 
775
    38,    -1,    -1,    35,    36,    37,    38,    45,    46,    -1,
 
776
    48,    -1,    50,    45,    46,    53,    54,    -1,    50,    -1,
 
777
     4,    53,    54,     7,     8,     9,    -1,    -1,    12,    -1,
 
778
    -1,    -1,    -1,     4,    -1,    -1,     7,     8,     9,    -1,
 
779
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
780
    -1,    35,    36,    -1,    -1,    -1,    -1,    -1,    42,    43,
 
781
    44,    45,    46,    -1,    35,    36,    50,    -1,    -1,    53,
 
782
    54,    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,
 
783
    -1,    -1,    53,    54
784
784
};
785
785
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
786
786
#line 3 "/usr/local/lib/bison.simple"
1262
1262
{ yyval.nodeval = NULL; ;
1263
1263
    break;}
1264
1264
case 6:
1265
 
#line 169 "awk.y"
1266
 
{ io_allowed = 0; ;
 
1265
#line 166 "awk.y"
 
1266
{ yyval.nodeval = NULL; ;
1267
1267
    break;}
1268
1268
case 7:
1269
 
#line 171 "awk.y"
 
1269
#line 170 "awk.y"
 
1270
{ io_allowed = 0; ;
 
1271
    break;}
 
1272
case 8:
 
1273
#line 172 "awk.y"
1270
1274
{
1271
1275
                if (begin_block) {
1272
1276
                        if (begin_block->type != Node_rule_list)
1282
1286
                yyerrok;
1283
1287
          ;
1284
1288
    break;}
1285
 
case 8:
1286
 
#line 185 "awk.y"
1287
 
{ io_allowed = 0; ;
1288
 
    break;}
1289
1289
case 9:
1290
 
#line 187 "awk.y"
 
1290
#line 186 "awk.y"
 
1291
{ io_allowed = 0; ;
 
1292
    break;}
 
1293
case 10:
 
1294
#line 188 "awk.y"
1291
1295
{
1292
1296
                if (end_block) {
1293
1297
                        if (end_block->type != Node_rule_list)
1303
1307
                yyerrok;
1304
1308
          ;
1305
1309
    break;}
1306
 
case 10:
1307
 
#line 202 "awk.y"
 
1310
case 11:
 
1311
#line 203 "awk.y"
1308
1312
{
1309
1313
                warning("BEGIN blocks must have an action part");
1310
1314
                errcount++;
1311
1315
                yyerrok;
1312
1316
          ;
1313
1317
    break;}
1314
 
case 11:
1315
 
#line 208 "awk.y"
 
1318
case 12:
 
1319
#line 209 "awk.y"
1316
1320
{
1317
1321
                warning("END blocks must have an action part");
1318
1322
                errcount++;
1319
1323
                yyerrok;
1320
1324
          ;
1321
1325
    break;}
1322
 
case 12:
1323
 
#line 214 "awk.y"
 
1326
case 13:
 
1327
#line 215 "awk.y"
1324
1328
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_rule_node, yyvsp[0].nodeval); yyerrok; ;
1325
1329
    break;}
1326
 
case 13:
1327
 
#line 216 "awk.y"
 
1330
case 14:
 
1331
#line 217 "awk.y"
1328
1332
{ yyval.nodeval = node ((NODE *)NULL, Node_rule_node, yyvsp[0].nodeval); yyerrok; ;
1329
1333
    break;}
1330
 
case 14:
1331
 
#line 218 "awk.y"
 
1334
case 15:
 
1335
#line 219 "awk.y"
1332
1336
{
1333
1337
                  yyval.nodeval = node (yyvsp[-1].nodeval,
1334
1338
                             Node_rule_node,
1342
1346
                  yyerrok;
1343
1347
                ;
1344
1348
    break;}
1345
 
case 15:
1346
 
#line 231 "awk.y"
 
1349
case 16:
 
1350
#line 232 "awk.y"
1347
1351
{
1348
1352
                        func_install(yyvsp[-1].nodeval, yyvsp[0].nodeval);
1349
1353
                        yyval.nodeval = NULL;
1350
1354
                        yyerrok;
1351
1355
                ;
1352
1356
    break;}
1353
 
case 16:
1354
 
#line 240 "awk.y"
1355
 
{ yyval.sval = yyvsp[0].sval; ;
1356
 
    break;}
1357
1357
case 17:
1358
 
#line 242 "awk.y"
 
1358
#line 241 "awk.y"
1359
1359
{ yyval.sval = yyvsp[0].sval; ;
1360
1360
    break;}
1361
1361
case 18:
1362
 
#line 244 "awk.y"
 
1362
#line 243 "awk.y"
 
1363
{ yyval.sval = yyvsp[0].sval; ;
 
1364
    break;}
 
1365
case 19:
 
1366
#line 245 "awk.y"
1363
1367
{
1364
1368
                yyerror("%s() is a built-in function, it cannot be redefined",
1365
1369
                        tokstart);
1367
1371
                /* yyerrok; */
1368
1372
          ;
1369
1373
    break;}
1370
 
case 21:
1371
 
#line 259 "awk.y"
 
1374
case 22:
 
1375
#line 260 "awk.y"
1372
1376
{
1373
1377
                        param_counter = 0;
1374
1378
                ;
1375
1379
    break;}
1376
 
case 22:
1377
 
#line 263 "awk.y"
 
1380
case 23:
 
1381
#line 264 "awk.y"
1378
1382
{
1379
1383
                        yyval.nodeval = append_right(make_param(yyvsp[-4].sval), yyvsp[-2].nodeval);
1380
1384
                        can_return = 1;
1381
1385
                ;
1382
1386
    break;}
1383
 
case 23:
1384
 
#line 271 "awk.y"
 
1387
case 24:
 
1388
#line 272 "awk.y"
1385
1389
{
1386
1390
                yyval.nodeval = yyvsp[-2].nodeval;
1387
1391
                can_return = 0;
1388
1392
          ;
1389
1393
    break;}
1390
 
case 24:
1391
 
#line 280 "awk.y"
1392
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
1393
 
    break;}
1394
1394
case 25:
1395
 
#line 282 "awk.y"
 
1395
#line 281 "awk.y"
 
1396
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1397
    break;}
 
1398
case 26:
 
1399
#line 283 "awk.y"
1396
1400
{ yyval.nodeval = mkrangenode ( node(yyvsp[-2].nodeval, Node_cond_pair, yyvsp[0].nodeval) ); ;
1397
1401
    break;}
1398
 
case 26:
1399
 
#line 291 "awk.y"
 
1402
case 27:
 
1403
#line 292 "awk.y"
1400
1404
{ ++want_regexp; ;
1401
1405
    break;}
1402
 
case 27:
1403
 
#line 293 "awk.y"
 
1406
case 28:
 
1407
#line 294 "awk.y"
1404
1408
{
1405
1409
                  NODE *n;
1406
1410
                  size_t len;
1416
1420
                  yyval.nodeval = n;
1417
1421
                ;
1418
1422
    break;}
1419
 
case 28:
1420
 
#line 311 "awk.y"
 
1423
case 29:
 
1424
#line 312 "awk.y"
1421
1425
{ yyval.nodeval = yyvsp[-3].nodeval ; ;
1422
1426
    break;}
1423
 
case 29:
1424
 
#line 313 "awk.y"
1425
 
{ yyval.nodeval = NULL; ;
1426
 
    break;}
1427
1427
case 30:
1428
 
#line 318 "awk.y"
1429
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1428
#line 314 "awk.y"
 
1429
{ yyval.nodeval = NULL; ;
1430
1430
    break;}
1431
1431
case 31:
1432
 
#line 320 "awk.y"
 
1432
#line 319 "awk.y"
 
1433
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1434
    break;}
 
1435
case 32:
 
1436
#line 321 "awk.y"
1433
1437
{
1434
1438
                        if (yyvsp[-1].nodeval == NULL || yyvsp[-1].nodeval->type != Node_statement_list)
1435
1439
                                yyvsp[-1].nodeval = node(yyvsp[-1].nodeval, Node_statement_list,(NODE *)NULL);
1438
1442
                        yyerrok;
1439
1443
                ;
1440
1444
    break;}
1441
 
case 32:
1442
 
#line 328 "awk.y"
1443
 
{ yyval.nodeval = NULL; ;
1444
 
    break;}
1445
1445
case 33:
1446
 
#line 330 "awk.y"
 
1446
#line 329 "awk.y"
1447
1447
{ yyval.nodeval = NULL; ;
1448
1448
    break;}
1449
 
case 36:
1450
 
#line 340 "awk.y"
 
1449
case 34:
 
1450
#line 331 "awk.y"
1451
1451
{ yyval.nodeval = NULL; ;
1452
1452
    break;}
1453
1453
case 37:
1454
 
#line 342 "awk.y"
 
1454
#line 341 "awk.y"
1455
1455
{ yyval.nodeval = NULL; ;
1456
1456
    break;}
1457
1457
case 38:
1458
 
#line 344 "awk.y"
1459
 
{ yyval.nodeval = yyvsp[-1].nodeval; ;
 
1458
#line 343 "awk.y"
 
1459
{ yyval.nodeval = NULL; ;
1460
1460
    break;}
1461
1461
case 39:
1462
 
#line 346 "awk.y"
1463
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1462
#line 345 "awk.y"
 
1463
{ yyval.nodeval = yyvsp[-1].nodeval; ;
1464
1464
    break;}
1465
1465
case 40:
1466
 
#line 348 "awk.y"
 
1466
#line 347 "awk.y"
 
1467
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1468
    break;}
 
1469
case 41:
 
1470
#line 349 "awk.y"
1467
1471
{ yyval.nodeval = node (yyvsp[-3].nodeval, Node_K_while, yyvsp[0].nodeval); ;
1468
1472
    break;}
1469
 
case 41:
1470
 
#line 350 "awk.y"
 
1473
case 42:
 
1474
#line 351 "awk.y"
1471
1475
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_K_do, yyvsp[-5].nodeval); ;
1472
1476
    break;}
1473
 
case 42:
1474
 
#line 352 "awk.y"
 
1477
case 43:
 
1478
#line 353 "awk.y"
1475
1479
{
1476
1480
                yyval.nodeval = node (yyvsp[0].nodeval, Node_K_arrayfor, make_for_loop(variable(yyvsp[-5].sval,1),
1477
1481
                        (NODE *)NULL, variable(yyvsp[-3].sval,1)));
1478
1482
          ;
1479
1483
    break;}
1480
 
case 43:
1481
 
#line 357 "awk.y"
 
1484
case 44:
 
1485
#line 358 "awk.y"
1482
1486
{
1483
1487
                yyval.nodeval = node(yyvsp[0].nodeval, Node_K_for, (NODE *)make_for_loop(yyvsp[-7].nodeval, yyvsp[-5].nodeval, yyvsp[-3].nodeval));
1484
1488
          ;
1485
1489
    break;}
1486
 
case 44:
1487
 
#line 361 "awk.y"
 
1490
case 45:
 
1491
#line 362 "awk.y"
1488
1492
{
1489
1493
                yyval.nodeval = node (yyvsp[0].nodeval, Node_K_for,
1490
1494
                        (NODE *)make_for_loop(yyvsp[-6].nodeval, (NODE *)NULL, yyvsp[-3].nodeval));
1491
1495
          ;
1492
1496
    break;}
1493
 
case 45:
1494
 
#line 367 "awk.y"
 
1497
case 46:
 
1498
#line 368 "awk.y"
1495
1499
{ yyval.nodeval = node ((NODE *)NULL, Node_K_break, (NODE *)NULL); ;
1496
1500
    break;}
1497
 
case 46:
1498
 
#line 370 "awk.y"
 
1501
case 47:
 
1502
#line 371 "awk.y"
1499
1503
{ yyval.nodeval = node ((NODE *)NULL, Node_K_continue, (NODE *)NULL); ;
1500
1504
    break;}
1501
 
case 47:
1502
 
#line 372 "awk.y"
 
1505
case 48:
 
1506
#line 373 "awk.y"
1503
1507
{ yyval.nodeval = node (yyvsp[-3].nodeval, yyvsp[-5].nodetypeval, yyvsp[-1].nodeval); ;
1504
1508
    break;}
1505
 
case 48:
1506
 
#line 374 "awk.y"
 
1509
case 49:
 
1510
#line 375 "awk.y"
1507
1511
{
1508
1512
                        if (yyvsp[-3].nodetypeval == Node_K_print && yyvsp[-2].nodeval == NULL)
1509
1513
                                yyvsp[-2].nodeval = node(node(make_number(0.0),
1515
1519
                        yyval.nodeval = node (yyvsp[-2].nodeval, yyvsp[-3].nodetypeval, yyvsp[-1].nodeval);
1516
1520
                ;
1517
1521
    break;}
1518
 
case 49:
1519
 
#line 385 "awk.y"
 
1522
case 50:
 
1523
#line 386 "awk.y"
1520
1524
{ NODETYPE type;
1521
1525
 
1522
1526
                  if (yyvsp[-1].nodeval && yyvsp[-1].nodeval == lookup("file")) {
1544
1548
                  yyval.nodeval = node ((NODE *)NULL, type, (NODE *)NULL);
1545
1549
                ;
1546
1550
    break;}
1547
 
case 50:
1548
 
#line 412 "awk.y"
 
1551
case 51:
 
1552
#line 413 "awk.y"
1549
1553
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_exit, (NODE *)NULL); ;
1550
1554
    break;}
1551
 
case 51:
1552
 
#line 414 "awk.y"
 
1555
case 52:
 
1556
#line 415 "awk.y"
1553
1557
{ if (! can_return) yyerror("return used outside function context"); ;
1554
1558
    break;}
1555
 
case 52:
1556
 
#line 416 "awk.y"
 
1559
case 53:
 
1560
#line 417 "awk.y"
1557
1561
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_return, (NODE *)NULL); ;
1558
1562
    break;}
1559
 
case 53:
1560
 
#line 418 "awk.y"
 
1563
case 54:
 
1564
#line 419 "awk.y"
1561
1565
{ yyval.nodeval = node (variable(yyvsp[-4].sval,1), Node_K_delete, yyvsp[-2].nodeval); ;
1562
1566
    break;}
1563
 
case 54:
1564
 
#line 420 "awk.y"
 
1567
case 55:
 
1568
#line 421 "awk.y"
1565
1569
{
1566
1570
                  if (do_lint)
1567
1571
                        warning("`delete array' is a gawk extension");
1576
1580
                  yyval.nodeval = node (variable(yyvsp[-1].sval,1), Node_K_delete, (NODE *) NULL);
1577
1581
                ;
1578
1582
    break;}
1579
 
case 55:
1580
 
#line 434 "awk.y"
1581
 
{ yyval.nodeval = yyvsp[-1].nodeval; ;
1582
 
    break;}
1583
1583
case 56:
1584
 
#line 439 "awk.y"
1585
 
{ yyval.nodetypeval = yyvsp[0].nodetypeval; ;
 
1584
#line 435 "awk.y"
 
1585
{ yyval.nodeval = yyvsp[-1].nodeval; ;
1586
1586
    break;}
1587
1587
case 57:
1588
 
#line 441 "awk.y"
 
1588
#line 440 "awk.y"
1589
1589
{ yyval.nodetypeval = yyvsp[0].nodetypeval; ;
1590
1590
    break;}
1591
1591
case 58:
1592
 
#line 446 "awk.y"
 
1592
#line 442 "awk.y"
 
1593
{ yyval.nodetypeval = yyvsp[0].nodetypeval; ;
 
1594
    break;}
 
1595
case 59:
 
1596
#line 447 "awk.y"
1593
1597
{
1594
1598
                yyval.nodeval = node(yyvsp[-3].nodeval, Node_K_if, 
1595
1599
                        node(yyvsp[0].nodeval, Node_if_branches, (NODE *)NULL));
1596
1600
          ;
1597
1601
    break;}
1598
 
case 59:
1599
 
#line 452 "awk.y"
 
1602
case 60:
 
1603
#line 453 "awk.y"
1600
1604
{ yyval.nodeval = node (yyvsp[-6].nodeval, Node_K_if,
1601
1605
                                node (yyvsp[-3].nodeval, Node_if_branches, yyvsp[0].nodeval)); ;
1602
1606
    break;}
1603
 
case 60:
1604
 
#line 458 "awk.y"
 
1607
case 61:
 
1608
#line 459 "awk.y"
1605
1609
{ want_assign = 0; ;
1606
1610
    break;}
1607
 
case 64:
1608
 
#line 469 "awk.y"
1609
 
{ yyval.nodeval = NULL; ;
1610
 
    break;}
1611
1611
case 65:
1612
 
#line 471 "awk.y"
 
1612
#line 470 "awk.y"
 
1613
{ yyval.nodeval = NULL; ;
 
1614
    break;}
 
1615
case 66:
 
1616
#line 472 "awk.y"
1613
1617
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_input, (NODE *)NULL); ;
1614
1618
    break;}
1615
 
case 66:
1616
 
#line 476 "awk.y"
1617
 
{ yyval.nodeval = NULL; ;
1618
 
    break;}
1619
1619
case 67:
1620
 
#line 478 "awk.y"
 
1620
#line 477 "awk.y"
 
1621
{ yyval.nodeval = NULL; ;
 
1622
    break;}
 
1623
case 68:
 
1624
#line 479 "awk.y"
1621
1625
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_output, (NODE *)NULL); ;
1622
1626
    break;}
1623
 
case 68:
1624
 
#line 480 "awk.y"
 
1627
case 69:
 
1628
#line 481 "awk.y"
1625
1629
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_append, (NODE *)NULL); ;
1626
1630
    break;}
1627
 
case 69:
1628
 
#line 482 "awk.y"
 
1631
case 70:
 
1632
#line 483 "awk.y"
1629
1633
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_redirect_pipe, (NODE *)NULL); ;
1630
1634
    break;}
1631
 
case 70:
1632
 
#line 487 "awk.y"
1633
 
{ yyval.nodeval = NULL; ;
1634
 
    break;}
1635
1635
case 71:
1636
 
#line 489 "awk.y"
1637
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1636
#line 488 "awk.y"
 
1637
{ yyval.nodeval = NULL; ;
1638
1638
    break;}
1639
1639
case 72:
1640
 
#line 494 "awk.y"
 
1640
#line 490 "awk.y"
 
1641
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1642
    break;}
 
1643
case 73:
 
1644
#line 495 "awk.y"
1641
1645
{ yyval.nodeval = make_param(yyvsp[0].sval); ;
1642
1646
    break;}
1643
 
case 73:
1644
 
#line 496 "awk.y"
 
1647
case 74:
 
1648
#line 497 "awk.y"
1645
1649
{ yyval.nodeval = append_right(yyvsp[-2].nodeval, make_param(yyvsp[0].sval)); yyerrok; ;
1646
1650
    break;}
1647
 
case 74:
1648
 
#line 498 "awk.y"
1649
 
{ yyval.nodeval = NULL; ;
1650
 
    break;}
1651
1651
case 75:
1652
 
#line 500 "awk.y"
 
1652
#line 499 "awk.y"
1653
1653
{ yyval.nodeval = NULL; ;
1654
1654
    break;}
1655
1655
case 76:
1656
 
#line 502 "awk.y"
 
1656
#line 501 "awk.y"
1657
1657
{ yyval.nodeval = NULL; ;
1658
1658
    break;}
1659
1659
case 77:
1660
 
#line 508 "awk.y"
 
1660
#line 503 "awk.y"
1661
1661
{ yyval.nodeval = NULL; ;
1662
1662
    break;}
1663
1663
case 78:
1664
 
#line 510 "awk.y"
1665
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1664
#line 509 "awk.y"
 
1665
{ yyval.nodeval = NULL; ;
1666
1666
    break;}
1667
1667
case 79:
1668
 
#line 515 "awk.y"
1669
 
{ yyval.nodeval = NULL; ;
 
1668
#line 511 "awk.y"
 
1669
{ yyval.nodeval = yyvsp[0].nodeval; ;
1670
1670
    break;}
1671
1671
case 80:
1672
 
#line 517 "awk.y"
1673
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1672
#line 516 "awk.y"
 
1673
{ yyval.nodeval = NULL; ;
1674
1674
    break;}
1675
1675
case 81:
1676
 
#line 522 "awk.y"
1677
 
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_expression_list, (NODE *)NULL); ;
 
1676
#line 518 "awk.y"
 
1677
{ yyval.nodeval = yyvsp[0].nodeval; ;
1678
1678
    break;}
1679
1679
case 82:
1680
 
#line 524 "awk.y"
 
1680
#line 523 "awk.y"
 
1681
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_expression_list, (NODE *)NULL); ;
 
1682
    break;}
 
1683
case 83:
 
1684
#line 525 "awk.y"
1681
1685
{
1682
1686
                yyval.nodeval = append_right(yyvsp[-2].nodeval,
1683
1687
                        node( yyvsp[0].nodeval, Node_expression_list, (NODE *)NULL));
1684
1688
                yyerrok;
1685
1689
          ;
1686
1690
    break;}
1687
 
case 83:
1688
 
#line 530 "awk.y"
1689
 
{ yyval.nodeval = NULL; ;
1690
 
    break;}
1691
1691
case 84:
1692
 
#line 532 "awk.y"
 
1692
#line 531 "awk.y"
1693
1693
{ yyval.nodeval = NULL; ;
1694
1694
    break;}
1695
1695
case 85:
1696
 
#line 534 "awk.y"
 
1696
#line 533 "awk.y"
1697
1697
{ yyval.nodeval = NULL; ;
1698
1698
    break;}
1699
1699
case 86:
1700
 
#line 536 "awk.y"
 
1700
#line 535 "awk.y"
1701
1701
{ yyval.nodeval = NULL; ;
1702
1702
    break;}
1703
1703
case 87:
1704
 
#line 541 "awk.y"
 
1704
#line 537 "awk.y"
1705
1705
{ yyval.nodeval = NULL; ;
1706
1706
    break;}
1707
1707
case 88:
1708
 
#line 543 "awk.y"
1709
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1708
#line 542 "awk.y"
 
1709
{ yyval.nodeval = NULL; ;
1710
1710
    break;}
1711
1711
case 89:
1712
 
#line 548 "awk.y"
1713
 
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_expression_list, (NODE *)NULL); ;
 
1712
#line 544 "awk.y"
 
1713
{ yyval.nodeval = yyvsp[0].nodeval; ;
1714
1714
    break;}
1715
1715
case 90:
1716
 
#line 550 "awk.y"
 
1716
#line 549 "awk.y"
 
1717
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_expression_list, (NODE *)NULL); ;
 
1718
    break;}
 
1719
case 91:
 
1720
#line 551 "awk.y"
1717
1721
{
1718
1722
                        yyval.nodeval = append_right(yyvsp[-2].nodeval,
1719
1723
                                node( yyvsp[0].nodeval, Node_expression_list, (NODE *)NULL));
1720
1724
                        yyerrok;
1721
1725
                ;
1722
1726
    break;}
1723
 
case 91:
1724
 
#line 556 "awk.y"
1725
 
{ yyval.nodeval = NULL; ;
1726
 
    break;}
1727
1727
case 92:
1728
 
#line 558 "awk.y"
 
1728
#line 557 "awk.y"
1729
1729
{ yyval.nodeval = NULL; ;
1730
1730
    break;}
1731
1731
case 93:
1732
 
#line 560 "awk.y"
 
1732
#line 559 "awk.y"
1733
1733
{ yyval.nodeval = NULL; ;
1734
1734
    break;}
1735
1735
case 94:
1736
 
#line 562 "awk.y"
 
1736
#line 561 "awk.y"
1737
1737
{ yyval.nodeval = NULL; ;
1738
1738
    break;}
1739
1739
case 95:
1740
 
#line 567 "awk.y"
1741
 
{ want_assign = 0; ;
 
1740
#line 563 "awk.y"
 
1741
{ yyval.nodeval = NULL; ;
1742
1742
    break;}
1743
1743
case 96:
1744
 
#line 569 "awk.y"
 
1744
#line 568 "awk.y"
 
1745
{ want_assign = 0; ;
 
1746
    break;}
 
1747
case 97:
 
1748
#line 570 "awk.y"
1745
1749
{
1746
1750
                  if (do_lint && yyvsp[0].nodeval->type == Node_regex)
1747
1751
                        warning("Regular expression on left of assignment.");
1748
1752
                  yyval.nodeval = node (yyvsp[-3].nodeval, yyvsp[-2].nodetypeval, yyvsp[0].nodeval);
1749
1753
                ;
1750
1754
    break;}
1751
 
case 97:
1752
 
#line 575 "awk.y"
 
1755
case 98:
 
1756
#line 576 "awk.y"
1753
1757
{ yyval.nodeval = node (variable(yyvsp[0].sval,1), Node_in_array, yyvsp[-3].nodeval); ;
1754
1758
    break;}
1755
 
case 98:
1756
 
#line 577 "awk.y"
 
1759
case 99:
 
1760
#line 578 "awk.y"
1757
1761
{
1758
1762
                  yyval.nodeval = node (yyvsp[0].nodeval, Node_K_getline,
1759
1763
                         node (yyvsp[-3].nodeval, Node_redirect_pipein, (NODE *)NULL));
1760
1764
                ;
1761
1765
    break;}
1762
 
case 99:
1763
 
#line 582 "awk.y"
1764
 
{
1765
 
                  if (do_lint && ! io_allowed && yyvsp[0].nodeval == NULL)
1766
 
                        warning("non-redirected getline undefined inside BEGIN or END action");
1767
 
                  yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_getline, yyvsp[0].nodeval);
1768
 
                ;
1769
 
    break;}
1770
1766
case 100:
1771
 
#line 588 "awk.y"
1772
 
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_and, yyvsp[0].nodeval); ;
 
1767
#line 583 "awk.y"
 
1768
{
 
1769
                  if (do_lint && ! io_allowed && yyvsp[0].nodeval == NULL)
 
1770
                        warning("non-redirected getline undefined inside BEGIN or END action");
 
1771
                  yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_getline, yyvsp[0].nodeval);
 
1772
                ;
1773
1773
    break;}
1774
1774
case 101:
1775
 
#line 590 "awk.y"
1776
 
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_or, yyvsp[0].nodeval); ;
 
1775
#line 589 "awk.y"
 
1776
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_and, yyvsp[0].nodeval); ;
1777
1777
    break;}
1778
1778
case 102:
1779
 
#line 592 "awk.y"
 
1779
#line 591 "awk.y"
 
1780
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_or, yyvsp[0].nodeval); ;
 
1781
    break;}
 
1782
case 103:
 
1783
#line 593 "awk.y"
1780
1784
{
1781
1785
                  if (yyvsp[-2].nodeval->type == Node_regex)
1782
1786
                        warning("Regular expression on left of MATCH operator.");
1783
1787
                  yyval.nodeval = node (yyvsp[-2].nodeval, yyvsp[-1].nodetypeval, mk_rexp(yyvsp[0].nodeval));
1784
1788
                ;
1785
1789
    break;}
1786
 
case 103:
1787
 
#line 598 "awk.y"
1788
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
1789
 
    break;}
1790
1790
case 104:
1791
 
#line 600 "awk.y"
 
1791
#line 599 "awk.y"
 
1792
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1793
    break;}
 
1794
case 105:
 
1795
#line 601 "awk.y"
1792
1796
{
1793
1797
                  yyval.nodeval = node(node(make_number(0.0),
1794
1798
                                 Node_field_spec,
1797
1801
                            yyvsp[0].nodeval);
1798
1802
                ;
1799
1803
    break;}
1800
 
case 105:
1801
 
#line 608 "awk.y"
1802
 
{ yyval.nodeval = node (variable(yyvsp[0].sval,1), Node_in_array, yyvsp[-2].nodeval); ;
1803
 
    break;}
1804
1804
case 106:
1805
 
#line 610 "awk.y"
 
1805
#line 609 "awk.y"
 
1806
{ yyval.nodeval = node (variable(yyvsp[0].sval,1), Node_in_array, yyvsp[-2].nodeval); ;
 
1807
    break;}
 
1808
case 107:
 
1809
#line 611 "awk.y"
1806
1810
{
1807
1811
                  if (do_lint && yyvsp[0].nodeval->type == Node_regex)
1808
1812
                        warning("Regular expression on left of comparison.");
1809
1813
                  yyval.nodeval = node (yyvsp[-2].nodeval, yyvsp[-1].nodetypeval, yyvsp[0].nodeval);
1810
1814
                ;
1811
1815
    break;}
1812
 
case 107:
1813
 
#line 616 "awk.y"
 
1816
case 108:
 
1817
#line 617 "awk.y"
1814
1818
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_less, yyvsp[0].nodeval); ;
1815
1819
    break;}
1816
 
case 108:
1817
 
#line 618 "awk.y"
 
1820
case 109:
 
1821
#line 619 "awk.y"
1818
1822
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_greater, yyvsp[0].nodeval); ;
1819
1823
    break;}
1820
 
case 109:
1821
 
#line 620 "awk.y"
1822
 
{ yyval.nodeval = node(yyvsp[-4].nodeval, Node_cond_exp, node(yyvsp[-2].nodeval, Node_if_branches, yyvsp[0].nodeval));;
1823
 
    break;}
1824
1824
case 110:
1825
 
#line 622 "awk.y"
1826
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1825
#line 621 "awk.y"
 
1826
{ yyval.nodeval = node(yyvsp[-4].nodeval, Node_cond_exp, node(yyvsp[-2].nodeval, Node_if_branches, yyvsp[0].nodeval));;
1827
1827
    break;}
1828
1828
case 111:
1829
 
#line 624 "awk.y"
1830
 
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_concat, yyvsp[0].nodeval); ;
 
1829
#line 623 "awk.y"
 
1830
{ yyval.nodeval = yyvsp[0].nodeval; ;
1831
1831
    break;}
1832
1832
case 112:
1833
 
#line 629 "awk.y"
1834
 
{ want_assign = 0; ;
 
1833
#line 625 "awk.y"
 
1834
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_concat, yyvsp[0].nodeval); ;
1835
1835
    break;}
1836
1836
case 113:
1837
 
#line 631 "awk.y"
 
1837
#line 630 "awk.y"
 
1838
{ want_assign = 0; ;
 
1839
    break;}
 
1840
case 114:
 
1841
#line 632 "awk.y"
1838
1842
{ yyval.nodeval = node (yyvsp[-3].nodeval, yyvsp[-2].nodetypeval, yyvsp[0].nodeval); ;
1839
1843
    break;}
1840
 
case 114:
1841
 
#line 633 "awk.y"
1842
 
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_and, yyvsp[0].nodeval); ;
1843
 
    break;}
1844
1844
case 115:
1845
 
#line 635 "awk.y"
1846
 
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_or, yyvsp[0].nodeval); ;
 
1845
#line 634 "awk.y"
 
1846
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_and, yyvsp[0].nodeval); ;
1847
1847
    break;}
1848
1848
case 116:
1849
 
#line 637 "awk.y"
1850
 
{
1851
 
                  if (do_lint && ! io_allowed && yyvsp[0].nodeval == NULL)
1852
 
                        warning("non-redirected getline undefined inside BEGIN or END action");
1853
 
                  yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_getline, yyvsp[0].nodeval);
1854
 
                ;
 
1849
#line 636 "awk.y"
 
1850
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_or, yyvsp[0].nodeval); ;
1855
1851
    break;}
1856
1852
case 117:
1857
 
#line 643 "awk.y"
1858
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1853
#line 638 "awk.y"
 
1854
{
 
1855
                  if (do_lint && ! io_allowed && yyvsp[0].nodeval == NULL)
 
1856
                        warning("non-redirected getline undefined inside BEGIN or END action");
 
1857
                  yyval.nodeval = node (yyvsp[-1].nodeval, Node_K_getline, yyvsp[0].nodeval);
 
1858
                ;
1859
1859
    break;}
1860
1860
case 118:
1861
 
#line 645 "awk.y"
 
1861
#line 644 "awk.y"
 
1862
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1863
    break;}
 
1864
case 119:
 
1865
#line 646 "awk.y"
1862
1866
{ yyval.nodeval = node((NODE *) NULL, Node_nomatch, yyvsp[0].nodeval); ;
1863
1867
    break;}
1864
 
case 119:
1865
 
#line 647 "awk.y"
 
1868
case 120:
 
1869
#line 648 "awk.y"
1866
1870
{ yyval.nodeval = node (yyvsp[-2].nodeval, yyvsp[-1].nodetypeval, mk_rexp(yyvsp[0].nodeval)); ;
1867
1871
    break;}
1868
 
case 120:
1869
 
#line 649 "awk.y"
1870
 
{ yyval.nodeval = node (variable(yyvsp[0].sval,1), Node_in_array, yyvsp[-2].nodeval); ;
1871
 
    break;}
1872
1872
case 121:
1873
 
#line 651 "awk.y"
 
1873
#line 650 "awk.y"
 
1874
{ yyval.nodeval = node (variable(yyvsp[0].sval,1), Node_in_array, yyvsp[-2].nodeval); ;
 
1875
    break;}
 
1876
case 122:
 
1877
#line 652 "awk.y"
1874
1878
{ yyval.nodeval = node (yyvsp[-2].nodeval, yyvsp[-1].nodetypeval, yyvsp[0].nodeval); ;
1875
1879
    break;}
1876
 
case 122:
1877
 
#line 653 "awk.y"
1878
 
{ yyval.nodeval = node(yyvsp[-4].nodeval, Node_cond_exp, node(yyvsp[-2].nodeval, Node_if_branches, yyvsp[0].nodeval));;
1879
 
    break;}
1880
1880
case 123:
1881
 
#line 655 "awk.y"
1882
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1881
#line 654 "awk.y"
 
1882
{ yyval.nodeval = node(yyvsp[-4].nodeval, Node_cond_exp, node(yyvsp[-2].nodeval, Node_if_branches, yyvsp[0].nodeval));;
1883
1883
    break;}
1884
1884
case 124:
1885
 
#line 657 "awk.y"
 
1885
#line 656 "awk.y"
 
1886
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1887
    break;}
 
1888
case 125:
 
1889
#line 658 "awk.y"
1886
1890
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_concat, yyvsp[0].nodeval); ;
1887
1891
    break;}
1888
 
case 126:
1889
 
#line 664 "awk.y"
 
1892
case 127:
 
1893
#line 665 "awk.y"
1890
1894
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_exp, yyvsp[0].nodeval); ;
1891
1895
    break;}
1892
 
case 127:
1893
 
#line 666 "awk.y"
 
1896
case 128:
 
1897
#line 667 "awk.y"
1894
1898
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_times, yyvsp[0].nodeval); ;
1895
1899
    break;}
1896
 
case 128:
1897
 
#line 668 "awk.y"
 
1900
case 129:
 
1901
#line 669 "awk.y"
1898
1902
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_quotient, yyvsp[0].nodeval); ;
1899
1903
    break;}
1900
 
case 129:
1901
 
#line 670 "awk.y"
 
1904
case 130:
 
1905
#line 671 "awk.y"
1902
1906
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_mod, yyvsp[0].nodeval); ;
1903
1907
    break;}
1904
 
case 130:
1905
 
#line 672 "awk.y"
 
1908
case 131:
 
1909
#line 673 "awk.y"
1906
1910
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_plus, yyvsp[0].nodeval); ;
1907
1911
    break;}
1908
 
case 131:
1909
 
#line 674 "awk.y"
 
1912
case 132:
 
1913
#line 675 "awk.y"
1910
1914
{ yyval.nodeval = node (yyvsp[-2].nodeval, Node_minus, yyvsp[0].nodeval); ;
1911
1915
    break;}
1912
 
case 132:
1913
 
#line 676 "awk.y"
 
1916
case 133:
 
1917
#line 677 "awk.y"
1914
1918
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_postincrement, (NODE *)NULL); ;
1915
1919
    break;}
1916
 
case 133:
1917
 
#line 678 "awk.y"
 
1920
case 134:
 
1921
#line 679 "awk.y"
1918
1922
{ yyval.nodeval = node (yyvsp[-1].nodeval, Node_postdecrement, (NODE *)NULL); ;
1919
1923
    break;}
1920
 
case 134:
1921
 
#line 683 "awk.y"
 
1924
case 135:
 
1925
#line 684 "awk.y"
1922
1926
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_not,(NODE *) NULL); ;
1923
1927
    break;}
1924
 
case 135:
1925
 
#line 685 "awk.y"
1926
 
{ yyval.nodeval = yyvsp[-1].nodeval; ;
1927
 
    break;}
1928
1928
case 136:
1929
 
#line 688 "awk.y"
1930
 
{ yyval.nodeval = snode (yyvsp[-1].nodeval, Node_builtin, (int) yyvsp[-3].lval); ;
 
1929
#line 686 "awk.y"
 
1930
{ yyval.nodeval = yyvsp[-1].nodeval; ;
1931
1931
    break;}
1932
1932
case 137:
1933
 
#line 690 "awk.y"
 
1933
#line 689 "awk.y"
1934
1934
{ yyval.nodeval = snode (yyvsp[-1].nodeval, Node_builtin, (int) yyvsp[-3].lval); ;
1935
1935
    break;}
1936
1936
case 138:
1937
 
#line 692 "awk.y"
 
1937
#line 691 "awk.y"
 
1938
{ yyval.nodeval = snode (yyvsp[-1].nodeval, Node_builtin, (int) yyvsp[-3].lval); ;
 
1939
    break;}
 
1940
case 139:
 
1941
#line 693 "awk.y"
1938
1942
{
1939
1943
                if (do_lint)
1940
1944
                        warning("call of `length' without parentheses is not portable");
1943
1947
                        warning( "call of `length' without parentheses is deprecated by POSIX");
1944
1948
          ;
1945
1949
    break;}
1946
 
case 139:
1947
 
#line 700 "awk.y"
 
1950
case 140:
 
1951
#line 701 "awk.y"
1948
1952
{
1949
1953
                yyval.nodeval = node (yyvsp[-1].nodeval, Node_func_call, make_string(yyvsp[-3].sval, strlen(yyvsp[-3].sval)));
1950
1954
          ;
1951
1955
    break;}
1952
 
case 141:
1953
 
#line 705 "awk.y"
 
1956
case 142:
 
1957
#line 706 "awk.y"
1954
1958
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_preincrement, (NODE *)NULL); ;
1955
1959
    break;}
1956
 
case 142:
1957
 
#line 707 "awk.y"
 
1960
case 143:
 
1961
#line 708 "awk.y"
1958
1962
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_predecrement, (NODE *)NULL); ;
1959
1963
    break;}
1960
 
case 143:
1961
 
#line 709 "awk.y"
1962
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
1963
 
    break;}
1964
1964
case 144:
1965
 
#line 711 "awk.y"
 
1965
#line 710 "awk.y"
1966
1966
{ yyval.nodeval = yyvsp[0].nodeval; ;
1967
1967
    break;}
1968
1968
case 145:
1969
 
#line 714 "awk.y"
 
1969
#line 712 "awk.y"
 
1970
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1971
    break;}
 
1972
case 146:
 
1973
#line 715 "awk.y"
1970
1974
{ if (yyvsp[0].nodeval->type == Node_val) {
1971
1975
                        yyvsp[0].nodeval->numbr = -(force_number(yyvsp[0].nodeval));
1972
1976
                        yyval.nodeval = yyvsp[0].nodeval;
1974
1978
                        yyval.nodeval = node (yyvsp[0].nodeval, Node_unary_minus, (NODE *)NULL);
1975
1979
                ;
1976
1980
    break;}
1977
 
case 146:
1978
 
#line 721 "awk.y"
1979
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
1980
 
    break;}
1981
1981
case 147:
1982
 
#line 726 "awk.y"
1983
 
{ yyval.nodeval = NULL; ;
 
1982
#line 722 "awk.y"
 
1983
{
 
1984
                  /* was: $$ = $2 */
 
1985
                  /* POSIX semantics: force a conversion to numeric type */
 
1986
                  yyval.nodeval = node (make_number(0.0), Node_plus, yyvsp[0].nodeval);
 
1987
                ;
1984
1988
    break;}
1985
1989
case 148:
1986
 
#line 728 "awk.y"
1987
 
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1990
#line 731 "awk.y"
 
1991
{ yyval.nodeval = NULL; ;
1988
1992
    break;}
1989
1993
case 149:
1990
1994
#line 733 "awk.y"
 
1995
{ yyval.nodeval = yyvsp[0].nodeval; ;
 
1996
    break;}
 
1997
case 150:
 
1998
#line 738 "awk.y"
1991
1999
{ yyval.nodeval = variable(yyvsp[0].sval,1); ;
1992
2000
    break;}
1993
 
case 150:
1994
 
#line 735 "awk.y"
 
2001
case 151:
 
2002
#line 740 "awk.y"
1995
2003
{
1996
2004
                if (yyvsp[-1].nodeval->rnode == NULL) {
1997
2005
                        yyval.nodeval = node (variable(yyvsp[-3].sval,1), Node_subscript, yyvsp[-1].nodeval->lnode);
2000
2008
                        yyval.nodeval = node (variable(yyvsp[-3].sval,1), Node_subscript, yyvsp[-1].nodeval);
2001
2009
                ;
2002
2010
    break;}
2003
 
case 151:
2004
 
#line 743 "awk.y"
 
2011
case 152:
 
2012
#line 748 "awk.y"
2005
2013
{ yyval.nodeval = node (yyvsp[0].nodeval, Node_field_spec, (NODE *)NULL); ;
2006
2014
    break;}
2007
 
case 153:
2008
 
#line 751 "awk.y"
2009
 
{ yyerrok; ;
2010
 
    break;}
2011
2015
case 154:
2012
 
#line 755 "awk.y"
2013
 
{ yyerrok; ;
2014
 
    break;}
2015
 
case 157:
2016
 
#line 764 "awk.y"
 
2016
#line 756 "awk.y"
 
2017
{ yyerrok; ;
 
2018
    break;}
 
2019
case 155:
 
2020
#line 760 "awk.y"
 
2021
{ yyerrok; ;
 
2022
    break;}
 
2023
case 158:
 
2024
#line 769 "awk.y"
2017
2025
{ yyerrok; want_assign = 0; ;
2018
2026
    break;}
2019
 
case 158:
2020
 
#line 767 "awk.y"
 
2027
case 159:
 
2028
#line 772 "awk.y"
2021
2029
{ yyerrok; ;
2022
2030
    break;}
2023
2031
}
2214
2222
  yystate = yyn;
2215
2223
  goto yynewstate;
2216
2224
}
2217
 
#line 770 "awk.y"
 
2225
#line 775 "awk.y"
2218
2226
 
2219
2227
 
2220
2228
struct token {
2300
2308
 
2301
2309
        errcount++;
2302
2310
        /* Find the current line in the input file */
2303
 
        if (lexptr) {
 
2311
        if (lexptr && lexeme) {
2304
2312
                if (!thisline) {
2305
2313
                        cp = lexeme;
2306
2314
                        if (*cp == '\n') {
2308
2316
                                mesg = "unexpected newline";
2309
2317
                        }
2310
2318
                        for ( ; cp != lexptr_begin && *cp != '\n'; --cp)
2311
 
                                ;
 
2319
                                continue;
2312
2320
                        if (*cp == '\n')
2313
2321
                                cp++;
2314
2322
                        thisline = cp;
2356
2364
        static int did_newline = 0;
2357
2365
#       define  SLOP    128     /* enough space to hold most source lines */
2358
2366
 
 
2367
again:
2359
2368
        if (nextfile > numfiles)
2360
2369
                return NULL;
2361
2370
 
2362
2371
        if (srcfiles[nextfile].stype == CMDLINE) {
2363
2372
                if (len == 0) {
2364
2373
                        len = strlen(srcfiles[nextfile].val);
 
2374
                        if (len == 0) {
 
2375
                                /*
 
2376
                                 * Yet Another Special case:
 
2377
                                 *      gawk '' /path/name
 
2378
                                 * Sigh.
 
2379
                                 */
 
2380
                                ++nextfile;
 
2381
                                goto again;
 
2382
                        }
2365
2383
                        sourceline = 1;
2366
2384
                        lexptr = lexptr_begin = srcfiles[nextfile].val;
2367
2385
                        lexend = lexptr + len;
2447
2465
        if (n == 0) {
2448
2466
                samefile = 0;
2449
2467
                nextfile++;
 
2468
                *lexeme = '\0';
2450
2469
                len = 0;
2451
2470
                return get_src_buf();
2452
2471
        }
2563
2582
        }
2564
2583
retry:
2565
2584
        while ((c = nextc()) == ' ' || c == '\t')
2566
 
                ;
 
2585
                continue;
2567
2586
 
2568
2587
        lexeme = lexptr ? lexptr - 1 : lexptr;
2569
2588
        thisline = NULL;
2878
2897
                                        break;
2879
2898
                                if (c == '#') {
2880
2899
                                        while ((c = nextc()) != '\n' && c != '\0')
2881
 
                                                ;
 
2900
                                                continue;
2882
2901
                                        if (c == '\0')
2883
2902
                                                break;
2884
2903
                                }
2904
2923
                                        break;
2905
2924
                                if (c == '#') {
2906
2925
                                        while ((c = nextc()) != '\n' && c != '\0')
2907
 
                                                ;
 
2926
                                                continue;
2908
2927
                                        if (c == '\0')
2909
2928
                                                break;
2910
2929
                                }
2972
2991
                        else
2973
2992
                                yylval.nodetypeval = tokentab[mid].value;
2974
2993
 
 
2994
                        free(tokkey);
2975
2995
                        return tokentab[mid].class;
2976
2996
                }
2977
2997
        }