本文整理汇总了C++中TokenT类的典型用法代码示例。如果您正苦于以下问题:C++ TokenT类的具体用法?C++ TokenT怎么用?C++ TokenT使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TokenT类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: token_equals
inline bool
token_equals(TokenT const &left, TokenT const &right)
{
using namespace boost::wave;
#if BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0
if (T_PARAMETERBASE == token_id(left) ||
T_EXTPARAMETERBASE == token_id(left))
#else
if (T_PARAMETERBASE == token_id(left))
#endif
{
// if the existing token is of type T_PARAMETERBASE, then the right token
// must be of type T_IDENTIFIER or a keyword
token_id id = token_id(right);
return (T_IDENTIFIER == id ||
IS_CATEGORY(id, KeywordTokenType) ||
IS_EXTCATEGORY(id, OperatorTokenType|AltExtTokenType) ||
IS_CATEGORY(id, BoolLiteralTokenType)) &&
left.get_value() == right.get_value();
}
// if the left token has whitespace, the value is irrelevant
return token_id(left) == token_id(right) && (
IS_CATEGORY(left, WhiteSpaceTokenType) ||
left.get_value() == right.get_value()
);
}
示例2: pingRemote
void UdpWriteModule::pingRemote(TokenT udpToken)
{
dbglog << "UdpWriteModule #" << mPeerId
<< " pinging remote " << *mRemoteEndpoint
<< " aka #" << mPeerId
<< " with token: " << udpToken;
CharArray512T ca512;
std::copy(udpToken.begin(), udpToken.end(), ca512.begin());
DataPayload payload(ID::NE_PING_UDP, 0, 0, udpToken.size(), ca512);
onSend(payload);
}
示例3: detected_pragma_once
void
detected_pragma_once(ContextT const& ctx, TokenT const& pragma_token,
std::string filename)
{
using boost::wave::util::impl::escape_lit;
#if defined(BOOST_WINDOWS)
filename = replace_slashes(filename);
#endif
BOOST_WAVETEST_OSSTREAM strm;
strm << "20: " << repr(pragma_token.get_position()) << ": "
<< pragma_token.get_value() << ": "
<< escape_lit(filename) << std::endl;
hooks_trace += BOOST_WAVETEST_GETSTRING(strm);
}
示例4: expanding_object_like_macro
void expanding_object_like_macro(TokenT const ¯odef,
ContainerT const &definition, TokenT const ¯ocall)
{
if (enabled_macro_counting())
count_invocation(macrodef.get_value().c_str());
if (!enabled_macro_tracing())
return;
示例5: g
BOOST_WAVE_INTLITGRAMMAR_GEN_INLINE
uint_literal_type
intlit_grammar_gen<TokenT>::evaluate(TokenT const &token,
bool &is_unsigned)
{
using namespace boost::spirit::classic;
intlit_grammar g(is_unsigned);
uint_literal_type result = 0;
typename TokenT::string_type const &token_val = token.get_value();
parse_info<typename TokenT::string_type::const_iterator> hit =
parse(token_val.begin(), token_val.end(), g[spirit_assign_actor(result)]);
if (!hit.hit) {
BOOST_WAVE_THROW(preprocess_exception, ill_formed_integer_literal,
token_val.c_str(), token.get_position());
}
return result;
}
示例6: expanding_function_like_macro
void expanding_function_like_macro(
TokenT const ¯odef, std::vector<TokenT> const &formal_args,
ContainerT const &definition,
TokenT const ¯ocall, std::vector<ContainerT> const &arguments)
{
if (enabled_macro_counting())
count_invocation(macrodef.get_value().c_str());
if (!enabled_macro_tracing())
return;
示例7: parse
BOOST_WAVE_CHLITGRAMMAR_GEN_INLINE
unsigned int
chlit_grammar_gen<TokenT>::evaluate(TokenT const &token)
{
using namespace boost::spirit;
chlit_grammar g;
boost::uint32_t result = 0;
typename TokenT::string_type const &token_val = token.get_value();
parse_info<typename TokenT::string_type::const_iterator> hit =
parse(token_val.begin(), token_val.end(), g[spirit_assign_actor(result)]);
if (!hit.hit) {
BOOST_WAVE_THROW(preprocess_exception, ill_formed_character_literal,
token_val.c_str(), token.get_position());
}
else {
// range check
if ('L' == token_val[0]) {
// recognised wide character
if (g.overflow ||
result > (unsigned long)(std::numeric_limits<wchar_t>::max)())
{
// out of range
BOOST_WAVE_THROW(preprocess_exception,
character_literal_out_of_range,
token_val.c_str(), token.get_position());
}
}
else {
// recognised narrow ('normal') character
if (g.overflow ||
result > (unsigned long)(std::numeric_limits<unsigned char>::max)())
{
// out of range
BOOST_WAVE_THROW(preprocess_exception,
character_literal_out_of_range,
token_val.c_str(), token.get_position());
}
}
}
return result;
}
示例8: token_equals
inline bool
token_equals(TokenT const &left, TokenT const &right)
{
using namespace boost::wave;
if (IS_CATEGORY(left, ParameterTokenType)) {
// if the existing token is of type T_PARAMETERBASE, then the right token
// must be of type T_IDENTIFIER or a keyword
token_id id = token_id(right);
return (T_IDENTIFIER == id ||
IS_CATEGORY(id, KeywordTokenType) ||
IS_EXTCATEGORY(id, OperatorTokenType|AltExtTokenType) ||
IS_CATEGORY(id, BoolLiteralTokenType)) &&
left.get_value() == right.get_value();
}
// if the left token has whitespace, the value is irrelevant
return token_id(left) == token_id(right) && (
IS_CATEGORY(left, WhiteSpaceTokenType) ||
left.get_value() == right.get_value()
);
}