diff --git a/ChangeLog b/ChangeLog index fb61a85..e2c9d1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -49,6 +49,11 @@ CHANGELOG - Added the '$F' replacement string to the testwave application. This allows to handle file paths sensitive comparison of the expected and real results. - Fixed a minor problem in the whitespace eating component. +- Added optional trigraph conversion. +- Changed all size_t, time_t etc. to std::size_t, std::time_t etc (for CW). +- If the comments should not be preserved every C comment containing at minimum + one newline is now converted to a newline token. +- Added the lexed_tokens sample. Tue Mar 22 14:52:45 WEST 2005 Version 1.1.15 diff --git a/doc/class_reference_context.html b/doc/class_reference_context.html index 30834c4..3ebc13f 100644 --- a/doc/class_reference_context.html +++ b/doc/class_reference_context.html @@ -174,7 +174,7 @@

Constructor

    context(IteratorT const &first, 
         IteratorT const &last, 
-        Saturday, March 12, 2005  11:41e> 
+        Monday, April 4, 2005  7:45e> 
   

Constructs a context object on top of the input stream given by the pair of auxilliary iterators [first, last). The iterators should be at least forward_iterator type iterators. The filename parameter @@ -390,7 +390,7 @@

    void set_language(language_support language);
     language_support get_language() const;
-

This functions allow to specify the language mode, in which the Wave +

This functions allows to specify the language mode, in which the Wave library should work. The possible language modes are defined by the enumerated type language_support:

    enum language_support {
@@ -404,8 +404,9 @@
     };

When used with support_variadics the support for variadics, placemarkers and the operator _Pragma() is enabled in normal C++ mode. The support_c99 - switch to the C99 language support.

-
+ switches to the C99 language support.

+ +

Note: The set_language function internally resets the list of defined macros, so please be careful not to call it after you have defined your own macros already.

set_max_include_nesting_depth
g et_max_include_nesting_depth

    void set_max_include_nesting_depth(size_t new_depth); 
@@ -430,7 +431,7 @@
   Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  

 

diff --git a/doc/samples.html b/doc/samples.html index f47da24..2f9da45 100644 --- a/doc/samples.html +++ b/doc/samples.html @@ -27,6 +27,8 @@

The Wave library contains several samples illustrating how to use the different features. This section describes these samples and its main characteristics.

The quick_start sample

The quick_start sample shows a minimal way to use the Wave preprocessor library. It simply opens the file given as the first command line argument, preprocesses it assuming that there aren't any additional include paths or macros defined and outputs the textual representation of the tokens generated from the given input file. This sample may be used to introduce yourself to Wave, because it does not contain all the potential additional complexity exposed by more complex samples.

+

The lexed_tokens sample

+

The lexed_tokens sample shows a minimal way to use the C++ lexing component of Wave without using the preprocessor. It opens the file specified as the first command line argument and prints out the contents of the tokens returned from the lexer.

The cpp_tokens sample

The cpp_tokens sample dumps out the information contained within the tokens returned from the iterator supplied by the Wave library. It shows, how to use the Wave library in conjunction with custom lexer and custom token types. The lexer used within this sample is SLex [5] based, i.e. it is feeded during runtime (at startup) with the token definitions (regular expressions) and generates a resulting DFA table. This table is used for token identification and is saved to disc afterwards to avoid the table generation process at the next program startup. The name of the file to which the DFA table is saved is wave_slex_lexer.dfa.

The main advantage of this SLex based lexer if compared to the default Re2C [3] generated lexer is, that it provides not only the line information, where a particular token was recognized, but also the related column position. Otherwise the SLex based lexer is functionally fully compatible to the Re2C based one, i.e. you always may switch your application to use it, if you additionally need to get the column information back from the preprocessing.

@@ -86,7 +88,7 @@ preprocessed tokens generated from a given input file. It is described in more d Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

 

diff --git a/include/boost/wave/cpplexer/convert_trigraphs.hpp b/include/boost/wave/cpplexer/convert_trigraphs.hpp new file mode 100644 index 0000000..3ec2e45 --- /dev/null +++ b/include/boost/wave/cpplexer/convert_trigraphs.hpp @@ -0,0 +1,130 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + + Grammar for universal character validation (see C++ standard: Annex E) + + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ +#if !defined(CONVERT_TRIGRAPHS_HK050403_INCLUDED) +#define CONVERT_TRIGRAPHS_HK050403_INCLUDED + +#include + +/////////////////////////////////////////////////////////////////////////////// +namespace boost { +namespace wave { +namespace cpplexer { +namespace impl { + +/////////////////////////////////////////////////////////////////////////////// +// +// +// +/////////////////////////////////////////////////////////////////////////////// +template +inline bool +is_trigraph(StringT const& trigraph) +{ + if (trigraph.size() < 3 || '?' != trigraph[0] || '?' != trigraph[1]) + return false; + + switch (trigraph[2]) { + case '\'': case '=': case '/': case '(': + case ')': case '<': case '>': case '!': + case '-': + break; + + default: + return false; + } + + return true; +} + +/////////////////////////////////////////////////////////////////////////////// +// +// convert_trigraph +// +// The function convert_trigraph() converts a single trigraph character +// sequence into the corresponding character. +// +// If the given character sequence doesn't form a valid trigraph sequence +// no conversion is performed. +// +/////////////////////////////////////////////////////////////////////////////// +template +inline StringT +convert_trigraph(StringT const &trigraph, int line, int column, + StringT const &file_name) +{ +StringT result (trigraph); + + if (is_trigraph(trigraph)) { + switch (trigraph[2]) { + case '\'': result = "^"; break; + case '=': result = "#"; break; + case '/': result = "\\"; break; + case '(': result = "["; break; + case ')': result = "]"; break; + case '<': result = "{"; break; + case '>': result = "}"; break; + case '!': result = "|"; break; + case '-': result = "~"; break; + } + } + return result; +} + +/////////////////////////////////////////////////////////////////////////////// +// +// convert_trigraphs +// +// The function convert_trigraph() converts all trigraphs in the given +// string into the corresponding characters. +// +// If one of the given character sequences doesn't form a valid trigraph +// sequence no conversion is performed. +// +/////////////////////////////////////////////////////////////////////////////// +template +inline StringT +convert_trigraphs(StringT const &value, int line, int column, + StringT const &file_name) +{ + StringT result; + typename StringT::size_type pos = 0; + typename StringT::size_type pos1 = value.find_first_of ("?", 0); + if (StringT::npos != pos1) { + do { + result += value.substr(pos, pos1-pos); + StringT trigraph (value.substr(pos1)); + if (is_trigraph(trigraph)) { + result += convert_trigraph(trigraph, line, column, file_name); + pos1 = value.find_first_of ("?", pos = pos1+3); + } + else { + result += value[pos1]; + pos1 = value.find_first_of ("?", pos = pos1+1); + } + } while (StringT::npos != pos1); + result += value.substr(pos); + } + else { + result = value; + } + return result; +} + +/////////////////////////////////////////////////////////////////////////////// +} // namespace impl +} // namespace cpplexer +} // namespace wave +} // namespace boost + +#endif // !defined(CONVERT_TRIGRAPHS_HK050403_INCLUDED) + + diff --git a/include/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp b/include/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp index 8880ca2..9f4c84f 100644 --- a/include/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp +++ b/include/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -137,7 +138,8 @@ lexer::get() switch (id) { case T_IDENTIFIER: // test identifier characters for validity (throws if invalid chars found) - value = string_type((char const *)scanner.tok, scanner.cur-scanner.tok); + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); if (!(language & support_option_no_character_validation)) impl::validate_identifier_name(value, scanner.line, -1, filename); break; @@ -145,7 +147,10 @@ lexer::get() case T_STRINGLIT: case T_CHARLIT: // test literal characters for validity (throws if invalid chars found) - value = string_type((char const *)scanner.tok, scanner.cur-scanner.tok); + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); + if (language & support_option_convert_trigraphs) + value = impl::convert_trigraphs(value, scanner.line, -1, filename); if (!(language & support_option_no_character_validation)) impl::validate_literal(value, scanner.line, -1, filename); break; @@ -155,7 +160,8 @@ lexer::get() case T_PP_QHEADER: case T_PP_INCLUDE: // convert to the corresponding ..._next token, if appropriate - value = string_type((char const *)scanner.tok, scanner.cur-scanner.tok); + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); if (string_type::npos != value.find("include_")) id = token_id(id | AltTokenType); break; @@ -172,7 +178,8 @@ lexer::get() case T_SPACE: case T_SPACE2: case T_ANY: - value = string_type((char const *)scanner.tok, scanner.cur-scanner.tok); + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); break; case T_EOF: @@ -181,11 +188,42 @@ lexer::get() at_eof = true; break; + case T_OR_TRIGRAPH: + case T_XOR_TRIGRAPH: + case T_LEFTBRACE_TRIGRAPH: + case T_RIGHTBRACE_TRIGRAPH: + case T_LEFTBRACKET_TRIGRAPH: + case T_RIGHTBRACKET_TRIGRAPH: + case T_COMPL_TRIGRAPH: + case T_POUND_TRIGRAPH: + if (language & support_option_convert_trigraphs) { + value = cache.get_token_value(BASEID_FROM_TOKEN(id)); + } + else { + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); + } + break; + + case T_ANY_TRIGRAPH: + if (language & support_option_convert_trigraphs) { + value = impl::convert_trigraph( + string_type((char const *)scanner.tok, + scanner.cur-scanner.tok), + scanner.line, -1, filename); + } + else { + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); + } + break; + default: if (CATEGORY_FROM_TOKEN(id) != EXTCATEGORY_FROM_TOKEN(id) || IS_CATEGORY(id, UnknownTokenType)) { - value = string_type((char const *)scanner.tok, scanner.cur-scanner.tok); + value = string_type((char const *)scanner.tok, + scanner.cur-scanner.tok); } else { value = cache.get_token_value(id); diff --git a/include/boost/wave/cpplexer/validate_universal_char.hpp b/include/boost/wave/cpplexer/validate_universal_char.hpp index ed22d2c..b39bd73 100644 --- a/include/boost/wave/cpplexer/validate_universal_char.hpp +++ b/include/boost/wave/cpplexer/validate_universal_char.hpp @@ -12,7 +12,7 @@ #if !defined(VALIDATE_UNIVERSAL_CHAR_HPP_55F1B811_CD76_4C72_8344_CBC69CF3B339_INCLUDED) #define VALIDATE_UNIVERSAL_CHAR_HPP_55F1B811_CD76_4C72_8344_CBC69CF3B339_INCLUDED -#include +#include #include #include @@ -225,7 +225,7 @@ typename StringT::size_type pos = name.find_first_of('\\'); while (StringT::npos != pos) { // the identifier name contains a backslash (must be universal char) - BOOST_SPIRIT_ASSERT('u' == name[pos+1] || 'U' == name[pos+1]); + BOOST_ASSERT('u' == name[pos+1] || 'U' == name[pos+1]); StringT uchar_val(name.substr(pos+2, ('u' == name[pos+1]) ? 4 : 8)); universal_char_type type = diff --git a/include/boost/wave/language_support.hpp b/include/boost/wave/language_support.hpp index 5336176..911203f 100644 --- a/include/boost/wave/language_support.hpp +++ b/include/boost/wave/language_support.hpp @@ -31,6 +31,7 @@ enum language_support { support_option_mask = 0xFF00, support_option_preserve_comments = 0x0100, support_option_no_character_validation = 0x0200, + support_option_convert_trigraphs = 0x0400, }; /////////////////////////////////////////////////////////////////////////////// @@ -142,6 +143,33 @@ enable_preserve_comments(language_support language, bool enable = true) return static_cast(language & ~support_option_preserve_comments); } +/////////////////////////////////////////////////////////////////////////////// +// +// get_support_options +// +// Set preserve comments support in the language to support +// +/////////////////////////////////////////////////////////////////////////////// +inline language_support +get_support_options(language_support language) +{ + return static_cast(language & support_option_mask); +} + +/////////////////////////////////////////////////////////////////////////////// +// +// set_support_options +// +// Set language option (for fine tuning of lexer bahaviour) +// +/////////////////////////////////////////////////////////////////////////////// +inline language_support +set_support_options(language_support language, language_support option) +{ + return static_cast( + (language & ~support_option_mask) | (option & support_option_mask)); +} + /////////////////////////////////////////////////////////////////////////////// } // namespace wave } // namespace boost diff --git a/include/boost/wave/token_ids.hpp b/include/boost/wave/token_ids.hpp index cb21f83..d509780 100644 --- a/include/boost/wave/token_ids.hpp +++ b/include/boost/wave/token_ids.hpp @@ -69,6 +69,7 @@ enum token_category { TriGraphTokenType = 0x00200000, AltExtTokenType = 0x00500000, // and, bit_and etc. ExtTokenTypeMask = 0xFFF00000, + ExtTokenOnlyMask = 0x00F00000, TokenValueMask = 0x000FFFFF, MainTokenMask = TokenTypeMask|TokenValueMask, }; @@ -246,6 +247,7 @@ enum token_id { T_POUND_ALT = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType), T_POUND_TRIGRAPH = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType), T_ANY = TOKEN_FROM_ID(397, UnknownTokenType), + T_ANY_TRIGRAPH = TOKEN_FROM_ID(397, UnknownTokenType|TriGraphTokenType), T_PP_INCLUDE = TOKEN_FROM_ID(398, PPTokenType), T_PP_QHEADER = TOKEN_FROM_ID(399, PPTokenType), T_PP_HHEADER = TOKEN_FROM_ID(400, PPTokenType), @@ -294,6 +296,10 @@ enum token_id { #define BASE_TOKEN(tok) \ boost::wave::token_id((tok) & MainTokenMask) \ /**/ +#undef BASEID_FROM_TOKEN +#define BASEID_FROM_TOKEN(tok) \ + boost::wave::token_id(((tok) & ~ExtTokenTypeMask)) \ + /**/ /////////////////////////////////////////////////////////////////////////////// // return a token name diff --git a/include/boost/wave/util/cpp_iterator.hpp b/include/boost/wave/util/cpp_iterator.hpp index 44f06de..23683e1 100644 --- a/include/boost/wave/util/cpp_iterator.hpp +++ b/include/boost/wave/util/cpp_iterator.hpp @@ -410,9 +410,10 @@ token_id id = T_ANY; // if comments shouldn't be preserved replace them with newlines id = token_id(act_token); - if (T_CPPCOMMENT == id && !need_preserve_comments(ctx.get_language())) + if (!need_preserve_comments(ctx.get_language()) && + (T_CPPCOMMENT == id || util::ccomment_has_newline(act_token))) { - act_token.set_token_id(T_NEWLINE); + act_token.set_token_id(id = T_NEWLINE); act_token.set_value("\n"); } diff --git a/include/boost/wave/util/cpp_macromap.hpp b/include/boost/wave/util/cpp_macromap.hpp index e0045a9..00a1db3 100644 --- a/include/boost/wave/util/cpp_macromap.hpp +++ b/include/boost/wave/util/cpp_macromap.hpp @@ -1616,7 +1616,8 @@ position_type pos; #endif } -// predefine the __BASE_FILE__ macro which contains the main file name +// predefine the __BASE_FILE__ macro which contains the main file name + namespace fs = boost::filesystem; if (string_type(fname) != "") { fs::path filename(fname, fs::native); diff --git a/include/boost/wave/util/eat_whitespace.hpp b/include/boost/wave/util/eat_whitespace.hpp index c14823b..308d78f 100644 --- a/include/boost/wave/util/eat_whitespace.hpp +++ b/include/boost/wave/util/eat_whitespace.hpp @@ -21,6 +21,23 @@ namespace boost { namespace wave { namespace util { +/////////////////////////////////////////////////////////////////////////////// +template +bool ccomment_has_newline(TokenT const& token) +{ + using namespace boost::wave; + + if (T_CCOMMENT == token_id(token)) { + if (TokenT::string_type::npos != + token.get_value().find_first_of("\n")) + { + return true; + } + } + return false; +} + +/////////////////////////////////////////////////////////////////////////////// template class eat_whitespace { @@ -69,13 +86,8 @@ eat_whitespace::general(TokenT &token, bool &skipped_newline) else if (T_SPACE == id || T_SPACE2 == id || T_CCOMMENT == id) { state = &eat_whitespace::whitespace; - if (T_CCOMMENT == id) { - if (TokenT::string_type::npos != - token.get_value().find_first_of("\n")) - { - skipped_newline = true; - } - } + if (ccomment_has_newline(token)) + skipped_newline = true; if ((!preserve_comments || T_CCOMMENT != id) && token.get_value().size() > 1) @@ -106,11 +118,9 @@ eat_whitespace::newline(TokenT &token, bool &skipped_newline) } if (T_CCOMMENT == id) { - if (TokenT::string_type::npos != - token.get_value().find_first_of("\n")) - { + if (ccomment_has_newline(token)) skipped_newline = true; - } + if (preserve_comments) { state = &eat_whitespace::general; return false; @@ -130,11 +140,8 @@ eat_whitespace::newline_2nd(TokenT &token, bool &skipped_newline) if (T_SPACE == id || T_SPACE2 == id) return true; if (T_CCOMMENT == id) { - if (TokenT::string_type::npos != - token.get_value().find_first_of("\n")) - { + if (ccomment_has_newline(token)) skipped_newline = true; - } return !preserve_comments; } if (T_NEWLINE != id && T_CPPCOMMENT != id) @@ -158,11 +165,8 @@ eat_whitespace::whitespace(TokenT &token, bool &skipped_newline) } if (T_CCOMMENT == id) { - if (TokenT::string_type::npos != - token.get_value().find_first_of("\n")) - { + if (ccomment_has_newline(token)) skipped_newline = true; - } return !preserve_comments; } diff --git a/include/boost/wave/util/flex_string.hpp b/include/boost/wave/util/flex_string.hpp index aab43a4..4eb837d 100644 --- a/include/boost/wave/util/flex_string.hpp +++ b/include/boost/wave/util/flex_string.hpp @@ -114,7 +114,7 @@ namespace flex_string_details template inline Pod* pod_copy(const Pod* b, const Pod* e, Pod* d) { - const size_t s = e - b; + const std::size_t s = e - b; using namespace std; memcpy(d, b, s * sizeof(*b)); return d + s; @@ -374,7 +374,7 @@ public: { return pData_->pEnd_ - pData_->buffer_; } size_type max_size() const - { return size_t(-1) / sizeof(E) - sizeof(Data) - 1; } + { return std::size_t(-1) / sizeof(E) - sizeof(Data) - 1; } size_type capacity() const { return pData_->pEndOfMem_ - pData_->buffer_; } diff --git a/include/boost/wave/util/functor_input.hpp b/include/boost/wave/util/functor_input.hpp index 1f05d5c..b064740 100644 --- a/include/boost/wave/util/functor_input.hpp +++ b/include/boost/wave/util/functor_input.hpp @@ -11,6 +11,7 @@ #if !defined(FUNCTOR_INPUT_HPP_ED3A4C21_8F8A_453F_B438_08214FAC106A_INCLUDED) #define FUNCTOR_INPUT_HPP_ED3A4C21_8F8A_453F_B438_08214FAC106A_INCLUDED +#include #include /////////////////////////////////////////////////////////////////////////////// @@ -103,7 +104,7 @@ struct functor_input { void advance_input() { - BOOST_SPIRIT_ASSERT(0 != data); + BOOST_ASSERT(0 != data); data->curtok = (data->ftor)(); data->was_initialized = true; } @@ -116,7 +117,7 @@ struct functor_input { FunctorT& get_functor() const { - BOOST_SPIRIT_ASSERT(0 != data); + BOOST_ASSERT(0 != data); return data->ftor; } diff --git a/include/boost/wave/util/macro_helpers.hpp b/include/boost/wave/util/macro_helpers.hpp index d8d7097..dbcbcd0 100644 --- a/include/boost/wave/util/macro_helpers.hpp +++ b/include/boost/wave/util/macro_helpers.hpp @@ -11,6 +11,7 @@ #if !defined(MACRO_HELPERS_HPP_931BBC99_EBFA_4692_8FBE_B555998C2C39_INCLUDED) #define MACRO_HELPERS_HPP_931BBC99_EBFA_4692_8FBE_B555998C2C39_INCLUDED +#include #include #include #include @@ -136,7 +137,7 @@ namespace impl { using namespace boost::wave; typedef typename ContainerT::value_type::string_type string_type; - BOOST_SPIRIT_ASSERT(0 <= i && i < arguments.size()); + BOOST_ASSERT(0 <= i && i < arguments.size()); string_type result("\""); bool was_whitespace = false; diff --git a/samples/cpp_tokens/slex_token.hpp b/samples/cpp_tokens/slex_token.hpp index 1827d43..271511c 100644 --- a/samples/cpp_tokens/slex_token.hpp +++ b/samples/cpp_tokens/slex_token.hpp @@ -74,13 +74,13 @@ public: using namespace std; using namespace boost::wave; stream << setw(16) << left << boost::wave::get_token_name(id) << " (" - << "(#" << token_id(ID_FROM_TOKEN(*this)) + << "#" << token_id(ID_FROM_TOKEN(*this)) << ") at " << get_position().get_file() << " (" << setw(3) << right << get_position().get_line() << "/" << setw(2) << right << get_position().get_column() << "): >"; - for (size_t i = 0; i < value.size(); ++i) { + for (std::size_t i = 0; i < value.size(); ++i) { switch (value[i]) { case '\r': stream << "\\r"; break; case '\n': stream << "\\n"; break; diff --git a/samples/lexed_tokens/build/Jamfile b/samples/lexed_tokens/build/Jamfile new file mode 100644 index 0000000..f9d4da7 --- /dev/null +++ b/samples/lexed_tokens/build/Jamfile @@ -0,0 +1,24 @@ +# Boost.Wave: A Standard compliant C++ preprocessor library +# +# Boost Wave Library Sample Build Jamfile (lexed_tokens) +# +# http://www.boost.org/ +# +# Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost +# Software License, Version 1.0. (See accompanying file +# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +subproject libs/wave/samples/lexed_tokens/build ; + +exe lexed_tokens + : ../lexed_tokens.cpp + ../../../build/boost_wave + ../../../../../libs/filesystem/build/boost_filesystem + : + $(BOOST_ROOT) + <*>off # workaround for compiler bug + : + static + single + ; + diff --git a/samples/lexed_tokens/build/Jamfile.v2 b/samples/lexed_tokens/build/Jamfile.v2 new file mode 100644 index 0000000..3c87775 --- /dev/null +++ b/samples/lexed_tokens/build/Jamfile.v2 @@ -0,0 +1,17 @@ +# Boost.Wave: A Standard compliant C++ preprocessor library +# +# Boost Wave Library Sample Build Jamfile (lexed_tokens) +# +# http://www.boost.org/ +# +# Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost +# Software License, Version 1.0. (See accompanying file +# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +exe lexed_tokens + : ../lexed_tokens.cpp + ../../../build//boost_wave + : + msvc-7.1:off # workaround for compiler bug + ; + diff --git a/samples/lexed_tokens/lexed_tokens.cpp b/samples/lexed_tokens/lexed_tokens.cpp new file mode 100644 index 0000000..5809feb --- /dev/null +++ b/samples/lexed_tokens/lexed_tokens.cpp @@ -0,0 +1,149 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ + +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// Include Wave itself +#include + +/////////////////////////////////////////////////////////////////////////////// +// Include the lexer stuff +#include // token class +#include // lexer class + +/////////////////////////////////////////////////////////////////////////////// +// +// Special output operator for a lex_token. +// +// Note: this doesn't compile if BOOST_SPIRIT_DEBUG is defined. +// +/////////////////////////////////////////////////////////////////////////////// +template +inline std::ostream & +operator<< (std::ostream &stream, + boost::wave::cpplexer::lex_token const &t) +{ + using namespace std; + using namespace boost::wave; + + token_id id = token_id(t); + stream << setw(16) + << left << boost::wave::get_token_name(id) << " (" + << "#" << BASEID_FROM_TOKEN(id); + + if (ExtTokenTypeMask & id) { + // this is an extended token id + if (AltTokenType == (id & ExtTokenOnlyMask)) { + stream << ", AltTokenType"; + } + else if (TriGraphTokenType == (id & ExtTokenOnlyMask)) { + stream << ", TriGraphTokenType"; + } + else if (AltExtTokenType == (id & ExtTokenOnlyMask)){ + stream << ", AltExtTokenType"; + } + } + + stream + << ") at " << t.get_position().get_file() << " (" + << setw(3) << right << t.get_position().get_line() << "/" + << setw(2) << right << t.get_position().get_column() + << "): >"; + + typedef typename boost::wave::cpplexer::lex_token::string_type + string_type; + + string_type const& value = t.get_value(); + for (std::size_t i = 0; i < value.size(); ++i) { + switch (value[i]) { + case '\r': stream << "\\r"; break; + case '\n': stream << "\\n"; break; + case '\t': stream << "\\t"; break; + default: + stream << value[i]; + break; + } + } + stream << "<"; + + return stream; +} + +/////////////////////////////////////////////////////////////////////////////// +// main entry point +int main(int argc, char *argv[]) +{ + if (2 != argc) { + std::cerr << "Usage: lexed_tokens infile" << std::endl; + return -1; + } + +// current file position is saved for exception handling +boost::wave::util::file_position_type current_position; + + try { + // Open and read in the specified input file. + std::ifstream instream(argv[1]); + std::string instr; + + if (!instream.is_open()) { + std::cerr << "Could not open input file: " << argv[1] << std::endl; + return -2; + } + instream.unsetf(std::ios::skipws); + instr = std::string(std::istreambuf_iterator(instream.rdbuf()), + std::istreambuf_iterator()); + + // tokenize the input data into C++ tokens using the C++ lexer + typedef boost::wave::cpplexer::lex_token<> token_type; + typedef boost::wave::cpplexer::lex_iterator lexer_type; + typedef token_type::position_type position_type; + + position_type pos(argv[1]); + lexer_type it = lexer_type(instr.begin(), instr.end(), pos, + boost::wave::support_cpp); + lexer_type end = lexer_type(); + + while (it != end) { + std::cout << *it << std::endl; + ++it; + } + } + catch (boost::wave::cpp_exception &e) { + // some preprocessing error + std::cerr + << e.file_name() << "(" << e.line_no() << "): " + << e.description() << std::endl; + return 2; + } + catch (std::exception &e) { + // use last recognized token to retrieve the error position + std::cerr + << current_position.get_file() + << "(" << current_position.get_line() << "): " + << "exception caught: " << e.what() + << std::endl; + return 3; + } + catch (...) { + // use last recognized token to retrieve the error position + std::cerr + << current_position.get_file() + << "(" << current_position.get_line() << "): " + << "unexpected exception caught." << std::endl; + return 4; + } + return 0; +} diff --git a/samples/list_includes/list_includes.cpp b/samples/list_includes/list_includes.cpp index ba9258b..8884e95 100644 --- a/samples/list_includes/list_includes.cpp +++ b/samples/list_includes/list_includes.cpp @@ -113,7 +113,7 @@ struct trace_include_files set::iterator it = files.find(filename); if (it == files.end()) { // print indented filename - for (size_t i = 0; i < include_depth; ++i) + for (std::size_t i = 0; i < include_depth; ++i) cout << " "; cout << filename << endl; diff --git a/samples/waveidl/idl.cpp b/samples/waveidl/idl.cpp index f9612b8..fc50207 100644 --- a/samples/waveidl/idl.cpp +++ b/samples/waveidl/idl.cpp @@ -12,6 +12,7 @@ #include "idl.hpp" // global configuration +#include #include #include @@ -133,7 +134,7 @@ namespace cmd_line_util { include_paths *p = boost::any_cast(&v); - BOOST_SPIRIT_ASSERT(p); + BOOST_ASSERT(p); // Assume only one path per '-I' occurrence. string t = tokens[0]; if (t == "-") { diff --git a/samples/waveidl/idllexer/idl.re b/samples/waveidl/idllexer/idl.re index 9d7e330..82c2540 100644 --- a/samples/waveidl/idllexer/idl.re +++ b/samples/waveidl/idllexer/idl.re @@ -185,6 +185,7 @@ boost::wave::cpplexer::re2clex::uchar * fill(boost::wave::cpplexer::re2clex::Scanner *s, boost::wave::cpplexer::re2clex::uchar *cursor) { + using namespace std; // some systems have memcpy etc. in namespace std using namespace boost::wave::cpplexer::re2clex; if(!s->eof) diff --git a/samples/waveidl/idllexer/idl.re.cpp b/samples/waveidl/idllexer/idl.re.cpp index 8ced3a0..a0fcdc9 100644 --- a/samples/waveidl/idllexer/idl.re.cpp +++ b/samples/waveidl/idllexer/idl.re.cpp @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Sun Apr 3 10:39:32 2005 */ +/* Generated by re2c 0.5 on Mon Apr 4 10:56:59 2005 */ #line 1 "idl.re" /*============================================================================= Boost.Wave: A Standard compliant C++ preprocessor library @@ -187,6 +187,7 @@ boost::wave::cpplexer::re2clex::uchar * fill(boost::wave::cpplexer::re2clex::Scanner *s, boost::wave::cpplexer::re2clex::uchar *cursor) { + using namespace std; using namespace boost::wave::cpplexer::re2clex; if(!s->eof) @@ -367,7 +368,7 @@ scan(boost::wave::cpplexer::re2clex::Scanner *s) uchar *cursor = s->tok = s->cur; -#line 385 +#line 386 { @@ -518,14 +519,14 @@ yy3: yych = *++YYCURSOR; if(yych == '/') goto yy354; goto yy4; yy4: -#line 409 +#line 410 { RET(T_DIVIDE); } yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych == 'R') goto yy350; goto yy202; yy6: -#line 432 +#line 433 { RET(T_IDENTIFIER); } yy7: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -534,22 +535,22 @@ yy7: yyaccept = 0; yy8: yych = *++YYCURSOR; goto yy9; yy9: -#line 394 +#line 395 { RET(T_LEFTBRACE); } yy10: yych = *++YYCURSOR; goto yy11; yy11: -#line 395 +#line 396 { RET(T_RIGHTBRACE); } yy12: yych = *++YYCURSOR; goto yy13; yy13: -#line 396 +#line 397 { RET(T_LEFTBRACKET); } yy14: yych = *++YYCURSOR; goto yy15; yy15: -#line 397 +#line 398 { RET(T_RIGHTBRACKET); } yy16: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); @@ -593,99 +594,99 @@ yy16: yyaccept = 1; } } yy17: -#line 398 +#line 399 { RET(T_POUND); } yy18: yych = *++YYCURSOR; goto yy19; yy19: -#line 400 +#line 401 { RET(T_LEFTPAREN); } yy20: yych = *++YYCURSOR; goto yy21; yy21: -#line 401 +#line 402 { RET(T_RIGHTPAREN); } yy22: yych = *++YYCURSOR; goto yy23; yy23: -#line 402 +#line 403 { RET(T_SEMICOLON); } yy24: yych = *++YYCURSOR; goto yy25; yy25: -#line 403 +#line 404 { RET(T_COLON); } yy26: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if(yych == '?') goto yy341; goto yy27; yy27: -#line 404 +#line 405 { RET(T_QUESTION_MARK); } yy28: yych = *++YYCURSOR; if(yych <= '/') goto yy29; if(yych <= '9') goto yy168; goto yy29; yy29: -#line 405 +#line 406 { RET(T_DOT); } yy30: yych = *++YYCURSOR; if(yych == '+') goto yy339; goto yy31; yy31: -#line 406 +#line 407 { RET(T_PLUS); } yy32: yych = *++YYCURSOR; if(yych == '-') goto yy337; goto yy33; yy33: -#line 407 +#line 408 { RET(T_MINUS); } yy34: yych = *++YYCURSOR; goto yy35; yy35: -#line 408 +#line 409 { RET(T_STAR); } yy36: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if(yych == ':') goto yy238; goto yy37; yy37: -#line 410 +#line 411 { RET(T_PERCENT); } yy38: yych = *++YYCURSOR; goto yy39; yy39: -#line 411 +#line 412 { RET(T_XOR); } yy40: yych = *++YYCURSOR; if(yych == '&') goto yy236; goto yy41; yy41: -#line 412 +#line 413 { RET(T_AND); } yy42: yych = *++YYCURSOR; if(yych == '|') goto yy234; goto yy43; yy43: -#line 413 +#line 414 { RET(T_OR); } yy44: yych = *++YYCURSOR; goto yy45; yy45: -#line 414 +#line 415 { RET(T_COMPL); } yy46: yych = *++YYCURSOR; if(yych == '=') goto yy232; goto yy47; yy47: -#line 415 +#line 416 { RET(T_NOT); } yy48: yych = *++YYCURSOR; if(yych == '=') goto yy230; goto yy49; yy49: -#line 416 +#line 417 { RET(T_ASSIGN); } yy50: yych = *++YYCURSOR; if(yych <= ';') goto yy51; @@ -693,7 +694,7 @@ yy50: yych = *++YYCURSOR; if(yych <= '=') goto yy226; goto yy51; yy51: -#line 417 +#line 418 { RET(T_LESS); } yy52: yych = *++YYCURSOR; if(yych <= '<') goto yy53; @@ -701,12 +702,12 @@ yy52: yych = *++YYCURSOR; if(yych <= '>') goto yy224; goto yy53; yy53: -#line 418 +#line 419 { RET(T_GREATER); } yy54: yych = *++YYCURSOR; goto yy55; yy55: -#line 429 +#line 430 { RET(T_COMMA); } yy56: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -747,7 +748,7 @@ yy58: yyaccept = 4; if(yych == 'u') goto yy192; goto yy59; yy59: -#line 495 +#line 496 { /* if (0 != s->error_proc) (*s->error_proc)(s, "Unexpected character: '%c'", *s->tok); @@ -801,7 +802,7 @@ yy60: yyaccept = 5; } } yy61: -#line 435 +#line 436 { RET(T_INTLIT); } yy62: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); @@ -864,12 +865,12 @@ yy64: yyaccept = 4; yy65: yych = *++YYCURSOR; goto yy75; yy66: -#line 474 +#line 475 { RET(T_SPACE); } yy67: yych = *++YYCURSOR; goto yy68; yy68: -#line 477 +#line 478 { s->line++; RET(T_NEWLINE); @@ -880,7 +881,7 @@ yy69: yych = *++YYCURSOR; yy70: yych = *++YYCURSOR; goto yy71; yy71: -#line 483 +#line 484 { if(cursor != s->eof) { @@ -1001,7 +1002,7 @@ yy79: ++YYCURSOR; yy80: yych = *++YYCURSOR; goto yy81; yy81: -#line 447 +#line 448 { RET(T_STRINGLIT); } yy82: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -2018,7 +2019,7 @@ yy129: ++YYCURSOR; yy130: yych = *++YYCURSOR; goto yy131; yy131: -#line 444 +#line 445 { RET(T_CHARLIT); } yy132: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -2730,7 +2731,7 @@ yy163: ++YYCURSOR; yy164: yych = *++YYCURSOR; goto yy165; yy165: -#line 441 +#line 442 { RET(T_FIXEDPOINTLIT); } yy166: yyaccept = 5; YYMARKER = ++YYCURSOR; @@ -2801,7 +2802,7 @@ yy169: if(yych <= 'K'){ } } yy170: -#line 438 +#line 439 { RET(T_FLOATLIT); } yy171: yych = *++YYCURSOR; if(yych <= ','){ @@ -3336,42 +3337,42 @@ yy221: yych = *++YYCURSOR; yy222: yych = *++YYCURSOR; goto yy223; yy223: -#line 424 +#line 425 { RET(T_GREATEREQUAL); } yy224: yych = *++YYCURSOR; goto yy225; yy225: -#line 420 +#line 421 { RET(T_SHIFTRIGHT); } yy226: yych = *++YYCURSOR; goto yy227; yy227: -#line 423 +#line 424 { RET(T_LESSEQUAL); } yy228: yych = *++YYCURSOR; goto yy229; yy229: -#line 419 +#line 420 { RET(T_SHIFTLEFT); } yy230: yych = *++YYCURSOR; goto yy231; yy231: -#line 421 +#line 422 { RET(T_EQUAL); } yy232: yych = *++YYCURSOR; goto yy233; yy233: -#line 422 +#line 423 { RET(T_NOTEQUAL); } yy234: yych = *++YYCURSOR; goto yy235; yy235: -#line 426 +#line 427 { RET(T_OROR); } yy236: yych = *++YYCURSOR; goto yy237; yy237: -#line 425 +#line 426 { RET(T_ANDAND); } yy238: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3467,7 +3468,7 @@ yy252: yych = *++YYCURSOR; yy253: yych = *++YYCURSOR; goto yy254; yy254: -#line 471 +#line 472 { RET(T_PP_WARNING); } yy255: yych = *++YYCURSOR; if(yych != 'a') goto yy2; @@ -3484,7 +3485,7 @@ yy258: yych = *++YYCURSOR; yy259: yych = *++YYCURSOR; goto yy260; yy260: -#line 469 +#line 470 { RET(T_PP_PRAGMA); } yy261: yych = *++YYCURSOR; if(yych != 'n') goto yy2; @@ -3495,7 +3496,7 @@ yy262: yych = *++YYCURSOR; yy263: yych = *++YYCURSOR; goto yy264; yy264: -#line 467 +#line 468 { RET(T_PP_LINE); } yy265: yych = *++YYCURSOR; if(yych != 'd') goto yy2; @@ -3509,7 +3510,7 @@ yy267: yych = *++YYCURSOR; yy268: yych = *++YYCURSOR; goto yy269; yy269: -#line 466 +#line 467 { RET(T_PP_UNDEF); } yy270: yych = *++YYCURSOR; if(yych != 'f') goto yy2; @@ -3526,7 +3527,7 @@ yy273: yych = *++YYCURSOR; yy274: yych = *++YYCURSOR; goto yy275; yy275: -#line 465 +#line 466 { RET(T_PP_DEFINE); } yy276: yych = *++YYCURSOR; if(yych == 'r') goto yy289; @@ -3547,12 +3548,12 @@ yy280: yych = *++YYCURSOR; yy281: yych = *++YYCURSOR; goto yy282; yy282: -#line 463 +#line 464 { RET(T_PP_ELIF); } yy283: yych = *++YYCURSOR; goto yy284; yy284: -#line 462 +#line 463 { RET(T_PP_ELSE); } yy285: yych = *++YYCURSOR; if(yych != 'i') goto yy2; @@ -3563,7 +3564,7 @@ yy286: yych = *++YYCURSOR; yy287: yych = *++YYCURSOR; goto yy288; yy288: -#line 464 +#line 465 { RET(T_PP_ENDIF); } yy289: yych = *++YYCURSOR; if(yych != 'o') goto yy2; @@ -3574,7 +3575,7 @@ yy290: yych = *++YYCURSOR; yy291: yych = *++YYCURSOR; goto yy292; yy292: -#line 468 +#line 469 { RET(T_PP_ERROR); } yy293: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); @@ -3582,7 +3583,7 @@ yy293: yyaccept = 9; if(yych == 'n') goto yy322; goto yy294; yy294: -#line 459 +#line 460 { RET(T_PP_IF); } yy295: yych = *++YYCURSOR; if(yych != 'c') goto yy2; @@ -3623,7 +3624,7 @@ yy301: if(yych <= '!'){ } } yy302: -#line 457 +#line 458 { RET(T_PP_INCLUDE); } yy303: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3652,7 +3653,7 @@ yy307: if(yych <= '\f'){ yy308: yych = *++YYCURSOR; goto yy309; yy309: -#line 451 +#line 452 { RET(T_PP_HHEADER); } yy310: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3670,7 +3671,7 @@ yy311: if(yych <= '\f'){ yy312: yych = *++YYCURSOR; goto yy313; yy313: -#line 454 +#line 455 { RET(T_PP_QHEADER); } yy314: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3743,7 +3744,7 @@ yy324: yych = *++YYCURSOR; yy325: yych = *++YYCURSOR; goto yy326; yy326: -#line 461 +#line 462 { RET(T_PP_IFNDEF); } yy327: yych = *++YYCURSOR; if(yych != 'f') goto yy2; @@ -3751,7 +3752,7 @@ yy327: yych = *++YYCURSOR; yy328: yych = *++YYCURSOR; goto yy329; yy329: -#line 460 +#line 461 { RET(T_PP_IFDEF); } yy330: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3812,12 +3813,12 @@ yy336: ++YYCURSOR; yy337: yych = *++YYCURSOR; goto yy338; yy338: -#line 428 +#line 429 { RET(T_MINUSMINUS); } yy339: yych = *++YYCURSOR; goto yy340; yy340: -#line 427 +#line 428 { RET(T_PLUSPLUS); } yy341: yych = *++YYCURSOR; if(yych == '/') goto yy342; @@ -3830,7 +3831,7 @@ yy342: yych = *++YYCURSOR; yy343: yych = *++YYCURSOR; goto yy344; yy344: -#line 399 +#line 400 { RET(T_POUND_POUND); } yy345: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -3867,7 +3868,7 @@ yy348: yyaccept = 11; } } yy349: -#line 392 +#line 393 { RET(T_FALSE); } yy350: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -3900,20 +3901,20 @@ yy352: yyaccept = 12; } } yy353: -#line 391 +#line 392 { RET(T_TRUE); } yy354: yych = *++YYCURSOR; goto yy355; yy355: -#line 389 +#line 390 { goto cppcomment; } yy356: yych = *++YYCURSOR; goto yy357; yy357: -#line 388 +#line 389 { goto ccomment; } } -#line 503 +#line 504 ccomment: @@ -3946,12 +3947,12 @@ yy360:yy361: yych = *++YYCURSOR; if(yych == '/') goto yy370; goto yy362; yy362: -#line 516 +#line 517 { goto ccomment; } yy363: yych = *++YYCURSOR; goto yy364; yy364: -#line 509 +#line 510 { /*if(cursor == s->eof) RET(T_EOF);*/ /*s->tok = cursor; */ @@ -3966,7 +3967,7 @@ yy366: yych = *++YYCURSOR; yy367: yych = *++YYCURSOR; goto yy368; yy368: -#line 519 +#line 520 { yyaccept = 0; /* avoid warning about unreferenced variable */ if(cursor == s->eof) @@ -3993,10 +3994,10 @@ yy369: yych = *++YYCURSOR; yy370: yych = *++YYCURSOR; goto yy371; yy371: -#line 507 +#line 508 { RET(T_CCOMMENT); } } -#line 541 +#line 542 cppcomment: @@ -4022,7 +4023,7 @@ yy372: yy374:yy375: yych = *++YYCURSOR; goto yy376; yy376: -#line 546 +#line 547 { /*if(cursor == s->eof) RET(T_EOF); */ /*s->tok = cursor; */ @@ -4035,12 +4036,12 @@ yy377: yych = *++YYCURSOR; yy378: yych = *++YYCURSOR; goto yy379; yy379: -#line 553 +#line 554 { goto cppcomment; } yy380: yych = *++YYCURSOR; goto yy381; yy381: -#line 556 +#line 557 { yyaccept = 0; /* avoid warning about unreferenced variable */ if(cursor != s->eof) @@ -4058,7 +4059,7 @@ yy381: yy382: yych = *++YYCURSOR; goto yy376; } -#line 570 +#line 571 } /* end of scan */ diff --git a/src/cpplexer/re2clex/cpp.re b/src/cpplexer/re2clex/cpp.re index 249100a..99db679 100644 --- a/src/cpplexer/re2clex/cpp.re +++ b/src/cpplexer/re2clex/cpp.re @@ -173,6 +173,7 @@ bool is_backslash(uchar *p, uchar *end, int &len) uchar *fill(Scanner *s, uchar *cursor) { + using namespace std; // some systems have memcpy etc. in namespace std if(!s->eof) { uchar* p; @@ -557,7 +558,8 @@ Pound = "#" | "??=" | "%:"; } } "->" { RET(T_ARROW); } - + "??/" { RET(T_ANY_TRIGRAPH); } + ([a-zA-Z_] | UniversalChar) ([a-zA-Z_0-9] | UniversalChar)* { RET(T_IDENTIFIER); } diff --git a/src/cpplexer/re2clex/cpp.re.cpp b/src/cpplexer/re2clex/cpp.re.cpp index db34f7e..73ffa5c 100644 --- a/src/cpplexer/re2clex/cpp.re.cpp +++ b/src/cpplexer/re2clex/cpp.re.cpp @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Sun Apr 3 10:39:27 2005 */ +/* Generated by re2c 0.5 on Mon Apr 4 12:45:04 2005 */ #line 1 "cpp.re" /*============================================================================= Boost.Wave: A Standard compliant C++ preprocessor library @@ -175,6 +175,7 @@ bool is_backslash(uchar *p, uchar *end, int &len) uchar *fill(Scanner *s, uchar *cursor) { + using namespace std; // some systems have memcpy etc. in namespace std if(!s->eof) { uchar* p; @@ -346,7 +347,7 @@ boost::wave::token_id scan(Scanner *s) { uchar *cursor = s->tok = s->cur; -#line 363 +#line 364 { @@ -478,102 +479,103 @@ yy0: } yy2: YYCURSOR = YYMARKER; switch(yyaccept){ - case 101: goto yy927; - case 100: goto yy925; - case 97: goto yy911; - case 96: goto yy908; - case 95: goto yy901; - case 94: goto yy899; - case 93: goto yy894; - case 92: goto yy891; - case 90: goto yy881; - case 91: goto yy887; - case 89: goto yy879; - case 87: goto yy863; - case 86: goto yy858; - case 83: goto yy835; - case 85: goto yy852; - case 84: goto yy847; - case 82: goto yy832; - case 81: goto yy829; - case 80: goto yy826; - case 79: goto yy821; - case 78: goto yy816; - case 77: goto yy807; - case 76: goto yy803; - case 75: goto yy799; - case 74: goto yy797; - case 73: goto yy788; - case 70: goto yy776; - case 72: goto yy784; - case 71: goto yy780; - case 69: goto yy774; - case 68: goto yy770; - case 67: goto yy763; - case 66: goto yy755; - case 63: goto yy744; - case 60: goto yy730; - case 59: goto yy725; - case 58: goto yy716; - case 57: goto yy709; - case 56: goto yy703; - case 55: goto yy689; - case 54: goto yy681; - case 53: goto yy677; - case 52: goto yy673; - case 50: goto yy661; - case 51: goto yy667; - case 49: goto yy657; - case 48: goto yy651; - case 47: goto yy642; - case 46: goto yy635; - case 45: goto yy633; - case 44: goto yy628; - case 43: goto yy626; - case 42: goto yy623; - case 41: goto yy620; - case 40: goto yy618; - case 39: goto yy605; - case 38: goto yy602; - case 37: goto yy594; - case 36: goto yy588; - case 35: goto yy582; - case 34: goto yy580; - case 33: goto yy570; - case 32: goto yy564; - case 28: goto yy552; - case 31: goto yy558; - case 30: goto yy556; - case 29: goto yy554; - case 22: goto yy516; - case 20: goto yy506; - case 21: goto yy511; - case 19: goto yy498; - case 17: goto yy484; - case 26: goto yy538; - case 25: goto yy535; - case 27: goto yy545; - case 24: goto yy529; - case 18: goto yy490; - case 23: goto yy519; + case 102: goto yy928; + case 101: goto yy926; + case 98: goto yy912; + case 97: goto yy909; + case 96: goto yy902; + case 95: goto yy900; + case 94: goto yy895; + case 93: goto yy892; + case 91: goto yy882; + case 92: goto yy888; + case 90: goto yy880; + case 88: goto yy864; + case 87: goto yy859; + case 84: goto yy836; + case 86: goto yy853; + case 85: goto yy848; + case 83: goto yy833; + case 82: goto yy830; + case 81: goto yy827; + case 80: goto yy822; + case 79: goto yy817; + case 78: goto yy808; + case 77: goto yy804; + case 76: goto yy800; + case 75: goto yy798; + case 74: goto yy789; + case 71: goto yy777; + case 73: goto yy785; + case 72: goto yy781; + case 70: goto yy775; + case 69: goto yy771; + case 68: goto yy764; + case 67: goto yy756; + case 64: goto yy745; + case 61: goto yy731; + case 60: goto yy726; + case 59: goto yy717; + case 58: goto yy710; + case 57: goto yy704; + case 56: goto yy690; + case 55: goto yy682; + case 54: goto yy678; + case 53: goto yy674; + case 51: goto yy662; + case 52: goto yy668; + case 50: goto yy658; + case 49: goto yy652; + case 48: goto yy643; + case 47: goto yy636; + case 46: goto yy634; + case 45: goto yy629; + case 44: goto yy627; + case 43: goto yy624; + case 42: goto yy621; + case 41: goto yy619; + case 40: goto yy606; + case 39: goto yy603; + case 38: goto yy595; + case 37: goto yy589; + case 36: goto yy583; + case 35: goto yy581; + case 34: goto yy571; + case 33: goto yy565; + case 29: goto yy553; + case 32: goto yy559; + case 31: goto yy557; + case 30: goto yy555; + case 23: goto yy517; + case 21: goto yy507; + case 22: goto yy512; + case 20: goto yy499; + case 18: goto yy485; + case 27: goto yy539; + case 26: goto yy536; + case 28: goto yy546; + case 25: goto yy530; + case 19: goto yy491; + case 24: goto yy520; case 2: goto yy43; case 14: goto yy418; case 15: goto yy446; case 1: goto yy29; case 3: goto yy51; case 10: goto yy263; - case 99: goto yy919; + case 100: goto yy920; case 4: goto yy64; - case 98: goto yy916; + case 99: goto yy917; case 16: goto yy450; - case 88: goto yy872; - case 64: goto yy749; + case 89: goto yy873; + case 65: goto yy750; case 11: goto yy267; - case 103: goto yy933; - case 62: goto yy737; - case 65: goto yy753; - case 102: goto yy929; - case 61: goto yy733; + case 104: goto yy934; + case 63: goto yy738; + case 66: goto yy754; + case 103: goto yy930; + case 62: goto yy734; + case 17: goto yy454; case 0: goto yy6; case 6: goto yy80; case 9: goto yy188; @@ -585,184 +587,184 @@ yy2: YYCURSOR = YYMARKER; } yy3: yych = *++YYCURSOR; if(yych <= '.'){ - if(yych == '*') goto yy938; + if(yych == '*') goto yy939; goto yy4; } else { - if(yych <= '/') goto yy936; - if(yych == '=') goto yy934; + if(yych <= '/') goto yy937; + if(yych == '=') goto yy935; goto yy4; } yy4: -#line 499 +#line 500 { RET(T_DIVIDE); } yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'r'){ - if(yych == 'n') goto yy920; + if(yych == 'n') goto yy921; goto yy219; } else { - if(yych <= 's') goto yy921; - if(yych == 'u') goto yy922; + if(yych <= 's') goto yy922; + if(yych == 'u') goto yy923; goto yy219; } yy6: -#line 562 +#line 564 { RET(T_IDENTIFIER); } yy7: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'n'){ - if(yych == 'i') goto yy902; + if(yych == 'i') goto yy903; goto yy219; } else { - if(yych <= 'o') goto yy903; - if(yych == 'r') goto yy904; + if(yych <= 'o') goto yy904; + if(yych == 'r') goto yy905; goto yy219; } yy8: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'a': goto yy864; - case 'h': goto yy865; - case 'l': goto yy866; - case 'o': goto yy867; + case 'a': goto yy865; + case 'h': goto yy866; + case 'l': goto yy867; + case 'o': goto yy868; default: goto yy219; } yy9: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'n'){ - if(yych == 'e') goto yy833; + if(yych == 'e') goto yy834; goto yy219; } else { - if(yych <= 'o') goto yy834; - if(yych == 'y') goto yy836; + if(yych <= 'o') goto yy835; + if(yych == 'y') goto yy837; goto yy219; } yy10: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'm'){ - if(yych == 'l') goto yy808; + if(yych == 'l') goto yy809; goto yy219; } else { - if(yych <= 'n') goto yy809; - if(yych == 'x') goto yy810; + if(yych <= 'n') goto yy810; + if(yych == 'x') goto yy811; goto yy219; } yy11: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'a': goto yy789; - case 'l': goto yy790; - case 'o': goto yy791; - case 'r': goto yy792; + case 'a': goto yy790; + case 'l': goto yy791; + case 'o': goto yy792; + case 'r': goto yy793; default: goto yy219; } yy12: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'o') goto yy785; + if(yych == 'o') goto yy786; goto yy219; yy13: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'f') goto yy775; - if(yych == 'n') goto yy777; + if(yych == 'f') goto yy776; + if(yych == 'n') goto yy778; goto yy219; yy14: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'o') goto yy771; + if(yych == 'o') goto yy772; goto yy219; yy15: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'u') goto yy764; + if(yych == 'u') goto yy765; goto yy219; yy16: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'd'){ - if(yych == 'a') goto yy745; + if(yych == 'a') goto yy746; goto yy219; } else { - if(yych <= 'e') goto yy746; - if(yych == 'o') goto yy747; + if(yych <= 'e') goto yy747; + if(yych == 'o') goto yy748; goto yy219; } yy17: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'p') goto yy731; - if(yych == 'r') goto yy732; + if(yych == 'p') goto yy732; + if(yych == 'r') goto yy733; goto yy219; yy18: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'r') goto yy710; - if(yych == 'u') goto yy711; + if(yych == 'r') goto yy711; + if(yych == 'u') goto yy712; goto yy219; yy19: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'e') goto yy682; + if(yych == 'e') goto yy683; goto yy219; yy20: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 's'){ if(yych <= 'g') goto yy219; - if(yych <= 'h') goto yy643; - if(yych <= 'i') goto yy644; + if(yych <= 'h') goto yy644; + if(yych <= 'i') goto yy645; goto yy219; } else { - if(yych <= 't') goto yy645; - if(yych == 'w') goto yy646; + if(yych <= 't') goto yy646; + if(yych == 'w') goto yy647; goto yy219; } yy21: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'h'){ - if(yych == 'e') goto yy606; + if(yych == 'e') goto yy607; if(yych <= 'g') goto yy219; - goto yy607; + goto yy608; } else { if(yych <= 'r'){ if(yych <= 'q') goto yy219; - goto yy608; + goto yy609; } else { - if(yych == 'y') goto yy609; + if(yych == 'y') goto yy610; goto yy219; } } yy22: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'n') goto yy589; - if(yych == 's') goto yy590; + if(yych == 'n') goto yy590; + if(yych == 's') goto yy591; goto yy219; yy23: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy571; - if(yych == 'o') goto yy572; + if(yych == 'i') goto yy572; + if(yych == 'o') goto yy573; goto yy219; yy24: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'c') goto yy559; - if(yych == 'h') goto yy560; + if(yych == 'c') goto yy560; + if(yych == 'h') goto yy561; goto yy219; yy25: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case '_': goto yy470; - case 'a': goto yy471; - case 'b': goto yy472; - case 'c': goto yy473; - case 'd': goto yy474; - case 'f': goto yy475; - case 'i': goto yy476; - case 's': goto yy477; + case '_': goto yy471; + case 'a': goto yy472; + case 'b': goto yy473; + case 'c': goto yy474; + case 'd': goto yy475; + case 'f': goto yy476; + case 'i': goto yy477; + case 's': goto yy478; default: goto yy219; } yy26: yych = *++YYCURSOR; goto yy27; yy27: -#line 449 +#line 450 { RET(T_LEFTBRACE); } yy28: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych == '?') goto yy436; goto yy29; yy29: -#line 474 +#line 475 { RET(T_QUESTION_MARK); } yy30: yych = *++YYCURSOR; if(yych <= ':'){ @@ -776,12 +778,12 @@ yy30: yych = *++YYCURSOR; goto yy31; } yy31: -#line 515 +#line 516 { RET(T_LESS); } yy32: yych = *++YYCURSOR; goto yy33; yy33: -#line 452 +#line 453 { RET(T_RIGHTBRACE); } yy34: yych = *++YYCURSOR; if(yych <= '<'){ @@ -793,24 +795,24 @@ yy34: yych = *++YYCURSOR; goto yy35; } yy35: -#line 500 +#line 501 { RET(T_PERCENT); } yy36: yych = *++YYCURSOR; goto yy37; yy37: -#line 455 +#line 456 { RET(T_LEFTBRACKET); } yy38: yych = *++YYCURSOR; goto yy39; yy39: -#line 458 +#line 459 { RET(T_RIGHTBRACKET); } yy40: yych = *++YYCURSOR; if(yych == ':') goto yy413; if(yych == '>') goto yy415; goto yy41; yy41: -#line 472 +#line 473 { RET(T_COLON); } yy42: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); @@ -856,22 +858,22 @@ yy42: yyaccept = 2; } } yy43: -#line 461 +#line 462 { RET(T_POUND); } yy44: yych = *++YYCURSOR; goto yy45; yy45: -#line 469 +#line 470 { RET(T_LEFTPAREN); } yy46: yych = *++YYCURSOR; goto yy47; yy47: -#line 470 +#line 471 { RET(T_RIGHTPAREN); } yy48: yych = *++YYCURSOR; goto yy49; yy49: -#line 471 +#line 472 { RET(T_SEMICOLON); } yy50: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); @@ -885,14 +887,14 @@ yy50: yyaccept = 3; goto yy51; } yy51: -#line 485 +#line 486 { RET(T_DOT); } yy52: yych = *++YYCURSOR; if(yych == '+') goto yy280; if(yych == '=') goto yy282; goto yy53; yy53: -#line 496 +#line 497 { RET(T_PLUS); } yy54: yych = *++YYCURSOR; if(yych <= '<'){ @@ -904,19 +906,19 @@ yy54: yych = *++YYCURSOR; goto yy55; } yy55: -#line 497 +#line 498 { RET(T_MINUS); } yy56: yych = *++YYCURSOR; if(yych == '=') goto yy270; goto yy57; yy57: -#line 498 +#line 499 { RET(T_STAR); } yy58: yych = *++YYCURSOR; if(yych == '=') goto yy268; goto yy59; yy59: -#line 501 +#line 502 { RET(T_XOR); } yy60: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -927,7 +929,7 @@ yy61: yych = *++YYCURSOR; if(yych == '=') goto yy259; goto yy62; yy62: -#line 504 +#line 505 { RET(T_AND); } yy63: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); @@ -940,24 +942,24 @@ yy63: yyaccept = 4; goto yy64; } yy64: -#line 506 +#line 507 { RET(T_OR); } yy65: yych = *++YYCURSOR; goto yy66; yy66: -#line 509 +#line 510 { RET(T_COMPL); } yy67: yych = *++YYCURSOR; if(yych == '=') goto yy247; goto yy68; yy68: -#line 512 +#line 513 { RET(T_NOT); } yy69: yych = *++YYCURSOR; if(yych == '=') goto yy245; goto yy70; yy70: -#line 514 +#line 515 { RET(T_ASSIGN); } yy71: yych = *++YYCURSOR; if(yych <= '<') goto yy72; @@ -965,12 +967,12 @@ yy71: yych = *++YYCURSOR; if(yych <= '>') goto yy241; goto yy72; yy72: -#line 516 +#line 517 { RET(T_GREATER); } yy73: yych = *++YYCURSOR; goto yy74; yy74: -#line 548 +#line 549 { RET(T_COMMA); } yy75: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -1011,7 +1013,7 @@ yy77: yyaccept = 5; if(yych == 'u') goto yy209; goto yy78; yy78: -#line 625 +#line 627 { /* if (0 != s->error_proc) (*s->error_proc)(s, "Unexpected character: '%c'", *s->tok); @@ -1063,7 +1065,7 @@ yy79: yyaccept = 6; } } yy80: -#line 565 +#line 567 { RET(T_INTLIT); } yy81: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); @@ -1116,12 +1118,12 @@ yy83: yyaccept = 5; yy84: yych = *++YYCURSOR; goto yy94; yy85: -#line 604 +#line 606 { RET(T_SPACE); } yy86: yych = *++YYCURSOR; goto yy87; yy87: -#line 607 +#line 609 { s->line++; RET(T_NEWLINE); @@ -1132,7 +1134,7 @@ yy88: yych = *++YYCURSOR; yy89: yych = *++YYCURSOR; goto yy90; yy90: -#line 613 +#line 615 { if(cursor != s->eof) { @@ -1253,7 +1255,7 @@ yy98: ++YYCURSOR; yy99: yych = *++YYCURSOR; goto yy100; yy100: -#line 574 +#line 576 { RET(T_STRINGLIT); } yy101: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -2270,7 +2272,7 @@ yy148: ++YYCURSOR; yy149: yych = *++YYCURSOR; goto yy150; yy150: -#line 571 +#line 573 { RET(T_CHARLIT); } yy151: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3046,7 +3048,7 @@ yy187: if(yych <= 'K'){ } } yy188: -#line 568 +#line 570 { RET(T_FLOATLIT); } yy189: yych = *++YYCURSOR; if(yych == 'L') goto yy191; @@ -3554,28 +3556,28 @@ yy238: yych = *++YYCURSOR; yy239: yych = *++YYCURSOR; goto yy240; yy240: -#line 538 +#line 539 { RET(T_GREATEREQUAL); } yy241: yych = *++YYCURSOR; if(yych == '=') goto yy243; goto yy242; yy242: -#line 531 +#line 532 { RET(T_SHIFTRIGHT); } yy243: yych = *++YYCURSOR; goto yy244; yy244: -#line 532 +#line 533 { RET(T_SHIFTRIGHTASSIGN); } yy245: yych = *++YYCURSOR; goto yy246; yy246: -#line 534 +#line 535 { RET(T_EQUAL); } yy247: yych = *++YYCURSOR; goto yy248; yy248: -#line 535 +#line 536 { RET(T_NOTEQUAL); } yy249: yych = *++YYCURSOR; if(yych == '?') goto yy254; @@ -3583,12 +3585,12 @@ yy249: yych = *++YYCURSOR; yy250: yych = *++YYCURSOR; goto yy251; yy251: -#line 541 +#line 542 { RET(T_OROR); } yy252: yych = *++YYCURSOR; goto yy253; yy253: -#line 527 +#line 528 { RET(T_ORASSIGN); } yy254: yych = *++YYCURSOR; if(yych != '!') goto yy2; @@ -3596,17 +3598,17 @@ yy254: yych = *++YYCURSOR; yy255: yych = *++YYCURSOR; goto yy256; yy256: -#line 543 +#line 544 { RET(T_OROR); } yy257: yych = *++YYCURSOR; goto yy258; yy258: -#line 539 +#line 540 { RET(T_ANDAND); } yy259: yych = *++YYCURSOR; goto yy260; yy260: -#line 525 +#line 526 { RET(T_ANDASSIGN); } yy261: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -3636,7 +3638,7 @@ yy262: yyaccept = 10; } } yy263: -#line 503 +#line 504 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); } yy264: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -3669,38 +3671,38 @@ yy266: yyaccept = 11; } } yy267: -#line 523 +#line 524 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); } yy268: yych = *++YYCURSOR; goto yy269; yy269: -#line 522 +#line 523 { RET(T_XORASSIGN); } yy270: yych = *++YYCURSOR; goto yy271; yy271: -#line 519 +#line 520 { RET(T_STARASSIGN); } yy272: yych = *++YYCURSOR; if(yych == '*') goto yy278; goto yy273; yy273: -#line 559 +#line 560 { RET(T_ARROW); } yy274: yych = *++YYCURSOR; goto yy275; yy275: -#line 547 +#line 548 { RET(T_MINUSMINUS); } yy276: yych = *++YYCURSOR; goto yy277; yy277: -#line 518 +#line 519 { RET(T_MINUSASSIGN); } yy278: yych = *++YYCURSOR; goto yy279; yy279: -#line 550 +#line 551 { if (s->act_in_c99_mode) { --YYCURSOR; @@ -3713,17 +3715,17 @@ yy279: yy280: yych = *++YYCURSOR; goto yy281; yy281: -#line 546 +#line 547 { RET(T_PLUSPLUS); } yy282: yych = *++YYCURSOR; goto yy283; yy283: -#line 517 +#line 518 { RET(T_PLUSASSIGN); } yy284: yych = *++YYCURSOR; goto yy285; yy285: -#line 487 +#line 488 { if (s->act_in_c99_mode) { --YYCURSOR; @@ -3739,7 +3741,7 @@ yy286: yych = *++YYCURSOR; yy287: yych = *++YYCURSOR; goto yy288; yy288: -#line 473 +#line 474 { RET(T_ELLIPSIS); } yy289: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3827,7 +3829,7 @@ yy300: yych = *++YYCURSOR; yy301: yych = *++YYCURSOR; goto yy302; yy302: -#line 464 +#line 465 { RET(T_POUND_POUND); } yy303: yych = *++YYCURSOR; if(yych != '=') goto yy2; @@ -3835,7 +3837,7 @@ yy303: yych = *++YYCURSOR; yy304: yych = *++YYCURSOR; goto yy305; yy305: -#line 465 +#line 466 { RET(T_POUND_POUND_TRIGRAPH); } yy306: yych = *++YYCURSOR; if(yych == 'c') goto yy318; @@ -3846,7 +3848,7 @@ yy307: yyaccept = 12; if(yych == 'n') goto yy309; goto yy308; yy308: -#line 586 +#line 588 { RET(T_PP_IF); } yy309: yych = *++YYCURSOR; if(yych == 'd') goto yy314; @@ -3860,7 +3862,7 @@ yy311: yych = *++YYCURSOR; yy312: yych = *++YYCURSOR; goto yy313; yy313: -#line 587 +#line 589 { RET(T_PP_IFDEF); } yy314: yych = *++YYCURSOR; if(yych != 'e') goto yy2; @@ -3871,7 +3873,7 @@ yy315: yych = *++YYCURSOR; yy316: yych = *++YYCURSOR; goto yy317; yy317: -#line 588 +#line 590 { RET(T_PP_IFNDEF); } yy318: yych = *++YYCURSOR; if(yych != 'l') goto yy2; @@ -3890,7 +3892,7 @@ yy322: yyaccept = 13; if(yych == '_') goto yy324; goto yy326; yy323: -#line 584 +#line 586 { RET(T_PP_INCLUDE); } yy324: yych = *++YYCURSOR; if(yych == 'n') goto yy345; @@ -3945,7 +3947,7 @@ yy331: if(yych <= '\f'){ yy332: yych = *++YYCURSOR; goto yy333; yy333: -#line 581 +#line 583 { RET(T_PP_QHEADER); } yy334: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -3963,7 +3965,7 @@ yy335: if(yych <= '\f'){ yy336: yych = *++YYCURSOR; goto yy337; yy337: -#line 578 +#line 580 { RET(T_PP_HHEADER); } yy338: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -4045,7 +4047,7 @@ yy351: yych = *++YYCURSOR; yy352: yych = *++YYCURSOR; goto yy353; yy353: -#line 592 +#line 594 { RET(T_PP_DEFINE); } yy354: yych = *++YYCURSOR; if(yych != 'd') goto yy2; @@ -4059,7 +4061,7 @@ yy356: yych = *++YYCURSOR; yy357: yych = *++YYCURSOR; goto yy358; yy358: -#line 593 +#line 595 { RET(T_PP_UNDEF); } yy359: yych = *++YYCURSOR; if(yych != 'n') goto yy2; @@ -4070,7 +4072,7 @@ yy360: yych = *++YYCURSOR; yy361: yych = *++YYCURSOR; goto yy362; yy362: -#line 594 +#line 596 { RET(T_PP_LINE); } yy363: yych = *++YYCURSOR; if(yych != 'a') goto yy2; @@ -4087,7 +4089,7 @@ yy366: yych = *++YYCURSOR; yy367: yych = *++YYCURSOR; goto yy368; yy368: -#line 596 +#line 598 { RET(T_PP_PRAGMA); } yy369: yych = *++YYCURSOR; if(yych != 'r') goto yy2; @@ -4107,7 +4109,7 @@ yy373: yych = *++YYCURSOR; yy374: yych = *++YYCURSOR; goto yy375; yy375: -#line 598 +#line 600 { RET(T_PP_WARNING); } yy376: yych = *++YYCURSOR; if(yych != 'g') goto yy2; @@ -4124,7 +4126,7 @@ yy379: yych = *++YYCURSOR; yy380: yych = *++YYCURSOR; goto yy381; yy381: -#line 600 +#line 602 { RET(T_MSEXT_PP_REGION); } yy382: yych = *++YYCURSOR; if(yych == 'i') goto yy400; @@ -4145,7 +4147,7 @@ yy386: yych = *++YYCURSOR; yy387: yych = *++YYCURSOR; goto yy388; yy388: -#line 595 +#line 597 { RET(T_PP_ERROR); } yy389: yych = *++YYCURSOR; if(yych == 'i') goto yy390; @@ -4172,12 +4174,12 @@ yy395: yych = *++YYCURSOR; yy396: yych = *++YYCURSOR; goto yy397; yy397: -#line 601 +#line 603 { RET(T_MSEXT_PP_ENDREGION); } yy398: yych = *++YYCURSOR; goto yy399; yy399: -#line 591 +#line 593 { RET(T_PP_ENDIF); } yy400: yych = *++YYCURSOR; if(yych == 'f') goto yy404; @@ -4188,12 +4190,12 @@ yy401: yych = *++YYCURSOR; yy402: yych = *++YYCURSOR; goto yy403; yy403: -#line 589 +#line 591 { RET(T_PP_ELSE); } yy404: yych = *++YYCURSOR; goto yy405; yy405: -#line 590 +#line 592 { RET(T_PP_ELIF); } yy406: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); @@ -4254,7 +4256,7 @@ yy412: ++YYCURSOR; yy413: yych = *++YYCURSOR; goto yy414; yy414: -#line 476 +#line 477 { if (s->act_in_c99_mode) { --YYCURSOR; @@ -4267,7 +4269,7 @@ yy414: yy415: yych = *++YYCURSOR; goto yy416; yy416: -#line 460 +#line 461 { RET(T_RIGHTBRACKET_ALT); } yy417: yyaccept = 14; yych = *(YYMARKER = ++YYCURSOR); @@ -4313,17 +4315,17 @@ yy417: yyaccept = 14; } } yy418: -#line 462 +#line 463 { RET(T_POUND_ALT); } yy419: yych = *++YYCURSOR; goto yy420; yy420: -#line 521 +#line 522 { RET(T_PERCENTASSIGN); } yy421: yych = *++YYCURSOR; goto yy422; yy422: -#line 454 +#line 455 { RET(T_RIGHTBRACE_ALT); } yy423: yych = *++YYCURSOR; if(yych != ':') goto yy2; @@ -4331,33 +4333,33 @@ yy423: yych = *++YYCURSOR; yy424: yych = *++YYCURSOR; goto yy425; yy425: -#line 468 +#line 469 { RET(T_POUND_POUND_ALT); } yy426: yych = *++YYCURSOR; goto yy427; yy427: -#line 537 +#line 538 { RET(T_LESSEQUAL); } yy428: yych = *++YYCURSOR; if(yych == '=') goto yy434; goto yy429; yy429: -#line 530 +#line 531 { RET(T_SHIFTLEFT); } yy430: yych = *++YYCURSOR; goto yy431; yy431: -#line 457 +#line 458 { RET(T_LEFTBRACKET_ALT); } yy432: yych = *++YYCURSOR; goto yy433; yy433: -#line 451 +#line 452 { RET(T_LEFTBRACE_ALT); } yy434: yych = *++YYCURSOR; goto yy435; yy435: -#line 533 +#line 534 { RET(T_SHIFTLEFTASSIGN); } yy436: yych = *++YYCURSOR; switch(yych){ @@ -4375,22 +4377,22 @@ yy436: yych = *++YYCURSOR; yy437: yych = *++YYCURSOR; goto yy438; yy438: -#line 450 +#line 451 { RET(T_LEFTBRACE_TRIGRAPH); } yy439: yych = *++YYCURSOR; goto yy440; yy440: -#line 453 +#line 454 { RET(T_RIGHTBRACE_TRIGRAPH); } yy441: yych = *++YYCURSOR; goto yy442; yy442: -#line 456 +#line 457 { RET(T_LEFTBRACKET_TRIGRAPH); } yy443: yych = *++YYCURSOR; goto yy444; yy444: -#line 459 +#line 460 { RET(T_RIGHTBRACKET_TRIGRAPH); } yy445: yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); @@ -4401,7 +4403,7 @@ yy445: yyaccept = 15; goto yy446; } else { if(yych <= ' ') goto yy290; - if(yych >= '#') goto yy465; + if(yych >= '#') goto yy466; goto yy446; } } else { @@ -4409,7 +4411,7 @@ yy445: yyaccept = 15; if(yych == '/') goto yy290; goto yy446; } else { - if(yych <= '?') goto yy464; + if(yych <= '?') goto yy465; if(yych >= 'd') goto yy290; goto yy446; } @@ -4436,547 +4438,547 @@ yy445: yyaccept = 15; } } yy446: -#line 463 +#line 464 { RET(T_POUND_TRIGRAPH); } yy447: yych = *++YYCURSOR; - if(yych == '=') goto yy462; + if(yych == '=') goto yy463; goto yy448; yy448: -#line 502 +#line 503 { RET(T_XOR_TRIGRAPH); } yy449: yyaccept = 16; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '>'){ - if(yych == '=') goto yy457; + if(yych == '=') goto yy458; goto yy450; } else { - if(yych <= '?') goto yy454; - if(yych == '|') goto yy455; + if(yych <= '?') goto yy455; + if(yych == '|') goto yy456; goto yy450; } yy450: -#line 508 +#line 509 { RET(T_OR_TRIGRAPH); } yy451: yych = *++YYCURSOR; goto yy452; yy452: -#line 510 +#line 511 { RET(T_COMPL_TRIGRAPH); } -yy453: yych = *++YYCURSOR; +yy453: yyaccept = 17; + yych = *(YYMARKER = ++YYCURSOR); if(yych == 'U') goto yy210; if(yych == 'u') goto yy209; - goto yy2; -yy454: yych = *++YYCURSOR; - if(yych == '?') goto yy459; - goto yy2; + goto yy454; +yy454: +#line 561 + { RET(T_ANY_TRIGRAPH); } yy455: yych = *++YYCURSOR; - goto yy456; -yy456: -#line 542 - { RET(T_OROR); } -yy457: yych = *++YYCURSOR; - goto yy458; -yy458: -#line 529 - { RET(T_ORASSIGN); } -yy459: yych = *++YYCURSOR; - if(yych != '!') goto yy2; - goto yy460; -yy460: yych = *++YYCURSOR; - goto yy461; -yy461: -#line 545 - { RET(T_OROR); } -yy462: yych = *++YYCURSOR; - goto yy463; -yy463: -#line 524 - { RET(T_XORASSIGN); } -yy464: yych = *++YYCURSOR; - if(yych == '?') goto yy467; + if(yych == '?') goto yy460; goto yy2; +yy456: yych = *++YYCURSOR; + goto yy457; +yy457: +#line 543 + { RET(T_OROR); } +yy458: yych = *++YYCURSOR; + goto yy459; +yy459: +#line 530 + { RET(T_ORASSIGN); } +yy460: yych = *++YYCURSOR; + if(yych != '!') goto yy2; + goto yy461; +yy461: yych = *++YYCURSOR; + goto yy462; +yy462: +#line 546 + { RET(T_OROR); } +yy463: yych = *++YYCURSOR; + goto yy464; +yy464: +#line 525 + { RET(T_XORASSIGN); } yy465: yych = *++YYCURSOR; - goto yy466; -yy466: -#line 466 - { RET(T_POUND_POUND_TRIGRAPH); } -yy467: yych = *++YYCURSOR; - if(yych != '=') goto yy2; - goto yy468; -yy468: yych = *++YYCURSOR; - goto yy469; -yy469: + if(yych == '?') goto yy468; + goto yy2; +yy466: yych = *++YYCURSOR; + goto yy467; +yy467: #line 467 { RET(T_POUND_POUND_TRIGRAPH); } -yy470: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'a': goto yy471; - case 'b': goto yy472; - case 'c': goto yy473; - case 'd': goto yy474; - case 'e': goto yy523; - case 'f': goto yy521; - case 'i': goto yy520; - case 'l': goto yy524; - case 's': goto yy477; - case 't': goto yy522; - default: goto yy219; - } +yy468: yych = *++YYCURSOR; + if(yych != '=') goto yy2; + goto yy469; +yy469: yych = *++YYCURSOR; + goto yy470; +yy470: +#line 468 + { RET(T_POUND_POUND_TRIGRAPH); } yy471: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 's') goto yy517; - goto yy219; + switch(yych){ + case 'a': goto yy472; + case 'b': goto yy473; + case 'c': goto yy474; + case 'd': goto yy475; + case 'e': goto yy524; + case 'f': goto yy522; + case 'i': goto yy521; + case 'l': goto yy525; + case 's': goto yy478; + case 't': goto yy523; + default: goto yy219; + } yy472: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy512; + if(yych == 's') goto yy518; goto yy219; yy473: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'd') goto yy507; + if(yych == 'a') goto yy513; goto yy219; yy474: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'e') goto yy499; + if(yych == 'd') goto yy508; goto yy219; yy475: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy491; + if(yych == 'e') goto yy500; goto yy219; yy476: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'n') goto yy485; + if(yych == 'a') goto yy492; goto yy219; yy477: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy478; + if(yych == 'n') goto yy486; + goto yy219; yy478: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'd') goto yy219; + if(yych != 't') goto yy219; goto yy479; yy479: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'd') goto yy219; goto yy480; yy480: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'c') goto yy219; goto yy481; yy481: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'a') goto yy219; goto yy482; yy482: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'l') goto yy219; goto yy483; -yy483: yyaccept = 17; +yy483: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'l') goto yy219; + goto yy484; +yy484: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy484; + if(yych <= '/') goto yy485; if(yych <= '9') goto yy218; - goto yy484; + goto yy485; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy484; + goto yy485; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy484; + goto yy485; } else { - if(yych == '`') goto yy484; + if(yych == '`') goto yy485; if(yych <= 'z') goto yy218; - goto yy484; + goto yy485; } } -yy484: -#line 441 +yy485: +#line 442 { RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); } -yy485: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; - goto yy486; yy486: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; + if(yych != 'l') goto yy219; goto yy487; yy487: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'i') goto yy219; goto yy488; yy488: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'n') goto yy219; goto yy489; -yy489: yyaccept = 18; +yy489: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy490; +yy490: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy490; + if(yych <= '/') goto yy491; if(yych <= '9') goto yy218; - goto yy490; + goto yy491; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy490; + goto yy491; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy490; + goto yy491; } else { - if(yych == '`') goto yy490; + if(yych == '`') goto yy491; if(yych <= 'z') goto yy218; - goto yy490; + goto yy491; } } -yy490: -#line 446 +yy491: +#line 447 { RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); } -yy491: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; - goto yy492; yy492: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 's') goto yy219; goto yy493; yy493: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 't') goto yy219; goto yy494; yy494: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'c') goto yy219; goto yy495; yy495: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'a') goto yy219; goto yy496; yy496: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'l') goto yy219; goto yy497; -yy497: yyaccept = 19; +yy497: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'l') goto yy219; + goto yy498; +yy498: yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy498; + if(yych <= '/') goto yy499; if(yych <= '9') goto yy218; - goto yy498; + goto yy499; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy498; + goto yy499; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy498; + goto yy499; } else { - if(yych == '`') goto yy498; + if(yych == '`') goto yy499; if(yych <= 'z') goto yy218; - goto yy498; + goto yy499; } } -yy498: -#line 440 +yy499: +#line 441 { RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); } -yy499: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; - goto yy500; yy500: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'c') goto yy219; goto yy501; yy501: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; + if(yych != 'l') goto yy219; goto yy502; yy502: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; + if(yych != 's') goto yy219; goto yy503; yy503: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'p') goto yy219; goto yy504; yy504: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'e') goto yy219; goto yy505; -yy505: yyaccept = 20; +yy505: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'c') goto yy219; + goto yy506; +yy506: yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy506; + if(yych <= '/') goto yy507; if(yych <= '9') goto yy218; - goto yy506; + goto yy507; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy506; + goto yy507; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy506; + goto yy507; } else { - if(yych == '`') goto yy506; + if(yych == '`') goto yy507; if(yych <= 'z') goto yy218; - goto yy506; + goto yy507; } } -yy506: -#line 438 +yy507: +#line 439 { RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); } -yy507: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy508; yy508: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'e') goto yy219; goto yy509; yy509: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'c') goto yy219; goto yy510; -yy510: yyaccept = 21; +yy510: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'l') goto yy219; + goto yy511; +yy511: yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy511; + if(yych <= '/') goto yy512; if(yych <= '9') goto yy218; - goto yy511; + goto yy512; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy511; + goto yy512; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy511; + goto yy512; } else { - if(yych == '`') goto yy511; + if(yych == '`') goto yy512; if(yych <= 'z') goto yy218; - goto yy511; + goto yy512; } } -yy511: -#line 439 +yy512: +#line 440 { RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); } -yy512: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; - goto yy513; yy513: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 's') goto yy219; goto yy514; yy514: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'd') goto yy219; + if(yych != 'e') goto yy219; goto yy515; -yy515: yyaccept = 22; +yy515: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'd') goto yy219; + goto yy516; +yy516: yyaccept = 23; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy516; + if(yych <= '/') goto yy517; if(yych <= '9') goto yy218; - goto yy516; + goto yy517; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy516; + goto yy517; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy516; + goto yy517; } else { - if(yych == '`') goto yy516; + if(yych == '`') goto yy517; if(yych <= 'z') goto yy218; - goto yy516; + goto yy517; } } -yy516: -#line 437 +yy517: +#line 438 { RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); } -yy517: yyaccept = 0; +yy518: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'm') goto yy219; - goto yy518; -yy518: yyaccept = 23; + goto yy519; +yy519: yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy519; + if(yych <= '/') goto yy520; if(yych <= '9') goto yy218; - goto yy519; + goto yy520; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy519; + goto yy520; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy519; + goto yy520; } else { - if(yych == '`') goto yy519; + if(yych == '`') goto yy520; if(yych <= 'z') goto yy218; - goto yy519; + goto yy520; } } -yy519: -#line 447 +yy520: +#line 448 { RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); } -yy520: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'n') goto yy546; - goto yy219; yy521: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy491; - if(yych == 'i') goto yy539; + if(yych == 'n') goto yy547; goto yy219; yy522: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'r') goto yy536; + if(yych == 'a') goto yy492; + if(yych == 'i') goto yy540; goto yy219; yy523: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'x') goto yy530; + if(yych == 'r') goto yy537; goto yy219; yy524: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy525; + if(yych == 'x') goto yy531; + goto yy219; yy525: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'e') goto yy219; goto yy526; yy526: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'v') goto yy219; + if(yych != 'a') goto yy219; goto yy527; yy527: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'v') goto yy219; goto yy528; -yy528: yyaccept = 24; +yy528: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy529; +yy529: yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy529; + if(yych <= '/') goto yy530; if(yych <= '9') goto yy218; - goto yy529; + goto yy530; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy529; + goto yy530; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy529; + goto yy530; } else { - if(yych == '`') goto yy529; + if(yych == '`') goto yy530; if(yych <= 'z') goto yy218; - goto yy529; + goto yy530; } } -yy529: -#line 445 +yy530: +#line 446 { RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); } -yy530: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; - goto yy531; yy531: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'c') goto yy219; goto yy532; yy532: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; + if(yych != 'e') goto yy219; goto yy533; yy533: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'p') goto yy219; goto yy534; -yy534: yyaccept = 25; +yy534: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy535; +yy535: yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy535; + if(yych <= '/') goto yy536; if(yych <= '9') goto yy218; - goto yy535; + goto yy536; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy535; + goto yy536; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy535; + goto yy536; } else { - if(yych == '`') goto yy535; + if(yych == '`') goto yy536; if(yych <= 'z') goto yy218; - goto yy535; + goto yy536; } } -yy535: -#line 443 +yy536: +#line 444 { RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); } -yy536: yyaccept = 0; +yy537: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'y') goto yy219; - goto yy537; -yy537: yyaccept = 26; + goto yy538; +yy538: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy538; + if(yych <= '/') goto yy539; if(yych <= '9') goto yy218; - goto yy538; + goto yy539; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy538; + goto yy539; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy538; + goto yy539; } else { - if(yych == '`') goto yy538; + if(yych == '`') goto yy539; if(yych <= 'z') goto yy218; - goto yy538; + goto yy539; } } -yy538: -#line 442 +yy539: +#line 443 { RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); } -yy539: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; - goto yy540; yy540: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'n') goto yy219; goto yy541; yy541: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'a') goto yy219; goto yy542; yy542: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -4984,2990 +4986,2994 @@ yy542: yyaccept = 0; goto yy543; yy543: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'y') goto yy219; + if(yych != 'l') goto yy219; goto yy544; -yy544: yyaccept = 27; +yy544: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'y') goto yy219; + goto yy545; +yy545: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy545; + if(yych <= '/') goto yy546; if(yych <= '9') goto yy218; - goto yy545; + goto yy546; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy545; + goto yy546; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy545; + goto yy546; } else { - if(yych == '`') goto yy545; + if(yych == '`') goto yy546; if(yych <= 'z') goto yy218; - goto yy545; + goto yy546; } } -yy545: -#line 444 +yy546: +#line 445 { RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); } -yy546: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'l') goto yy486; - if(yych != 't') goto yy219; - goto yy547; yy547: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '1': goto yy548; - case '3': goto yy549; - case '6': goto yy550; - case '8': goto yy551; - default: goto yy219; - } + if(yych == 'l') goto yy487; + if(yych != 't') goto yy219; + goto yy548; yy548: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == '6') goto yy557; - goto yy219; + switch(yych){ + case '1': goto yy549; + case '3': goto yy550; + case '6': goto yy551; + case '8': goto yy552; + default: goto yy219; + } yy549: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == '2') goto yy555; + if(yych == '6') goto yy558; goto yy219; yy550: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == '4') goto yy553; + if(yych == '2') goto yy556; goto yy219; -yy551: yyaccept = 28; +yy551: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == '4') goto yy554; + goto yy219; +yy552: yyaccept = 29; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy552; + if(yych <= '/') goto yy553; if(yych <= '9') goto yy218; - goto yy552; + goto yy553; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy552; + goto yy553; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy552; + goto yy553; } else { - if(yych == '`') goto yy552; + if(yych == '`') goto yy553; if(yych <= 'z') goto yy218; - goto yy552; + goto yy553; } } -yy552: -#line 433 - { RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); } -yy553: yyaccept = 29; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy554; - if(yych <= '9') goto yy218; - goto yy554; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy554; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy554; - } else { - if(yych == '`') goto yy554; - if(yych <= 'z') goto yy218; - goto yy554; - } - } -yy554: -#line 436 - { RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); } -yy555: yyaccept = 30; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy556; - if(yych <= '9') goto yy218; - goto yy556; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy556; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy556; - } else { - if(yych == '`') goto yy556; - if(yych <= 'z') goto yy218; - goto yy556; - } - } -yy556: -#line 435 - { RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); } -yy557: yyaccept = 31; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy558; - if(yych <= '9') goto yy218; - goto yy558; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy558; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy558; - } else { - if(yych == '`') goto yy558; - if(yych <= 'z') goto yy218; - goto yy558; - } - } -yy558: +yy553: #line 434 - { RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); } -yy559: yyaccept = 0; + { RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); } +yy554: yyaccept = 30; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'h') goto yy565; - goto yy219; + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy555; + if(yych <= '9') goto yy218; + goto yy555; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy555; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy555; + } else { + if(yych == '`') goto yy555; + if(yych <= 'z') goto yy218; + goto yy555; + } + } +yy555: +#line 437 + { RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); } +yy556: yyaccept = 31; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy557; + if(yych <= '9') goto yy218; + goto yy557; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy557; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy557; + } else { + if(yych == '`') goto yy557; + if(yych <= 'z') goto yy218; + goto yy557; + } + } +yy557: +#line 436 + { RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); } +yy558: yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy559; + if(yych <= '9') goto yy218; + goto yy559; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy559; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy559; + } else { + if(yych == '`') goto yy559; + if(yych <= 'z') goto yy218; + goto yy559; + } + } +yy559: +#line 435 + { RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); } yy560: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy561; + if(yych == 'h') goto yy566; + goto yy219; yy561: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'i') goto yy219; goto yy562; yy562: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'l') goto yy219; goto yy563; -yy563: yyaccept = 32; +yy563: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy564; +yy564: yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy564; + if(yych <= '/') goto yy565; if(yych <= '9') goto yy218; - goto yy564; + goto yy565; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy564; + goto yy565; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy564; + goto yy565; } else { - if(yych == '`') goto yy564; + if(yych == '`') goto yy565; if(yych <= 'z') goto yy218; - goto yy564; + goto yy565; } } -yy564: -#line 431 +yy565: +#line 432 { RET(T_WHILE); } -yy565: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; - goto yy566; yy566: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'a') goto yy219; goto yy567; yy567: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != '_') goto yy219; + if(yych != 'r') goto yy219; goto yy568; yy568: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != '_') goto yy219; goto yy569; -yy569: yyaccept = 33; +yy569: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy570; +yy570: yyaccept = 34; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy570; + if(yych <= '/') goto yy571; if(yych <= '9') goto yy218; - goto yy570; + goto yy571; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy570; + goto yy571; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy570; + goto yy571; } else { - if(yych == '`') goto yy570; + if(yych == '`') goto yy571; if(yych <= 'z') goto yy218; - goto yy570; + goto yy571; } } -yy570: -#line 430 +yy571: +#line 431 { RET(T_WCHART); } -yy571: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'r') goto yy583; - goto yy219; yy572: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy573; - if(yych == 'l') goto yy574; + if(yych == 'r') goto yy584; goto yy219; yy573: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'd') goto yy581; + if(yych == 'i') goto yy574; + if(yych == 'l') goto yy575; goto yy219; yy574: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; - goto yy575; + if(yych == 'd') goto yy582; + goto yy219; yy575: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'a') goto yy219; goto yy576; yy576: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; + if(yych != 't') goto yy219; goto yy577; yy577: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'i') goto yy219; goto yy578; yy578: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'l') goto yy219; goto yy579; -yy579: yyaccept = 34; +yy579: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy580; +yy580: yyaccept = 35; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy580; + if(yych <= '/') goto yy581; if(yych <= '9') goto yy218; - goto yy580; + goto yy581; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy580; + goto yy581; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy580; + goto yy581; } else { - if(yych == '`') goto yy580; + if(yych == '`') goto yy581; if(yych <= 'z') goto yy218; - goto yy580; + goto yy581; } } -yy580: -#line 429 +yy581: +#line 430 { RET(T_VOLATILE); } -yy581: yyaccept = 35; +yy582: yyaccept = 36; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy582; + if(yych <= '/') goto yy583; if(yych <= '9') goto yy218; - goto yy582; + goto yy583; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy582; + goto yy583; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy582; + goto yy583; } else { - if(yych == '`') goto yy582; + if(yych == '`') goto yy583; if(yych <= 'z') goto yy218; - goto yy582; + goto yy583; } } -yy582: -#line 428 +yy583: +#line 429 { RET(T_VOID); } -yy583: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy584; yy584: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'u') goto yy219; + if(yych != 't') goto yy219; goto yy585; yy585: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'u') goto yy219; goto yy586; yy586: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'a') goto yy219; goto yy587; -yy587: yyaccept = 36; +yy587: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'l') goto yy219; + goto yy588; +yy588: yyaccept = 37; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy588; + if(yych <= '/') goto yy589; if(yych <= '9') goto yy218; - goto yy588; + goto yy589; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy588; + goto yy589; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy588; + goto yy589; } else { - if(yych == '`') goto yy588; + if(yych == '`') goto yy589; if(yych <= 'z') goto yy218; - goto yy588; + goto yy589; } } -yy588: -#line 427 +yy589: +#line 428 { RET(T_VIRTUAL); } -yy589: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy595; - if(yych == 's') goto yy596; - goto yy219; yy590: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy591; + if(yych == 'i') goto yy596; + if(yych == 's') goto yy597; + goto yy219; yy591: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'i') goto yy219; goto yy592; yy592: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'g') goto yy219; + if(yych != 'n') goto yy219; goto yy593; -yy593: yyaccept = 37; +yy593: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'g') goto yy219; + goto yy594; +yy594: yyaccept = 38; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy594; + if(yych <= '/') goto yy595; if(yych <= '9') goto yy218; - goto yy594; + goto yy595; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy594; + goto yy595; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy594; + goto yy595; } else { - if(yych == '`') goto yy594; + if(yych == '`') goto yy595; if(yych <= 'z') goto yy218; - goto yy594; + goto yy595; } } -yy594: -#line 426 +yy595: +#line 427 { RET(T_USING); } -yy595: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'o') goto yy603; - goto yy219; yy596: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy597; + if(yych == 'o') goto yy604; + goto yy219; yy597: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'g') goto yy219; + if(yych != 'i') goto yy219; goto yy598; yy598: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'g') goto yy219; goto yy599; yy599: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'n') goto yy219; goto yy600; yy600: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'd') goto yy219; + if(yych != 'e') goto yy219; goto yy601; -yy601: yyaccept = 38; +yy601: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'd') goto yy219; + goto yy602; +yy602: yyaccept = 39; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy602; + if(yych <= '/') goto yy603; if(yych <= '9') goto yy218; - goto yy602; + goto yy603; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy602; + goto yy603; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy602; + goto yy603; } else { - if(yych == '`') goto yy602; + if(yych == '`') goto yy603; if(yych <= 'z') goto yy218; - goto yy602; + goto yy603; } } -yy602: -#line 425 +yy603: +#line 426 { RET(T_UNSIGNED); } -yy603: yyaccept = 0; +yy604: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'n') goto yy219; - goto yy604; -yy604: yyaccept = 39; + goto yy605; +yy605: yyaccept = 40; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy605; + if(yych <= '/') goto yy606; if(yych <= '9') goto yy218; - goto yy605; + goto yy606; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy605; + goto yy606; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy605; + goto yy606; } else { - if(yych == '`') goto yy605; + if(yych == '`') goto yy606; if(yych <= 'z') goto yy218; - goto yy605; + goto yy606; } } -yy605: -#line 424 +yy606: +#line 425 { RET(T_UNION); } -yy606: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'm') goto yy636; - goto yy219; yy607: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy629; - if(yych == 'r') goto yy630; + if(yych == 'm') goto yy637; goto yy219; yy608: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'u') goto yy624; - if(yych == 'y') goto yy625; + if(yych == 'i') goto yy630; + if(yych == 'r') goto yy631; goto yy219; yy609: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; - goto yy610; + if(yych == 'u') goto yy625; + if(yych == 'y') goto yy626; + goto yy219; yy610: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'p') goto yy219; goto yy611; yy611: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'h'){ - if(yych != 'd') goto yy219; - goto yy612; - } else { - if(yych <= 'i') goto yy613; - if(yych == 'n') goto yy614; - goto yy219; - } + if(yych != 'e') goto yy219; + goto yy612; yy612: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'e') goto yy621; - goto yy219; + if(yych <= 'h'){ + if(yych != 'd') goto yy219; + goto yy613; + } else { + if(yych <= 'i') goto yy614; + if(yych == 'n') goto yy615; + goto yy219; + } yy613: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'd') goto yy619; + if(yych == 'e') goto yy622; goto yy219; yy614: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; - goto yy615; + if(yych == 'd') goto yy620; + goto yy219; yy615: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'm') goto yy219; + if(yych != 'a') goto yy219; goto yy616; yy616: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'm') goto yy219; goto yy617; -yy617: yyaccept = 40; +yy617: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy618; +yy618: yyaccept = 41; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy618; + if(yych <= '/') goto yy619; if(yych <= '9') goto yy218; - goto yy618; + goto yy619; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy618; + goto yy619; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy618; + goto yy619; } else { - if(yych == '`') goto yy618; + if(yych == '`') goto yy619; if(yych <= 'z') goto yy218; - goto yy618; + goto yy619; } } -yy618: -#line 423 +yy619: +#line 424 { RET(T_TYPENAME); } -yy619: yyaccept = 41; +yy620: yyaccept = 42; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy620; + if(yych <= '/') goto yy621; if(yych <= '9') goto yy218; - goto yy620; + goto yy621; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy620; + goto yy621; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy620; + goto yy621; } else { - if(yych == '`') goto yy620; + if(yych == '`') goto yy621; if(yych <= 'z') goto yy218; - goto yy620; + goto yy621; } } -yy620: -#line 422 +yy621: +#line 423 { RET(T_TYPEID); } -yy621: yyaccept = 0; +yy622: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'f') goto yy219; - goto yy622; -yy622: yyaccept = 42; + goto yy623; +yy623: yyaccept = 43; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy623; + if(yych <= '/') goto yy624; if(yych <= '9') goto yy218; - goto yy623; + goto yy624; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy623; + goto yy624; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy623; + goto yy624; } else { - if(yych == '`') goto yy623; + if(yych == '`') goto yy624; if(yych <= 'z') goto yy218; - goto yy623; + goto yy624; } } -yy623: -#line 421 +yy624: +#line 422 { RET(T_TYPEDEF); } -yy624: yyaccept = 0; +yy625: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'e') goto yy627; + if(yych == 'e') goto yy628; goto yy219; -yy625: yyaccept = 43; +yy626: yyaccept = 44; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy626; + if(yych <= '/') goto yy627; if(yych <= '9') goto yy218; - goto yy626; + goto yy627; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy626; + goto yy627; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy626; + goto yy627; } else { - if(yych == '`') goto yy626; + if(yych == '`') goto yy627; if(yych <= 'z') goto yy218; - goto yy626; + goto yy627; } } -yy626: -#line 420 +yy627: +#line 421 { RET(T_TRY); } -yy627: yyaccept = 44; +yy628: yyaccept = 45; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy628; + if(yych <= '/') goto yy629; if(yych <= '9') goto yy218; - goto yy628; + goto yy629; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy628; + goto yy629; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy628; + goto yy629; } else { - if(yych == '`') goto yy628; + if(yych == '`') goto yy629; if(yych <= 'z') goto yy218; - goto yy628; + goto yy629; } } -yy628: -#line 419 +yy629: +#line 420 { RET(T_TRUE); } -yy629: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 's') goto yy634; - goto yy219; yy630: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'o') goto yy219; - goto yy631; + if(yych == 's') goto yy635; + goto yy219; yy631: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'w') goto yy219; + if(yych != 'o') goto yy219; goto yy632; -yy632: yyaccept = 45; +yy632: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'w') goto yy219; + goto yy633; +yy633: yyaccept = 46; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy633; + if(yych <= '/') goto yy634; if(yych <= '9') goto yy218; - goto yy633; + goto yy634; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy633; + goto yy634; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy633; + goto yy634; } else { - if(yych == '`') goto yy633; + if(yych == '`') goto yy634; if(yych <= 'z') goto yy218; - goto yy633; + goto yy634; } } -yy633: -#line 418 +yy634: +#line 419 { RET(T_THROW); } -yy634: yyaccept = 46; +yy635: yyaccept = 47; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy635; + if(yych <= '/') goto yy636; if(yych <= '9') goto yy218; - goto yy635; + goto yy636; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy635; + goto yy636; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy635; + goto yy636; } else { - if(yych == '`') goto yy635; + if(yych == '`') goto yy636; if(yych <= 'z') goto yy218; - goto yy635; + goto yy636; } } -yy635: -#line 417 +yy636: +#line 418 { RET(T_THIS); } -yy636: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; - goto yy637; yy637: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'p') goto yy219; goto yy638; yy638: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'l') goto yy219; goto yy639; yy639: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'a') goto yy219; goto yy640; yy640: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy641; -yy641: yyaccept = 47; +yy641: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy642; +yy642: yyaccept = 48; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy642; + if(yych <= '/') goto yy643; if(yych <= '9') goto yy218; - goto yy642; + goto yy643; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy642; + goto yy643; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy642; + goto yy643; } else { - if(yych == '`') goto yy642; + if(yych == '`') goto yy643; if(yych <= 'z') goto yy218; - goto yy642; + goto yy643; } } -yy642: -#line 416 +yy643: +#line 417 { RET(T_TEMPLATE); } -yy643: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'o') goto yy678; - goto yy219; yy644: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'g') goto yy668; - if(yych == 'z') goto yy669; + if(yych == 'o') goto yy679; goto yy219; yy645: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy652; - if(yych == 'r') goto yy653; + if(yych == 'g') goto yy669; + if(yych == 'z') goto yy670; goto yy219; yy646: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy647; + if(yych == 'a') goto yy653; + if(yych == 'r') goto yy654; + goto yy219; yy647: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'i') goto yy219; goto yy648; yy648: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 't') goto yy219; goto yy649; yy649: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'h') goto yy219; + if(yych != 'c') goto yy219; goto yy650; -yy650: yyaccept = 48; +yy650: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'h') goto yy219; + goto yy651; +yy651: yyaccept = 49; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy651; + if(yych <= '/') goto yy652; if(yych <= '9') goto yy218; - goto yy651; + goto yy652; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy651; + goto yy652; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy651; + goto yy652; } else { - if(yych == '`') goto yy651; + if(yych == '`') goto yy652; if(yych <= 'z') goto yy218; - goto yy651; + goto yy652; } } -yy651: -#line 415 +yy652: +#line 416 { RET(T_SWITCH); } -yy652: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 't') goto yy658; - goto yy219; yy653: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'u') goto yy219; - goto yy654; + if(yych == 't') goto yy659; + goto yy219; yy654: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'u') goto yy219; goto yy655; yy655: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'c') goto yy219; goto yy656; -yy656: yyaccept = 49; +yy656: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy657; +yy657: yyaccept = 50; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy657; + if(yych <= '/') goto yy658; if(yych <= '9') goto yy218; - goto yy657; + goto yy658; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy657; + goto yy658; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy657; + goto yy658; } else { - if(yych == '`') goto yy657; + if(yych == '`') goto yy658; if(yych <= 'z') goto yy218; - goto yy657; + goto yy658; } } -yy657: -#line 414 +yy658: +#line 415 { RET(T_STRUCT); } -yy658: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy659; yy659: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'i') goto yy219; goto yy660; -yy660: yyaccept = 50; +yy660: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'c') goto yy219; + goto yy661; +yy661: yyaccept = 51; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy661; + if(yych <= '/') goto yy662; if(yych <= '9') goto yy218; - goto yy661; + goto yy662; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy661; + goto yy662; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy661; + goto yy662; } else { - if(yych <= '_') goto yy662; - if(yych <= '`') goto yy661; + if(yych <= '_') goto yy663; + if(yych <= '`') goto yy662; if(yych <= 'z') goto yy218; - goto yy661; + goto yy662; } } -yy661: -#line 412 +yy662: +#line 413 { RET(T_STATIC); } -yy662: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; - goto yy663; yy663: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'c') goto yy219; goto yy664; yy664: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; + if(yych != 'a') goto yy219; goto yy665; yy665: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 's') goto yy219; goto yy666; -yy666: yyaccept = 51; +yy666: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy667; +yy667: yyaccept = 52; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy667; + if(yych <= '/') goto yy668; if(yych <= '9') goto yy218; - goto yy667; + goto yy668; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy667; + goto yy668; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy667; + goto yy668; } else { - if(yych == '`') goto yy667; + if(yych == '`') goto yy668; if(yych <= 'z') goto yy218; - goto yy667; + goto yy668; } } -yy667: -#line 413 +yy668: +#line 414 { RET(T_STATICCAST); } -yy668: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'n') goto yy674; - goto yy219; yy669: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy670; + if(yych == 'n') goto yy675; + goto yy219; yy670: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'o') goto yy219; + if(yych != 'e') goto yy219; goto yy671; yy671: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'f') goto yy219; + if(yych != 'o') goto yy219; goto yy672; -yy672: yyaccept = 52; +yy672: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'f') goto yy219; + goto yy673; +yy673: yyaccept = 53; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy673; + if(yych <= '/') goto yy674; if(yych <= '9') goto yy218; - goto yy673; + goto yy674; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy673; + goto yy674; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy673; + goto yy674; } else { - if(yych == '`') goto yy673; + if(yych == '`') goto yy674; if(yych <= 'z') goto yy218; - goto yy673; + goto yy674; } } -yy673: -#line 411 +yy674: +#line 412 { RET(T_SIZEOF); } -yy674: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy675; yy675: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'd') goto yy219; + if(yych != 'e') goto yy219; goto yy676; -yy676: yyaccept = 53; +yy676: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'd') goto yy219; + goto yy677; +yy677: yyaccept = 54; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy677; + if(yych <= '/') goto yy678; if(yych <= '9') goto yy218; - goto yy677; + goto yy678; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy677; + goto yy678; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy677; + goto yy678; } else { - if(yych == '`') goto yy677; + if(yych == '`') goto yy678; if(yych <= 'z') goto yy218; - goto yy677; + goto yy678; } } -yy677: -#line 410 +yy678: +#line 411 { RET(T_SIGNED); } -yy678: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; - goto yy679; yy679: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'r') goto yy219; goto yy680; -yy680: yyaccept = 54; +yy680: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy681; +yy681: yyaccept = 55; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy681; + if(yych <= '/') goto yy682; if(yych <= '9') goto yy218; - goto yy681; + goto yy682; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy681; + goto yy682; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy681; + goto yy682; } else { - if(yych == '`') goto yy681; + if(yych == '`') goto yy682; if(yych <= 'z') goto yy218; - goto yy681; + goto yy682; } } -yy681: -#line 409 +yy682: +#line 410 { RET(T_SHORT); } -yy682: yyaccept = 0; +yy683: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'h'){ if(yych != 'g') goto yy219; - goto yy683; + goto yy684; } else { - if(yych <= 'i') goto yy684; - if(yych == 't') goto yy685; + if(yych <= 'i') goto yy685; + if(yych == 't') goto yy686; goto yy219; } -yy683: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy704; - goto yy219; yy684: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'n') goto yy690; + if(yych == 'i') goto yy705; goto yy219; yy685: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'u') goto yy219; - goto yy686; + if(yych == 'n') goto yy691; + goto yy219; yy686: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'u') goto yy219; goto yy687; yy687: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'r') goto yy219; goto yy688; -yy688: yyaccept = 55; +yy688: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'n') goto yy219; + goto yy689; +yy689: yyaccept = 56; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy689; + if(yych <= '/') goto yy690; if(yych <= '9') goto yy218; - goto yy689; + goto yy690; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy689; + goto yy690; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy689; + goto yy690; } else { - if(yych == '`') goto yy689; + if(yych == '`') goto yy690; if(yych <= 'z') goto yy218; - goto yy689; + goto yy690; } } -yy689: -#line 408 +yy690: +#line 409 { RET(T_RETURN); } -yy690: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy691; yy691: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy692; yy692: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'e') goto yy219; goto yy693; yy693: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; + if(yych != 'r') goto yy219; goto yy694; yy694: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'p') goto yy219; goto yy695; yy695: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'r') goto yy219; goto yy696; yy696: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'e') goto yy219; goto yy697; yy697: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != '_') goto yy219; + if(yych != 't') goto yy219; goto yy698; yy698: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != '_') goto yy219; goto yy699; yy699: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'c') goto yy219; goto yy700; yy700: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; + if(yych != 'a') goto yy219; goto yy701; yy701: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 's') goto yy219; goto yy702; -yy702: yyaccept = 56; +yy702: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy703; +yy703: yyaccept = 57; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy703; + if(yych <= '/') goto yy704; if(yych <= '9') goto yy218; - goto yy703; + goto yy704; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy703; + goto yy704; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy703; + goto yy704; } else { - if(yych == '`') goto yy703; + if(yych == '`') goto yy704; if(yych <= 'z') goto yy218; - goto yy703; + goto yy704; } } -yy703: -#line 407 +yy704: +#line 408 { RET(T_REINTERPRETCAST); } -yy704: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; - goto yy705; yy705: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 's') goto yy219; goto yy706; yy706: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy707; yy707: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'e') goto yy219; goto yy708; -yy708: yyaccept = 57; +yy708: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'r') goto yy219; + goto yy709; +yy709: yyaccept = 58; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy709; + if(yych <= '/') goto yy710; if(yych <= '9') goto yy218; - goto yy709; + goto yy710; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy709; + goto yy710; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy709; + goto yy710; } else { - if(yych == '`') goto yy709; + if(yych == '`') goto yy710; if(yych <= 'z') goto yy218; - goto yy709; + goto yy710; } } -yy709: -#line 406 +yy710: +#line 407 { RET(T_REGISTER); } -yy710: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy717; - if(yych == 'o') goto yy718; - goto yy219; yy711: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'b') goto yy219; - goto yy712; + if(yych == 'i') goto yy718; + if(yych == 'o') goto yy719; + goto yy219; yy712: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'b') goto yy219; goto yy713; yy713: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; + if(yych != 'l') goto yy219; goto yy714; yy714: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'i') goto yy219; goto yy715; -yy715: yyaccept = 58; +yy715: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'c') goto yy219; + goto yy716; +yy716: yyaccept = 59; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy716; + if(yych <= '/') goto yy717; if(yych <= '9') goto yy218; - goto yy716; + goto yy717; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy716; + goto yy717; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy716; + goto yy717; } else { - if(yych == '`') goto yy716; + if(yych == '`') goto yy717; if(yych <= 'z') goto yy218; - goto yy716; + goto yy717; } } -yy716: -#line 405 +yy717: +#line 406 { RET(T_PUBLIC); } -yy717: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'v') goto yy726; - goto yy219; yy718: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy719; + if(yych == 'v') goto yy727; + goto yy219; yy719: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy720; yy720: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'e') goto yy219; goto yy721; yy721: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'c') goto yy219; goto yy722; yy722: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy723; yy723: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'd') goto yy219; + if(yych != 'e') goto yy219; goto yy724; -yy724: yyaccept = 59; +yy724: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'd') goto yy219; + goto yy725; +yy725: yyaccept = 60; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy725; + if(yych <= '/') goto yy726; if(yych <= '9') goto yy218; - goto yy725; + goto yy726; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy725; + goto yy726; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy725; + goto yy726; } else { - if(yych == '`') goto yy725; + if(yych == '`') goto yy726; if(yych <= 'z') goto yy218; - goto yy725; + goto yy726; } } -yy725: -#line 404 +yy726: +#line 405 { RET(T_PROTECTED); } -yy726: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; - goto yy727; yy727: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'a') goto yy219; goto yy728; yy728: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy729; -yy729: yyaccept = 60; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy730; - if(yych <= '9') goto yy218; - goto yy730; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy730; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy730; - } else { - if(yych == '`') goto yy730; - if(yych <= 'z') goto yy218; - goto yy730; - } - } -yy730: -#line 403 - { RET(T_PRIVATE); } -yy731: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'e') goto yy738; - goto yy219; -yy732: yyaccept = 61; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy733; - if(yych <= '9') goto yy218; - goto yy733; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy733; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy733; - } else { - if(yych <= '_') goto yy734; - if(yych <= '`') goto yy733; - if(yych <= 'z') goto yy218; - goto yy733; - } - } -yy733: -#line 544 - { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); } -yy734: yyaccept = 0; +yy729: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'e') goto yy219; - goto yy735; + goto yy730; +yy730: yyaccept = 61; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy731; + if(yych <= '9') goto yy218; + goto yy731; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy731; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy731; + } else { + if(yych == '`') goto yy731; + if(yych <= 'z') goto yy218; + goto yy731; + } + } +yy731: +#line 404 + { RET(T_PRIVATE); } +yy732: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'e') goto yy739; + goto yy219; +yy733: yyaccept = 62; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy734; + if(yych <= '9') goto yy218; + goto yy734; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy734; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy734; + } else { + if(yych <= '_') goto yy735; + if(yych <= '`') goto yy734; + if(yych <= 'z') goto yy218; + goto yy734; + } + } +yy734: +#line 545 + { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); } yy735: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'q') goto yy219; + if(yych != 'e') goto yy219; goto yy736; -yy736: yyaccept = 62; +yy736: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'q') goto yy219; + goto yy737; +yy737: yyaccept = 63; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy737; + if(yych <= '/') goto yy738; if(yych <= '9') goto yy218; - goto yy737; + goto yy738; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy737; + goto yy738; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy737; + goto yy738; } else { - if(yych == '`') goto yy737; + if(yych == '`') goto yy738; if(yych <= 'z') goto yy218; - goto yy737; + goto yy738; } } -yy737: -#line 528 +yy738: +#line 529 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); } -yy738: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; - goto yy739; yy739: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'r') goto yy219; goto yy740; yy740: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'a') goto yy219; goto yy741; yy741: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'o') goto yy219; + if(yych != 't') goto yy219; goto yy742; yy742: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'o') goto yy219; goto yy743; -yy743: yyaccept = 63; +yy743: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'r') goto yy219; + goto yy744; +yy744: yyaccept = 64; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy744; + if(yych <= '/') goto yy745; if(yych <= '9') goto yy218; - goto yy744; + goto yy745; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy744; + goto yy745; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy744; + goto yy745; } else { - if(yych == '`') goto yy744; + if(yych == '`') goto yy745; if(yych <= 'z') goto yy218; - goto yy744; + goto yy745; } } -yy744: -#line 402 +yy745: +#line 403 { RET(T_OPERATOR); } -yy745: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'm') goto yy756; - goto yy219; yy746: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'w') goto yy754; + if(yych == 'm') goto yy757; goto yy219; yy747: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'w') goto yy755; + goto yy219; +yy748: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 't') goto yy219; - goto yy748; -yy748: yyaccept = 64; + goto yy749; +yy749: yyaccept = 65; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy749; + if(yych <= '/') goto yy750; if(yych <= '9') goto yy218; - goto yy749; + goto yy750; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy749; + goto yy750; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy749; + goto yy750; } else { - if(yych <= '_') goto yy750; - if(yych <= '`') goto yy749; + if(yych <= '_') goto yy751; + if(yych <= '`') goto yy750; if(yych <= 'z') goto yy218; - goto yy749; + goto yy750; } } -yy749: -#line 513 +yy750: +#line 514 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); } -yy750: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy751; yy751: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'q') goto yy219; - goto yy752; -yy752: yyaccept = 65; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy753; - if(yych <= '9') goto yy218; - goto yy753; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy753; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy753; - } else { - if(yych == '`') goto yy753; - if(yych <= 'z') goto yy218; - goto yy753; - } - } -yy753: -#line 536 - { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); } -yy754: yyaccept = 66; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'Z'){ - if(yych <= '>'){ - if(yych <= '/') goto yy755; - if(yych <= '9') goto yy218; - goto yy755; - } else { - if(yych <= '?') goto yy221; - if(yych >= 'A') goto yy218; - goto yy755; - } - } else { - if(yych <= '^'){ - if(yych == '\\') goto yy220; - goto yy755; - } else { - if(yych == '`') goto yy755; - if(yych <= 'z') goto yy218; - goto yy755; - } - } -yy755: -#line 401 - { RET(T_NEW); } -yy756: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'e') goto yy219; - goto yy757; + goto yy752; +yy752: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'q') goto yy219; + goto yy753; +yy753: yyaccept = 66; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy754; + if(yych <= '9') goto yy218; + goto yy754; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy754; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy754; + } else { + if(yych == '`') goto yy754; + if(yych <= 'z') goto yy218; + goto yy754; + } + } +yy754: +#line 537 + { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); } +yy755: yyaccept = 67; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= 'Z'){ + if(yych <= '>'){ + if(yych <= '/') goto yy756; + if(yych <= '9') goto yy218; + goto yy756; + } else { + if(yych <= '?') goto yy221; + if(yych >= 'A') goto yy218; + goto yy756; + } + } else { + if(yych <= '^'){ + if(yych == '\\') goto yy220; + goto yy756; + } else { + if(yych == '`') goto yy756; + if(yych <= 'z') goto yy218; + goto yy756; + } + } +yy756: +#line 402 + { RET(T_NEW); } yy757: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; + if(yych != 'e') goto yy219; goto yy758; yy758: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; + if(yych != 's') goto yy219; goto yy759; yy759: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'p') goto yy219; goto yy760; yy760: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'a') goto yy219; goto yy761; yy761: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'c') goto yy219; goto yy762; -yy762: yyaccept = 67; +yy762: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy763; +yy763: yyaccept = 68; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy763; + if(yych <= '/') goto yy764; if(yych <= '9') goto yy218; - goto yy763; + goto yy764; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy763; + goto yy764; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy763; + goto yy764; } else { - if(yych == '`') goto yy763; + if(yych == '`') goto yy764; if(yych <= 'z') goto yy218; - goto yy763; + goto yy764; } } -yy763: -#line 400 +yy764: +#line 401 { RET(T_NAMESPACE); } -yy764: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy765; yy765: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 't') goto yy219; goto yy766; yy766: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'b') goto yy219; + if(yych != 'a') goto yy219; goto yy767; yy767: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'b') goto yy219; goto yy768; yy768: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'l') goto yy219; goto yy769; -yy769: yyaccept = 68; +yy769: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy770; +yy770: yyaccept = 69; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy770; + if(yych <= '/') goto yy771; if(yych <= '9') goto yy218; - goto yy770; + goto yy771; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy770; + goto yy771; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy770; + goto yy771; } else { - if(yych == '`') goto yy770; + if(yych == '`') goto yy771; if(yych <= 'z') goto yy218; - goto yy770; + goto yy771; } } -yy770: -#line 399 +yy771: +#line 400 { RET(T_MUTABLE); } -yy771: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; - goto yy772; yy772: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'g') goto yy219; + if(yych != 'n') goto yy219; goto yy773; -yy773: yyaccept = 69; +yy773: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'g') goto yy219; + goto yy774; +yy774: yyaccept = 70; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy774; + if(yych <= '/') goto yy775; if(yych <= '9') goto yy218; - goto yy774; + goto yy775; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy774; + goto yy775; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy774; + goto yy775; } else { - if(yych == '`') goto yy774; + if(yych == '`') goto yy775; if(yych <= 'z') goto yy218; - goto yy774; + goto yy775; } } -yy774: -#line 398 +yy775: +#line 399 { RET(T_LONG); } -yy775: yyaccept = 70; +yy776: yyaccept = 71; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy776; + if(yych <= '/') goto yy777; if(yych <= '9') goto yy218; - goto yy776; + goto yy777; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy776; + goto yy777; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy776; + goto yy777; } else { - if(yych == '`') goto yy776; + if(yych == '`') goto yy777; if(yych <= 'z') goto yy218; - goto yy776; + goto yy777; } } -yy776: -#line 395 +yy777: +#line 396 { RET(T_IF); } -yy777: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'l') goto yy778; - if(yych == 't') goto yy779; - goto yy219; yy778: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy781; + if(yych == 'l') goto yy779; + if(yych == 't') goto yy780; goto yy219; -yy779: yyaccept = 71; +yy779: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'i') goto yy782; + goto yy219; +yy780: yyaccept = 72; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy780; + if(yych <= '/') goto yy781; if(yych <= '9') goto yy218; - goto yy780; + goto yy781; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy780; + goto yy781; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy780; + goto yy781; } else { - if(yych == '`') goto yy780; + if(yych == '`') goto yy781; if(yych <= 'z') goto yy218; - goto yy780; + goto yy781; } } -yy780: -#line 397 +yy781: +#line 398 { RET(T_INT); } -yy781: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; - goto yy782; yy782: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'n') goto yy219; goto yy783; -yy783: yyaccept = 72; +yy783: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy784; +yy784: yyaccept = 73; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy784; + if(yych <= '/') goto yy785; if(yych <= '9') goto yy218; - goto yy784; + goto yy785; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy784; + goto yy785; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy784; + goto yy785; } else { - if(yych == '`') goto yy784; + if(yych == '`') goto yy785; if(yych <= 'z') goto yy218; - goto yy784; + goto yy785; } } -yy784: -#line 396 +yy785: +#line 397 { RET(T_INLINE); } -yy785: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy786; yy786: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'o') goto yy219; + if(yych != 't') goto yy219; goto yy787; -yy787: yyaccept = 73; +yy787: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'o') goto yy219; + goto yy788; +yy788: yyaccept = 74; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy788; + if(yych <= '/') goto yy789; if(yych <= '9') goto yy218; - goto yy788; + goto yy789; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy788; + goto yy789; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy788; + goto yy789; } else { - if(yych == '`') goto yy788; + if(yych == '`') goto yy789; if(yych <= 'z') goto yy218; - goto yy788; + goto yy789; } } -yy788: -#line 394 +yy789: +#line 395 { RET(T_GOTO); } -yy789: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'l') goto yy804; - goto yy219; yy790: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'o') goto yy800; + if(yych == 'l') goto yy805; goto yy219; yy791: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'r') goto yy798; + if(yych == 'o') goto yy801; goto yy219; yy792: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy793; + if(yych == 'r') goto yy799; + goto yy219; yy793: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'i') goto yy219; goto yy794; yy794: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'e') goto yy219; goto yy795; yy795: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'd') goto yy219; + if(yych != 'n') goto yy219; goto yy796; -yy796: yyaccept = 74; +yy796: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'd') goto yy219; + goto yy797; +yy797: yyaccept = 75; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy797; + if(yych <= '/') goto yy798; if(yych <= '9') goto yy218; - goto yy797; + goto yy798; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy797; + goto yy798; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy797; + goto yy798; } else { - if(yych == '`') goto yy797; + if(yych == '`') goto yy798; if(yych <= 'z') goto yy218; - goto yy797; + goto yy798; } } -yy797: -#line 393 +yy798: +#line 394 { RET(T_FRIEND); } -yy798: yyaccept = 75; +yy799: yyaccept = 76; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy799; + if(yych <= '/') goto yy800; if(yych <= '9') goto yy218; - goto yy799; + goto yy800; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy799; + goto yy800; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy799; + goto yy800; } else { - if(yych == '`') goto yy799; + if(yych == '`') goto yy800; if(yych <= 'z') goto yy218; - goto yy799; + goto yy800; } } -yy799: -#line 392 +yy800: +#line 393 { RET(T_FOR); } -yy800: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; - goto yy801; yy801: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'a') goto yy219; goto yy802; -yy802: yyaccept = 76; +yy802: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy803; +yy803: yyaccept = 77; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy803; + if(yych <= '/') goto yy804; if(yych <= '9') goto yy218; - goto yy803; + goto yy804; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy803; + goto yy804; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy803; + goto yy804; } else { - if(yych == '`') goto yy803; + if(yych == '`') goto yy804; if(yych <= 'z') goto yy218; - goto yy803; + goto yy804; } } -yy803: -#line 391 +yy804: +#line 392 { RET(T_FLOAT); } -yy804: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; - goto yy805; yy805: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 's') goto yy219; goto yy806; -yy806: yyaccept = 77; +yy806: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy807; +yy807: yyaccept = 78; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy807; + if(yych <= '/') goto yy808; if(yych <= '9') goto yy218; - goto yy807; + goto yy808; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy807; + goto yy808; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy807; + goto yy808; } else { - if(yych == '`') goto yy807; + if(yych == '`') goto yy808; if(yych <= 'z') goto yy218; - goto yy807; + goto yy808; } } -yy807: -#line 390 +yy808: +#line 391 { RET(T_FALSE); } -yy808: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 's') goto yy830; - goto yy219; yy809: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'u') goto yy827; + if(yych == 's') goto yy831; goto yy219; yy810: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'p') goto yy811; - if(yych == 't') goto yy812; + if(yych == 'u') goto yy828; goto yy219; yy811: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'l') goto yy817; - if(yych == 'o') goto yy818; + if(yych == 'p') goto yy812; + if(yych == 't') goto yy813; goto yy219; yy812: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy813; + if(yych == 'l') goto yy818; + if(yych == 'o') goto yy819; + goto yy219; yy813: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; + if(yych != 'e') goto yy219; goto yy814; yy814: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'r') goto yy219; goto yy815; -yy815: yyaccept = 78; +yy815: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'n') goto yy219; + goto yy816; +yy816: yyaccept = 79; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy816; + if(yych <= '/') goto yy817; if(yych <= '9') goto yy218; - goto yy816; + goto yy817; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy816; + goto yy817; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy816; + goto yy817; } else { - if(yych == '`') goto yy816; + if(yych == '`') goto yy817; if(yych <= 'z') goto yy218; - goto yy816; + goto yy817; } } -yy816: -#line 389 +yy817: +#line 390 { RET(T_EXTERN); } -yy817: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'i') goto yy822; - goto yy219; yy818: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'r') goto yy219; - goto yy819; + if(yych == 'i') goto yy823; + goto yy219; yy819: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'r') goto yy219; goto yy820; -yy820: yyaccept = 79; +yy820: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy821; +yy821: yyaccept = 80; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy821; + if(yych <= '/') goto yy822; if(yych <= '9') goto yy218; - goto yy821; + goto yy822; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy821; + goto yy822; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy821; + goto yy822; } else { - if(yych == '`') goto yy821; + if(yych == '`') goto yy822; if(yych <= 'z') goto yy218; - goto yy821; + goto yy822; } } -yy821: -#line 388 +yy822: +#line 389 { RET(T_EXPORT); } -yy822: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; - goto yy823; yy823: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; + if(yych != 'c') goto yy219; goto yy824; yy824: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'i') goto yy219; goto yy825; -yy825: yyaccept = 80; +yy825: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy826; +yy826: yyaccept = 81; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy826; + if(yych <= '/') goto yy827; if(yych <= '9') goto yy218; - goto yy826; + goto yy827; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy826; + goto yy827; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy826; + goto yy827; } else { - if(yych == '`') goto yy826; + if(yych == '`') goto yy827; if(yych <= 'z') goto yy218; - goto yy826; + goto yy827; } } -yy826: -#line 387 +yy827: +#line 388 { RET(T_EXPLICIT); } -yy827: yyaccept = 0; +yy828: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'm') goto yy219; - goto yy828; -yy828: yyaccept = 81; + goto yy829; +yy829: yyaccept = 82; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy829; + if(yych <= '/') goto yy830; if(yych <= '9') goto yy218; - goto yy829; + goto yy830; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy829; + goto yy830; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy829; + goto yy830; } else { - if(yych == '`') goto yy829; + if(yych == '`') goto yy830; if(yych <= 'z') goto yy218; - goto yy829; + goto yy830; } } -yy829: -#line 386 +yy830: +#line 387 { RET(T_ENUM); } -yy830: yyaccept = 0; +yy831: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'e') goto yy219; - goto yy831; -yy831: yyaccept = 82; + goto yy832; +yy832: yyaccept = 83; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy832; + if(yych <= '/') goto yy833; if(yych <= '9') goto yy218; - goto yy832; + goto yy833; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy832; + goto yy833; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy832; + goto yy833; } else { - if(yych == '`') goto yy832; + if(yych == '`') goto yy833; if(yych <= 'z') goto yy218; - goto yy832; + goto yy833; } } -yy832: -#line 385 +yy833: +#line 386 { RET(T_ELSE); } -yy833: yyaccept = 0; +yy834: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'f') goto yy853; - if(yych == 'l') goto yy854; + if(yych == 'f') goto yy854; + if(yych == 'l') goto yy855; goto yy219; -yy834: yyaccept = 83; +yy835: yyaccept = 84; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '['){ if(yych <= '>'){ - if(yych <= '/') goto yy835; + if(yych <= '/') goto yy836; if(yych <= '9') goto yy218; - goto yy835; + goto yy836; } else { if(yych <= '?') goto yy221; - if(yych <= '@') goto yy835; + if(yych <= '@') goto yy836; if(yych <= 'Z') goto yy218; - goto yy835; + goto yy836; } } else { if(yych <= '`'){ if(yych <= '\\') goto yy220; if(yych == '_') goto yy218; - goto yy835; + goto yy836; } else { - if(yych == 'u') goto yy848; + if(yych == 'u') goto yy849; if(yych <= 'z') goto yy218; - goto yy835; + goto yy836; } } -yy835: -#line 382 +yy836: +#line 383 { RET(T_DO); } -yy836: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; - goto yy837; yy837: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'n') goto yy219; goto yy838; yy838: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'm') goto yy219; + if(yych != 'a') goto yy219; goto yy839; yy839: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; + if(yych != 'm') goto yy219; goto yy840; yy840: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != 'i') goto yy219; goto yy841; yy841: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != '_') goto yy219; + if(yych != 'c') goto yy219; goto yy842; yy842: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; + if(yych != '_') goto yy219; goto yy843; yy843: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'c') goto yy219; goto yy844; yy844: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; + if(yych != 'a') goto yy219; goto yy845; yy845: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 's') goto yy219; goto yy846; -yy846: yyaccept = 84; +yy846: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy847; +yy847: yyaccept = 85; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy847; + if(yych <= '/') goto yy848; if(yych <= '9') goto yy218; - goto yy847; + goto yy848; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy847; + goto yy848; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy847; + goto yy848; } else { - if(yych == '`') goto yy847; + if(yych == '`') goto yy848; if(yych <= 'z') goto yy218; - goto yy847; + goto yy848; } } -yy847: -#line 384 +yy848: +#line 385 { RET(T_DYNAMICCAST); } -yy848: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'b') goto yy219; - goto yy849; yy849: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'b') goto yy219; goto yy850; yy850: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'l') goto yy219; goto yy851; -yy851: yyaccept = 85; +yy851: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy852; +yy852: yyaccept = 86; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy852; + if(yych <= '/') goto yy853; if(yych <= '9') goto yy218; - goto yy852; + goto yy853; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy852; + goto yy853; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy852; + goto yy853; } else { - if(yych == '`') goto yy852; + if(yych == '`') goto yy853; if(yych <= 'z') goto yy218; - goto yy852; + goto yy853; } } -yy852: -#line 383 +yy853: +#line 384 { RET(T_DOUBLE); } -yy853: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy859; - goto yy219; yy854: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy855; + if(yych == 'a') goto yy860; + goto yy219; yy855: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'e') goto yy219; goto yy856; yy856: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 't') goto yy219; goto yy857; -yy857: yyaccept = 86; +yy857: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy858; +yy858: yyaccept = 87; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy858; + if(yych <= '/') goto yy859; if(yych <= '9') goto yy218; - goto yy858; + goto yy859; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy858; + goto yy859; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy858; + goto yy859; } else { - if(yych == '`') goto yy858; + if(yych == '`') goto yy859; if(yych <= 'z') goto yy218; - goto yy858; + goto yy859; } } -yy858: -#line 381 +yy859: +#line 382 { RET(T_DELETE); } -yy859: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'u') goto yy219; - goto yy860; yy860: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'u') goto yy219; goto yy861; yy861: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 'l') goto yy219; goto yy862; -yy862: yyaccept = 87; +yy862: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy863; +yy863: yyaccept = 88; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy863; + if(yych <= '/') goto yy864; if(yych <= '9') goto yy218; - goto yy863; + goto yy864; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy863; + goto yy864; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy863; + goto yy864; } else { - if(yych == '`') goto yy863; + if(yych == '`') goto yy864; if(yych <= 'z') goto yy218; - goto yy863; + goto yy864; } } -yy863: -#line 380 +yy864: +#line 381 { RET(T_DEFAULT); } -yy864: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'r') goto yy219; - if(yych <= 's') goto yy895; - if(yych <= 't') goto yy896; - goto yy219; yy865: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy892; + if(yych <= 'r') goto yy219; + if(yych <= 's') goto yy896; + if(yych <= 't') goto yy897; goto yy219; yy866: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy888; + if(yych == 'a') goto yy893; goto yy219; yy867: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'l') goto yy219; - if(yych <= 'm') goto yy869; - if(yych >= 'o') goto yy219; - goto yy868; + if(yych == 'a') goto yy889; + goto yy219; yy868: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych <= 'r') goto yy219; - if(yych <= 's') goto yy873; - if(yych <= 't') goto yy874; - goto yy219; + if(yych <= 'l') goto yy219; + if(yych <= 'm') goto yy870; + if(yych >= 'o') goto yy219; + goto yy869; yy869: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'p') goto yy219; - goto yy870; + if(yych <= 'r') goto yy219; + if(yych <= 's') goto yy874; + if(yych <= 't') goto yy875; + goto yy219; yy870: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'l') goto yy219; + if(yych != 'p') goto yy219; goto yy871; -yy871: yyaccept = 88; +yy871: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'l') goto yy219; + goto yy872; +yy872: yyaccept = 89; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy872; + if(yych <= '/') goto yy873; if(yych <= '9') goto yy218; - goto yy872; + goto yy873; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy872; + goto yy873; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy872; + goto yy873; } else { - if(yych == '`') goto yy872; + if(yych == '`') goto yy873; if(yych <= 'z') goto yy218; - goto yy872; + goto yy873; } } -yy872: -#line 511 +yy873: +#line 512 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); } -yy873: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 't') goto yy880; - goto yy219; yy874: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'i') goto yy219; - goto yy875; + if(yych == 't') goto yy881; + goto yy219; yy875: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'n') goto yy219; + if(yych != 'i') goto yy219; goto yy876; yy876: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'u') goto yy219; + if(yych != 'n') goto yy219; goto yy877; yy877: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; + if(yych != 'u') goto yy219; goto yy878; -yy878: yyaccept = 89; +yy878: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'e') goto yy219; + goto yy879; +yy879: yyaccept = 90; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy879; + if(yych <= '/') goto yy880; if(yych <= '9') goto yy218; - goto yy879; + goto yy880; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy879; + goto yy880; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy879; + goto yy880; } else { - if(yych == '`') goto yy879; + if(yych == '`') goto yy880; if(yych <= 'z') goto yy218; - goto yy879; + goto yy880; } } -yy879: -#line 379 +yy880: +#line 380 { RET(T_CONTINUE); } -yy880: yyaccept = 90; +yy881: yyaccept = 91; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy881; + if(yych <= '/') goto yy882; if(yych <= '9') goto yy218; - goto yy881; + goto yy882; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy881; + goto yy882; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy881; + goto yy882; } else { - if(yych <= '_') goto yy882; - if(yych <= '`') goto yy881; + if(yych <= '_') goto yy883; + if(yych <= '`') goto yy882; if(yych <= 'z') goto yy218; - goto yy881; + goto yy882; } } -yy881: -#line 377 +yy882: +#line 378 { RET(T_CONST); } -yy882: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; - goto yy883; yy883: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'c') goto yy219; goto yy884; yy884: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; + if(yych != 'a') goto yy219; goto yy885; yy885: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; + if(yych != 's') goto yy219; goto yy886; -yy886: yyaccept = 91; +yy886: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 't') goto yy219; + goto yy887; +yy887: yyaccept = 92; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy887; + if(yych <= '/') goto yy888; if(yych <= '9') goto yy218; - goto yy887; + goto yy888; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy887; + goto yy888; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy887; + goto yy888; } else { - if(yych == '`') goto yy887; + if(yych == '`') goto yy888; if(yych <= 'z') goto yy218; - goto yy887; + goto yy888; } } -yy887: -#line 378 +yy888: +#line 379 { RET(T_CONSTCAST); } -yy888: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 's') goto yy219; - goto yy889; yy889: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 's') goto yy219; goto yy890; -yy890: yyaccept = 92; +yy890: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 's') goto yy219; + goto yy891; +yy891: yyaccept = 93; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy891; + if(yych <= '/') goto yy892; if(yych <= '9') goto yy218; - goto yy891; + goto yy892; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy891; + goto yy892; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy891; + goto yy892; } else { - if(yych == '`') goto yy891; + if(yych == '`') goto yy892; if(yych <= 'z') goto yy218; - goto yy891; + goto yy892; } } -yy891: -#line 376 +yy892: +#line 377 { RET(T_CLASS); } -yy892: yyaccept = 0; +yy893: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'r') goto yy219; - goto yy893; -yy893: yyaccept = 93; + goto yy894; +yy894: yyaccept = 94; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy894; + if(yych <= '/') goto yy895; if(yych <= '9') goto yy218; - goto yy894; + goto yy895; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy894; + goto yy895; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy894; + goto yy895; } else { - if(yych == '`') goto yy894; + if(yych == '`') goto yy895; if(yych <= 'z') goto yy218; - goto yy894; + goto yy895; } } -yy894: -#line 375 +yy895: +#line 376 { RET(T_CHAR); } -yy895: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'e') goto yy900; - goto yy219; yy896: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'c') goto yy219; - goto yy897; + if(yych == 'e') goto yy901; + goto yy219; yy897: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'h') goto yy219; + if(yych != 'c') goto yy219; goto yy898; -yy898: yyaccept = 94; +yy898: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'h') goto yy219; + goto yy899; +yy899: yyaccept = 95; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy899; + if(yych <= '/') goto yy900; if(yych <= '9') goto yy218; - goto yy899; + goto yy900; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy899; + goto yy900; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy899; + goto yy900; } else { - if(yych == '`') goto yy899; + if(yych == '`') goto yy900; if(yych <= 'z') goto yy218; - goto yy899; + goto yy900; } } -yy899: -#line 374 +yy900: +#line 375 { RET(T_CATCH); } -yy900: yyaccept = 95; +yy901: yyaccept = 96; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy901; + if(yych <= '/') goto yy902; if(yych <= '9') goto yy218; - goto yy901; + goto yy902; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy901; + goto yy902; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy901; + goto yy902; } else { - if(yych == '`') goto yy901; + if(yych == '`') goto yy902; if(yych <= 'z') goto yy218; - goto yy901; + goto yy902; } } -yy901: -#line 373 +yy902: +#line 374 { RET(T_CASE); } -yy902: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 't') goto yy912; - goto yy219; yy903: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'o') goto yy909; + if(yych == 't') goto yy913; goto yy219; yy904: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy905; + if(yych == 'o') goto yy910; + goto yy219; yy905: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'a') goto yy219; + if(yych != 'e') goto yy219; goto yy906; yy906: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'k') goto yy219; + if(yych != 'a') goto yy219; goto yy907; -yy907: yyaccept = 96; +yy907: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'k') goto yy219; + goto yy908; +yy908: yyaccept = 97; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy908; + if(yych <= '/') goto yy909; if(yych <= '9') goto yy218; - goto yy908; + goto yy909; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy908; + goto yy909; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy908; + goto yy909; } else { - if(yych == '`') goto yy908; + if(yych == '`') goto yy909; if(yych <= 'z') goto yy218; - goto yy908; + goto yy909; } } -yy908: -#line 372 +yy909: +#line 373 { RET(T_BREAK); } -yy909: yyaccept = 0; +yy910: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'l') goto yy219; - goto yy910; -yy910: yyaccept = 97; + goto yy911; +yy911: yyaccept = 98; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy911; + if(yych <= '/') goto yy912; if(yych <= '9') goto yy218; - goto yy911; + goto yy912; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy911; + goto yy912; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy911; + goto yy912; } else { - if(yych == '`') goto yy911; + if(yych == '`') goto yy912; if(yych <= 'z') goto yy218; - goto yy911; + goto yy912; } } -yy911: -#line 371 +yy912: +#line 372 { RET(T_BOOL); } -yy912: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'a') goto yy913; - if(yych == 'o') goto yy914; - goto yy219; yy913: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'n') goto yy917; + if(yych == 'a') goto yy914; + if(yych == 'o') goto yy915; goto yy219; yy914: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'n') goto yy918; + goto yy219; +yy915: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'r') goto yy219; - goto yy915; -yy915: yyaccept = 98; + goto yy916; +yy916: yyaccept = 99; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy916; + if(yych <= '/') goto yy917; if(yych <= '9') goto yy218; - goto yy916; + goto yy917; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy916; + goto yy917; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy916; + goto yy917; } else { - if(yych == '`') goto yy916; + if(yych == '`') goto yy917; if(yych <= 'z') goto yy218; - goto yy916; + goto yy917; } } -yy916: -#line 507 +yy917: +#line 508 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); } -yy917: yyaccept = 0; +yy918: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'd') goto yy219; - goto yy918; -yy918: yyaccept = 99; + goto yy919; +yy919: yyaccept = 100; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy919; + if(yych <= '/') goto yy920; if(yych <= '9') goto yy218; - goto yy919; + goto yy920; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy919; + goto yy920; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy919; + goto yy920; } else { - if(yych == '`') goto yy919; + if(yych == '`') goto yy920; if(yych <= 'z') goto yy218; - goto yy919; + goto yy920; } } -yy919: -#line 505 +yy920: +#line 506 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); } -yy920: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'd') goto yy928; - goto yy219; yy921: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'm') goto yy926; + if(yych == 'd') goto yy929; goto yy219; yy922: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 't') goto yy219; - goto yy923; + if(yych == 'm') goto yy927; + goto yy219; yy923: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'o') goto yy219; + if(yych != 't') goto yy219; goto yy924; -yy924: yyaccept = 100; +yy924: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'o') goto yy219; + goto yy925; +yy925: yyaccept = 101; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy925; + if(yych <= '/') goto yy926; if(yych <= '9') goto yy218; - goto yy925; + goto yy926; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy925; + goto yy926; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy925; + goto yy926; } else { - if(yych == '`') goto yy925; + if(yych == '`') goto yy926; if(yych <= 'z') goto yy218; - goto yy925; + goto yy926; } } -yy925: -#line 370 +yy926: +#line 371 { RET(T_AUTO); } -yy926: yyaccept = 101; +yy927: yyaccept = 102; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy927; + if(yych <= '/') goto yy928; if(yych <= '9') goto yy218; - goto yy927; + goto yy928; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy927; + goto yy928; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy927; + goto yy928; } else { - if(yych == '`') goto yy927; + if(yych == '`') goto yy928; if(yych <= 'z') goto yy218; - goto yy927; + goto yy928; } } -yy927: -#line 369 +yy928: +#line 370 { RET(T_ASM); } -yy928: yyaccept = 102; +yy929: yyaccept = 103; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy929; + if(yych <= '/') goto yy930; if(yych <= '9') goto yy218; - goto yy929; + goto yy930; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy929; + goto yy930; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy929; + goto yy930; } else { - if(yych <= '_') goto yy930; - if(yych <= '`') goto yy929; + if(yych <= '_') goto yy931; + if(yych <= '`') goto yy930; if(yych <= 'z') goto yy218; - goto yy929; + goto yy930; } } -yy929: -#line 540 +yy930: +#line 541 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); } -yy930: yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'e') goto yy219; - goto yy931; yy931: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych != 'q') goto yy219; + if(yych != 'e') goto yy219; goto yy932; -yy932: yyaccept = 103; +yy932: yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'q') goto yy219; + goto yy933; +yy933: yyaccept = 104; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ if(yych <= '>'){ - if(yych <= '/') goto yy933; + if(yych <= '/') goto yy934; if(yych <= '9') goto yy218; - goto yy933; + goto yy934; } else { if(yych <= '?') goto yy221; if(yych >= 'A') goto yy218; - goto yy933; + goto yy934; } } else { if(yych <= '^'){ if(yych == '\\') goto yy220; - goto yy933; + goto yy934; } else { - if(yych == '`') goto yy933; + if(yych == '`') goto yy934; if(yych <= 'z') goto yy218; - goto yy933; + goto yy934; } } -yy933: -#line 526 +yy934: +#line 527 { RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); } -yy934: yych = *++YYCURSOR; - goto yy935; -yy935: -#line 520 +yy935: yych = *++YYCURSOR; + goto yy936; +yy936: +#line 521 { RET(T_DIVIDEASSIGN); } -yy936: yych = *++YYCURSOR; - goto yy937; -yy937: -#line 367 +yy937: yych = *++YYCURSOR; + goto yy938; +yy938: +#line 368 { goto cppcomment; } -yy938: yych = *++YYCURSOR; - goto yy939; -yy939: -#line 366 +yy939: yych = *++YYCURSOR; + goto yy940; +yy940: +#line 367 { goto ccomment; } } -#line 633 +#line 635 ccomment: { YYCTYPE yych; unsigned int yyaccept; - goto yy940; -yy941: ++YYCURSOR; -yy940: + goto yy941; +yy942: ++YYCURSOR; +yy941: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '\f'){ if(yych <= '\b'){ - if(yych <= '\000') goto yy949; - goto yy942; + if(yych <= '\000') goto yy950; + goto yy943; } else { - if(yych == '\n') goto yy945; - goto yy948; + if(yych == '\n') goto yy946; + goto yy949; } } else { if(yych <= '\037'){ - if(yych <= '\r') goto yy947; - goto yy942; + if(yych <= '\r') goto yy948; + goto yy943; } else { - if(yych == '*') goto yy943; - goto yy948; + if(yych == '*') goto yy944; + goto yy949; } } -yy942:yy943: yych = *++YYCURSOR; - if(yych == '/') goto yy952; - goto yy944; -yy944: -#line 647 +yy943:yy944: yych = *++YYCURSOR; + if(yych == '/') goto yy953; + goto yy945; +yy945: +#line 649 { goto ccomment; } -yy945: yych = *++YYCURSOR; - goto yy946; -yy946: -#line 640 +yy946: yych = *++YYCURSOR; + goto yy947; +yy947: +#line 642 { /*if(cursor == s->eof) RET(T_EOF);*/ /*s->tok = cursor; */ s->line += count_backslash_newlines(s, cursor) +1; goto ccomment; } -yy947: yych = *++YYCURSOR; - if(yych == '\n') goto yy951; - goto yy946; yy948: yych = *++YYCURSOR; - goto yy944; + if(yych == '\n') goto yy952; + goto yy947; yy949: yych = *++YYCURSOR; - goto yy950; -yy950: -#line 650 + goto yy945; +yy950: yych = *++YYCURSOR; + goto yy951; +yy951: +#line 652 { yyaccept = 0; /* avoid warning about unreferenced variable */ if(cursor == s->eof) @@ -7989,59 +7995,59 @@ yy950: /* the comment is unterminated, but nevertheless its a comment */ RET(T_CCOMMENT); } -yy951: yych = *++YYCURSOR; - goto yy946; yy952: yych = *++YYCURSOR; - goto yy953; -yy953: -#line 637 + goto yy947; +yy953: yych = *++YYCURSOR; + goto yy954; +yy954: +#line 639 { RET(T_CCOMMENT); } } -#line 672 +#line 674 cppcomment: { YYCTYPE yych; unsigned int yyaccept; - goto yy954; -yy955: ++YYCURSOR; -yy954: + goto yy955; +yy956: ++YYCURSOR; +yy955: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '\n'){ - if(yych <= '\000') goto yy962; - if(yych <= '\b') goto yy956; - if(yych <= '\t') goto yy960; - goto yy957; + if(yych <= '\000') goto yy963; + if(yych <= '\b') goto yy957; + if(yych <= '\t') goto yy961; + goto yy958; } else { - if(yych <= '\f') goto yy960; - if(yych <= '\r') goto yy959; - if(yych >= ' ') goto yy960; - goto yy956; + if(yych <= '\f') goto yy961; + if(yych <= '\r') goto yy960; + if(yych >= ' ') goto yy961; + goto yy957; } -yy956:yy957: yych = *++YYCURSOR; - goto yy958; -yy958: -#line 677 +yy957:yy958: yych = *++YYCURSOR; + goto yy959; +yy959: +#line 679 { /*if(cursor == s->eof) RET(T_EOF); */ /*s->tok = cursor; */ s->line++; RET(T_CPPCOMMENT); } -yy959: yych = *++YYCURSOR; - if(yych == '\n') goto yy964; - goto yy958; yy960: yych = *++YYCURSOR; - goto yy961; -yy961: -#line 684 + if(yych == '\n') goto yy965; + goto yy959; +yy961: yych = *++YYCURSOR; + goto yy962; +yy962: +#line 686 { goto cppcomment; } -yy962: yych = *++YYCURSOR; - goto yy963; -yy963: -#line 687 +yy963: yych = *++YYCURSOR; + goto yy964; +yy964: +#line 689 { yyaccept = 0; /* avoid warning about unreferenced variable */ if(cursor != s->eof) @@ -8056,10 +8062,10 @@ yy963: /* the comment is unterminated, but nevertheless its a comment */ RET(T_CPPCOMMENT); } -yy964: yych = *++YYCURSOR; - goto yy958; +yy965: yych = *++YYCURSOR; + goto yy959; } -#line 701 +#line 703 } /* end of scan */ diff --git a/test/build/Jamfile b/test/build/Jamfile index b693823..b39332e 100644 --- a/test/build/Jamfile +++ b/test/build/Jamfile @@ -25,7 +25,11 @@ SOURCES = testwave testwave_app # # This are the arguments for the testwave executable # -TESTWAVE_ARGUMENTS = -d2 -S../testwave/testfiles ; +TESTWAVE_ARGUMENTS = + -d2 # use -d4 for verbose results + -S../testwave/testfiles + -S$(BOOST_ROOT) -I$(BOOST_ROOT) + ; # # These are the names of the different unit tests to run diff --git a/test/testwave/testfiles/005_001.cpp b/test/testwave/testfiles/005_001.cpp new file mode 100644 index 0000000..ef2d17e --- /dev/null +++ b/test/testwave/testfiles/005_001.cpp @@ -0,0 +1,58 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the conversion of trigraph sequences. + +// 1.1: The following 9 sequences are valid trigraph sequences. +//R #line 20 "005_001.cpp" +"??( ??) ??/??/ ??' ??< ??> ??! ??- ??=" //R "[ ] \\ ^ { } | ~ #" +??( ??) ??/??/ ??' ??< ??> ??! ??- ??= //R [ ] \\ ^ { } | ~ # + +// 1.2: In directive line. +//R #line 26 "005_001.cpp" +??= define OR(a, b) a ??! b +OR(1, 2) //R 1 | 2 + +// 1.3: Any sequence other than above 9 is not a trigraph sequence. +//R #line 30 "005_001.cpp" +"?? ??? ??% ??^ ???=" //R "?? ??? ??% ??^ ?#" +?? ??? ??% ??^ ???= //R ? ? ? ? ? ? ? % ? ? ^ ? # + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_002.cpp b/test/testwave/testfiles/005_002.cpp new file mode 100644 index 0000000..4251da4 --- /dev/null +++ b/test/testwave/testfiles/005_002.cpp @@ -0,0 +1,76 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the line splicing by sequence. + +// 2.1: In a #define directive line, between the parameter list and the +// replacement text. +//R #line 23 "005_002.cpp" +#define FUNC(a, b, c) \ + a ## b ## c +FUNC(ab, cd, ef) //R abcdef + +// 2.2: In a #define directive line, among the parameter list and among the +// replacement text. +//R #line 33 "005_002.cpp" +#undef FUNC +#define FUNC(a, b \ + , c) \ + a ## b \ + ## c +FUNC(ab, cd, ef) //R abcdef + +// 2.3: In a string literal. +//R #line 38 "005_002.cpp" +"abc\ +de" //R "abcde" + +// 2.4: in midst of an identifier. +//R #line 44 "005_002.cpp" +#define ABCDE 5 +ABC\ +DE //R 5 + +// 2.5: by trigraph. +//R #line 49 "005_002.cpp" +ABC??/ +DE //R 5 + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_003.cpp b/test/testwave/testfiles/005_003.cpp new file mode 100644 index 0000000..f88f942 --- /dev/null +++ b/test/testwave/testfiles/005_003.cpp @@ -0,0 +1,68 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the handling of comments. + +#define STR(x) #x + +// 3.1: A comment is converted to one space. +//R #line 22 "005_003.cpp" +STR(abc/* comment */de) //R "abc de" +abc/* comment */de //R abc de + +// 3.2: // is not a comment of C. +// Wave always treats the '//' style as comments (even in C99 mode) +/* assert( strcmp( str( //), "//") == 0); */ + +// 3.3: Comments are parsed prior to the parsing of preprocessing directives. +//R #line 41 "005_003.cpp" +#if 0 + "nonsence"; /* +#else + still in + comment */ +#else +#define MACRO_abcd /* + in comment + */ abcd +#endif +MACRO_abcd //R abcd + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_004.cpp b/test/testwave/testfiles/005_004.cpp new file mode 100644 index 0000000..6d79860 --- /dev/null +++ b/test/testwave/testfiles/005_004.cpp @@ -0,0 +1,59 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the handling of comments and . + +// This test is currently disabled, because of the known problem in Wave, that +// causes multiple __LINE__ macros on splitted lines after preprocessing +// directives are expanded as the line number of the directive itself. + +// Note: This unit test passes only if Wave was compiled with a defined +// BOOST_WAVE_PREPROCESS_ERROR_MESSAGE_BODY compile time constant +// (which is the default). +#define STR(x) #x + +// 3.4: Comment and in #error line. +//E 005_004.cpp(29): fatal error: encountered #error directive or #pragma wave stop(): (29) Message of first physical line. (30) Message of second physical and first logical line. (32) Message of forth physical and third logical line. +#error (__LINE__) Message of first physical line. \ + (__LINE__) Message of second physical and first logical line. /* + this comment splices the lines + */ (__LINE__) Message of forth physical and third logical line. + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_005.cpp b/test/testwave/testfiles/005_005.cpp new file mode 100644 index 0000000..86a0c20 --- /dev/null +++ b/test/testwave/testfiles/005_005.cpp @@ -0,0 +1,52 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the handling of special tokens. + +// 4.1: Digraph spellings in directive line. +//R #line 21 "005_005.cpp" +%: define STR(a) %: a +STR(abc) //R "abc" + +// 4.2: Digraph spellings are retained in stringization. +//R #line 25 "005_005.cpp" +STR(<:) //R "<:" + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_006.cpp b/test/testwave/testfiles/005_006.cpp new file mode 100644 index 0000000..e405fb7 --- /dev/null +++ b/test/testwave/testfiles/005_006.cpp @@ -0,0 +1,51 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests, whether spaces or tabs are allowed at any place in a pp-directive +// lines, including between the top of a pp-directive line and '#', and between +// the '#' and the directive. + +// /**/[TAB]# /**/[TAB]define /**/[TAB]MACRO[TAB]/**/ abcde /**/ + /**/ # /**/ define /**/ MACRO /**/ abcde /**/ + +//R #line 24 "005_006.cpp" +MACRO //R abcde + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_007.cpp b/test/testwave/testfiles/005_007.cpp new file mode 100644 index 0000000..3f06a14 --- /dev/null +++ b/test/testwave/testfiles/005_007.cpp @@ -0,0 +1,69 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the #include directive. + +// 6.1: Header-name quoted by " and " as well as by < and > can include +// standard headers. +//R #line 22 "005_007.cpp" +#include "boost/version.hpp" +BOOST_LIB_VERSION //R "$V" + +//R #line 28 "005_007.cpp" +#undef BOOST_VERSION_HPP +#undef BOOST_LIB_VERSION +#include +BOOST_LIB_VERSION //R "$V" + +// 6.2: Macro is allowed in #include line. +//R #line 35 "005_007.cpp" +#undef MACRO_005_007 +#define HEADER "005_007.hpp" +#include HEADER +MACRO_005_007 //R abc + +// 6.3: With macro nonsence but legal. +//R #line 42 "005_007.cpp" +#undef MACRO_005_007 +#define ZERO_TOKEN +#include ZERO_TOKEN HEADER ZERO_TOKEN +MACRO_005_007 //R abc + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/005_007.hpp b/test/testwave/testfiles/005_007.hpp new file mode 100644 index 0000000..efe2344 --- /dev/null +++ b/test/testwave/testfiles/005_007.hpp @@ -0,0 +1,44 @@ +/*============================================================================= + Boost.Wave: A Standard compliant C++ preprocessor library + http://www.boost.org/ + + Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost + Software License, Version 1.0. (See accompanying file + LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + The tests included in this file were initially taken from the mcpp V2.5 + preprocessor validation suite and were modified to fit into the Boost.Wave + unit test requirements. + The original files of the mcpp preprocessor are distributed under the + license reproduced at the end of this file. +=============================================================================*/ + +// Tests the #include directive. +#define MACRO_005_007 abc + +/*- + * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + diff --git a/test/testwave/testfiles/test.cfg b/test/testwave/testfiles/test.cfg index 1e7a450..e049204 100644 --- a/test/testwave/testfiles/test.cfg +++ b/test/testwave/testfiles/test.cfg @@ -23,7 +23,8 @@ 001_011.cpp 001_012.cpp 001_013.cpp -001_014.cpp +# currently disabled because of a known problem in the Wave library +#001_014.cpp 001_015.cpp 001_016.cpp 001_017.cpp @@ -43,7 +44,6 @@ 001_031.cpp 001_032.cpp 001_033.cpp - 001_034.cpp 001_035.cpp 001_036.cpp @@ -66,7 +66,6 @@ 002_012.cpp 002_013.cpp 002_014.cpp - 002_015.cpp 002_016.cpp @@ -85,6 +84,18 @@ 004_002.cpp 004_003.cpp +# +# unit tests from the mcpp preprocessor validation suite +# +005_001.cpp +005_002.cpp +005_003.cpp +# currently disabled because of a known problem in the Wave library +#005_004.cpp +005_005.cpp +005_006.cpp +005_007.cpp + # # 999: General preprocessing problems # @@ -97,7 +108,6 @@ 999_007.cpp 999_008.cpp 999_009.cpp - 999_010.cpp 999_011.cpp 999_012.cpp diff --git a/test/testwave/testwave_app.cpp b/test/testwave/testwave_app.cpp index 1977180..985c58e 100644 --- a/test/testwave/testwave_app.cpp +++ b/test/testwave/testwave_app.cpp @@ -130,7 +130,7 @@ namespace { // // This function compares the real result and the expected one but first // replaces all occurences of $F in the expected result to the passed - // full filepath. + // full filepath and $V to the current Boost version number. // /////////////////////////////////////////////////////////////////////////// inline bool @@ -152,6 +152,12 @@ namespace { pos1 = expected.find_first_of ("$", pos = pos1 + 2); break; + case 'V': + full_result = full_result + + expected.substr(pos, pos1-pos) + BOOST_LIB_VERSION; + pos1 = expected.find_first_of ("$", pos = pos1 + 2); + break; + default: full_result = full_result + expected.substr(pos, pos1-pos); @@ -403,7 +409,8 @@ testwave_app::extract_special_information(std::string const& filename, boost::wave::language_support const lang_opts = (boost::wave::language_support)(boost::wave::support_cpp | - boost::wave::support_option_no_character_validation); + boost::wave::support_option_no_character_validation | + boost::wave::support_option_convert_trigraphs); position_type pos(filename.c_str()); lexer_type it = lexer_type(instr.begin(), instr.end(), pos, lang_opts); @@ -492,6 +499,21 @@ bool testwave_app::initialise_options(Context& ctx, po::variables_map const& vm) { // initialise the given context from the parsed options +#if BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0 +// enable C99 mode, if appropriate (implies variadics) + if (vm.count("c99")) { + ctx.set_language(boost::wave::support_c99); + } + else if (vm.count("variadics")) { + // enable variadics and placemarkers, if appropriate + ctx.set_language(boost::wave::enable_variadics(ctx.get_language())); + } +#endif // BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0 + +// enable trigraph conversion + ctx.set_language(boost::wave::set_support_options(ctx.get_language(), + boost::wave::support_option_convert_trigraphs)); + // add include directories to the system include search paths if (vm.count("sysinclude")) { std::vector syspaths = @@ -576,18 +598,6 @@ testwave_app::initialise_options(Context& ctx, po::variables_map const& vm) } ctx.set_max_include_nesting_depth(max_depth); } - -#if BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0 -// enable C99 mode, if appropriate (implies variadics) - if (vm.count("c99")) { - ctx.set_language(boost::wave::support_c99); - } - else if (vm.count("variadics")) { - // enable variadics and placemarkers, if appropriate - ctx.set_language(boost::wave::enable_variadics(ctx.get_language())); - } -#endif // BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0 - return true; } diff --git a/tool/cpp.cpp b/tool/cpp.cpp index b7c4330..e04ab0e 100644 --- a/tool/cpp.cpp +++ b/tool/cpp.cpp @@ -141,7 +141,7 @@ namespace cmd_line_util { include_paths *p = boost::any_cast(&v); - BOOST_SPIRIT_ASSERT(p); + BOOST_ASSERT(p); // Assume only one path per '-I' occurrence. string const& t = po::validators::get_single_string(tokens); if (t == "-") { diff --git a/tool/trace_macro_expansion.hpp b/tool/trace_macro_expansion.hpp index 4890ee5..f2ae0c0 100644 --- a/tool/trace_macro_expansion.hpp +++ b/tool/trace_macro_expansion.hpp @@ -345,7 +345,7 @@ public: { if (enabled_include_tracing()) { // print indented filename - for (size_t i = 0; i < include_depth; ++i) + for (std::size_t i = 0; i < include_depth; ++i) includestrm << " "; if (is_system_include)