当前位置: 首页>>代码示例>>C++>>正文


C++ string::is_string方法代码示例

本文整理汇总了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:
//.........这里部分代码省略.........
开发者ID:Johnicholas,项目名称:Hello-Github,代码行数:101,代码来源:Parser.C


注:本文中的std::string::is_string方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。