本文整理汇总了C++中std::string::is_string方法的典型用法代码示例。如果您正苦于以下问题:C++ string::is_string方法的具体用法?C++ string::is_string怎么用?C++ string::is_string使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::string
的用法示例。
在下文中一共展示了string::is_string方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
ParserReturn parse(const std::string &s)
{
Lexer l(s);
LexerReturn r(l.get());
switch (r.type())
{
case L_EOF:
return ParserReturn(L_EOF);
case KW_Break:
if (l.get().type() != KW_At)
return ParserReturn(P_Error);
r = l.get();
if (!r.is_integer() || l.get().type() != L_EOF)
return ParserReturn(P_Error);
return ParserReturn(KW_Break, r);
case KW_Exit:
case KW_Clear:
if (l.get().type() != L_EOF)
return ParserReturn(P_Error);
return ParserReturn(r);
case KW_Print_Insns:
r = l.get();
if (r.type() == L_EOF)
return ParserReturn(KW_Print_Insns);
else if (!r.is_integer() || l.get().type() != L_EOF)
return ParserReturn(P_Error);
else
return ParserReturn(KW_Print_Insns, r);
case KW_Help:
case L_QuestionMark:
if (l.get().type() != L_EOF)
return ParserReturn(P_Error);
return ParserReturn(KW_Help);
case KW_Delete:
r = l.get();
if (!r.is_integer() || l.get().type() != L_EOF)
return ParserReturn(P_Error);
return ParserReturn(KW_Delete, r);
case KW_Load:
case KW_Read:
case KW_Compile:
{
LexerReturn s(l.get());
if (s.type() == L_EOF)
return ParserReturn(r);
else if (!s.is_string() || l.get().type() != L_EOF)
return ParserReturn(P_Error);
return ParserReturn(r, s);
}
/*NOTREACHED*/
case KW_Run:
{
bool set_at = false;
bool set_for = false;
Integer at_val, for_val;
for (;;)
{
r = l.get();
if (r.type() == L_EOF)
break;
if (r.type() == KW_At && !set_at)
{
r = l.get();
if (!r.is_integer())
return ParserReturn(P_Error);
set_at = true;
at_val = r.get_integer();
}
else if (r.type() == KW_For && !set_for)
{
r = l.get();
if (!r.is_integer())
return ParserReturn(P_Error);
set_for = true;
for_val = r.get_integer();
}
else
return ParserReturn(P_Error);
}
return ParserReturn(KW_Run,
(set_at ? LexerReturn(at_val) : LexerReturn(P_Missing)),
(set_for ? LexerReturn(for_val) : LexerReturn(P_Missing))
);
}
/*NOTREACHED*/
case KW_Set:
r = l.get();
switch (r.type())
{
case KW_Cell:
//.........这里部分代码省略.........