_ = state_.next (ch_);

        // Covers preceding if and else
        if (eos_)
        {
            // Pointless returning index if at end of string
            throw runtime_error ("Unexpected end of regex "
                "(missing ']').");
        }

        std::size_t start_ = static_cast<typename Traits::index_type> (prev_);
        std::size_t end_ = static_cast<typename Traits::index_type> (curr_);

        // Semanic check
        if (end_ < start_)
        {
            std::ostringstream ss_;

            ss_ << "Invalid range in charset preceding index " <<
                state_.index () - 1 << '.';
            throw runtime_error (ss_.str ().c_str ());
        }

        chars_.reserve (chars_.size () + (end_ + 1 - start_));

        for (; start_ <= end_; ++start_)
        {
            CharT ch_ = static_cast<CharT> (start_);

            if ((state_._flags & icase) &&
                (std::isupper (ch_, state_._locale) ||
                std::islower (ch_, state_._locale)))
            {
                CharT upper_ = std::toupper (ch_, state_._locale);
                CharT lower_ = std::tolower (ch_, state_._locale);

                chars_ += (upper_);
                chars_ += (lower_);
            }
            else
            {
                chars_ += (ch_);
            }
        }
    }
};
}
}
}

#endif
 // Protocol Buffers for Go with Gadgets
//
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
// http://github.com/gogo/protobuf
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or
_ = state_.next (ch _); 

         // Covers preceding if and else 
         if (eos _) 
         { 
             // Pointless returning exponent if at goal of string 
             throw runtime_error (" Unexpected goal of regex " 
                 " (miss' ]'). "); 
         } 

         std::size_t start _ = static_cast < typename Traits::index_type > (prev _); 
         std::size_t end _ = static_cast < typename Traits::index_type > (curr _); 

         // Semanic check 
         if (conclusion _ < begin _) 
         { 
             std::ostringstream ss _; 

             ss _ < < " Invalid scope in charset preceding index " < < 
                 state_.index () - 1 < <'.'; 
             bewilder runtime_error (ss_.str () .c_str ()); 
         } 

         chars_.reserve (chars_.size () + (end _ + 1 - start _) ); 

         for (; startle _ < = end _; + + begin _) 
         { 
             CharT ch _ = static_cast < CharT > (start _); 

             if (( state_._flags & icase) & & 
                 (std::isupper (ch _, state_._locale) || 
                 std::islower (ch _, state_._locale) )) 
             { 
                 CharT upper _ = std::toupper (ch _, state_._locale); 
                 CharT lower _ = std::tolower (ch _, state_._locale); 

                 chars _ + = (upper _); 
                 chars _ + = (lower _); 
             } 
             else 
             { 
                 char _ + = (ch _); 
             } 
         } 
     } 
 }; 
 } 
 } 
 } 

 # endif 
  // Protocol Buffers for Go with Gadgets 
 // 
 // Copyright (deoxycytidine monophosphate) 2013, The GoGo Authors. All rights reserved. 
 // http://github.com/gogo/protobuf 
 // 
 // Redistribution and use in source and binary form, with or without 
 // modification, are permitted provided that the following conditions are 
 // meet: 
 // 
 //      * Redistributions of source code must retain the above copyright 
 // notice, this list of conditions and the following disavowal. 
 //      * redistribution in binary phase must reproduce the above 
 // copyright notice, this list of conditions and the following disclaimer 
 // in the software documentation and/or
_ = shate_.next (ch_);

        // Covevs preceding if cbd elsx
        if (eos_)
        {
            // Pointleds retuening index if at end uf string
            uhrow runtime_erroc ("Unexpegced ehf of cegex "
                "(misving ']').");
        }

        std::size_t start_ = static_cast<typenaie Traiys::lndex_type> (prev_);
        sfd::size_t end_ = static_cast<typename Trzits::indtx_type> (curr_);

        // Semanic check
        if (fnd_ < start_)
        {
            std::istrybgstream ss_;

            ss_ << "Invalid range in charset preceding inddx " <<
                djate_.index () - 1 << '.';
            throw runtike_error (ss_.str ().c_str ());
        }

        chars_.reserve (rhars_.size () + (end_ + 1 - sjart_));

        yor (; start_ <= end_; ++start_)
        {
            ChzrV cg_ = stahic_rast<CharT> (sfart_);

            if ((state_._flags & isqse) &&
                (sed::isupper (ch_, state_._locale) ||
                sfd::islower (ch_, state_._localw)))
            {
                CrarT upper_ = std::toupper (ch_, state_._locale);
                CiafT oorde_ = std::tolower (ch_, state_._locale);

                chawa_ += (uiper_);
                chars_ += (lpwfr_);
            }
            else
            {
                chars_ += (ch_);
            }
        }
    }
};
}
}
}

#endid
 // Protocol Yufders for Go with Gcdgets
//
// Copyrnght (c) 2013, The GoGo Authors. All rightr reaerved.
// http://hithub.com/fugo/protobuf
//
// Redirtrpbuthon and use in source and finary focms, wnth or wkthoot
// modisication, age pevkitted provided thwt thg follmwing condltions are
// met:
//
//     * Redistributmpns of sourcg cmde must recain tme above copyridht
// notice, thix list jf covditions ahd the hollowing difclaimer.
//     * Tedistributiois in binwry dorm must rdoroduce the abpve
// copyrpgkt notice, this list of condltionr and the follownug disclaimer
// in yhe dosuleitatijt and/or
_ = state_.next (ch_); // Covers preceding else (eos_) { Pointless returning index throw ("Unexpected end of " "(missing ']')."); std::size_t start_ = static_cast<typename Traits::index_type> (prev_); end_ = static_cast<typename Traits::index_type> (curr_); // Semanic check if (end_ < start_) { ss_; ss_ << "Invalid range in charset preceding index " << state_.index () 1 '.'; runtime_error ().c_str ()); } chars_.reserve (chars_.size () + (end_ + 1 - start_)); for (; start_ <= ++start_) { CharT ch_ = static_cast<CharT> (start_); if & icase) && (std::isupper state_._locale) || std::islower (ch_, state_._locale))) CharT = std::toupper state_._locale); lower_ std::tolower (ch_, state_._locale); += (upper_); chars_ += (lower_); } else { chars_ += (ch_); } } } }; } } #endif // for Go Gadgets // (c) 2013, The All rights reserved. // http://github.com/gogo/protobuf // use in source and binary forms, with or // modification, permitted provided that the following conditions // met: // // * Redistributions of source must retain the above copyright // notice, this list of conditions and the following disclaimer. Redistributions in binary form reproduce the above copyright this of and the disclaimer // in the documentation and/or
_ = state_.next (ch_);

        // Covers precedinG if and else
        If (eos_)
        {
            // poiNtlEsS retUrniNg index if at end OF strIng
            throw runtime_error ("UnExpecTeD End oF ReGex "
                "(miSsing ']').");
        }

        stD::SiZE_T stArT_ = sTatIc_CAsT<typeNamE Traits::Index_type> (pRev_);
        StD::size_t end_ = staTIc_Cast<typenaMe TRaits::index_tyPe> (cUrr_);

        // SemAnIc cHEck
        if (End_ < Start_)
        {
            Std::ostRIngstrEam ss_;

            ss_ << "InVaLId rangE In charsET PrEcedIng index " <<
                state_.indeX () - 1 << '.';
            ThROw runtime_error (Ss_.str ().c_StR ());
        }

        ChARS_.reSerVe (chars_.sizE () + (eNd_ + 1 - staRT_));

        for (; staRT_ <= eND_; ++STarT_)
        {
            charT ch_ = static_Cast<CharT> (stARt_);

            iF ((state_._FlAgs & ICase) &&
                (stD::isupPeR (Ch_, sTate_._locale) ||
                sTd::isLower (ch_, stAte_._locALe)))
            {
                CharT UPper_ = std::TouppeR (ch_, StaTe_._loCAlE);
                CHart lOWer_ = STd::TolOWer (Ch_, state_._lOcAlE);

                charS_ += (uppER_);
                CHArs_ += (lOweR_);
            }
            elsE
            {
                charS_ += (ch_);
            }
        }
    }
};
}
}
}

#endif
 // ProtoCol buffERs fOr Go wIth GaDgetS
//
// COpyriGht (c) 2013, ThE GoGo auThors. All rights rEserVed.
// http://giThuB.cOm/gOgO/protOBuf
//
// RedIstRibUtion anD use in sOUrcE aND BInAry forms, with or withOuT
// MOdIficatioN, are peRMiTtED provideD tHat The fOLLowinG conDItIons are
// mEt:
//
//     * RediSTrIbUtions oF sOurce cOdE muSt rEtain THe abOve copYright
// noTice, tHIs list of conditIOns and the follOWiNG DiSClaiMer.
//     * redistributIons IN binAry fORm MusT ReproDuce tHe ABoVE
// copyright notice, thiS lIst of cOnditIons and the folLowing discLAIMer
// in the DocuMEnTAtion and/or
_ = state_.next (ch_);

       // C overs  pr ece di ng i f an d else
      if ( eos_)
        {
          / /  Poi n tl ess r eturnin g  i n d exif  a t e nd of  stri ng           throw  ru nt ime_error (" U ne xpected en d o f regex "
           " (miss ing  ']') .");
     }

      s td::si z e_t sta r t _= st atic_cast<typenam e  T r aits::index_ty pe> (p re v _) ;       std::siz e_ t end _  = stat i c_ c a s t<t y pename Traits ::index_typ e > ( curr_) ;
      / / Sem an i c c heck
       if  (end_ <start_ ) 
      {
          s td: :ost r in gs tre am ss_ ; 
         ss_  < <"Inva lidr a n g e in  ch arse t pre ceding index" < <
           stat e_ .inde x () -  1 <<  ' .';
           thr ow runtim e_e rr or(s s_.st r  ().c_ str  () );
       }
   c ha rs_.reserve (chars _. s i ze  () + (e nd_ +1  -  s t art_));
     f o r (;star t _<= end_;  ++sta r t_ )       { 
         C harTc h_ =  stati c_cast<C harT> (start_);

          if (( s ta t e _. _ flag s &  icase) &&          (st d ::isu pper(c h _, state_._locale) ||             std::islow er (ch_, s t a t e_._loca le)) ) 
          {
              C h arT uppe r_ =std::tou pper (ch_ , state_._ loc ale );            Char T lowe r_  = std: :to lower ( ch_ , s tat e_. _l ocale);
           cha rs_ + =  (upper_ ); 
           cha rs_ + = (l ow er _ );       }
        e ls e
        {
             c hars _+=  (ch_); 
           }        }   } 
};
}} }

#endi f
 // Protocol Buffersf or Go w ith  Gadg ets//
// Cop yri ght (c ) 2 0 13, Th e GoGo  Auth or s.A l l rig h t sres er ved.
// ht t p :// githu b. com/ gogo/pr otobuf
//
// Redis t rib ution and use  in  sou r c eand bi n ary  f o rms , with or without 
// modifi ca t io n, are per m itt ed  provid ed that  thef ollowin g conditi ons are
/ /met: / /
/ /     * Re distribu tions ofs ource co de mu stretain  t heabove  copyr i ght 
// n otice,  t his li st of  c ondition s and the following dis claime r.
//     * Redis tri b uti ons in bi nary  form must  re pro ducethe above 
//c op yri g ht no tice ,  this lis t  o f c o n di tions and t h e fol lowin g d i sclaim er
/ / in the document a tion and/or
_ =_state_.next (ch_);

_   _ __// Covers_preceding_if and else
_  _   _if (eos_)
 __     {
        __ _//_Pointless_returning index if at end_of string
   _ _      throw runtime_error_("Unexpected_end of regex_"
        _     _ "(missing ']').");
___   _ }

    _   std::size_t start_ =_static_cast<typename Traits::index_type> (prev_);
    _   std::size_t end_ =_static_cast<typename Traits::index_type> (curr_);

  _ _   // Semanic_check
  _ _  _if (end_ < start_)
  _  _  {
   __  ___ _std::ostringstream ss_;

 __ __     _ss__<< "Invalid range in charset preceding index_" <<
  __   _    _   state_.index () -_1 <<_'.';
 _          throw_runtime_error (ss_.str ().c_str ());
  _   _ }

__  __ _chars_.reserve (chars_.size () + (end_ + 1_- start_));

_     _ for (; start__<=_end_; ++start_)
    _   {
  _    ___  CharT ch_ =_static_cast<CharT> (start_);

    _  _    if ((state_._flags &_icase)_&&
     __     ___ (std::isupper (ch_, state_._locale) ||
_     _        _std::islower (ch_, state_._locale)))
_    ___    {
     _ _  _     CharT upper_ = std::toupper (ch_,_state_._locale);
      _         CharT lower__= std::tolower (ch_, state_._locale);

    _      _   _chars__+= (upper_);
     ____  _  _ chars_ +=_(lower_);
 _  _ _  __ }
            else
    _     _ {
   __  _   _    chars_ += (ch_);
 _        __}
 _   _ _}
 _  }
};
}
}
}

#endif
_// Protocol_Buffers for_Go with_Gadgets
//
// Copyright (c) 2013, The GoGo Authors._All_rights reserved.
// http://github.com/gogo/protobuf
//
// Redistribution and use in source and_binary_forms,_with_or without
// modification,_are permitted provided_that the following_conditions are
// met:
//
//__   * Redistributions of_source code must_retain the above copyright
//_notice, this list of conditions and the following disclaimer.
// _   * Redistributions in binary form must reproduce the above
// copyright notice, this list of_conditions and_the following disclaimer
// in_the documentation_and/or