From 325cb400b0fd9313aff514ae0b85d18595e0e2ae Mon Sep 17 00:00:00 2001 From: "Prof. Ronald Moore" <ronald.moore@h-da.de> Date: Wed, 29 Apr 2020 16:03:20 +0200 Subject: [PATCH] cleaned up --- flexBison/cplusplus/calc++ | Bin 143456 -> 0 bytes flexBison/cplusplus/calc++.o | Bin 17544 -> 0 bytes flexBison/cplusplus/driver.o | Bin 60632 -> 0 bytes flexBison/cplusplus/location.hh | 332 ----- flexBison/cplusplus/parser.cc | 1098 --------------- flexBison/cplusplus/parser.hh | 1362 ------------------ flexBison/cplusplus/parser.o | Bin 163032 -> 0 bytes flexBison/cplusplus/parser.output | 289 ---- flexBison/cplusplus/scanner.cc | 2196 ----------------------------- flexBison/cplusplus/scanner.o | Bin 57568 -> 0 bytes 10 files changed, 5277 deletions(-) delete mode 100755 flexBison/cplusplus/calc++ delete mode 100644 flexBison/cplusplus/calc++.o delete mode 100644 flexBison/cplusplus/driver.o delete mode 100644 flexBison/cplusplus/location.hh delete mode 100644 flexBison/cplusplus/parser.cc delete mode 100644 flexBison/cplusplus/parser.hh delete mode 100644 flexBison/cplusplus/parser.o delete mode 100644 flexBison/cplusplus/parser.output delete mode 100644 flexBison/cplusplus/scanner.cc delete mode 100644 flexBison/cplusplus/scanner.o diff --git a/flexBison/cplusplus/calc++ b/flexBison/cplusplus/calc++ deleted file mode 100755 index b65d3a79de8db4bf84eb926f2c9e03b0f3dd29f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143456 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 diff --git a/flexBison/cplusplus/calc++.o b/flexBison/cplusplus/calc++.o deleted file mode 100644 index 61ad797437a86960c2fc9dd085103341c82ac63a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17544 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 M4g%=|#Xq|J0Iid@p8x;= diff --git a/flexBison/cplusplus/driver.o b/flexBison/cplusplus/driver.o deleted file mode 100644 index e99f7beda55668257bd1bbdb4596af755814a470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60632 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 diff --git a/flexBison/cplusplus/location.hh b/flexBison/cplusplus/location.hh deleted file mode 100644 index 24328f4..0000000 --- a/flexBison/cplusplus/location.hh +++ /dev/null @@ -1,332 +0,0 @@ -// A Bison parser, made by GNU Bison 3.5.4. - -// Locations for Bison parsers in C++ - -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -// As a special exception, you may create a larger work that contains -// part or all of the Bison parser skeleton and distribute that work -// under terms of your choice, so long as that work isn't itself a -// parser generator using the skeleton or a modified version thereof -// as a parser skeleton. Alternatively, if you modify or redistribute -// the parser skeleton itself, you may (at your option) remove this -// special exception, which will cause the skeleton and the resulting -// Bison output files to be licensed under the GNU General Public -// License without this special exception. - -// This special exception was added by the Free Software Foundation in -// version 2.2 of Bison. - -/** - ** \file location.hh - ** Define the yy::location class. - */ - -#ifndef YY_YY_LOCATION_HH_INCLUDED -# define YY_YY_LOCATION_HH_INCLUDED - -# include <iostream> -# include <string> - -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -namespace yy { -#line 58 "location.hh" - - /// A point in a source file. - class position - { - public: - /// Type for line and column numbers. - typedef int counter_type; - - /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - { - filename = fn; - line = l; - column = c; - } - - /** \name Line and Column related manipulators - ** \{ */ - /// (line related) Advance to the COUNT next lines. - void lines (counter_type count = 1) - { - if (count) - { - column = 1; - line = add_ (line, count, 1); - } - } - - /// (column related) Advance to the COUNT next columns. - void columns (counter_type count = 1) - { - column = add_ (column, count, 1); - } - /** \} */ - - /// File name to which this position refers. - std::string* filename; - /// Current line number. - counter_type line; - /// Current column number. - counter_type column; - - private: - /// Compute max (min, lhs+rhs). - static counter_type add_ (counter_type lhs, counter_type rhs, counter_type min) - { - return lhs + rhs < min ? min : lhs + rhs; - } - }; - - /// Add \a width columns, in place. - inline position& - operator+= (position& res, position::counter_type width) - { - res.columns (width); - return res; - } - - /// Add \a width columns. - inline position - operator+ (position res, position::counter_type width) - { - return res += width; - } - - /// Subtract \a width columns, in place. - inline position& - operator-= (position& res, position::counter_type width) - { - return res += -width; - } - - /// Subtract \a width columns. - inline position - operator- (position res, position::counter_type width) - { - return res -= width; - } - - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template <typename YYChar> - std::basic_ostream<YYChar>& - operator<< (std::basic_ostream<YYChar>& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - - /// Two points in a source file. - class location - { - public: - /// Type for line and column numbers. - typedef position::counter_type counter_type; - - /// Construct a location from \a b to \a e. - location (const position& b, const position& e) - : begin (b) - , end (e) - {} - - /// Construct a 0-width location in \a p. - explicit location (const position& p = position ()) - : begin (p) - , end (p) - {} - - /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, - counter_type l = 1, - counter_type c = 1) - : begin (f, l, c) - , end (f, l, c) - {} - - - /// Initialization. - void initialize (std::string* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - { - begin.initialize (f, l, c); - end = begin; - } - - /** \name Line and Column related manipulators - ** \{ */ - public: - /// Reset initial location to final location. - void step () - { - begin = end; - } - - /// Extend the current location to the COUNT next columns. - void columns (counter_type count = 1) - { - end += count; - } - - /// Extend the current location to the COUNT next lines. - void lines (counter_type count = 1) - { - end.lines (count); - } - /** \} */ - - - public: - /// Beginning of the located region. - position begin; - /// End of the located region. - position end; - }; - - /// Join two locations, in place. - inline location& - operator+= (location& res, const location& end) - { - res.end = end.end; - return res; - } - - /// Join two locations. - inline location - operator+ (location res, const location& end) - { - return res += end; - } - - /// Add \a width columns to the end position, in place. - inline location& - operator+= (location& res, location::counter_type width) - { - res.columns (width); - return res; - } - - /// Add \a width columns to the end position. - inline location - operator+ (location res, location::counter_type width) - { - return res += width; - } - - /// Subtract \a width columns to the end position, in place. - inline location& - operator-= (location& res, location::counter_type width) - { - return res += -width; - } - - /// Subtract \a width columns to the end position. - inline location - operator- (location res, location::counter_type width) - { - return res -= width; - } - - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param loc a reference to the location to redirect - ** - ** Avoid duplicate information. - */ - template <typename YYChar> - std::basic_ostream<YYChar>& - operator<< (std::basic_ostream<YYChar>& ostr, const location& loc) - { - location::counter_type end_col - = 0 < loc.end.column ? loc.end.column - 1 : 0; - ostr << loc.begin; - if (loc.end.filename - && (!loc.begin.filename - || *loc.begin.filename != *loc.end.filename)) - ostr << '-' << loc.end.filename << ':' << loc.end.line << '.' << end_col; - else if (loc.begin.line < loc.end.line) - ostr << '-' << loc.end.line << '.' << end_col; - else if (loc.begin.column < end_col) - ostr << '-' << end_col; - return ostr; - } - -} // yy -#line 331 "location.hh" - -#endif // !YY_YY_LOCATION_HH_INCLUDED diff --git a/flexBison/cplusplus/parser.cc b/flexBison/cplusplus/parser.cc deleted file mode 100644 index bf1d481..0000000 --- a/flexBison/cplusplus/parser.cc +++ /dev/null @@ -1,1098 +0,0 @@ -// A Bison parser, made by GNU Bison 3.5.4. - -// Skeleton implementation for Bison LALR(1) parsers in C++ - -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -// As a special exception, you may create a larger work that contains -// part or all of the Bison parser skeleton and distribute that work -// under terms of your choice, so long as that work isn't itself a -// parser generator using the skeleton or a modified version thereof -// as a parser skeleton. Alternatively, if you modify or redistribute -// the parser skeleton itself, you may (at your option) remove this -// special exception, which will cause the skeleton and the resulting -// Bison output files to be licensed under the GNU General Public -// License without this special exception. - -// This special exception was added by the Free Software Foundation in -// version 2.2 of Bison. - -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - - - - - -#include "parser.hh" - - -// Unqualified %code blocks. -#line 23 "parser.yy" - -# include "driver.hh" - -#line 49 "parser.cc" - - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE. -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -// Whether we are compiled with exception support. -#ifndef YY_EXCEPTIONS -# if defined __GNUC__ && !defined __EXCEPTIONS -# define YY_EXCEPTIONS 0 -# else -# define YY_EXCEPTIONS 1 -# endif -#endif - -#define YYRHSLOC(Rhs, K) ((Rhs)[K].location) -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -# ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (N) \ - { \ - (Current).begin = YYRHSLOC (Rhs, 1).begin; \ - (Current).end = YYRHSLOC (Rhs, N).end; \ - } \ - else \ - { \ - (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ - } \ - while (false) -# endif - - -// Enable debugging if requested. -#if YYDEBUG - -// A pseudo ostream that takes yydebug_ into account. -# define YYCDEBUG if (yydebug_) (*yycdebug_) - -# define YY_SYMBOL_PRINT(Title, Symbol) \ - do { \ - if (yydebug_) \ - { \ - *yycdebug_ << Title << ' '; \ - yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << '\n'; \ - } \ - } while (false) - -# define YY_REDUCE_PRINT(Rule) \ - do { \ - if (yydebug_) \ - yy_reduce_print_ (Rule); \ - } while (false) - -# define YY_STACK_PRINT() \ - do { \ - if (yydebug_) \ - yystack_print_ (); \ - } while (false) - -#else // !YYDEBUG - -# define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast<void> (0) -# define YY_STACK_PRINT() static_cast<void> (0) - -#endif // !YYDEBUG - -#define yyerrok (yyerrstatus_ = 0) -#define yyclearin (yyla.clear ()) - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab -#define YYRECOVERING() (!!yyerrstatus_) - -namespace yy { -#line 140 "parser.cc" - - - /* 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; - else - goto append; - - append: - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; - } - - - /// Build a parser object. - parser::parser (driver& drv_yyarg) -#if YYDEBUG - : yydebug_ (false), - yycdebug_ (&std::cerr), -#else - : -#endif - drv (drv_yyarg) - {} - - parser::~parser () - {} - - parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} - - /*---------------. - | Symbol types. | - `---------------*/ - - - - // by_state. - parser::by_state::by_state () YY_NOEXCEPT - : state (empty_state) - {} - - parser::by_state::by_state (const by_state& that) YY_NOEXCEPT - : state (that.state) - {} - - void - parser::by_state::clear () YY_NOEXCEPT - { - state = empty_state; - } - - void - parser::by_state::move (by_state& that) - { - state = that.state; - that.clear (); - } - - parser::by_state::by_state (state_type s) YY_NOEXCEPT - : state (s) - {} - - parser::symbol_number_type - parser::by_state::type_get () const YY_NOEXCEPT - { - if (state == empty_state) - return empty_symbol; - else - return yystos_[+state]; - } - - parser::stack_symbol_type::stack_symbol_type () - {} - - parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) - : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) - { - switch (that.type_get ()) - { - case 11: // "number" - case 13: // exp - value.YY_MOVE_OR_COPY< int > (YY_MOVE (that.value)); - break; - - case 10: // "identifier" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - -#if 201103L <= YY_CPLUSPLUS - // that is emptied. - that.state = empty_state; -#endif - } - - parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) - : super_type (s, YY_MOVE (that.location)) - { - switch (that.type_get ()) - { - case 11: // "number" - case 13: // exp - value.move< int > (YY_MOVE (that.value)); - break; - - case 10: // "identifier" - value.move< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - - // that is emptied. - that.type = empty_symbol; - } - -#if YY_CPLUSPLUS < 201103L - parser::stack_symbol_type& - parser::stack_symbol_type::operator= (const stack_symbol_type& that) - { - state = that.state; - switch (that.type_get ()) - { - case 11: // "number" - case 13: // exp - value.copy< int > (that.value); - break; - - case 10: // "identifier" - value.copy< std::string > (that.value); - break; - - default: - break; - } - - location = that.location; - return *this; - } - - parser::stack_symbol_type& - parser::stack_symbol_type::operator= (stack_symbol_type& that) - { - state = that.state; - switch (that.type_get ()) - { - case 11: // "number" - case 13: // exp - value.move< int > (that.value); - break; - - case 10: // "identifier" - value.move< std::string > (that.value); - break; - - default: - break; - } - - location = that.location; - // that is emptied. - that.state = empty_state; - return *this; - } -#endif - - template <typename Base> - void - parser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const - { - if (yymsg) - YY_SYMBOL_PRINT (yymsg, yysym); - } - -#if YYDEBUG - template <typename Base> - void - parser::yy_print_ (std::ostream& yyo, - const basic_symbol<Base>& yysym) const - { - std::ostream& yyoutput = yyo; - YYUSE (yyoutput); - symbol_number_type yytype = yysym.type_get (); -#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408 - // Avoid a (spurious) G++ 4.8 warning about "array subscript is - // below array bounds". - if (yysym.empty ()) - std::abort (); -#endif - yyo << (yytype < yyntokens_ ? "token" : "nterm") - << ' ' << yytname_[yytype] << " (" - << yysym.location << ": "; - switch (yytype) - { - case 10: // "identifier" -#line 43 "parser.yy" - { yyo << yysym.value.template as < std::string > (); } -#line 372 "parser.cc" - break; - - case 11: // "number" -#line 43 "parser.yy" - { yyo << yysym.value.template as < int > (); } -#line 378 "parser.cc" - break; - - case 13: // exp -#line 43 "parser.yy" - { yyo << yysym.value.template as < int > (); } -#line 384 "parser.cc" - break; - - default: - break; - } - yyo << ')'; - } -#endif - - void - parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) - { - if (m) - YY_SYMBOL_PRINT (m, sym); - yystack_.push (YY_MOVE (sym)); - } - - void - parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) - { -#if 201103L <= YY_CPLUSPLUS - yypush_ (m, stack_symbol_type (s, std::move (sym))); -#else - stack_symbol_type ss (s, sym); - yypush_ (m, ss); -#endif - } - - void - parser::yypop_ (int n) - { - yystack_.pop (n); - } - -#if YYDEBUG - std::ostream& - parser::debug_stream () const - { - return *yycdebug_; - } - - void - parser::set_debug_stream (std::ostream& o) - { - yycdebug_ = &o; - } - - - parser::debug_level_type - parser::debug_level () const - { - return yydebug_; - } - - void - parser::set_debug_level (debug_level_type l) - { - yydebug_ = l; - } -#endif // YYDEBUG - - parser::state_type - parser::yy_lr_goto_state_ (state_type yystate, int yysym) - { - int yyr = yypgoto_[yysym - yyntokens_] + yystate; - if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) - return yytable_[yyr]; - else - return yydefgoto_[yysym - yyntokens_]; - } - - bool - parser::yy_pact_value_is_default_ (int yyvalue) - { - return yyvalue == yypact_ninf_; - } - - bool - parser::yy_table_value_is_error_ (int yyvalue) - { - return yyvalue == yytable_ninf_; - } - - int - parser::operator() () - { - return parse (); - } - - int - parser::parse () - { - int yyn; - /// Length of the RHS of the rule being reduced. - int yylen = 0; - - // Error handling. - int yynerrs_ = 0; - int yyerrstatus_ = 0; - - /// The lookahead symbol. - symbol_type yyla; - - /// The locations where the error started and ended. - stack_symbol_type yyerror_range[3]; - - /// The return value of parse (). - int yyresult; - -#if YY_EXCEPTIONS - try -#endif // YY_EXCEPTIONS - { - YYCDEBUG << "Starting parse\n"; - - - /* Initialize the stack. The initial state will be set in - yynewstate, since the latter expects the semantical and the - location values to have been already stored, initialize these - stacks with a primary value. */ - yystack_.clear (); - yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); - - /*-----------------------------------------------. - | yynewstate -- push a new symbol on the stack. | - `-----------------------------------------------*/ - yynewstate: - YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; - - // Accept? - if (yystack_[0].state == yyfinal_) - YYACCEPT; - - goto yybackup; - - - /*-----------. - | yybackup. | - `-----------*/ - yybackup: - // Try to take a decision without lookahead. - yyn = yypact_[+yystack_[0].state]; - if (yy_pact_value_is_default_ (yyn)) - goto yydefault; - - // Read a lookahead token. - if (yyla.empty ()) - { - YYCDEBUG << "Reading a token: "; -#if YY_EXCEPTIONS - try -#endif // YY_EXCEPTIONS - { - symbol_type yylookahead (yylex (drv)); - yyla.move (yylookahead); - } -#if YY_EXCEPTIONS - catch (const syntax_error& yyexc) - { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; - error (yyexc); - goto yyerrlab1; - } -#endif // YY_EXCEPTIONS - } - YY_SYMBOL_PRINT ("Next token is", yyla); - - /* If the proper action on seeing token YYLA.TYPE is to reduce or - to detect an error, take that action. */ - yyn += yyla.type_get (); - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) - { - goto yydefault; - } - - // Reduce or error. - yyn = yytable_[yyn]; - if (yyn <= 0) - { - if (yy_table_value_is_error_ (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - // Count tokens shifted since error; after three, turn off error status. - if (yyerrstatus_) - --yyerrstatus_; - - // Shift the lookahead token. - yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); - goto yynewstate; - - - /*-----------------------------------------------------------. - | yydefault -- do the default action for the current state. | - `-----------------------------------------------------------*/ - yydefault: - yyn = yydefact_[+yystack_[0].state]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - - /*-----------------------------. - | yyreduce -- do a reduction. | - `-----------------------------*/ - yyreduce: - yylen = yyr2_[yyn]; - { - stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); - /* Variants are always initialized to an empty instance of the - correct type. The default '$$ = $1' action is NOT applied - when using variants. */ - switch (yyr1_[yyn]) - { - case 11: // "number" - case 13: // exp - yylhs.value.emplace< int > (); - break; - - case 10: // "identifier" - yylhs.value.emplace< std::string > (); - break; - - default: - break; - } - - - // Default location. - { - stack_type::slice range (yystack_, yylen); - YYLLOC_DEFAULT (yylhs.location, range, yylen); - yyerror_range[1].location = yylhs.location; - } - - // Perform the reduction. - YY_REDUCE_PRINT (yyn); -#if YY_EXCEPTIONS - try -#endif // YY_EXCEPTIONS - { - switch (yyn) - { - case 2: -#line 47 "parser.yy" - { drv.result = yystack_[0].value.as < int > (); } -#line 634 "parser.cc" - break; - - case 3: -#line 50 "parser.yy" - {} -#line 640 "parser.cc" - break; - - case 4: -#line 51 "parser.yy" - {} -#line 646 "parser.cc" - break; - - case 5: -#line 54 "parser.yy" - { drv.variables[yystack_[2].value.as < std::string > ()] = yystack_[0].value.as < int > (); } -#line 652 "parser.cc" - break; - - case 6: -#line 59 "parser.yy" - { yylhs.value.as < int > () = yystack_[0].value.as < int > (); } -#line 658 "parser.cc" - break; - - case 7: -#line 60 "parser.yy" - { yylhs.value.as < int > () = drv.variables[yystack_[0].value.as < std::string > ()]; } -#line 664 "parser.cc" - break; - - case 8: -#line 61 "parser.yy" - { yylhs.value.as < int > () = yystack_[2].value.as < int > () + yystack_[0].value.as < int > (); } -#line 670 "parser.cc" - break; - - case 9: -#line 62 "parser.yy" - { yylhs.value.as < int > () = yystack_[2].value.as < int > () - yystack_[0].value.as < int > (); } -#line 676 "parser.cc" - break; - - case 10: -#line 63 "parser.yy" - { yylhs.value.as < int > () = yystack_[2].value.as < int > () * yystack_[0].value.as < int > (); } -#line 682 "parser.cc" - break; - - case 11: -#line 64 "parser.yy" - { yylhs.value.as < int > () = yystack_[2].value.as < int > () / yystack_[0].value.as < int > (); } -#line 688 "parser.cc" - break; - - case 12: -#line 65 "parser.yy" - { yylhs.value.as < int > () = yystack_[1].value.as < int > (); } -#line 694 "parser.cc" - break; - - -#line 698 "parser.cc" - - default: - break; - } - } -#if YY_EXCEPTIONS - catch (const syntax_error& yyexc) - { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; - error (yyexc); - YYERROR; - } -#endif // YY_EXCEPTIONS - YY_SYMBOL_PRINT ("-> $$ =", yylhs); - yypop_ (yylen); - yylen = 0; - YY_STACK_PRINT (); - - // Shift the result of the reduction. - yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); - } - goto yynewstate; - - - /*--------------------------------------. - | yyerrlab -- here on detecting error. | - `--------------------------------------*/ - yyerrlab: - // If not already recovering from an error, report this error. - if (!yyerrstatus_) - { - ++yynerrs_; - error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); - } - - - yyerror_range[1].location = yyla.location; - if (yyerrstatus_ == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - // Return failure if at end of input. - if (yyla.type_get () == yyeof_) - YYABORT; - else if (!yyla.empty ()) - { - yy_destroy_ ("Error: discarding", yyla); - yyla.clear (); - } - } - - // Else will try to reuse lookahead token after shifting the error token. - goto yyerrlab1; - - - /*---------------------------------------------------. - | yyerrorlab -- error raised explicitly by YYERROR. | - `---------------------------------------------------*/ - yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and - the label yyerrorlab therefore never appears in user code. */ - if (false) - YYERROR; - - /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - yypop_ (yylen); - yylen = 0; - goto yyerrlab1; - - - /*-------------------------------------------------------------. - | yyerrlab1 -- common code for both syntax error and YYERROR. | - `-------------------------------------------------------------*/ - yyerrlab1: - yyerrstatus_ = 3; // Each real token shifted decrements this. - { - stack_symbol_type error_token; - for (;;) - { - yyn = yypact_[+yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - yyn += yy_error_token_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yy_error_token_) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - // Pop the current state because it cannot handle the error token. - if (yystack_.size () == 1) - YYABORT; - - yyerror_range[1].location = yystack_[0].location; - yy_destroy_ ("Error: popping", yystack_[0]); - yypop_ (); - YY_STACK_PRINT (); - } - - yyerror_range[2].location = yyla.location; - YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); - - // Shift the error token. - error_token.state = state_type (yyn); - yypush_ ("Shifting", YY_MOVE (error_token)); - } - goto yynewstate; - - - /*-------------------------------------. - | yyacceptlab -- YYACCEPT comes here. | - `-------------------------------------*/ - yyacceptlab: - yyresult = 0; - goto yyreturn; - - - /*-----------------------------------. - | yyabortlab -- YYABORT comes here. | - `-----------------------------------*/ - yyabortlab: - yyresult = 1; - goto yyreturn; - - - /*-----------------------------------------------------. - | yyreturn -- parsing is finished, return the result. | - `-----------------------------------------------------*/ - yyreturn: - if (!yyla.empty ()) - yy_destroy_ ("Cleanup: discarding lookahead", yyla); - - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - yypop_ (yylen); - while (1 < yystack_.size ()) - { - yy_destroy_ ("Cleanup: popping", yystack_[0]); - yypop_ (); - } - - return yyresult; - } -#if YY_EXCEPTIONS - catch (...) - { - YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; - // Do not try to display the values of the reclaimed symbols, - // as their printers might throw an exception. - if (!yyla.empty ()) - yy_destroy_ (YY_NULLPTR, yyla); - - while (1 < yystack_.size ()) - { - yy_destroy_ (YY_NULLPTR, yystack_[0]); - yypop_ (); - } - throw; - } -#endif // YY_EXCEPTIONS - } - - void - parser::error (const syntax_error& yyexc) - { - error (yyexc.location, yyexc.what ()); - } - - // Generate an error message. - std::string - parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const - { - // Number of reported tokens (one for the "unexpected", one per - // "expected"). - std::ptrdiff_t yycount = 0; - // Its maximum. - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - // Arguments of yyformat. - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - - /* There are many possibilities here to consider: - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected - tokens because there are none. - - The only way there can be no lookahead present (in yyla) is - if this state is a consistent state with a default action. - Thus, detecting the absence of a lookahead is sufficient to - determine that there is no unexpected or expected token to - report. In that case, just report a simple "syntax error". - - Don't assume there isn't a lookahead just because this state is - a consistent state with a default action. There might have - been a previous inconsistent state, consistent state with a - non-default action, or user semantic action that manipulated - yyla. (However, yyla is currently not documented for users.) - - Of course, the expected token list depends on states to have - correct lookahead information, and it depends on the parser not - to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. - */ - if (!yyla.empty ()) - { - symbol_number_type yytoken = yyla.type_get (); - yyarg[yycount++] = yytname_[yytoken]; - - int yyn = yypact_[+yystate]; - if (!yy_pact_value_is_default_ (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - 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_; - for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != yy_error_token_ - && !yy_table_value_is_error_ (yytable_[yyx + yyn])) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - break; - } - else - yyarg[yycount++] = yytname_[yyx]; - } - } - } - - char const* yyformat = YY_NULLPTR; - switch (yycount) - { -#define YYCASE_(N, S) \ - case N: \ - yyformat = S; \ - break - default: // Avoid compiler warnings. - YYCASE_ (0, YY_("syntax error")); - YYCASE_ (1, YY_("syntax error, unexpected %s")); - YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -#undef YYCASE_ - } - - std::string yyres; - // Argument number. - std::ptrdiff_t yyi = 0; - for (char const* yyp = yyformat; *yyp; ++yyp) - if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) - { - yyres += yytnamerr_ (yyarg[yyi++]); - ++yyp; - } - else - yyres += *yyp; - return yyres; - } - - - const signed char parser::yypact_ninf_ = -5; - - const signed char parser::yytable_ninf_ = -1; - - const signed char - parser::yypact_[] = - { - -5, 5, 9, -5, 13, 15, -5, 8, -5, -5, - -3, 13, 13, 13, 13, 13, -5, 8, 19, 19, - -5, -5 - }; - - const signed char - parser::yydefact_[] = - { - 3, 0, 0, 1, 0, 7, 6, 2, 4, 7, - 0, 0, 0, 0, 0, 0, 12, 5, 9, 8, - 10, 11 - }; - - const signed char - parser::yypgoto_[] = - { - -5, -4, -5, -5, -5 - }; - - const signed char - parser::yydefgoto_[] = - { - -1, 7, 1, 2, 8 - }; - - const signed char - parser::yytable_[] = - { - 10, 12, 13, 14, 15, 3, 16, 17, 18, 19, - 20, 21, 12, 13, 14, 15, 0, 4, 11, 5, - 6, 4, 0, 9, 6, 14, 15 - }; - - const signed char - parser::yycheck_[] = - { - 4, 4, 5, 6, 7, 0, 9, 11, 12, 13, - 14, 15, 4, 5, 6, 7, -1, 8, 3, 10, - 11, 8, -1, 10, 11, 6, 7 - }; - - const signed char - parser::yystos_[] = - { - 0, 14, 15, 0, 8, 10, 11, 13, 16, 10, - 13, 3, 4, 5, 6, 7, 9, 13, 13, 13, - 13, 13 - }; - - const signed char - parser::yyr1_[] = - { - 0, 12, 14, 15, 15, 16, 13, 13, 13, 13, - 13, 13, 13 - }; - - const signed char - parser::yyr2_[] = - { - 0, 2, 2, 0, 2, 3, 1, 1, 3, 3, - 3, 3, 3 - }; - - - - // 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 of file\"", "error", "$undefined", "\":=\"", "\"-\"", "\"+\"", - "\"*\"", "\"/\"", "\"(\"", "\")\"", "\"identifier\"", "\"number\"", - "$accept", "exp", "unit", "assignments", "assignment", YY_NULLPTR - }; - -#if YYDEBUG - const signed char - parser::yyrline_[] = - { - 0, 47, 47, 50, 51, 54, 59, 60, 61, 62, - 63, 64, 65 - }; - - // Print the state stack on the debug stream. - void - parser::yystack_print_ () - { - *yycdebug_ << "Stack now"; - for (stack_type::const_iterator - i = yystack_.begin (), - i_end = yystack_.end (); - i != i_end; ++i) - *yycdebug_ << ' ' << int (i->state); - *yycdebug_ << '\n'; - } - - // Report on the debug stream that the rule \a yyrule is going to be reduced. - void - parser::yy_reduce_print_ (int yyrule) - { - int yylno = yyrline_[yyrule]; - int yynrhs = yyr2_[yyrule]; - // Print the symbols being reduced, and their result. - *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):\n"; - // The symbols being reduced. - for (int yyi = 0; yyi < yynrhs; yyi++) - YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", - yystack_[(yynrhs) - (yyi + 1)]); - } -#endif // YYDEBUG - - -} // yy -#line 1090 "parser.cc" - -#line 66 "parser.yy" - - -void -yy::parser::error (const location_type& l, const std::string& m) -{ - std::cerr << l << ": " << m << '\n'; -} diff --git a/flexBison/cplusplus/parser.hh b/flexBison/cplusplus/parser.hh deleted file mode 100644 index 30f8567..0000000 --- a/flexBison/cplusplus/parser.hh +++ /dev/null @@ -1,1362 +0,0 @@ -// A Bison parser, made by GNU Bison 3.5.4. - -// Skeleton interface for Bison LALR(1) parsers in C++ - -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -// As a special exception, you may create a larger work that contains -// part or all of the Bison parser skeleton and distribute that work -// under terms of your choice, so long as that work isn't itself a -// parser generator using the skeleton or a modified version thereof -// as a parser skeleton. Alternatively, if you modify or redistribute -// the parser skeleton itself, you may (at your option) remove this -// special exception, which will cause the skeleton and the resulting -// Bison output files to be licensed under the GNU General Public -// License without this special exception. - -// This special exception was added by the Free Software Foundation in -// version 2.2 of Bison. - - -/** - ** \file parser.hh - ** Define the yy::parser class. - */ - -// C++ LALR(1) parser skeleton written by Akim Demaille. - -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - -#ifndef YY_YY_PARSER_HH_INCLUDED -# define YY_YY_PARSER_HH_INCLUDED -// "%code requires" blocks. -#line 10 "parser.yy" - - # include <string> - class driver; - -#line 53 "parser.hh" - -# include <cassert> -# include <cstdlib> // std::abort -# include <iostream> -# include <stdexcept> -# include <string> -# include <vector> - -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - -// Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_MOVE std::move -# define YY_MOVE_OR_COPY move -# define YY_MOVE_REF(Type) Type&& -# define YY_RVREF(Type) Type&& -# define YY_COPY(Type) Type -#else -# define YY_MOVE -# define YY_MOVE_OR_COPY copy -# define YY_MOVE_REF(Type) Type& -# define YY_RVREF(Type) const Type& -# define YY_COPY(Type) const Type& -#endif - -// Support noexcept when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_NOEXCEPT noexcept -# define YY_NOTHROW -#else -# define YY_NOEXCEPT -# define YY_NOTHROW throw () -#endif - -// Support constexpr when possible. -#if 201703 <= YY_CPLUSPLUS -# define YY_CONSTEXPR constexpr -#else -# define YY_CONSTEXPR -#endif -# include "location.hh" -#include <typeinfo> -#ifndef YY_ASSERT -# include <cassert> -# define YY_ASSERT assert -#endif - - -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) -#else -# define YYUSE(E) /* empty */ -#endif - -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif - -namespace yy { -#line 187 "parser.hh" - - - - - /// A Bison parser. - class parser - { - public: -#ifndef YYSTYPE - /// A buffer to store and retrieve objects. - /// - /// Sort of a variant, but does not keep track of the nature - /// of the stored data, since that knowledge is available - /// via the current parser state. - class semantic_type - { - public: - /// Type of *this. - typedef semantic_type self_type; - - /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) - {} - - /// Construct and fill. - template <typename T> - semantic_type (YY_RVREF (T) t) - : yytypeid_ (&typeid (T)) - { - YY_ASSERT (sizeof (T) <= size); - new (yyas_<T> ()) T (YY_MOVE (t)); - } - - /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT - { - YY_ASSERT (!yytypeid_); - } - -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template <typename T, typename... U> - T& - emplace (U&&... u) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (std::forward <U>(u)...); - } -# else - /// Instantiate an empty \a T in here. - template <typename T> - T& - emplace () - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (); - } - - /// Instantiate a \a T in here from \a t. - template <typename T> - T& - emplace (const T& t) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (t); - } -# endif - - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. - template <typename T> - T& - build () - { - return emplace<T> (); - } - - /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. - template <typename T> - T& - build (const T& t) - { - return emplace<T> (t); - } - - /// Accessor to a built \a T. - template <typename T> - T& - as () YY_NOEXCEPT - { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); - return *yyas_<T> (); - } - - /// Const accessor to a built \a T (for %printer). - template <typename T> - const T& - as () const YY_NOEXCEPT - { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); - return *yyas_<T> (); - } - - /// Swap the content with \a that, of same type. - /// - /// Both variants must be built beforehand, because swapping the actual - /// data requires reading it (with as()), and this is not possible on - /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsibility. - /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). - template <typename T> - void - swap (self_type& that) YY_NOEXCEPT - { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as<T> (), that.as<T> ()); - } - - /// Move the content of \a that to this. - /// - /// Destroys \a that. - template <typename T> - void - move (self_type& that) - { -# if 201103L <= YY_CPLUSPLUS - emplace<T> (std::move (that.as<T> ())); -# else - emplace<T> (); - swap<T> (that); -# endif - that.destroy<T> (); - } - -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. - template <typename T> - void - move (self_type&& that) - { - emplace<T> (std::move (that.as<T> ())); - that.destroy<T> (); - } -#endif - - /// Copy the content of \a that to this. - template <typename T> - void - copy (const self_type& that) - { - emplace<T> (that.as<T> ()); - } - - /// Destroy the stored \a T. - template <typename T> - void - destroy () - { - as<T> ().~T (); - yytypeid_ = YY_NULLPTR; - } - - private: - /// Prohibit blind copies. - self_type& operator= (const self_type&); - semantic_type (const self_type&); - - /// Accessor to raw memory as \a T. - template <typename T> - T* - yyas_ () YY_NOEXCEPT - { - void *yyp = yybuffer_.yyraw; - return static_cast<T*> (yyp); - } - - /// Const accessor to raw memory as \a T. - template <typename T> - const T* - yyas_ () const YY_NOEXCEPT - { - const void *yyp = yybuffer_.yyraw; - return static_cast<const T*> (yyp); - } - - /// An auxiliary type to compute the largest semantic type. - union union_type - { - // "number" - // exp - char dummy1[sizeof (int)]; - - // "identifier" - char dummy2[sizeof (std::string)]; - }; - - /// The size of the largest semantic type. - enum { size = sizeof (union_type) }; - - /// A buffer to store semantic values. - union - { - /// Strongest alignment constraints. - long double yyalign_me; - /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; - - /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; - }; - -#else - typedef YYSTYPE semantic_type; -#endif - /// Symbol locations. - typedef location location_type; - - /// Syntax errors thrown from user actions. - struct syntax_error : std::runtime_error - { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - - location_type location; - }; - - /// Tokens. - struct token - { - enum yytokentype - { - TOK_END = 0, - TOK_ASSIGN = 258, - TOK_MINUS = 259, - TOK_PLUS = 260, - TOK_STAR = 261, - TOK_SLASH = 262, - TOK_LPAREN = 263, - TOK_RPAREN = 264, - TOK_IDENTIFIER = 265, - TOK_NUMBER = 266 - }; - }; - - /// (External) token type, as returned by yylex. - typedef token::yytokentype token_type; - - /// Symbol type: an internal symbol number. - typedef int symbol_number_type; - - /// The symbol type number to denote an empty symbol. - enum { empty_symbol = -2 }; - - /// Internal symbol number for tokens (subsumed by symbol_number_type). - typedef signed char token_number_type; - - /// A complete symbol. - /// - /// Expects its Base type to provide access to the symbol type - /// via type_get (). - /// - /// Provide access to semantic value and location. - template <typename Base> - struct basic_symbol : Base - { - /// Alias to Base. - typedef Base super_type; - - /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that); -#endif - - /// Copy constructor. - basic_symbol (const basic_symbol& that); - - /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif - - /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } - - /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol<Base>& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. -switch (yytype) - { - case 11: // "number" - case 13: // exp - value.template destroy< int > (); - break; - - case 10: // "identifier" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); - } - - /// Whether empty. - bool empty () const YY_NOEXCEPT; - - /// Destructive move, \a s is emptied into this. - void move (basic_symbol& s); - - /// The semantic value. - semantic_type value; - - /// The location. - location_type location; - - private: -#if YY_CPLUSPLUS < 201103L - /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); -#endif - }; - - /// Type access provider for token (enum) based symbols. - struct by_type - { - /// Default constructor. - by_type (); - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_type (by_type&& that); -#endif - - /// Copy constructor. - by_type (const by_type& that); - - /// The symbol type as needed by the constructor. - typedef token_type kind_type; - - /// Constructor from (external) token numbers. - by_type (kind_type t); - - /// Record that this symbol is empty. - void clear (); - - /// Steal the symbol type from \a that. - void move (by_type& that); - - /// The (internal) type number (corresponding to \a type). - /// \a empty when empty. - symbol_number_type type_get () const YY_NOEXCEPT; - - /// The symbol type. - /// \a empty_symbol when empty. - /// An int, not token_number_type, to be able to store empty_symbol. - int type; - }; - - /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol<by_type> - { - /// Superclass. - typedef basic_symbol<by_type> super_type; - - /// Empty symbol. - symbol_type () {} - - /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, location_type l) - : super_type(token_type (tok), std::move (l)) - { - YY_ASSERT (tok == token::TOK_END || tok == token::TOK_ASSIGN || tok == token::TOK_MINUS || tok == token::TOK_PLUS || tok == token::TOK_STAR || tok == token::TOK_SLASH || tok == token::TOK_LPAREN || tok == token::TOK_RPAREN); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - YY_ASSERT (tok == token::TOK_END || tok == token::TOK_ASSIGN || tok == token::TOK_MINUS || tok == token::TOK_PLUS || tok == token::TOK_STAR || tok == token::TOK_SLASH || tok == token::TOK_LPAREN || tok == token::TOK_RPAREN); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, int v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOK_NUMBER); - } -#else - symbol_type (int tok, const int& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOK_NUMBER); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, std::string v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOK_IDENTIFIER); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOK_IDENTIFIER); - } -#endif - }; - - /// Build a parser object. - parser (driver& drv_yyarg); - virtual ~parser (); - - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); - - /// Parse. - /// \returns 0 iff parsing succeeded. - virtual int parse (); - -#if YYDEBUG - /// The current debugging stream. - std::ostream& debug_stream () const YY_ATTRIBUTE_PURE; - /// 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 YY_ATTRIBUTE_PURE; - /// Set the current debugging level. - void set_debug_level (debug_level_type l); -#endif - - /// 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); - - /// Report a syntax error. - void error (const syntax_error& err); - - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOK_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOK_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ASSIGN (location_type l) - { - return symbol_type (token::TOK_ASSIGN, std::move (l)); - } -#else - static - symbol_type - make_ASSIGN (const location_type& l) - { - return symbol_type (token::TOK_ASSIGN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MINUS (location_type l) - { - return symbol_type (token::TOK_MINUS, std::move (l)); - } -#else - static - symbol_type - make_MINUS (const location_type& l) - { - return symbol_type (token::TOK_MINUS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PLUS (location_type l) - { - return symbol_type (token::TOK_PLUS, std::move (l)); - } -#else - static - symbol_type - make_PLUS (const location_type& l) - { - return symbol_type (token::TOK_PLUS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STAR (location_type l) - { - return symbol_type (token::TOK_STAR, std::move (l)); - } -#else - static - symbol_type - make_STAR (const location_type& l) - { - return symbol_type (token::TOK_STAR, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SLASH (location_type l) - { - return symbol_type (token::TOK_SLASH, std::move (l)); - } -#else - static - symbol_type - make_SLASH (const location_type& l) - { - return symbol_type (token::TOK_SLASH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LPAREN (location_type l) - { - return symbol_type (token::TOK_LPAREN, std::move (l)); - } -#else - static - symbol_type - make_LPAREN (const location_type& l) - { - return symbol_type (token::TOK_LPAREN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RPAREN (location_type l) - { - return symbol_type (token::TOK_RPAREN, std::move (l)); - } -#else - static - symbol_type - make_RPAREN (const location_type& l) - { - return symbol_type (token::TOK_RPAREN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IDENTIFIER (std::string v, location_type l) - { - return symbol_type (token::TOK_IDENTIFIER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_IDENTIFIER (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_IDENTIFIER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NUMBER (int v, location_type l) - { - return symbol_type (token::TOK_NUMBER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_NUMBER (const int& v, const location_type& l) - { - return symbol_type (token::TOK_NUMBER, v, l); - } -#endif - - - private: - /// This class is not copyable. - parser (const parser&); - parser& operator= (const parser&); - - /// Stored state numbers (used for stacks). - typedef signed char state_type; - - /// Generate an error message. - /// \param yystate the state where the error occurred. - /// \param yyla the lookahead token. - virtual std::string yysyntax_error_ (state_type yystate, - const symbol_type& yyla) const; - - /// Compute post-reduction state. - /// \param yystate the current state - /// \param yysym the nonterminal to push on the stack - static state_type yy_lr_goto_state_ (state_type yystate, int yysym); - - /// Whether the given \c yypact_ value indicates a defaulted state. - /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue); - - /// Whether the given \c yytable_ value indicates a syntax error. - /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue); - - static const signed char yypact_ninf_; - static const signed char yytable_ninf_; - - /// Convert a scanner token number \a t to a symbol number. - /// In theory \a t should be a token_type, but character literals - /// are valid, yet not members of the token_type enum. - static token_number_type yytranslate_ (int t); - - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const signed char yypact_[]; - - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const signed char yydefact_[]; - - // YYPGOTO[NTERM-NUM]. - static const signed char yypgoto_[]; - - // YYDEFGOTO[NTERM-NUM]. - static const signed char yydefgoto_[]; - - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const signed char yytable_[]; - - static const signed char yycheck_[]; - - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const signed char yystos_[]; - - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const signed char yyr1_[]; - - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const signed char yyr2_[]; - - - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *n); - - - /// For a symbol, its name in clear. - static const char* const yytname_[]; -#if YYDEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const signed char yyrline_[]; - /// 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_ (); - - /// Debugging level. - int yydebug_; - /// Debug stream. - std::ostream* yycdebug_; - - /// \brief Display a symbol type, value and location. - /// \param yyo The output stream. - /// \param yysym The symbol. - template <typename Base> - void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const; -#endif - - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// If null, print nothing. - /// \param yysym The symbol. - template <typename Base> - void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const; - - private: - /// Type access provider for state based symbols. - struct by_state - { - /// Default constructor. - by_state () YY_NOEXCEPT; - - /// The symbol type as needed by the constructor. - typedef state_type kind_type; - - /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; - - /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; - - /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; - - /// Steal the symbol type from \a that. - void move (by_state& that); - - /// The (internal) type number (corresponding to \a state). - /// \a empty_symbol when empty. - symbol_number_type type_get () const YY_NOEXCEPT; - - /// The state number used to denote an empty symbol. - /// We use the initial state, as it does not have a value. - enum { empty_state = 0 }; - - /// The state. - /// \a empty when empty. - state_type state; - }; - - /// "Internal" symbol: element of the stack. - struct stack_symbol_type : basic_symbol<by_state> - { - /// Superclass. - typedef basic_symbol<by_state> super_type; - /// Construct an empty symbol. - stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); - /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); - - /// Assignment, needed by push_back by other implementations. - /// Needed by some other old implementations. - stack_symbol_type& operator= (const stack_symbol_type& that); -#endif - }; - - /// A stack with random access from its top. - template <typename T, typename S = std::vector<T> > - class stack - { - public: - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - typedef typename S::size_type size_type; - typedef typename std::ptrdiff_t index_type; - - stack (size_type n = 200) - : seq_ (n) - {} - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (index_type i) const - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (index_type i) - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (YY_MOVE_REF (T) t) - { - seq_.push_back (T ()); - operator[] (0).move (t); - } - - /// Pop elements from the stack. - void - pop (std::ptrdiff_t n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } - - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } - - /// Number of elements on the stack. - index_type - size () const YY_NOEXCEPT - { - return index_type (seq_.size ()); - } - - std::ptrdiff_t - ssize () const YY_NOEXCEPT - { - return std::ptrdiff_t (size ()); - } - - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.rbegin (); - } - - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.rend (); - } - - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, index_type range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (index_type i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - index_type range_; - }; - - private: - stack (const stack&); - stack& operator= (const stack&); - /// The wrapped container. - S seq_; - }; - - - /// Stack type. - typedef stack<stack_symbol_type> stack_type; - - /// The stack. - stack_type yystack_; - - /// Push a new state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param sym the symbol - /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); - - /// Push a new look ahead token on the state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param s the state - /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); - - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); - - /// Some specific tokens. - static const token_number_type yy_error_token_ = 1; - static const token_number_type yy_undef_token_ = 2; - - /// Constants. - enum - { - yyeof_ = 0, - yylast_ = 26, ///< Last index in yytable_. - yynnts_ = 5, ///< Number of nonterminal symbols. - yyfinal_ = 3, ///< Termination state number. - yyntokens_ = 12 ///< Number of tokens. - }; - - - // User arguments. - driver& drv; - }; - - inline - parser::token_number_type - parser::yytranslate_ (int t) - { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. - 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, - 5, 6, 7, 8, 9, 10, 11 - }; - const int user_token_number_max_ = 266; - - if (t <= 0) - return yyeof_; - else if (t <= user_token_number_max_) - return translate_table[t]; - else - return yy_undef_token_; - } - - // basic_symbol. -#if 201103L <= YY_CPLUSPLUS - template <typename Base> - parser::basic_symbol<Base>::basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->type_get ()) - { - case 11: // "number" - case 13: // exp - value.move< int > (std::move (that.value)); - break; - - case 10: // "identifier" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } -#endif - - template <typename Base> - parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that) - : Base (that) - , value () - , location (that.location) - { - switch (this->type_get ()) - { - case 11: // "number" - case 13: // exp - value.copy< int > (YY_MOVE (that.value)); - break; - - case 10: // "identifier" - value.copy< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - - } - - - - template <typename Base> - bool - parser::basic_symbol<Base>::empty () const YY_NOEXCEPT - { - return Base::type_get () == empty_symbol; - } - - template <typename Base> - void - parser::basic_symbol<Base>::move (basic_symbol& s) - { - super_type::move (s); - switch (this->type_get ()) - { - case 11: // "number" - case 13: // exp - value.move< int > (YY_MOVE (s.value)); - break; - - case 10: // "identifier" - value.move< std::string > (YY_MOVE (s.value)); - break; - - default: - break; - } - - location = YY_MOVE (s.location); - } - - // by_type. - inline - parser::by_type::by_type () - : type (empty_symbol) - {} - -#if 201103L <= YY_CPLUSPLUS - inline - parser::by_type::by_type (by_type&& that) - : type (that.type) - { - that.clear (); - } -#endif - - inline - parser::by_type::by_type (const by_type& that) - : type (that.type) - {} - - inline - parser::by_type::by_type (token_type t) - : type (yytranslate_ (t)) - {} - - inline - void - parser::by_type::clear () - { - type = empty_symbol; - } - - inline - void - parser::by_type::move (by_type& that) - { - type = that.type; - that.clear (); - } - - inline - int - parser::by_type::type_get () const YY_NOEXCEPT - { - return type; - } - -} // yy -#line 1357 "parser.hh" - - - - - -#endif // !YY_YY_PARSER_HH_INCLUDED diff --git a/flexBison/cplusplus/parser.o b/flexBison/cplusplus/parser.o deleted file mode 100644 index da873f8fa2aef230d9e97a615cfb2120390a83ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163032 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%0D7l-2W3x_?^XZ|Ih`f`w8X$6CBvxuK`-D z!+^Sf<roR^uYkq<%dxnB1&;EI0eWyBq5QuXNBQM|#r>f9Z(_q=2kL&9dQkpffyMnd zxv`hO3Q+fxoBvIq_9LfXGc4)X${f4>22lG!XP&|nFP8LcYK}erBcS1jy#DhX3Gwd$ zbw6_WrD1VD8?N<}Q1_D?ejZrt&%$E=`dIAYcYs3s1F+biiN$_q9Q$W3P-uSy)PCgj zV~555i#YmU51{t%Ah3S)437TS1!($7fa(Y3AJF<6Sb88-{-t1Xzd087D<)x&zXdsv zR1ezo1z|x*^!ATT687|O0KIq#dHptM{S&e7FTmn{6D;nx#nJ!R06ln!(D_*wIQkzq zpzcSmzweTee`~O~AGFsD*6xMTia5rfK0w{C0SR_Ei4p!d#-BKBApIv~_k-FG#D;$d z7WZ3W34ebx?CD1VdT{U~xXU37boYCiVNX96Q1>IR-vFJTMXdX$U~xYS7WYqp-9HRn zrwwr>1A_o`;S8bm8{M$`htc#$fEJ6Q)&I{(NIwgp?uYpol>e=<xZe>+{pkR8Ke^@q z3aI_a<=;{)^|v67`=<h+_7ggPfCtC@Qw7lQL+<~-CL#Q`K;4fVeuuEQzaPi?%LP#P zlRJL02WmfZ__1P%zlY)2^UndO{m^0nmMk&upS=@~J^$>0h97hq4m^GfI==%J9)#+T z6Ik4DgvI?+lCitr0Cd>^0|Nu}7<8QO?@z|=ehE8B`Gp++p!0Kyb^jGC?q7x_{>5>G ze*x6}pfhvfj>ppe6T%Vx2~hVVk3WLW|0dS`53smj5=;1t;TS&=D1^A0(D_q>j@ZNh z1JwPnbOI`WK>a6T-TwxQ`-QN$pCc1{`f-4|A9@TQ#4}jJpE(n|`#J0(=?A&~`$Izc z@dJzd-(X2Uc{sv<0@VG`ZTL9dpNS*<Euij4&cC4ZYlsbhmJJXqVd_Egmx?9)wQ%eo zegJhpx%CGR)PCgh4^)1`+C4D(F0T1QsQrY_U%Y{9{ty~|$mthU|HHxqCXQ?TO#<qE zn0iq7y}}azAvn%&7bt>+Ke^+l3RvuaiN$_LT>Ial_LIAQP6KK`a{LKnNk4U2*z<1y z)P6$se`OZ-{JQ}ff5_!OHxu#aPnckFe*_lyXIW!+{{pD{38lYOYwYg-0d+qtoq^I1 z==>d6dV-1LN`DSm-0y?M{VEyQ-G2b;enR6v@)_9OF96ysgw}oq-JeFR`+cyup9zcm zSEyol{{yJ|37sFaSQWebHL$o}goN}HfyMocvE)A~9PSqYT~@@vz(8pJSQLl*9k94x zoCNo$U~&INEbeE<b$<}l{h;%0ASD@uMDM@-W5XW)5m5Id*T10ocVg2|0o464^`QK7 zAB+0~aO^)?0ChjP^G6j>`;p5(XDsPgQy+W!Jpi?zQ2C*vk3IZ4py3BACqVuOoxckU z512Tv@}mXnewccYep4*&e~6?1_5kXBDM+-#N%Z)~Wq%LUe&p~2rC(UR52IJ%*niDX z0<n@%|6wVv{nuE+543(679NDcZw40k+hPg78P3?_-vR1=(3m;IClC@n{3bhNkN+J| z_am>r0o~t3toxTh-49a_ihn~a?k`}&?tTH#Wn~Nu4CKcD8mRrq@h^eJe#uDe_8UO$ zhaRH~2|O(Af00P+;b-B5+5Xodq5Rx|#r<4Z+&>A&{e2Bk_Y+$G){Eo*z6_}QVd)eU zfBGc2{|FZMgW6B9d<UcDaqV9r(*066?q6%b;(pNh0W3Yj{DrIhxPZm|Vpzieav=8f z^8o68LgmM~K<w#f1{U{&%1>h5e+TM*n0iqBWngiC6pr~Dg>p!eC%6Cg1ZqEW{&T=$ zzZ{PJ^9E4+39a9e#Ib*V12p`Q>wnPrF)Ta?#s3E^?ia=4{v;gb#{{VR36&qQILeO) zSlkaP|A}?~AE^6b>Ot|Jj>Y{-IOfkDK;2Jn{IhI?q#xw?x5Q%qa~$(OAE5RVI)C61 zj`<$}XGr;rJbnRMKL!gALh&zv#r@1!+~0&_|C9rC;+0VQyB5d(sRF3`VeSOQA87p_ zvF?|_;(pNjLs+>Bqi5o{Kdk`jenR`drr@|gtpkhuJxHiOG_bfI)PI7x8%CeTb$<-h z{e=3T$8g*qvjB_xLHD;28~!F(-2WC!|KU51^}idS?kALfKH*sZy90~+{YVIZ2Q2Qt ziN*b1IM$y&fVv-g3>Ty@z|wwl6~JEqU4XhDdHf}i1o!)3asO2;?gw2E2r4Ns&QF9c zydbpx>Nk${R}wBDQ&G<^0-ZliZ2F17;(m54<<B%*?Cp;QQ1=t6e<s>u4}TA+`;p5Z z(D^aMx<3W#ewcbt`Lz;D_-Ep{Kl20B{p7B{&w<*HT>o6dVt)dT^~(ZPkR(ee{YFb- z55ELx_#vm?7!uNN1s3<;z~cT-INDDIQ1=r$KjJNp_R|We`;psE@g%sv1&jMZXOY3m zZ5SPf<NU}AQ1?Tp!61==rThrQaem|tsQZ!Yf6)2Au=EH^*SOmM6R@~{4Yu&daekFU zHN?r#YseuSEbf1c<NPWM&|yDl=bwS*Pl$E@94zh!t^b0BJB*$yj=lV7fVv-gj3-X_ z&k)C+{xhKNhlMjJ|AYD;#JYb4)cr8^ApJ+NgufvU_dkHTpWOEA1}yfk!eak79R2SP zQ2PnBKX9eL9Z>s`%P&wJ1&cQrebf+p{0Tr0UWHyGfiwON7-EmV259^t=l^^X^8XR2 z`;p@hwEh(4ZWvvSWBfM(>V9(PkIq2tM-IQ)SmF<K06VCr28As=kQf*k8ld(QTL17n z3VZl%fQBEm83bPcP(niZ-N54hDlGNC1CILt1JwP5)(=_ZsQ)$GK%s)Vei*d=8Wx|h ze2pvpKEdMtA}sFzfMfnkp%xMwpgVUVEC`7{e)$^5{FejN{mAS8K;cKM`#)fD|2r({ z=QWP|TMj_o53BznuE)GT`x%b=TV6oj4-02d`B#f2{p?VN%t=C*X~L{w;HZNzA+ZQy zgGh9K2z31!x_$wuehoAY=;7}VTYm;J92vVqG#Wq+2D!fhi~ASkLCP;9WW5Xw3>Nhe zfsL#X8b(4)h3El^;Yxphpz#NbZ;<^>Skm8Q==u-P+#tw27=GCTVVOcGI0>^KCV<O+ z7SLs*3=9m&<qs(SVC5c+Hiph$gT@wMW`bx1=*4sB;SKW-NDT<<;h4WR03DW$)_!Qi z68>z^Juc8_0vQR$22lIa?L+5-!UN_Putq460JR@E{dQonzXe)<q1$gkr2X}<`U`3= zjH<w5e-{?}amAkimiPlrsl)sVqqjiQFM9kr5b6H)dD!cZ30U0Ui^cuX%8<MOtEXZ9 z_kh|j4ikXVp!fnYVRRYv{$Y?9GLDDpM-~IIVfsL95WWMMe*`t{L0mXafa*V?1Q!A` z(9_R#*!&|{7D23l`u_v80R_sx6S4UJwhjXWv(JCfYQ+YGZU%-KX%Lr!?py<jgY<)F jh$x5!!C8h3plb;s93)Z!8vj3RA%Y-%p!kQmAC|5Gyho({ diff --git a/flexBison/cplusplus/parser.output b/flexBison/cplusplus/parser.output deleted file mode 100644 index 2c76e95..0000000 --- a/flexBison/cplusplus/parser.output +++ /dev/null @@ -1,289 +0,0 @@ -Grammar - - 0 $accept: unit "end of file" - - 1 unit: assignments exp - - 2 assignments: %empty - 3 | assignments assignment - - 4 assignment: "identifier" ":=" exp - - 5 exp: "number" - 6 | "identifier" - 7 | exp "+" exp - 8 | exp "-" exp - 9 | exp "*" exp - 10 | exp "/" exp - 11 | "(" exp ")" - - -Terminals, with rules where they appear - - "end of file" (0) 0 - error (256) - ":=" (258) 4 - "-" (259) 8 - "+" (260) 7 - "*" (261) 9 - "/" (262) 10 - "(" (263) 11 - ")" (264) 11 - "identifier" <std::string> (265) 4 6 - "number" <int> (266) 5 - - -Nonterminals, with rules where they appear - - $accept (12) - on left: 0 - exp <int> (13) - on left: 5 6 7 8 9 10 11 - on right: 1 4 7 8 9 10 11 - unit (14) - on left: 1 - on right: 0 - assignments (15) - on left: 2 3 - on right: 1 3 - assignment (16) - on left: 4 - on right: 3 - - -State 0 - - 0 $accept: . unit "end of file" - - $default reduce using rule 2 (assignments) - - unit go to state 1 - assignments go to state 2 - - -State 1 - - 0 $accept: unit . "end of file" - - "end of file" shift, and go to state 3 - - -State 2 - - 1 unit: assignments . exp - 3 assignments: assignments . assignment - - "(" shift, and go to state 4 - "identifier" shift, and go to state 5 - "number" shift, and go to state 6 - - exp go to state 7 - assignment go to state 8 - - -State 3 - - 0 $accept: unit "end of file" . - - $default accept - - -State 4 - - 11 exp: "(" . exp ")" - - "(" shift, and go to state 4 - "identifier" shift, and go to state 9 - "number" shift, and go to state 6 - - exp go to state 10 - - -State 5 - - 4 assignment: "identifier" . ":=" exp - 6 exp: "identifier" . - - ":=" shift, and go to state 11 - - $default reduce using rule 6 (exp) - - -State 6 - - 5 exp: "number" . - - $default reduce using rule 5 (exp) - - -State 7 - - 1 unit: assignments exp . - 7 exp: exp . "+" exp - 8 | exp . "-" exp - 9 | exp . "*" exp - 10 | exp . "/" exp - - "-" shift, and go to state 12 - "+" shift, and go to state 13 - "*" shift, and go to state 14 - "/" shift, and go to state 15 - - $default reduce using rule 1 (unit) - - -State 8 - - 3 assignments: assignments assignment . - - $default reduce using rule 3 (assignments) - - -State 9 - - 6 exp: "identifier" . - - $default reduce using rule 6 (exp) - - -State 10 - - 7 exp: exp . "+" exp - 8 | exp . "-" exp - 9 | exp . "*" exp - 10 | exp . "/" exp - 11 | "(" exp . ")" - - "-" shift, and go to state 12 - "+" shift, and go to state 13 - "*" shift, and go to state 14 - "/" shift, and go to state 15 - ")" shift, and go to state 16 - - -State 11 - - 4 assignment: "identifier" ":=" . exp - - "(" shift, and go to state 4 - "identifier" shift, and go to state 9 - "number" shift, and go to state 6 - - exp go to state 17 - - -State 12 - - 8 exp: exp "-" . exp - - "(" shift, and go to state 4 - "identifier" shift, and go to state 9 - "number" shift, and go to state 6 - - exp go to state 18 - - -State 13 - - 7 exp: exp "+" . exp - - "(" shift, and go to state 4 - "identifier" shift, and go to state 9 - "number" shift, and go to state 6 - - exp go to state 19 - - -State 14 - - 9 exp: exp "*" . exp - - "(" shift, and go to state 4 - "identifier" shift, and go to state 9 - "number" shift, and go to state 6 - - exp go to state 20 - - -State 15 - - 10 exp: exp "/" . exp - - "(" shift, and go to state 4 - "identifier" shift, and go to state 9 - "number" shift, and go to state 6 - - exp go to state 21 - - -State 16 - - 11 exp: "(" exp ")" . - - $default reduce using rule 11 (exp) - - -State 17 - - 4 assignment: "identifier" ":=" exp . - 7 exp: exp . "+" exp - 8 | exp . "-" exp - 9 | exp . "*" exp - 10 | exp . "/" exp - - "-" shift, and go to state 12 - "+" shift, and go to state 13 - "*" shift, and go to state 14 - "/" shift, and go to state 15 - - $default reduce using rule 4 (assignment) - - -State 18 - - 7 exp: exp . "+" exp - 8 | exp . "-" exp - 8 | exp "-" exp . - 9 | exp . "*" exp - 10 | exp . "/" exp - - "*" shift, and go to state 14 - "/" shift, and go to state 15 - - $default reduce using rule 8 (exp) - - -State 19 - - 7 exp: exp . "+" exp - 7 | exp "+" exp . - 8 | exp . "-" exp - 9 | exp . "*" exp - 10 | exp . "/" exp - - "*" shift, and go to state 14 - "/" shift, and go to state 15 - - $default reduce using rule 7 (exp) - - -State 20 - - 7 exp: exp . "+" exp - 8 | exp . "-" exp - 9 | exp . "*" exp - 9 | exp "*" exp . - 10 | exp . "/" exp - - $default reduce using rule 9 (exp) - - -State 21 - - 7 exp: exp . "+" exp - 8 | exp . "-" exp - 9 | exp . "*" exp - 10 | exp . "/" exp - 10 | exp "/" exp . - - $default reduce using rule 10 (exp) diff --git a/flexBison/cplusplus/scanner.cc b/flexBison/cplusplus/scanner.cc deleted file mode 100644 index f3e5cde..0000000 --- a/flexBison/cplusplus/scanner.cc +++ /dev/null @@ -1,2196 +0,0 @@ -#line 1 "scanner.cc" - -#line 3 "scanner.cc" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -/* %not-for-header */ -/* %if-c-only */ -/* %if-not-reentrant */ - -/* %endif */ -/* %endif */ -/* %ok-for-header */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 4 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* %if-c++-only */ -/* %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 */ -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <stdlib.h> -/* %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 <inttypes.h>. Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __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 <inttypes.h> -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; - -/* 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 - -#ifndef SIZE_MAX -#define SIZE_MAX (~(size_t)0) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -/* %endif */ - -/* begin standard C++ headers. */ -/* %if-c++-only */ -/* %endif */ - -/* TODO: this is always defined, so inline it */ -#define yyconst const - -#if defined(__GNUC__) && __GNUC__ >= 3 -#define yynoreturn __attribute__((__noreturn__)) -#else -#define yynoreturn -#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 - * integer in range [0..255] for use as an array index. - */ -#define YY_SC_TO_UI(c) ((YY_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 -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else -#define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ -#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 - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -/* %if-not-reentrant */ -extern int yyleng; -/* %endif */ - -/* %if-c-only */ -/* %if-not-reentrant */ -extern FILE *yyin, *yyout; -/* %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) - #define YY_LINENO_REWIND_TO(ptr) - -/* 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) ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { -/* %if-c-only */ - FILE *yy_input_file; -/* %endif */ - -/* %if-c++-only */ -/* %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. - */ - int 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 */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ -/* %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 */ -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = NULL; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* 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 ... - */ -static int yy_did_buffer_switch_on_eof; -/* %ok-for-header */ - -/* %endif */ - -void yyrestart ( FILE *input_file ); -void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); -void yy_delete_buffer ( YY_BUFFER_STATE b ); -void yy_flush_buffer ( YY_BUFFER_STATE b ); -void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state ( void ); - -static void yyensure_buffer_stack ( void ); -static void yy_load_buffer_state ( void ); -static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); - -/* %endif */ - -void *yyalloc ( yy_size_t ); -void *yyrealloc ( void *, yy_size_t ); -void yyfree ( 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() (/*CONSTCOND*/1) -#define YY_SKIP_YYWRAP - -#define FLEX_DEBUG -typedef flex_uint8_t YY_CHAR; - -FILE *yyin = NULL, *yyout = NULL; - -typedef int yy_state_type; - -extern int yylineno; -int yylineno = 1; - -extern char *yytext; -#ifdef yytext_ptr -#undef yytext_ptr -#endif -#define yytext_ptr yytext - -/* %% [1.5] DFA */ - -/* %if-c-only Standard (non-C++) definition */ - -static yy_state_type yy_get_previous_state ( void ); -static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); -static int yy_get_next_buffer ( void ); -static void yynoreturn yy_fatal_error ( const char* msg ); - -/* %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 = (int) (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 13 -#define YY_END_OF_BUFFER 14 -/* 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 const flex_int16_t yy_accept[22] = - { 0, - 0, 0, 14, 12, 1, 2, 7, 8, 5, 4, - 3, 6, 10, 12, 11, 1, 2, 10, 9, 11, - 0 - } ; - -static const YY_CHAR yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, - 5, 6, 7, 1, 8, 1, 9, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 11, 1, 1, - 12, 1, 1, 1, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 1, 1, 1, 1, 14, 1, 13, 13, 13, 13, - - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 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 const YY_CHAR yy_meta[15] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 2, 2 - } ; - -static const flex_int16_t yy_base[23] = - { 0, - 0, 0, 23, 24, 20, 18, 24, 24, 24, 24, - 24, 24, 10, 7, 0, 16, 14, 6, 24, 0, - 24, 13 - } ; - -static const flex_int16_t yy_def[23] = - { 0, - 21, 1, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 22, 21, 21, 21, 21, 22, - 0, 21 - } ; - -static const flex_int16_t yy_nxt[39] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 4, 15, 4, 20, 18, 17, 16, 19, 18, - 17, 16, 21, 3, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21 - } ; - -static const flex_int16_t yy_chk[39] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 22, 18, 17, 16, 14, 13, - 6, 5, 3, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int yy_flex_debug; -int yy_flex_debug = 1; - -static const flex_int16_t yy_rule_linenum[13] = - { 0, - 99, 100, 102, 103, 104, 105, 106, 107, 108, 110, - 111, 112 - } ; - -/* 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 -char *yytext; -#line 1 "scanner.ll" -/* See https://www.gnu.org/software/bison/manual/html_node/Calc_002b_002b-Scanner.html */ -#line 3 "scanner.ll" -# include <cerrno> -# include <climits> -# include <cstdlib> -# include <cstring> // strerror -# include <string> -# include "driver.hh" -# include "parser.hh" -#line 551 "scanner.cc" -#line 13 "scanner.ll" -#if defined __clang__ -# define CLANG_VERSION (__clang_major__ * 100 + __clang_minor__) -#endif - -// Clang and ICC like to pretend they are GCC. -#if defined __GNUC__ && !defined __clang__ && !defined __ICC -# define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) -#endif - -// Pacify warnings in yy_init_buffer (observed with Flex 2.6.4) -// and GCC 6.4.0, 7.3.0 with -O3. -#if defined GCC_VERSION && 600 <= GCC_VERSION -# pragma GCC diagnostic ignored "-Wnull-dereference" -#endif - -// This example uses Flex's C backend, yet compiles it as C++. -// So expect warnings about C style casts and NULL. -#if defined CLANG_VERSION && 500 <= CLANG_VERSION -# pragma clang diagnostic ignored "-Wold-style-cast" -# pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" -#elif defined GCC_VERSION && 407 <= GCC_VERSION -# pragma GCC diagnostic ignored "-Wold-style-cast" -# pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" -#endif - -#define FLEX_VERSION (YY_FLEX_MAJOR_VERSION * 100 + YY_FLEX_MINOR_VERSION) - -// Old versions of Flex (2.5.35) generate an incomplete documentation comment. -// -// In file included from src/scan-code-c.c:3: -// src/scan-code.c:2198:21: error: empty paragraph passed to '@param' command -// [-Werror,-Wdocumentation] -// * @param line_number -// ~~~~~~~~~~~~~~~~~^ -// 1 error generated. -#if FLEX_VERSION < 206 && defined CLANG_VERSION -# pragma clang diagnostic ignored "-Wdocumentation" -#endif - -// Old versions of Flex (2.5.35) use 'register'. Warnings introduced in -// GCC 7 and Clang 6. -#if FLEX_VERSION < 206 -# if defined CLANG_VERSION && 600 <= CLANG_VERSION -# pragma clang diagnostic ignored "-Wdeprecated-register" -# elif defined GCC_VERSION && 700 <= GCC_VERSION -# pragma GCC diagnostic ignored "-Wregister" -# endif -#endif - -#if FLEX_VERSION < 206 -# if defined CLANG_VERSION -# pragma clang diagnostic ignored "-Wconversion" -# pragma clang diagnostic ignored "-Wdocumentation" -# pragma clang diagnostic ignored "-Wshorten-64-to-32" -# pragma clang diagnostic ignored "-Wsign-conversion" -# elif defined GCC_VERSION -# pragma GCC diagnostic ignored "-Wconversion" -# pragma GCC diagnostic ignored "-Wsign-conversion" -# endif -#endif -#line 613 "scanner.cc" -#define YY_NO_INPUT 1 -#line 78 "scanner.ll" - // A number symbol corresponding to the value in S. - yy::parser::symbol_type - make_NUMBER (const std::string &s, const yy::parser::location_type& loc); -#line 619 "scanner.cc" -#line 88 "scanner.ll" - // Code run each time a pattern is matched. - # define YY_USER_ACTION loc.columns (yyleng); -#line 623 "scanner.cc" -#line 624 "scanner.cc" - -#define INITIAL 0 - -#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 */ -#include <unistd.h> -/* %endif */ -/* %if-c++-only */ -/* %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 */ - -static int yy_init_globals ( void ); - -/* %endif */ -/* %if-reentrant */ -/* %endif */ -/* %endif End reentrant structures and macros. */ - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int yylex_destroy ( void ); - -int yyget_debug ( void ); - -void yyset_debug ( int debug_flag ); - -YY_EXTRA_TYPE yyget_extra ( void ); - -void yyset_extra ( YY_EXTRA_TYPE user_defined ); - -FILE *yyget_in ( void ); - -void yyset_in ( FILE * _in_str ); - -FILE *yyget_out ( void ); - -void yyset_out ( FILE * _out_str ); - - int yyget_leng ( void ); - -char *yyget_text ( void ); - -int yyget_lineno ( void ); - -void yyset_lineno ( int _line_number ); - -/* %if-bison-bridge */ -/* %endif */ - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap ( void ); -#else -extern int yywrap ( void ); -#endif -#endif - -/* %not-for-header */ -#ifndef YY_NO_UNPUT - -#endif -/* %ok-for-header */ - -/* %endif */ - -#ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); -#endif - -#ifndef YY_NO_INPUT -/* %if-c-only Standard (non-C++) definition */ -/* %not-for-header */ -#ifdef __cplusplus -static int yyinput ( void ); -#else -static int input ( void ); -#endif -/* %ok-for-header */ - -/* %endif */ -#endif - -/* %if-c-only */ - -/* %endif */ - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else -#define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* %if-c-only Standard (non-C++) definition */ -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) -/* %endif */ -/* %if-c++-only C++ definition */ -/* %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 ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - int n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - }\ -\ -/* %if-c++-only C++ definition \ */\ -/* %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 */ -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -/* %endif */ -/* %if-c++-only */ -/* %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 */ - -extern int yylex (void); - -#define YY_DECL int yylex (void) -/* %endif */ -/* %if-c++-only C++ definition */ -/* %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 /*LINTED*/break; -#endif - -/* %% [6.0] YY_RULE_SETUP definition goes here */ -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/* %not-for-header */ -/** The main scanner function which does all the work. - */ -YY_DECL -{ - yy_state_type yy_current_state; - char *yy_cp, *yy_bp; - int yy_act; - - 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 */ - yyin = stdin; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - - if ( ! yyout ) -/* %if-c-only */ - yyout = stdout; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - { -/* %% [7.0] user's declarations go here */ -#line 91 "scanner.ll" - - -#line 94 "scanner.ll" - // A handy shortcut to the location held by the driver. - yy::location& loc = drv.location; - // Code run each time yylex is called. - loc.step (); - -#line 911 "scanner.cc" - - while ( /*CONSTCOND*/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_match: - do - { - 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 >= 22 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - ++yy_cp; - } - while ( yy_current_state != 21 ); - 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 ) - fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 13 ) - fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", - (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 13 ) - fprintf( stderr, "--accepting default rule (\"%s\")\n", - yytext ); - else if ( yy_act == 14 ) - fprintf( stderr, "--(end of buffer or a NUL)\n" ); - else - fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); - } - - 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 99 "scanner.ll" -loc.step (); - YY_BREAK -case 2: -/* rule 2 can match eol */ -YY_RULE_SETUP -#line 100 "scanner.ll" -loc.lines (yyleng); loc.step (); - YY_BREAK -case 3: -YY_RULE_SETUP -#line 102 "scanner.ll" -return yy::parser::make_MINUS (loc); - YY_BREAK -case 4: -YY_RULE_SETUP -#line 103 "scanner.ll" -return yy::parser::make_PLUS (loc); - YY_BREAK -case 5: -YY_RULE_SETUP -#line 104 "scanner.ll" -return yy::parser::make_STAR (loc); - YY_BREAK -case 6: -YY_RULE_SETUP -#line 105 "scanner.ll" -return yy::parser::make_SLASH (loc); - YY_BREAK -case 7: -YY_RULE_SETUP -#line 106 "scanner.ll" -return yy::parser::make_LPAREN (loc); - YY_BREAK -case 8: -YY_RULE_SETUP -#line 107 "scanner.ll" -return yy::parser::make_RPAREN (loc); - YY_BREAK -case 9: -YY_RULE_SETUP -#line 108 "scanner.ll" -return yy::parser::make_ASSIGN (loc); - YY_BREAK -case 10: -YY_RULE_SETUP -#line 110 "scanner.ll" -return make_NUMBER (yytext, loc); - YY_BREAK -case 11: -YY_RULE_SETUP -#line 111 "scanner.ll" -return yy::parser::make_IDENTIFIER (yytext, loc); - YY_BREAK -case 12: -YY_RULE_SETUP -#line 112 "scanner.ll" -{ - throw yy::parser::syntax_error - (loc, "invalid character: " + std::string(yytext)); -} - YY_BREAK -case YY_STATE_EOF(INITIAL): -#line 116 "scanner.ll" -return yy::parser::make_END (loc); - YY_BREAK -case 13: -YY_RULE_SETUP -#line 117 "scanner.ll" -ECHO; - YY_BREAK -#line 1060 "scanner.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; -/* %if-c-only */ - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - 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 user's declarations */ -} /* end of yylex */ -/* %ok-for-header */ - -/* %if-c++-only */ -/* %not-for-header */ -/* %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 */ -static int yy_get_next_buffer (void) -/* %endif */ -/* %if-c++-only */ -/* %endif */ -{ - char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - char *source = (yytext_ptr); - 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_LVALUE; - - 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. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = NULL; - - 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), 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; - - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( - (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - /* "- 2" to take care of EOB's */ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); - } - - (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 */ - static yy_state_type yy_get_previous_state (void) -/* %endif */ -/* %if-c++-only */ -/* %endif */ -{ - yy_state_type yy_current_state; - char *yy_cp; - -/* %% [15.0] code to get the start state into yy_current_state goes here */ - yy_current_state = (yy_start); - - 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 */ - 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 >= 22 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + 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 */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -/* %endif */ -/* %if-c++-only */ -/* %endif */ -{ - int yy_is_jam; - /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ - char *yy_cp = (yy_c_buf_p); - - 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 >= 22 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 21); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_UNPUT -/* %if-c-only */ - -/* %endif */ -#endif - -/* %if-c-only */ -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -/* %endif */ -/* %if-c++-only */ -/* %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 = (int) ((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 0; - - 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 */ - - return c; -} -/* %if-c-only */ -#endif /* ifndef YY_NO_INPUT */ -/* %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 */ - void yyrestart (FILE * input_file ) -/* %endif */ -/* %if-c++-only */ -/* %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( ); -} - -/* %if-c++-only */ -/* %endif */ - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ -/* %if-c-only */ - void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -/* %endif */ -/* %if-c++-only */ -/* %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 */ -static void yy_load_buffer_state (void) -/* %endif */ -/* %if-c++-only */ -/* %endif */ -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; -/* %if-c-only */ - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - (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 */ - YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) -/* %endif */ -/* %if-c++-only */ -/* %endif */ -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yyalloc( 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 *) yyalloc( (yy_size_t) (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; -} - -/* %if-c++-only */ -/* %endif */ - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ -/* %if-c-only */ - void yy_delete_buffer (YY_BUFFER_STATE b ) -/* %endif */ -/* %if-c++-only */ -/* %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 ) - yyfree( (void *) b->yy_ch_buf ); - - yyfree( (void *) b ); -} - -/* 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 */ - static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) -/* %endif */ -/* %if-c++-only */ -/* %endif */ - -{ - int oerrno = errno; - - yy_flush_buffer( b ); - -/* %if-c-only */ - b->yy_input_file = file; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - 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 */ - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - -/* %endif */ -/* %if-c++-only */ -/* %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 */ - void yy_flush_buffer (YY_BUFFER_STATE b ) -/* %endif */ -/* %if-c++-only */ -/* %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 */ -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) -/* %endif */ -/* %if-c++-only */ -/* %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 */ -void yypop_buffer_state (void) -/* %endif */ -/* %if-c++-only */ -/* %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 */ -static void yyensure_buffer_stack (void) -/* %endif */ -/* %if-c++-only */ -/* %endif */ -{ - yy_size_t 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; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - 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. */ - yy_size_t grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - /* 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 */ -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return NULL; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = NULL; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer( b ); - - return b; -} -/* %endif */ - -/* %if-c-only */ -/** Setup the input buffer state to scan a string. The next call to yylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * yy_scan_bytes() instead. - */ -YY_BUFFER_STATE yy_scan_string (const char * yystr ) -{ - - return yy_scan_bytes( yystr, (int) strlen(yystr) ); -} -/* %endif */ - -/* %if-c-only */ -/** Setup the input buffer state to scan the given bytes. The next call to yylex() will - * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc( n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer( buf, n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} -/* %endif */ - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -/* %if-c-only */ -static void yynoreturn yy_fatal_error (const char* msg ) -{ - fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} -/* %endif */ -/* %if-c++-only */ -/* %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 */ - -/** Get the current line number. - * - */ -int yyget_lineno (void) -{ - - return yylineno; -} - -/** Get the input stream. - * - */ -FILE *yyget_in (void) -{ - return yyin; -} - -/** Get the output stream. - * - */ -FILE *yyget_out (void) -{ - return yyout; -} - -/** Get the length of the current token. - * - */ -int yyget_leng (void) -{ - return yyleng; -} - -/** Get the current token. - * - */ - -char *yyget_text (void) -{ - return yytext; -} - -/* %if-reentrant */ -/* %endif */ - -/** Set the current line number. - * @param _line_number line number - * - */ -void yyset_lineno (int _line_number ) -{ - - yylineno = _line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param _in_str A readable stream. - * - * @see yy_switch_to_buffer - */ -void yyset_in (FILE * _in_str ) -{ - yyin = _in_str ; -} - -void yyset_out (FILE * _out_str ) -{ - yyout = _out_str ; -} - -int yyget_debug (void) -{ - return yy_flex_debug; -} - -void yyset_debug (int _bdebug ) -{ - yy_flex_debug = _bdebug ; -} - -/* %endif */ - -/* %if-reentrant */ -/* %if-bison-bridge */ -/* %endif */ -/* %endif if-c-only */ - -/* %if-c-only */ -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from yylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = NULL; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = NULL; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - yyin = stdin; - yyout = stdout; -#else - yyin = NULL; - yyout = NULL; -#endif - - /* For future reference: Set errno on error, since we are called by - * yylex_init() - */ - return 0; -} -/* %endif */ - -/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */ -/* yylex_destroy is for both reentrant and non-reentrant scanners. */ -int yylex_destroy (void) -{ - - /* 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. */ - yyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * yylex() is called, initialization will occur. */ - yy_init_globals( ); - -/* %if-reentrant */ -/* %endif */ - return 0; -} -/* %endif */ - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n ) -{ - - int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s ) -{ - int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *yyalloc (yy_size_t size ) -{ - return malloc(size); -} - -void *yyrealloc (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 realloc(ptr, size); -} - -void yyfree (void * ptr ) -{ - free( (char *) ptr ); /* see yyrealloc() 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 117 "scanner.ll" - - -yy::parser::symbol_type -make_NUMBER (const std::string &s, const yy::parser::location_type& loc) -{ - errno = 0; - long n = strtol (s.c_str(), NULL, 10); - if (! (INT_MIN <= n && n <= INT_MAX && errno != ERANGE)) - throw yy::parser::syntax_error (loc, "integer is out of range: " + s); - return yy::parser::make_NUMBER ((int) n, loc); -} - -void -driver::scan_begin () -{ - yy_flex_debug = trace_scanning; - if (file.empty () || file == "-") - yyin = stdin; - else if (!(yyin = fopen (file.c_str (), "r"))) - { - std::cerr << "cannot open " << file << ": " << strerror(errno) << '\n'; - exit (EXIT_FAILURE); - } -} - -void -driver::scan_end () -{ - fclose (yyin); -} - diff --git a/flexBison/cplusplus/scanner.o b/flexBison/cplusplus/scanner.o deleted file mode 100644 index aaa4c05f546c910f051cefe09ee83d6b796f2b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57568 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 FegH^ji?jd$ -- GitLab