5461 lines
235 KiB
C++
5461 lines
235 KiB
C++
// A Bison parser, made by GNU Bison 3.8.2.
|
|
|
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
|
|
|
// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc.
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
// As a special exception, you may create a larger work that contains
|
|
// part or all of the Bison parser skeleton and distribute that work
|
|
// under terms of your choice, so long as that work isn't itself a
|
|
// parser generator using the skeleton or a modified version thereof
|
|
// as a parser skeleton. Alternatively, if you modify or redistribute
|
|
// the parser skeleton itself, you may (at your option) remove this
|
|
// special exception, which will cause the skeleton and the resulting
|
|
// Bison output files to be licensed under the GNU General Public
|
|
// License without this special exception.
|
|
|
|
// This special exception was added by the Free Software Foundation in
|
|
// version 2.2 of Bison.
|
|
|
|
// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
|
|
// especially those whose name start with YY_ or yy_. They are
|
|
// private implementation details that can be changed or removed.
|
|
|
|
// "%code top" blocks.
|
|
#line 38 "parser.ypp"
|
|
|
|
#include "stdafx.hpp"
|
|
#include "parser.hpp"
|
|
#include "lexer.hpp"
|
|
using namespace xsk::arc;
|
|
xsk::arc::t6::parser::symbol_type T6lex(xsk::arc::t6::lexer& lexer);
|
|
|
|
#line 47 "parser.cpp"
|
|
|
|
// Take the name prefix into account.
|
|
#define yylex T6lex
|
|
|
|
|
|
|
|
#include "parser.hpp"
|
|
|
|
|
|
|
|
|
|
#ifndef YY_
|
|
# if defined YYENABLE_NLS && YYENABLE_NLS
|
|
# if ENABLE_NLS
|
|
# include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE.
|
|
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
|
# endif
|
|
# endif
|
|
# ifndef YY_
|
|
# define YY_(msgid) msgid
|
|
# endif
|
|
#endif
|
|
|
|
|
|
// Whether we are compiled with exception support.
|
|
#ifndef YY_EXCEPTIONS
|
|
# if defined __GNUC__ && !defined __EXCEPTIONS
|
|
# define YY_EXCEPTIONS 0
|
|
# else
|
|
# define YY_EXCEPTIONS 1
|
|
# endif
|
|
#endif
|
|
|
|
#define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
|
|
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
|
|
If N is 0, then set CURRENT to the empty location which ends
|
|
the previous symbol: RHS[0] (always defined). */
|
|
|
|
# ifndef YYLLOC_DEFAULT
|
|
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
|
do \
|
|
if (N) \
|
|
{ \
|
|
(Current).begin = YYRHSLOC (Rhs, 1).begin; \
|
|
(Current).end = YYRHSLOC (Rhs, N).end; \
|
|
} \
|
|
else \
|
|
{ \
|
|
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
|
|
} \
|
|
while (false)
|
|
# endif
|
|
|
|
|
|
// Enable debugging if requested.
|
|
#if T6DEBUG
|
|
|
|
// A pseudo ostream that takes yydebug_ into account.
|
|
# define YYCDEBUG if (yydebug_) (*yycdebug_)
|
|
|
|
# define YY_SYMBOL_PRINT(Title, Symbol) \
|
|
do { \
|
|
if (yydebug_) \
|
|
{ \
|
|
*yycdebug_ << Title << ' '; \
|
|
yy_print_ (*yycdebug_, Symbol); \
|
|
*yycdebug_ << '\n'; \
|
|
} \
|
|
} while (false)
|
|
|
|
# define YY_REDUCE_PRINT(Rule) \
|
|
do { \
|
|
if (yydebug_) \
|
|
yy_reduce_print_ (Rule); \
|
|
} while (false)
|
|
|
|
# define YY_STACK_PRINT() \
|
|
do { \
|
|
if (yydebug_) \
|
|
yy_stack_print_ (); \
|
|
} while (false)
|
|
|
|
#else // !T6DEBUG
|
|
|
|
# define YYCDEBUG if (false) std::cerr
|
|
# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol)
|
|
# define YY_REDUCE_PRINT(Rule) static_cast<void> (0)
|
|
# define YY_STACK_PRINT() static_cast<void> (0)
|
|
|
|
#endif // !T6DEBUG
|
|
|
|
#define yyerrok (yyerrstatus_ = 0)
|
|
#define yyclearin (yyla.clear ())
|
|
|
|
#define YYACCEPT goto yyacceptlab
|
|
#define YYABORT goto yyabortlab
|
|
#define YYERROR goto yyerrorlab
|
|
#define YYRECOVERING() (!!yyerrstatus_)
|
|
|
|
#line 13 "parser.ypp"
|
|
namespace xsk { namespace arc { namespace t6 {
|
|
#line 149 "parser.cpp"
|
|
|
|
/// Build a parser object.
|
|
parser::parser (xsk::arc::t6::lexer& lexer_yyarg, xsk::arc::ast::program::ptr& ast_yyarg)
|
|
#if T6DEBUG
|
|
: yydebug_ (false),
|
|
yycdebug_ (&std::cerr),
|
|
#else
|
|
:
|
|
#endif
|
|
yy_lac_established_ (false),
|
|
lexer (lexer_yyarg),
|
|
ast (ast_yyarg)
|
|
{}
|
|
|
|
parser::~parser ()
|
|
{}
|
|
|
|
parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
|
{}
|
|
|
|
/*---------.
|
|
| symbol. |
|
|
`---------*/
|
|
|
|
|
|
|
|
// by_state.
|
|
parser::by_state::by_state () YY_NOEXCEPT
|
|
: state (empty_state)
|
|
{}
|
|
|
|
parser::by_state::by_state (const by_state& that) YY_NOEXCEPT
|
|
: state (that.state)
|
|
{}
|
|
|
|
void
|
|
parser::by_state::clear () YY_NOEXCEPT
|
|
{
|
|
state = empty_state;
|
|
}
|
|
|
|
void
|
|
parser::by_state::move (by_state& that)
|
|
{
|
|
state = that.state;
|
|
that.clear ();
|
|
}
|
|
|
|
parser::by_state::by_state (state_type s) YY_NOEXCEPT
|
|
: state (s)
|
|
{}
|
|
|
|
parser::symbol_kind_type
|
|
parser::by_state::kind () const YY_NOEXCEPT
|
|
{
|
|
if (state == empty_state)
|
|
return symbol_kind::S_YYEMPTY;
|
|
else
|
|
return YY_CAST (symbol_kind_type, yystos_[+state]);
|
|
}
|
|
|
|
parser::stack_symbol_type::stack_symbol_type ()
|
|
{}
|
|
|
|
parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that)
|
|
: super_type (YY_MOVE (that.state), YY_MOVE (that.location))
|
|
{
|
|
switch (that.kind ())
|
|
{
|
|
case symbol_kind::S_expr_function: // expr_function
|
|
case symbol_kind::S_expr_pointer: // expr_pointer
|
|
value.YY_MOVE_OR_COPY< ast::call > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_declaration: // declaration
|
|
value.YY_MOVE_OR_COPY< ast::decl > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_decl_constant: // decl_constant
|
|
value.YY_MOVE_OR_COPY< ast::decl_constant::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_decl_thread: // decl_thread
|
|
value.YY_MOVE_OR_COPY< ast::decl_thread::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_decl_usingtree: // decl_usingtree
|
|
value.YY_MOVE_OR_COPY< ast::decl_usingtree::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr: // expr
|
|
case symbol_kind::S_expr_or_empty: // expr_or_empty
|
|
case symbol_kind::S_expr_assign: // expr_assign
|
|
case symbol_kind::S_expr_increment: // expr_increment
|
|
case symbol_kind::S_expr_decrement: // expr_decrement
|
|
case symbol_kind::S_expr_ternary: // expr_ternary
|
|
case symbol_kind::S_expr_binary: // expr_binary
|
|
case symbol_kind::S_expr_primitive: // expr_primitive
|
|
case symbol_kind::S_expr_object: // expr_object
|
|
value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_abs: // expr_abs
|
|
value.YY_MOVE_OR_COPY< ast::expr_abs::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_angleclamp180: // expr_angleclamp180
|
|
value.YY_MOVE_OR_COPY< ast::expr_angleclamp180::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoforward: // expr_anglestoforward
|
|
value.YY_MOVE_OR_COPY< ast::expr_anglestoforward::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoright: // expr_anglestoright
|
|
value.YY_MOVE_OR_COPY< ast::expr_anglestoright::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoup: // expr_anglestoup
|
|
value.YY_MOVE_OR_COPY< ast::expr_anglestoup::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anim: // expr_anim
|
|
value.YY_MOVE_OR_COPY< ast::expr_anim::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animation: // expr_animation
|
|
value.YY_MOVE_OR_COPY< ast::expr_animation::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animtree: // expr_animtree
|
|
value.YY_MOVE_OR_COPY< ast::expr_animtree::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_arguments: // expr_arguments
|
|
case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty
|
|
value.YY_MOVE_OR_COPY< ast::expr_arguments::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_array: // expr_array
|
|
value.YY_MOVE_OR_COPY< ast::expr_array::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_call: // expr_call
|
|
value.YY_MOVE_OR_COPY< ast::expr_call::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_complement: // expr_complement
|
|
value.YY_MOVE_OR_COPY< ast::expr_complement::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_empty_array: // expr_empty_array
|
|
value.YY_MOVE_OR_COPY< ast::expr_empty_array::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_false: // expr_false
|
|
value.YY_MOVE_OR_COPY< ast::expr_false::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_field: // expr_field
|
|
value.YY_MOVE_OR_COPY< ast::expr_field::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_float: // expr_float
|
|
value.YY_MOVE_OR_COPY< ast::expr_float::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_game: // expr_game
|
|
value.YY_MOVE_OR_COPY< ast::expr_game::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvar: // expr_getdvar
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvar::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcoloralpha: // expr_getdvarcoloralpha
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarcoloralpha::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorblue: // expr_getdvarcolorblue
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarcolorblue::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorgreen: // expr_getdvarcolorgreen
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarcolorgreen::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorred: // expr_getdvarcolorred
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarcolorred::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarfloat: // expr_getdvarfloat
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarfloat::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarint: // expr_getdvarint
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarint::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarvector: // expr_getdvarvector
|
|
value.YY_MOVE_OR_COPY< ast::expr_getdvarvector::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getfirstarraykey: // expr_getfirstarraykey
|
|
value.YY_MOVE_OR_COPY< ast::expr_getfirstarraykey::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getnextarraykey: // expr_getnextarraykey
|
|
value.YY_MOVE_OR_COPY< ast::expr_getnextarraykey::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_gettime: // expr_gettime
|
|
value.YY_MOVE_OR_COPY< ast::expr_gettime::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_hash: // expr_hash
|
|
value.YY_MOVE_OR_COPY< ast::expr_hash::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_identifier_nosize: // expr_identifier_nosize
|
|
case symbol_kind::S_expr_identifier: // expr_identifier
|
|
value.YY_MOVE_OR_COPY< ast::expr_identifier::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_integer: // expr_integer
|
|
value.YY_MOVE_OR_COPY< ast::expr_integer::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_isdefined: // expr_isdefined
|
|
value.YY_MOVE_OR_COPY< ast::expr_isdefined::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_istring: // expr_istring
|
|
value.YY_MOVE_OR_COPY< ast::expr_istring::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_level: // expr_level
|
|
value.YY_MOVE_OR_COPY< ast::expr_level::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_method: // expr_method
|
|
value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_negate: // expr_negate
|
|
value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_not: // expr_not
|
|
value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_parameters: // expr_parameters
|
|
value.YY_MOVE_OR_COPY< ast::expr_parameters::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_paren: // expr_paren
|
|
value.YY_MOVE_OR_COPY< ast::expr_paren::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_path: // expr_path
|
|
value.YY_MOVE_OR_COPY< ast::expr_path::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_reference: // expr_reference
|
|
value.YY_MOVE_OR_COPY< ast::expr_reference::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_self: // expr_self
|
|
value.YY_MOVE_OR_COPY< ast::expr_self::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_size: // expr_size
|
|
value.YY_MOVE_OR_COPY< ast::expr_size::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_string: // expr_string
|
|
value.YY_MOVE_OR_COPY< ast::expr_string::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_true: // expr_true
|
|
value.YY_MOVE_OR_COPY< ast::expr_true::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_undefined: // expr_undefined
|
|
value.YY_MOVE_OR_COPY< ast::expr_undefined::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vector: // expr_vector
|
|
value.YY_MOVE_OR_COPY< ast::expr_vector::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectorscale: // expr_vectorscale
|
|
value.YY_MOVE_OR_COPY< ast::expr_vectorscale::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectortoangles: // expr_vectortoangles
|
|
value.YY_MOVE_OR_COPY< ast::expr_vectortoangles::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_include: // include
|
|
value.YY_MOVE_OR_COPY< ast::include::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_program: // program
|
|
value.YY_MOVE_OR_COPY< ast::program::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt: // stmt
|
|
case symbol_kind::S_stmt_or_dev: // stmt_or_dev
|
|
value.YY_MOVE_OR_COPY< ast::stmt > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_assign: // stmt_assign
|
|
value.YY_MOVE_OR_COPY< ast::stmt_assign::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_break: // stmt_break
|
|
value.YY_MOVE_OR_COPY< ast::stmt_break::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_call: // stmt_call
|
|
value.YY_MOVE_OR_COPY< ast::stmt_call::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_case: // stmt_case
|
|
value.YY_MOVE_OR_COPY< ast::stmt_case::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_continue: // stmt_continue
|
|
value.YY_MOVE_OR_COPY< ast::stmt_continue::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_default: // stmt_default
|
|
value.YY_MOVE_OR_COPY< ast::stmt_default::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dev: // stmt_dev
|
|
value.YY_MOVE_OR_COPY< ast::stmt_dev::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dowhile: // stmt_dowhile
|
|
value.YY_MOVE_OR_COPY< ast::stmt_dowhile::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_endon: // stmt_endon
|
|
value.YY_MOVE_OR_COPY< ast::stmt_endon::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_expr: // stmt_expr
|
|
value.YY_MOVE_OR_COPY< ast::stmt_expr::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_for: // stmt_for
|
|
value.YY_MOVE_OR_COPY< ast::stmt_for::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_foreach: // stmt_foreach
|
|
value.YY_MOVE_OR_COPY< ast::stmt_foreach::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_if: // stmt_if
|
|
value.YY_MOVE_OR_COPY< ast::stmt_if::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_ifelse: // stmt_ifelse
|
|
value.YY_MOVE_OR_COPY< ast::stmt_ifelse::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_list: // stmt_list
|
|
case symbol_kind::S_stmt_or_dev_list: // stmt_or_dev_list
|
|
case symbol_kind::S_stmt_block: // stmt_block
|
|
value.YY_MOVE_OR_COPY< ast::stmt_list::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_notify: // stmt_notify
|
|
value.YY_MOVE_OR_COPY< ast::stmt_notify::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
|
|
value.YY_MOVE_OR_COPY< ast::stmt_prof_begin::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
|
|
value.YY_MOVE_OR_COPY< ast::stmt_prof_end::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_return: // stmt_return
|
|
value.YY_MOVE_OR_COPY< ast::stmt_return::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_switch: // stmt_switch
|
|
value.YY_MOVE_OR_COPY< ast::stmt_switch::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_wait: // stmt_wait
|
|
value.YY_MOVE_OR_COPY< ast::stmt_wait::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittill: // stmt_waittill
|
|
value.YY_MOVE_OR_COPY< ast::stmt_waittill::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillframeend: // stmt_waittillframeend
|
|
value.YY_MOVE_OR_COPY< ast::stmt_waittillframeend::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillmatch: // stmt_waittillmatch
|
|
value.YY_MOVE_OR_COPY< ast::stmt_waittillmatch::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_while: // stmt_while
|
|
value.YY_MOVE_OR_COPY< ast::stmt_while::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_PATH: // "path"
|
|
case symbol_kind::S_IDENTIFIER: // "identifier"
|
|
case symbol_kind::S_STRING: // "string literal"
|
|
case symbol_kind::S_ISTRING: // "localized string"
|
|
case symbol_kind::S_HASH: // "hash"
|
|
case symbol_kind::S_FLOAT: // "float"
|
|
case symbol_kind::S_INTEGER: // "integer"
|
|
value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
#if 201103L <= YY_CPLUSPLUS
|
|
// that is emptied.
|
|
that.state = empty_state;
|
|
#endif
|
|
}
|
|
|
|
parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that)
|
|
: super_type (s, YY_MOVE (that.location))
|
|
{
|
|
switch (that.kind ())
|
|
{
|
|
case symbol_kind::S_expr_function: // expr_function
|
|
case symbol_kind::S_expr_pointer: // expr_pointer
|
|
value.move< ast::call > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_declaration: // declaration
|
|
value.move< ast::decl > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_decl_constant: // decl_constant
|
|
value.move< ast::decl_constant::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_decl_thread: // decl_thread
|
|
value.move< ast::decl_thread::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_decl_usingtree: // decl_usingtree
|
|
value.move< ast::decl_usingtree::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr: // expr
|
|
case symbol_kind::S_expr_or_empty: // expr_or_empty
|
|
case symbol_kind::S_expr_assign: // expr_assign
|
|
case symbol_kind::S_expr_increment: // expr_increment
|
|
case symbol_kind::S_expr_decrement: // expr_decrement
|
|
case symbol_kind::S_expr_ternary: // expr_ternary
|
|
case symbol_kind::S_expr_binary: // expr_binary
|
|
case symbol_kind::S_expr_primitive: // expr_primitive
|
|
case symbol_kind::S_expr_object: // expr_object
|
|
value.move< ast::expr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_abs: // expr_abs
|
|
value.move< ast::expr_abs::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_angleclamp180: // expr_angleclamp180
|
|
value.move< ast::expr_angleclamp180::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoforward: // expr_anglestoforward
|
|
value.move< ast::expr_anglestoforward::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoright: // expr_anglestoright
|
|
value.move< ast::expr_anglestoright::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoup: // expr_anglestoup
|
|
value.move< ast::expr_anglestoup::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anim: // expr_anim
|
|
value.move< ast::expr_anim::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animation: // expr_animation
|
|
value.move< ast::expr_animation::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animtree: // expr_animtree
|
|
value.move< ast::expr_animtree::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_arguments: // expr_arguments
|
|
case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty
|
|
value.move< ast::expr_arguments::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_array: // expr_array
|
|
value.move< ast::expr_array::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_call: // expr_call
|
|
value.move< ast::expr_call::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_complement: // expr_complement
|
|
value.move< ast::expr_complement::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_empty_array: // expr_empty_array
|
|
value.move< ast::expr_empty_array::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_false: // expr_false
|
|
value.move< ast::expr_false::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_field: // expr_field
|
|
value.move< ast::expr_field::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_float: // expr_float
|
|
value.move< ast::expr_float::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_game: // expr_game
|
|
value.move< ast::expr_game::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvar: // expr_getdvar
|
|
value.move< ast::expr_getdvar::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcoloralpha: // expr_getdvarcoloralpha
|
|
value.move< ast::expr_getdvarcoloralpha::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorblue: // expr_getdvarcolorblue
|
|
value.move< ast::expr_getdvarcolorblue::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorgreen: // expr_getdvarcolorgreen
|
|
value.move< ast::expr_getdvarcolorgreen::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorred: // expr_getdvarcolorred
|
|
value.move< ast::expr_getdvarcolorred::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarfloat: // expr_getdvarfloat
|
|
value.move< ast::expr_getdvarfloat::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarint: // expr_getdvarint
|
|
value.move< ast::expr_getdvarint::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarvector: // expr_getdvarvector
|
|
value.move< ast::expr_getdvarvector::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getfirstarraykey: // expr_getfirstarraykey
|
|
value.move< ast::expr_getfirstarraykey::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getnextarraykey: // expr_getnextarraykey
|
|
value.move< ast::expr_getnextarraykey::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_gettime: // expr_gettime
|
|
value.move< ast::expr_gettime::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_hash: // expr_hash
|
|
value.move< ast::expr_hash::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_identifier_nosize: // expr_identifier_nosize
|
|
case symbol_kind::S_expr_identifier: // expr_identifier
|
|
value.move< ast::expr_identifier::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_integer: // expr_integer
|
|
value.move< ast::expr_integer::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_isdefined: // expr_isdefined
|
|
value.move< ast::expr_isdefined::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_istring: // expr_istring
|
|
value.move< ast::expr_istring::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_level: // expr_level
|
|
value.move< ast::expr_level::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_method: // expr_method
|
|
value.move< ast::expr_method::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_negate: // expr_negate
|
|
value.move< ast::expr_negate::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_not: // expr_not
|
|
value.move< ast::expr_not::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_parameters: // expr_parameters
|
|
value.move< ast::expr_parameters::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_paren: // expr_paren
|
|
value.move< ast::expr_paren::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_path: // expr_path
|
|
value.move< ast::expr_path::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_reference: // expr_reference
|
|
value.move< ast::expr_reference::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_self: // expr_self
|
|
value.move< ast::expr_self::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_size: // expr_size
|
|
value.move< ast::expr_size::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_string: // expr_string
|
|
value.move< ast::expr_string::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_true: // expr_true
|
|
value.move< ast::expr_true::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_undefined: // expr_undefined
|
|
value.move< ast::expr_undefined::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vector: // expr_vector
|
|
value.move< ast::expr_vector::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectorscale: // expr_vectorscale
|
|
value.move< ast::expr_vectorscale::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectortoangles: // expr_vectortoangles
|
|
value.move< ast::expr_vectortoangles::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_include: // include
|
|
value.move< ast::include::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_program: // program
|
|
value.move< ast::program::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt: // stmt
|
|
case symbol_kind::S_stmt_or_dev: // stmt_or_dev
|
|
value.move< ast::stmt > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_assign: // stmt_assign
|
|
value.move< ast::stmt_assign::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_break: // stmt_break
|
|
value.move< ast::stmt_break::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_call: // stmt_call
|
|
value.move< ast::stmt_call::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_case: // stmt_case
|
|
value.move< ast::stmt_case::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_continue: // stmt_continue
|
|
value.move< ast::stmt_continue::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_default: // stmt_default
|
|
value.move< ast::stmt_default::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dev: // stmt_dev
|
|
value.move< ast::stmt_dev::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dowhile: // stmt_dowhile
|
|
value.move< ast::stmt_dowhile::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_endon: // stmt_endon
|
|
value.move< ast::stmt_endon::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_expr: // stmt_expr
|
|
value.move< ast::stmt_expr::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_for: // stmt_for
|
|
value.move< ast::stmt_for::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_foreach: // stmt_foreach
|
|
value.move< ast::stmt_foreach::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_if: // stmt_if
|
|
value.move< ast::stmt_if::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_ifelse: // stmt_ifelse
|
|
value.move< ast::stmt_ifelse::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_list: // stmt_list
|
|
case symbol_kind::S_stmt_or_dev_list: // stmt_or_dev_list
|
|
case symbol_kind::S_stmt_block: // stmt_block
|
|
value.move< ast::stmt_list::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_notify: // stmt_notify
|
|
value.move< ast::stmt_notify::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
|
|
value.move< ast::stmt_prof_begin::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
|
|
value.move< ast::stmt_prof_end::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_return: // stmt_return
|
|
value.move< ast::stmt_return::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_switch: // stmt_switch
|
|
value.move< ast::stmt_switch::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_wait: // stmt_wait
|
|
value.move< ast::stmt_wait::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittill: // stmt_waittill
|
|
value.move< ast::stmt_waittill::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillframeend: // stmt_waittillframeend
|
|
value.move< ast::stmt_waittillframeend::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillmatch: // stmt_waittillmatch
|
|
value.move< ast::stmt_waittillmatch::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_while: // stmt_while
|
|
value.move< ast::stmt_while::ptr > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
case symbol_kind::S_PATH: // "path"
|
|
case symbol_kind::S_IDENTIFIER: // "identifier"
|
|
case symbol_kind::S_STRING: // "string literal"
|
|
case symbol_kind::S_ISTRING: // "localized string"
|
|
case symbol_kind::S_HASH: // "hash"
|
|
case symbol_kind::S_FLOAT: // "float"
|
|
case symbol_kind::S_INTEGER: // "integer"
|
|
value.move< std::string > (YY_MOVE (that.value));
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
// that is emptied.
|
|
that.kind_ = symbol_kind::S_YYEMPTY;
|
|
}
|
|
|
|
#if YY_CPLUSPLUS < 201103L
|
|
parser::stack_symbol_type&
|
|
parser::stack_symbol_type::operator= (const stack_symbol_type& that)
|
|
{
|
|
state = that.state;
|
|
switch (that.kind ())
|
|
{
|
|
case symbol_kind::S_expr_function: // expr_function
|
|
case symbol_kind::S_expr_pointer: // expr_pointer
|
|
value.copy< ast::call > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_declaration: // declaration
|
|
value.copy< ast::decl > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_decl_constant: // decl_constant
|
|
value.copy< ast::decl_constant::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_decl_thread: // decl_thread
|
|
value.copy< ast::decl_thread::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_decl_usingtree: // decl_usingtree
|
|
value.copy< ast::decl_usingtree::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr: // expr
|
|
case symbol_kind::S_expr_or_empty: // expr_or_empty
|
|
case symbol_kind::S_expr_assign: // expr_assign
|
|
case symbol_kind::S_expr_increment: // expr_increment
|
|
case symbol_kind::S_expr_decrement: // expr_decrement
|
|
case symbol_kind::S_expr_ternary: // expr_ternary
|
|
case symbol_kind::S_expr_binary: // expr_binary
|
|
case symbol_kind::S_expr_primitive: // expr_primitive
|
|
case symbol_kind::S_expr_object: // expr_object
|
|
value.copy< ast::expr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_abs: // expr_abs
|
|
value.copy< ast::expr_abs::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_angleclamp180: // expr_angleclamp180
|
|
value.copy< ast::expr_angleclamp180::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoforward: // expr_anglestoforward
|
|
value.copy< ast::expr_anglestoforward::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoright: // expr_anglestoright
|
|
value.copy< ast::expr_anglestoright::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoup: // expr_anglestoup
|
|
value.copy< ast::expr_anglestoup::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anim: // expr_anim
|
|
value.copy< ast::expr_anim::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animation: // expr_animation
|
|
value.copy< ast::expr_animation::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animtree: // expr_animtree
|
|
value.copy< ast::expr_animtree::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_arguments: // expr_arguments
|
|
case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty
|
|
value.copy< ast::expr_arguments::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_array: // expr_array
|
|
value.copy< ast::expr_array::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_call: // expr_call
|
|
value.copy< ast::expr_call::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_complement: // expr_complement
|
|
value.copy< ast::expr_complement::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_empty_array: // expr_empty_array
|
|
value.copy< ast::expr_empty_array::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_false: // expr_false
|
|
value.copy< ast::expr_false::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_field: // expr_field
|
|
value.copy< ast::expr_field::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_float: // expr_float
|
|
value.copy< ast::expr_float::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_game: // expr_game
|
|
value.copy< ast::expr_game::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvar: // expr_getdvar
|
|
value.copy< ast::expr_getdvar::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcoloralpha: // expr_getdvarcoloralpha
|
|
value.copy< ast::expr_getdvarcoloralpha::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorblue: // expr_getdvarcolorblue
|
|
value.copy< ast::expr_getdvarcolorblue::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorgreen: // expr_getdvarcolorgreen
|
|
value.copy< ast::expr_getdvarcolorgreen::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorred: // expr_getdvarcolorred
|
|
value.copy< ast::expr_getdvarcolorred::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarfloat: // expr_getdvarfloat
|
|
value.copy< ast::expr_getdvarfloat::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarint: // expr_getdvarint
|
|
value.copy< ast::expr_getdvarint::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarvector: // expr_getdvarvector
|
|
value.copy< ast::expr_getdvarvector::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getfirstarraykey: // expr_getfirstarraykey
|
|
value.copy< ast::expr_getfirstarraykey::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getnextarraykey: // expr_getnextarraykey
|
|
value.copy< ast::expr_getnextarraykey::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_gettime: // expr_gettime
|
|
value.copy< ast::expr_gettime::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_hash: // expr_hash
|
|
value.copy< ast::expr_hash::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_identifier_nosize: // expr_identifier_nosize
|
|
case symbol_kind::S_expr_identifier: // expr_identifier
|
|
value.copy< ast::expr_identifier::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_integer: // expr_integer
|
|
value.copy< ast::expr_integer::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_isdefined: // expr_isdefined
|
|
value.copy< ast::expr_isdefined::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_istring: // expr_istring
|
|
value.copy< ast::expr_istring::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_level: // expr_level
|
|
value.copy< ast::expr_level::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_method: // expr_method
|
|
value.copy< ast::expr_method::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_negate: // expr_negate
|
|
value.copy< ast::expr_negate::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_not: // expr_not
|
|
value.copy< ast::expr_not::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_parameters: // expr_parameters
|
|
value.copy< ast::expr_parameters::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_paren: // expr_paren
|
|
value.copy< ast::expr_paren::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_path: // expr_path
|
|
value.copy< ast::expr_path::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_reference: // expr_reference
|
|
value.copy< ast::expr_reference::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_self: // expr_self
|
|
value.copy< ast::expr_self::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_size: // expr_size
|
|
value.copy< ast::expr_size::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_string: // expr_string
|
|
value.copy< ast::expr_string::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_true: // expr_true
|
|
value.copy< ast::expr_true::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_undefined: // expr_undefined
|
|
value.copy< ast::expr_undefined::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vector: // expr_vector
|
|
value.copy< ast::expr_vector::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectorscale: // expr_vectorscale
|
|
value.copy< ast::expr_vectorscale::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectortoangles: // expr_vectortoangles
|
|
value.copy< ast::expr_vectortoangles::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_include: // include
|
|
value.copy< ast::include::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_program: // program
|
|
value.copy< ast::program::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt: // stmt
|
|
case symbol_kind::S_stmt_or_dev: // stmt_or_dev
|
|
value.copy< ast::stmt > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_assign: // stmt_assign
|
|
value.copy< ast::stmt_assign::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_break: // stmt_break
|
|
value.copy< ast::stmt_break::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_call: // stmt_call
|
|
value.copy< ast::stmt_call::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_case: // stmt_case
|
|
value.copy< ast::stmt_case::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_continue: // stmt_continue
|
|
value.copy< ast::stmt_continue::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_default: // stmt_default
|
|
value.copy< ast::stmt_default::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dev: // stmt_dev
|
|
value.copy< ast::stmt_dev::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dowhile: // stmt_dowhile
|
|
value.copy< ast::stmt_dowhile::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_endon: // stmt_endon
|
|
value.copy< ast::stmt_endon::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_expr: // stmt_expr
|
|
value.copy< ast::stmt_expr::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_for: // stmt_for
|
|
value.copy< ast::stmt_for::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_foreach: // stmt_foreach
|
|
value.copy< ast::stmt_foreach::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_if: // stmt_if
|
|
value.copy< ast::stmt_if::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_ifelse: // stmt_ifelse
|
|
value.copy< ast::stmt_ifelse::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_list: // stmt_list
|
|
case symbol_kind::S_stmt_or_dev_list: // stmt_or_dev_list
|
|
case symbol_kind::S_stmt_block: // stmt_block
|
|
value.copy< ast::stmt_list::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_notify: // stmt_notify
|
|
value.copy< ast::stmt_notify::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
|
|
value.copy< ast::stmt_prof_begin::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
|
|
value.copy< ast::stmt_prof_end::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_return: // stmt_return
|
|
value.copy< ast::stmt_return::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_switch: // stmt_switch
|
|
value.copy< ast::stmt_switch::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_wait: // stmt_wait
|
|
value.copy< ast::stmt_wait::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittill: // stmt_waittill
|
|
value.copy< ast::stmt_waittill::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillframeend: // stmt_waittillframeend
|
|
value.copy< ast::stmt_waittillframeend::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillmatch: // stmt_waittillmatch
|
|
value.copy< ast::stmt_waittillmatch::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_while: // stmt_while
|
|
value.copy< ast::stmt_while::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_PATH: // "path"
|
|
case symbol_kind::S_IDENTIFIER: // "identifier"
|
|
case symbol_kind::S_STRING: // "string literal"
|
|
case symbol_kind::S_ISTRING: // "localized string"
|
|
case symbol_kind::S_HASH: // "hash"
|
|
case symbol_kind::S_FLOAT: // "float"
|
|
case symbol_kind::S_INTEGER: // "integer"
|
|
value.copy< std::string > (that.value);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
location = that.location;
|
|
return *this;
|
|
}
|
|
|
|
parser::stack_symbol_type&
|
|
parser::stack_symbol_type::operator= (stack_symbol_type& that)
|
|
{
|
|
state = that.state;
|
|
switch (that.kind ())
|
|
{
|
|
case symbol_kind::S_expr_function: // expr_function
|
|
case symbol_kind::S_expr_pointer: // expr_pointer
|
|
value.move< ast::call > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_declaration: // declaration
|
|
value.move< ast::decl > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_decl_constant: // decl_constant
|
|
value.move< ast::decl_constant::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_decl_thread: // decl_thread
|
|
value.move< ast::decl_thread::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_decl_usingtree: // decl_usingtree
|
|
value.move< ast::decl_usingtree::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr: // expr
|
|
case symbol_kind::S_expr_or_empty: // expr_or_empty
|
|
case symbol_kind::S_expr_assign: // expr_assign
|
|
case symbol_kind::S_expr_increment: // expr_increment
|
|
case symbol_kind::S_expr_decrement: // expr_decrement
|
|
case symbol_kind::S_expr_ternary: // expr_ternary
|
|
case symbol_kind::S_expr_binary: // expr_binary
|
|
case symbol_kind::S_expr_primitive: // expr_primitive
|
|
case symbol_kind::S_expr_object: // expr_object
|
|
value.move< ast::expr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_abs: // expr_abs
|
|
value.move< ast::expr_abs::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_angleclamp180: // expr_angleclamp180
|
|
value.move< ast::expr_angleclamp180::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoforward: // expr_anglestoforward
|
|
value.move< ast::expr_anglestoforward::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoright: // expr_anglestoright
|
|
value.move< ast::expr_anglestoright::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoup: // expr_anglestoup
|
|
value.move< ast::expr_anglestoup::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anim: // expr_anim
|
|
value.move< ast::expr_anim::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animation: // expr_animation
|
|
value.move< ast::expr_animation::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animtree: // expr_animtree
|
|
value.move< ast::expr_animtree::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_arguments: // expr_arguments
|
|
case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty
|
|
value.move< ast::expr_arguments::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_array: // expr_array
|
|
value.move< ast::expr_array::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_call: // expr_call
|
|
value.move< ast::expr_call::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_complement: // expr_complement
|
|
value.move< ast::expr_complement::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_empty_array: // expr_empty_array
|
|
value.move< ast::expr_empty_array::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_false: // expr_false
|
|
value.move< ast::expr_false::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_field: // expr_field
|
|
value.move< ast::expr_field::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_float: // expr_float
|
|
value.move< ast::expr_float::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_game: // expr_game
|
|
value.move< ast::expr_game::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvar: // expr_getdvar
|
|
value.move< ast::expr_getdvar::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcoloralpha: // expr_getdvarcoloralpha
|
|
value.move< ast::expr_getdvarcoloralpha::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorblue: // expr_getdvarcolorblue
|
|
value.move< ast::expr_getdvarcolorblue::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorgreen: // expr_getdvarcolorgreen
|
|
value.move< ast::expr_getdvarcolorgreen::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorred: // expr_getdvarcolorred
|
|
value.move< ast::expr_getdvarcolorred::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarfloat: // expr_getdvarfloat
|
|
value.move< ast::expr_getdvarfloat::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarint: // expr_getdvarint
|
|
value.move< ast::expr_getdvarint::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarvector: // expr_getdvarvector
|
|
value.move< ast::expr_getdvarvector::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getfirstarraykey: // expr_getfirstarraykey
|
|
value.move< ast::expr_getfirstarraykey::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getnextarraykey: // expr_getnextarraykey
|
|
value.move< ast::expr_getnextarraykey::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_gettime: // expr_gettime
|
|
value.move< ast::expr_gettime::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_hash: // expr_hash
|
|
value.move< ast::expr_hash::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_identifier_nosize: // expr_identifier_nosize
|
|
case symbol_kind::S_expr_identifier: // expr_identifier
|
|
value.move< ast::expr_identifier::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_integer: // expr_integer
|
|
value.move< ast::expr_integer::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_isdefined: // expr_isdefined
|
|
value.move< ast::expr_isdefined::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_istring: // expr_istring
|
|
value.move< ast::expr_istring::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_level: // expr_level
|
|
value.move< ast::expr_level::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_method: // expr_method
|
|
value.move< ast::expr_method::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_negate: // expr_negate
|
|
value.move< ast::expr_negate::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_not: // expr_not
|
|
value.move< ast::expr_not::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_parameters: // expr_parameters
|
|
value.move< ast::expr_parameters::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_paren: // expr_paren
|
|
value.move< ast::expr_paren::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_path: // expr_path
|
|
value.move< ast::expr_path::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_reference: // expr_reference
|
|
value.move< ast::expr_reference::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_self: // expr_self
|
|
value.move< ast::expr_self::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_size: // expr_size
|
|
value.move< ast::expr_size::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_string: // expr_string
|
|
value.move< ast::expr_string::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_true: // expr_true
|
|
value.move< ast::expr_true::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_undefined: // expr_undefined
|
|
value.move< ast::expr_undefined::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vector: // expr_vector
|
|
value.move< ast::expr_vector::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectorscale: // expr_vectorscale
|
|
value.move< ast::expr_vectorscale::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectortoangles: // expr_vectortoangles
|
|
value.move< ast::expr_vectortoangles::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_include: // include
|
|
value.move< ast::include::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_program: // program
|
|
value.move< ast::program::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt: // stmt
|
|
case symbol_kind::S_stmt_or_dev: // stmt_or_dev
|
|
value.move< ast::stmt > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_assign: // stmt_assign
|
|
value.move< ast::stmt_assign::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_break: // stmt_break
|
|
value.move< ast::stmt_break::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_call: // stmt_call
|
|
value.move< ast::stmt_call::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_case: // stmt_case
|
|
value.move< ast::stmt_case::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_continue: // stmt_continue
|
|
value.move< ast::stmt_continue::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_default: // stmt_default
|
|
value.move< ast::stmt_default::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dev: // stmt_dev
|
|
value.move< ast::stmt_dev::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dowhile: // stmt_dowhile
|
|
value.move< ast::stmt_dowhile::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_endon: // stmt_endon
|
|
value.move< ast::stmt_endon::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_expr: // stmt_expr
|
|
value.move< ast::stmt_expr::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_for: // stmt_for
|
|
value.move< ast::stmt_for::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_foreach: // stmt_foreach
|
|
value.move< ast::stmt_foreach::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_if: // stmt_if
|
|
value.move< ast::stmt_if::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_ifelse: // stmt_ifelse
|
|
value.move< ast::stmt_ifelse::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_list: // stmt_list
|
|
case symbol_kind::S_stmt_or_dev_list: // stmt_or_dev_list
|
|
case symbol_kind::S_stmt_block: // stmt_block
|
|
value.move< ast::stmt_list::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_notify: // stmt_notify
|
|
value.move< ast::stmt_notify::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
|
|
value.move< ast::stmt_prof_begin::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
|
|
value.move< ast::stmt_prof_end::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_return: // stmt_return
|
|
value.move< ast::stmt_return::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_switch: // stmt_switch
|
|
value.move< ast::stmt_switch::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_wait: // stmt_wait
|
|
value.move< ast::stmt_wait::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittill: // stmt_waittill
|
|
value.move< ast::stmt_waittill::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillframeend: // stmt_waittillframeend
|
|
value.move< ast::stmt_waittillframeend::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillmatch: // stmt_waittillmatch
|
|
value.move< ast::stmt_waittillmatch::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_while: // stmt_while
|
|
value.move< ast::stmt_while::ptr > (that.value);
|
|
break;
|
|
|
|
case symbol_kind::S_PATH: // "path"
|
|
case symbol_kind::S_IDENTIFIER: // "identifier"
|
|
case symbol_kind::S_STRING: // "string literal"
|
|
case symbol_kind::S_ISTRING: // "localized string"
|
|
case symbol_kind::S_HASH: // "hash"
|
|
case symbol_kind::S_FLOAT: // "float"
|
|
case symbol_kind::S_INTEGER: // "integer"
|
|
value.move< std::string > (that.value);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
location = that.location;
|
|
// that is emptied.
|
|
that.state = empty_state;
|
|
return *this;
|
|
}
|
|
#endif
|
|
|
|
template <typename Base>
|
|
void
|
|
parser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
|
|
{
|
|
if (yymsg)
|
|
YY_SYMBOL_PRINT (yymsg, yysym);
|
|
}
|
|
|
|
#if T6DEBUG
|
|
template <typename Base>
|
|
void
|
|
parser::yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const
|
|
{
|
|
std::ostream& yyoutput = yyo;
|
|
YY_USE (yyoutput);
|
|
if (yysym.empty ())
|
|
yyo << "empty symbol";
|
|
else
|
|
{
|
|
symbol_kind_type yykind = yysym.kind ();
|
|
yyo << (yykind < YYNTOKENS ? "token" : "nterm")
|
|
<< ' ' << yysym.name () << " ("
|
|
<< yysym.location << ": ";
|
|
YY_USE (yykind);
|
|
yyo << ')';
|
|
}
|
|
}
|
|
#endif
|
|
|
|
void
|
|
parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym)
|
|
{
|
|
if (m)
|
|
YY_SYMBOL_PRINT (m, sym);
|
|
yystack_.push (YY_MOVE (sym));
|
|
}
|
|
|
|
void
|
|
parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym)
|
|
{
|
|
#if 201103L <= YY_CPLUSPLUS
|
|
yypush_ (m, stack_symbol_type (s, std::move (sym)));
|
|
#else
|
|
stack_symbol_type ss (s, sym);
|
|
yypush_ (m, ss);
|
|
#endif
|
|
}
|
|
|
|
void
|
|
parser::yypop_ (int n) YY_NOEXCEPT
|
|
{
|
|
yystack_.pop (n);
|
|
}
|
|
|
|
#if T6DEBUG
|
|
std::ostream&
|
|
parser::debug_stream () const
|
|
{
|
|
return *yycdebug_;
|
|
}
|
|
|
|
void
|
|
parser::set_debug_stream (std::ostream& o)
|
|
{
|
|
yycdebug_ = &o;
|
|
}
|
|
|
|
|
|
parser::debug_level_type
|
|
parser::debug_level () const
|
|
{
|
|
return yydebug_;
|
|
}
|
|
|
|
void
|
|
parser::set_debug_level (debug_level_type l)
|
|
{
|
|
yydebug_ = l;
|
|
}
|
|
#endif // T6DEBUG
|
|
|
|
parser::state_type
|
|
parser::yy_lr_goto_state_ (state_type yystate, int yysym)
|
|
{
|
|
int yyr = yypgoto_[yysym - YYNTOKENS] + yystate;
|
|
if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
|
|
return yytable_[yyr];
|
|
else
|
|
return yydefgoto_[yysym - YYNTOKENS];
|
|
}
|
|
|
|
bool
|
|
parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
|
{
|
|
return yyvalue == yypact_ninf_;
|
|
}
|
|
|
|
bool
|
|
parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
|
{
|
|
return yyvalue == yytable_ninf_;
|
|
}
|
|
|
|
int
|
|
parser::operator() ()
|
|
{
|
|
return parse ();
|
|
}
|
|
|
|
int
|
|
parser::parse ()
|
|
{
|
|
int yyn;
|
|
/// Length of the RHS of the rule being reduced.
|
|
int yylen = 0;
|
|
|
|
// Error handling.
|
|
int yynerrs_ = 0;
|
|
int yyerrstatus_ = 0;
|
|
|
|
/// The lookahead symbol.
|
|
symbol_type yyla;
|
|
|
|
/// The locations where the error started and ended.
|
|
stack_symbol_type yyerror_range[3];
|
|
|
|
/// The return value of parse ().
|
|
int yyresult;
|
|
|
|
// Discard the LAC context in case there still is one left from a
|
|
// previous invocation.
|
|
yy_lac_discard_ ("init");
|
|
|
|
#if YY_EXCEPTIONS
|
|
try
|
|
#endif // YY_EXCEPTIONS
|
|
{
|
|
YYCDEBUG << "Starting parse\n";
|
|
|
|
|
|
/* Initialize the stack. The initial state will be set in
|
|
yynewstate, since the latter expects the semantical and the
|
|
location values to have been already stored, initialize these
|
|
stacks with a primary value. */
|
|
yystack_.clear ();
|
|
yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla));
|
|
|
|
/*-----------------------------------------------.
|
|
| yynewstate -- push a new symbol on the stack. |
|
|
`-----------------------------------------------*/
|
|
yynewstate:
|
|
YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n';
|
|
YY_STACK_PRINT ();
|
|
|
|
// Accept?
|
|
if (yystack_[0].state == yyfinal_)
|
|
YYACCEPT;
|
|
|
|
goto yybackup;
|
|
|
|
|
|
/*-----------.
|
|
| yybackup. |
|
|
`-----------*/
|
|
yybackup:
|
|
// Try to take a decision without lookahead.
|
|
yyn = yypact_[+yystack_[0].state];
|
|
if (yy_pact_value_is_default_ (yyn))
|
|
goto yydefault;
|
|
|
|
// Read a lookahead token.
|
|
if (yyla.empty ())
|
|
{
|
|
YYCDEBUG << "Reading a token\n";
|
|
#if YY_EXCEPTIONS
|
|
try
|
|
#endif // YY_EXCEPTIONS
|
|
{
|
|
symbol_type yylookahead (yylex (lexer));
|
|
yyla.move (yylookahead);
|
|
}
|
|
#if YY_EXCEPTIONS
|
|
catch (const syntax_error& yyexc)
|
|
{
|
|
YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
|
|
error (yyexc);
|
|
goto yyerrlab1;
|
|
}
|
|
#endif // YY_EXCEPTIONS
|
|
}
|
|
YY_SYMBOL_PRINT ("Next token is", yyla);
|
|
|
|
if (yyla.kind () == symbol_kind::S_YYerror)
|
|
{
|
|
// The scanner already issued an error message, process directly
|
|
// to error recovery. But do not keep the error token as
|
|
// lookahead, it is too special and may lead us to an endless
|
|
// loop in error recovery. */
|
|
yyla.kind_ = symbol_kind::S_YYUNDEF;
|
|
goto yyerrlab1;
|
|
}
|
|
|
|
/* If the proper action on seeing token YYLA.TYPE is to reduce or
|
|
to detect an error, take that action. */
|
|
yyn += yyla.kind ();
|
|
if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ())
|
|
{
|
|
if (!yy_lac_establish_ (yyla.kind ()))
|
|
goto yyerrlab;
|
|
goto yydefault;
|
|
}
|
|
|
|
// Reduce or error.
|
|
yyn = yytable_[yyn];
|
|
if (yyn <= 0)
|
|
{
|
|
if (yy_table_value_is_error_ (yyn))
|
|
goto yyerrlab;
|
|
if (!yy_lac_establish_ (yyla.kind ()))
|
|
goto yyerrlab;
|
|
|
|
yyn = -yyn;
|
|
goto yyreduce;
|
|
}
|
|
|
|
// Count tokens shifted since error; after three, turn off error status.
|
|
if (yyerrstatus_)
|
|
--yyerrstatus_;
|
|
|
|
// Shift the lookahead token.
|
|
yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla));
|
|
yy_lac_discard_ ("shift");
|
|
goto yynewstate;
|
|
|
|
|
|
/*-----------------------------------------------------------.
|
|
| yydefault -- do the default action for the current state. |
|
|
`-----------------------------------------------------------*/
|
|
yydefault:
|
|
yyn = yydefact_[+yystack_[0].state];
|
|
if (yyn == 0)
|
|
goto yyerrlab;
|
|
goto yyreduce;
|
|
|
|
|
|
/*-----------------------------.
|
|
| yyreduce -- do a reduction. |
|
|
`-----------------------------*/
|
|
yyreduce:
|
|
yylen = yyr2_[yyn];
|
|
{
|
|
stack_symbol_type yylhs;
|
|
yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
|
|
/* Variants are always initialized to an empty instance of the
|
|
correct type. The default '$$ = $1' action is NOT applied
|
|
when using variants. */
|
|
switch (yyr1_[yyn])
|
|
{
|
|
case symbol_kind::S_expr_function: // expr_function
|
|
case symbol_kind::S_expr_pointer: // expr_pointer
|
|
yylhs.value.emplace< ast::call > ();
|
|
break;
|
|
|
|
case symbol_kind::S_declaration: // declaration
|
|
yylhs.value.emplace< ast::decl > ();
|
|
break;
|
|
|
|
case symbol_kind::S_decl_constant: // decl_constant
|
|
yylhs.value.emplace< ast::decl_constant::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_decl_thread: // decl_thread
|
|
yylhs.value.emplace< ast::decl_thread::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_decl_usingtree: // decl_usingtree
|
|
yylhs.value.emplace< ast::decl_usingtree::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr: // expr
|
|
case symbol_kind::S_expr_or_empty: // expr_or_empty
|
|
case symbol_kind::S_expr_assign: // expr_assign
|
|
case symbol_kind::S_expr_increment: // expr_increment
|
|
case symbol_kind::S_expr_decrement: // expr_decrement
|
|
case symbol_kind::S_expr_ternary: // expr_ternary
|
|
case symbol_kind::S_expr_binary: // expr_binary
|
|
case symbol_kind::S_expr_primitive: // expr_primitive
|
|
case symbol_kind::S_expr_object: // expr_object
|
|
yylhs.value.emplace< ast::expr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_abs: // expr_abs
|
|
yylhs.value.emplace< ast::expr_abs::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_angleclamp180: // expr_angleclamp180
|
|
yylhs.value.emplace< ast::expr_angleclamp180::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoforward: // expr_anglestoforward
|
|
yylhs.value.emplace< ast::expr_anglestoforward::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoright: // expr_anglestoright
|
|
yylhs.value.emplace< ast::expr_anglestoright::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anglestoup: // expr_anglestoup
|
|
yylhs.value.emplace< ast::expr_anglestoup::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_anim: // expr_anim
|
|
yylhs.value.emplace< ast::expr_anim::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animation: // expr_animation
|
|
yylhs.value.emplace< ast::expr_animation::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_animtree: // expr_animtree
|
|
yylhs.value.emplace< ast::expr_animtree::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_arguments: // expr_arguments
|
|
case symbol_kind::S_expr_arguments_no_empty: // expr_arguments_no_empty
|
|
yylhs.value.emplace< ast::expr_arguments::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_array: // expr_array
|
|
yylhs.value.emplace< ast::expr_array::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_call: // expr_call
|
|
yylhs.value.emplace< ast::expr_call::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_complement: // expr_complement
|
|
yylhs.value.emplace< ast::expr_complement::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_empty_array: // expr_empty_array
|
|
yylhs.value.emplace< ast::expr_empty_array::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_false: // expr_false
|
|
yylhs.value.emplace< ast::expr_false::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_field: // expr_field
|
|
yylhs.value.emplace< ast::expr_field::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_float: // expr_float
|
|
yylhs.value.emplace< ast::expr_float::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_game: // expr_game
|
|
yylhs.value.emplace< ast::expr_game::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvar: // expr_getdvar
|
|
yylhs.value.emplace< ast::expr_getdvar::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcoloralpha: // expr_getdvarcoloralpha
|
|
yylhs.value.emplace< ast::expr_getdvarcoloralpha::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorblue: // expr_getdvarcolorblue
|
|
yylhs.value.emplace< ast::expr_getdvarcolorblue::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorgreen: // expr_getdvarcolorgreen
|
|
yylhs.value.emplace< ast::expr_getdvarcolorgreen::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarcolorred: // expr_getdvarcolorred
|
|
yylhs.value.emplace< ast::expr_getdvarcolorred::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarfloat: // expr_getdvarfloat
|
|
yylhs.value.emplace< ast::expr_getdvarfloat::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarint: // expr_getdvarint
|
|
yylhs.value.emplace< ast::expr_getdvarint::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getdvarvector: // expr_getdvarvector
|
|
yylhs.value.emplace< ast::expr_getdvarvector::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getfirstarraykey: // expr_getfirstarraykey
|
|
yylhs.value.emplace< ast::expr_getfirstarraykey::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_getnextarraykey: // expr_getnextarraykey
|
|
yylhs.value.emplace< ast::expr_getnextarraykey::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_gettime: // expr_gettime
|
|
yylhs.value.emplace< ast::expr_gettime::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_hash: // expr_hash
|
|
yylhs.value.emplace< ast::expr_hash::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_identifier_nosize: // expr_identifier_nosize
|
|
case symbol_kind::S_expr_identifier: // expr_identifier
|
|
yylhs.value.emplace< ast::expr_identifier::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_integer: // expr_integer
|
|
yylhs.value.emplace< ast::expr_integer::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_isdefined: // expr_isdefined
|
|
yylhs.value.emplace< ast::expr_isdefined::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_istring: // expr_istring
|
|
yylhs.value.emplace< ast::expr_istring::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_level: // expr_level
|
|
yylhs.value.emplace< ast::expr_level::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_method: // expr_method
|
|
yylhs.value.emplace< ast::expr_method::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_negate: // expr_negate
|
|
yylhs.value.emplace< ast::expr_negate::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_not: // expr_not
|
|
yylhs.value.emplace< ast::expr_not::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_parameters: // expr_parameters
|
|
yylhs.value.emplace< ast::expr_parameters::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_paren: // expr_paren
|
|
yylhs.value.emplace< ast::expr_paren::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_path: // expr_path
|
|
yylhs.value.emplace< ast::expr_path::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_reference: // expr_reference
|
|
yylhs.value.emplace< ast::expr_reference::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_self: // expr_self
|
|
yylhs.value.emplace< ast::expr_self::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_size: // expr_size
|
|
yylhs.value.emplace< ast::expr_size::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_string: // expr_string
|
|
yylhs.value.emplace< ast::expr_string::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_true: // expr_true
|
|
yylhs.value.emplace< ast::expr_true::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_undefined: // expr_undefined
|
|
yylhs.value.emplace< ast::expr_undefined::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vector: // expr_vector
|
|
yylhs.value.emplace< ast::expr_vector::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectorscale: // expr_vectorscale
|
|
yylhs.value.emplace< ast::expr_vectorscale::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_expr_vectortoangles: // expr_vectortoangles
|
|
yylhs.value.emplace< ast::expr_vectortoangles::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_include: // include
|
|
yylhs.value.emplace< ast::include::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_program: // program
|
|
yylhs.value.emplace< ast::program::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt: // stmt
|
|
case symbol_kind::S_stmt_or_dev: // stmt_or_dev
|
|
yylhs.value.emplace< ast::stmt > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_assign: // stmt_assign
|
|
yylhs.value.emplace< ast::stmt_assign::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_break: // stmt_break
|
|
yylhs.value.emplace< ast::stmt_break::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_call: // stmt_call
|
|
yylhs.value.emplace< ast::stmt_call::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_case: // stmt_case
|
|
yylhs.value.emplace< ast::stmt_case::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_continue: // stmt_continue
|
|
yylhs.value.emplace< ast::stmt_continue::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_default: // stmt_default
|
|
yylhs.value.emplace< ast::stmt_default::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dev: // stmt_dev
|
|
yylhs.value.emplace< ast::stmt_dev::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_dowhile: // stmt_dowhile
|
|
yylhs.value.emplace< ast::stmt_dowhile::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_endon: // stmt_endon
|
|
yylhs.value.emplace< ast::stmt_endon::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_expr: // stmt_expr
|
|
yylhs.value.emplace< ast::stmt_expr::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_for: // stmt_for
|
|
yylhs.value.emplace< ast::stmt_for::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_foreach: // stmt_foreach
|
|
yylhs.value.emplace< ast::stmt_foreach::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_if: // stmt_if
|
|
yylhs.value.emplace< ast::stmt_if::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_ifelse: // stmt_ifelse
|
|
yylhs.value.emplace< ast::stmt_ifelse::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_list: // stmt_list
|
|
case symbol_kind::S_stmt_or_dev_list: // stmt_or_dev_list
|
|
case symbol_kind::S_stmt_block: // stmt_block
|
|
yylhs.value.emplace< ast::stmt_list::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_notify: // stmt_notify
|
|
yylhs.value.emplace< ast::stmt_notify::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
|
|
yylhs.value.emplace< ast::stmt_prof_begin::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
|
|
yylhs.value.emplace< ast::stmt_prof_end::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_return: // stmt_return
|
|
yylhs.value.emplace< ast::stmt_return::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_switch: // stmt_switch
|
|
yylhs.value.emplace< ast::stmt_switch::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_wait: // stmt_wait
|
|
yylhs.value.emplace< ast::stmt_wait::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittill: // stmt_waittill
|
|
yylhs.value.emplace< ast::stmt_waittill::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillframeend: // stmt_waittillframeend
|
|
yylhs.value.emplace< ast::stmt_waittillframeend::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_waittillmatch: // stmt_waittillmatch
|
|
yylhs.value.emplace< ast::stmt_waittillmatch::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_stmt_while: // stmt_while
|
|
yylhs.value.emplace< ast::stmt_while::ptr > ();
|
|
break;
|
|
|
|
case symbol_kind::S_PATH: // "path"
|
|
case symbol_kind::S_IDENTIFIER: // "identifier"
|
|
case symbol_kind::S_STRING: // "string literal"
|
|
case symbol_kind::S_ISTRING: // "localized string"
|
|
case symbol_kind::S_HASH: // "hash"
|
|
case symbol_kind::S_FLOAT: // "float"
|
|
case symbol_kind::S_INTEGER: // "integer"
|
|
yylhs.value.emplace< std::string > ();
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
|
|
// Default location.
|
|
{
|
|
stack_type::slice range (yystack_, yylen);
|
|
YYLLOC_DEFAULT (yylhs.location, range, yylen);
|
|
yyerror_range[1].location = yylhs.location;
|
|
}
|
|
|
|
// Perform the reduction.
|
|
YY_REDUCE_PRINT (yyn);
|
|
#if YY_EXCEPTIONS
|
|
try
|
|
#endif // YY_EXCEPTIONS
|
|
{
|
|
switch (yyn)
|
|
{
|
|
case 2: // root: program
|
|
#line 290 "parser.ypp"
|
|
{ ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); }
|
|
#line 2335 "parser.cpp"
|
|
break;
|
|
|
|
case 3: // root: %empty
|
|
#line 291 "parser.ypp"
|
|
{ ast = std::make_unique<ast::program>(yylhs.location); }
|
|
#line 2341 "parser.cpp"
|
|
break;
|
|
|
|
case 4: // program: program inline
|
|
#line 296 "parser.ypp"
|
|
{ yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); }
|
|
#line 2347 "parser.cpp"
|
|
break;
|
|
|
|
case 5: // program: program include
|
|
#line 298 "parser.ypp"
|
|
{ yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); yylhs.value.as < ast::program::ptr > ()->includes.push_back(std::move(yystack_[0].value.as < ast::include::ptr > ())); }
|
|
#line 2353 "parser.cpp"
|
|
break;
|
|
|
|
case 6: // program: program declaration
|
|
#line 300 "parser.ypp"
|
|
{ yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); yylhs.value.as < ast::program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < ast::decl > ())); }
|
|
#line 2359 "parser.cpp"
|
|
break;
|
|
|
|
case 7: // program: inline
|
|
#line 302 "parser.ypp"
|
|
{ yylhs.value.as < ast::program::ptr > () = std::make_unique<ast::program>(yylhs.location); }
|
|
#line 2365 "parser.cpp"
|
|
break;
|
|
|
|
case 8: // program: include
|
|
#line 304 "parser.ypp"
|
|
{ yylhs.value.as < ast::program::ptr > () = std::make_unique<ast::program>(yylhs.location); yylhs.value.as < ast::program::ptr > ()->includes.push_back(std::move(yystack_[0].value.as < ast::include::ptr > ())); }
|
|
#line 2371 "parser.cpp"
|
|
break;
|
|
|
|
case 9: // program: declaration
|
|
#line 306 "parser.ypp"
|
|
{ yylhs.value.as < ast::program::ptr > () = std::make_unique<ast::program>(yylhs.location); yylhs.value.as < ast::program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < ast::decl > ())); }
|
|
#line 2377 "parser.cpp"
|
|
break;
|
|
|
|
case 10: // inline: "#inline" expr_path ";"
|
|
#line 310 "parser.ypp"
|
|
{ lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); }
|
|
#line 2383 "parser.cpp"
|
|
break;
|
|
|
|
case 11: // include: "#include" expr_path ";"
|
|
#line 315 "parser.ypp"
|
|
{ yylhs.value.as < ast::include::ptr > () = std::make_unique<ast::include>(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); }
|
|
#line 2389 "parser.cpp"
|
|
break;
|
|
|
|
case 12: // declaration: "/#"
|
|
#line 319 "parser.ypp"
|
|
{ yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique<ast::decl_dev_begin>(yylhs.location); }
|
|
#line 2395 "parser.cpp"
|
|
break;
|
|
|
|
case 13: // declaration: "#/"
|
|
#line 320 "parser.ypp"
|
|
{ yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique<ast::decl_dev_end>(yylhs.location); }
|
|
#line 2401 "parser.cpp"
|
|
break;
|
|
|
|
case 14: // declaration: decl_usingtree
|
|
#line 321 "parser.ypp"
|
|
{ yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); }
|
|
#line 2407 "parser.cpp"
|
|
break;
|
|
|
|
case 15: // declaration: decl_constant
|
|
#line 322 "parser.ypp"
|
|
{ yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); }
|
|
#line 2413 "parser.cpp"
|
|
break;
|
|
|
|
case 16: // declaration: decl_thread
|
|
#line 323 "parser.ypp"
|
|
{ yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); }
|
|
#line 2419 "parser.cpp"
|
|
break;
|
|
|
|
case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";"
|
|
#line 328 "parser.ypp"
|
|
{ lexer.ban_header(yylhs.location); yylhs.value.as < ast::decl_usingtree::ptr > () = std::make_unique<ast::decl_usingtree>(yylhs.location, std::move(yystack_[2].value.as < ast::expr_string::ptr > ())); }
|
|
#line 2425 "parser.cpp"
|
|
break;
|
|
|
|
case 18: // decl_constant: expr_identifier "=" expr ";"
|
|
#line 333 "parser.ypp"
|
|
{ yylhs.value.as < ast::decl_constant::ptr > () = std::make_unique<ast::decl_constant>(yylhs.location, std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 2431 "parser.cpp"
|
|
break;
|
|
|
|
case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block
|
|
#line 338 "parser.ypp"
|
|
{ lexer.ban_header(yylhs.location); yylhs.value.as < ast::decl_thread::ptr > () = std::make_unique<ast::decl_thread>(yylhs.location, std::move(yystack_[4].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[2].value.as < ast::expr_parameters::ptr > ()), std::move(yystack_[0].value.as < ast::stmt_list::ptr > ())); }
|
|
#line 2437 "parser.cpp"
|
|
break;
|
|
|
|
case 20: // stmt: stmt_block
|
|
#line 342 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); }
|
|
#line 2443 "parser.cpp"
|
|
break;
|
|
|
|
case 21: // stmt: stmt_call
|
|
#line 343 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); }
|
|
#line 2449 "parser.cpp"
|
|
break;
|
|
|
|
case 22: // stmt: stmt_assign
|
|
#line 344 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); }
|
|
#line 2455 "parser.cpp"
|
|
break;
|
|
|
|
case 23: // stmt: stmt_endon
|
|
#line 345 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); }
|
|
#line 2461 "parser.cpp"
|
|
break;
|
|
|
|
case 24: // stmt: stmt_notify
|
|
#line 346 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); }
|
|
#line 2467 "parser.cpp"
|
|
break;
|
|
|
|
case 25: // stmt: stmt_wait
|
|
#line 347 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); }
|
|
#line 2473 "parser.cpp"
|
|
break;
|
|
|
|
case 26: // stmt: stmt_waittill
|
|
#line 348 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); }
|
|
#line 2479 "parser.cpp"
|
|
break;
|
|
|
|
case 27: // stmt: stmt_waittillmatch
|
|
#line 349 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); }
|
|
#line 2485 "parser.cpp"
|
|
break;
|
|
|
|
case 28: // stmt: stmt_waittillframeend
|
|
#line 350 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); }
|
|
#line 2491 "parser.cpp"
|
|
break;
|
|
|
|
case 29: // stmt: stmt_if
|
|
#line 351 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); }
|
|
#line 2497 "parser.cpp"
|
|
break;
|
|
|
|
case 30: // stmt: stmt_ifelse
|
|
#line 352 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); }
|
|
#line 2503 "parser.cpp"
|
|
break;
|
|
|
|
case 31: // stmt: stmt_while
|
|
#line 353 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); }
|
|
#line 2509 "parser.cpp"
|
|
break;
|
|
|
|
case 32: // stmt: stmt_dowhile
|
|
#line 354 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); }
|
|
#line 2515 "parser.cpp"
|
|
break;
|
|
|
|
case 33: // stmt: stmt_for
|
|
#line 355 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); }
|
|
#line 2521 "parser.cpp"
|
|
break;
|
|
|
|
case 34: // stmt: stmt_foreach
|
|
#line 356 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); }
|
|
#line 2527 "parser.cpp"
|
|
break;
|
|
|
|
case 35: // stmt: stmt_switch
|
|
#line 357 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); }
|
|
#line 2533 "parser.cpp"
|
|
break;
|
|
|
|
case 36: // stmt: stmt_case
|
|
#line 358 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); }
|
|
#line 2539 "parser.cpp"
|
|
break;
|
|
|
|
case 37: // stmt: stmt_default
|
|
#line 359 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); }
|
|
#line 2545 "parser.cpp"
|
|
break;
|
|
|
|
case 38: // stmt: stmt_break
|
|
#line 360 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); }
|
|
#line 2551 "parser.cpp"
|
|
break;
|
|
|
|
case 39: // stmt: stmt_continue
|
|
#line 361 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); }
|
|
#line 2557 "parser.cpp"
|
|
break;
|
|
|
|
case 40: // stmt: stmt_return
|
|
#line 362 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); }
|
|
#line 2563 "parser.cpp"
|
|
break;
|
|
|
|
case 41: // stmt: stmt_prof_begin
|
|
#line 363 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); }
|
|
#line 2569 "parser.cpp"
|
|
break;
|
|
|
|
case 42: // stmt: stmt_prof_end
|
|
#line 364 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); }
|
|
#line 2575 "parser.cpp"
|
|
break;
|
|
|
|
case 43: // stmt_or_dev: stmt
|
|
#line 368 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); }
|
|
#line 2581 "parser.cpp"
|
|
break;
|
|
|
|
case 44: // stmt_or_dev: stmt_dev
|
|
#line 369 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); }
|
|
#line 2587 "parser.cpp"
|
|
break;
|
|
|
|
case 45: // stmt_list: stmt_list stmt
|
|
#line 374 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2593 "parser.cpp"
|
|
break;
|
|
|
|
case 46: // stmt_list: stmt
|
|
#line 376 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique<ast::stmt_list>(yylhs.location); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2599 "parser.cpp"
|
|
break;
|
|
|
|
case 47: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev
|
|
#line 381 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2605 "parser.cpp"
|
|
break;
|
|
|
|
case 48: // stmt_or_dev_list: stmt_or_dev
|
|
#line 383 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique<ast::stmt_list>(yylhs.location); yylhs.value.as < ast::stmt_list::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2611 "parser.cpp"
|
|
break;
|
|
|
|
case 49: // stmt_dev: "/#" stmt_list "#/"
|
|
#line 387 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique<ast::stmt_dev>(yylhs.location, std::move(yystack_[1].value.as < ast::stmt_list::ptr > ())); }
|
|
#line 2617 "parser.cpp"
|
|
break;
|
|
|
|
case 50: // stmt_dev: "/#" "#/"
|
|
#line 388 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique<ast::stmt_dev>(yylhs.location, std::make_unique<ast::stmt_list>(yylhs.location)); }
|
|
#line 2623 "parser.cpp"
|
|
break;
|
|
|
|
case 51: // stmt_block: "{" stmt_or_dev_list "}"
|
|
#line 392 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); }
|
|
#line 2629 "parser.cpp"
|
|
break;
|
|
|
|
case 52: // stmt_block: "{" "}"
|
|
#line 393 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique<ast::stmt_list>(yylhs.location); }
|
|
#line 2635 "parser.cpp"
|
|
break;
|
|
|
|
case 53: // stmt_expr: expr_assign
|
|
#line 398 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique<ast::stmt_expr>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2641 "parser.cpp"
|
|
break;
|
|
|
|
case 54: // stmt_expr: expr_increment
|
|
#line 400 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique<ast::stmt_expr>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2647 "parser.cpp"
|
|
break;
|
|
|
|
case 55: // stmt_expr: expr_decrement
|
|
#line 402 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique<ast::stmt_expr>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2653 "parser.cpp"
|
|
break;
|
|
|
|
case 56: // stmt_expr: %empty
|
|
#line 404 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique<ast::stmt_expr>(yylhs.location, std::make_unique<ast::node>(yylhs.location)); }
|
|
#line 2659 "parser.cpp"
|
|
break;
|
|
|
|
case 57: // stmt_call: expr_call ";"
|
|
#line 409 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_call::ptr > () = std::make_unique<ast::stmt_call>(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_call::ptr > ()))); }
|
|
#line 2665 "parser.cpp"
|
|
break;
|
|
|
|
case 58: // stmt_call: expr_method ";"
|
|
#line 411 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_call::ptr > () = std::make_unique<ast::stmt_call>(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_method::ptr > ()))); }
|
|
#line 2671 "parser.cpp"
|
|
break;
|
|
|
|
case 59: // stmt_assign: expr_assign ";"
|
|
#line 416 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique<ast::stmt_assign>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 2677 "parser.cpp"
|
|
break;
|
|
|
|
case 60: // stmt_assign: expr_increment ";"
|
|
#line 418 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique<ast::stmt_assign>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 2683 "parser.cpp"
|
|
break;
|
|
|
|
case 61: // stmt_assign: expr_decrement ";"
|
|
#line 420 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique<ast::stmt_assign>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 2689 "parser.cpp"
|
|
break;
|
|
|
|
case 62: // stmt_endon: expr_object "endon" "(" expr ")" ";"
|
|
#line 425 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_endon::ptr > () = std::make_unique<ast::stmt_endon>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ())); }
|
|
#line 2695 "parser.cpp"
|
|
break;
|
|
|
|
case 63: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";"
|
|
#line 430 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_notify::ptr > () = std::make_unique<ast::stmt_notify>(yylhs.location, std::move(yystack_[7].value.as < ast::expr > ()), std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); }
|
|
#line 2701 "parser.cpp"
|
|
break;
|
|
|
|
case 64: // stmt_notify: expr_object "notify" "(" expr ")" ";"
|
|
#line 432 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_notify::ptr > () = std::make_unique<ast::stmt_notify>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::make_unique<ast::expr_arguments>(yylhs.location)); }
|
|
#line 2707 "parser.cpp"
|
|
break;
|
|
|
|
case 65: // stmt_wait: "wait" expr ";"
|
|
#line 437 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique<ast::stmt_wait>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 2713 "parser.cpp"
|
|
break;
|
|
|
|
case 66: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";"
|
|
#line 442 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_waittill::ptr > () = std::make_unique<ast::stmt_waittill>(yylhs.location, std::move(yystack_[7].value.as < ast::expr > ()), std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); }
|
|
#line 2719 "parser.cpp"
|
|
break;
|
|
|
|
case 67: // stmt_waittill: expr_object "waittill" "(" expr ")" ";"
|
|
#line 444 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_waittill::ptr > () = std::make_unique<ast::stmt_waittill>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::make_unique<ast::expr_arguments>(yylhs.location)); }
|
|
#line 2725 "parser.cpp"
|
|
break;
|
|
|
|
case 68: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";"
|
|
#line 449 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_waittillmatch::ptr > () = std::make_unique<ast::stmt_waittillmatch>(yylhs.location, std::move(yystack_[7].value.as < ast::expr > ()), std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); }
|
|
#line 2731 "parser.cpp"
|
|
break;
|
|
|
|
case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";"
|
|
#line 451 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_waittillmatch::ptr > () = std::make_unique<ast::stmt_waittillmatch>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::make_unique<ast::expr_arguments>(yylhs.location)); }
|
|
#line 2737 "parser.cpp"
|
|
break;
|
|
|
|
case 70: // stmt_waittillframeend: "waittillframeend" ";"
|
|
#line 456 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique<ast::stmt_waittillframeend>(yylhs.location); }
|
|
#line 2743 "parser.cpp"
|
|
break;
|
|
|
|
case 71: // stmt_if: "if" "(" expr ")" stmt
|
|
#line 461 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_if::ptr > () = std::make_unique<ast::stmt_if>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2749 "parser.cpp"
|
|
break;
|
|
|
|
case 72: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt
|
|
#line 466 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_ifelse::ptr > () = std::make_unique<ast::stmt_ifelse>(yylhs.location, std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::stmt > ()), std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2755 "parser.cpp"
|
|
break;
|
|
|
|
case 73: // stmt_while: "while" "(" expr ")" stmt
|
|
#line 471 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_while::ptr > () = std::make_unique<ast::stmt_while>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2761 "parser.cpp"
|
|
break;
|
|
|
|
case 74: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";"
|
|
#line 476 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_dowhile::ptr > () = std::make_unique<ast::stmt_dowhile>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[5].value.as < ast::stmt > ())); }
|
|
#line 2767 "parser.cpp"
|
|
break;
|
|
|
|
case 75: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt
|
|
#line 481 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_for::ptr > () = std::make_unique<ast::stmt_for>(yylhs.location, ast::stmt(std::move(yystack_[6].value.as < ast::stmt_expr::ptr > ())), std::move(yystack_[4].value.as < ast::expr > ()), ast::stmt(std::move(yystack_[2].value.as < ast::stmt_expr::ptr > ())), std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2773 "parser.cpp"
|
|
break;
|
|
|
|
case 76: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt
|
|
#line 486 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_foreach::ptr > () = std::make_unique<ast::stmt_foreach>(yylhs.location, ast::expr(std::move(yystack_[4].value.as < ast::expr_identifier::ptr > ())), std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2779 "parser.cpp"
|
|
break;
|
|
|
|
case 77: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt
|
|
#line 488 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_foreach::ptr > () = std::make_unique<ast::stmt_foreach>(yylhs.location, ast::expr(std::move(yystack_[6].value.as < ast::expr_identifier::ptr > ())), ast::expr(std::move(yystack_[4].value.as < ast::expr_identifier::ptr > ())), std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt > ())); }
|
|
#line 2785 "parser.cpp"
|
|
break;
|
|
|
|
case 78: // stmt_switch: "switch" "(" expr ")" stmt_block
|
|
#line 493 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_switch::ptr > () = std::make_unique<ast::stmt_switch>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::stmt_list::ptr > ())); }
|
|
#line 2791 "parser.cpp"
|
|
break;
|
|
|
|
case 79: // stmt_case: "case" expr_integer ":"
|
|
#line 498 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_case::ptr > () = std::make_unique<ast::stmt_case>(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_integer::ptr > ())), std::make_unique<ast::stmt_list>(yylhs.location)); }
|
|
#line 2797 "parser.cpp"
|
|
break;
|
|
|
|
case 80: // stmt_case: "case" expr_string ":"
|
|
#line 500 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_case::ptr > () = std::make_unique<ast::stmt_case>(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_string::ptr > ())), std::make_unique<ast::stmt_list>(yylhs.location)); }
|
|
#line 2803 "parser.cpp"
|
|
break;
|
|
|
|
case 81: // stmt_default: "default" ":"
|
|
#line 505 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique<ast::stmt_default>(yylhs.location, std::make_unique<ast::stmt_list>(yylhs.location)); }
|
|
#line 2809 "parser.cpp"
|
|
break;
|
|
|
|
case 82: // stmt_break: "break" ";"
|
|
#line 510 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique<ast::stmt_break>(yylhs.location); }
|
|
#line 2815 "parser.cpp"
|
|
break;
|
|
|
|
case 83: // stmt_continue: "continue" ";"
|
|
#line 515 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique<ast::stmt_continue>(yylhs.location); }
|
|
#line 2821 "parser.cpp"
|
|
break;
|
|
|
|
case 84: // stmt_return: "return" expr ";"
|
|
#line 520 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique<ast::stmt_return>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 2827 "parser.cpp"
|
|
break;
|
|
|
|
case 85: // stmt_return: "return" ";"
|
|
#line 522 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique<ast::stmt_return>(yylhs.location, std::make_unique<ast::node>(yylhs.location)); }
|
|
#line 2833 "parser.cpp"
|
|
break;
|
|
|
|
case 86: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";"
|
|
#line 527 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_prof_begin::ptr > () = std::make_unique<ast::stmt_prof_begin>(yylhs.location, std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); }
|
|
#line 2839 "parser.cpp"
|
|
break;
|
|
|
|
case 87: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";"
|
|
#line 532 "parser.ypp"
|
|
{ yylhs.value.as < ast::stmt_prof_end::ptr > () = std::make_unique<ast::stmt_prof_end>(yylhs.location, std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ())); }
|
|
#line 2845 "parser.cpp"
|
|
break;
|
|
|
|
case 88: // expr: expr_ternary
|
|
#line 536 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); }
|
|
#line 2851 "parser.cpp"
|
|
break;
|
|
|
|
case 89: // expr: expr_binary
|
|
#line 537 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); }
|
|
#line 2857 "parser.cpp"
|
|
break;
|
|
|
|
case 90: // expr: expr_primitive
|
|
#line 538 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); }
|
|
#line 2863 "parser.cpp"
|
|
break;
|
|
|
|
case 91: // expr_or_empty: expr
|
|
#line 542 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); }
|
|
#line 2869 "parser.cpp"
|
|
break;
|
|
|
|
case 92: // expr_or_empty: %empty
|
|
#line 543 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::node>(yylhs.location); }
|
|
#line 2875 "parser.cpp"
|
|
break;
|
|
|
|
case 93: // expr_assign: expr_object "=" expr
|
|
#line 548 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_equal>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2881 "parser.cpp"
|
|
break;
|
|
|
|
case 94: // expr_assign: expr_object "|=" expr
|
|
#line 550 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_bitwise_or>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2887 "parser.cpp"
|
|
break;
|
|
|
|
case 95: // expr_assign: expr_object "&=" expr
|
|
#line 552 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_bitwise_and>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2893 "parser.cpp"
|
|
break;
|
|
|
|
case 96: // expr_assign: expr_object "^=" expr
|
|
#line 554 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_bitwise_exor>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2899 "parser.cpp"
|
|
break;
|
|
|
|
case 97: // expr_assign: expr_object "<<=" expr
|
|
#line 556 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_shift_left>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()),std::move( yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2905 "parser.cpp"
|
|
break;
|
|
|
|
case 98: // expr_assign: expr_object ">>=" expr
|
|
#line 558 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_shift_right>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2911 "parser.cpp"
|
|
break;
|
|
|
|
case 99: // expr_assign: expr_object "+=" expr
|
|
#line 560 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_add>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2917 "parser.cpp"
|
|
break;
|
|
|
|
case 100: // expr_assign: expr_object "-=" expr
|
|
#line 562 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_sub>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2923 "parser.cpp"
|
|
break;
|
|
|
|
case 101: // expr_assign: expr_object "*=" expr
|
|
#line 564 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_mul>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2929 "parser.cpp"
|
|
break;
|
|
|
|
case 102: // expr_assign: expr_object "/=" expr
|
|
#line 566 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_div>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2935 "parser.cpp"
|
|
break;
|
|
|
|
case 103: // expr_assign: expr_object "%=" expr
|
|
#line 568 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_assign_mod>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2941 "parser.cpp"
|
|
break;
|
|
|
|
case 104: // expr_increment: "++" expr_object
|
|
#line 573 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_increment>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); }
|
|
#line 2947 "parser.cpp"
|
|
break;
|
|
|
|
case 105: // expr_increment: expr_object "++"
|
|
#line 575 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_increment>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); }
|
|
#line 2953 "parser.cpp"
|
|
break;
|
|
|
|
case 106: // expr_decrement: "--" expr_object
|
|
#line 580 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_decrement>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); }
|
|
#line 2959 "parser.cpp"
|
|
break;
|
|
|
|
case 107: // expr_decrement: expr_object "--"
|
|
#line 582 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_decrement>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); }
|
|
#line 2965 "parser.cpp"
|
|
break;
|
|
|
|
case 108: // expr_ternary: expr "?" expr ":" expr
|
|
#line 587 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_ternary>(yylhs.location, std::move(yystack_[4].value.as < ast::expr > ()), std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2971 "parser.cpp"
|
|
break;
|
|
|
|
case 109: // expr_binary: expr "||" expr
|
|
#line 592 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_or>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2977 "parser.cpp"
|
|
break;
|
|
|
|
case 110: // expr_binary: expr "&&" expr
|
|
#line 594 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_and>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2983 "parser.cpp"
|
|
break;
|
|
|
|
case 111: // expr_binary: expr "==" expr
|
|
#line 596 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_equality>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2989 "parser.cpp"
|
|
break;
|
|
|
|
case 112: // expr_binary: expr "!=" expr
|
|
#line 598 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_inequality>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 2995 "parser.cpp"
|
|
break;
|
|
|
|
case 113: // expr_binary: expr "<=" expr
|
|
#line 600 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_less_equal>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3001 "parser.cpp"
|
|
break;
|
|
|
|
case 114: // expr_binary: expr ">=" expr
|
|
#line 602 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_greater_equal>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3007 "parser.cpp"
|
|
break;
|
|
|
|
case 115: // expr_binary: expr "<" expr
|
|
#line 604 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_less>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3013 "parser.cpp"
|
|
break;
|
|
|
|
case 116: // expr_binary: expr ">" expr
|
|
#line 606 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_greater>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3019 "parser.cpp"
|
|
break;
|
|
|
|
case 117: // expr_binary: expr "|" expr
|
|
#line 608 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_bitwise_or>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3025 "parser.cpp"
|
|
break;
|
|
|
|
case 118: // expr_binary: expr "&" expr
|
|
#line 610 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_bitwise_and>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3031 "parser.cpp"
|
|
break;
|
|
|
|
case 119: // expr_binary: expr "^" expr
|
|
#line 612 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_bitwise_exor>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3037 "parser.cpp"
|
|
break;
|
|
|
|
case 120: // expr_binary: expr "<<" expr
|
|
#line 614 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_shift_left>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3043 "parser.cpp"
|
|
break;
|
|
|
|
case 121: // expr_binary: expr ">>" expr
|
|
#line 616 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_shift_right>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3049 "parser.cpp"
|
|
break;
|
|
|
|
case 122: // expr_binary: expr "+" expr
|
|
#line 618 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_add>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3055 "parser.cpp"
|
|
break;
|
|
|
|
case 123: // expr_binary: expr "-" expr
|
|
#line 620 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_sub>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3061 "parser.cpp"
|
|
break;
|
|
|
|
case 124: // expr_binary: expr "*" expr
|
|
#line 622 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_mul>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3067 "parser.cpp"
|
|
break;
|
|
|
|
case 125: // expr_binary: expr "/" expr
|
|
#line 624 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_div>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3073 "parser.cpp"
|
|
break;
|
|
|
|
case 126: // expr_binary: expr "%" expr
|
|
#line 626 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::make_unique<ast::expr_mod>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3079 "parser.cpp"
|
|
break;
|
|
|
|
case 127: // expr_primitive: expr_complement
|
|
#line 630 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); }
|
|
#line 3085 "parser.cpp"
|
|
break;
|
|
|
|
case 128: // expr_primitive: expr_negate
|
|
#line 631 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); }
|
|
#line 3091 "parser.cpp"
|
|
break;
|
|
|
|
case 129: // expr_primitive: expr_not
|
|
#line 632 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); }
|
|
#line 3097 "parser.cpp"
|
|
break;
|
|
|
|
case 130: // expr_primitive: expr_call
|
|
#line 633 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); }
|
|
#line 3103 "parser.cpp"
|
|
break;
|
|
|
|
case 131: // expr_primitive: expr_method
|
|
#line 634 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); }
|
|
#line 3109 "parser.cpp"
|
|
break;
|
|
|
|
case 132: // expr_primitive: expr_getnextarraykey
|
|
#line 635 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getnextarraykey::ptr > ()); }
|
|
#line 3115 "parser.cpp"
|
|
break;
|
|
|
|
case 133: // expr_primitive: expr_getfirstarraykey
|
|
#line 636 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getfirstarraykey::ptr > ()); }
|
|
#line 3121 "parser.cpp"
|
|
break;
|
|
|
|
case 134: // expr_primitive: expr_getdvarcoloralpha
|
|
#line 637 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcoloralpha::ptr > ()); }
|
|
#line 3127 "parser.cpp"
|
|
break;
|
|
|
|
case 135: // expr_primitive: expr_getdvarcolorblue
|
|
#line 638 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorblue::ptr > ()); }
|
|
#line 3133 "parser.cpp"
|
|
break;
|
|
|
|
case 136: // expr_primitive: expr_getdvarcolorgreen
|
|
#line 639 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorgreen::ptr > ()); }
|
|
#line 3139 "parser.cpp"
|
|
break;
|
|
|
|
case 137: // expr_primitive: expr_getdvarcolorred
|
|
#line 640 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorred::ptr > ()); }
|
|
#line 3145 "parser.cpp"
|
|
break;
|
|
|
|
case 138: // expr_primitive: expr_getdvarvector
|
|
#line 641 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarvector::ptr > ()); }
|
|
#line 3151 "parser.cpp"
|
|
break;
|
|
|
|
case 139: // expr_primitive: expr_getdvarfloat
|
|
#line 642 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarfloat::ptr > ()); }
|
|
#line 3157 "parser.cpp"
|
|
break;
|
|
|
|
case 140: // expr_primitive: expr_getdvarint
|
|
#line 643 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarint::ptr > ()); }
|
|
#line 3163 "parser.cpp"
|
|
break;
|
|
|
|
case 141: // expr_primitive: expr_getdvar
|
|
#line 644 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvar::ptr > ()); }
|
|
#line 3169 "parser.cpp"
|
|
break;
|
|
|
|
case 142: // expr_primitive: expr_gettime
|
|
#line 645 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_gettime::ptr > ()); }
|
|
#line 3175 "parser.cpp"
|
|
break;
|
|
|
|
case 143: // expr_primitive: expr_abs
|
|
#line 646 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_abs::ptr > ()); }
|
|
#line 3181 "parser.cpp"
|
|
break;
|
|
|
|
case 144: // expr_primitive: expr_vectortoangles
|
|
#line 647 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectortoangles::ptr > ()); }
|
|
#line 3187 "parser.cpp"
|
|
break;
|
|
|
|
case 145: // expr_primitive: expr_angleclamp180
|
|
#line 648 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_angleclamp180::ptr > ()); }
|
|
#line 3193 "parser.cpp"
|
|
break;
|
|
|
|
case 146: // expr_primitive: expr_anglestoforward
|
|
#line 649 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoforward::ptr > ()); }
|
|
#line 3199 "parser.cpp"
|
|
break;
|
|
|
|
case 147: // expr_primitive: expr_anglestoright
|
|
#line 650 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoright::ptr > ()); }
|
|
#line 3205 "parser.cpp"
|
|
break;
|
|
|
|
case 148: // expr_primitive: expr_anglestoup
|
|
#line 651 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoup::ptr > ()); }
|
|
#line 3211 "parser.cpp"
|
|
break;
|
|
|
|
case 149: // expr_primitive: expr_vectorscale
|
|
#line 652 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectorscale::ptr > ()); }
|
|
#line 3217 "parser.cpp"
|
|
break;
|
|
|
|
case 150: // expr_primitive: expr_isdefined
|
|
#line 653 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); }
|
|
#line 3223 "parser.cpp"
|
|
break;
|
|
|
|
case 151: // expr_primitive: expr_reference
|
|
#line 654 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); }
|
|
#line 3229 "parser.cpp"
|
|
break;
|
|
|
|
case 152: // expr_primitive: expr_array
|
|
#line 655 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); }
|
|
#line 3235 "parser.cpp"
|
|
break;
|
|
|
|
case 153: // expr_primitive: expr_field
|
|
#line 656 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); }
|
|
#line 3241 "parser.cpp"
|
|
break;
|
|
|
|
case 154: // expr_primitive: expr_size
|
|
#line 657 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); }
|
|
#line 3247 "parser.cpp"
|
|
break;
|
|
|
|
case 155: // expr_primitive: expr_paren
|
|
#line 658 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); }
|
|
#line 3253 "parser.cpp"
|
|
break;
|
|
|
|
case 156: // expr_primitive: expr_empty_array
|
|
#line 659 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); }
|
|
#line 3259 "parser.cpp"
|
|
break;
|
|
|
|
case 157: // expr_primitive: expr_undefined
|
|
#line 660 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); }
|
|
#line 3265 "parser.cpp"
|
|
break;
|
|
|
|
case 158: // expr_primitive: expr_game
|
|
#line 661 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); }
|
|
#line 3271 "parser.cpp"
|
|
break;
|
|
|
|
case 159: // expr_primitive: expr_self
|
|
#line 662 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); }
|
|
#line 3277 "parser.cpp"
|
|
break;
|
|
|
|
case 160: // expr_primitive: expr_anim
|
|
#line 663 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); }
|
|
#line 3283 "parser.cpp"
|
|
break;
|
|
|
|
case 161: // expr_primitive: expr_level
|
|
#line 664 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); }
|
|
#line 3289 "parser.cpp"
|
|
break;
|
|
|
|
case 162: // expr_primitive: expr_animation
|
|
#line 665 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); }
|
|
#line 3295 "parser.cpp"
|
|
break;
|
|
|
|
case 163: // expr_primitive: expr_animtree
|
|
#line 666 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); }
|
|
#line 3301 "parser.cpp"
|
|
break;
|
|
|
|
case 164: // expr_primitive: expr_identifier
|
|
#line 667 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); }
|
|
#line 3307 "parser.cpp"
|
|
break;
|
|
|
|
case 165: // expr_primitive: expr_istring
|
|
#line 668 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); }
|
|
#line 3313 "parser.cpp"
|
|
break;
|
|
|
|
case 166: // expr_primitive: expr_string
|
|
#line 669 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); }
|
|
#line 3319 "parser.cpp"
|
|
break;
|
|
|
|
case 167: // expr_primitive: expr_vector
|
|
#line 670 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); }
|
|
#line 3325 "parser.cpp"
|
|
break;
|
|
|
|
case 168: // expr_primitive: expr_hash
|
|
#line 671 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_hash::ptr > ()); }
|
|
#line 3331 "parser.cpp"
|
|
break;
|
|
|
|
case 169: // expr_primitive: expr_float
|
|
#line 672 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); }
|
|
#line 3337 "parser.cpp"
|
|
break;
|
|
|
|
case 170: // expr_primitive: expr_integer
|
|
#line 673 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); }
|
|
#line 3343 "parser.cpp"
|
|
break;
|
|
|
|
case 171: // expr_primitive: expr_false
|
|
#line 674 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); }
|
|
#line 3349 "parser.cpp"
|
|
break;
|
|
|
|
case 172: // expr_primitive: expr_true
|
|
#line 675 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); }
|
|
#line 3355 "parser.cpp"
|
|
break;
|
|
|
|
case 173: // expr_complement: "~" expr
|
|
#line 680 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique<ast::expr_complement>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3361 "parser.cpp"
|
|
break;
|
|
|
|
case 174: // expr_negate: "-" expr_identifier
|
|
#line 685 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique<ast::expr_negate>(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); }
|
|
#line 3367 "parser.cpp"
|
|
break;
|
|
|
|
case 175: // expr_negate: "-" expr_paren
|
|
#line 687 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique<ast::expr_negate>(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); }
|
|
#line 3373 "parser.cpp"
|
|
break;
|
|
|
|
case 176: // expr_negate: "-" expr_array
|
|
#line 689 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique<ast::expr_negate>(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); }
|
|
#line 3379 "parser.cpp"
|
|
break;
|
|
|
|
case 177: // expr_negate: "-" expr_field
|
|
#line 691 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique<ast::expr_negate>(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); }
|
|
#line 3385 "parser.cpp"
|
|
break;
|
|
|
|
case 178: // expr_not: "!" expr
|
|
#line 696 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_not::ptr > () = std::make_unique<ast::expr_not>(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3391 "parser.cpp"
|
|
break;
|
|
|
|
case 179: // expr_call: expr_function
|
|
#line 700 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_call::ptr > () = std::make_unique<ast::expr_call>(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); }
|
|
#line 3397 "parser.cpp"
|
|
break;
|
|
|
|
case 180: // expr_call: expr_pointer
|
|
#line 701 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_call::ptr > () = std::make_unique<ast::expr_call>(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); }
|
|
#line 3403 "parser.cpp"
|
|
break;
|
|
|
|
case 181: // expr_method: expr_object expr_function
|
|
#line 704 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_method::ptr > () = std::make_unique<ast::expr_method>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); }
|
|
#line 3409 "parser.cpp"
|
|
break;
|
|
|
|
case 182: // expr_method: expr_object expr_pointer
|
|
#line 705 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_method::ptr > () = std::make_unique<ast::expr_method>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); }
|
|
#line 3415 "parser.cpp"
|
|
break;
|
|
|
|
case 183: // expr_function: expr_identifier "(" expr_arguments ")"
|
|
#line 710 "parser.ypp"
|
|
{ yylhs.value.as < ast::call > ().as_function = std::make_unique<ast::expr_function>(yylhs.location, std::make_unique<ast::expr_path>(yylhs.location), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::normal); }
|
|
#line 3421 "parser.cpp"
|
|
break;
|
|
|
|
case 184: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")"
|
|
#line 712 "parser.ypp"
|
|
{ yylhs.value.as < ast::call > ().as_function = std::make_unique<ast::expr_function>(yylhs.location, std::move(yystack_[5].value.as < ast::expr_path::ptr > ()), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::normal); }
|
|
#line 3427 "parser.cpp"
|
|
break;
|
|
|
|
case 185: // expr_function: "thread" expr_identifier "(" expr_arguments ")"
|
|
#line 714 "parser.ypp"
|
|
{ yylhs.value.as < ast::call > ().as_function = std::make_unique<ast::expr_function>(yylhs.location, std::make_unique<ast::expr_path>(yylhs.location), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); }
|
|
#line 3433 "parser.cpp"
|
|
break;
|
|
|
|
case 186: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")"
|
|
#line 716 "parser.ypp"
|
|
{ yylhs.value.as < ast::call > ().as_function = std::make_unique<ast::expr_function>(yylhs.location, std::move(yystack_[5].value.as < ast::expr_path::ptr > ()), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); }
|
|
#line 3439 "parser.cpp"
|
|
break;
|
|
|
|
case 187: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")"
|
|
#line 721 "parser.ypp"
|
|
{ yylhs.value.as < ast::call > ().as_pointer = std::make_unique<ast::expr_pointer>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::normal); }
|
|
#line 3445 "parser.cpp"
|
|
break;
|
|
|
|
case 188: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")"
|
|
#line 723 "parser.ypp"
|
|
{ yylhs.value.as < ast::call > ().as_pointer = std::make_unique<ast::expr_pointer>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); }
|
|
#line 3451 "parser.cpp"
|
|
break;
|
|
|
|
case 189: // expr_parameters: expr_parameters "," expr_identifier
|
|
#line 728 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_parameters::ptr > () = std::move(yystack_[2].value.as < ast::expr_parameters::ptr > ()); yylhs.value.as < ast::expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); }
|
|
#line 3457 "parser.cpp"
|
|
break;
|
|
|
|
case 190: // expr_parameters: expr_identifier
|
|
#line 730 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique<ast::expr_parameters>(yylhs.location); yylhs.value.as < ast::expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); }
|
|
#line 3463 "parser.cpp"
|
|
break;
|
|
|
|
case 191: // expr_parameters: %empty
|
|
#line 732 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique<ast::expr_parameters>(yylhs.location); }
|
|
#line 3469 "parser.cpp"
|
|
break;
|
|
|
|
case 192: // expr_arguments: expr_arguments_no_empty
|
|
#line 737 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); }
|
|
#line 3475 "parser.cpp"
|
|
break;
|
|
|
|
case 193: // expr_arguments: %empty
|
|
#line 739 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique<ast::expr_arguments>(yylhs.location); }
|
|
#line 3481 "parser.cpp"
|
|
break;
|
|
|
|
case 194: // expr_arguments_no_empty: expr_arguments "," expr
|
|
#line 744 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[2].value.as < ast::expr_arguments::ptr > ()); yylhs.value.as < ast::expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3487 "parser.cpp"
|
|
break;
|
|
|
|
case 195: // expr_arguments_no_empty: expr
|
|
#line 746 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique<ast::expr_arguments>(yylhs.location); yylhs.value.as < ast::expr_arguments::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr > ())); }
|
|
#line 3493 "parser.cpp"
|
|
break;
|
|
|
|
case 196: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")"
|
|
#line 751 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getnextarraykey::ptr > () = std::make_unique<ast::expr_getnextarraykey>(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3499 "parser.cpp"
|
|
break;
|
|
|
|
case 197: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")"
|
|
#line 756 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getfirstarraykey::ptr > () = std::make_unique<ast::expr_getfirstarraykey>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3505 "parser.cpp"
|
|
break;
|
|
|
|
case 198: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")"
|
|
#line 761 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarcoloralpha::ptr > () = std::make_unique<ast::expr_getdvarcoloralpha>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3511 "parser.cpp"
|
|
break;
|
|
|
|
case 199: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")"
|
|
#line 766 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarcolorblue::ptr > () = std::make_unique<ast::expr_getdvarcolorblue>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3517 "parser.cpp"
|
|
break;
|
|
|
|
case 200: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")"
|
|
#line 771 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarcolorgreen::ptr > () = std::make_unique<ast::expr_getdvarcolorgreen>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3523 "parser.cpp"
|
|
break;
|
|
|
|
case 201: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")"
|
|
#line 776 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarcolorred::ptr > () = std::make_unique<ast::expr_getdvarcolorred>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3529 "parser.cpp"
|
|
break;
|
|
|
|
case 202: // expr_getdvarvector: "getdvarvector" "(" expr ")"
|
|
#line 781 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarvector::ptr > () = std::make_unique<ast::expr_getdvarvector>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3535 "parser.cpp"
|
|
break;
|
|
|
|
case 203: // expr_getdvarfloat: "getdvarfloat" "(" expr ")"
|
|
#line 786 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarfloat::ptr > () = std::make_unique<ast::expr_getdvarfloat>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3541 "parser.cpp"
|
|
break;
|
|
|
|
case 204: // expr_getdvarint: "getdvarint" "(" expr ")"
|
|
#line 791 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvarint::ptr > () = std::make_unique<ast::expr_getdvarint>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3547 "parser.cpp"
|
|
break;
|
|
|
|
case 205: // expr_getdvar: "getdvar" "(" expr ")"
|
|
#line 796 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_getdvar::ptr > () = std::make_unique<ast::expr_getdvar>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3553 "parser.cpp"
|
|
break;
|
|
|
|
case 206: // expr_gettime: "gettime" "(" ")"
|
|
#line 801 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_gettime::ptr > () = std::make_unique<ast::expr_gettime>(yylhs.location); }
|
|
#line 3559 "parser.cpp"
|
|
break;
|
|
|
|
case 207: // expr_abs: "abs" "(" expr ")"
|
|
#line 806 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_abs::ptr > () = std::make_unique<ast::expr_abs>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3565 "parser.cpp"
|
|
break;
|
|
|
|
case 208: // expr_vectortoangles: "vectortoangles" "(" expr ")"
|
|
#line 811 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_vectortoangles::ptr > () = std::make_unique<ast::expr_vectortoangles>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3571 "parser.cpp"
|
|
break;
|
|
|
|
case 209: // expr_angleclamp180: "angleclamp180" "(" expr ")"
|
|
#line 816 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_angleclamp180::ptr > () = std::make_unique<ast::expr_angleclamp180>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3577 "parser.cpp"
|
|
break;
|
|
|
|
case 210: // expr_anglestoforward: "anglestoforward" "(" expr ")"
|
|
#line 821 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_anglestoforward::ptr > () = std::make_unique<ast::expr_anglestoforward>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3583 "parser.cpp"
|
|
break;
|
|
|
|
case 211: // expr_anglestoright: "anglestoright" "(" expr ")"
|
|
#line 826 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_anglestoright::ptr > () = std::make_unique<ast::expr_anglestoright>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3589 "parser.cpp"
|
|
break;
|
|
|
|
case 212: // expr_anglestoup: "anglestoup" "(" expr ")"
|
|
#line 831 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_anglestoup::ptr > () = std::make_unique<ast::expr_anglestoup>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3595 "parser.cpp"
|
|
break;
|
|
|
|
case 213: // expr_vectorscale: "vectorscale" "(" expr "," expr ")"
|
|
#line 836 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_vectorscale::ptr > () = std::make_unique<ast::expr_vectorscale>(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3601 "parser.cpp"
|
|
break;
|
|
|
|
case 214: // expr_isdefined: "isdefined" "(" expr ")"
|
|
#line 841 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique<ast::expr_isdefined>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3607 "parser.cpp"
|
|
break;
|
|
|
|
case 215: // expr_reference: "::" expr_identifier
|
|
#line 846 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_reference::ptr > () = std::make_unique<ast::expr_reference>(yylhs.location, std::make_unique<ast::expr_path>(yylhs.location), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); }
|
|
#line 3613 "parser.cpp"
|
|
break;
|
|
|
|
case 216: // expr_reference: expr_path "::" expr_identifier
|
|
#line 848 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_reference::ptr > () = std::make_unique<ast::expr_reference>(yylhs.location, std::move(yystack_[2].value.as < ast::expr_path::ptr > ()), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); }
|
|
#line 3619 "parser.cpp"
|
|
break;
|
|
|
|
case 217: // expr_array: expr_object "[" expr "]"
|
|
#line 853 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3625 "parser.cpp"
|
|
break;
|
|
|
|
case 218: // expr_array: expr_getdvarvector "[" expr "]"
|
|
#line 855 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_getdvarvector::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3631 "parser.cpp"
|
|
break;
|
|
|
|
case 219: // expr_array: expr_vectortoangles "[" expr "]"
|
|
#line 857 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectortoangles::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3637 "parser.cpp"
|
|
break;
|
|
|
|
case 220: // expr_array: expr_angleclamp180 "[" expr "]"
|
|
#line 859 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_angleclamp180::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3643 "parser.cpp"
|
|
break;
|
|
|
|
case 221: // expr_array: expr_anglestoforward "[" expr "]"
|
|
#line 861 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoforward::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3649 "parser.cpp"
|
|
break;
|
|
|
|
case 222: // expr_array: expr_anglestoright "[" expr "]"
|
|
#line 863 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoright::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3655 "parser.cpp"
|
|
break;
|
|
|
|
case 223: // expr_array: expr_anglestoup "[" expr "]"
|
|
#line 865 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoup::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3661 "parser.cpp"
|
|
break;
|
|
|
|
case 224: // expr_array: expr_vectorscale "[" expr "]"
|
|
#line 867 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_array::ptr > () = std::make_unique<ast::expr_array>(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectorscale::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3667 "parser.cpp"
|
|
break;
|
|
|
|
case 225: // expr_field: expr_object "." expr_identifier_nosize
|
|
#line 872 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_field::ptr > () = std::make_unique<ast::expr_field>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); }
|
|
#line 3673 "parser.cpp"
|
|
break;
|
|
|
|
case 226: // expr_size: expr_object "." "size"
|
|
#line 877 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_size::ptr > () = std::make_unique<ast::expr_size>(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); }
|
|
#line 3679 "parser.cpp"
|
|
break;
|
|
|
|
case 227: // expr_paren: "(" expr ")"
|
|
#line 882 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique<ast::expr_paren>(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3685 "parser.cpp"
|
|
break;
|
|
|
|
case 228: // expr_object: expr_call
|
|
#line 886 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); }
|
|
#line 3691 "parser.cpp"
|
|
break;
|
|
|
|
case 229: // expr_object: expr_method
|
|
#line 887 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); }
|
|
#line 3697 "parser.cpp"
|
|
break;
|
|
|
|
case 230: // expr_object: expr_array
|
|
#line 888 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); }
|
|
#line 3703 "parser.cpp"
|
|
break;
|
|
|
|
case 231: // expr_object: expr_field
|
|
#line 889 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); }
|
|
#line 3709 "parser.cpp"
|
|
break;
|
|
|
|
case 232: // expr_object: expr_game
|
|
#line 890 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); }
|
|
#line 3715 "parser.cpp"
|
|
break;
|
|
|
|
case 233: // expr_object: expr_self
|
|
#line 891 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); }
|
|
#line 3721 "parser.cpp"
|
|
break;
|
|
|
|
case 234: // expr_object: expr_anim
|
|
#line 892 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); }
|
|
#line 3727 "parser.cpp"
|
|
break;
|
|
|
|
case 235: // expr_object: expr_level
|
|
#line 893 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); }
|
|
#line 3733 "parser.cpp"
|
|
break;
|
|
|
|
case 236: // expr_object: expr_identifier
|
|
#line 894 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); }
|
|
#line 3739 "parser.cpp"
|
|
break;
|
|
|
|
case 237: // expr_empty_array: "[" "]"
|
|
#line 899 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique<ast::expr_empty_array>(yylhs.location); }
|
|
#line 3745 "parser.cpp"
|
|
break;
|
|
|
|
case 238: // expr_undefined: "undefined"
|
|
#line 904 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique<ast::expr_undefined>(yylhs.location); }
|
|
#line 3751 "parser.cpp"
|
|
break;
|
|
|
|
case 239: // expr_game: "game"
|
|
#line 909 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_game::ptr > () = std::make_unique<ast::expr_game>(yylhs.location); }
|
|
#line 3757 "parser.cpp"
|
|
break;
|
|
|
|
case 240: // expr_self: "self"
|
|
#line 914 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_self::ptr > () = std::make_unique<ast::expr_self>(yylhs.location); }
|
|
#line 3763 "parser.cpp"
|
|
break;
|
|
|
|
case 241: // expr_anim: "anim"
|
|
#line 919 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique<ast::expr_anim>(yylhs.location); }
|
|
#line 3769 "parser.cpp"
|
|
break;
|
|
|
|
case 242: // expr_level: "level"
|
|
#line 924 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_level::ptr > () = std::make_unique<ast::expr_level>(yylhs.location); }
|
|
#line 3775 "parser.cpp"
|
|
break;
|
|
|
|
case 243: // expr_animation: "%" "identifier"
|
|
#line 929 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique<ast::expr_animation>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3781 "parser.cpp"
|
|
break;
|
|
|
|
case 244: // expr_animtree: "#animtree"
|
|
#line 934 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique<ast::expr_animtree>(yylhs.location); }
|
|
#line 3787 "parser.cpp"
|
|
break;
|
|
|
|
case 245: // expr_identifier_nosize: "identifier"
|
|
#line 939 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique<ast::expr_identifier>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3793 "parser.cpp"
|
|
break;
|
|
|
|
case 246: // expr_identifier: "identifier"
|
|
#line 944 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique<ast::expr_identifier>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3799 "parser.cpp"
|
|
break;
|
|
|
|
case 247: // expr_identifier: "size"
|
|
#line 946 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique<ast::expr_identifier>(yylhs.location, "size"); }
|
|
#line 3805 "parser.cpp"
|
|
break;
|
|
|
|
case 248: // expr_path: "identifier"
|
|
#line 951 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_path::ptr > () = std::make_unique<ast::expr_path>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3811 "parser.cpp"
|
|
break;
|
|
|
|
case 249: // expr_path: "path"
|
|
#line 953 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_path::ptr > () = std::make_unique<ast::expr_path>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3817 "parser.cpp"
|
|
break;
|
|
|
|
case 250: // expr_istring: "localized string"
|
|
#line 958 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique<ast::expr_istring>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3823 "parser.cpp"
|
|
break;
|
|
|
|
case 251: // expr_string: "string literal"
|
|
#line 963 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_string::ptr > () = std::make_unique<ast::expr_string>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3829 "parser.cpp"
|
|
break;
|
|
|
|
case 252: // expr_vector: "(" expr "," expr "," expr ")"
|
|
#line 968 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_vector::ptr > () = std::make_unique<ast::expr_vector>(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); }
|
|
#line 3835 "parser.cpp"
|
|
break;
|
|
|
|
case 253: // expr_hash: "hash"
|
|
#line 973 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_hash::ptr > () = std::make_unique<ast::expr_hash>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3841 "parser.cpp"
|
|
break;
|
|
|
|
case 254: // expr_float: "-" "float"
|
|
#line 978 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_float::ptr > () = std::make_unique<ast::expr_float>(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); }
|
|
#line 3847 "parser.cpp"
|
|
break;
|
|
|
|
case 255: // expr_float: "float"
|
|
#line 980 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_float::ptr > () = std::make_unique<ast::expr_float>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3853 "parser.cpp"
|
|
break;
|
|
|
|
case 256: // expr_integer: "-" "integer"
|
|
#line 985 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique<ast::expr_integer>(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); }
|
|
#line 3859 "parser.cpp"
|
|
break;
|
|
|
|
case 257: // expr_integer: "integer"
|
|
#line 987 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique<ast::expr_integer>(yylhs.location, yystack_[0].value.as < std::string > ()); }
|
|
#line 3865 "parser.cpp"
|
|
break;
|
|
|
|
case 258: // expr_false: "false"
|
|
#line 992 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_false::ptr > () = std::make_unique<ast::expr_false>(yylhs.location); }
|
|
#line 3871 "parser.cpp"
|
|
break;
|
|
|
|
case 259: // expr_true: "true"
|
|
#line 997 "parser.ypp"
|
|
{ yylhs.value.as < ast::expr_true::ptr > () = std::make_unique<ast::expr_true>(yylhs.location); }
|
|
#line 3877 "parser.cpp"
|
|
break;
|
|
|
|
|
|
#line 3881 "parser.cpp"
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
#if YY_EXCEPTIONS
|
|
catch (const syntax_error& yyexc)
|
|
{
|
|
YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
|
|
error (yyexc);
|
|
YYERROR;
|
|
}
|
|
#endif // YY_EXCEPTIONS
|
|
YY_SYMBOL_PRINT ("-> $$ =", yylhs);
|
|
yypop_ (yylen);
|
|
yylen = 0;
|
|
|
|
// Shift the result of the reduction.
|
|
yypush_ (YY_NULLPTR, YY_MOVE (yylhs));
|
|
}
|
|
goto yynewstate;
|
|
|
|
|
|
/*--------------------------------------.
|
|
| yyerrlab -- here on detecting error. |
|
|
`--------------------------------------*/
|
|
yyerrlab:
|
|
// If not already recovering from an error, report this error.
|
|
if (!yyerrstatus_)
|
|
{
|
|
++yynerrs_;
|
|
context yyctx (*this, yyla);
|
|
std::string msg = yysyntax_error_ (yyctx);
|
|
error (yyla.location, YY_MOVE (msg));
|
|
}
|
|
|
|
|
|
yyerror_range[1].location = yyla.location;
|
|
if (yyerrstatus_ == 3)
|
|
{
|
|
/* If just tried and failed to reuse lookahead token after an
|
|
error, discard it. */
|
|
|
|
// Return failure if at end of input.
|
|
if (yyla.kind () == symbol_kind::S_YYEOF)
|
|
YYABORT;
|
|
else if (!yyla.empty ())
|
|
{
|
|
yy_destroy_ ("Error: discarding", yyla);
|
|
yyla.clear ();
|
|
}
|
|
}
|
|
|
|
// Else will try to reuse lookahead token after shifting the error token.
|
|
goto yyerrlab1;
|
|
|
|
|
|
/*---------------------------------------------------.
|
|
| yyerrorlab -- error raised explicitly by YYERROR. |
|
|
`---------------------------------------------------*/
|
|
yyerrorlab:
|
|
/* Pacify compilers when the user code never invokes YYERROR and
|
|
the label yyerrorlab therefore never appears in user code. */
|
|
if (false)
|
|
YYERROR;
|
|
|
|
/* Do not reclaim the symbols of the rule whose action triggered
|
|
this YYERROR. */
|
|
yypop_ (yylen);
|
|
yylen = 0;
|
|
YY_STACK_PRINT ();
|
|
goto yyerrlab1;
|
|
|
|
|
|
/*-------------------------------------------------------------.
|
|
| yyerrlab1 -- common code for both syntax error and YYERROR. |
|
|
`-------------------------------------------------------------*/
|
|
yyerrlab1:
|
|
yyerrstatus_ = 3; // Each real token shifted decrements this.
|
|
// Pop stack until we find a state that shifts the error token.
|
|
for (;;)
|
|
{
|
|
yyn = yypact_[+yystack_[0].state];
|
|
if (!yy_pact_value_is_default_ (yyn))
|
|
{
|
|
yyn += symbol_kind::S_YYerror;
|
|
if (0 <= yyn && yyn <= yylast_
|
|
&& yycheck_[yyn] == symbol_kind::S_YYerror)
|
|
{
|
|
yyn = yytable_[yyn];
|
|
if (0 < yyn)
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Pop the current state because it cannot handle the error token.
|
|
if (yystack_.size () == 1)
|
|
YYABORT;
|
|
|
|
yyerror_range[1].location = yystack_[0].location;
|
|
yy_destroy_ ("Error: popping", yystack_[0]);
|
|
yypop_ ();
|
|
YY_STACK_PRINT ();
|
|
}
|
|
{
|
|
stack_symbol_type error_token;
|
|
|
|
yyerror_range[2].location = yyla.location;
|
|
YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);
|
|
|
|
// Shift the error token.
|
|
yy_lac_discard_ ("error recovery");
|
|
error_token.state = state_type (yyn);
|
|
yypush_ ("Shifting", YY_MOVE (error_token));
|
|
}
|
|
goto yynewstate;
|
|
|
|
|
|
/*-------------------------------------.
|
|
| yyacceptlab -- YYACCEPT comes here. |
|
|
`-------------------------------------*/
|
|
yyacceptlab:
|
|
yyresult = 0;
|
|
goto yyreturn;
|
|
|
|
|
|
/*-----------------------------------.
|
|
| yyabortlab -- YYABORT comes here. |
|
|
`-----------------------------------*/
|
|
yyabortlab:
|
|
yyresult = 1;
|
|
goto yyreturn;
|
|
|
|
|
|
/*-----------------------------------------------------.
|
|
| yyreturn -- parsing is finished, return the result. |
|
|
`-----------------------------------------------------*/
|
|
yyreturn:
|
|
if (!yyla.empty ())
|
|
yy_destroy_ ("Cleanup: discarding lookahead", yyla);
|
|
|
|
/* Do not reclaim the symbols of the rule whose action triggered
|
|
this YYABORT or YYACCEPT. */
|
|
yypop_ (yylen);
|
|
YY_STACK_PRINT ();
|
|
while (1 < yystack_.size ())
|
|
{
|
|
yy_destroy_ ("Cleanup: popping", yystack_[0]);
|
|
yypop_ ();
|
|
}
|
|
|
|
return yyresult;
|
|
}
|
|
#if YY_EXCEPTIONS
|
|
catch (...)
|
|
{
|
|
YYCDEBUG << "Exception caught: cleaning lookahead and stack\n";
|
|
// Do not try to display the values of the reclaimed symbols,
|
|
// as their printers might throw an exception.
|
|
if (!yyla.empty ())
|
|
yy_destroy_ (YY_NULLPTR, yyla);
|
|
|
|
while (1 < yystack_.size ())
|
|
{
|
|
yy_destroy_ (YY_NULLPTR, yystack_[0]);
|
|
yypop_ ();
|
|
}
|
|
throw;
|
|
}
|
|
#endif // YY_EXCEPTIONS
|
|
}
|
|
|
|
void
|
|
parser::error (const syntax_error& yyexc)
|
|
{
|
|
error (yyexc.location, yyexc.what ());
|
|
}
|
|
|
|
const char *
|
|
parser::symbol_name (symbol_kind_type yysymbol)
|
|
{
|
|
static const char *const yy_sname[] =
|
|
{
|
|
"end of file", "error", "invalid token", "#define", "#undef", "#ifdef",
|
|
"#ifndef", "#if", "#elif", "#else", "#endif", "/#", "#/", "#inline",
|
|
"#include", "#using_animtree", "#animtree", "endon", "notify", "wait",
|
|
"waittill", "waittillmatch", "waittillframeend", "if", "else", "do",
|
|
"while", "for", "foreach", "in", "switch", "case", "default", "break",
|
|
"continue", "return", "prof_begin", "prof_end", "thread", "true",
|
|
"false", "undefined", "size", "game", "self", "anim", "level",
|
|
"getnextarraykey", "getfirstarraykey", "getdvarcoloralpha",
|
|
"getdvarcolorblue", "getdvarcolorgreen", "getdvarcolorred",
|
|
"getdvarvector", "getdvarfloat", "getdvarint", "getdvar", "gettime",
|
|
"abs", "vectortoangles", "angleclamp180", "anglestoforward",
|
|
"anglestoright", "anglestoup", "vectorscale", "isdefined", "(", ")", "{",
|
|
"}", "[", "]", ",", ".", "::", ":", ";", "?", "++", "--", "<<", ">>",
|
|
"||", "&&", "==", "!=", "<=", ">=", "<", ">", "!", "~", "=", "+=", "-=",
|
|
"*=", "/=", "%=", "|=", "&=", "^=", ">>=", "<<=", "|", "&", "^", "+",
|
|
"-", "*", "/", "%", "path", "identifier", "string literal",
|
|
"localized string", "hash", "float", "integer", "SIZEOF", "THEN", "TERN",
|
|
"NEG", "ANIMREF", "PREINC", "PREDEC", "POSTINC", "POSTDEC", "$accept",
|
|
"root", "program", "inline", "include", "declaration", "decl_usingtree",
|
|
"decl_constant", "decl_thread", "stmt", "stmt_or_dev", "stmt_list",
|
|
"stmt_or_dev_list", "stmt_dev", "stmt_block", "stmt_expr", "stmt_call",
|
|
"stmt_assign", "stmt_endon", "stmt_notify", "stmt_wait", "stmt_waittill",
|
|
"stmt_waittillmatch", "stmt_waittillframeend", "stmt_if", "stmt_ifelse",
|
|
"stmt_while", "stmt_dowhile", "stmt_for", "stmt_foreach", "stmt_switch",
|
|
"stmt_case", "stmt_default", "stmt_break", "stmt_continue",
|
|
"stmt_return", "stmt_prof_begin", "stmt_prof_end", "expr",
|
|
"expr_or_empty", "expr_assign", "expr_increment", "expr_decrement",
|
|
"expr_ternary", "expr_binary", "expr_primitive", "expr_complement",
|
|
"expr_negate", "expr_not", "expr_call", "expr_method", "expr_function",
|
|
"expr_pointer", "expr_parameters", "expr_arguments",
|
|
"expr_arguments_no_empty", "expr_getnextarraykey",
|
|
"expr_getfirstarraykey", "expr_getdvarcoloralpha",
|
|
"expr_getdvarcolorblue", "expr_getdvarcolorgreen",
|
|
"expr_getdvarcolorred", "expr_getdvarvector", "expr_getdvarfloat",
|
|
"expr_getdvarint", "expr_getdvar", "expr_gettime", "expr_abs",
|
|
"expr_vectortoangles", "expr_angleclamp180", "expr_anglestoforward",
|
|
"expr_anglestoright", "expr_anglestoup", "expr_vectorscale",
|
|
"expr_isdefined", "expr_reference", "expr_array", "expr_field",
|
|
"expr_size", "expr_paren", "expr_object", "expr_empty_array",
|
|
"expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level",
|
|
"expr_animation", "expr_animtree", "expr_identifier_nosize",
|
|
"expr_identifier", "expr_path", "expr_istring", "expr_string",
|
|
"expr_vector", "expr_hash", "expr_float", "expr_integer", "expr_false",
|
|
"expr_true", YY_NULLPTR
|
|
};
|
|
return yy_sname[yysymbol];
|
|
}
|
|
|
|
|
|
|
|
// parser::context.
|
|
parser::context::context (const parser& yyparser, const symbol_type& yyla)
|
|
: yyparser_ (yyparser)
|
|
, yyla_ (yyla)
|
|
{}
|
|
|
|
int
|
|
parser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const
|
|
{
|
|
// Actual number of expected tokens
|
|
int yycount = 0;
|
|
|
|
#if T6DEBUG
|
|
// Execute LAC once. We don't care if it is successful, we
|
|
// only do it for the sake of debugging output.
|
|
if (!yyparser_.yy_lac_established_)
|
|
yyparser_.yy_lac_check_ (yyla_.kind ());
|
|
#endif
|
|
|
|
for (int yyx = 0; yyx < YYNTOKENS; ++yyx)
|
|
{
|
|
symbol_kind_type yysym = YY_CAST (symbol_kind_type, yyx);
|
|
if (yysym != symbol_kind::S_YYerror
|
|
&& yysym != symbol_kind::S_YYUNDEF
|
|
&& yyparser_.yy_lac_check_ (yysym))
|
|
{
|
|
if (!yyarg)
|
|
++yycount;
|
|
else if (yycount == yyargn)
|
|
return 0;
|
|
else
|
|
yyarg[yycount++] = yysym;
|
|
}
|
|
}
|
|
if (yyarg && yycount == 0 && 0 < yyargn)
|
|
yyarg[0] = symbol_kind::S_YYEMPTY;
|
|
return yycount;
|
|
}
|
|
|
|
|
|
|
|
|
|
bool
|
|
parser::yy_lac_check_ (symbol_kind_type yytoken) const
|
|
{
|
|
// Logically, the yylac_stack's lifetime is confined to this function.
|
|
// Clear it, to get rid of potential left-overs from previous call.
|
|
yylac_stack_.clear ();
|
|
// Reduce until we encounter a shift and thereby accept the token.
|
|
#if T6DEBUG
|
|
YYCDEBUG << "LAC: checking lookahead " << symbol_name (yytoken) << ':';
|
|
#endif
|
|
std::ptrdiff_t lac_top = 0;
|
|
while (true)
|
|
{
|
|
state_type top_state = (yylac_stack_.empty ()
|
|
? yystack_[lac_top].state
|
|
: yylac_stack_.back ());
|
|
int yyrule = yypact_[+top_state];
|
|
if (yy_pact_value_is_default_ (yyrule)
|
|
|| (yyrule += yytoken) < 0 || yylast_ < yyrule
|
|
|| yycheck_[yyrule] != yytoken)
|
|
{
|
|
// Use the default action.
|
|
yyrule = yydefact_[+top_state];
|
|
if (yyrule == 0)
|
|
{
|
|
YYCDEBUG << " Err\n";
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Use the action from yytable.
|
|
yyrule = yytable_[yyrule];
|
|
if (yy_table_value_is_error_ (yyrule))
|
|
{
|
|
YYCDEBUG << " Err\n";
|
|
return false;
|
|
}
|
|
if (0 < yyrule)
|
|
{
|
|
YYCDEBUG << " S" << yyrule << '\n';
|
|
return true;
|
|
}
|
|
yyrule = -yyrule;
|
|
}
|
|
// By now we know we have to simulate a reduce.
|
|
YYCDEBUG << " R" << yyrule - 1;
|
|
// Pop the corresponding number of values from the stack.
|
|
{
|
|
std::ptrdiff_t yylen = yyr2_[yyrule];
|
|
// First pop from the LAC stack as many tokens as possible.
|
|
std::ptrdiff_t lac_size = std::ptrdiff_t (yylac_stack_.size ());
|
|
if (yylen < lac_size)
|
|
{
|
|
yylac_stack_.resize (std::size_t (lac_size - yylen));
|
|
yylen = 0;
|
|
}
|
|
else if (lac_size)
|
|
{
|
|
yylac_stack_.clear ();
|
|
yylen -= lac_size;
|
|
}
|
|
// Only afterwards look at the main stack.
|
|
// We simulate popping elements by incrementing lac_top.
|
|
lac_top += yylen;
|
|
}
|
|
// Keep top_state in sync with the updated stack.
|
|
top_state = (yylac_stack_.empty ()
|
|
? yystack_[lac_top].state
|
|
: yylac_stack_.back ());
|
|
// Push the resulting state of the reduction.
|
|
state_type state = yy_lr_goto_state_ (top_state, yyr1_[yyrule]);
|
|
YYCDEBUG << " G" << int (state);
|
|
yylac_stack_.push_back (state);
|
|
}
|
|
}
|
|
|
|
// Establish the initial context if no initial context currently exists.
|
|
bool
|
|
parser::yy_lac_establish_ (symbol_kind_type yytoken)
|
|
{
|
|
/* Establish the initial context for the current lookahead if no initial
|
|
context is currently established.
|
|
|
|
We define a context as a snapshot of the parser stacks. We define
|
|
the initial context for a lookahead as the context in which the
|
|
parser initially examines that lookahead in order to select a
|
|
syntactic action. Thus, if the lookahead eventually proves
|
|
syntactically unacceptable (possibly in a later context reached via a
|
|
series of reductions), the initial context can be used to determine
|
|
the exact set of tokens that would be syntactically acceptable in the
|
|
lookahead's place. Moreover, it is the context after which any
|
|
further semantic actions would be erroneous because they would be
|
|
determined by a syntactically unacceptable token.
|
|
|
|
yy_lac_establish_ should be invoked when a reduction is about to be
|
|
performed in an inconsistent state (which, for the purposes of LAC,
|
|
includes consistent states that don't know they're consistent because
|
|
their default reductions have been disabled).
|
|
|
|
For parse.lac=full, the implementation of yy_lac_establish_ is as
|
|
follows. If no initial context is currently established for the
|
|
current lookahead, then check if that lookahead can eventually be
|
|
shifted if syntactic actions continue from the current context. */
|
|
if (yy_lac_established_)
|
|
return true;
|
|
else
|
|
{
|
|
#if T6DEBUG
|
|
YYCDEBUG << "LAC: initial context established for "
|
|
<< symbol_name (yytoken) << '\n';
|
|
#endif
|
|
yy_lac_established_ = true;
|
|
return yy_lac_check_ (yytoken);
|
|
}
|
|
}
|
|
|
|
// Discard any previous initial lookahead context.
|
|
void
|
|
parser::yy_lac_discard_ (const char* event)
|
|
{
|
|
/* Discard any previous initial lookahead context because of Event,
|
|
which may be a lookahead change or an invalidation of the currently
|
|
established initial context for the current lookahead.
|
|
|
|
The most common example of a lookahead change is a shift. An example
|
|
of both cases is syntax error recovery. That is, a syntax error
|
|
occurs when the lookahead is syntactically erroneous for the
|
|
currently established initial context, so error recovery manipulates
|
|
the parser stacks to try to find a new initial context in which the
|
|
current lookahead is syntactically acceptable. If it fails to find
|
|
such a context, it discards the lookahead. */
|
|
if (yy_lac_established_)
|
|
{
|
|
YYCDEBUG << "LAC: initial context discarded due to "
|
|
<< event << '\n';
|
|
yy_lac_established_ = false;
|
|
}
|
|
}
|
|
|
|
|
|
int
|
|
parser::yy_syntax_error_arguments_ (const context& yyctx,
|
|
symbol_kind_type yyarg[], int yyargn) const
|
|
{
|
|
/* There are many possibilities here to consider:
|
|
- If this state is a consistent state with a default action, then
|
|
the only way this function was invoked is if the default action
|
|
is an error action. In that case, don't check for expected
|
|
tokens because there are none.
|
|
- The only way there can be no lookahead present (in yyla) is
|
|
if this state is a consistent state with a default action.
|
|
Thus, detecting the absence of a lookahead is sufficient to
|
|
determine that there is no unexpected or expected token to
|
|
report. In that case, just report a simple "syntax error".
|
|
- Don't assume there isn't a lookahead just because this state is
|
|
a consistent state with a default action. There might have
|
|
been a previous inconsistent state, consistent state with a
|
|
non-default action, or user semantic action that manipulated
|
|
yyla. (However, yyla is currently not documented for users.)
|
|
In the first two cases, it might appear that the current syntax
|
|
error should have been detected in the previous state when
|
|
yy_lac_check was invoked. However, at that time, there might
|
|
have been a different syntax error that discarded a different
|
|
initial context during error recovery, leaving behind the
|
|
current lookahead.
|
|
*/
|
|
|
|
if (!yyctx.lookahead ().empty ())
|
|
{
|
|
if (yyarg)
|
|
yyarg[0] = yyctx.token ();
|
|
int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
|
|
return yyn + 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
// Generate an error message.
|
|
std::string
|
|
parser::yysyntax_error_ (const context& yyctx) const
|
|
{
|
|
// Its maximum.
|
|
enum { YYARGS_MAX = 5 };
|
|
// Arguments of yyformat.
|
|
symbol_kind_type yyarg[YYARGS_MAX];
|
|
int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
|
|
|
|
char const* yyformat = YY_NULLPTR;
|
|
switch (yycount)
|
|
{
|
|
#define YYCASE_(N, S) \
|
|
case N: \
|
|
yyformat = S; \
|
|
break
|
|
default: // Avoid compiler warnings.
|
|
YYCASE_ (0, YY_("syntax error"));
|
|
YYCASE_ (1, YY_("syntax error, unexpected %s"));
|
|
YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s"));
|
|
YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s"));
|
|
YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
|
|
YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
|
|
#undef YYCASE_
|
|
}
|
|
|
|
std::string yyres;
|
|
// Argument number.
|
|
std::ptrdiff_t yyi = 0;
|
|
for (char const* yyp = yyformat; *yyp; ++yyp)
|
|
if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
|
|
{
|
|
yyres += symbol_name (yyarg[yyi++]);
|
|
++yyp;
|
|
}
|
|
else
|
|
yyres += *yyp;
|
|
return yyres;
|
|
}
|
|
|
|
|
|
const short parser::yypact_ninf_ = -379;
|
|
|
|
const short parser::yytable_ninf_ = -249;
|
|
|
|
const short
|
|
parser::yypact_[] =
|
|
{
|
|
10, -379, -379, -43, -43, -39, -379, -379, 19, 10,
|
|
-379, -379, -379, -379, -379, -379, -48, -379, -379, -29,
|
|
-27, -60, -379, -379, -379, -379, -28, 1398, -379, -379,
|
|
-379, 11, -38, -379, -379, 68, -379, -379, -379, -379,
|
|
-379, -379, -379, 5, 25, 32, 67, 73, 75, 88,
|
|
90, 91, 99, 103, 104, 108, 110, 111, 115, 118,
|
|
119, 120, 1398, 34, -28, 1398, 1398, -5, -33, 53,
|
|
-379, -379, -379, -379, 3357, -379, -379, -379, -379, -379,
|
|
-379, -10, 24, -379, -379, -379, -379, -379, -379, -379,
|
|
-379, 93, -379, -379, -379, -379, -379, 122, 124, 125,
|
|
127, 128, 129, -379, -379, 48, 61, -379, -379, 140,
|
|
-379, -379, 158, 170, 253, 270, -379, -379, 4, 116,
|
|
-379, -379, -379, -379, -379, -379, -379, -379, 113, 133,
|
|
-28, 139, 145, 141, 1398, 1398, 1398, 1398, 1398, 1398,
|
|
1398, 1398, 1398, 1398, 147, 1398, 1398, 1398, 1398, 1398,
|
|
1398, 1398, 1398, 1801, 1398, -379, -379, -379, -379, 1398,
|
|
149, -379, -379, -379, -379, 93, 122, 124, 125, 127,
|
|
128, 129, 48, 61, -379, 287, -379, -379, -379, -379,
|
|
4, 146, -379, -379, 1398, 1398, 1398, 1398, 1398, 1398,
|
|
1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
|
|
1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
|
|
1478, -25, -379, -379, 156, 1398, -28, -379, 1585, -379,
|
|
-379, 1398, 1398, -28, 3208, 2045, 2079, 2113, 2147, 2181,
|
|
2215, 2249, 2283, 2317, -379, 2351, 2385, 2419, 2453, 2487,
|
|
2521, 3247, 2555, -379, 1398, 1152, 2589, 112, -28, 3322,
|
|
97, 97, 1086, 3471, 1014, 1014, 326, 326, 326, 326,
|
|
3481, 3522, 3512, 16, 16, -379, -379, -379, 1234, 1394,
|
|
1474, 2969, 3009, 3049, 3089, 1238, 3129, -379, -379, -379,
|
|
3440, -36, -379, 163, 1707, 1398, 157, 166, 1913, 169,
|
|
179, 180, 181, -24, 161, 177, 183, 1318, 190, 191,
|
|
-379, 1016, 1016, -379, -379, 1646, -379, -379, -379, -379,
|
|
-379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
|
|
-379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
|
|
184, 185, 186, 189, 195, -379, -379, 1822, 156, 3169,
|
|
-22, 200, 1398, -379, -379, -379, -379, -379, -379, -379,
|
|
-379, -379, -379, -379, -379, -379, -379, -379, 1398, -379,
|
|
3286, 196, 163, 1398, -379, -379, -379, -379, -379, -379,
|
|
-379, -379, -379, 1398, 1398, -379, -379, 1768, 3392, -379,
|
|
1398, 247, 1398, 309, -28, 1398, 159, 202, 204, -379,
|
|
-379, -379, -379, 3427, 1398, 1398, 287, 287, -379, -379,
|
|
-379, -379, -379, -379, -379, 209, 214, 217, 221, -379,
|
|
-379, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
|
|
1398, 1398, 219, -379, 1398, 2623, 2657, 1398, 231, 3440,
|
|
3440, 9, -379, -379, -379, 2691, 232, 2725, 223, -379,
|
|
-379, -379, 50, 1, 2759, -379, -379, -379, 13, 28,
|
|
1398, 1398, 1398, 1398, 3440, 3440, 3440, 3440, 3440, 3440,
|
|
3440, 3440, 3440, 3440, 3440, 234, 41, -379, -379, 2793,
|
|
1398, -379, 1913, 1398, 1913, 1398, 1398, -28, 133, 230,
|
|
235, 2827, 1923, 1967, 2011, 1398, -379, -379, 47, 283,
|
|
2861, -379, 3440, 239, 2895, 288, -379, -379, -379, 240,
|
|
242, 1398, 243, 1398, 245, 1398, 86, -379, 1913, 246,
|
|
309, 1913, 1398, -379, -379, 252, 260, -379, 261, -379,
|
|
264, -379, -379, -379, 265, -379, 2929, 257, 258, 259,
|
|
1913, 1913, -379, -379, -379, -379, -379
|
|
};
|
|
|
|
const short
|
|
parser::yydefact_[] =
|
|
{
|
|
3, 12, 13, 0, 0, 0, 247, 246, 0, 2,
|
|
7, 8, 9, 14, 15, 16, 0, 249, 248, 0,
|
|
0, 0, 1, 4, 5, 6, 191, 0, 10, 11,
|
|
251, 0, 0, 190, 244, 0, 259, 258, 238, 239,
|
|
240, 241, 242, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 246,
|
|
250, 253, 255, 257, 0, 88, 89, 90, 127, 128,
|
|
129, 130, 131, 179, 180, 132, 133, 134, 135, 136,
|
|
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
|
|
147, 148, 149, 150, 151, 152, 153, 154, 155, 0,
|
|
156, 157, 158, 159, 160, 161, 162, 163, 164, 0,
|
|
165, 166, 167, 168, 169, 170, 171, 172, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 237, 215, 178, 173, 0,
|
|
0, 254, 256, 228, 229, 0, 0, 0, 0, 0,
|
|
0, 0, 176, 177, 175, 0, 232, 233, 234, 235,
|
|
174, 0, 243, 18, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 181, 182, 0, 193, 0, 17, 0, 19,
|
|
189, 0, 193, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 206, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 227, 0, 0, 0, 0, 0, 0,
|
|
120, 121, 109, 110, 111, 112, 113, 114, 115, 116,
|
|
117, 118, 119, 122, 123, 124, 125, 126, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 226, 245, 225,
|
|
195, 0, 192, 216, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
52, 0, 0, 43, 48, 0, 44, 20, 21, 22,
|
|
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
|
|
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
|
|
0, 0, 0, 228, 229, 230, 231, 0, 236, 0,
|
|
0, 0, 0, 197, 198, 199, 200, 201, 202, 203,
|
|
204, 205, 207, 208, 209, 210, 211, 212, 0, 214,
|
|
0, 0, 0, 0, 218, 219, 220, 221, 222, 223,
|
|
224, 217, 183, 0, 193, 50, 46, 0, 0, 70,
|
|
0, 0, 0, 56, 0, 0, 0, 0, 0, 81,
|
|
82, 83, 85, 0, 193, 193, 104, 106, 51, 47,
|
|
59, 60, 61, 57, 58, 0, 0, 0, 0, 105,
|
|
107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 185, 193, 0, 0, 0, 0, 108,
|
|
194, 0, 49, 45, 65, 0, 0, 0, 0, 53,
|
|
54, 55, 0, 0, 0, 80, 79, 84, 0, 0,
|
|
0, 0, 0, 0, 93, 99, 100, 101, 102, 103,
|
|
94, 95, 96, 98, 97, 0, 0, 196, 213, 0,
|
|
193, 184, 0, 0, 0, 92, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 193, 186, 252, 0, 71,
|
|
0, 73, 91, 0, 0, 0, 78, 86, 87, 0,
|
|
0, 193, 0, 193, 0, 193, 0, 187, 0, 0,
|
|
56, 0, 0, 62, 64, 0, 192, 67, 192, 69,
|
|
192, 188, 72, 74, 0, 76, 0, 0, 0, 0,
|
|
0, 0, 63, 66, 68, 75, 77
|
|
};
|
|
|
|
const short
|
|
parser::yypgoto_[] =
|
|
{
|
|
-379, -379, -379, 329, 332, 333, -379, -379, -379, -281,
|
|
39, -379, -379, -379, -128, -164, -379, -379, -379, -379,
|
|
-379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
|
|
-379, -379, -379, -379, -379, -379, -379, -379, 413, -379,
|
|
-378, -373, -370, -379, -379, -379, -379, -379, -379, -63,
|
|
-47, -103, -93, -379, -207, -337, -379, -379, -379, -379,
|
|
-379, -379, -16, -379, -379, -379, -379, -379, 197, 289,
|
|
363, 374, 434, 476, -379, -379, 574, 625, -379, 281,
|
|
634, -379, -379, 674, 689, 734, 742, -379, -379, -379,
|
|
0, 8, -379, -19, -379, -379, -379, 65, -379, -379
|
|
};
|
|
|
|
const short
|
|
parser::yydefgoto_[] =
|
|
{
|
|
0, 8, 9, 10, 11, 12, 13, 14, 15, 303,
|
|
304, 377, 305, 306, 307, 438, 308, 309, 310, 311,
|
|
312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
|
|
322, 323, 324, 325, 326, 327, 328, 329, 280, 493,
|
|
330, 331, 332, 75, 76, 77, 78, 79, 80, 81,
|
|
82, 83, 84, 32, 515, 282, 85, 86, 87, 88,
|
|
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
|
|
99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 111, 112, 113, 114, 115, 116, 117, 279,
|
|
118, 119, 120, 121, 122, 123, 124, 125, 126, 127
|
|
};
|
|
|
|
const short
|
|
parser::yytable_[] =
|
|
{
|
|
16, 219, 31, 376, 163, 439, 212, 381, 281, 16,
|
|
440, 19, 20, 441, 6, 340, 213, 277, 26, 22,
|
|
164, 1, 2, 3, 4, 5, 33, 21, -228, 129,
|
|
476, 372, -228, 35, 130, 132, 373, 6, 39, 40,
|
|
41, 42, -236, 133, 27, 423, -236, 28, 49, 29,
|
|
373, 165, 6, 30, 55, 56, 57, 58, 59, 60,
|
|
-228, 159, -229, -228, 156, 160, -229, 180, 17, 18,
|
|
215, 134, 212, 477, -236, 181, 471, -236, 128, 182,
|
|
479, 373, 213, 386, 7, 373, -230, 278, 35, 30,
|
|
-230, 135, 6, 73, -229, 480, 433, -229, 136, -231,
|
|
373, -228, -228, -231, 154, 155, 17, 69, 486, 214,
|
|
6, 161, 162, 373, 507, -236, -236, 181, -230, 373,
|
|
210, -230, 7, 247, 200, 201, 202, -248, 409, 410,
|
|
220, -231, 439, 137, -231, -229, -229, 440, 131, 138,
|
|
441, 139, 411, 412, 413, 414, 415, 416, 417, 418,
|
|
419, 420, 421, 521, 140, 333, 141, 142, 373, -230,
|
|
-230, 17, 69, 203, 516, 143, 518, 431, 520, 144,
|
|
145, 334, -231, -231, 146, 214, 147, 148, 35, 17,
|
|
69, 149, 6, 181, 150, 151, 152, 448, 449, 217,
|
|
216, 489, 204, 491, 205, 206, -232, 207, 208, 209,
|
|
-232, 218, 165, 198, 199, 200, 201, 202, -233, 221,
|
|
210, 222, -233, 211, 234, 223, 283, 466, 338, 154,
|
|
248, 333, 215, 341, 278, 333, 181, 522, -232, 374,
|
|
525, -232, 380, 379, 212, 382, 389, 334, 163, 163,
|
|
-233, 334, 333, -233, 213, 383, 384, 385, 362, 535,
|
|
536, 17, 69, 390, 164, 164, 394, 395, 334, 391,
|
|
400, 401, 402, 488, 166, 403, 424, 428, 165, -232,
|
|
-232, 404, 165, 436, 387, 450, 162, 445, 506, 446,
|
|
451, -233, -233, 452, 338, 165, 165, 453, 338, 165,
|
|
465, -234, 181, 212, 212, -234, 181, 470, 473, 475,
|
|
485, 338, 338, 213, 213, 338, 497, 508, -235, 181,
|
|
181, 498, -235, 181, 333, 510, 513, 512, 514, 517,
|
|
163, 519, 523, -234, 373, 35, -234, 527, 528, 6,
|
|
334, 529, 530, 532, 533, 534, 164, 214, 23, 212,
|
|
-235, 24, 25, -235, 399, 181, 524, 35, 174, 213,
|
|
496, 6, 39, 40, 41, 42, 167, 210, 388, 0,
|
|
247, 165, 49, 0, -234, -234, 0, 165, 55, 56,
|
|
57, 58, 59, 60, 0, 0, 0, 338, 0, 160,
|
|
0, -235, -235, 338, 443, 181, 0, 301, 302, 0,
|
|
0, 181, 0, 0, 0, 0, 214, 214, 17, 69,
|
|
0, 0, 0, 0, 181, 181, 185, 186, 0, 333,
|
|
0, 333, 0, 0, 0, 166, 0, 0, 0, 0,
|
|
17, 69, 0, 0, 0, 334, 0, 334, 0, 0,
|
|
168, 0, 198, 199, 200, 201, 202, 0, 0, 0,
|
|
74, 169, 214, 0, 0, 333, 0, 163, 333, 0,
|
|
181, 0, 0, 0, 0, 0, 165, 0, 165, 0,
|
|
0, 334, 0, 164, 334, 0, 0, 333, 333, 0,
|
|
0, 0, 338, 0, 338, 153, 0, 495, 157, 158,
|
|
181, 166, 181, 334, 334, 166, 0, 0, 0, 0,
|
|
0, 0, 165, 0, 165, 165, 0, 0, 166, 166,
|
|
0, 170, 166, 0, 0, 0, 0, 167, 338, 0,
|
|
338, 338, 0, 0, 165, 165, 181, 0, 181, 181,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
338, 338, 0, 0, 0, 0, 0, 0, 181, 181,
|
|
0, 0, 0, 171, 0, 0, 0, 224, 225, 226,
|
|
227, 228, 229, 230, 231, 232, 233, 0, 235, 236,
|
|
237, 238, 239, 240, 241, 242, 0, 245, 0, 0,
|
|
0, 0, 246, 167, 166, 0, 0, 167, 0, 0,
|
|
166, 168, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
167, 167, 169, 0, 167, 0, 0, 249, 250, 251,
|
|
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
|
|
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
|
|
272, 273, 274, 276, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 339, 0, 0, 0, 0, 0,
|
|
0, 172, 0, 0, 0, 0, 0, 168, 0, 0,
|
|
0, 168, 170, 0, 0, 0, 0, 360, 169, 0,
|
|
0, 0, 169, 0, 168, 168, 167, 0, 168, 166,
|
|
0, 166, 167, 0, 0, 169, 169, 0, 0, 169,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 245, 0,
|
|
0, 0, 173, 0, 171, 0, 0, 0, 378, 0,
|
|
0, 175, 0, 0, 0, 166, 0, 166, 166, 0,
|
|
393, 0, 0, 0, 0, 0, 0, 0, 170, 0,
|
|
0, 0, 170, 0, 0, 0, 0, 166, 166, 0,
|
|
0, 0, 0, 0, 0, 170, 170, 0, 0, 170,
|
|
168, 176, 0, 0, 0, 0, 168, 0, 0, 0,
|
|
0, 169, 0, 0, 0, 425, 177, 169, 0, 0,
|
|
171, 167, 0, 167, 171, 0, 0, 0, 0, 0,
|
|
0, 426, 0, 0, 0, 0, 429, 171, 171, 0,
|
|
0, 171, 0, 0, 0, 0, 430, 0, 0, 0,
|
|
0, 0, 335, 435, 0, 437, 0, 167, 444, 167,
|
|
167, 178, 0, 0, 0, 0, 0, 0, 0, 179,
|
|
0, 170, 0, 0, 0, 0, 0, 170, 0, 167,
|
|
167, 0, 0, 0, 454, 455, 456, 457, 458, 459,
|
|
460, 461, 462, 463, 464, 168, 0, 168, 0, 0,
|
|
469, 0, 0, 336, 0, 0, 169, 0, 169, 0,
|
|
0, 0, 337, 171, 0, 0, 0, 0, 335, 171,
|
|
0, 0, 335, 481, 482, 483, 484, 0, 0, 0,
|
|
0, 168, 0, 168, 168, 335, 335, 0, 0, 335,
|
|
0, 0, 169, 0, 169, 169, 490, 0, 492, 494,
|
|
0, 0, 176, 168, 168, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 169, 169, 170, 177, 170, 336,
|
|
0, 0, 0, 336, 0, 0, 0, 0, 337, 0,
|
|
0, 0, 337, 0, 0, 526, 336, 336, 0, 0,
|
|
336, 0, 0, 0, 0, 396, 397, 0, 0, 337,
|
|
0, 0, 170, 0, 170, 170, 0, 0, 171, 0,
|
|
171, 335, 178, 0, 0, 0, 0, 335, 176, 0,
|
|
179, 0, 176, 0, 170, 170, 0, 0, 0, 0,
|
|
0, 0, 0, 177, 0, 176, 176, 177, 0, 176,
|
|
0, 0, 0, 0, 171, 0, 171, 171, 0, 0,
|
|
177, 177, 0, 0, 177, 0, 0, 0, 0, 0,
|
|
0, 0, 336, 0, 0, 0, 171, 171, 336, 0,
|
|
0, 337, 0, 0, 0, 0, 0, 442, 178, 0,
|
|
0, 0, 178, 0, 0, 0, 179, 0, 0, 0,
|
|
179, 0, 0, 0, 0, 178, 178, 0, 0, 178,
|
|
0, 0, 0, 179, 179, 0, 335, 179, 335, 0,
|
|
0, 176, 0, 0, 35, 0, 0, 176, 6, 39,
|
|
40, 41, 42, 0, 0, 0, 177, 0, 0, 49,
|
|
0, 0, 177, 0, 0, 55, 56, 57, 58, 59,
|
|
60, 0, 335, 0, 335, 335, 160, 0, 0, 0,
|
|
0, 0, 0, 0, 185, 186, 0, 336, 0, 336,
|
|
191, 192, 193, 194, 335, 335, 337, 0, 337, 0,
|
|
0, 178, 0, 0, 0, 0, 0, 178, 0, 179,
|
|
198, 199, 200, 201, 202, 179, 0, 17, 69, 0,
|
|
0, 0, 0, 336, 0, 336, 336, 0, 0, 0,
|
|
0, 0, 337, 0, 442, 337, 176, 0, 176, 0,
|
|
0, 0, 0, 0, 0, 336, 336, 0, 0, 0,
|
|
0, 177, 0, 177, 337, 337, 185, 186, 0, 188,
|
|
189, 190, 191, 192, 193, 194, 0, 0, 0, 0,
|
|
0, 0, 176, 0, 176, 176, 0, 0, 0, 195,
|
|
196, 197, 198, 199, 200, 201, 202, 177, 0, 177,
|
|
177, 0, 0, 0, 176, 176, 178, 0, 178, 0,
|
|
0, 0, 0, 0, 179, 0, 179, 0, 0, 177,
|
|
177, 0, 0, 361, 0, 0, 0, 0, 0, 184,
|
|
0, 0, 185, 186, 187, 188, 189, 190, 191, 192,
|
|
193, 194, 178, 0, 178, 178, 0, 0, 0, 0,
|
|
179, 0, 179, 179, 34, 195, 196, 197, 198, 199,
|
|
200, 201, 202, 0, 178, 178, 0, 0, 0, 0,
|
|
0, 0, 179, 179, 0, 0, 35, 36, 37, 38,
|
|
6, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
|
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
|
|
58, 59, 60, 61, 62, 364, 0, 0, 275, 155,
|
|
0, 184, 64, 0, 185, 186, 187, 188, 189, 190,
|
|
191, 192, 193, 194, 0, 0, 0, 0, 65, 66,
|
|
0, 0, 0, 0, 34, 0, 0, 195, 196, 197,
|
|
198, 199, 200, 201, 202, 67, 0, 0, 68, 17,
|
|
69, 30, 70, 71, 72, 73, 35, 36, 37, 38,
|
|
6, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
|
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
|
|
58, 59, 60, 61, 62, 0, 0, 0, 63, 0,
|
|
0, 0, 64, 0, 392, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
|
|
0, 0, 0, 0, 34, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 67, 0, 0, 68, 17,
|
|
69, 30, 70, 71, 72, 73, 35, 36, 37, 38,
|
|
6, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
|
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
|
|
58, 59, 60, 61, 62, 365, 0, 0, 63, 0,
|
|
0, 184, 64, 0, 185, 186, 187, 188, 189, 190,
|
|
191, 192, 193, 194, 0, 0, 0, 0, 65, 66,
|
|
0, 0, 0, 0, 34, 0, 0, 195, 196, 197,
|
|
198, 199, 200, 201, 202, 67, 0, 0, 68, 17,
|
|
69, 30, 70, 71, 72, 73, 35, 36, 37, 38,
|
|
6, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
|
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
|
|
58, 59, 60, 61, 62, 366, 0, 0, 275, 0,
|
|
0, 184, 64, 0, 185, 186, 187, 188, 189, 190,
|
|
191, 192, 193, 194, 0, 0, 0, 0, 65, 66,
|
|
0, 0, 0, 0, 0, 0, 0, 195, 196, 197,
|
|
198, 199, 200, 201, 202, 67, 0, 0, 68, 17,
|
|
69, 30, 70, 71, 72, 73, 284, 0, 0, 0,
|
|
0, 0, 0, 0, 285, 0, 0, 286, 287, 0,
|
|
288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
|
|
297, 298, 299, 35, 0, 0, 0, 6, 39, 40,
|
|
41, 42, 0, 0, 0, 0, 0, 0, 49, 0,
|
|
0, 0, 0, 0, 55, 56, 57, 58, 59, 60,
|
|
0, 0, 0, 218, 300, 160, 0, 284, 0, 0,
|
|
0, 0, 0, 301, 302, 285, 0, 0, 286, 287,
|
|
0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
|
|
296, 297, 298, 299, 35, 0, 0, 0, 6, 39,
|
|
40, 41, 42, 0, 0, 0, 17, 69, 0, 49,
|
|
0, 0, 0, 0, 0, 55, 56, 57, 58, 59,
|
|
60, 0, 0, 0, 218, 398, 160, 0, 0, 375,
|
|
0, 0, 0, 0, 301, 302, 285, 0, 0, 286,
|
|
287, 0, 288, 289, 290, 291, 0, 292, 293, 294,
|
|
295, 296, 297, 298, 299, 35, 0, 0, 0, 6,
|
|
39, 40, 41, 42, 0, 0, 0, 17, 69, 0,
|
|
49, 0, 0, 0, 0, 0, 55, 56, 57, 58,
|
|
59, 60, 0, 0, 0, 218, 0, 160, 0, 0,
|
|
432, 0, 0, 0, 0, 301, 302, 285, 0, 0,
|
|
286, 287, 0, 288, 289, 290, 291, 0, 292, 293,
|
|
294, 295, 296, 297, 298, 299, 35, 0, 0, 0,
|
|
6, 39, 40, 41, 42, 0, 0, 0, 17, 69,
|
|
0, 49, 0, 0, 0, 0, 0, 55, 56, 57,
|
|
58, 59, 60, 0, 0, 0, 218, 0, 160, 405,
|
|
406, 0, 407, 408, 0, 0, 301, 302, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
35, 0, 0, 0, 6, 0, 0, 0, 243, 0,
|
|
0, 0, 0, 244, 0, 0, 0, 0, 184, 17,
|
|
69, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 210, 0, 0, 247, 0, 0, 0, 0,
|
|
409, 410, 0, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 0, 0, 411, 412, 413, 414, 415, 416,
|
|
417, 418, 419, 420, 421, 0, 0, 0, 0, 0,
|
|
0, 0, 285, 17, 69, 286, 287, 0, 288, 289,
|
|
290, 291, 0, 292, 293, 294, 295, 296, 297, 298,
|
|
299, 35, 0, 0, 0, 6, 39, 40, 41, 42,
|
|
0, 0, 0, 0, 0, 0, 49, 0, 0, 0,
|
|
0, 0, 55, 56, 57, 58, 59, 60, 0, 0,
|
|
0, 218, 0, 160, 0, 0, 0, 0, 0, 0,
|
|
500, 301, 302, 0, 0, 501, 0, 0, 0, 0,
|
|
184, 0, 0, 185, 186, 187, 188, 189, 190, 191,
|
|
192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 17, 69, 195, 196, 197, 198,
|
|
199, 200, 201, 202, 502, 0, 0, 0, 0, 503,
|
|
0, 0, 0, 0, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 504, 0,
|
|
0, 0, 0, 505, 0, 0, 0, 0, 184, 0,
|
|
0, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 343, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 184, 0, 0, 185, 186, 187, 188, 189,
|
|
190, 191, 192, 193, 194, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 344, 0, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
345, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
184, 0, 0, 185, 186, 187, 188, 189, 190, 191,
|
|
192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 346, 0, 195, 196, 197, 198,
|
|
199, 200, 201, 202, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 347, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 184, 0,
|
|
0, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 348, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 184, 0, 0, 185, 186, 187, 188, 189,
|
|
190, 191, 192, 193, 194, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 349, 0, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
350, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
184, 0, 0, 185, 186, 187, 188, 189, 190, 191,
|
|
192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 351, 0, 195, 196, 197, 198,
|
|
199, 200, 201, 202, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 352, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 184, 0,
|
|
0, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 353, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 184, 0, 0, 185, 186, 187, 188, 189,
|
|
190, 191, 192, 193, 194, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 354, 0, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
355, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
184, 0, 0, 185, 186, 187, 188, 189, 190, 191,
|
|
192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 356, 0, 195, 196, 197, 198,
|
|
199, 200, 201, 202, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 357, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 184, 0,
|
|
0, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 359, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 184, 0, 0, 185, 186, 187, 188, 189,
|
|
190, 191, 192, 193, 194, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 243, 0, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
467, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
184, 0, 0, 185, 186, 187, 188, 189, 190, 191,
|
|
192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 468, 0, 195, 196, 197, 198,
|
|
199, 200, 201, 202, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 472, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 184, 0,
|
|
0, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 474, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 184, 0, 0, 185, 186, 187, 188, 189,
|
|
190, 191, 192, 193, 194, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 478, 0, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
487, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
184, 0, 0, 185, 186, 187, 188, 189, 190, 191,
|
|
192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 499, 0, 195, 196, 197, 198,
|
|
199, 200, 201, 202, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 509, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 184, 0,
|
|
0, 185, 186, 187, 188, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 511, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 184, 0, 0, 185, 186, 187, 188, 189,
|
|
190, 191, 192, 193, 194, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 531, 0, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
367, 0, 0, 0, 0, 0, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
368, 0, 0, 0, 0, 0, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
369, 0, 0, 0, 0, 0, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
370, 0, 0, 0, 0, 0, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
371, 0, 0, 0, 0, 0, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
422, 0, 0, 0, 0, 0, 184, 0, 0, 185,
|
|
186, 187, 188, 189, 190, 191, 192, 193, 194, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 195, 196, 197, 198, 199, 200, 201, 202,
|
|
342, 0, 0, 0, 0, 184, 0, 0, 185, 186,
|
|
187, 188, 189, 190, 191, 192, 193, 194, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 195, 196, 197, 198, 199, 200, 201, 202, 358,
|
|
0, 0, 0, 0, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 427, 0,
|
|
0, 0, 0, 184, 0, 0, 185, 186, 187, 188,
|
|
189, 190, 191, 192, 193, 194, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
|
|
196, 197, 198, 199, 200, 201, 202, 363, 0, 184,
|
|
0, 0, 185, 186, 187, 188, 189, 190, 191, 192,
|
|
193, 194, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 195, 196, 197, 198, 199,
|
|
200, 201, 202, 183, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 434, 184,
|
|
0, 0, 185, 186, 187, 188, 189, 190, 191, 192,
|
|
193, 194, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 195, 196, 197, 198, 199,
|
|
200, 201, 202, 447, 184, 0, 0, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 184, 0, 0,
|
|
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
|
|
195, 196, 197, 198, 199, 200, 201, 202, 0, 0,
|
|
0, 0, 0, 195, 196, 197, 198, 199, 200, 201,
|
|
202, 185, 186, 0, 0, 189, 190, 191, 192, 193,
|
|
194, 185, 186, 0, 0, 189, 190, 191, 192, 193,
|
|
194, 0, 0, 0, 195, 196, 197, 198, 199, 200,
|
|
201, 202, 0, 0, 0, 196, 197, 198, 199, 200,
|
|
201, 202, 185, 186, 0, 0, 189, 190, 191, 192,
|
|
193, 194, 185, 186, 0, 0, 189, 190, 191, 192,
|
|
193, 194, 0, 0, 0, 0, 196, 0, 198, 199,
|
|
200, 201, 202, 0, 0, 0, 0, 0, 198, 199,
|
|
200, 201, 202
|
|
};
|
|
|
|
const short
|
|
parser::yycheck_[] =
|
|
{
|
|
0, 129, 21, 284, 67, 383, 109, 288, 215, 9,
|
|
383, 3, 4, 383, 42, 222, 109, 42, 66, 0,
|
|
67, 11, 12, 13, 14, 15, 26, 66, 38, 67,
|
|
29, 67, 42, 38, 72, 35, 72, 42, 43, 44,
|
|
45, 46, 38, 35, 92, 67, 42, 76, 53, 76,
|
|
72, 67, 42, 113, 59, 60, 61, 62, 63, 64,
|
|
70, 66, 38, 73, 64, 70, 42, 67, 111, 112,
|
|
66, 66, 175, 72, 70, 67, 67, 73, 67, 112,
|
|
67, 72, 175, 107, 112, 72, 38, 112, 38, 113,
|
|
42, 66, 42, 117, 70, 67, 377, 73, 66, 38,
|
|
72, 111, 112, 42, 70, 71, 111, 112, 67, 109,
|
|
42, 116, 117, 72, 67, 111, 112, 109, 70, 72,
|
|
70, 73, 112, 73, 108, 109, 110, 74, 78, 79,
|
|
130, 70, 510, 66, 73, 111, 112, 510, 70, 66,
|
|
510, 66, 92, 93, 94, 95, 96, 97, 98, 99,
|
|
100, 101, 102, 67, 66, 218, 66, 66, 72, 111,
|
|
112, 111, 112, 70, 501, 66, 503, 374, 505, 66,
|
|
66, 218, 111, 112, 66, 175, 66, 66, 38, 111,
|
|
112, 66, 42, 175, 66, 66, 66, 394, 395, 76,
|
|
74, 472, 70, 474, 70, 70, 38, 70, 70, 70,
|
|
42, 68, 218, 106, 107, 108, 109, 110, 38, 70,
|
|
70, 66, 42, 73, 67, 74, 216, 424, 218, 70,
|
|
74, 284, 66, 223, 112, 288, 218, 508, 70, 66,
|
|
511, 73, 66, 76, 337, 66, 75, 284, 301, 302,
|
|
70, 288, 305, 73, 337, 66, 66, 66, 248, 530,
|
|
531, 111, 112, 76, 301, 302, 66, 66, 305, 76,
|
|
76, 76, 76, 470, 67, 76, 66, 71, 284, 111,
|
|
112, 76, 288, 26, 293, 66, 117, 75, 485, 75,
|
|
66, 111, 112, 66, 284, 301, 302, 66, 288, 305,
|
|
71, 38, 284, 396, 397, 42, 288, 66, 66, 76,
|
|
66, 301, 302, 396, 397, 305, 76, 24, 38, 301,
|
|
302, 76, 42, 305, 377, 76, 76, 29, 76, 76,
|
|
383, 76, 76, 70, 72, 38, 73, 67, 67, 42,
|
|
377, 67, 67, 76, 76, 76, 383, 337, 9, 442,
|
|
70, 9, 9, 73, 305, 337, 510, 38, 67, 442,
|
|
478, 42, 43, 44, 45, 46, 67, 70, 293, -1,
|
|
73, 377, 53, -1, 111, 112, -1, 383, 59, 60,
|
|
61, 62, 63, 64, -1, -1, -1, 377, -1, 70,
|
|
-1, 111, 112, 383, 384, 377, -1, 78, 79, -1,
|
|
-1, 383, -1, -1, -1, -1, 396, 397, 111, 112,
|
|
-1, -1, -1, -1, 396, 397, 80, 81, -1, 472,
|
|
-1, 474, -1, -1, -1, 218, -1, -1, -1, -1,
|
|
111, 112, -1, -1, -1, 472, -1, 474, -1, -1,
|
|
67, -1, 106, 107, 108, 109, 110, -1, -1, -1,
|
|
27, 67, 442, -1, -1, 508, -1, 510, 511, -1,
|
|
442, -1, -1, -1, -1, -1, 472, -1, 474, -1,
|
|
-1, 508, -1, 510, 511, -1, -1, 530, 531, -1,
|
|
-1, -1, 472, -1, 474, 62, -1, 477, 65, 66,
|
|
472, 284, 474, 530, 531, 288, -1, -1, -1, -1,
|
|
-1, -1, 508, -1, 510, 511, -1, -1, 301, 302,
|
|
-1, 67, 305, -1, -1, -1, -1, 218, 508, -1,
|
|
510, 511, -1, -1, 530, 531, 508, -1, 510, 511,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
530, 531, -1, -1, -1, -1, -1, -1, 530, 531,
|
|
-1, -1, -1, 67, -1, -1, -1, 134, 135, 136,
|
|
137, 138, 139, 140, 141, 142, 143, -1, 145, 146,
|
|
147, 148, 149, 150, 151, 152, -1, 154, -1, -1,
|
|
-1, -1, 159, 284, 377, -1, -1, 288, -1, -1,
|
|
383, 218, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
301, 302, 218, -1, 305, -1, -1, 184, 185, 186,
|
|
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
|
|
207, 208, 209, 210, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 221, -1, -1, -1, -1, -1,
|
|
-1, 67, -1, -1, -1, -1, -1, 284, -1, -1,
|
|
-1, 288, 218, -1, -1, -1, -1, 244, 284, -1,
|
|
-1, -1, 288, -1, 301, 302, 377, -1, 305, 472,
|
|
-1, 474, 383, -1, -1, 301, 302, -1, -1, 305,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 275, -1,
|
|
-1, -1, 67, -1, 218, -1, -1, -1, 285, -1,
|
|
-1, 67, -1, -1, -1, 508, -1, 510, 511, -1,
|
|
297, -1, -1, -1, -1, -1, -1, -1, 284, -1,
|
|
-1, -1, 288, -1, -1, -1, -1, 530, 531, -1,
|
|
-1, -1, -1, -1, -1, 301, 302, -1, -1, 305,
|
|
377, 67, -1, -1, -1, -1, 383, -1, -1, -1,
|
|
-1, 377, -1, -1, -1, 342, 67, 383, -1, -1,
|
|
284, 472, -1, 474, 288, -1, -1, -1, -1, -1,
|
|
-1, 358, -1, -1, -1, -1, 363, 301, 302, -1,
|
|
-1, 305, -1, -1, -1, -1, 373, -1, -1, -1,
|
|
-1, -1, 218, 380, -1, 382, -1, 508, 385, 510,
|
|
511, 67, -1, -1, -1, -1, -1, -1, -1, 67,
|
|
-1, 377, -1, -1, -1, -1, -1, 383, -1, 530,
|
|
531, -1, -1, -1, 411, 412, 413, 414, 415, 416,
|
|
417, 418, 419, 420, 421, 472, -1, 474, -1, -1,
|
|
427, -1, -1, 218, -1, -1, 472, -1, 474, -1,
|
|
-1, -1, 218, 377, -1, -1, -1, -1, 284, 383,
|
|
-1, -1, 288, 450, 451, 452, 453, -1, -1, -1,
|
|
-1, 508, -1, 510, 511, 301, 302, -1, -1, 305,
|
|
-1, -1, 508, -1, 510, 511, 473, -1, 475, 476,
|
|
-1, -1, 218, 530, 531, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 530, 531, 472, 218, 474, 284,
|
|
-1, -1, -1, 288, -1, -1, -1, -1, 284, -1,
|
|
-1, -1, 288, -1, -1, 512, 301, 302, -1, -1,
|
|
305, -1, -1, -1, -1, 301, 302, -1, -1, 305,
|
|
-1, -1, 508, -1, 510, 511, -1, -1, 472, -1,
|
|
474, 377, 218, -1, -1, -1, -1, 383, 284, -1,
|
|
218, -1, 288, -1, 530, 531, -1, -1, -1, -1,
|
|
-1, -1, -1, 284, -1, 301, 302, 288, -1, 305,
|
|
-1, -1, -1, -1, 508, -1, 510, 511, -1, -1,
|
|
301, 302, -1, -1, 305, -1, -1, -1, -1, -1,
|
|
-1, -1, 377, -1, -1, -1, 530, 531, 383, -1,
|
|
-1, 377, -1, -1, -1, -1, -1, 383, 284, -1,
|
|
-1, -1, 288, -1, -1, -1, 284, -1, -1, -1,
|
|
288, -1, -1, -1, -1, 301, 302, -1, -1, 305,
|
|
-1, -1, -1, 301, 302, -1, 472, 305, 474, -1,
|
|
-1, 377, -1, -1, 38, -1, -1, 383, 42, 43,
|
|
44, 45, 46, -1, -1, -1, 377, -1, -1, 53,
|
|
-1, -1, 383, -1, -1, 59, 60, 61, 62, 63,
|
|
64, -1, 508, -1, 510, 511, 70, -1, -1, -1,
|
|
-1, -1, -1, -1, 80, 81, -1, 472, -1, 474,
|
|
86, 87, 88, 89, 530, 531, 472, -1, 474, -1,
|
|
-1, 377, -1, -1, -1, -1, -1, 383, -1, 377,
|
|
106, 107, 108, 109, 110, 383, -1, 111, 112, -1,
|
|
-1, -1, -1, 508, -1, 510, 511, -1, -1, -1,
|
|
-1, -1, 508, -1, 510, 511, 472, -1, 474, -1,
|
|
-1, -1, -1, -1, -1, 530, 531, -1, -1, -1,
|
|
-1, 472, -1, 474, 530, 531, 80, 81, -1, 83,
|
|
84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
|
|
-1, -1, 508, -1, 510, 511, -1, -1, -1, 103,
|
|
104, 105, 106, 107, 108, 109, 110, 508, -1, 510,
|
|
511, -1, -1, -1, 530, 531, 472, -1, 474, -1,
|
|
-1, -1, -1, -1, 472, -1, 474, -1, -1, 530,
|
|
531, -1, -1, 71, -1, -1, -1, -1, -1, 77,
|
|
-1, -1, 80, 81, 82, 83, 84, 85, 86, 87,
|
|
88, 89, 508, -1, 510, 511, -1, -1, -1, -1,
|
|
508, -1, 510, 511, 16, 103, 104, 105, 106, 107,
|
|
108, 109, 110, -1, 530, 531, -1, -1, -1, -1,
|
|
-1, -1, 530, 531, -1, -1, 38, 39, 40, 41,
|
|
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
|
|
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
|
|
62, 63, 64, 65, 66, 71, -1, -1, 70, 71,
|
|
-1, 77, 74, -1, 80, 81, 82, 83, 84, 85,
|
|
86, 87, 88, 89, -1, -1, -1, -1, 90, 91,
|
|
-1, -1, -1, -1, 16, -1, -1, 103, 104, 105,
|
|
106, 107, 108, 109, 110, 107, -1, -1, 110, 111,
|
|
112, 113, 114, 115, 116, 117, 38, 39, 40, 41,
|
|
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
|
|
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
|
|
62, 63, 64, 65, 66, -1, -1, -1, 70, -1,
|
|
-1, -1, 74, -1, 76, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
|
|
-1, -1, -1, -1, 16, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 107, -1, -1, 110, 111,
|
|
112, 113, 114, 115, 116, 117, 38, 39, 40, 41,
|
|
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
|
|
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
|
|
62, 63, 64, 65, 66, 71, -1, -1, 70, -1,
|
|
-1, 77, 74, -1, 80, 81, 82, 83, 84, 85,
|
|
86, 87, 88, 89, -1, -1, -1, -1, 90, 91,
|
|
-1, -1, -1, -1, 16, -1, -1, 103, 104, 105,
|
|
106, 107, 108, 109, 110, 107, -1, -1, 110, 111,
|
|
112, 113, 114, 115, 116, 117, 38, 39, 40, 41,
|
|
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
|
|
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
|
|
62, 63, 64, 65, 66, 71, -1, -1, 70, -1,
|
|
-1, 77, 74, -1, 80, 81, 82, 83, 84, 85,
|
|
86, 87, 88, 89, -1, -1, -1, -1, 90, 91,
|
|
-1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
|
|
106, 107, 108, 109, 110, 107, -1, -1, 110, 111,
|
|
112, 113, 114, 115, 116, 117, 11, -1, -1, -1,
|
|
-1, -1, -1, -1, 19, -1, -1, 22, 23, -1,
|
|
25, 26, 27, 28, -1, 30, 31, 32, 33, 34,
|
|
35, 36, 37, 38, -1, -1, -1, 42, 43, 44,
|
|
45, 46, -1, -1, -1, -1, -1, -1, 53, -1,
|
|
-1, -1, -1, -1, 59, 60, 61, 62, 63, 64,
|
|
-1, -1, -1, 68, 69, 70, -1, 11, -1, -1,
|
|
-1, -1, -1, 78, 79, 19, -1, -1, 22, 23,
|
|
-1, 25, 26, 27, 28, -1, 30, 31, 32, 33,
|
|
34, 35, 36, 37, 38, -1, -1, -1, 42, 43,
|
|
44, 45, 46, -1, -1, -1, 111, 112, -1, 53,
|
|
-1, -1, -1, -1, -1, 59, 60, 61, 62, 63,
|
|
64, -1, -1, -1, 68, 69, 70, -1, -1, 12,
|
|
-1, -1, -1, -1, 78, 79, 19, -1, -1, 22,
|
|
23, -1, 25, 26, 27, 28, -1, 30, 31, 32,
|
|
33, 34, 35, 36, 37, 38, -1, -1, -1, 42,
|
|
43, 44, 45, 46, -1, -1, -1, 111, 112, -1,
|
|
53, -1, -1, -1, -1, -1, 59, 60, 61, 62,
|
|
63, 64, -1, -1, -1, 68, -1, 70, -1, -1,
|
|
12, -1, -1, -1, -1, 78, 79, 19, -1, -1,
|
|
22, 23, -1, 25, 26, 27, 28, -1, 30, 31,
|
|
32, 33, 34, 35, 36, 37, 38, -1, -1, -1,
|
|
42, 43, 44, 45, 46, -1, -1, -1, 111, 112,
|
|
-1, 53, -1, -1, -1, -1, -1, 59, 60, 61,
|
|
62, 63, 64, -1, -1, -1, 68, -1, 70, 17,
|
|
18, -1, 20, 21, -1, -1, 78, 79, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
38, -1, -1, -1, 42, -1, -1, -1, 67, -1,
|
|
-1, -1, -1, 72, -1, -1, -1, -1, 77, 111,
|
|
112, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, 70, -1, -1, 73, -1, -1, -1, -1,
|
|
78, 79, -1, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, -1, -1, 92, 93, 94, 95, 96, 97,
|
|
98, 99, 100, 101, 102, -1, -1, -1, -1, -1,
|
|
-1, -1, 19, 111, 112, 22, 23, -1, 25, 26,
|
|
27, 28, -1, 30, 31, 32, 33, 34, 35, 36,
|
|
37, 38, -1, -1, -1, 42, 43, 44, 45, 46,
|
|
-1, -1, -1, -1, -1, -1, 53, -1, -1, -1,
|
|
-1, -1, 59, 60, 61, 62, 63, 64, -1, -1,
|
|
-1, 68, -1, 70, -1, -1, -1, -1, -1, -1,
|
|
67, 78, 79, -1, -1, 72, -1, -1, -1, -1,
|
|
77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
|
|
87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 111, 112, 103, 104, 105, 106,
|
|
107, 108, 109, 110, 67, -1, -1, -1, -1, 72,
|
|
-1, -1, -1, -1, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 67, -1,
|
|
-1, -1, -1, 72, -1, -1, -1, -1, 77, -1,
|
|
-1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 67, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 77, -1, -1, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 67, -1, 103, 104,
|
|
105, 106, 107, 108, 109, 110, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
67, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
|
|
87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 67, -1, 103, 104, 105, 106,
|
|
107, 108, 109, 110, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 77, -1,
|
|
-1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 67, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 77, -1, -1, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 67, -1, 103, 104,
|
|
105, 106, 107, 108, 109, 110, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
67, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
|
|
87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 67, -1, 103, 104, 105, 106,
|
|
107, 108, 109, 110, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 77, -1,
|
|
-1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 67, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 77, -1, -1, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 67, -1, 103, 104,
|
|
105, 106, 107, 108, 109, 110, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
67, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
|
|
87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 67, -1, 103, 104, 105, 106,
|
|
107, 108, 109, 110, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 77, -1,
|
|
-1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 67, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 77, -1, -1, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 67, -1, 103, 104,
|
|
105, 106, 107, 108, 109, 110, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
67, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
|
|
87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 67, -1, 103, 104, 105, 106,
|
|
107, 108, 109, 110, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 77, -1,
|
|
-1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 67, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 77, -1, -1, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 67, -1, 103, 104,
|
|
105, 106, 107, 108, 109, 110, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
67, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
77, -1, -1, 80, 81, 82, 83, 84, 85, 86,
|
|
87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 67, -1, 103, 104, 105, 106,
|
|
107, 108, 109, 110, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 77, -1,
|
|
-1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 67, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, 77, -1, -1, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 67, -1, 103, 104,
|
|
105, 106, 107, 108, 109, 110, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
71, -1, -1, -1, -1, -1, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
71, -1, -1, -1, -1, -1, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
71, -1, -1, -1, -1, -1, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
71, -1, -1, -1, -1, -1, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
71, -1, -1, -1, -1, -1, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
71, -1, -1, -1, -1, -1, 77, -1, -1, 80,
|
|
81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
|
|
72, -1, -1, -1, -1, 77, -1, -1, 80, 81,
|
|
82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 103, 104, 105, 106, 107, 108, 109, 110, 72,
|
|
-1, -1, -1, -1, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 72, -1,
|
|
-1, -1, -1, 77, -1, -1, 80, 81, 82, 83,
|
|
84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
|
|
104, 105, 106, 107, 108, 109, 110, 75, -1, 77,
|
|
-1, -1, 80, 81, 82, 83, 84, 85, 86, 87,
|
|
88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 103, 104, 105, 106, 107,
|
|
108, 109, 110, 76, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
103, 104, 105, 106, 107, 108, 109, 110, 76, 77,
|
|
-1, -1, 80, 81, 82, 83, 84, 85, 86, 87,
|
|
88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 103, 104, 105, 106, 107,
|
|
108, 109, 110, 76, 77, -1, -1, 80, 81, 82,
|
|
83, 84, 85, 86, 87, 88, 89, 77, -1, -1,
|
|
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
|
|
103, 104, 105, 106, 107, 108, 109, 110, -1, -1,
|
|
-1, -1, -1, 103, 104, 105, 106, 107, 108, 109,
|
|
110, 80, 81, -1, -1, 84, 85, 86, 87, 88,
|
|
89, 80, 81, -1, -1, 84, 85, 86, 87, 88,
|
|
89, -1, -1, -1, 103, 104, 105, 106, 107, 108,
|
|
109, 110, -1, -1, -1, 104, 105, 106, 107, 108,
|
|
109, 110, 80, 81, -1, -1, 84, 85, 86, 87,
|
|
88, 89, 80, 81, -1, -1, 84, 85, 86, 87,
|
|
88, 89, -1, -1, -1, -1, 104, -1, 106, 107,
|
|
108, 109, 110, -1, -1, -1, -1, -1, 106, 107,
|
|
108, 109, 110
|
|
};
|
|
|
|
const unsigned char
|
|
parser::yystos_[] =
|
|
{
|
|
0, 11, 12, 13, 14, 15, 42, 112, 128, 129,
|
|
130, 131, 132, 133, 134, 135, 217, 111, 112, 218,
|
|
218, 66, 0, 130, 131, 132, 66, 92, 76, 76,
|
|
113, 220, 180, 217, 16, 38, 39, 40, 41, 43,
|
|
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
|
|
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
|
|
64, 65, 66, 70, 74, 90, 91, 107, 110, 112,
|
|
114, 115, 116, 117, 165, 170, 171, 172, 173, 174,
|
|
175, 176, 177, 178, 179, 183, 184, 185, 186, 187,
|
|
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
|
|
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
|
|
208, 209, 210, 211, 212, 213, 214, 215, 217, 218,
|
|
219, 220, 221, 222, 223, 224, 225, 226, 67, 67,
|
|
72, 70, 217, 218, 66, 66, 66, 66, 66, 66,
|
|
66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
|
|
66, 66, 66, 165, 70, 71, 217, 165, 165, 66,
|
|
70, 116, 117, 176, 177, 189, 195, 196, 197, 198,
|
|
199, 200, 203, 204, 206, 207, 210, 211, 212, 213,
|
|
217, 218, 112, 76, 77, 80, 81, 82, 83, 84,
|
|
85, 86, 87, 88, 89, 103, 104, 105, 106, 107,
|
|
108, 109, 110, 70, 70, 70, 70, 70, 70, 70,
|
|
70, 73, 178, 179, 217, 66, 74, 76, 68, 141,
|
|
217, 70, 66, 74, 165, 165, 165, 165, 165, 165,
|
|
165, 165, 165, 165, 67, 165, 165, 165, 165, 165,
|
|
165, 165, 165, 67, 72, 165, 165, 73, 74, 165,
|
|
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
|
|
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
|
|
165, 165, 165, 165, 165, 70, 165, 42, 112, 216,
|
|
165, 181, 182, 217, 11, 19, 22, 23, 25, 26,
|
|
27, 28, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
69, 78, 79, 136, 137, 139, 140, 141, 143, 144,
|
|
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
|
|
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
|
|
167, 168, 169, 176, 177, 203, 204, 207, 217, 165,
|
|
181, 217, 72, 67, 67, 67, 67, 67, 67, 67,
|
|
67, 67, 67, 67, 67, 67, 67, 67, 72, 67,
|
|
165, 71, 217, 75, 71, 71, 71, 71, 71, 71,
|
|
71, 71, 67, 72, 66, 12, 136, 138, 165, 76,
|
|
66, 136, 66, 66, 66, 66, 107, 220, 224, 75,
|
|
76, 76, 76, 165, 66, 66, 207, 207, 69, 137,
|
|
76, 76, 76, 76, 76, 17, 18, 20, 21, 78,
|
|
79, 92, 93, 94, 95, 96, 97, 98, 99, 100,
|
|
101, 102, 71, 67, 66, 165, 165, 72, 71, 165,
|
|
165, 181, 12, 136, 76, 165, 26, 165, 142, 167,
|
|
168, 169, 207, 217, 165, 75, 75, 76, 181, 181,
|
|
66, 66, 66, 66, 165, 165, 165, 165, 165, 165,
|
|
165, 165, 165, 165, 165, 71, 181, 67, 67, 165,
|
|
66, 67, 67, 66, 67, 76, 29, 72, 67, 67,
|
|
67, 165, 165, 165, 165, 66, 67, 67, 181, 136,
|
|
165, 136, 165, 166, 165, 217, 141, 76, 76, 67,
|
|
67, 72, 67, 72, 67, 72, 181, 67, 24, 67,
|
|
76, 67, 29, 76, 76, 181, 182, 76, 182, 76,
|
|
182, 67, 136, 76, 142, 136, 165, 67, 67, 67,
|
|
67, 67, 76, 76, 76, 136, 136
|
|
};
|
|
|
|
const unsigned char
|
|
parser::yyr1_[] =
|
|
{
|
|
0, 127, 128, 128, 129, 129, 129, 129, 129, 129,
|
|
130, 131, 132, 132, 132, 132, 132, 133, 134, 135,
|
|
136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
|
|
136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
|
|
136, 136, 136, 137, 137, 138, 138, 139, 139, 140,
|
|
140, 141, 141, 142, 142, 142, 142, 143, 143, 144,
|
|
144, 144, 145, 146, 146, 147, 148, 148, 149, 149,
|
|
150, 151, 152, 153, 154, 155, 156, 156, 157, 158,
|
|
158, 159, 160, 161, 162, 162, 163, 164, 165, 165,
|
|
165, 166, 166, 167, 167, 167, 167, 167, 167, 167,
|
|
167, 167, 167, 167, 168, 168, 169, 169, 170, 171,
|
|
171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
|
|
171, 171, 171, 171, 171, 171, 171, 172, 172, 172,
|
|
172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
|
|
172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
|
|
172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
|
|
172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
|
|
172, 172, 172, 173, 174, 174, 174, 174, 175, 176,
|
|
176, 177, 177, 178, 178, 178, 178, 179, 179, 180,
|
|
180, 180, 181, 181, 182, 182, 183, 184, 185, 186,
|
|
187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
|
|
197, 198, 199, 200, 201, 202, 202, 203, 203, 203,
|
|
203, 203, 203, 203, 203, 204, 205, 206, 207, 207,
|
|
207, 207, 207, 207, 207, 207, 207, 208, 209, 210,
|
|
211, 212, 213, 214, 215, 216, 217, 217, 218, 218,
|
|
219, 220, 221, 222, 223, 223, 224, 224, 225, 226
|
|
};
|
|
|
|
const signed char
|
|
parser::yyr2_[] =
|
|
{
|
|
0, 2, 1, 0, 2, 2, 2, 1, 1, 1,
|
|
3, 3, 1, 1, 1, 1, 1, 5, 4, 5,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 2, 1, 2, 1, 3,
|
|
2, 3, 2, 1, 1, 1, 0, 2, 2, 2,
|
|
2, 2, 6, 8, 6, 3, 8, 6, 8, 6,
|
|
2, 5, 7, 5, 7, 9, 7, 9, 5, 3,
|
|
3, 2, 2, 2, 3, 2, 5, 5, 1, 1,
|
|
1, 1, 0, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 2, 2, 2, 2, 5, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 2, 2, 2, 2, 2, 2, 1,
|
|
1, 2, 2, 4, 6, 5, 7, 8, 9, 3,
|
|
1, 0, 1, 0, 3, 1, 6, 4, 4, 4,
|
|
4, 4, 4, 4, 4, 4, 3, 4, 4, 4,
|
|
4, 4, 4, 6, 4, 2, 3, 4, 4, 4,
|
|
4, 4, 4, 4, 4, 3, 3, 3, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
|
|
1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 7, 1, 2, 1, 2, 1, 1, 1
|
|
};
|
|
|
|
|
|
|
|
|
|
#if T6DEBUG
|
|
const short
|
|
parser::yyrline_[] =
|
|
{
|
|
0, 290, 290, 291, 295, 297, 299, 301, 303, 305,
|
|
310, 314, 319, 320, 321, 322, 323, 327, 332, 337,
|
|
342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
|
|
352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
|
|
362, 363, 364, 368, 369, 373, 375, 380, 382, 387,
|
|
388, 392, 393, 397, 399, 401, 404, 408, 410, 415,
|
|
417, 419, 424, 429, 431, 436, 441, 443, 448, 450,
|
|
455, 460, 465, 470, 475, 480, 485, 487, 492, 497,
|
|
499, 504, 509, 514, 519, 521, 526, 531, 536, 537,
|
|
538, 542, 543, 547, 549, 551, 553, 555, 557, 559,
|
|
561, 563, 565, 567, 572, 574, 579, 581, 586, 591,
|
|
593, 595, 597, 599, 601, 603, 605, 607, 609, 611,
|
|
613, 615, 617, 619, 621, 623, 625, 630, 631, 632,
|
|
633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
|
|
643, 644, 645, 646, 647, 648, 649, 650, 651, 652,
|
|
653, 654, 655, 656, 657, 658, 659, 660, 661, 662,
|
|
663, 664, 665, 666, 667, 668, 669, 670, 671, 672,
|
|
673, 674, 675, 679, 684, 686, 688, 690, 695, 700,
|
|
701, 704, 705, 709, 711, 713, 715, 720, 722, 727,
|
|
729, 732, 736, 739, 743, 745, 750, 755, 760, 765,
|
|
770, 775, 780, 785, 790, 795, 800, 805, 810, 815,
|
|
820, 825, 830, 835, 840, 845, 847, 852, 854, 856,
|
|
858, 860, 862, 864, 866, 871, 876, 881, 886, 887,
|
|
888, 889, 890, 891, 892, 893, 894, 898, 903, 908,
|
|
913, 918, 923, 928, 933, 938, 943, 945, 950, 952,
|
|
957, 962, 967, 972, 977, 979, 984, 986, 991, 996
|
|
};
|
|
|
|
void
|
|
parser::yy_stack_print_ () const
|
|
{
|
|
*yycdebug_ << "Stack now";
|
|
for (stack_type::const_iterator
|
|
i = yystack_.begin (),
|
|
i_end = yystack_.end ();
|
|
i != i_end; ++i)
|
|
*yycdebug_ << ' ' << int (i->state);
|
|
*yycdebug_ << '\n';
|
|
}
|
|
|
|
void
|
|
parser::yy_reduce_print_ (int yyrule) const
|
|
{
|
|
int yylno = yyrline_[yyrule];
|
|
int yynrhs = yyr2_[yyrule];
|
|
// Print the symbols being reduced, and their result.
|
|
*yycdebug_ << "Reducing stack by rule " << yyrule - 1
|
|
<< " (line " << yylno << "):\n";
|
|
// The symbols being reduced.
|
|
for (int yyi = 0; yyi < yynrhs; yyi++)
|
|
YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
|
|
yystack_[(yynrhs) - (yyi + 1)]);
|
|
}
|
|
#endif // T6DEBUG
|
|
|
|
|
|
#line 13 "parser.ypp"
|
|
} } } // xsk::arc::t6
|
|
#line 5453 "parser.cpp"
|
|
|
|
#line 1000 "parser.ypp"
|
|
|
|
|
|
void xsk::arc::t6::parser::error(const xsk::arc::location& loc, const std::string& msg)
|
|
{
|
|
throw xsk::arc::comp_error(loc, msg);
|
|
}
|