// **************************************************************************
//                   Описание группы существительного
//
// **************************************************************************
// ---------- перечислимые типы --------------------------------------------
@Перевод
{
   @Структура  заголовок11 = @0[not] @0[all] ;
   @Структура  заголовок11 = @0[не_все] ;
}

@Перевод
{
// ------- то, что может стоять перед артиклем --------------------------
// ------- приделать параметры к русской части
   @Выбор      _заголовок1 = 
               @0[all] @0[both] @0[such] @0[no] @0[which] заголовок11 @00;
   @Выбор      _заголовок1( род &Род, число &Число, падеж &Падеж ) = 
               @0[все] 
               @0[оба] 
               @0[такой] 
               @0[никакой] 
               @0[который] 
               заголовок11 
               @00
               ;
}

@Перевод
{
   @Выбор      _артикль = @0[a] @0[an] @0[the] @00;
   @Выбор      _артикль( род &Род, число &Число, падеж &Падеж ) = 
               @00 @00 @00 @00;
}

// ---------- заголовки ----------------------------------------------------
@Перевод
{
   @Структура  заголовок = _заголовок1 _артикль ;
   @Структура  заголовок( род &Род, число &Число, падеж &Падеж ) = 
               _заголовок1( Род, Число, Падеж ) _артикль( Род, Число, Падеж ) ;
}

// ----------- определитель прилагательный ---------------------
@Перевод
{
   @Выбор      опр_прилагательный2 = 
               гр_прил_п 
               прил( &Смысл ) 
               квази_прил( &Смысл ) 
               мест_прил 
               гр_прил_п0 
               числ_порядковое 
               ;
   @Выбор      опр_прилагательный2( род &Род, душа &Душа, падеж &Падеж, число &Число ) = 
               гр_прил_п( Род, Душа, Падеж, Число ) 
               прил( Род, Душа, Падеж, Число ) 
               квази_прил( Род, Душа, Падеж, Число ) 
               мест_прил( Род, Падеж, Число ) 
               гр_прил_п0( Род, Душа, Падеж, Число ) 
               числ_порядковое( Падеж ) 
               ;
// сделано хреново (не учитывает составной случай)
}

@Перевод
{
   @Структура  опр_прилагательный1 = 
               _Наречие_степени 
               опр_прилагательный2 
               _and_or 
               _опр_прилагательный 
               ;
   @Структура  опр_прилагательный1( род &Род, душа &Душа, падеж &Падеж, число &Число ) = 
               _Наречие_степени 
               опр_прилагательный2( Род, Душа, Падеж, Число ) 
               _and_or 
               _опр_прилагательный( Род, Душа, Падеж, Число ) 
               ;
}

@Перевод
{
   @Выбор      _опр_прилагательный = опр_прилагательный1 @00;
   @Выбор      _опр_прилагательный( род &Род, душа &Душа, падеж &Падеж, число &Число ) = 
               опр_прилагательный1( Род, Душа, Падеж, Число ) @00;
}

// ------------------- определитель правый ---------------------
@Перевод
{
   @Структура  опр_правый1 = прил11( &Смысл ) _And _опр_правый ;
   @Структура  опр_правый1 = прил11 _And _опр_правый ;
}

@Перевод
{
   @Выбор      _опр_правый = опр_правый1 @00;
   @Выбор      _опр_правый = опр_правый1 @00;
}

// ---------- хвосты существительного ---------------------------
@Перевод
{
   @Выбор      и__гр_сущ1 = 
               мест_сущ1( &Род, &Лицо, &Число ) 
               мест_сущ2 
               мест_сущ3( &Род, &Лицо, &Число ) 
               гр_существительного( &Число ) 
               фраза_тот_что 
               фраза_whether 
               фраза_that 
               гр_числительного 
               гр_числительного_а 
               ;
   @Выбор      и__гр_сущ1( падеж &Падеж ) = 
               мест_сущ1( &Род, Лицо, &Число, Падеж ) 
               мест_сущ2( Падеж ) 
               мест_сущ3( &Род, Лицо, &Число, Падеж ) 
               гр_существительного( &Род, Падеж, &Число ) 
               фраза_тот_что( Падеж ) 
               фраза_whether 
               фраза_that 
               гр_числительного( &Род, Падеж, &Число ) 
               гр_числительного_а( Падеж, &Число ) 
               ;
}

@Перевод
{
   @Структура  и__гр_сущ2 = and_or и__гр_сущ1 ;
   @Структура  и__гр_сущ2( падеж &Падеж ) = and_or и__гр_сущ1( Падеж ) ;
}

@Перевод
{
   @Выбор      _и__гр_сущ = @00и__гр_сущ2 ;
   @Выбор      _и__гр_сущ( падеж &Падеж ) = @00 и__гр_сущ2( Падеж ) ;
}

@Перевод
{
   @Структура  гр_сущ_рп = @0[of] гр_существительного( &Число ) ;
   @Структура  гр_сущ_рп = гр_существительного( &Род, %Р, %Ед ) ;
}

@Перевод
{
   @Структура  of_фраза = @0[of] фраза_обстоятельство ;
   @Структура  of_фраза = фраза_обстоятельство ;
}

@Перевод
{
   @Структура  предлог_сущ = _Not Предлог гр_сущ_а ;
   @Структура  предлог_сущ = _Not Предлог( &Падеж ) гр_сущ_а( Падеж ) ;
}

@Перевод
{
// было _Not гр_глагола( &S1, Form3 ) ;
   @Структура  причастие = _Not гр_глагола_а( &S1, Form3 ) ;
   @Структура  причастие( род &Род, падеж &Падеж, число &Число ) = 
               _Not 
               гр_глагола_а( %Сов, %причастие, Число, %прошлое, Род, %Пассив, Падеж ) 
               ;
}

@Перевод
{
   @Выбор      _хвост_сущ = 
               гр_сущ_рп 
               причастие 
               чтобы_to_inf_akt( &S1 ) 
               to_inf_akt( &S1 ) 
               гр_inf_причастие( &S1 ) 
               гр_ing1( &S1 ) 
               for_фраза 
               предлог_сущ 
               союз_глагол( &S1 ) 
               фраза_that 
               фраза_дополнение 
               фраза_дополнение_сущ 
               of_фраза 
               @00
               ;
   @Выбор      _хвост_сущ( род &Род, падеж &Падеж, число &Число ) = 
               гр_сущ_рп 
               причастие( Род, Падеж, Число ) 
               чтобы_to_inf_akt 
               to_inf_akt 
               гр_inf_причастие( Род, Падеж, Число ) 
               гр_ing1( Род, Падеж, Число ) 
               for_фраза 
               предлог_сущ 
               союз_глагол 
               фраза_that 
               фраза_дополнение( Падеж ) 
               фраза_дополнение_сущ( Род, Падеж, Число ) 
               of_фраза 
               @00
               ;
}

@Перевод
{
   @Выбор      _хвост_местоимения = 
               гр_сущ_рп 
               @0[all] 
               гр_ing1( &S1 ) 
               предлог_сущ 
               фраза_that 
               фраза_дополнение 
               фраза_дополнение_сущ 
               @00
               ;
   @Выбор      _хвост_местоимения( род &Род, падеж &Падеж, число &Число ) = 
               гр_сущ_рп 
               @0[все] 
               гр_ing1( Род, Падеж, Число ) 
               предлог_сущ 
               фраза_that 
               фраза_дополнение( Падеж ) 
               фраза_дополнение_сущ( Род, Падеж, Число ) 
               @00
               ;
}

@Перевод
{
   @Выбор      сущ1( число Число ) = 
               гр_сущ_п( &Число ) сущ( &Число ) гр_сущ_п01( &Число ) ;
   @Выбор      сущ1( род Род, душа Душа, падеж &Падеж, число &Число ) = 
               гр_сущ_п( &Род, &Душа, Падеж, Число ) 
               сущ( &Род, &Душа, Падеж, Число ) 
               гр_сущ_п01( &Род, &Душа, Падеж, Число ) 
               ;
}

// ---------- существительное со всеми его определениями --------
@Перевод
{
   @Структура  гр_существительного( число Число ) = 
               _Наречие_степени 
               заголовок 
               _опр_правый 
               _опр_прилагательный 
               _опр_правый 
               сущ1( &Число ) 
               _хвост_сущ 
               ;
   @Структура  гр_существительного( род Род, падеж &Падеж, число Число ) = 
               _Наречие_степени 
               заголовок( Род, Число, Падеж ) 
               _опр_прилагательный( Род, Душа, Падеж, Число ) 
               сущ1( &Род, &Душа, Падеж, &Число ) 
               _опр_правый 
               _опр_правый 
               _хвост_сущ( Род, Падеж, Число ) 
               ;
   @Таблица( число Число = число Число ) 
   { Ед = Ед ; 
     Мн = Мн ; 
   }
}

// ---------------------------------------------------------------
@Перевод
{
   @Выбор      гр_мест( род Род, лицо Лицо, число Число ) = 
               мест_сущ1( &Род, &Лицо, &Число ) 
               мест_сущ3( &Род, &Лицо, &Число ) 
               ;
   @Выбор      гр_мест( род Род, лицо &Лицо, число Число, падеж &Падеж ) = 
               мест_сущ1( &Род, Лицо, &Число, Падеж ) 
               мест_сущ3( &Род, Лицо, &Число, Падеж ) 
               ;
}

@Перевод
{
   @Выбор      гр_мест_a( род Род, лицо Лицо, число Число ) = 
               мест_сущ2 мест_сущ3( &Род, &Лицо, &Число ) ;
   @Выбор      гр_мест_a( род Род, лицо &Лицо, число &Число, падеж &Падеж ) = 
               мест_сущ2( Падеж ) мест_сущ3( &Род, Лицо, Число, Падеж ) ;
}

@Перевод
{
   @Структура  гр_местоимения( род Род, лицо Лицо, число Число ) = 
               гр_мест( &Род, &Лицо, &Число ) _хвост_местоимения ;
   @Структура  гр_местоимения( род Род, лицо &Лицо, число Число, падеж &Падеж ) = 
               гр_мест( &Род, Лицо, &Число, Падеж ) 
               _хвост_местоимения( Род, Падеж, Число ) 
               ;
}

@Перевод
{
// очень хочется стереть Лицо и Число, тем не менее этог не надо делать
   @Структура  гр_местоимения_а( род Род, лицо Лицо, число Число ) = 
               гр_мест_a( &Род, &Лицо, &Число ) _хвост_местоимения ;
   @Структура  гр_местоимения_а( род Род, лицо &Лицо, число Число, падеж &Падеж ) = 
               гр_мест_a( &Род, Лицо, &Число, Падеж ) 
               _хвост_местоимения( Род, Падеж, Число ) 
               ;
}

// ---------------- группа существительного ----------------------
@Перевод
{
// ------- подлежащее --------------
   @Выбор2     гр_сущ1( число Число, лицо Лицо ) = 
               гр_местоимения( &Род, &Лицо, &Число ) 
               гр_существительного( &Число ) 
               фраза_тот_что 
               фраза_whether 
               фраза_that 
               гр_числительного 
               гр_числительного_а 
               ;
   @Выбор2     гр_сущ1( число Число, лицо &Лицо, падеж &Падеж, род Род ) = 
               гр_местоимения( &Род, Лицо, &Число, Падеж ) 
               гр_существительного( &Род, Падеж, &Число ) 
               фраза_тот_что( Падеж ) 
               фраза_whether 
               фраза_that 
               гр_числительного( &Род, Падеж, &Число ) 
               гр_числительного_а( Падеж, &Число ) 
               ;
   @Таблица( @Выбор, лицо Лицо = лицо Лицо )
   {
      1 1е = 1е ;
      1 2е = 2е ;
      1 3е = 3е ;
      2 @0 = 3е ;
      3 @0 = 3е ;
      4 @0 = 3е ;
      5 @0 = 3е ;
      6 @0 = 3е ;
      7 @0 = 3е ;
      8 @0 = 3е ;
      9 @0 = 3е ;
   }
}

@Перевод
{
// ------- подлежащее модальных фраз --------
   @Выбор2     гр_сущ_м1( число Число, лицо Лицо ) = 
               гр_местоимения( &Род, &Лицо, &Число ) 
               Вопрос_к_подлежащему 
               гр_существительного( &Число ) 
               фраза_тот_что 
               фраза_whether 
               фраза_that 
               гр_числительного 
               гр_числительного_а 
               ;
   @Выбор2     гр_сущ_м1( число Число, лицо &Лицо, падеж &Падеж, род Род ) = 
               гр_местоимения( &Род, Лицо, &Число, Падеж ) 
               Вопрос_к_подлежащему( Падеж ) 
               гр_существительного( &Род, Падеж, &Число ) 
               фраза_тот_что( Падеж ) 
               фраза_whether 
               фраза_that 
               гр_числительного( &Род, Падеж, &Число ) 
               гр_числительного_а( Падеж, &Число ) 
               ;
   @Таблица( @Выбор, лицо Лицо = лицо Лицо )
   {
      1 1е = 1е ;
      1 2е = 2е ;
      1 3е = 3е ;
      2 @0 = 3е ;
      3 @0 = 3е ;
      4 @0 = 3е ;
      5 @0 = 3е ;
      6 @0 = 3е ;
      7 @0 = 3е ;
      8 @0 = 3е ;
      9 @0 = 3е ;
     10 @0 = 3е ;
   }

}

@Перевод
{
// ------- это для всего остального ----------
   @Выбор2     гр_сущ_а1 = 
               гр_местоимения_а( &Род, &Лицо, &Число ) 
               фраза_тот_что 
               гр_существительного( &Число ) 
               фраза_тот_что 
               фраза_whether 
               фраза_that 
               гр_числительного 
               гр_числительного_а 
               ;
   @Выбор2     гр_сущ_а1( число Число, лицо Лицо, падеж &Падеж, род Род ) = 
               гр_местоимения_а( &Род, Лицо, &Число, Падеж ) 
               фраза_тот_что( Падеж ) 
               гр_существительного( &Род, Падеж, &Число ) 
               фраза_тот_что( Падеж ) 
               фраза_whether 
               фраза_that 
               гр_числительного( &Род, Падеж, &Число ) 
               гр_числительного_а( Падеж, &Число ) 
               ;
}

// ---------- все эти группы используются в других конструкциях -----------
@Перевод
{
// ------- подлежащее ---------
   @Структура  гр_сущ( число Ч, лицо Л ) = гр_сущ1( &Ч, &Л ) _и__гр_сущ ;
   @Структура  гр_сущ( число Ч, лицо Л, падеж &Падеж, род Р ) = 
               гр_сущ1( &Ч, &Л, Падеж, &Р ) _и__гр_сущ( Падеж ) ;
}

@Перевод
{
// ------- подлежащее модальных фраз ---------
   @Структура  гр_сущ_м( число Ч, лицо Л ) = 
               гр_сущ_м1( &Ч, &Л ) _и__гр_сущ ;
   @Структура  гр_сущ_м( число Ч, лицо Л, падеж &Падеж, род Р ) = 
               гр_сущ_м1( &Ч, &Л, Падеж, &Р ) _и__гр_сущ( Падеж ) ;
}

@Перевод
{
// ------- это для дополнения 
   @Структура  гр_сущ_а = гр_сущ_а1 _и__гр_сущ ;
   @Структура  гр_сущ_а( падеж &Падеж ) = 
               гр_сущ_а1( &Ч, Л, Падеж, &Р ) _и__гр_сущ( Падеж ) ;
}

@Перевод
{
// ------- это для подлежащего придаточных фраз
   @Структура  гр_сущ_б = гр_сущ_а1 _и__гр_сущ ;
   @Структура  гр_сущ_б( число Ч, лицо &Л, падеж &Падеж, род Р ) = 
               гр_сущ_а1( &Ч, Л, Падеж, &Р ) _и__гр_сущ( Падеж ) ;
}

@Перевод
{
// ------- это для хвоста_is
   @Структура  гр_сущ_в = гр_сущ_а1 _и__гр_сущ ;
   @Структура  гр_сущ_в( число Ч, падеж &Падеж, род Р ) = 
               гр_сущ_а1( &Ч, Л, Падеж, &Р ) _и__гр_сущ( Падеж ) ;
}