// **************************************************************************
//
//                   Описание группы существительного
//                   (правильное, но неупорядоченное)
// **************************************************************************
// ---------- перечислимые типы --------------------------------------------
@Перевод
{
   @Структура  заголовок11 = @0@0;
   @Структура  заголовок11 = @0;
}

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

@Перевод
{
// ------- добавить this that и пр
   @Выбор      _артикль = @0@0@0@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_фраза = @0фраза_обстоятельство ;
   @Структура  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
               гр_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 
               гр_числительного( &Род, Падеж, &Число ) 
               гр_числительного_а( Падеж, &Число ) 
               ;
}

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

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

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

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

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

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

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