aboutsummaryrefslogtreecommitdiffstats
path: root/awkgram.c
diff options
context:
space:
mode:
Diffstat (limited to 'awkgram.c')
-rw-r--r--awkgram.c2078
1 files changed, 1092 insertions, 986 deletions
diff --git a/awkgram.c b/awkgram.c
index b3ad028f..b52a6bb3 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -1,9 +1,10 @@
-/* A Bison parser, made by GNU Bison 2.4.2. */
+
+/* A Bison parser, made by GNU Bison 2.4.1. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
- Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -45,7 +46,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.2"
+#define YYBISON_VERSION "2.4.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -123,6 +124,8 @@ static int want_regexp; /* lexical scanning kludge */
static int can_return; /* parsing kludge */
static int begin_or_end_rule = FALSE; /* parsing kludge */
static int parsing_end_rule = FALSE; /* for warnings */
+static int beginfile_or_endfile_rule = FALSE; /* parsing kludge */
+static int parsing_endfile_rule = FALSE; /* for warnings */
static int in_print = FALSE; /* lexical scanning kludge for print */
static int in_parens = 0; /* lexical scanning kludge for print */
static char *lexptr; /* pointer to next char during parsing */
@@ -149,6 +152,8 @@ extern long numfiles;
extern int errcount;
extern NODE *begin_block;
extern NODE *end_block;
+extern NODE *beginfile_block;
+extern NODE *endfile_block;
/*
* This string cannot occur as a real awk identifier.
@@ -163,7 +168,7 @@ static char builtin_func[] = "@builtin";
/* Line 189 of yacc.c */
-#line 167 "awkgram.c"
+#line 172 "awkgram.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -209,31 +214,33 @@ static char builtin_func[] = "@builtin";
LEX_ELSE = 274,
LEX_RETURN = 275,
LEX_DELETE = 276,
- LEX_SWITCH = 277,
- LEX_CASE = 278,
- LEX_DEFAULT = 279,
- LEX_WHILE = 280,
- LEX_DO = 281,
- LEX_FOR = 282,
- LEX_BREAK = 283,
- LEX_CONTINUE = 284,
- LEX_PRINT = 285,
- LEX_PRINTF = 286,
- LEX_NEXT = 287,
- LEX_EXIT = 288,
- LEX_FUNCTION = 289,
- LEX_GETLINE = 290,
- LEX_NEXTFILE = 291,
- LEX_IN = 292,
- LEX_AND = 293,
- LEX_OR = 294,
- INCREMENT = 295,
- DECREMENT = 296,
- LEX_BUILTIN = 297,
- LEX_LENGTH = 298,
- NEWLINE = 299,
- SLASH_BEFORE_EQUAL = 300,
- UNARY = 301
+ LEX_BEGINFILE = 277,
+ LEX_ENDFILE = 278,
+ LEX_SWITCH = 279,
+ LEX_CASE = 280,
+ LEX_DEFAULT = 281,
+ LEX_WHILE = 282,
+ LEX_DO = 283,
+ LEX_FOR = 284,
+ LEX_BREAK = 285,
+ LEX_CONTINUE = 286,
+ LEX_PRINT = 287,
+ LEX_PRINTF = 288,
+ LEX_NEXT = 289,
+ LEX_EXIT = 290,
+ LEX_FUNCTION = 291,
+ LEX_GETLINE = 292,
+ LEX_NEXTFILE = 293,
+ LEX_IN = 294,
+ LEX_AND = 295,
+ LEX_OR = 296,
+ INCREMENT = 297,
+ DECREMENT = 298,
+ LEX_BUILTIN = 299,
+ LEX_LENGTH = 300,
+ NEWLINE = 301,
+ SLASH_BEFORE_EQUAL = 302,
+ UNARY = 303
};
#endif
/* Tokens. */
@@ -256,31 +263,33 @@ static char builtin_func[] = "@builtin";
#define LEX_ELSE 274
#define LEX_RETURN 275
#define LEX_DELETE 276
-#define LEX_SWITCH 277
-#define LEX_CASE 278
-#define LEX_DEFAULT 279
-#define LEX_WHILE 280
-#define LEX_DO 281
-#define LEX_FOR 282
-#define LEX_BREAK 283
-#define LEX_CONTINUE 284
-#define LEX_PRINT 285
-#define LEX_PRINTF 286
-#define LEX_NEXT 287
-#define LEX_EXIT 288
-#define LEX_FUNCTION 289
-#define LEX_GETLINE 290
-#define LEX_NEXTFILE 291
-#define LEX_IN 292
-#define LEX_AND 293
-#define LEX_OR 294
-#define INCREMENT 295
-#define DECREMENT 296
-#define LEX_BUILTIN 297
-#define LEX_LENGTH 298
-#define NEWLINE 299
-#define SLASH_BEFORE_EQUAL 300
-#define UNARY 301
+#define LEX_BEGINFILE 277
+#define LEX_ENDFILE 278
+#define LEX_SWITCH 279
+#define LEX_CASE 280
+#define LEX_DEFAULT 281
+#define LEX_WHILE 282
+#define LEX_DO 283
+#define LEX_FOR 284
+#define LEX_BREAK 285
+#define LEX_CONTINUE 286
+#define LEX_PRINT 287
+#define LEX_PRINTF 288
+#define LEX_NEXT 289
+#define LEX_EXIT 290
+#define LEX_FUNCTION 291
+#define LEX_GETLINE 292
+#define LEX_NEXTFILE 293
+#define LEX_IN 294
+#define LEX_AND 295
+#define LEX_OR 296
+#define INCREMENT 297
+#define DECREMENT 298
+#define LEX_BUILTIN 299
+#define LEX_LENGTH 300
+#define NEWLINE 301
+#define SLASH_BEFORE_EQUAL 302
+#define UNARY 303
@@ -290,7 +299,7 @@ typedef union YYSTYPE
{
/* Line 214 of yacc.c */
-#line 120 "awkgram.y"
+#line 124 "awkgram.y"
long lval;
AWKNUM fval;
@@ -302,7 +311,7 @@ typedef union YYSTYPE
/* Line 214 of yacc.c */
-#line 306 "awkgram.c"
+#line 315 "awkgram.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -314,7 +323,7 @@ typedef union YYSTYPE
/* Line 264 of yacc.c */
-#line 318 "awkgram.c"
+#line 327 "awkgram.c"
#ifdef short
# undef short
@@ -364,7 +373,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
+# if YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -529,20 +538,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1088
+#define YYLAST 1105
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 67
+#define YYNTOKENS 70
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 56
+#define YYNNTS 58
/* YYNRULES -- Number of rules. */
-#define YYNRULES 165
+#define YYNRULES 170
/* YYNRULES -- Number of states. */
-#define YYNSTATES 308
+#define YYNSTATES 314
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 301
+#define YYMAXUTOK 303
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -553,16 +562,16 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 56, 2, 2, 59, 55, 2, 2,
- 60, 61, 53, 51, 48, 52, 2, 54, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 47, 66,
- 49, 2, 50, 46, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 58, 2, 2, 61, 57, 2, 2,
+ 62, 63, 55, 53, 50, 54, 2, 56, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 49, 69,
+ 51, 2, 52, 48, 66, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 62, 2, 63, 58, 2, 2, 2, 2, 2,
+ 2, 64, 2, 65, 60, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 64, 2, 65, 2, 2, 2, 2,
+ 2, 2, 2, 67, 2, 68, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -580,7 +589,7 @@ static const yytype_uint8 yytranslate[] =
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 57
+ 45, 46, 47, 59
};
#if YYDEBUG
@@ -589,102 +598,105 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 7, 8, 11, 14, 17, 20, 23,
- 24, 26, 30, 32, 34, 40, 42, 44, 46, 48,
- 50, 51, 59, 60, 64, 66, 68, 69, 72, 75,
- 77, 80, 83, 87, 89, 99, 106, 115, 124, 137,
- 149, 152, 155, 158, 161, 165, 166, 171, 174, 175,
- 180, 186, 189, 194, 196, 197, 199, 201, 202, 205,
- 208, 214, 219, 221, 224, 227, 229, 231, 233, 235,
- 237, 243, 244, 245, 249, 256, 266, 268, 271, 272,
- 274, 275, 278, 279, 281, 283, 287, 289, 292, 296,
- 297, 299, 300, 302, 304, 308, 310, 313, 317, 321,
- 325, 329, 333, 337, 341, 345, 351, 353, 355, 357,
- 360, 362, 364, 366, 368, 370, 372, 375, 377, 381,
- 385, 389, 393, 397, 401, 405, 408, 411, 417, 422,
- 426, 430, 434, 438, 442, 446, 448, 451, 455, 460,
- 465, 467, 472, 474, 477, 480, 482, 484, 487, 490,
- 491, 493, 495, 500, 502, 506, 508, 510, 511, 514,
- 517, 519, 520, 522, 524, 526
+ 24, 26, 30, 32, 34, 36, 38, 44, 46, 48,
+ 50, 52, 54, 55, 63, 64, 68, 70, 72, 73,
+ 76, 79, 81, 84, 87, 91, 93, 103, 110, 119,
+ 128, 141, 153, 156, 159, 162, 165, 169, 170, 175,
+ 178, 179, 184, 190, 193, 198, 200, 201, 203, 205,
+ 206, 209, 212, 218, 223, 225, 228, 231, 233, 235,
+ 237, 239, 241, 247, 248, 249, 253, 260, 270, 272,
+ 275, 276, 278, 279, 282, 283, 285, 287, 291, 293,
+ 296, 300, 301, 303, 304, 306, 308, 312, 314, 317,
+ 321, 325, 329, 333, 337, 341, 345, 349, 355, 357,
+ 359, 361, 364, 366, 368, 370, 372, 374, 376, 379,
+ 381, 385, 389, 393, 397, 401, 405, 409, 412, 415,
+ 421, 426, 430, 434, 438, 442, 446, 450, 452, 455,
+ 459, 464, 469, 471, 473, 475, 478, 481, 483, 485,
+ 488, 491, 493, 496, 501, 502, 504, 506, 511, 513,
+ 517, 519, 521, 522, 525, 528, 530, 531, 533, 535,
+ 537
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 68, 0, -1, 97, 69, 97, -1, -1, 69, 70,
- -1, 69, 1, -1, 71, 72, -1, 71, 81, -1,
- 75, 72, -1, -1, 104, -1, 104, 48, 104, -1,
- 16, -1, 17, -1, 116, 80, 117, 119, 97, -1,
- 4, -1, 3, -1, 74, -1, 42, -1, 43, -1,
- -1, 34, 76, 73, 60, 99, 118, 97, -1, -1,
- 79, 78, 5, -1, 54, -1, 45, -1, -1, 80,
- 82, -1, 80, 1, -1, 96, -1, 120, 97, -1,
- 120, 97, -1, 116, 80, 117, -1, 95, -1, 22,
- 60, 104, 118, 97, 116, 87, 97, 117, -1, 25,
- 60, 104, 118, 97, 82, -1, 26, 97, 82, 25,
- 60, 104, 118, 97, -1, 27, 60, 4, 37, 4,
- 118, 97, 82, -1, 27, 60, 86, 120, 97, 104,
- 120, 97, 86, 118, 97, 82, -1, 27, 60, 86,
- 120, 97, 120, 97, 86, 118, 97, 82, -1, 28,
- 81, -1, 29, 81, -1, 32, 81, -1, 36, 81,
- -1, 33, 101, 81, -1, -1, 20, 83, 101, 81,
- -1, 84, 81, -1, -1, 91, 85, 92, 93, -1,
- 21, 4, 62, 103, 63, -1, 21, 4, -1, 21,
- 60, 4, 61, -1, 104, -1, -1, 84, -1, 88,
- -1, -1, 88, 89, -1, 88, 1, -1, 23, 90,
- 121, 97, 80, -1, 24, 121, 97, 80, -1, 7,
- -1, 52, 7, -1, 51, 7, -1, 8, -1, 77,
- -1, 30, -1, 31, -1, 102, -1, 60, 104, 122,
- 103, 118, -1, -1, -1, 10, 94, 108, -1, 18,
- 60, 104, 118, 97, 82, -1, 18, 60, 104, 118,
- 97, 82, 19, 97, 82, -1, 44, -1, 96, 44,
- -1, -1, 96, -1, -1, 49, 109, -1, -1, 100,
- -1, 4, -1, 100, 122, 4, -1, 1, -1, 100,
- 1, -1, 100, 122, 1, -1, -1, 104, -1, -1,
- 103, -1, 104, -1, 103, 122, 104, -1, 1, -1,
- 103, 1, -1, 103, 1, 104, -1, 103, 122, 1,
- -1, 113, 105, 104, -1, 104, 38, 104, -1, 104,
- 39, 104, -1, 104, 14, 104, -1, 104, 37, 4,
- -1, 104, 107, 104, -1, 104, 46, 104, 47, 104,
- -1, 108, -1, 13, -1, 12, -1, 45, 13, -1,
- 9, -1, 49, -1, 106, -1, 50, -1, 109, -1,
- 110, -1, 108, 109, -1, 111, -1, 109, 58, 109,
- -1, 109, 53, 109, -1, 109, 54, 109, -1, 109,
- 55, 109, -1, 109, 51, 109, -1, 109, 52, 109,
- -1, 35, 112, 98, -1, 113, 40, -1, 113, 41,
- -1, 60, 103, 118, 37, 4, -1, 108, 11, 35,
- 112, -1, 110, 58, 109, -1, 110, 53, 109, -1,
- 110, 54, 109, -1, 110, 55, 109, -1, 110, 51,
- 109, -1, 110, 52, 109, -1, 77, -1, 56, 109,
- -1, 60, 104, 118, -1, 42, 60, 102, 118, -1,
- 43, 60, 102, 118, -1, 43, -1, 3, 60, 102,
- 118, -1, 113, -1, 40, 113, -1, 41, 113, -1,
- 7, -1, 8, -1, 52, 109, -1, 51, 109, -1,
- -1, 113, -1, 4, -1, 4, 62, 103, 63, -1,
- 114, -1, 59, 111, 115, -1, 40, -1, 41, -1,
- -1, 64, 97, -1, 65, 97, -1, 61, -1, -1,
- 120, -1, 66, -1, 47, -1, 48, 97, -1
+ 71, 0, -1, 100, 72, 100, -1, -1, 72, 73,
+ -1, 72, 1, -1, 74, 75, -1, 74, 84, -1,
+ 78, 75, -1, -1, 107, -1, 107, 50, 107, -1,
+ 16, -1, 17, -1, 22, -1, 23, -1, 121, 83,
+ 122, 124, 100, -1, 4, -1, 3, -1, 77, -1,
+ 44, -1, 45, -1, -1, 36, 79, 76, 62, 102,
+ 123, 100, -1, -1, 82, 81, 5, -1, 56, -1,
+ 47, -1, -1, 83, 85, -1, 83, 1, -1, 99,
+ -1, 125, 100, -1, 125, 100, -1, 121, 83, 122,
+ -1, 98, -1, 24, 62, 107, 123, 100, 121, 90,
+ 100, 122, -1, 27, 62, 107, 123, 100, 85, -1,
+ 28, 100, 85, 27, 62, 107, 123, 100, -1, 29,
+ 62, 4, 39, 4, 123, 100, 85, -1, 29, 62,
+ 89, 125, 100, 107, 125, 100, 89, 123, 100, 85,
+ -1, 29, 62, 89, 125, 100, 125, 100, 89, 123,
+ 100, 85, -1, 30, 84, -1, 31, 84, -1, 34,
+ 84, -1, 38, 84, -1, 35, 104, 84, -1, -1,
+ 20, 86, 104, 84, -1, 87, 84, -1, -1, 94,
+ 88, 95, 96, -1, 21, 4, 64, 106, 65, -1,
+ 21, 4, -1, 21, 62, 4, 63, -1, 107, -1,
+ -1, 87, -1, 91, -1, -1, 91, 92, -1, 91,
+ 1, -1, 25, 93, 126, 100, 83, -1, 26, 126,
+ 100, 83, -1, 7, -1, 54, 7, -1, 53, 7,
+ -1, 8, -1, 80, -1, 32, -1, 33, -1, 105,
+ -1, 62, 107, 127, 106, 123, -1, -1, -1, 10,
+ 97, 111, -1, 18, 62, 107, 123, 100, 85, -1,
+ 18, 62, 107, 123, 100, 85, 19, 100, 85, -1,
+ 46, -1, 99, 46, -1, -1, 99, -1, -1, 51,
+ 112, -1, -1, 103, -1, 4, -1, 103, 127, 4,
+ -1, 1, -1, 103, 1, -1, 103, 127, 1, -1,
+ -1, 107, -1, -1, 106, -1, 107, -1, 106, 127,
+ 107, -1, 1, -1, 106, 1, -1, 106, 1, 107,
+ -1, 106, 127, 1, -1, 118, 108, 107, -1, 107,
+ 40, 107, -1, 107, 41, 107, -1, 107, 14, 107,
+ -1, 107, 39, 4, -1, 107, 110, 107, -1, 107,
+ 48, 107, 49, 107, -1, 111, -1, 13, -1, 12,
+ -1, 47, 13, -1, 9, -1, 51, -1, 109, -1,
+ 52, -1, 112, -1, 113, -1, 111, 112, -1, 114,
+ -1, 112, 60, 112, -1, 112, 55, 112, -1, 112,
+ 56, 112, -1, 112, 57, 112, -1, 112, 53, 112,
+ -1, 112, 54, 112, -1, 37, 117, 101, -1, 118,
+ 42, -1, 118, 43, -1, 62, 106, 123, 39, 4,
+ -1, 111, 11, 37, 117, -1, 113, 60, 112, -1,
+ 113, 55, 112, -1, 113, 56, 112, -1, 113, 57,
+ 112, -1, 113, 53, 112, -1, 113, 54, 112, -1,
+ 80, -1, 58, 112, -1, 62, 107, 123, -1, 44,
+ 62, 105, 123, -1, 45, 62, 105, 123, -1, 45,
+ -1, 115, -1, 118, -1, 42, 118, -1, 43, 118,
+ -1, 7, -1, 8, -1, 54, 112, -1, 53, 112,
+ -1, 116, -1, 66, 116, -1, 3, 62, 105, 123,
+ -1, -1, 118, -1, 4, -1, 4, 64, 106, 65,
+ -1, 119, -1, 61, 114, 120, -1, 42, -1, 43,
+ -1, -1, 67, 100, -1, 68, 100, -1, 63, -1,
+ -1, 125, -1, 69, -1, 49, -1, 50, 100, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 181, 181, 187, 189, 194, 206, 210, 225, 236,
- 239, 243, 253, 262, 274, 279, 281, 283, 294, 295,
- 300, 299, 323, 322, 348, 349, 354, 355, 373, 378,
- 379, 383, 385, 387, 389, 391, 393, 395, 439, 443,
- 448, 451, 454, 463, 487, 490, 489, 499, 511, 511,
- 542, 544, 562, 584, 590, 591, 596, 649, 650, 667,
- 672, 674, 679, 681, 686, 688, 690, 695, 696, 704,
- 705, 711, 716, 716, 728, 733, 740, 741, 744, 746,
- 751, 752, 758, 759, 764, 766, 768, 770, 772, 779,
- 780, 786, 787, 792, 794, 800, 802, 804, 806, 811,
- 817, 819, 821, 827, 833, 839, 841, 846, 848, 850,
- 855, 857, 861, 862, 867, 869, 871, 876, 878, 880,
- 882, 884, 886, 888, 890, 896, 898, 900, 913, 918,
- 920, 922, 924, 926, 928, 933, 935, 937, 939, 942,
- 944, 958, 966, 967, 969, 971, 973, 976, 984, 996,
- 997, 1002, 1004, 1019, 1029, 1044, 1045, 1046, 1050, 1054,
- 1058, 1061, 1063, 1067, 1071, 1074
+ 0, 187, 187, 193, 195, 200, 212, 216, 234, 245,
+ 248, 252, 262, 271, 280, 285, 293, 298, 300, 302,
+ 313, 314, 319, 318, 342, 341, 367, 368, 373, 374,
+ 392, 397, 398, 402, 404, 406, 408, 410, 412, 414,
+ 458, 462, 467, 470, 473, 485, 523, 526, 525, 535,
+ 547, 547, 578, 580, 598, 620, 626, 627, 632, 685,
+ 686, 703, 708, 710, 715, 717, 722, 724, 726, 731,
+ 732, 740, 741, 747, 752, 752, 764, 769, 776, 777,
+ 780, 782, 787, 788, 794, 795, 800, 802, 804, 806,
+ 808, 815, 816, 822, 823, 828, 830, 836, 838, 840,
+ 842, 847, 853, 855, 857, 863, 869, 875, 877, 882,
+ 884, 886, 891, 893, 897, 898, 903, 905, 907, 912,
+ 914, 916, 918, 920, 922, 924, 926, 947, 949, 951,
+ 964, 969, 971, 973, 975, 977, 979, 984, 986, 988,
+ 990, 993, 995, 1009, 1010, 1011, 1013, 1015, 1017, 1020,
+ 1028, 1039, 1044, 1060, 1071, 1072, 1077, 1079, 1094, 1104,
+ 1119, 1120, 1121, 1125, 1129, 1133, 1136, 1138, 1142, 1146,
+ 1149
};
#endif
@@ -696,25 +708,26 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "FUNC_CALL", "NAME", "REGEXP", "ERROR",
"YNUMBER", "YSTRING", "RELOP", "IO_OUT", "IO_IN", "ASSIGNOP", "ASSIGN",
"MATCHOP", "CONCAT_OP", "LEX_BEGIN", "LEX_END", "LEX_IF", "LEX_ELSE",
- "LEX_RETURN", "LEX_DELETE", "LEX_SWITCH", "LEX_CASE", "LEX_DEFAULT",
- "LEX_WHILE", "LEX_DO", "LEX_FOR", "LEX_BREAK", "LEX_CONTINUE",
- "LEX_PRINT", "LEX_PRINTF", "LEX_NEXT", "LEX_EXIT", "LEX_FUNCTION",
- "LEX_GETLINE", "LEX_NEXTFILE", "LEX_IN", "LEX_AND", "LEX_OR",
- "INCREMENT", "DECREMENT", "LEX_BUILTIN", "LEX_LENGTH", "NEWLINE",
- "SLASH_BEFORE_EQUAL", "'?'", "':'", "','", "'<'", "'>'", "'+'", "'-'",
- "'*'", "'/'", "'%'", "'!'", "UNARY", "'^'", "'$'", "'('", "')'", "'['",
- "']'", "'{'", "'}'", "';'", "$accept", "start", "program", "rule",
- "pattern", "action", "func_name", "lex_builtin", "function_prologue",
- "$@1", "regexp", "$@2", "a_slash", "statements", "statement_term",
- "statement", "$@3", "simple_stmt", "$@4", "opt_simple_stmt",
- "switch_body", "case_statements", "case_statement", "case_value",
- "print", "print_expression_list", "output_redir", "$@5", "if_statement",
- "nls", "opt_nls", "input_redir", "opt_param_list", "param_list",
- "opt_exp", "opt_expression_list", "expression_list", "exp",
+ "LEX_RETURN", "LEX_DELETE", "LEX_BEGINFILE", "LEX_ENDFILE", "LEX_SWITCH",
+ "LEX_CASE", "LEX_DEFAULT", "LEX_WHILE", "LEX_DO", "LEX_FOR", "LEX_BREAK",
+ "LEX_CONTINUE", "LEX_PRINT", "LEX_PRINTF", "LEX_NEXT", "LEX_EXIT",
+ "LEX_FUNCTION", "LEX_GETLINE", "LEX_NEXTFILE", "LEX_IN", "LEX_AND",
+ "LEX_OR", "INCREMENT", "DECREMENT", "LEX_BUILTIN", "LEX_LENGTH",
+ "NEWLINE", "SLASH_BEFORE_EQUAL", "'?'", "':'", "','", "'<'", "'>'",
+ "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARY", "'^'", "'$'", "'('",
+ "')'", "'['", "']'", "'@'", "'{'", "'}'", "';'", "$accept", "start",
+ "program", "rule", "pattern", "action", "func_name", "lex_builtin",
+ "function_prologue", "$@1", "regexp", "$@2", "a_slash", "statements",
+ "statement_term", "statement", "$@3", "simple_stmt", "$@4",
+ "opt_simple_stmt", "switch_body", "case_statements", "case_statement",
+ "case_value", "print", "print_expression_list", "output_redir", "$@5",
+ "if_statement", "nls", "opt_nls", "input_redir", "opt_param_list",
+ "param_list", "opt_exp", "opt_expression_list", "expression_list", "exp",
"assign_operator", "relop_or_less", "a_relop", "common_exp", "simp_exp",
- "simp_exp_nc", "non_post_simp_exp", "opt_variable", "variable",
- "field_spec", "opt_incdec", "l_brace", "r_brace", "r_paren", "opt_semi",
- "semi", "colon", "comma", 0
+ "simp_exp_nc", "non_post_simp_exp", "function_call",
+ "direct_function_call", "opt_variable", "variable", "field_spec",
+ "opt_incdec", "l_brace", "r_brace", "r_paren", "opt_semi", "semi",
+ "colon", "comma", 0
};
#endif
@@ -727,54 +740,56 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 63, 58, 44, 60,
- 62, 43, 45, 42, 47, 37, 33, 301, 94, 36,
- 40, 41, 91, 93, 123, 125, 59
+ 295, 296, 297, 298, 299, 300, 301, 302, 63, 58,
+ 44, 60, 62, 43, 45, 42, 47, 37, 33, 303,
+ 94, 36, 40, 41, 91, 93, 64, 123, 125, 59
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 67, 68, 69, 69, 69, 70, 70, 70, 71,
- 71, 71, 71, 71, 72, 73, 73, 73, 74, 74,
- 76, 75, 78, 77, 79, 79, 80, 80, 80, 81,
- 81, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 83, 82, 82, 85, 84,
- 84, 84, 84, 84, 86, 86, 87, 88, 88, 88,
- 89, 89, 90, 90, 90, 90, 90, 91, 91, 92,
- 92, 93, 94, 93, 95, 95, 96, 96, 97, 97,
- 98, 98, 99, 99, 100, 100, 100, 100, 100, 101,
- 101, 102, 102, 103, 103, 103, 103, 103, 103, 104,
- 104, 104, 104, 104, 104, 104, 104, 105, 105, 105,
- 106, 106, 107, 107, 108, 108, 108, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 110, 110,
- 110, 110, 110, 110, 110, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 112,
- 112, 113, 113, 113, 114, 115, 115, 115, 116, 117,
- 118, 119, 119, 120, 121, 122
+ 0, 70, 71, 72, 72, 72, 73, 73, 73, 74,
+ 74, 74, 74, 74, 74, 74, 75, 76, 76, 76,
+ 77, 77, 79, 78, 81, 80, 82, 82, 83, 83,
+ 83, 84, 84, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 86, 85, 85,
+ 88, 87, 87, 87, 87, 87, 89, 89, 90, 91,
+ 91, 91, 92, 92, 93, 93, 93, 93, 93, 94,
+ 94, 95, 95, 96, 97, 96, 98, 98, 99, 99,
+ 100, 100, 101, 101, 102, 102, 103, 103, 103, 103,
+ 103, 104, 104, 105, 105, 106, 106, 106, 106, 106,
+ 106, 107, 107, 107, 107, 107, 107, 107, 107, 108,
+ 108, 108, 109, 109, 110, 110, 111, 111, 111, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 113, 113, 113, 113, 113, 113, 113, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 115, 115, 116, 117, 117, 118, 118, 118, 119,
+ 120, 120, 120, 121, 122, 123, 124, 124, 125, 126,
+ 127
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 3, 0, 2, 2, 2, 2, 2, 0,
- 1, 3, 1, 1, 5, 1, 1, 1, 1, 1,
- 0, 7, 0, 3, 1, 1, 0, 2, 2, 1,
- 2, 2, 3, 1, 9, 6, 8, 8, 12, 11,
- 2, 2, 2, 2, 3, 0, 4, 2, 0, 4,
- 5, 2, 4, 1, 0, 1, 1, 0, 2, 2,
- 5, 4, 1, 2, 2, 1, 1, 1, 1, 1,
- 5, 0, 0, 3, 6, 9, 1, 2, 0, 1,
- 0, 2, 0, 1, 1, 3, 1, 2, 3, 0,
- 1, 0, 1, 1, 3, 1, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 5, 1, 1, 1, 2,
- 1, 1, 1, 1, 1, 1, 2, 1, 3, 3,
- 3, 3, 3, 3, 3, 2, 2, 5, 4, 3,
- 3, 3, 3, 3, 3, 1, 2, 3, 4, 4,
- 1, 4, 1, 2, 2, 1, 1, 2, 2, 0,
- 1, 1, 4, 1, 3, 1, 1, 0, 2, 2,
- 1, 0, 1, 1, 1, 2
+ 1, 3, 1, 1, 1, 1, 5, 1, 1, 1,
+ 1, 1, 0, 7, 0, 3, 1, 1, 0, 2,
+ 2, 1, 2, 2, 3, 1, 9, 6, 8, 8,
+ 12, 11, 2, 2, 2, 2, 3, 0, 4, 2,
+ 0, 4, 5, 2, 4, 1, 0, 1, 1, 0,
+ 2, 2, 5, 4, 1, 2, 2, 1, 1, 1,
+ 1, 1, 5, 0, 0, 3, 6, 9, 1, 2,
+ 0, 1, 0, 2, 0, 1, 1, 3, 1, 2,
+ 3, 0, 1, 0, 1, 1, 3, 1, 2, 3,
+ 3, 3, 3, 3, 3, 3, 3, 5, 1, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 2, 1,
+ 3, 3, 3, 3, 3, 3, 3, 2, 2, 5,
+ 4, 3, 3, 3, 3, 3, 3, 1, 2, 3,
+ 4, 4, 1, 1, 1, 2, 2, 1, 1, 2,
+ 2, 1, 2, 4, 0, 1, 1, 4, 1, 3,
+ 1, 1, 0, 2, 2, 1, 0, 1, 1, 1,
+ 2
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -782,365 +797,372 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 78, 76, 0, 79, 3, 1, 77, 0, 5, 0,
- 151, 145, 146, 12, 13, 20, 149, 0, 0, 0,
- 140, 25, 0, 0, 24, 0, 0, 0, 4, 0,
- 0, 135, 22, 2, 10, 106, 114, 115, 117, 142,
- 153, 0, 0, 0, 80, 150, 143, 144, 0, 0,
- 148, 142, 147, 136, 0, 157, 142, 95, 0, 93,
- 78, 163, 6, 7, 29, 26, 78, 8, 0, 110,
- 0, 0, 0, 0, 0, 0, 111, 113, 112, 0,
- 0, 116, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 108, 107, 125, 126, 0, 0,
- 0, 0, 93, 0, 16, 15, 18, 19, 0, 17,
- 0, 124, 0, 0, 0, 155, 156, 154, 96, 78,
- 160, 0, 0, 137, 158, 0, 30, 23, 102, 103,
- 100, 101, 0, 11, 104, 149, 122, 123, 119, 120,
- 121, 118, 133, 134, 130, 131, 132, 129, 109, 99,
- 141, 152, 0, 81, 138, 139, 97, 165, 0, 98,
- 94, 28, 0, 45, 0, 0, 0, 78, 0, 0,
- 0, 67, 68, 0, 89, 0, 78, 27, 0, 48,
- 33, 53, 26, 161, 78, 0, 128, 86, 84, 0,
- 0, 127, 0, 89, 51, 0, 0, 0, 0, 54,
- 40, 41, 42, 0, 90, 43, 159, 47, 0, 0,
- 78, 162, 31, 105, 78, 87, 0, 0, 0, 0,
- 0, 0, 0, 0, 151, 55, 0, 44, 0, 71,
- 69, 32, 14, 21, 88, 85, 78, 46, 0, 52,
- 78, 78, 0, 0, 78, 93, 72, 49, 0, 50,
- 0, 0, 0, 0, 0, 0, 0, 74, 57, 35,
- 0, 78, 0, 78, 0, 73, 78, 78, 0, 78,
- 0, 78, 54, 70, 0, 0, 59, 0, 0, 58,
- 36, 37, 54, 0, 75, 34, 62, 65, 0, 0,
- 66, 0, 164, 78, 0, 78, 64, 63, 78, 26,
- 78, 0, 26, 0, 0, 39, 0, 38
+ 80, 78, 0, 81, 3, 1, 79, 0, 5, 0,
+ 156, 147, 148, 12, 13, 14, 15, 22, 154, 0,
+ 0, 0, 142, 27, 0, 0, 26, 0, 0, 0,
+ 0, 4, 0, 0, 137, 24, 2, 10, 108, 116,
+ 117, 119, 143, 151, 144, 158, 0, 0, 0, 82,
+ 155, 145, 146, 0, 0, 150, 144, 149, 138, 0,
+ 162, 144, 97, 0, 95, 152, 80, 168, 6, 7,
+ 31, 28, 80, 8, 0, 112, 0, 0, 0, 0,
+ 0, 0, 113, 115, 114, 0, 0, 118, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 110, 109, 127, 128, 0, 0, 0, 0, 95, 0,
+ 18, 17, 20, 21, 0, 19, 0, 126, 0, 0,
+ 0, 160, 161, 159, 98, 80, 165, 0, 0, 139,
+ 163, 0, 32, 25, 104, 105, 102, 103, 0, 11,
+ 106, 154, 124, 125, 121, 122, 123, 120, 135, 136,
+ 132, 133, 134, 131, 111, 101, 153, 157, 0, 83,
+ 140, 141, 99, 170, 0, 100, 96, 30, 0, 47,
+ 0, 0, 0, 80, 0, 0, 0, 69, 70, 0,
+ 91, 0, 80, 29, 0, 50, 35, 55, 28, 166,
+ 80, 0, 130, 88, 86, 0, 0, 129, 0, 91,
+ 53, 0, 0, 0, 0, 56, 42, 43, 44, 0,
+ 92, 45, 164, 49, 0, 0, 80, 167, 33, 107,
+ 80, 89, 0, 0, 0, 0, 0, 0, 0, 0,
+ 156, 57, 0, 46, 0, 73, 71, 34, 16, 23,
+ 90, 87, 80, 48, 0, 54, 80, 80, 0, 0,
+ 80, 95, 74, 51, 0, 52, 0, 0, 0, 0,
+ 0, 0, 0, 76, 59, 37, 0, 80, 0, 80,
+ 0, 75, 80, 80, 0, 80, 0, 80, 56, 72,
+ 0, 0, 61, 0, 0, 60, 38, 39, 56, 0,
+ 77, 36, 64, 67, 0, 0, 68, 0, 169, 80,
+ 0, 80, 66, 65, 80, 28, 80, 0, 28, 0,
+ 0, 41, 0, 40
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 2, 7, 28, 29, 62, 108, 109, 30, 43,
- 31, 68, 32, 125, 63, 177, 193, 178, 208, 226,
- 267, 268, 279, 291, 179, 229, 247, 256, 180, 3,
- 4, 111, 189, 190, 203, 100, 101, 181, 99, 78,
- 79, 35, 36, 37, 38, 44, 39, 40, 117, 182,
- 183, 123, 210, 184, 293, 122
+ -1, 2, 7, 31, 32, 68, 114, 115, 33, 48,
+ 34, 74, 35, 131, 69, 183, 199, 184, 214, 232,
+ 273, 274, 285, 297, 185, 235, 253, 262, 186, 3,
+ 4, 117, 195, 196, 209, 106, 107, 187, 105, 84,
+ 85, 38, 39, 40, 41, 42, 43, 49, 44, 45,
+ 123, 188, 189, 129, 216, 190, 299, 128
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -221
+#define YYPACT_NINF -263
static const yytype_int16 yypact[] =
{
- -32, -221, 35, -3, -221, -221, -221, 343, -221, -13,
- -4, -221, -221, -221, -221, -221, 32, 32, 32, -6,
- -5, -221, 974, 974, -221, 974, 1028, 768, -221, -26,
- 2, -221, -221, -221, 820, 952, 392, 446, -221, 125,
- -221, 707, 768, 185, 11, -221, -221, -221, 707, 707,
- 3, -8, 3, 3, 974, 76, -221, -221, 42, 148,
- -32, -221, -221, -221, -3, -221, -32, -221, 87, -221,
- 974, 93, 974, 974, 974, 974, -221, -221, -221, 974,
- 69, 392, 974, 974, 974, 974, 974, 974, 974, 974,
- 974, 974, 974, 974, -221, -221, -221, -221, 97, 974,
- 50, 41, 746, 36, -221, -221, -221, -221, 46, -221,
- 974, -221, 50, 50, 148, -221, -221, -221, 974, -32,
- -221, 81, 790, -221, -221, 505, -221, -221, 14, -221,
- 540, 317, 874, 746, 7, 32, 70, 70, 3, 3,
- 3, 3, 70, 70, 3, 3, 3, 3, -221, 746,
- -221, -221, 20, 392, -221, -221, 746, -221, 115, -221,
- 746, -221, 80, -221, 27, 82, 84, -32, 89, -18,
- -18, -221, -221, -18, 974, -18, -32, -221, -18, -221,
- -221, 746, -221, 67, -32, 974, -221, -221, -221, 50,
- 48, -221, 974, 974, 79, 150, 974, 974, 631, 844,
- -221, -221, -221, -18, 746, -221, -221, -221, 571, 505,
- -32, -221, -221, 746, -32, -221, 26, 148, -18, 768,
- 98, 148, 148, 133, -12, -221, 67, -221, 768, 151,
- -221, -221, -221, -221, -221, -221, -32, -221, 45, -221,
- -32, -32, 111, 172, -32, 546, -221, -221, 631, -221,
- 2, 631, 974, 50, 685, 768, 974, 162, -221, -221,
- 148, -32, 325, -32, 42, 952, -32, -32, 21, -32,
- 631, -32, 898, -221, 631, 117, -221, 194, 137, -221,
- -221, -221, 898, 50, -221, -221, -221, -221, 183, 186,
- -221, 137, -221, -32, 50, -32, -221, -221, -32, -221,
- -32, 631, -221, 397, 631, -221, 451, -221
+ -27, -263, 29, -23, -263, -263, -263, 365, -263, -21,
+ -18, -263, -263, -263, -263, -263, -263, -263, 9, 9,
+ 9, -15, -10, -263, 1014, 1014, -263, 1014, 1039, 792,
+ 48, -263, -31, -14, -263, -263, -263, 712, 958, 195,
+ 274, -263, -263, -263, 176, -263, 764, 792, 126, 3,
+ -263, -263, -263, 764, 764, 2, -11, 2, 2, 1014,
+ -8, -263, -263, 44, 389, -263, -27, -263, -263, -263,
+ -23, -263, -27, -263, 58, -263, 1014, 65, 1014, 1014,
+ 1014, 1014, -263, -263, -263, 1014, 31, 195, 1014, 1014,
+ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ -263, -263, -263, -263, 83, 1014, 42, 10, 907, 21,
+ -263, -263, -263, -263, 50, -263, 1014, -263, 42, 42,
+ 389, -263, -263, -263, 1014, -27, -263, 75, 848, -263,
+ -263, 547, -263, -263, 117, -263, 194, 97, 824, 907,
+ 52, 9, 181, 181, 2, 2, 2, 2, 181, 181,
+ 2, 2, 2, 2, -263, 907, -263, -263, 17, 195,
+ -263, -263, 907, -263, 111, -263, 907, -263, 54, -263,
+ 4, 55, 59, -27, 61, -29, -29, -263, -263, -29,
+ 1014, -29, -27, -263, -29, -263, -263, 907, -263, 56,
+ -27, 1014, -263, -263, -263, 42, 47, -263, 1014, 1014,
+ 63, 124, 1014, 1014, 680, 875, -263, -263, -263, -29,
+ 907, -263, -263, -263, 616, 547, -27, -263, -263, 907,
+ -27, -263, 23, 389, -29, 792, 69, 389, 389, 106,
+ -25, -263, 56, -263, 792, 125, -263, -263, -263, -263,
+ -263, -263, -27, -263, 43, -263, -27, -27, 72, 135,
+ -27, 588, -263, -263, 680, -263, -14, 680, 1014, 42,
+ 736, 792, 1014, 123, -263, -263, 389, -27, 306, -27,
+ 44, 958, -27, -27, 32, -27, 680, -27, 931, -263,
+ 680, 82, -263, 91, 102, -263, -263, -263, 931, 42,
+ -263, -263, -263, -263, 139, 158, -263, 102, -263, -27,
+ 42, -27, -263, -263, -27, -263, -27, 680, -263, 435,
+ 680, -263, 491, -263
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -221, -221, -221, -221, -221, 169, -221, -221, -221, -221,
- -85, -221, -221, -173, -39, -169, -221, -184, -221, -220,
- -221, -221, -221, -221, -221, -221, -221, -221, -221, 5,
- -7, -221, -221, -221, 13, -35, -23, 73, -221, -221,
- -221, -56, 128, -221, 178, 90, -15, -221, -221, -24,
- -192, 55, -221, 127, -69, -151
+ -263, -263, -263, -263, -263, 145, -263, -263, -263, -263,
+ -111, -263, -263, -186, 114, -167, -263, -193, -263, -262,
+ -263, -263, -263, -263, -263, -263, -263, -263, -263, -2,
+ -7, -263, -263, -263, -13, -47, -19, -4, -263, -263,
+ -263, -81, 187, -263, 157, -263, 160, 51, 64, -263,
+ -263, -28, -214, 78, -263, 132, -106, -187
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -93
+#define YYTABLE_NINF -95
static const yytype_int16 yytable[] =
{
- 33, 45, 46, 47, 58, 65, 65, 51, 51, 209,
- 51, 56, 1, 112, 113, 225, -93, 231, 1, 103,
- 51, 187, 276, 69, 188, 243, 1, 234, -93, 223,
- 235, 194, 96, 97, 64, 5, 10, 118, 60, 216,
- 61, 6, 118, 118, 277, 278, 118, 41, 61, 215,
- 42, -92, 283, 124, 48, 49, -93, -93, 42, 126,
- 110, 87, 294, 76, 77, -56, 60, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 257,
- 34, -82, 259, 285, 119, -92, -56, 195, 225, 119,
- 119, 26, 127, 119, 255, 51, 119, 129, 225, 151,
- 59, 281, -92, 120, 135, 284, 152, -92, 249, -83,
- 148, 120, 157, 121, 102, 102, 115, 116, 158, 191,
- 45, 102, 102, 84, 85, 86, 303, 114, 87, 306,
- 200, 201, 305, 61, 202, 307, 205, 94, 95, 207,
- 192, 219, 196, 128, 197, 130, 131, 132, 133, 199,
- 50, 52, 134, 53, 220, 150, 66, 69, 242, 239,
- 198, 246, 70, 81, 227, 96, 97, 154, 155, 206,
- 98, 252, 149, 230, 64, 64, 253, 212, 64, 237,
- 64, 266, 176, 64, 292, 71, 72, 73, 104, 105,
- 296, 156, 290, 297, 74, 160, 238, 76, 77, 67,
- 265, 286, 287, 232, 55, 58, 218, 233, 64, 120,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 298, 64, 0, 186, 258, 106, 107, 248,
- 0, 0, 264, 250, 251, 0, 0, 254, 153, 21,
- 0, 51, 0, 0, 214, 288, 289, 204, 24, 0,
- 51, 0, 0, 0, 270, 0, 272, 0, 213, 274,
- 275, 0, 280, 0, 282, 217, 204, 0, 0, 221,
- 222, 0, 236, 0, 0, 0, 240, 241, 0, 0,
- 0, 102, 0, 0, 0, 0, 299, 0, 301, 0,
- 0, 302, 102, 304, 0, 0, 66, 66, 0, 0,
- 66, 245, 66, 0, 0, 66, 0, 0, 261, 0,
- 211, 0, 0, 0, 0, 269, 0, 0, 0, 273,
- 0, 0, 0, 0, 0, 260, 69, 262, 102, 0,
- 66, 70, 0, 0, 69, 0, 0, 0, 295, 70,
- 0, 0, 0, -78, 8, 66, 9, 10, 0, 300,
- 11, 12, 0, 244, 71, 72, 0, 0, 0, 13,
- 14, 0, 71, 72, 73, 0, 76, 77, 0, 0,
- 0, 74, 0, 0, 76, 77, 0, 15, 16, 0,
- 0, 263, 0, 17, 18, 19, 20, 1, 21, 271,
- 0, 61, 0, 81, 22, 23, 0, 24, 161, 25,
- 9, 10, 26, 27, 11, 12, 0, -9, 0, -9,
- 0, 0, 0, 0, 0, 162, 0, 163, 164, 165,
- -61, -61, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 0, 16, 175, 0, 0, 0, 17, 18, 19,
- 20, -61, 21, 82, 83, 84, 85, 86, 22, 23,
- 87, 24, 161, 25, 9, 10, 26, 27, 11, 12,
- 0, 60, -61, 61, 0, 0, 0, 0, 0, 162,
- 0, 163, 164, 165, -60, -60, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 0, 16, 175, 0, 0,
- 0, 17, 18, 19, 20, -60, 21, 88, 89, 90,
- 91, 92, 22, 23, 93, 24, 161, 25, 9, 10,
- 26, 27, 11, 12, 0, 60, -60, 61, 0, 0,
- 0, 0, 0, 162, 0, 163, 164, 165, 0, 0,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 0,
- 16, 175, 0, 0, 0, 17, 18, 19, 20, 69,
- 21, 0, 0, 0, 70, 69, 22, 23, 0, 24,
- 70, 25, 0, 0, 26, 27, 0, 0, 0, 60,
- 176, 61, 57, 0, 9, 10, 0, 71, 11, 12,
- 0, -91, 0, 71, 72, 73, 0, 0, 0, 76,
- 77, 0, 74, 0, 119, 76, 77, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 120, 0, 0,
- 0, 17, 18, 19, 20, -91, 21, 0, 0, 0,
- 0, 0, 22, 23, 0, 24, 0, 25, 0, 0,
- 26, 228, -91, 0, 9, 10, 0, -91, 11, 12,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
- 0, 163, 164, 165, 0, 0, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 0, 16, 175, 0, 0,
- 0, 17, 18, 19, 20, 0, 21, 0, 0, 0,
- 0, 0, 22, 23, 0, 24, 0, 25, 9, 10,
- 26, 27, 11, 12, 0, 60, 0, 61, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
- 9, 10, 0, 0, 11, 12, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 17, 18, 19, 20, 0,
- 21, 0, 0, 0, 0, 0, 22, 23, 0, 24,
- 0, 25, 16, 0, 26, 27, 0, 17, 18, 19,
- 20, 61, 21, 0, 0, 69, 0, 0, 22, 23,
- 70, 24, 0, 25, 0, 0, 26, 27, -91, 57,
- 0, 9, 10, 0, 0, 11, 12, 0, 0, 0,
- 0, 0, 0, 71, 72, 73, 0, 0, 0, 0,
- 0, 159, 74, 9, 10, 76, 77, 11, 12, 0,
- 0, 0, 0, 16, 0, 0, 0, 0, 17, 18,
- 19, 20, 0, 21, 0, 0, 0, 0, 0, 22,
- 23, 0, 24, 0, 25, 16, 0, 26, 27, 69,
- 17, 18, 19, 20, 70, 21, 0, 0, 0, 0,
- 0, 22, 23, 0, 24, 0, 25, 9, 224, 26,
- 27, 11, 12, 0, 0, 0, 0, 71, 72, 73,
- 0, 0, 0, 0, 0, 164, 74, 0, 75, 76,
- 77, 0, 0, 0, 171, 172, 0, 0, 0, 16,
- 0, 0, 0, 69, 17, 18, 19, 20, 70, 21,
- 0, 0, 0, 0, 0, 22, 23, 0, 24, 0,
- 25, 9, 10, 26, 27, 11, 12, 0, 0, 0,
- 0, 71, 72, 73, 0, 0, 0, 0, 0, 164,
- 74, 185, 0, 76, 77, 0, 0, 0, 171, 172,
- 0, 0, 0, 16, 0, 0, 0, 0, 17, 18,
- 19, 20, 0, 21, 0, 0, 0, 0, 0, 22,
- 23, 0, 24, 0, 25, 9, 10, 26, 27, 11,
- 12, 0, 0, 80, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 10, 0,
- 0, 11, 12, 0, 0, 0, 0, 16, 0, 0,
- 0, 0, 17, 18, 19, 20, 0, 21, 0, 0,
- 0, 0, 0, 22, 23, 0, 24, 0, 25, 16,
- 0, 26, 27, 0, 17, 18, 19, 20, 0, 21,
- 0, 0, 0, 0, 0, 22, 23, 0, 24, 0,
- 25, 9, 10, 26, 27, 11, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 36, 237, 215, 37, 71, 71, 118, 119, 200, 222,
+ 63, 124, 231, 10, 249, 1, 289, 1, 193, 1,
+ -94, 194, 124, 6, 240, 64, 300, 241, 109, 5,
+ 70, 102, 103, 282, 121, 122, 66, 229, 67, 47,
+ 67, 46, 108, 108, 124, 124, 47, 53, 221, 108,
+ 108, 9, 54, 66, 116, 120, -94, 283, 284, 130,
+ 125, -95, 93, 133, 261, 132, 201, 291, 141, 135,
+ 28, 125, 134, -94, 136, 137, 138, 139, -58, -94,
+ -84, 140, 50, 51, 52, 231, 157, 263, 56, 56,
+ 265, 56, 61, 125, 125, 231, 154, 125, 292, 293,
+ -58, 155, 56, -95, -95, 126, 75, 126, 255, 287,
+ -85, 76, 158, 290, 164, 197, 198, 202, 163, 309,
+ 162, 203, 312, 205, 166, 67, 75, 225, 226, 110,
+ 111, -95, 245, 248, 258, 252, 77, 78, 23, 259,
+ 311, 127, 272, 313, 294, 295, 302, 26, 82, 83,
+ 182, 298, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 72, 303, 204, 236, 82, 83,
+ 112, 113, 296, 70, 70, 212, 210, 70, 73, 70,
+ 56, 271, 70, 218, 156, 60, 224, 219, 100, 101,
+ 65, 304, 192, 0, 223, 210, 160, 161, 227, 228,
+ 0, 0, 0, 75, 0, 50, 244, 70, 76, 238,
+ 108, 55, 57, 239, 58, 63, 0, 0, 102, 103,
+ 0, 108, 70, 104, 0, 87, 0, 0, 264, 0,
+ 251, 0, 0, 77, 0, 254, 90, 91, 92, 256,
+ 257, 93, 270, 260, 0, 82, 83, 0, 88, 89,
+ 90, 91, 92, 0, 266, 93, 268, 108, 0, 0,
+ 276, 0, 278, 0, 0, 280, 281, 0, 286, 0,
+ 288, 0, 0, 220, 0, 142, 143, 144, 145, 146,
+ 147, 148, 149, 150, 151, 152, 153, 0, 0, 206,
+ 207, 0, 305, 208, 307, 211, 0, 308, 213, 310,
+ 0, 242, 0, 159, 0, 246, 247, 72, 72, 0,
+ 0, 72, 0, 72, 0, 75, 72, 0, 0, 0,
+ 76, 217, 0, 233, 0, 0, 56, 94, 95, 96,
+ 97, 98, 0, 0, 99, 56, 0, 267, 243, 0,
+ 0, 72, 0, 0, 275, 77, 78, 79, 279, 0,
+ 0, 0, 0, 0, 80, 0, 72, 82, 83, 0,
+ 0, 0, 0, 0, 250, -80, 8, 301, 9, 10,
+ 0, 0, 11, 12, 0, 67, 0, 0, 306, 0,
+ 0, 13, 14, 0, 0, 0, 0, 15, 16, 0,
+ 0, 0, 269, 0, 0, 0, 0, 0, 75, 0,
+ 277, 17, 18, 76, 0, 0, 0, 19, 20, 21,
+ 22, 1, 23, 0, 0, 0, 0, 0, 24, 25,
+ 0, 26, 0, 27, 0, 0, 28, 29, 77, 78,
+ 79, 30, -9, 0, -9, 0, 167, 80, 9, 10,
+ 82, 83, 11, 12, 0, 0, 0, 0, 0, 0,
+ 0, 0, 126, 168, 0, 169, 170, 0, 87, 171,
+ -63, -63, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 0, 18, 181, 0, 0, 0, 19, 20, 21,
+ 22, -63, 23, 0, 0, 0, 0, 0, 24, 25,
+ 0, 26, 167, 27, 9, 10, 28, 29, 11, 12,
+ 0, 30, 66, -63, 67, 0, 0, 0, 0, 168,
+ 0, 169, 170, 0, 0, 171, -62, -62, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 0, 18, 181,
+ 0, 0, 0, 19, 20, 21, 22, -62, 23, 0,
+ 0, 0, 0, 0, 24, 25, 0, 26, 167, 27,
+ 9, 10, 28, 29, 11, 12, 0, 30, 66, -62,
+ 67, 0, 0, 0, 0, 168, 0, 169, 170, 0,
+ 0, 171, 0, 0, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 0, 18, 181, 0, 0, 0, 19,
+ 20, 21, 22, 0, 23, 0, 0, 75, 0, 0,
+ 24, 25, 76, 26, 0, 27, 0, 0, 28, 29,
+ 0, 0, 0, 30, 66, 182, 67, 62, 0, 9,
+ 10, 0, 0, 11, 12, 0, -93, 77, 78, 79,
+ 0, 0, 0, 0, 0, 0, 80, 0, 125, 82,
+ 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 126, 0, 18, 0, 0, 0, 0, 19, 20,
+ 21, 22, -93, 23, 0, 0, 0, 0, 0, 24,
+ 25, 0, 26, 0, 27, 0, 0, 28, 234, -93,
+ 0, 0, 30, 9, 10, -93, 0, 11, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 168, 0,
+ 169, 170, 0, 0, 171, 0, 0, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 0, 18, 181, 0,
+ 0, 75, 19, 20, 21, 22, 76, 23, 0, 0,
+ 0, 0, 0, 24, 25, 0, 26, 0, 27, 9,
+ 10, 28, 29, 11, 12, 0, 30, 66, 0, 67,
+ 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
+ 80, 0, 81, 82, 83, 62, 0, 9, 10, 0,
+ 0, 11, 12, 18, 0, 0, 0, 0, 19, 20,
+ 21, 22, 0, 23, 0, 0, 0, 0, 0, 24,
+ 25, 0, 26, 62, 27, 9, 10, 28, 29, 11,
+ 12, 18, 30, 0, 0, 67, 19, 20, 21, 22,
+ 0, 23, 0, 0, 0, 0, 0, 24, 25, 0,
+ 26, 0, 27, 0, 0, 28, 29, -93, 0, 18,
+ 30, 0, 0, 75, 19, 20, 21, 22, 76, 23,
+ 0, 0, 0, 0, 0, 24, 25, 0, 26, 165,
+ 27, 9, 10, 28, 29, 11, 12, 0, 30, 0,
+ 0, 0, 0, 77, 78, 79, 0, 0, 0, 0,
+ 0, 0, 80, 191, 0, 82, 83, 0, 9, 230,
+ 0, 0, 11, 12, 0, 18, 0, 0, 0, 0,
+ 19, 20, 21, 22, 0, 23, 170, 0, 0, 0,
+ 0, 24, 25, 0, 26, 0, 27, 177, 178, 28,
+ 29, 0, 18, 0, 30, 0, 75, 19, 20, 21,
+ 22, 76, 23, 0, 0, 0, 0, 0, 24, 25,
+ 0, 26, 0, 27, 9, 10, 28, 29, 11, 12,
+ 0, 30, 0, 0, 0, 0, 77, 78, 79, 0,
+ 0, 0, 170, 0, 0, 80, 0, 0, 82, 83,
+ 0, 9, 10, 177, 178, 11, 12, 0, 18, 86,
+ 0, 0, 0, 19, 20, 21, 22, 0, 23, 0,
+ 0, 0, 0, 0, 24, 25, 0, 26, 0, 27,
+ 0, 0, 28, 29, 0, 18, 0, 30, 0, 0,
+ 19, 20, 21, 22, 0, 23, 0, 0, 0, 0,
+ 0, 24, 25, 0, 26, 0, 27, 9, 10, 28,
+ 29, 11, 12, 0, 30, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 18,
- 19, 20, 0, 21, 0, 0, 0, 0, 0, 22,
- 23, 0, 24, 0, 25, 0, 0, 26, 54
+ 0, 0, 9, 10, 0, 0, 11, 12, 0, 0,
+ 0, 18, 0, 0, 0, 0, 19, 20, 21, 22,
+ 0, 23, 0, 0, 0, 0, 0, 24, 25, 0,
+ 26, 0, 27, 0, 0, 28, 29, 0, 0, 0,
+ 30, 19, 20, 21, 22, 0, 23, 0, 0, 0,
+ 0, 0, 24, 25, 0, 26, 0, 27, 0, 0,
+ 28, 59, 0, 0, 0, 30
};
static const yytype_int16 yycheck[] =
{
- 7, 16, 17, 18, 27, 29, 30, 22, 23, 182,
- 25, 26, 44, 48, 49, 199, 9, 209, 44, 42,
- 35, 1, 1, 9, 4, 37, 44, 1, 14, 198,
- 4, 4, 40, 41, 29, 0, 4, 1, 64, 190,
- 66, 44, 1, 1, 23, 24, 1, 60, 66, 1,
- 62, 10, 272, 60, 60, 60, 49, 50, 62, 66,
- 49, 58, 282, 49, 50, 44, 64, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 248,
- 7, 61, 251, 275, 48, 44, 65, 60, 272, 48,
- 48, 59, 5, 48, 245, 110, 48, 4, 282, 63,
- 27, 270, 61, 61, 35, 274, 60, 66, 63, 61,
- 13, 61, 119, 58, 41, 42, 40, 41, 37, 4,
- 135, 48, 49, 53, 54, 55, 299, 54, 58, 302,
- 169, 170, 301, 66, 173, 304, 175, 12, 13, 178,
- 60, 62, 60, 70, 60, 72, 73, 74, 75, 60,
- 22, 23, 79, 25, 4, 100, 29, 9, 25, 61,
- 167, 10, 14, 35, 203, 40, 41, 112, 113, 176,
- 45, 60, 99, 208, 169, 170, 4, 184, 173, 218,
- 175, 19, 65, 178, 47, 37, 38, 39, 3, 4,
- 7, 118, 277, 7, 46, 122, 219, 49, 50, 30,
- 256, 7, 8, 210, 26, 228, 193, 214, 203, 61,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 291, 218, -1, 135, 250, 42, 43, 236,
- -1, -1, 255, 240, 241, -1, -1, 244, 110, 45,
- -1, 256, -1, -1, 189, 51, 52, 174, 54, -1,
- 265, -1, -1, -1, 261, -1, 263, -1, 185, 266,
- 267, -1, 269, -1, 271, 192, 193, -1, -1, 196,
- 197, -1, 217, -1, -1, -1, 221, 222, -1, -1,
- -1, 208, -1, -1, -1, -1, 293, -1, 295, -1,
- -1, 298, 219, 300, -1, -1, 169, 170, -1, -1,
- 173, 228, 175, -1, -1, 178, -1, -1, 253, -1,
- 183, -1, -1, -1, -1, 260, -1, -1, -1, 264,
- -1, -1, -1, -1, -1, 252, 9, 254, 255, -1,
- 203, 14, -1, -1, 9, -1, -1, -1, 283, 14,
- -1, -1, -1, 0, 1, 218, 3, 4, -1, 294,
- 7, 8, -1, 226, 37, 38, -1, -1, -1, 16,
- 17, -1, 37, 38, 39, -1, 49, 50, -1, -1,
- -1, 46, -1, -1, 49, 50, -1, 34, 35, -1,
- -1, 254, -1, 40, 41, 42, 43, 44, 45, 262,
- -1, 66, -1, 265, 51, 52, -1, 54, 1, 56,
- 3, 4, 59, 60, 7, 8, -1, 64, -1, 66,
- -1, -1, -1, -1, -1, 18, -1, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, -1, 35, 36, -1, -1, -1, 40, 41, 42,
- 43, 44, 45, 51, 52, 53, 54, 55, 51, 52,
- 58, 54, 1, 56, 3, 4, 59, 60, 7, 8,
- -1, 64, 65, 66, -1, -1, -1, -1, -1, 18,
- -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, -1, 35, 36, -1, -1,
- -1, 40, 41, 42, 43, 44, 45, 51, 52, 53,
- 54, 55, 51, 52, 58, 54, 1, 56, 3, 4,
- 59, 60, 7, 8, -1, 64, 65, 66, -1, -1,
- -1, -1, -1, 18, -1, 20, 21, 22, -1, -1,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
- 35, 36, -1, -1, -1, 40, 41, 42, 43, 9,
- 45, -1, -1, -1, 14, 9, 51, 52, -1, 54,
- 14, 56, -1, -1, 59, 60, -1, -1, -1, 64,
- 65, 66, 1, -1, 3, 4, -1, 37, 7, 8,
- -1, 10, -1, 37, 38, 39, -1, -1, -1, 49,
- 50, -1, 46, -1, 48, 49, 50, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 35, 61, -1, -1,
- -1, 40, 41, 42, 43, 44, 45, -1, -1, -1,
- -1, -1, 51, 52, -1, 54, -1, 56, -1, -1,
- 59, 60, 61, -1, 3, 4, -1, 66, 7, 8,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 18,
- -1, 20, 21, 22, -1, -1, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, -1, 35, 36, -1, -1,
- -1, 40, 41, 42, 43, -1, 45, -1, -1, -1,
- -1, -1, 51, 52, -1, 54, -1, 56, 3, 4,
- 59, 60, 7, 8, -1, 64, -1, 66, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
- 3, 4, -1, -1, 7, 8, -1, -1, -1, -1,
- 35, -1, -1, -1, -1, 40, 41, 42, 43, -1,
- 45, -1, -1, -1, -1, -1, 51, 52, -1, 54,
- -1, 56, 35, -1, 59, 60, -1, 40, 41, 42,
- 43, 66, 45, -1, -1, 9, -1, -1, 51, 52,
- 14, 54, -1, 56, -1, -1, 59, 60, 61, 1,
- -1, 3, 4, -1, -1, 7, 8, -1, -1, -1,
- -1, -1, -1, 37, 38, 39, -1, -1, -1, -1,
- -1, 1, 46, 3, 4, 49, 50, 7, 8, -1,
- -1, -1, -1, 35, -1, -1, -1, -1, 40, 41,
- 42, 43, -1, 45, -1, -1, -1, -1, -1, 51,
- 52, -1, 54, -1, 56, 35, -1, 59, 60, 9,
- 40, 41, 42, 43, 14, 45, -1, -1, -1, -1,
- -1, 51, 52, -1, 54, -1, 56, 3, 4, 59,
- 60, 7, 8, -1, -1, -1, -1, 37, 38, 39,
- -1, -1, -1, -1, -1, 21, 46, -1, 48, 49,
- 50, -1, -1, -1, 30, 31, -1, -1, -1, 35,
- -1, -1, -1, 9, 40, 41, 42, 43, 14, 45,
- -1, -1, -1, -1, -1, 51, 52, -1, 54, -1,
- 56, 3, 4, 59, 60, 7, 8, -1, -1, -1,
- -1, 37, 38, 39, -1, -1, -1, -1, -1, 21,
- 46, 47, -1, 49, 50, -1, -1, -1, 30, 31,
- -1, -1, -1, 35, -1, -1, -1, -1, 40, 41,
- 42, 43, -1, 45, -1, -1, -1, -1, -1, 51,
- 52, -1, 54, -1, 56, 3, 4, 59, 60, 7,
- 8, -1, -1, 11, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 3, 4, -1,
- -1, 7, 8, -1, -1, -1, -1, 35, -1, -1,
- -1, -1, 40, 41, 42, 43, -1, 45, -1, -1,
- -1, -1, -1, 51, 52, -1, 54, -1, 56, 35,
- -1, 59, 60, -1, 40, 41, 42, 43, -1, 45,
- -1, -1, -1, -1, -1, 51, 52, -1, 54, -1,
- 56, 3, 4, 59, 60, 7, 8, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, 215, 188, 7, 32, 33, 53, 54, 4, 196,
+ 29, 1, 205, 4, 39, 46, 278, 46, 1, 46,
+ 10, 4, 1, 46, 1, 29, 288, 4, 47, 0,
+ 32, 42, 43, 1, 42, 43, 67, 204, 69, 64,
+ 69, 62, 46, 47, 1, 1, 64, 62, 1, 53,
+ 54, 3, 62, 67, 51, 59, 46, 25, 26, 66,
+ 50, 9, 60, 5, 251, 72, 62, 281, 37, 4,
+ 61, 50, 76, 63, 78, 79, 80, 81, 46, 69,
+ 63, 85, 18, 19, 20, 278, 65, 254, 24, 25,
+ 257, 27, 28, 50, 50, 288, 13, 50, 7, 8,
+ 68, 105, 38, 51, 52, 63, 9, 63, 65, 276,
+ 63, 14, 62, 280, 39, 4, 62, 62, 125, 305,
+ 124, 62, 308, 62, 128, 69, 9, 64, 4, 3,
+ 4, 14, 63, 27, 62, 10, 39, 40, 47, 4,
+ 307, 63, 19, 310, 53, 54, 7, 56, 51, 52,
+ 68, 49, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 32, 7, 173, 214, 51, 52,
+ 44, 45, 283, 175, 176, 182, 180, 179, 33, 181,
+ 116, 262, 184, 190, 106, 28, 199, 191, 12, 13,
+ 30, 297, 141, -1, 198, 199, 118, 119, 202, 203,
+ -1, -1, -1, 9, -1, 141, 225, 209, 14, 216,
+ 214, 24, 25, 220, 27, 234, -1, -1, 42, 43,
+ -1, 225, 224, 47, -1, 38, -1, -1, 256, -1,
+ 234, -1, -1, 39, -1, 242, 55, 56, 57, 246,
+ 247, 60, 261, 250, -1, 51, 52, -1, 53, 54,
+ 55, 56, 57, -1, 258, 60, 260, 261, -1, -1,
+ 267, -1, 269, -1, -1, 272, 273, -1, 275, -1,
+ 277, -1, -1, 195, -1, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, -1, -1, 175,
+ 176, -1, 299, 179, 301, 181, -1, 304, 184, 306,
+ -1, 223, -1, 116, -1, 227, 228, 175, 176, -1,
+ -1, 179, -1, 181, -1, 9, 184, -1, -1, -1,
+ 14, 189, -1, 209, -1, -1, 262, 53, 54, 55,
+ 56, 57, -1, -1, 60, 271, -1, 259, 224, -1,
+ -1, 209, -1, -1, 266, 39, 40, 41, 270, -1,
+ -1, -1, -1, -1, 48, -1, 224, 51, 52, -1,
+ -1, -1, -1, -1, 232, 0, 1, 289, 3, 4,
+ -1, -1, 7, 8, -1, 69, -1, -1, 300, -1,
+ -1, 16, 17, -1, -1, -1, -1, 22, 23, -1,
+ -1, -1, 260, -1, -1, -1, -1, -1, 9, -1,
+ 268, 36, 37, 14, -1, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, -1, -1, -1, -1, 53, 54,
+ -1, 56, -1, 58, -1, -1, 61, 62, 39, 40,
+ 41, 66, 67, -1, 69, -1, 1, 48, 3, 4,
+ 51, 52, 7, 8, -1, -1, -1, -1, -1, -1,
+ -1, -1, 63, 18, -1, 20, 21, -1, 271, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, -1, 37, 38, -1, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, -1, -1, -1, -1, 53, 54,
+ -1, 56, 1, 58, 3, 4, 61, 62, 7, 8,
+ -1, 66, 67, 68, 69, -1, -1, -1, -1, 18,
+ -1, 20, 21, -1, -1, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, -1, 37, 38,
+ -1, -1, -1, 42, 43, 44, 45, 46, 47, -1,
+ -1, -1, -1, -1, 53, 54, -1, 56, 1, 58,
+ 3, 4, 61, 62, 7, 8, -1, 66, 67, 68,
+ 69, -1, -1, -1, -1, 18, -1, 20, 21, -1,
+ -1, 24, -1, -1, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, -1, 37, 38, -1, -1, -1, 42,
+ 43, 44, 45, -1, 47, -1, -1, 9, -1, -1,
+ 53, 54, 14, 56, -1, 58, -1, -1, 61, 62,
+ -1, -1, -1, 66, 67, 68, 69, 1, -1, 3,
+ 4, -1, -1, 7, 8, -1, 10, 39, 40, 41,
+ -1, -1, -1, -1, -1, -1, 48, -1, 50, 51,
+ 52, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 63, -1, 37, -1, -1, -1, -1, 42, 43,
+ 44, 45, 46, 47, -1, -1, -1, -1, -1, 53,
+ 54, -1, 56, -1, 58, -1, -1, 61, 62, 63,
+ -1, -1, 66, 3, 4, 69, -1, 7, 8, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 18, -1,
+ 20, 21, -1, -1, 24, -1, -1, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, -1, 37, 38, -1,
+ -1, 9, 42, 43, 44, 45, 14, 47, -1, -1,
+ -1, -1, -1, 53, 54, -1, 56, -1, 58, 3,
+ 4, 61, 62, 7, 8, -1, 66, 67, -1, 69,
+ -1, 39, 40, 41, -1, -1, -1, -1, -1, -1,
+ 48, -1, 50, 51, 52, 1, -1, 3, 4, -1,
+ -1, 7, 8, 37, -1, -1, -1, -1, 42, 43,
+ 44, 45, -1, 47, -1, -1, -1, -1, -1, 53,
+ 54, -1, 56, 1, 58, 3, 4, 61, 62, 7,
+ 8, 37, 66, -1, -1, 69, 42, 43, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, 53, 54, -1,
+ 56, -1, 58, -1, -1, 61, 62, 63, -1, 37,
+ 66, -1, -1, 9, 42, 43, 44, 45, 14, 47,
+ -1, -1, -1, -1, -1, 53, 54, -1, 56, 1,
+ 58, 3, 4, 61, 62, 7, 8, -1, 66, -1,
+ -1, -1, -1, 39, 40, 41, -1, -1, -1, -1,
+ -1, -1, 48, 49, -1, 51, 52, -1, 3, 4,
+ -1, -1, 7, 8, -1, 37, -1, -1, -1, -1,
+ 42, 43, 44, 45, -1, 47, 21, -1, -1, -1,
+ -1, 53, 54, -1, 56, -1, 58, 32, 33, 61,
+ 62, -1, 37, -1, 66, -1, 9, 42, 43, 44,
+ 45, 14, 47, -1, -1, -1, -1, -1, 53, 54,
+ -1, 56, -1, 58, 3, 4, 61, 62, 7, 8,
+ -1, 66, -1, -1, -1, -1, 39, 40, 41, -1,
+ -1, -1, 21, -1, -1, 48, -1, -1, 51, 52,
+ -1, 3, 4, 32, 33, 7, 8, -1, 37, 11,
+ -1, -1, -1, 42, 43, 44, 45, -1, 47, -1,
+ -1, -1, -1, -1, 53, 54, -1, 56, -1, 58,
+ -1, -1, 61, 62, -1, 37, -1, 66, -1, -1,
+ 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, 53, 54, -1, 56, -1, 58, 3, 4, 61,
+ 62, 7, 8, -1, 66, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 40, 41,
- 42, 43, -1, 45, -1, -1, -1, -1, -1, 51,
- 52, -1, 54, -1, 56, -1, -1, 59, 60
+ -1, -1, 3, 4, -1, -1, 7, 8, -1, -1,
+ -1, 37, -1, -1, -1, -1, 42, 43, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, 53, 54, -1,
+ 56, -1, 58, -1, -1, 61, 62, -1, -1, -1,
+ 66, 42, 43, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, 53, 54, -1, 56, -1, 58, -1, -1,
+ 61, 62, -1, -1, -1, 66
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 44, 68, 96, 97, 0, 44, 69, 1, 3,
- 4, 7, 8, 16, 17, 34, 35, 40, 41, 42,
- 43, 45, 51, 52, 54, 56, 59, 60, 70, 71,
- 75, 77, 79, 97, 104, 108, 109, 110, 111, 113,
- 114, 60, 62, 76, 112, 113, 113, 113, 60, 60,
- 109, 113, 109, 109, 60, 111, 113, 1, 103, 104,
- 64, 66, 72, 81, 96, 116, 120, 72, 78, 9,
- 14, 37, 38, 39, 46, 48, 49, 50, 106, 107,
- 11, 109, 51, 52, 53, 54, 55, 58, 51, 52,
- 53, 54, 55, 58, 12, 13, 40, 41, 45, 105,
- 102, 103, 104, 103, 3, 4, 42, 43, 73, 74,
- 49, 98, 102, 102, 104, 40, 41, 115, 1, 48,
- 61, 118, 122, 118, 97, 80, 97, 5, 104, 4,
- 104, 104, 104, 104, 104, 35, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 13, 104,
- 118, 63, 60, 109, 118, 118, 104, 97, 37, 1,
- 104, 1, 18, 20, 21, 22, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 36, 65, 82, 84, 91,
- 95, 104, 116, 117, 120, 47, 112, 1, 4, 99,
- 100, 4, 60, 83, 4, 60, 60, 60, 97, 60,
- 81, 81, 81, 101, 104, 81, 97, 81, 85, 80,
- 119, 120, 97, 104, 118, 1, 122, 104, 101, 62,
- 4, 104, 104, 82, 4, 84, 86, 81, 60, 92,
- 102, 117, 97, 97, 1, 4, 118, 81, 103, 61,
- 118, 118, 25, 37, 120, 104, 10, 93, 97, 63,
- 97, 97, 60, 4, 97, 122, 94, 82, 116, 82,
- 104, 118, 104, 120, 103, 108, 19, 87, 88, 118,
- 97, 120, 97, 118, 97, 97, 1, 23, 24, 89,
- 97, 82, 97, 86, 82, 117, 7, 8, 51, 52,
- 77, 90, 47, 121, 86, 118, 7, 7, 121, 97,
- 118, 97, 97, 80, 97, 82, 80, 82
+ 0, 46, 71, 99, 100, 0, 46, 72, 1, 3,
+ 4, 7, 8, 16, 17, 22, 23, 36, 37, 42,
+ 43, 44, 45, 47, 53, 54, 56, 58, 61, 62,
+ 66, 73, 74, 78, 80, 82, 100, 107, 111, 112,
+ 113, 114, 115, 116, 118, 119, 62, 64, 79, 117,
+ 118, 118, 118, 62, 62, 112, 118, 112, 112, 62,
+ 114, 118, 1, 106, 107, 116, 67, 69, 75, 84,
+ 99, 121, 125, 75, 81, 9, 14, 39, 40, 41,
+ 48, 50, 51, 52, 109, 110, 11, 112, 53, 54,
+ 55, 56, 57, 60, 53, 54, 55, 56, 57, 60,
+ 12, 13, 42, 43, 47, 108, 105, 106, 107, 106,
+ 3, 4, 44, 45, 76, 77, 51, 101, 105, 105,
+ 107, 42, 43, 120, 1, 50, 63, 123, 127, 123,
+ 100, 83, 100, 5, 107, 4, 107, 107, 107, 107,
+ 107, 37, 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 13, 107, 123, 65, 62, 112,
+ 123, 123, 107, 100, 39, 1, 107, 1, 18, 20,
+ 21, 24, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 38, 68, 85, 87, 94, 98, 107, 121, 122,
+ 125, 49, 117, 1, 4, 102, 103, 4, 62, 86,
+ 4, 62, 62, 62, 100, 62, 84, 84, 84, 104,
+ 107, 84, 100, 84, 88, 83, 124, 125, 100, 107,
+ 123, 1, 127, 107, 104, 64, 4, 107, 107, 85,
+ 4, 87, 89, 84, 62, 95, 105, 122, 100, 100,
+ 1, 4, 123, 84, 106, 63, 123, 123, 27, 39,
+ 125, 107, 10, 96, 100, 65, 100, 100, 62, 4,
+ 100, 127, 97, 85, 121, 85, 107, 123, 107, 125,
+ 106, 111, 19, 90, 91, 123, 100, 125, 100, 123,
+ 100, 100, 1, 25, 26, 92, 100, 85, 100, 89,
+ 85, 122, 7, 8, 53, 54, 80, 93, 49, 126,
+ 89, 123, 7, 7, 126, 100, 123, 100, 100, 83,
+ 100, 85, 83, 85
};
#define yyerrok (yyerrstatus = 0)
@@ -1155,18 +1177,9 @@ static const yytype_uint8 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. However,
- YYFAIL appears to be in use. Nevertheless, it is formally deprecated
- in Bison 2.4.2's NEWS entry, where a plan to phase it out is
- discussed. */
+ Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
-#if defined YYFAIL
- /* This is here to suppress warnings from the GCC cpp's
- -Wunused-macros. Normally we don't worry about that warning, but
- some users do, and we want to make it easy for users to remove
- YYFAIL uses, which will produce warnings from Bison 2.5. */
-#endif
#define YYRECOVERING() (!!yyerrstatus)
@@ -1223,7 +1236,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+# if YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@@ -1962,8 +1975,8 @@ yyreduce:
{
case 2:
-/* Line 1464 of yacc.c */
-#line 182 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 188 "awkgram.y"
{
check_funcs();
}
@@ -1971,20 +1984,20 @@ yyreduce:
case 4:
-/* Line 1464 of yacc.c */
-#line 190 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 196 "awkgram.y"
{
- begin_or_end_rule = parsing_end_rule = FALSE;
+ beginfile_or_endfile_rule = begin_or_end_rule = parsing_end_rule = FALSE;
yyerrok;
}
break;
case 5:
-/* Line 1464 of yacc.c */
-#line 195 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 201 "awkgram.y"
{
- begin_or_end_rule = parsing_end_rule = FALSE;
+ beginfile_or_endfile_rule = begin_or_end_rule = parsing_end_rule = FALSE;
/*
* If errors, give up, don't produce an infinite
* stream of syntax error messages.
@@ -1995,8 +2008,8 @@ yyreduce:
case 6:
-/* Line 1464 of yacc.c */
-#line 207 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 213 "awkgram.y"
{
(yyvsp[(1) - (2)].nodeval)->rnode = (yyvsp[(2) - (2)].nodeval);
}
@@ -2004,8 +2017,8 @@ yyreduce:
case 7:
-/* Line 1464 of yacc.c */
-#line 211 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 217 "awkgram.y"
{
if ((yyvsp[(1) - (2)].nodeval)->lnode != NULL) {
/* pattern rule with non-empty pattern */
@@ -2015,6 +2028,9 @@ yyreduce:
if (begin_or_end_rule)
msg(_("%s blocks must have an action part"),
(parsing_end_rule ? "END" : "BEGIN"));
+ else if (beginfile_or_endfile_rule)
+ msg(_("%s blocks must have an action part"),
+ (parsing_endfile_rule ? "ENDFILE" : "BEGINFILE"));
else
msg(_("each rule must have a pattern or an action part"));
errcount++;
@@ -2024,8 +2040,8 @@ yyreduce:
case 8:
-/* Line 1464 of yacc.c */
-#line 226 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 235 "awkgram.y"
{
can_return = FALSE;
if ((yyvsp[(1) - (2)].nodeval))
@@ -2036,8 +2052,8 @@ yyreduce:
case 9:
-/* Line 1464 of yacc.c */
-#line 236 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 245 "awkgram.y"
{
(yyval.nodeval) = append_pattern(&expression_value, (NODE *) NULL);
}
@@ -2045,8 +2061,8 @@ yyreduce:
case 10:
-/* Line 1464 of yacc.c */
-#line 240 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 249 "awkgram.y"
{
(yyval.nodeval) = append_pattern(&expression_value, (yyvsp[(1) - (1)].nodeval));
}
@@ -2054,8 +2070,8 @@ yyreduce:
case 11:
-/* Line 1464 of yacc.c */
-#line 244 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 253 "awkgram.y"
{
NODE *r;
@@ -2069,8 +2085,8 @@ yyreduce:
case 12:
-/* Line 1464 of yacc.c */
-#line 254 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 263 "awkgram.y"
{
static int begin_seen = 0;
if (do_lint_old && ++begin_seen == 2)
@@ -2083,8 +2099,8 @@ yyreduce:
case 13:
-/* Line 1464 of yacc.c */
-#line 263 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 272 "awkgram.y"
{
static int end_seen = 0;
if (do_lint_old && ++end_seen == 2)
@@ -2097,29 +2113,49 @@ yyreduce:
case 14:
-/* Line 1464 of yacc.c */
-#line 275 "awkgram.y"
- { (yyval.nodeval) = (yyvsp[(2) - (5)].nodeval); }
+/* Line 1455 of yacc.c */
+#line 281 "awkgram.y"
+ {
+ beginfile_or_endfile_rule = TRUE;
+ (yyval.nodeval) = append_pattern(&beginfile_block, (NODE *) NULL);
+ }
break;
case 15:
-/* Line 1464 of yacc.c */
-#line 280 "awkgram.y"
- { (yyval.sval) = (yyvsp[(1) - (1)].sval); }
+/* Line 1455 of yacc.c */
+#line 286 "awkgram.y"
+ {
+ beginfile_or_endfile_rule = parsing_endfile_rule = TRUE;
+ (yyval.nodeval) = append_pattern(&endfile_block, (NODE *) NULL);
+ }
break;
case 16:
-/* Line 1464 of yacc.c */
-#line 282 "awkgram.y"
- { (yyval.sval) = (yyvsp[(1) - (1)].sval); }
+/* Line 1455 of yacc.c */
+#line 294 "awkgram.y"
+ { (yyval.nodeval) = (yyvsp[(2) - (5)].nodeval); }
break;
case 17:
-/* Line 1464 of yacc.c */
-#line 284 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 299 "awkgram.y"
+ { (yyval.sval) = (yyvsp[(1) - (1)].sval); }
+ break;
+
+ case 18:
+
+/* Line 1455 of yacc.c */
+#line 301 "awkgram.y"
+ { (yyval.sval) = (yyvsp[(1) - (1)].sval); }
+ break;
+
+ case 19:
+
+/* Line 1455 of yacc.c */
+#line 303 "awkgram.y"
{
yyerror(_("`%s' is a built-in function, it cannot be redefined"),
tokstart);
@@ -2129,19 +2165,19 @@ yyreduce:
}
break;
- case 20:
+ case 22:
-/* Line 1464 of yacc.c */
-#line 300 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 319 "awkgram.y"
{
param_counter = 0;
}
break;
- case 21:
+ case 23:
-/* Line 1464 of yacc.c */
-#line 304 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 323 "awkgram.y"
{
NODE *t;
@@ -2155,17 +2191,17 @@ yyreduce:
}
break;
- case 22:
+ case 24:
-/* Line 1464 of yacc.c */
-#line 323 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 342 "awkgram.y"
{ ++want_regexp; }
break;
- case 23:
+ case 25:
-/* Line 1464 of yacc.c */
-#line 325 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 344 "awkgram.y"
{
NODE *n;
size_t len = strlen((yyvsp[(3) - (3)].sval));
@@ -2188,17 +2224,17 @@ yyreduce:
}
break;
- case 26:
+ case 28:
-/* Line 1464 of yacc.c */
-#line 354 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 373 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 27:
+ case 29:
-/* Line 1464 of yacc.c */
-#line 356 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 375 "awkgram.y"
{
if ((yyvsp[(2) - (2)].nodeval) == NULL)
(yyval.nodeval) = (yyvsp[(1) - (2)].nodeval);
@@ -2218,59 +2254,59 @@ yyreduce:
}
break;
- case 28:
+ case 30:
-/* Line 1464 of yacc.c */
-#line 374 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 393 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 31:
+ case 33:
-/* Line 1464 of yacc.c */
-#line 384 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 403 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 32:
+ case 34:
-/* Line 1464 of yacc.c */
-#line 386 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 405 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(2) - (3)].nodeval); }
break;
- case 33:
+ case 35:
-/* Line 1464 of yacc.c */
-#line 388 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 407 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 34:
+ case 36:
-/* Line 1464 of yacc.c */
-#line 390 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 409 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(3) - (9)].nodeval), Node_K_switch, (yyvsp[(7) - (9)].nodeval)); }
break;
- case 35:
+ case 37:
-/* Line 1464 of yacc.c */
-#line 392 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 411 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(3) - (6)].nodeval), Node_K_while, (yyvsp[(6) - (6)].nodeval)); }
break;
- case 36:
+ case 38:
-/* Line 1464 of yacc.c */
-#line 394 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 413 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(6) - (8)].nodeval), Node_K_do, (yyvsp[(3) - (8)].nodeval)); }
break;
- case 37:
+ case 39:
-/* Line 1464 of yacc.c */
-#line 396 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 415 "awkgram.y"
{
/*
* Efficiency hack. Recognize the special case of
@@ -2316,57 +2352,60 @@ yyreduce:
}
break;
- case 38:
+ case 40:
-/* Line 1464 of yacc.c */
-#line 440 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 459 "awkgram.y"
{
(yyval.nodeval) = node((yyvsp[(12) - (12)].nodeval), Node_K_for, (NODE *) make_for_loop((yyvsp[(3) - (12)].nodeval), (yyvsp[(6) - (12)].nodeval), (yyvsp[(9) - (12)].nodeval)));
}
break;
- case 39:
+ case 41:
-/* Line 1464 of yacc.c */
-#line 444 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 463 "awkgram.y"
{
(yyval.nodeval) = node((yyvsp[(11) - (11)].nodeval), Node_K_for,
(NODE *) make_for_loop((yyvsp[(3) - (11)].nodeval), (NODE *) NULL, (yyvsp[(8) - (11)].nodeval)));
}
break;
- case 40:
+ case 42:
-/* Line 1464 of yacc.c */
-#line 450 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 469 "awkgram.y"
{ (yyval.nodeval) = node((NODE *) NULL, Node_K_break, (NODE *) NULL); }
break;
- case 41:
+ case 43:
-/* Line 1464 of yacc.c */
-#line 453 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 472 "awkgram.y"
{ (yyval.nodeval) = node((NODE *) NULL, Node_K_continue, (NODE *) NULL); }
break;
- case 42:
+ case 44:
-/* Line 1464 of yacc.c */
-#line 455 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 474 "awkgram.y"
{ NODETYPE type;
if (begin_or_end_rule)
yyerror(_("`%s' used in %s action"), "next",
(parsing_end_rule ? "END" : "BEGIN"));
+ else if (beginfile_or_endfile_rule)
+ yyerror(_("`%s' used in %s action"), "next",
+ (parsing_endfile_rule ? "ENDFILE" : "BEGINFILE"));
type = Node_K_next;
(yyval.nodeval) = node((NODE *) NULL, type, (NODE *) NULL);
}
break;
- case 43:
+ case 45:
-/* Line 1464 of yacc.c */
-#line 464 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 486 "awkgram.y"
{
static short warned = FALSE;
@@ -2388,48 +2427,62 @@ yyreduce:
error(_("`%s' used in %s action"), "nextfile",
(parsing_end_rule ? "END" : "BEGIN"));
}
+#if 0
+ else if (beginfile_or_endfile_rule) {
+ /* same thing */
+ errcount++;
+ error(_("`%s' used in %s action"), "nextfile",
+ (parsing_endfile_rule ? "END" : "BEGIN"));
+ }
+#endif
+ else if (parsing_endfile_rule) {
+ /* same thing */
+ errcount++;
+ error(_("`%s' used in %s action"), "nextfile",
+ (parsing_endfile_rule ? "ENDFILE" : "BEGINFILE"));
+ }
(yyval.nodeval) = node((NODE *) NULL, Node_K_nextfile, (NODE *) NULL);
}
break;
- case 44:
+ case 46:
-/* Line 1464 of yacc.c */
-#line 488 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 524 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(2) - (3)].nodeval), Node_K_exit, (NODE *) NULL); }
break;
- case 45:
+ case 47:
-/* Line 1464 of yacc.c */
-#line 490 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 526 "awkgram.y"
{
if (! can_return)
yyerror(_("`return' used outside function context"));
}
break;
- case 46:
+ case 48:
-/* Line 1464 of yacc.c */
-#line 495 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 531 "awkgram.y"
{
(yyval.nodeval) = node((yyvsp[(3) - (4)].nodeval) == NULL ? Nnull_string : (yyvsp[(3) - (4)].nodeval),
Node_K_return, (NODE *) NULL);
}
break;
- case 48:
+ case 50:
-/* Line 1464 of yacc.c */
-#line 511 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 547 "awkgram.y"
{ in_print = TRUE; in_parens = 0; }
break;
- case 49:
+ case 51:
-/* Line 1464 of yacc.c */
-#line 512 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 548 "awkgram.y"
{
/*
* Optimization: plain `print' has no expression list, so $3 is null.
@@ -2462,17 +2515,17 @@ yyreduce:
}
break;
- case 50:
+ case 52:
-/* Line 1464 of yacc.c */
-#line 543 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 579 "awkgram.y"
{ (yyval.nodeval) = node(variable((yyvsp[(2) - (5)].sval), CAN_FREE, Node_var_array), Node_K_delete, (yyvsp[(4) - (5)].nodeval)); }
break;
- case 51:
+ case 53:
-/* Line 1464 of yacc.c */
-#line 545 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 581 "awkgram.y"
{
static short warned = FALSE;
@@ -2492,10 +2545,10 @@ yyreduce:
}
break;
- case 52:
+ case 54:
-/* Line 1464 of yacc.c */
-#line 563 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 599 "awkgram.y"
{
/*
* this is for tawk compatibility. maybe the warnings
@@ -2519,31 +2572,31 @@ yyreduce:
}
break;
- case 53:
+ case 55:
-/* Line 1464 of yacc.c */
-#line 585 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 621 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 54:
+ case 56:
-/* Line 1464 of yacc.c */
-#line 590 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 626 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 55:
+ case 57:
-/* Line 1464 of yacc.c */
-#line 592 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 628 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 56:
+ case 58:
-/* Line 1464 of yacc.c */
-#line 597 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 633 "awkgram.y"
{
if ((yyvsp[(1) - (1)].nodeval) == NULL) {
(yyval.nodeval) = NULL;
@@ -2594,17 +2647,17 @@ yyreduce:
}
break;
- case 57:
+ case 59:
-/* Line 1464 of yacc.c */
-#line 649 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 685 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 58:
+ case 60:
-/* Line 1464 of yacc.c */
-#line 651 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 687 "awkgram.y"
{
if ((yyvsp[(2) - (2)].nodeval) == NULL)
(yyval.nodeval) = (yyvsp[(1) - (2)].nodeval);
@@ -2623,76 +2676,76 @@ yyreduce:
}
break;
- case 59:
+ case 61:
-/* Line 1464 of yacc.c */
-#line 668 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 704 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 60:
+ case 62:
-/* Line 1464 of yacc.c */
-#line 673 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 709 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(2) - (5)].nodeval), Node_K_case, (yyvsp[(5) - (5)].nodeval)); }
break;
- case 61:
+ case 63:
-/* Line 1464 of yacc.c */
-#line 675 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 711 "awkgram.y"
{ (yyval.nodeval) = node((NODE *) NULL, Node_K_default, (yyvsp[(4) - (4)].nodeval)); }
break;
- case 62:
+ case 64:
-/* Line 1464 of yacc.c */
-#line 680 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 716 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 63:
+ case 65:
-/* Line 1464 of yacc.c */
-#line 682 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 718 "awkgram.y"
{
(yyvsp[(2) - (2)].nodeval)->numbr = -(force_number((yyvsp[(2) - (2)].nodeval)));
(yyval.nodeval) = (yyvsp[(2) - (2)].nodeval);
}
break;
- case 64:
+ case 66:
-/* Line 1464 of yacc.c */
-#line 687 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 723 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(2) - (2)].nodeval); }
break;
- case 65:
+ case 67:
-/* Line 1464 of yacc.c */
-#line 689 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 725 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 66:
+ case 68:
-/* Line 1464 of yacc.c */
-#line 691 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 727 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 70:
+ case 72:
-/* Line 1464 of yacc.c */
-#line 706 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 742 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(2) - (5)].nodeval), Node_expression_list, (yyvsp[(4) - (5)].nodeval)); }
break;
- case 71:
+ case 73:
-/* Line 1464 of yacc.c */
-#line 711 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 747 "awkgram.y"
{
in_print = FALSE;
in_parens = 0;
@@ -2700,17 +2753,17 @@ yyreduce:
}
break;
- case 72:
+ case 74:
-/* Line 1464 of yacc.c */
-#line 716 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 752 "awkgram.y"
{ in_print = FALSE; in_parens = 0; }
break;
- case 73:
+ case 75:
-/* Line 1464 of yacc.c */
-#line 717 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 753 "awkgram.y"
{
(yyval.nodeval) = node((yyvsp[(3) - (3)].nodeval), (yyvsp[(1) - (3)].nodetypeval), (NODE *) NULL);
if ((yyvsp[(1) - (3)].nodetypeval) == Node_redirect_twoway
@@ -2721,126 +2774,126 @@ yyreduce:
}
break;
- case 74:
+ case 76:
-/* Line 1464 of yacc.c */
-#line 729 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 765 "awkgram.y"
{
(yyval.nodeval) = node((yyvsp[(3) - (6)].nodeval), Node_K_if,
node((yyvsp[(6) - (6)].nodeval), Node_if_branches, (NODE *) NULL));
}
break;
- case 75:
+ case 77:
-/* Line 1464 of yacc.c */
-#line 735 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 771 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(3) - (9)].nodeval), Node_K_if,
node((yyvsp[(6) - (9)].nodeval), Node_if_branches, (yyvsp[(9) - (9)].nodeval))); }
break;
- case 80:
+ case 82:
-/* Line 1464 of yacc.c */
-#line 751 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 787 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 81:
+ case 83:
-/* Line 1464 of yacc.c */
-#line 753 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 789 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(2) - (2)].nodeval), Node_redirect_input, (NODE *) NULL); }
break;
- case 82:
+ case 84:
-/* Line 1464 of yacc.c */
-#line 758 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 794 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 83:
+ case 85:
-/* Line 1464 of yacc.c */
-#line 760 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 796 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 84:
+ case 86:
-/* Line 1464 of yacc.c */
-#line 765 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 801 "awkgram.y"
{ (yyval.nodeval) = make_param((yyvsp[(1) - (1)].sval)); }
break;
- case 85:
+ case 87:
-/* Line 1464 of yacc.c */
-#line 767 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 803 "awkgram.y"
{ (yyval.nodeval) = append_right((yyvsp[(1) - (3)].nodeval), make_param((yyvsp[(3) - (3)].sval))); yyerrok; }
break;
- case 86:
+ case 88:
-/* Line 1464 of yacc.c */
-#line 769 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 805 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 87:
+ case 89:
-/* Line 1464 of yacc.c */
-#line 771 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 807 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 88:
+ case 90:
-/* Line 1464 of yacc.c */
-#line 773 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 809 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 89:
+ case 91:
-/* Line 1464 of yacc.c */
-#line 779 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 815 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 90:
+ case 92:
-/* Line 1464 of yacc.c */
-#line 781 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 817 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 91:
+ case 93:
-/* Line 1464 of yacc.c */
-#line 786 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 822 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 92:
+ case 94:
-/* Line 1464 of yacc.c */
-#line 788 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 824 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 93:
+ case 95:
-/* Line 1464 of yacc.c */
-#line 793 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 829 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (1)].nodeval), Node_expression_list, (NODE *) NULL); }
break;
- case 94:
+ case 96:
-/* Line 1464 of yacc.c */
-#line 795 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 831 "awkgram.y"
{
(yyval.nodeval) = append_right((yyvsp[(1) - (3)].nodeval),
node((yyvsp[(3) - (3)].nodeval), Node_expression_list, (NODE *) NULL));
@@ -2848,38 +2901,38 @@ yyreduce:
}
break;
- case 95:
+ case 97:
-/* Line 1464 of yacc.c */
-#line 801 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 837 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 96:
+ case 98:
-/* Line 1464 of yacc.c */
-#line 803 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 839 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 97:
+ case 99:
-/* Line 1464 of yacc.c */
-#line 805 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 841 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 98:
+ case 100:
-/* Line 1464 of yacc.c */
-#line 807 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 843 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 99:
+ case 101:
-/* Line 1464 of yacc.c */
-#line 812 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 848 "awkgram.y"
{
if (do_lint && (yyvsp[(3) - (3)].nodeval)->type == Node_regex)
lintwarn(_("regular expression on right of assignment"));
@@ -2887,24 +2940,24 @@ yyreduce:
}
break;
- case 100:
+ case 102:
-/* Line 1464 of yacc.c */
-#line 818 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 854 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_and, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 101:
+ case 103:
-/* Line 1464 of yacc.c */
-#line 820 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 856 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_or, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 102:
+ case 104:
-/* Line 1464 of yacc.c */
-#line 822 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 858 "awkgram.y"
{
if ((yyvsp[(1) - (3)].nodeval)->type == Node_regex)
warning(_("regular expression on left of `~' or `!~' operator"));
@@ -2912,10 +2965,10 @@ yyreduce:
}
break;
- case 103:
+ case 105:
-/* Line 1464 of yacc.c */
-#line 828 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 864 "awkgram.y"
{
if (do_lint_old)
warning(_("old awk does not support the keyword `in' except after `for'"));
@@ -2923,10 +2976,10 @@ yyreduce:
}
break;
- case 104:
+ case 106:
-/* Line 1464 of yacc.c */
-#line 834 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 870 "awkgram.y"
{
if (do_lint && (yyvsp[(3) - (3)].nodeval)->type == Node_regex)
lintwarn(_("regular expression on right of comparison"));
@@ -2934,154 +2987,169 @@ yyreduce:
}
break;
- case 105:
+ case 107:
-/* Line 1464 of yacc.c */
-#line 840 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 876 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (5)].nodeval), Node_cond_exp, node((yyvsp[(3) - (5)].nodeval), Node_if_branches, (yyvsp[(5) - (5)].nodeval)));}
break;
- case 106:
+ case 108:
-/* Line 1464 of yacc.c */
-#line 842 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 878 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 107:
+ case 109:
-/* Line 1464 of yacc.c */
-#line 847 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 883 "awkgram.y"
{ (yyval.nodetypeval) = (yyvsp[(1) - (1)].nodetypeval); }
break;
- case 108:
+ case 110:
-/* Line 1464 of yacc.c */
-#line 849 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 885 "awkgram.y"
{ (yyval.nodetypeval) = (yyvsp[(1) - (1)].nodetypeval); }
break;
- case 109:
+ case 111:
-/* Line 1464 of yacc.c */
-#line 851 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 887 "awkgram.y"
{ (yyval.nodetypeval) = Node_assign_quotient; }
break;
- case 110:
+ case 112:
-/* Line 1464 of yacc.c */
-#line 856 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 892 "awkgram.y"
{ (yyval.nodetypeval) = (yyvsp[(1) - (1)].nodetypeval); }
break;
- case 111:
+ case 113:
-/* Line 1464 of yacc.c */
-#line 858 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 894 "awkgram.y"
{ (yyval.nodetypeval) = Node_less; }
break;
- case 113:
+ case 115:
-/* Line 1464 of yacc.c */
-#line 863 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 899 "awkgram.y"
{ (yyval.nodetypeval) = Node_greater; }
break;
- case 114:
+ case 116:
-/* Line 1464 of yacc.c */
-#line 868 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 904 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 115:
+ case 117:
-/* Line 1464 of yacc.c */
-#line 870 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 906 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 116:
+ case 118:
-/* Line 1464 of yacc.c */
-#line 872 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 908 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (2)].nodeval), Node_concat, (yyvsp[(2) - (2)].nodeval)); }
break;
- case 118:
+ case 120:
-/* Line 1464 of yacc.c */
-#line 879 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 915 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (3)].nodeval), Node_exp, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 119:
+ case 121:
-/* Line 1464 of yacc.c */
-#line 881 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 917 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (3)].nodeval), Node_times, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 120:
+ case 122:
-/* Line 1464 of yacc.c */
-#line 883 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 919 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (3)].nodeval), Node_quotient, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 121:
+ case 123:
-/* Line 1464 of yacc.c */
-#line 885 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 921 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (3)].nodeval), Node_mod, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 122:
+ case 124:
-/* Line 1464 of yacc.c */
-#line 887 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 923 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (3)].nodeval), Node_plus, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 123:
+ case 125:
-/* Line 1464 of yacc.c */
-#line 889 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 925 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(1) - (3)].nodeval), Node_minus, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 124:
+ case 126:
-/* Line 1464 of yacc.c */
-#line 891 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 927 "awkgram.y"
{
+ /*
+ * In BEGINFILE/ENDFILE, allow `getline var < file'
+ */
+ if (beginfile_or_endfile_rule) {
+ if ((yyvsp[(2) - (3)].nodeval) != NULL && (yyvsp[(3) - (3)].nodeval) != NULL)
+ ; /* all ok */
+ else {
+ if ((yyvsp[(2) - (3)].nodeval) != NULL)
+ fatal(_("`getline var' invalid inside %s rule"),
+ parsing_endfile_rule ? "ENDFILE" : "BEGINFILE");
+ else
+ fatal(_("`getline' invalid inside %s rule"),
+ parsing_endfile_rule ? "ENDFILE" : "BEGINFILE");
+ }
+ }
if (do_lint && parsing_end_rule && (yyvsp[(3) - (3)].nodeval) == NULL)
lintwarn(_("non-redirected `getline' undefined inside END action"));
(yyval.nodeval) = node((yyvsp[(2) - (3)].nodeval), Node_K_getline, (yyvsp[(3) - (3)].nodeval));
}
break;
- case 125:
+ case 127:
-/* Line 1464 of yacc.c */
-#line 897 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 948 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (2)].nodeval), Node_postincrement, (NODE *) NULL); }
break;
- case 126:
+ case 128:
-/* Line 1464 of yacc.c */
-#line 899 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 950 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (2)].nodeval), Node_postdecrement, (NODE *) NULL); }
break;
- case 127:
+ case 129:
-/* Line 1464 of yacc.c */
-#line 901 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 952 "awkgram.y"
{
if (do_lint_old) {
warning(_("old awk does not support the keyword `in' except after `for'"));
@@ -3091,97 +3159,97 @@ yyreduce:
}
break;
- case 128:
+ case 130:
-/* Line 1464 of yacc.c */
-#line 914 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 965 "awkgram.y"
{
(yyval.nodeval) = node((yyvsp[(4) - (4)].nodeval), Node_K_getline,
node((yyvsp[(1) - (4)].nodeval), (yyvsp[(2) - (4)].nodetypeval), (NODE *) NULL));
}
break;
- case 129:
+ case 131:
-/* Line 1464 of yacc.c */
-#line 919 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 970 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_exp, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 130:
+ case 132:
-/* Line 1464 of yacc.c */
-#line 921 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 972 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_times, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 131:
+ case 133:
-/* Line 1464 of yacc.c */
-#line 923 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 974 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_quotient, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 132:
+ case 134:
-/* Line 1464 of yacc.c */
-#line 925 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 976 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_mod, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 133:
+ case 135:
-/* Line 1464 of yacc.c */
-#line 927 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 978 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_plus, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 134:
+ case 136:
-/* Line 1464 of yacc.c */
-#line 929 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 980 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(1) - (3)].nodeval), Node_minus, (yyvsp[(3) - (3)].nodeval)); }
break;
- case 135:
+ case 137:
-/* Line 1464 of yacc.c */
-#line 934 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 985 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 136:
+ case 138:
-/* Line 1464 of yacc.c */
-#line 936 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 987 "awkgram.y"
{ (yyval.nodeval) = constant_fold((yyvsp[(2) - (2)].nodeval), Node_not, (NODE *) NULL); }
break;
- case 137:
+ case 139:
-/* Line 1464 of yacc.c */
-#line 938 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 989 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(2) - (3)].nodeval); }
break;
- case 138:
+ case 140:
-/* Line 1464 of yacc.c */
-#line 941 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 992 "awkgram.y"
{ (yyval.nodeval) = snode((yyvsp[(3) - (4)].nodeval), Node_builtin, (int) (yyvsp[(1) - (4)].lval)); }
break;
- case 139:
+ case 141:
-/* Line 1464 of yacc.c */
-#line 943 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 994 "awkgram.y"
{ (yyval.nodeval) = snode((yyvsp[(3) - (4)].nodeval), Node_builtin, (int) (yyvsp[(1) - (4)].lval)); }
break;
- case 140:
+ case 142:
-/* Line 1464 of yacc.c */
-#line 945 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 996 "awkgram.y"
{
static short warned1 = FALSE, warned2 = FALSE;
@@ -3197,51 +3265,38 @@ yyreduce:
}
break;
- case 141:
-
-/* Line 1464 of yacc.c */
-#line 959 "awkgram.y"
- {
- (yyval.nodeval) = node((yyvsp[(3) - (4)].nodeval), Node_func_call, make_string((yyvsp[(1) - (4)].sval), strlen((yyvsp[(1) - (4)].sval))));
- (yyval.nodeval)->funcbody = NULL;
- func_use((yyvsp[(1) - (4)].sval), FUNC_USE);
- param_sanity((yyvsp[(3) - (4)].nodeval));
- free((yyvsp[(1) - (4)].sval));
- }
- break;
-
- case 143:
+ case 145:
-/* Line 1464 of yacc.c */
-#line 968 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1012 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(2) - (2)].nodeval), Node_preincrement, (NODE *) NULL); }
break;
- case 144:
+ case 146:
-/* Line 1464 of yacc.c */
-#line 970 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1014 "awkgram.y"
{ (yyval.nodeval) = node((yyvsp[(2) - (2)].nodeval), Node_predecrement, (NODE *) NULL); }
break;
- case 145:
+ case 147:
-/* Line 1464 of yacc.c */
-#line 972 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1016 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 146:
+ case 148:
-/* Line 1464 of yacc.c */
-#line 974 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1018 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 147:
+ case 149:
-/* Line 1464 of yacc.c */
-#line 977 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1021 "awkgram.y"
{
if ((yyvsp[(2) - (2)].nodeval)->type == Node_val && ((yyvsp[(2) - (2)].nodeval)->flags & (STRCUR|STRING)) == 0) {
(yyvsp[(2) - (2)].nodeval)->numbr = -(force_number((yyvsp[(2) - (2)].nodeval)));
@@ -3251,10 +3306,10 @@ yyreduce:
}
break;
- case 148:
+ case 150:
-/* Line 1464 of yacc.c */
-#line 985 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1029 "awkgram.y"
{
/*
* was: $$ = $2
@@ -3264,31 +3319,71 @@ yyreduce:
}
break;
- case 149:
+ case 151:
-/* Line 1464 of yacc.c */
-#line 996 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1040 "awkgram.y"
+ {
+ func_use((yyvsp[(1) - (1)].nodeval)->rnode->stptr, FUNC_USE);
+ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval);
+ }
+ break;
+
+ case 152:
+
+/* Line 1455 of yacc.c */
+#line 1045 "awkgram.y"
+ {
+ /* indirect function call */
+ static short warned = FALSE;
+
+ if (do_lint && ! warned) {
+ warned = TRUE;
+ lintwarn(_("indirect function calls are a gawk extension"));
+ }
+
+ (yyval.nodeval) = (yyvsp[(2) - (2)].nodeval);
+ (yyval.nodeval)->type = Node_indirect_func_call;
+ }
+ break;
+
+ case 153:
+
+/* Line 1455 of yacc.c */
+#line 1061 "awkgram.y"
+ {
+ (yyval.nodeval) = node((yyvsp[(3) - (4)].nodeval), Node_func_call, make_string((yyvsp[(1) - (4)].sval), strlen((yyvsp[(1) - (4)].sval))));
+ (yyval.nodeval)->funcbody = NULL;
+ param_sanity((yyvsp[(3) - (4)].nodeval));
+ free((yyvsp[(1) - (4)].sval));
+ }
+ break;
+
+ case 154:
+
+/* Line 1455 of yacc.c */
+#line 1071 "awkgram.y"
{ (yyval.nodeval) = NULL; }
break;
- case 150:
+ case 155:
-/* Line 1464 of yacc.c */
-#line 998 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1073 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 151:
+ case 156:
-/* Line 1464 of yacc.c */
-#line 1003 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1078 "awkgram.y"
{ (yyval.nodeval) = variable((yyvsp[(1) - (1)].sval), CAN_FREE, Node_var_new); }
break;
- case 152:
+ case 157:
-/* Line 1464 of yacc.c */
-#line 1005 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1080 "awkgram.y"
{
NODE *n;
@@ -3305,17 +3400,17 @@ yyreduce:
}
break;
- case 153:
+ case 158:
-/* Line 1464 of yacc.c */
-#line 1019 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1094 "awkgram.y"
{ (yyval.nodeval) = (yyvsp[(1) - (1)].nodeval); }
break;
- case 154:
+ case 159:
-/* Line 1464 of yacc.c */
-#line 1030 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1105 "awkgram.y"
{
NODE *n = node((yyvsp[(2) - (3)].nodeval), Node_field_spec, (NODE *) NULL);
if ((yyvsp[(3) - (3)].sval) != NULL) {
@@ -3329,66 +3424,66 @@ yyreduce:
}
break;
- case 155:
+ case 160:
-/* Line 1464 of yacc.c */
-#line 1044 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1119 "awkgram.y"
{ (yyval.sval) = "+"; }
break;
- case 156:
+ case 161:
-/* Line 1464 of yacc.c */
-#line 1045 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1120 "awkgram.y"
{ (yyval.sval) = "-"; }
break;
- case 157:
+ case 162:
-/* Line 1464 of yacc.c */
-#line 1046 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1121 "awkgram.y"
{ (yyval.sval) = NULL; }
break;
- case 159:
+ case 164:
-/* Line 1464 of yacc.c */
-#line 1054 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1129 "awkgram.y"
{ yyerrok; }
break;
- case 160:
+ case 165:
-/* Line 1464 of yacc.c */
-#line 1058 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1133 "awkgram.y"
{ yyerrok; }
break;
- case 163:
+ case 168:
-/* Line 1464 of yacc.c */
-#line 1067 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1142 "awkgram.y"
{ yyerrok; }
break;
- case 164:
+ case 169:
-/* Line 1464 of yacc.c */
-#line 1071 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1146 "awkgram.y"
{ yyerrok; }
break;
- case 165:
+ case 170:
-/* Line 1464 of yacc.c */
-#line 1074 "awkgram.y"
+/* Line 1455 of yacc.c */
+#line 1149 "awkgram.y"
{ yyerrok; }
break;
-/* Line 1464 of yacc.c */
-#line 3392 "awkgram.c"
+/* Line 1455 of yacc.c */
+#line 3487 "awkgram.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3599,8 +3694,8 @@ yyreturn:
-/* Line 1684 of yacc.c */
-#line 1077 "awkgram.y"
+/* Line 1675 of yacc.c */
+#line 1152 "awkgram.y"
struct token {
@@ -3641,7 +3736,9 @@ tokcompare(void *l, void *r)
static const struct token tokentab[] = {
{"BEGIN", Node_illegal, LEX_BEGIN, 0, 0},
+{"BEGINFILE", Node_illegal, LEX_BEGINFILE, GAWKX, 0},
{"END", Node_illegal, LEX_END, 0, 0},
+{"ENDFILE", Node_illegal, LEX_ENDFILE, GAWKX, 0},
#ifdef ARRAYDEBUG
{"adump", Node_builtin, LEX_BUILTIN, GAWKX|A(1), do_adump},
#endif
@@ -3651,18 +3748,14 @@ static const struct token tokentab[] = {
{"atan2", Node_builtin, LEX_BUILTIN, NOT_OLD|A(2), do_atan2},
{"bindtextdomain", Node_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2), do_bindtextdomain},
{"break", Node_K_break, LEX_BREAK, 0, 0},
-#ifdef ALLOW_SWITCH
{"case", Node_K_case, LEX_CASE, GAWKX, 0},
-#endif
{"close", Node_builtin, LEX_BUILTIN, NOT_OLD|A(1)|A(2), do_close},
{"compl", Node_builtin, LEX_BUILTIN, GAWKX|A(1), do_compl},
{"continue", Node_K_continue, LEX_CONTINUE, 0, 0},
{"cos", Node_builtin, LEX_BUILTIN, NOT_OLD|A(1), do_cos},
{"dcgettext", Node_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2)|A(3), do_dcgettext},
{"dcngettext", Node_builtin, LEX_BUILTIN, GAWKX|A(1)|A(2)|A(3)|A(4)|A(5), do_dcngettext},
-#ifdef ALLOW_SWITCH
{"default", Node_K_default, LEX_DEFAULT, GAWKX, 0},
-#endif
{"delete", Node_K_delete, LEX_DELETE, NOT_OLD, 0},
{"do", Node_K_do, LEX_DO, NOT_OLD, 0},
{"else", Node_illegal, LEX_ELSE, 0, 0},
@@ -3688,13 +3781,14 @@ static const struct token tokentab[] = {
{"next", Node_K_next, LEX_NEXT, 0, 0},
{"nextfile", Node_K_nextfile, LEX_NEXTFILE, GAWKX, 0},
{"or", Node_builtin, LEX_BUILTIN, GAWKX|A(2), do_or},
+{"patsplit", Node_builtin, LEX_BUILTIN, GAWKX|A(2)|A(3)|A(4), do_patsplit},
{"print", Node_K_print, LEX_PRINT, 0, 0},
{"printf", Node_K_printf, LEX_PRINTF, 0, 0},
{"rand", Node_builtin, LEX_BUILTIN, NOT_OLD|A(0), do_rand},
{"return", Node_K_return, LEX_RETURN, NOT_OLD, 0},
{"rshift", Node_builtin, LEX_BUILTIN, GAWKX|A(2), do_rshift},
{"sin", Node_builtin, LEX_BUILTIN, NOT_OLD|A(1), do_sin},
-{"split", Node_builtin, LEX_BUILTIN, A(2)|A(3), do_split},
+{"split", Node_builtin, LEX_BUILTIN, A(2)|A(3)|A(4), do_split},
{"sprintf", Node_builtin, LEX_BUILTIN, 0, do_sprintf},
{"sqrt", Node_builtin, LEX_BUILTIN, A(1), do_sqrt},
{"srand", Node_builtin, LEX_BUILTIN, NOT_OLD|A(0)|A(1), do_srand},
@@ -3705,9 +3799,7 @@ static const struct token tokentab[] = {
{"strtonum", Node_builtin, LEX_BUILTIN, GAWKX|A(1), do_strtonum},
{"sub", Node_builtin, LEX_BUILTIN, NOT_OLD|A(2)|A(3), do_sub},
{"substr", Node_builtin, LEX_BUILTIN, A(2)|A(3), do_substr},
-#ifdef ALLOW_SWITCH
{"switch", Node_K_switch, LEX_SWITCH, GAWKX, 0},
-#endif
{"system", Node_builtin, LEX_BUILTIN, NOT_OLD|A(1), do_system},
{"systime", Node_builtin, LEX_BUILTIN, GAWKX|A(0), do_systime},
{"tolower", Node_builtin, LEX_BUILTIN, NOT_OLD|A(1), do_tolower},
@@ -4812,6 +4904,11 @@ retry:
yylval.nodetypeval = Node_redirect_pipein;
return lasttok = IO_IN;
}
+
+ case '@': /* indirect function call */
+ if (do_posix || do_traditional)
+ break;
+ return lasttok = c;
}
if (c != '_' && ! isalpha(c)) {
@@ -5020,6 +5117,13 @@ snode(NODE *subn, NODETYPE op, int idx)
subn->rnode->rnode->lnode = mk_rexp(n);
if (nexp == 2)
subn->rnode->rnode->lnode->re_flags |= FS_DFLT;
+ } else if (r->builtin == do_patsplit) {
+ if (nexp == 2)
+ append_right(subn,
+ node(FPAT_node, Node_expression_list, (NODE *) NULL));
+ n = subn->rnode->rnode->lnode;
+ if (n->type != Node_regex)
+ subn->rnode->rnode->lnode = mk_rexp(n);
} else if (r->builtin == do_close) {
static short warned = FALSE;
@@ -5861,6 +5965,7 @@ isnoeffect(NODETYPE type)
case Node_NF:
case Node_NR:
case Node_FNR:
+ case Node_FPAT:
case Node_FS:
case Node_RS:
case Node_FIELDWIDTHS:
@@ -5893,6 +5998,7 @@ isassignable(register NODE *n)
case Node_RS:
case Node_FS:
case Node_FNR:
+ case Node_FPAT:
case Node_NR:
case Node_NF:
case Node_IGNORECASE: