// **************************************************************************
//
//                     ядро_be с модальными глаголами
//
//                     ядро_be_модальное
//                     ядро_be_вопрос_модальное
//                     ну и вставить это куда-то надоть
// **************************************************************************

# define  VERB !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 )

@Перевод
{ 
   @Структура ядро_be_have_заставить =
              ядро_have1 гр_сущ_а !связка( %Ing );
   @Структура ядро_be_have_заставить =
	      ядро_have1[заставить]
	      гр_сущ_а( %Р ) !глагол( %Сов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}

// ------------------------- модальное ядро_be ----------------------------

@Перевод
{  @Структура ядро_be_мочь =
	      гр_сущ_м( &Число, &Лицо )
	      мод_глагол[can]( &Форма ) _Not !связка( %Inf ) ;
   @Структура ядро_be_мочь =
	      гр_сущ_м( &Число, &Лицо, %И, &Род )
	      _Not мод_глагол[мочь]( %Несов,%глагол,Лицо,Число,&Время,Род )
	      !глагол( %Сов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_vrema
}
@Перевод
{  @Структура ядро_be_мочь_будущее =
	      гр_сущ_м( &Число, &Лицо )
	      @0[will] _Not @0[be] @0[able] @0[to] !связка( %Inf ) ;
   @Структура ядро_be_мочь_будущее =
	      гр_сущ_м( &Число, &Лицо, %И, &Род )
	      _Not мод_глагол[мочь]( Cов,%глагол,Лицо,Число,%будущее,@0 )
	      !глагол( %Сов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}
@Перевод
{  @Структура ядро_be_должен =
	      гр_сущ_м( &Число, &Лицо )
	      мод_глагол[must]( &Форма ) _Not !связка( %Inf ) ;
   @Структура ядро_be_должен =
	      гр_сущ_м( &Число, &Лицо, %И, &Род ) _Not
	      мод_глагол[должен]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_vrema
}
@Перевод
{  @Структура ядро_be_можно =
	      гр_сущ_м( &Число, &Лицо ) мод_глагол[may]( &Форма ) !связка( %Inf ) ;
   @Структура ядро_be_можно =
	      гр_сущ_м( &Число, &Лицо, %Д, &Род )
	      мод_глагол[можно]( %Несов,%глагол,Лицо,Число,&Время,Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_vrema
}
@Перевод
{  @Структура ядро_be_можно_отр =
	      гр_сущ_м( &Число, &Лицо )
	      мод_глагол[may]( &Форма ) @0[not] !связка( %Inf ) ;
   @Структура ядро_be_можно_отр =
	      гр_сущ_м( &Число, &Лицо, %Д, &Род )
	      мод_глагол[нельзя]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_vrema
}
@Перевод
{  @Структура ядро_be_нужно =
	      гр_сущ_м( &Число, &Лицо )
	      мод_глагол[need]( &Форма ) _Not !связка( %Inf ) ;
   @Структура ядро_be_нужно =
	      гр_сущ_м( &Число, &Лицо, %Д, &Род ) _Not
	      мод_глагол[нужно]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_vrema
}
@Перевод
{  @Структура ядро_be_следует =
	      гр_сущ_м( &Число, &Лицо )
	      мод_глагол[ought]( &Форма ) _Not @0[to] !связка( %Inf ) ;
   @Структура ядро_be_следует =
	      гр_сущ( &Число, &Лицо, %Д, &Род ) _Not
	      мод_глагол[следует]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_vrema
}
@Перевод
{  @Структура ядро_be_have_to_прошлое =
	      гр_сущ_м( &Число, &Лицо )
	      @0[had] _Not _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_have_to_прошлое =
	      гр_сущ_м( &Число, &Лицо, %И, &Род ) _Not
	      мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%прошлое,@0 )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}
@Перевод
{  @Структура ядро_be_have_to_настоящее =
	      гр_сущ_м( &Число, &Лицо )
	      _have _Not _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_have_to_настоящее =
	      гр_сущ_м( &Число, &Лицо, %И, &Род ) _Not
	      мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,@0 )
	      !глагол( %Несов,Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}
@Перевод
{  @Структура ядро_be_have_to_отр_настоящее =
	      гр_сущ_м( &Число, &Лицо )
	      _do @0[not] _have _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_have_to_отр_настоящее =
	      гр_сущ_м( &Число, &Лицо, %И, &Род )
	      @0[не] мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,@0 )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}
@Перевод
{  @Структура ядро_be_have_to_будущее =
	      гр_сущ_м( &Число, &Лицо )
	      _will @0[have] _Not _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_have_to_будущее =
	      гр_сущ_м( &Число, &Лицо, %И, &Род ) _Not
	      глагол[быть]( %Сов,%глагол,Лицо,Число,%будущее,@0,%Актив,@0 )
	      мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}
// ---------- пассивные формы ----------------------------

@Перевод
{
   @Выбор     ядро_be_модальное =
	      !ядро_be_мочь
	      !ядро_be_мочь_будущее
	      !ядро_be_должен
	      !ядро_be_можно
	      !ядро_be_можно_отр
	      !ядро_be_нужно
	      !ядро_be_следует
	      !ядро_be_have_to_прошлое
	      !ядро_be_have_to_настоящее
	      !ядро_be_have_to_отр_настоящее
	      !ядро_be_have_to_будущее
	      !ядро_be_have_заставить
	      ;
   @Выбор     ядро_be_модальное =
	      !ядро_be_мочь
	      !ядро_be_мочь_будущее
	      !ядро_be_должен
	      !ядро_be_можно
	      !ядро_be_можно_отр
	      !ядро_be_нужно
	      !ядро_be_следует
	      !ядро_be_have_to_прошлое
	      !ядро_be_have_to_настоящее
	      !ядро_be_have_to_отр_настоящее
	      !ядро_be_have_to_будущее
	      !ядро_be_have_заставить
	      ;
}
// ---------- ядро_be, в котором модальность выражается "через to be" -----
@Перевод
{ 
   @Структура ядро_be_вопрос_have_заставить =
              ядро_have1_вопрос гр_сущ_а !связка( %Ing );
   @Структура ядро_be_вопрос_have_заставить( присутствие &П ) =
	      ядро_have1_вопрос[заставить]( П )
	      гр_сущ_а( %Р ) !глагол( %Сов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
}

// ----------------------- модальное ядро_be вопрос ---------------------------
@Перевод
{  @Структура ядро_be_вопрос_мочь =
              мод_глагол[can]( &Форма ) _Not
	      гр_сущ( &Число, &Лицо ) !связка( %Inf ) ;
   @Структура ядро_be_вопрос_мочь( присутствие &П ) =
	      _Not мод_глагол[мочь]( %Несов,%глагол,Лицо,Число,&Время,Род )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_вопрос_должен =
	      мод_глагол[must]( &Форма ) _Not
              гр_сущ( &Число, &Лицо ) !связка( %Inf ) ;
   @Структура ядро_be_вопрос_должен( присутствие &П ) =
	      _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,&Время,Род )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_вопрос_можно =
	      мод_глагол[may]( &Форма ) _Not гр_сущ( &Число, &Лицо )
	      !связка( %Inf ) ;
   @Структура ядро_be_вопрос_можно( присутствие &П ) =
	      _Not мод_глагол[можно]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_вопрос_нужно =
	      мод_глагол[need]( &Форма ) _Not гр_сущ( &Число, &Лицо )
	      !связка( %Inf ) ;
   @Структура ядро_be_вопрос_нужно( присутствие &П ) =
	      _Not мод_глагол[нужно]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_вопрос_следует =
	      мод_глагол[ought]( &Форма ) _Not гр_сущ( &Число, &Лицо ) @0[to]
	      !связка( %Inf ) ;
   @Структура ядро_be_вопрос_следует( присутствие &П ) =
	      _Not мод_глагол[следует]( %Несов,%глагол,Лицо,Число,&Время,@0 )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_вопрос_have_to_прошлое =
	      @0[did] _Not гр_сущ( &Число, &Лицо ) @0[have] _Got @0[to]
	      !связка( %Inf ) ;
   @Структура ядро_be_вопрос_have_to_прошлое( присутствие &П ) =
	      _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%прошлое,Род )	      
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_вопрос_have_to_настоящее =
	      _do _Not гр_сущ( &Число, &Лицо ) _Наречие @0[have] _Got @0[to]
	      !связка( %Inf ) ;
   @Структура ядро_be_вопрос_have_to_настоящее( присутствие &П ) =
	      _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,Род )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %И, &Род )
	      _Наречие
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_вопрос_have_to_настоящее1 =
	      _have _Not гр_сущ( &Число, &Лицо ) _Got @0[to] связка( %Inf ) ;
   @Структура ядро_be_вопрос_have_to_настоящее1( присутствие &П ) =
	      _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,Род )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_вопрос_have_to_будущее =
	      _will _Not гр_сущ( &Число, &Лицо ) @0[have] _Got @0[to]
	      !связка( %Inf ) ;
   @Структура ядро_be_вопрос_have_to_будущее( присутствие &П ) =
	      _Not глагол[быть]( %Сов,%глагол,Лицо,Число,%будущее,@0,%Актив,@0 )
	      частица[ли]( П ) гр_сущ( &Число, &Лицо, %И, &Род )
	      мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{
   @Выбор     ядро_вопрос_be_модальное = 
	      !ядро_be_вопрос_мочь
	      !ядро_be_вопрос_должен
	      !ядро_be_вопрос_можно
	      !ядро_be_вопрос_нужно
	      !ядро_be_вопрос_следует
	      !ядро_be_вопрос_have_to_прошлое
	      !ядро_be_вопрос_have_to_настоящее
	      !ядро_be_вопрос_have_to_настоящее1
	      !ядро_be_вопрос_have_to_будущее
	      !ядро_be_вопрос_have_заставить
	      ;
   @Выбор     ядро_вопрос_be_модальное( присутствие &П ) = 
	      !ядро_be_вопрос_мочь                 ( П )
	      !ядро_be_вопрос_должен               ( П )
	      !ядро_be_вопрос_можно                ( П )
	      !ядро_be_вопрос_нужно                ( П )
	      !ядро_be_вопрос_следует              ( П )
	      !ядро_be_вопрос_have_to_прошлое      ( П )
	      !ядро_be_вопрос_have_to_настоящее    ( П )
      	      !ядро_be_вопрос_have_to_настоящее1   ( П )
	      !ядро_be_вопрос_have_to_будущее      ( П )
	      !ядро_be_вопрос_have_заставить       ( П )
	      ;
}
// ---------- ядро_be wheter модальное ---------------------------
@Перевод
{  @Структура ядро_be_wheter_мочь =
	      гр_сущ( &Число, &Лицо )
	      мод_глагол[can]( &Форма ) _Not !связка( %Inf ) ;
   @Структура ядро_be_wheter_мочь =
              _Not мод_глагол[мочь]( %Несов,%глагол,Лицо,Число,&Время,Род ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Сов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_wheter_мочь_будущее =
	      гр_сущ( &Число, &Лицо )
	      @0[will] _Not @0[be] @0[able] @0[to] !связка( %Inf ) ;
   @Структура ядро_be_wheter_мочь_будущее =
	      _Not мод_глагол[мочь]( Cов,%глагол,Лицо,Число,%будущее,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Сов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_wheter_должен =
	      гр_сущ( &Число, &Лицо )
	      мод_глагол[must]( &Форма ) _Not !связка( %Inf ) ;
   @Структура ядро_be_wheter_должен =
	      _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,&Время,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_wheter_можно =
	      гр_сущ( &Число, &Лицо ) мод_глагол[may]( &Форма ) !связка( %Inf ) ;
   @Структура ядро_be_wheter_можно =
	      мод_глагол[можно]( %Несов,%глагол,Лицо,Число,&Время,Род ) @0[ли]
	      гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_wheter_можно_отр =
	      гр_сущ( &Число, &Лицо )
	      мод_глагол[may]( &Форма ) @0[not] !связка( %Inf ) ;
   @Структура ядро_be_wheter_можно_отр =
	      мод_глагол[нельзя]( %Несов,%глагол,Лицо,Число,&Время,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_wheter_нужно =
	      гр_сущ( &Число, &Лицо )
	      мод_глагол[need]( &Форма ) _Not !связка( %Inf ) ;
   @Структура ядро_be_wheter_нужно =
	       _Not мод_глагол[нужно]( %Несов,%глагол,Лицо,Число,&Время,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_wheter_следует =
	      гр_сущ( &Число, &Лицо )
	      мод_глагол[ought]( &Форма ) _Not @0[to] !связка( %Inf ) ;
   @Структура ядро_be_wheter_следует =
	      _Not мод_глагол[следует]( %Несов,%глагол,Лицо,Число,&Время,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %Д, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_modal
}
@Перевод
{  @Структура ядро_be_wheter_have_to_прошлое =
	      гр_сущ( &Число, &Лицо )
	      @0[had] _Not _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_wheter_have_to_прошлое =
	      _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%прошлое,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_wheter_have_to_настоящее =
	      гр_сущ( &Число, &Лицо )
	      _have _Not _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_wheter_have_to_настоящее =
              _Not мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )
	      !глагол( %Несов,Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_wheter_have_to_отр_настоящее =
	      гр_сущ( &Число, &Лицо )
	      _do @0[not] _have _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_wheter_have_to_отр_настоящее =
              @0[не] мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )	      
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
@Перевод
{  @Структура ядро_be_wheter_have_to_будущее =
	      гр_сущ( &Число, &Лицо )
	      _will @0[have] _Not _Got @0[to] !связка( %Inf ) ;
   @Структура ядро_be_wheter_have_to_будущее =
	      _Not глагол[быть]( %Сов,%глагол,Лицо,Число,%будущее,@0,%Актив,@0 ) @0[ли]
	      гр_сущ( &Число, &Лицо, %И, &Род )
	      мод_глагол[должен]( %Несов,%глагол,Лицо,Число,%настоящее,Род )
	      !глагол( %Несов,%Inf,@0,@0,@0,@0,%Актив,@0 ) ;
   table_lizo( Лицо )
   table_chislo( Число )
}
/*
@Перевод
{
   @Выбор     ядро_be_wheter_модальное = 
	      !ядро_be_wheter_мочь
	      !ядро_be_wheter_мочь_будущее
	      !ядро_be_wheter_должен
	      !ядро_be_wheter_можно
	      !ядро_be_wheter_нужно
	      !ядро_be_wheter_следует
	      !ядро_be_wheter_have_to_прошлое
	      !ядро_be_wheter_have_to_настоящее
	      !ядро_be_wheter_have_to_отр_настоящее
	      !ядро_be_wheter_have_to_будущее
	      ;
   @Выбор     ядро_be_wheter_модальное = 
	      !ядро_be_wheter_мочь
	      !ядро_be_wheter_мочь_будущее
	      !ядро_be_wheter_должен
	      !ядро_be_wheter_можно
	      !ядро_be_wheter_нужно
	      !ядро_be_wheter_следует
	      !ядро_be_wheter_have_to_прошлое
	      !ядро_be_wheter_have_to_настоящее
      	      !ядро_be_wheter_have_to_отр_настоящее
	      !ядро_be_wheter_have_to_будущее
	      ;
}
*/
