本文整理汇总了C++中TokenT::get_value方法的典型用法代码示例。如果您正苦于以下问题:C++ TokenT::get_value方法的具体用法?C++ TokenT::get_value怎么用?C++ TokenT::get_value使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TokenT
的用法示例。
在下文中一共展示了TokenT::get_value方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: token_id
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: 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;
示例3: 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;
示例4: token_id
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()
);
}
示例5: output
bool
expanding_object_like_macro(ContextT const& ctx,
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 false;
#endif
if (0 == get_level()) {
// output header line
BOOST_WAVE_OSSTREAM stream;
stream
<< macrocall.get_position() << ": "
<< macrocall.get_value() << std::endl;
output(BOOST_WAVE_GETSTRING(stream));
increment_level();
}
// output definition reference
{
BOOST_WAVE_OSSTREAM stream;
stream
<< macrodef.get_position() << ": see macro definition: "
<< macrodef.get_value() << std::endl;
output(BOOST_WAVE_GETSTRING(stream));
}
open_trace_body();
#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS == 0
return false;
#endif
}
示例6: defined
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);
}
示例7: 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;
}
示例8: 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;
}