44 #ifndef YY_YY_PARSER_HPP_INCLUDED
45 # define YY_YY_PARSER_HPP_INCLUDED
53 #include "../globals.hpp"
54 #include "../timezone/interval.hpp"
56 typedef void *yyscan_t;
67 #if defined __cplusplus
68 # define YY_CPLUSPLUS __cplusplus
70 # define YY_CPLUSPLUS 199711L
74 #if 201103L <= YY_CPLUSPLUS
75 # define YY_MOVE std::move
76 # define YY_MOVE_OR_COPY move
77 # define YY_MOVE_REF(Type) Type&&
78 # define YY_RVREF(Type) Type&&
79 # define YY_COPY(Type) Type
82 # define YY_MOVE_OR_COPY copy
83 # define YY_MOVE_REF(Type) Type&
84 # define YY_RVREF(Type) const Type&
85 # define YY_COPY(Type) const Type&
89 #if 201103L <= YY_CPLUSPLUS
90 # define YY_NOEXCEPT noexcept
94 # define YY_NOTHROW throw ()
98 #if 201703 <= YY_CPLUSPLUS
99 # define YY_CONSTEXPR constexpr
101 # define YY_CONSTEXPR
107 # define YY_ASSERT assert
111 #ifndef YY_ATTRIBUTE_PURE
112 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
113 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
115 # define YY_ATTRIBUTE_PURE
119 #ifndef YY_ATTRIBUTE_UNUSED
120 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
121 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
123 # define YY_ATTRIBUTE_UNUSED
128 #if ! defined lint || defined __GNUC__
129 # define YYUSE(E) ((void) (E))
134 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
136 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
137 _Pragma ("GCC diagnostic push") \
138 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
139 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
140 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
141 _Pragma ("GCC diagnostic pop")
143 # define YY_INITIAL_VALUE(Value) Value
145 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
146 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
147 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
149 #ifndef YY_INITIAL_VALUE
150 # define YY_INITIAL_VALUE(Value)
153 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
154 # define YY_IGNORE_USELESS_CAST_BEGIN \
155 _Pragma ("GCC diagnostic push") \
156 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
157 # define YY_IGNORE_USELESS_CAST_END \
158 _Pragma ("GCC diagnostic pop")
160 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
161 # define YY_IGNORE_USELESS_CAST_BEGIN
162 # define YY_IGNORE_USELESS_CAST_END
167 # define YY_CAST(Type, Val) static_cast<Type> (Val)
168 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
170 # define YY_CAST(Type, Val) ((Type) (Val))
171 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
175 # if defined __cplusplus
176 # if 201103L <= __cplusplus
177 # define YY_NULLPTR nullptr
179 # define YY_NULLPTR 0
182 # define YY_NULLPTR ((void*)0)
192 #line 193 "parser.hpp"
216 , yytypeid_ (YY_NULLPTR)
220 template <
typename T>
222 : yytypeid_ (&typeid (T))
224 YY_ASSERT (
sizeof (T) <= size);
225 new (yyas_<T> ()) T (YY_MOVE (t));
231 YY_ASSERT (!yytypeid_);
234 # if 201103L <= YY_CPLUSPLUS
235 template <
typename T,
typename... U>
240 YY_ASSERT (!yytypeid_);
241 YY_ASSERT (
sizeof (T) <= size);
242 yytypeid_ = &
typeid (T);
243 return *
new (yyas_<T> ()) T (std::forward <U>(u)...);
246 template <
typename T>
251 YY_ASSERT (!yytypeid_);
252 YY_ASSERT (
sizeof (T) <= size);
253 yytypeid_ = &
typeid (T);
254 return *
new (yyas_<T> ()) T ();
258 template <
typename T>
262 YY_ASSERT (!yytypeid_);
263 YY_ASSERT (
sizeof (T) <= size);
264 yytypeid_ = &
typeid (T);
265 return *
new (yyas_<T> ()) T (t);
271 template <
typename T>
275 return emplace<T> ();
280 template <
typename T>
284 return emplace<T> (t);
288 template <
typename T>
292 YY_ASSERT (yytypeid_);
293 YY_ASSERT (*yytypeid_ ==
typeid (T));
294 YY_ASSERT (
sizeof (T) <= size);
299 template <
typename T>
301 as () const YY_NOEXCEPT
303 YY_ASSERT (yytypeid_);
304 YY_ASSERT (*yytypeid_ ==
typeid (T));
305 YY_ASSERT (
sizeof (T) <= size);
317 template <
typename T>
321 YY_ASSERT (yytypeid_);
322 YY_ASSERT (*yytypeid_ == *that.yytypeid_);
323 std::swap (as<T> (), that.as<T> ());
329 template <
typename T>
333 # if 201103L <= YY_CPLUSPLUS
334 emplace<T> (std::move (that.
as<T> ()));
342 # if 201103L <= YY_CPLUSPLUS
343 template <
typename T>
348 emplace<T> (std::move (that.as<T> ()));
354 template <
typename T>
358 emplace<T> (that.
as<T> ());
362 template <
typename T>
367 yytypeid_ = YY_NULLPTR;
376 template <
typename T>
380 void *yyp = yybuffer_.yyraw;
381 return static_cast<T*
> (yyp);
385 template <
typename T>
387 yyas_ () const YY_NOEXCEPT
389 const void *yyp = yybuffer_.yyraw;
390 return static_cast<const T*
> (yyp);
399 char dummy1[
sizeof (
E*)];
405 char dummy2[
sizeof (
El*)];
408 char dummy3[
sizeof (Global::dtime)];
411 char dummy4[
sizeof (double)];
416 char dummy5[
sizeof (string)];
422 char dummy7[
sizeof (unsigned)];
426 enum { size =
sizeof (union_type) };
438 const std::type_info *yytypeid_;
451 : std::runtime_error (m)
456 : std::runtime_error (s.what ())
544 enum { empty_symbol = -2 };
555 template <
typename Base>
567 #if 201103L <= YY_CPLUSPLUS
576 #if 201103L <= YY_CPLUSPLUS
587 #if 201103L <= YY_CPLUSPLUS
600 #if 201103L <= YY_CPLUSPLUS
613 #if 201103L <= YY_CPLUSPLUS
626 #if 201103L <= YY_CPLUSPLUS
639 #if 201103L <= YY_CPLUSPLUS
652 #if 201103L <= YY_CPLUSPLUS
665 #if 201103L <= YY_CPLUSPLUS
704 value.template destroy< E* > ();
711 value.template destroy< El* > ();
715 value.template destroy< Global::dtime > ();
719 value.template destroy< double > ();
725 value.template destroy< string > ();
729 value.template destroy< tz::interval > ();
733 value.template destroy< unsigned > ();
744 bool empty () const YY_NOEXCEPT;
756 #if YY_CPLUSPLUS < 201103L
768 #if 201103L <= YY_CPLUSPLUS
808 #if 201103L <= YY_CPLUSPLUS
810 : super_type(token_type (tok), std::
move (l))
812 YY_ASSERT (tok == token::END || tok == token::NULL_ || tok == token::ELLIPSIS || tok == token::FUNCTION || tok == token::TRUE || tok == token::FALSE || tok == token::LEFT_ASSIGN || tok == token::DBL_ASSIGN || tok == token::EQ_ASSIGN || tok == token::IF || tok == token::ELSE || tok == token::FOR || tok == token::IN || tok == token::WHILE || tok == token::NEXT || tok == token::BREAK || tok == token::EQ || tok == token::NE || tok == token::LT || tok == token::LE || tok == token::GT || tok == token::GE || tok == token::AND || tok == token::OR || tok == token::AND2 || tok == token::OR2 || tok == token::DOLLAR || tok == token::PLUS || tok == token::MINUS || tok == token::MUL || tok == token::DIV || tok == token::MOD || tok == token::POWER || tok == token::NOT || tok == token::LCURLY || tok == token::RCURLY || tok == token::LPAR || tok == token::RPAR || tok == token::LSQUARE || tok == token::RSQUARE || tok == token::LLSQUARE || tok == token::COLON || tok == token::COMMA || tok == token::QUERY || tok == token::STT || tok == token::REF || tok == token::ESC || tok == token::EOA || tok == token::EXPR || tok == token::EMPTY_ARG || tok == token::EMPTY_FUNCALL || tok == token::SUBSET || tok == token::DBLSUBSET || tok == token::FUNCALL || tok == token::UNOT || tok == token::UMINUS || tok == token::UPLUS);
818 YY_ASSERT (tok == token::END || tok == token::NULL_ || tok == token::ELLIPSIS || tok == token::FUNCTION || tok == token::TRUE || tok == token::FALSE || tok == token::LEFT_ASSIGN || tok == token::DBL_ASSIGN || tok == token::EQ_ASSIGN || tok == token::IF || tok == token::ELSE || tok == token::FOR || tok == token::IN || tok == token::WHILE || tok == token::NEXT || tok == token::BREAK || tok == token::EQ || tok == token::NE || tok == token::LT || tok == token::LE || tok == token::GT || tok == token::GE || tok == token::AND || tok == token::OR || tok == token::AND2 || tok == token::OR2 || tok == token::DOLLAR || tok == token::PLUS || tok == token::MINUS || tok == token::MUL || tok == token::DIV || tok == token::MOD || tok == token::POWER || tok == token::NOT || tok == token::LCURLY || tok == token::RCURLY || tok == token::LPAR || tok == token::RPAR || tok == token::LSQUARE || tok == token::RSQUARE || tok == token::LLSQUARE || tok == token::COLON || tok == token::COMMA || tok == token::QUERY || tok == token::STT || tok == token::REF || tok == token::ESC || tok == token::EOA || tok == token::EXPR || tok == token::EMPTY_ARG || tok == token::EMPTY_FUNCALL || tok == token::SUBSET || tok == token::DBLSUBSET || tok == token::FUNCALL || tok == token::UNOT || tok == token::UMINUS || tok == token::UPLUS);
821 #if 201103L <= YY_CPLUSPLUS
823 : super_type(token_type (tok), std::
move (v), std::
move (l))
825 YY_ASSERT (tok == token::DTIME);
828 symbol_type (
int tok,
const Global::dtime& v,
const location_type& l)
831 YY_ASSERT (tok == token::DTIME);
834 #if 201103L <= YY_CPLUSPLUS
838 YY_ASSERT (tok == token::DOUBLE);
841 symbol_type (
int tok,
const double& v,
const location_type& l)
844 YY_ASSERT (tok == token::DOUBLE);
847 #if 201103L <= YY_CPLUSPLUS
851 YY_ASSERT (tok == token::STRING || tok == token::ERROR || tok == token::SYMBOL);
854 symbol_type (
int tok,
const string& v,
const location_type& l)
857 YY_ASSERT (tok == token::STRING || tok == token::ERROR || tok == token::SYMBOL);
860 #if 201103L <= YY_CPLUSPLUS
864 YY_ASSERT (tok == token::INTERVAL);
870 YY_ASSERT (tok == token::INTERVAL);
873 #if 201103L <= YY_CPLUSPLUS
877 YY_ASSERT (tok == token::OP);
880 symbol_type (
int tok,
const unsigned& v,
const location_type& l)
883 YY_ASSERT (tok == token::OP);
898 virtual int parse ();
923 #if 201103L <= YY_CPLUSPLUS
935 return symbol_type (token::END, l);
938 #if 201103L <= YY_CPLUSPLUS
943 return symbol_type (token::DTIME, std::move (v), std::move (l));
950 return symbol_type (token::DTIME, v, l);
953 #if 201103L <= YY_CPLUSPLUS
958 return symbol_type (token::INTERVAL, std::move (v), std::move (l));
965 return symbol_type (token::INTERVAL, v, l);
968 #if 201103L <= YY_CPLUSPLUS
973 return symbol_type (token::DOUBLE, std::move (v), std::move (l));
980 return symbol_type (token::DOUBLE, v, l);
983 #if 201103L <= YY_CPLUSPLUS
988 return symbol_type (token::STRING, std::move (v), std::move (l));
995 return symbol_type (token::STRING, v, l);
998 #if 201103L <= YY_CPLUSPLUS
1003 return symbol_type (token::ERROR, std::move (v), std::move (l));
1010 return symbol_type (token::ERROR, v, l);
1013 #if 201103L <= YY_CPLUSPLUS
1018 return symbol_type (token::NULL_, std::move (l));
1025 return symbol_type (token::NULL_, l);
1028 #if 201103L <= YY_CPLUSPLUS
1033 return symbol_type (token::ELLIPSIS, std::move (l));
1040 return symbol_type (token::ELLIPSIS, l);
1043 #if 201103L <= YY_CPLUSPLUS
1048 return symbol_type (token::FUNCTION, std::move (l));
1055 return symbol_type (token::FUNCTION, l);
1058 #if 201103L <= YY_CPLUSPLUS
1063 return symbol_type (token::SYMBOL, std::move (v), std::move (l));
1070 return symbol_type (token::SYMBOL, v, l);
1073 #if 201103L <= YY_CPLUSPLUS
1078 return symbol_type (token::OP, std::move (v), std::move (l));
1085 return symbol_type (token::OP, v, l);
1088 #if 201103L <= YY_CPLUSPLUS
1093 return symbol_type (token::TRUE, std::move (l));
1100 return symbol_type (token::TRUE, l);
1103 #if 201103L <= YY_CPLUSPLUS
1108 return symbol_type (token::FALSE, std::move (l));
1115 return symbol_type (token::FALSE, l);
1118 #if 201103L <= YY_CPLUSPLUS
1123 return symbol_type (token::LEFT_ASSIGN, std::move (l));
1130 return symbol_type (token::LEFT_ASSIGN, l);
1133 #if 201103L <= YY_CPLUSPLUS
1138 return symbol_type (token::DBL_ASSIGN, std::move (l));
1145 return symbol_type (token::DBL_ASSIGN, l);
1148 #if 201103L <= YY_CPLUSPLUS
1153 return symbol_type (token::EQ_ASSIGN, std::move (l));
1160 return symbol_type (token::EQ_ASSIGN, l);
1163 #if 201103L <= YY_CPLUSPLUS
1168 return symbol_type (token::IF, std::move (l));
1175 return symbol_type (token::IF, l);
1178 #if 201103L <= YY_CPLUSPLUS
1183 return symbol_type (token::ELSE, std::move (l));
1190 return symbol_type (token::ELSE, l);
1193 #if 201103L <= YY_CPLUSPLUS
1198 return symbol_type (token::FOR, std::move (l));
1205 return symbol_type (token::FOR, l);
1208 #if 201103L <= YY_CPLUSPLUS
1213 return symbol_type (token::IN, std::move (l));
1220 return symbol_type (token::IN, l);
1223 #if 201103L <= YY_CPLUSPLUS
1228 return symbol_type (token::WHILE, std::move (l));
1235 return symbol_type (token::WHILE, l);
1238 #if 201103L <= YY_CPLUSPLUS
1243 return symbol_type (token::NEXT, std::move (l));
1250 return symbol_type (token::NEXT, l);
1253 #if 201103L <= YY_CPLUSPLUS
1258 return symbol_type (token::BREAK, std::move (l));
1265 return symbol_type (token::BREAK, l);
1268 #if 201103L <= YY_CPLUSPLUS
1273 return symbol_type (token::EQ, std::move (l));
1280 return symbol_type (token::EQ, l);
1283 #if 201103L <= YY_CPLUSPLUS
1288 return symbol_type (token::NE, std::move (l));
1295 return symbol_type (token::NE, l);
1298 #if 201103L <= YY_CPLUSPLUS
1303 return symbol_type (token::LT, std::move (l));
1310 return symbol_type (token::LT, l);
1313 #if 201103L <= YY_CPLUSPLUS
1318 return symbol_type (token::LE, std::move (l));
1325 return symbol_type (token::LE, l);
1328 #if 201103L <= YY_CPLUSPLUS
1333 return symbol_type (token::GT, std::move (l));
1340 return symbol_type (token::GT, l);
1343 #if 201103L <= YY_CPLUSPLUS
1348 return symbol_type (token::GE, std::move (l));
1355 return symbol_type (token::GE, l);
1358 #if 201103L <= YY_CPLUSPLUS
1363 return symbol_type (token::AND, std::move (l));
1370 return symbol_type (token::AND, l);
1373 #if 201103L <= YY_CPLUSPLUS
1378 return symbol_type (token::OR, std::move (l));
1385 return symbol_type (token::OR, l);
1388 #if 201103L <= YY_CPLUSPLUS
1393 return symbol_type (token::AND2, std::move (l));
1400 return symbol_type (token::AND2, l);
1403 #if 201103L <= YY_CPLUSPLUS
1408 return symbol_type (token::OR2, std::move (l));
1415 return symbol_type (token::OR2, l);
1418 #if 201103L <= YY_CPLUSPLUS
1423 return symbol_type (token::DOLLAR, std::move (l));
1430 return symbol_type (token::DOLLAR, l);
1433 #if 201103L <= YY_CPLUSPLUS
1438 return symbol_type (token::PLUS, std::move (l));
1445 return symbol_type (token::PLUS, l);
1448 #if 201103L <= YY_CPLUSPLUS
1453 return symbol_type (token::MINUS, std::move (l));
1460 return symbol_type (token::MINUS, l);
1463 #if 201103L <= YY_CPLUSPLUS
1468 return symbol_type (token::MUL, std::move (l));
1475 return symbol_type (token::MUL, l);
1478 #if 201103L <= YY_CPLUSPLUS
1483 return symbol_type (token::DIV, std::move (l));
1490 return symbol_type (token::DIV, l);
1493 #if 201103L <= YY_CPLUSPLUS
1498 return symbol_type (token::MOD, std::move (l));
1505 return symbol_type (token::MOD, l);
1508 #if 201103L <= YY_CPLUSPLUS
1513 return symbol_type (token::POWER, std::move (l));
1520 return symbol_type (token::POWER, l);
1523 #if 201103L <= YY_CPLUSPLUS
1528 return symbol_type (token::NOT, std::move (l));
1535 return symbol_type (token::NOT, l);
1538 #if 201103L <= YY_CPLUSPLUS
1543 return symbol_type (token::LCURLY, std::move (l));
1550 return symbol_type (token::LCURLY, l);
1553 #if 201103L <= YY_CPLUSPLUS
1558 return symbol_type (token::RCURLY, std::move (l));
1565 return symbol_type (token::RCURLY, l);
1568 #if 201103L <= YY_CPLUSPLUS
1573 return symbol_type (token::LPAR, std::move (l));
1580 return symbol_type (token::LPAR, l);
1583 #if 201103L <= YY_CPLUSPLUS
1588 return symbol_type (token::RPAR, std::move (l));
1595 return symbol_type (token::RPAR, l);
1598 #if 201103L <= YY_CPLUSPLUS
1603 return symbol_type (token::LSQUARE, std::move (l));
1610 return symbol_type (token::LSQUARE, l);
1613 #if 201103L <= YY_CPLUSPLUS
1618 return symbol_type (token::RSQUARE, std::move (l));
1625 return symbol_type (token::RSQUARE, l);
1628 #if 201103L <= YY_CPLUSPLUS
1633 return symbol_type (token::LLSQUARE, std::move (l));
1640 return symbol_type (token::LLSQUARE, l);
1643 #if 201103L <= YY_CPLUSPLUS
1648 return symbol_type (token::COLON, std::move (l));
1655 return symbol_type (token::COLON, l);
1658 #if 201103L <= YY_CPLUSPLUS
1663 return symbol_type (token::COMMA, std::move (l));
1670 return symbol_type (token::COMMA, l);
1673 #if 201103L <= YY_CPLUSPLUS
1678 return symbol_type (token::QUERY, std::move (l));
1685 return symbol_type (token::QUERY, l);
1688 #if 201103L <= YY_CPLUSPLUS
1693 return symbol_type (token::STT, std::move (l));
1700 return symbol_type (token::STT, l);
1703 #if 201103L <= YY_CPLUSPLUS
1708 return symbol_type (token::REF, std::move (l));
1715 return symbol_type (token::REF, l);
1718 #if 201103L <= YY_CPLUSPLUS
1723 return symbol_type (token::ESC, std::move (l));
1730 return symbol_type (token::ESC, l);
1733 #if 201103L <= YY_CPLUSPLUS
1738 return symbol_type (token::EOA, std::move (l));
1745 return symbol_type (token::EOA, l);
1748 #if 201103L <= YY_CPLUSPLUS
1753 return symbol_type (token::EXPR, std::move (l));
1760 return symbol_type (token::EXPR, l);
1763 #if 201103L <= YY_CPLUSPLUS
1768 return symbol_type (token::EMPTY_ARG, std::move (l));
1775 return symbol_type (token::EMPTY_ARG, l);
1778 #if 201103L <= YY_CPLUSPLUS
1783 return symbol_type (token::EMPTY_FUNCALL, std::move (l));
1790 return symbol_type (token::EMPTY_FUNCALL, l);
1793 #if 201103L <= YY_CPLUSPLUS
1798 return symbol_type (token::SUBSET, std::move (l));
1805 return symbol_type (token::SUBSET, l);
1808 #if 201103L <= YY_CPLUSPLUS
1813 return symbol_type (token::DBLSUBSET, std::move (l));
1820 return symbol_type (token::DBLSUBSET, l);
1823 #if 201103L <= YY_CPLUSPLUS
1828 return symbol_type (token::FUNCALL, std::move (l));
1835 return symbol_type (token::FUNCALL, l);
1838 #if 201103L <= YY_CPLUSPLUS
1843 return symbol_type (token::UNOT, std::move (l));
1850 return symbol_type (token::UNOT, l);
1853 #if 201103L <= YY_CPLUSPLUS
1858 return symbol_type (token::UMINUS, std::move (l));
1865 return symbol_type (token::UMINUS, l);
1868 #if 201103L <= YY_CPLUSPLUS
1873 return symbol_type (token::UPLUS, std::move (l));
1880 return symbol_type (token::UPLUS, l);
1891 typedef unsigned char state_type;
1896 virtual std::string yysyntax_error_ (state_type yystate,
1897 const symbol_type& yyla)
const;
1902 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
1906 static bool yy_pact_value_is_default_ (
int yyvalue);
1910 static bool yy_table_value_is_error_ (
int yyvalue);
1912 static const signed char yypact_ninf_;
1913 static const signed char yytable_ninf_;
1923 static const short yypact_[];
1928 static const signed char yydefact_[];
1931 static const signed char yypgoto_[];
1934 static const signed char yydefgoto_[];
1939 static const short yytable_[];
1941 static const short yycheck_[];
1945 static const signed char yystos_[];
1948 static const signed char yyr1_[];
1951 static const signed char yyr2_[];
1955 static std::string yytnamerr_ (
const char *n);
1959 static const char*
const yytname_[];
1962 static const short yyrline_[];
1964 virtual void yy_reduce_print_ (
int r);
1966 virtual void yystack_print_ ();
1971 std::ostream* yycdebug_;
1976 template <
typename Base>
1977 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
1984 template <
typename Base>
1985 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
1992 by_state () YY_NOEXCEPT;
2001 by_state (const by_state& that) YY_NOEXCEPT;
2004 void clear () YY_NOEXCEPT;
2007 void move (by_state& that);
2015 enum { empty_state = 0 };
2023 struct stack_symbol_type : basic_symbol<by_state>
2026 typedef basic_symbol<by_state> super_type;
2028 stack_symbol_type ();
2030 stack_symbol_type (YY_RVREF (stack_symbol_type) that);
2032 stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
2033 #if YY_CPLUSPLUS < 201103L
2034 stack_symbol_type& operator= (stack_symbol_type& that);
2040 stack_symbol_type& operator= (
const stack_symbol_type& that);
2045 template <
typename T,
typename S = std::vector<T> >
2050 typedef typename S::reverse_iterator iterator;
2051 typedef typename S::const_reverse_iterator const_iterator;
2052 typedef typename S::size_type size_type;
2053 typedef typename std::ptrdiff_t index_type;
2055 stack (size_type n = 200)
2063 operator[] (index_type i)
const
2065 return seq_[size_type (size () - 1 - i)];
2072 operator[] (index_type i)
2074 return seq_[size_type (size () - 1 - i)];
2081 push (YY_MOVE_REF (T) t)
2083 seq_.push_back (T ());
2084 operator[] (0).move (t);
2089 pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
2097 clear () YY_NOEXCEPT
2104 size () const YY_NOEXCEPT
2106 return index_type (seq_.size ());
2110 ssize () const YY_NOEXCEPT
2112 return std::ptrdiff_t (size ());
2117 begin () const YY_NOEXCEPT
2119 return seq_.rbegin ();
2124 end () const YY_NOEXCEPT
2126 return seq_.rend ();
2133 slice (
const stack& stack, index_type range)
2139 operator[] (index_type i)
const
2141 return stack_[range_ - i];
2145 const stack& stack_;
2150 stack (
const stack&);
2151 stack& operator= (
const stack&);
2158 typedef stack<stack_symbol_type> stack_type;
2161 stack_type yystack_;
2168 void yypush_ (
const char* m, YY_MOVE_REF (stack_symbol_type) sym);
2176 void yypush_ (
const char* m, state_type s, YY_MOVE_REF (
symbol_type) sym);
2179 void yypop_ (
int n = 1);
2203 parser::yytranslate_ (
int t)
2211 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2236 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2237 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2238 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2239 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2240 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2241 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2242 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2245 const int user_token_number_max_ = 320;
2249 else if (t <= user_token_number_max_)
2250 return translate_table[t];
2252 return yy_undef_token_;
2256 #if 201103L <= YY_CPLUSPLUS
2257 template <
typename Base>
2259 : Base (std::move (that))
2261 , location (std::move (that.location))
2263 switch (this->type_get ())
2268 value.move<
E* > (std::move (that.value));
2275 value.move<
El* > (std::move (that.value));
2279 value.move< Global::dtime > (std::move (that.value));
2283 value.move<
double > (std::move (that.value));
2289 value.move<
string > (std::move (that.value));
2297 value.move<
unsigned > (std::move (that.value));
2307 template <
typename Base>
2313 switch (this->type_get ())
2318 value.copy<
E* > (YY_MOVE (that.
value));
2325 value.copy<
El* > (YY_MOVE (that.
value));
2329 value.copy< Global::dtime > (YY_MOVE (that.
value));
2333 value.copy<
double > (YY_MOVE (that.
value));
2339 value.copy<
string > (YY_MOVE (that.
value));
2347 value.copy<
unsigned > (YY_MOVE (that.
value));
2358 template <
typename Base>
2362 return Base::type_get () == empty_symbol;
2365 template <
typename Base>
2369 super_type::move (s);
2370 switch (this->type_get ())
2375 value.move<
E* > (YY_MOVE (s.
value));
2382 value.move<
El* > (YY_MOVE (s.
value));
2386 value.move< Global::dtime > (YY_MOVE (s.
value));
2390 value.move<
double > (YY_MOVE (s.
value));
2396 value.move<
string > (YY_MOVE (s.
value));
2404 value.move<
unsigned > (YY_MOVE (s.
value));
2416 parser::by_type::by_type ()
2417 : type (empty_symbol)
2420 #if 201103L <= YY_CPLUSPLUS
2436 : type (yytranslate_ (t))
2443 type = empty_symbol;
2462 #line 2463 "parser.hpp"
2468 #endif // !YY_YY_PARSER_HPP_INCLUDED