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