47 #define YYBISON_VERSION "3.0.4" 50 #define YYSKELETON_NAME "yacc.c" 63 #define yyparse nft_parse 65 #define yyerror nft_error 66 #define yydebug nft_debug 67 #define yynerrs nft_nerrs 71 #line 11 "parser_bison.y" 78 #include <netinet/ip.h> 79 #include <netinet/if_ether.h> 80 #include <linux/netfilter.h> 81 #include <linux/netfilter/nf_tables.h> 82 #include <linux/netfilter/nf_conntrack_tuple_common.h> 83 #include <linux/netfilter/nf_nat.h> 84 #include <linux/netfilter/nf_log.h> 85 #include <netinet/ip_icmp.h> 86 #include <netinet/icmp6.h> 87 #include <libnftnl/common.h> 88 #include <libnftnl/set.h> 91 #include <statement.h> 92 #include <expression.h> 97 #include "parser_bison.h" 99 void parser_init(
struct mnl_socket *nf_sock,
struct nft_cache *cache,
100 struct parser_state *state,
struct list_head *msgs)
102 memset(state, 0,
sizeof(*state));
103 init_list_head(&state->cmds);
104 init_list_head(&state->top_scope.symbols);
106 state->scopes[0] = scope_init(&state->top_scope, NULL);
107 state->ectx.cache = cache;
108 state->ectx.msgs = msgs;
109 state->ectx.nf_sock = nf_sock;
112 static void yyerror(
struct location *loc,
void *scanner,
113 struct parser_state *state,
const char *s)
115 erec_queue(error(loc,
"%s", s), state->msgs);
118 static struct scope *current_scope(
const struct parser_state *state)
120 return state->scopes[state->scope];
123 static void open_scope(
struct parser_state *state,
struct scope *scope)
125 assert(state->scope < array_size(state->scopes) - 1);
126 scope_init(scope, current_scope(state));
127 state->scopes[++state->scope] = scope;
130 static void close_scope(
struct parser_state *state)
132 assert(state->scope > 0);
136 static void location_init(
void *scanner,
struct parser_state *state,
137 struct location *loc)
139 memset(loc, 0,
sizeof(*loc));
140 loc->indesc = state->indesc;
143 static void location_update(
struct location *loc,
struct location *rhs,
int n)
146 loc->indesc = rhs[n].indesc;
147 loc->token_offset = rhs[1].token_offset;
148 loc->line_offset = rhs[1].line_offset;
149 loc->first_line = rhs[1].first_line;
150 loc->first_column = rhs[1].first_column;
151 loc->last_line = rhs[n].last_line;
152 loc->last_column = rhs[n].last_column;
154 loc->indesc = rhs[0].indesc;
155 loc->token_offset = rhs[0].token_offset;
156 loc->line_offset = rhs[0].line_offset;
157 loc->first_line = loc->last_line = rhs[0].last_line;
158 loc->first_column = loc->last_column = rhs[0].last_column;
162 #define YYLLOC_DEFAULT(Current, Rhs, N) location_update(&Current, Rhs, N) 164 #define symbol_value(loc, str) \ 165 symbol_expr_alloc(loc, SYMBOL_VALUE, current_scope(state), str) 167 #line 168 "parser_bison.c" 170 # if defined __cplusplus && 201103L <= __cplusplus 171 # define YY_NULLPTR nullptr 173 # define YY_NULLPTR 0 178 #ifdef YYERROR_VERBOSE 179 # undef YYERROR_VERBOSE 180 # define YYERROR_VERBOSE 1 182 # define YYERROR_VERBOSE 1 187 #ifndef YY_NFT_PARSER_BISON_H_INCLUDED 188 # define YY_NFT_PARSER_BISON_H_INCLUDED 194 extern int nft_debug;
281 ASTERISK_STRING = 336,
351 SACK_PERMITTED = 406,
370 MORE_FRAGMENTS = 425,
410 QUEUE_THRESHOLD = 465,
465 #define SEMICOLON 261 476 #define AMPERSAND 272 530 #define GC_INTERVAL 326 534 #define PERFORMANCE 330 539 #define QUOTED_STRING 335 540 #define ASTERISK_STRING 336 542 #define NETWORK_HDR 338 543 #define TRANSPORT_HDR 339 558 #define OPERATION 354 560 #define HDRVERSION 356 561 #define HDRLENGTH 357 577 #define FLOWLABEL 373 610 #define SACK_PERMITTED 406 611 #define TIMESTAMP 407 628 #define RESERVED2 424 629 #define MORE_FRAGMENTS 425 643 #define RTCLASSID 439 654 #define L3PROTOCOL 450 655 #define PROTO_SRC 451 656 #define PROTO_DST 452 669 #define QUEUE_THRESHOLD 465 678 #define NANOSECOND 474 679 #define MICROSECOND 475 680 #define MILLISECOND 476 691 #define MASQUERADE 487 694 #define FULLY_RANDOM 490 695 #define PERSISTENT 491 719 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 723 #line 128 "parser_bison.y" 728 struct list_head *list;
730 struct handle handle;
738 struct counter *counter;
741 const struct datatype *datatype;
742 struct handle_spec handle_spec;
743 struct position_spec position_spec;
744 const struct exthdr_desc *exthdr_desc;
746 #line 747 "parser_bison.c" 750 # define YYSTYPE_IS_TRIVIAL 1 751 # define YYSTYPE_IS_DECLARED 1 755 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED 764 # define YYLTYPE_IS_DECLARED 1 765 # define YYLTYPE_IS_TRIVIAL 1 770 int nft_parse (
void *scanner,
struct parser_state *state);
776 #line 777 "parser_bison.c" 783 typedef YYTYPE_UINT8 yytype_uint8;
785 typedef unsigned char yytype_uint8;
789 typedef YYTYPE_INT8 yytype_int8;
791 typedef signed char yytype_int8;
795 typedef YYTYPE_UINT16 yytype_uint16;
797 typedef unsigned short int yytype_uint16;
801 typedef YYTYPE_INT16 yytype_int16;
803 typedef short int yytype_int16;
807 # ifdef __SIZE_TYPE__ 808 # define YYSIZE_T __SIZE_TYPE__ 809 # elif defined size_t 810 # define YYSIZE_T size_t 811 # elif ! defined YYSIZE_T 813 # define YYSIZE_T size_t 815 # define YYSIZE_T unsigned int 819 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 822 # if defined YYENABLE_NLS && YYENABLE_NLS 824 # include <libintl.h> 825 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 829 # define YY_(Msgid) Msgid 834 # if (defined __GNUC__ \ 835 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 836 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 837 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 839 # define YY_ATTRIBUTE(Spec) 843 #ifndef YY_ATTRIBUTE_PURE 844 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 847 #ifndef YY_ATTRIBUTE_UNUSED 848 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 851 #if !defined _Noreturn \ 852 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 853 # if defined _MSC_VER && 1200 <= _MSC_VER 854 # define _Noreturn __declspec (noreturn) 856 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 861 #if ! defined lint || defined __GNUC__ 862 # define YYUSE(E) ((void) (E)) 867 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 869 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 870 _Pragma ("GCC diagnostic push") \ 871 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 872 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 873 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 874 _Pragma ("GCC diagnostic pop") 876 # define YY_INITIAL_VALUE(Value) Value 878 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 879 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 880 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 882 #ifndef YY_INITIAL_VALUE 883 # define YY_INITIAL_VALUE(Value) 887 #if ! defined yyoverflow || YYERROR_VERBOSE 891 # ifdef YYSTACK_USE_ALLOCA 892 # if YYSTACK_USE_ALLOCA 894 # define YYSTACK_ALLOC __builtin_alloca 895 # elif defined __BUILTIN_VA_ARG_INCR 898 # define YYSTACK_ALLOC __alloca 899 # elif defined _MSC_VER 901 # define alloca _alloca 903 # define YYSTACK_ALLOC alloca 904 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 907 # ifndef EXIT_SUCCESS 908 # define EXIT_SUCCESS 0 915 # ifdef YYSTACK_ALLOC 917 # define YYSTACK_FREE(Ptr) do { ; } while (0) 918 # ifndef YYSTACK_ALLOC_MAXIMUM 923 # define YYSTACK_ALLOC_MAXIMUM 4032 926 # define YYSTACK_ALLOC YYMALLOC 927 # define YYSTACK_FREE YYFREE 928 # ifndef YYSTACK_ALLOC_MAXIMUM 929 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 931 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 932 && ! ((defined YYMALLOC || defined malloc) \ 933 && (defined YYFREE || defined free))) 935 # ifndef EXIT_SUCCESS 936 # define EXIT_SUCCESS 0 940 # define YYMALLOC malloc 941 # if ! defined malloc && ! defined EXIT_SUCCESS 942 void *malloc (YYSIZE_T);
947 # if ! defined free && ! defined EXIT_SUCCESS 955 #if (! defined yyoverflow \ 956 && (! defined __cplusplus \ 957 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ 958 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 963 yytype_int16 yyss_alloc;
969 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 973 # define YYSTACK_BYTES(N) \ 974 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ 975 + 2 * YYSTACK_GAP_MAXIMUM) 977 # define YYCOPY_NEEDED 1 984 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 987 YYSIZE_T yynewbytes; \ 988 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 989 Stack = &yyptr->Stack_alloc; \ 990 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 991 yyptr += yynewbytes / sizeof (*yyptr); \ 997 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1001 # if defined __GNUC__ && 1 < __GNUC__ 1002 # define YYCOPY(Dst, Src, Count) \ 1003 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 1005 # define YYCOPY(Dst, Src, Count) \ 1009 for (yyi = 0; yyi < (Count); yyi++) \ 1010 (Dst)[yyi] = (Src)[yyi]; \ 1023 #define YYNTOKENS 267 1027 #define YYNRULES 764 1029 #define YYNSTATES 1181 1033 #define YYUNDEFTOK 2 1034 #define YYMAXUTOK 512 1036 #define YYTRANSLATE(YYX) \ 1037 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1041 static const yytype_uint16 yytranslate[] =
1043 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1044 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1045 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1046 2, 2, 2, 2, 2, 2, 261, 2, 2, 2,
1047 262, 263, 2, 2, 2, 2, 2, 2, 2, 2,
1048 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1049 2, 258, 2, 2, 2, 2, 2, 2, 2, 2,
1050 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1051 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1052 2, 265, 2, 266, 2, 2, 2, 2, 2, 2,
1053 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1054 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1055 2, 2, 2, 259, 264, 260, 2, 2, 2, 2,
1056 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1057 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1058 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1059 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1060 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1061 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1062 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1063 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1064 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1065 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1066 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1067 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1068 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1069 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1070 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1071 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1072 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1073 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1074 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1075 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1076 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1077 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1078 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1079 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1080 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1081 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1082 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1083 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1084 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1085 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1086 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1087 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1088 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1089 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1090 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1091 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1092 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1093 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1099 static const yytype_uint16 yyrline[] =
1101 0, 684, 684, 685, 702, 703, 706, 707, 710, 718,
1102 731, 739, 740, 741, 742, 773, 774, 775, 776, 777,
1103 778, 779, 780, 781, 782, 783, 784, 785, 788, 792,
1104 799, 803, 811, 815, 819, 826, 833, 837, 846, 850,
1105 854, 869, 875, 879, 886, 890, 898, 905, 912, 916,
1106 925, 929, 933, 948, 954, 958, 962, 966, 970, 974,
1107 978, 982, 986, 1001, 1005, 1009, 1013, 1017, 1021, 1025,
1108 1029, 1033, 1037, 1041, 1045, 1049, 1053, 1057, 1061, 1065,
1109 1069, 1073, 1086, 1108, 1112, 1116, 1120, 1124, 1128, 1134,
1110 1138, 1142, 1146, 1150, 1154, 1160, 1167, 1173, 1181, 1190,
1111 1191, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1204,
1112 1205, 1208, 1209, 1212, 1221, 1227, 1239, 1240, 1241, 1242,
1113 1243, 1254, 1264, 1274, 1285, 1296, 1317, 1323, 1324, 1325,
1114 1326, 1327, 1328, 1336, 1341, 1342, 1343, 1344, 1349, 1354,
1115 1359, 1364, 1369, 1372, 1373, 1376, 1380, 1383, 1384, 1385,
1116 1389, 1394, 1395, 1396, 1397, 1406, 1415, 1424, 1429, 1434,
1117 1437, 1441, 1447, 1448, 1451, 1460, 1472, 1485, 1490, 1491,
1118 1492, 1493, 1500, 1501, 1502, 1503, 1510, 1511, 1512, 1513,
1119 1520, 1521, 1522, 1523, 1526, 1552, 1553, 1556, 1557, 1560,
1120 1571, 1572, 1575, 1578, 1579, 1580, 1583, 1597, 1598, 1601,
1121 1602, 1603, 1604, 1605, 1606, 1609, 1617, 1624, 1631, 1638,
1122 1645, 1652, 1659, 1667, 1675, 1679, 1686, 1693, 1705, 1709,
1123 1716, 1720, 1726, 1738, 1744, 1751, 1752, 1753, 1754, 1755,
1124 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
1125 1766, 1767, 1768, 1771, 1775, 1781, 1787, 1792, 1801, 1806,
1126 1811, 1814, 1820, 1821, 1823, 1827, 1835, 1839, 1842, 1846,
1127 1852, 1853, 1856, 1862, 1866, 1869, 1874, 1879, 1884, 1889,
1128 1894, 1900, 1926, 1930, 1934, 1938, 1942, 1948, 1952, 1955,
1129 1959, 1965, 1974, 1994, 1995, 1996, 1999, 2000, 2003, 2004,
1130 2018, 2033, 2041, 2042, 2043, 2046, 2047, 2048, 2049, 2063,
1131 2064, 2065, 2066, 2067, 2070, 2073, 2080, 2084, 2094, 2104,
1132 2113, 2119, 2122, 2127, 2134, 2135, 2154, 2160, 2161, 2162,
1133 2165, 2169, 2173, 2178, 2183, 2187, 2191, 2197, 2198, 2201,
1134 2204, 2208, 2213, 2219, 2220, 2223, 2226, 2230, 2234, 2238,
1135 2243, 2250, 2255, 2263, 2270, 2271, 2277, 2278, 2279, 2282,
1136 2283, 2286, 2292, 2296, 2299, 2304, 2310, 2311, 2317, 2318,
1137 2321, 2322, 2325, 2331, 2340, 2341, 2344, 2351, 2360, 2366,
1138 2370, 2373, 2379, 2385, 2401, 2402, 2409, 2418, 2429, 2430,
1139 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440,
1140 2443, 2466, 2467, 2468, 2471, 2472, 2473, 2474, 2475, 2478,
1141 2482, 2485, 2486, 2490, 2496, 2497, 2503, 2504, 2510, 2511,
1142 2517, 2520, 2521, 2540, 2546, 2552, 2563, 2564, 2565, 2568,
1143 2574, 2575, 2576, 2579, 2586, 2591, 2596, 2599, 2603, 2607,
1144 2613, 2614, 2621, 2627, 2628, 2631, 2637, 2641, 2644, 2648,
1145 2654, 2655, 2658, 2659, 2662, 2663, 2666, 2677, 2685, 2705,
1146 2713, 2716, 2717, 2720, 2735, 2742, 2748, 2752, 2756, 2760,
1147 2766, 2772, 2780, 2781, 2782, 2785, 2786, 2790, 2796, 2797,
1148 2803, 2804, 2810, 2811, 2817, 2820, 2821, 2840, 2841, 2844,
1149 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2863,
1150 2864, 2865, 2866, 2867, 2874, 2881, 2888, 2895, 2902, 2909,
1151 2916, 2923, 2930, 2937, 2946, 2947, 2948, 2949, 2950, 2951,
1152 2954, 2958, 2962, 2966, 2970, 2974, 2980, 2984, 2988, 3002,
1153 3003, 3006, 3007, 3008, 3009, 3012, 3013, 3014, 3015, 3016,
1154 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026,
1155 3027, 3028, 3029, 3032, 3036, 3040, 3053, 3059, 3060, 3063,
1156 3064, 3067, 3073, 3078, 3083, 3089, 3095, 3096, 3099, 3103,
1157 3116, 3131, 3132, 3133, 3134, 3136, 3137, 3138, 3139, 3140,
1158 3141, 3142, 3145, 3146, 3147, 3148, 3151, 3157, 3165, 3166,
1159 3169, 3173, 3195, 3210, 3216, 3217, 3218, 3219, 3220, 3221,
1160 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231,
1161 3234, 3244, 3245, 3246, 3249, 3255, 3256, 3257, 3260, 3266,
1162 3267, 3268, 3269, 3272, 3278, 3279, 3280, 3281, 3282, 3285,
1163 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300,
1164 3301, 3302, 3305, 3311, 3312, 3313, 3314, 3315, 3316, 3317,
1165 3320, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334,
1166 3336, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3352,
1167 3358, 3359, 3360, 3361, 3362, 3365, 3371, 3372, 3375, 3381,
1168 3382, 3383, 3386, 3392, 3393, 3394, 3395, 3398, 3404, 3405,
1169 3406, 3407, 3410, 3414, 3418, 3425, 3426, 3427, 3428, 3429,
1170 3430, 3431, 3432, 3433, 3434, 3437, 3438, 3439, 3440, 3441,
1171 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3451, 3452, 3453,
1172 3454, 3455, 3456, 3457, 3458, 3461, 3467, 3468, 3469, 3472,
1173 3478, 3479, 3480, 3481, 3484, 3485, 3486, 3487, 3488, 3489,
1174 3490, 3493, 3499, 3500, 3503, 3509, 3510, 3511, 3512, 3515,
1175 3521, 3527, 3533, 3536, 3542, 3543, 3544, 3545, 3546, 3547,
1176 3550, 3556, 3557, 3560, 3566, 3567, 3568, 3569, 3570, 3573,
1177 3587, 3588, 3589, 3590, 3591
1181 #if YYDEBUG || YYERROR_VERBOSE || 1 1184 static const char *
const yytname[] =
1186 "\"end of file\"",
"error",
"$undefined",
"\"junk\"",
"\"newline\"",
1187 "\"colon\"",
"\"semicolon\"",
"\"comma\"",
"\".\"",
"\"==\"",
"\"!=\"",
1188 "\"<\"",
"\">\"",
"\">=\"",
"\"<=\"",
"\"<<\"",
"\">>\"",
"\"&\"",
1189 "\"^\"",
"\"!\"",
"\"/\"",
"\"*\"",
"\"-\"",
"\"@\"",
"\"vmap\"",
1190 "\"lookup\"",
"\"include\"",
"\"define\"",
"\"fib\"",
"\"hook\"",
1191 "\"device\"",
"\"table\"",
"\"tables\"",
"\"chain\"",
"\"chains\"",
1192 "\"rule\"",
"\"rules\"",
"\"sets\"",
"\"set\"",
"\"element\"",
"\"map\"",
1193 "\"maps\"",
"\"handle\"",
"\"ruleset\"",
"\"trace\"",
"\"inet\"",
1194 "\"netdev\"",
"\"add\"",
"\"update\"",
"\"replace\"",
"\"create\"",
1195 "\"insert\"",
"\"delete\"",
"\"list\"",
"\"reset\"",
"\"flush\"",
1196 "\"rename\"",
"\"describe\"",
"\"export\"",
"\"monitor\"",
"\"all\"",
1197 "\"accept\"",
"\"drop\"",
"\"continue\"",
"\"jump\"",
"\"goto\"",
1198 "\"return\"",
"\"to\"",
"\"constant\"",
"\"interval\"",
"\"timeout\"",
1199 "\"gc-interval\"",
"\"elements\"",
"\"policy\"",
"\"memory\"",
1200 "\"performance\"",
"\"size\"",
"\"flow\"",
"\"number\"",
"\"string\"",
1201 "\"quoted string\"",
"\"string with a trailing asterisk\"",
"\"ll\"",
1202 "\"nh\"",
"\"th\"",
"\"bridge\"",
"\"ether\"",
"\"saddr\"",
"\"daddr\"",
1203 "\"type\"",
"\"vlan\"",
"\"id\"",
"\"cfi\"",
"\"pcp\"",
"\"arp\"",
1204 "\"htype\"",
"\"ptype\"",
"\"hlen\"",
"\"plen\"",
"\"operation\"",
1205 "\"ip\"",
"\"version\"",
"\"hdrlength\"",
"\"dscp\"",
"\"ecn\"",
1206 "\"length\"",
"\"frag-off\"",
"\"ttl\"",
"\"protocol\"",
"\"checksum\"",
1207 "\"icmp\"",
"\"code\"",
"\"seq\"",
"\"gateway\"",
"\"mtu\"",
1208 "\"options\"",
"\"ip6\"",
"\"priority\"",
"\"flowlabel\"",
"\"nexthdr\"",
1209 "\"hoplimit\"",
"\"icmpv6\"",
"\"param-problem\"",
"\"max-delay\"",
1210 "\"ah\"",
"\"reserved\"",
"\"spi\"",
"\"esp\"",
"\"comp\"",
"\"flags\"",
1211 "\"cpi\"",
"\"udp\"",
"\"sport\"",
"\"dport\"",
"\"udplite\"",
1212 "\"csumcov\"",
"\"tcp\"",
"\"ackseq\"",
"\"doff\"",
"\"window\"",
1213 "\"urgptr\"",
"\"option\"",
"\"echo\"",
"\"eol\"",
"\"maxseg\"",
1214 "\"noop\"",
"\"sack\"",
"\"sack0\"",
"\"sack1\"",
"\"sack2\"",
1215 "\"sack3\"",
"\"sack-permitted\"",
"\"timestamp\"",
"\"kind\"",
1216 "\"count\"",
"\"left\"",
"\"right\"",
"\"tsval\"",
"\"tsecr\"",
1217 "\"dccp\"",
"\"sctp\"",
"\"vtag\"",
"\"rt\"",
"\"rt0\"",
"\"rt2\"",
1218 "\"seg-left\"",
"\"addr\"",
"\"hbh\"",
"\"frag\"",
"\"reserved2\"",
1219 "\"more-fragments\"",
"\"dst\"",
"\"mh\"",
"\"meta\"",
"\"mark\"",
1220 "\"iif\"",
"\"iifname\"",
"\"iiftype\"",
"\"oif\"",
"\"oifname\"",
1221 "\"oiftype\"",
"\"skuid\"",
"\"skgid\"",
"\"nftrace\"",
"\"rtclassid\"",
1222 "\"ibriport\"",
"\"obriport\"",
"\"pkttype\"",
"\"cpu\"",
"\"iifgroup\"",
1223 "\"oifgroup\"",
"\"cgroup\"",
"\"classid\"",
"\"nexthop\"",
"\"ct\"",
1224 "\"l3proto\"",
"\"proto-src\"",
"\"proto-dst\"",
"\"zone\"",
1225 "\"counter\"",
"\"name\"",
"\"packets\"",
"\"bytes\"",
"\"avgpkt\"",
1226 "\"counters\"",
"\"quotas\"",
"\"log\"",
"\"prefix\"",
"\"group\"",
1227 "\"snaplen\"",
"\"queue-threshold\"",
"\"level\"",
"\"limit\"",
1228 "\"rate\"",
"\"burst\"",
"\"over\"",
"\"until\"",
"\"quota\"",
1229 "\"used\"",
"\"nanosecond\"",
"\"microsecond\"",
"\"millisecond\"",
1230 "\"second\"",
"\"minute\"",
"\"hour\"",
"\"day\"",
"\"week\"",
1231 "\"reject\"",
"\"with\"",
"\"icmpx\"",
"\"snat\"",
"\"dnat\"",
1232 "\"masquerade\"",
"\"redirect\"",
"\"random\"",
"\"fully-random\"",
1233 "\"persistent\"",
"\"queue\"",
"\"num\"",
"\"bypass\"",
"\"fanout\"",
1234 "\"dup\"",
"\"fwd\"",
"\"numgen\"",
"\"inc\"",
"\"mod\"",
"\"offset\"",
1235 "\"jhash\"",
"\"symhash\"",
"\"seed\"",
"\"position\"",
"\"comment\"",
1236 "\"xml\"",
"\"json\"",
"\"notrack\"",
"\"exists\"",
"\"missing\"",
1237 "\"exthdr\"",
"'='",
"'{'",
"'}'",
"'$'",
"'('",
"')'",
"'|'",
"'['",
1238 "']'",
"$accept",
"input",
"stmt_seperator",
"opt_newline",
1239 "common_block",
"line",
"base_cmd",
"add_cmd",
"replace_cmd",
1240 "create_cmd",
"insert_cmd",
"delete_cmd",
"list_cmd",
"reset_cmd",
1241 "flush_cmd",
"rename_cmd",
"export_cmd",
"monitor_cmd",
"monitor_event",
1242 "monitor_object",
"monitor_format",
"export_format",
"describe_cmd",
1243 "table_block_alloc",
"table_options",
"table_block",
"chain_block_alloc",
1244 "chain_block",
"set_block_alloc",
"set_block",
"set_block_expr",
1245 "set_flag_list",
"set_flag",
"map_block_alloc",
"map_block",
1246 "set_mechanism",
"set_policy_spec",
"data_type",
"type_identifier_list",
1247 "obj_block_alloc",
"counter_block",
"quota_block",
"ct_block",
1248 "type_identifier",
"hook_spec",
"prio_spec",
"dev_spec",
"policy_spec",
1249 "chain_policy",
"identifier",
"string",
"time_spec",
"family_spec",
1250 "family_spec_explicit",
"table_spec",
"chain_spec",
"chain_identifier",
1251 "set_spec",
"set_identifier",
"obj_spec",
"obj_identifier",
1252 "handle_spec",
"position_spec",
"rule_position",
"ruleid_spec",
1253 "comment_spec",
"ruleset_spec",
"rule",
"rule_alloc",
"stmt_list",
1254 "stmt",
"verdict_stmt",
"verdict_map_stmt",
"verdict_map_expr",
1255 "verdict_map_list_expr",
"verdict_map_list_member_expr",
"counter_stmt",
1256 "counter_stmt_alloc",
"counter_args",
"counter_arg",
"log_stmt",
1257 "log_stmt_alloc",
"log_args",
"log_arg",
"level_type",
"log_flags",
1258 "log_flags_tcp",
"log_flag_tcp",
"limit_stmt",
"quota_mode",
1259 "quota_unit",
"quota_used",
"quota_stmt",
"limit_mode",
"limit_burst",
1260 "time_unit",
"reject_stmt",
"reject_stmt_alloc",
"reject_opts",
1261 "nat_stmt",
"nat_stmt_alloc",
"concat_stmt_expr",
"map_stmt_expr",
1262 "stmt_expr",
"nat_stmt_args",
"masq_stmt",
"masq_stmt_alloc",
1263 "masq_stmt_args",
"redir_stmt",
"redir_stmt_alloc",
"redir_stmt_arg",
1264 "dup_stmt",
"fwd_stmt",
"nf_nat_flags",
"nf_nat_flag",
"queue_stmt",
1265 "queue_stmt_alloc",
"queue_stmt_args",
"queue_stmt_arg",
1266 "queue_stmt_flags",
"queue_stmt_flag",
"set_elem_expr_stmt",
1267 "set_elem_expr_stmt_alloc",
"set_stmt",
"set_stmt_op",
"flow_stmt",
1268 "flow_stmt_alloc",
"flow_stmt_opts",
"flow_stmt_opt",
"match_stmt",
1269 "variable_expr",
"symbol_expr",
"integer_expr",
"primary_expr",
1270 "fib_expr",
"fib_result",
"fib_flag",
"fib_tuple",
"shift_expr",
1271 "and_expr",
"exclusive_or_expr",
"inclusive_or_expr",
"basic_expr",
1272 "concat_expr",
"prefix_rhs_expr",
"range_rhs_expr",
"wildcard_rhs_expr",
1273 "multiton_rhs_expr",
"map_expr",
"expr",
"set_expr",
"set_list_expr",
1274 "set_list_member_expr",
"flow_key_expr",
"flow_key_expr_alloc",
1275 "set_elem_expr",
"set_elem_expr_alloc",
"set_elem_options",
1276 "set_elem_option",
"set_lhs_expr",
"set_rhs_expr",
"initializer_expr",
1277 "counter_config",
"counter_obj",
"quota_config",
"quota_obj",
1278 "ct_obj_kind",
"ct_l4protoname",
"ct_config",
"ct_obj_alloc",
1279 "relational_expr",
"list_rhs_expr",
"rhs_expr",
"shift_rhs_expr",
1280 "and_rhs_expr",
"exclusive_or_rhs_expr",
"inclusive_or_rhs_expr",
1281 "basic_rhs_expr",
"concat_rhs_expr",
"boolean_keys",
"boolean_expr",
1282 "keyword_rhs_expr",
"primary_rhs_expr",
"relational_op",
"verdict_expr",
1283 "meta_expr",
"meta_key",
"meta_key_qualified",
"meta_key_unqualified",
1284 "meta_stmt",
"offset_opt",
"numgen_type",
"numgen_expr",
"hash_expr",
1285 "rt_expr",
"rt_key",
"ct_expr",
"ct_key",
"ct_key_dir",
1286 "ct_key_dir_optional",
"list_stmt_expr",
"ct_stmt_expr",
"ct_stmt",
1287 "payload_stmt",
"payload_expr",
"payload_raw_expr",
"payload_base_spec",
1288 "eth_hdr_expr",
"eth_hdr_field",
"vlan_hdr_expr",
"vlan_hdr_field",
1289 "arp_hdr_expr",
"arp_hdr_field",
"ip_hdr_expr",
"ip_hdr_field",
1290 "icmp_hdr_expr",
"icmp_hdr_field",
"ip6_hdr_expr",
"ip6_hdr_field",
1291 "icmp6_hdr_expr",
"icmp6_hdr_field",
"auth_hdr_expr",
"auth_hdr_field",
1292 "esp_hdr_expr",
"esp_hdr_field",
"comp_hdr_expr",
"comp_hdr_field",
1293 "udp_hdr_expr",
"udp_hdr_field",
"udplite_hdr_expr",
"udplite_hdr_field",
1294 "tcp_hdr_expr",
"tcp_hdr_field",
"tcp_hdr_option_type",
1295 "tcp_hdr_option_field",
"dccp_hdr_expr",
"dccp_hdr_field",
1296 "sctp_hdr_expr",
"sctp_hdr_field",
"exthdr_expr",
"hbh_hdr_expr",
1297 "hbh_hdr_field",
"rt_hdr_expr",
"rt_hdr_field",
"rt0_hdr_expr",
1298 "rt0_hdr_field",
"rt2_hdr_expr",
"rt2_hdr_field",
"frag_hdr_expr",
1299 "frag_hdr_field",
"dst_hdr_expr",
"dst_hdr_field",
"mh_hdr_expr",
1300 "mh_hdr_field",
"exthdr_exists_expr",
"exthdr_key", YY_NULLPTR
1307 static const yytype_uint16 yytoknum[] =
1309 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1310 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1311 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1312 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1313 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1314 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1315 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1316 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1317 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1318 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1319 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1320 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1321 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1322 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1323 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1324 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1325 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1326 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1327 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1328 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1329 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1330 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1331 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1332 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1333 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1334 505, 506, 507, 508, 509, 510, 511, 512, 61, 123,
1335 125, 36, 40, 41, 124, 91, 93
1339 #define YYPACT_NINF -941 1341 #define yypact_value_is_default(Yystate) \ 1342 (!!((Yystate) == (-941))) 1344 #define YYTABLE_NINF -466 1346 #define yytable_value_is_error(Yytable_value) \ 1351 static const yytype_int16 yypact[] =
1353 -941, 3619, -941, 254, -941, -941, 20, 36, 1183, 1183,
1354 1183, 1183, 1183, 1183, -941, -941, 991, 44, 741, 88,
1355 526, 977, 266, 773, 155, 3264, 25, 93, -941, -941,
1356 -941, -941, 156, 1183, 1183, -941, -941, -941, 473, -941,
1357 36, -941, 36, -101, 2961, -941, 254, -941, 17, 23,
1358 30, 2961, 36, -941, 205, -941, -941, 1183, -941, 1183,
1359 1183, 1183, 1183, 1183, 163, 1183, 1183, -941, 1183, -941,
1360 1183, 1183, 1183, 1183, 1183, 1183, 229, 1183, 1183, -941,
1361 1183, 1183, 1183, 1183, 353, 1183, 1183, 1183, 1183, 348,
1362 256, 1183, 652, 961, 1183, -941, 1183, 994, 1002, 1183,
1363 -941, 1183, 1183, 1183, 1183, 1183, 295, -941, 1183, -941,
1364 529, 373, -941, -941, -941, -941, 549, 820, 722, 1749,
1365 463, 1536, 1015, 630, 139, 356, 371, 233, 1592, 204,
1366 113, 231, 186, 189, 1, 597, 95, 403, 1126, -941,
1367 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1368 -941, -941, -941, -941, -941, -941, -941, 640, 167, 3146,
1369 99, 438, 36, 3264, -941, -941, -941, -941, -941, -941,
1370 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1371 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1372 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1373 -941, -941, -941, 191, -941, -941, -941, -941, -941, -941,
1374 1163, 1183, 36, 162, 275, -941, -941, -941, -941, 294,
1375 -941, 434, -941, -941, -941, 36, 36, -941, -941, 1339,
1376 768, 195, -941, 170, 221, -941, -941, -941, -941, -941,
1377 -941, 319, 336, -941, 409, -941, 166, 2961, -941, -941,
1378 -941, -941, 307, -941, 247, -941, -941, -941, 198, -941,
1379 1781, -941, 125, -941, 197, -941, -941, -941, 466, -941,
1380 -941, 33, -941, -941, 524, 422, 469, 234, -941, 213,
1381 -941, 2341, -941, -941, -941, 480, -941, -941, -941, 485,
1382 -941, 2703, 242, 268, -941, -941, 274, -941, -941, -941,
1383 283, 507, 2961, 23, 30, -941, 205, -941, 1183, 162,
1384 275, 2961, -941, -941, -941, -941, 205, -941, 1183, -941,
1385 -941, -941, -941, -941, -941, -941, 1183, -941, -941, -941,
1386 -941, -941, 1183, 1183, 1173, -941, 1183, -941, 1183, -941,
1387 -941, -941, 1183, -941, 1183, -941, -941, -941, -941, -941,
1388 -941, -941, 1183, 36, -941, -941, -941, -941, 548, -941,
1389 -941, -941, -941, -941, 552, 32, -941, -941, -941, -941,
1390 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1391 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1392 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1393 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1394 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1395 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1396 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1397 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1398 -941, -941, -941, -941, 1777, -941, -941, -941, -941, -941,
1399 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1400 -941, -941, -941, 302, -941, -941, -941, -941, -941, -941,
1401 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1402 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1403 -941, -941, -941, -941, 972, -941, -941, -941, -941, -941,
1404 -941, -941, -941, -941, -941, -941, 318, 98, 328, 501,
1405 -941, -941, -941, -941, -941, -941, -941, 338, -941, -941,
1406 -941, -941, -941, -941, -941, -941, 191, -941, -941, 541,
1407 -941, -941, -941, -941, 551, -941, -941, -941, -941, -941,
1408 3264, -941, -941, 602, 604, 869, 620, 2457, 433, 2457,
1409 582, 2457, 3146, -941, 2703, 43, -941, 649, -941, -941,
1410 584, 591, 307, -941, 402, 649, 593, 601, 603, 649,
1411 247, -941, 119, -941, 2457, -941, -941, 1968, 549, 820,
1412 722, 1749, -941, 463, 1536, 1015, 630, 139, 356, 371,
1413 233, 1592, 204, 113, -941, -941, -941, -941, -941, 101,
1414 -941, 680, 542, 159, 305, -941, -941, -941, -941, -941,
1415 637, 673, 674, 430, 249, -941, -941, -941, 178, 691,
1416 -941, -941, -941, -941, 701, -941, 2155, -941, 701, 2457,
1417 -941, -941, 466, -941, 714, -941, 36, 3264, 41, -941,
1418 3264, 3264, 3264, 3264, 3264, 3264, 21, 2703, -941, -941,
1419 -941, -941, -941, -941, 36, -941, -941, -941, -941, -941,
1420 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1421 -941, -941, -941, -941, 724, -941, 210, 731, -941, 2642,
1422 3146, 3146, 254, 724, -941, -941, -941, -941, -941, 667,
1423 -941, -941, 492, 495, 500, -941, 514, -941, -941, -941,
1424 -941, -941, -941, -941, -941, -941, 1183, -941, -941, -941,
1425 -941, -941, -941, -941, 710, 373, -941, -941, -941, -941,
1426 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1427 -941, -941, 441, 713, -941, -941, -941, -941, -941, -941,
1428 -941, -941, 715, 717, 553, -941, -941, -941, 543, 598,
1429 26, 260, -17, 801, 3146, 3146, 3146, 777, 3146, -941,
1430 -941, -941, 744, -941, 26, 795, -941, -941, 409, 669,
1431 -17, -941, 249, 731, 409, -941, -941, -941, -941, -941,
1432 -941, -941, 718, 183, -941, -941, -941, -941, -941, -941,
1433 -941, -941, -941, 742, 745, 776, 747, -941, 2457, 832,
1434 3264, 2703, 2457, 701, 3470, 3470, 3470, 3470, 3470, 766,
1435 3470, 2457, 542, 2457, 542, -941, -941, 461, -941, 801,
1436 2961, -17, 3264, -941, -941, -941, 524, 422, 469, -941,
1437 36, 409, -941, -941, 3470, 3470, 3470, 2703, -941, -941,
1438 -941, -941, 246, 1160, 54, 797, -941, -941, -941, -941,
1439 -941, 587, -941, -941, 841, -941, -941, -941, -941, -941,
1440 -941, -941, -941, -941, -941, 583, 553, 69, 774, -941,
1441 -941, 778, -941, -941, 643, -941, 779, -941, -17, -941,
1442 -941, -941, 856, -941, 859, -941, 3146, -941, 39, 643,
1443 2457, -941, 3406, -941, -17, 2703, -941, -941, -941, -941,
1444 864, -941, 789, 793, -941, 796, -941, 2457, -941, -941,
1445 -941, -941, -941, 637, 673, 674, -941, -941, 542, -941,
1446 542, 701, -941, 614, -17, 2961, -941, 2845, 50, -941,
1447 -941, -941, -941, 615, 36, 36, 36, 800, 802, 36,
1448 36, -941, -941, -941, 254, 656, 804, -941, -941, -941,
1449 254, 254, 254, 779, 779, 631, 660, 812, 145, 716,
1450 -941, -941, -941, 254, 633, 145, 716, -941, -941, -941,
1451 254, 290, 1372, 424, 861, -941, 815, -941, -941, 827,
1452 -941, -941, 154, -941, 828, -941, -941, -941, -941, 260,
1453 260, -941, 696, 694, -941, -941, 409, -941, 731, -941,
1454 183, -941, -941, -941, -941, 701, 701, -941, 664, 922,
1455 409, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1456 36, -941, -941, -941, -941, -941, -941, -941, 899, -941,
1457 -941, -941, 254, 254, 205, -941, -941, -941, -941, -941,
1458 -941, -941, -941, 254, 921, -941, -941, -941, -941, 528,
1459 -941, -941, 205, 925, 528, -941, -941, -941, -941, -941,
1460 212, -941, 553, 851, 1183, 254, -941, -941, -941, 26,
1461 -941, -941, -941, -941, -941, -941, -941, 694, 854, -941,
1462 -941, -941, -941, 834, 2845, -941, 677, 679, 684, -941,
1463 688, 692, 875, -941, -941, -941, -941, 145, 716, -941,
1464 -941, 10, -941, 254, -941, 847, 254, -941, -941, -941,
1465 6, 409, -941, -941, -941, 703, -941, -941, 934, -941,
1466 -941, 254, 254, 254, -941, 215, -941, -941, -941, -941,
1467 -941, 1584, 756, 876, -941, 61, 72, 888, 857, -941,
1468 -941, -941, -941, -941, 254, 254, 254, 254, 298, 254,
1469 -941, -941, -941, 254, -941, -941, -941, -941, 75, -941,
1470 -941, -941, -941, 254, -941, -941, 890, -941, -941, -941,
1477 static const yytype_uint16 yydefact[] =
1479 2, 0, 1, 0, 4, 5, 0, 0, 197, 197,
1480 197, 197, 197, 197, 201, 204, 197, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 99, 203, 202,
1482 199, 200, 0, 197, 197, 12, 11, 3, 0, 15,
1483 0, 198, 0, 214, 0, 10, 0, 192, 0, 28,
1484 30, 0, 0, 133, 0, 150, 16, 197, 17, 197,
1485 197, 197, 197, 197, 0, 197, 197, 18, 197, 19,
1486 197, 197, 197, 197, 197, 197, 0, 197, 197, 20,
1487 197, 218, 197, 218, 218, 197, 197, 218, 218, 0,
1488 0, 197, 218, 218, 197, 21, 197, 218, 218, 197,
1489 22, 197, 197, 197, 197, 218, 0, 23, 197, 24,
1490 0, 0, 377, 193, 194, 195, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 525,
1493 526, 527, 528, 529, 530, 531, 532, 533, 534, 535,
1494 536, 537, 538, 539, 540, 541, 542, 0, 0, 0,
1495 0, 0, 0, 0, 27, 375, 374, 378, 379, 113,
1496 388, 383, 517, 386, 387, 384, 385, 380, 584, 585,
1497 586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
1498 596, 597, 598, 599, 381, 724, 725, 726, 727, 728,
1499 729, 730, 382, 0, 111, 112, 25, 97, 100, 26,
1500 101, 197, 0, 37, 285, 14, 13, 205, 206, 0,
1501 215, 0, 510, 511, 512, 0, 0, 515, 368, 0,
1502 0, 254, 262, 0, 285, 305, 312, 313, 329, 335,
1503 351, 0, 0, 546, 7, 33, 220, 222, 223, 225,
1504 244, 228, 252, 231, 260, 232, 233, 234, 306, 235,
1505 0, 238, 328, 239, 334, 240, 241, 236, 349, 242,
1506 227, 0, 226, 401, 404, 406, 408, 410, 411, 420,
1507 422, 0, 421, 372, 243, 517, 230, 237, 229, 380,
1508 8, 0, 0, 0, 32, 208, 0, 36, 144, 143,
1509 0, 0, 0, 42, 44, 133, 0, 150, 197, 49,
1510 285, 0, 54, 55, 56, 57, 0, 58, 197, 60,
1511 61, 63, 219, 64, 65, 66, 197, 67, 69, 80,
1512 79, 76, 197, 218, 197, 72, 197, 70, 197, 73,
1513 75, 85, 197, 83, 197, 86, 88, 89, 90, 91,
1514 92, 94, 197, 0, 601, 602, 603, 376, 0, 394,
1515 395, 396, 397, 398, 400, 0, 605, 606, 607, 604,
1516 612, 609, 610, 611, 608, 614, 615, 616, 617, 618,
1517 613, 630, 631, 625, 620, 621, 622, 623, 624, 626,
1518 627, 628, 629, 619, 633, 636, 635, 634, 637, 638,
1519 639, 632, 648, 649, 641, 642, 643, 645, 644, 646,
1520 647, 640, 651, 656, 653, 652, 657, 655, 654, 658,
1521 650, 661, 664, 660, 662, 663, 659, 667, 666, 665,
1522 669, 670, 671, 668, 675, 676, 673, 674, 672, 681,
1523 678, 679, 680, 677, 693, 687, 690, 691, 685, 686,
1524 688, 689, 692, 694, 0, 682, 718, 716, 717, 715,
1525 723, 720, 721, 722, 719, 737, 736, 735, 738, 556,
1526 557, 555, 734, 0, 739, 742, 741, 733, 732, 731,
1527 749, 746, 744, 745, 747, 748, 743, 752, 751, 750,
1528 756, 755, 758, 754, 757, 753, 518, 521, 522, 523,
1529 524, 516, 519, 520, 559, 562, 563, 561, 575, 573,
1530 572, 574, 558, 564, 550, 549, 0, 420, 0, 0,
1531 761, 760, 762, 763, 764, 759, 373, 0, 96, 102,
1532 103, 105, 104, 107, 108, 106, 109, 455, 210, 0,
1533 447, 38, 283, 284, 0, 449, 39, 213, 364, 365,
1534 0, 513, 514, 518, 516, 559, 558, 0, 294, 0,
1535 0, 0, 0, 6, 0, 0, 424, 0, 221, 224,
1536 0, 0, 253, 256, 0, 0, 0, 0, 0, 0,
1537 261, 263, 0, 304, 0, 415, 488, 0, 480, 483,
1538 484, 481, 487, 498, 482, 499, 497, 496, 500, 494,
1539 495, 493, 501, 502, 486, 485, 503, 477, 478, 0,
1540 317, 320, 311, 489, 490, 314, 416, 417, 418, 318,
1541 468, 470, 472, 474, 0, 479, 491, 492, 319, 0,
1542 346, 347, 348, 327, 332, 344, 0, 333, 338, 0,
1543 358, 359, 350, 352, 355, 356, 0, 0, 0, 369,
1544 0, 0, 0, 0, 0, 0, 0, 0, 504, 505,
1545 506, 507, 508, 509, 0, 480, 483, 484, 481, 498,
1546 482, 499, 497, 496, 500, 494, 495, 493, 501, 502,
1547 489, 490, 463, 464, 457, 456, 475, 462, 465, 0,
1548 0, 0, 0, 445, 444, 116, 127, 134, 151, 0,
1549 216, 41, 0, 0, 0, 48, 0, 455, 50, 51,
1550 53, 59, 455, 68, 78, 77, 197, 81, 71, 74,
1551 84, 87, 93, 95, 0, 0, 393, 391, 392, 390,
1552 698, 705, 695, 697, 696, 700, 701, 702, 703, 704,
1553 699, 706, 684, 0, 565, 566, 568, 567, 569, 570,
1554 560, 571, 0, 0, 547, 389, 98, 110, 0, 0,
1555 0, 0, 360, 362, 0, 0, 0, 571, 0, 255,
1556 292, 293, 0, 291, 0, 341, 343, 441, 7, 7,
1557 433, 435, 475, 440, 7, 423, 217, 258, 259, 257,
1558 276, 275, 0, 0, 274, 270, 265, 266, 267, 268,
1559 271, 269, 264, 0, 0, 0, 0, 324, 0, 321,
1560 0, 0, 0, 326, 0, 0, 0, 0, 0, 0,
1561 0, 0, 0, 0, 336, 354, 353, 0, 371, 432,
1562 0, 430, 0, 370, 402, 403, 405, 407, 409, 412,
1563 0, 7, 245, 419, 0, 0, 0, 0, 458, 544,
1564 583, 9, 0, 0, 0, 0, 212, 116, 127, 134,
1565 151, 0, 62, 82, 0, 399, 709, 708, 707, 710,
1566 711, 712, 713, 714, 683, 0, 547, 547, 0, 554,
1567 176, 0, 287, 286, 288, 363, 0, 439, 361, 436,
1568 545, 543, 378, 578, 579, 581, 0, 580, 0, 288,
1569 0, 427, 0, 428, 434, 426, 425, 273, 279, 280,
1570 272, 278, 0, 0, 310, 0, 325, 0, 315, 316,
1571 322, 466, 467, 469, 471, 473, 413, 414, 330, 345,
1572 337, 339, 357, 0, 431, 0, 247, 0, 0, 248,
1573 461, 460, 476, 0, 0, 0, 0, 0, 0, 0,
1574 0, 29, 118, 117, 0, 0, 0, 31, 129, 128,
1575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576 34, 136, 135, 0, 0, 0, 0, 35, 153, 152,
1577 0, 0, 0, 0, 0, 176, 0, 740, 551, 0,
1578 553, 548, 0, 446, 0, 448, 196, 438, 437, 0,
1579 0, 582, 0, 295, 290, 342, 7, 475, 442, 443,
1580 0, 307, 308, 309, 323, 331, 340, 367, 0, 0,
1581 7, 246, 459, 207, 126, 209, 133, 150, 115, 450,
1582 0, 211, 167, 167, 119, 190, 191, 189, 0, 130,
1583 131, 132, 0, 0, 0, 163, 162, 160, 161, 180,
1584 182, 183, 181, 0, 164, 165, 147, 148, 149, 0,
1585 146, 142, 0, 0, 0, 159, 43, 45, 46, 47,
1586 0, 600, 547, 0, 0, 0, 178, 177, 179, 0,
1587 576, 577, 299, 300, 301, 302, 303, 295, 0, 282,
1588 429, 277, 366, 0, 250, 249, 0, 0, 0, 167,
1589 0, 0, 0, 139, 140, 141, 137, 0, 0, 138,
1590 158, 0, 157, 0, 552, 0, 0, 40, 289, 281,
1591 0, 7, 127, 134, 151, 0, 168, 172, 188, 166,
1592 145, 0, 0, 0, 52, 0, 454, 298, 296, 297,
1593 251, 0, 0, 0, 176, 0, 0, 0, 0, 155,
1594 156, 154, 452, 451, 0, 0, 0, 0, 0, 0,
1595 170, 169, 171, 0, 174, 173, 175, 187, 0, 453,
1596 120, 121, 122, 0, 123, 124, 0, 185, 184, 125,
1601 static const yytype_int16 yypgoto[] =
1603 -941, -941, -1, -730, 5, -941, -941, 957, -941, -941,
1604 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1605 -941, -172, -941, 672, -941, 121, -288, -817, -293, -816,
1606 -291, 8, -132, -287, -813, -821, -941, -906, -941, -940,
1607 -941, -941, -929, -126, -941, -941, -941, -941, -941, 0,
1608 -186, -200, -941, -70, 74, 642, -941, 116, 47, 70,
1609 -873, -941, -941, 64, 913, 750, 432, -5, -941, -941,
1610 -226, -941, -941, -941, -941, -33, -941, -941, -941, 426,
1611 -941, -941, -941, 419, -941, -941, -941, -10, -941, 767,
1612 -741, 104, -941, -941, -66, -941, -941, -941, -941, -941,
1613 -941, -941, -941, -465, -941, -941, -941, -941, -941, -941,
1614 -941, -941, -941, -235, 201, -941, -941, -941, 385, -941,
1615 207, -941, -941, -941, -941, -941, -941, -941, 380, -941,
1616 -49, -230, -190, -16, -941, -941, -941, 310, 386, 379,
1617 389, -941, -144, -121, -941, -941, -941, -255, -941, -88,
1618 -50, -941, 261, 217, -941, -871, -941, -694, -701, -941,
1619 -941, -941, -95, 735, -93, 746, -941, -941, -941, -292,
1620 -941, 760, -267, 252, 245, 255, -941, -179, -532, -941,
1621 -941, -941, 102, -941, -839, -941, 849, -941, -43, -941,
1622 -760, -941, -941, -941, -941, -941, -941, 852, -941, -319,
1623 -941, -941, -941, -941, -41, -941, -941, -941, -941, -941,
1624 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1625 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1626 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1627 -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1628 -941, -941, -941, -941, -941, -941
1632 static const yytype_int16 yydefgoto[] =
1634 -1, 1, 958, 564, 959, 37, 38, 39, 58, 67,
1635 69, 79, 95, 100, 107, 109, 206, 209, 210, 536,
1636 756, 207, 164, 292, 954, 852, 293, 853, 296, 854,
1637 297, 1059, 1060, 300, 855, 973, 1047, 1053, 1054, 1100,
1638 1145, 1146, 992, 1055, 960, 1178, 1148, 961, 1037, 1031,
1639 165, 997, 40, 41, 52, 43, 1024, 53, 1026, 213,
1640 1032, 700, 220, 44, 302, 887, 323, 962, 246, 247,
1641 248, 249, 250, 842, 938, 939, 251, 252, 572, 573,
1642 253, 254, 580, 581, 801, 795, 910, 911, 255, 544,
1643 884, 995, 256, 772, 1089, 1087, 257, 258, 583, 259,
1644 260, 609, 610, 611, 612, 261, 262, 633, 263, 264,
1645 637, 265, 266, 634, 635, 267, 268, 642, 643, 644,
1646 645, 761, 762, 269, 550, 270, 271, 648, 649, 272,
1647 166, 167, 168, 273, 170, 729, 364, 365, 274, 275,
1648 276, 277, 278, 279, 616, 617, 618, 619, 280, 281,
1649 282, 565, 566, 830, 831, 779, 780, 888, 889, 781,
1650 1006, 692, 540, 541, 545, 546, 1030, 1154, 1078, 758,
1651 283, 684, 685, 620, 621, 622, 623, 624, 687, 625,
1652 626, 627, 688, 689, 284, 171, 501, 502, 172, 286,
1653 879, 516, 173, 174, 175, 471, 176, 512, 750, 513,
1654 894, 895, 287, 288, 177, 178, 358, 179, 369, 180,
1655 374, 181, 380, 182, 393, 183, 401, 184, 411, 185,
1656 420, 186, 426, 187, 429, 188, 433, 189, 438, 190,
1657 443, 191, 455, 742, 874, 192, 459, 193, 464, 194,
1658 195, 479, 196, 472, 197, 474, 198, 476, 199, 486,
1659 200, 489, 201, 495, 202, 525
1665 static const yytype_int16 yytable[] =
1667 35, 285, 45, 289, 299, 298, 36, 48, 285, 169,
1668 289, 322, 704, 322, 322, 705, 703, 322, 322, 527,
1669 706, 569, 322, 322, 694, 711, 682, 322, 322, 638,
1670 613, 528, 783, 899, 980, 322, 682, 216, 517, 245,
1671 217, 982, 218, 983, 840, 290, 294, 984, 901, 903,
1672 784, 680, 295, 886, 905, 3, 1070, 1020, 4, 1002,
1673 5, 680, 3, 1009, 646, 4, 1019, 5, 203, 1063,
1674 614, 518, 646, 3, 51, 42, 4, 1033, 5, 57,
1675 6, 7, 49, 42, 42, 1137, 904, 6, 7, 1049,
1676 42, 681, 769, 1101, 773, 503, 775, 1176, 6, 7,
1677 46, 681, 686, 477, 214, 882, 655, 212, 212, 810,
1678 357, 937, 686, 1050, 1051, 47, 988, 990, 1003, 807,
1679 478, 726, 809, 68, 963, 964, 965, 966, 54, 55,
1680 967, 42, 311, 303, 42, 309, 310, 934, 657, 212,
1681 212, 811, 42, 968, 312, 42, 42, 319, 320, 219,
1682 -285, 212, 212, 1177, 321, 3, 42, 1099, 4, 1125,
1683 5, 335, 526, 980, 340, 212, 341, -378, 212, 346,
1684 212, 824, 208, 212, 825, 347, 42, 305, 306, 307,
1685 6, 7, 42, 969, 1052, 751, 503, 998, 108, 315,
1686 316, 317, 629, -465, -465, -465, -465, 487, -465, -378,
1687 -465, 328, 329, 998, 285, 1133, 289, 1138, 1139, 1131,
1688 727, 728, 538, 3, 488, 1158, 4, 845, 5, 349,
1689 350, 655, 460, 1019, 1049, 551, 552, 1132, 883, 803,
1690 819, 683, 820, 998, 567, 211, 767, 656, 6, 7,
1691 804, 683, 308, 1073, 615, 461, 462, 3, 1050, 1051,
1692 4, 427, 5, 657, 1121, 805, 299, 298, 4, 285,
1693 5, 289, 539, 322, 636, 428, 299, 298, 285, 819,
1694 289, 820, 6, 7, 463, 291, 1090, 204, 205, 944,
1695 841, 537, -114, 664, 945, 212, 946, 542, 543, -126,
1696 1094, 3, 647, 456, 4, 908, 5, 701, 909, 3,
1697 832, 1073, 4, 785, 5, 1141, 710, 1142, 318, 777,
1698 1021, 1143, 1114, -379, 970, 878, 6, 7, 989, 1052,
1699 465, 1159, 980, 944, 6, 7, 352, 613, 945, 613,
1700 946, 613, 1163, 466, 680, 334, 457, 458, 1118, 113,
1701 114, 115, 439, 916, 519, -379, 1152, 920, 806, 1074,
1702 467, 1153, 473, 723, 613, 475, 928, 613, 930, 630,
1703 631, 632, 628, 539, 757, 440, 441, 614, 442, 614,
1704 1008, 614, 547, 783, 681, 947, 574, 813, 707, 332,
1705 333, 786, 212, 558, 326, 782, 561, 1073, 712, 796,
1706 843, 1140, 212, 800, 614, 557, 468, 614, 14, 15,
1707 713, 514, 682, 562, 717, 783, 613, 1074, 212, 613,
1708 718, 515, 719, 563, 1075, 861, 720, 567, 721, 947,
1709 862, 559, 848, 469, 470, 3, 582, 680, 4, 763,
1710 5, 630, 631, 632, 682, 1005, 542, 543, 28, 652,
1711 948, 517, -465, 204, 205, 949, 614, 29, 714, 614,
1712 6, 7, 1014, 30, 575, 576, 577, 578, 579, 680,
1713 359, 360, 790, 950, 244, 96, 162, 681, 722, 31,
1714 97, 98, 1113, 215, 776, 430, 434, 4, 782, 5,
1715 435, 548, 549, 99, 948, 431, 432, 653, 791, 949,
1716 542, 543, 490, 1074, 963, 964, 965, 966, 654, 681,
1717 967, 695, 792, 436, 437, 491, 951, 950, 570, 571,
1718 782, 839, 492, 968, 778, 325, 327, 866, 690, 330,
1719 331, 162, 493, 691, 337, 339, 829, 696, 494, 343,
1720 345, 885, 4, 697, 5, 1108, 892, 351, 793, 650,
1721 651, 615, 698, 615, 919, 615, 867, 361, 362, 699,
1722 1066, 363, 394, 969, 395, 724, 682, 70, 1173, 71,
1723 725, 72, 783, 752, 73, 74, 75, 743, 615, 517,
1724 517, 615, 396, 753, 397, 398, 399, 400, 613, 754,
1725 943, 680, 613, 794, 680, 680, 680, 680, 680, 931,
1726 680, 613, 682, 613, 868, 869, 870, 871, 872, 873,
1727 520, 755, 849, 850, 933, 521, 522, 683, 47, 523,
1728 524, 354, 355, 356, 680, 680, 680, 680, 614, 759,
1729 615, 681, 614, 615, 681, 681, 681, 681, 681, 760,
1730 681, 614, 782, 614, 834, 835, 366, 367, 368, 683,
1731 764, 927, 765, 517, 517, 517, 828, 517, 770, 771,
1732 777, 50, 814, 815, 681, 681, 681, 681, 768, 628,
1733 774, 628, 787, 628, 357, 940, 941, 942, 782, 788,
1734 613, 797, 680, 563, 902, 680, 890, 891, 893, 798,
1735 897, 799, 777, 336, 1068, 812, 628, 613, 480, 628,
1736 816, 851, 817, 1015, 818, 1016, 821, 14, 15, 301,
1737 640, 641, 304, 481, 639, 640, 641, 680, 822, 1018,
1738 614, 829, 681, 313, 301, 681, 482, 1035, 1036, 504,
1739 76, 827, 483, 1007, 324, 77, 782, 614, 113, 114,
1740 115, 844, 421, 1097, 1045, 1046, 1096, 28, 628, 846,
1741 1098, 628, 422, 78, 348, 856, 29, 681, 505, 423,
1742 353, 857, 30, 1105, 858, 424, 425, 3, 782, 859,
1743 4, 683, 5, 1042, 1043, 715, 484, 485, 31, 1080,
1744 1081, 1110, 59, 860, 60, 517, 630, 631, 632, 61,
1745 62, 63, 6, 7, 1056, 1057, 1058, 285, 864, 289,
1746 863, 875, 615, 876, 918, 877, 615, 683, 3, 878,
1747 881, 4, 880, 5, 101, 615, 102, 615, 1001, 655,
1748 285, 103, 289, 104, 506, 896, 105, 375, 376, 377,
1749 378, 379, 898, 6, 7, 900, 963, 964, 965, 966,
1750 914, 912, 967, 907, 913, 507, 915, 917, 508, 777,
1751 936, 509, 510, 511, 926, 968, 985, 555, 986, 987,
1752 106, 952, 991, 971, 978, 778, 993, 953, 996, 972,
1753 979, 994, 3, 999, 680, 4, 1000, 5, 1011, 974,
1754 966, 1010, 1012, 967, 1017, 1013, 505, 3, 1022, 1028,
1755 4, 1029, 5, 1038, 615, 969, 975, 6, 7, 1044,
1756 1048, 1062, 285, 1071, 289, 222, 223, 224, 225, 226,
1757 227, 615, 6, 7, 681, 1072, 1079, 766, 1088, 370,
1758 628, 371, 372, 373, 628, 782, 921, 922, 1082, 1083,
1759 1084, 1085, 1086, 628, 1092, 628, 976, 1093, 1102, 1107,
1760 1111, 1115, 1120, 974, 966, 64, 1122, 967, 1123, 285,
1761 65, 289, 506, 1124, 1023, 1025, 1025, 1126, 974, 966,
1762 975, 1127, 967, 1034, 1128, 1135, 744, 745, 66, 1039,
1763 1040, 1041, 1144, 507, 1147, 975, 508, 1167, 1180, 509,
1764 510, 511, 1061, 56, 1168, 702, 1130, 746, 981, 1065,
1765 952, 1129, 971, 978, 1064, 314, 953, 1095, 972, 979,
1766 976, 1076, 338, 1027, 299, 298, 568, 1077, 789, 802,
1767 1091, 560, 628, 1004, 1116, 976, 14, 15, 80, 81,
1768 82, 83, 299, 298, 84, 85, 1156, 86, 87, 628,
1769 88, 1119, 8, 929, 9, 342, 10, 826, 833, 11,
1770 12, 13, 837, 344, 932, 865, 14, 15, 836, 14,
1771 15, 1103, 1104, 838, 708, 906, 28, 14, 15, 935,
1772 1162, 693, 1106, 1166, 89, 29, 709, 977, 1109, 744,
1773 745, 30, 924, 1112, 747, 748, 749, 508, 923, 1076,
1774 509, 510, 511, 925, 1117, 1077, 28, 31, 554, 28,
1775 746, 0, 556, 0, 0, 29, 0, 28, 29, 0,
1776 0, 30, 0, 0, 30, 0, 29, 0, 285, 0,
1777 289, 0, 30, 0, 412, 0, 413, 31, 0, 0,
1778 31, 0, 1134, 0, 0, 1136, 0, 0, 31, 0,
1779 0, 1069, 0, 0, 414, 0, 415, 416, 0, 417,
1780 1149, 1150, 1151, 0, 0, 0, 1157, 418, 419, 0,
1781 0, 971, 978, 0, 1160, 1164, 0, 972, 979, 0,
1782 1161, 1165, 0, 1169, 1170, 1171, 1172, 1076, 1174, 0,
1783 0, 3, 1175, 1077, 4, 0, 5, 747, 748, 749,
1784 508, 90, 1179, 509, 510, 511, 91, 0, 0, 0,
1785 0, 92, 93, 110, 0, 32, 6, 7, 111, 0,
1786 33, 0, 0, 0, 94, 529, 0, 530, 221, 531,
1787 532, 0, 0, 0, 716, 496, 533, 534, 34, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 14, 15,
1789 0, 222, 223, 224, 225, 226, 227, 0, 14, 15,
1790 0, 497, 0, 955, 498, 535, 0, 228, 112, 113,
1791 114, 115, 0, 499, 0, 0, 116, 0, 0, 956,
1792 117, 0, 0, 0, 118, 0, 0, 0, 28, 0,
1793 119, 0, 0, 0, 0, 0, 0, 29, 28, 0,
1794 120, 0, 0, 30, 0, 0, 121, 29, 0, 0,
1795 0, 122, 0, 30, 123, 0, 0, 124, 125, 31,
1796 0, 126, 0, 0, 127, 0, 128, 0, 0, 31,
1797 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1798 149, 150, 151, 152, 153, 154, 155, 156, 0, 129,
1799 130, 0, 131, 132, 133, 0, 0, 134, 135, 0,
1800 0, 136, 137, 229, 139, 140, 141, 142, 143, 144,
1801 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1802 155, 156, 0, 0, 230, 0, 0, 0, 0, 231,
1803 500, 0, 0, 0, 0, 0, 232, 0, 0, 0,
1804 0, 0, 233, 3, 0, 0, 4, 234, 5, 0,
1805 0, 0, 0, 0, 0, 0, 0, 235, 0, 0,
1806 236, 237, 238, 239, 0, 110, 0, 240, 6, 7,
1807 111, 241, 242, 158, 0, 0, 0, 159, 160, 0,
1808 221, 0, 0, 0, 243, 0, 0, 161, 553, 244,
1809 957, 162, 163, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 222, 223, 224, 225, 226, 227, 0,
1811 0, 0, 0, 0, 497, 955, 0, 498, 0, 228,
1812 112, 113, 114, 115, 0, 0, 499, 0, 116, 0,
1813 0, 956, 117, 0, 0, 0, 118, 0, 0, 0,
1814 0, 0, 119, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 120, 0, 0, 0, 0, 0, 121, 0,
1816 0, 0, 0, 122, 0, 0, 123, 0, 0, 124,
1817 125, 0, 0, 126, 0, 0, 127, 0, 128, 0,
1818 0, 0, 0, 139, 140, 141, 142, 143, 144, 145,
1819 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1820 156, 129, 130, 0, 131, 132, 133, 0, 0, 134,
1821 135, 0, 0, 136, 137, 229, 139, 140, 141, 142,
1822 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
1823 153, 154, 155, 156, 0, 0, 230, 0, 0, 0,
1824 0, 231, 0, 500, 0, 0, 0, 0, 232, 0,
1825 0, 0, 0, 0, 233, 3, 0, 0, 4, 234,
1826 5, 0, 0, 0, 0, 0, 0, 0, 0, 235,
1827 0, 0, 236, 237, 238, 239, 0, 110, 0, 240,
1828 6, 7, 111, 241, 242, 158, 0, 0, 0, 159,
1829 160, 0, 221, 402, 403, 0, 243, 0, 0, 161,
1830 0, 244, 1067, 162, 163, 0, 0, 404, 0, 405,
1831 406, 407, 0, 0, 0, 222, 223, 224, 225, 226,
1832 227, 0, 0, 0, 408, 409, 410, 955, 0, 0,
1833 0, 228, 112, 113, 114, 115, 0, 0, 0, 0,
1834 116, 0, 0, 956, 117, 0, 0, 0, 118, 0,
1835 0, 0, 0, 0, 119, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 120, 0, 0, 0, 0, 0,
1837 121, 444, 0, 0, 445, 122, 0, 0, 123, 0,
1838 0, 124, 125, 0, 0, 126, 0, 446, 127, 0,
1839 128, 447, 0, 0, 448, 449, 0, 0, 0, 450,
1840 451, 452, 453, 454, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 129, 130, 0, 131, 132, 133, 0,
1842 0, 134, 135, 0, 0, 136, 137, 229, 139, 140,
1843 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1844 151, 152, 153, 154, 155, 156, 0, 0, 230, 0,
1845 0, 0, 0, 231, 0, 0, 584, 0, 0, 0,
1846 232, 0, 0, 0, 0, 0, 233, 0, 0, 0,
1847 0, 234, 585, 0, 110, 0, 0, 0, 0, 111,
1848 0, 235, 0, 0, 236, 237, 238, 239, 0, 0,
1849 0, 240, 0, 0, 0, 241, 242, 158, 0, 0,
1850 0, 159, 160, 0, 0, 586, 381, 382, 243, 0,
1851 383, 161, 0, 244, 1155, 162, 163, 0, 587, 0,
1852 384, 385, 386, 387, 388, 389, 390, 391, 392, 112,
1853 113, 114, 115, 0, 0, 0, 0, 588, 0, 0,
1854 0, 589, 0, 0, 0, 590, 0, 0, 0, 0,
1855 0, 591, 0, 0, 0, 592, 0, 0, 0, 0,
1856 0, 593, 0, 0, 0, 0, 0, 594, 0, 0,
1857 0, 0, 595, 0, 0, 596, 0, 0, 597, 598,
1858 0, 0, 599, 0, 0, 600, 730, 601, 0, 731,
1859 732, 733, 734, 735, 736, 737, 738, 739, 740, 741,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 602, 603, 0, 131, 132, 133, 0, 0, 134, 135,
1862 0, 0, 136, 137, 138, 139, 140, 141, 142, 143,
1863 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1864 154, 155, 156, 808, 0, 157, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 585,
1866 0, 110, 0, 0, 0, 0, 111, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 604, 605, 0, 606, 0, 0, 0, 0, 0,
1869 0, 0, 586, 0, 158, 0, 0, 0, 159, 160,
1870 0, 0, 0, 0, 0, 0, 607, 608, 161, 0,
1871 0, 0, 162, 163, 0, 0, 112, 113, 114, 115,
1872 0, 0, 0, 0, 588, 0, 0, 0, 589, 0,
1873 0, 0, 590, 0, 0, 0, 0, 0, 591, 0,
1874 0, 0, 592, 0, 0, 0, 0, 0, 593, 0,
1875 0, 0, 0, 0, 594, 0, 0, 0, 0, 595,
1876 0, 0, 596, 0, 0, 597, 598, 0, 0, 599,
1877 0, 0, 600, 0, 601, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 602, 603, 0,
1880 131, 132, 133, 0, 0, 134, 135, 0, 0, 136,
1881 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1882 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1883 823, 0, 157, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 585, 0, 110, 0,
1885 0, 0, 0, 111, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 604, 605,
1887 0, 606, 0, 0, 0, 0, 0, 0, 0, 586,
1888 0, 158, 0, 0, 0, 159, 160, 0, 0, 0,
1889 0, 0, 0, 607, 608, 161, 0, 0, 0, 162,
1890 163, 0, 0, 112, 113, 114, 115, 0, 0, 0,
1891 0, 588, 0, 0, 0, 589, 0, 0, 0, 590,
1892 0, 0, 0, 0, 0, 591, 0, 0, 0, 592,
1893 0, 0, 0, 0, 0, 593, 0, 0, 0, 0,
1894 0, 594, 0, 0, 0, 0, 595, 0, 0, 596,
1895 0, 0, 597, 598, 0, 0, 599, 0, 0, 600,
1896 0, 601, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 602, 603, 0, 131, 132, 133,
1899 0, 0, 134, 135, 0, 0, 136, 137, 138, 139,
1900 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1901 150, 151, 152, 153, 154, 155, 156, 0, 0, 157,
1902 658, 659, 660, 661, 662, 663, 0, 0, 0, 0,
1903 0, 0, 585, 0, 664, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 604, 605, 0, 606, 0,
1906 0, 0, 0, 0, 0, 586, 0, 0, 158, 0,
1907 0, 0, 159, 160, 0, 0, 0, 0, 0, 0,
1908 607, 608, 161, 0, 0, 0, 162, 163, 0, 112,
1909 113, 114, 115, 0, 0, 0, 0, 665, 0, 0,
1910 0, 666, 0, 0, 0, 667, 0, 0, 0, 0,
1911 0, 668, 0, 0, 0, 592, 0, 0, 0, 0,
1912 0, 669, 0, 0, 0, 0, 0, 670, 0, 0,
1913 0, 0, 671, 0, 0, 672, 0, 0, 673, 674,
1914 0, 0, 675, 0, 0, 676, 0, 677, 585, 0,
1915 110, 0, 0, 0, 0, 111, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 678, 679, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 586, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 112, 113, 114, 115, 0,
1921 0, 0, 0, 588, 0, 0, 0, 589, 0, 0,
1922 0, 590, 0, 0, 0, 0, 0, 591, 0, 0,
1923 0, 592, 0, 0, 0, 0, 0, 593, 0, 0,
1924 0, 604, 605, 594, 606, 0, 0, 0, 595, 0,
1925 0, 596, 0, 0, 597, 598, 0, 0, 599, 0,
1926 0, 600, 0, 601, 0, 0, 607, 608, 0, 0,
1927 244, 0, 162, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 602, 603, 0, 131,
1929 132, 133, 0, 0, 134, 135, 0, 0, 136, 137,
1930 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1931 148, 149, 150, 151, 152, 153, 154, 155, 156, 0,
1932 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 585, 0, 664, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 604, 605, 0,
1936 606, 0, 0, 0, 0, 0, 586, 0, 0, 0,
1937 158, 0, 0, 0, 159, 160, 0, 0, 0, 0,
1938 0, 0, 607, 608, 161, 0, 0, 0, 162, 163,
1939 112, 113, 114, 115, 585, 0, 664, 0, 665, 0,
1940 0, 0, 666, 0, 0, 0, 667, 0, 0, 0,
1941 0, 0, 668, 0, 0, 0, 592, 0, 0, 0,
1942 0, 0, 669, 0, 0, 0, 0, 586, 670, 0,
1943 0, 0, 0, 671, 0, 0, 672, 0, 0, 673,
1944 674, 0, 0, 675, 0, 0, 676, 0, 677, 0,
1945 0, 112, 113, 114, 115, 0, 0, 0, 0, 665,
1946 0, 0, 0, 666, 0, 0, 0, 667, 0, 0,
1947 0, 678, 679, 668, 0, 0, 0, 592, 0, 0,
1948 0, 0, 0, 669, 0, 0, 0, 0, 0, 670,
1949 0, 0, 0, 0, 671, 0, 0, 672, 0, 0,
1950 673, 674, 0, 0, 675, 0, 0, 676, 0, 677,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1953 0, 0, 678, 679, 0, 0, 585, 0, 664, 0,
1954 0, 0, 604, 605, 0, 606, 0, 0, 0, 0,
1955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956 0, 0, 0, 0, 0, 0, 0, 607, 608, 586,
1957 0, 244, 0, 162, 847, 0, 0, 0, 0, 0,
1958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1959 0, 0, 0, 112, 113, 114, 115, 0, 0, 0,
1960 0, 665, 0, 604, 605, 666, 606, 0, 0, 667,
1961 0, 0, 0, 0, 0, 668, 0, 0, 0, 592,
1962 0, 0, 0, 0, 0, 669, 0, 0, 607, 608,
1963 0, 670, 244, 0, 162, 0, 671, 0, 0, 672,
1964 0, 0, 673, 674, 0, 0, 675, 0, 0, 676,
1965 0, 677, 0, 0, 110, 0, 0, 0, 0, 111,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 221,
1967 0, 0, 0, 0, 678, 679, 0, 0, 0, 0,
1968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1969 0, 0, 222, 223, 224, 225, 226, 227, 0, 0,
1970 0, 0, 0, 0, 0, 0, 0, 0, 228, 112,
1971 113, 114, 115, 0, 0, 0, 0, 116, 0, 0,
1972 0, 117, 0, 0, 0, 118, 0, 0, 0, 0,
1973 0, 119, 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 120, 0, 0, 0, 604, 605, 121, 606, 0,
1975 0, 0, 122, 0, 0, 123, 0, 0, 124, 125,
1976 0, 0, 126, 0, 0, 127, 0, 128, 0, 0,
1977 607, 608, 0, 0, 0, 0, 162, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1979 129, 130, 0, 131, 132, 133, 0, 0, 134, 135,
1980 0, 0, 136, 137, 229, 139, 140, 141, 142, 143,
1981 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1982 154, 155, 156, 0, 0, 230, 0, 0, 0, 0,
1983 231, 0, 0, 0, 0, 0, 0, 232, 0, 110,
1984 0, 0, 0, 233, 111, 0, 0, 0, 234, 0,
1985 0, 0, 0, 0, 0, 0, 0, 0, 235, 0,
1986 0, 236, 237, 238, 239, 0, 0, 0, 240, 0,
1987 0, 0, 241, 242, 158, 0, 0, 0, 159, 160,
1988 0, 0, 0, 0, 0, 243, 0, 0, 161, 0,
1989 244, 0, 162, 163, 112, 113, 114, 115, 0, 0,
1990 0, 0, 116, 0, 0, 0, 117, 0, 0, 0,
1991 118, 0, 0, 0, 0, 0, 119, 0, 0, 0,
1992 0, 0, 0, 0, 0, 0, 120, 0, 0, 0,
1993 0, 0, 121, 0, 0, 0, 0, 122, 0, 0,
1994 123, 0, 0, 124, 125, 0, 0, 126, 0, 0,
1995 127, 0, 128, 0, 0, 0, 0, 110, 0, 0,
1996 0, 0, 111, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 129, 130, 0, 131, 132,
1998 133, 0, 0, 134, 135, 0, 0, 136, 137, 138,
1999 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2000 149, 150, 151, 152, 153, 154, 155, 156, 0, 0,
2001 157, 0, 112, 113, 114, 115, 0, 0, 0, 0,
2002 116, 0, 0, 0, 117, 0, 0, 0, 118, 0,
2003 0, 0, 0, 0, 119, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 120, 0, 0, 0, 0, 0,
2005 121, 0, 0, 0, 0, 122, 0, 0, 123, 158,
2006 0, 124, 125, 159, 160, 126, 0, 0, 127, 0,
2007 128, 0, 0, 161, 0, 244, 0, 162, 163, 0,
2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2009 0, 0, 0, 129, 130, 0, 131, 132, 133, 664,
2010 0, 134, 135, 0, 0, 136, 137, 138, 139, 140,
2011 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2012 151, 152, 153, 154, 155, 156, 0, 0, 157, 0,
2013 586, 0, 0, 0, 0, 0, 0, 222, 223, 224,
2014 225, 226, 227, 0, 0, 0, 0, 0, 0, 0,
2015 0, 0, 0, 0, 112, 113, 114, 115, 0, 0,
2016 0, 0, 665, 664, 0, 0, 666, 0, 0, 0,
2017 667, 0, 0, 0, 0, 0, 668, 158, 0, 0,
2018 592, 159, 160, 0, 0, 0, 669, 0, 0, 0,
2019 0, 161, 670, 0, 586, 162, 163, 671, 0, 0,
2020 672, 0, 0, 673, 674, 0, 0, 675, 0, 0,
2021 676, 0, 677, 0, 0, 0, 0, 0, 112, 113,
2022 114, 115, 0, 0, 0, 0, 665, 0, 0, 0,
2023 666, 0, 0, 0, 667, 678, 679, 0, 0, 0,
2024 668, 0, 0, 0, 592, 0, 0, 0, 0, 0,
2025 669, 0, 0, 0, 0, 0, 670, 0, 0, 0,
2026 0, 671, 0, 0, 672, 0, 0, 673, 674, 0,
2027 0, 675, 0, 0, 676, 0, 677, 0, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
2029 3, 0, 0, 4, 0, 5, 0, 0, 0, 678,
2030 679, 0, 0, 0, 0, 0, 604, 605, 0, 606,
2031 0, 0, 0, 0, 0, 6, 7, 0, 0, 0,
2032 8, 0, 9, 0, 10, 0, 0, 11, 12, 13,
2033 0, 607, 608, 0, 14, 15, 16, 162, 17, 18,
2034 19, 20, 21, 22, 23, 24, 25, 26, 27, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0, -197, 0,
2037 604, 605, 0, 606, 28, 0, 0, 0, 0, 0,
2038 0, 0, 0, 29, 0, 0, 0, 0, 0, 30,
2039 0, 0, 0, 0, 0, 607, 608, 0, 0, 0,
2040 0, 162, 0, 0, 0, 31, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 0, 0, 0, 0, 34
2053 static const yytype_int16 yycheck[] =
2055 1, 44, 3, 44, 54, 54, 1, 7, 51, 25,
2056 51, 81, 305, 83, 84, 306, 304, 87, 88, 163,
2057 307, 247, 92, 93, 291, 316, 281, 97, 98, 264,
2058 260, 203, 564, 774, 855, 105, 291, 38, 159, 44,
2059 40, 858, 42, 859, 23, 46, 51, 860, 778, 779,
2060 7, 281, 52, 70, 784, 1, 985, 7, 4, 20,
2061 6, 291, 1, 902, 31, 4, 937, 6, 43, 975,
2062 260, 159, 31, 1, 10, 1, 4, 950, 6, 35,
2063 26, 27, 8, 9, 10, 79, 780, 26, 27, 79,
2064 16, 281, 557, 1033, 559, 138, 561, 22, 26, 27,
2065 80, 291, 281, 102, 34, 79, 8, 33, 34, 8,
2066 110, 841, 291, 103, 104, 79, 876, 877, 79, 584,
2067 119, 89, 587, 35, 70, 71, 72, 73, 12, 13,
2068 76, 57, 68, 59, 60, 65, 66, 831, 40, 65,
2069 66, 40, 68, 89, 70, 71, 72, 77, 78, 250,
2070 78, 77, 78, 78, 80, 1, 82, 1030, 4, 1099,
2071 6, 91, 162, 984, 94, 91, 96, 8, 94, 99,
2072 96, 636, 79, 99, 639, 101, 102, 61, 62, 63,
2073 26, 27, 108, 129, 174, 504, 229, 888, 33, 73,
2074 74, 75, 67, 15, 16, 17, 18, 102, 20, 40,
2075 22, 85, 86, 904, 247, 1111, 247, 201, 202, 199,
2076 178, 179, 212, 1, 119, 1144, 4, 7, 6, 103,
2077 104, 8, 109, 1094, 79, 225, 226, 217, 202, 110,
2078 20, 281, 22, 934, 251, 79, 555, 24, 26, 27,
2079 121, 291, 79, 89, 260, 132, 133, 1, 103, 104,
2080 4, 112, 6, 40, 1093, 136, 306, 306, 4, 302,
2081 6, 302, 201, 333, 67, 126, 316, 316, 311, 20,
2082 311, 22, 26, 27, 161, 258, 1006, 252, 253, 33,
2083 259, 211, 259, 23, 38, 211, 40, 215, 216, 259,
2084 1020, 1, 259, 89, 4, 112, 6, 302, 115, 1,
2085 259, 89, 4, 260, 6, 1122, 311, 1123, 79, 564,
2086 260, 1124, 1072, 8, 260, 246, 26, 27, 249, 174,
2087 89, 260, 1143, 33, 26, 27, 31, 557, 38, 559,
2088 40, 561, 260, 102, 564, 79, 132, 133, 1079, 79,
2089 80, 81, 109, 808, 245, 40, 131, 812, 229, 195,
2090 119, 136, 166, 353, 584, 166, 821, 587, 823, 234,
2091 235, 236, 260, 201, 536, 132, 133, 557, 135, 559,
2092 902, 561, 78, 905, 564, 129, 129, 612, 308, 31,
2093 32, 567, 308, 213, 31, 564, 67, 89, 318, 575,
2094 657, 1121, 318, 579, 584, 200, 165, 587, 45, 46,
2095 326, 234, 657, 67, 334, 937, 636, 195, 334, 639,
2096 336, 244, 338, 4, 260, 707, 342, 251, 344, 129,
2097 712, 200, 689, 192, 193, 1, 228, 657, 4, 550,
2098 6, 234, 235, 236, 689, 900, 215, 216, 85, 17,
2099 194, 562, 264, 252, 253, 199, 636, 94, 332, 639,
2100 26, 27, 917, 100, 207, 208, 209, 210, 211, 689,
2101 87, 88, 60, 217, 259, 199, 261, 657, 352, 116,
2102 204, 205, 260, 0, 562, 119, 105, 4, 657, 6,
2103 109, 47, 48, 217, 194, 129, 130, 18, 86, 199,
2104 215, 216, 89, 195, 70, 71, 72, 73, 264, 689,
2105 76, 259, 100, 132, 133, 102, 260, 217, 201, 202,
2106 689, 655, 109, 89, 564, 83, 84, 76, 38, 87,
2107 88, 261, 119, 38, 92, 93, 647, 259, 125, 97,
2108 98, 761, 4, 259, 6, 7, 766, 105, 136, 15,
2109 16, 557, 259, 559, 811, 561, 105, 174, 175, 42,
2110 260, 178, 89, 129, 91, 7, 811, 31, 260, 33,
2111 8, 35, 1094, 245, 38, 39, 40, 265, 584, 690,
2112 691, 587, 109, 245, 111, 112, 113, 114, 808, 78,
2113 847, 811, 812, 181, 814, 815, 816, 817, 818, 824,
2114 820, 821, 847, 823, 153, 154, 155, 156, 157, 158,
2115 162, 263, 690, 691, 830, 167, 168, 657, 79, 171,
2116 172, 82, 83, 84, 844, 845, 846, 847, 808, 78,
2117 636, 811, 812, 639, 814, 815, 816, 817, 818, 78,
2118 820, 821, 811, 823, 650, 651, 87, 88, 89, 689,
2119 38, 820, 38, 764, 765, 766, 646, 768, 215, 216,
2120 905, 9, 15, 16, 844, 845, 846, 847, 38, 557,
2121 78, 559, 78, 561, 664, 844, 845, 846, 847, 78,
2122 900, 78, 902, 4, 5, 905, 764, 765, 766, 78,
2123 768, 78, 937, 31, 260, 5, 584, 917, 91, 587,
2124 17, 692, 18, 928, 264, 930, 5, 45, 46, 57,
2125 239, 240, 60, 106, 238, 239, 240, 937, 7, 935,
2126 900, 832, 902, 71, 72, 905, 119, 61, 62, 79,
2127 194, 7, 125, 902, 82, 199, 905, 917, 79, 80,
2128 81, 7, 102, 1026, 74, 75, 1024, 85, 636, 8,
2129 1027, 639, 112, 217, 102, 78, 94, 937, 108, 119,
2130 108, 259, 100, 1044, 259, 125, 126, 1, 937, 259,
2131 4, 811, 6, 963, 964, 333, 169, 170, 116, 999,
2132 1000, 1062, 31, 259, 33, 896, 234, 235, 236, 38,
2133 39, 40, 26, 27, 68, 69, 70, 830, 78, 830,
2134 716, 78, 808, 78, 810, 78, 812, 847, 1, 246,
2135 202, 4, 259, 6, 31, 821, 33, 823, 896, 8,
2136 853, 38, 853, 40, 174, 38, 43, 95, 96, 97,
2137 98, 99, 78, 26, 27, 30, 70, 71, 72, 73,
2138 54, 89, 76, 115, 89, 195, 89, 5, 198, 1094,
2139 840, 201, 202, 203, 78, 89, 259, 79, 7, 266,
2140 77, 852, 78, 854, 855, 905, 78, 852, 79, 854,
2141 855, 218, 1, 7, 1094, 4, 7, 6, 79, 72,
2142 73, 7, 79, 76, 260, 79, 108, 1, 263, 79,
2143 4, 79, 6, 79, 900, 129, 89, 26, 27, 258,
2144 78, 258, 935, 78, 935, 61, 62, 63, 64, 65,
2145 66, 917, 26, 27, 1094, 78, 78, 38, 214, 89,
2146 808, 91, 92, 93, 812, 1094, 814, 815, 222, 223,
2147 224, 225, 226, 821, 260, 823, 129, 5, 29, 8,
2148 5, 80, 78, 72, 73, 194, 259, 76, 259, 982,
2149 199, 982, 174, 259, 944, 945, 946, 259, 72, 73,
2150 89, 259, 76, 954, 79, 108, 87, 88, 217, 960,
2151 961, 962, 259, 195, 30, 89, 198, 79, 78, 201,
2152 202, 203, 973, 16, 117, 303, 1108, 108, 857, 980,
2153 981, 1107, 983, 984, 976, 72, 981, 1020, 983, 984,
2154 129, 992, 31, 946, 1044, 1044, 246, 992, 572, 580,
2155 1010, 234, 900, 899, 1074, 129, 45, 46, 31, 32,
2156 33, 34, 1062, 1062, 37, 38, 260, 40, 41, 917,
2157 43, 1087, 31, 822, 33, 31, 35, 642, 648, 38,
2158 39, 40, 653, 31, 827, 725, 45, 46, 652, 45,
2159 46, 1042, 1043, 654, 309, 784, 85, 45, 46, 832,
2160 1145, 291, 1053, 1146, 77, 94, 310, 260, 1059, 87,
2161 88, 100, 817, 1064, 195, 196, 197, 198, 816, 1070,
2162 201, 202, 203, 818, 1075, 1070, 85, 116, 229, 85,
2163 108, -1, 230, -1, -1, 94, -1, 85, 94, -1,
2164 -1, 100, -1, -1, 100, -1, 94, -1, 1141, -1,
2165 1141, -1, 100, -1, 89, -1, 91, 116, -1, -1,
2166 116, -1, 1113, -1, -1, 1116, -1, -1, 116, -1,
2167 -1, 260, -1, -1, 109, -1, 111, 112, -1, 114,
2168 1131, 1132, 1133, -1, -1, -1, 260, 122, 123, -1,
2169 -1, 1142, 1143, -1, 1145, 1146, -1, 1142, 1143, -1,
2170 1145, 1146, -1, 1154, 1155, 1156, 1157, 1158, 1159, -1,
2171 -1, 1, 1163, 1158, 4, -1, 6, 195, 196, 197,
2172 198, 194, 1173, 201, 202, 203, 199, -1, -1, -1,
2173 -1, 204, 205, 23, -1, 194, 26, 27, 28, -1,
2174 199, -1, -1, -1, 217, 32, -1, 34, 38, 36,
2175 37, -1, -1, -1, 31, 79, 43, 44, 217, -1,
2176 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2177 -1, 61, 62, 63, 64, 65, 66, -1, 45, 46,
2178 -1, 105, -1, 73, 108, 72, -1, 77, 78, 79,
2179 80, 81, -1, 117, -1, -1, 86, -1, -1, 89,
2180 90, -1, -1, -1, 94, -1, -1, -1, 85, -1,
2181 100, -1, -1, -1, -1, -1, -1, 94, 85, -1,
2182 110, -1, -1, 100, -1, -1, 116, 94, -1, -1,
2183 -1, 121, -1, 100, 124, -1, -1, 127, 128, 116,
2184 -1, 131, -1, -1, 134, -1, 136, -1, -1, 116,
2185 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2186 184, 185, 186, 187, 188, 189, 190, 191, -1, 159,
2187 160, -1, 162, 163, 164, -1, -1, 167, 168, -1,
2188 -1, 171, 172, 173, 174, 175, 176, 177, 178, 179,
2189 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2190 190, 191, -1, -1, 194, -1, -1, -1, -1, 199,
2191 234, -1, -1, -1, -1, -1, 206, -1, -1, -1,
2192 -1, -1, 212, 1, -1, -1, 4, 217, 6, -1,
2193 -1, -1, -1, -1, -1, -1, -1, 227, -1, -1,
2194 230, 231, 232, 233, -1, 23, -1, 237, 26, 27,
2195 28, 241, 242, 243, -1, -1, -1, 247, 248, -1,
2196 38, -1, -1, -1, 254, -1, -1, 257, 79, 259,
2197 260, 261, 262, -1, -1, -1, -1, -1, -1, -1,
2198 -1, -1, -1, 61, 62, 63, 64, 65, 66, -1,
2199 -1, -1, -1, -1, 105, 73, -1, 108, -1, 77,
2200 78, 79, 80, 81, -1, -1, 117, -1, 86, -1,
2201 -1, 89, 90, -1, -1, -1, 94, -1, -1, -1,
2202 -1, -1, 100, -1, -1, -1, -1, -1, -1, -1,
2203 -1, -1, 110, -1, -1, -1, -1, -1, 116, -1,
2204 -1, -1, -1, 121, -1, -1, 124, -1, -1, 127,
2205 128, -1, -1, 131, -1, -1, 134, -1, 136, -1,
2206 -1, -1, -1, 174, 175, 176, 177, 178, 179, 180,
2207 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2208 191, 159, 160, -1, 162, 163, 164, -1, -1, 167,
2209 168, -1, -1, 171, 172, 173, 174, 175, 176, 177,
2210 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2211 188, 189, 190, 191, -1, -1, 194, -1, -1, -1,
2212 -1, 199, -1, 234, -1, -1, -1, -1, 206, -1,
2213 -1, -1, -1, -1, 212, 1, -1, -1, 4, 217,
2214 6, -1, -1, -1, -1, -1, -1, -1, -1, 227,
2215 -1, -1, 230, 231, 232, 233, -1, 23, -1, 237,
2216 26, 27, 28, 241, 242, 243, -1, -1, -1, 247,
2217 248, -1, 38, 87, 88, -1, 254, -1, -1, 257,
2218 -1, 259, 260, 261, 262, -1, -1, 101, -1, 103,
2219 104, 105, -1, -1, -1, 61, 62, 63, 64, 65,
2220 66, -1, -1, -1, 118, 119, 120, 73, -1, -1,
2221 -1, 77, 78, 79, 80, 81, -1, -1, -1, -1,
2222 86, -1, -1, 89, 90, -1, -1, -1, 94, -1,
2223 -1, -1, -1, -1, 100, -1, -1, -1, -1, -1,
2224 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
2225 116, 109, -1, -1, 112, 121, -1, -1, 124, -1,
2226 -1, 127, 128, -1, -1, 131, -1, 125, 134, -1,
2227 136, 129, -1, -1, 132, 133, -1, -1, -1, 137,
2228 138, 139, 140, 141, -1, -1, -1, -1, -1, -1,
2229 -1, -1, -1, 159, 160, -1, 162, 163, 164, -1,
2230 -1, 167, 168, -1, -1, 171, 172, 173, 174, 175,
2231 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2232 186, 187, 188, 189, 190, 191, -1, -1, 194, -1,
2233 -1, -1, -1, 199, -1, -1, 5, -1, -1, -1,
2234 206, -1, -1, -1, -1, -1, 212, -1, -1, -1,
2235 -1, 217, 21, -1, 23, -1, -1, -1, -1, 28,
2236 -1, 227, -1, -1, 230, 231, 232, 233, -1, -1,
2237 -1, 237, -1, -1, -1, 241, 242, 243, -1, -1,
2238 -1, 247, 248, -1, -1, 54, 87, 88, 254, -1,
2239 91, 257, -1, 259, 260, 261, 262, -1, 67, -1,
2240 101, 102, 103, 104, 105, 106, 107, 108, 109, 78,
2241 79, 80, 81, -1, -1, -1, -1, 86, -1, -1,
2242 -1, 90, -1, -1, -1, 94, -1, -1, -1, -1,
2243 -1, 100, -1, -1, -1, 104, -1, -1, -1, -1,
2244 -1, 110, -1, -1, -1, -1, -1, 116, -1, -1,
2245 -1, -1, 121, -1, -1, 124, -1, -1, 127, 128,
2246 -1, -1, 131, -1, -1, 134, 139, 136, -1, 142,
2247 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 159, 160, -1, 162, 163, 164, -1, -1, 167, 168,
2250 -1, -1, 171, 172, 173, 174, 175, 176, 177, 178,
2251 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2252 189, 190, 191, 5, -1, 194, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, 21,
2254 -1, 23, -1, -1, -1, -1, 28, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 -1, 230, 231, -1, 233, -1, -1, -1, -1, -1,
2257 -1, -1, 54, -1, 243, -1, -1, -1, 247, 248,
2258 -1, -1, -1, -1, -1, -1, 255, 256, 257, -1,
2259 -1, -1, 261, 262, -1, -1, 78, 79, 80, 81,
2260 -1, -1, -1, -1, 86, -1, -1, -1, 90, -1,
2261 -1, -1, 94, -1, -1, -1, -1, -1, 100, -1,
2262 -1, -1, 104, -1, -1, -1, -1, -1, 110, -1,
2263 -1, -1, -1, -1, 116, -1, -1, -1, -1, 121,
2264 -1, -1, 124, -1, -1, 127, 128, -1, -1, 131,
2265 -1, -1, 134, -1, 136, -1, -1, -1, -1, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, 159, 160, -1,
2268 162, 163, 164, -1, -1, 167, 168, -1, -1, 171,
2269 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2270 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
2271 5, -1, 194, -1, -1, -1, -1, -1, -1, -1,
2272 -1, -1, -1, -1, -1, -1, 21, -1, 23, -1,
2273 -1, -1, -1, 28, -1, -1, -1, -1, -1, -1,
2274 -1, -1, -1, -1, -1, -1, -1, -1, 230, 231,
2275 -1, 233, -1, -1, -1, -1, -1, -1, -1, 54,
2276 -1, 243, -1, -1, -1, 247, 248, -1, -1, -1,
2277 -1, -1, -1, 255, 256, 257, -1, -1, -1, 261,
2278 262, -1, -1, 78, 79, 80, 81, -1, -1, -1,
2279 -1, 86, -1, -1, -1, 90, -1, -1, -1, 94,
2280 -1, -1, -1, -1, -1, 100, -1, -1, -1, 104,
2281 -1, -1, -1, -1, -1, 110, -1, -1, -1, -1,
2282 -1, 116, -1, -1, -1, -1, 121, -1, -1, 124,
2283 -1, -1, 127, 128, -1, -1, 131, -1, -1, 134,
2284 -1, 136, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, -1, -1, 159, 160, -1, 162, 163, 164,
2287 -1, -1, 167, 168, -1, -1, 171, 172, 173, 174,
2288 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2289 185, 186, 187, 188, 189, 190, 191, -1, -1, 194,
2290 9, 10, 11, 12, 13, 14, -1, -1, -1, -1,
2291 -1, -1, 21, -1, 23, -1, -1, -1, -1, -1,
2292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, 230, 231, -1, 233, -1,
2294 -1, -1, -1, -1, -1, 54, -1, -1, 243, -1,
2295 -1, -1, 247, 248, -1, -1, -1, -1, -1, -1,
2296 255, 256, 257, -1, -1, -1, 261, 262, -1, 78,
2297 79, 80, 81, -1, -1, -1, -1, 86, -1, -1,
2298 -1, 90, -1, -1, -1, 94, -1, -1, -1, -1,
2299 -1, 100, -1, -1, -1, 104, -1, -1, -1, -1,
2300 -1, 110, -1, -1, -1, -1, -1, 116, -1, -1,
2301 -1, -1, 121, -1, -1, 124, -1, -1, 127, 128,
2302 -1, -1, 131, -1, -1, 134, -1, 136, 21, -1,
2303 23, -1, -1, -1, -1, 28, -1, -1, -1, -1,
2304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2305 159, 160, -1, -1, -1, -1, -1, -1, -1, -1,
2306 -1, 54, -1, -1, -1, -1, -1, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, -1, -1, -1, 78, 79, 80, 81, -1,
2309 -1, -1, -1, 86, -1, -1, -1, 90, -1, -1,
2310 -1, 94, -1, -1, -1, -1, -1, 100, -1, -1,
2311 -1, 104, -1, -1, -1, -1, -1, 110, -1, -1,
2312 -1, 230, 231, 116, 233, -1, -1, -1, 121, -1,
2313 -1, 124, -1, -1, 127, 128, -1, -1, 131, -1,
2314 -1, 134, -1, 136, -1, -1, 255, 256, -1, -1,
2315 259, -1, 261, -1, -1, -1, -1, -1, -1, -1,
2316 -1, -1, -1, -1, -1, -1, 159, 160, -1, 162,
2317 163, 164, -1, -1, 167, 168, -1, -1, 171, 172,
2318 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2319 183, 184, 185, 186, 187, 188, 189, 190, 191, -1,
2320 -1, 194, -1, -1, -1, -1, -1, -1, -1, -1,
2321 -1, -1, -1, 21, -1, 23, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, 230, 231, -1,
2324 233, -1, -1, -1, -1, -1, 54, -1, -1, -1,
2325 243, -1, -1, -1, 247, 248, -1, -1, -1, -1,
2326 -1, -1, 255, 256, 257, -1, -1, -1, 261, 262,
2327 78, 79, 80, 81, 21, -1, 23, -1, 86, -1,
2328 -1, -1, 90, -1, -1, -1, 94, -1, -1, -1,
2329 -1, -1, 100, -1, -1, -1, 104, -1, -1, -1,
2330 -1, -1, 110, -1, -1, -1, -1, 54, 116, -1,
2331 -1, -1, -1, 121, -1, -1, 124, -1, -1, 127,
2332 128, -1, -1, 131, -1, -1, 134, -1, 136, -1,
2333 -1, 78, 79, 80, 81, -1, -1, -1, -1, 86,
2334 -1, -1, -1, 90, -1, -1, -1, 94, -1, -1,
2335 -1, 159, 160, 100, -1, -1, -1, 104, -1, -1,
2336 -1, -1, -1, 110, -1, -1, -1, -1, -1, 116,
2337 -1, -1, -1, -1, 121, -1, -1, 124, -1, -1,
2338 127, 128, -1, -1, 131, -1, -1, 134, -1, 136,
2339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2341 -1, -1, 159, 160, -1, -1, 21, -1, 23, -1,
2342 -1, -1, 230, 231, -1, 233, -1, -1, -1, -1,
2343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2344 -1, -1, -1, -1, -1, -1, -1, 255, 256, 54,
2345 -1, 259, -1, 261, 262, -1, -1, -1, -1, -1,
2346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2347 -1, -1, -1, 78, 79, 80, 81, -1, -1, -1,
2348 -1, 86, -1, 230, 231, 90, 233, -1, -1, 94,
2349 -1, -1, -1, -1, -1, 100, -1, -1, -1, 104,
2350 -1, -1, -1, -1, -1, 110, -1, -1, 255, 256,
2351 -1, 116, 259, -1, 261, -1, 121, -1, -1, 124,
2352 -1, -1, 127, 128, -1, -1, 131, -1, -1, 134,
2353 -1, 136, -1, -1, 23, -1, -1, -1, -1, 28,
2354 -1, -1, -1, -1, -1, -1, -1, -1, -1, 38,
2355 -1, -1, -1, -1, 159, 160, -1, -1, -1, -1,
2356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2357 -1, -1, 61, 62, 63, 64, 65, 66, -1, -1,
2358 -1, -1, -1, -1, -1, -1, -1, -1, 77, 78,
2359 79, 80, 81, -1, -1, -1, -1, 86, -1, -1,
2360 -1, 90, -1, -1, -1, 94, -1, -1, -1, -1,
2361 -1, 100, -1, -1, -1, -1, -1, -1, -1, -1,
2362 -1, 110, -1, -1, -1, 230, 231, 116, 233, -1,
2363 -1, -1, 121, -1, -1, 124, -1, -1, 127, 128,
2364 -1, -1, 131, -1, -1, 134, -1, 136, -1, -1,
2365 255, 256, -1, -1, -1, -1, 261, -1, -1, -1,
2366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367 159, 160, -1, 162, 163, 164, -1, -1, 167, 168,
2368 -1, -1, 171, 172, 173, 174, 175, 176, 177, 178,
2369 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2370 189, 190, 191, -1, -1, 194, -1, -1, -1, -1,
2371 199, -1, -1, -1, -1, -1, -1, 206, -1, 23,
2372 -1, -1, -1, 212, 28, -1, -1, -1, 217, -1,
2373 -1, -1, -1, -1, -1, -1, -1, -1, 227, -1,
2374 -1, 230, 231, 232, 233, -1, -1, -1, 237, -1,
2375 -1, -1, 241, 242, 243, -1, -1, -1, 247, 248,
2376 -1, -1, -1, -1, -1, 254, -1, -1, 257, -1,
2377 259, -1, 261, 262, 78, 79, 80, 81, -1, -1,
2378 -1, -1, 86, -1, -1, -1, 90, -1, -1, -1,
2379 94, -1, -1, -1, -1, -1, 100, -1, -1, -1,
2380 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
2381 -1, -1, 116, -1, -1, -1, -1, 121, -1, -1,
2382 124, -1, -1, 127, 128, -1, -1, 131, -1, -1,
2383 134, -1, 136, -1, -1, -1, -1, 23, -1, -1,
2384 -1, -1, 28, -1, -1, -1, -1, -1, -1, -1,
2385 -1, -1, -1, -1, -1, 159, 160, -1, 162, 163,
2386 164, -1, -1, 167, 168, -1, -1, 171, 172, 173,
2387 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
2388 184, 185, 186, 187, 188, 189, 190, 191, -1, -1,
2389 194, -1, 78, 79, 80, 81, -1, -1, -1, -1,
2390 86, -1, -1, -1, 90, -1, -1, -1, 94, -1,
2391 -1, -1, -1, -1, 100, -1, -1, -1, -1, -1,
2392 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
2393 116, -1, -1, -1, -1, 121, -1, -1, 124, 243,
2394 -1, 127, 128, 247, 248, 131, -1, -1, 134, -1,
2395 136, -1, -1, 257, -1, 259, -1, 261, 262, -1,
2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397 -1, -1, -1, 159, 160, -1, 162, 163, 164, 23,
2398 -1, 167, 168, -1, -1, 171, 172, 173, 174, 175,
2399 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2400 186, 187, 188, 189, 190, 191, -1, -1, 194, -1,
2401 54, -1, -1, -1, -1, -1, -1, 61, 62, 63,
2402 64, 65, 66, -1, -1, -1, -1, -1, -1, -1,
2403 -1, -1, -1, -1, 78, 79, 80, 81, -1, -1,
2404 -1, -1, 86, 23, -1, -1, 90, -1, -1, -1,
2405 94, -1, -1, -1, -1, -1, 100, 243, -1, -1,
2406 104, 247, 248, -1, -1, -1, 110, -1, -1, -1,
2407 -1, 257, 116, -1, 54, 261, 262, 121, -1, -1,
2408 124, -1, -1, 127, 128, -1, -1, 131, -1, -1,
2409 134, -1, 136, -1, -1, -1, -1, -1, 78, 79,
2410 80, 81, -1, -1, -1, -1, 86, -1, -1, -1,
2411 90, -1, -1, -1, 94, 159, 160, -1, -1, -1,
2412 100, -1, -1, -1, 104, -1, -1, -1, -1, -1,
2413 110, -1, -1, -1, -1, -1, 116, -1, -1, -1,
2414 -1, 121, -1, -1, 124, -1, -1, 127, 128, -1,
2415 -1, 131, -1, -1, 134, -1, 136, -1, -1, -1,
2416 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
2417 1, -1, -1, 4, -1, 6, -1, -1, -1, 159,
2418 160, -1, -1, -1, -1, -1, 230, 231, -1, 233,
2419 -1, -1, -1, -1, -1, 26, 27, -1, -1, -1,
2420 31, -1, 33, -1, 35, -1, -1, 38, 39, 40,
2421 -1, 255, 256, -1, 45, 46, 47, 261, 49, 50,
2422 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
2423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2424 -1, -1, -1, -1, -1, -1, -1, -1, 79, -1,
2425 230, 231, -1, 233, 85, -1, -1, -1, -1, -1,
2426 -1, -1, -1, 94, -1, -1, -1, -1, -1, 100,
2427 -1, -1, -1, -1, -1, 255, 256, -1, -1, -1,
2428 -1, 261, -1, -1, -1, 116, -1, -1, -1, -1,
2429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436 -1, -1, -1, 194, -1, -1, -1, -1, 199, -1,
2437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, 217
2443 static const yytype_uint16 yystos[] =
2445 0, 268, 0, 1, 4, 6, 26, 27, 31, 33,
2446 35, 38, 39, 40, 45, 46, 47, 49, 50, 51,
2447 52, 53, 54, 55, 56, 57, 58, 59, 85, 94,
2448 100, 116, 194, 199, 217, 269, 271, 272, 273, 274,
2449 319, 320, 321, 322, 330, 269, 80, 79, 316, 321,
2450 322, 330, 321, 324, 324, 324, 274, 35, 275, 31,
2451 33, 38, 39, 40, 194, 199, 217, 276, 35, 277,
2452 31, 33, 35, 38, 39, 40, 194, 199, 217, 278,
2453 31, 32, 33, 34, 37, 38, 40, 41, 43, 77,
2454 194, 199, 204, 205, 217, 279, 199, 204, 205, 217,
2455 280, 31, 33, 38, 40, 43, 77, 281, 33, 282,
2456 23, 28, 78, 79, 80, 81, 86, 90, 94, 100,
2457 110, 116, 121, 124, 127, 128, 131, 134, 136, 159,
2458 160, 162, 163, 164, 167, 168, 171, 172, 173, 174,
2459 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2460 185, 186, 187, 188, 189, 190, 191, 194, 243, 247,
2461 248, 257, 261, 262, 289, 317, 397, 398, 399, 400,
2462 401, 452, 455, 459, 460, 461, 463, 471, 472, 474,
2463 476, 478, 480, 482, 484, 486, 488, 490, 492, 494,
2464 496, 498, 502, 504, 506, 507, 509, 511, 513, 515,
2465 517, 519, 521, 43, 252, 253, 283, 288, 79, 284,
2466 285, 79, 321, 326, 326, 0, 269, 316, 316, 250,
2467 329, 38, 61, 62, 63, 64, 65, 66, 77, 173,
2468 194, 199, 206, 212, 217, 227, 230, 231, 232, 233,
2469 237, 241, 242, 254, 259, 334, 335, 336, 337, 338,
2470 339, 343, 344, 347, 348, 355, 359, 363, 364, 366,
2471 367, 372, 373, 375, 376, 378, 379, 382, 383, 390,
2472 392, 393, 396, 400, 405, 406, 407, 408, 409, 410,
2473 415, 416, 417, 437, 451, 455, 456, 469, 470, 471,
2474 269, 258, 290, 293, 334, 316, 295, 297, 397, 417,
2475 300, 322, 331, 321, 322, 324, 324, 324, 79, 326,
2476 326, 330, 321, 322, 331, 324, 324, 324, 79, 326,
2477 326, 321, 320, 333, 322, 333, 31, 333, 324, 324,
2478 333, 333, 31, 32, 79, 326, 31, 333, 31, 333,
2479 326, 326, 31, 333, 31, 333, 326, 321, 322, 324,
2480 324, 333, 31, 322, 82, 83, 84, 316, 473, 87,
2481 88, 174, 175, 178, 403, 404, 87, 88, 89, 475,
2482 89, 91, 92, 93, 477, 95, 96, 97, 98, 99,
2483 479, 87, 88, 91, 101, 102, 103, 104, 105, 106,
2484 107, 108, 109, 481, 89, 91, 109, 111, 112, 113,
2485 114, 483, 87, 88, 101, 103, 104, 105, 118, 119,
2486 120, 485, 89, 91, 109, 111, 112, 114, 122, 123,
2487 487, 102, 112, 119, 125, 126, 489, 112, 126, 491,
2488 119, 129, 130, 493, 105, 109, 132, 133, 495, 109,
2489 132, 133, 135, 497, 109, 112, 125, 129, 132, 133,
2490 137, 138, 139, 140, 141, 499, 89, 132, 133, 503,
2491 109, 132, 133, 161, 505, 89, 102, 119, 165, 192,
2492 193, 462, 510, 166, 512, 166, 514, 102, 119, 508,
2493 91, 106, 119, 125, 169, 170, 516, 102, 119, 518,
2494 89, 102, 109, 119, 125, 520, 79, 105, 108, 117,
2495 234, 453, 454, 455, 79, 108, 174, 195, 198, 201,
2496 202, 203, 464, 466, 234, 244, 458, 410, 416, 245,
2497 162, 167, 168, 171, 172, 522, 316, 409, 288, 32,
2498 34, 36, 37, 43, 44, 72, 286, 326, 316, 201,
2499 429, 430, 215, 216, 356, 431, 432, 78, 47, 48,
2500 391, 316, 316, 79, 453, 79, 464, 200, 213, 200,
2501 356, 67, 67, 4, 270, 418, 419, 251, 332, 337,
2502 201, 202, 345, 346, 129, 207, 208, 209, 210, 211,
2503 349, 350, 228, 365, 5, 21, 54, 67, 86, 90,
2504 94, 100, 104, 110, 116, 121, 124, 127, 128, 131,
2505 134, 136, 159, 160, 230, 231, 233, 255, 256, 368,
2506 369, 370, 371, 398, 399, 400, 411, 412, 413, 414,
2507 440, 441, 442, 443, 444, 446, 447, 448, 449, 67,
2508 234, 235, 236, 374, 380, 381, 67, 377, 380, 238,
2509 239, 240, 384, 385, 386, 387, 31, 259, 394, 395,
2510 15, 16, 17, 18, 264, 8, 24, 40, 9, 10,
2511 11, 12, 13, 14, 23, 86, 90, 94, 100, 110,
2512 116, 121, 124, 127, 128, 131, 134, 136, 159, 160,
2513 398, 399, 414, 417, 438, 439, 444, 445, 449, 450,
2514 38, 38, 428, 438, 439, 259, 259, 259, 259, 42,
2515 328, 334, 290, 293, 295, 297, 300, 326, 430, 432,
2516 334, 297, 326, 321, 324, 333, 31, 326, 321, 321,
2517 321, 321, 324, 316, 7, 8, 89, 178, 179, 402,
2518 139, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2519 151, 152, 500, 265, 87, 88, 108, 195, 196, 197,
2520 465, 466, 245, 245, 78, 263, 287, 288, 436, 78,
2521 78, 388, 389, 410, 38, 38, 38, 466, 38, 370,
2522 215, 216, 360, 370, 78, 370, 416, 414, 417, 422,
2523 423, 426, 444, 445, 7, 260, 317, 78, 78, 346,
2524 60, 86, 100, 136, 181, 352, 317, 78, 78, 78,
2525 317, 351, 350, 110, 121, 136, 229, 370, 5, 370,
2526 8, 40, 5, 380, 15, 16, 17, 18, 264, 20,
2527 22, 5, 7, 5, 370, 370, 385, 7, 316, 410,
2528 420, 421, 259, 395, 400, 400, 405, 406, 407, 409,
2529 23, 259, 340, 439, 7, 7, 8, 262, 439, 416,
2530 416, 269, 292, 294, 296, 301, 78, 259, 259, 259,
2531 259, 436, 436, 321, 78, 404, 76, 105, 153, 154,
2532 155, 156, 157, 158, 501, 78, 78, 78, 246, 457,
2533 259, 202, 79, 202, 357, 398, 70, 332, 424, 425,
2534 416, 416, 398, 416, 467, 468, 38, 416, 78, 357,
2535 30, 270, 5, 270, 424, 270, 419, 115, 112, 115,
2536 353, 354, 89, 89, 54, 89, 370, 5, 400, 439,
2537 370, 449, 449, 440, 441, 442, 78, 444, 370, 381,
2538 370, 380, 387, 337, 424, 420, 316, 270, 341, 342,
2539 444, 444, 444, 439, 33, 38, 40, 129, 194, 199,
2540 217, 260, 269, 271, 291, 73, 89, 260, 269, 271,
2541 311, 314, 334, 70, 71, 72, 73, 76, 89, 129,
2542 260, 269, 271, 302, 72, 89, 129, 260, 269, 271,
2543 302, 292, 294, 296, 301, 259, 7, 266, 457, 249,
2544 457, 78, 309, 78, 218, 358, 79, 318, 425, 7,
2545 7, 416, 20, 79, 358, 370, 427, 444, 445, 451,
2546 7, 79, 79, 79, 370, 380, 380, 260, 337, 422,
2547 7, 260, 263, 316, 323, 316, 325, 325, 79, 79,
2548 433, 316, 327, 327, 269, 61, 62, 315, 79, 269,
2549 269, 269, 318, 318, 258, 74, 75, 303, 78, 79,
2550 103, 104, 174, 304, 305, 310, 68, 69, 70, 298,
2551 299, 269, 258, 304, 298, 269, 260, 260, 260, 260,
2552 309, 78, 78, 89, 195, 260, 269, 271, 435, 78,
2553 398, 398, 222, 223, 224, 225, 226, 362, 214, 361,
2554 270, 354, 260, 5, 270, 342, 293, 295, 300, 327,
2555 306, 306, 29, 269, 269, 297, 269, 8, 7, 269,
2556 297, 5, 269, 260, 457, 80, 320, 269, 357, 361,
2557 78, 451, 259, 259, 259, 306, 259, 259, 79, 310,
2558 299, 199, 217, 304, 269, 108, 269, 79, 201, 202,
2559 270, 294, 296, 301, 259, 307, 308, 30, 313, 269,
2560 269, 269, 131, 136, 434, 260, 260, 260, 309, 260,
2561 269, 271, 429, 260, 269, 271, 431, 79, 117, 269,
2562 269, 269, 269, 260, 269, 269, 22, 78, 312, 269,
2567 static const yytype_uint16 yyr1[] =
2569 0, 267, 268, 268, 269, 269, 270, 270, 271, 271,
2570 271, 272, 272, 272, 272, 273, 273, 273, 273, 273,
2571 273, 273, 273, 273, 273, 273, 273, 273, 274, 274,
2572 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
2573 274, 275, 276, 276, 276, 276, 276, 276, 276, 276,
2574 276, 276, 276, 277, 278, 278, 278, 278, 278, 278,
2575 278, 278, 278, 279, 279, 279, 279, 279, 279, 279,
2576 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
2577 279, 279, 279, 280, 280, 280, 280, 280, 280, 281,
2578 281, 281, 281, 281, 281, 282, 283, 283, 284, 285,
2579 285, 286, 286, 286, 286, 286, 286, 286, 286, 287,
2580 287, 288, 288, 289, 290, 291, 292, 292, 292, 292,
2581 292, 292, 292, 292, 292, 292, 293, 294, 294, 294,
2582 294, 294, 294, 295, 296, 296, 296, 296, 296, 296,
2583 296, 296, 296, 297, 297, 298, 298, 299, 299, 299,
2584 300, 301, 301, 301, 301, 301, 301, 301, 301, 301,
2585 302, 302, 303, 303, 304, 305, 305, 306, 307, 307,
2586 307, 307, 308, 308, 308, 308, 309, 309, 309, 309,
2587 310, 310, 310, 310, 311, 312, 312, 313, 313, 314,
2588 315, 315, 316, 317, 317, 317, 318, 319, 319, 320,
2589 320, 320, 320, 320, 320, 321, 322, 323, 324, 325,
2590 326, 327, 328, 329, 330, 330, 331, 332, 333, 333,
2591 334, 334, 335, 336, 336, 337, 337, 337, 337, 337,
2592 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
2593 337, 337, 337, 338, 338, 339, 340, 340, 341, 341,
2594 341, 342, 343, 343, 344, 344, 345, 345, 346, 346,
2595 347, 347, 348, 349, 349, 350, 350, 350, 350, 350,
2596 350, 351, 352, 352, 352, 352, 352, 353, 353, 354,
2597 354, 355, 355, 356, 356, 356, 357, 357, 358, 358,
2598 359, 359, 360, 360, 360, 361, 361, 361, 361, 362,
2599 362, 362, 362, 362, 363, 364, 365, 365, 365, 365,
2600 365, 366, 367, 367, 368, 368, 369, 370, 370, 370,
2601 371, 371, 371, 371, 371, 371, 371, 372, 372, 373,
2602 374, 374, 374, 375, 375, 376, 377, 377, 377, 377,
2603 377, 378, 378, 379, 380, 380, 381, 381, 381, 382,
2604 382, 383, 384, 384, 385, 385, 386, 386, 387, 387,
2605 388, 388, 389, 390, 391, 391, 392, 392, 393, 394,
2606 394, 395, 396, 397, 398, 398, 398, 399, 400, 400,
2607 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
2608 401, 402, 402, 402, 403, 403, 403, 403, 403, 404,
2609 404, 405, 405, 405, 406, 406, 407, 407, 408, 408,
2610 409, 410, 410, 411, 412, 413, 414, 414, 414, 415,
2611 416, 416, 416, 417, 418, 418, 418, 419, 419, 419,
2612 420, 420, 421, 422, 422, 423, 424, 424, 425, 425,
2613 426, 426, 427, 427, 428, 428, 429, 430, 431, 432,
2614 433, 434, 434, 435, 435, 436, 437, 437, 437, 437,
2615 438, 438, 439, 439, 439, 440, 440, 440, 441, 441,
2616 442, 442, 443, 443, 444, 445, 445, 446, 446, 447,
2617 448, 448, 448, 448, 448, 448, 448, 448, 448, 449,
2618 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
2619 449, 449, 449, 449, 450, 450, 450, 450, 450, 450,
2620 451, 451, 451, 451, 451, 451, 452, 452, 452, 453,
2621 453, 454, 454, 454, 454, 455, 455, 455, 455, 455,
2622 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
2623 455, 455, 455, 456, 456, 456, 456, 457, 457, 458,
2624 458, 459, 460, 460, 460, 461, 462, 462, 463, 463,
2625 463, 464, 464, 464, 464, 465, 465, 465, 465, 465,
2626 465, 465, 466, 466, 466, 466, 467, 467, 468, 468,
2627 469, 469, 469, 470, 471, 471, 471, 471, 471, 471,
2628 471, 471, 471, 471, 471, 471, 471, 471, 471, 471,
2629 472, 473, 473, 473, 474, 475, 475, 475, 476, 477,
2630 477, 477, 477, 478, 479, 479, 479, 479, 479, 480,
2631 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
2632 481, 481, 482, 483, 483, 483, 483, 483, 483, 483,
2633 484, 485, 485, 485, 485, 485, 485, 485, 485, 485,
2634 486, 487, 487, 487, 487, 487, 487, 487, 487, 488,
2635 489, 489, 489, 489, 489, 490, 491, 491, 492, 493,
2636 493, 493, 494, 495, 495, 495, 495, 496, 497, 497,
2637 497, 497, 498, 498, 498, 499, 499, 499, 499, 499,
2638 499, 499, 499, 499, 499, 500, 500, 500, 500, 500,
2639 500, 500, 500, 500, 500, 500, 500, 501, 501, 501,
2640 501, 501, 501, 501, 501, 502, 503, 503, 503, 504,
2641 505, 505, 505, 505, 506, 506, 506, 506, 506, 506,
2642 506, 507, 508, 508, 509, 510, 510, 510, 510, 511,
2643 512, 513, 514, 515, 516, 516, 516, 516, 516, 516,
2644 517, 518, 518, 519, 520, 520, 520, 520, 520, 521,
2645 522, 522, 522, 522, 522
2649 static const yytype_uint8 yyr2[] =
2651 0, 2, 0, 2, 1, 1, 1, 0, 3, 5,
2652 2, 1, 1, 2, 2, 1, 2, 2, 2, 2,
2653 2, 2, 2, 2, 2, 2, 2, 2, 2, 6,
2654 2, 6, 3, 2, 6, 6, 3, 2, 3, 3,
2655 8, 3, 2, 6, 2, 6, 6, 6, 3, 2,
2656 3, 3, 8, 3, 2, 2, 2, 2, 2, 3,
2657 2, 2, 4, 2, 2, 2, 2, 2, 3, 2,
2658 2, 3, 2, 2, 3, 2, 2, 3, 3, 2,
2659 2, 3, 4, 2, 3, 2, 2, 3, 2, 2,
2660 2, 2, 2, 3, 2, 3, 2, 1, 3, 0,
2661 1, 0, 1, 1, 1, 1, 1, 1, 1, 0,
2662 1, 1, 1, 1, 0, 2, 0, 2, 2, 3,
2663 8, 8, 8, 8, 8, 9, 0, 0, 2, 2,
2664 3, 3, 3, 0, 0, 2, 2, 4, 4, 4,
2665 4, 4, 3, 1, 1, 3, 1, 1, 1, 1,
2666 0, 0, 2, 2, 6, 6, 6, 4, 4, 3,
2667 2, 2, 1, 1, 1, 1, 3, 0, 0, 2,
2668 2, 2, 0, 2, 2, 2, 0, 2, 2, 2,
2669 1, 1, 1, 1, 7, 1, 2, 2, 0, 2,
2670 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
2671 1, 1, 1, 1, 1, 2, 2, 1, 2, 1,
2672 2, 1, 2, 2, 1, 2, 2, 2, 0, 1,
2673 1, 2, 1, 1, 2, 1, 1, 1, 1, 1,
2674 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2675 1, 1, 1, 1, 1, 3, 3, 2, 1, 3,
2676 3, 5, 1, 2, 1, 3, 1, 2, 2, 2,
2677 1, 2, 1, 1, 2, 2, 2, 2, 2, 2,
2678 2, 1, 2, 2, 1, 1, 1, 3, 1, 1,
2679 1, 7, 6, 1, 1, 0, 1, 1, 0, 3,
2680 5, 3, 1, 1, 0, 0, 3, 3, 3, 1,
2681 1, 1, 1, 1, 2, 1, 0, 4, 4, 4,
2682 3, 2, 1, 1, 1, 3, 3, 1, 1, 1,
2683 1, 2, 3, 4, 2, 3, 2, 2, 1, 1,
2684 3, 4, 1, 2, 1, 1, 2, 3, 1, 3,
2685 4, 3, 5, 3, 1, 3, 1, 1, 1, 1,
2686 2, 1, 1, 2, 2, 1, 1, 3, 1, 1,
2687 1, 2, 1, 4, 1, 1, 6, 5, 1, 1,
2688 2, 2, 1, 2, 1, 1, 2, 1, 1, 1,
2689 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
2690 3, 1, 1, 1, 1, 1, 1, 1, 1, 3,
2691 1, 1, 3, 3, 1, 3, 1, 3, 1, 3,
2692 1, 1, 3, 3, 3, 1, 1, 1, 1, 3,
2693 1, 1, 1, 3, 1, 3, 3, 3, 3, 5,
2694 1, 2, 1, 1, 2, 1, 1, 2, 2, 1,
2695 1, 1, 1, 1, 1, 1, 4, 1, 4, 1,
2696 1, 1, 1, 5, 3, 0, 2, 2, 3, 5,
2697 3, 3, 1, 1, 1, 1, 3, 3, 1, 3,
2698 1, 3, 1, 3, 1, 1, 3, 1, 1, 1,
2699 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2700 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2701 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2702 1, 1, 1, 2, 2, 1, 2, 1, 2, 1,
2703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2705 1, 1, 1, 4, 3, 4, 1, 0, 2, 1,
2706 1, 5, 7, 5, 4, 2, 1, 1, 2, 2,
2707 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2708 1, 1, 1, 1, 1, 1, 3, 3, 1, 1,
2709 4, 4, 5, 3, 1, 1, 1, 1, 1, 1,
2710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2711 6, 1, 1, 1, 2, 1, 1, 1, 2, 1,
2712 1, 1, 1, 2, 1, 1, 1, 1, 1, 2,
2713 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2714 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
2715 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2716 2, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2717 1, 1, 1, 1, 1, 2, 1, 1, 2, 1,
2718 1, 1, 2, 1, 1, 1, 1, 2, 1, 1,
2719 1, 1, 2, 4, 3, 1, 1, 1, 1, 1,
2720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2721 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2722 1, 1, 1, 1, 1, 2, 1, 1, 1, 2,
2723 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2724 1, 2, 1, 1, 2, 1, 1, 1, 1, 2,
2725 4, 2, 1, 2, 1, 1, 1, 1, 1, 1,
2726 2, 1, 1, 2, 1, 1, 1, 1, 1, 2,
2731 #define yyerrok (yyerrstatus = 0) 2732 #define yyclearin (yychar = YYEMPTY) 2733 #define YYEMPTY (-2) 2736 #define YYACCEPT goto yyacceptlab 2737 #define YYABORT goto yyabortlab 2738 #define YYERROR goto yyerrorlab 2741 #define YYRECOVERING() (!!yyerrstatus) 2743 #define YYBACKUP(Token, Value) \ 2745 if (yychar == YYEMPTY) \ 2749 YYPOPSTACK (yylen); \ 2755 yyerror (&yylloc, scanner, state, YY_("syntax error: cannot back up")); \ 2762 #define YYERRCODE 256 2769 #ifndef YYLLOC_DEFAULT 2770 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 2774 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 2775 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 2776 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 2777 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 2781 (Current).first_line = (Current).last_line = \ 2782 YYRHSLOC (Rhs, 0).last_line; \ 2783 (Current).first_column = (Current).last_column = \ 2784 YYRHSLOC (Rhs, 0).last_column; \ 2789 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 2797 # define YYFPRINTF fprintf 2800 # define YYDPRINTF(Args) \ 2811 #ifndef YY_LOCATION_PRINT 2812 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 2818 yy_location_print_ (FILE *yyo,
YYLTYPE const *
const yylocp)
2821 int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2822 if (0 <= yylocp->first_line)
2824 res += YYFPRINTF (yyo,
"%d", yylocp->first_line);
2825 if (0 <= yylocp->first_column)
2826 res += YYFPRINTF (yyo,
".%d", yylocp->first_column);
2828 if (0 <= yylocp->last_line)
2830 if (yylocp->first_line < yylocp->last_line)
2832 res += YYFPRINTF (yyo,
"-%d", yylocp->last_line);
2834 res += YYFPRINTF (yyo,
".%d", end_col);
2836 else if (0 <= end_col && yylocp->first_column < end_col)
2837 res += YYFPRINTF (yyo,
"-%d", end_col);
2842 # define YY_LOCATION_PRINT(File, Loc) \ 2843 yy_location_print_ (File, &(Loc)) 2846 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 2851 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 2855 YYFPRINTF (stderr, "%s ", Title); \ 2856 yy_symbol_print (stderr, \ 2857 Type, Value, Location, scanner, state); \ 2858 YYFPRINTF (stderr, "\n"); \ 2868 yy_symbol_value_print (FILE *yyoutput,
int yytype,
YYSTYPE const *
const yyvaluep,
YYLTYPE const *
const yylocationp,
void *scanner,
struct parser_state *state)
2870 FILE *yyo = yyoutput;
2872 YYUSE (yylocationp);
2878 if (yytype < YYNTOKENS)
2879 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2890 yy_symbol_print (FILE *yyoutput,
int yytype,
YYSTYPE const *
const yyvaluep,
YYLTYPE const *
const yylocationp,
void *scanner,
struct parser_state *state)
2892 YYFPRINTF (yyoutput,
"%s %s (",
2893 yytype < YYNTOKENS ?
"token" :
"nterm", yytname[yytype]);
2895 YY_LOCATION_PRINT (yyoutput, *yylocationp);
2896 YYFPRINTF (yyoutput,
": ");
2897 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, scanner, state);
2898 YYFPRINTF (yyoutput,
")");
2907 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2909 YYFPRINTF (stderr,
"Stack now");
2910 for (; yybottom <= yytop; yybottom++)
2912 int yybot = *yybottom;
2913 YYFPRINTF (stderr,
" %d", yybot);
2915 YYFPRINTF (stderr,
"\n");
2918 # define YY_STACK_PRINT(Bottom, Top) \ 2921 yy_stack_print ((Bottom), (Top)); \ 2930 yy_reduce_print (yytype_int16 *yyssp,
YYSTYPE *yyvsp,
YYLTYPE *yylsp,
int yyrule,
void *scanner,
struct parser_state *state)
2932 unsigned long int yylno = yyrline[yyrule];
2933 int yynrhs = yyr2[yyrule];
2935 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
2938 for (yyi = 0; yyi < yynrhs; yyi++)
2940 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
2941 yy_symbol_print (stderr,
2942 yystos[yyssp[yyi + 1 - yynrhs]],
2943 &(yyvsp[(yyi + 1) - (yynrhs)])
2944 , &(yylsp[(yyi + 1) - (yynrhs)]) , scanner, state);
2945 YYFPRINTF (stderr,
"\n");
2949 # define YY_REDUCE_PRINT(Rule) \ 2952 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, scanner, state); \ 2959 # define YYDPRINTF(Args) 2960 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 2961 # define YY_STACK_PRINT(Bottom, Top) 2962 # define YY_REDUCE_PRINT(Rule) 2968 # define YYINITDEPTH 200 2979 # define YYMAXDEPTH 10000 2986 # if defined __GLIBC__ && defined _STRING_H 2987 # define yystrlen strlen 2991 yystrlen (
const char *yystr)
2994 for (yylen = 0; yystr[yylen]; yylen++)
3002 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 3003 # define yystpcpy stpcpy 3008 yystpcpy (
char *yydest,
const char *yysrc)
3011 const char *yys = yysrc;
3013 while ((*yyd++ = *yys++) !=
'\0')
3030 yytnamerr (
char *yyres,
const char *yystr)
3035 char const *yyp = yystr;
3042 goto do_not_strip_quotes;
3046 goto do_not_strip_quotes;
3059 do_not_strip_quotes: ;
3063 return yystrlen (yystr);
3065 return yystpcpy (yyres, yystr) - yyres;
3078 yysyntax_error (YYSIZE_T *yymsg_alloc,
char **yymsg,
3079 yytype_int16 *yyssp,
int yytoken)
3081 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3082 YYSIZE_T yysize = yysize0;
3083 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3085 const char *yyformat = YY_NULLPTR;
3087 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3115 if (yytoken != YYEMPTY)
3117 int yyn = yypact[*yyssp];
3118 yyarg[yycount++] = yytname[yytoken];
3119 if (!yypact_value_is_default (yyn))
3124 int yyxbegin = yyn < 0 ? -yyn : 0;
3126 int yychecklim = YYLAST - yyn + 1;
3127 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3130 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3131 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3132 && !yytable_value_is_error (yytable[yyx + yyn]))
3134 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3140 yyarg[yycount++] = yytname[yyx];
3142 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3143 if (! (yysize <= yysize1
3144 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3154 # define YYCASE_(N, S) \ 3158 YYCASE_(0, YY_(
"syntax error"));
3159 YYCASE_(1, YY_(
"syntax error, unexpected %s"));
3160 YYCASE_(2, YY_(
"syntax error, unexpected %s, expecting %s"));
3161 YYCASE_(3, YY_(
"syntax error, unexpected %s, expecting %s or %s"));
3162 YYCASE_(4, YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
3163 YYCASE_(5, YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3168 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3169 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3174 if (*yymsg_alloc < yysize)
3176 *yymsg_alloc = 2 * yysize;
3177 if (! (yysize <= *yymsg_alloc
3178 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3179 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3189 while ((*yyp = *yyformat) !=
'\0')
3190 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
3192 yyp += yytnamerr (yyp, yyarg[yyi++]);
3210 yydestruct (
const char *yymsg,
int yytype,
YYSTYPE *yyvaluep,
YYLTYPE *yylocationp,
void *scanner,
struct parser_state *state)
3213 YYUSE (yylocationp);
3218 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3220 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3224 #line 244 "parser_bison.y" 3225 { xfree(((*yyvaluep).string)); }
3226 #line 3227 "parser_bison.c" 3230 #line 244 "parser_bison.y" 3231 { xfree(((*yyvaluep).string)); }
3232 #line 3233 "parser_bison.c" 3236 #line 244 "parser_bison.y" 3237 { xfree(((*yyvaluep).string)); }
3238 #line 3239 "parser_bison.c" 3242 #line 473 "parser_bison.y" 3243 { cmd_free(((*yyvaluep).cmd)); }
3244 #line 3245 "parser_bison.c" 3248 #line 476 "parser_bison.y" 3249 { cmd_free(((*yyvaluep).cmd)); }
3250 #line 3251 "parser_bison.c" 3254 #line 476 "parser_bison.y" 3255 { cmd_free(((*yyvaluep).cmd)); }
3256 #line 3257 "parser_bison.c" 3260 #line 476 "parser_bison.y" 3261 { cmd_free(((*yyvaluep).cmd)); }
3262 #line 3263 "parser_bison.c" 3266 #line 476 "parser_bison.y" 3267 { cmd_free(((*yyvaluep).cmd)); }
3268 #line 3269 "parser_bison.c" 3272 #line 476 "parser_bison.y" 3273 { cmd_free(((*yyvaluep).cmd)); }
3274 #line 3275 "parser_bison.c" 3278 #line 476 "parser_bison.y" 3279 { cmd_free(((*yyvaluep).cmd)); }
3280 #line 3281 "parser_bison.c" 3284 #line 476 "parser_bison.y" 3285 { cmd_free(((*yyvaluep).cmd)); }
3286 #line 3287 "parser_bison.c" 3290 #line 476 "parser_bison.y" 3291 { cmd_free(((*yyvaluep).cmd)); }
3292 #line 3293 "parser_bison.c" 3296 #line 476 "parser_bison.y" 3297 { cmd_free(((*yyvaluep).cmd)); }
3298 #line 3299 "parser_bison.c" 3302 #line 476 "parser_bison.y" 3303 { cmd_free(((*yyvaluep).cmd)); }
3304 #line 3305 "parser_bison.c" 3308 #line 476 "parser_bison.y" 3309 { cmd_free(((*yyvaluep).cmd)); }
3310 #line 3311 "parser_bison.c" 3314 #line 476 "parser_bison.y" 3315 { cmd_free(((*yyvaluep).cmd)); }
3316 #line 3317 "parser_bison.c" 3320 #line 657 "parser_bison.y" 3321 { xfree(((*yyvaluep).string)); }
3322 #line 3323 "parser_bison.c" 3326 #line 476 "parser_bison.y" 3327 { cmd_free(((*yyvaluep).cmd)); }
3328 #line 3329 "parser_bison.c" 3332 #line 488 "parser_bison.y" 3333 { close_scope(state); table_free(((*yyvaluep).table)); }
3334 #line 3335 "parser_bison.c" 3338 #line 490 "parser_bison.y" 3339 { close_scope(state); chain_free(((*yyvaluep).chain)); }
3340 #line 3341 "parser_bison.c" 3344 #line 499 "parser_bison.y" 3345 { set_free(((*yyvaluep).set)); }
3346 #line 3347 "parser_bison.c" 3350 #line 573 "parser_bison.y" 3351 { expr_free(((*yyvaluep).expr)); }
3352 #line 3353 "parser_bison.c" 3356 #line 502 "parser_bison.y" 3357 { set_free(((*yyvaluep).set)); }
3358 #line 3359 "parser_bison.c" 3362 #line 505 "parser_bison.y" 3363 { obj_free(((*yyvaluep).obj)); }
3364 #line 3365 "parser_bison.c" 3368 #line 465 "parser_bison.y" 3369 { xfree(((*yyvaluep).string)); }
3370 #line 3371 "parser_bison.c" 3374 #line 485 "parser_bison.y" 3375 { xfree(((*yyvaluep).string)); }
3376 #line 3377 "parser_bison.c" 3380 #line 465 "parser_bison.y" 3381 { xfree(((*yyvaluep).string)); }
3382 #line 3383 "parser_bison.c" 3386 #line 465 "parser_bison.y" 3387 { xfree(((*yyvaluep).string)); }
3388 #line 3389 "parser_bison.c" 3392 #line 479 "parser_bison.y" 3393 { handle_free(&((*yyvaluep).handle)); }
3394 #line 3395 "parser_bison.c" 3398 #line 479 "parser_bison.y" 3399 { handle_free(&((*yyvaluep).handle)); }
3400 #line 3401 "parser_bison.c" 3404 #line 479 "parser_bison.y" 3405 { handle_free(&((*yyvaluep).handle)); }
3406 #line 3407 "parser_bison.c" 3410 #line 481 "parser_bison.y" 3411 { handle_free(&((*yyvaluep).handle)); }
3412 #line 3413 "parser_bison.c" 3416 #line 481 "parser_bison.y" 3417 { handle_free(&((*yyvaluep).handle)); }
3418 #line 3419 "parser_bison.c" 3422 #line 481 "parser_bison.y" 3423 { handle_free(&((*yyvaluep).handle)); }
3424 #line 3425 "parser_bison.c" 3428 #line 481 "parser_bison.y" 3429 { handle_free(&((*yyvaluep).handle)); }
3430 #line 3431 "parser_bison.c" 3434 #line 479 "parser_bison.y" 3435 { handle_free(&((*yyvaluep).handle)); }
3436 #line 3437 "parser_bison.c" 3440 #line 479 "parser_bison.y" 3441 { handle_free(&((*yyvaluep).handle)); }
3442 #line 3443 "parser_bison.c" 3446 #line 479 "parser_bison.y" 3447 { handle_free(&((*yyvaluep).handle)); }
3448 #line 3449 "parser_bison.c" 3452 #line 479 "parser_bison.y" 3453 { handle_free(&((*yyvaluep).handle)); }
3454 #line 3455 "parser_bison.c" 3458 #line 465 "parser_bison.y" 3459 { xfree(((*yyvaluep).string)); }
3460 #line 3461 "parser_bison.c" 3464 #line 479 "parser_bison.y" 3465 { handle_free(&((*yyvaluep).handle)); }
3466 #line 3467 "parser_bison.c" 3470 #line 492 "parser_bison.y" 3471 { rule_free(((*yyvaluep).rule)); }
3472 #line 3473 "parser_bison.c" 3476 #line 508 "parser_bison.y" 3477 { stmt_list_free(((*yyvaluep).list)); xfree(((*yyvaluep).list)); }
3478 #line 3479 "parser_bison.c" 3482 #line 510 "parser_bison.y" 3483 { stmt_free(((*yyvaluep).stmt)); }
3484 #line 3485 "parser_bison.c" 3488 #line 510 "parser_bison.y" 3489 { stmt_free(((*yyvaluep).stmt)); }
3490 #line 3491 "parser_bison.c" 3494 #line 567 "parser_bison.y" 3495 { expr_free(((*yyvaluep).expr)); }
3496 #line 3497 "parser_bison.c" 3500 #line 570 "parser_bison.y" 3501 { expr_free(((*yyvaluep).expr)); }
3502 #line 3503 "parser_bison.c" 3506 #line 570 "parser_bison.y" 3507 { expr_free(((*yyvaluep).expr)); }
3508 #line 3509 "parser_bison.c" 3512 #line 570 "parser_bison.y" 3513 { expr_free(((*yyvaluep).expr)); }
3514 #line 3515 "parser_bison.c" 3518 #line 512 "parser_bison.y" 3519 { stmt_free(((*yyvaluep).stmt)); }
3520 #line 3521 "parser_bison.c" 3524 #line 512 "parser_bison.y" 3525 { stmt_free(((*yyvaluep).stmt)); }
3526 #line 3527 "parser_bison.c" 3530 #line 520 "parser_bison.y" 3531 { stmt_free(((*yyvaluep).stmt)); }
3532 #line 3533 "parser_bison.c" 3536 #line 520 "parser_bison.y" 3537 { stmt_free(((*yyvaluep).stmt)); }
3538 #line 3539 "parser_bison.c" 3542 #line 523 "parser_bison.y" 3543 { stmt_free(((*yyvaluep).stmt)); }
3544 #line 3545 "parser_bison.c" 3548 #line 485 "parser_bison.y" 3549 { xfree(((*yyvaluep).string)); }
3550 #line 3551 "parser_bison.c" 3554 #line 523 "parser_bison.y" 3555 { stmt_free(((*yyvaluep).stmt)); }
3556 #line 3557 "parser_bison.c" 3560 #line 526 "parser_bison.y" 3561 { stmt_free(((*yyvaluep).stmt)); }
3562 #line 3563 "parser_bison.c" 3566 #line 526 "parser_bison.y" 3567 { stmt_free(((*yyvaluep).stmt)); }
3568 #line 3569 "parser_bison.c" 3572 #line 528 "parser_bison.y" 3573 { stmt_free(((*yyvaluep).stmt)); }
3574 #line 3575 "parser_bison.c" 3578 #line 528 "parser_bison.y" 3579 { stmt_free(((*yyvaluep).stmt)); }
3580 #line 3581 "parser_bison.c" 3584 #line 558 "parser_bison.y" 3585 { expr_free(((*yyvaluep).expr)); }
3586 #line 3587 "parser_bison.c" 3590 #line 558 "parser_bison.y" 3591 { expr_free(((*yyvaluep).expr)); }
3592 #line 3593 "parser_bison.c" 3596 #line 558 "parser_bison.y" 3597 { expr_free(((*yyvaluep).expr)); }
3598 #line 3599 "parser_bison.c" 3602 #line 528 "parser_bison.y" 3603 { stmt_free(((*yyvaluep).stmt)); }
3604 #line 3605 "parser_bison.c" 3608 #line 528 "parser_bison.y" 3609 { stmt_free(((*yyvaluep).stmt)); }
3610 #line 3611 "parser_bison.c" 3614 #line 528 "parser_bison.y" 3615 { stmt_free(((*yyvaluep).stmt)); }
3616 #line 3617 "parser_bison.c" 3620 #line 528 "parser_bison.y" 3621 { stmt_free(((*yyvaluep).stmt)); }
3622 #line 3623 "parser_bison.c" 3626 #line 534 "parser_bison.y" 3627 { stmt_free(((*yyvaluep).stmt)); }
3628 #line 3629 "parser_bison.c" 3632 #line 536 "parser_bison.y" 3633 { stmt_free(((*yyvaluep).stmt)); }
3634 #line 3635 "parser_bison.c" 3638 #line 531 "parser_bison.y" 3639 { stmt_free(((*yyvaluep).stmt)); }
3640 #line 3641 "parser_bison.c" 3644 #line 531 "parser_bison.y" 3645 { stmt_free(((*yyvaluep).stmt)); }
3646 #line 3647 "parser_bison.c" 3650 #line 577 "parser_bison.y" 3651 { expr_free(((*yyvaluep).expr)); }
3652 #line 3653 "parser_bison.c" 3656 #line 577 "parser_bison.y" 3657 { expr_free(((*yyvaluep).expr)); }
3658 #line 3659 "parser_bison.c" 3662 #line 538 "parser_bison.y" 3663 { stmt_free(((*yyvaluep).stmt)); }
3664 #line 3665 "parser_bison.c" 3668 #line 541 "parser_bison.y" 3669 { stmt_free(((*yyvaluep).stmt)); }
3670 #line 3671 "parser_bison.c" 3674 #line 541 "parser_bison.y" 3675 { stmt_free(((*yyvaluep).stmt)); }
3676 #line 3677 "parser_bison.c" 3680 #line 510 "parser_bison.y" 3681 { stmt_free(((*yyvaluep).stmt)); }
3682 #line 3683 "parser_bison.c" 3686 #line 544 "parser_bison.y" 3687 { expr_free(((*yyvaluep).expr)); }
3688 #line 3689 "parser_bison.c" 3692 #line 544 "parser_bison.y" 3693 { expr_free(((*yyvaluep).expr)); }
3694 #line 3695 "parser_bison.c" 3698 #line 544 "parser_bison.y" 3699 { expr_free(((*yyvaluep).expr)); }
3700 #line 3701 "parser_bison.c" 3704 #line 546 "parser_bison.y" 3705 { expr_free(((*yyvaluep).expr)); }
3706 #line 3707 "parser_bison.c" 3710 #line 652 "parser_bison.y" 3711 { expr_free(((*yyvaluep).expr)); }
3712 #line 3713 "parser_bison.c" 3716 #line 546 "parser_bison.y" 3717 { expr_free(((*yyvaluep).expr)); }
3718 #line 3719 "parser_bison.c" 3722 #line 546 "parser_bison.y" 3723 { expr_free(((*yyvaluep).expr)); }
3724 #line 3725 "parser_bison.c" 3728 #line 548 "parser_bison.y" 3729 { expr_free(((*yyvaluep).expr)); }
3730 #line 3731 "parser_bison.c" 3734 #line 548 "parser_bison.y" 3735 { expr_free(((*yyvaluep).expr)); }
3736 #line 3737 "parser_bison.c" 3740 #line 550 "parser_bison.y" 3741 { expr_free(((*yyvaluep).expr)); }
3742 #line 3743 "parser_bison.c" 3746 #line 561 "parser_bison.y" 3747 { expr_free(((*yyvaluep).expr)); }
3748 #line 3749 "parser_bison.c" 3752 #line 555 "parser_bison.y" 3753 { expr_free(((*yyvaluep).expr)); }
3754 #line 3755 "parser_bison.c" 3758 #line 555 "parser_bison.y" 3759 { expr_free(((*yyvaluep).expr)); }
3760 #line 3761 "parser_bison.c" 3764 #line 555 "parser_bison.y" 3765 { expr_free(((*yyvaluep).expr)); }
3766 #line 3767 "parser_bison.c" 3770 #line 553 "parser_bison.y" 3771 { expr_free(((*yyvaluep).expr)); }
3772 #line 3773 "parser_bison.c" 3776 #line 564 "parser_bison.y" 3777 { expr_free(((*yyvaluep).expr)); }
3778 #line 3779 "parser_bison.c" 3782 #line 583 "parser_bison.y" 3783 { expr_free(((*yyvaluep).expr)); }
3784 #line 3785 "parser_bison.c" 3788 #line 573 "parser_bison.y" 3789 { expr_free(((*yyvaluep).expr)); }
3790 #line 3791 "parser_bison.c" 3794 #line 573 "parser_bison.y" 3795 { expr_free(((*yyvaluep).expr)); }
3796 #line 3797 "parser_bison.c" 3800 #line 573 "parser_bison.y" 3801 { expr_free(((*yyvaluep).expr)); }
3802 #line 3803 "parser_bison.c" 3806 #line 580 "parser_bison.y" 3807 { expr_free(((*yyvaluep).expr)); }
3808 #line 3809 "parser_bison.c" 3812 #line 580 "parser_bison.y" 3813 { expr_free(((*yyvaluep).expr)); }
3814 #line 3815 "parser_bison.c" 3818 #line 575 "parser_bison.y" 3819 { expr_free(((*yyvaluep).expr)); }
3820 #line 3821 "parser_bison.c" 3824 #line 575 "parser_bison.y" 3825 { expr_free(((*yyvaluep).expr)); }
3826 #line 3827 "parser_bison.c" 3830 #line 575 "parser_bison.y" 3831 { expr_free(((*yyvaluep).expr)); }
3832 #line 3833 "parser_bison.c" 3836 #line 575 "parser_bison.y" 3837 { expr_free(((*yyvaluep).expr)); }
3838 #line 3839 "parser_bison.c" 3842 #line 583 "parser_bison.y" 3843 { expr_free(((*yyvaluep).expr)); }
3844 #line 3845 "parser_bison.c" 3848 #line 661 "parser_bison.y" 3849 { xfree(((*yyvaluep).counter)); }
3850 #line 3851 "parser_bison.c" 3854 #line 593 "parser_bison.y" 3855 { obj_free(((*yyvaluep).obj)); }
3856 #line 3857 "parser_bison.c" 3860 #line 663 "parser_bison.y" 3861 { xfree(((*yyvaluep).quota)); }
3862 #line 3863 "parser_bison.c" 3866 #line 593 "parser_bison.y" 3867 { obj_free(((*yyvaluep).obj)); }
3868 #line 3869 "parser_bison.c" 3872 #line 680 "parser_bison.y" 3873 { xfree(((*yyvaluep).string)); }
3874 #line 3875 "parser_bison.c" 3878 #line 593 "parser_bison.y" 3879 { obj_free(((*yyvaluep).obj)); }
3880 #line 3881 "parser_bison.c" 3884 #line 596 "parser_bison.y" 3885 { expr_free(((*yyvaluep).expr)); }
3886 #line 3887 "parser_bison.c" 3890 #line 588 "parser_bison.y" 3891 { expr_free(((*yyvaluep).expr)); }
3892 #line 3893 "parser_bison.c" 3896 #line 586 "parser_bison.y" 3897 { expr_free(((*yyvaluep).expr)); }
3898 #line 3899 "parser_bison.c" 3902 #line 588 "parser_bison.y" 3903 { expr_free(((*yyvaluep).expr)); }
3904 #line 3905 "parser_bison.c" 3908 #line 590 "parser_bison.y" 3909 { expr_free(((*yyvaluep).expr)); }
3910 #line 3911 "parser_bison.c" 3914 #line 590 "parser_bison.y" 3915 { expr_free(((*yyvaluep).expr)); }
3916 #line 3917 "parser_bison.c" 3920 #line 590 "parser_bison.y" 3921 { expr_free(((*yyvaluep).expr)); }
3922 #line 3923 "parser_bison.c" 3926 #line 586 "parser_bison.y" 3927 { expr_free(((*yyvaluep).expr)); }
3928 #line 3929 "parser_bison.c" 3932 #line 586 "parser_bison.y" 3933 { expr_free(((*yyvaluep).expr)); }
3934 #line 3935 "parser_bison.c" 3938 #line 671 "parser_bison.y" 3939 { expr_free(((*yyvaluep).expr)); }
3940 #line 3941 "parser_bison.c" 3944 #line 583 "parser_bison.y" 3945 { expr_free(((*yyvaluep).expr)); }
3946 #line 3947 "parser_bison.c" 3950 #line 588 "parser_bison.y" 3951 { expr_free(((*yyvaluep).expr)); }
3952 #line 3953 "parser_bison.c" 3956 #line 544 "parser_bison.y" 3957 { expr_free(((*yyvaluep).expr)); }
3958 #line 3959 "parser_bison.c" 3962 #line 637 "parser_bison.y" 3963 { expr_free(((*yyvaluep).expr)); }
3964 #line 3965 "parser_bison.c" 3968 #line 518 "parser_bison.y" 3969 { stmt_free(((*yyvaluep).stmt)); }
3970 #line 3971 "parser_bison.c" 3974 #line 609 "parser_bison.y" 3975 { expr_free(((*yyvaluep).expr)); }
3976 #line 3977 "parser_bison.c" 3980 #line 609 "parser_bison.y" 3981 { expr_free(((*yyvaluep).expr)); }
3982 #line 3983 "parser_bison.c" 3986 #line 641 "parser_bison.y" 3987 { expr_free(((*yyvaluep).expr)); }
3988 #line 3989 "parser_bison.c" 3992 #line 648 "parser_bison.y" 3993 { expr_free(((*yyvaluep).expr)); }
3994 #line 3995 "parser_bison.c" 3998 #line 645 "parser_bison.y" 3999 { expr_free(((*yyvaluep).expr)); }
4000 #line 4001 "parser_bison.c" 4004 #line 648 "parser_bison.y" 4005 { expr_free(((*yyvaluep).expr)); }
4006 #line 4007 "parser_bison.c" 4010 #line 516 "parser_bison.y" 4011 { stmt_free(((*yyvaluep).stmt)); }
4012 #line 4013 "parser_bison.c" 4016 #line 514 "parser_bison.y" 4017 { stmt_free(((*yyvaluep).stmt)); }
4018 #line 4019 "parser_bison.c" 4022 #line 600 "parser_bison.y" 4023 { expr_free(((*yyvaluep).expr)); }
4024 #line 4025 "parser_bison.c" 4028 #line 600 "parser_bison.y" 4029 { expr_free(((*yyvaluep).expr)); }
4030 #line 4031 "parser_bison.c" 4034 #line 603 "parser_bison.y" 4035 { expr_free(((*yyvaluep).expr)); }
4036 #line 4037 "parser_bison.c" 4040 #line 603 "parser_bison.y" 4041 { expr_free(((*yyvaluep).expr)); }
4042 #line 4043 "parser_bison.c" 4046 #line 606 "parser_bison.y" 4047 { expr_free(((*yyvaluep).expr)); }
4048 #line 4049 "parser_bison.c" 4052 #line 609 "parser_bison.y" 4053 { expr_free(((*yyvaluep).expr)); }
4054 #line 4055 "parser_bison.c" 4058 #line 609 "parser_bison.y" 4059 { expr_free(((*yyvaluep).expr)); }
4060 #line 4061 "parser_bison.c" 4064 #line 612 "parser_bison.y" 4065 { expr_free(((*yyvaluep).expr)); }
4066 #line 4067 "parser_bison.c" 4070 #line 612 "parser_bison.y" 4071 { expr_free(((*yyvaluep).expr)); }
4072 #line 4073 "parser_bison.c" 4076 #line 615 "parser_bison.y" 4077 { expr_free(((*yyvaluep).expr)); }
4078 #line 4079 "parser_bison.c" 4082 #line 615 "parser_bison.y" 4083 { expr_free(((*yyvaluep).expr)); }
4084 #line 4085 "parser_bison.c" 4088 #line 615 "parser_bison.y" 4089 { expr_free(((*yyvaluep).expr)); }
4090 #line 4091 "parser_bison.c" 4094 #line 618 "parser_bison.y" 4095 { expr_free(((*yyvaluep).expr)); }
4096 #line 4097 "parser_bison.c" 4100 #line 618 "parser_bison.y" 4101 { expr_free(((*yyvaluep).expr)); }
4102 #line 4103 "parser_bison.c" 4106 #line 666 "parser_bison.y" 4107 { expr_free(((*yyvaluep).expr)); }
4108 #line 4109 "parser_bison.c" 4112 #line 621 "parser_bison.y" 4113 { expr_free(((*yyvaluep).expr)); }
4114 #line 4115 "parser_bison.c" 4118 #line 621 "parser_bison.y" 4119 { expr_free(((*yyvaluep).expr)); }
4120 #line 4121 "parser_bison.c" 4124 #line 625 "parser_bison.y" 4125 { expr_free(((*yyvaluep).expr)); }
4126 #line 4127 "parser_bison.c" 4130 #line 627 "parser_bison.y" 4131 { expr_free(((*yyvaluep).expr)); }
4132 #line 4133 "parser_bison.c" 4136 #line 630 "parser_bison.y" 4137 { expr_free(((*yyvaluep).expr)); }
4138 #line 4139 "parser_bison.c" 4142 #line 630 "parser_bison.y" 4143 { expr_free(((*yyvaluep).expr)); }
4144 #line 4145 "parser_bison.c" 4148 #line 630 "parser_bison.y" 4149 { expr_free(((*yyvaluep).expr)); }
4150 #line 4151 "parser_bison.c" 4154 #line 627 "parser_bison.y" 4155 { expr_free(((*yyvaluep).expr)); }
4156 #line 4157 "parser_bison.c" 4160 #line 627 "parser_bison.y" 4161 { expr_free(((*yyvaluep).expr)); }
4162 #line 4163 "parser_bison.c" 4166 #line 633 "parser_bison.y" 4167 { expr_free(((*yyvaluep).expr)); }
4168 #line 4169 "parser_bison.c" 4172 #line 675 "parser_bison.y" 4173 { expr_free(((*yyvaluep).expr)); }
4174 #line 4175 "parser_bison.c" 4181 YY_IGNORE_MAYBE_UNINITIALIZED_END
4192 yyparse (
void *scanner,
struct parser_state *state)
4201 YY_INITIAL_VALUE (
static YYSTYPE yyval_default;)
4202 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
4206 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 4210 YYLTYPE yylloc = yyloc_default;
4228 yytype_int16 yyssa[YYINITDEPTH];
4230 yytype_int16 *yyssp;
4245 YYSIZE_T yystacksize;
4259 char *yymsg = yymsgbuf;
4260 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4263 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) 4269 yyssp = yyss = yyssa;
4270 yyvsp = yyvs = yyvsa;
4271 yylsp = yyls = yylsa;
4272 yystacksize = YYINITDEPTH;
4274 YYDPRINTF ((stderr,
"Starting parse\n"));
4282 #line 118 "parser_bison.y" 4284 location_init(scanner, state, &yylloc);
4286 if (debug_level & DEBUG_SCANNER)
4287 nft_set_debug(1, scanner);
4288 if (debug_level & DEBUG_PARSER)
4293 #line 4294 "parser_bison.c" 4308 if (yyss + yystacksize - 1 <= yyssp)
4311 YYSIZE_T yysize = yyssp - yyss + 1;
4319 yytype_int16 *yyss1 = yyss;
4326 yyoverflow (YY_(
"memory exhausted"),
4327 &yyss1, yysize *
sizeof (*yyssp),
4328 &yyvs1, yysize *
sizeof (*yyvsp),
4329 &yyls1, yysize *
sizeof (*yylsp),
4337 # ifndef YYSTACK_RELOCATE 4338 goto yyexhaustedlab;
4341 if (YYMAXDEPTH <= yystacksize)
4342 goto yyexhaustedlab;
4344 if (YYMAXDEPTH < yystacksize)
4345 yystacksize = YYMAXDEPTH;
4348 yytype_int16 *yyss1 = yyss;
4350 (
union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4352 goto yyexhaustedlab;
4353 YYSTACK_RELOCATE (yyss_alloc, yyss);
4354 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4355 YYSTACK_RELOCATE (yyls_alloc, yyls);
4356 # undef YYSTACK_RELOCATE 4358 YYSTACK_FREE (yyss1);
4363 yyssp = yyss + yysize - 1;
4364 yyvsp = yyvs + yysize - 1;
4365 yylsp = yyls + yysize - 1;
4367 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4368 (
unsigned long int) yystacksize));
4370 if (yyss + yystacksize - 1 <= yyssp)
4374 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
4376 if (yystate == YYFINAL)
4390 yyn = yypact[yystate];
4391 if (yypact_value_is_default (yyn))
4397 if (yychar == YYEMPTY)
4399 YYDPRINTF ((stderr,
"Reading a token: "));
4400 yychar = yylex (&yylval, &yylloc, scanner);
4403 if (yychar <= YYEOF)
4405 yychar = yytoken = YYEOF;
4406 YYDPRINTF ((stderr,
"Now at end of input.\n"));
4410 yytoken = YYTRANSLATE (yychar);
4411 YY_SYMBOL_PRINT (
"Next token is", yytoken, &yylval, &yylloc);
4417 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4422 if (yytable_value_is_error (yyn))
4434 YY_SYMBOL_PRINT (
"Shifting", yytoken, &yylval, &yylloc);
4440 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4442 YY_IGNORE_MAYBE_UNINITIALIZED_END
4451 yyn = yydefact[yystate];
4472 yyval = yyvsp[1-yylen];
4475 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
4476 YY_REDUCE_PRINT (yyn);
4480 #line 686 "parser_bison.y" 4482 if ((yyvsp[0].cmd) != NULL) {
4485 (yyvsp[0].cmd)->location = (yylsp[0]);
4487 list_add_tail(&(yyvsp[0].cmd)->list, &list);
4488 if (cmd_evaluate(&state->ectx, (yyvsp[0].cmd)) < 0) {
4489 if (++state->nerrs == max_errors)
4492 list_splice_tail(&list, &state->cmds);
4495 #line 4496 "parser_bison.c" 4499 #line 711 "parser_bison.y" 4501 if (scanner_include_file(scanner, (yyvsp[-1].
string), &(yyloc)) < 0) {
4502 xfree((yyvsp[-1].
string));
4505 xfree((yyvsp[-1].
string));
4507 #line 4508 "parser_bison.c" 4511 #line 719 "parser_bison.y" 4513 struct scope *scope = current_scope(state);
4515 if (symbol_lookup(scope, (yyvsp[-3].
string)) != NULL) {
4516 erec_queue(error(&(yylsp[-3]),
"redefinition of symbol '%s'", (yyvsp[-3].
string)),
4521 symbol_bind(scope, (yyvsp[-3].
string), (yyvsp[-1].expr));
4522 xfree((yyvsp[-3].
string));
4524 #line 4525 "parser_bison.c" 4528 #line 732 "parser_bison.y" 4530 if (++state->nerrs == max_errors)
4534 #line 4535 "parser_bison.c" 4538 #line 739 "parser_bison.y" 4539 { (yyval.cmd) = NULL; }
4540 #line 4541 "parser_bison.c" 4544 #line 740 "parser_bison.y" 4545 { (yyval.cmd) = NULL; }
4546 #line 4547 "parser_bison.c" 4550 #line 741 "parser_bison.y" 4551 { (yyval.cmd) = (yyvsp[-1].cmd); }
4552 #line 4553 "parser_bison.c" 4556 #line 743 "parser_bison.y" 4567 if ((yyvsp[-1].cmd) != NULL) {
4570 (yyvsp[-1].cmd)->location = (yylsp[-1]);
4572 list_add_tail(&(yyvsp[-1].cmd)->list, &list);
4573 if (cmd_evaluate(&state->ectx, (yyvsp[-1].cmd)) < 0) {
4574 if (++state->nerrs == max_errors)
4577 list_splice_tail(&list, &state->cmds);
4585 #line 4586 "parser_bison.c" 4589 #line 773 "parser_bison.y" 4590 { (yyval.cmd) = (yyvsp[0].cmd); }
4591 #line 4592 "parser_bison.c" 4595 #line 774 "parser_bison.y" 4596 { (yyval.cmd) = (yyvsp[0].cmd); }
4597 #line 4598 "parser_bison.c" 4601 #line 775 "parser_bison.y" 4602 { (yyval.cmd) = (yyvsp[0].cmd); }
4603 #line 4604 "parser_bison.c" 4607 #line 776 "parser_bison.y" 4608 { (yyval.cmd) = (yyvsp[0].cmd); }
4609 #line 4610 "parser_bison.c" 4613 #line 777 "parser_bison.y" 4614 { (yyval.cmd) = (yyvsp[0].cmd); }
4615 #line 4616 "parser_bison.c" 4619 #line 778 "parser_bison.y" 4620 { (yyval.cmd) = (yyvsp[0].cmd); }
4621 #line 4622 "parser_bison.c" 4625 #line 779 "parser_bison.y" 4626 { (yyval.cmd) = (yyvsp[0].cmd); }
4627 #line 4628 "parser_bison.c" 4631 #line 780 "parser_bison.y" 4632 { (yyval.cmd) = (yyvsp[0].cmd); }
4633 #line 4634 "parser_bison.c" 4637 #line 781 "parser_bison.y" 4638 { (yyval.cmd) = (yyvsp[0].cmd); }
4639 #line 4640 "parser_bison.c" 4643 #line 782 "parser_bison.y" 4644 { (yyval.cmd) = (yyvsp[0].cmd); }
4645 #line 4646 "parser_bison.c" 4649 #line 783 "parser_bison.y" 4650 { (yyval.cmd) = (yyvsp[0].cmd); }
4651 #line 4652 "parser_bison.c" 4655 #line 784 "parser_bison.y" 4656 { (yyval.cmd) = (yyvsp[0].cmd); }
4657 #line 4658 "parser_bison.c" 4661 #line 785 "parser_bison.y" 4662 { (yyval.cmd) = (yyvsp[0].cmd); }
4663 #line 4664 "parser_bison.c" 4667 #line 789 "parser_bison.y" 4669 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_TABLE, &(yyvsp[0].handle), &(yyloc), NULL);
4671 #line 4672 "parser_bison.c" 4675 #line 794 "parser_bison.y" 4677 handle_merge(&(yyvsp[-3].table)->handle, &(yyvsp[-4].handle));
4679 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_TABLE, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].table));
4681 #line 4682 "parser_bison.c" 4685 #line 800 "parser_bison.y" 4687 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_CHAIN, &(yyvsp[0].handle), &(yyloc), NULL);
4689 #line 4690 "parser_bison.c" 4693 #line 805 "parser_bison.y" 4695 (yyvsp[-1].chain)->location = (yylsp[-1]);
4696 handle_merge(&(yyvsp[-3].chain)->handle, &(yyvsp[-4].handle));
4698 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_CHAIN, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].chain));
4700 #line 4701 "parser_bison.c" 4704 #line 812 "parser_bison.y" 4706 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_RULE, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].rule));
4708 #line 4709 "parser_bison.c" 4712 #line 816 "parser_bison.y" 4714 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_RULE, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].rule));
4716 #line 4717 "parser_bison.c" 4720 #line 821 "parser_bison.y" 4722 (yyvsp[-1].set)->location = (yylsp[-1]);
4723 handle_merge(&(yyvsp[-3].
set)->handle, &(yyvsp[-4].handle));
4724 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_SET, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].
set));
4726 #line 4727 "parser_bison.c" 4730 #line 828 "parser_bison.y" 4732 (yyvsp[-1].set)->location = (yylsp[-1]);
4733 handle_merge(&(yyvsp[-3].
set)->handle, &(yyvsp[-4].handle));
4734 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_SET, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].
set));
4736 #line 4737 "parser_bison.c" 4740 #line 834 "parser_bison.y" 4742 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_SETELEM, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].expr));
4744 #line 4745 "parser_bison.c" 4748 #line 838 "parser_bison.y" 4752 obj = obj_alloc(&(yyloc));
4753 obj->type = NFT_OBJECT_COUNTER;
4754 handle_merge(&obj->handle, &(yyvsp[0].handle));
4755 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_COUNTER, &(yyvsp[0].handle), &(yyloc), obj);
4757 #line 4758 "parser_bison.c" 4761 #line 847 "parser_bison.y" 4763 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_COUNTER, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].obj));
4765 #line 4766 "parser_bison.c" 4769 #line 851 "parser_bison.y" 4771 (yyval.cmd) = cmd_alloc(CMD_ADD, CMD_OBJ_QUOTA, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].obj));
4773 #line 4774 "parser_bison.c" 4777 #line 855 "parser_bison.y" 4779 struct error_record *erec;
4782 erec = ct_objtype_parse(&(yyloc), (yyvsp[-6].
string), &type);
4784 erec_queue(erec, state->msgs);
4788 (yyval.cmd) = cmd_alloc_obj_ct(CMD_ADD, type, &(yyvsp[-5].handle), &(yyloc), (yyvsp[-4].obj));
4790 #line 4791 "parser_bison.c" 4794 #line 870 "parser_bison.y" 4796 (yyval.cmd) = cmd_alloc(CMD_REPLACE, CMD_OBJ_RULE, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].rule));
4798 #line 4799 "parser_bison.c" 4802 #line 876 "parser_bison.y" 4804 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_TABLE, &(yyvsp[0].handle), &(yyloc), NULL);
4806 #line 4807 "parser_bison.c" 4810 #line 881 "parser_bison.y" 4812 handle_merge(&(yyvsp[-3].table)->handle, &(yyvsp[-4].handle));
4814 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_TABLE, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].table));
4816 #line 4817 "parser_bison.c" 4820 #line 887 "parser_bison.y" 4822 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_CHAIN, &(yyvsp[0].handle), &(yyloc), NULL);
4824 #line 4825 "parser_bison.c" 4828 #line 892 "parser_bison.y" 4830 (yyvsp[-1].chain)->location = (yylsp[-1]);
4831 handle_merge(&(yyvsp[-3].chain)->handle, &(yyvsp[-4].handle));
4833 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_CHAIN, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].chain));
4835 #line 4836 "parser_bison.c" 4839 #line 900 "parser_bison.y" 4841 (yyvsp[-1].set)->location = (yylsp[-1]);
4842 handle_merge(&(yyvsp[-3].
set)->handle, &(yyvsp[-4].handle));
4843 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_SET, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].
set));
4845 #line 4846 "parser_bison.c" 4849 #line 907 "parser_bison.y" 4851 (yyvsp[-1].set)->location = (yylsp[-1]);
4852 handle_merge(&(yyvsp[-3].
set)->handle, &(yyvsp[-4].handle));
4853 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_SET, &(yyvsp[-4].handle), &(yyloc), (yyvsp[-1].
set));
4855 #line 4856 "parser_bison.c" 4859 #line 913 "parser_bison.y" 4861 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_SETELEM, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].expr));
4863 #line 4864 "parser_bison.c" 4867 #line 917 "parser_bison.y" 4871 obj = obj_alloc(&(yyloc));
4872 obj->type = NFT_OBJECT_COUNTER;
4873 handle_merge(&obj->handle, &(yyvsp[0].handle));
4874 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_COUNTER, &(yyvsp[0].handle), &(yyloc), obj);
4876 #line 4877 "parser_bison.c" 4880 #line 926 "parser_bison.y" 4882 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_COUNTER, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].obj));
4884 #line 4885 "parser_bison.c" 4888 #line 930 "parser_bison.y" 4890 (yyval.cmd) = cmd_alloc(CMD_CREATE, CMD_OBJ_QUOTA, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].obj));
4892 #line 4893 "parser_bison.c" 4896 #line 934 "parser_bison.y" 4898 struct error_record *erec;
4901 erec = ct_objtype_parse(&(yyloc), (yyvsp[-6].
string), &type);
4903 erec_queue(erec, state->msgs);
4907 (yyval.cmd) = cmd_alloc_obj_ct(CMD_CREATE, type, &(yyvsp[-5].handle), &(yyloc), (yyvsp[-4].obj));
4909 #line 4910 "parser_bison.c" 4913 #line 949 "parser_bison.y" 4915 (yyval.cmd) = cmd_alloc(CMD_INSERT, CMD_OBJ_RULE, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].rule));
4917 #line 4918 "parser_bison.c" 4921 #line 955 "parser_bison.y" 4923 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_TABLE, &(yyvsp[0].handle), &(yyloc), NULL);
4925 #line 4926 "parser_bison.c" 4929 #line 959 "parser_bison.y" 4931 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_CHAIN, &(yyvsp[0].handle), &(yyloc), NULL);
4933 #line 4934 "parser_bison.c" 4937 #line 963 "parser_bison.y" 4939 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_RULE, &(yyvsp[0].handle), &(yyloc), NULL);
4941 #line 4942 "parser_bison.c" 4945 #line 967 "parser_bison.y" 4947 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_SET, &(yyvsp[0].handle), &(yyloc), NULL);
4949 #line 4950 "parser_bison.c" 4953 #line 971 "parser_bison.y" 4955 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_SET, &(yyvsp[0].handle), &(yyloc), NULL);
4957 #line 4958 "parser_bison.c" 4961 #line 975 "parser_bison.y" 4963 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_SETELEM, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].expr));
4965 #line 4966 "parser_bison.c" 4969 #line 979 "parser_bison.y" 4971 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_COUNTER, &(yyvsp[0].handle), &(yyloc), NULL);
4973 #line 4974 "parser_bison.c" 4977 #line 983 "parser_bison.y" 4979 (yyval.cmd) = cmd_alloc(CMD_DELETE, CMD_OBJ_QUOTA, &(yyvsp[0].handle), &(yyloc), NULL);
4981 #line 4982 "parser_bison.c" 4985 #line 987 "parser_bison.y" 4987 struct error_record *erec;
4990 erec = ct_objtype_parse(&(yyloc), (yyvsp[-2].
string), &type);
4992 erec_queue(erec, state->msgs);
4996 (yyval.cmd) = cmd_alloc_obj_ct(CMD_DELETE, type, &(yyvsp[-1].handle), &(yyloc), (yyvsp[0].obj));
4998 #line 4999 "parser_bison.c" 5002 #line 1002 "parser_bison.y" 5004 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_TABLE, &(yyvsp[0].handle), &(yyloc), NULL);
5006 #line 5007 "parser_bison.c" 5010 #line 1006 "parser_bison.y" 5012 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_TABLE, &(yyvsp[0].handle), &(yyloc), NULL);
5014 #line 5015 "parser_bison.c" 5018 #line 1010 "parser_bison.y" 5020 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_CHAIN, &(yyvsp[0].handle), &(yyloc), NULL);
5022 #line 5023 "parser_bison.c" 5026 #line 1014 "parser_bison.y" 5028 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_CHAINS, &(yyvsp[0].handle), &(yyloc), NULL);
5030 #line 5031 "parser_bison.c" 5034 #line 1018 "parser_bison.y" 5036 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_SETS, &(yyvsp[0].handle), &(yyloc), NULL);
5038 #line 5039 "parser_bison.c" 5042 #line 1022 "parser_bison.y" 5044 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_SETS, &(yyvsp[0].handle), &(yyloc), NULL);
5046 #line 5047 "parser_bison.c" 5050 #line 1026 "parser_bison.y" 5052 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_SET, &(yyvsp[0].handle), &(yyloc), NULL);
5054 #line 5055 "parser_bison.c" 5058 #line 1030 "parser_bison.y" 5060 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_COUNTERS, &(yyvsp[0].handle), &(yyloc), NULL);
5062 #line 5063 "parser_bison.c" 5066 #line 1034 "parser_bison.y" 5068 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_COUNTERS, &(yyvsp[0].handle), &(yyloc), NULL);
5070 #line 5071 "parser_bison.c" 5074 #line 1038 "parser_bison.y" 5076 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_COUNTER, &(yyvsp[0].handle), &(yyloc), NULL);
5078 #line 5079 "parser_bison.c" 5082 #line 1042 "parser_bison.y" 5084 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_QUOTAS, &(yyvsp[0].handle), &(yyloc), NULL);
5086 #line 5087 "parser_bison.c" 5090 #line 1046 "parser_bison.y" 5092 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_QUOTAS, &(yyvsp[0].handle), &(yyloc), NULL);
5094 #line 5095 "parser_bison.c" 5098 #line 1050 "parser_bison.y" 5100 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_QUOTA, &(yyvsp[0].handle), &(yyloc), NULL);
5102 #line 5103 "parser_bison.c" 5106 #line 1054 "parser_bison.y" 5108 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_RULESET, &(yyvsp[0].handle), &(yyloc), NULL);
5110 #line 5111 "parser_bison.c" 5114 #line 1058 "parser_bison.y" 5116 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_FLOWTABLES, &(yyvsp[0].handle), &(yyloc), NULL);
5118 #line 5119 "parser_bison.c" 5122 #line 1062 "parser_bison.y" 5124 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_FLOWTABLE, &(yyvsp[0].handle), &(yyloc), NULL);
5126 #line 5127 "parser_bison.c" 5130 #line 1066 "parser_bison.y" 5132 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_MAPS, &(yyvsp[0].handle), &(yyloc), NULL);
5134 #line 5135 "parser_bison.c" 5138 #line 1070 "parser_bison.y" 5140 (yyval.cmd) = cmd_alloc(CMD_LIST, CMD_OBJ_MAP, &(yyvsp[0].handle), &(yyloc), NULL);
5142 #line 5143 "parser_bison.c" 5146 #line 1074 "parser_bison.y" 5148 struct error_record *erec;
5151 erec = ct_objtype_parse(&(yyloc), (yyvsp[-1].
string), &type);
5153 erec_queue(erec, state->msgs);
5157 (yyval.cmd) = cmd_alloc_obj_ct(CMD_LIST, type, &(yyvsp[0].handle), &(yyloc), NULL);
5159 #line 5160 "parser_bison.c" 5163 #line 1087 "parser_bison.y" 5167 if (strcmp((yyvsp[-2].
string),
"helpers") == 0) {
5168 cmd = CMD_OBJ_CT_HELPERS;
5170 struct error_record *erec;
5172 erec = error(&(yyloc),
"unknown ct class '%s', want 'helpers'", (yyvsp[-2].
string));
5175 erec_queue(erec, state->msgs);
5181 (yyval.cmd) = cmd_alloc(CMD_LIST, cmd, &(yyvsp[0].handle), &(yyloc), NULL);
5183 #line 5184 "parser_bison.c" 5187 #line 1109 "parser_bison.y" 5189 (yyval.cmd) = cmd_alloc(CMD_RESET, CMD_OBJ_COUNTERS, &(yyvsp[0].handle), &(yyloc), NULL);
5191 #line 5192 "parser_bison.c" 5195 #line 1113 "parser_bison.y" 5197 (yyval.cmd) = cmd_alloc(CMD_RESET, CMD_OBJ_COUNTERS, &(yyvsp[0].handle), &(yyloc), NULL);
5199 #line 5200 "parser_bison.c" 5203 #line 1117 "parser_bison.y" 5205 (yyval.cmd) = cmd_alloc(CMD_RESET, CMD_OBJ_COUNTER, &(yyvsp[0].handle),&(yyloc), NULL);
5207 #line 5208 "parser_bison.c" 5211 #line 1121 "parser_bison.y" 5213 (yyval.cmd) = cmd_alloc(CMD_RESET, CMD_OBJ_QUOTAS, &(yyvsp[0].handle), &(yyloc), NULL);
5215 #line 5216 "parser_bison.c" 5219 #line 1125 "parser_bison.y" 5221 (yyval.cmd) = cmd_alloc(CMD_RESET, CMD_OBJ_QUOTAS, &(yyvsp[0].handle), &(yyloc), NULL);
5223 #line 5224 "parser_bison.c" 5227 #line 1129 "parser_bison.y" 5229 (yyval.cmd) = cmd_alloc(CMD_RESET, CMD_OBJ_QUOTA, &(yyvsp[0].handle), &(yyloc), NULL);
5231 #line 5232 "parser_bison.c" 5235 #line 1135 "parser_bison.y" 5237 (yyval.cmd) = cmd_alloc(CMD_FLUSH, CMD_OBJ_TABLE, &(yyvsp[0].handle), &(yyloc), NULL);
5239 #line 5240 "parser_bison.c" 5243 #line 1139 "parser_bison.y" 5245 (yyval.cmd) = cmd_alloc(CMD_FLUSH, CMD_OBJ_CHAIN, &(yyvsp[0].handle), &(yyloc), NULL);
5247 #line 5248 "parser_bison.c" 5251 #line 1143 "parser_bison.y" 5253 (yyval.cmd) = cmd_alloc(CMD_FLUSH, CMD_OBJ_SET, &(yyvsp[0].handle), &(yyloc), NULL);
5255 #line 5256 "parser_bison.c" 5259 #line 1147 "parser_bison.y" 5261 (yyval.cmd) = cmd_alloc(CMD_FLUSH, CMD_OBJ_MAP, &(yyvsp[0].handle), &(yyloc), NULL);
5263 #line 5264 "parser_bison.c" 5267 #line 1151 "parser_bison.y" 5269 (yyval.cmd) = cmd_alloc(CMD_FLUSH, CMD_OBJ_FLOWTABLE, &(yyvsp[0].handle), &(yyloc), NULL);
5271 #line 5272 "parser_bison.c" 5275 #line 1155 "parser_bison.y" 5277 (yyval.cmd) = cmd_alloc(CMD_FLUSH, CMD_OBJ_RULESET, &(yyvsp[0].handle), &(yyloc), NULL);
5279 #line 5280 "parser_bison.c" 5283 #line 1161 "parser_bison.y" 5285 (yyval.cmd) = cmd_alloc(CMD_RENAME, CMD_OBJ_CHAIN, &(yyvsp[-1].handle), &(yyloc), NULL);
5286 (yyval.cmd)->arg = (yyvsp[0].
string);
5288 #line 5289 "parser_bison.c" 5292 #line 1168 "parser_bison.y" 5294 struct handle h = { .family = NFPROTO_UNSPEC };
5295 struct export *export = export_alloc((yyvsp[0].val));
5296 (yyval.cmd) = cmd_alloc(CMD_EXPORT, CMD_OBJ_EXPORT, &h, &(yyloc), export);
5298 #line 5299 "parser_bison.c" 5302 #line 1174 "parser_bison.y" 5304 struct handle h = { .family = NFPROTO_UNSPEC };
5305 struct export *export = export_alloc((yyvsp[0].val));
5306 (yyval.cmd) = cmd_alloc(CMD_EXPORT, CMD_OBJ_EXPORT, &h, &(yyloc), export);
5308 #line 5309 "parser_bison.c" 5312 #line 1182 "parser_bison.y" 5314 struct handle h = { .family = NFPROTO_UNSPEC };
5315 struct monitor *m = monitor_alloc((yyvsp[0].val), (yyvsp[-1].val), (yyvsp[-2].
string));
5316 m->location = (yylsp[-2]);
5317 (yyval.cmd) = cmd_alloc(CMD_MONITOR, CMD_OBJ_MONITOR, &h, &(yyloc), m);
5319 #line 5320 "parser_bison.c" 5323 #line 1190 "parser_bison.y" 5324 { (yyval.string) = NULL; }
5325 #line 5326 "parser_bison.c" 5329 #line 1191 "parser_bison.y" 5330 { (yyval.string) = (yyvsp[0].
string); }
5331 #line 5332 "parser_bison.c" 5335 #line 1194 "parser_bison.y" 5336 { (yyval.val) = CMD_MONITOR_OBJ_ANY; }
5337 #line 5338 "parser_bison.c" 5341 #line 1195 "parser_bison.y" 5342 { (yyval.val) = CMD_MONITOR_OBJ_TABLES; }
5343 #line 5344 "parser_bison.c" 5347 #line 1196 "parser_bison.y" 5348 { (yyval.val) = CMD_MONITOR_OBJ_CHAINS; }
5349 #line 5350 "parser_bison.c" 5353 #line 1197 "parser_bison.y" 5354 { (yyval.val) = CMD_MONITOR_OBJ_SETS; }
5355 #line 5356 "parser_bison.c" 5359 #line 1198 "parser_bison.y" 5360 { (yyval.val) = CMD_MONITOR_OBJ_RULES; }
5361 #line 5362 "parser_bison.c" 5365 #line 1199 "parser_bison.y" 5366 { (yyval.val) = CMD_MONITOR_OBJ_ELEMS; }
5367 #line 5368 "parser_bison.c" 5371 #line 1200 "parser_bison.y" 5372 { (yyval.val) = CMD_MONITOR_OBJ_RULESET; }
5373 #line 5374 "parser_bison.c" 5377 #line 1201 "parser_bison.y" 5378 { (yyval.val) = CMD_MONITOR_OBJ_TRACE; }
5379 #line 5380 "parser_bison.c" 5383 #line 1204 "parser_bison.y" 5384 { (yyval.val) = NFTNL_OUTPUT_DEFAULT; }
5385 #line 5386 "parser_bison.c" 5389 #line 1208 "parser_bison.y" 5390 { (yyval.val) = NFTNL_OUTPUT_XML; }
5391 #line 5392 "parser_bison.c" 5395 #line 1209 "parser_bison.y" 5396 { (yyval.val) = NFTNL_OUTPUT_JSON; }
5397 #line 5398 "parser_bison.c" 5401 #line 1213 "parser_bison.y" 5403 struct handle h = { .family = NFPROTO_UNSPEC };
5404 (yyval.cmd) = cmd_alloc(CMD_DESCRIBE, CMD_OBJ_EXPR, &h, &(yyloc), NULL);
5405 (yyval.cmd)->expr = (yyvsp[0].expr);
5407 #line 5408 "parser_bison.c" 5411 #line 1221 "parser_bison.y" 5413 (yyval.table) = table_alloc();
5414 open_scope(state, &(yyval.table)->scope);
5416 #line 5417 "parser_bison.c" 5420 #line 1228 "parser_bison.y" 5422 if (strcmp((yyvsp[0].
string),
"dormant") == 0) {
5423 (yyvsp[-2].table)->flags = TABLE_F_DORMANT;
5425 erec_queue(error(&(yylsp[0]),
"unknown table option %s", (yyvsp[0].
string)),
5430 #line 5431 "parser_bison.c" 5434 #line 1239 "parser_bison.y" 5435 { (yyval.table) = (yyvsp[(-1) - (0)].table); }
5436 #line 5437 "parser_bison.c" 5440 #line 1246 "parser_bison.y" 5442 (yyvsp[-4].chain)->location = (yylsp[-5]);
5443 handle_merge(&(yyvsp[-4].chain)->handle, &(yyvsp[-5].handle));
5444 handle_free(&(yyvsp[-5].handle));
5446 list_add_tail(&(yyvsp[-4].chain)->list, &(yyvsp[-7].table)->chains);
5447 (yyval.table) = (yyvsp[-7].table);
5449 #line 5450 "parser_bison.c" 5453 #line 1257 "parser_bison.y" 5455 (yyvsp[-4].set)->location = (yylsp[-5]);
5456 handle_merge(&(yyvsp[-4].
set)->handle, &(yyvsp[-5].handle));
5457 handle_free(&(yyvsp[-5].handle));
5458 list_add_tail(&(yyvsp[-4].
set)->list, &(yyvsp[-7].table)->sets);
5459 (yyval.table) = (yyvsp[-7].table);
5461 #line 5462 "parser_bison.c" 5465 #line 1267 "parser_bison.y" 5467 (yyvsp[-4].set)->location = (yylsp[-5]);
5468 handle_merge(&(yyvsp[-4].
set)->handle, &(yyvsp[-5].handle));
5469 handle_free(&(yyvsp[-5].handle));
5470 list_add_tail(&(yyvsp[-4].
set)->list, &(yyvsp[-7].table)->sets);
5471 (yyval.table) = (yyvsp[-7].table);
5473 #line 5474 "parser_bison.c" 5477 #line 1277 "parser_bison.y" 5479 (yyvsp[-4].obj)->location = (yylsp[-5]);
5480 (yyvsp[-4].obj)->type = NFT_OBJECT_COUNTER;
5481 handle_merge(&(yyvsp[-4].obj)->handle, &(yyvsp[-5].handle));
5482 handle_free(&(yyvsp[-5].handle));
5483 list_add_tail(&(yyvsp[-4].obj)->list, &(yyvsp[-7].table)->objs);
5484 (yyval.table) = (yyvsp[-7].table);
5486 #line 5487 "parser_bison.c" 5490 #line 1288 "parser_bison.y" 5492 (yyvsp[-4].obj)->location = (yylsp[-5]);
5493 (yyvsp[-4].obj)->type = NFT_OBJECT_QUOTA;
5494 handle_merge(&(yyvsp[-4].obj)->handle, &(yyvsp[-5].handle));
5495 handle_free(&(yyvsp[-5].handle));
5496 list_add_tail(&(yyvsp[-4].obj)->list, &(yyvsp[-7].table)->objs);
5497 (yyval.table) = (yyvsp[-7].table);
5499 #line 5500 "parser_bison.c" 5503 #line 1297 "parser_bison.y" 5505 struct error_record *erec;
5508 erec = ct_objtype_parse(&(yyloc), (yyvsp[-6].
string), &type);
5510 erec_queue(erec, state->msgs);
5514 (yyvsp[-4].obj)->location = (yylsp[-5]);
5515 (yyvsp[-4].obj)->type = type;
5516 handle_merge(&(yyvsp[-4].obj)->handle, &(yyvsp[-5].handle));
5517 handle_free(&(yyvsp[-5].handle));
5518 list_add_tail(&(yyvsp[-4].obj)->list, &(yyvsp[-8].table)->objs);
5519 (yyval.table) = (yyvsp[-8].table);
5521 #line 5522 "parser_bison.c" 5525 #line 1317 "parser_bison.y" 5527 (yyval.chain) = chain_alloc(NULL);
5528 open_scope(state, &(yyval.chain)->scope);
5530 #line 5531 "parser_bison.c" 5534 #line 1323 "parser_bison.y" 5535 { (yyval.chain) = (yyvsp[(-1) - (0)].chain); }
5536 #line 5537 "parser_bison.c" 5540 #line 1329 "parser_bison.y" 5542 list_add_tail(&(yyvsp[-1].rule)->list, &(yyvsp[-2].chain)->rules);
5543 (yyval.chain) = (yyvsp[-2].chain);
5545 #line 5546 "parser_bison.c" 5549 #line 1336 "parser_bison.y" 5551 (yyval.set) = set_alloc(NULL);
5553 #line 5554 "parser_bison.c" 5557 #line 1341 "parser_bison.y" 5558 { (yyval.set) = (yyvsp[(-1) - (0)].
set); }
5559 #line 5560 "parser_bison.c" 5563 #line 1345 "parser_bison.y" 5565 (yyvsp[-3].set)->keytype = (yyvsp[-1].datatype);
5566 (yyval.set) = (yyvsp[-3].
set);
5568 #line 5569 "parser_bison.c" 5572 #line 1350 "parser_bison.y" 5574 (yyvsp[-3].set)->flags = (yyvsp[-1].val);
5575 (yyval.set) = (yyvsp[-3].
set);
5577 #line 5578 "parser_bison.c" 5581 #line 1355 "parser_bison.y" 5583 (yyvsp[-3].set)->timeout = (yyvsp[-1].val) * 1000;
5584 (yyval.set) = (yyvsp[-3].
set);
5586 #line 5587 "parser_bison.c" 5590 #line 1360 "parser_bison.y" 5592 (yyvsp[-3].set)->gc_int = (yyvsp[-1].val) * 1000;
5593 (yyval.set) = (yyvsp[-3].
set);
5595 #line 5596 "parser_bison.c" 5599 #line 1365 "parser_bison.y" 5601 (yyvsp[-3].set)->init = (yyvsp[0].expr);
5602 (yyval.set) = (yyvsp[-3].
set);
5604 #line 5605 "parser_bison.c" 5608 #line 1377 "parser_bison.y" 5610 (yyval.val) = (yyvsp[-2].val) | (yyvsp[0].val);
5612 #line 5613 "parser_bison.c" 5616 #line 1383 "parser_bison.y" 5617 { (yyval.val) = NFT_SET_CONSTANT; }
5618 #line 5619 "parser_bison.c" 5622 #line 1384 "parser_bison.y" 5623 { (yyval.val) = NFT_SET_INTERVAL; }
5624 #line 5625 "parser_bison.c" 5628 #line 1385 "parser_bison.y" 5629 { (yyval.val) = NFT_SET_TIMEOUT; }
5630 #line 5631 "parser_bison.c" 5634 #line 1389 "parser_bison.y" 5636 (yyval.set) = set_alloc(NULL);
5638 #line 5639 "parser_bison.c" 5642 #line 1394 "parser_bison.y" 5643 { (yyval.set) = (yyvsp[(-1) - (0)].
set); }
5644 #line 5645 "parser_bison.c" 5648 #line 1400 "parser_bison.y" 5650 (yyvsp[-5].set)->keytype = (yyvsp[-3].datatype);
5651 (yyvsp[-5].set)->datatype = (yyvsp[-1].datatype);
5652 (yyvsp[-5].set)->flags |= NFT_SET_MAP;
5653 (yyval.set) = (yyvsp[-5].
set);
5655 #line 5656 "parser_bison.c" 5659 #line 1409 "parser_bison.y" 5661 (yyvsp[-5].set)->keytype = (yyvsp[-3].datatype);
5662 (yyvsp[-5].set)->objtype = NFT_OBJECT_COUNTER;
5663 (yyvsp[-5].set)->flags |= NFT_SET_OBJECT;
5664 (yyval.set) = (yyvsp[-5].
set);
5666 #line 5667 "parser_bison.c" 5670 #line 1418 "parser_bison.y" 5672 (yyvsp[-5].set)->keytype = (yyvsp[-3].datatype);
5673 (yyvsp[-5].set)->objtype = NFT_OBJECT_QUOTA;
5674 (yyvsp[-5].set)->flags |= NFT_SET_OBJECT;
5675 (yyval.set) = (yyvsp[-5].
set);
5677 #line 5678 "parser_bison.c" 5681 #line 1425 "parser_bison.y" 5683 (yyvsp[-3].set)->flags |= (yyvsp[-1].val);
5684 (yyval.set) = (yyvsp[-3].
set);
5686 #line 5687 "parser_bison.c" 5690 #line 1430 "parser_bison.y" 5692 (yyvsp[-3].set)->init = (yyvsp[0].expr);
5693 (yyval.set) = (yyvsp[-3].
set);
5695 #line 5696 "parser_bison.c" 5699 #line 1438 "parser_bison.y" 5701 (yyvsp[-2].set)->policy = (yyvsp[0].val);
5703 #line 5704 "parser_bison.c" 5707 #line 1442 "parser_bison.y" 5709 (yyvsp[-2].set)->desc.size = (yyvsp[0].val);
5711 #line 5712 "parser_bison.c" 5715 #line 1447 "parser_bison.y" 5716 { (yyval.val) = NFT_SET_POL_PERFORMANCE; }
5717 #line 5718 "parser_bison.c" 5721 #line 1448 "parser_bison.y" 5722 { (yyval.val) = NFT_SET_POL_MEMORY; }
5723 #line 5724 "parser_bison.c" 5727 #line 1452 "parser_bison.y" 5729 if ((yyvsp[0].val) & ~TYPE_MASK)
5730 (yyval.datatype) = concat_type_alloc((yyvsp[0].val));
5732 (yyval.datatype) = datatype_lookup((yyvsp[0].val));
5734 #line 5735 "parser_bison.c" 5738 #line 1461 "parser_bison.y" 5740 const struct datatype *dtype = datatype_lookup_byname((yyvsp[0].
string));
5741 if (dtype == NULL) {
5742 erec_queue(error(&(yylsp[0]),
"unknown datatype %s", (yyvsp[0].
string)),
5744 xfree((yyvsp[0].
string));
5747 xfree((yyvsp[0].
string));
5748 (yyval.val) = dtype->type;
5750 #line 5751 "parser_bison.c" 5754 #line 1473 "parser_bison.y" 5756 const struct datatype *dtype = datatype_lookup_byname((yyvsp[0].
string));
5757 if (dtype == NULL) {
5758 erec_queue(error(&(yylsp[0]),
"unknown datatype %s", (yyvsp[0].
string)),
5762 (yyval.val) = concat_subtype_add((yyval.val), dtype->type);
5764 #line 5765 "parser_bison.c" 5768 #line 1485 "parser_bison.y" 5770 (yyval.obj) = obj_alloc(NULL);
5772 #line 5773 "parser_bison.c" 5776 #line 1490 "parser_bison.y" 5777 { (yyval.obj) = (yyvsp[(-1) - (0)].obj); }
5778 #line 5779 "parser_bison.c" 5782 #line 1494 "parser_bison.y" 5784 (yyvsp[-1].obj)->counter = *(yyvsp[0].counter);
5785 (yyval.obj) = (yyvsp[-1].obj);
5787 #line 5788 "parser_bison.c" 5791 #line 1500 "parser_bison.y" 5792 { (yyval.obj) = (yyvsp[(-1) - (0)].obj); }
5793 #line 5794 "parser_bison.c" 5797 #line 1504 "parser_bison.y" 5799 (yyvsp[-1].obj)->quota = *(yyvsp[0].quota);
5800 (yyval.obj) = (yyvsp[-1].obj);
5802 #line 5803 "parser_bison.c" 5806 #line 1510 "parser_bison.y" 5807 { (yyval.obj) = (yyvsp[(-1) - (0)].obj); }
5808 #line 5809 "parser_bison.c" 5812 #line 1514 "parser_bison.y" 5814 (yyval.obj) = (yyvsp[-1].obj);
5816 #line 5817 "parser_bison.c" 5820 #line 1520 "parser_bison.y" 5821 { (yyval.string) = (yyvsp[0].
string); }
5822 #line 5823 "parser_bison.c" 5826 #line 1521 "parser_bison.y" 5827 { (yyval.string) = xstrdup(
"mark"); }
5828 #line 5829 "parser_bison.c" 5832 #line 1522 "parser_bison.y" 5833 { (yyval.string) = xstrdup(
"dscp"); }
5834 #line 5835 "parser_bison.c" 5838 #line 1523 "parser_bison.y" 5839 { (yyval.string) = xstrdup(
"ecn"); }
5840 #line 5841 "parser_bison.c" 5844 #line 1527 "parser_bison.y" 5846 const char *chain_type = chain_type_name_lookup((yyvsp[-5].
string));
5848 if (chain_type == NULL) {
5849 erec_queue(error(&(yylsp[-5]),
"unknown chain type %s", (yyvsp[-5].
string)),
5853 (yyvsp[-7].chain)->type = xstrdup(chain_type);
5854 xfree((yyvsp[-5].
string));
5856 (yyvsp[-7].chain)->hookstr = chain_hookname_lookup((yyvsp[-3].
string));
5857 if ((yyvsp[-7].chain)->hookstr == NULL) {
5858 erec_queue(error(&(yylsp[-3]),
"unknown chain hook %s", (yyvsp[-3].
string)),
5862 xfree((yyvsp[-3].
string));
5864 (yyvsp[-7].chain)->dev = (yyvsp[-2].
string);
5865 (yyvsp[-7].chain)->priority = (yyvsp[0].val);
5866 (yyvsp[-7].chain)->flags |= CHAIN_F_BASECHAIN;
5868 #line 5869 "parser_bison.c" 5872 #line 1552 "parser_bison.y" 5873 { (yyval.val) = (yyvsp[0].val); }
5874 #line 5875 "parser_bison.c" 5878 #line 1553 "parser_bison.y" 5879 { (yyval.val) = -(yyvsp[0].val); }
5880 #line 5881 "parser_bison.c" 5884 #line 1556 "parser_bison.y" 5885 { (yyval.string) = (yyvsp[0].
string); }
5886 #line 5887 "parser_bison.c" 5890 #line 1557 "parser_bison.y" 5891 { (yyval.string) = NULL; }
5892 #line 5893 "parser_bison.c" 5896 #line 1561 "parser_bison.y" 5898 if ((yyvsp[-2].chain)->policy != -1) {
5899 erec_queue(error(&(yyloc),
"you cannot set chain policy twice"),
5903 (yyvsp[-2].chain)->policy = (yyvsp[0].val);
5905 #line 5906 "parser_bison.c" 5909 #line 1571 "parser_bison.y" 5910 { (yyval.val) = NF_ACCEPT; }
5911 #line 5912 "parser_bison.c" 5915 #line 1572 "parser_bison.y" 5916 { (yyval.val) = NF_DROP; }
5917 #line 5918 "parser_bison.c" 5921 #line 1584 "parser_bison.y" 5923 struct error_record *erec;
5926 erec = time_parse(&(yylsp[0]), (yyvsp[0].
string), &res);
5928 erec_queue(erec, state->msgs);
5933 #line 5934 "parser_bison.c" 5937 #line 1597 "parser_bison.y" 5938 { (yyval.val) = NFPROTO_IPV4; }
5939 #line 5940 "parser_bison.c" 5943 #line 1601 "parser_bison.y" 5944 { (yyval.val) = NFPROTO_IPV4; }
5945 #line 5946 "parser_bison.c" 5949 #line 1602 "parser_bison.y" 5950 { (yyval.val) = NFPROTO_IPV6; }
5951 #line 5952 "parser_bison.c" 5955 #line 1603 "parser_bison.y" 5956 { (yyval.val) = NFPROTO_INET; }
5957 #line 5958 "parser_bison.c" 5961 #line 1604 "parser_bison.y" 5962 { (yyval.val) = NFPROTO_ARP; }
5963 #line 5964 "parser_bison.c" 5967 #line 1605 "parser_bison.y" 5968 { (yyval.val) = NFPROTO_BRIDGE; }
5969 #line 5970 "parser_bison.c" 5973 #line 1606 "parser_bison.y" 5974 { (yyval.val) = NFPROTO_NETDEV; }
5975 #line 5976 "parser_bison.c" 5979 #line 1610 "parser_bison.y" 5981 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
5982 (yyval.handle).family = (yyvsp[-1].val);
5983 (yyval.handle).table = (yyvsp[0].
string);
5985 #line 5986 "parser_bison.c" 5989 #line 1618 "parser_bison.y" 5991 (yyval.handle) = (yyvsp[-1].handle);
5992 (yyval.handle).chain = (yyvsp[0].
string);
5994 #line 5995 "parser_bison.c" 5998 #line 1625 "parser_bison.y" 6000 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6001 (yyval.handle).chain = (yyvsp[0].
string);
6003 #line 6004 "parser_bison.c" 6007 #line 1632 "parser_bison.y" 6009 (yyval.handle) = (yyvsp[-1].handle);
6010 (yyval.handle).
set = (yyvsp[0].
string);
6012 #line 6013 "parser_bison.c" 6016 #line 1639 "parser_bison.y" 6018 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6019 (yyval.handle).
set = (yyvsp[0].
string);
6021 #line 6022 "parser_bison.c" 6025 #line 1646 "parser_bison.y" 6027 (yyval.handle) = (yyvsp[-1].handle);
6028 (yyval.handle).obj = (yyvsp[0].
string);
6030 #line 6031 "parser_bison.c" 6034 #line 1653 "parser_bison.y" 6036 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6037 (yyval.handle).obj = (yyvsp[0].
string);
6039 #line 6040 "parser_bison.c" 6043 #line 1660 "parser_bison.y" 6045 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6046 (yyval.handle).handle.location = (yyloc);
6047 (yyval.handle).handle.id = (yyvsp[0].val);
6049 #line 6050 "parser_bison.c" 6053 #line 1668 "parser_bison.y" 6055 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6056 (yyval.handle).position.location = (yyloc);
6057 (yyval.handle).position.id = (yyvsp[0].val);
6059 #line 6060 "parser_bison.c" 6063 #line 1676 "parser_bison.y" 6065 (yyval.handle) = (yyvsp[0].handle);
6067 #line 6068 "parser_bison.c" 6071 #line 1680 "parser_bison.y" 6073 handle_merge(&(yyvsp[-1].handle), &(yyvsp[0].handle));
6074 (yyval.handle) = (yyvsp[-1].handle);
6076 #line 6077 "parser_bison.c" 6080 #line 1687 "parser_bison.y" 6082 handle_merge(&(yyvsp[-1].handle), &(yyvsp[0].handle));
6083 (yyval.handle) = (yyvsp[-1].handle);
6085 #line 6086 "parser_bison.c" 6089 #line 1694 "parser_bison.y" 6091 if (strlen((yyvsp[0].
string)) > UDATA_COMMENT_MAXLEN) {
6092 erec_queue(error(&(yylsp[0]),
"comment too long, %d characters maximum allowed", UDATA_COMMENT_MAXLEN),
6096 (yyval.string) = (yyvsp[0].
string);
6098 #line 6099 "parser_bison.c" 6102 #line 1705 "parser_bison.y" 6104 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6105 (yyval.handle).family = NFPROTO_UNSPEC;
6107 #line 6108 "parser_bison.c" 6111 #line 1710 "parser_bison.y" 6113 memset(&(yyval.handle), 0,
sizeof((yyval.handle)));
6114 (yyval.handle).family = (yyvsp[0].val);
6116 #line 6117 "parser_bison.c" 6120 #line 1717 "parser_bison.y" 6122 (yyval.rule)->comment = NULL;
6124 #line 6125 "parser_bison.c" 6128 #line 1721 "parser_bison.y" 6130 (yyval.rule)->comment = (yyvsp[0].
string);
6132 #line 6133 "parser_bison.c" 6136 #line 1727 "parser_bison.y" 6140 (yyval.rule) = rule_alloc(&(yyloc), NULL);
6141 list_for_each_entry(i, (yyvsp[0].list), list)
6142 (yyval.rule)->num_stmts++;
6143 list_splice_tail((yyvsp[0].list), &(yyval.rule)->stmts);
6144 xfree((yyvsp[0].list));
6146 #line 6147 "parser_bison.c" 6150 #line 1739 "parser_bison.y" 6152 (yyval.list) = xmalloc(
sizeof(*(yyval.list)));
6153 init_list_head((yyval.list));
6154 list_add_tail(&(yyvsp[0].stmt)->list, (yyval.list));
6156 #line 6157 "parser_bison.c" 6160 #line 1745 "parser_bison.y" 6162 (yyval.list) = (yyvsp[-1].list);
6163 list_add_tail(&(yyvsp[0].stmt)->list, (yyvsp[-1].list));
6165 #line 6166 "parser_bison.c" 6169 #line 1772 "parser_bison.y" 6171 (yyval.stmt) = verdict_stmt_alloc(&(yyloc), (yyvsp[0].expr));
6173 #line 6174 "parser_bison.c" 6177 #line 1776 "parser_bison.y" 6179 (yyval.stmt) = verdict_stmt_alloc(&(yyloc), (yyvsp[0].expr));
6181 #line 6182 "parser_bison.c" 6185 #line 1782 "parser_bison.y" 6187 (yyval.expr) = map_expr_alloc(&(yyloc), (yyvsp[-2].expr), (yyvsp[0].expr));
6189 #line 6190 "parser_bison.c" 6193 #line 1788 "parser_bison.y" 6195 (yyvsp[-1].expr)->location = (yyloc);
6196 (yyval.expr) = (yyvsp[-1].expr);
6198 #line 6199 "parser_bison.c" 6202 #line 1793 "parser_bison.y" 6204 (yyval.expr) = symbol_expr_alloc(&(yyloc), SYMBOL_SET,
6205 current_scope(state),
6207 xfree((yyvsp[0].
string));
6209 #line 6210 "parser_bison.c" 6213 #line 1802 "parser_bison.y" 6215 (yyval.expr) = set_expr_alloc(&(yyloc), NULL);
6216 compound_expr_add((yyval.expr), (yyvsp[0].expr));
6218 #line 6219 "parser_bison.c" 6222 #line 1807 "parser_bison.y" 6224 compound_expr_add((yyvsp[-2].expr), (yyvsp[0].expr));
6225 (yyval.expr) = (yyvsp[-2].expr);
6227 #line 6228 "parser_bison.c" 6231 #line 1815 "parser_bison.y" 6233 (yyval.expr) = mapping_expr_alloc(&(yyloc), (yyvsp[-3].expr), (yyvsp[-1].expr));
6235 #line 6236 "parser_bison.c" 6239 #line 1824 "parser_bison.y" 6241 (yyval.stmt) = counter_stmt_alloc(&(yyloc));
6243 #line 6244 "parser_bison.c" 6247 #line 1828 "parser_bison.y" 6249 (yyval.stmt) = objref_stmt_alloc(&(yyloc));
6250 (yyval.stmt)->objref.type = NFT_OBJECT_COUNTER;
6251 (yyval.stmt)->objref.expr = (yyvsp[0].expr);
6253 #line 6254 "parser_bison.c" 6257 #line 1836 "parser_bison.y" 6259 (yyval.stmt) = (yyvsp[-1].stmt);
6261 #line 6262 "parser_bison.c" 6265 #line 1843 "parser_bison.y" 6267 (yyvsp[-2].stmt)->counter.packets = (yyvsp[0].val);
6269 #line 6270 "parser_bison.c" 6273 #line 1847 "parser_bison.y" 6275 (yyvsp[-2].stmt)->counter.bytes = (yyvsp[0].val);
6277 #line 6278 "parser_bison.c" 6281 #line 1857 "parser_bison.y" 6283 (yyval.stmt) = log_stmt_alloc(&(yyloc));
6285 #line 6286 "parser_bison.c" 6289 #line 1863 "parser_bison.y" 6291 (yyval.stmt) = (yyvsp[-1].stmt);
6293 #line 6294 "parser_bison.c" 6297 #line 1870 "parser_bison.y" 6299 (yyvsp[-2].stmt)->log.prefix = (yyvsp[0].string);
6300 (yyvsp[-2].stmt)->log.flags |= STMT_LOG_PREFIX;
6302 #line 6303 "parser_bison.c" 6306 #line 1875 "parser_bison.y" 6308 (yyvsp[-2].stmt)->log.group = (yyvsp[0].val);
6309 (yyvsp[-2].stmt)->log.flags |= STMT_LOG_GROUP;
6311 #line 6312 "parser_bison.c" 6315 #line 1880 "parser_bison.y" 6317 (yyvsp[-2].stmt)->log.snaplen = (yyvsp[0].val);
6318 (yyvsp[-2].stmt)->log.flags |= STMT_LOG_SNAPLEN;
6320 #line 6321 "parser_bison.c" 6324 #line 1885 "parser_bison.y" 6326 (yyvsp[-2].stmt)->log.qthreshold = (yyvsp[0].val);
6327 (yyvsp[-2].stmt)->log.flags |= STMT_LOG_QTHRESHOLD;
6329 #line 6330 "parser_bison.c" 6333 #line 1890 "parser_bison.y" 6335 (yyvsp[-2].stmt)->log.level = (yyvsp[0].val);
6336 (yyvsp[-2].stmt)->log.flags |= STMT_LOG_LEVEL;
6338 #line 6339 "parser_bison.c" 6342 #line 1895 "parser_bison.y" 6344 (yyvsp[-2].stmt)->log.logflags |= (yyvsp[0].val);
6346 #line 6347 "parser_bison.c" 6350 #line 1901 "parser_bison.y" 6352 if (!strcmp(
"emerg", (yyvsp[0].
string)))
6353 (yyval.val) = LOG_EMERG;
6354 else if (!strcmp(
"alert", (yyvsp[0].
string)))
6355 (yyval.val) = LOG_ALERT;
6356 else if (!strcmp(
"crit", (yyvsp[0].
string)))
6357 (yyval.val) = LOG_CRIT;
6358 else if (!strcmp(
"err", (yyvsp[0].
string)))
6359 (yyval.val) = LOG_ERR;
6360 else if (!strcmp(
"warn", (yyvsp[0].
string)))
6361 (yyval.val) = LOG_WARNING;
6362 else if (!strcmp(
"notice", (yyvsp[0].
string)))
6363 (yyval.val) = LOG_NOTICE;
6364 else if (!strcmp(
"info", (yyvsp[0].
string)))
6365 (yyval.val) = LOG_INFO;
6366 else if (!strcmp(
"debug", (yyvsp[0].
string)))
6367 (yyval.val) = LOG_DEBUG;
6369 erec_queue(error(&(yylsp[0]),
"invalid log level", (yyvsp[0].
string)),
6374 #line 6375 "parser_bison.c" 6378 #line 1927 "parser_bison.y" 6380 (yyval.val) = (yyvsp[0].val);
6382 #line 6383 "parser_bison.c" 6386 #line 1931 "parser_bison.y" 6388 (yyval.val) = NF_LOG_IPOPT;
6390 #line 6391 "parser_bison.c" 6394 #line 1935 "parser_bison.y" 6396 (yyval.val) = NF_LOG_UID;
6398 #line 6399 "parser_bison.c" 6402 #line 1939 "parser_bison.y" 6404 (yyval.val) = NF_LOG_MACDECODE;
6406 #line 6407 "parser_bison.c" 6410 #line 1943 "parser_bison.y" 6412 (yyval.val) = NF_LOG_MASK;
6414 #line 6415 "parser_bison.c" 6418 #line 1949 "parser_bison.y" 6420 (yyval.val) = (yyvsp[-2].val) | (yyvsp[0].val);
6422 #line 6423 "parser_bison.c" 6426 #line 1956 "parser_bison.y" 6428 (yyval.val) = NF_LOG_TCPSEQ;
6430 #line 6431 "parser_bison.c" 6434 #line 1960 "parser_bison.y" 6436 (yyval.val) = NF_LOG_TCPOPT;
6438 #line 6439 "parser_bison.c" 6442 #line 1966 "parser_bison.y" 6444 (yyval.stmt) = limit_stmt_alloc(&(yyloc));
6445 (yyval.stmt)->limit.rate = (yyvsp[-3].val);
6446 (yyval.stmt)->limit.unit = (yyvsp[-1].val);
6447 (yyval.stmt)->limit.burst = (yyvsp[0].val);
6448 (yyval.stmt)->limit.type = NFT_LIMIT_PKTS;
6449 (yyval.stmt)->limit.flags = (yyvsp[-4].val);
6451 #line 6452 "parser_bison.c" 6455 #line 1975 "parser_bison.y" 6457 struct error_record *erec;
6458 uint64_t rate, unit;
6460 erec = rate_parse(&(yyloc), (yyvsp[-1].
string), &rate, &unit);
6462 erec_queue(erec, state->msgs);
6466 (yyval.stmt) = limit_stmt_alloc(&(yyloc));
6467 (yyval.stmt)->limit.rate = rate * (yyvsp[-2].val);
6468 (yyval.stmt)->limit.unit = unit;
6469 (yyval.stmt)->limit.burst = (yyvsp[0].val);
6470 (yyval.stmt)->limit.type = NFT_LIMIT_PKT_BYTES;
6471 (yyval.stmt)->limit.flags = (yyvsp[-3].val);
6473 #line 6474 "parser_bison.c" 6477 #line 1994 "parser_bison.y" 6478 { (yyval.val) = NFT_QUOTA_F_INV; }
6479 #line 6480 "parser_bison.c" 6483 #line 1995 "parser_bison.y" 6484 { (yyval.val) = 0; }
6485 #line 6486 "parser_bison.c" 6489 #line 1996 "parser_bison.y" 6490 { (yyval.val) = 0; }
6491 #line 6492 "parser_bison.c" 6495 #line 1999 "parser_bison.y" 6496 { (yyval.string) = xstrdup(
"bytes"); }
6497 #line 6498 "parser_bison.c" 6501 #line 2000 "parser_bison.y" 6502 { (yyval.string) = (yyvsp[0].
string); }
6503 #line 6504 "parser_bison.c" 6507 #line 2003 "parser_bison.y" 6508 { (yyval.val) = 0; }
6509 #line 6510 "parser_bison.c" 6513 #line 2005 "parser_bison.y" 6515 struct error_record *erec;
6518 erec = data_unit_parse(&(yyloc), (yyvsp[0].
string), &rate);
6520 erec_queue(erec, state->msgs);
6523 (yyval.val) = (yyvsp[-1].val) * rate;
6525 #line 6526 "parser_bison.c" 6529 #line 2019 "parser_bison.y" 6531 struct error_record *erec;
6534 erec = data_unit_parse(&(yyloc), (yyvsp[-1].
string), &rate);
6536 erec_queue(erec, state->msgs);
6539 (yyval.stmt) = quota_stmt_alloc(&(yyloc));
6540 (yyval.stmt)->quota.bytes = (yyvsp[-2].val) * rate;
6541 (yyval.stmt)->quota.used = (yyvsp[0].val);
6542 (yyval.stmt)->quota.flags = (yyvsp[-3].val);
6544 #line 6545 "parser_bison.c" 6548 #line 2034 "parser_bison.y" 6550 (yyval.stmt) = objref_stmt_alloc(&(yyloc));
6551 (yyval.stmt)->objref.type = NFT_OBJECT_QUOTA;
6552 (yyval.stmt)->objref.expr = (yyvsp[0].expr);
6554 #line 6555 "parser_bison.c" 6558 #line 2041 "parser_bison.y" 6559 { (yyval.val) = NFT_LIMIT_F_INV; }
6560 #line 6561 "parser_bison.c" 6564 #line 2042 "parser_bison.y" 6565 { (yyval.val) = 0; }
6566 #line 6567 "parser_bison.c" 6570 #line 2043 "parser_bison.y" 6571 { (yyval.val) = 0; }
6572 #line 6573 "parser_bison.c" 6576 #line 2046 "parser_bison.y" 6577 { (yyval.val) = 0; }
6578 #line 6579 "parser_bison.c" 6582 #line 2047 "parser_bison.y" 6583 { (yyval.val) = (yyvsp[-1].val); }
6584 #line 6585 "parser_bison.c" 6588 #line 2048 "parser_bison.y" 6589 { (yyval.val) = (yyvsp[-1].val); }
6590 #line 6591 "parser_bison.c" 6594 #line 2050 "parser_bison.y" 6596 struct error_record *erec;
6599 erec = data_unit_parse(&(yyloc), (yyvsp[0].
string), &rate);
6601 erec_queue(erec, state->msgs);
6604 (yyval.val) = (yyvsp[-1].val) * rate;
6606 #line 6607 "parser_bison.c" 6610 #line 2063 "parser_bison.y" 6611 { (yyval.val) = 1ULL; }
6612 #line 6613 "parser_bison.c" 6616 #line 2064 "parser_bison.y" 6617 { (yyval.val) = 1ULL * 60; }
6618 #line 6619 "parser_bison.c" 6622 #line 2065 "parser_bison.y" 6623 { (yyval.val) = 1ULL * 60 * 60; }
6624 #line 6625 "parser_bison.c" 6628 #line 2066 "parser_bison.y" 6629 { (yyval.val) = 1ULL * 60 * 60 * 24; }
6630 #line 6631 "parser_bison.c" 6634 #line 2067 "parser_bison.y" 6635 { (yyval.val) = 1ULL * 60 * 60 * 24 * 7; }
6636 #line 6637 "parser_bison.c" 6640 #line 2074 "parser_bison.y" 6642 (yyval.stmt) = reject_stmt_alloc(&(yyloc));
6644 #line 6645 "parser_bison.c" 6648 #line 2080 "parser_bison.y" 6650 (yyvsp[0].stmt)->reject.type = -1;
6651 (yyvsp[0].stmt)->reject.icmp_code = -1;
6653 #line 6654 "parser_bison.c" 6657 #line 2085 "parser_bison.y" 6659 (yyvsp[-4].stmt)->reject.family = NFPROTO_IPV4;
6660 (yyvsp[-4].stmt)->reject.type = NFT_REJECT_ICMP_UNREACH;
6661 (yyvsp[-4].stmt)->reject.expr =
6662 symbol_expr_alloc(&(yyloc), SYMBOL_VALUE,
6663 current_scope(state),
6665 (yyvsp[-4].stmt)->reject.expr->dtype = &icmp_code_type;
6667 #line 6668 "parser_bison.c" 6671 #line 2095 "parser_bison.y" 6673 (yyvsp[-4].stmt)->reject.family = NFPROTO_IPV6;
6674 (yyvsp[-4].stmt)->reject.type = NFT_REJECT_ICMP_UNREACH;
6675 (yyvsp[-4].stmt)->reject.expr =
6676 symbol_expr_alloc(&(yyloc), SYMBOL_VALUE,
6677 current_scope(state),
6679 (yyvsp[-4].stmt)->reject.expr->dtype = &icmpv6_code_type;
6681 #line 6682 "parser_bison.c" 6685 #line 2105 "parser_bison.y" 6687 (yyvsp[-4].stmt)->reject.type = NFT_REJECT_ICMPX_UNREACH;
6688 (yyvsp[-4].stmt)->reject.expr =
6689 symbol_expr_alloc(&(yyloc), SYMBOL_VALUE,
6690 current_scope(state),
6692 (yyvsp[-4].stmt)->reject.expr->dtype = &icmpx_code_type;
6694 #line 6695 "parser_bison.c" 6698 #line 2114 "parser_bison.y" 6700 (yyvsp[-3].stmt)->reject.type = NFT_REJECT_TCP_RST;
6702 #line 6703 "parser_bison.c" 6706 #line 2123 "parser_bison.y" 6708 (yyval.stmt) = nat_stmt_alloc(&(yyloc));
6709 (yyval.stmt)->nat.type = NFT_NAT_SNAT;
6711 #line 6712 "parser_bison.c" 6715 #line 2128 "parser_bison.y" 6717 (yyval.stmt) = nat_stmt_alloc(&(yyloc));
6718 (yyval.stmt)->nat.type = NFT_NAT_DNAT;
6720 #line 6721 "parser_bison.c" 6724 #line 2136 "parser_bison.y" 6726 if ((yyval.expr)->ops->type != EXPR_CONCAT) {
6727 (yyval.expr) = concat_expr_alloc(&(yyloc));
6728 compound_expr_add((yyval.expr), (yyvsp[-2].expr));
6730 struct location rhs[] = {
6734 location_update(&(yyvsp[0].expr)->location, rhs, 2);
6736 (yyval.expr) = (yyvsp[-2].expr);
6737 (yyval.expr)->location = (yyloc);
6739 compound_expr_add((yyval.expr), (yyvsp[0].expr));
6741 #line 6742 "parser_bison.c" 6745 #line 2155 "parser_bison.y" 6747 (yyval.expr) = map_expr_alloc(&(yyloc), (yyvsp[-2].expr), (yyvsp[0].expr));
6749 #line 6750 "parser_bison.c" 6753 #line 2166 "parser_bison.y" 6755 (yyvsp[-1].stmt)->nat.addr = (yyvsp[0].expr);
6757 #line 6758 "parser_bison.c" 6761 #line 2170 "parser_bison.y" 6763 (yyvsp[-2].stmt)->nat.addr = (yyvsp[0].expr);
6765 #line 6766 "parser_bison.c" 6769 #line 2174 "parser_bison.y" 6771 (yyvsp[-3].stmt)->nat.addr = (yyvsp[-2].expr);
6772 (yyvsp[-3].stmt)->nat.proto = (yyvsp[0].expr);
6774 #line 6775 "parser_bison.c" 6778 #line 2179 "parser_bison.y" 6780 (yyvsp[-4].stmt)->nat.addr = (yyvsp[-2].expr);
6781 (yyvsp[-4].stmt)->nat.proto = (yyvsp[0].expr);
6783 #line 6784 "parser_bison.c" 6787 #line 2184 "parser_bison.y" 6789 (yyvsp[-2].stmt)->nat.proto = (yyvsp[0].expr);
6791 #line 6792 "parser_bison.c" 6795 #line 2188 "parser_bison.y" 6797 (yyvsp[-3].stmt)->nat.proto = (yyvsp[0].expr);
6799 #line 6800 "parser_bison.c" 6803 #line 2192 "parser_bison.y" 6805 (yyvsp[-2].stmt)->nat.flags = (yyvsp[0].val);
6807 #line 6808 "parser_bison.c" 6811 #line 2201 "parser_bison.y" 6812 { (yyval.stmt) = masq_stmt_alloc(&(yyloc)); }
6813 #line 6814 "parser_bison.c" 6817 #line 2205 "parser_bison.y" 6819 (yyvsp[-3].stmt)->masq.proto = (yyvsp[0].expr);
6821 #line 6822 "parser_bison.c" 6825 #line 2209 "parser_bison.y" 6827 (yyvsp[-4].stmt)->masq.proto = (yyvsp[-1].expr);
6828 (yyvsp[-4].stmt)->masq.flags = (yyvsp[0].val);
6830 #line 6831 "parser_bison.c" 6834 #line 2214 "parser_bison.y" 6836 (yyvsp[-1].stmt)->masq.flags = (yyvsp[0].val);
6838 #line 6839 "parser_bison.c" 6842 #line 2223 "parser_bison.y" 6843 { (yyval.stmt) = redir_stmt_alloc(&(yyloc)); }
6844 #line 6845 "parser_bison.c" 6848 #line 2227 "parser_bison.y" 6850 (yyvsp[-2].stmt)->redir.proto = (yyvsp[0].expr);
6852 #line 6853 "parser_bison.c" 6856 #line 2231 "parser_bison.y" 6858 (yyvsp[-3].stmt)->redir.proto = (yyvsp[0].expr);
6860 #line 6861 "parser_bison.c" 6864 #line 2235 "parser_bison.y" 6866 (yyvsp[-1].stmt)->redir.flags = (yyvsp[0].val);
6868 #line 6869 "parser_bison.c" 6872 #line 2239 "parser_bison.y" 6874 (yyvsp[-3].stmt)->redir.proto = (yyvsp[-1].expr);
6875 (yyvsp[-3].stmt)->redir.flags = (yyvsp[0].val);
6877 #line 6878 "parser_bison.c" 6881 #line 2244 "parser_bison.y" 6883 (yyvsp[-4].stmt)->redir.proto = (yyvsp[-1].expr);
6884 (yyvsp[-4].stmt)->redir.flags = (yyvsp[0].val);
6886 #line 6887 "parser_bison.c" 6890 #line 2251 "parser_bison.y" 6892 (yyval.stmt) = dup_stmt_alloc(&(yyloc));
6893 (yyval.stmt)->dup.to = (yyvsp[0].expr);
6895 #line 6896 "parser_bison.c" 6899 #line 2256 "parser_bison.y" 6901 (yyval.stmt) = dup_stmt_alloc(&(yyloc));
6902 (yyval.stmt)->dup.to = (yyvsp[-2].expr);
6903 (yyval.stmt)->dup.dev = (yyvsp[0].expr);
6905 #line 6906 "parser_bison.c" 6909 #line 2264 "parser_bison.y" 6911 (yyval.stmt) = fwd_stmt_alloc(&(yyloc));
6912 (yyval.stmt)->fwd.to = (yyvsp[0].expr);
6914 #line 6915 "parser_bison.c" 6918 #line 2272 "parser_bison.y" 6920 (yyval.val) = (yyvsp[-2].val) | (yyvsp[0].val);
6922 #line 6923 "parser_bison.c" 6926 #line 2277 "parser_bison.y" 6927 { (yyval.val) = NF_NAT_RANGE_PROTO_RANDOM; }
6928 #line 6929 "parser_bison.c" 6932 #line 2278 "parser_bison.y" 6933 { (yyval.val) = NF_NAT_RANGE_PROTO_RANDOM_FULLY; }
6934 #line 6935 "parser_bison.c" 6938 #line 2279 "parser_bison.y" 6939 { (yyval.val) = NF_NAT_RANGE_PERSISTENT; }
6940 #line 6941 "parser_bison.c" 6944 #line 2287 "parser_bison.y" 6946 (yyval.stmt) = queue_stmt_alloc(&(yyloc));
6948 #line 6949 "parser_bison.c" 6952 #line 2293 "parser_bison.y" 6954 (yyval.stmt) = (yyvsp[-1].stmt);
6956 #line 6957 "parser_bison.c" 6960 #line 2300 "parser_bison.y" 6962 (yyvsp[-2].stmt)->queue.queue = (yyvsp[0].expr);
6963 (yyvsp[-2].stmt)->queue.queue->location = (yyloc);
6965 #line 6966 "parser_bison.c" 6969 #line 2305 "parser_bison.y" 6971 (yyvsp[-1].stmt)->queue.flags |= (yyvsp[0].val);
6973 #line 6974 "parser_bison.c" 6977 #line 2312 "parser_bison.y" 6979 (yyval.val) = (yyvsp[-2].val) | (yyvsp[0].val);
6981 #line 6982 "parser_bison.c" 6985 #line 2317 "parser_bison.y" 6986 { (yyval.val) = NFT_QUEUE_FLAG_BYPASS; }
6987 #line 6988 "parser_bison.c" 6991 #line 2318 "parser_bison.y" 6992 { (yyval.val) = NFT_QUEUE_FLAG_CPU_FANOUT; }
6993 #line 6994 "parser_bison.c" 6997 #line 2326 "parser_bison.y" 6999 (yyval.expr) = set_elem_expr_alloc(&(yylsp[0]), (yyvsp[0].expr));
7001 #line 7002 "parser_bison.c" 7005 #line 2332 "parser_bison.y" 7007 (yyval.stmt) = set_stmt_alloc(&(yyloc));
7008 (yyval.stmt)->
set.op = (yyvsp[-2].val);
7009 (yyval.stmt)->
set.key = (yyvsp[-1].expr);
7010 (yyval.stmt)->
set.
set = (yyvsp[0].expr);
7012 #line 7013 "parser_bison.c" 7016 #line 2340 "parser_bison.y" 7017 { (yyval.val) = NFT_DYNSET_OP_ADD; }
7018 #line 7019 "parser_bison.c" 7022 #line 2341 "parser_bison.y" 7023 { (yyval.val) = NFT_DYNSET_OP_UPDATE; }
7024 #line 7025 "parser_bison.c" 7028 #line 2345 "parser_bison.y" 7030 (yyvsp[-5].stmt)->flow.key = (yyvsp[-2].expr);
7031 (yyvsp[-5].stmt)->flow.stmt = (yyvsp[-1].stmt);
7032 (yyval.stmt)->location = (yyloc);
7033 (yyval.stmt) = (yyvsp[-5].stmt);
7035 #line 7036 "parser_bison.c" 7039 #line 2352 "parser_bison.y" 7041 (yyvsp[-4].stmt)->flow.key = (yyvsp[-2].expr);
7042 (yyvsp[-4].stmt)->flow.stmt = (yyvsp[-1].stmt);
7043 (yyval.stmt)->location = (yyloc);
7044 (yyval.stmt) = (yyvsp[-4].stmt);
7046 #line 7047 "parser_bison.c" 7050 #line 2361 "parser_bison.y" 7052 (yyval.stmt) = flow_stmt_alloc(&(yyloc));
7054 #line 7055 "parser_bison.c" 7058 #line 2367 "parser_bison.y" 7060 (yyval.stmt) = (yyvsp[-1].stmt);
7062 #line 7063 "parser_bison.c" 7066 #line 2374 "parser_bison.y" 7068 (yyvsp[-2].stmt)->flow.table = (yyvsp[0].string);
7070 #line 7071 "parser_bison.c" 7074 #line 2380 "parser_bison.y" 7076 (yyval.stmt) = expr_stmt_alloc(&(yyloc), (yyvsp[0].expr));
7078 #line 7079 "parser_bison.c" 7082 #line 2386 "parser_bison.y" 7084 struct scope *scope = current_scope(state);
7086 if (symbol_lookup(scope, (yyvsp[0].
string)) == NULL) {
7087 erec_queue(error(&(yylsp[0]),
"unknown identifier '%s'", (yyvsp[0].
string)),
7092 (yyval.expr) = symbol_expr_alloc(&(yyloc), SYMBOL_DEFINE,
7093 scope, (yyvsp[0].string));
7094 xfree((yyvsp[0].
string));
7096 #line 7097 "parser_bison.c" 7100 #line 2403 "parser_bison.y" 7102 (yyval.expr) = symbol_expr_alloc(&(yyloc), SYMBOL_VALUE,
7103 current_scope(state),
7105 xfree((yyvsp[0].
string));
7107 #line 7108 "parser_bison.c" 7111 #line 2410 "parser_bison.y" 7113 (yyval.expr) = symbol_expr_alloc(&(yyloc), SYMBOL_SET,
7114 current_scope(state),
7116 xfree((yyvsp[0].
string));
7118 #line 7119 "parser_bison.c" 7122 #line 2419 "parser_bison.y" 7126 snprintf(str,
sizeof(str),
"%" PRIu64, (yyvsp[0].val));
7127 (yyval.expr) = symbol_expr_alloc(&(yyloc), SYMBOL_VALUE,
7128 current_scope(state),
7131 #line 7132 "parser_bison.c" 7135 #line 2429 "parser_bison.y" 7136 { (yyval.expr) = (yyvsp[0].expr); }
7137 #line 7138 "parser_bison.c" 7141 #line 2430 "parser_bison.y" 7142 { (yyval.expr) = (yyvsp[0].expr); }
7143 #line 7144 "parser_bison.c" 7147 #line 2431 "parser_bison.y" 7148 { (yyval.expr) = (yyvsp[0].expr); }
7149 #line 7150 "parser_bison.c" 7153 #line 2432 "parser_bison.y" 7154 { (yyval.expr) = (yyvsp[0].expr); }
7155 #line 7156 "parser_bison.c" 7159 #line 2433 "parser_bison.y" 7160 { (yyval.expr) = (yyvsp[0].expr); }
7161 #line 7162 "parser_bison.c" 7165 #line 2434 "parser_bison.y" 7166 { (yyval.expr) = (yyvsp[0].expr); }
7167 #line 7168 "parser_bison.c" 7171 #line 2435 "parser_bison.y" 7172 { (yyval.expr) = (yyvsp[0].expr); }
7173 #line 7174 "parser_bison.c" 7177 #line 2436 "parser_bison.y" 7178 { (yyval.expr) = (yyvsp[0].expr); }
7179 #line 7180 "parser_bison.c" 7183 #line 2437 "parser_bison.y" 7184 { (yyval.expr) = (yyvsp[0].expr); }
7185 #line 7186 "parser_bison.c" 7189 #line 2438 "parser_bison.y" 7190 { (yyval.expr) = (yyvsp[0].expr); }
7191 #line 7192 "parser_bison.c" 7195 #line 2439 "parser_bison.y" 7196 { (yyval.expr) = (yyvsp[0].expr); }
7197 #line 7198 "parser_bison.c" 7201 #line 2440 "parser_bison.y" 7202 { (yyval.expr) = (yyvsp[-1].expr); }
7203 #line 7204 "parser_bison.c" 7207 #line 2444 "parser_bison.y" 7209 if (((yyvsp[-1].val) & (NFTA_FIB_F_SADDR|NFTA_FIB_F_DADDR)) == 0) {
7210 erec_queue(error(&(yylsp[-1]),
"fib: need either saddr or daddr"), state->msgs);
7214 if (((yyvsp[-1].val) & (NFTA_FIB_F_SADDR|NFTA_FIB_F_DADDR)) ==
7215 (NFTA_FIB_F_SADDR|NFTA_FIB_F_DADDR)) {
7216 erec_queue(error(&(yylsp[-1]),
"fib: saddr and daddr are mutually exclusive"), state->msgs);
7220 if (((yyvsp[-1].val) & (NFTA_FIB_F_IIF|NFTA_FIB_F_OIF)) ==
7221 (NFTA_FIB_F_IIF|NFTA_FIB_F_OIF)) {
7222 erec_queue(error(&(yylsp[-1]),
"fib: iif and oif are mutually exclusive"), state->msgs);
7226 (yyval.expr) = fib_expr_alloc(&(yyloc), (yyvsp[-1].val), (yyvsp[0].val));
7228 #line 7229 "parser_bison.c" 7232 #line 2466 "parser_bison.y" 7233 { (yyval.val) =NFT_FIB_RESULT_OIF; }
7234 #line 7235 "parser_bison.c" 7238 #line 2467 "parser_bison.y" 7239 { (yyval.val) =NFT_FIB_RESULT_OIFNAME; }
7240 #line 7241 "parser_bison.c" 7244 #line 2468 "parser_bison.y" 7245 { (yyval.val) =NFT_FIB_RESULT_ADDRTYPE; }
7246 #line 7247 "parser_bison.c" 7250 #line 2471 "parser_bison.y" 7251 { (yyval.val) = NFTA_FIB_F_SADDR; }
7252 #line 7253 "parser_bison.c" 7256 #line 2472 "parser_bison.y" 7257 { (yyval.val) = NFTA_FIB_F_DADDR; }
7258 #line 7259 "parser_bison.c" 7262 #line 2473 "parser_bison.y" 7263 { (yyval.val) = NFTA_FIB_F_MARK; }
7264 #line 7265 "parser_bison.c" 7268 #line 2474 "parser_bison.y" 7269 { (yyval.val) = NFTA_FIB_F_IIF; }
7270 #line 7271 "parser_bison.c" 7274 #line 2475 "parser_bison.y" 7275 { (yyval.val) = NFTA_FIB_F_OIF; }
7276 #line 7277 "parser_bison.c" 7280 #line 2479 "parser_bison.y" 7282 (yyval.val) = (yyvsp[-2].val) | (yyvsp[0].val);
7284 #line 7285 "parser_bison.c" 7288 #line 2487 "parser_bison.y" 7290 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_LSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr));
7292 #line 7293 "parser_bison.c" 7296 #line 2491 "parser_bison.y" 7298 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_RSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr));
7300 #line 7301 "parser_bison.c" 7304 #line 2498 "parser_bison.y" 7306 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_AND, (yyvsp[-2].expr), (yyvsp[0].expr));
7308 #line 7309 "parser_bison.c" 7312 #line 2505 "parser_bison.y" 7314 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_XOR, (yyvsp[-2].expr), (yyvsp[0].expr));
7316 #line 7317 "parser_bison.c" 7320 #line 2512 "parser_bison.y" 7322 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_OR, (yyvsp[-2].expr), (yyvsp[0].expr));
7324 #line 7325 "parser_bison.c" 7328 #line 2522 "parser_bison.y" 7330 if ((yyval.expr)->ops->type != EXPR_CONCAT) {
7331 (yyval.expr) = concat_expr_alloc(&(yyloc));
7332 compound_expr_add((yyval.expr), (yyvsp[-2].expr));
7334 struct location rhs[] = {
7338 location_update(&(yyvsp[0].expr)->location, rhs, 2);
7340 (yyval.expr) = (yyvsp[-2].expr);
7341 (yyval.expr)->location = (yyloc);
7343 compound_expr_add((yyval.expr), (yyvsp[0].expr));
7345 #line 7346 "parser_bison.c" 7349 #line 2541 "parser_bison.y" 7351 (yyval.expr) = prefix_expr_alloc(&(yyloc), (yyvsp[-2].expr), (yyvsp[0].val));
7353 #line 7354 "parser_bison.c" 7357 #line 2547 "parser_bison.y" 7359 (yyval.expr) = range_expr_alloc(&(yyloc), (yyvsp[-2].expr), (yyvsp[0].expr));
7361 #line 7362 "parser_bison.c" 7365 #line 2553 "parser_bison.y" 7369 expr = constant_expr_alloc(&(yyloc), &integer_type,
7370 BYTEORDER_HOST_ENDIAN,
7372 (yyval.expr) = prefix_expr_alloc(&(yyloc), expr, 0);
7374 #line 7375 "parser_bison.c" 7378 #line 2569 "parser_bison.y" 7380 (yyval.expr) = map_expr_alloc(&(yyloc), (yyvsp[-2].expr), (yyvsp[0].expr));
7382 #line 7383 "parser_bison.c" 7386 #line 2580 "parser_bison.y" 7388 (yyvsp[-1].expr)->location = (yyloc);
7389 (yyval.expr) = (yyvsp[-1].expr);
7391 #line 7392 "parser_bison.c" 7395 #line 2587 "parser_bison.y" 7397 (yyval.expr) = set_expr_alloc(&(yyloc), NULL);
7398 compound_expr_add((yyval.expr), (yyvsp[0].expr));
7400 #line 7401 "parser_bison.c" 7404 #line 2592 "parser_bison.y" 7406 compound_expr_add((yyvsp[-2].expr), (yyvsp[0].expr));
7407 (yyval.expr) = (yyvsp[-2].expr);
7409 #line 7410 "parser_bison.c" 7413 #line 2600 "parser_bison.y" 7415 (yyval.expr) = (yyvsp[-1].expr);
7417 #line 7418 "parser_bison.c" 7421 #line 2604 "parser_bison.y" 7423 (yyval.expr) = (yyvsp[-1].expr);
7425 #line 7426 "parser_bison.c" 7429 #line 2608 "parser_bison.y" 7431 (yyval.expr) = mapping_expr_alloc(&(yyloc), (yyvsp[-3].expr), (yyvsp[-1].expr));
7433 #line 7434 "parser_bison.c" 7437 #line 2615 "parser_bison.y" 7439 (yyval.expr)->location = (yyloc);
7440 (yyval.expr) = (yyvsp[-1].expr);
7442 #line 7443 "parser_bison.c" 7446 #line 2622 "parser_bison.y" 7448 (yyval.expr) = set_elem_expr_alloc(&(yylsp[0]), (yyvsp[0].expr));
7450 #line 7451 "parser_bison.c" 7454 #line 2632 "parser_bison.y" 7456 (yyval.expr) = set_elem_expr_alloc(&(yylsp[0]), (yyvsp[0].expr));
7458 #line 7459 "parser_bison.c" 7462 #line 2638 "parser_bison.y" 7464 (yyval.expr) = (yyvsp[-1].expr);
7466 #line 7467 "parser_bison.c" 7470 #line 2645 "parser_bison.y" 7472 (yyvsp[-2].expr)->timeout = (yyvsp[0].val) * 1000;
7474 #line 7475 "parser_bison.c" 7478 #line 2649 "parser_bison.y" 7480 (yyvsp[-1].expr)->comment = (yyvsp[0].
string);
7482 #line 7483 "parser_bison.c" 7486 #line 2667 "parser_bison.y" 7488 struct counter *counter;
7490 counter = xzalloc(
sizeof(*counter));
7491 counter->packets = (yyvsp[-2].val);
7492 counter->bytes = (yyvsp[0].val);
7493 (yyval.counter) = counter;
7495 #line 7496 "parser_bison.c" 7499 #line 2678 "parser_bison.y" 7501 (yyval.obj) = obj_alloc(&(yyloc));
7502 (yyval.obj)->type = NFT_OBJECT_COUNTER;
7503 (yyval.obj)->counter = *(yyvsp[0].counter);
7505 #line 7506 "parser_bison.c" 7509 #line 2686 "parser_bison.y" 7511 struct error_record *erec;
7512 struct quota *quota;
7515 erec = data_unit_parse(&(yyloc), (yyvsp[-1].
string), &rate);
7517 erec_queue(erec, state->msgs);
7521 quota = xzalloc(
sizeof(*quota));
7522 quota->bytes = (yyvsp[-2].val) * rate;
7523 quota->used = (yyvsp[0].val);
7524 quota->flags = (yyvsp[-3].val);
7525 (yyval.quota) = quota;
7527 #line 7528 "parser_bison.c" 7531 #line 2706 "parser_bison.y" 7533 (yyval.obj) = obj_alloc(&(yyloc));
7534 (yyval.obj)->type = NFT_OBJECT_QUOTA;
7535 (yyval.obj)->quota = *(yyvsp[0].quota);
7537 #line 7538 "parser_bison.c" 7541 #line 2713 "parser_bison.y" 7542 { (yyval.string) = (yyvsp[0].
string); }
7543 #line 7544 "parser_bison.c" 7547 #line 2716 "parser_bison.y" 7548 { (yyval.val) = IPPROTO_TCP; }
7549 #line 7550 "parser_bison.c" 7553 #line 2717 "parser_bison.y" 7554 { (yyval.val) = IPPROTO_UDP; }
7555 #line 7556 "parser_bison.c" 7559 #line 2721 "parser_bison.y" 7561 struct ct_helper *ct;
7564 ct = &(yyvsp[-5].obj)->ct_helper;
7566 ret = snprintf(ct->name,
sizeof(ct->name),
"%s", (yyvsp[-3].string));
7567 if (ret <= 0 || ret >= (
int)
sizeof(ct->name)) {
7568 erec_queue(error(&(yylsp[-3]),
"invalid name '%s', max length is %u\n", (yyvsp[-3].
string), (
int)
sizeof(ct->name)), state->msgs);
7572 ct->l4proto = (yyvsp[-1].val);
7574 #line 7575 "parser_bison.c" 7578 #line 2736 "parser_bison.y" 7580 (yyvsp[-3].obj)->ct_helper.l3proto = (yyvsp[-1].val);
7582 #line 7583 "parser_bison.c" 7586 #line 2742 "parser_bison.y" 7588 (yyval.obj) = obj_alloc(&(yyloc));
7589 (yyval.obj)->type = NFT_OBJECT_CT_HELPER;
7591 #line 7592 "parser_bison.c" 7595 #line 2749 "parser_bison.y" 7597 (yyval.expr) = relational_expr_alloc(&(yyloc), OP_IMPLICIT, (yyvsp[-1].expr), (yyvsp[0].expr));
7599 #line 7600 "parser_bison.c" 7603 #line 2753 "parser_bison.y" 7605 (yyval.expr) = relational_expr_alloc(&(yyloc), OP_FLAGCMP, (yyvsp[-1].expr), (yyvsp[0].expr));
7607 #line 7608 "parser_bison.c" 7611 #line 2757 "parser_bison.y" 7613 (yyval.expr) = relational_expr_alloc(&(yylsp[-1]), (yyvsp[-1].val), (yyvsp[-2].expr), (yyvsp[0].expr));
7615 #line 7616 "parser_bison.c" 7619 #line 2761 "parser_bison.y" 7621 (yyval.expr) = relational_expr_alloc(&(yylsp[-3]), (yyvsp[-3].val), (yyvsp[-4].expr), (yyvsp[-1].expr));
7623 #line 7624 "parser_bison.c" 7627 #line 2767 "parser_bison.y" 7629 (yyval.expr) = list_expr_alloc(&(yyloc));
7630 compound_expr_add((yyval.expr), (yyvsp[-2].expr));
7631 compound_expr_add((yyval.expr), (yyvsp[0].expr));
7633 #line 7634 "parser_bison.c" 7637 #line 2773 "parser_bison.y" 7639 (yyvsp[-2].expr)->location = (yyloc);
7640 compound_expr_add((yyvsp[-2].expr), (yyvsp[0].expr));
7641 (yyval.expr) = (yyvsp[-2].expr);
7643 #line 7644 "parser_bison.c" 7647 #line 2780 "parser_bison.y" 7648 { (yyval.expr) = (yyvsp[0].expr); }
7649 #line 7650 "parser_bison.c" 7653 #line 2781 "parser_bison.y" 7654 { (yyval.expr) = (yyvsp[0].expr); }
7655 #line 7656 "parser_bison.c" 7659 #line 2782 "parser_bison.y" 7660 { (yyval.expr) = (yyvsp[0].expr); }
7661 #line 7662 "parser_bison.c" 7665 #line 2787 "parser_bison.y" 7667 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_LSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr));
7669 #line 7670 "parser_bison.c" 7673 #line 2791 "parser_bison.y" 7675 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_RSHIFT, (yyvsp[-2].expr), (yyvsp[0].expr));
7677 #line 7678 "parser_bison.c" 7681 #line 2798 "parser_bison.y" 7683 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_AND, (yyvsp[-2].expr), (yyvsp[0].expr));
7685 #line 7686 "parser_bison.c" 7689 #line 2805 "parser_bison.y" 7691 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_XOR, (yyvsp[-2].expr), (yyvsp[0].expr));
7693 #line 7694 "parser_bison.c" 7697 #line 2812 "parser_bison.y" 7699 (yyval.expr) = binop_expr_alloc(&(yyloc), OP_OR, (yyvsp[-2].expr), (yyvsp[0].expr));
7701 #line 7702 "parser_bison.c" 7705 #line 2822 "parser_bison.y" 7707 if ((yyval.expr)->ops->type != EXPR_CONCAT) {
7708 (yyval.expr) = concat_expr_alloc(&(yyloc));
7709 compound_expr_add((yyval.expr), (yyvsp[-2].expr));
7711 struct location rhs[] = {
7715 location_update(&(yyvsp[0].expr)->location, rhs, 2);
7717 (yyval.expr) = (yyvsp[-2].expr);
7718 (yyval.expr)->location = (yyloc);
7720 compound_expr_add((yyval.expr), (yyvsp[0].expr));
7722 #line 7723 "parser_bison.c" 7726 #line 2840 "parser_bison.y" 7727 { (yyval.val) =
true; }
7728 #line 7729 "parser_bison.c" 7732 #line 2841 "parser_bison.y" 7733 { (yyval.val) =
false; }
7734 #line 7735 "parser_bison.c" 7738 #line 2845 "parser_bison.y" 7740 (yyval.expr) = constant_expr_alloc(&(yyloc), &boolean_type,
7741 BYTEORDER_HOST_ENDIAN,
7742 1, &(yyvsp[0].val));
7744 #line 7745 "parser_bison.c" 7748 #line 2852 "parser_bison.y" 7749 { (yyval.expr) = symbol_value(&(yyloc),
"ether"); }
7750 #line 7751 "parser_bison.c" 7754 #line 2853 "parser_bison.y" 7755 { (yyval.expr) = symbol_value(&(yyloc),
"ip"); }
7756 #line 7757 "parser_bison.c" 7760 #line 2854 "parser_bison.y" 7761 { (yyval.expr) = symbol_value(&(yyloc),
"ip6"); }
7762 #line 7763 "parser_bison.c" 7766 #line 2855 "parser_bison.y" 7767 { (yyval.expr) = symbol_value(&(yyloc),
"vlan"); }
7768 #line 7769 "parser_bison.c" 7772 #line 2856 "parser_bison.y" 7773 { (yyval.expr) = symbol_value(&(yyloc),
"arp"); }
7774 #line 7775 "parser_bison.c" 7778 #line 2857 "parser_bison.y" 7779 { (yyval.expr) = symbol_value(&(yyloc),
"dnat"); }
7780 #line 7781 "parser_bison.c" 7784 #line 2858 "parser_bison.y" 7785 { (yyval.expr) = symbol_value(&(yyloc),
"snat"); }
7786 #line 7787 "parser_bison.c" 7790 #line 2859 "parser_bison.y" 7791 { (yyval.expr) = symbol_value(&(yyloc),
"ecn"); }
7792 #line 7793 "parser_bison.c" 7796 #line 2860 "parser_bison.y" 7797 { (yyval.expr) = symbol_value(&(yyloc),
"reset"); }
7798 #line 7799 "parser_bison.c" 7802 #line 2863 "parser_bison.y" 7803 { (yyval.expr) = (yyvsp[0].expr); }
7804 #line 7805 "parser_bison.c" 7808 #line 2864 "parser_bison.y" 7809 { (yyval.expr) = (yyvsp[0].expr); }
7810 #line 7811 "parser_bison.c" 7814 #line 2865 "parser_bison.y" 7815 { (yyval.expr) = (yyvsp[0].expr); }
7816 #line 7817 "parser_bison.c" 7820 #line 2866 "parser_bison.y" 7821 { (yyval.expr) = (yyvsp[0].expr); }
7822 #line 7823 "parser_bison.c" 7826 #line 2868 "parser_bison.y" 7828 uint8_t data = IPPROTO_TCP;
7829 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7830 BYTEORDER_HOST_ENDIAN,
7831 sizeof(data) * BITS_PER_BYTE, &data);
7833 #line 7834 "parser_bison.c" 7837 #line 2875 "parser_bison.y" 7839 uint8_t data = IPPROTO_UDP;
7840 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7841 BYTEORDER_HOST_ENDIAN,
7842 sizeof(data) * BITS_PER_BYTE, &data);
7844 #line 7845 "parser_bison.c" 7848 #line 2882 "parser_bison.y" 7850 uint8_t data = IPPROTO_UDPLITE;
7851 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7852 BYTEORDER_HOST_ENDIAN,
7853 sizeof(data) * BITS_PER_BYTE, &data);
7855 #line 7856 "parser_bison.c" 7859 #line 2889 "parser_bison.y" 7861 uint8_t data = IPPROTO_ESP;
7862 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7863 BYTEORDER_HOST_ENDIAN,
7864 sizeof(data) * BITS_PER_BYTE, &data);
7866 #line 7867 "parser_bison.c" 7870 #line 2896 "parser_bison.y" 7872 uint8_t data = IPPROTO_AH;
7873 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7874 BYTEORDER_HOST_ENDIAN,
7875 sizeof(data) * BITS_PER_BYTE, &data);
7877 #line 7878 "parser_bison.c" 7881 #line 2903 "parser_bison.y" 7883 uint8_t data = IPPROTO_ICMP;
7884 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7885 BYTEORDER_HOST_ENDIAN,
7886 sizeof(data) * BITS_PER_BYTE, &data);
7888 #line 7889 "parser_bison.c" 7892 #line 2910 "parser_bison.y" 7894 uint8_t data = IPPROTO_ICMPV6;
7895 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7896 BYTEORDER_HOST_ENDIAN,
7897 sizeof(data) * BITS_PER_BYTE, &data);
7899 #line 7900 "parser_bison.c" 7903 #line 2917 "parser_bison.y" 7905 uint8_t data = IPPROTO_COMP;
7906 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7907 BYTEORDER_HOST_ENDIAN,
7908 sizeof(data) * BITS_PER_BYTE, &data);
7910 #line 7911 "parser_bison.c" 7914 #line 2924 "parser_bison.y" 7916 uint8_t data = IPPROTO_DCCP;
7917 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7918 BYTEORDER_HOST_ENDIAN,
7919 sizeof(data) * BITS_PER_BYTE, &data);
7921 #line 7922 "parser_bison.c" 7925 #line 2931 "parser_bison.y" 7927 uint8_t data = IPPROTO_SCTP;
7928 (yyval.expr) = constant_expr_alloc(&(yyloc), &inet_protocol_type,
7929 BYTEORDER_HOST_ENDIAN,
7930 sizeof(data) * BITS_PER_BYTE, &data);
7932 #line 7933 "parser_bison.c" 7936 #line 2938 "parser_bison.y" 7938 uint8_t data = ICMP_REDIRECT;
7939 (yyval.expr) = constant_expr_alloc(&(yyloc), &icmp_type_type,
7940 BYTEORDER_HOST_ENDIAN,
7941 sizeof(data) * BITS_PER_BYTE, &data);
7943 #line 7944 "parser_bison.c" 7947 #line 2946 "parser_bison.y" 7948 { (yyval.val) = OP_EQ; }
7949 #line 7950 "parser_bison.c" 7953 #line 2947 "parser_bison.y" 7954 { (yyval.val) = OP_NEQ; }
7955 #line 7956 "parser_bison.c" 7959 #line 2948 "parser_bison.y" 7960 { (yyval.val) = OP_LT; }
7961 #line 7962 "parser_bison.c" 7965 #line 2949 "parser_bison.y" 7966 { (yyval.val) = OP_GT; }
7967 #line 7968 "parser_bison.c" 7971 #line 2950 "parser_bison.y" 7972 { (yyval.val) = OP_GTE; }
7973 #line 7974 "parser_bison.c" 7977 #line 2951 "parser_bison.y" 7978 { (yyval.val) = OP_LTE; }
7979 #line 7980 "parser_bison.c" 7983 #line 2955 "parser_bison.y" 7985 (yyval.expr) = verdict_expr_alloc(&(yyloc), NF_ACCEPT, NULL);
7987 #line 7988 "parser_bison.c" 7991 #line 2959 "parser_bison.y" 7993 (yyval.expr) = verdict_expr_alloc(&(yyloc), NF_DROP, NULL);
7995 #line 7996 "parser_bison.c" 7999 #line 2963 "parser_bison.y" 8001 (yyval.expr) = verdict_expr_alloc(&(yyloc), NFT_CONTINUE, NULL);
8003 #line 8004 "parser_bison.c" 8007 #line 2967 "parser_bison.y" 8009 (yyval.expr) = verdict_expr_alloc(&(yyloc), NFT_JUMP, (yyvsp[0].string));
8011 #line 8012 "parser_bison.c" 8015 #line 2971 "parser_bison.y" 8017 (yyval.expr) = verdict_expr_alloc(&(yyloc), NFT_GOTO, (yyvsp[0].string));
8019 #line 8020 "parser_bison.c" 8023 #line 2975 "parser_bison.y" 8025 (yyval.expr) = verdict_expr_alloc(&(yyloc), NFT_RETURN, NULL);
8027 #line 8028 "parser_bison.c" 8031 #line 2981 "parser_bison.y" 8033 (yyval.expr) = meta_expr_alloc(&(yyloc), (yyvsp[0].val));
8035 #line 8036 "parser_bison.c" 8039 #line 2985 "parser_bison.y" 8041 (yyval.expr) = meta_expr_alloc(&(yyloc), (yyvsp[0].val));
8043 #line 8044 "parser_bison.c" 8047 #line 2989 "parser_bison.y" 8049 struct error_record *erec;
8052 erec = meta_key_parse(&(yyloc), (yyvsp[0].
string), &key);
8054 erec_queue(erec, state->msgs);
8058 (yyval.expr) = meta_expr_alloc(&(yyloc), key);
8060 #line 8061 "parser_bison.c" 8064 #line 3006 "parser_bison.y" 8065 { (yyval.val) = NFT_META_LEN; }
8066 #line 8067 "parser_bison.c" 8070 #line 3007 "parser_bison.y" 8071 { (yyval.val) = NFT_META_PROTOCOL; }
8072 #line 8073 "parser_bison.c" 8076 #line 3008 "parser_bison.y" 8077 { (yyval.val) = NFT_META_PRIORITY; }
8078 #line 8079 "parser_bison.c" 8082 #line 3009 "parser_bison.y" 8083 { (yyval.val) = NFT_META_PRANDOM; }
8084 #line 8085 "parser_bison.c" 8088 #line 3012 "parser_bison.y" 8089 { (yyval.val) = NFT_META_MARK; }
8090 #line 8091 "parser_bison.c" 8094 #line 3013 "parser_bison.y" 8095 { (yyval.val) = NFT_META_IIF; }
8096 #line 8097 "parser_bison.c" 8100 #line 3014 "parser_bison.y" 8101 { (yyval.val) = NFT_META_IIFNAME; }
8102 #line 8103 "parser_bison.c" 8106 #line 3015 "parser_bison.y" 8107 { (yyval.val) = NFT_META_IIFTYPE; }
8108 #line 8109 "parser_bison.c" 8112 #line 3016 "parser_bison.y" 8113 { (yyval.val) = NFT_META_OIF; }
8114 #line 8115 "parser_bison.c" 8118 #line 3017 "parser_bison.y" 8119 { (yyval.val) = NFT_META_OIFNAME; }
8120 #line 8121 "parser_bison.c" 8124 #line 3018 "parser_bison.y" 8125 { (yyval.val) = NFT_META_OIFTYPE; }
8126 #line 8127 "parser_bison.c" 8130 #line 3019 "parser_bison.y" 8131 { (yyval.val) = NFT_META_SKUID; }
8132 #line 8133 "parser_bison.c" 8136 #line 3020 "parser_bison.y" 8137 { (yyval.val) = NFT_META_SKGID; }
8138 #line 8139 "parser_bison.c" 8142 #line 3021 "parser_bison.y" 8143 { (yyval.val) = NFT_META_NFTRACE; }
8144 #line 8145 "parser_bison.c" 8148 #line 3022 "parser_bison.y" 8149 { (yyval.val) = NFT_META_RTCLASSID; }
8150 #line 8151 "parser_bison.c" 8154 #line 3023 "parser_bison.y" 8155 { (yyval.val) = NFT_META_BRI_IIFNAME; }
8156 #line 8157 "parser_bison.c" 8160 #line 3024 "parser_bison.y" 8161 { (yyval.val) = NFT_META_BRI_OIFNAME; }
8162 #line 8163 "parser_bison.c" 8166 #line 3025 "parser_bison.y" 8167 { (yyval.val) = NFT_META_PKTTYPE; }
8168 #line 8169 "parser_bison.c" 8172 #line 3026 "parser_bison.y" 8173 { (yyval.val) = NFT_META_CPU; }
8174 #line 8175 "parser_bison.c" 8178 #line 3027 "parser_bison.y" 8179 { (yyval.val) = NFT_META_IIFGROUP; }
8180 #line 8181 "parser_bison.c" 8184 #line 3028 "parser_bison.y" 8185 { (yyval.val) = NFT_META_OIFGROUP; }
8186 #line 8187 "parser_bison.c" 8190 #line 3029 "parser_bison.y" 8191 { (yyval.val) = NFT_META_CGROUP; }
8192 #line 8193 "parser_bison.c" 8196 #line 3033 "parser_bison.y" 8198 (yyval.stmt) = meta_stmt_alloc(&(yyloc), (yyvsp[-2].val), (yyvsp[0].expr));
8200 #line 8201 "parser_bison.c" 8204 #line 3037 "parser_bison.y" 8206 (yyval.stmt) = meta_stmt_alloc(&(yyloc), (yyvsp[-2].val), (yyvsp[0].expr));
8208 #line 8209 "parser_bison.c" 8212 #line 3041 "parser_bison.y" 8214 struct error_record *erec;
8217 erec = meta_key_parse(&(yyloc), (yyvsp[-2].
string), &key);
8219 erec_queue(erec, state->msgs);
8223 (yyval.stmt) = meta_stmt_alloc(&(yyloc), key, (yyvsp[0].expr));
8225 #line 8226 "parser_bison.c" 8229 #line 3054 "parser_bison.y" 8231 (yyval.stmt) = notrack_stmt_alloc(&(yyloc));
8233 #line 8234 "parser_bison.c" 8237 #line 3059 "parser_bison.y" 8238 { (yyval.val) = 0; }
8239 #line 8240 "parser_bison.c" 8243 #line 3060 "parser_bison.y" 8244 { (yyval.val) = (yyvsp[0].val); }
8245 #line 8246 "parser_bison.c" 8249 #line 3063 "parser_bison.y" 8250 { (yyval.val) = NFT_NG_INCREMENTAL; }
8251 #line 8252 "parser_bison.c" 8255 #line 3064 "parser_bison.y" 8256 { (yyval.val) = NFT_NG_RANDOM; }
8257 #line 8258 "parser_bison.c" 8261 #line 3068 "parser_bison.y" 8263 (yyval.expr) = numgen_expr_alloc(&(yyloc), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val));
8265 #line 8266 "parser_bison.c" 8269 #line 3074 "parser_bison.y" 8271 (yyval.expr) = hash_expr_alloc(&(yyloc), (yyvsp[-3].val),
true, (yyvsp[-1].val), (yyvsp[0].val), NFT_HASH_JENKINS);
8272 (yyval.expr)->hash.expr = (yyvsp[-5].expr);
8274 #line 8275 "parser_bison.c" 8278 #line 3079 "parser_bison.y" 8280 (yyval.expr) = hash_expr_alloc(&(yyloc), (yyvsp[-1].val),
false, 0, (yyvsp[0].val), NFT_HASH_JENKINS);
8281 (yyval.expr)->hash.expr = (yyvsp[-3].expr);
8283 #line 8284 "parser_bison.c" 8287 #line 3084 "parser_bison.y" 8289 (yyval.expr) = hash_expr_alloc(&(yyloc), (yyvsp[-1].val),
false, 0, (yyvsp[0].val), NFT_HASH_SYM);
8291 #line 8292 "parser_bison.c" 8295 #line 3090 "parser_bison.y" 8297 (yyval.expr) = rt_expr_alloc(&(yyloc), (yyvsp[0].val),
true);
8299 #line 8300 "parser_bison.c" 8303 #line 3095 "parser_bison.y" 8304 { (yyval.val) = NFT_RT_CLASSID; }
8305 #line 8306 "parser_bison.c" 8309 #line 3096 "parser_bison.y" 8310 { (yyval.val) = NFT_RT_NEXTHOP4; }
8311 #line 8312 "parser_bison.c" 8315 #line 3100 "parser_bison.y" 8317 (yyval.expr) = ct_expr_alloc(&(yyloc), (yyvsp[0].val), -1);
8319 #line 8320 "parser_bison.c" 8323 #line 3104 "parser_bison.y" 8325 struct error_record *erec;
8328 erec = ct_key_parse(&(yyloc), (yyvsp[0].
string), &key);
8330 erec_queue(erec, state->msgs);
8334 (yyval.expr) = ct_expr_alloc(&(yyloc), key, -1);
8336 #line 8337 "parser_bison.c" 8340 #line 3117 "parser_bison.y" 8342 struct error_record *erec;
8345 erec = ct_dir_parse(&(yyloc), (yyvsp[-1].
string), &direction);
8347 erec_queue(erec, state->msgs);
8351 (yyval.expr) = ct_expr_alloc(&(yyloc), (yyvsp[0].val), direction);
8353 #line 8354 "parser_bison.c" 8357 #line 3131 "parser_bison.y" 8358 { (yyval.val) = NFT_CT_L3PROTOCOL; }
8359 #line 8360 "parser_bison.c" 8363 #line 3132 "parser_bison.y" 8364 { (yyval.val) = NFT_CT_PROTOCOL; }
8365 #line 8366 "parser_bison.c" 8369 #line 3133 "parser_bison.y" 8370 { (yyval.val) = NFT_CT_MARK; }
8371 #line 8372 "parser_bison.c" 8375 #line 3136 "parser_bison.y" 8376 { (yyval.val) = NFT_CT_SRC; }
8377 #line 8378 "parser_bison.c" 8381 #line 3137 "parser_bison.y" 8382 { (yyval.val) = NFT_CT_DST; }
8383 #line 8384 "parser_bison.c" 8387 #line 3138 "parser_bison.y" 8388 { (yyval.val) = NFT_CT_L3PROTOCOL; }
8389 #line 8390 "parser_bison.c" 8393 #line 3139 "parser_bison.y" 8394 { (yyval.val) = NFT_CT_PROTOCOL; }
8395 #line 8396 "parser_bison.c" 8399 #line 3140 "parser_bison.y" 8400 { (yyval.val) = NFT_CT_PROTO_SRC; }
8401 #line 8402 "parser_bison.c" 8405 #line 3141 "parser_bison.y" 8406 { (yyval.val) = NFT_CT_PROTO_DST; }
8407 #line 8408 "parser_bison.c" 8411 #line 3145 "parser_bison.y" 8412 { (yyval.val) = NFT_CT_BYTES; }
8413 #line 8414 "parser_bison.c" 8417 #line 3146 "parser_bison.y" 8418 { (yyval.val) = NFT_CT_PKTS; }
8419 #line 8420 "parser_bison.c" 8423 #line 3147 "parser_bison.y" 8424 { (yyval.val) = NFT_CT_AVGPKT; }
8425 #line 8426 "parser_bison.c" 8429 #line 3148 "parser_bison.y" 8430 { (yyval.val) = NFT_CT_ZONE; }
8431 #line 8432 "parser_bison.c" 8435 #line 3152 "parser_bison.y" 8437 (yyval.expr) = list_expr_alloc(&(yyloc));
8438 compound_expr_add((yyval.expr), (yyvsp[-2].expr));
8439 compound_expr_add((yyval.expr), (yyvsp[0].expr));
8441 #line 8442 "parser_bison.c" 8445 #line 3158 "parser_bison.y" 8447 (yyvsp[-2].expr)->location = (yyloc);
8448 compound_expr_add((yyvsp[-2].expr), (yyvsp[0].expr));
8449 (yyval.expr) = (yyvsp[-2].expr);
8451 #line 8452 "parser_bison.c" 8455 #line 3170 "parser_bison.y" 8457 (yyval.stmt) = ct_stmt_alloc(&(yyloc), (yyvsp[-2].val), -1, (yyvsp[0].expr));
8459 #line 8460 "parser_bison.c" 8463 #line 3174 "parser_bison.y" 8465 struct error_record *erec;
8468 erec = ct_key_parse(&(yyloc), (yyvsp[-2].
string), &key);
8470 erec_queue(erec, state->msgs);
8476 (yyval.stmt) = objref_stmt_alloc(&(yyloc));
8477 (yyval.stmt)->objref.type = NFT_OBJECT_CT_HELPER;
8478 (yyval.stmt)->objref.expr = (yyvsp[0].expr);
8481 (yyval.stmt) = ct_stmt_alloc(&(yyloc), key, -1, (yyvsp[0].expr));
8485 #line 8486 "parser_bison.c" 8489 #line 3196 "parser_bison.y" 8491 struct error_record *erec;
8494 erec = ct_dir_parse(&(yyloc), (yyvsp[-3].
string), &direction);
8496 erec_queue(erec, state->msgs);
8500 (yyval.stmt) = ct_stmt_alloc(&(yyloc), (yyvsp[-2].val), direction, (yyvsp[0].expr));
8502 #line 8503 "parser_bison.c" 8506 #line 3211 "parser_bison.y" 8508 (yyval.stmt) = payload_stmt_alloc(&(yyloc), (yyvsp[-2].expr), (yyvsp[0].expr));
8510 #line 8511 "parser_bison.c" 8514 #line 3235 "parser_bison.y" 8516 (yyval.expr) = payload_expr_alloc(&(yyloc), NULL, 0);
8517 (yyval.expr)->payload.base = (yyvsp[-4].val);
8518 (yyval.expr)->payload.offset = (yyvsp[-2].val);
8519 (yyval.expr)->len = (yyvsp[0].val);
8520 (yyval.expr)->dtype = &integer_type;
8522 #line 8523 "parser_bison.c" 8526 #line 3244 "parser_bison.y" 8527 { (yyval.val) = PROTO_BASE_LL_HDR; }
8528 #line 8529 "parser_bison.c" 8532 #line 3245 "parser_bison.y" 8533 { (yyval.val) = PROTO_BASE_NETWORK_HDR; }
8534 #line 8535 "parser_bison.c" 8538 #line 3246 "parser_bison.y" 8539 { (yyval.val) = PROTO_BASE_TRANSPORT_HDR; }
8540 #line 8541 "parser_bison.c" 8544 #line 3250 "parser_bison.y" 8546 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_eth, (yyvsp[0].val));
8548 #line 8549 "parser_bison.c" 8552 #line 3255 "parser_bison.y" 8553 { (yyval.val) = ETHHDR_SADDR; }
8554 #line 8555 "parser_bison.c" 8558 #line 3256 "parser_bison.y" 8559 { (yyval.val) = ETHHDR_DADDR; }
8560 #line 8561 "parser_bison.c" 8564 #line 3257 "parser_bison.y" 8565 { (yyval.val) = ETHHDR_TYPE; }
8566 #line 8567 "parser_bison.c" 8570 #line 3261 "parser_bison.y" 8572 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_vlan, (yyvsp[0].val));
8574 #line 8575 "parser_bison.c" 8578 #line 3266 "parser_bison.y" 8579 { (yyval.val) = VLANHDR_VID; }
8580 #line 8581 "parser_bison.c" 8584 #line 3267 "parser_bison.y" 8585 { (yyval.val) = VLANHDR_CFI; }
8586 #line 8587 "parser_bison.c" 8590 #line 3268 "parser_bison.y" 8591 { (yyval.val) = VLANHDR_PCP; }
8592 #line 8593 "parser_bison.c" 8596 #line 3269 "parser_bison.y" 8597 { (yyval.val) = VLANHDR_TYPE; }
8598 #line 8599 "parser_bison.c" 8602 #line 3273 "parser_bison.y" 8604 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_arp, (yyvsp[0].val));
8606 #line 8607 "parser_bison.c" 8610 #line 3278 "parser_bison.y" 8611 { (yyval.val) = ARPHDR_HRD; }
8612 #line 8613 "parser_bison.c" 8616 #line 3279 "parser_bison.y" 8617 { (yyval.val) = ARPHDR_PRO; }
8618 #line 8619 "parser_bison.c" 8622 #line 3280 "parser_bison.y" 8623 { (yyval.val) = ARPHDR_HLN; }
8624 #line 8625 "parser_bison.c" 8628 #line 3281 "parser_bison.y" 8629 { (yyval.val) = ARPHDR_PLN; }
8630 #line 8631 "parser_bison.c" 8634 #line 3282 "parser_bison.y" 8635 { (yyval.val) = ARPHDR_OP; }
8636 #line 8637 "parser_bison.c" 8640 #line 3286 "parser_bison.y" 8642 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_ip, (yyvsp[0].val));
8644 #line 8645 "parser_bison.c" 8648 #line 3291 "parser_bison.y" 8649 { (yyval.val) = IPHDR_VERSION; }
8650 #line 8651 "parser_bison.c" 8654 #line 3292 "parser_bison.y" 8655 { (yyval.val) = IPHDR_HDRLENGTH; }
8656 #line 8657 "parser_bison.c" 8660 #line 3293 "parser_bison.y" 8661 { (yyval.val) = IPHDR_DSCP; }
8662 #line 8663 "parser_bison.c" 8666 #line 3294 "parser_bison.y" 8667 { (yyval.val) = IPHDR_ECN; }
8668 #line 8669 "parser_bison.c" 8672 #line 3295 "parser_bison.y" 8673 { (yyval.val) = IPHDR_LENGTH; }
8674 #line 8675 "parser_bison.c" 8678 #line 3296 "parser_bison.y" 8679 { (yyval.val) = IPHDR_ID; }
8680 #line 8681 "parser_bison.c" 8684 #line 3297 "parser_bison.y" 8685 { (yyval.val) = IPHDR_FRAG_OFF; }
8686 #line 8687 "parser_bison.c" 8690 #line 3298 "parser_bison.y" 8691 { (yyval.val) = IPHDR_TTL; }
8692 #line 8693 "parser_bison.c" 8696 #line 3299 "parser_bison.y" 8697 { (yyval.val) = IPHDR_PROTOCOL; }
8698 #line 8699 "parser_bison.c" 8702 #line 3300 "parser_bison.y" 8703 { (yyval.val) = IPHDR_CHECKSUM; }
8704 #line 8705 "parser_bison.c" 8708 #line 3301 "parser_bison.y" 8709 { (yyval.val) = IPHDR_SADDR; }
8710 #line 8711 "parser_bison.c" 8714 #line 3302 "parser_bison.y" 8715 { (yyval.val) = IPHDR_DADDR; }
8716 #line 8717 "parser_bison.c" 8720 #line 3306 "parser_bison.y" 8722 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_icmp, (yyvsp[0].val));
8724 #line 8725 "parser_bison.c" 8728 #line 3311 "parser_bison.y" 8729 { (yyval.val) = ICMPHDR_TYPE; }
8730 #line 8731 "parser_bison.c" 8734 #line 3312 "parser_bison.y" 8735 { (yyval.val) = ICMPHDR_CODE; }
8736 #line 8737 "parser_bison.c" 8740 #line 3313 "parser_bison.y" 8741 { (yyval.val) = ICMPHDR_CHECKSUM; }
8742 #line 8743 "parser_bison.c" 8746 #line 3314 "parser_bison.y" 8747 { (yyval.val) = ICMPHDR_ID; }
8748 #line 8749 "parser_bison.c" 8752 #line 3315 "parser_bison.y" 8753 { (yyval.val) = ICMPHDR_SEQ; }
8754 #line 8755 "parser_bison.c" 8758 #line 3316 "parser_bison.y" 8759 { (yyval.val) = ICMPHDR_GATEWAY; }
8760 #line 8761 "parser_bison.c" 8764 #line 3317 "parser_bison.y" 8765 { (yyval.val) = ICMPHDR_MTU; }
8766 #line 8767 "parser_bison.c" 8770 #line 3321 "parser_bison.y" 8772 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_ip6, (yyvsp[0].val));
8774 #line 8775 "parser_bison.c" 8778 #line 3326 "parser_bison.y" 8779 { (yyval.val) = IP6HDR_VERSION; }
8780 #line 8781 "parser_bison.c" 8784 #line 3327 "parser_bison.y" 8785 { (yyval.val) = IP6HDR_DSCP; }
8786 #line 8787 "parser_bison.c" 8790 #line 3328 "parser_bison.y" 8791 { (yyval.val) = IP6HDR_ECN; }
8792 #line 8793 "parser_bison.c" 8796 #line 3329 "parser_bison.y" 8797 { (yyval.val) = IP6HDR_FLOWLABEL; }
8798 #line 8799 "parser_bison.c" 8802 #line 3330 "parser_bison.y" 8803 { (yyval.val) = IP6HDR_LENGTH; }
8804 #line 8805 "parser_bison.c" 8808 #line 3331 "parser_bison.y" 8809 { (yyval.val) = IP6HDR_NEXTHDR; }
8810 #line 8811 "parser_bison.c" 8814 #line 3332 "parser_bison.y" 8815 { (yyval.val) = IP6HDR_HOPLIMIT; }
8816 #line 8817 "parser_bison.c" 8820 #line 3333 "parser_bison.y" 8821 { (yyval.val) = IP6HDR_SADDR; }
8822 #line 8823 "parser_bison.c" 8826 #line 3334 "parser_bison.y" 8827 { (yyval.val) = IP6HDR_DADDR; }
8828 #line 8829 "parser_bison.c" 8832 #line 3337 "parser_bison.y" 8834 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_icmp6, (yyvsp[0].val));
8836 #line 8837 "parser_bison.c" 8840 #line 3342 "parser_bison.y" 8841 { (yyval.val) = ICMP6HDR_TYPE; }
8842 #line 8843 "parser_bison.c" 8846 #line 3343 "parser_bison.y" 8847 { (yyval.val) = ICMP6HDR_CODE; }
8848 #line 8849 "parser_bison.c" 8852 #line 3344 "parser_bison.y" 8853 { (yyval.val) = ICMP6HDR_CHECKSUM; }
8854 #line 8855 "parser_bison.c" 8858 #line 3345 "parser_bison.y" 8859 { (yyval.val) = ICMP6HDR_PPTR; }
8860 #line 8861 "parser_bison.c" 8864 #line 3346 "parser_bison.y" 8865 { (yyval.val) = ICMP6HDR_MTU; }
8866 #line 8867 "parser_bison.c" 8870 #line 3347 "parser_bison.y" 8871 { (yyval.val) = ICMP6HDR_ID; }
8872 #line 8873 "parser_bison.c" 8876 #line 3348 "parser_bison.y" 8877 { (yyval.val) = ICMP6HDR_SEQ; }
8878 #line 8879 "parser_bison.c" 8882 #line 3349 "parser_bison.y" 8883 { (yyval.val) = ICMP6HDR_MAXDELAY; }
8884 #line 8885 "parser_bison.c" 8888 #line 3353 "parser_bison.y" 8890 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_ah, (yyvsp[0].val));
8892 #line 8893 "parser_bison.c" 8896 #line 3358 "parser_bison.y" 8897 { (yyval.val) = AHHDR_NEXTHDR; }
8898 #line 8899 "parser_bison.c" 8902 #line 3359 "parser_bison.y" 8903 { (yyval.val) = AHHDR_HDRLENGTH; }
8904 #line 8905 "parser_bison.c" 8908 #line 3360 "parser_bison.y" 8909 { (yyval.val) = AHHDR_RESERVED; }
8910 #line 8911 "parser_bison.c" 8914 #line 3361 "parser_bison.y" 8915 { (yyval.val) = AHHDR_SPI; }
8916 #line 8917 "parser_bison.c" 8920 #line 3362 "parser_bison.y" 8921 { (yyval.val) = AHHDR_SEQUENCE; }
8922 #line 8923 "parser_bison.c" 8926 #line 3366 "parser_bison.y" 8928 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_esp, (yyvsp[0].val));
8930 #line 8931 "parser_bison.c" 8934 #line 3371 "parser_bison.y" 8935 { (yyval.val) = ESPHDR_SPI; }
8936 #line 8937 "parser_bison.c" 8940 #line 3372 "parser_bison.y" 8941 { (yyval.val) = ESPHDR_SEQUENCE; }
8942 #line 8943 "parser_bison.c" 8946 #line 3376 "parser_bison.y" 8948 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_comp, (yyvsp[0].val));
8950 #line 8951 "parser_bison.c" 8954 #line 3381 "parser_bison.y" 8955 { (yyval.val) = COMPHDR_NEXTHDR; }
8956 #line 8957 "parser_bison.c" 8960 #line 3382 "parser_bison.y" 8961 { (yyval.val) = COMPHDR_FLAGS; }
8962 #line 8963 "parser_bison.c" 8966 #line 3383 "parser_bison.y" 8967 { (yyval.val) = COMPHDR_CPI; }
8968 #line 8969 "parser_bison.c" 8972 #line 3387 "parser_bison.y" 8974 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_udp, (yyvsp[0].val));
8976 #line 8977 "parser_bison.c" 8980 #line 3392 "parser_bison.y" 8981 { (yyval.val) = UDPHDR_SPORT; }
8982 #line 8983 "parser_bison.c" 8986 #line 3393 "parser_bison.y" 8987 { (yyval.val) = UDPHDR_DPORT; }
8988 #line 8989 "parser_bison.c" 8992 #line 3394 "parser_bison.y" 8993 { (yyval.val) = UDPHDR_LENGTH; }
8994 #line 8995 "parser_bison.c" 8998 #line 3395 "parser_bison.y" 8999 { (yyval.val) = UDPHDR_CHECKSUM; }
9000 #line 9001 "parser_bison.c" 9004 #line 3399 "parser_bison.y" 9006 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_udplite, (yyvsp[0].val));
9008 #line 9009 "parser_bison.c" 9012 #line 3404 "parser_bison.y" 9013 { (yyval.val) = UDPHDR_SPORT; }
9014 #line 9015 "parser_bison.c" 9018 #line 3405 "parser_bison.y" 9019 { (yyval.val) = UDPHDR_DPORT; }
9020 #line 9021 "parser_bison.c" 9024 #line 3406 "parser_bison.y" 9025 { (yyval.val) = UDPHDR_LENGTH; }
9026 #line 9027 "parser_bison.c" 9030 #line 3407 "parser_bison.y" 9031 { (yyval.val) = UDPHDR_CHECKSUM; }
9032 #line 9033 "parser_bison.c" 9036 #line 3411 "parser_bison.y" 9038 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_tcp, (yyvsp[0].val));
9040 #line 9041 "parser_bison.c" 9044 #line 3415 "parser_bison.y" 9046 (yyval.expr) = tcpopt_expr_alloc(&(yyloc), (yyvsp[-1].val), (yyvsp[0].val));
9048 #line 9049 "parser_bison.c" 9052 #line 3419 "parser_bison.y" 9054 (yyval.expr) = tcpopt_expr_alloc(&(yyloc), (yyvsp[0].val), TCPOPTHDR_FIELD_KIND);
9055 (yyval.expr)->exthdr.flags = NFT_EXTHDR_F_PRESENT;
9057 #line 9058 "parser_bison.c" 9061 #line 3425 "parser_bison.y" 9062 { (yyval.val) = TCPHDR_SPORT; }
9063 #line 9064 "parser_bison.c" 9067 #line 3426 "parser_bison.y" 9068 { (yyval.val) = TCPHDR_DPORT; }
9069 #line 9070 "parser_bison.c" 9073 #line 3427 "parser_bison.y" 9074 { (yyval.val) = TCPHDR_SEQ; }
9075 #line 9076 "parser_bison.c" 9079 #line 3428 "parser_bison.y" 9080 { (yyval.val) = TCPHDR_ACKSEQ; }
9081 #line 9082 "parser_bison.c" 9085 #line 3429 "parser_bison.y" 9086 { (yyval.val) = TCPHDR_DOFF; }
9087 #line 9088 "parser_bison.c" 9091 #line 3430 "parser_bison.y" 9092 { (yyval.val) = TCPHDR_RESERVED; }
9093 #line 9094 "parser_bison.c" 9097 #line 3431 "parser_bison.y" 9098 { (yyval.val) = TCPHDR_FLAGS; }
9099 #line 9100 "parser_bison.c" 9103 #line 3432 "parser_bison.y" 9104 { (yyval.val) = TCPHDR_WINDOW; }
9105 #line 9106 "parser_bison.c" 9109 #line 3433 "parser_bison.y" 9110 { (yyval.val) = TCPHDR_CHECKSUM; }
9111 #line 9112 "parser_bison.c" 9115 #line 3434 "parser_bison.y" 9116 { (yyval.val) = TCPHDR_URGPTR; }
9117 #line 9118 "parser_bison.c" 9121 #line 3437 "parser_bison.y" 9122 { (yyval.val) = TCPOPTHDR_EOL; }
9123 #line 9124 "parser_bison.c" 9127 #line 3438 "parser_bison.y" 9128 { (yyval.val) = TCPOPTHDR_NOOP; }
9129 #line 9130 "parser_bison.c" 9133 #line 3439 "parser_bison.y" 9134 { (yyval.val) = TCPOPTHDR_MAXSEG; }
9135 #line 9136 "parser_bison.c" 9139 #line 3440 "parser_bison.y" 9140 { (yyval.val) = TCPOPTHDR_WINDOW; }
9141 #line 9142 "parser_bison.c" 9145 #line 3441 "parser_bison.y" 9146 { (yyval.val) = TCPOPTHDR_SACK_PERMITTED; }
9147 #line 9148 "parser_bison.c" 9151 #line 3442 "parser_bison.y" 9152 { (yyval.val) = TCPOPTHDR_SACK0; }
9153 #line 9154 "parser_bison.c" 9157 #line 3443 "parser_bison.y" 9158 { (yyval.val) = TCPOPTHDR_SACK0; }
9159 #line 9160 "parser_bison.c" 9163 #line 3444 "parser_bison.y" 9164 { (yyval.val) = TCPOPTHDR_SACK1; }
9165 #line 9166 "parser_bison.c" 9169 #line 3445 "parser_bison.y" 9170 { (yyval.val) = TCPOPTHDR_SACK2; }
9171 #line 9172 "parser_bison.c" 9175 #line 3446 "parser_bison.y" 9176 { (yyval.val) = TCPOPTHDR_SACK3; }
9177 #line 9178 "parser_bison.c" 9181 #line 3447 "parser_bison.y" 9182 { (yyval.val) = TCPOPTHDR_ECHO; }
9183 #line 9184 "parser_bison.c" 9187 #line 3448 "parser_bison.y" 9188 { (yyval.val) = TCPOPTHDR_TIMESTAMP; }
9189 #line 9190 "parser_bison.c" 9193 #line 3451 "parser_bison.y" 9194 { (yyval.val) = TCPOPTHDR_FIELD_KIND; }
9195 #line 9196 "parser_bison.c" 9199 #line 3452 "parser_bison.y" 9200 { (yyval.val) = TCPOPTHDR_FIELD_LENGTH; }
9201 #line 9202 "parser_bison.c" 9205 #line 3453 "parser_bison.y" 9206 { (yyval.val) = TCPOPTHDR_FIELD_SIZE; }
9207 #line 9208 "parser_bison.c" 9211 #line 3454 "parser_bison.y" 9212 { (yyval.val) = TCPOPTHDR_FIELD_COUNT; }
9213 #line 9214 "parser_bison.c" 9217 #line 3455 "parser_bison.y" 9218 { (yyval.val) = TCPOPTHDR_FIELD_LEFT; }
9219 #line 9220 "parser_bison.c" 9223 #line 3456 "parser_bison.y" 9224 { (yyval.val) = TCPOPTHDR_FIELD_RIGHT; }
9225 #line 9226 "parser_bison.c" 9229 #line 3457 "parser_bison.y" 9230 { (yyval.val) = TCPOPTHDR_FIELD_TSVAL; }
9231 #line 9232 "parser_bison.c" 9235 #line 3458 "parser_bison.y" 9236 { (yyval.val) = TCPOPTHDR_FIELD_TSECR; }
9237 #line 9238 "parser_bison.c" 9241 #line 3462 "parser_bison.y" 9243 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_dccp, (yyvsp[0].val));
9245 #line 9246 "parser_bison.c" 9249 #line 3467 "parser_bison.y" 9250 { (yyval.val) = DCCPHDR_SPORT; }
9251 #line 9252 "parser_bison.c" 9255 #line 3468 "parser_bison.y" 9256 { (yyval.val) = DCCPHDR_DPORT; }
9257 #line 9258 "parser_bison.c" 9261 #line 3469 "parser_bison.y" 9262 { (yyval.val) = DCCPHDR_TYPE; }
9263 #line 9264 "parser_bison.c" 9267 #line 3473 "parser_bison.y" 9269 (yyval.expr) = payload_expr_alloc(&(yyloc), &proto_sctp, (yyvsp[0].val));
9271 #line 9272 "parser_bison.c" 9275 #line 3478 "parser_bison.y" 9276 { (yyval.val) = SCTPHDR_SPORT; }
9277 #line 9278 "parser_bison.c" 9281 #line 3479 "parser_bison.y" 9282 { (yyval.val) = SCTPHDR_DPORT; }
9283 #line 9284 "parser_bison.c" 9287 #line 3480 "parser_bison.y" 9288 { (yyval.val) = SCTPHDR_VTAG; }
9289 #line 9290 "parser_bison.c" 9293 #line 3481 "parser_bison.y" 9294 { (yyval.val) = SCTPHDR_CHECKSUM; }
9295 #line 9296 "parser_bison.c" 9299 #line 3494 "parser_bison.y" 9301 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_hbh, (yyvsp[0].val));
9303 #line 9304 "parser_bison.c" 9307 #line 3499 "parser_bison.y" 9308 { (yyval.val) = HBHHDR_NEXTHDR; }
9309 #line 9310 "parser_bison.c" 9313 #line 3500 "parser_bison.y" 9314 { (yyval.val) = HBHHDR_HDRLENGTH; }
9315 #line 9316 "parser_bison.c" 9319 #line 3504 "parser_bison.y" 9321 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_rt, (yyvsp[0].val));
9323 #line 9324 "parser_bison.c" 9327 #line 3509 "parser_bison.y" 9328 { (yyval.val) = RTHDR_NEXTHDR; }
9329 #line 9330 "parser_bison.c" 9333 #line 3510 "parser_bison.y" 9334 { (yyval.val) = RTHDR_HDRLENGTH; }
9335 #line 9336 "parser_bison.c" 9339 #line 3511 "parser_bison.y" 9340 { (yyval.val) = RTHDR_TYPE; }
9341 #line 9342 "parser_bison.c" 9345 #line 3512 "parser_bison.y" 9346 { (yyval.val) = RTHDR_SEG_LEFT; }
9347 #line 9348 "parser_bison.c" 9351 #line 3516 "parser_bison.y" 9353 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_rt0, (yyvsp[0].val));
9355 #line 9356 "parser_bison.c" 9359 #line 3522 "parser_bison.y" 9361 (yyval.val) = RT0HDR_ADDR_1 + (yyvsp[-1].val) - 1;
9363 #line 9364 "parser_bison.c" 9367 #line 3528 "parser_bison.y" 9369 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_rt2, (yyvsp[0].val));
9371 #line 9372 "parser_bison.c" 9375 #line 3533 "parser_bison.y" 9376 { (yyval.val) = RT2HDR_ADDR; }
9377 #line 9378 "parser_bison.c" 9381 #line 3537 "parser_bison.y" 9383 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_frag, (yyvsp[0].val));
9385 #line 9386 "parser_bison.c" 9389 #line 3542 "parser_bison.y" 9390 { (yyval.val) = FRAGHDR_NEXTHDR; }
9391 #line 9392 "parser_bison.c" 9395 #line 3543 "parser_bison.y" 9396 { (yyval.val) = FRAGHDR_RESERVED; }
9397 #line 9398 "parser_bison.c" 9401 #line 3544 "parser_bison.y" 9402 { (yyval.val) = FRAGHDR_FRAG_OFF; }
9403 #line 9404 "parser_bison.c" 9407 #line 3545 "parser_bison.y" 9408 { (yyval.val) = FRAGHDR_RESERVED2; }
9409 #line 9410 "parser_bison.c" 9413 #line 3546 "parser_bison.y" 9414 { (yyval.val) = FRAGHDR_MFRAGS; }
9415 #line 9416 "parser_bison.c" 9419 #line 3547 "parser_bison.y" 9420 { (yyval.val) = FRAGHDR_ID; }
9421 #line 9422 "parser_bison.c" 9425 #line 3551 "parser_bison.y" 9427 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_dst, (yyvsp[0].val));
9429 #line 9430 "parser_bison.c" 9433 #line 3556 "parser_bison.y" 9434 { (yyval.val) = DSTHDR_NEXTHDR; }
9435 #line 9436 "parser_bison.c" 9439 #line 3557 "parser_bison.y" 9440 { (yyval.val) = DSTHDR_HDRLENGTH; }
9441 #line 9442 "parser_bison.c" 9445 #line 3561 "parser_bison.y" 9447 (yyval.expr) = exthdr_expr_alloc(&(yyloc), &exthdr_mh, (yyvsp[0].val));
9449 #line 9450 "parser_bison.c" 9453 #line 3566 "parser_bison.y" 9454 { (yyval.val) = MHHDR_NEXTHDR; }
9455 #line 9456 "parser_bison.c" 9459 #line 3567 "parser_bison.y" 9460 { (yyval.val) = MHHDR_HDRLENGTH; }
9461 #line 9462 "parser_bison.c" 9465 #line 3568 "parser_bison.y" 9466 { (yyval.val) = MHHDR_TYPE; }
9467 #line 9468 "parser_bison.c" 9471 #line 3569 "parser_bison.y" 9472 { (yyval.val) = MHHDR_RESERVED; }
9473 #line 9474 "parser_bison.c" 9477 #line 3570 "parser_bison.y" 9478 { (yyval.val) = MHHDR_CHECKSUM; }
9479 #line 9480 "parser_bison.c" 9483 #line 3574 "parser_bison.y" 9485 const struct exthdr_desc *desc;
9487 desc = exthdr_find_proto((yyvsp[0].val));
9492 (yyval.expr) = exthdr_expr_alloc(&(yyloc), desc, 1);
9493 (yyval.expr)->exthdr.flags = NFT_EXTHDR_F_PRESENT;
9495 #line 9496 "parser_bison.c" 9499 #line 3587 "parser_bison.y" 9500 { (yyval.val) = IPPROTO_HOPOPTS; }
9501 #line 9502 "parser_bison.c" 9505 #line 3588 "parser_bison.y" 9506 { (yyval.val) = IPPROTO_ROUTING; }
9507 #line 9508 "parser_bison.c" 9511 #line 3589 "parser_bison.y" 9512 { (yyval.val) = IPPROTO_FRAGMENT; }
9513 #line 9514 "parser_bison.c" 9517 #line 3590 "parser_bison.y" 9518 { (yyval.val) = IPPROTO_DSTOPTS; }
9519 #line 9520 "parser_bison.c" 9523 #line 3591 "parser_bison.y" 9524 { (yyval.val) = IPPROTO_MH; }
9525 #line 9526 "parser_bison.c" 9529 #line 9530 "parser_bison.c" 9543 YY_SYMBOL_PRINT (
"-> $$ =", yyr1[yyn], &yyval, &yyloc);
9547 YY_STACK_PRINT (yyss, yyssp);
9558 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
9559 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
9560 yystate = yytable[yystate];
9562 yystate = yydefgoto[yyn - YYNTOKENS];
9573 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
9579 #if ! YYERROR_VERBOSE 9580 yyerror (&yylloc, scanner, state, YY_(
"syntax error"));
9582 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 9585 char const *yymsgp = YY_(
"syntax error");
9586 int yysyntax_error_status;
9587 yysyntax_error_status = YYSYNTAX_ERROR;
9588 if (yysyntax_error_status == 0)
9590 else if (yysyntax_error_status == 1)
9592 if (yymsg != yymsgbuf)
9593 YYSTACK_FREE (yymsg);
9594 yymsg = (
char *) YYSTACK_ALLOC (yymsg_alloc);
9598 yymsg_alloc =
sizeof yymsgbuf;
9599 yysyntax_error_status = 2;
9603 yysyntax_error_status = YYSYNTAX_ERROR;
9607 yyerror (&yylloc, scanner, state, yymsgp);
9608 if (yysyntax_error_status == 2)
9609 goto yyexhaustedlab;
9611 # undef YYSYNTAX_ERROR 9615 yyerror_range[1] = yylloc;
9617 if (yyerrstatus == 3)
9622 if (yychar <= YYEOF)
9625 if (yychar == YYEOF)
9630 yydestruct (
"Error: discarding",
9631 yytoken, &yylval, &yylloc, scanner, state);
9652 yyerror_range[1] = yylsp[1-yylen];
9657 YY_STACK_PRINT (yyss, yyssp);
9670 yyn = yypact[yystate];
9671 if (!yypact_value_is_default (yyn))
9674 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
9686 yyerror_range[1] = *yylsp;
9687 yydestruct (
"Error: popping",
9688 yystos[yystate], yyvsp, yylsp, scanner, state);
9691 YY_STACK_PRINT (yyss, yyssp);
9694 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
9696 YY_IGNORE_MAYBE_UNINITIALIZED_END
9698 yyerror_range[2] = yylloc;
9701 YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
9705 YY_SYMBOL_PRINT (
"Shifting", yystos[yyn], yyvsp, yylsp);
9725 #if !defined yyoverflow || YYERROR_VERBOSE 9730 yyerror (&yylloc, scanner, state, YY_(
"memory exhausted"));
9736 if (yychar != YYEMPTY)
9740 yytoken = YYTRANSLATE (yychar);
9741 yydestruct (
"Cleanup: discarding lookahead",
9742 yytoken, &yylval, &yylloc, scanner, state);
9747 YY_STACK_PRINT (yyss, yyssp);
9748 while (yyssp != yyss)
9750 yydestruct (
"Cleanup: popping",
9751 yystos[*yyssp], yyvsp, yylsp, scanner, state);
9756 YYSTACK_FREE (yyss);
9759 if (yymsg != yymsgbuf)
9760 YYSTACK_FREE (yymsg);
9764 #line 3594 "parser_bison.y"