// **************************************************************************
//
//                 фразы типа "There is ..."
//
//                 фраза_there_is
//                 фраза_вопрос_there_is
// **************************************************************************

/* ----------------- фразы типа "There is ..." ----------------------- */
# define table_vrema           \
   @Таблица( форма Форма = время Время )\
   {  Inf   = настоящее ;      \
      Form2 = прошлое ;        \
   }


@Перевод
{  @Структура ядро_there_is_прошлое =
              @0[There] _связка_was _No_p ;
   @Структура ядро_there_is_прошлое( число &Число, род &Род, падеж Падеж, присутствие &П ) =
              _No_p( &Падеж )
	      глагол[быть]( %Сов, %глагол, @0, Число, %прошлое, Род, %Актив, @0 ) 
	      частица[ли]( П ) ;
}
@Перевод
{  @Структура ядро_there_is_настоящее =
              @0[There] _связка_is  _No1_p ;
   @Структура ядро_there_is_настоящее( падеж Падеж, присутствие &П ) =
              _No1_p( &Падеж ) частица[ли]( П ) ;
}
@Перевод
{  @Структура ядро_there_is_будущее =
              @0[There] @0[will] _No_p @0[be] ;
   @Структура ядро_there_is_будущее( число &Число, падеж Падеж, присутствие &П ) =
              _No_p( &Падеж ) 
	      глагол[быть]( %Сов, %глагол, %3е, Число, %будущее, @0, %Актив, @0 )
	      частица[ли]( П ) ;
}
@Перевод
{  @Структура ядро_there_is_преднастоящее =
              @0[There] _have @0[been] _No_p ;
   @Структура ядро_there_is_преднастоящее( число &Число, род &Род, падеж Падеж, присутствие &П ) =
              _No_p( &Падеж ) 
	      глагол[быть]( %Сов, %глагол, @0, Число, %прошлое, Род, %Актив, @0 )
	      частица[ли]( П ) ;
}

@Перевод
{  @Структура ядро_there_is_can =
	      @0[there] мод_глагол[can]( &Форма ) _No_p @0[be] ;
   @Структура ядро_there_is_can( число &Число1, род &Род1, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[мочь]( %Несов,%глагол,%3е,Число1,&Время,Род1 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_there_is_will_able =
	      @0[there] @0[will] _No_p @0[be] @0[able] @0[to] @0[be] ;
   @Структура ядро_there_is_will_able( число &Число1, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[мочь]( Cов,%глагол,%3е,Число,%будущее,@0 )
	      частица[ли]( П ) @0[быть] ;
}
@Перевод
{  @Структура ядро_there_is_must =
	      @0[there] мод_глагол[must]( &Форма ) _No_p @0[be] ;
   @Структура ядро_there_is_must( число &Число1, род &Род1, падеж Падеж, присутствие &П ) =
              _No_p( &Падеж ) мод_глагол[должен]( %Несов,%глагол,%3е,Число1,&Время,Род1 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_there_is_may =
	      @0[there] мод_глагол[may]( &Форма ) @0[be] ;
   @Структура ядро_there_is_may( число &Число1, род &Род1, падеж &Падеж, присутствие &П ) =
	      мод_глагол[можно]( %Несов,%глагол,%3е,Число1,&Время,Род1 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
   @Таблица( @Выбор = падеж Падеж )
   {  @0 = И ;  }
}
@Перевод
{  @Структура ядро_there_is_may_not =
              @0[there] мод_глагол[may]( &Форма ) @0[not] @0[be] ;
   @Структура ядро_there_is_may_not( падеж &Падеж, присутствие &П ) =
	      мод_глагол[нельзя]( %Несов,%глагол,%3е,%Ед,&Время,@0 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
   @Таблица( @Выбор = падеж Падеж )
   {  @0 = Д ;  }
}
@Перевод
{  @Структура ядро_there_is_need =
	      @0[there] мод_глагол[need]( &Форма ) _No_p @0[be] ;
   @Структура ядро_there_is_need( падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[нужно]( %Несов,%глагол,%3е,%Ед,&Время,@0 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_there_is_ought =
	      @0[there] мод_глагол[ought]( &Форма ) _No_p @0[to] @0[be] ;
   @Структура ядро_there_is_ought( падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[следует]( %Несов,%глагол,%3е,%Ед,&Время,@0 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_there_is_have_to_прошлое =
	      @0[there] @0[had] _No_p _Got @0[to] @0[be] ;
   @Структура ядро_there_is_have_to_прошлое( число &Число1, род &Род1, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[должен]( %Несов,%глагол,%3е,Число1,%прошлое,Род1 )
	      частица[ли]( П ) @0[быть] ;
}
@Перевод
{  @Структура ядро_there_is_have_to_настоящее =
	      @0[there] _have _No_p _Got @0[to] @0[be] ;
   @Структура ядро_there_is_have_to_настоящее( число &Число1, род &Род1, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[должен]( %Несов,%глагол,%3е,Число1,%настоящее,Род1 )
	      частица[ли]( П ) @0[быть] ;
}
@Перевод
{  @Структура ядро_there_is_have_to_отр_настоящее =
	      @0[there] _do @0[not] _have _Got @0[to] @0[be] ;
   @Структура ядро_there_is_have_to_отр_настоящее( число &Число1, падеж &Падеж, присутствие &П ) =
	      @0[не] мод_глагол[должен]( %Несов,%глагол,%3е,Число1,%настоящее,@0 )
	      частица[ли]( П ) @0[быть] ;
   @Таблица( @Выбор = падеж Падеж )
   {  @0 = Р ;  }
}
@Перевод
{  @Структура ядро_there_is_have_to_будущее =
	      @0[there] _will @0[have] _No_p _Got @0[to] @0[be] ;
   @Структура ядро_there_is_have_to_будущее( число &Число1, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) глагол[быть]( %Сов,%глагол,%3е,Число1,%будущее,@0,%Актив,@0 )
	      мод_глагол[должен]( %Несов,%глагол,%3е,Число1,%настоящее,Род )
	      частица[ли]( П ) @0[быть] ;
}

@Перевод
{  @Выбор     ядро_повест_there =
	      ядро_there_is_прошлое
	      ядро_there_is_настоящее
	      ядро_there_is_будущее
	      ядро_there_is_преднастоящее

	      ядро_there_is_can
	      ядро_there_is_will_able
	      ядро_there_is_must
	      ядро_there_is_may
	      ядро_there_is_may_not
	      ядро_there_is_need
	      ядро_there_is_ought
	      ядро_there_is_have_to_прошлое
	      ядро_there_is_have_to_настоящее
	      ядро_there_is_have_to_отр_настоящее
	      ядро_there_is_have_to_будущее
	      ;
   @Выбор     ядро_повест_there( число &Число, род &Род, падеж Падеж, присутствие &П ) =
	      ядро_there_is_прошлое          ( Число, Род, &Падеж,П )
	      ядро_there_is_настоящее                    ( &Падеж,П )
	      ядро_there_is_будущее          ( Число,      &Падеж,П )
	      ядро_there_is_преднастоящее    ( Число, Род, &Падеж,П )

	      ядро_there_is_can              ( Число, Род, &Падеж,П )
	      ядро_there_is_will_able        ( Число,      &Падеж,П )
	      ядро_there_is_must             ( Число, Род, &Падеж,П )
	      ядро_there_is_may              ( Число, Род, &Падеж,П )
	      ядро_there_is_may_not                      ( &Падеж,П )
	      ядро_there_is_need                         ( &Падеж,П )
	      ядро_there_is_ought                        ( &Падеж,П )
	      ядро_there_is_have_to_прошлое  ( Число, Род, &Падеж,П )
	      ядро_there_is_have_to_настоящее( Число, Род, &Падеж,П )
	      ядро_there_is_have_to_отр_настоящее( Число,  &Падеж,П )
	      ядро_there_is_have_to_будущее  ( Число,      &Падеж,П )
	      ;
}
// ---------------- there_is вопрос ----------------------------------
@Перевод
{  @Структура ядро_вопрос_there_is_прошлое =
              _связка_was  @0[There] ;
   @Структура ядро_вопрос_there_is_прошлое( число &Число, род &Род, присутствие &П ) =
              глагол[быть]( %Сов, %глагол, @0, Число, %прошлое, Род, %Актив, @0 ) 
	      частица[ли]( П ) ;
}
@Перевод
{  @Структура ядро_вопрос_there_is_настоящее =
              _связка_is  @0[There] ;
   @Структура ядро_вопрос_there_is_настоящее( присутствие &П ) =
              @0[есть] частица[ли]( П ) ;
}
@Перевод
{  @Структура ядро_вопрос_there_is_будущее =
              @0[will] @0[There] @0[be] ;
   @Структура ядро_вопрос_there_is_будущее( число &Число, присутствие &П ) =
              глагол[быть]( %Сов, %глагол, %3е, Число, %будущее, Род, %Актив, @0 ) @0[ли] ;
}
@Перевод
{  @Структура ядро_вопрос_there_is_преднастоящее =
              _have @0[There] @0[been] ;
   @Структура ядро_вопрос_there_is_преднастоящее( число &Число, род &Род, присутствие &П ) =
              глагол[быть]( %Сов, %глагол, @0, Число, %прошлое, Род, %Актив, @0 ) 
	      частица[ли]( П ) ;
}
// ---------------- there_is модальный вопрос ------------------------
@Перевод
{  @Структура ядро_вопрос_th_is_can =
	      мод_глагол[can]( &Форма ) @0[there] _No_p @0[be] ;
   @Структура ядро_вопрос_th_is_can( число &Число, род &Род, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[мочь]( %Несов,%глагол,%3е,Число,&Время,Род )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_вопрос_th_is_will_able =
	      @0[will] _No_p @0[there] @0[be] @0[able] @0[to] @0[be] ;
   @Структура ядро_вопрос_th_is_will_able( число &Число, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[мочь]( Cов,%глагол,%3е,Число,%будущее,@0 )
	      частица[ли]( П ) @0[быть] ;
}
@Перевод
{  @Структура ядро_вопрос_th_is_must =
	      мод_глагол[must]( &Форма ) _No_p @0[there] @0[be] ;
   @Структура ядро_вопрос_th_is_must( число &Число, род &Род, падеж Падеж, присутствие &П ) =
              _No_p( &Падеж ) мод_глагол[должен]( %Несов,%глагол,%3е,Число,&Время,Род )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_вопрос_th_is_may =
	      мод_глагол[may]( &Форма ) @0[there] @0[be] ;
   @Структура ядро_вопрос_th_is_may( число &Число, род &Род, падеж &Падеж, присутствие &П ) =
	      мод_глагол[можно]( %Несов,%глагол,%3е,Число,&Время,Род )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
   @Таблица( @Выбор = падеж Падеж )
   {  @0 = И ;  }
}
@Перевод
{  @Структура ядро_вопрос_th_is_need =
	      мод_глагол[need]( &Форма ) _No_p @0[there] @0[be] ;
   @Структура ядро_вопрос_th_is_need( падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[нужно]( %Несов,%глагол,%3е,%Ед,&Время,@0 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_вопрос_th_is_ought =
	      мод_глагол[ought]( &Форма ) _No_p @0[there] @0[to] @0[be] ;
   @Структура ядро_вопрос_th_is_ought( падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[следует]( %Несов,%глагол,%3е,%Ед,&Время,@0 )
	      частица[ли]( П ) @0[быть] ;
   table_vrema
}
@Перевод
{  @Структура ядро_вопрос_th_is_have_to_прошлое =
	      @0[had] _No_p @0[there] _Got @0[to] @0[be] ;
   @Структура ядро_вопрос_th_is_have_to_прошлое( число &Число, род &Род, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[должен]( %Несов,%глагол,%3е,Число,%прошлое,Род )
	      частица[ли]( П ) @0[быть] ;
}
@Перевод
{  @Структура ядро_вопрос_th_is_have_to_настоящее =
	      _have _No_p @0[there] _Got @0[to] @0[be] ;
   @Структура ядро_вопрос_th_is_have_to_настоящее( число &Число, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) мод_глагол[должен]( %Несов,%глагол,%3е,Число,%настоящее,@0 )
	      частица[ли]( П ) @0[быть] ;
}
@Перевод
{  @Структура ядро_вопрос_th_is_have_to_будущее =
	      _will _No_p @0[there] @0[have] _Got @0[to] @0[be] ;
   @Структура ядро_вопрос_th_is_have_to_будущее( число &Число, падеж Падеж, присутствие &П ) =
	      _No_p( &Падеж ) глагол[быть]( %Сов,%глагол,Лицо,Число,%будущее,@0,%Актив,@0 )
	      мод_глагол[должен]( %Несов,%глагол,%3е,Число,%настоящее,@0 )
	      частица[ли]( П ) @0[быть] ;
}

@Перевод
{
   @Выбор     ядро_вопрос_there =
              ядро_вопрос_there_is_прошлое
	      ядро_вопрос_there_is_настоящее
	      ядро_вопрос_there_is_будущее
	      ядро_вопрос_there_is_преднастоящее

	      ядро_вопрос_th_is_can
	      ядро_вопрос_th_is_will_able
	      ядро_вопрос_th_is_must
	      ядро_вопрос_th_is_may
	      ядро_вопрос_th_is_need
	      ядро_вопрос_th_is_ought
	      ядро_вопрос_th_is_have_to_прошлое
	      ядро_вопрос_th_is_have_to_настоящее
	      ядро_вопрос_th_is_have_to_будущее
	      ;
   @Выбор     ядро_вопрос_there( число &Число, род &Род, присутствие &П ) =
              ядро_вопрос_there_is_прошлое       ( Число, Род,  П )
	      ядро_вопрос_there_is_настоящее                  ( П )
	      ядро_вопрос_there_is_будущее       ( Число,       П )
	      ядро_вопрос_there_is_преднастоящее ( Число, Род,  П )

	      ядро_вопрос_th_is_can              ( Число, Род, &Падеж,П )
	      ядро_вопрос_th_is_will_able        ( Число,      &Падеж,П )
	      ядро_вопрос_th_is_must             ( Число, Род, &Падеж,П )
	      ядро_вопрос_th_is_may              ( Число, Род, &Падеж,П )
	      ядро_вопрос_th_is_need                         ( &Падеж,П )
	      ядро_вопрос_th_is_ought                        ( &Падеж,П )
	      ядро_вопрос_th_is_have_to_прошлое  ( Число, Род, &Падеж,П )
	      ядро_вопрос_th_is_have_to_настоящее( Число,      &Падеж,П )
	      ядро_вопрос_th_is_have_to_будущее  ( Число,      &Падеж,П )
	      ;
}
