8 #include <boost/algorithm/string/predicate.hpp> 
    9 #include <boost/algorithm/string/trim.hpp> 
   10 #include <boost/foreach.hpp> 
   32   return ! aborted && ! parent.
aborted 
   41   NumEffectState state(initial_state);
 
   50   assert(line.find(
"position") == 0);
 
   57   boost::algorithm::trim(filename);
 
   58   boost::algorithm::trim_left(filename);
 
   61   if (boost::algorithm::iends_with(filename, 
".ki2"))
 
   63     const Ki2File ki2(filename);
 
   64     record = ki2.getRecord();
 
   66   else if (boost::algorithm::iends_with(filename, 
".kif"))
 
   68     const KakinokiFile kif(filename);
 
   69     record = kif.getRecord();
 
   74     const CsaFile csa(filename.c_str());
 
   75     record = csa.getRecord();
 
   77   initial_state = record.getInitialState();
 
   78   moves = record.getMoves();
 
   85   ret.reserve(16+90+10+5*
moves.size());
 
   99   std::string ret = 
"position ";
 
  106                            MoveVector& ignore_moves)
 const 
  108   assert(line.find(
"ignore_moves") == 0);
 
  109   std::istringstream is(line);
 
  112   NumEffectState state(currentState());
 
  113   ignore_moves.clear();