From 90cfdee3503b689ede8779cbdedf7da8f0beb2db Mon Sep 17 00:00:00 2001 From: sebastien Date: Wed, 30 Jan 2008 14:37:42 +0000 Subject: [PATCH] v4 parser: * removed files generated by Flex and Bison from SVN * adapted Makefiles accordingly git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1676 ac1d8469-bf42-47a9-8791-bf33cf982152 --- parser.src/DynareBison.cc | 4491 ----------------------------- parser.src/DynareFlex.cc | 4074 -------------------------- parser.src/FlexLexer.h | 205 -- parser.src/Makefile | 19 +- parser.src/include/DynareBison.hh | 526 ---- parser.src/include/location.hh | 145 - parser.src/include/position.hh | 142 - parser.src/include/stack.hh | 129 - parser.src/macro/MacroBison.cc | 829 ------ parser.src/macro/MacroBison.hh | 302 -- parser.src/macro/MacroFlex.cc | 1989 ------------- parser.src/macro/Makefile | 15 +- parser.src/macro/location.hh | 145 - parser.src/macro/position.hh | 142 - parser.src/macro/stack.hh | 129 - 15 files changed, 17 insertions(+), 13265 deletions(-) delete mode 100644 parser.src/DynareBison.cc delete mode 100644 parser.src/DynareFlex.cc delete mode 100644 parser.src/FlexLexer.h delete mode 100644 parser.src/include/DynareBison.hh delete mode 100644 parser.src/include/location.hh delete mode 100644 parser.src/include/position.hh delete mode 100644 parser.src/include/stack.hh delete mode 100644 parser.src/macro/MacroBison.cc delete mode 100644 parser.src/macro/MacroBison.hh delete mode 100644 parser.src/macro/MacroFlex.cc delete mode 100644 parser.src/macro/location.hh delete mode 100644 parser.src/macro/position.hh delete mode 100644 parser.src/macro/stack.hh diff --git a/parser.src/DynareBison.cc b/parser.src/DynareBison.cc deleted file mode 100644 index 2c3b29121..000000000 --- a/parser.src/DynareBison.cc +++ /dev/null @@ -1,4491 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton implementation for Bison LALR(1) parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -// Take the name prefix into account. -#define yylex Dynarelex - -#include "DynareBison.hh" - -/* User implementation prologue. */ -#line 66 "DynareBison.yy" - -#include "ParsingDriver.hh" - -/* this "connects" the bison parser in the driver to the flex scanner class - * object. it defines the yylex() function call to pull the next token from the - * current lexer object of the driver context. */ -#undef yylex -#define yylex driver.lexer->lex - - -/* Line 317 of lalr1.cc. */ -#line 54 "DynareBison.cc" - -#ifndef YY_ -# if YYENABLE_NLS -# if ENABLE_NLS -# include /* FIXME: INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#define YYUSE(e) ((void) (e)) - -/* A pseudo ostream that takes yydebug_ into account. */ -# define YYCDEBUG \ - for (bool yydebugcond_ = yydebug_; yydebugcond_; yydebugcond_ = false) \ - (*yycdebug_) - -/* Enable debugging if requested. */ -#if YYDEBUG - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug_) \ - { \ - *yycdebug_ << Title << ' '; \ - yy_symbol_print_ ((Type), (Value), (Location)); \ - *yycdebug_ << std::endl; \ - } \ -} while (false) - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug_) \ - yy_reduce_print_ (Rule); \ -} while (false) - -# define YY_STACK_PRINT() \ -do { \ - if (yydebug_) \ - yystack_print_ (); \ -} while (false) - -#else /* !YYDEBUG */ - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_REDUCE_PRINT(Rule) -# define YY_STACK_PRINT() - -#endif /* !YYDEBUG */ - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - -namespace Dynare -{ -#if YYERROR_VERBOSE - - /* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ - std::string - parser::yytnamerr_ (const char *yystr) - { - if (*yystr == '"') - { - std::string yyr = ""; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; - } - -#endif - - /// Build a parser object. - parser::parser (ParsingDriver &driver_yyarg) - : yydebug_ (false), - yycdebug_ (&std::cerr), - driver (driver_yyarg) - { - } - - parser::~parser () - { - } - -#if YYDEBUG - /*--------------------------------. - | Print this symbol on YYOUTPUT. | - `--------------------------------*/ - - inline void - parser::yy_symbol_value_print_ (int yytype, - const semantic_type* yyvaluep, const location_type* yylocationp) - { - YYUSE (yylocationp); - YYUSE (yyvaluep); - switch (yytype) - { - default: - break; - } - } - - - void - parser::yy_symbol_print_ (int yytype, - const semantic_type* yyvaluep, const location_type* yylocationp) - { - *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm") - << ' ' << yytname_[yytype] << " (" - << *yylocationp << ": "; - yy_symbol_value_print_ (yytype, yyvaluep, yylocationp); - *yycdebug_ << ')'; - } -#endif /* ! YYDEBUG */ - - void - parser::yydestruct_ (const char* yymsg, - int yytype, semantic_type* yyvaluep, location_type* yylocationp) - { - YYUSE (yylocationp); - YYUSE (yymsg); - YYUSE (yyvaluep); - - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - - default: - break; - } - } - - void - parser::yypop_ (unsigned int n) - { - yystate_stack_.pop (n); - yysemantic_stack_.pop (n); - yylocation_stack_.pop (n); - } - - 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; - } - - - int - parser::parse () - { - /// Look-ahead and look-ahead in internal form. - int yychar = yyempty_; - int yytoken = 0; - - /* State. */ - int yyn; - int yylen = 0; - int yystate = 0; - - /* Error handling. */ - int yynerrs_ = 0; - int yyerrstatus_ = 0; - - /// Semantic value of the look-ahead. - semantic_type yylval; - /// Location of the look-ahead. - location_type yylloc; - /// The locations where the error started and ended. - location yyerror_range[2]; - - /// $$. - semantic_type yyval; - /// @$. - location_type yyloc; - - int yyresult; - - YYCDEBUG << "Starting parse" << std::endl; - - - /* Initialize the stacks. The initial state will be pushed in - yynewstate, since the latter expects the semantical and the - location values to have been already stored, initialize these - stacks with a primary value. */ - yystate_stack_ = state_stack_type (0); - yysemantic_stack_ = semantic_stack_type (0); - yylocation_stack_ = location_stack_type (0); - yysemantic_stack_.push (yylval); - yylocation_stack_.push (yylloc); - - /* New state. */ - yynewstate: - yystate_stack_.push (yystate); - YYCDEBUG << "Entering state " << yystate << std::endl; - goto yybackup; - - /* Backup. */ - yybackup: - - /* Try to take a decision without look-ahead. */ - yyn = yypact_[yystate]; - if (yyn == yypact_ninf_) - goto yydefault; - - /* Read a look-ahead token. */ - if (yychar == yyempty_) - { - YYCDEBUG << "Reading a token: "; - yychar = yylex (&yylval, &yylloc, driver); - } - - - /* Convert token to internal form. */ - if (yychar <= yyeof_) - { - yychar = yytoken = yyeof_; - YYCDEBUG << "Now at end of input." << std::endl; - } - else - { - yytoken = yytranslate_ (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken) - goto yydefault; - - /* Reduce or error. */ - yyn = yytable_[yyn]; - if (yyn <= 0) - { - if (yyn == 0 || yyn == yytable_ninf_) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Accept? */ - if (yyn == yyfinal_) - goto yyacceptlab; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != yyeof_) - yychar = yyempty_; - - yysemantic_stack_.push (yylval); - yylocation_stack_.push (yylloc); - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus_) - --yyerrstatus_; - - yystate = yyn; - goto yynewstate; - - /*-----------------------------------------------------------. - | yydefault -- do the default action for the current state. | - `-----------------------------------------------------------*/ - yydefault: - yyn = yydefact_[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - /*-----------------------------. - | yyreduce -- Do a reduction. | - `-----------------------------*/ - yyreduce: - yylen = yyr2_[yyn]; - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. Otherwise, use the top of the stack. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. */ - if (yylen) - yyval = yysemantic_stack_[yylen - 1]; - else - yyval = yysemantic_stack_[0]; - - { - slice slice (yylocation_stack_, yylen); - YYLLOC_DEFAULT (yyloc, slice, yylen); - } - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 49: -#line 194 "DynareBison.yy" - { driver.dsample((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 50: -#line 196 "DynareBison.yy" - { driver.dsample((yysemantic_stack_[(4) - (2)].string_val), (yysemantic_stack_[(4) - (3)].string_val)); ;} - break; - - case 51: -#line 199 "DynareBison.yy" - { driver.rplot(); ;} - break; - - case 56: -#line 210 "DynareBison.yy" - { driver.declare_endogenous((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 57: -#line 212 "DynareBison.yy" - { driver.declare_endogenous((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 58: -#line 214 "DynareBison.yy" - { driver.declare_endogenous((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 59: -#line 216 "DynareBison.yy" - { driver.declare_endogenous((yysemantic_stack_[(3) - (2)].string_val), (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 60: -#line 218 "DynareBison.yy" - { driver.declare_endogenous((yysemantic_stack_[(4) - (3)].string_val), (yysemantic_stack_[(4) - (4)].string_val)); ;} - break; - - case 61: -#line 220 "DynareBison.yy" - { driver.declare_endogenous((yysemantic_stack_[(2) - (1)].string_val), (yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 62: -#line 224 "DynareBison.yy" - { driver.declare_exogenous((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 63: -#line 226 "DynareBison.yy" - { driver.declare_exogenous((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 64: -#line 228 "DynareBison.yy" - { driver.declare_exogenous((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 65: -#line 230 "DynareBison.yy" - { driver.declare_exogenous((yysemantic_stack_[(3) - (2)].string_val), (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 66: -#line 232 "DynareBison.yy" - { driver.declare_exogenous((yysemantic_stack_[(4) - (3)].string_val), (yysemantic_stack_[(4) - (4)].string_val)); ;} - break; - - case 67: -#line 234 "DynareBison.yy" - { driver.declare_exogenous((yysemantic_stack_[(2) - (1)].string_val), (yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 68: -#line 238 "DynareBison.yy" - { driver.declare_exogenous_det((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 69: -#line 240 "DynareBison.yy" - { driver.declare_exogenous_det((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 70: -#line 242 "DynareBison.yy" - { driver.declare_exogenous_det((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 71: -#line 244 "DynareBison.yy" - { driver.declare_exogenous_det((yysemantic_stack_[(3) - (2)].string_val), (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 72: -#line 246 "DynareBison.yy" - { driver.declare_exogenous_det((yysemantic_stack_[(4) - (3)].string_val), (yysemantic_stack_[(4) - (4)].string_val)); ;} - break; - - case 73: -#line 248 "DynareBison.yy" - { driver.declare_exogenous_det((yysemantic_stack_[(2) - (1)].string_val), (yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 74: -#line 252 "DynareBison.yy" - { driver.declare_parameter((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 75: -#line 254 "DynareBison.yy" - { driver.declare_parameter((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 76: -#line 256 "DynareBison.yy" - { driver.declare_parameter((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 77: -#line 258 "DynareBison.yy" - { driver.declare_parameter((yysemantic_stack_[(3) - (2)].string_val), (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 78: -#line 260 "DynareBison.yy" - { driver.declare_parameter((yysemantic_stack_[(4) - (3)].string_val), (yysemantic_stack_[(4) - (4)].string_val)); ;} - break; - - case 79: -#line 262 "DynareBison.yy" - { driver.declare_parameter((yysemantic_stack_[(2) - (1)].string_val), (yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 80: -#line 266 "DynareBison.yy" - { driver.periods((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 81: -#line 268 "DynareBison.yy" - { driver.periods((yysemantic_stack_[(4) - (3)].string_val)); ;} - break; - - case 82: -#line 272 "DynareBison.yy" - { driver.cutoff((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 83: -#line 274 "DynareBison.yy" - { driver.cutoff((yysemantic_stack_[(4) - (3)].string_val)); ;} - break; - - case 84: -#line 278 "DynareBison.yy" - { driver.markowitz((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 85: -#line 280 "DynareBison.yy" - { driver.markowitz((yysemantic_stack_[(4) - (3)].string_val)); ;} - break; - - case 86: -#line 284 "DynareBison.yy" - { driver.init_param((yysemantic_stack_[(4) - (1)].string_val), (yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 87: -#line 287 "DynareBison.yy" - { (yyval.node_val) = (yysemantic_stack_[(3) - (2)].node_val);;} - break; - - case 88: -#line 289 "DynareBison.yy" - { (yyval.node_val) = driver.add_expression_variable((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 89: -#line 291 "DynareBison.yy" - { (yyval.node_val) = driver.add_constant((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 90: -#line 293 "DynareBison.yy" - { (yyval.node_val) = driver.add_constant((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 91: -#line 295 "DynareBison.yy" - { (yyval.node_val) = driver.add_plus((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 92: -#line 297 "DynareBison.yy" - { (yyval.node_val) = driver.add_minus((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 93: -#line 299 "DynareBison.yy" - { (yyval.node_val) = driver.add_divide((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 94: -#line 301 "DynareBison.yy" - { (yyval.node_val) = driver.add_times((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 95: -#line 303 "DynareBison.yy" - { (yyval.node_val) = driver.add_power((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 96: -#line 305 "DynareBison.yy" - { (yyval.node_val) = driver.add_less((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 97: -#line 307 "DynareBison.yy" - { (yyval.node_val) = driver.add_greater((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 98: -#line 309 "DynareBison.yy" - { (yyval.node_val) = driver.add_less_equal((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 99: -#line 311 "DynareBison.yy" - { (yyval.node_val) = driver.add_greater_equal((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 100: -#line 313 "DynareBison.yy" - { (yyval.node_val) = driver.add_equal_equal((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 101: -#line 315 "DynareBison.yy" - { (yyval.node_val) = driver.add_different((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 102: -#line 317 "DynareBison.yy" - { (yyval.node_val) = driver.add_uminus((yysemantic_stack_[(2) - (2)].node_val)); ;} - break; - - case 103: -#line 319 "DynareBison.yy" - { (yyval.node_val) = (yysemantic_stack_[(2) - (2)].node_val); ;} - break; - - case 104: -#line 321 "DynareBison.yy" - { (yyval.node_val) = driver.add_exp((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 105: -#line 323 "DynareBison.yy" - { (yyval.node_val) = driver.add_log((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 106: -#line 325 "DynareBison.yy" - { (yyval.node_val) = driver.add_log((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 107: -#line 327 "DynareBison.yy" - { (yyval.node_val) = driver.add_log10((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 108: -#line 329 "DynareBison.yy" - { (yyval.node_val) = driver.add_sin((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 109: -#line 331 "DynareBison.yy" - { (yyval.node_val) = driver.add_cos((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 110: -#line 333 "DynareBison.yy" - { (yyval.node_val) = driver.add_tan((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 111: -#line 335 "DynareBison.yy" - { (yyval.node_val) = driver.add_asin((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 112: -#line 337 "DynareBison.yy" - { (yyval.node_val) = driver.add_acos((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 113: -#line 339 "DynareBison.yy" - { (yyval.node_val) = driver.add_atan((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 114: -#line 341 "DynareBison.yy" - { (yyval.node_val) = driver.add_sqrt((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 115: -#line 343 "DynareBison.yy" - { (yyval.node_val) = driver.add_max((yysemantic_stack_[(6) - (3)].node_val) , (yysemantic_stack_[(6) - (5)].node_val)); ;} - break; - - case 116: -#line 345 "DynareBison.yy" - { (yyval.node_val) = driver.add_min((yysemantic_stack_[(6) - (3)].node_val) , (yysemantic_stack_[(6) - (5)].node_val)); ;} - break; - - case 117: -#line 347 "DynareBison.yy" - { (yyval.node_val) = driver.add_unknown_function((yysemantic_stack_[(4) - (1)].string_val)); ;} - break; - - case 118: -#line 349 "DynareBison.yy" - { (yyval.node_val) = driver.add_normcdf((yysemantic_stack_[(8) - (3)].node_val),(yysemantic_stack_[(8) - (5)].node_val),(yysemantic_stack_[(8) - (7)].node_val));;} - break; - - case 119: -#line 353 "DynareBison.yy" - { driver.add_unknown_function_arg((yysemantic_stack_[(1) - (1)].node_val)); ;} - break; - - case 120: -#line 355 "DynareBison.yy" - { driver.add_unknown_function_arg((yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 121: -#line 359 "DynareBison.yy" - { driver.end_initval(); ;} - break; - - case 122: -#line 361 "DynareBison.yy" - { driver.end_initval(); ;} - break; - - case 123: -#line 364 "DynareBison.yy" - { driver.init_val_filename((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 124: -#line 366 "DynareBison.yy" - { driver.end_endval(); ;} - break; - - case 127: -#line 372 "DynareBison.yy" - { driver.init_val((yysemantic_stack_[(4) - (1)].string_val), (yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 128: -#line 374 "DynareBison.yy" - { driver.end_histval(); ;} - break; - - case 131: -#line 380 "DynareBison.yy" - { driver.hist_val((yysemantic_stack_[(7) - (1)].string_val), (yysemantic_stack_[(7) - (3)].string_val), (yysemantic_stack_[(7) - (6)].node_val)); ;} - break; - - case 138: -#line 395 "DynareBison.yy" - { driver.init_compiler(0); ;} - break; - - case 139: -#line 397 "DynareBison.yy" - { driver.init_compiler(1); ;} - break; - - case 140: -#line 399 "DynareBison.yy" - { driver.init_compiler(2); ;} - break; - - case 143: -#line 406 "DynareBison.yy" - { driver.begin_model(); ;} - break; - - case 144: -#line 407 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 145: -#line 408 "DynareBison.yy" - { driver.begin_model(); ;} - break; - - case 146: -#line 409 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 147: -#line 410 "DynareBison.yy" - { driver.begin_model(); driver.use_dll(); ;} - break; - - case 148: -#line 411 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 149: -#line 413 "DynareBison.yy" - { driver.begin_model(); driver.sparse_dll(); ;} - break; - - case 150: -#line 414 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 151: -#line 415 "DynareBison.yy" - { driver.begin_model(); driver.sparse_dll(); ;} - break; - - case 152: -#line 416 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 153: -#line 418 "DynareBison.yy" - { driver.begin_model(); driver.sparse(); ;} - break; - - case 154: -#line 419 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 155: -#line 420 "DynareBison.yy" - { driver.begin_model(); driver.sparse(); ;} - break; - - case 156: -#line 421 "DynareBison.yy" - { driver.reset_data_tree(); ;} - break; - - case 161: -#line 431 "DynareBison.yy" - { (yyval.node_val) = driver.add_model_equal((yysemantic_stack_[(4) - (1)].node_val), (yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 162: -#line 433 "DynareBison.yy" - { (yyval.node_val) = driver.add_model_equal_with_zero_rhs((yysemantic_stack_[(2) - (1)].node_val)); ;} - break; - - case 163: -#line 437 "DynareBison.yy" - { (yyval.node_val) = (yysemantic_stack_[(3) - (2)].node_val);;} - break; - - case 165: -#line 440 "DynareBison.yy" - { (yyval.node_val) = driver.add_constant((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 166: -#line 442 "DynareBison.yy" - { (yyval.node_val) = driver.add_constant((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 167: -#line 444 "DynareBison.yy" - { (yyval.node_val) = driver.add_plus((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 168: -#line 446 "DynareBison.yy" - { (yyval.node_val) = driver.add_minus((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 169: -#line 448 "DynareBison.yy" - { (yyval.node_val) = driver.add_divide((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 170: -#line 450 "DynareBison.yy" - { (yyval.node_val) = driver.add_times((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 171: -#line 452 "DynareBison.yy" - { (yyval.node_val) = driver.add_less((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 172: -#line 454 "DynareBison.yy" - { (yyval.node_val) = driver.add_greater((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 173: -#line 456 "DynareBison.yy" - { (yyval.node_val) = driver.add_less_equal((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 174: -#line 458 "DynareBison.yy" - { (yyval.node_val) = driver.add_greater_equal((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 175: -#line 460 "DynareBison.yy" - { (yyval.node_val) = driver.add_equal_equal((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 176: -#line 462 "DynareBison.yy" - { (yyval.node_val) = driver.add_different((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 177: -#line 464 "DynareBison.yy" - { (yyval.node_val) = driver.add_power((yysemantic_stack_[(3) - (1)].node_val), (yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 178: -#line 466 "DynareBison.yy" - { (yyval.node_val) = driver.add_uminus((yysemantic_stack_[(2) - (2)].node_val)); ;} - break; - - case 179: -#line 468 "DynareBison.yy" - { (yyval.node_val) = (yysemantic_stack_[(2) - (2)].node_val); ;} - break; - - case 180: -#line 470 "DynareBison.yy" - { (yyval.node_val) = driver.add_exp((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 181: -#line 472 "DynareBison.yy" - { (yyval.node_val) = driver.add_log((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 182: -#line 474 "DynareBison.yy" - { (yyval.node_val) = driver.add_log((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 183: -#line 476 "DynareBison.yy" - { (yyval.node_val) = driver.add_log10((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 184: -#line 478 "DynareBison.yy" - { (yyval.node_val) = driver.add_sin((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 185: -#line 480 "DynareBison.yy" - { (yyval.node_val) = driver.add_cos((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 186: -#line 482 "DynareBison.yy" - { (yyval.node_val) = driver.add_tan((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 187: -#line 484 "DynareBison.yy" - { (yyval.node_val) = driver.add_asin((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 188: -#line 486 "DynareBison.yy" - { (yyval.node_val) = driver.add_acos((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 189: -#line 488 "DynareBison.yy" - { (yyval.node_val) = driver.add_atan((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 190: -#line 490 "DynareBison.yy" - { (yyval.node_val) = driver.add_sqrt((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 191: -#line 492 "DynareBison.yy" - { (yyval.node_val) = driver.add_max((yysemantic_stack_[(6) - (3)].node_val) , (yysemantic_stack_[(6) - (5)].node_val)); ;} - break; - - case 192: -#line 494 "DynareBison.yy" - { (yyval.node_val) = driver.add_min((yysemantic_stack_[(6) - (3)].node_val) , (yysemantic_stack_[(6) - (5)].node_val)); ;} - break; - - case 193: -#line 496 "DynareBison.yy" - { (yyval.node_val) = driver.add_normcdf((yysemantic_stack_[(8) - (3)].node_val),(yysemantic_stack_[(8) - (5)].node_val),(yysemantic_stack_[(8) - (7)].node_val));;} - break; - - case 194: -#line 500 "DynareBison.yy" - { driver.declare_and_init_model_local_variable((yysemantic_stack_[(5) - (2)].string_val), (yysemantic_stack_[(5) - (4)].node_val)); ;} - break; - - case 195: -#line 503 "DynareBison.yy" - { (yyval.node_val) = driver.add_model_variable((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 196: -#line 505 "DynareBison.yy" - { (yyval.node_val) = driver.add_model_variable((yysemantic_stack_[(4) - (1)].string_val), (yysemantic_stack_[(4) - (3)].string_val)); ;} - break; - - case 197: -#line 508 "DynareBison.yy" - { driver.end_shocks(); ;} - break; - - case 198: -#line 510 "DynareBison.yy" - { driver.end_mshocks(); ;} - break; - - case 201: -#line 517 "DynareBison.yy" - { driver.add_det_shock((yysemantic_stack_[(9) - (2)].string_val)); ;} - break; - - case 202: -#line 519 "DynareBison.yy" - { driver.add_stderr_shock((yysemantic_stack_[(6) - (2)].string_val), (yysemantic_stack_[(6) - (5)].node_val)); ;} - break; - - case 203: -#line 521 "DynareBison.yy" - { driver.add_var_shock((yysemantic_stack_[(5) - (2)].string_val), (yysemantic_stack_[(5) - (4)].node_val)); ;} - break; - - case 204: -#line 523 "DynareBison.yy" - { driver.add_covar_shock((yysemantic_stack_[(7) - (2)].string_val), (yysemantic_stack_[(7) - (4)].string_val), (yysemantic_stack_[(7) - (6)].node_val)); ;} - break; - - case 205: -#line 525 "DynareBison.yy" - { driver.add_correl_shock((yysemantic_stack_[(7) - (2)].string_val), (yysemantic_stack_[(7) - (4)].string_val), (yysemantic_stack_[(7) - (6)].node_val)); ;} - break; - - case 206: -#line 529 "DynareBison.yy" - { driver.add_period((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 207: -#line 531 "DynareBison.yy" - { driver.add_period((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 208: -#line 533 "DynareBison.yy" - { driver.add_period((yysemantic_stack_[(5) - (3)].string_val), (yysemantic_stack_[(5) - (5)].string_val)); ;} - break; - - case 209: -#line 535 "DynareBison.yy" - { driver.add_period((yysemantic_stack_[(4) - (2)].string_val), (yysemantic_stack_[(4) - (4)].string_val)); ;} - break; - - case 210: -#line 537 "DynareBison.yy" - { driver.add_period((yysemantic_stack_[(3) - (1)].string_val), (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 211: -#line 539 "DynareBison.yy" - { driver.add_period((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 212: -#line 543 "DynareBison.yy" - { driver.do_sigma_e(); ;} - break; - - case 213: -#line 547 "DynareBison.yy" - {driver.add_value((yysemantic_stack_[(3) - (3)].node_val));;} - break; - - case 214: -#line 549 "DynareBison.yy" - {driver.add_value((yysemantic_stack_[(2) - (2)].string_val));;} - break; - - case 215: -#line 551 "DynareBison.yy" - {driver.add_value((yysemantic_stack_[(1) - (1)].node_val));;} - break; - - case 216: -#line 555 "DynareBison.yy" - { driver.end_of_row(); ;} - break; - - case 217: -#line 557 "DynareBison.yy" - { driver.end_of_row(); ;} - break; - - case 218: -#line 561 "DynareBison.yy" - { driver.add_to_row((yysemantic_stack_[(5) - (4)].node_val)); ;} - break; - - case 219: -#line 563 "DynareBison.yy" - { driver.add_to_row_const((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 220: -#line 565 "DynareBison.yy" - { driver.add_to_row_const((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 221: -#line 567 "DynareBison.yy" - { driver.add_to_row((yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 222: -#line 569 "DynareBison.yy" - { driver.add_to_row_const((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 223: -#line 571 "DynareBison.yy" - { driver.add_to_row_const((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 224: -#line 573 "DynareBison.yy" - { driver.add_to_row((yysemantic_stack_[(3) - (2)].node_val)); ;} - break; - - case 225: -#line 575 "DynareBison.yy" - { driver.add_to_row_const((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 226: -#line 577 "DynareBison.yy" - { driver.add_to_row_const((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 227: -#line 581 "DynareBison.yy" - { driver.steady(); ;} - break; - - case 228: -#line 583 "DynareBison.yy" - { driver.steady(); ;} - break; - - case 234: -#line 596 "DynareBison.yy" - { driver.check(); ;} - break; - - case 235: -#line 598 "DynareBison.yy" - { driver.check(); ;} - break; - - case 239: -#line 608 "DynareBison.yy" - { driver.simulate(); ;} - break; - - case 240: -#line 610 "DynareBison.yy" - { driver.simulate(); ;} - break; - - case 246: -#line 623 "DynareBison.yy" - { driver.stoch_simul(); ;} - break; - - case 247: -#line 625 "DynareBison.yy" - { driver.stoch_simul(); ;} - break; - - case 248: -#line 627 "DynareBison.yy" - { driver.stoch_simul(); ;} - break; - - case 249: -#line 629 "DynareBison.yy" - { driver.stoch_simul(); ;} - break; - - case 275: -#line 662 "DynareBison.yy" - { driver.add_tmp_var((yysemantic_stack_[(2) - (2)].string_val)); ;} - break; - - case 276: -#line 664 "DynareBison.yy" - { driver.add_tmp_var((yysemantic_stack_[(4) - (2)].string_val), (yysemantic_stack_[(4) - (4)].string_val)); ;} - break; - - case 277: -#line 666 "DynareBison.yy" - { driver.add_tmp_var((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 278: -#line 668 "DynareBison.yy" - { driver.add_tmp_var((yysemantic_stack_[(5) - (3)].string_val), (yysemantic_stack_[(5) - (5)].string_val)); ;} - break; - - case 279: -#line 670 "DynareBison.yy" - { driver.add_tmp_var((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 280: -#line 672 "DynareBison.yy" - { driver.add_tmp_var((yysemantic_stack_[(3) - (1)].string_val), (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 281: -#line 676 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val); ;} - break; - - case 282: -#line 678 "DynareBison.yy" - { (yysemantic_stack_[(2) - (2)].string_val)->insert(0, "-"); (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val); ;} - break; - - case 283: -#line 680 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(1) - (1)].string_val); ;} - break; - - case 284: -#line 684 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val); ;} - break; - - case 285: -#line 686 "DynareBison.yy" - { (yysemantic_stack_[(2) - (2)].string_val)->insert(0, "-"); (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val); ;} - break; - - case 286: -#line 688 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(1) - (1)].string_val); ;} - break; - - case 287: -#line 691 "DynareBison.yy" - { driver.estimated_params(); ;} - break; - - case 288: -#line 694 "DynareBison.yy" - { driver.add_estimated_params_element(); ;} - break; - - case 289: -#line 696 "DynareBison.yy" - { driver.add_estimated_params_element(); ;} - break; - - case 291: -#line 702 "DynareBison.yy" - { - driver.estim_params.type = 1; - driver.estim_params.name = *(yysemantic_stack_[(2) - (2)].string_val); - delete (yysemantic_stack_[(2) - (2)].string_val); - ;} - break; - - case 292: -#line 708 "DynareBison.yy" - { - driver.estim_params.type = 2; - driver.estim_params.name = *(yysemantic_stack_[(1) - (1)].string_val); - delete (yysemantic_stack_[(1) - (1)].string_val); - ;} - break; - - case 293: -#line 714 "DynareBison.yy" - { - driver.estim_params.type = 3; - driver.estim_params.name = *(yysemantic_stack_[(4) - (2)].string_val); - driver.estim_params.name2 = *(yysemantic_stack_[(4) - (4)].string_val); - delete (yysemantic_stack_[(4) - (2)].string_val); - delete (yysemantic_stack_[(4) - (4)].string_val); - ;} - break; - - case 294: -#line 724 "DynareBison.yy" - { - driver.estim_params.prior = *(yysemantic_stack_[(3) - (1)].string_val); - delete (yysemantic_stack_[(3) - (1)].string_val); - ;} - break; - - case 295: -#line 729 "DynareBison.yy" - { - driver.estim_params.init_val = *(yysemantic_stack_[(5) - (1)].string_val); - driver.estim_params.prior = *(yysemantic_stack_[(5) - (3)].string_val); - delete (yysemantic_stack_[(5) - (1)].string_val); - delete (yysemantic_stack_[(5) - (3)].string_val); - ;} - break; - - case 296: -#line 736 "DynareBison.yy" - { - driver.estim_params.init_val = *(yysemantic_stack_[(9) - (1)].string_val); - driver.estim_params.low_bound = *(yysemantic_stack_[(9) - (3)].string_val); - driver.estim_params.up_bound = *(yysemantic_stack_[(9) - (5)].string_val); - driver.estim_params.prior = *(yysemantic_stack_[(9) - (7)].string_val); - delete (yysemantic_stack_[(9) - (1)].string_val); - delete (yysemantic_stack_[(9) - (3)].string_val); - delete (yysemantic_stack_[(9) - (5)].string_val); - delete (yysemantic_stack_[(9) - (7)].string_val); - ;} - break; - - case 297: -#line 747 "DynareBison.yy" - { - driver.estim_params.init_val = *(yysemantic_stack_[(1) - (1)].string_val); - delete (yysemantic_stack_[(1) - (1)].string_val); - ;} - break; - - case 298: -#line 752 "DynareBison.yy" - { - driver.estim_params.init_val = *(yysemantic_stack_[(5) - (1)].string_val); - driver.estim_params.low_bound = *(yysemantic_stack_[(5) - (3)].string_val); - driver.estim_params.up_bound = *(yysemantic_stack_[(5) - (5)].string_val); - delete (yysemantic_stack_[(5) - (1)].string_val); - delete (yysemantic_stack_[(5) - (3)].string_val); - delete (yysemantic_stack_[(5) - (5)].string_val); - ;} - break; - - case 299: -#line 763 "DynareBison.yy" - { - driver.estim_params.mean = *(yysemantic_stack_[(3) - (1)].string_val); - driver.estim_params.std = *(yysemantic_stack_[(3) - (3)].string_val); - delete (yysemantic_stack_[(3) - (1)].string_val); - delete (yysemantic_stack_[(3) - (3)].string_val); - ;} - break; - - case 300: -#line 770 "DynareBison.yy" - { - driver.estim_params.mean = *(yysemantic_stack_[(5) - (1)].string_val); - driver.estim_params.std = *(yysemantic_stack_[(5) - (3)].string_val); - driver.estim_params.p3 = *(yysemantic_stack_[(5) - (5)].string_val); - delete (yysemantic_stack_[(5) - (1)].string_val); - delete (yysemantic_stack_[(5) - (3)].string_val); - delete (yysemantic_stack_[(5) - (5)].string_val); - ;} - break; - - case 301: -#line 779 "DynareBison.yy" - { - driver.estim_params.mean = *(yysemantic_stack_[(7) - (1)].string_val); - driver.estim_params.std = *(yysemantic_stack_[(7) - (3)].string_val); - driver.estim_params.p3 = *(yysemantic_stack_[(7) - (5)].string_val); - driver.estim_params.p4 = *(yysemantic_stack_[(7) - (7)].string_val); - delete (yysemantic_stack_[(7) - (1)].string_val); - delete (yysemantic_stack_[(7) - (3)].string_val); - delete (yysemantic_stack_[(7) - (5)].string_val); - delete (yysemantic_stack_[(7) - (7)].string_val); - ;} - break; - - case 302: -#line 790 "DynareBison.yy" - { - driver.estim_params.mean = *(yysemantic_stack_[(9) - (1)].string_val); - driver.estim_params.std = *(yysemantic_stack_[(9) - (3)].string_val); - driver.estim_params.p3 = *(yysemantic_stack_[(9) - (5)].string_val); - driver.estim_params.p4 = *(yysemantic_stack_[(9) - (7)].string_val); - driver.estim_params.jscale = *(yysemantic_stack_[(9) - (9)].string_val); - delete (yysemantic_stack_[(9) - (1)].string_val); - delete (yysemantic_stack_[(9) - (3)].string_val); - delete (yysemantic_stack_[(9) - (5)].string_val); - delete (yysemantic_stack_[(9) - (7)].string_val); - delete (yysemantic_stack_[(9) - (9)].string_val); - ;} - break; - - case 303: -#line 805 "DynareBison.yy" - { driver.estimated_params_init(); ;} - break; - - case 304: -#line 808 "DynareBison.yy" - { driver.add_estimated_params_element(); ;} - break; - - case 305: -#line 810 "DynareBison.yy" - { driver.add_estimated_params_element(); ;} - break; - - case 306: -#line 814 "DynareBison.yy" - { - driver.estim_params.type = 1; - driver.estim_params.name = *(yysemantic_stack_[(5) - (2)].string_val); - driver.estim_params.init_val = *(yysemantic_stack_[(5) - (4)].string_val); - delete (yysemantic_stack_[(5) - (2)].string_val); - delete (yysemantic_stack_[(5) - (4)].string_val); - ;} - break; - - case 307: -#line 822 "DynareBison.yy" - { - driver.estim_params.type = 3; - driver.estim_params.name = *(yysemantic_stack_[(7) - (2)].string_val); - driver.estim_params.name2 = *(yysemantic_stack_[(7) - (4)].string_val); - driver.estim_params.init_val = *(yysemantic_stack_[(7) - (6)].string_val); - delete (yysemantic_stack_[(7) - (2)].string_val); - delete (yysemantic_stack_[(7) - (4)].string_val); - delete (yysemantic_stack_[(7) - (6)].string_val); - ;} - break; - - case 308: -#line 832 "DynareBison.yy" - { - driver.estim_params.type = 2; - driver.estim_params.name = *(yysemantic_stack_[(4) - (1)].string_val); - driver.estim_params.init_val = *(yysemantic_stack_[(4) - (3)].string_val); - delete (yysemantic_stack_[(4) - (1)].string_val); - delete (yysemantic_stack_[(4) - (3)].string_val); - ;} - break; - - case 309: -#line 842 "DynareBison.yy" - { driver.estimated_params_bounds(); ;} - break; - - case 310: -#line 845 "DynareBison.yy" - { driver.add_estimated_params_element(); ;} - break; - - case 311: -#line 847 "DynareBison.yy" - { driver.add_estimated_params_element(); ;} - break; - - case 312: -#line 851 "DynareBison.yy" - { - driver.estim_params.type = 1; - driver.estim_params.name = *(yysemantic_stack_[(7) - (2)].string_val); - driver.estim_params.low_bound = *(yysemantic_stack_[(7) - (4)].string_val); - driver.estim_params.up_bound = *(yysemantic_stack_[(7) - (6)].string_val); - delete (yysemantic_stack_[(7) - (2)].string_val); - delete (yysemantic_stack_[(7) - (4)].string_val); - delete (yysemantic_stack_[(7) - (6)].string_val); - ;} - break; - - case 313: -#line 861 "DynareBison.yy" - { - driver.estim_params.type = 3; - driver.estim_params.name = *(yysemantic_stack_[(9) - (2)].string_val); - driver.estim_params.name2 = *(yysemantic_stack_[(9) - (4)].string_val); - driver.estim_params.low_bound = *(yysemantic_stack_[(9) - (6)].string_val); - driver.estim_params.up_bound = *(yysemantic_stack_[(9) - (8)].string_val); - delete (yysemantic_stack_[(9) - (2)].string_val); - delete (yysemantic_stack_[(9) - (4)].string_val); - delete (yysemantic_stack_[(9) - (6)].string_val); - delete (yysemantic_stack_[(9) - (8)].string_val); - ;} - break; - - case 314: -#line 873 "DynareBison.yy" - { - driver.estim_params.type = 2; - driver.estim_params.name = *(yysemantic_stack_[(6) - (1)].string_val); - driver.estim_params.low_bound = *(yysemantic_stack_[(6) - (3)].string_val); - driver.estim_params.up_bound = *(yysemantic_stack_[(6) - (5)].string_val); - delete (yysemantic_stack_[(6) - (1)].string_val); - delete (yysemantic_stack_[(6) - (3)].string_val); - delete (yysemantic_stack_[(6) - (5)].string_val); - ;} - break; - - case 315: -#line 885 "DynareBison.yy" - { (yyval.string_val) = new string("1"); ;} - break; - - case 316: -#line 887 "DynareBison.yy" - { (yyval.string_val) = new string("2"); ;} - break; - - case 317: -#line 889 "DynareBison.yy" - { (yyval.string_val) = new string("3"); ;} - break; - - case 318: -#line 891 "DynareBison.yy" - { (yyval.string_val) = new string("4"); ;} - break; - - case 319: -#line 893 "DynareBison.yy" - { (yyval.string_val) = new string("5"); ;} - break; - - case 320: -#line 896 "DynareBison.yy" - { (yyval.string_val) = new string("NaN"); ;} - break; - - case 324: -#line 901 "DynareBison.yy" - { (yysemantic_stack_[(2) - (2)].string_val)->insert(0, "-"); (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val); ;} - break; - - case 325: -#line 903 "DynareBison.yy" - { (yysemantic_stack_[(2) - (2)].string_val)->insert(0, "-"); (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val); ;} - break; - - case 326: -#line 907 "DynareBison.yy" - { driver.run_estimation(); ;} - break; - - case 327: -#line 909 "DynareBison.yy" - { driver.run_estimation(); ;} - break; - - case 328: -#line 911 "DynareBison.yy" - { driver.run_estimation(); ;} - break; - - case 329: -#line 913 "DynareBison.yy" - { driver.run_estimation(); ;} - break; - - case 371: -#line 962 "DynareBison.yy" - { driver.run_prior_analysis(); ;} - break; - - case 372: -#line 964 "DynareBison.yy" - { driver.run_prior_analysis(); ;} - break; - - case 388: -#line 987 "DynareBison.yy" - { driver.run_posterior_analysis(); ;} - break; - - case 389: -#line 989 "DynareBison.yy" - { driver.run_posterior_analysis(); ;} - break; - - case 390: -#line 993 "DynareBison.yy" - { driver.optim_options_string((yysemantic_stack_[(7) - (2)].string_val), (yysemantic_stack_[(7) - (6)].string_val)); ;} - break; - - case 391: -#line 995 "DynareBison.yy" - { driver.optim_options_num((yysemantic_stack_[(5) - (2)].string_val), (yysemantic_stack_[(5) - (5)].string_val)); ;} - break; - - case 394: -#line 1002 "DynareBison.yy" - { driver.set_varobs(); ;} - break; - - case 395: -#line 1004 "DynareBison.yy" - { driver.set_trends(); ;} - break; - - case 398: -#line 1010 "DynareBison.yy" - { driver.set_trend_element((yysemantic_stack_[(5) - (1)].string_val), (yysemantic_stack_[(5) - (3)].node_val)); ;} - break; - - case 399: -#line 1012 "DynareBison.yy" - { driver.set_unit_root_vars(); ;} - break; - - case 400: -#line 1014 "DynareBison.yy" - { driver.optim_weights(); ;} - break; - - case 401: -#line 1017 "DynareBison.yy" - { driver.set_optim_weights((yysemantic_stack_[(4) - (2)].string_val), (yysemantic_stack_[(4) - (3)].node_val)); ;} - break; - - case 402: -#line 1019 "DynareBison.yy" - { driver.set_optim_weights((yysemantic_stack_[(6) - (2)].string_val), (yysemantic_stack_[(6) - (4)].string_val), (yysemantic_stack_[(6) - (5)].node_val)); ;} - break; - - case 403: -#line 1021 "DynareBison.yy" - { driver.set_optim_weights((yysemantic_stack_[(3) - (1)].string_val), (yysemantic_stack_[(3) - (2)].node_val)); ;} - break; - - case 404: -#line 1023 "DynareBison.yy" - { driver.set_optim_weights((yysemantic_stack_[(5) - (1)].string_val), (yysemantic_stack_[(5) - (3)].string_val), (yysemantic_stack_[(5) - (4)].node_val)); ;} - break; - - case 405: -#line 1026 "DynareBison.yy" - { driver.set_osr_params(); ;} - break; - - case 406: -#line 1029 "DynareBison.yy" - { driver.run_osr(); ;} - break; - - case 407: -#line 1031 "DynareBison.yy" - { driver.run_osr(); ;} - break; - - case 408: -#line 1033 "DynareBison.yy" - { driver.run_osr(); ;} - break; - - case 409: -#line 1035 "DynareBison.yy" - {driver.run_osr(); ;} - break; - - case 410: -#line 1038 "DynareBison.yy" - { driver.run_calib_var(); ;} - break; - - case 413: -#line 1045 "DynareBison.yy" - { driver.set_calib_var((yysemantic_stack_[(5) - (1)].string_val), (yysemantic_stack_[(5) - (2)].string_val), (yysemantic_stack_[(5) - (4)].node_val)); ;} - break; - - case 414: -#line 1047 "DynareBison.yy" - { driver.set_calib_covar((yysemantic_stack_[(7) - (1)].string_val), (yysemantic_stack_[(7) - (3)].string_val), (yysemantic_stack_[(7) - (4)].string_val), (yysemantic_stack_[(7) - (6)].node_val)); ;} - break; - - case 415: -#line 1049 "DynareBison.yy" - { driver.set_calib_ac((yysemantic_stack_[(9) - (2)].string_val), (yysemantic_stack_[(9) - (4)].string_val), (yysemantic_stack_[(9) - (6)].string_val), (yysemantic_stack_[(9) - (8)].node_val)); ;} - break; - - case 416: -#line 1052 "DynareBison.yy" - { (yyval.string_val) = new string("1"); ;} - break; - - case 417: -#line 1054 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(3) - (2)].string_val); ;} - break; - - case 418: -#line 1056 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(3) - (2)].string_val); ;} - break; - - case 419: -#line 1060 "DynareBison.yy" - { driver.run_calib(0); ;} - break; - - case 420: -#line 1062 "DynareBison.yy" - { driver.run_calib(1); ;} - break; - - case 421: -#line 1066 "DynareBison.yy" - { driver.run_dynatype((yysemantic_stack_[(5) - (3)].string_val)); ;} - break; - - case 422: -#line 1068 "DynareBison.yy" - { driver.run_dynatype((yysemantic_stack_[(6) - (3)].string_val)); ;} - break; - - case 423: -#line 1070 "DynareBison.yy" - { driver.run_dynatype((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 424: -#line 1072 "DynareBison.yy" - { driver.run_dynatype((yysemantic_stack_[(7) - (3)].string_val), (yysemantic_stack_[(7) - (5)].string_val)); ;} - break; - - case 425: -#line 1074 "DynareBison.yy" - { driver.run_dynatype((yysemantic_stack_[(8) - (3)].string_val), (yysemantic_stack_[(8) - (5)].string_val)); ;} - break; - - case 426: -#line 1076 "DynareBison.yy" - { driver.run_dynatype((yysemantic_stack_[(5) - (2)].string_val),(yysemantic_stack_[(5) - (4)].string_val)); ;} - break; - - case 427: -#line 1080 "DynareBison.yy" - { driver.run_dynasave((yysemantic_stack_[(5) - (3)].string_val)); ;} - break; - - case 428: -#line 1082 "DynareBison.yy" - { driver.run_dynasave((yysemantic_stack_[(6) - (3)].string_val)); ;} - break; - - case 429: -#line 1084 "DynareBison.yy" - { driver.run_dynasave((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 430: -#line 1086 "DynareBison.yy" - { driver.run_dynasave((yysemantic_stack_[(7) - (3)].string_val), (yysemantic_stack_[(7) - (5)].string_val)); ;} - break; - - case 431: -#line 1088 "DynareBison.yy" - { driver.run_dynasave((yysemantic_stack_[(8) - (3)].string_val), (yysemantic_stack_[(8) - (5)].string_val)); ;} - break; - - case 432: -#line 1090 "DynareBison.yy" - { driver.run_dynasave((yysemantic_stack_[(5) - (2)].string_val), (yysemantic_stack_[(5) - (4)].string_val)); ;} - break; - - case 433: -#line 1094 "DynareBison.yy" - { driver.run_model_comparison(); ;} - break; - - case 439: -#line 1106 "DynareBison.yy" - { driver.add_mc_filename((yysemantic_stack_[(1) - (1)].string_val)); ;} - break; - - case 440: -#line 1108 "DynareBison.yy" - { driver.add_mc_filename((yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 441: -#line 1110 "DynareBison.yy" - { driver.add_mc_filename((yysemantic_stack_[(4) - (1)].string_val), (yysemantic_stack_[(4) - (3)].string_val)); ;} - break; - - case 442: -#line 1112 "DynareBison.yy" - { driver.add_mc_filename((yysemantic_stack_[(6) - (3)].string_val), (yysemantic_stack_[(6) - (5)].string_val)); ;} - break; - - case 443: -#line 1116 "DynareBison.yy" - { (yyval.string_val) = (yysemantic_stack_[(1) - (1)].string_val); ;} - break; - - case 444: -#line 1118 "DynareBison.yy" - { (yysemantic_stack_[(2) - (1)].string_val)->append(*(yysemantic_stack_[(2) - (2)].string_val)); delete (yysemantic_stack_[(2) - (2)].string_val); (yyval.string_val) = (yysemantic_stack_[(2) - (1)].string_val); ;} - break; - - case 446: -#line 1123 "DynareBison.yy" - { (yyval.string_val) = new string("\\"); ;} - break; - - case 447: -#line 1125 "DynareBison.yy" - { (yyval.string_val) = new string("/"); ;} - break; - - case 448: -#line 1127 "DynareBison.yy" - { (yyval.string_val) = new string(":"); ;} - break; - - case 449: -#line 1129 "DynareBison.yy" - { (yyval.string_val) = new string("."); ;} - break; - - case 450: -#line 1132 "DynareBison.yy" - { driver.begin_planner_objective(); ;} - break; - - case 451: -#line 1133 "DynareBison.yy" - { driver.end_planner_objective((yysemantic_stack_[(3) - (3)].node_val)); ;} - break; - - case 453: -#line 1136 "DynareBison.yy" - { driver.ramsey_policy(); ;} - break; - - case 454: -#line 1138 "DynareBison.yy" - { driver.ramsey_policy(); ;} - break; - - case 455: -#line 1140 "DynareBison.yy" - { driver.ramsey_policy(); ;} - break; - - case 456: -#line 1142 "DynareBison.yy" - { driver.ramsey_policy(); ;} - break; - - case 480: -#line 1179 "DynareBison.yy" - { driver.bvar_density((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 481: -#line 1181 "DynareBison.yy" - { driver.bvar_density((yysemantic_stack_[(6) - (5)].string_val)); ;} - break; - - case 488: -#line 1195 "DynareBison.yy" - { driver.bvar_forecast((yysemantic_stack_[(3) - (2)].string_val)); ;} - break; - - case 489: -#line 1197 "DynareBison.yy" - { driver.bvar_forecast((yysemantic_stack_[(6) - (5)].string_val)); ;} - break; - - case 490: -#line 1201 "DynareBison.yy" - { driver.dynare_sensitivity(); ;} - break; - - case 491: -#line 1203 "DynareBison.yy" - { driver.dynare_sensitivity(); ;} - break; - - case 521: -#line 1240 "DynareBison.yy" - { driver.end_homotopy();;} - break; - - case 524: -#line 1247 "DynareBison.yy" - { driver.homotopy_val((yysemantic_stack_[(6) - (1)].string_val),(yysemantic_stack_[(6) - (3)].node_val),(yysemantic_stack_[(6) - (5)].node_val));;} - break; - - case 527: -#line 1253 "DynareBison.yy" - { driver.option_num("dr_algo", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 528: -#line 1254 "DynareBison.yy" - { driver.option_num("solve_algo", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 529: -#line 1255 "DynareBison.yy" - { driver.option_num("simul_algo", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 530: -#line 1256 "DynareBison.yy" - { driver.linear(); ;} - break; - - case 531: -#line 1257 "DynareBison.yy" - { driver.option_num("order", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 532: -#line 1258 "DynareBison.yy" - { driver.option_num("replic", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 533: -#line 1259 "DynareBison.yy" - { driver.option_num("drop", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 534: -#line 1260 "DynareBison.yy" - { driver.option_num("ar", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 535: -#line 1261 "DynareBison.yy" - { driver.option_num("nocorr", "1"); ;} - break; - - case 536: -#line 1262 "DynareBison.yy" - { driver.option_num("nofunctions", "1"); ;} - break; - - case 537: -#line 1263 "DynareBison.yy" - { driver.option_num("nomoments", "1"); ;} - break; - - case 538: -#line 1264 "DynareBison.yy" - { driver.option_num("irf", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 539: -#line 1265 "DynareBison.yy" - { driver.option_num("hp_filter", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 540: -#line 1266 "DynareBison.yy" - { driver.option_num("hp_ngrid", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 541: -#line 1268 "DynareBison.yy" - { driver.option_num("periods", (yysemantic_stack_[(3) - (3)].string_val)); driver.option_num("simul", "1"); ;} - break; - - case 542: -#line 1269 "DynareBison.yy" - { driver.option_num("cutoff", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 543: -#line 1270 "DynareBison.yy" - { driver.option_num("simulation_method",(yysemantic_stack_[(3) - (3)].string_val));;} - break; - - case 544: -#line 1271 "DynareBison.yy" - { driver.option_num("simulation_method", "0"); ;} - break; - - case 545: -#line 1272 "DynareBison.yy" - { driver.option_num("simulation_method", "1"); ;} - break; - - case 546: -#line 1273 "DynareBison.yy" - { driver.option_num("simulation_method", "2"); ;} - break; - - case 547: -#line 1274 "DynareBison.yy" - { driver.option_num("simulation_method", "3"); ;} - break; - - case 548: -#line 1275 "DynareBison.yy" - { driver.option_num("markowitz", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 549: -#line 1276 "DynareBison.yy" - { driver.option_num("simul", "1"); ;} - break; - - case 550: -#line 1277 "DynareBison.yy" - { driver.option_num("simul_seed", (yysemantic_stack_[(3) - (3)].string_val));} - break; - - case 551: -#line 1278 "DynareBison.yy" - { driver.option_num("qz_criterium", (yysemantic_stack_[(3) - (3)].string_val)) ;} - break; - - case 552: -#line 1279 "DynareBison.yy" - { driver.option_str("datafile", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 553: -#line 1281 "DynareBison.yy" - { driver.option_num("nobs", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 554: -#line 1283 "DynareBison.yy" - { driver.option_num("nobs", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 555: -#line 1285 "DynareBison.yy" - { driver.option_num("first_obs", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 556: -#line 1286 "DynareBison.yy" - { driver.option_num("prefilter", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 557: -#line 1287 "DynareBison.yy" - { driver.option_num("presample", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 558: -#line 1288 "DynareBison.yy" - { driver.option_num("lik_algo", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 559: -#line 1289 "DynareBison.yy" - { driver.option_num("lik_init", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 560: -#line 1291 "DynareBison.yy" - { driver.option_num("nograph","1"); ;} - break; - - case 561: -#line 1293 "DynareBison.yy" - { driver.option_num("nograph", "0"); ;} - break; - - case 562: -#line 1295 "DynareBison.yy" - { driver.option_num("conf_sig", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 563: -#line 1296 "DynareBison.yy" - { driver.option_num("mh_replic", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 564: -#line 1297 "DynareBison.yy" - { driver.option_num("mh_drop", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 565: -#line 1298 "DynareBison.yy" - { driver.option_num("mh_jscale", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 567: -#line 1300 "DynareBison.yy" - { driver.option_num("mh_init_scale", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 568: -#line 1301 "DynareBison.yy" - { driver.option_str("mode_file", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 569: -#line 1302 "DynareBison.yy" - { driver.option_num("mode_compute", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 570: -#line 1303 "DynareBison.yy" - { driver.option_num("mode_check", "1"); ;} - break; - - case 571: -#line 1304 "DynareBison.yy" - { driver.option_num("prior_trunc", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 572: -#line 1305 "DynareBison.yy" - { driver.option_num("mh_mode", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 573: -#line 1306 "DynareBison.yy" - { driver.option_num("mh_nblck", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 574: -#line 1307 "DynareBison.yy" - { driver.option_num("load_mh_file", "1"); ;} - break; - - case 575: -#line 1308 "DynareBison.yy" - { driver.option_num("loglinear", "1"); ;} - break; - - case 576: -#line 1309 "DynareBison.yy" - { driver.option_num("nodiagnostic", "1"); ;} - break; - - case 577: -#line 1310 "DynareBison.yy" - { driver.option_num("bayesian_irf", "1"); ;} - break; - - case 578: -#line 1311 "DynareBison.yy" - { driver.option_num("TeX", "1"); ;} - break; - - case 579: -#line 1312 "DynareBison.yy" - { driver.option_num("forecast", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 580: -#line 1313 "DynareBison.yy" - { driver.option_num("smoother", "1"); ;} - break; - - case 581: -#line 1314 "DynareBison.yy" - { driver.option_num("moments_varendo", "1"); ;} - break; - - case 582: -#line 1315 "DynareBison.yy" - { driver.option_num("filtered_vars", "1"); ;} - break; - - case 583: -#line 1316 "DynareBison.yy" - { driver.option_num("relative_irf", "1"); ;} - break; - - case 584: -#line 1317 "DynareBison.yy" - { driver.option_num("kalman_algo", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 585: -#line 1318 "DynareBison.yy" - { driver.option_num("kalman_tol", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 586: -#line 1320 "DynareBison.yy" - { driver.option_str("model_comparison_approximation", "Laplace"); ;} - break; - - case 587: -#line 1322 "DynareBison.yy" - { driver.option_str("model_comparison_approximation", "MODIFIEDHARMONICMEAN"); ;} - break; - - case 588: -#line 1324 "DynareBison.yy" - { driver.option_num("noprint", "0"); ;} - break; - - case 589: -#line 1325 "DynareBison.yy" - { driver.option_num("noprint", "1"); ;} - break; - - case 590: -#line 1326 "DynareBison.yy" - { driver.option_str("xls_sheet", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 591: -#line 1327 "DynareBison.yy" - { driver.option_str("xls_range", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 592: -#line 1328 "DynareBison.yy" - { driver.option_num("filter_step_ahead", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 593: -#line 1329 "DynareBison.yy" - { driver.option_num("noconstant", "0"); ;} - break; - - case 594: -#line 1330 "DynareBison.yy" - { driver.option_num("noconstant", "1"); ;} - break; - - case 595: -#line 1331 "DynareBison.yy" - { driver.option_num("mh_recover", "1"); ;} - break; - - case 596: -#line 1332 "DynareBison.yy" - { driver.option_num("planner_discount",(yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 597: -#line 1334 "DynareBison.yy" - { driver.option_num("bvar_prior_tau", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 598: -#line 1335 "DynareBison.yy" - { driver.option_num("bvar_prior_decay", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 599: -#line 1336 "DynareBison.yy" - { driver.option_num("bvar_prior_lambda", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 600: -#line 1337 "DynareBison.yy" - { driver.option_num("bvar_prior_mu", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 601: -#line 1338 "DynareBison.yy" - { driver.option_num("bvar_prior_omega", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 602: -#line 1339 "DynareBison.yy" - { driver.option_num("bvar_prior_flat", "1"); ;} - break; - - case 603: -#line 1340 "DynareBison.yy" - { driver.option_num("bvar_prior_train", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 604: -#line 1341 "DynareBison.yy" - { driver.option_num("bvar_replic", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 605: -#line 1343 "DynareBison.yy" - { driver.option_num("identification", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 606: -#line 1344 "DynareBison.yy" - { driver.option_num("morris", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 607: -#line 1345 "DynareBison.yy" - { driver.option_num("stab", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 608: -#line 1346 "DynareBison.yy" - { driver.option_num("redform", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 609: -#line 1347 "DynareBison.yy" - { driver.option_num("pprior", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 610: -#line 1348 "DynareBison.yy" - { driver.option_num("prior_range", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 611: -#line 1349 "DynareBison.yy" - { driver.option_num("ppost", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 612: -#line 1350 "DynareBison.yy" - { driver.option_num("ilptau", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 613: -#line 1351 "DynareBison.yy" - { driver.option_num("glue", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 614: -#line 1352 "DynareBison.yy" - { driver.option_num("morris_nliv", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 615: -#line 1353 "DynareBison.yy" - { driver.option_num("morris_ntra", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 616: -#line 1354 "DynareBison.yy" - { driver.option_num("identification", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 617: -#line 1355 "DynareBison.yy" - { driver.option_num("identification", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 618: -#line 1356 "DynareBison.yy" - { driver.option_num("load_rmse", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 619: -#line 1357 "DynareBison.yy" - { driver.option_num("load_stab", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 620: -#line 1358 "DynareBison.yy" - { driver.option_num("identification", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 621: -#line 1359 "DynareBison.yy" - { driver.option_num("ksstat", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 622: -#line 1360 "DynareBison.yy" - { driver.option_num("logtrans_redform", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 623: -#line 1361 "DynareBison.yy" - { driver.option_num("threshold_redfor",(yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 624: -#line 1363 "DynareBison.yy" - { driver.option_num("ksstat_redfrom", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 625: -#line 1364 "DynareBison.yy" - { driver.option_num("alpha2_redform", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 626: -#line 1370 "DynareBison.yy" - { driver.option_num("rmse", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 627: -#line 1371 "DynareBison.yy" - { driver.option_num("lik_only", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 628: -#line 1375 "DynareBison.yy" - { driver.option_num("pfilt_rmse", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 629: -#line 1376 "DynareBison.yy" - { driver.option_num("istart_rmse", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 630: -#line 1377 "DynareBison.yy" - { driver.option_num("alpha_rmse", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 631: -#line 1378 "DynareBison.yy" - { driver.option_num("alpha2_rmse", (yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 632: -#line 1380 "DynareBison.yy" - {driver.option_num("homotopy_mode",(yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 633: -#line 1381 "DynareBison.yy" - {driver.option_num("homotopy_steps",(yysemantic_stack_[(3) - (3)].string_val)); ;} - break; - - case 634: -#line 1384 "DynareBison.yy" - { - (yysemantic_stack_[(3) - (1)].string_val)->append(":"); - (yysemantic_stack_[(3) - (1)].string_val)->append(*(yysemantic_stack_[(3) - (3)].string_val)); - delete (yysemantic_stack_[(3) - (3)].string_val); - (yyval.string_val) = (yysemantic_stack_[(3) - (1)].string_val); - ;} - break; - - case 636: -#line 1393 "DynareBison.yy" - { - (yysemantic_stack_[(3) - (1)].string_val)->append(":"); - (yysemantic_stack_[(3) - (1)].string_val)->append(*(yysemantic_stack_[(3) - (3)].string_val)); - delete (yysemantic_stack_[(3) - (3)].string_val); - (yyval.string_val) = (yysemantic_stack_[(3) - (1)].string_val); - ;} - break; - - case 637: -#line 1402 "DynareBison.yy" - { (yysemantic_stack_[(2) - (2)].string_val)->insert(0, "["); (yyval.string_val) = (yysemantic_stack_[(2) - (2)].string_val);;} - break; - - case 638: -#line 1404 "DynareBison.yy" - { - (yysemantic_stack_[(2) - (1)].string_val)->append(" "); - (yysemantic_stack_[(2) - (1)].string_val)->append(*(yysemantic_stack_[(2) - (2)].string_val)); - delete (yysemantic_stack_[(2) - (2)].string_val); - (yyval.string_val) = (yysemantic_stack_[(2) - (1)].string_val); - ;} - break; - - case 639: -#line 1412 "DynareBison.yy" - { (yysemantic_stack_[(2) - (1)].string_val)->append("]"); (yyval.string_val) = (yysemantic_stack_[(2) - (1)].string_val); ;} - break; - - - /* Line 675 of lalr1.cc. */ -#line 2499 "DynareBison.cc" - default: break; - } - YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc); - - yypop_ (yylen); - yylen = 0; - YY_STACK_PRINT (); - - yysemantic_stack_.push (yyval); - yylocation_stack_.push (yyloc); - - /* Shift the result of the reduction. */ - yyn = yyr1_[yyn]; - yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0]; - if (0 <= yystate && yystate <= yylast_ - && yycheck_[yystate] == yystate_stack_[0]) - yystate = yytable_[yystate]; - else - yystate = yydefgoto_[yyn - yyntokens_]; - goto yynewstate; - - /*------------------------------------. - | yyerrlab -- here on detecting error | - `------------------------------------*/ - yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus_) - { - ++yynerrs_; - error (yylloc, yysyntax_error_ (yystate, yytoken)); - } - - yyerror_range[0] = yylloc; - if (yyerrstatus_ == 3) - { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ - - if (yychar <= yyeof_) - { - /* Return failure if at end of input. */ - if (yychar == yyeof_) - YYABORT; - } - else - { - yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc); - yychar = yyempty_; - } - } - - /* Else will try to reuse look-ahead token after shifting the error - token. */ - goto yyerrlab1; - - - /*---------------------------------------------------. - | yyerrorlab -- error raised explicitly by YYERROR. | - `---------------------------------------------------*/ - yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (false) - goto yyerrorlab; - - yyerror_range[0] = yylocation_stack_[yylen - 1]; - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - yypop_ (yylen); - yylen = 0; - yystate = yystate_stack_[0]; - goto yyerrlab1; - - /*-------------------------------------------------------------. - | yyerrlab1 -- common code for both syntax error and YYERROR. | - `-------------------------------------------------------------*/ - yyerrlab1: - yyerrstatus_ = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact_[yystate]; - if (yyn != yypact_ninf_) - { - yyn += yyterror_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yystate_stack_.height () == 1) - YYABORT; - - yyerror_range[0] = yylocation_stack_[0]; - yydestruct_ ("Error: popping", - yystos_[yystate], - &yysemantic_stack_[0], &yylocation_stack_[0]); - yypop_ (); - yystate = yystate_stack_[0]; - YY_STACK_PRINT (); - } - - if (yyn == yyfinal_) - goto yyacceptlab; - - yyerror_range[1] = yylloc; - // Using YYLLOC is tempting, but would change the location of - // the look-ahead. YYLOC is available though. - YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); - yysemantic_stack_.push (yylval); - yylocation_stack_.push (yyloc); - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos_[yyn], - &yysemantic_stack_[0], &yylocation_stack_[0]); - - yystate = yyn; - goto yynewstate; - - /* Accept. */ - yyacceptlab: - yyresult = 0; - goto yyreturn; - - /* Abort. */ - yyabortlab: - yyresult = 1; - goto yyreturn; - - yyreturn: - if (yychar != yyeof_ && yychar != yyempty_) - yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); - - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - yypop_ (yylen); - while (yystate_stack_.height () != 1) - { - yydestruct_ ("Cleanup: popping", - yystos_[yystate_stack_[0]], - &yysemantic_stack_[0], - &yylocation_stack_[0]); - yypop_ (); - } - - return yyresult; - } - - // Generate an error message. - std::string - parser::yysyntax_error_ (int yystate, int tok) - { - std::string res; - YYUSE (yystate); -#if YYERROR_VERBOSE - int yyn = yypact_[yystate]; - if (yypact_ninf_ < yyn && yyn <= yylast_) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; - int count = 0; - for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != yyterror_) - ++count; - - // FIXME: This method of building the message is not compatible - // with internationalization. It should work like yacc.c does it. - // That is, first build a string that looks like this: - // "syntax error, unexpected %s or %s or %s" - // Then, invoke YY_ on this string. - // Finally, use the string as a format to output - // yytname_[tok], etc. - // Until this gets fixed, this message appears in English only. - res = "syntax error, unexpected "; - res += yytnamerr_ (yytname_[tok]); - if (count < 5) - { - count = 0; - for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != yyterror_) - { - res += (!count++) ? ", expecting " : " or "; - res += yytnamerr_ (yytname_[x]); - } - } - } - else -#endif - res = YY_("syntax error"); - return res; - } - - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ - const short int parser::yypact_ninf_ = -1155; - const short int - parser::yypact_[] = - { - 1186, 20, 25, -99, -103, 105, 491, 60, 21, 47, - -81, 59, -72, -12, 10, 82, 461, 531, 463, -54, - 94, 126, 229, 233, 61, 168, 373, 87, -1155, 251, - 275, 168, 263, 489, 474, 485, 66, 85, 168, 439, - 466, 473, 168, 357, 495, 1063, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, 365, 667, 405, 935, -1155, 559, 86, -1155, - 503, 593, 437, 44, -55, 562, 256, 564, 569, 625, - -1155, 1600, -4, 95, 96, 394, 574, 569, 628, 626, - 465, -1155, 438, 380, 71, 1345, 599, 616, -1155, 1761, - 13, 98, 576, 218, 657, 502, 1448, 1662, 1662, 255, - 71, 498, -1155, 411, -1155, -22, -1155, 1761, 257, -1155, - 1706, 258, 261, 582, 262, 583, 268, 584, 269, 281, - 630, -1155, 2294, -1155, -1155, -1155, 685, -1155, 686, 687, - 691, 693, 694, -1155, 696, 697, 699, -1155, 700, 702, - 705, 706, -1155, 572, 530, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, 710, 711, 713, -1155, 594, 537, -1155, -1155, - -1155, 538, 668, -62, 401, -1155, 717, -50, -1155, -1155, - 548, -1155, 549, -1155, -1155, 674, 340, -1155, 676, 396, - 720, 90, -1155, 678, -1155, 732, -1155, -1155, 733, 734, - 736, 737, 738, -1155, -1155, 739, 742, 743, 744, 746, - 753, -1155, -1155, 755, 768, -1155, -1155, -1155, 769, 770, - -1155, -1155, -48, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, 771, 719, -1155, 723, -1155, 725, 524, - -1155, 653, 740, 669, 741, 532, -1155, 745, 672, 747, - 534, -1155, 635, 113, -1155, 241, 815, 638, 654, -1155, - 1184, -1155, -17, 235, 651, 655, 831, -1155, -1155, 238, - -1155, -1155, -1155, -1155, 783, 785, 138, -1155, -1155, -1155, - 662, 663, 666, 670, 1345, 1345, 673, 679, 680, 681, - 683, 684, 689, 690, 695, 698, 701, 1345, 1259, 703, - 397, -1155, 1288, 398, 841, 844, 845, 846, 851, 853, - -1155, -1155, -1155, 855, 862, 863, -1155, 864, -1155, 868, - 870, 707, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, 776, 824, - -1155, 712, -1155, -1155, -1155, 704, 709, 716, 718, 1448, - 1448, 729, 731, 748, 761, 763, 764, 767, 772, 773, - 774, 775, 1448, 813, -1155, 270, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - 278, -1155, 142, 42, 879, 280, -1155, -1155, -1155, -1155, - 883, 889, 287, -1155, -1155, -1155, -1155, 288, -1155, -1155, - 890, -1155, 290, -1155, -1155, -1155, -1155, -1155, 821, 871, - -1155, -1155, 823, 893, -1155, -1155, 849, 900, -1155, -1155, - 834, 431, -1155, 955, 956, 957, 958, 962, 963, 964, - 965, 977, 978, 979, 980, 981, 985, 987, 992, 993, - 1004, 1005, 1006, 1007, 1011, 1012, 1013, 1014, 1015, 1017, - 842, 899, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, 147, - 264, 147, 1001, 264, 1003, 969, 1008, 28, 1016, 1019, - 972, 973, 667, 1020, 1021, 147, 1025, 935, 1030, 848, - 850, 982, 415, 1031, -1155, -1155, 1032, 503, 857, -1155, - -1155, 858, 18, 998, 877, 53, 1010, 1345, -1155, -1155, - -1155, 874, 1036, 1037, 1041, 1048, 1049, 147, 147, 147, - 1050, 1051, 1052, 1053, 1022, 897, 147, 1600, 56, 1023, - 1077, 960, -1155, -1155, -1155, 72, 961, 364, 983, -1155, - -1155, 984, 364, 986, -1155, -1155, 41, -1155, -1155, -1155, - 1038, 902, -1155, 1045, 48, -1155, 246, -1155, 122, -1155, - 111, -1155, 907, 909, 54, 380, 69, 988, 38, -1155, - -1155, 1345, 1345, 1345, 1345, 974, 470, 1345, 1345, 1345, - 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 482, 1345, - 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, - -1155, 1345, -1155, -1155, 1046, 2056, -1155, 1316, 1081, 147, - 1085, 1087, 1089, 1093, 1094, 1102, 147, 1110, 1116, 1117, - 88, -1155, 1040, -1155, 1448, 1448, 41, 1448, 1018, 505, - 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, - 1448, 664, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, - 1448, 1448, 1448, 966, 1662, 89, 92, -1155, -1155, -1155, - 1345, 366, 30, 429, 411, 967, 1119, 1130, -22, 975, - 1761, 93, 147, 1706, 99, -1155, 1054, -1155, 1055, -1155, - 1056, 1345, -1155, -1155, 1135, 1138, 1142, 1144, 1145, 1154, - 1155, 1156, 1158, 1159, 1164, 1166, 1171, 1172, 1174, 147, - 147, 1175, 874, 147, 147, 1176, 1177, 147, 1178, 147, - 147, 1024, 2294, -1155, -1155, -1155, -1155, 1190, 1192, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, 1183, 17, -1155, - -1155, -1155, -1155, 1026, -1155, -1155, 1033, -1155, -1155, -1155, - -1155, 1034, -1155, 1188, 1035, 1039, 1042, 1345, -1155, -1155, - -1155, -1155, -1155, 284, 1043, -1155, -1155, 286, 1044, 2068, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, 1028, -1155, -1155, -1155, 298, -1155, - 1160, 1161, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - 416, 1047, 1095, 1096, 1173, 1104, 364, 1179, 1060, 364, - -1155, 1205, 1208, 1067, -1155, 569, 1229, -1155, -1155, -1155, - 1448, -1155, 1230, 291, -1155, -1155, -1155, 1083, -1155, -1155, - -1155, 292, -1155, -1155, -1155, 1084, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -44, 67, -1155, 1200, - 1345, 1209, 4, 641, 2298, 2280, 294, 2357, 781, 971, - 1002, 1125, 1381, 1395, 1411, 1423, 1683, 1736, 1750, -1155, - 488, 488, 488, 488, 488, 488, 470, 470, 974, 974, - 1105, 1762, 1345, -1155, 1212, 2082, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, 299, - -1155, 2369, 2381, 1088, 2393, 1774, 1786, 1800, 1820, 1832, - 1844, 1858, 1870, 1890, 1902, 1916, -1155, 544, 544, 544, - 544, 544, 544, 505, 505, 1018, 1018, 1105, -1155, -1155, - -1155, 300, -1155, 301, 1928, 42, 1091, -1155, -1155, 45, - 1345, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, 303, -1155, -1155, -1155, 307, -1155, - -1155, -1155, 2405, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, 1092, -1155, -1155, -1155, 1220, -1155, - -1155, 1097, 1261, -1155, -1155, 2094, -1155, 100, -1155, 203, - -1155, 1221, -1155, 295, -1155, -1155, -1155, -1155, -1155, -1155, - 364, 72, 1157, 364, 1163, 1165, -1155, 1100, -1155, -1155, - 1278, 490, 1448, 2112, 147, 122, -1155, 1184, 111, -1155, - 1184, 1184, 1184, 69, -1155, 364, -1155, 1281, 2124, 1284, - 1267, 1345, 1345, 1345, 1345, -1155, 1345, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, 1112, 2138, - 1345, -1155, -1155, 1448, 1448, -1155, 1448, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, 30, -1155, -1155, -1155, 1345, 1940, -1155, -1155, 1345, - 1274, -1155, 1035, 1345, -1155, -1155, 339, -1155, 344, 1115, - 1028, -1155, -1155, 1180, 1181, 1182, 364, 1123, 364, 364, - -1155, 1345, -1155, 2150, -1155, -1155, -1155, 1128, 197, -1155, - 1131, 214, 675, 692, 132, 1132, 1345, -1155, 1345, 1129, - 39, 2168, 1960, 1974, 2280, 2417, -1155, -1155, 2180, 1986, - 1998, 2429, 2010, -1155, 2194, -1155, 1295, 2206, -1155, -1155, - 1201, -1155, 364, 364, 364, 1203, -1155, 1148, 1150, 2224, - -1155, 1184, -1155, 1184, -1155, -1155, -1155, 364, -1155, 2236, - 2250, 1308, 1149, 1312, 1231, -1155, -1155, -1155, 1345, -1155, - -1155, -1155, 1448, -1155, -1155, 1345, -1155, 33, 1214, -1155, - 1215, 364, -1155, -1155, -1155, 839, 867, 1162, -1155, -1155, - -1155, 1317, 1167, 1345, 2024, 2044, 2262, 1285, -1155, 364, - 97, 1168, -1155, -1155, -1155, -1155, 1319, 2280, 27, -1155, - -1155, -1155, 1169, 1222, 1223, -1155, -1155, 1345, -1155, -1155, - -1155, 364, 364, 2280, 1225, -1155, 364, -1155 - }; - - /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ - const unsigned short int - parser::yydefact_[] = - { - 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, 450, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 4, 29, 30, - 46, 47, 48, 45, 5, 6, 7, 12, 9, 10, - 11, 8, 13, 14, 15, 16, 17, 18, 19, 23, - 25, 24, 20, 21, 22, 26, 27, 28, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 0, 0, 0, 0, 419, 0, 0, 234, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, - 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 0, 0, 0, 0, 0, 406, 0, - 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 239, 0, 227, 0, 246, 0, 0, 453, - 0, 0, 0, 58, 0, 64, 0, 70, 0, 0, - 0, 490, 0, 1, 3, 480, 0, 602, 0, 0, - 0, 0, 0, 593, 0, 0, 0, 594, 0, 0, - 0, 0, 468, 479, 0, 469, 474, 472, 475, 473, - 470, 471, 476, 477, 461, 462, 463, 464, 465, 466, - 467, 488, 0, 0, 0, 482, 487, 0, 484, 483, - 485, 0, 0, 416, 0, 412, 0, 0, 237, 238, - 0, 82, 0, 49, 429, 0, 0, 423, 0, 0, - 0, 0, 126, 0, 577, 0, 582, 561, 0, 0, - 0, 0, 0, 574, 575, 0, 0, 0, 0, 0, - 0, 595, 570, 0, 0, 581, 576, 560, 0, 0, - 580, 578, 0, 331, 367, 356, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 368, 369, 370, 275, 0, 328, 0, 292, 0, 0, - 289, 0, 0, 0, 0, 0, 311, 0, 0, 0, - 0, 305, 0, 0, 130, 0, 0, 0, 0, 84, - 0, 530, 0, 0, 0, 0, 0, 589, 588, 0, - 435, 436, 437, 438, 0, 0, 0, 200, 89, 90, - 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 535, 536, 537, 0, 0, 0, 583, 0, 549, 0, - 0, 0, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 264, 266, 267, 268, 269, 270, 271, - 272, 263, 265, 273, 274, 408, 405, 79, 74, 0, - 55, 0, 80, 165, 166, 0, 0, 195, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 451, 164, 0, 374, 379, 375, 376, - 377, 378, 380, 381, 382, 383, 384, 385, 386, 387, - 0, 51, 0, 0, 0, 0, 242, 243, 245, 244, - 0, 0, 0, 230, 231, 232, 233, 0, 251, 248, - 0, 459, 0, 458, 460, 455, 399, 61, 56, 0, - 52, 67, 62, 0, 53, 73, 68, 0, 54, 394, - 0, 0, 522, 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, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 520, 512, 513, 514, 515, 516, 517, 518, 519, 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, 410, 411, 0, 0, 0, 83, - 50, 0, 0, 0, 0, 0, 0, 0, 124, 125, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 277, 0, 291, 287, 288, 320, 0, 320, 0, 309, - 310, 0, 320, 0, 303, 304, 0, 128, 129, 121, - 0, 0, 85, 0, 0, 159, 0, 160, 0, 155, - 0, 151, 0, 0, 0, 0, 0, 0, 0, 198, - 199, 0, 0, 0, 0, 102, 103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 395, 396, 0, 0, 400, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 75, 81, 0, 0, 0, 0, 178, 179, - 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, 197, 225, 226, - 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 59, 57, 65, 63, 71, - 69, 0, 521, 523, 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, 0, 526, 525, 598, 286, 0, 0, 599, - 600, 601, 597, 603, 552, 555, 554, 0, 0, 553, - 556, 557, 590, 0, 591, 478, 0, 604, 562, 579, - 486, 0, 420, 0, 416, 0, 0, 0, 528, 236, - 235, 432, 427, 0, 0, 426, 421, 0, 0, 0, - 592, 538, 584, 585, 558, 559, 564, 567, 565, 572, - 573, 563, 569, 568, 0, 571, 330, 327, 0, 276, - 0, 0, 315, 322, 316, 321, 318, 323, 317, 319, - 0, 0, 0, 297, 0, 0, 320, 0, 0, 320, - 283, 0, 0, 0, 123, 0, 0, 144, 157, 158, - 0, 162, 0, 0, 135, 141, 142, 0, 139, 138, - 140, 0, 133, 136, 137, 0, 147, 145, 586, 587, - 434, 445, 447, 448, 449, 446, 0, 439, 443, 0, - 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, - 101, 100, 99, 98, 97, 96, 92, 91, 93, 94, - 95, 0, 0, 403, 0, 0, 534, 542, 527, 533, - 539, 540, 531, 541, 551, 532, 529, 550, 407, 0, - 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 176, 175, 174, - 173, 172, 171, 168, 167, 169, 170, 177, 452, 373, - 371, 0, 388, 0, 0, 0, 0, 222, 223, 0, - 0, 547, 545, 546, 543, 544, 241, 240, 632, 633, - 229, 228, 250, 247, 0, 596, 457, 454, 0, 60, - 66, 72, 0, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 491, 492, 285, 284, 635, 637, 639, 638, 0, 481, - 489, 0, 0, 418, 417, 0, 428, 0, 422, 0, - 127, 0, 392, 0, 329, 278, 293, 325, 324, 290, - 320, 320, 0, 320, 0, 0, 308, 0, 282, 281, - 0, 0, 0, 0, 0, 0, 153, 0, 0, 149, - 0, 0, 0, 0, 433, 320, 444, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 0, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 0, 0, - 0, 401, 409, 0, 0, 196, 0, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 372, 389, - 224, 216, 212, 219, 220, 0, 0, 249, 456, 0, - 0, 634, 416, 0, 413, 430, 0, 424, 0, 0, - 0, 566, 294, 0, 0, 0, 320, 0, 320, 320, - 306, 0, 122, 0, 161, 548, 134, 0, 0, 132, - 0, 0, 0, 0, 440, 0, 0, 203, 0, 211, - 0, 0, 0, 0, 120, 0, 398, 404, 0, 0, - 0, 0, 0, 221, 0, 636, 0, 0, 431, 425, - 0, 393, 320, 320, 320, 0, 314, 0, 0, 0, - 194, 0, 156, 0, 152, 148, 146, 320, 441, 0, - 0, 0, 207, 0, 0, 202, 115, 116, 0, 402, - 191, 192, 0, 218, 524, 0, 414, 320, 299, 295, - 298, 320, 312, 307, 131, 0, 0, 0, 205, 204, - 210, 0, 206, 0, 0, 0, 0, 0, 391, 320, - 0, 0, 154, 150, 442, 209, 0, 215, 0, 118, - 193, 415, 0, 300, 0, 313, 208, 0, 201, 214, - 390, 320, 320, 213, 301, 296, 320, 302 - }; - - /* YYPGOTO[NTERM-NUM]. */ - const short int - parser::yypgoto_[] = - { - -1155, -1155, 1335, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -350, -1155, - -1155, -1155, -1155, -110, -228, -1155, -1155, 1059, -1155, -1155, - 265, -1155, -618, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -989, -595, -136, -588, -1155, -1155, -1155, 1245, -260, - -1155, -1155, -1155, -1155, 372, -1155, -1155, 631, -1155, -1155, - 803, -1155, -1155, 637, -1155, -1155, -119, -23, 682, 829, - -1155, -1155, 1098, -1155, -1155, -1154, -1155, -1155, 1074, -1155, - -1155, 1086, -1033, -589, -1155, -1155, 779, -1155, 1262, 658, - -1155, 215, -1155, -1155, -1155, -1155, 1057, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, 1204, -768, -1155, -1155, -1155, -1155, - -1155, 749, -1155, 297, -860, -1155, -1155, -1155, -1155, -1155, - 660, -1155, -53, 852, -1155, -1155, 856, -1155, -1155, 619, - -1155, -1155, -1155, 924, -555, -1155, -82, -1155, 1304, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -90, -1155, -1155, -132, - -573, -1155, -1155, -1155, -1155, -1155, -102, -88, -86, -85, - -84, -1155, -1155, -87, -56, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -79, -1155, -1155, -1155, -1155, -1155, -77, - -76, -49, -74, -71, -67, -1155, -1155, -1155, -1155, -111, - -107, -80, -78, -66, -47, -46, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, - -1155, -1155, -1155, -1155, -1155, -1155, 610, -1155, -532 - }; - - /* YYDEFGOTO[NTERM-NUM]. */ - const short int - parser::yydefgoto_[] = - { - -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 154, 156, 158, 133, 54, 55, 56, 57, 368, 936, - 58, 327, 59, 231, 232, 60, 323, 324, 911, 903, - 912, 913, 914, 61, 330, 1122, 1121, 1210, 915, 1207, - 907, 644, 645, 646, 647, 444, 62, 63, 346, 347, - 1220, 64, 1308, 751, 752, 65, 472, 473, 66, 217, - 218, 67, 465, 466, 68, 477, 481, 112, 893, 809, - 69, 309, 310, 311, 881, 1192, 70, 320, 321, 71, - 315, 316, 882, 1193, 72, 262, 263, 73, 445, 446, - 74, 1092, 1093, 75, 76, 370, 371, 77, 78, 373, - 79, 80, 81, 214, 215, 583, 82, 83, 84, 85, - 339, 340, 926, 927, 928, 86, 136, 743, 87, 482, - 483, 182, 183, 184, 88, 206, 207, 89, 90, 530, - 531, 91, 501, 502, 805, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 468, 906, 408, 409, 410, 185, 186, 187, 188, - 189, 271, 272, 411, 449, 275, 276, 277, 278, 279, - 280, 281, 282, 450, 284, 285, 286, 287, 288, 451, - 452, 453, 454, 455, 456, 412, 295, 296, 341, 413, - 414, 190, 191, 459, 192, 193, 302, 484, 194, 195, - 196, 197, 198, 199, 200, 210, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 475, 476, 824, 1075, 818, 819 - }; - - /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. */ - const signed char parser::yytable_ninf_ = -1; - const short int - parser::yytable_[] = - { - 443, 130, 131, 599, 665, 666, 810, 325, 139, 266, - 391, 467, 342, 148, 151, 152, 343, 678, 219, 159, - 828, 265, 695, 267, 273, 268, 269, 270, 478, 264, - 904, 297, 283, 298, 289, 290, 883, 292, 885, 208, - 293, 469, 205, 888, 294, 299, 209, 447, 447, 898, - 448, 448, 856, 857, 858, 274, 899, 457, 457, 458, - 458, 865, 291, 474, 300, 301, 1082, 1126, 1194, 850, - 803, 1074, 930, 1017, 92, 905, 873, 905, 872, 94, - 897, 804, 816, 303, 1018, 748, 660, 875, 1173, 1279, - 212, 423, 581, 1262, 344, 890, 749, 599, 222, 1174, - 303, 216, 424, 872, 587, 109, 617, 98, 104, 1130, - 1123, 96, 97, 918, 103, 873, 425, 874, 306, 312, - 877, 134, 598, 470, 471, 426, 875, 876, 1208, 108, - 1131, 1211, 1212, 1213, 106, 427, 375, 648, 113, 919, - 109, 135, 874, 109, 967, 637, 109, 375, 109, 582, - 304, 974, 876, 109, 921, 224, 921, 123, 908, 877, - 125, 344, 588, 225, 618, 344, 1124, 304, 1325, 878, - 659, 909, 109, 213, 747, 109, 109, 230, 902, 109, - 109, 1317, 307, 313, 1019, 303, 109, 109, 880, 902, - 803, 428, 931, 1263, 878, 649, 891, 892, 114, 910, - 322, 804, 660, 429, 430, 879, 305, 1035, 345, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 921, - 115, 308, 314, 415, 922, 441, 922, 880, 842, 1252, - 879, 93, 105, 1076, 1058, 1059, 95, 1318, 1062, 1063, - 423, 1020, 1066, 817, 1068, 1069, 1254, 849, 932, 1264, - 1297, 424, 304, 750, 223, 109, 1175, 423, 107, 442, - 1061, 643, 1285, 846, 1286, 425, 867, 1314, 424, 110, - 111, 128, 129, 639, 426, 345, 146, 147, 1125, 345, - 900, 923, 425, 923, 427, 924, 925, 924, 925, 922, - 109, 426, 116, 718, 719, 149, 150, 1104, 978, 1010, - 1107, 427, 1012, 1033, 124, 418, 731, 806, 416, 1037, - 1185, 933, 934, 935, 937, 99, 100, 938, 939, 940, - 941, 942, 943, 944, 945, 946, 947, 948, 230, 950, - 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, - 428, 961, 303, 1257, 303, 303, 923, 965, 303, 488, - 924, 925, 429, 430, 1126, 492, 496, 428, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 303, 429, - 430, 303, 419, 303, 441, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 303, 303, 303, 303, 650, - 303, 441, 655, 732, 303, 733, 734, 735, 736, 737, - 1014, 738, 739, 740, 741, 212, 742, 873, 442, 304, - 643, 304, 304, 1187, 1236, 304, 489, 317, 875, 807, - 808, 1042, 493, 497, 744, 442, 303, 643, 420, 692, - 696, 303, 744, 584, 754, 304, 1021, 174, 304, 126, - 304, 758, 760, 127, 763, 1115, 1118, 651, 1134, 1190, - 656, 877, 304, 304, 304, 304, 901, 304, 835, 1097, - 132, 304, 137, 772, 336, 461, 227, 479, 485, 836, - 1098, 486, 490, 140, 228, 1022, 337, 1023, 494, 498, - 464, 318, 745, 1024, 369, 697, 138, 1085, 213, 338, - 746, 499, 755, 304, 1086, 1025, 1088, 1206, 304, 759, - 761, 331, 764, 1116, 1119, 219, 1135, 1191, 1094, 1152, - 1168, 1169, 1195, 1177, 1197, 266, 384, 1178, 500, 880, - 319, 208, 1202, 141, 205, 101, 153, 265, 209, 267, - 273, 268, 269, 270, 102, 264, 1215, 297, 283, 298, - 289, 290, 905, 292, 342, 905, 293, 306, 343, 1238, - 294, 299, 592, 155, 1239, 312, 623, 317, 593, 1205, - 157, 274, 332, 333, 629, 119, 634, 160, 291, 843, - 300, 301, 847, 334, 120, 165, 1015, 230, 981, 982, - 1128, 984, 1016, 211, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 868, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1245, 595, 1247, - 1248, 307, 1149, 898, 596, 201, 898, 898, 898, 313, - 899, 318, 467, 899, 899, 899, 216, 687, 688, 679, - 689, 680, 681, 682, 683, 684, 220, 685, 686, 687, - 688, 1032, 689, 685, 686, 687, 688, 221, 689, 226, - 308, 229, 469, 1278, 447, 1280, 230, 448, 314, 233, - 319, 322, 740, 741, 457, 742, 458, 326, 1287, 328, - 1176, 117, 118, 121, 122, 329, 474, 166, 167, 168, - 169, 170, 171, 172, 142, 143, 369, 979, 1298, 173, - 898, 898, 1301, 174, 949, 144, 145, 899, 899, 738, - 739, 740, 741, 372, 742, 161, 162, 1255, 417, 175, - 1313, 421, 422, 463, 487, 491, 495, 500, 423, 559, - 560, 561, 1011, 1013, 1256, 562, 572, 563, 564, 424, - 565, 566, 1324, 567, 568, 423, 569, 1327, 1034, 570, - 571, 1038, 573, 425, 574, 575, 424, 576, 577, 578, - 579, 586, 426, 1319, 597, 580, 176, 177, 589, 590, - 425, 591, 427, 594, 1113, 600, 601, 602, 603, 426, - 604, 605, 606, 607, 178, 179, 608, 609, 610, 427, - 611, 1221, 1222, 1223, 1224, 1111, 1225, 612, 679, 613, - 680, 681, 682, 683, 684, 1132, 685, 686, 687, 688, - 1228, 689, 614, 615, 616, 619, 620, 625, 180, 181, - 621, 732, 622, 733, 734, 735, 736, 737, 428, 738, - 739, 740, 741, 627, 742, 1232, 632, 626, 628, 1234, - 429, 430, 631, 1237, 633, 428, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 636, 429, 430, 640, - 641, 1249, 441, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 652, 642, 654, 1259, 653, 1260, 441, - 657, 1302, 658, 661, 662, 698, 996, 663, 699, 700, - 701, 664, 423, 599, 667, 702, 442, 703, 643, 704, - 668, 669, 670, 424, 671, 672, 705, 706, 707, 1303, - 673, 674, 708, 442, 709, 643, 675, 425, 711, 676, - 423, 712, 677, 753, 691, 714, 426, 756, 1294, 710, - 715, 424, 713, 757, 762, 1296, 427, 716, 679, 717, - 680, 681, 682, 683, 684, 425, 685, 686, 687, 688, - 720, 689, 721, 1307, 426, 166, 167, 168, 169, 170, - 171, 172, 202, 765, 427, 767, 203, 173, 766, 722, - 732, 174, 733, 734, 735, 736, 737, 1323, 738, 739, - 740, 741, 723, 742, 724, 725, 1203, 175, 726, 204, - 768, 769, 428, 727, 728, 729, 730, 770, 771, 774, - 775, 776, 777, 1137, 429, 430, 778, 779, 780, 781, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 428, 782, 783, 784, 785, 786, 441, 1229, 1230, 787, - 1231, 788, 429, 430, 176, 177, 789, 790, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 791, 792, - 793, 794, 178, 179, 441, 795, 796, 797, 798, 799, - 442, 800, 643, 802, 801, 811, 814, 813, 832, 822, - 823, 833, 815, 163, 1186, 837, 1188, 840, 841, 834, - 820, 1, 2, 821, 826, 827, 180, 181, 442, 829, - 643, 3, 4, 5, 831, 844, 838, 845, 6, 817, - 851, 852, 7, 8, 9, 853, 10, 848, 11, 12, - 13, 14, 854, 855, 859, 860, 861, 862, 864, 863, - 869, 870, 895, 15, 871, 884, 16, 916, 679, 917, - 680, 681, 682, 683, 684, 894, 685, 686, 687, 688, - 17, 689, 896, 962, 689, 966, 1295, 886, 887, 968, - 889, 969, 929, 970, 18, 19, 20, 971, 972, 679, - 21, 680, 681, 682, 683, 684, 973, 685, 686, 687, - 688, 22, 689, 23, 975, 24, 25, 26, 27, 28, - 976, 977, 980, 1028, 29, 30, 1008, 1027, 742, 31, - 32, 33, 34, 1138, 1029, 1031, 1039, 1040, 1041, 1043, - 35, 36, 1044, 37, 1, 2, 1045, 38, 1046, 1047, - 39, 40, 41, 42, 3, 4, 5, 43, 1048, 1049, - 1050, 6, 1051, 1052, 1139, 7, 8, 9, 1053, 10, - 1054, 11, 12, 13, 14, 1055, 1056, 423, 1057, 1060, - 1064, 1065, 1067, 1072, 1070, 1073, 15, 1074, 424, 16, - 1078, 44, 1081, 1079, 1080, 1091, 582, 1095, 1096, 1100, - 1101, 1083, 425, 17, 1084, 1087, 1089, 1099, 1103, 1108, - 1102, 426, 1109, 1112, 1114, -1, 1105, 18, 19, 20, - 1106, 427, 679, 21, 680, 681, 682, 683, 684, 1110, - 685, 686, 687, 688, 22, 689, 23, 1127, 24, 25, - 26, 27, 28, 1117, 1120, 1183, 1129, 29, 30, 1150, - 1155, 1172, 31, 32, 33, 34, 1180, 1181, 1189, 1182, - 1200, 1196, 1201, 35, 36, 1216, 37, 1198, 1218, 1199, - 38, 1219, 1226, 39, 40, 41, 42, 428, 1235, 1275, - 43, 348, 1240, 1246, 1242, 1243, 1244, 1140, 1251, 429, - 430, 1253, 349, 1261, 1258, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 1277, 350, 1281, 1282, 348, - 1283, 441, 1290, 1291, 44, 351, 1292, 1293, 1299, 1300, - 349, 1305, 1312, 1316, 1304, 352, 1321, 1322, 1315, 1326, - 164, 1306, 638, 1209, 350, 462, 1320, 1171, 348, 1030, - 839, 1026, 812, 351, 635, 442, 866, 643, 983, 349, - 460, 630, 1009, 352, 920, 1241, 679, 624, 680, 681, - 682, 683, 684, 350, 685, 686, 687, 688, 585, 689, - 1214, 1071, 351, 1036, 825, 773, 335, 693, 1077, 0, - 0, 353, 352, 830, 0, 0, 0, 0, 0, 0, - 0, 0, 694, 354, 355, 0, 0, 0, 0, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 353, - 0, 0, 0, 0, 0, 366, 0, 0, 0, 690, - 964, 354, 355, 0, 0, 0, 0, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 0, 353, 0, - 0, 423, 0, 366, 0, 0, 0, 0, 0, 367, - 354, 355, 424, 0, 0, 0, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 425, 0, 0, 0, - 0, 0, 366, 0, 0, 426, 0, 367, 679, 0, - 680, 681, 682, 683, 684, 427, 685, 686, 687, 688, - 0, 689, 679, 0, 680, 681, 682, 683, 684, 0, - 685, 686, 687, 688, 0, 689, 367, 0, 679, 0, - 680, 681, 682, 683, 684, 0, 685, 686, 687, 688, - 679, 689, 680, 681, 682, 683, 684, 0, 685, 686, - 687, 688, 0, 689, 0, 0, 0, 0, 0, 0, - 0, 428, 0, 1141, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 429, 430, 234, 0, 1142, 0, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 0, - 0, 203, 173, 1143, 0, 441, 174, 0, 0, 0, - 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, - 235, 236, 175, 0, 204, 0, 0, 0, 0, 237, - 0, 0, 0, 0, 0, 0, 238, 239, 240, 442, - 0, 241, 242, 0, 243, 244, 0, 234, 0, 0, - 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, - 254, 0, 0, 203, 0, 0, 255, 0, 0, 176, - 177, 0, 256, 0, 257, 0, 0, 0, 0, 258, - 0, 0, 235, 236, 0, 0, 204, 178, 179, 374, - 259, 237, 0, 0, 0, 0, 0, 0, 238, 0, - 0, 0, 260, 216, 0, 0, 0, 0, 0, 261, - 0, 375, 0, 376, 377, 0, 0, 0, 0, 0, - 0, 180, 181, 0, 0, 0, 0, 0, 255, 0, - 0, 0, 0, 0, 0, 237, 257, 378, 379, 0, - 0, 0, 238, 0, 374, 0, 0, 0, 0, 331, - 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 260, 0, 375, 0, 376, 377, - 0, 261, 0, 0, 0, 0, 0, 380, 0, 381, - 257, 382, 337, 180, 181, 0, 0, 383, 0, 0, - 237, 384, 378, 379, 0, 338, 0, 238, 0, 385, - 386, 387, 0, 0, 331, 388, 389, 390, 0, 216, - 679, 0, 680, 681, 682, 683, 684, 480, 685, 686, - 687, 688, 0, 689, 0, 0, 0, 0, 0, 0, - 0, 0, 380, 0, 381, 257, 382, 337, 0, 0, - 0, 0, 383, 0, 0, 0, 384, 0, 0, 0, - 338, 0, 0, 0, 385, 386, 387, 0, 0, 0, - 388, 389, 390, 679, 216, 680, 681, 682, 683, 684, - 0, 685, 686, 687, 688, 1145, 689, 679, 0, 680, - 681, 682, 683, 684, 0, 685, 686, 687, 688, 679, - 689, 680, 681, 682, 683, 684, 0, 685, 686, 687, - 688, 732, 689, 733, 734, 735, 736, 737, 0, 738, - 739, 740, 741, 732, 742, 733, 734, 735, 736, 737, - 0, 738, 739, 740, 741, 0, 742, 732, 1146, 733, - 734, 735, 736, 737, 0, 738, 739, 740, 741, 0, - 742, 0, 1147, 0, 0, 0, 0, 732, 0, 733, - 734, 735, 736, 737, 1148, 738, 739, 740, 741, 732, - 742, 733, 734, 735, 736, 737, 1157, 738, 739, 740, - 741, 732, 742, 733, 734, 735, 736, 737, 1158, 738, - 739, 740, 741, 0, 742, 732, 0, 733, 734, 735, - 736, 737, 1159, 738, 739, 740, 741, 732, 742, 733, - 734, 735, 736, 737, 0, 738, 739, 740, 741, 0, - 742, 0, 1160, 0, 0, 0, 0, 732, 0, 733, - 734, 735, 736, 737, 1161, 738, 739, 740, 741, 732, - 742, 733, 734, 735, 736, 737, 1162, 738, 739, 740, - 741, 0, 742, 732, 0, 733, 734, 735, 736, 737, - 1163, 738, 739, 740, 741, 679, 742, 680, 681, 682, - 683, 684, 1164, 685, 686, 687, 688, 679, 689, 680, - 681, 682, 683, 684, 0, 685, 686, 687, 688, 0, - 689, 0, 1165, 0, 0, 0, 0, 679, 0, 680, - 681, 682, 683, 684, 1166, 685, 686, 687, 688, 0, - 689, 679, 0, 680, 681, 682, 683, 684, 1167, 685, - 686, 687, 688, 732, 689, 733, 734, 735, 736, 737, - 1170, 738, 739, 740, 741, 732, 742, 733, 734, 735, - 736, 737, 1233, 738, 739, 740, 741, 679, 742, 680, - 681, 682, 683, 684, 0, 685, 686, 687, 688, 0, - 689, 679, 1266, 680, 681, 682, 683, 684, 0, 685, - 686, 687, 688, 0, 689, 0, 1267, 0, 0, 0, - 0, 732, 0, 733, 734, 735, 736, 737, 1270, 738, - 739, 740, 741, 679, 742, 680, 681, 682, 683, 684, - 1271, 685, 686, 687, 688, 679, 689, 680, 681, 682, - 683, 684, 1273, 685, 686, 687, 688, 0, 689, 679, - 0, 680, 681, 682, 683, 684, 1309, 685, 686, 687, - 688, 679, 689, 680, 681, 682, 683, 684, 0, 685, - 686, 687, 688, 0, 689, 0, 1310, 0, 0, 732, - 0, 733, 734, 735, 736, 737, 963, 738, 739, 740, - 741, 679, 742, 680, 681, 682, 683, 684, 1090, 685, - 686, 687, 688, 0, 689, 679, 0, 680, 681, 682, - 683, 684, 1151, 685, 686, 687, 688, 732, 689, 733, - 734, 735, 736, 737, 1184, 738, 739, 740, 741, 0, - 742, 0, 0, 0, 0, 679, 0, 680, 681, 682, - 683, 684, 1204, 685, 686, 687, 688, 679, 689, 680, - 681, 682, 683, 684, 1217, 685, 686, 687, 688, 0, - 689, 679, 0, 680, 681, 682, 683, 684, 1227, 685, - 686, 687, 688, 679, 689, 680, 681, 682, 683, 684, - 1250, 685, 686, 687, 688, 0, 689, 0, 0, 0, - 0, 679, 0, 680, 681, 682, 683, 684, 1265, 685, - 686, 687, 688, 679, 689, 680, 681, 682, 683, 684, - 1269, 685, 686, 687, 688, 0, 689, 679, 0, 680, - 681, 682, 683, 684, 1274, 685, 686, 687, 688, 679, - 689, 680, 681, 682, 683, 684, 1276, 685, 686, 687, - 688, 0, 689, 0, 0, 0, 0, 679, 0, 680, - 681, 682, 683, 684, 1284, 685, 686, 687, 688, 0, - 689, 0, 0, 0, 0, 679, 1288, 680, 681, 682, - 683, 684, 1133, 685, 686, 687, 688, 0, 689, 0, - 1289, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1311, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 0, 0, 0, 524, 525, 0, - 526, 527, 528, 529, 679, 0, 680, 681, 682, 683, - 684, 1136, 685, 686, 687, 688, 732, 689, 733, 734, - 735, 736, 737, 1153, 738, 739, 740, 741, 732, 742, - 733, 734, 735, 736, 737, 1154, 738, 739, 740, 741, - 732, 742, 733, 734, 735, 736, 737, 1156, 738, 739, - 740, 741, 679, 742, 680, 681, 682, 683, 684, 1179, - 685, 686, 687, 688, 679, 689, 680, 681, 682, 683, - 684, 1268, 685, 686, 687, 688, 732, 689, 733, 734, - 735, 736, 737, 1272, 738, 739, 740, 741, 0, 742 - }; - - /* YYCHECK. */ - const short int - parser::yycheck_[] = - { - 136, 24, 25, 231, 354, 355, 561, 117, 31, 111, - 129, 143, 123, 36, 37, 38, 123, 367, 100, 42, - 575, 111, 372, 111, 111, 111, 111, 111, 147, 111, - 648, 111, 111, 111, 111, 111, 625, 111, 627, 95, - 111, 143, 95, 632, 111, 111, 95, 137, 138, 644, - 137, 138, 607, 608, 609, 111, 644, 137, 138, 137, - 138, 616, 111, 145, 111, 111, 834, 927, 1101, 601, - 43, 54, 34, 43, 54, 648, 43, 650, 6, 54, - 32, 54, 54, 87, 54, 43, 346, 54, 43, 1243, - 4, 43, 154, 54, 23, 54, 54, 325, 54, 54, - 87, 123, 54, 6, 154, 87, 154, 210, 87, 105, - 154, 210, 211, 59, 54, 43, 68, 45, 23, 23, - 87, 34, 32, 145, 146, 77, 54, 55, 1117, 210, - 126, 1120, 1121, 1122, 87, 87, 25, 154, 210, 85, - 87, 54, 45, 87, 699, 32, 87, 25, 87, 211, - 154, 706, 55, 87, 87, 210, 87, 211, 47, 87, - 34, 23, 212, 218, 212, 23, 210, 154, 1322, 97, - 32, 60, 87, 87, 32, 87, 87, 87, 67, 87, - 87, 154, 87, 87, 154, 87, 87, 87, 155, 67, - 43, 143, 154, 154, 97, 212, 155, 156, 210, 88, - 87, 54, 462, 155, 156, 133, 210, 762, 137, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 87, - 210, 126, 126, 210, 157, 177, 157, 155, 210, 32, - 133, 211, 211, 216, 789, 790, 211, 210, 793, 794, - 43, 211, 797, 215, 799, 800, 32, 597, 210, 210, - 217, 54, 154, 211, 210, 87, 211, 43, 211, 211, - 792, 213, 1251, 210, 1253, 68, 210, 1300, 54, 210, - 211, 210, 211, 32, 77, 137, 210, 211, 211, 137, - 34, 214, 68, 214, 87, 218, 219, 218, 219, 157, - 87, 77, 210, 429, 430, 210, 211, 886, 210, 210, - 889, 87, 210, 210, 210, 87, 442, 43, 210, 210, - 210, 661, 662, 663, 664, 210, 211, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 87, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 143, 691, 87, 211, 87, 87, 214, 697, 87, 87, - 218, 219, 155, 156, 1214, 87, 87, 143, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 87, 155, - 156, 87, 154, 87, 177, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 87, 87, 87, 87, 154, - 87, 177, 154, 147, 87, 149, 150, 151, 152, 153, - 750, 155, 156, 157, 158, 4, 160, 43, 211, 154, - 213, 154, 154, 210, 1182, 154, 154, 23, 54, 155, - 156, 771, 154, 154, 154, 211, 87, 213, 210, 32, - 32, 87, 154, 32, 154, 154, 7, 26, 154, 210, - 154, 154, 154, 210, 154, 154, 154, 212, 154, 154, - 212, 87, 154, 154, 154, 154, 210, 154, 43, 43, - 87, 154, 211, 32, 84, 210, 210, 210, 210, 54, - 54, 210, 210, 210, 218, 46, 96, 48, 210, 210, - 69, 87, 212, 54, 87, 87, 211, 837, 87, 109, - 212, 210, 212, 154, 210, 66, 210, 1115, 154, 212, - 212, 63, 212, 212, 212, 587, 212, 212, 210, 210, - 210, 210, 1101, 210, 1103, 617, 105, 210, 87, 155, - 126, 577, 32, 34, 577, 34, 87, 617, 577, 617, - 617, 617, 617, 617, 43, 617, 1125, 617, 617, 617, - 617, 617, 1115, 617, 655, 1118, 617, 23, 655, 210, - 617, 617, 212, 87, 210, 23, 32, 23, 218, 1114, - 87, 617, 124, 125, 32, 34, 32, 210, 617, 592, - 617, 617, 595, 135, 43, 210, 210, 87, 714, 715, - 930, 717, 216, 24, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 618, 732, 733, 734, 735, - 736, 737, 738, 739, 740, 741, 742, 1196, 212, 1198, - 1199, 87, 962, 1208, 218, 210, 1211, 1212, 1213, 87, - 1208, 87, 754, 1211, 1212, 1213, 123, 157, 158, 147, - 160, 149, 150, 151, 152, 153, 43, 155, 156, 157, - 158, 760, 160, 155, 156, 157, 158, 210, 160, 87, - 126, 87, 754, 1242, 744, 1244, 87, 744, 126, 34, - 126, 87, 157, 158, 744, 160, 744, 39, 1257, 43, - 1020, 210, 211, 210, 211, 210, 758, 10, 11, 12, - 13, 14, 15, 16, 210, 211, 87, 710, 1277, 22, - 1285, 1286, 1281, 26, 212, 210, 211, 1285, 1286, 155, - 156, 157, 158, 87, 160, 210, 211, 32, 132, 42, - 1299, 54, 210, 215, 132, 132, 132, 87, 43, 34, - 34, 34, 745, 746, 32, 34, 154, 34, 34, 54, - 34, 34, 1321, 34, 34, 43, 34, 1326, 761, 34, - 34, 764, 212, 68, 34, 34, 54, 34, 154, 212, - 212, 34, 77, 1308, 34, 87, 89, 90, 210, 210, - 68, 87, 87, 87, 900, 87, 34, 34, 34, 77, - 34, 34, 34, 34, 107, 108, 34, 34, 34, 87, - 34, 1131, 1132, 1133, 1134, 895, 1136, 34, 147, 34, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 1150, 160, 34, 34, 34, 34, 87, 154, 141, 142, - 87, 147, 87, 149, 150, 151, 152, 153, 143, 155, - 156, 157, 158, 154, 160, 1175, 154, 87, 87, 1179, - 155, 156, 87, 1183, 87, 143, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 211, 155, 156, 34, - 212, 1201, 177, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 212, 210, 34, 1216, 212, 1218, 177, - 87, 32, 87, 211, 211, 34, 212, 211, 34, 34, - 34, 211, 43, 1111, 211, 34, 211, 34, 213, 34, - 211, 211, 211, 54, 211, 211, 34, 34, 34, 32, - 211, 211, 34, 211, 34, 213, 211, 68, 132, 211, - 43, 87, 211, 34, 211, 211, 77, 34, 1268, 212, - 211, 54, 210, 34, 34, 1275, 87, 211, 147, 211, - 149, 150, 151, 152, 153, 68, 155, 156, 157, 158, - 211, 160, 211, 1293, 77, 10, 11, 12, 13, 14, - 15, 16, 17, 132, 87, 132, 21, 22, 87, 211, - 147, 26, 149, 150, 151, 152, 153, 1317, 155, 156, - 157, 158, 211, 160, 211, 211, 1112, 42, 211, 44, - 87, 132, 143, 211, 211, 211, 211, 87, 154, 34, - 34, 34, 34, 212, 155, 156, 34, 34, 34, 34, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 143, 34, 34, 34, 34, 34, 177, 1153, 1154, 34, - 1156, 34, 155, 156, 89, 90, 34, 34, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 34, 34, - 34, 34, 107, 108, 177, 34, 34, 34, 34, 34, - 211, 34, 213, 154, 212, 54, 87, 54, 210, 87, - 87, 211, 54, 0, 1087, 34, 1089, 210, 210, 87, - 54, 8, 9, 54, 54, 54, 141, 142, 211, 54, - 213, 18, 19, 20, 54, 87, 54, 210, 25, 215, - 54, 54, 29, 30, 31, 54, 33, 87, 35, 36, - 37, 38, 54, 54, 54, 54, 54, 54, 211, 87, - 87, 34, 210, 50, 154, 154, 53, 210, 147, 210, - 149, 150, 151, 152, 153, 87, 155, 156, 157, 158, - 67, 160, 87, 87, 160, 54, 1272, 154, 154, 54, - 154, 54, 154, 54, 81, 82, 83, 54, 54, 147, - 87, 149, 150, 151, 152, 153, 54, 155, 156, 157, - 158, 98, 160, 100, 54, 102, 103, 104, 105, 106, - 54, 54, 132, 54, 111, 112, 210, 210, 160, 116, - 117, 118, 119, 212, 54, 210, 132, 132, 132, 54, - 127, 128, 54, 130, 8, 9, 54, 134, 54, 54, - 137, 138, 139, 140, 18, 19, 20, 144, 54, 54, - 54, 25, 54, 54, 212, 29, 30, 31, 54, 33, - 54, 35, 36, 37, 38, 54, 54, 43, 54, 54, - 54, 54, 54, 43, 210, 43, 50, 54, 54, 53, - 214, 178, 54, 210, 210, 217, 211, 87, 87, 154, - 154, 212, 68, 67, 212, 212, 212, 210, 154, 54, - 87, 77, 54, 34, 34, 160, 87, 81, 82, 83, - 210, 87, 147, 87, 149, 150, 151, 152, 153, 212, - 155, 156, 157, 158, 98, 160, 100, 87, 102, 103, - 104, 105, 106, 210, 210, 34, 87, 111, 112, 87, - 212, 210, 116, 117, 118, 119, 214, 87, 87, 212, - 210, 154, 34, 127, 128, 34, 130, 154, 34, 154, - 134, 54, 210, 137, 138, 139, 140, 143, 54, 34, - 144, 43, 217, 210, 154, 154, 154, 212, 210, 155, - 156, 210, 54, 214, 212, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 154, 68, 154, 210, 43, - 210, 177, 54, 214, 178, 77, 54, 136, 154, 154, - 54, 54, 87, 54, 212, 87, 154, 154, 210, 154, - 45, 214, 323, 1118, 68, 140, 217, 1015, 43, 758, - 587, 754, 563, 77, 320, 211, 617, 213, 716, 54, - 138, 315, 744, 87, 655, 1190, 147, 309, 149, 150, - 151, 152, 153, 68, 155, 156, 157, 158, 214, 160, - 1123, 802, 77, 763, 572, 501, 122, 370, 818, -1, - -1, 143, 87, 577, -1, -1, -1, -1, -1, -1, - -1, -1, 154, 155, 156, -1, -1, -1, -1, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 143, - -1, -1, -1, -1, -1, 177, -1, -1, -1, 210, - 154, 155, 156, -1, -1, -1, -1, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, -1, 143, -1, - -1, 43, -1, 177, -1, -1, -1, -1, -1, 211, - 155, 156, 54, -1, -1, -1, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 68, -1, -1, -1, - -1, -1, 177, -1, -1, 77, -1, 211, 147, -1, - 149, 150, 151, 152, 153, 87, 155, 156, 157, 158, - -1, 160, 147, -1, 149, 150, 151, 152, 153, -1, - 155, 156, 157, 158, -1, 160, 211, -1, 147, -1, - 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, - 147, 160, 149, 150, 151, 152, 153, -1, 155, 156, - 157, 158, -1, 160, -1, -1, -1, -1, -1, -1, - -1, 143, -1, 212, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 155, 156, 5, -1, 212, -1, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, -1, - -1, 21, 22, 212, -1, 177, 26, -1, -1, -1, - -1, -1, -1, -1, -1, 212, -1, -1, -1, -1, - 40, 41, 42, -1, 44, -1, -1, -1, -1, 49, - -1, -1, -1, -1, -1, -1, 56, 57, 58, 211, - -1, 61, 62, -1, 64, 65, -1, 5, -1, -1, - 70, 71, 72, 73, 74, 75, 76, -1, 78, 79, - 80, -1, -1, 21, -1, -1, 86, -1, -1, 89, - 90, -1, 92, -1, 94, -1, -1, -1, -1, 99, - -1, -1, 40, 41, -1, -1, 44, 107, 108, 3, - 110, 49, -1, -1, -1, -1, -1, -1, 56, -1, - -1, -1, 122, 123, -1, -1, -1, -1, -1, 129, - -1, 25, -1, 27, 28, -1, -1, -1, -1, -1, - -1, 141, 142, -1, -1, -1, -1, -1, 86, -1, - -1, -1, -1, -1, -1, 49, 94, 51, 52, -1, - -1, -1, 56, -1, 3, -1, -1, -1, -1, 63, - -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, -1, 25, -1, 27, 28, - -1, 129, -1, -1, -1, -1, -1, 91, -1, 93, - 94, 95, 96, 141, 142, -1, -1, 101, -1, -1, - 49, 105, 51, 52, -1, 109, -1, 56, -1, 113, - 114, 115, -1, -1, 63, 119, 120, 121, -1, 123, - 147, -1, 149, 150, 151, 152, 153, 131, 155, 156, - 157, 158, -1, 160, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, 93, 94, 95, 96, -1, -1, - -1, -1, 101, -1, -1, -1, 105, -1, -1, -1, - 109, -1, -1, -1, 113, 114, 115, -1, -1, -1, - 119, 120, 121, 147, 123, 149, 150, 151, 152, 153, - -1, 155, 156, 157, 158, 212, 160, 147, -1, 149, - 150, 151, 152, 153, -1, 155, 156, 157, 158, 147, - 160, 149, 150, 151, 152, 153, -1, 155, 156, 157, - 158, 147, 160, 149, 150, 151, 152, 153, -1, 155, - 156, 157, 158, 147, 160, 149, 150, 151, 152, 153, - -1, 155, 156, 157, 158, -1, 160, 147, 212, 149, - 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, - 160, -1, 212, -1, -1, -1, -1, 147, -1, 149, - 150, 151, 152, 153, 212, 155, 156, 157, 158, 147, - 160, 149, 150, 151, 152, 153, 212, 155, 156, 157, - 158, 147, 160, 149, 150, 151, 152, 153, 212, 155, - 156, 157, 158, -1, 160, 147, -1, 149, 150, 151, - 152, 153, 212, 155, 156, 157, 158, 147, 160, 149, - 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, - 160, -1, 212, -1, -1, -1, -1, 147, -1, 149, - 150, 151, 152, 153, 212, 155, 156, 157, 158, 147, - 160, 149, 150, 151, 152, 153, 212, 155, 156, 157, - 158, -1, 160, 147, -1, 149, 150, 151, 152, 153, - 212, 155, 156, 157, 158, 147, 160, 149, 150, 151, - 152, 153, 212, 155, 156, 157, 158, 147, 160, 149, - 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, - 160, -1, 212, -1, -1, -1, -1, 147, -1, 149, - 150, 151, 152, 153, 212, 155, 156, 157, 158, -1, - 160, 147, -1, 149, 150, 151, 152, 153, 212, 155, - 156, 157, 158, 147, 160, 149, 150, 151, 152, 153, - 212, 155, 156, 157, 158, 147, 160, 149, 150, 151, - 152, 153, 212, 155, 156, 157, 158, 147, 160, 149, - 150, 151, 152, 153, -1, 155, 156, 157, 158, -1, - 160, 147, 212, 149, 150, 151, 152, 153, -1, 155, - 156, 157, 158, -1, 160, -1, 212, -1, -1, -1, - -1, 147, -1, 149, 150, 151, 152, 153, 212, 155, - 156, 157, 158, 147, 160, 149, 150, 151, 152, 153, - 212, 155, 156, 157, 158, 147, 160, 149, 150, 151, - 152, 153, 212, 155, 156, 157, 158, -1, 160, 147, - -1, 149, 150, 151, 152, 153, 212, 155, 156, 157, - 158, 147, 160, 149, 150, 151, 152, 153, -1, 155, - 156, 157, 158, -1, 160, -1, 212, -1, -1, 147, - -1, 149, 150, 151, 152, 153, 210, 155, 156, 157, - 158, 147, 160, 149, 150, 151, 152, 153, 210, 155, - 156, 157, 158, -1, 160, 147, -1, 149, 150, 151, - 152, 153, 210, 155, 156, 157, 158, 147, 160, 149, - 150, 151, 152, 153, 210, 155, 156, 157, 158, -1, - 160, -1, -1, -1, -1, 147, -1, 149, 150, 151, - 152, 153, 210, 155, 156, 157, 158, 147, 160, 149, - 150, 151, 152, 153, 210, 155, 156, 157, 158, -1, - 160, 147, -1, 149, 150, 151, 152, 153, 210, 155, - 156, 157, 158, 147, 160, 149, 150, 151, 152, 153, - 210, 155, 156, 157, 158, -1, 160, -1, -1, -1, - -1, 147, -1, 149, 150, 151, 152, 153, 210, 155, - 156, 157, 158, 147, 160, 149, 150, 151, 152, 153, - 210, 155, 156, 157, 158, -1, 160, 147, -1, 149, - 150, 151, 152, 153, 210, 155, 156, 157, 158, 147, - 160, 149, 150, 151, 152, 153, 210, 155, 156, 157, - 158, -1, 160, -1, -1, -1, -1, 147, -1, 149, - 150, 151, 152, 153, 210, 155, 156, 157, 158, -1, - 160, -1, -1, -1, -1, 147, 210, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, -1, 160, -1, - 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 210, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, -1, -1, -1, 203, 204, -1, - 206, 207, 208, 209, 147, -1, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 147, 160, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 147, 160, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 147, 160, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 147, 160, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 147, 160, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 147, 160, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, -1, 160 - }; - - /* STOS_[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ - const unsigned short int - parser::yystos_[] = - { - 0, 8, 9, 18, 19, 20, 25, 29, 30, 31, - 33, 35, 36, 37, 38, 50, 53, 67, 81, 82, - 83, 87, 98, 100, 102, 103, 104, 105, 106, 111, - 112, 116, 117, 118, 119, 127, 128, 130, 134, 137, - 138, 139, 140, 144, 178, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 234, 235, 236, 237, 240, 242, - 245, 253, 266, 267, 271, 275, 278, 281, 284, 290, - 296, 299, 304, 307, 310, 313, 314, 317, 318, 320, - 321, 322, 326, 327, 328, 329, 335, 338, 344, 347, - 348, 351, 54, 211, 54, 211, 210, 211, 210, 210, - 211, 34, 43, 54, 87, 211, 87, 211, 210, 87, - 210, 211, 287, 210, 210, 210, 210, 210, 211, 34, - 43, 210, 211, 211, 210, 34, 210, 210, 210, 211, - 287, 287, 87, 233, 34, 54, 336, 211, 211, 287, - 210, 34, 210, 211, 210, 211, 210, 211, 287, 210, - 211, 287, 287, 87, 230, 87, 231, 87, 232, 287, - 210, 210, 211, 0, 222, 210, 10, 11, 12, 13, - 14, 15, 16, 22, 26, 42, 89, 90, 107, 108, - 141, 142, 341, 342, 343, 376, 377, 378, 379, 380, - 411, 412, 414, 415, 418, 419, 420, 421, 422, 423, - 424, 210, 17, 21, 44, 342, 345, 346, 384, 401, - 425, 24, 4, 87, 323, 324, 123, 279, 280, 356, - 43, 210, 54, 210, 210, 218, 87, 210, 218, 87, - 87, 243, 244, 34, 5, 40, 41, 49, 56, 57, - 58, 61, 62, 64, 65, 70, 71, 72, 73, 74, - 75, 76, 78, 79, 80, 86, 92, 94, 99, 110, - 122, 129, 305, 306, 356, 366, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 406, 407, 411, 412, 413, - 414, 415, 416, 87, 154, 210, 23, 87, 126, 291, - 292, 293, 23, 87, 126, 300, 301, 23, 87, 126, - 297, 298, 87, 246, 247, 243, 39, 241, 43, 210, - 254, 63, 124, 125, 135, 358, 84, 96, 109, 330, - 331, 408, 409, 410, 23, 137, 268, 269, 43, 54, - 68, 77, 87, 143, 155, 156, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 177, 211, 238, 87, - 315, 316, 87, 319, 3, 25, 27, 28, 51, 52, - 91, 93, 95, 101, 105, 113, 114, 115, 119, 120, - 121, 286, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 373, 374, - 375, 383, 405, 409, 410, 210, 210, 132, 87, 154, - 210, 54, 210, 43, 54, 68, 77, 87, 143, 155, - 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 177, 211, 263, 265, 308, 309, 366, 383, 384, - 393, 399, 400, 401, 402, 403, 404, 411, 412, 413, - 308, 210, 268, 215, 69, 282, 283, 369, 371, 376, - 145, 146, 276, 277, 356, 453, 454, 285, 286, 210, - 131, 286, 339, 340, 417, 210, 210, 132, 87, 154, - 210, 132, 87, 154, 210, 132, 87, 154, 210, 210, - 87, 352, 353, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 203, 204, 206, 207, 208, 209, - 349, 350, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 154, 212, 34, 34, 34, 154, 212, 212, - 87, 154, 211, 325, 32, 324, 34, 154, 212, 210, - 210, 87, 212, 218, 87, 212, 218, 34, 32, 244, - 87, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 154, 212, 34, - 87, 87, 87, 32, 292, 154, 87, 154, 87, 32, - 301, 87, 154, 87, 32, 298, 211, 32, 247, 32, - 34, 212, 210, 213, 261, 262, 263, 264, 154, 212, - 154, 212, 212, 212, 34, 154, 212, 87, 87, 32, - 269, 211, 211, 211, 211, 238, 238, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 238, 147, - 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, - 210, 211, 32, 316, 154, 238, 32, 87, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 212, 132, 87, 210, 211, 211, 211, 211, 263, 263, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 263, 147, 149, 150, 151, 152, 153, 155, 156, - 157, 158, 160, 337, 154, 212, 212, 32, 43, 54, - 211, 273, 274, 34, 154, 212, 34, 34, 154, 212, - 154, 212, 34, 154, 212, 132, 87, 132, 87, 132, - 87, 154, 32, 353, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 212, 154, 43, 54, 354, 43, 155, 156, 289, - 354, 54, 289, 54, 87, 54, 54, 215, 457, 458, - 54, 54, 87, 87, 455, 343, 54, 54, 354, 54, - 346, 54, 210, 211, 87, 43, 54, 34, 54, 280, - 210, 210, 210, 287, 87, 210, 210, 287, 87, 238, - 458, 54, 54, 54, 54, 54, 354, 354, 354, 54, - 54, 54, 54, 87, 211, 354, 306, 210, 287, 87, - 34, 154, 6, 43, 45, 54, 55, 87, 97, 133, - 155, 294, 302, 303, 154, 303, 154, 154, 303, 154, - 54, 155, 156, 288, 87, 210, 87, 32, 262, 264, - 34, 210, 67, 249, 252, 370, 372, 260, 47, 60, - 88, 248, 250, 251, 252, 258, 210, 210, 59, 85, - 331, 87, 157, 214, 218, 219, 332, 333, 334, 154, - 34, 154, 210, 238, 238, 238, 239, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 212, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 87, 210, 154, 238, 54, 354, 54, 54, - 54, 54, 54, 54, 354, 54, 54, 54, 210, 287, - 132, 263, 263, 288, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 212, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, 210, 309, - 210, 287, 210, 287, 238, 210, 216, 43, 54, 154, - 211, 7, 46, 48, 54, 66, 283, 210, 54, 54, - 277, 210, 286, 210, 287, 354, 340, 210, 287, 132, - 132, 132, 238, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 354, 354, - 54, 458, 354, 354, 54, 54, 354, 54, 354, 354, - 210, 349, 43, 43, 54, 456, 216, 456, 214, 210, - 210, 54, 325, 212, 212, 238, 210, 212, 210, 212, - 210, 217, 311, 312, 210, 87, 87, 43, 54, 210, - 154, 154, 87, 154, 303, 87, 210, 303, 54, 54, - 212, 243, 34, 263, 34, 154, 212, 210, 154, 212, - 210, 256, 255, 154, 210, 211, 334, 87, 238, 87, - 105, 126, 154, 154, 154, 212, 154, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 238, - 87, 210, 210, 154, 154, 212, 154, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 210, 210, - 212, 274, 210, 43, 54, 211, 238, 210, 210, 154, - 214, 87, 212, 34, 210, 210, 287, 210, 287, 87, - 154, 212, 295, 303, 302, 303, 154, 303, 154, 154, - 210, 34, 32, 263, 210, 354, 252, 259, 261, 250, - 257, 261, 261, 261, 333, 303, 34, 210, 34, 54, - 270, 238, 238, 238, 238, 238, 210, 210, 238, 263, - 263, 263, 238, 212, 238, 54, 325, 238, 210, 210, - 217, 311, 154, 154, 154, 303, 210, 303, 303, 238, - 210, 210, 32, 210, 32, 32, 32, 211, 212, 238, - 238, 214, 54, 154, 210, 210, 212, 212, 154, 210, - 212, 212, 154, 212, 210, 34, 210, 154, 303, 295, - 303, 154, 210, 210, 210, 261, 261, 303, 210, 210, - 54, 214, 54, 136, 238, 263, 238, 217, 303, 154, - 154, 303, 32, 32, 212, 54, 214, 238, 272, 212, - 212, 210, 87, 303, 302, 210, 54, 154, 210, 354, - 217, 154, 154, 238, 303, 295, 154, 303 - }; - -#if YYDEBUG - /* TOKEN_NUMBER_[YYLEX-NUM] -- Internal symbol number corresponding - to YYLEX-NUM. */ - const unsigned short int - parser::yytoken_number_[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 59, 40, 41, 35, 58, 91, 93, 39, 46, 92 - }; -#endif - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ - const unsigned short int - parser::yyr1_[] = - { - 0, 220, 221, 221, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 223, 223, 223, 223, 224, - 224, 225, 226, 227, 228, 229, 230, 230, 230, 230, - 230, 230, 231, 231, 231, 231, 231, 231, 232, 232, - 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, - 234, 234, 235, 235, 236, 236, 237, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, - 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, - 239, 240, 240, 241, 242, 243, 243, 244, 245, 246, - 246, 247, 248, 248, 249, 249, 250, 250, 251, 251, - 251, 252, 252, 254, 253, 255, 253, 256, 253, 257, - 253, 258, 253, 259, 253, 260, 253, 261, 261, 261, - 261, 262, 262, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 264, 265, 265, 266, 267, 268, - 268, 269, 269, 269, 269, 269, 270, 270, 270, 270, - 270, 270, 271, 272, 272, 272, 273, 273, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 275, 275, 276, - 276, 277, 277, 277, 278, 278, 279, 279, 280, 281, - 281, 282, 282, 283, 283, 283, 284, 284, 284, 284, - 285, 285, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 287, 287, 287, 287, 287, - 287, 288, 288, 288, 289, 289, 289, 290, 291, 291, - 292, 293, 293, 293, 294, 294, 294, 294, 294, 295, - 295, 295, 295, 296, 297, 297, 298, 298, 298, 299, - 300, 300, 301, 301, 301, 302, 302, 302, 302, 302, - 303, 303, 303, 303, 303, 303, 304, 304, 304, 304, - 305, 305, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 307, 307, 308, 308, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 310, 310, - 311, 311, 312, 312, 313, 314, 315, 315, 316, 317, - 318, 319, 319, 319, 319, 320, 321, 321, 321, 321, - 322, 323, 323, 324, 324, 324, 325, 325, 325, 326, - 326, 327, 327, 327, 327, 327, 327, 328, 328, 328, - 328, 328, 328, 329, 330, 330, 331, 331, 331, 332, - 332, 332, 332, 333, 333, 334, 334, 334, 334, 334, - 336, 337, 335, 338, 338, 338, 338, 339, 339, 340, - 340, 341, 341, 341, 341, 341, 341, 341, 342, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 343, 343, - 344, 344, 345, 345, 345, 345, 346, 346, 347, 347, - 348, 348, 349, 349, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 351, 352, 352, 353, 354, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 371, 371, 371, 371, 372, 373, - 374, 375, 376, 377, 377, 378, 379, 380, 381, 382, - 383, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 456, 457, 457, 458 - }; - - /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ - const unsigned char - parser::yyr2_[] = - { - 0, 2, 1, 2, 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, 3, - 4, 3, 3, 3, 3, 3, 2, 3, 1, 3, - 4, 2, 2, 3, 1, 3, 4, 2, 2, 3, - 1, 3, 4, 2, 2, 3, 1, 3, 4, 2, - 3, 4, 3, 4, 3, 4, 4, 3, 1, 1, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 6, 6, 4, 8, 1, - 3, 4, 7, 3, 4, 2, 1, 4, 4, 2, - 1, 7, 3, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 5, 0, 8, 0, 8, 0, - 10, 0, 8, 0, 10, 0, 8, 2, 2, 1, - 1, 4, 2, 3, 1, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 6, 6, 8, 5, 1, 4, 4, 4, 2, - 1, 9, 6, 5, 7, 7, 3, 2, 5, 4, - 3, 1, 6, 3, 2, 1, 3, 1, 5, 3, - 3, 4, 2, 2, 3, 1, 1, 2, 5, 3, - 1, 1, 1, 1, 2, 5, 3, 1, 1, 2, - 5, 3, 1, 1, 1, 1, 2, 5, 3, 6, - 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, 2, 4, 3, 5, 1, - 3, 2, 2, 1, 2, 2, 1, 4, 2, 1, - 4, 2, 1, 4, 3, 5, 9, 1, 5, 3, - 5, 7, 9, 4, 2, 1, 5, 7, 4, 4, - 2, 1, 7, 9, 6, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 2, 2, 2, 5, 3, 6, - 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, 5, 6, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, - 7, 5, 1, 3, 3, 4, 2, 1, 5, 3, - 4, 4, 6, 3, 5, 3, 2, 5, 3, 6, - 4, 2, 1, 5, 7, 9, 0, 3, 3, 2, - 5, 5, 6, 3, 7, 8, 5, 5, 6, 3, - 7, 8, 5, 6, 3, 1, 1, 1, 1, 1, - 3, 4, 6, 1, 2, 1, 1, 1, 1, 1, - 0, 0, 5, 2, 5, 3, 6, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 3, 6, 1, 1, 1, 1, 3, 1, 3, 6, - 2, 5, 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, 4, 1, 2, 6, 1, 1, 3, 3, 3, - 1, 3, 3, 3, 3, 1, 1, 1, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 1, 3, 3, 3, 3, 5, 3, 3, 3, - 1, 3, 3, 3, 1, 1, 1, 1, 1, 3, - 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, - 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, - 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 1, 3, 2, 2, 2 - }; - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE - /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at \a yyntokens_, nonterminals. */ - const char* - const parser::yytname_[] = - { - "$end", "error", "$undefined", "AR", "AUTOCORR", "BAYESIAN_IRF", - "BETA_PDF", "BICGSTAB", "BVAR_DENSITY", "BVAR_FORECAST", - "BVAR_PRIOR_DECAY", "BVAR_PRIOR_FLAT", "BVAR_PRIOR_LAMBDA", - "BVAR_PRIOR_MU", "BVAR_PRIOR_OMEGA", "BVAR_PRIOR_TAU", - "BVAR_PRIOR_TRAIN", "BVAR_REPLIC", "CALIB", "CALIB_VAR", "CHECK", - "CONF_SIG", "CONSTANT", "CORR", "COVAR", "CUTOFF", "DATAFILE", "DR_ALGO", - "DROP", "DSAMPLE", "DYNASAVE", "DYNATYPE", "END", "ENDVAL", "EQUAL", - "ESTIMATION", "ESTIMATED_PARAMS", "ESTIMATED_PARAMS_BOUNDS", - "ESTIMATED_PARAMS_INIT", "FILENAME", "FILTER_STEP_AHEAD", - "FILTERED_VARS", "FIRST_OBS", "FLOAT_NUMBER", "FORECAST", "GAMMA_PDF", - "GAUSSIAN_ELIMINATION", "GCC_COMPILER", "GMRES", "GRAPH", "HISTVAL", - "HP_FILTER", "HP_NGRID", "INITVAL", "INT_NUMBER", "INV_GAMMA_PDF", "IRF", - "KALMAN_ALGO", "KALMAN_TOL", "LAPLACE", "LCC_COMPILER", "LIK_ALGO", - "LIK_INIT", "LINEAR", "LOAD_MH_FILE", "LOGLINEAR", "LU", "MARKOWITZ", - "MAX", "METHOD", "MH_DROP", "MH_INIT_SCALE", "MH_JSCALE", "MH_MODE", - "MH_NBLOCKS", "MH_REPLIC", "MH_RECOVER", "MIN", "MODE_CHECK", - "MODE_COMPUTE", "MODE_FILE", "MODEL", "MODEL_COMPARISON", "MSHOCKS", - "MODEL_COMPARISON_APPROXIMATION", "MODIFIEDHARMONICMEAN", - "MOMENTS_VARENDO", "NAME", "NO_COMPILER", "NOBS", "NOCONSTANT", "NOCORR", - "NODIAGNOSTIC", "NOFUNCTIONS", "NOGRAPH", "NOMOMENTS", "NOPRINT", - "NORMAL_PDF", "OBSERVATION_TRENDS", "OPTIM", "OPTIM_WEIGHTS", "ORDER", - "OSR", "OSR_PARAMS", "PARAMETERS", "PERIODS", "PLANNER_OBJECTIVE", - "PREFILTER", "PRESAMPLE", "PRINT", "PRIOR_TRUNC", "PRIOR_ANALYSIS", - "POSTERIOR_ANALYSIS", "QZ_CRITERIUM", "RELATIVE_IRF", "REPLIC", "RPLOT", - "SHOCKS", "SIGMA_E", "SIMUL", "SIMUL_ALGO", "SIMUL_SEED", "SMOOTHER", - "SOLVE_ALGO", "SPARSE", "SPARSE_DLL", "STDERR", "STEADY", "STOCH_SIMUL", - "TEX", "RAMSEY_POLICY", "PLANNER_DISCOUNT", "TEX_NAME", "UNIFORM_PDF", - "UNIT_ROOT_VARS", "USE_DLL", "VALUES", "VAR", "VAREXO", "VAREXO_DET", - "VAROBS", "XLS_SHEET", "XLS_RANGE", "NORMCDF", "HOMOTOPY_SETUP", - "HOMOTOPY_MODE", "HOMOTOPY_STEPS", "EXCLAMATION_EQUAL", "EXCLAMATION", - "EQUAL_EQUAL", "GREATER_EQUAL", "LESS_EQUAL", "GREATER", "LESS", "COMMA", - "MINUS", "PLUS", "DIVIDE", "TIMES", "UMINUS", "POWER", "EXP", "LOG", - "LN", "LOG10", "SIN", "COS", "TAN", "ASIN", "ACOS", "ATAN", "SINH", - "COSH", "TANH", "ASINH", "ACOSH", "ATANH", "SQRT", "DYNARE_SENSITIVITY", - "IDENTIFICATION", "MORRIS", "STAB", "REDFORM", "PPRIOR", "PRIOR_RANGE", - "PPOST", "ILPTAU", "GLUE", "MORRIS_NLIV", "MORRIS_NTRA", "NSAM", - "LOAD_REDFORM", "LOAD_RMSE", "LOAD_STAB", "ALPHA2_STAB", "KSSTAT", - "LOGTRANS_REDFORM", "THRESHOLD_REDFORM", "KSSTAT_REDFORM", - "ALPHA2_REDFORM", "NAMENDO", "NAMLAGENDO", "NAMEXO", "RMSE", "LIK_ONLY", - "VAR_RMSE", "PFILT_RMSE", "ISTART_RMSE", "ALPHA_RMSE", "ALPHA2_RMSE", - "';'", "'('", "')'", "'#'", "':'", "'['", "']'", "'''", "'.'", "'\\\\'", - "$accept", "statement_list", "statement", "declaration", "dsample", - "rplot", "var", "varexo", "varexo_det", "parameters", "var_list", - "varexo_list", "varexo_det_list", "parameter_list", "periods", "cutoff", - "markowitz", "init_param", "expression", "comma_expression", "initval", - "initval_option", "endval", "initval_list", "initval_elem", "histval", - "histval_list", "histval_elem", "model_sparse_dll_options_list", - "model_sparse_options_list", "model_sparse_dll_options", - "model_compiler_options", "model_sparse_common_options", "model", "@1", - "@2", "@3", "@4", "@5", "@6", "@7", "equation_list", "equation", - "hand_side", "pound_expression", "model_var", "shocks", "mshocks", - "shock_list", "shock_elem", "period_list", "sigma_e", "value_list", - "triangular_matrix", "triangular_row", "steady", "steady_options_list", - "steady_options", "check", "check_options_list", "check_options", - "simul", "simul_options_list", "simul_options", "stoch_simul", - "stoch_simul_options_list", "stoch_simul_options", "tmp_var_list", - "signed_integer", "signed_float", "estimated_params", "estimated_list", - "estimated_elem", "estimated_elem1", "estimated_elem2", - "estimated_elem3", "estimated_params_init", "estimated_init_list", - "estimated_init_elem", "estimated_params_bounds", - "estimated_bounds_list", "estimated_bounds_elem", "prior", "value", - "estimation", "estimation_options_list", "estimation_options", - "prior_analysis", "prior_posterior_options_list", - "prior_posterior_options", "posterior_analysis", "list_optim_option", - "optim_options", "varobs", "observation_trends", "trend_list", - "trend_element", "unit_root_vars", "optim_weights", "optim_weights_list", - "osr_params", "osr", "calib_var", "calib_var_list", "calib_arg1", - "calib_arg2", "calib", "dynatype", "dynasave", "model_comparison", - "model_comparison_options", "model_comparison_option", "filename_list", - "filename", "filename_elem", "planner_objective", "@8", "@9", - "ramsey_policy", "ramsey_policy_options_list", "ramsey_policy_options", - "bvar_prior_option", "bvar_common_option", "bvar_density_options_list", - "bvar_density", "bvar_forecast_option", "bvar_forecast_options_list", - "bvar_forecast", "dynare_sensitivity", "dynare_sensitivity_options_list", - "dynare_sensitivity_option", "homotopy_setup", "homotopy_list", - "homotopy_item", "number", "o_dr_algo", "o_solve_algo", "o_simul_algo", - "o_linear", "o_order", "o_replic", "o_drop", "o_ar", "o_nocorr", - "o_nofunctions", "o_nomoments", "o_irf", "o_hp_filter", "o_hp_ngrid", - "o_periods", "o_cutoff", "o_method", "o_markowitz", "o_simul", - "o_simul_seed", "o_qz_criterium", "o_datafile", "o_nobs", "o_first_obs", - "o_prefilter", "o_presample", "o_lik_algo", "o_lik_init", "o_nograph", - "o_conf_sig", "o_mh_replic", "o_mh_drop", "o_mh_jscale", "o_optim", - "o_mh_init_scale", "o_mode_file", "o_mode_compute", "o_mode_check", - "o_prior_trunc", "o_mh_mode", "o_mh_nblcks", "o_load_mh_file", - "o_loglinear", "o_nodiagnostic", "o_bayesian_irf", "o_tex", "o_forecast", - "o_smoother", "o_moments_varendo", "o_filtered_vars", "o_relative_irf", - "o_kalman_algo", "o_kalman_tol", "o_model_comparison_approximation", - "o_print", "o_noprint", "o_xls_sheet", "o_xls_range", - "o_filter_step_ahead", "o_constant", "o_noconstant", "o_mh_recover", - "o_planner_discount", "o_bvar_prior_tau", "o_bvar_prior_decay", - "o_bvar_prior_lambda", "o_bvar_prior_mu", "o_bvar_prior_omega", - "o_bvar_prior_flat", "o_bvar_prior_train", "o_bvar_replic", - "o_gsa_identification", "o_gsa_morris", "o_gsa_stab", "o_gsa_redform", - "o_gsa_pprior", "o_gsa_prior_range", "o_gsa_ppost", "o_gsa_ilptau", - "o_gsa_glue", "o_gsa_morris_nliv", "o_gsa_morris_ntra", "o_gsa_nsam", - "o_gsa_load_redform", "o_gsa_load_rmse", "o_gsa_load_stab", - "o_gsa_alpha2_stab", "o_gsa_ksstat", "o_gsa_logtrans_redform", - "o_gsa_threshold_redform", "o_gsa_ksstat_redform", - "o_gsa_alpha2_redform", "o_gsa_rmse", "o_gsa_lik_only", - "o_gsa_pfilt_rmse", "o_gsa_istart_rmse", "o_gsa_alpha_rmse", - "o_gsa_alpha2_rmse", "o_homotopy_mode", "o_homotopy_steps", "range", - "vec_int_elem", "vec_int_1", "vec_int", 0 - }; -#endif - -#if YYDEBUG - /* YYRHS -- A `-1'-separated list of the rules' RHS. */ - const parser::rhs_number_type - parser::yyrhs_[] = - { - 221, 0, -1, 222, -1, 221, 222, -1, 223, -1, - 234, -1, 235, -1, 236, -1, 253, -1, 240, -1, - 242, -1, 245, -1, 237, -1, 266, -1, 267, -1, - 271, -1, 275, -1, 278, -1, 281, -1, 284, -1, - 304, -1, 307, -1, 310, -1, 290, -1, 299, -1, - 296, -1, 313, -1, 314, -1, 317, -1, 224, -1, - 225, -1, 318, -1, 320, -1, 321, -1, 322, -1, - 326, -1, 327, -1, 328, -1, 329, -1, 335, -1, - 338, -1, 344, -1, 347, -1, 348, -1, 351, -1, - 229, -1, 226, -1, 227, -1, 228, -1, 29, 54, - 210, -1, 29, 54, 54, 210, -1, 116, 287, 210, - -1, 137, 230, 210, -1, 138, 231, 210, -1, 139, - 232, 210, -1, 104, 233, 210, -1, 230, 87, -1, - 230, 154, 87, -1, 87, -1, 230, 87, 132, -1, - 230, 154, 87, 132, -1, 87, 132, -1, 231, 87, - -1, 231, 154, 87, -1, 87, -1, 231, 87, 132, - -1, 231, 154, 87, 132, -1, 87, 132, -1, 232, - 87, -1, 232, 154, 87, -1, 87, -1, 232, 87, - 132, -1, 232, 154, 87, 132, -1, 87, 132, -1, - 233, 87, -1, 233, 154, 87, -1, 87, -1, 233, - 87, 132, -1, 233, 154, 87, 132, -1, 87, 132, - -1, 105, 54, 210, -1, 105, 34, 54, 210, -1, - 25, 43, 210, -1, 25, 34, 43, 210, -1, 67, - 43, 210, -1, 67, 34, 43, 210, -1, 87, 34, - 238, 210, -1, 211, 238, 212, -1, 87, -1, 43, - -1, 54, -1, 238, 156, 238, -1, 238, 155, 238, - -1, 238, 157, 238, -1, 238, 158, 238, -1, 238, - 160, 238, -1, 238, 153, 238, -1, 238, 152, 238, - -1, 238, 151, 238, -1, 238, 150, 238, -1, 238, - 149, 238, -1, 238, 147, 238, -1, 155, 238, -1, - 156, 238, -1, 161, 211, 238, 212, -1, 162, 211, - 238, 212, -1, 163, 211, 238, 212, -1, 164, 211, - 238, 212, -1, 165, 211, 238, 212, -1, 166, 211, - 238, 212, -1, 167, 211, 238, 212, -1, 168, 211, - 238, 212, -1, 169, 211, 238, 212, -1, 170, 211, - 238, 212, -1, 177, 211, 238, 212, -1, 68, 211, - 238, 154, 238, 212, -1, 77, 211, 238, 154, 238, - 212, -1, 87, 211, 239, 212, -1, 143, 211, 238, - 154, 238, 154, 238, 212, -1, 238, -1, 239, 154, - 238, -1, 53, 210, 243, 32, -1, 53, 211, 241, - 212, 210, 243, 32, -1, 39, 34, 87, -1, 33, - 210, 243, 32, -1, 243, 244, -1, 244, -1, 87, - 34, 238, 210, -1, 50, 210, 246, 32, -1, 246, - 247, -1, 247, -1, 87, 211, 288, 212, 34, 238, - 210, -1, 248, 154, 250, -1, 250, -1, 249, 154, - 252, -1, 252, -1, 251, -1, 252, -1, 60, -1, - 47, -1, 88, -1, 370, -1, 372, -1, -1, 81, - 210, 254, 261, 32, -1, -1, 81, 211, 358, 212, - 210, 255, 261, 32, -1, -1, 81, 211, 135, 212, - 210, 256, 261, 32, -1, -1, 81, 211, 125, 154, - 248, 212, 257, 210, 261, 32, -1, -1, 81, 211, - 125, 212, 258, 210, 261, 32, -1, -1, 81, 211, - 124, 154, 249, 212, 259, 210, 261, 32, -1, -1, - 81, 211, 124, 212, 260, 210, 261, 32, -1, 261, - 262, -1, 261, 264, -1, 262, -1, 264, -1, 263, - 34, 263, 210, -1, 263, 210, -1, 211, 263, 212, - -1, 265, -1, 43, -1, 54, -1, 263, 156, 263, - -1, 263, 155, 263, -1, 263, 157, 263, -1, 263, - 158, 263, -1, 263, 153, 263, -1, 263, 152, 263, - -1, 263, 151, 263, -1, 263, 150, 263, -1, 263, - 149, 263, -1, 263, 147, 263, -1, 263, 160, 263, - -1, 155, 263, -1, 156, 263, -1, 161, 211, 263, - 212, -1, 162, 211, 263, 212, -1, 163, 211, 263, - 212, -1, 164, 211, 263, 212, -1, 165, 211, 263, - 212, -1, 166, 211, 263, 212, -1, 167, 211, 263, - 212, -1, 168, 211, 263, 212, -1, 169, 211, 263, - 212, -1, 170, 211, 263, 212, -1, 177, 211, 263, - 212, -1, 68, 211, 263, 154, 263, 212, -1, 77, - 211, 263, 154, 263, 212, -1, 143, 211, 263, 154, - 263, 154, 263, 212, -1, 213, 87, 34, 263, 210, - -1, 87, -1, 87, 211, 288, 212, -1, 117, 210, - 268, 32, -1, 83, 210, 268, 32, -1, 268, 269, - -1, 269, -1, 137, 87, 210, 105, 270, 210, 136, - 272, 210, -1, 137, 87, 210, 126, 238, 210, -1, - 137, 87, 34, 238, 210, -1, 137, 87, 154, 87, - 34, 238, 210, -1, 23, 87, 154, 87, 34, 238, - 210, -1, 270, 154, 54, -1, 270, 54, -1, 270, - 154, 54, 214, 54, -1, 270, 54, 214, 54, -1, - 54, 214, 54, -1, 54, -1, 118, 34, 215, 273, - 216, 210, -1, 272, 154, 238, -1, 272, 354, -1, - 238, -1, 273, 210, 274, -1, 274, -1, 274, 154, - 211, 238, 212, -1, 274, 154, 43, -1, 274, 154, - 54, -1, 274, 211, 238, 212, -1, 274, 43, -1, - 274, 54, -1, 211, 238, 212, -1, 43, -1, 54, - -1, 127, 210, -1, 127, 211, 276, 212, 210, -1, - 276, 154, 277, -1, 277, -1, 356, -1, 453, -1, - 454, -1, 20, 210, -1, 20, 211, 279, 212, 210, - -1, 279, 154, 280, -1, 280, -1, 356, -1, 119, - 210, -1, 119, 211, 282, 212, 210, -1, 282, 154, - 283, -1, 283, -1, 369, -1, 376, -1, 371, -1, - 128, 210, -1, 128, 211, 285, 212, 210, -1, 128, - 287, 210, -1, 128, 211, 285, 212, 287, 210, -1, - 285, 154, 286, -1, 286, -1, 355, -1, 356, -1, - 357, -1, 358, -1, 359, -1, 360, -1, 361, -1, - 362, -1, 363, -1, 364, -1, 365, -1, 383, -1, - 366, -1, 405, -1, 367, -1, 368, -1, 369, -1, - 370, -1, 373, -1, 374, -1, 375, -1, 409, -1, - 410, -1, 287, 87, -1, 287, 87, 34, 87, -1, - 287, 154, 87, -1, 287, 154, 87, 34, 87, -1, - 87, -1, 87, 34, 87, -1, 156, 54, -1, 155, - 54, -1, 54, -1, 156, 43, -1, 155, 43, -1, - 43, -1, 36, 210, 291, 32, -1, 291, 292, -1, - 292, -1, 293, 154, 294, 210, -1, 126, 87, -1, - 87, -1, 23, 87, 154, 87, -1, 302, 154, 295, - -1, 303, 154, 302, 154, 295, -1, 303, 154, 303, - 154, 303, 154, 302, 154, 295, -1, 303, -1, 303, - 154, 303, 154, 303, -1, 303, 154, 303, -1, 303, - 154, 303, 154, 303, -1, 303, 154, 303, 154, 303, - 154, 303, -1, 303, 154, 303, 154, 303, 154, 303, - 154, 303, -1, 38, 210, 297, 32, -1, 297, 298, - -1, 298, -1, 126, 87, 154, 303, 210, -1, 23, - 87, 154, 87, 154, 303, 210, -1, 87, 154, 303, - 210, -1, 37, 210, 300, 32, -1, 300, 301, -1, - 301, -1, 126, 87, 154, 303, 154, 303, 210, -1, - 23, 87, 154, 87, 154, 303, 154, 303, 210, -1, - 87, 154, 303, 154, 303, 210, -1, 6, -1, 45, - -1, 97, -1, 55, -1, 133, -1, -1, 54, -1, - 43, -1, 87, -1, 155, 54, -1, 155, 43, -1, - 35, 210, -1, 35, 211, 305, 212, 210, -1, 35, - 287, 210, -1, 35, 211, 305, 212, 287, 210, -1, - 305, 154, 306, -1, 306, -1, 376, -1, 377, -1, - 378, -1, 379, -1, 380, -1, 381, -1, 382, -1, - 383, -1, 384, -1, 385, -1, 386, -1, 387, -1, - 388, -1, 389, -1, 390, -1, 391, -1, 392, -1, - 393, -1, 394, -1, 395, -1, 396, -1, 397, -1, - 398, -1, 399, -1, 366, -1, 400, -1, 401, -1, - 402, -1, 403, -1, 404, -1, 406, -1, 407, -1, - 411, -1, 412, -1, 413, -1, 356, -1, 414, -1, - 415, -1, 416, -1, 111, 211, 308, 212, 210, -1, - 111, 211, 308, 212, 287, 210, -1, 308, 154, 309, - -1, 309, -1, 383, -1, 384, -1, 393, -1, 399, - -1, 366, -1, 400, -1, 401, -1, 402, -1, 403, - -1, 404, -1, 411, -1, 412, -1, 413, -1, 112, - 211, 308, 212, 210, -1, 112, 211, 308, 212, 287, - 210, -1, 217, 87, 217, 154, 217, 87, 217, -1, - 217, 87, 217, 154, 303, -1, 311, -1, 312, 154, - 311, -1, 140, 287, 210, -1, 98, 210, 315, 32, - -1, 315, 316, -1, 316, -1, 87, 211, 238, 212, - 210, -1, 134, 287, 210, -1, 100, 210, 319, 32, - -1, 319, 87, 238, 210, -1, 319, 87, 154, 87, - 238, 210, -1, 87, 238, 210, -1, 87, 154, 87, - 238, 210, -1, 103, 287, 210, -1, 102, 210, -1, - 102, 211, 286, 212, 210, -1, 102, 287, 210, -1, - 102, 211, 286, 212, 287, 210, -1, 19, 210, 323, - 32, -1, 323, 324, -1, 324, -1, 87, 325, 34, - 238, 210, -1, 87, 154, 87, 325, 34, 238, 210, - -1, 4, 87, 211, 54, 212, 325, 34, 238, 210, - -1, -1, 211, 54, 212, -1, 211, 43, 212, -1, - 18, 210, -1, 18, 211, 24, 212, 210, -1, 31, - 211, 87, 212, 210, -1, 31, 211, 87, 212, 287, - 210, -1, 31, 87, 210, -1, 31, 211, 87, 218, - 87, 212, 210, -1, 31, 211, 87, 218, 87, 212, - 287, 210, -1, 31, 87, 218, 87, 210, -1, 30, - 211, 87, 212, 210, -1, 30, 211, 87, 212, 287, - 210, -1, 30, 87, 210, -1, 30, 211, 87, 218, - 87, 212, 210, -1, 30, 211, 87, 218, 87, 212, - 287, 210, -1, 30, 87, 218, 87, 210, -1, 82, - 211, 330, 212, 332, 210, -1, 330, 154, 331, -1, - 331, -1, 408, -1, 409, -1, 410, -1, 333, -1, - 332, 154, 333, -1, 333, 211, 303, 212, -1, 332, - 154, 333, 211, 303, 212, -1, 334, -1, 333, 334, - -1, 87, -1, 219, -1, 157, -1, 214, -1, 218, - -1, -1, -1, 106, 336, 263, 337, 210, -1, 130, - 210, -1, 130, 211, 339, 212, 210, -1, 130, 287, - 210, -1, 130, 211, 339, 212, 287, 210, -1, 339, - 154, 340, -1, 340, -1, 286, -1, 417, -1, 418, - -1, 419, -1, 420, -1, 421, -1, 422, -1, 423, - -1, 424, -1, 341, -1, 376, -1, 411, -1, 412, - -1, 378, -1, 380, -1, 377, -1, 379, -1, 414, - -1, 415, -1, 342, 154, 343, -1, 342, -1, 8, - 54, 210, -1, 8, 211, 343, 212, 54, 210, -1, - 342, -1, 401, -1, 384, -1, 425, -1, 345, 154, - 346, -1, 345, -1, 9, 54, 210, -1, 9, 211, - 346, 212, 54, 210, -1, 178, 210, -1, 178, 211, - 349, 212, 210, -1, 350, 154, 349, -1, 350, -1, - 426, -1, 427, -1, 428, -1, 429, -1, 430, -1, - 431, -1, 432, -1, 433, -1, 434, -1, 435, -1, - 436, -1, 437, -1, 438, -1, 439, -1, 440, -1, - 441, -1, 442, -1, 443, -1, 445, -1, 446, -1, - 447, -1, 448, -1, 449, -1, 450, -1, 451, -1, - 452, -1, 444, -1, 144, 210, 352, 32, -1, 353, - -1, 352, 353, -1, 87, 154, 238, 154, 238, 210, - -1, 54, -1, 43, -1, 27, 34, 54, -1, 123, - 34, 54, -1, 120, 34, 54, -1, 63, -1, 101, - 34, 54, -1, 115, 34, 54, -1, 28, 34, 54, - -1, 3, 34, 54, -1, 91, -1, 93, -1, 95, - -1, 56, 34, 54, -1, 51, 34, 54, -1, 52, - 34, 54, -1, 105, 34, 54, -1, 25, 34, 354, - -1, 69, 34, 54, -1, 69, 34, 66, -1, 69, - 34, 46, -1, 69, 34, 48, -1, 69, 34, 7, - -1, 67, 34, 354, -1, 119, -1, 121, 34, 54, - -1, 113, 34, 354, -1, 26, 34, 87, -1, 89, - 34, 458, -1, 89, 34, 54, -1, 42, 34, 54, - -1, 107, 34, 54, -1, 108, 34, 54, -1, 61, - 34, 54, -1, 62, 34, 54, -1, 94, -1, 49, - -1, 21, 34, 354, -1, 75, 34, 54, -1, 70, - 34, 354, -1, 72, 34, 354, -1, 99, 34, 211, - 312, 212, -1, 71, 34, 354, -1, 80, 34, 87, - -1, 79, 34, 54, -1, 78, -1, 110, 34, 354, - -1, 73, 34, 54, -1, 74, 34, 54, -1, 64, - -1, 65, -1, 92, -1, 5, -1, 129, -1, 44, - 34, 54, -1, 122, -1, 86, -1, 41, -1, 114, - -1, 57, 34, 54, -1, 58, 34, 54, -1, 84, - 34, 59, -1, 84, 34, 85, -1, 109, -1, 96, - -1, 141, 34, 87, -1, 142, 34, 455, -1, 40, - 34, 458, -1, 22, -1, 90, -1, 76, -1, 131, - 34, 354, -1, 15, 34, 289, -1, 10, 34, 354, - -1, 12, 34, 289, -1, 13, 34, 354, -1, 14, - 34, 54, -1, 11, -1, 16, 34, 54, -1, 17, - 34, 54, -1, 179, 34, 54, -1, 180, 34, 54, - -1, 181, 34, 54, -1, 182, 34, 54, -1, 183, - 34, 54, -1, 184, 34, 54, -1, 185, 34, 54, - -1, 186, 34, 54, -1, 187, 34, 54, -1, 188, - 34, 54, -1, 189, 34, 54, -1, 190, 34, 54, - -1, 191, 34, 54, -1, 192, 34, 54, -1, 193, - 34, 54, -1, 194, 34, 354, -1, 195, 34, 354, - -1, 196, 34, 54, -1, 197, 34, 458, -1, 198, - 34, 354, -1, 199, 34, 354, -1, 203, 34, 54, - -1, 204, 34, 54, -1, 206, 34, 354, -1, 207, - 34, 54, -1, 208, 34, 354, -1, 209, 34, 354, - -1, 145, 34, 54, -1, 146, 34, 54, -1, 87, - 214, 87, -1, 54, -1, 54, 214, 54, -1, 215, - 456, -1, 457, 456, -1, 457, 216, -1 - }; - - /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ - const unsigned short int - parser::yyprhs_[] = - { - 0, 0, 3, 5, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, - 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, - 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, - 102, 107, 111, 115, 119, 123, 127, 130, 134, 136, - 140, 145, 148, 151, 155, 157, 161, 166, 169, 172, - 176, 178, 182, 187, 190, 193, 197, 199, 203, 208, - 211, 215, 220, 224, 229, 233, 238, 243, 247, 249, - 251, 253, 257, 261, 265, 269, 273, 277, 281, 285, - 289, 293, 297, 300, 303, 308, 313, 318, 323, 328, - 333, 338, 343, 348, 353, 358, 365, 372, 377, 386, - 388, 392, 397, 405, 409, 414, 417, 419, 424, 429, - 432, 434, 442, 446, 448, 452, 454, 456, 458, 460, - 462, 464, 466, 468, 469, 475, 476, 485, 486, 495, - 496, 507, 508, 517, 518, 529, 530, 539, 542, 545, - 547, 549, 554, 557, 561, 563, 565, 567, 571, 575, - 579, 583, 587, 591, 595, 599, 603, 607, 611, 614, - 617, 622, 627, 632, 637, 642, 647, 652, 657, 662, - 667, 672, 679, 686, 695, 701, 703, 708, 713, 718, - 721, 723, 733, 740, 746, 754, 762, 766, 769, 775, - 780, 784, 786, 793, 797, 800, 802, 806, 808, 814, - 818, 822, 827, 830, 833, 837, 839, 841, 844, 850, - 854, 856, 858, 860, 862, 865, 871, 875, 877, 879, - 882, 888, 892, 894, 896, 898, 900, 903, 909, 913, - 920, 924, 926, 928, 930, 932, 934, 936, 938, 940, - 942, 944, 946, 948, 950, 952, 954, 956, 958, 960, - 962, 964, 966, 968, 970, 972, 975, 980, 984, 990, - 992, 996, 999, 1002, 1004, 1007, 1010, 1012, 1017, 1020, - 1022, 1027, 1030, 1032, 1037, 1041, 1047, 1057, 1059, 1065, - 1069, 1075, 1083, 1093, 1098, 1101, 1103, 1109, 1117, 1122, - 1127, 1130, 1132, 1140, 1150, 1157, 1159, 1161, 1163, 1165, - 1167, 1168, 1170, 1172, 1174, 1177, 1180, 1183, 1189, 1193, - 1200, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, - 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236, 1238, 1240, - 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256, 1258, 1260, - 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278, 1280, - 1282, 1284, 1290, 1297, 1301, 1303, 1305, 1307, 1309, 1311, - 1313, 1315, 1317, 1319, 1321, 1323, 1325, 1327, 1329, 1335, - 1342, 1350, 1356, 1358, 1362, 1366, 1371, 1374, 1376, 1382, - 1386, 1391, 1396, 1403, 1407, 1413, 1417, 1420, 1426, 1430, - 1437, 1442, 1445, 1447, 1453, 1461, 1471, 1472, 1476, 1480, - 1483, 1489, 1495, 1502, 1506, 1514, 1523, 1529, 1535, 1542, - 1546, 1554, 1563, 1569, 1576, 1580, 1582, 1584, 1586, 1588, - 1590, 1594, 1599, 1606, 1608, 1611, 1613, 1615, 1617, 1619, - 1621, 1622, 1623, 1629, 1632, 1638, 1642, 1649, 1653, 1655, - 1657, 1659, 1661, 1663, 1665, 1667, 1669, 1671, 1673, 1675, - 1677, 1679, 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1697, - 1699, 1703, 1710, 1712, 1714, 1716, 1718, 1722, 1724, 1728, - 1735, 1738, 1744, 1748, 1750, 1752, 1754, 1756, 1758, 1760, - 1762, 1764, 1766, 1768, 1770, 1772, 1774, 1776, 1778, 1780, - 1782, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800, - 1802, 1804, 1809, 1811, 1814, 1821, 1823, 1825, 1829, 1833, - 1837, 1839, 1843, 1847, 1851, 1855, 1857, 1859, 1861, 1865, - 1869, 1873, 1877, 1881, 1885, 1889, 1893, 1897, 1901, 1905, - 1907, 1911, 1915, 1919, 1923, 1927, 1931, 1935, 1939, 1943, - 1947, 1949, 1951, 1955, 1959, 1963, 1967, 1973, 1977, 1981, - 1985, 1987, 1991, 1995, 1999, 2001, 2003, 2005, 2007, 2009, - 2013, 2015, 2017, 2019, 2021, 2025, 2029, 2033, 2037, 2039, - 2041, 2045, 2049, 2053, 2055, 2057, 2059, 2063, 2067, 2071, - 2075, 2079, 2083, 2085, 2089, 2093, 2097, 2101, 2105, 2109, - 2113, 2117, 2121, 2125, 2129, 2133, 2137, 2141, 2145, 2149, - 2153, 2157, 2161, 2165, 2169, 2173, 2177, 2181, 2185, 2189, - 2193, 2197, 2201, 2205, 2209, 2213, 2215, 2219, 2222, 2225 - }; - - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ - const unsigned short int - parser::yyrline_[] = - { - 0, 139, 139, 140, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 186, 187, 188, 189, 193, - 195, 199, 201, 203, 205, 207, 209, 211, 213, 215, - 217, 219, 223, 225, 227, 229, 231, 233, 237, 239, - 241, 243, 245, 247, 251, 253, 255, 257, 259, 261, - 265, 267, 271, 273, 277, 279, 284, 286, 288, 290, - 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, - 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, - 332, 334, 336, 338, 340, 342, 344, 346, 348, 352, - 354, 358, 360, 364, 366, 368, 369, 372, 374, 376, - 377, 380, 382, 383, 386, 387, 390, 391, 394, 396, - 398, 402, 403, 406, 406, 408, 408, 410, 410, 413, - 412, 415, 415, 418, 417, 420, 420, 424, 425, 426, - 427, 430, 432, 436, 438, 439, 441, 443, 445, 447, - 449, 451, 453, 455, 457, 459, 461, 463, 465, 467, - 469, 471, 473, 475, 477, 479, 481, 483, 485, 487, - 489, 491, 493, 495, 499, 502, 504, 508, 510, 512, - 513, 516, 518, 520, 522, 524, 528, 530, 532, 534, - 536, 538, 543, 546, 548, 550, 554, 556, 560, 562, - 564, 566, 568, 570, 572, 574, 576, 580, 582, 586, - 587, 590, 591, 592, 595, 597, 601, 602, 605, 607, - 609, 613, 614, 617, 618, 619, 622, 624, 626, 628, - 632, 633, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 661, 663, 665, 667, 669, - 671, 675, 677, 679, 683, 685, 687, 691, 693, 695, - 699, 701, 707, 713, 723, 728, 735, 746, 751, 762, - 769, 778, 789, 804, 807, 809, 813, 821, 831, 841, - 844, 846, 850, 860, 872, 884, 886, 888, 890, 892, - 896, 897, 898, 899, 900, 902, 906, 908, 910, 912, - 916, 917, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, - 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, - 958, 961, 963, 967, 968, 971, 972, 973, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 986, 988, - 992, 994, 998, 999, 1002, 1004, 1006, 1007, 1010, 1012, - 1014, 1016, 1018, 1020, 1022, 1026, 1028, 1030, 1032, 1034, - 1038, 1040, 1041, 1044, 1046, 1048, 1052, 1053, 1055, 1059, - 1061, 1065, 1067, 1069, 1071, 1073, 1075, 1079, 1081, 1083, - 1085, 1087, 1089, 1093, 1096, 1097, 1100, 1101, 1102, 1105, - 1107, 1109, 1111, 1115, 1117, 1121, 1122, 1124, 1126, 1128, - 1132, 1133, 1132, 1135, 1137, 1139, 1141, 1145, 1146, 1149, - 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1174, 1175, - 1178, 1180, 1184, 1185, 1186, 1187, 1190, 1191, 1194, 1196, - 1200, 1202, 1206, 1207, 1210, 1211, 1212, 1213, 1214, 1215, - 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, - 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, - 1236, 1239, 1242, 1243, 1246, 1249, 1250, 1253, 1254, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - 1266, 1267, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1278, 1279, 1280, 1282, 1285, 1286, 1287, 1288, 1289, - 1290, 1292, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, - 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, - 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1321, 1324, 1325, - 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1334, 1335, 1336, - 1337, 1338, 1339, 1340, 1341, 1343, 1344, 1345, 1346, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1361, 1363, 1364, 1370, 1371, 1375, 1376, - 1377, 1378, 1380, 1381, 1383, 1391, 1392, 1401, 1403, 1412 - }; - - // Print the state stack on the debug stream. - void - parser::yystack_print_ () - { - *yycdebug_ << "Stack now"; - for (state_stack_type::const_iterator i = yystate_stack_.begin (); - i != yystate_stack_.end (); ++i) - *yycdebug_ << ' ' << *i; - *yycdebug_ << std::endl; - } - - // Report on the debug stream that the rule \a yyrule is going to be reduced. - void - parser::yy_reduce_print_ (int yyrule) - { - unsigned 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 << "), "; - /* The symbols being reduced. */ - for (int yyi = 0; yyi < yynrhs; yyi++) - YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", - yyrhs_[yyprhs_[yyrule] + yyi], - &(yysemantic_stack_[(yynrhs) - (yyi + 1)]), - &(yylocation_stack_[(yynrhs) - (yyi + 1)])); - } -#endif // YYDEBUG - - /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ - parser::token_number_type - parser::yytranslate_ (int t) - { - static - const token_number_type - translate_table[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 213, 2, 2, 2, 217, - 211, 212, 2, 2, 2, 2, 218, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 214, 210, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 215, 219, 216, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 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, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 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, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 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 - }; - if ((unsigned int) t <= yyuser_token_number_max_) - return translate_table[t]; - else - return yyundef_token_; - } - - const int parser::yyeof_ = 0; - const int parser::yylast_ = 2589; - const int parser::yynnts_ = 239; - const int parser::yyempty_ = -2; - const int parser::yyfinal_ = 163; - const int parser::yyterror_ = 1; - const int parser::yyerrcode_ = 256; - const int parser::yyntokens_ = 220; - - const unsigned int parser::yyuser_token_number_max_ = 464; - const parser::token_number_type parser::yyundef_token_ = 2; - -} // namespace Dynare - -#line 1414 "DynareBison.yy" - - -void -Dynare::parser::error(const Dynare::parser::location_type &l, - const string &m) -{ - driver.error(l, m); -} - -/* - Local variables: - mode: C++ - End: -*/ - diff --git a/parser.src/DynareFlex.cc b/parser.src/DynareFlex.cc deleted file mode 100644 index 1d2b218b3..000000000 --- a/parser.src/DynareFlex.cc +++ /dev/null @@ -1,4074 +0,0 @@ -#line 2 "DynareFlex.cc" - -#line 4 "DynareFlex.cc" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 33 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* %if-c++-only */ - /* The c++ scanner is a mess. The FlexLexer.h header file relies on the - * following macro. This is required in order to pass the c++-multiple-scanners - * test in the regression suite. We get reports that it breaks inheritance. - * We will address this in a future release of flex, or omit the C++ scanner - * altogether. - */ - #define yyFlexLexer DynareFlexLexer -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -/* %if-c-only */ -/* %endif */ - -/* %if-tables-serialization */ -/* %endif */ -/* end standard C headers. */ - -/* %if-c-or-c++ */ -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! FLEXINT_H */ - -/* %endif */ - -/* %if-c++-only */ -/* begin standard C++ headers. */ -#include -#include -#include -#include -/* end standard C++ headers. */ -/* %endif */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -#if __STDC__ - -#define YY_USE_CONST - -#endif /* __STDC__ */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* %not-for-header */ - -/* Returned upon end-of-file. */ -#define YY_NULL 0 -/* %ok-for-header */ - -/* %not-for-header */ - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) -/* %ok-for-header */ - -/* %if-reentrant */ -/* %endif */ - -/* %if-not-reentrant */ - -/* %endif */ - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -/* %if-not-reentrant */ -extern int yyleng; -/* %endif */ - -/* %if-c-only */ -/* %if-not-reentrant */ -/* %endif */ -/* %endif */ - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef unsigned int yy_size_t; -#endif - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { -/* %if-c-only */ -/* %endif */ - -/* %if-c++-only */ - std::istream* yy_input_file; -/* %endif */ - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* %if-c-only Standard (non-C++) definition */ -/* %not-for-header */ - -/* %if-not-reentrant */ -/* %endif */ -/* %ok-for-header */ - -/* %endif */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* %if-c-only Standard (non-C++) definition */ -/* %if-not-reentrant */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %endif */ -/* %endif */ - -void *Dynarealloc (yy_size_t ); -void *Dynarerealloc (void *,yy_size_t ); -void Dynarefree (void * ); - -#define yy_new_buffer yy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ -/* Begin user sect3 */ - -#define yywrap() 1 -#define YY_SKIP_YYWRAP - -#define FLEX_DEBUG - -typedef unsigned char YY_CHAR; - -#define yytext_ptr yytext - -#include - -/* %if-c-only Standard (non-C++) definition */ -/* %endif */ - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ -/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ - yyleng = (size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ -/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ - (yy_c_buf_p) = yy_cp; - -/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 244 -#define YY_END_OF_BUFFER 245 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[1427] = - { 0, - 0, 0, 10, 10, 0, 0, 0, 0, 242, 242, - 2, 2, 0, 0, 0, 0, 245, 241, 5, 6, - 7, 7, 241, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 241, 10, 5, - 243, 10, 243, 5, 184, 7, 243, 7, 156, 170, - 175, 173, 168, 174, 154, 176, 239, 169, 43, 178, - 177, 179, 171, 155, 172, 185, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 243, - 134, 243, 133, 237, 237, 237, 237, 237, 237, 237, - - 237, 237, 237, 237, 237, 237, 237, 237, 242, 5, - 242, 2, 2, 2, 3, 4, 5, 6, 7, 7, - 8, 9, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 0, 10, 5, 11, 11, 12, 10, 183, 0, - 117, 238, 238, 239, 0, 181, 182, 180, 237, 237, - 237, 142, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - - 189, 237, 158, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 242, 5, 242, 2, 2, 2, 4, 7, 8, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 27, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 13, 0, - 10, 0, 0, 238, 237, 237, 237, 237, 237, 237, - - 237, 237, 237, 191, 237, 237, 237, 237, 237, 186, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 144, 237, 237, 237, 237, 237, 237, 237, - 237, 187, 237, 203, 237, 237, 204, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 190, 237, 237, 237, - 237, 237, 192, 93, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 187, 237, 237, 237, - 237, 237, 237, 118, 242, 2, 240, 240, 240, 240, - - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 0, 10, 0, - 238, 194, 237, 193, 195, 237, 237, 237, 237, 237, - 95, 197, 237, 237, 237, 237, 139, 237, 237, 237, - 237, 237, 214, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 60, 237, 237, 237, - 237, 237, 237, 237, 217, 237, 237, 237, 237, 237, - - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 230, 237, 196, 237, 237, 237, 202, 208, 198, 237, - 237, 237, 237, 237, 237, 121, 237, 0, 57, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 242, 2, - 240, 37, 32, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 44, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 25, 240, 240, 33, 240, 240, - 240, 240, 240, 0, 10, 200, 237, 199, 201, 237, - 237, 237, 237, 237, 106, 237, 237, 237, 237, 237, - 237, 237, 237, 160, 66, 237, 237, 237, 237, 237, - - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 188, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 97, 140, - 237, 237, 237, 212, 237, 237, 237, 68, 237, 237, - 237, 237, 237, 149, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 242, 2, 240, 240, 240, 18, - 240, 240, 240, 240, 46, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 50, - - 240, 48, 240, 31, 240, 240, 14, 23, 0, 10, - 237, 237, 237, 237, 237, 237, 237, 237, 99, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 213, 237, 237, 222, 237, 237, 237, 237, 237, 167, - 237, 237, 237, 237, 237, 237, 59, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 207, - 237, 229, 237, 237, 237, 96, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 210, 237, 237, 237, 237, - 237, 237, 141, 237, 237, 237, 162, 237, 237, 237, - 237, 237, 237, 237, 123, 237, 237, 237, 237, 237, - - 237, 119, 237, 120, 242, 2, 240, 240, 240, 35, - 240, 240, 240, 240, 47, 240, 45, 240, 240, 240, - 240, 240, 240, 17, 240, 240, 240, 240, 36, 240, - 240, 240, 1, 1, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 137, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 102, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 72, - 237, 237, 79, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 227, 237, 237, 237, 237, 237, 67, - 237, 69, 205, 98, 237, 237, 237, 237, 237, 237, - - 237, 209, 237, 237, 237, 237, 237, 237, 237, 157, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 122, 237, 1, 240, 240, 240, 240, 29, 28, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 237, 237, 237, 237, 161, - 237, 237, 70, 104, 58, 237, 237, 237, 86, 237, - 237, 237, 237, 146, 237, 237, 237, 237, 237, 237, - 64, 65, 231, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - - 237, 237, 237, 237, 237, 237, 237, 237, 87, 237, - 237, 237, 232, 237, 237, 135, 127, 125, 237, 237, - 237, 237, 237, 240, 240, 55, 240, 240, 240, 240, - 19, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 61, 237, 237, 237, 145, 237, 237, 237, - 237, 237, 237, 237, 237, 219, 220, 82, 237, 100, - 237, 73, 237, 237, 71, 237, 237, 75, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 94, 237, - 237, 62, 63, 237, 237, 237, 237, 237, 237, 237, - - 237, 237, 151, 150, 126, 237, 124, 237, 237, 240, - 240, 240, 240, 20, 240, 240, 240, 240, 26, 16, - 240, 240, 240, 240, 240, 240, 15, 237, 237, 237, - 235, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 85, 237, 237, 237, 237, 237, 237, - 80, 152, 77, 237, 237, 237, 237, 237, 237, 228, - 237, 105, 237, 237, 233, 237, 237, 237, 237, 237, - 138, 147, 136, 163, 237, 237, 237, 237, 128, 237, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 34, 240, 237, 236, 221, 237, 237, 114, - - 237, 237, 237, 237, 237, 237, 237, 234, 84, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 215, - 216, 166, 237, 143, 237, 211, 78, 237, 237, 237, - 237, 237, 237, 132, 40, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 237, 88, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 164, 237, - 237, 237, 237, 165, 81, 218, 237, 237, 76, 237, - 237, 237, 83, 237, 148, 92, 237, 237, 237, 237, - 41, 240, 240, 240, 240, 240, 54, 240, 240, 240, - 39, 240, 237, 237, 237, 237, 110, 237, 237, 237, - - 237, 90, 237, 115, 237, 237, 237, 237, 74, 237, - 237, 237, 237, 237, 237, 237, 129, 240, 240, 56, - 240, 240, 240, 240, 21, 24, 226, 237, 237, 237, - 237, 107, 237, 237, 237, 116, 206, 225, 237, 237, - 237, 237, 237, 237, 130, 131, 240, 240, 240, 240, - 240, 240, 237, 112, 237, 237, 237, 237, 237, 237, - 237, 237, 89, 237, 237, 240, 49, 30, 240, 240, - 240, 108, 237, 111, 113, 237, 237, 223, 237, 237, - 153, 237, 240, 240, 240, 38, 240, 109, 91, 237, - 237, 237, 224, 42, 240, 240, 53, 22, 237, 237, - - 237, 240, 240, 237, 237, 237, 240, 240, 159, 237, - 103, 240, 51, 237, 240, 237, 52, 237, 237, 237, - 237, 237, 237, 237, 101, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 5, 6, 7, 8, 9, 10, 1, 11, 12, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 22, 22, 22, 22, 22, 22, 23, 24, 25, - 26, 27, 1, 28, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 29, 30, 31, 32, 33, 1, 34, 35, 36, 37, - - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 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, 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, 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 - } ; - -static yyconst flex_int32_t yy_meta[60] = - { 0, - 1, 1, 2, 1, 1, 1, 3, 1, 1, 1, - 1, 1, 4, 1, 1, 1, 1, 1, 5, 5, - 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5 - } ; - -static yyconst flex_int16_t yy_base[1441] = - { 0, - 0, 1658, 58, 62, 90, 1657, 142, 1656, 74, 198, - 78, 202, 153, 208, 218, 239, 1683, 1687, 68, 1679, - 145, 0, 155, 0, 1626, 120, 16, 37, 122, 1633, - 137, 179, 217, 183, 192, 1632, 1644, 1632, 0, 214, - 211, 1631, 1687, 244, 1649, 245, 1665, 0, 1687, 1687, - 1687, 1687, 1687, 1687, 250, 266, 261, 1687, 1687, 1647, - 1646, 1645, 1687, 1687, 1687, 1687, 0, 240, 222, 121, - 35, 1613, 205, 260, 39, 250, 223, 273, 276, 252, - 116, 274, 1610, 189, 280, 297, 1616, 1633, 1621, 1620, - 1687, 320, 1687, 296, 212, 249, 151, 1622, 300, 1616, - - 309, 232, 1614, 1623, 305, 1626, 312, 1625, 0, 363, - 1613, 0, 367, 1612, 1687, 354, 375, 1653, 0, 0, - 0, 1687, 0, 1621, 1609, 1615, 1599, 1617, 1603, 1612, - 1595, 1595, 1600, 1603, 1593, 1606, 1590, 1588, 1589, 1588, - 1587, 1603, 1584, 1593, 1588, 1588, 1584, 297, 314, 1589, - 1579, 1587, 0, 379, 1687, 348, 1687, 1586, 1687, 1618, - 1687, 366, 370, 376, 396, 1687, 1687, 1687, 0, 1578, - 1576, 0, 1582, 1589, 1564, 1585, 1586, 354, 1566, 1565, - 378, 1568, 349, 1565, 1561, 1578, 1559, 1561, 1577, 1564, - 1576, 1570, 1558, 1567, 1552, 1559, 1551, 1553, 1565, 355, - - 0, 385, 0, 370, 1547, 1566, 1551, 383, 1551, 402, - 1562, 1542, 1557, 1542, 1550, 1557, 380, 340, 1557, 387, - 1537, 242, 1540, 1542, 1552, 1534, 1550, 1536, 1525, 1530, - 1542, 1528, 1526, 1524, 1523, 371, 1522, 1537, 1528, 262, - 1517, 1524, 1530, 389, 410, 1518, 1521, 1530, 1524, 399, - 0, 450, 1523, 0, 454, 1522, 443, 0, 0, 1512, - 1520, 1525, 1512, 1513, 1524, 1502, 1514, 1502, 1506, 1500, - 1508, 1513, 1512, 1507, 1515, 1513, 1504, 1498, 1491, 1495, - 1490, 1493, 1504, 1493, 1484, 1503, 1500, 1482, 322, 1487, - 1486, 452, 456, 460, 1480, 1490, 1483, 1482, 1490, 1487, - - 1475, 408, 1474, 1483, 1489, 1474, 1487, 1486, 1470, 0, - 1465, 1465, 1478, 1463, 1481, 1475, 1474, 1462, 1462, 410, - 1462, 1455, 0, 1473, 1460, 1452, 1459, 1470, 1469, 1463, - 1463, 447, 1455, 0, 1457, 447, 0, 445, 1459, 1445, - 450, 1459, 1442, 1445, 1450, 1437, 1439, 1441, 1437, 1441, - 1440, 1443, 1446, 1441, 1437, 1434, 1428, 1437, 447, 422, - 1442, 1438, 1442, 1430, 1436, 1419, 1431, 1423, 1415, 1418, - 1415, 1432, 1425, 0, 1427, 1431, 1430, 1429, 1413, 1426, - 1408, 1410, 499, 1419, 1410, 1422, 1434, 1409, 1406, 1409, - 1412, 1410, 1394, 0, 1400, 1399, 1412, 1409, 1399, 1403, - - 1392, 454, 1406, 1393, 1383, 1384, 1381, 1387, 1389, 1382, - 1386, 1382, 1384, 1381, 1381, 1389, 1375, 1387, 1371, 1379, - 1388, 1376, 1383, 1378, 1385, 1360, 1381, 1377, 1376, 489, - 493, 1372, 1378, 1370, 1369, 1357, 1356, 1374, 1373, 1352, - 0, 0, 1353, 1364, 1363, 1356, 0, 1362, 1346, 1362, - 1345, 1360, 0, 1343, 1353, 1340, 1350, 1351, 1337, 1355, - 1337, 1353, 1352, 1351, 1348, 482, 1349, 1349, 1362, 1338, - 1328, 1330, 1329, 1325, 1328, 1322, 1325, 1337, 1333, 400, - 1331, 1322, 1326, 470, 1333, 1318, 0, 471, 1331, 1317, - 1329, 1316, 1319, 1324, 0, 1313, 1307, 1309, 1303, 1308, - - 1301, 1305, 1310, 1317, 1297, 1298, 1297, 1299, 1293, 1303, - 0, 1299, 0, 1290, 1304, 1289, 0, 0, 0, 1288, - 1302, 1287, 445, 1301, 1303, 0, 1296, 523, 1687, 1287, - 1299, 1292, 1283, 485, 1282, 1278, 1280, 1289, 1288, 1287, - 492, 1291, 0, 1284, 1277, 1283, 1286, 1261, 1273, 1283, - 1282, 1267, 1280, 1257, 1279, 1256, 1277, 1275, 1270, 1270, - 1268, 1254, 487, 1246, 0, 1251, 1269, 0, 1243, 1267, - 1248, 1250, 1245, 1291, 1290, 0, 470, 0, 0, 1252, - 1240, 483, 1240, 1257, 0, 1251, 1247, 1248, 1236, 1253, - 1251, 1242, 1235, 0, 0, 1234, 1236, 1229, 1237, 1224, - - 1224, 1229, 1222, 1238, 1225, 1227, 1224, 1223, 1218, 489, - 0, 1221, 1233, 1210, 1228, 1216, 1221, 1226, 1224, 1215, - 497, 506, 1226, 1216, 1204, 1204, 1218, 1206, 1213, 1206, - 1199, 1199, 1209, 1212, 1198, 1208, 1198, 1207, 0, 0, - 1206, 1209, 1203, 0, 1189, 1194, 1192, 0, 1204, 1194, - 1184, 1192, 1197, 1199, 1190, 1197, 1191, 1187, 1182, 1180, - 1191, 1183, 1175, 1173, 1182, 1186, 1186, 1184, 1161, 1171, - 1178, 1163, 1162, 1160, 1206, 1205, 1171, 1160, 1152, 0, - 1168, 1172, 1149, 1154, 0, 1149, 1156, 1151, 1154, 1156, - 1161, 1162, 1139, 1140, 1133, 1130, 1130, 1134, 1132, 0, - - 1130, 0, 187, 0, 238, 296, 320, 0, 423, 478, - 503, 486, 504, 509, 493, 510, 507, 503, 0, 506, - 504, 520, 506, 503, 522, 511, 510, 507, 519, 523, - 0, 530, 531, 532, 528, 521, 528, 527, 525, 0, - 530, 534, 520, 536, 528, 534, 0, 528, 525, 545, - 543, 534, 535, 539, 544, 544, 551, 550, 537, 557, - 543, 0, 555, 545, 542, 0, 549, 544, 557, 552, - 547, 562, 550, 552, 553, 0, 552, 557, 556, 555, - 564, 556, 0, 578, 575, 580, 582, 568, 572, 566, - 572, 582, 570, 585, 0, 577, 575, 579, 584, 594, - - 576, 0, 583, 0, 624, 625, 586, 583, 601, 0, - 584, 599, 600, 601, 0, 582, 0, 588, 594, 591, - 607, 612, 609, 0, 615, 601, 603, 602, 0, 610, - 605, 617, 1687, 0, 604, 611, 611, 624, 618, 612, - 622, 610, 626, 0, 613, 629, 632, 615, 622, 621, - 613, 634, 636, 632, 624, 642, 626, 0, 629, 631, - 627, 623, 649, 646, 632, 651, 652, 635, 635, 0, - 656, 645, 0, 655, 637, 651, 656, 650, 652, 650, - 662, 667, 654, 0, 655, 661, 670, 657, 664, 0, - 654, 0, 0, 0, 662, 676, 672, 666, 678, 662, - - 676, 0, 677, 671, 679, 667, 674, 683, 676, 0, - 684, 683, 686, 674, 687, 689, 691, 683, 677, 682, - 0, 699, 0, 681, 696, 684, 698, 0, 0, 700, - 690, 706, 681, 695, 700, 701, 698, 694, 698, 696, - 714, 701, 704, 698, 714, 715, 701, 703, 723, 0, - 709, 713, 0, 0, 0, 706, 727, 710, 0, 730, - 722, 732, 715, 0, 731, 722, 724, 722, 733, 730, - 0, 0, 0, 734, 735, 737, 741, 726, 745, 720, - 728, 743, 738, 745, 748, 749, 737, 749, 742, 748, - 735, 746, 755, 748, 747, 743, 748, 745, 746, 763, - - 750, 764, 756, 750, 754, 773, 767, 770, 0, 769, - 765, 774, 0, 774, 760, 0, 0, 0, 775, 781, - 757, 780, 769, 777, 784, 0, 774, 789, 776, 772, - 0, 776, 778, 787, 776, 777, 795, 798, 787, 788, - 780, 802, 783, 800, 786, 805, 802, 799, 791, 801, - 806, 790, 0, 808, 802, 802, 0, 815, 798, 811, - 807, 816, 810, 814, 809, 0, 0, 0, 807, 0, - 823, 0, 808, 810, 0, 818, 809, 0, 815, 831, - 832, 825, 817, 821, 832, 818, 819, 826, 0, 836, - 833, 0, 0, 836, 830, 836, 837, 832, 844, 834, - - 838, 851, 0, 0, 0, 865, 0, 848, 851, 836, - 856, 839, 843, 0, 855, 860, 848, 855, 0, 0, - 854, 865, 842, 859, 857, 848, 0, 865, 867, 871, - 0, 856, 875, 873, 861, 877, 867, 875, 866, 862, - 863, 879, 870, 0, 880, 882, 876, 871, 885, 890, - 0, 0, 0, 872, 892, 876, 877, 874, 896, 0, - 880, 0, 890, 881, 0, 882, 897, 900, 883, 887, - 0, 0, 0, 0, 888, 907, 908, 893, 0, 904, - 886, 893, 904, 913, 895, 898, 917, 898, 914, 906, - 902, 919, 0, 922, 909, 0, 0, 919, 922, 0, - - 927, 911, 921, 913, 928, 928, 927, 0, 0, 923, - 921, 935, 928, 939, 932, 940, 928, 934, 943, 0, - 0, 0, 946, 0, 947, 0, 0, 938, 946, 948, - 938, 939, 952, 0, 0, 937, 938, 941, 939, 952, - 942, 944, 961, 964, 957, 942, 950, 951, 0, 965, - 959, 971, 952, 961, 974, 975, 958, 965, 0, 974, - 964, 966, 964, 0, 0, 0, 977, 979, 0, 976, - 971, 973, 0, 973, 0, 0, 985, 986, 987, 987, - 0, 985, 994, 980, 978, 980, 0, 979, 988, 982, - 0, 983, 990, 1001, 1004, 993, 0, 1002, 987, 1008, - - 1002, 0, 1002, 0, 993, 999, 1001, 1000, 0, 997, - 1003, 1014, 998, 1014, 1015, 1016, 0, 1001, 1011, 0, - 1010, 1021, 1018, 1003, 0, 0, 0, 1028, 1010, 1029, - 1025, 0, 1024, 1029, 1021, 0, 0, 0, 1018, 1022, - 1029, 1024, 1026, 1026, 0, 0, 1033, 1024, 1030, 1031, - 1024, 1028, 1023, 0, 1045, 1049, 1037, 1051, 1052, 1041, - 1041, 1053, 0, 1037, 1040, 1039, 1060, 0, 1057, 1057, - 1054, 0, 1063, 0, 0, 1061, 1046, 0, 1067, 1055, - 0, 1056, 1045, 1069, 1053, 0, 1054, 0, 0, 1065, - 1074, 1071, 0, 0, 1062, 1065, 0, 0, 1065, 1065, - - 1081, 1062, 1075, 1071, 1070, 1073, 1074, 1069, 0, 1072, - 0, 1087, 0, 1077, 1074, 1070, 0, 1086, 1083, 1096, - 1078, 1090, 1085, 1087, 0, 1687, 1134, 1139, 1144, 1149, - 1154, 1151, 1159, 1164, 1169, 1156, 1174, 1179, 1184, 1189 - } ; - -static yyconst flex_int16_t yy_def[1441] = - { 0, - 1426, 1, 1427, 1427, 1426, 5, 5, 7, 1428, 1428, - 1429, 1429, 1430, 1430, 1430, 1430, 1426, 1426, 1426, 1426, - 1431, 1431, 1426, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1426, 1433, 1433, - 1434, 1433, 1426, 1426, 1426, 1431, 1435, 1431, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1426, - 1426, 1426, 1426, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1437, 1437, - 1437, 1438, 1438, 1438, 1426, 1426, 1426, 1426, 1431, 1439, - 1440, 1426, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1426, 1433, 1433, 1426, 1434, 1426, 1433, 1426, 1435, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1437, 1437, 1437, 1438, 1438, 1438, 1426, 1439, 1440, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1426, - 1433, 1426, 1426, 1426, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1437, 1438, 1432, 1432, 1432, 1432, - - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1426, 1433, 1426, - 1426, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1426, 1426, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1437, 1438, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1426, 1433, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1437, 1438, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1426, 1433, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1437, 1438, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1426, 1433, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1437, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, - 1432, 1432, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1432, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1432, 1432, 1432, 1432, - 1432, 1432, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1432, 1432, 1432, 1432, 1432, - 1432, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436, - 1436, 1436, 1436, 1432, 1432, 1432, 1432, 1432, 1436, 1436, - - 1436, 1432, 1432, 1436, 1436, 1436, 1432, 1432, 1436, 1436, - 1436, 1432, 1432, 1436, 1432, 1436, 1432, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 0, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426 - } ; - -static yyconst flex_int16_t yy_nxt[1747] = - { 0, - 18, 19, 20, 19, 19, 18, 21, 18, 18, 22, - 18, 18, 18, 18, 18, 18, 18, 23, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 24, 24, 25, 26, 27, 28, 24, 24, - 29, 30, 24, 24, 24, 31, 24, 32, 33, 24, - 34, 35, 24, 36, 37, 24, 24, 24, 24, 40, - 20, 40, 40, 40, 20, 40, 40, 128, 180, 117, - 41, 117, 117, 129, 41, 110, 20, 110, 110, 113, - 20, 113, 113, 130, 43, 181, 190, 191, 131, 42, - 43, 44, 20, 44, 44, 45, 46, 43, 47, 48, - - 49, 50, 51, 52, 53, 54, 55, 56, 57, 57, - 57, 57, 58, 59, 60, 61, 62, 43, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 67, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 67, 89, 67, 67, 91, - 43, 120, 43, 125, 44, 20, 44, 44, 92, 115, - 126, 121, 120, 132, 212, 93, 213, 122, 178, 133, - 135, 43, 121, 127, 179, 94, 95, 96, 67, 97, - 98, 99, 67, 100, 136, 67, 101, 102, 103, 67, - 104, 67, 67, 105, 106, 107, 108, 238, 67, 110, - - 20, 110, 110, 113, 20, 113, 113, 182, 43, 44, - 20, 44, 44, 137, 115, 154, 145, 154, 154, 44, - 20, 44, 44, 156, 829, 111, 220, 138, 157, 114, - 139, 146, 147, 148, 221, 90, 116, 116, 116, 116, - 44, 20, 44, 44, 149, 117, 183, 117, 117, 235, - 140, 120, 184, 176, 141, 175, 196, 116, 116, 116, - 116, 142, 120, 176, 143, 244, 90, 144, 162, 162, - 162, 162, 121, 207, 197, 170, 177, 163, 122, 164, - 164, 164, 164, 121, 171, 209, 192, 366, 367, 830, - 172, 173, 174, 185, 193, 186, 236, 165, 165, 210, - - 194, 195, 237, 211, 187, 188, 198, 385, 199, 204, - 189, 214, 215, 205, 200, 314, 206, 207, 216, 201, - 202, 222, 217, 208, 218, 223, 203, 224, 225, 226, - 228, 170, 227, 240, 229, 186, 284, 230, 162, 162, - 162, 162, 285, 831, 199, 188, 247, 173, 174, 234, - 242, 286, 832, 225, 226, 201, 243, 248, 249, 426, - 156, 287, 203, 231, 252, 157, 252, 252, 255, 427, - 255, 255, 257, 257, 257, 257, 117, 359, 117, 117, - 154, 360, 154, 154, 162, 162, 162, 162, 162, 162, - 162, 162, 163, 311, 164, 164, 164, 164, 329, 312, - - 302, 330, 292, 292, 303, 304, 292, 292, 305, 293, - 308, 293, 165, 165, 294, 294, 294, 294, 331, 338, - 333, 381, 304, 362, 332, 309, 334, 357, 339, 833, - 358, 363, 622, 340, 342, 364, 343, 344, 345, 388, - 346, 347, 342, 393, 623, 334, 439, 348, 457, 394, - 349, 252, 350, 252, 252, 255, 458, 255, 255, 440, - 389, 257, 257, 257, 257, 430, 469, 430, 505, 506, - 431, 431, 431, 431, 294, 294, 294, 294, 294, 294, - 294, 294, 480, 474, 834, 503, 481, 484, 475, 476, - 711, 470, 477, 478, 485, 661, 662, 479, 504, 471, - - 528, 528, 712, 528, 546, 547, 548, 431, 431, 431, - 431, 431, 431, 431, 431, 606, 627, 631, 670, 699, - 638, 632, 529, 607, 528, 528, 628, 528, 677, 608, - 678, 715, 753, 716, 741, 835, 836, 837, 700, 742, - 743, 755, 838, 839, 756, 754, 529, 840, 841, 842, - 843, 844, 845, 847, 848, 849, 850, 846, 851, 852, - 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, - 863, 864, 866, 867, 868, 869, 870, 871, 872, 865, - 873, 874, 875, 876, 877, 879, 880, 881, 882, 883, - 884, 878, 885, 886, 887, 888, 889, 890, 891, 892, - - 893, 894, 895, 896, 897, 898, 899, 901, 900, 902, - 903, 904, 906, 907, 908, 909, 910, 911, 912, 913, - 914, 915, 916, 917, 918, 919, 920, 921, 922, 905, - 923, 833, 924, 925, 926, 927, 928, 929, 930, 932, - 933, 934, 931, 935, 936, 937, 938, 939, 940, 941, - 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, - 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, - 962, 963, 964, 965, 966, 967, 969, 970, 971, 972, - 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, - 983, 984, 985, 986, 968, 987, 988, 989, 990, 991, - - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, - 1042, 1043, 1044, 1046, 1047, 1048, 1049, 1050, 1051, 1052, - 1045, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, - 1082, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1083, 1091, - - 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, - 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, - 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, - 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1141, 1142, - 1143, 1144, 1145, 1140, 1146, 1147, 1148, 1149, 1150, 1151, - 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, - 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, - 1172, 1173, 1174, 1175, 1176, 1177, 1179, 1180, 1181, 1182, - 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1178, 1190, 1191, - - 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, - 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, - 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, - 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1256, - 1251, 1257, 1258, 1259, 1260, 1261, 1252, 1253, 1262, 1254, - 1263, 1264, 1265, 1266, 1255, 1267, 1268, 1269, 1270, 1271, - 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, - 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, - - 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1301, 1302, - 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, - 1313, 1314, 1315, 1316, 1300, 1317, 1318, 1319, 1320, 1321, - 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, - 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, - 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, - 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, - 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, - - 1392, 1393, 1394, 1395, 1397, 1398, 1399, 1400, 1401, 1402, - 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, - 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, - 1422, 1423, 1424, 1425, 39, 39, 39, 39, 39, 109, - 109, 109, 109, 109, 112, 112, 112, 112, 112, 43, - 43, 43, 43, 43, 119, 123, 119, 119, 119, 153, - 169, 153, 828, 153, 155, 827, 155, 155, 155, 160, - 160, 160, 160, 160, 251, 826, 251, 251, 251, 254, - 825, 824, 254, 254, 258, 823, 258, 258, 258, 259, - 822, 259, 259, 259, 821, 820, 819, 818, 817, 816, - - 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, - 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, - 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, - 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, - 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, - 765, 764, 763, 762, 761, 760, 759, 758, 757, 752, - 751, 750, 749, 748, 747, 746, 745, 744, 740, 739, - 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, - 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, - 718, 717, 714, 713, 710, 709, 708, 707, 706, 705, - - 704, 703, 702, 701, 698, 697, 696, 695, 694, 693, - 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, - 682, 681, 680, 679, 676, 675, 674, 673, 672, 671, - 669, 668, 667, 666, 665, 664, 663, 660, 659, 658, - 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, - 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, - 637, 636, 635, 634, 633, 630, 629, 626, 625, 624, - 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, - 611, 610, 609, 605, 604, 603, 602, 601, 600, 599, - 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, - - 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, - 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, - 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, - 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, - 535, 534, 533, 469, 532, 531, 530, 527, 526, 525, - 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, - 514, 513, 512, 511, 510, 509, 508, 507, 502, 501, - 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, - 490, 489, 488, 487, 486, 483, 482, 473, 472, 468, - - 467, 466, 465, 464, 463, 462, 461, 460, 459, 456, - 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, - 445, 444, 443, 442, 441, 438, 437, 436, 435, 434, - 433, 432, 429, 428, 425, 424, 423, 422, 421, 420, - 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, - 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, - 399, 398, 397, 396, 395, 392, 391, 367, 390, 387, - 330, 386, 384, 383, 382, 380, 379, 378, 377, 376, - 375, 374, 373, 372, 371, 370, 369, 368, 365, 361, - 356, 355, 354, 353, 352, 351, 341, 337, 336, 335, - - 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, - 318, 317, 316, 315, 314, 313, 310, 307, 306, 301, - 300, 299, 298, 297, 296, 295, 161, 291, 290, 289, - 288, 283, 282, 281, 280, 279, 278, 277, 276, 275, - 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, - 264, 263, 262, 261, 260, 118, 256, 253, 250, 228, - 246, 245, 241, 239, 152, 233, 232, 231, 219, 182, - 168, 167, 166, 161, 159, 158, 152, 151, 150, 134, - 124, 118, 1426, 90, 90, 38, 17, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426 - } ; - -static yyconst flex_int16_t yy_chk[1747] = - { 0, - 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, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 4, 4, 4, 4, 27, 71, 19, - 3, 19, 19, 27, 4, 9, 9, 9, 9, 11, - 11, 11, 11, 28, 11, 71, 75, 75, 28, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, - 7, 21, 7, 26, 13, 13, 13, 13, 7, 13, - 26, 23, 21, 29, 81, 7, 81, 23, 70, 29, - 31, 7, 23, 26, 70, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 31, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 97, 7, 10, - - 10, 10, 10, 12, 12, 12, 12, 97, 12, 14, - 14, 14, 14, 32, 14, 40, 34, 40, 40, 15, - 15, 15, 15, 41, 703, 10, 84, 32, 41, 12, - 32, 34, 35, 35, 84, 14, 15, 15, 15, 15, - 16, 16, 16, 16, 35, 44, 73, 44, 44, 95, - 33, 46, 73, 95, 33, 69, 77, 16, 16, 16, - 16, 33, 46, 69, 33, 102, 16, 33, 55, 55, - 55, 55, 56, 102, 77, 68, 69, 57, 56, 57, - 57, 57, 57, 56, 68, 80, 76, 222, 222, 705, - 68, 68, 68, 74, 76, 74, 96, 57, 57, 80, - - 76, 76, 96, 80, 74, 74, 78, 240, 78, 79, - 74, 82, 82, 79, 78, 240, 79, 79, 82, 78, - 78, 85, 82, 79, 82, 85, 78, 85, 85, 85, - 86, 94, 85, 99, 86, 99, 148, 86, 92, 92, - 92, 92, 148, 706, 101, 99, 105, 94, 94, 94, - 101, 149, 707, 105, 105, 101, 101, 105, 107, 289, - 156, 149, 101, 107, 110, 156, 110, 110, 113, 289, - 113, 113, 116, 116, 116, 116, 117, 218, 117, 117, - 154, 218, 154, 154, 162, 162, 162, 162, 163, 163, - 163, 163, 164, 183, 164, 164, 164, 164, 200, 183, - - 178, 200, 162, 162, 178, 178, 163, 163, 178, 165, - 181, 165, 164, 164, 165, 165, 165, 165, 202, 208, - 204, 236, 236, 220, 202, 181, 204, 217, 208, 709, - 217, 220, 480, 208, 210, 220, 210, 210, 210, 244, - 210, 210, 245, 250, 480, 244, 302, 210, 320, 250, - 210, 252, 210, 252, 252, 255, 320, 255, 255, 302, - 245, 257, 257, 257, 257, 292, 332, 292, 360, 360, - 292, 292, 292, 292, 293, 293, 293, 293, 294, 294, - 294, 294, 338, 336, 710, 359, 338, 341, 336, 336, - 577, 332, 336, 336, 341, 523, 523, 336, 359, 332, - - 383, 383, 577, 383, 402, 402, 402, 430, 430, 430, - 430, 431, 431, 431, 431, 466, 484, 488, 534, 563, - 534, 488, 383, 466, 528, 528, 484, 528, 541, 466, - 541, 582, 621, 582, 610, 711, 712, 713, 563, 610, - 610, 622, 714, 715, 622, 621, 528, 716, 717, 718, - 720, 721, 722, 723, 724, 725, 726, 722, 727, 728, - 729, 730, 732, 733, 734, 735, 736, 737, 738, 739, - 741, 742, 743, 744, 745, 746, 748, 749, 750, 742, - 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 755, 763, 764, 765, 767, 768, 769, 770, 771, - - 772, 773, 774, 775, 777, 778, 779, 780, 779, 781, - 782, 784, 785, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 796, 797, 798, 799, 800, 801, 803, 784, - 805, 806, 807, 808, 809, 811, 812, 813, 814, 816, - 818, 819, 814, 820, 821, 822, 823, 825, 826, 827, - 828, 830, 831, 832, 835, 835, 836, 837, 838, 839, - 840, 841, 842, 843, 845, 846, 847, 848, 849, 850, - 851, 852, 853, 854, 855, 856, 857, 859, 860, 861, - 862, 863, 864, 865, 866, 867, 868, 869, 871, 872, - 874, 875, 876, 877, 856, 878, 879, 880, 881, 882, - - 883, 885, 886, 887, 888, 889, 891, 895, 896, 897, - 898, 899, 900, 901, 903, 904, 905, 906, 907, 908, - 909, 911, 912, 913, 914, 915, 916, 917, 918, 919, - 920, 922, 924, 925, 926, 927, 930, 931, 932, 933, - 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, - 944, 945, 946, 947, 948, 949, 951, 952, 956, 957, - 946, 958, 960, 961, 962, 963, 965, 966, 967, 968, - 969, 970, 974, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 992, 1000, - - 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1011, - 1012, 1014, 1015, 1019, 1020, 1021, 1022, 1023, 1024, 1025, - 1027, 1028, 1029, 1030, 1032, 1033, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, - 1048, 1049, 1050, 1051, 1052, 1054, 1055, 1056, 1058, 1059, - 1060, 1061, 1062, 1056, 1063, 1064, 1065, 1069, 1071, 1073, - 1074, 1076, 1077, 1079, 1080, 1081, 1082, 1083, 1084, 1085, - 1086, 1087, 1088, 1090, 1091, 1094, 1095, 1096, 1097, 1098, - 1099, 1100, 1101, 1102, 1106, 1106, 1108, 1109, 1110, 1111, - 1112, 1113, 1115, 1116, 1117, 1118, 1121, 1106, 1122, 1123, - - 1124, 1125, 1126, 1128, 1129, 1130, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, - 1147, 1148, 1149, 1150, 1154, 1155, 1156, 1157, 1158, 1159, - 1161, 1163, 1164, 1166, 1167, 1168, 1169, 1170, 1175, 1176, - 1177, 1178, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, - 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1198, 1199, 1201, - 1199, 1202, 1203, 1204, 1205, 1206, 1199, 1199, 1207, 1199, - 1210, 1211, 1212, 1213, 1199, 1214, 1215, 1216, 1217, 1218, - 1219, 1223, 1225, 1228, 1229, 1230, 1231, 1232, 1233, 1236, - 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, - - 1247, 1248, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, - 1258, 1260, 1261, 1262, 1263, 1267, 1268, 1270, 1271, 1272, - 1274, 1277, 1278, 1279, 1255, 1280, 1282, 1283, 1284, 1285, - 1286, 1288, 1289, 1290, 1292, 1293, 1294, 1295, 1296, 1298, - 1299, 1300, 1301, 1303, 1305, 1306, 1307, 1308, 1310, 1311, - 1312, 1313, 1314, 1315, 1316, 1318, 1319, 1321, 1322, 1323, - 1324, 1328, 1329, 1330, 1331, 1333, 1334, 1335, 1339, 1340, - 1341, 1342, 1343, 1344, 1347, 1348, 1349, 1350, 1351, 1352, - 1353, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1364, - 1365, 1366, 1367, 1369, 1370, 1371, 1373, 1376, 1377, 1379, - - 1380, 1382, 1383, 1384, 1385, 1387, 1390, 1391, 1392, 1395, - 1384, 1396, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, - 1407, 1408, 1410, 1412, 1414, 1415, 1416, 1418, 1419, 1420, - 1421, 1422, 1423, 1424, 1427, 1427, 1427, 1427, 1427, 1428, - 1428, 1428, 1428, 1428, 1429, 1429, 1429, 1429, 1429, 1430, - 1430, 1430, 1430, 1430, 1431, 1432, 1431, 1431, 1431, 1433, - 1436, 1433, 701, 1433, 1434, 699, 1434, 1434, 1434, 1435, - 1435, 1435, 1435, 1435, 1437, 698, 1437, 1437, 1437, 1438, - 697, 696, 1438, 1438, 1439, 695, 1439, 1439, 1439, 1440, - 694, 1440, 1440, 1440, 693, 692, 691, 690, 689, 688, - - 687, 686, 684, 683, 682, 681, 679, 678, 677, 676, - 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, - 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, - 655, 654, 653, 652, 651, 650, 649, 647, 646, 645, - 643, 642, 641, 638, 637, 636, 635, 634, 633, 632, - 631, 630, 629, 628, 627, 626, 625, 624, 623, 620, - 619, 618, 617, 616, 615, 614, 613, 612, 609, 608, - 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, - 597, 596, 593, 592, 591, 590, 589, 588, 587, 586, - 584, 583, 581, 580, 575, 574, 573, 572, 571, 570, - - 569, 567, 566, 564, 562, 561, 560, 559, 558, 557, - 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, - 546, 545, 544, 542, 540, 539, 538, 537, 536, 535, - 533, 532, 531, 530, 527, 525, 524, 522, 521, 520, - 516, 515, 514, 512, 510, 509, 508, 507, 506, 505, - 504, 503, 502, 501, 500, 499, 498, 497, 496, 494, - 493, 492, 491, 490, 489, 486, 485, 483, 482, 481, - 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, - 469, 468, 467, 465, 464, 463, 462, 461, 460, 459, - 458, 457, 456, 455, 454, 452, 451, 450, 449, 448, - - 446, 445, 444, 443, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 429, 428, 427, 426, 425, 424, 423, - 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, - 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, - 401, 400, 399, 398, 397, 396, 395, 393, 392, 391, - 390, 389, 388, 387, 386, 385, 384, 382, 381, 380, - 379, 378, 377, 376, 375, 373, 372, 371, 370, 369, - 368, 367, 366, 365, 364, 363, 362, 361, 358, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 345, 344, 343, 342, 340, 339, 335, 333, 331, - - 330, 329, 328, 327, 326, 325, 324, 322, 321, 319, - 318, 317, 316, 315, 314, 313, 312, 311, 309, 308, - 307, 306, 305, 304, 303, 301, 300, 299, 298, 297, - 296, 295, 291, 290, 288, 287, 286, 285, 284, 283, - 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, - 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, - 262, 261, 260, 256, 253, 249, 248, 247, 246, 243, - 242, 241, 239, 238, 237, 235, 234, 233, 232, 231, - 230, 229, 228, 227, 226, 225, 224, 223, 221, 219, - 216, 215, 214, 213, 212, 211, 209, 207, 206, 205, - - 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, - 189, 188, 187, 186, 185, 184, 182, 180, 179, 177, - 176, 175, 174, 173, 171, 170, 160, 158, 152, 151, - 150, 147, 146, 145, 144, 143, 142, 141, 140, 139, - 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, - 128, 127, 126, 125, 124, 118, 114, 111, 108, 106, - 104, 103, 100, 98, 90, 89, 88, 87, 83, 72, - 62, 61, 60, 47, 45, 42, 38, 37, 36, 30, - 25, 20, 17, 8, 6, 2, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, - 1426, 1426, 1426, 1426, 1426, 1426 - } ; - -static yyconst flex_int16_t yy_rule_linenum[244] = - { 0, - 74, 75, 81, 82, 88, 89, 92, 93, 94, 96, - 97, 98, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, - 131, 132, 135, 143, 144, 145, 146, 147, 148, 150, - 151, 152, 153, 154, 155, 156, 159, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 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, 212, 213, 214, 215, - 216, 217, 218, 219, 221, 222, 224, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 247, 248, 250, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 273, 274, 275, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - - 325, 326, 327, 328, 329, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 365, 370, 375, 384, - 400, 403, 405 - } ; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -#line 1 "DynareFlex.ll" -/* - * Copyright (C) 2003-2008 Dynare Team - * - * This file is part of Dynare. - * - * Dynare 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. - * - * Dynare 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 Dynare. If not, see . - */ -#line 21 "DynareFlex.ll" -using namespace std; - -#include "ParsingDriver.hh" -#include "DynareBison.hh" - -// Announce to Flex the prototype we want for lexing function -#define YY_DECL \ - Dynare::parser::token_type \ - DynareFlex::lex(Dynare::parser::semantic_type *yylval, \ - Dynare::parser::location_type *yylloc, \ - ParsingDriver &driver) - -// Shortcut to access tokens defined by Bison -typedef Dynare::parser::token token; - -/* By default yylex returns int, we use token_type. - Unfortunately yyterminate by default returns 0, which is - not of token_type. */ -#define yyterminate() return Dynare::parser::token_type (0); - -int comment_caller, line_caller; -/* Particular value : when sigma_e command is found - this flag is set to 1, when command finished it is set to 0 - */ -int sigma_e = 0; - - - - - - - -#line 63 "DynareFlex.ll" -// Increments location counter for every token read -#define YY_USER_ACTION yylloc->columns(yyleng); -#line 1420 "DynareFlex.cc" - -#define INITIAL 0 -#define COMMENT 1 -#define DYNARE_STATEMENT 2 -#define DYNARE_BLOCK 3 -#define NATIVE 4 -#define LINE1 5 -#define LINE2 6 -#define LINE3 7 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -#include -/* %endif */ -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -/* %if-c-only Reentrant structure and macros (non-C++). */ -/* %if-reentrant */ -/* %if-c-only */ -/* %endif */ -/* %if-reentrant */ -/* %endif */ -/* %if-bison-bridge */ -/* %endif */ -/* %endif End reentrant structures and macros. */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %endif */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT -/* %if-c-only Standard (non-C++) definition */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %endif */ -#endif - -/* %if-c-only */ -/* %endif */ - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* %if-c-only Standard (non-C++) definition */ -/* %endif */ -/* %if-c++-only C++ definition */ -#define ECHO LexerOutput( yytext, yyleng ) -/* %endif */ -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ -/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\ -\ -/* %if-c++-only C++ definition \ */\ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); -/* %endif */ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -#define YY_FATAL_ERROR(msg) LexerError( msg ) -/* %endif */ -#endif - -/* %if-tables-serialization structures and prototypes */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %not-for-header */ - -/* %tables-yydmap generated elements */ -/* %endif */ -/* end tables serialization structures and prototypes */ - -/* %ok-for-header */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 -/* %if-c-only Standard (non-C++) definition */ -/* %endif */ -/* %if-c++-only C++ definition */ -#define YY_DECL int yyFlexLexer::yylex() -/* %endif */ -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -/* %% [6.0] YY_RULE_SETUP definition goes here */ -#define YY_RULE_SETUP \ - if ( yyleng > 0 ) \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ - (yytext[yyleng - 1] == '\n'); \ - YY_USER_ACTION - -/* %not-for-header */ - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -/* %% [7.0] user's declarations go here */ -#line 66 "DynareFlex.ll" - - /* Code put at the beginning of yylex() */ - - // Reset location before reading token - yylloc->step(); - - - /* Rules for matching @line directives */ -#line 1596 "DynareFlex.cc" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! yyin ) -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - yyin = & std::cin; -/* %endif */ - - if ( ! yyout ) -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - yyout = & std::cout; -/* %endif */ - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { -/* %% [8.0] yymore()-related code goes here */ - yy_cp = (yy_c_buf_p); - - /* Support of yytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - -/* %% [9.0] code to set up and find next match goes here */ - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1427 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_current_state != 1426 ); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - -yy_find_action: -/* %% [10.0] code to find the action number goes here */ - yy_act = yy_accept[yy_current_state]; - - YY_DO_BEFORE_ACTION; - -/* %% [11.0] code for yylineno update goes here */ - -do_action: /* This label is used only to access EOF actions. */ - -/* %% [12.0] debug code goes here */ - if ( yy_flex_debug ) - { - if ( yy_act == 0 ) - std::cerr << "--scanner backing up\n"; - else if ( yy_act < 244 ) - std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] << - "(\"" << yytext << "\")\n"; - else if ( yy_act == 244 ) - std::cerr << "--accepting default rule (\"" << yytext << "\")\n"; - else if ( yy_act == 245 ) - std::cerr << "--(end of buffer or a NUL)\n"; - else - std::cerr << "--EOF (start condition " << YY_START << ")\n"; - } - - switch ( yy_act ) - { /* beginning of action switch */ -/* %% [13.0] actions go here */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 74 "DynareFlex.ll" -{ line_caller = YYSTATE; BEGIN(LINE1); } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 75 "DynareFlex.ll" -{ - if (yylloc->begin.filename) - delete yylloc->begin.filename; - yylloc->begin.filename = yylloc->end.filename = new string(yytext); - BEGIN(LINE2); - } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 81 "DynareFlex.ll" -BEGIN(LINE3); - YY_BREAK -case 4: -YY_RULE_SETUP -#line 82 "DynareFlex.ll" -{ - yylloc->begin.line = yylloc->end.line = atoi(yytext) - 1; - BEGIN(line_caller); - } - YY_BREAK -/* spaces, tabs and EOL are ignored */ -case 5: -YY_RULE_SETUP -#line 88 "DynareFlex.ll" -{ yylloc->step(); } - YY_BREAK -case 6: -/* rule 6 can match eol */ -YY_RULE_SETUP -#line 89 "DynareFlex.ll" -{ yylloc->lines(yyleng); yylloc->step(); } - YY_BREAK -/* Comments */ -case 7: -YY_RULE_SETUP -#line 92 "DynareFlex.ll" - - YY_BREAK -case 8: -YY_RULE_SETUP -#line 93 "DynareFlex.ll" - - YY_BREAK -case 9: -YY_RULE_SETUP -#line 94 "DynareFlex.ll" -{comment_caller = YY_START; BEGIN COMMENT;} - YY_BREAK -case 10: -YY_RULE_SETUP -#line 96 "DynareFlex.ll" - - YY_BREAK -case 11: -YY_RULE_SETUP -#line 97 "DynareFlex.ll" - - YY_BREAK -case 12: -YY_RULE_SETUP -#line 98 "DynareFlex.ll" -{BEGIN comment_caller;} - YY_BREAK -/* Begin of a Dynare statement */ -case 13: -YY_RULE_SETUP -#line 101 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::VAR;} - YY_BREAK -case 14: -YY_RULE_SETUP -#line 102 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::VAREXO;} - YY_BREAK -case 15: -YY_RULE_SETUP -#line 103 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::VAREXO_DET;} - YY_BREAK -case 16: -YY_RULE_SETUP -#line 104 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::PARAMETERS;} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 105 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::PERIODS;} - YY_BREAK -case 18: -YY_RULE_SETUP -#line 106 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::CUTOFF;} - YY_BREAK -case 19: -YY_RULE_SETUP -#line 107 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::MARKOWITZ;} - YY_BREAK -case 20: -YY_RULE_SETUP -#line 108 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::ESTIMATION;} - YY_BREAK -case 21: -YY_RULE_SETUP -#line 109 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::PRIOR_ANALYSIS;} - YY_BREAK -case 22: -YY_RULE_SETUP -#line 110 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::POSTERIOR_ANALYSIS;} - YY_BREAK -case 23: -YY_RULE_SETUP -#line 111 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::VAROBS;} - YY_BREAK -case 24: -YY_RULE_SETUP -#line 112 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::UNIT_ROOT_VARS;} - YY_BREAK -case 25: -YY_RULE_SETUP -#line 113 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::RPLOT;} - YY_BREAK -case 26: -YY_RULE_SETUP -#line 114 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::OSR_PARAMS;} - YY_BREAK -case 27: -YY_RULE_SETUP -#line 115 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::OSR;} - YY_BREAK -case 28: -YY_RULE_SETUP -#line 116 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::DYNATYPE;} - YY_BREAK -case 29: -YY_RULE_SETUP -#line 117 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::DYNASAVE;} - YY_BREAK -case 30: -YY_RULE_SETUP -#line 118 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::MODEL_COMPARISON;} - YY_BREAK -case 31: -YY_RULE_SETUP -#line 120 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::STEADY;} - YY_BREAK -case 32: -YY_RULE_SETUP -#line 121 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::CHECK;} - YY_BREAK -case 33: -YY_RULE_SETUP -#line 122 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::SIMUL;} - YY_BREAK -case 34: -YY_RULE_SETUP -#line 123 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::STOCH_SIMUL;} - YY_BREAK -case 35: -YY_RULE_SETUP -#line 124 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::DSAMPLE;} - YY_BREAK -case 36: -YY_RULE_SETUP -#line 125 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; sigma_e = 1; return token::SIGMA_E;} - YY_BREAK -case 37: -YY_RULE_SETUP -#line 126 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::CALIB;} - YY_BREAK -case 38: -YY_RULE_SETUP -#line 127 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::PLANNER_OBJECTIVE;} - YY_BREAK -case 39: -YY_RULE_SETUP -#line 128 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::RAMSEY_POLICY;} - YY_BREAK -case 40: -YY_RULE_SETUP -#line 130 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::BVAR_DENSITY; } - YY_BREAK -case 41: -YY_RULE_SETUP -#line 131 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::BVAR_FORECAST; } - YY_BREAK -case 42: -YY_RULE_SETUP -#line 132 "DynareFlex.ll" -{BEGIN DYNARE_STATEMENT; return token::DYNARE_SENSITIVITY;} - YY_BREAK -/* End of a Dynare statement */ -case 43: -YY_RULE_SETUP -#line 135 "DynareFlex.ll" -{ - if (!sigma_e) - BEGIN INITIAL; - return Dynare::parser::token_type (yytext[0]); -} - YY_BREAK -/* Begin of a Dynare block */ -case 44: -YY_RULE_SETUP -#line 143 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::MODEL;} - YY_BREAK -case 45: -YY_RULE_SETUP -#line 144 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::INITVAL;} - YY_BREAK -case 46: -YY_RULE_SETUP -#line 145 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::ENDVAL;} - YY_BREAK -case 47: -YY_RULE_SETUP -#line 146 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::HISTVAL;} - YY_BREAK -case 48: -YY_RULE_SETUP -#line 147 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::SHOCKS;} - YY_BREAK -case 49: -YY_RULE_SETUP -#line 148 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::ESTIMATED_PARAMS;} - YY_BREAK -/* priors is an alias for estimated_params */ -case 50: -YY_RULE_SETUP -#line 150 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK;return token::ESTIMATED_PARAMS;} - YY_BREAK -case 51: -YY_RULE_SETUP -#line 151 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::ESTIMATED_PARAMS_INIT;} - YY_BREAK -case 52: -YY_RULE_SETUP -#line 152 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::ESTIMATED_PARAMS_BOUNDS;} - YY_BREAK -case 53: -YY_RULE_SETUP -#line 153 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::OBSERVATION_TRENDS;} - YY_BREAK -case 54: -YY_RULE_SETUP -#line 154 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::OPTIM_WEIGHTS;} - YY_BREAK -case 55: -YY_RULE_SETUP -#line 155 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::CALIB_VAR;} - YY_BREAK -case 56: -YY_RULE_SETUP -#line 156 "DynareFlex.ll" -{BEGIN DYNARE_BLOCK; return token::HOMOTOPY_SETUP;} - YY_BREAK -/* End of a Dynare block */ -case 57: -/* rule 57 can match eol */ -YY_RULE_SETUP -#line 159 "DynareFlex.ll" -{BEGIN INITIAL; return token::END;} - YY_BREAK -/* Inside of a Dynare statement */ -case 58: -YY_RULE_SETUP -#line 162 "DynareFlex.ll" -{return token::DATAFILE;} - YY_BREAK -case 59: -YY_RULE_SETUP -#line 163 "DynareFlex.ll" -{return token::METHOD;} - YY_BREAK -case 60: -YY_RULE_SETUP -#line 164 "DynareFlex.ll" -{return token::NOBS;} - YY_BREAK -case 61: -YY_RULE_SETUP -#line 165 "DynareFlex.ll" -{return token::FIRST_OBS;} - YY_BREAK -case 62: -YY_RULE_SETUP -#line 166 "DynareFlex.ll" -{return token::PREFILTER;} - YY_BREAK -case 63: -YY_RULE_SETUP -#line 167 "DynareFlex.ll" -{return token::PRESAMPLE;} - YY_BREAK -case 64: -YY_RULE_SETUP -#line 168 "DynareFlex.ll" -{return token::LIK_ALGO;} - YY_BREAK -case 65: -YY_RULE_SETUP -#line 169 "DynareFlex.ll" -{return token::LIK_INIT;} - YY_BREAK -case 66: -YY_RULE_SETUP -#line 170 "DynareFlex.ll" -{return token::GRAPH;} - YY_BREAK -case 67: -YY_RULE_SETUP -#line 171 "DynareFlex.ll" -{return token::NOGRAPH;} - YY_BREAK -case 68: -YY_RULE_SETUP -#line 172 "DynareFlex.ll" -{return token::PRINT;} - YY_BREAK -case 69: -YY_RULE_SETUP -#line 173 "DynareFlex.ll" -{return token::NOPRINT;} - YY_BREAK -case 70: -YY_RULE_SETUP -#line 174 "DynareFlex.ll" -{return token::CONF_SIG;} - YY_BREAK -case 71: -YY_RULE_SETUP -#line 175 "DynareFlex.ll" -{return token::MH_REPLIC;} - YY_BREAK -case 72: -YY_RULE_SETUP -#line 176 "DynareFlex.ll" -{return token::MH_DROP;} - YY_BREAK -case 73: -YY_RULE_SETUP -#line 177 "DynareFlex.ll" -{return token::MH_JSCALE;} - YY_BREAK -case 74: -YY_RULE_SETUP -#line 178 "DynareFlex.ll" -{return token::MH_INIT_SCALE;} - YY_BREAK -case 75: -YY_RULE_SETUP -#line 179 "DynareFlex.ll" -{return token::MODE_FILE;} - YY_BREAK -case 76: -YY_RULE_SETUP -#line 180 "DynareFlex.ll" -{return token::MODE_COMPUTE;} - YY_BREAK -case 77: -YY_RULE_SETUP -#line 181 "DynareFlex.ll" -{return token::MODE_CHECK;} - YY_BREAK -case 78: -YY_RULE_SETUP -#line 182 "DynareFlex.ll" -{return token::PRIOR_TRUNC;} - YY_BREAK -case 79: -YY_RULE_SETUP -#line 183 "DynareFlex.ll" -{return token::MH_MODE;} - YY_BREAK -case 80: -YY_RULE_SETUP -#line 184 "DynareFlex.ll" -{return token::MH_NBLOCKS;} - YY_BREAK -case 81: -YY_RULE_SETUP -#line 185 "DynareFlex.ll" -{return token::LOAD_MH_FILE;} - YY_BREAK -case 82: -YY_RULE_SETUP -#line 186 "DynareFlex.ll" -{return token::LOGLINEAR;} - YY_BREAK -case 83: -YY_RULE_SETUP -#line 187 "DynareFlex.ll" -{return token::NODIAGNOSTIC;} - YY_BREAK -case 84: -YY_RULE_SETUP -#line 188 "DynareFlex.ll" -{return token::KALMAN_ALGO;} - YY_BREAK -case 85: -YY_RULE_SETUP -#line 189 "DynareFlex.ll" -{return token::KALMAN_TOL;} - YY_BREAK -case 86: -YY_RULE_SETUP -#line 190 "DynareFlex.ll" -{return token::FORECAST;} - YY_BREAK -case 87: -YY_RULE_SETUP -#line 191 "DynareFlex.ll" -{return token::SMOOTHER;} - YY_BREAK -case 88: -YY_RULE_SETUP -#line 192 "DynareFlex.ll" -{return token::BAYESIAN_IRF;} - YY_BREAK -case 89: -YY_RULE_SETUP -#line 193 "DynareFlex.ll" -{return token::MOMENTS_VARENDO;} - YY_BREAK -case 90: -YY_RULE_SETUP -#line 194 "DynareFlex.ll" -{return token::FILTERED_VARS;} - YY_BREAK -case 91: -YY_RULE_SETUP -#line 195 "DynareFlex.ll" -{return token::FILTER_STEP_AHEAD;} - YY_BREAK -case 92: -YY_RULE_SETUP -#line 196 "DynareFlex.ll" -{return token::RELATIVE_IRF;} - YY_BREAK -case 93: -YY_RULE_SETUP -#line 197 "DynareFlex.ll" -{return token::TEX;} - YY_BREAK -case 94: -YY_RULE_SETUP -#line 198 "DynareFlex.ll" -{return token::NOMOMENTS;} - YY_BREAK -case 95: -YY_RULE_SETUP -#line 199 "DynareFlex.ll" -{return token::CORR;} - YY_BREAK -case 96: -YY_RULE_SETUP -#line 200 "DynareFlex.ll" -{return token::NOCORR;} - YY_BREAK -case 97: -YY_RULE_SETUP -#line 201 "DynareFlex.ll" -{return token::OPTIM;} - YY_BREAK -case 98: -YY_RULE_SETUP -#line 202 "DynareFlex.ll" -{return token::PERIODS;} - YY_BREAK -case 99: -YY_RULE_SETUP -#line 203 "DynareFlex.ll" -{return token::CUTOFF;} - YY_BREAK -case 100: -YY_RULE_SETUP -#line 204 "DynareFlex.ll" -{return token::MARKOWITZ;} - YY_BREAK -case 101: -YY_RULE_SETUP -#line 205 "DynareFlex.ll" -{return token::MODEL_COMPARISON;} - YY_BREAK -case 102: -YY_RULE_SETUP -#line 206 "DynareFlex.ll" -{return token::LAPLACE;} - YY_BREAK -case 103: -YY_RULE_SETUP -#line 207 "DynareFlex.ll" -{return token::MODIFIEDHARMONICMEAN;} - YY_BREAK -case 104: -YY_RULE_SETUP -#line 208 "DynareFlex.ll" -{return token::CONSTANT;} - YY_BREAK -case 105: -YY_RULE_SETUP -#line 209 "DynareFlex.ll" -{return token::NOCONSTANT;} - YY_BREAK -case 106: -YY_RULE_SETUP -#line 210 "DynareFlex.ll" -{return token::COVAR;} - YY_BREAK -case 107: -YY_RULE_SETUP -#line 212 "DynareFlex.ll" -{ return token::BVAR_PRIOR_TAU; } - YY_BREAK -case 108: -YY_RULE_SETUP -#line 213 "DynareFlex.ll" -{ return token::BVAR_PRIOR_DECAY; } - YY_BREAK -case 109: -YY_RULE_SETUP -#line 214 "DynareFlex.ll" -{ return token::BVAR_PRIOR_LAMBDA; } - YY_BREAK -case 110: -YY_RULE_SETUP -#line 215 "DynareFlex.ll" -{ return token::BVAR_PRIOR_MU; } - YY_BREAK -case 111: -YY_RULE_SETUP -#line 216 "DynareFlex.ll" -{ return token::BVAR_PRIOR_OMEGA; } - YY_BREAK -case 112: -YY_RULE_SETUP -#line 217 "DynareFlex.ll" -{ return token::BVAR_PRIOR_FLAT; } - YY_BREAK -case 113: -YY_RULE_SETUP -#line 218 "DynareFlex.ll" -{ return token::BVAR_PRIOR_TRAIN; } - YY_BREAK -case 114: -YY_RULE_SETUP -#line 219 "DynareFlex.ll" -{ return token::BVAR_REPLIC; } - YY_BREAK -case 115: -YY_RULE_SETUP -#line 221 "DynareFlex.ll" -{return token::HOMOTOPY_MODE; } - YY_BREAK -case 116: -YY_RULE_SETUP -#line 222 "DynareFlex.ll" -{return token::HOMOTOPY_STEPS; } - YY_BREAK -case 117: -/* rule 117 can match eol */ -YY_RULE_SETUP -#line 224 "DynareFlex.ll" -{ - strtok(yytext+1, "$"); - yylval->string_val = new string(yytext + 1); - return token::TEX_NAME; -} - YY_BREAK -/* Inside a Dynare block */ -case 118: -YY_RULE_SETUP -#line 231 "DynareFlex.ll" -{return token::VAR;} - YY_BREAK -case 119: -YY_RULE_SETUP -#line 232 "DynareFlex.ll" -{return token::STDERR;} - YY_BREAK -case 120: -YY_RULE_SETUP -#line 233 "DynareFlex.ll" -{return token::VALUES;} - YY_BREAK -case 121: -YY_RULE_SETUP -#line 234 "DynareFlex.ll" -{return token::CORR;} - YY_BREAK -case 122: -YY_RULE_SETUP -#line 235 "DynareFlex.ll" -{return token::PERIODS;} - YY_BREAK -case 123: -YY_RULE_SETUP -#line 236 "DynareFlex.ll" -{return token::CUTOFF;} - YY_BREAK -case 124: -YY_RULE_SETUP -#line 237 "DynareFlex.ll" -{return token::MARKOWITZ;} - YY_BREAK -case 125: -YY_RULE_SETUP -#line 238 "DynareFlex.ll" -{return token::FILENAME;} - YY_BREAK -case 126: -YY_RULE_SETUP -#line 239 "DynareFlex.ll" -{return token::GAMMA_PDF;} - YY_BREAK -case 127: -YY_RULE_SETUP -#line 240 "DynareFlex.ll" -{return token::BETA_PDF;} - YY_BREAK -case 128: -YY_RULE_SETUP -#line 241 "DynareFlex.ll" -{return token::NORMAL_PDF;} - YY_BREAK -case 129: -YY_RULE_SETUP -#line 242 "DynareFlex.ll" -{return token::INV_GAMMA_PDF;} - YY_BREAK -case 130: -YY_RULE_SETUP -#line 243 "DynareFlex.ll" -{return token::INV_GAMMA_PDF;} - YY_BREAK -case 131: -YY_RULE_SETUP -#line 244 "DynareFlex.ll" -{return token::INV_GAMMA_PDF;} - YY_BREAK -case 132: -YY_RULE_SETUP -#line 245 "DynareFlex.ll" -{return token::UNIFORM_PDF;} - YY_BREAK -case 133: -YY_RULE_SETUP -#line 247 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 134: -YY_RULE_SETUP -#line 248 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 135: -YY_RULE_SETUP -#line 250 "DynareFlex.ll" -{return token::AUTOCORR;} - YY_BREAK -/* Inside Dynare statement */ -case 136: -YY_RULE_SETUP -#line 253 "DynareFlex.ll" -{return token::SOLVE_ALGO;} - YY_BREAK -case 137: -YY_RULE_SETUP -#line 254 "DynareFlex.ll" -{return token::DR_ALGO;} - YY_BREAK -case 138: -YY_RULE_SETUP -#line 255 "DynareFlex.ll" -{return token::SIMUL_ALGO;} - YY_BREAK -case 139: -YY_RULE_SETUP -#line 256 "DynareFlex.ll" -{return token::DROP;} - YY_BREAK -case 140: -YY_RULE_SETUP -#line 257 "DynareFlex.ll" -{return token::ORDER;} - YY_BREAK -case 141: -YY_RULE_SETUP -#line 258 "DynareFlex.ll" -{return token::REPLIC;} - YY_BREAK -case 142: -YY_RULE_SETUP -#line 259 "DynareFlex.ll" -{return token::AR;} - YY_BREAK -case 143: -YY_RULE_SETUP -#line 260 "DynareFlex.ll" -{return token::NOFUNCTIONS;} - YY_BREAK -case 144: -YY_RULE_SETUP -#line 261 "DynareFlex.ll" -{return token::IRF;} - YY_BREAK -case 145: -YY_RULE_SETUP -#line 262 "DynareFlex.ll" -{return token::HP_FILTER;} - YY_BREAK -case 146: -YY_RULE_SETUP -#line 263 "DynareFlex.ll" -{return token::HP_NGRID;} - YY_BREAK -case 147: -YY_RULE_SETUP -#line 264 "DynareFlex.ll" -{return token::SIMUL_SEED;} - YY_BREAK -case 148: -YY_RULE_SETUP -#line 265 "DynareFlex.ll" -{return token::QZ_CRITERIUM;} - YY_BREAK -case 149: -YY_RULE_SETUP -#line 266 "DynareFlex.ll" -{return token::SIMUL;} - YY_BREAK -case 150: -YY_RULE_SETUP -#line 267 "DynareFlex.ll" -{return token::XLS_SHEET;} - YY_BREAK -case 151: -YY_RULE_SETUP -#line 268 "DynareFlex.ll" -{return token::XLS_RANGE;} - YY_BREAK -case 152: -YY_RULE_SETUP -#line 269 "DynareFlex.ll" -{return token::MH_RECOVER;} - YY_BREAK -case 153: -YY_RULE_SETUP -#line 270 "DynareFlex.ll" -{return token::PLANNER_DISCOUNT;} - YY_BREAK -case 154: -YY_RULE_SETUP -#line 273 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 155: -YY_RULE_SETUP -#line 274 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 156: -YY_RULE_SETUP -#line 275 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 157: -YY_RULE_SETUP -#line 277 "DynareFlex.ll" -{return token::USE_DLL;} - YY_BREAK -case 158: -YY_RULE_SETUP -#line 278 "DynareFlex.ll" -{return token::LU;} - YY_BREAK -case 159: -YY_RULE_SETUP -#line 279 "DynareFlex.ll" -{return token::GAUSSIAN_ELIMINATION;} - YY_BREAK -case 160: -YY_RULE_SETUP -#line 280 "DynareFlex.ll" -{return token::GMRES;} - YY_BREAK -case 161: -YY_RULE_SETUP -#line 281 "DynareFlex.ll" -{return token::BICGSTAB;} - YY_BREAK -case 162: -YY_RULE_SETUP -#line 282 "DynareFlex.ll" -{return token::SPARSE;} - YY_BREAK -case 163: -YY_RULE_SETUP -#line 283 "DynareFlex.ll" -{return token::SPARSE_DLL;} - YY_BREAK -case 164: -YY_RULE_SETUP -#line 284 "DynareFlex.ll" -{return token::GCC_COMPILER;} - YY_BREAK -case 165: -YY_RULE_SETUP -#line 285 "DynareFlex.ll" -{return token::LCC_COMPILER;} - YY_BREAK -case 166: -YY_RULE_SETUP -#line 286 "DynareFlex.ll" -{return token::NO_COMPILER;} - YY_BREAK -case 167: -YY_RULE_SETUP -#line 287 "DynareFlex.ll" -{return token::LINEAR;} - YY_BREAK -case 168: -YY_RULE_SETUP -#line 288 "DynareFlex.ll" -{return token::COMMA;} - YY_BREAK -case 169: -YY_RULE_SETUP -#line 289 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 170: -YY_RULE_SETUP -#line 290 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 171: -YY_RULE_SETUP -#line 291 "DynareFlex.ll" -{return Dynare::parser::token_type (yytext[0]);} - YY_BREAK -case 172: -YY_RULE_SETUP -#line 292 "DynareFlex.ll" -{ - if (sigma_e) - sigma_e = 0; - return Dynare::parser::token_type (yytext[0]); -} - YY_BREAK -case 173: -YY_RULE_SETUP -#line 297 "DynareFlex.ll" -{return token::PLUS;} - YY_BREAK -case 174: -YY_RULE_SETUP -#line 298 "DynareFlex.ll" -{return token::MINUS;} - YY_BREAK -case 175: -YY_RULE_SETUP -#line 299 "DynareFlex.ll" -{return token::TIMES;} - YY_BREAK -case 176: -YY_RULE_SETUP -#line 300 "DynareFlex.ll" -{return token::DIVIDE;} - YY_BREAK -case 177: -YY_RULE_SETUP -#line 301 "DynareFlex.ll" -{return token::EQUAL;} - YY_BREAK -case 178: -YY_RULE_SETUP -#line 302 "DynareFlex.ll" -{return token::LESS;} - YY_BREAK -case 179: -YY_RULE_SETUP -#line 303 "DynareFlex.ll" -{return token::GREATER;} - YY_BREAK -case 180: -YY_RULE_SETUP -#line 304 "DynareFlex.ll" -{return token::GREATER_EQUAL;} - YY_BREAK -case 181: -YY_RULE_SETUP -#line 305 "DynareFlex.ll" -{return token::LESS_EQUAL;} - YY_BREAK -case 182: -YY_RULE_SETUP -#line 306 "DynareFlex.ll" -{return token::EQUAL_EQUAL;} - YY_BREAK -case 183: -YY_RULE_SETUP -#line 307 "DynareFlex.ll" -{return token::EXCLAMATION_EQUAL;} - YY_BREAK -case 184: -YY_RULE_SETUP -#line 308 "DynareFlex.ll" -{return token::EXCLAMATION;} - YY_BREAK -case 185: -YY_RULE_SETUP -#line 309 "DynareFlex.ll" -{return token::POWER;} - YY_BREAK -case 186: -YY_RULE_SETUP -#line 310 "DynareFlex.ll" -{return token::EXP;} - YY_BREAK -case 187: -YY_RULE_SETUP -#line 311 "DynareFlex.ll" -{return token::LOG;} - YY_BREAK -case 188: -YY_RULE_SETUP -#line 312 "DynareFlex.ll" -{return token::LOG10;} - YY_BREAK -case 189: -YY_RULE_SETUP -#line 313 "DynareFlex.ll" -{return token::LN;} - YY_BREAK -case 190: -YY_RULE_SETUP -#line 314 "DynareFlex.ll" -{return token::SIN;} - YY_BREAK -case 191: -YY_RULE_SETUP -#line 315 "DynareFlex.ll" -{return token::COS;} - YY_BREAK -case 192: -YY_RULE_SETUP -#line 316 "DynareFlex.ll" -{return token::TAN;} - YY_BREAK -case 193: -YY_RULE_SETUP -#line 317 "DynareFlex.ll" -{return token::ASIN;} - YY_BREAK -case 194: -YY_RULE_SETUP -#line 318 "DynareFlex.ll" -{return token::ACOS;} - YY_BREAK -case 195: -YY_RULE_SETUP -#line 319 "DynareFlex.ll" -{return token::ATAN;} - YY_BREAK -case 196: -YY_RULE_SETUP -#line 320 "DynareFlex.ll" -{return token::SINH;} - YY_BREAK -case 197: -YY_RULE_SETUP -#line 321 "DynareFlex.ll" -{return token::COSH;} - YY_BREAK -case 198: -YY_RULE_SETUP -#line 322 "DynareFlex.ll" -{return token::TANH;} - YY_BREAK -case 199: -YY_RULE_SETUP -#line 323 "DynareFlex.ll" -{return token::ASINH;} - YY_BREAK -case 200: -YY_RULE_SETUP -#line 324 "DynareFlex.ll" -{return token::ACOSH;} - YY_BREAK -case 201: -YY_RULE_SETUP -#line 325 "DynareFlex.ll" -{return token::ATANH;} - YY_BREAK -case 202: -YY_RULE_SETUP -#line 326 "DynareFlex.ll" -{return token::SQRT;} - YY_BREAK -case 203: -YY_RULE_SETUP -#line 327 "DynareFlex.ll" -{return token::MAX;} - YY_BREAK -case 204: -YY_RULE_SETUP -#line 328 "DynareFlex.ll" -{return token::MIN;} - YY_BREAK -case 205: -YY_RULE_SETUP -#line 329 "DynareFlex.ll" -{return token::NORMCDF;} - YY_BREAK -/* options for GSA module by Marco Ratto */ -case 206: -YY_RULE_SETUP -#line 332 "DynareFlex.ll" -{return token::IDENTIFICATION;} - YY_BREAK -case 207: -YY_RULE_SETUP -#line 333 "DynareFlex.ll" -{return token::MORRIS;} - YY_BREAK -case 208: -YY_RULE_SETUP -#line 334 "DynareFlex.ll" -{return token::STAB;} - YY_BREAK -case 209: -YY_RULE_SETUP -#line 335 "DynareFlex.ll" -{return token::REDFORM;} - YY_BREAK -case 210: -YY_RULE_SETUP -#line 336 "DynareFlex.ll" -{return token::PPRIOR;} - YY_BREAK -case 211: -YY_RULE_SETUP -#line 337 "DynareFlex.ll" -{return token::PRIOR_RANGE;} - YY_BREAK -case 212: -YY_RULE_SETUP -#line 338 "DynareFlex.ll" -{return token::PPOST;} - YY_BREAK -case 213: -YY_RULE_SETUP -#line 339 "DynareFlex.ll" -{return token::ILPTAU;} - YY_BREAK -case 214: -YY_RULE_SETUP -#line 340 "DynareFlex.ll" -{return token::GLUE;} - YY_BREAK -case 215: -YY_RULE_SETUP -#line 341 "DynareFlex.ll" -{return token::MORRIS_NLIV;} - YY_BREAK -case 216: -YY_RULE_SETUP -#line 342 "DynareFlex.ll" -{return token::MORRIS_NTRA;} - YY_BREAK -case 217: -YY_RULE_SETUP -#line 343 "DynareFlex.ll" -{return token::NSAM;} - YY_BREAK -case 218: -YY_RULE_SETUP -#line 344 "DynareFlex.ll" -{return token::LOAD_REDFORM;} - YY_BREAK -case 219: -YY_RULE_SETUP -#line 345 "DynareFlex.ll" -{return token::LOAD_RMSE;} - YY_BREAK -case 220: -YY_RULE_SETUP -#line 346 "DynareFlex.ll" -{return token::LOAD_STAB;} - YY_BREAK -case 221: -YY_RULE_SETUP -#line 347 "DynareFlex.ll" -{return token::ALPHA2_STAB;} - YY_BREAK -case 222: -YY_RULE_SETUP -#line 348 "DynareFlex.ll" -{return token::KSSTAT;} - YY_BREAK -case 223: -YY_RULE_SETUP -#line 349 "DynareFlex.ll" -{return token::LOGTRANS_REDFORM;} - YY_BREAK -case 224: -YY_RULE_SETUP -#line 350 "DynareFlex.ll" -{return token::THRESHOLD_REDFORM;} - YY_BREAK -case 225: -YY_RULE_SETUP -#line 351 "DynareFlex.ll" -{return token::KSSTAT_REDFORM;} - YY_BREAK -case 226: -YY_RULE_SETUP -#line 352 "DynareFlex.ll" -{return token::ALPHA2_REDFORM;} - YY_BREAK -case 227: -YY_RULE_SETUP -#line 353 "DynareFlex.ll" -{return token::NAMENDO;} - YY_BREAK -case 228: -YY_RULE_SETUP -#line 354 "DynareFlex.ll" -{return token::NAMLAGENDO;} - YY_BREAK -case 229: -YY_RULE_SETUP -#line 355 "DynareFlex.ll" -{return token::NAMEXO;} - YY_BREAK -case 230: -YY_RULE_SETUP -#line 356 "DynareFlex.ll" -{return token::RMSE;} - YY_BREAK -case 231: -YY_RULE_SETUP -#line 357 "DynareFlex.ll" -{return token::LIK_ONLY;} - YY_BREAK -case 232: -YY_RULE_SETUP -#line 358 "DynareFlex.ll" -{return token::VAR_RMSE;} - YY_BREAK -case 233: -YY_RULE_SETUP -#line 359 "DynareFlex.ll" -{return token::PFILT_RMSE;} - YY_BREAK -case 234: -YY_RULE_SETUP -#line 360 "DynareFlex.ll" -{return token::ISTART_RMSE;} - YY_BREAK -case 235: -YY_RULE_SETUP -#line 361 "DynareFlex.ll" -{return token::ALPHA_RMSE;} - YY_BREAK -case 236: -YY_RULE_SETUP -#line 362 "DynareFlex.ll" -{return token::ALPHA2_RMSE;} - YY_BREAK -/* end of GSA options */ -case 237: -YY_RULE_SETUP -#line 365 "DynareFlex.ll" -{ - yylval->string_val = new string(yytext); - return token::NAME; -} - YY_BREAK -case 238: -YY_RULE_SETUP -#line 370 "DynareFlex.ll" -{ - yylval->string_val = new string(yytext); - return token::FLOAT_NUMBER; -} - YY_BREAK -case 239: -YY_RULE_SETUP -#line 375 "DynareFlex.ll" -{ - yylval->string_val = new string(yytext); - return token::INT_NUMBER; -} - YY_BREAK -/* an instruction starting with a recognized symbol (which is not a modfile local variable) - is passed as NAME, - otherwise it is a native statement until the end of the line - */ -case 240: -YY_RULE_SETUP -#line 384 "DynareFlex.ll" -{ - if (driver.symbol_exists_and_is_not_modfile_local_variable(yytext)) - { - BEGIN DYNARE_STATEMENT; - yylval->string_val = new string(yytext); - return token::NAME; - } - else - { - /* Enter a native block */ - BEGIN NATIVE; - yyless(0); - } -} - YY_BREAK -/* Enter a native block */ -case 241: -YY_RULE_SETUP -#line 400 "DynareFlex.ll" -{ BEGIN NATIVE; yyless(0); } - YY_BREAK -/* Add the native statement */ -case 242: -YY_RULE_SETUP -#line 403 "DynareFlex.ll" -{ driver.add_native(yytext); BEGIN INITIAL; } - YY_BREAK -case 243: -YY_RULE_SETUP -#line 405 "DynareFlex.ll" -{ driver.error(*yylloc, "character unrecognized by lexer"); } - YY_BREAK -case 244: -YY_RULE_SETUP -#line 406 "DynareFlex.ll" -ECHO; - YY_BREAK -#line 2989 "DynareFlex.cc" -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(COMMENT): -case YY_STATE_EOF(DYNARE_STATEMENT): -case YY_STATE_EOF(DYNARE_BLOCK): -case YY_STATE_EOF(NATIVE): -case YY_STATE_EOF(LINE1): -case YY_STATE_EOF(LINE2): -case YY_STATE_EOF(LINE3): - yyterminate(); - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { -/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of yylex */ -/* %ok-for-header */ - -/* %if-c++-only */ -/* %not-for-header */ - -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) -{ - yyin = arg_yyin; - yyout = arg_yyout; - yy_c_buf_p = 0; - yy_init = 0; - yy_start = 0; - yy_flex_debug = 0; - yylineno = 1; // this will only get updated if %option yylineno - - yy_did_buffer_switch_on_eof = 0; - - yy_looking_for_trail_begin = 0; - yy_more_flag = 0; - yy_more_len = 0; - yy_more_offset = yy_prev_more_offset = 0; - - yy_start_stack_ptr = yy_start_stack_depth = 0; - yy_start_stack = NULL; - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - - yy_state_buf = 0; - -} - -void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) -{ - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } - - if ( new_out ) - yyout = new_out; -} - -#ifdef YY_INTERACTIVE -int yyFlexLexer::LexerInput( char* buf, int /* max_size */ ) -#else -int yyFlexLexer::LexerInput( char* buf, int max_size ) -#endif -{ - if ( yyin->eof() || yyin->fail() ) - return 0; - -#ifdef YY_INTERACTIVE - yyin->get( buf[0] ); - - if ( yyin->eof() ) - return 0; - - if ( yyin->bad() ) - return -1; - - return 1; - -#else - (void) yyin->read( buf, max_size ); - - if ( yyin->bad() ) - return -1; - else - return yyin->gcount(); -#endif -} - -void yyFlexLexer::LexerOutput( const char* buf, int size ) -{ - (void) yyout->write( buf, size ); -} -/* %ok-for-header */ - -/* %endif */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -int yyFlexLexer::yy_get_next_buffer() -/* %endif */ -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - Dynarerealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - -/* %if-c-only */ -/* %not-for-header */ - -/* %endif */ -/* %if-c++-only */ - yy_state_type yyFlexLexer::yy_get_previous_state() -/* %endif */ -{ - register yy_state_type yy_current_state; - register char *yy_cp; - -/* %% [15.0] code to get the start state into yy_current_state goes here */ - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { -/* %% [16.0] code to find the next state goes here */ - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1427 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) -/* %endif */ -{ - register int yy_is_jam; - /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1427 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1426); - - return yy_is_jam ? 0 : yy_current_state; -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yyunput( int c, register char* yy_bp) -/* %endif */ -{ - register char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up yytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - -/* %% [18.0] update yylineno here */ - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - int yyFlexLexer::yyinput() -/* %endif */ -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap( ) ) - return EOF; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - -/* %% [19.0] update BOL and yylineno */ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); - - return c; -} -/* %if-c-only */ -/* %endif */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yyrestart( std::istream* input_file ) -/* %endif */ -{ - - if ( ! YY_CURRENT_BUFFER ){ - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) -/* %endif */ -{ - - /* TODO. We should be able to replace this entire function body - * with - * yypop_buffer_state(); - * yypush_buffer_state(new_buffer); - */ - yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_load_buffer_state() -/* %endif */ -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) -/* %endif */ -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) Dynarealloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) Dynarealloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) -/* %endif */ -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - Dynarefree((void *) b->yy_ch_buf ); - - Dynarefree((void *) b ); -} - -/* %if-c-only */ -/* %endif */ - -/* %if-c++-only */ - -/* %endif */ - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) -/* %endif */ - -{ - int oerrno = errno; - - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then yy_init_buffer was _probably_ - * called from yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - b->yy_is_interactive = 0; -/* %endif */ - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) -/* %endif */ -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); -} - -/* %if-c-or-c++ */ -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer) -/* %endif */ -{ - if (new_buffer == NULL) - return; - - yyensure_buffer_stack(); - - /* This block is copied from yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} -/* %endif */ - -/* %if-c-or-c++ */ -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::yypop_buffer_state (void) -/* %endif */ -{ - if (!YY_CURRENT_BUFFER) - return; - - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} -/* %endif */ - -/* %if-c-or-c++ */ -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::yyensure_buffer_stack(void) -/* %endif */ -{ - int num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)Dynarealloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)Dynarerealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_push_state( int new_state ) -/* %endif */ -{ - if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) - { - yy_size_t new_size; - - (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); - - if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) Dynarealloc(new_size ); - - else - (yy_start_stack) = (int *) Dynarerealloc((void *) (yy_start_stack),new_size ); - - if ( ! (yy_start_stack) ) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } - - (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - - BEGIN(new_state); -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_pop_state() -/* %endif */ -{ - if ( --(yy_start_stack_ptr) < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - int yyFlexLexer::yy_top_state() -/* %endif */ -{ - return (yy_start_stack)[(yy_start_stack_ptr) - 1]; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::LexerError( yyconst char msg[] ) -{ - std::cerr << msg << std::endl; - exit( YY_EXIT_FAILURE ); -} -/* %endif */ - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/* %if-c-only */ -/* %if-reentrant */ -/* %endif */ -/* %if-reentrant */ -/* %endif */ -/* %endif */ - -/* %if-reentrant */ -/* %if-bison-bridge */ -/* %endif */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-or-c++ */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -yyFlexLexer::~yyFlexLexer() -/* %endif */ -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - Dynarefree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - -/* %if-c++-only */ - delete [] (yy_state_buf); - Dynarefree((yy_start_stack) ); -/* %endif */ - -/* %if-c-only */ -/* %if-reentrant */ -/* %endif */ -/* %endif */ -} -/* %endif */ - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *Dynarealloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *Dynarerealloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void Dynarefree (void * ptr ) -{ - free( (char *) ptr ); /* see Dynarerealloc() for (char *) cast */ -} - -/* %if-tables-serialization definitions */ -/* %define-yytables The name for this specific scanner's tables. */ -#define YYTABLES_NAME "yytables" -/* %endif */ - -/* %ok-for-header */ - -#line 406 "DynareFlex.ll" - - - -DynareFlex::DynareFlex(istream* in, ostream* out) - : DynareFlexLexer(in, out) -{ -} - -/* This implementation of DynareFlexLexer::yylex() is required to fill the - * vtable of the class DynareFlexLexer. We define the scanner's main yylex - * function via YY_DECL to reside in the DynareFlex class instead. */ - -#ifdef yylex -# undef yylex -#endif - -int -DynareFlexLexer::yylex() -{ - cerr << "DynareFlexLexer::yylex() has been called, that should never happen!" << endl; - exit(-1); -} - -/* - Local variables: - mode: C++ - End: -*/ - diff --git a/parser.src/FlexLexer.h b/parser.src/FlexLexer.h deleted file mode 100644 index 1db844da9..000000000 --- a/parser.src/FlexLexer.h +++ /dev/null @@ -1,205 +0,0 @@ - -// -*-C++-*- -// FlexLexer.h -- define interfaces for lexical analyzer classes generated -// by flex - -// Copyright (c) 1993 The Regents of the University of California. -// All rights reserved. -// -// This code is derived from software contributed to Berkeley by -// Kent Williams and Tom Epperly. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: - -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. - -// Neither the name of the University nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE. - -// This file defines FlexLexer, an abstract class which specifies the -// external interface provided to flex C++ lexer objects, and yyFlexLexer, -// which defines a particular lexer class. -// -// If you want to create multiple lexer classes, you use the -P flag -// to rename each yyFlexLexer to some other xxFlexLexer. You then -// include in your other sources once per lexer class: -// -// #undef yyFlexLexer -// #define yyFlexLexer xxFlexLexer -// #include -// -// #undef yyFlexLexer -// #define yyFlexLexer zzFlexLexer -// #include -// ... - -#ifndef __FLEX_LEXER_H -// Never included before - need to define base class. -#define __FLEX_LEXER_H - -#include -# ifndef FLEX_STD -# define FLEX_STD std:: -# endif - -extern "C++" { - -struct yy_buffer_state; -typedef int yy_state_type; - -class FlexLexer { -public: - virtual ~FlexLexer() { } - - const char* YYText() const { return yytext; } - int YYLeng() const { return yyleng; } - - virtual void - yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0; - virtual struct yy_buffer_state* - yy_create_buffer( FLEX_STD istream* s, int size ) = 0; - virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0; - virtual void yyrestart( FLEX_STD istream* s ) = 0; - - virtual int yylex() = 0; - - // Call yylex with new input/output sources. - int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 ) - { - switch_streams( new_in, new_out ); - return yylex(); - } - - // Switch to new input/output streams. A nil stream pointer - // indicates "keep the current one". - virtual void switch_streams( FLEX_STD istream* new_in = 0, - FLEX_STD ostream* new_out = 0 ) = 0; - - int lineno() const { return yylineno; } - - int debug() const { return yy_flex_debug; } - void set_debug( int flag ) { yy_flex_debug = flag; } - -protected: - char* yytext; - int yyleng; - int yylineno; // only maintained if you use %option yylineno - int yy_flex_debug; // only has effect with -d or "%option debug" -}; - -} -#endif - -#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) -// Either this is the first time through (yyFlexLexerOnce not defined), -// or this is a repeated include to define a different flavor of -// yyFlexLexer, as discussed in the flex man page. -#define yyFlexLexerOnce - -extern "C++" { - -class yyFlexLexer : public FlexLexer { -public: - // arg_yyin and arg_yyout default to the cin and cout, but we - // only make that assignment when initializing in yylex(). - yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 ); - - virtual ~yyFlexLexer(); - - void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); - struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size ); - void yy_delete_buffer( struct yy_buffer_state* b ); - void yyrestart( FLEX_STD istream* s ); - - void yypush_buffer_state( struct yy_buffer_state* new_buffer ); - void yypop_buffer_state(void); - - virtual int yylex(); - virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out ); - -protected: - virtual int LexerInput( char* buf, int max_size ); - virtual void LexerOutput( const char* buf, int size ); - virtual void LexerError( const char* msg ); - - void yyunput( int c, char* buf_ptr ); - int yyinput(); - - void yy_load_buffer_state(); - void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s ); - void yy_flush_buffer( struct yy_buffer_state* b ); - - int yy_start_stack_ptr; - int yy_start_stack_depth; - int* yy_start_stack; - - void yy_push_state( int new_state ); - void yy_pop_state(); - int yy_top_state(); - - yy_state_type yy_get_previous_state(); - yy_state_type yy_try_NUL_trans( yy_state_type current_state ); - int yy_get_next_buffer(); - - FLEX_STD istream* yyin; // input source for default LexerInput - FLEX_STD ostream* yyout; // output sink for default LexerOutput - - // yy_hold_char holds the character lost when yytext is formed. - char yy_hold_char; - - // Number of characters read into yy_ch_buf. - int yy_n_chars; - - // Points to current character in buffer. - char* yy_c_buf_p; - - int yy_init; // whether we need to initialize - int yy_start; // start state number - - // Flag which is used to allow yywrap()'s to do buffer switches - // instead of setting up a fresh yyin. A bit of a hack ... - int yy_did_buffer_switch_on_eof; - - - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ - void yyensure_buffer_stack(void); - - // The following are not always needed, but may be depending - // on use of certain flex features (like REJECT or yymore()). - - yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; - - yy_state_type* yy_state_buf; - yy_state_type* yy_state_ptr; - - char* yy_full_match; - int* yy_full_state; - int yy_full_lp; - - int yy_lp; - int yy_looking_for_trail_begin; - - int yy_more_flag; - int yy_more_len; - int yy_more_offset; - int yy_prev_more_offset; -}; - -} - -#endif diff --git a/parser.src/Makefile b/parser.src/Makefile index 59cb2a562..80a27f3b7 100644 --- a/parser.src/Makefile +++ b/parser.src/Makefile @@ -76,22 +76,17 @@ DynareBison.cc include/DynareBison.hh: DynareBison.yy include/ParsingDriver.hh clean: clean-recursive rm -f *.o *.P \ *~ include/*~ \ - DynareBison.output \ DynareFlex.cc \ + DynareBison.output \ + DynareBison.cc \ + include/position.hh \ + include/stack.hh \ + include/location.hh \ + include/DynareBison.hh \ $(DYNARE_M) \ $(DYNARE_S) clean-recursive: make -C macro clean -distclean: clean distclean-recursive - rm -f DynareBison.cc \ - include/position.hh \ - include/stack.hh \ - include/location.hh \ - include/DynareBison.hh - -distclean-recursive: - make -C macro distclean - -.PHONY: all all-recursive clean clean-recursive distclean distclean-recursive +.PHONY: all all-recursive clean clean-recursive diff --git a/parser.src/include/DynareBison.hh b/parser.src/include/DynareBison.hh deleted file mode 100644 index ae76b8d89..000000000 --- a/parser.src/include/DynareBison.hh +++ /dev/null @@ -1,526 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton interface for Bison LALR(1) parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -/* C++ LALR(1) parser skeleton written by Akim Demaille. */ - -#ifndef PARSER_HEADER_H -# define PARSER_HEADER_H - -#include -#include -#include "stack.hh" - -namespace Dynare -{ - class position; - class location; -} - -/* First part of user declarations. */ -#line 24 "DynareBison.yy" - -using namespace std; - -class ParsingDriver; - -#include "ExprNode.hh" - -/* Little hack: we redefine the macro which computes the locations, because - we need to access the location from within the parsing driver for error - and warning messages. */ -#define YYLLOC_DEFAULT(Current, Rhs, N) \ - do { \ - if (N) \ - { \ - (Current).begin = (Rhs)[1].begin; \ - (Current).end = (Rhs)[N].end; \ - } \ - else \ - { \ - (Current).begin = (Current).end = (Rhs)[0].end; \ - } \ - driver.location = (Current); \ - } while(false) - - - -/* Line 35 of lalr1.cc. */ -#line 80 "DynareBison.hh" - -#include "location.hh" - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 1 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - -/* 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 = (Rhs)[1].begin; \ - (Current).end = (Rhs)[N].end; \ - } \ - else \ - { \ - (Current).begin = (Current).end = (Rhs)[0].end; \ - } \ -} while (false) -#endif - -namespace Dynare -{ - - /// A Bison parser. - class parser - { - public: - /// Symbol semantic values. -#ifndef YYSTYPE - union semantic_type -#line 61 "DynareBison.yy" -{ - string *string_val; - NodeID node_val; -} -/* Line 35 of lalr1.cc. */ -#line 137 "DynareBison.hh" - ; -#else - typedef YYSTYPE semantic_type; -#endif - /// Symbol locations. - typedef location location_type; - /// Tokens. - struct token - { - /* Tokens. */ - enum yytokentype { - AR = 258, - AUTOCORR = 259, - BAYESIAN_IRF = 260, - BETA_PDF = 261, - BICGSTAB = 262, - BVAR_DENSITY = 263, - BVAR_FORECAST = 264, - BVAR_PRIOR_DECAY = 265, - BVAR_PRIOR_FLAT = 266, - BVAR_PRIOR_LAMBDA = 267, - BVAR_PRIOR_MU = 268, - BVAR_PRIOR_OMEGA = 269, - BVAR_PRIOR_TAU = 270, - BVAR_PRIOR_TRAIN = 271, - BVAR_REPLIC = 272, - CALIB = 273, - CALIB_VAR = 274, - CHECK = 275, - CONF_SIG = 276, - CONSTANT = 277, - CORR = 278, - COVAR = 279, - CUTOFF = 280, - DATAFILE = 281, - DR_ALGO = 282, - DROP = 283, - DSAMPLE = 284, - DYNASAVE = 285, - DYNATYPE = 286, - END = 287, - ENDVAL = 288, - EQUAL = 289, - ESTIMATION = 290, - ESTIMATED_PARAMS = 291, - ESTIMATED_PARAMS_BOUNDS = 292, - ESTIMATED_PARAMS_INIT = 293, - FILENAME = 294, - FILTER_STEP_AHEAD = 295, - FILTERED_VARS = 296, - FIRST_OBS = 297, - FLOAT_NUMBER = 298, - FORECAST = 299, - GAMMA_PDF = 300, - GAUSSIAN_ELIMINATION = 301, - GCC_COMPILER = 302, - GMRES = 303, - GRAPH = 304, - HISTVAL = 305, - HP_FILTER = 306, - HP_NGRID = 307, - INITVAL = 308, - INT_NUMBER = 309, - INV_GAMMA_PDF = 310, - IRF = 311, - KALMAN_ALGO = 312, - KALMAN_TOL = 313, - LAPLACE = 314, - LCC_COMPILER = 315, - LIK_ALGO = 316, - LIK_INIT = 317, - LINEAR = 318, - LOAD_MH_FILE = 319, - LOGLINEAR = 320, - LU = 321, - MARKOWITZ = 322, - MAX = 323, - METHOD = 324, - MH_DROP = 325, - MH_INIT_SCALE = 326, - MH_JSCALE = 327, - MH_MODE = 328, - MH_NBLOCKS = 329, - MH_REPLIC = 330, - MH_RECOVER = 331, - MIN = 332, - MODE_CHECK = 333, - MODE_COMPUTE = 334, - MODE_FILE = 335, - MODEL = 336, - MODEL_COMPARISON = 337, - MSHOCKS = 338, - MODEL_COMPARISON_APPROXIMATION = 339, - MODIFIEDHARMONICMEAN = 340, - MOMENTS_VARENDO = 341, - NAME = 342, - NO_COMPILER = 343, - NOBS = 344, - NOCONSTANT = 345, - NOCORR = 346, - NODIAGNOSTIC = 347, - NOFUNCTIONS = 348, - NOGRAPH = 349, - NOMOMENTS = 350, - NOPRINT = 351, - NORMAL_PDF = 352, - OBSERVATION_TRENDS = 353, - OPTIM = 354, - OPTIM_WEIGHTS = 355, - ORDER = 356, - OSR = 357, - OSR_PARAMS = 358, - PARAMETERS = 359, - PERIODS = 360, - PLANNER_OBJECTIVE = 361, - PREFILTER = 362, - PRESAMPLE = 363, - PRINT = 364, - PRIOR_TRUNC = 365, - PRIOR_ANALYSIS = 366, - POSTERIOR_ANALYSIS = 367, - QZ_CRITERIUM = 368, - RELATIVE_IRF = 369, - REPLIC = 370, - RPLOT = 371, - SHOCKS = 372, - SIGMA_E = 373, - SIMUL = 374, - SIMUL_ALGO = 375, - SIMUL_SEED = 376, - SMOOTHER = 377, - SOLVE_ALGO = 378, - SPARSE = 379, - SPARSE_DLL = 380, - STDERR = 381, - STEADY = 382, - STOCH_SIMUL = 383, - TEX = 384, - RAMSEY_POLICY = 385, - PLANNER_DISCOUNT = 386, - TEX_NAME = 387, - UNIFORM_PDF = 388, - UNIT_ROOT_VARS = 389, - USE_DLL = 390, - VALUES = 391, - VAR = 392, - VAREXO = 393, - VAREXO_DET = 394, - VAROBS = 395, - XLS_SHEET = 396, - XLS_RANGE = 397, - NORMCDF = 398, - HOMOTOPY_SETUP = 399, - HOMOTOPY_MODE = 400, - HOMOTOPY_STEPS = 401, - EXCLAMATION_EQUAL = 402, - EXCLAMATION = 403, - EQUAL_EQUAL = 404, - GREATER_EQUAL = 405, - LESS_EQUAL = 406, - GREATER = 407, - LESS = 408, - COMMA = 409, - MINUS = 410, - PLUS = 411, - DIVIDE = 412, - TIMES = 413, - UMINUS = 414, - POWER = 415, - EXP = 416, - LOG = 417, - LN = 418, - LOG10 = 419, - SIN = 420, - COS = 421, - TAN = 422, - ASIN = 423, - ACOS = 424, - ATAN = 425, - SINH = 426, - COSH = 427, - TANH = 428, - ASINH = 429, - ACOSH = 430, - ATANH = 431, - SQRT = 432, - DYNARE_SENSITIVITY = 433, - IDENTIFICATION = 434, - MORRIS = 435, - STAB = 436, - REDFORM = 437, - PPRIOR = 438, - PRIOR_RANGE = 439, - PPOST = 440, - ILPTAU = 441, - GLUE = 442, - MORRIS_NLIV = 443, - MORRIS_NTRA = 444, - NSAM = 445, - LOAD_REDFORM = 446, - LOAD_RMSE = 447, - LOAD_STAB = 448, - ALPHA2_STAB = 449, - KSSTAT = 450, - LOGTRANS_REDFORM = 451, - THRESHOLD_REDFORM = 452, - KSSTAT_REDFORM = 453, - ALPHA2_REDFORM = 454, - NAMENDO = 455, - NAMLAGENDO = 456, - NAMEXO = 457, - RMSE = 458, - LIK_ONLY = 459, - VAR_RMSE = 460, - PFILT_RMSE = 461, - ISTART_RMSE = 462, - ALPHA_RMSE = 463, - ALPHA2_RMSE = 464 - }; - - }; - /// Token type. - typedef token::yytokentype token_type; - - /// Build a parser object. - parser (ParsingDriver &driver_yyarg); - virtual ~parser (); - - /// Parse. - /// \returns 0 iff parsing succeeded. - virtual int parse (); - - /// The current debugging stream. - std::ostream& debug_stream () const; - /// Set the current debugging stream. - void set_debug_stream (std::ostream &); - - /// Type for debugging levels. - typedef int debug_level_type; - /// The current debugging level. - debug_level_type debug_level () const; - /// Set the current debugging level. - void set_debug_level (debug_level_type l); - - private: - /// Report a syntax error. - /// \param loc where the syntax error is found. - /// \param msg a description of the syntax error. - virtual void error (const location_type& loc, const std::string& msg); - - /// Generate an error message. - /// \param state the state where the error occurred. - /// \param tok the look-ahead token. - virtual std::string yysyntax_error_ (int yystate, int tok); - -#if YYDEBUG - /// \brief Report a symbol value on the debug stream. - /// \param yytype The token type. - /// \param yyvaluep Its semantic value. - /// \param yylocationp Its location. - virtual void yy_symbol_value_print_ (int yytype, - const semantic_type* yyvaluep, - const location_type* yylocationp); - /// \brief Report a symbol on the debug stream. - /// \param yytype The token type. - /// \param yyvaluep Its semantic value. - /// \param yylocationp Its location. - virtual void yy_symbol_print_ (int yytype, - const semantic_type* yyvaluep, - const location_type* yylocationp); -#endif /* ! YYDEBUG */ - - - /// State numbers. - typedef int state_type; - /// State stack type. - typedef stack state_stack_type; - /// Semantic value stack type. - typedef stack semantic_stack_type; - /// location stack type. - typedef stack location_stack_type; - - /// The state stack. - state_stack_type yystate_stack_; - /// The semantic value stack. - semantic_stack_type yysemantic_stack_; - /// The location stack. - location_stack_type yylocation_stack_; - - /// Internal symbol numbers. - typedef unsigned char token_number_type; - /* Tables. */ - /// For a state, the index in \a yytable_ of its portion. - static const short int yypact_[]; - static const short int yypact_ninf_; - - /// For a state, default rule to reduce. - /// Unless\a yytable_ specifies something else to do. - /// Zero means the default is an error. - static const unsigned short int yydefact_[]; - - static const short int yypgoto_[]; - static const short int yydefgoto_[]; - - /// What to do in a state. - /// \a yytable_[yypact_[s]]: what to do in state \a s. - /// - if positive, shift that token. - /// - if negative, reduce the rule which number is the opposite. - /// - if zero, do what YYDEFACT says. - static const short int yytable_[]; - static const signed char yytable_ninf_; - - static const short int yycheck_[]; - - /// For a state, its accessing symbol. - static const unsigned short int yystos_[]; - - /// For a rule, its LHS. - static const unsigned short int yyr1_[]; - /// For a rule, its RHS length. - static const unsigned char yyr2_[]; - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE - /// For a symbol, its name in clear. - static const char* const yytname_[]; -#endif - -#if YYERROR_VERBOSE - /// Convert the symbol name \a n to a form suitable for a diagnostic. - virtual std::string yytnamerr_ (const char *n); -#endif - -#if YYDEBUG - /// A type to store symbol numbers and -1. - typedef short int rhs_number_type; - /// A `-1'-separated list of the rules' RHS. - static const rhs_number_type yyrhs_[]; - /// For each rule, the index of the first RHS symbol in \a yyrhs_. - static const unsigned short int yyprhs_[]; - /// For each rule, its source line number. - static const unsigned short int yyrline_[]; - /// For each scanner token number, its symbol number. - static const unsigned short int yytoken_number_[]; - /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r); - /// Print the state stack on the debug stream. - virtual void yystack_print_ (); -#endif - - /// Convert a scanner token number \a t to a symbol number. - token_number_type yytranslate_ (int t); - - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// \param yytype The symbol type. - /// \param yyvaluep Its semantic value. - /// \param yylocationp Its location. - inline void yydestruct_ (const char* yymsg, - int yytype, - semantic_type* yyvaluep, - location_type* yylocationp); - - /// Pop \a n symbols the three stacks. - inline void yypop_ (unsigned int n = 1); - - /* Constants. */ - static const int yyeof_; - /* LAST_ -- Last index in TABLE_. */ - static const int yylast_; - static const int yynnts_; - static const int yyempty_; - static const int yyfinal_; - static const int yyterror_; - static const int yyerrcode_; - static const int yyntokens_; - static const unsigned int yyuser_token_number_max_; - static const token_number_type yyundef_token_; - - /* Debugging. */ - int yydebug_; - std::ostream* yycdebug_; - - - /* User arguments. */ - ParsingDriver &driver; - }; -} - - -#endif /* ! defined PARSER_HEADER_H */ diff --git a/parser.src/include/location.hh b/parser.src/include/location.hh deleted file mode 100644 index ef12e997b..000000000 --- a/parser.src/include/location.hh +++ /dev/null @@ -1,145 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Locations for Bison parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -/** - ** \file location.hh - ** Define the Dynare::location class. - */ - -#ifndef BISON_LOCATION_HH -# define BISON_LOCATION_HH - -# include -# include -# include "position.hh" - -namespace Dynare -{ - - /// Abstract a location. - class location - { - public: - - /// Construct a location. - location () - : begin (), end () - { - } - - - /// Initialization. - inline void initialize (std::string* fn) - { - begin.initialize (fn); - end = begin; - } - - /** \name Line and Column related manipulators - ** \{ */ - public: - /// Reset initial location to final location. - inline void step () - { - begin = end; - } - - /// Extend the current location to the COUNT next columns. - inline void columns (unsigned int count = 1) - { - end += count; - } - - /// Extend the current location to the COUNT next lines. - inline void lines (unsigned int count = 1) - { - end.lines (count); - } - /** \} */ - - - public: - /// Beginning of the located region. - position begin; - /// End of the located region. - position end; - }; - - /// Join two location objects to create a location. - inline const location operator+ (const location& begin, const location& end) - { - location res = begin; - res.end = end.end; - return res; - } - - /// Add two location objects. - inline const location operator+ (const location& begin, unsigned int width) - { - location res = begin; - res.columns (width); - return res; - } - - /// Add and assign a location. - inline location& operator+= (location& res, unsigned int width) - { - res.columns (width); - return res; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param loc a reference to the location to redirect - ** - ** Avoid duplicate information. - */ - inline std::ostream& operator<< (std::ostream& ostr, const location& loc) - { - position last = loc.end - 1; - ostr << loc.begin; - if (last.filename - && (!loc.begin.filename - || *loc.begin.filename != *last.filename)) - ostr << '-' << last; - else if (loc.begin.line != last.line) - ostr << '-' << last.line << '.' << last.column; - else if (loc.begin.column != last.column) - ostr << '-' << last.column; - return ostr; - } - -} - -#endif // not BISON_LOCATION_HH diff --git a/parser.src/include/position.hh b/parser.src/include/position.hh deleted file mode 100644 index 2d24037fd..000000000 --- a/parser.src/include/position.hh +++ /dev/null @@ -1,142 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Positions for Bison parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -/** - ** \file position.hh - ** Define the Dynare::position class. - */ - -#ifndef BISON_POSITION_HH -# define BISON_POSITION_HH - -# include -# include - -namespace Dynare -{ - /// Abstract a position. - class position - { - public: - - /// Construct a position. - position () - : filename (0), line (1), column (0) - { - } - - - /// Initialization. - inline void initialize (std::string* fn) - { - filename = fn; - line = 1; - column = 0; - } - - /** \name Line and Column related manipulators - ** \{ */ - public: - /// (line related) Advance to the COUNT next lines. - inline void lines (int count = 1) - { - column = 0; - line += count; - } - - /// (column related) Advance to the COUNT next columns. - inline void columns (int count = 1) - { - int leftmost = 0; - int current = column; - if (leftmost <= current + count) - column += count; - else - column = 0; - } - /** \} */ - - public: - /// File name to which this position refers. - std::string* filename; - /// Current line number. - unsigned int line; - /// Current column number. - unsigned int column; - }; - - /// Add and assign a position. - inline const position& - operator+= (position& res, const int width) - { - res.columns (width); - return res; - } - - /// Add two position objects. - inline const position - operator+ (const position& begin, const int width) - { - position res = begin; - return res += width; - } - - /// Add and assign a position. - inline const position& - operator-= (position& res, const int width) - { - return res += -width; - } - - /// Add two position objects. - inline const position - operator- (const position& begin, const int width) - { - return begin + -width; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - inline std::ostream& - operator<< (std::ostream& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - -} -#endif // not BISON_POSITION_HH diff --git a/parser.src/include/stack.hh b/parser.src/include/stack.hh deleted file mode 100644 index d70f88c89..000000000 --- a/parser.src/include/stack.hh +++ /dev/null @@ -1,129 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Stack handling for Bison parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -#ifndef BISON_STACK_HH -# define BISON_STACK_HH - -#include - -namespace Dynare -{ - template > - class stack - { - public: - - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - - stack () : seq_ () - { - } - - stack (unsigned int n) : seq_ (n) - { - } - - inline - T& - operator [] (unsigned int i) - { - return seq_[i]; - } - - inline - const T& - operator [] (unsigned int i) const - { - return seq_[i]; - } - - inline - void - push (const T& t) - { - seq_.push_front (t); - } - - inline - void - pop (unsigned int n = 1) - { - for (; n; --n) - seq_.pop_front (); - } - - inline - unsigned int - height () const - { - return seq_.size (); - } - - inline const_iterator begin () const { return seq_.rbegin (); } - inline const_iterator end () const { return seq_.rend (); } - - private: - - S seq_; - }; - - /// Present a slice of the top of a stack. - template > - class slice - { - public: - - slice (const S& stack, - unsigned int range) : stack_ (stack), - range_ (range) - { - } - - inline - const T& - operator [] (unsigned int i) const - { - return stack_[range_ - i]; - } - - private: - - const S& stack_; - unsigned int range_; - }; -} - -#endif // not BISON_STACK_HH diff --git a/parser.src/macro/MacroBison.cc b/parser.src/macro/MacroBison.cc deleted file mode 100644 index 78ab3b078..000000000 --- a/parser.src/macro/MacroBison.cc +++ /dev/null @@ -1,829 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton implementation for Bison LALR(1) parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -// Take the name prefix into account. -#define yylex Macrolex - -#include "MacroBison.hh" - -/* User implementation prologue. */ -#line 54 "MacroBison.yy" - -#include "MacroDriver.hh" - -/* this "connects" the bison parser in the driver to the flex scanner class - * object. it defines the yylex() function call to pull the next token from the - * current lexer object of the driver context. */ -#undef yylex -#define yylex driver.lexer->lex - - -/* Line 317 of lalr1.cc. */ -#line 54 "MacroBison.cc" - -#ifndef YY_ -# if YYENABLE_NLS -# if ENABLE_NLS -# include /* FIXME: INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#define YYUSE(e) ((void) (e)) - -/* A pseudo ostream that takes yydebug_ into account. */ -# define YYCDEBUG \ - for (bool yydebugcond_ = yydebug_; yydebugcond_; yydebugcond_ = false) \ - (*yycdebug_) - -/* Enable debugging if requested. */ -#if YYDEBUG - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug_) \ - { \ - *yycdebug_ << Title << ' '; \ - yy_symbol_print_ ((Type), (Value), (Location)); \ - *yycdebug_ << std::endl; \ - } \ -} while (false) - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug_) \ - yy_reduce_print_ (Rule); \ -} while (false) - -# define YY_STACK_PRINT() \ -do { \ - if (yydebug_) \ - yystack_print_ (); \ -} while (false) - -#else /* !YYDEBUG */ - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_REDUCE_PRINT(Rule) -# define YY_STACK_PRINT() - -#endif /* !YYDEBUG */ - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - -namespace Macro -{ -#if YYERROR_VERBOSE - - /* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ - std::string - parser::yytnamerr_ (const char *yystr) - { - if (*yystr == '"') - { - std::string yyr = ""; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; - } - -#endif - - /// Build a parser object. - parser::parser (MacroDriver &driver_yyarg, ostream &out_yyarg) - : yydebug_ (false), - yycdebug_ (&std::cerr), - driver (driver_yyarg), - out (out_yyarg) - { - } - - parser::~parser () - { - } - -#if YYDEBUG - /*--------------------------------. - | Print this symbol on YYOUTPUT. | - `--------------------------------*/ - - inline void - parser::yy_symbol_value_print_ (int yytype, - const semantic_type* yyvaluep, const location_type* yylocationp) - { - YYUSE (yylocationp); - YYUSE (yyvaluep); - switch (yytype) - { - default: - break; - } - } - - - void - parser::yy_symbol_print_ (int yytype, - const semantic_type* yyvaluep, const location_type* yylocationp) - { - *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm") - << ' ' << yytname_[yytype] << " (" - << *yylocationp << ": "; - yy_symbol_value_print_ (yytype, yyvaluep, yylocationp); - *yycdebug_ << ')'; - } -#endif /* ! YYDEBUG */ - - void - parser::yydestruct_ (const char* yymsg, - int yytype, semantic_type* yyvaluep, location_type* yylocationp) - { - YYUSE (yylocationp); - YYUSE (yymsg); - YYUSE (yyvaluep); - - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - - default: - break; - } - } - - void - parser::yypop_ (unsigned int n) - { - yystate_stack_.pop (n); - yysemantic_stack_.pop (n); - yylocation_stack_.pop (n); - } - - 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; - } - - - int - parser::parse () - { - /// Look-ahead and look-ahead in internal form. - int yychar = yyempty_; - int yytoken = 0; - - /* State. */ - int yyn; - int yylen = 0; - int yystate = 0; - - /* Error handling. */ - int yynerrs_ = 0; - int yyerrstatus_ = 0; - - /// Semantic value of the look-ahead. - semantic_type yylval; - /// Location of the look-ahead. - location_type yylloc; - /// The locations where the error started and ended. - location yyerror_range[2]; - - /// $$. - semantic_type yyval; - /// @$. - location_type yyloc; - - int yyresult; - - YYCDEBUG << "Starting parse" << std::endl; - - - /* User initialization code. */ - #line 38 "MacroBison.yy" -{ - // Initialize the location filenames - yylloc.begin.filename = yylloc.end.filename = &driver.file; - // Output first @line statement - out << "@line \"" << driver.file << "\" 1" << endl; -} - /* Line 547 of yacc.c. */ -#line 294 "MacroBison.cc" - /* Initialize the stacks. The initial state will be pushed in - yynewstate, since the latter expects the semantical and the - location values to have been already stored, initialize these - stacks with a primary value. */ - yystate_stack_ = state_stack_type (0); - yysemantic_stack_ = semantic_stack_type (0); - yylocation_stack_ = location_stack_type (0); - yysemantic_stack_.push (yylval); - yylocation_stack_.push (yylloc); - - /* New state. */ - yynewstate: - yystate_stack_.push (yystate); - YYCDEBUG << "Entering state " << yystate << std::endl; - goto yybackup; - - /* Backup. */ - yybackup: - - /* Try to take a decision without look-ahead. */ - yyn = yypact_[yystate]; - if (yyn == yypact_ninf_) - goto yydefault; - - /* Read a look-ahead token. */ - if (yychar == yyempty_) - { - YYCDEBUG << "Reading a token: "; - yychar = yylex (&yylval, &yylloc, driver); - } - - - /* Convert token to internal form. */ - if (yychar <= yyeof_) - { - yychar = yytoken = yyeof_; - YYCDEBUG << "Now at end of input." << std::endl; - } - else - { - yytoken = yytranslate_ (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken) - goto yydefault; - - /* Reduce or error. */ - yyn = yytable_[yyn]; - if (yyn <= 0) - { - if (yyn == 0 || yyn == yytable_ninf_) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Accept? */ - if (yyn == yyfinal_) - goto yyacceptlab; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != yyeof_) - yychar = yyempty_; - - yysemantic_stack_.push (yylval); - yylocation_stack_.push (yylloc); - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus_) - --yyerrstatus_; - - yystate = yyn; - goto yynewstate; - - /*-----------------------------------------------------------. - | yydefault -- do the default action for the current state. | - `-----------------------------------------------------------*/ - yydefault: - yyn = yydefact_[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - /*-----------------------------. - | yyreduce -- Do a reduction. | - `-----------------------------*/ - yyreduce: - yylen = yyr2_[yyn]; - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. Otherwise, use the top of the stack. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. */ - if (yylen) - yyval = yysemantic_stack_[yylen - 1]; - else - yyval = yysemantic_stack_[0]; - - { - slice slice (yylocation_stack_, yylen); - YYLLOC_DEFAULT (yyloc, slice, yylen); - } - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - - /* Line 675 of lalr1.cc. */ -#line 411 "MacroBison.cc" - default: break; - } - YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc); - - yypop_ (yylen); - yylen = 0; - YY_STACK_PRINT (); - - yysemantic_stack_.push (yyval); - yylocation_stack_.push (yyloc); - - /* Shift the result of the reduction. */ - yyn = yyr1_[yyn]; - yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0]; - if (0 <= yystate && yystate <= yylast_ - && yycheck_[yystate] == yystate_stack_[0]) - yystate = yytable_[yystate]; - else - yystate = yydefgoto_[yyn - yyntokens_]; - goto yynewstate; - - /*------------------------------------. - | yyerrlab -- here on detecting error | - `------------------------------------*/ - yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus_) - { - ++yynerrs_; - error (yylloc, yysyntax_error_ (yystate, yytoken)); - } - - yyerror_range[0] = yylloc; - if (yyerrstatus_ == 3) - { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ - - if (yychar <= yyeof_) - { - /* Return failure if at end of input. */ - if (yychar == yyeof_) - YYABORT; - } - else - { - yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc); - yychar = yyempty_; - } - } - - /* Else will try to reuse look-ahead token after shifting the error - token. */ - goto yyerrlab1; - - - /*---------------------------------------------------. - | yyerrorlab -- error raised explicitly by YYERROR. | - `---------------------------------------------------*/ - yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (false) - goto yyerrorlab; - - yyerror_range[0] = yylocation_stack_[yylen - 1]; - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - yypop_ (yylen); - yylen = 0; - yystate = yystate_stack_[0]; - goto yyerrlab1; - - /*-------------------------------------------------------------. - | yyerrlab1 -- common code for both syntax error and YYERROR. | - `-------------------------------------------------------------*/ - yyerrlab1: - yyerrstatus_ = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact_[yystate]; - if (yyn != yypact_ninf_) - { - yyn += yyterror_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yystate_stack_.height () == 1) - YYABORT; - - yyerror_range[0] = yylocation_stack_[0]; - yydestruct_ ("Error: popping", - yystos_[yystate], - &yysemantic_stack_[0], &yylocation_stack_[0]); - yypop_ (); - yystate = yystate_stack_[0]; - YY_STACK_PRINT (); - } - - if (yyn == yyfinal_) - goto yyacceptlab; - - yyerror_range[1] = yylloc; - // Using YYLLOC is tempting, but would change the location of - // the look-ahead. YYLOC is available though. - YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); - yysemantic_stack_.push (yylval); - yylocation_stack_.push (yyloc); - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos_[yyn], - &yysemantic_stack_[0], &yylocation_stack_[0]); - - yystate = yyn; - goto yynewstate; - - /* Accept. */ - yyacceptlab: - yyresult = 0; - goto yyreturn; - - /* Abort. */ - yyabortlab: - yyresult = 1; - goto yyreturn; - - yyreturn: - if (yychar != yyeof_ && yychar != yyempty_) - yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); - - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - yypop_ (yylen); - while (yystate_stack_.height () != 1) - { - yydestruct_ ("Cleanup: popping", - yystos_[yystate_stack_[0]], - &yysemantic_stack_[0], - &yylocation_stack_[0]); - yypop_ (); - } - - return yyresult; - } - - // Generate an error message. - std::string - parser::yysyntax_error_ (int yystate, int tok) - { - std::string res; - YYUSE (yystate); -#if YYERROR_VERBOSE - int yyn = yypact_[yystate]; - if (yypact_ninf_ < yyn && yyn <= yylast_) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; - int count = 0; - for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != yyterror_) - ++count; - - // FIXME: This method of building the message is not compatible - // with internationalization. It should work like yacc.c does it. - // That is, first build a string that looks like this: - // "syntax error, unexpected %s or %s or %s" - // Then, invoke YY_ on this string. - // Finally, use the string as a format to output - // yytname_[tok], etc. - // Until this gets fixed, this message appears in English only. - res = "syntax error, unexpected "; - res += yytnamerr_ (yytname_[tok]); - if (count < 5) - { - count = 0; - for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != yyterror_) - { - res += (!count++) ? ", expecting " : " or "; - res += yytnamerr_ (yytname_[x]); - } - } - } - else -#endif - res = YY_("syntax error"); - return res; - } - - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ - const signed char parser::yypact_ninf_ = -1; - const signed char - parser::yypact_[] = - { - -1, 0, -1 - }; - - /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ - const unsigned char - parser::yydefact_[] = - { - 2, 0, 1 - }; - - /* YYPGOTO[NTERM-NUM]. */ - const signed char - parser::yypgoto_[] = - { - -1, -1 - }; - - /* YYDEFGOTO[NTERM-NUM]. */ - const signed char - parser::yydefgoto_[] = - { - -1, 1 - }; - - /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. */ - const signed char parser::yytable_ninf_ = -1; - const unsigned char - parser::yytable_[] = - { - 2 - }; - - /* YYCHECK. */ - const unsigned char - parser::yycheck_[] = - { - 0 - }; - - /* STOS_[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ - const unsigned char - parser::yystos_[] = - { - 0, 6, 0 - }; - -#if YYDEBUG - /* TOKEN_NUMBER_[YYLEX-NUM] -- Internal symbol number corresponding - to YYLEX-NUM. */ - const unsigned short int - parser::yytoken_number_[] = - { - 0, 256, 257, 258, 259 - }; -#endif - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ - const unsigned char - parser::yyr1_[] = - { - 0, 5, 6 - }; - - /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ - const unsigned char - parser::yyr2_[] = - { - 0, 2, 0 - }; - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE - /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at \a yyntokens_, nonterminals. */ - const char* - const parser::yytname_[] = - { - "$end", "error", "$undefined", "INT_NUMBER", "NAME", "$accept", - "statement_list_or_nothing", 0 - }; -#endif - -#if YYDEBUG - /* YYRHS -- A `-1'-separated list of the rules' RHS. */ - const parser::rhs_number_type - parser::yyrhs_[] = - { - 6, 0, -1, -1 - }; - - /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ - const unsigned char - parser::yyprhs_[] = - { - 0, 0, 3 - }; - - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ - const unsigned char - parser::yyrline_[] = - { - 0, 70, 70 - }; - - // Print the state stack on the debug stream. - void - parser::yystack_print_ () - { - *yycdebug_ << "Stack now"; - for (state_stack_type::const_iterator i = yystate_stack_.begin (); - i != yystate_stack_.end (); ++i) - *yycdebug_ << ' ' << *i; - *yycdebug_ << std::endl; - } - - // Report on the debug stream that the rule \a yyrule is going to be reduced. - void - parser::yy_reduce_print_ (int yyrule) - { - unsigned 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 << "), "; - /* The symbols being reduced. */ - for (int yyi = 0; yyi < yynrhs; yyi++) - YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", - yyrhs_[yyprhs_[yyrule] + yyi], - &(yysemantic_stack_[(yynrhs) - (yyi + 1)]), - &(yylocation_stack_[(yynrhs) - (yyi + 1)])); - } -#endif // YYDEBUG - - /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ - parser::token_number_type - parser::yytranslate_ (int t) - { - static - const token_number_type - translate_table[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4 - }; - if ((unsigned int) t <= yyuser_token_number_max_) - return translate_table[t]; - else - return yyundef_token_; - } - - const int parser::yyeof_ = 0; - const int parser::yylast_ = 0; - const int parser::yynnts_ = 2; - const int parser::yyempty_ = -2; - const int parser::yyfinal_ = 2; - const int parser::yyterror_ = 1; - const int parser::yyerrcode_ = 256; - const int parser::yyntokens_ = 5; - - const unsigned int parser::yyuser_token_number_max_ = 259; - const parser::token_number_type parser::yyundef_token_ = 2; - -} // namespace Macro - -#line 72 "MacroBison.yy" - - -void -Macro::parser::error(const Macro::parser::location_type &l, - const string &m) -{ - driver.error(l, m); -} - -/* - Local variables: - mode: C++ - End: -*/ - diff --git a/parser.src/macro/MacroBison.hh b/parser.src/macro/MacroBison.hh deleted file mode 100644 index 657b7b1d4..000000000 --- a/parser.src/macro/MacroBison.hh +++ /dev/null @@ -1,302 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton interface for Bison LALR(1) parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -/* C++ LALR(1) parser skeleton written by Akim Demaille. */ - -#ifndef PARSER_HEADER_H -# define PARSER_HEADER_H - -#include -#include -#include "stack.hh" - -namespace Macro -{ - class position; - class location; -} - -/* First part of user declarations. */ -#line 24 "MacroBison.yy" - -using namespace std; - -class MacroDriver; - - -/* Line 35 of lalr1.cc. */ -#line 60 "MacroBison.hh" - -#include "location.hh" - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 1 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - -/* 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 = (Rhs)[1].begin; \ - (Current).end = (Rhs)[N].end; \ - } \ - else \ - { \ - (Current).begin = (Current).end = (Rhs)[0].end; \ - } \ -} while (false) -#endif - -namespace Macro -{ - - /// A Bison parser. - class parser - { - public: - /// Symbol semantic values. -#ifndef YYSTYPE - union semantic_type -#line 49 "MacroBison.yy" -{ - string *string_val; - int int_val; -} -/* Line 35 of lalr1.cc. */ -#line 117 "MacroBison.hh" - ; -#else - typedef YYSTYPE semantic_type; -#endif - /// Symbol locations. - typedef location location_type; - /// Tokens. - struct token - { - /* Tokens. */ - enum yytokentype { - INT_NUMBER = 258, - NAME = 259 - }; - - }; - /// Token type. - typedef token::yytokentype token_type; - - /// Build a parser object. - parser (MacroDriver &driver_yyarg, ostream &out_yyarg); - virtual ~parser (); - - /// Parse. - /// \returns 0 iff parsing succeeded. - virtual int parse (); - - /// The current debugging stream. - std::ostream& debug_stream () const; - /// Set the current debugging stream. - void set_debug_stream (std::ostream &); - - /// Type for debugging levels. - typedef int debug_level_type; - /// The current debugging level. - debug_level_type debug_level () const; - /// Set the current debugging level. - void set_debug_level (debug_level_type l); - - private: - /// Report a syntax error. - /// \param loc where the syntax error is found. - /// \param msg a description of the syntax error. - virtual void error (const location_type& loc, const std::string& msg); - - /// Generate an error message. - /// \param state the state where the error occurred. - /// \param tok the look-ahead token. - virtual std::string yysyntax_error_ (int yystate, int tok); - -#if YYDEBUG - /// \brief Report a symbol value on the debug stream. - /// \param yytype The token type. - /// \param yyvaluep Its semantic value. - /// \param yylocationp Its location. - virtual void yy_symbol_value_print_ (int yytype, - const semantic_type* yyvaluep, - const location_type* yylocationp); - /// \brief Report a symbol on the debug stream. - /// \param yytype The token type. - /// \param yyvaluep Its semantic value. - /// \param yylocationp Its location. - virtual void yy_symbol_print_ (int yytype, - const semantic_type* yyvaluep, - const location_type* yylocationp); -#endif /* ! YYDEBUG */ - - - /// State numbers. - typedef int state_type; - /// State stack type. - typedef stack state_stack_type; - /// Semantic value stack type. - typedef stack semantic_stack_type; - /// location stack type. - typedef stack location_stack_type; - - /// The state stack. - state_stack_type yystate_stack_; - /// The semantic value stack. - semantic_stack_type yysemantic_stack_; - /// The location stack. - location_stack_type yylocation_stack_; - - /// Internal symbol numbers. - typedef unsigned char token_number_type; - /* Tables. */ - /// For a state, the index in \a yytable_ of its portion. - static const signed char yypact_[]; - static const signed char yypact_ninf_; - - /// For a state, default rule to reduce. - /// Unless\a yytable_ specifies something else to do. - /// Zero means the default is an error. - static const unsigned char yydefact_[]; - - static const signed char yypgoto_[]; - static const signed char yydefgoto_[]; - - /// What to do in a state. - /// \a yytable_[yypact_[s]]: what to do in state \a s. - /// - if positive, shift that token. - /// - if negative, reduce the rule which number is the opposite. - /// - if zero, do what YYDEFACT says. - static const unsigned char yytable_[]; - static const signed char yytable_ninf_; - - static const unsigned char yycheck_[]; - - /// For a state, its accessing symbol. - static const unsigned char yystos_[]; - - /// For a rule, its LHS. - static const unsigned char yyr1_[]; - /// For a rule, its RHS length. - static const unsigned char yyr2_[]; - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE - /// For a symbol, its name in clear. - static const char* const yytname_[]; -#endif - -#if YYERROR_VERBOSE - /// Convert the symbol name \a n to a form suitable for a diagnostic. - virtual std::string yytnamerr_ (const char *n); -#endif - -#if YYDEBUG - /// A type to store symbol numbers and -1. - typedef signed char rhs_number_type; - /// A `-1'-separated list of the rules' RHS. - static const rhs_number_type yyrhs_[]; - /// For each rule, the index of the first RHS symbol in \a yyrhs_. - static const unsigned char yyprhs_[]; - /// For each rule, its source line number. - static const unsigned char yyrline_[]; - /// For each scanner token number, its symbol number. - static const unsigned short int yytoken_number_[]; - /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r); - /// Print the state stack on the debug stream. - virtual void yystack_print_ (); -#endif - - /// Convert a scanner token number \a t to a symbol number. - token_number_type yytranslate_ (int t); - - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// \param yytype The symbol type. - /// \param yyvaluep Its semantic value. - /// \param yylocationp Its location. - inline void yydestruct_ (const char* yymsg, - int yytype, - semantic_type* yyvaluep, - location_type* yylocationp); - - /// Pop \a n symbols the three stacks. - inline void yypop_ (unsigned int n = 1); - - /* Constants. */ - static const int yyeof_; - /* LAST_ -- Last index in TABLE_. */ - static const int yylast_; - static const int yynnts_; - static const int yyempty_; - static const int yyfinal_; - static const int yyterror_; - static const int yyerrcode_; - static const int yyntokens_; - static const unsigned int yyuser_token_number_max_; - static const token_number_type yyundef_token_; - - /* Debugging. */ - int yydebug_; - std::ostream* yycdebug_; - - - /* User arguments. */ - MacroDriver &driver; - ostream &out; - }; -} - - -#endif /* ! defined PARSER_HEADER_H */ diff --git a/parser.src/macro/MacroFlex.cc b/parser.src/macro/MacroFlex.cc deleted file mode 100644 index 31edb3aeb..000000000 --- a/parser.src/macro/MacroFlex.cc +++ /dev/null @@ -1,1989 +0,0 @@ -#line 2 "MacroFlex.cc" - -#line 4 "MacroFlex.cc" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 33 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* %if-c++-only */ - /* The c++ scanner is a mess. The FlexLexer.h header file relies on the - * following macro. This is required in order to pass the c++-multiple-scanners - * test in the regression suite. We get reports that it breaks inheritance. - * We will address this in a future release of flex, or omit the C++ scanner - * altogether. - */ - #define yyFlexLexer MacroFlexLexer -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -/* %if-c-only */ -/* %endif */ - -/* %if-tables-serialization */ -/* %endif */ -/* end standard C headers. */ - -/* %if-c-or-c++ */ -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! FLEXINT_H */ - -/* %endif */ - -/* %if-c++-only */ -/* begin standard C++ headers. */ -#include -#include -#include -#include -/* end standard C++ headers. */ -/* %endif */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -#if __STDC__ - -#define YY_USE_CONST - -#endif /* __STDC__ */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* %not-for-header */ - -/* Returned upon end-of-file. */ -#define YY_NULL 0 -/* %ok-for-header */ - -/* %not-for-header */ - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) -/* %ok-for-header */ - -/* %if-reentrant */ -/* %endif */ - -/* %if-not-reentrant */ - -/* %endif */ - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -/* %if-not-reentrant */ -extern int yyleng; -/* %endif */ - -/* %if-c-only */ -/* %if-not-reentrant */ -/* %endif */ -/* %endif */ - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef unsigned int yy_size_t; -#endif - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { -/* %if-c-only */ -/* %endif */ - -/* %if-c++-only */ - std::istream* yy_input_file; -/* %endif */ - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* %if-c-only Standard (non-C++) definition */ -/* %not-for-header */ - -/* %if-not-reentrant */ -/* %endif */ -/* %ok-for-header */ - -/* %endif */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* %if-c-only Standard (non-C++) definition */ -/* %if-not-reentrant */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %endif */ -/* %endif */ - -void *Macroalloc (yy_size_t ); -void *Macrorealloc (void *,yy_size_t ); -void Macrofree (void * ); - -#define yy_new_buffer yy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ -/* Begin user sect3 */ - -#define yywrap() 1 -#define YY_SKIP_YYWRAP - -#define FLEX_DEBUG - -typedef unsigned char YY_CHAR; - -#define yytext_ptr yytext - -#include - -/* %if-c-only Standard (non-C++) definition */ -/* %endif */ - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ -/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ - yyleng = (size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ -/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ - (yy_c_buf_p) = yy_cp; - -/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 8 -#define YY_END_OF_BUFFER 9 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[35] = - { 0, - 0, 0, 3, 3, 0, 0, 9, 6, 5, 6, - 3, 8, 7, 7, 5, 0, 0, 3, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 2, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 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, 5, 1, 1, 6, 7, 8, 1, - 1, 1, 9, 1, 1, 10, 1, 11, 1, 1, - 1, 1, 1, 1, 12, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, - - 8, 1, 1, 1, 9, 1, 1, 10, 1, 11, - 1, 1, 1, 1, 1, 1, 12, 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, 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, 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 - } ; - -static yyconst flex_int32_t yy_meta[13] = - { 0, - 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1 - } ; - -static yyconst flex_int16_t yy_base[41] = - { 0, - 41, 0, 3, 5, 7, 9, 43, 45, 39, 5, - 0, 45, 45, 38, 37, 28, 29, 0, 34, 45, - 30, 24, 24, 25, 20, 28, 23, 26, 45, 9, - 0, 14, 45, 45, 18, 20, 22, 0, 24, 26 - } ; - -static yyconst flex_int16_t yy_def[41] = - { 0, - 35, 35, 36, 36, 37, 37, 34, 34, 34, 34, - 38, 34, 34, 39, 34, 34, 34, 38, 39, 34, - 34, 34, 34, 34, 34, 40, 34, 40, 34, 34, - 34, 34, 34, 0, 34, 34, 34, 34, 34, 34 - } ; - -static yyconst flex_int16_t yy_nxt[58] = - { 0, - 18, 32, 9, 34, 10, 12, 13, 12, 13, 12, - 14, 12, 14, 16, 17, 32, 31, 33, 8, 8, - 11, 11, 13, 13, 19, 19, 28, 28, 29, 30, - 29, 27, 26, 25, 24, 23, 20, 22, 21, 15, - 20, 15, 34, 9, 7, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34 - } ; - -static yyconst flex_int16_t yy_chk[58] = - { 0, - 38, 31, 2, 0, 2, 3, 3, 4, 4, 5, - 5, 6, 6, 10, 10, 32, 30, 32, 35, 35, - 36, 36, 37, 37, 39, 39, 40, 40, 28, 27, - 26, 25, 24, 23, 22, 21, 19, 17, 16, 15, - 14, 9, 7, 1, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34 - } ; - -static yyconst flex_int16_t yy_rule_linenum[8] = - { 0, - 65, 67, 69, 87, 110, 111, 113 - } ; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -#line 1 "MacroFlex.ll" -/* - * Copyright (C) 2008 Dynare Team - * - * This file is part of Dynare. - * - * Dynare 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. - * - * Dynare 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 Dynare. If not, see . - */ -#line 21 "MacroFlex.ll" -using namespace std; - -#include - -#include "MacroDriver.hh" -#include "MacroBison.hh" - -// Announce to Flex the prototype we want for lexing function -#define YY_DECL \ - Macro::parser::token_type \ - MacroFlex::lex(Macro::parser::semantic_type *yylval, \ - Macro::parser::location_type *yylloc, \ - MacroDriver &driver) - -// Shortcut to access tokens defined by Bison -typedef Macro::parser::token token; - -/* By default yylex returns int, we use token_type. - Unfortunately yyterminate by default returns 0, which is - not of token_type. */ -#define yyterminate() return Macro::parser::token_type (0); - - -#line 54 "MacroFlex.ll" -// Increments location counter for every token read -#define YY_USER_ACTION yylloc->columns(yyleng); -#line 548 "MacroFlex.cc" - -#define INITIAL 0 -#define INCLUDE 1 -#define END_INCLUDE 2 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -#include -/* %endif */ -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -/* %if-c-only Reentrant structure and macros (non-C++). */ -/* %if-reentrant */ -/* %if-c-only */ -/* %endif */ -/* %if-reentrant */ -/* %endif */ -/* %if-bison-bridge */ -/* %endif */ -/* %endif End reentrant structures and macros. */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %endif */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT -/* %if-c-only Standard (non-C++) definition */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %endif */ -#endif - -/* %if-c-only */ -/* %endif */ - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* %if-c-only Standard (non-C++) definition */ -/* %endif */ -/* %if-c++-only C++ definition */ -#define ECHO LexerOutput( yytext, yyleng ) -/* %endif */ -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ -/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\ -\ -/* %if-c++-only C++ definition \ */\ - if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); -/* %endif */ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -#define YY_FATAL_ERROR(msg) LexerError( msg ) -/* %endif */ -#endif - -/* %if-tables-serialization structures and prototypes */ -/* %not-for-header */ - -/* %ok-for-header */ - -/* %not-for-header */ - -/* %tables-yydmap generated elements */ -/* %endif */ -/* end tables serialization structures and prototypes */ - -/* %ok-for-header */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 -/* %if-c-only Standard (non-C++) definition */ -/* %endif */ -/* %if-c++-only C++ definition */ -#define YY_DECL int yyFlexLexer::yylex() -/* %endif */ -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -/* %% [6.0] YY_RULE_SETUP definition goes here */ -#define YY_RULE_SETUP \ - if ( yyleng > 0 ) \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ - (yytext[yyleng - 1] == '\n'); \ - YY_USER_ACTION - -/* %not-for-header */ - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -/* %% [7.0] user's declarations go here */ -#line 57 "MacroFlex.ll" - - /* Code put at the beginning of yylex() */ - - // Reset location before reading token - yylloc->step(); - - - /* Ignore @line declarations, replace them by a blank line */ -#line 719 "MacroFlex.cc" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! yyin ) -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - yyin = & std::cin; -/* %endif */ - - if ( ! yyout ) -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - yyout = & std::cout; -/* %endif */ - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { -/* %% [8.0] yymore()-related code goes here */ - yy_cp = (yy_c_buf_p); - - /* Support of yytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - -/* %% [9.0] code to set up and find next match goes here */ - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 35 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_current_state != 34 ); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - -yy_find_action: -/* %% [10.0] code to find the action number goes here */ - yy_act = yy_accept[yy_current_state]; - - YY_DO_BEFORE_ACTION; - -/* %% [11.0] code for yylineno update goes here */ - -do_action: /* This label is used only to access EOF actions. */ - -/* %% [12.0] debug code goes here */ - if ( yy_flex_debug ) - { - if ( yy_act == 0 ) - std::cerr << "--scanner backing up\n"; - else if ( yy_act < 8 ) - std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] << - "(\"" << yytext << "\")\n"; - else if ( yy_act == 8 ) - std::cerr << "--accepting default rule (\"" << yytext << "\")\n"; - else if ( yy_act == 9 ) - std::cerr << "--(end of buffer or a NUL)\n"; - else - std::cerr << "--EOF (start condition " << YY_START << ")\n"; - } - - switch ( yy_act ) - { /* beginning of action switch */ -/* %% [13.0] actions go here */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -/* rule 1 can match eol */ -YY_RULE_SETUP -#line 65 "MacroFlex.ll" -{ yylloc->lines(1); yylloc->step(); *yyout << endl; } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 67 "MacroFlex.ll" -BEGIN(INCLUDE); - YY_BREAK -case 3: -YY_RULE_SETUP -#line 69 "MacroFlex.ll" -{ - driver.ifs = new ifstream(yytext); - if (driver.ifs->fail()) - driver.error(*yylloc, "Could not open " + string(yytext)); - // Save old location - yylloc->step(); - driver.loc_stack.push(*yylloc); - // Reset location - yylloc->begin.filename = yylloc->end.filename = new string(yytext); - yylloc->begin.line = yylloc->end.line = 1; - yylloc->begin.column = yylloc->end.column = 0; - // Display @line - *yyout << "@line \"" << *yylloc->begin.filename << "\" 1" << endl; - // Switch to new buffer - yypush_buffer_state(yy_create_buffer(driver.ifs, YY_BUF_SIZE)); - BEGIN(INITIAL); - } - YY_BREAK -case 4: -/* rule 4 can match eol */ -YY_RULE_SETUP -#line 87 "MacroFlex.ll" -{ - yylloc->lines(1); - yylloc->step(); - *yyout << "@line \"" << *yylloc->begin.filename << "\" " - << yylloc->begin.line << endl; - BEGIN(INITIAL); - } - YY_BREAK -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(INCLUDE): -case YY_STATE_EOF(END_INCLUDE): -#line 95 "MacroFlex.ll" -{ - // Try to restore old flex buffer - yypop_buffer_state(); - if (!YY_CURRENT_BUFFER) - { - // Quit lexer if end of main file - yyterminate(); - } - // Else restore old location - delete yylloc->begin.filename; - *yylloc = driver.loc_stack.top(); - driver.loc_stack.pop(); - BEGIN(END_INCLUDE); - } - YY_BREAK -case 5: -/* rule 5 can match eol */ -YY_RULE_SETUP -#line 110 "MacroFlex.ll" -{ yylloc->lines(yyleng); yylloc->step(); ECHO; } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 111 "MacroFlex.ll" -{ yylloc->step(); ECHO; } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 113 "MacroFlex.ll" -{ driver.error(*yylloc, "Macro lexer error: '" + string(yytext) + "'"); } - YY_BREAK -case 8: -YY_RULE_SETUP -#line 114 "MacroFlex.ll" -ECHO; - YY_BREAK -#line 913 "MacroFlex.cc" - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { -/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of yylex */ -/* %ok-for-header */ - -/* %if-c++-only */ -/* %not-for-header */ - -yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) -{ - yyin = arg_yyin; - yyout = arg_yyout; - yy_c_buf_p = 0; - yy_init = 0; - yy_start = 0; - yy_flex_debug = 0; - yylineno = 1; // this will only get updated if %option yylineno - - yy_did_buffer_switch_on_eof = 0; - - yy_looking_for_trail_begin = 0; - yy_more_flag = 0; - yy_more_len = 0; - yy_more_offset = yy_prev_more_offset = 0; - - yy_start_stack_ptr = yy_start_stack_depth = 0; - yy_start_stack = NULL; - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - - yy_state_buf = 0; - -} - -void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out ) -{ - if ( new_in ) - { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); - } - - if ( new_out ) - yyout = new_out; -} - -#ifdef YY_INTERACTIVE -int yyFlexLexer::LexerInput( char* buf, int /* max_size */ ) -#else -int yyFlexLexer::LexerInput( char* buf, int max_size ) -#endif -{ - if ( yyin->eof() || yyin->fail() ) - return 0; - -#ifdef YY_INTERACTIVE - yyin->get( buf[0] ); - - if ( yyin->eof() ) - return 0; - - if ( yyin->bad() ) - return -1; - - return 1; - -#else - (void) yyin->read( buf, max_size ); - - if ( yyin->bad() ) - return -1; - else - return yyin->gcount(); -#endif -} - -void yyFlexLexer::LexerOutput( const char* buf, int size ) -{ - (void) yyout->write( buf, size ); -} -/* %ok-for-header */ - -/* %endif */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -int yyFlexLexer::yy_get_next_buffer() -/* %endif */ -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - Macrorealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - -/* %if-c-only */ -/* %not-for-header */ - -/* %endif */ -/* %if-c++-only */ - yy_state_type yyFlexLexer::yy_get_previous_state() -/* %endif */ -{ - register yy_state_type yy_current_state; - register char *yy_cp; - -/* %% [15.0] code to get the start state into yy_current_state goes here */ - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { -/* %% [16.0] code to find the next state goes here */ - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 35 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) -/* %endif */ -{ - register int yy_is_jam; - /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 35 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 34); - - return yy_is_jam ? 0 : yy_current_state; -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yyunput( int c, register char* yy_bp) -/* %endif */ -{ - register char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up yytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - -/* %% [18.0] update yylineno here */ - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - int yyFlexLexer::yyinput() -/* %endif */ -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap( ) ) - return EOF; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - -/* %% [19.0] update BOL and yylineno */ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); - - return c; -} -/* %if-c-only */ -/* %endif */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yyrestart( std::istream* input_file ) -/* %endif */ -{ - - if ( ! YY_CURRENT_BUFFER ){ - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) -/* %endif */ -{ - - /* TODO. We should be able to replace this entire function body - * with - * yypop_buffer_state(); - * yypush_buffer_state(new_buffer); - */ - yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_load_buffer_state() -/* %endif */ -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) -/* %endif */ -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) Macroalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) Macroalloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) -/* %endif */ -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - Macrofree((void *) b->yy_ch_buf ); - - Macrofree((void *) b ); -} - -/* %if-c-only */ -/* %endif */ - -/* %if-c++-only */ - -/* %endif */ - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) -/* %endif */ - -{ - int oerrno = errno; - - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then yy_init_buffer was _probably_ - * called from yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - b->yy_is_interactive = 0; -/* %endif */ - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) -/* %endif */ -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); -} - -/* %if-c-or-c++ */ -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer) -/* %endif */ -{ - if (new_buffer == NULL) - return; - - yyensure_buffer_stack(); - - /* This block is copied from yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} -/* %endif */ - -/* %if-c-or-c++ */ -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::yypop_buffer_state (void) -/* %endif */ -{ - if (!YY_CURRENT_BUFFER) - return; - - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} -/* %endif */ - -/* %if-c-or-c++ */ -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::yyensure_buffer_stack(void) -/* %endif */ -{ - int num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)Macroalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)Macrorealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_push_state( int new_state ) -/* %endif */ -{ - if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) - { - yy_size_t new_size; - - (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); - - if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) Macroalloc(new_size ); - - else - (yy_start_stack) = (int *) Macrorealloc((void *) (yy_start_stack),new_size ); - - if ( ! (yy_start_stack) ) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } - - (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - - BEGIN(new_state); -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - void yyFlexLexer::yy_pop_state() -/* %endif */ -{ - if ( --(yy_start_stack_ptr) < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); -} - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ - int yyFlexLexer::yy_top_state() -/* %endif */ -{ - return (yy_start_stack)[(yy_start_stack_ptr) - 1]; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -void yyFlexLexer::LexerError( yyconst char msg[] ) -{ - std::cerr << msg << std::endl; - exit( YY_EXIT_FAILURE ); -} -/* %endif */ - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/* %if-c-only */ -/* %if-reentrant */ -/* %endif */ -/* %if-reentrant */ -/* %endif */ -/* %endif */ - -/* %if-reentrant */ -/* %if-bison-bridge */ -/* %endif */ -/* %endif */ - -/* %if-c-only */ -/* %endif */ - -/* %if-c-or-c++ */ -/* %if-c-only */ -/* %endif */ -/* %if-c++-only */ -yyFlexLexer::~yyFlexLexer() -/* %endif */ -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - Macrofree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - -/* %if-c++-only */ - delete [] (yy_state_buf); - Macrofree((yy_start_stack) ); -/* %endif */ - -/* %if-c-only */ -/* %if-reentrant */ -/* %endif */ -/* %endif */ -} -/* %endif */ - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *Macroalloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *Macrorealloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void Macrofree (void * ptr ) -{ - free( (char *) ptr ); /* see Macrorealloc() for (char *) cast */ -} - -/* %if-tables-serialization definitions */ -/* %define-yytables The name for this specific scanner's tables. */ -#define YYTABLES_NAME "yytables" -/* %endif */ - -/* %ok-for-header */ - -#line 114 "MacroFlex.ll" - - - -MacroFlex::MacroFlex(istream* in, ostream* out) - : MacroFlexLexer(in, out) -{ -} - -/* This implementation of MacroFlexLexer::yylex() is required to fill the - * vtable of the class MacroFlexLexer. We define the scanner's main yylex - * function via YY_DECL to reside in the MacroFlex class instead. */ - -#ifdef yylex -# undef yylex -#endif - -int -MacroFlexLexer::yylex() -{ - cerr << "MacroFlexLexer::yylex() has been called, that should never happen!" << endl; - exit(-1); -} - -/* - Local variables: - mode: C++ - End: -*/ - diff --git a/parser.src/macro/Makefile b/parser.src/macro/Makefile index ec838f3e2..e7c5084b3 100644 --- a/parser.src/macro/Makefile +++ b/parser.src/macro/Makefile @@ -14,9 +14,14 @@ MacroBison.cc MacroBison.hh: MacroBison.yy MacroDriver.hh bison --verbose -o MacroBison.cc MacroBison.yy clean: - rm -f *.o *.P *~ MacroBison.output MacroFlex.cc libmacro.a + rm -f *.o *.P *~ \ + MacroFlex.cc \ + MacroBison.output \ + MacroBison.cc \ + MacroBison.hh \ + location.hh \ + stack.hh \ + position.hh \ + libmacro.a -distclean: clean - rm -f MacroBison.cc MacroBison.hh location.hh stack.hh position.hh - -.PHONY: clean distclean +.PHONY: clean diff --git a/parser.src/macro/location.hh b/parser.src/macro/location.hh deleted file mode 100644 index c64a0d5b9..000000000 --- a/parser.src/macro/location.hh +++ /dev/null @@ -1,145 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Locations for Bison parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -/** - ** \file location.hh - ** Define the Macro::location class. - */ - -#ifndef BISON_LOCATION_HH -# define BISON_LOCATION_HH - -# include -# include -# include "position.hh" - -namespace Macro -{ - - /// Abstract a location. - class location - { - public: - - /// Construct a location. - location () - : begin (), end () - { - } - - - /// Initialization. - inline void initialize (std::string* fn) - { - begin.initialize (fn); - end = begin; - } - - /** \name Line and Column related manipulators - ** \{ */ - public: - /// Reset initial location to final location. - inline void step () - { - begin = end; - } - - /// Extend the current location to the COUNT next columns. - inline void columns (unsigned int count = 1) - { - end += count; - } - - /// Extend the current location to the COUNT next lines. - inline void lines (unsigned int count = 1) - { - end.lines (count); - } - /** \} */ - - - public: - /// Beginning of the located region. - position begin; - /// End of the located region. - position end; - }; - - /// Join two location objects to create a location. - inline const location operator+ (const location& begin, const location& end) - { - location res = begin; - res.end = end.end; - return res; - } - - /// Add two location objects. - inline const location operator+ (const location& begin, unsigned int width) - { - location res = begin; - res.columns (width); - return res; - } - - /// Add and assign a location. - inline location& operator+= (location& res, unsigned int width) - { - res.columns (width); - return res; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param loc a reference to the location to redirect - ** - ** Avoid duplicate information. - */ - inline std::ostream& operator<< (std::ostream& ostr, const location& loc) - { - position last = loc.end - 1; - ostr << loc.begin; - if (last.filename - && (!loc.begin.filename - || *loc.begin.filename != *last.filename)) - ostr << '-' << last; - else if (loc.begin.line != last.line) - ostr << '-' << last.line << '.' << last.column; - else if (loc.begin.column != last.column) - ostr << '-' << last.column; - return ostr; - } - -} - -#endif // not BISON_LOCATION_HH diff --git a/parser.src/macro/position.hh b/parser.src/macro/position.hh deleted file mode 100644 index 91402387e..000000000 --- a/parser.src/macro/position.hh +++ /dev/null @@ -1,142 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Positions for Bison parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -/** - ** \file position.hh - ** Define the Macro::position class. - */ - -#ifndef BISON_POSITION_HH -# define BISON_POSITION_HH - -# include -# include - -namespace Macro -{ - /// Abstract a position. - class position - { - public: - - /// Construct a position. - position () - : filename (0), line (1), column (0) - { - } - - - /// Initialization. - inline void initialize (std::string* fn) - { - filename = fn; - line = 1; - column = 0; - } - - /** \name Line and Column related manipulators - ** \{ */ - public: - /// (line related) Advance to the COUNT next lines. - inline void lines (int count = 1) - { - column = 0; - line += count; - } - - /// (column related) Advance to the COUNT next columns. - inline void columns (int count = 1) - { - int leftmost = 0; - int current = column; - if (leftmost <= current + count) - column += count; - else - column = 0; - } - /** \} */ - - public: - /// File name to which this position refers. - std::string* filename; - /// Current line number. - unsigned int line; - /// Current column number. - unsigned int column; - }; - - /// Add and assign a position. - inline const position& - operator+= (position& res, const int width) - { - res.columns (width); - return res; - } - - /// Add two position objects. - inline const position - operator+ (const position& begin, const int width) - { - position res = begin; - return res += width; - } - - /// Add and assign a position. - inline const position& - operator-= (position& res, const int width) - { - return res += -width; - } - - /// Add two position objects. - inline const position - operator- (const position& begin, const int width) - { - return begin + -width; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - inline std::ostream& - operator<< (std::ostream& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - -} -#endif // not BISON_POSITION_HH diff --git a/parser.src/macro/stack.hh b/parser.src/macro/stack.hh deleted file mode 100644 index b4f0fe5c2..000000000 --- a/parser.src/macro/stack.hh +++ /dev/null @@ -1,129 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Stack handling for Bison parsers in C++ - - Copyright (C) 2002, 2003, 2004, 2005, 2006 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 2, 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* 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. */ - -#ifndef BISON_STACK_HH -# define BISON_STACK_HH - -#include - -namespace Macro -{ - template > - class stack - { - public: - - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - - stack () : seq_ () - { - } - - stack (unsigned int n) : seq_ (n) - { - } - - inline - T& - operator [] (unsigned int i) - { - return seq_[i]; - } - - inline - const T& - operator [] (unsigned int i) const - { - return seq_[i]; - } - - inline - void - push (const T& t) - { - seq_.push_front (t); - } - - inline - void - pop (unsigned int n = 1) - { - for (; n; --n) - seq_.pop_front (); - } - - inline - unsigned int - height () const - { - return seq_.size (); - } - - inline const_iterator begin () const { return seq_.rbegin (); } - inline const_iterator end () const { return seq_.rend (); } - - private: - - S seq_; - }; - - /// Present a slice of the top of a stack. - template > - class slice - { - public: - - slice (const S& stack, - unsigned int range) : stack_ (stack), - range_ (range) - { - } - - inline - const T& - operator [] (unsigned int i) const - { - return stack_[range_ - i]; - } - - private: - - const S& stack_; - unsigned int range_; - }; -} - -#endif // not BISON_STACK_HH