예제 #1
0
void PatternDefaultLinkage::LoadBin( lem::Stream &bin )
{
 optional_node = bin.read_bool();
 bin.read( &marker_name, sizeof(marker_name) );
 bin.read( &node_name, sizeof(node_name) );
 return;
}
예제 #2
0
/********************************************************************************
 Метод загружает информацию в контейнеры Автомата из указанного бинарного потока
 (файла). В производном классе метод перегружаем, но наш базовый метод должен
 быть вызван для загрузки таблицы параметров param.
*********************************************************************************/
void Automaton::LoadBin( lem::Stream &bin, const Load_Options &opt )
{
 if( bin.read_bool() && param!=NULL )
  param->LoadBin(bin);

 return;
}
예제 #3
0
void TrFun_If::LoadBin( lem::Stream& bin )
{
 TrFunCall::LoadBin(bin);
 cond = TrFunCall::load_bin(bin);
 f_then = TrFunCall::load_bin(bin);
 if( bin.read_bool() )
  f_else = TrFunCall::load_bin(bin);
 return;
}
예제 #4
0
void PatternLink::LoadBin( lem::Stream &bin )
{
 bin.read( &from_marker, sizeof(from_marker) );
 bin.read( &from_node, sizeof(from_node) );
 bin.read( &to_marker, sizeof(to_marker) );
 bin.read( &to_node, sizeof(to_node) );
 bin.read( &link_type, sizeof(link_type) );
 optional_to_node = bin.read_bool();
 return;
}
예제 #5
0
/*****************************************************
 Загружает содержимое из указанного бинарного потока.
******************************************************/
void Word_Form::LoadBin( lem::Stream &bin )
{
 bool p=bin.read_bool();
 
 if( p )
  {
   Lexem *m = new Lexem;
   m->LoadBin(bin);
   name = RC_Lexem(m);
  }

 p=bin.read_bool();
 if( p )
  {
   Lexem *m2 = new Lexem;
   m2->LoadBin(bin);
   normalized = RC_Lexem(m2);
  }

// lexem_owner.LoadBin(bin);
// e_list.LoadBin(bin);
 pair.LoadBin(bin);

// bin.read( &tfield,     sizeof(tfield)     );
 bin.read( &entry_key,  sizeof(entry_key)  );
 bin.read( &val,        sizeof(val)        );
 bin.read( &score,        sizeof(score)        );
// bin.read( &icenter,    sizeof(icenter)    );
 bin.read( &origin_pos, sizeof(origin_pos) );

 const int n = bin.read_int();
 alt.reserve(n);
 for( int i=0; i<n; ++i )
  {
   alt.push_back( new Word_Form );
   alt.back()->LoadBin(bin);
  }

 return;
}
예제 #6
0
void TrFunction::LoadBin( lem::Stream& bin )
{
 bin.read( &name, sizeof(name) );
 ret_type.LoadBin(bin);

 arg_name.LoadBin(bin);
 arg_type.LoadBin(bin);

 if( bin.read_bool() )
  body = TrFunCall::load_bin(bin);

 return;
}