1010#if YY_CPLUSPLUS < 201103L
1025#if 201103L <= YY_CPLUSPLUS
1069#if 201103L <= YY_CPLUSPLUS
1077#if !defined _MSC_VER || defined __clang__
1079 || (token::TOKEN_EVALerror <= tok && tok <= token::TOKEN_TOPLEVEL_STRING));
1082#if 201103L <= YY_CPLUSPLUS
1090#if !defined _MSC_VER || defined __clang__
1091 EVAL_ASSERT ((token::TOKEN_STRING <= tok && tok <= token::TOKEN_IP_ADDRESS));
1100#if 201103L <= YY_CPLUSPLUS
1113 virtual int parse ();
1119 void set_debug_stream (std::ostream &);
1122 typedef
int debug_level_type;
1126 void set_debug_level (debug_level_type l);
1132 virtual void error (
const location_type& loc,
const std::string& msg);
1135 void error (
const syntax_error& err);
1139 static std::string symbol_name (symbol_kind_type yysymbol);
1142#if 201103L <= YY_CPLUSPLUS
1145 make_END (location_type l)
1147 return symbol_type (token::TOKEN_END, std::move (l));
1157#if 201103L <= YY_CPLUSPLUS
1160 make_EVALerror (location_type l)
1162 return symbol_type (token::TOKEN_EVALerror, std::move (l));
1172#if 201103L <= YY_CPLUSPLUS
1175 make_EVALUNDEF (location_type l)
1177 return symbol_type (token::TOKEN_EVALUNDEF, std::move (l));
1187#if 201103L <= YY_CPLUSPLUS
1190 make_LPAREN (location_type l)
1192 return symbol_type (token::TOKEN_LPAREN, std::move (l));
1202#if 201103L <= YY_CPLUSPLUS
1205 make_RPAREN (location_type l)
1207 return symbol_type (token::TOKEN_RPAREN, std::move (l));
1217#if 201103L <= YY_CPLUSPLUS
1220 make_NOT (location_type l)
1222 return symbol_type (token::TOKEN_NOT, std::move (l));
1232#if 201103L <= YY_CPLUSPLUS
1235 make_AND (location_type l)
1237 return symbol_type (token::TOKEN_AND, std::move (l));
1247#if 201103L <= YY_CPLUSPLUS
1250 make_SAND (location_type l)
1252 return symbol_type (token::TOKEN_SAND, std::move (l));
1262#if 201103L <= YY_CPLUSPLUS
1265 make_OR (location_type l)
1267 return symbol_type (token::TOKEN_OR, std::move (l));
1277#if 201103L <= YY_CPLUSPLUS
1280 make_SOR (location_type l)
1282 return symbol_type (token::TOKEN_SOR, std::move (l));
1292#if 201103L <= YY_CPLUSPLUS
1295 make_EQUAL (location_type l)
1297 return symbol_type (token::TOKEN_EQUAL, std::move (l));
1307#if 201103L <= YY_CPLUSPLUS
1310 make_OPTION (location_type l)
1312 return symbol_type (token::TOKEN_OPTION, std::move (l));
1322#if 201103L <= YY_CPLUSPLUS
1325 make_RELAY4 (location_type l)
1327 return symbol_type (token::TOKEN_RELAY4, std::move (l));
1337#if 201103L <= YY_CPLUSPLUS
1340 make_RELAY6 (location_type l)
1342 return symbol_type (token::TOKEN_RELAY6, std::move (l));
1352#if 201103L <= YY_CPLUSPLUS
1355 make_MEMBER (location_type l)
1357 return symbol_type (token::TOKEN_MEMBER, std::move (l));
1367#if 201103L <= YY_CPLUSPLUS
1370 make_PEERADDR (location_type l)
1372 return symbol_type (token::TOKEN_PEERADDR, std::move (l));
1382#if 201103L <= YY_CPLUSPLUS
1385 make_LINKADDR (location_type l)
1387 return symbol_type (token::TOKEN_LINKADDR, std::move (l));
1397#if 201103L <= YY_CPLUSPLUS
1400 make_LBRACKET (location_type l)
1402 return symbol_type (token::TOKEN_LBRACKET, std::move (l));
1412#if 201103L <= YY_CPLUSPLUS
1415 make_RBRACKET (location_type l)
1417 return symbol_type (token::TOKEN_RBRACKET, std::move (l));
1427#if 201103L <= YY_CPLUSPLUS
1430 make_DOT (location_type l)
1432 return symbol_type (token::TOKEN_DOT, std::move (l));
1442#if 201103L <= YY_CPLUSPLUS
1445 make_TEXT (location_type l)
1447 return symbol_type (token::TOKEN_TEXT, std::move (l));
1457#if 201103L <= YY_CPLUSPLUS
1460 make_HEX (location_type l)
1462 return symbol_type (token::TOKEN_HEX, std::move (l));
1472#if 201103L <= YY_CPLUSPLUS
1475 make_EXISTS (location_type l)
1477 return symbol_type (token::TOKEN_EXISTS, std::move (l));
1487#if 201103L <= YY_CPLUSPLUS
1490 make_PKT (location_type l)
1492 return symbol_type (token::TOKEN_PKT, std::move (l));
1502#if 201103L <= YY_CPLUSPLUS
1505 make_IFACE (location_type l)
1507 return symbol_type (token::TOKEN_IFACE, std::move (l));
1517#if 201103L <= YY_CPLUSPLUS
1520 make_SRC (location_type l)
1522 return symbol_type (token::TOKEN_SRC, std::move (l));
1532#if 201103L <= YY_CPLUSPLUS
1535 make_DST (location_type l)
1537 return symbol_type (token::TOKEN_DST, std::move (l));
1547#if 201103L <= YY_CPLUSPLUS
1550 make_LEN (location_type l)
1552 return symbol_type (token::TOKEN_LEN, std::move (l));
1562#if 201103L <= YY_CPLUSPLUS
1565 make_PKT4 (location_type l)
1567 return symbol_type (token::TOKEN_PKT4, std::move (l));
1577#if 201103L <= YY_CPLUSPLUS
1580 make_CHADDR (location_type l)
1582 return symbol_type (token::TOKEN_CHADDR, std::move (l));
1592#if 201103L <= YY_CPLUSPLUS
1595 make_HLEN (location_type l)
1597 return symbol_type (token::TOKEN_HLEN, std::move (l));
1607#if 201103L <= YY_CPLUSPLUS
1610 make_HTYPE (location_type l)
1612 return symbol_type (token::TOKEN_HTYPE, std::move (l));
1622#if 201103L <= YY_CPLUSPLUS
1625 make_CIADDR (location_type l)
1627 return symbol_type (token::TOKEN_CIADDR, std::move (l));
1637#if 201103L <= YY_CPLUSPLUS
1640 make_GIADDR (location_type l)
1642 return symbol_type (token::TOKEN_GIADDR, std::move (l));
1652#if 201103L <= YY_CPLUSPLUS
1655 make_YIADDR (location_type l)
1657 return symbol_type (token::TOKEN_YIADDR, std::move (l));
1667#if 201103L <= YY_CPLUSPLUS
1670 make_SIADDR (location_type l)
1672 return symbol_type (token::TOKEN_SIADDR, std::move (l));
1682#if 201103L <= YY_CPLUSPLUS
1685 make_SUBSTRING (location_type l)
1687 return symbol_type (token::TOKEN_SUBSTRING, std::move (l));
1697#if 201103L <= YY_CPLUSPLUS
1700 make_SPLIT (location_type l)
1702 return symbol_type (token::TOKEN_SPLIT, std::move (l));
1712#if 201103L <= YY_CPLUSPLUS
1715 make_ALL (location_type l)
1717 return symbol_type (token::TOKEN_ALL, std::move (l));
1727#if 201103L <= YY_CPLUSPLUS
1730 make_COMA (location_type l)
1732 return symbol_type (token::TOKEN_COMA, std::move (l));
1742#if 201103L <= YY_CPLUSPLUS
1745 make_CONCAT (location_type l)
1747 return symbol_type (token::TOKEN_CONCAT, std::move (l));
1757#if 201103L <= YY_CPLUSPLUS
1760 make_PLUS (location_type l)
1762 return symbol_type (token::TOKEN_PLUS, std::move (l));
1772#if 201103L <= YY_CPLUSPLUS
1775 make_IFELSE (location_type l)
1777 return symbol_type (token::TOKEN_IFELSE, std::move (l));
1787#if 201103L <= YY_CPLUSPLUS
1790 make_SIFELSE (location_type l)
1792 return symbol_type (token::TOKEN_SIFELSE, std::move (l));
1802#if 201103L <= YY_CPLUSPLUS
1805 make_TOHEXSTRING (location_type l)
1807 return symbol_type (token::TOKEN_TOHEXSTRING, std::move (l));
1817#if 201103L <= YY_CPLUSPLUS
1820 make_ADDRTOTEXT (location_type l)
1822 return symbol_type (token::TOKEN_ADDRTOTEXT, std::move (l));
1832#if 201103L <= YY_CPLUSPLUS
1835 make_INT8TOTEXT (location_type l)
1837 return symbol_type (token::TOKEN_INT8TOTEXT, std::move (l));
1847#if 201103L <= YY_CPLUSPLUS
1850 make_INT16TOTEXT (location_type l)
1852 return symbol_type (token::TOKEN_INT16TOTEXT, std::move (l));
1862#if 201103L <= YY_CPLUSPLUS
1865 make_INT32TOTEXT (location_type l)
1867 return symbol_type (token::TOKEN_INT32TOTEXT, std::move (l));
1877#if 201103L <= YY_CPLUSPLUS
1880 make_UINT8TOTEXT (location_type l)
1882 return symbol_type (token::TOKEN_UINT8TOTEXT, std::move (l));
1892#if 201103L <= YY_CPLUSPLUS
1895 make_UINT16TOTEXT (location_type l)
1897 return symbol_type (token::TOKEN_UINT16TOTEXT, std::move (l));
1904 return symbol_type (token::TOKEN_UINT16TOTEXT, l);
1907#if 201103L <= YY_CPLUSPLUS
1910 make_UINT32TOTEXT (location_type l)
1912 return symbol_type (token::TOKEN_UINT32TOTEXT, std::move (l));
1919 return symbol_type (token::TOKEN_UINT32TOTEXT, l);
1922#if 201103L <= YY_CPLUSPLUS
1925 make_LCASE (location_type l)
1927 return symbol_type (token::TOKEN_LCASE, std::move (l));
1937#if 201103L <= YY_CPLUSPLUS
1940 make_UCASE (location_type l)
1942 return symbol_type (token::TOKEN_UCASE, std::move (l));
1952#if 201103L <= YY_CPLUSPLUS
1955 make_PKT6 (location_type l)
1957 return symbol_type (token::TOKEN_PKT6, std::move (l));
1967#if 201103L <= YY_CPLUSPLUS
1970 make_MSGTYPE (location_type l)
1972 return symbol_type (token::TOKEN_MSGTYPE, std::move (l));
1982#if 201103L <= YY_CPLUSPLUS
1985 make_TRANSID (location_type l)
1987 return symbol_type (token::TOKEN_TRANSID, std::move (l));
1997#if 201103L <= YY_CPLUSPLUS
2000 make_VENDOR_CLASS (location_type l)
2002 return symbol_type (token::TOKEN_VENDOR_CLASS, std::move (l));
2009 return symbol_type (token::TOKEN_VENDOR_CLASS, l);
2012#if 201103L <= YY_CPLUSPLUS
2015 make_VENDOR (location_type l)
2017 return symbol_type (token::TOKEN_VENDOR, std::move (l));
2027#if 201103L <= YY_CPLUSPLUS
2030 make_ANY (location_type l)
2032 return symbol_type (token::TOKEN_ANY, std::move (l));
2042#if 201103L <= YY_CPLUSPLUS
2045 make_DATA (location_type l)
2047 return symbol_type (token::TOKEN_DATA, std::move (l));
2057#if 201103L <= YY_CPLUSPLUS
2060 make_ENTERPRISE (location_type l)
2062 return symbol_type (token::TOKEN_ENTERPRISE, std::move (l));
2072#if 201103L <= YY_CPLUSPLUS
2075 make_MATCH (location_type l)
2077 return symbol_type (token::TOKEN_MATCH, std::move (l));
2087#if 201103L <= YY_CPLUSPLUS
2090 make_TOPLEVEL_BOOL (location_type l)
2092 return symbol_type (token::TOKEN_TOPLEVEL_BOOL, std::move (l));
2099 return symbol_type (token::TOKEN_TOPLEVEL_BOOL, l);
2102#if 201103L <= YY_CPLUSPLUS
2105 make_TOPLEVEL_STRING (location_type l)
2107 return symbol_type (token::TOKEN_TOPLEVEL_STRING, std::move (l));
2114 return symbol_type (token::TOKEN_TOPLEVEL_STRING, l);
2117#if 201103L <= YY_CPLUSPLUS
2120 make_STRING (std::string v, location_type l)
2122 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
2132#if 201103L <= YY_CPLUSPLUS
2135 make_INTEGER (std::string v, location_type l)
2137 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
2147#if 201103L <= YY_CPLUSPLUS
2150 make_HEXSTRING (std::string v, location_type l)
2152 return symbol_type (token::TOKEN_HEXSTRING, std::move (v), std::move (l));
2159 return symbol_type (token::TOKEN_HEXSTRING, v, l);
2162#if 201103L <= YY_CPLUSPLUS
2165 make_OPTION_NAME (std::string v, location_type l)
2167 return symbol_type (token::TOKEN_OPTION_NAME, std::move (v), std::move (l));
2174 return symbol_type (token::TOKEN_OPTION_NAME, v, l);
2177#if 201103L <= YY_CPLUSPLUS
2180 make_IP_ADDRESS (std::string v, location_type l)
2182 return symbol_type (token::TOKEN_IP_ADDRESS, std::move (v), std::move (l));
2189 return symbol_type (token::TOKEN_IP_ADDRESS, v, l);
2213#if YY_CPLUSPLUS < 201103L
2222 typedef short state_type;
2225 int yy_syntax_error_arguments_ (
const context& yyctx,
2226 symbol_kind_type yyarg[],
int yyargn)
const;
2230 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
2234 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
2238 static bool yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT;
2242 static bool yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT;
2244 static const short yypact_ninf_;
2245 static const signed char yytable_ninf_;
2250 static symbol_kind_type yytranslate_ (
int t)
YY_NOEXCEPT;
2253 static std::string yytnamerr_ (
const char *yystr);
2256 static const char*
const yytname_[];
2262 static const short yypact_[];
2267 static const signed char yydefact_[];
2270 static const short yypgoto_[];
2273 static const unsigned char yydefgoto_[];
2278 static const short yytable_[];
2280 static const short yycheck_[];
2284 static const signed char yystos_[];
2287 static const signed char yyr1_[];
2290 static const signed char yyr2_[];
2295 static const short yyrline_[];
2297 virtual void yy_reduce_print_ (
int r)
const;
2299 virtual void yy_stack_print_ ()
const;
2304 std::ostream* yycdebug_;
2309 template <
typename Base>
2310 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
2317 template <
typename Base>
2318 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
2328 typedef state_type kind_type;
2340 void move (by_state& that);
2348 enum { empty_state = 0 };
2356 struct stack_symbol_type : basic_symbol<by_state>
2359 typedef basic_symbol<by_state> super_type;
2361 stack_symbol_type ();
2363 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2365 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2366#if YY_CPLUSPLUS < 201103L
2369 stack_symbol_type& operator= (stack_symbol_type& that);
2373 stack_symbol_type& operator= (
const stack_symbol_type& that);
2378 template <
typename T,
typename S = std::vector<T> >
2383 typedef typename S::iterator iterator;
2384 typedef typename S::const_iterator const_iterator;
2385 typedef typename S::size_type size_type;
2386 typedef typename std::ptrdiff_t index_type;
2392#if 201103L <= YY_CPLUSPLUS
2394 stack (
const stack&) =
delete;
2396 stack& operator= (
const stack&) =
delete;
2403 operator[] (index_type i)
const
2405 return seq_[size_type (size () - 1 - i)];
2412 operator[] (index_type i)
2414 return seq_[size_type (size () - 1 - i)];
2423 seq_.push_back (T ());
2424 operator[] (0).move (t);
2446 return index_type (seq_.size ());
2453 return seq_.begin ();
2473 operator[] (index_type i)
const
2475 return stack_[range_ - i];
2479 const stack& stack_;
2484#if YY_CPLUSPLUS < 201103L
2486 stack (
const stack&);
2488 stack& operator= (
const stack&);
2496 typedef stack<stack_symbol_type> stack_type;
2499 stack_type yystack_;
2506 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2514 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2543 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2544 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2545 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2546 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2547 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2548 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2549 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2551 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2552 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2553 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2557 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2568 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2569 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2570 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2571 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2572 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2573 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2574 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2578 const int code_max = 324;
2582 else if (t <= code_max)
2589 template <
typename Base>
2595 switch (this->kind ())
2648 template <
typename Base>
2652 return this->kind ();
2656 template <
typename Base>
2663 template <
typename Base>
2667 super_type::move (s);
2668 switch (this->kind ())