// **************************************************************************
//   Описание англицкого языка в меру моих слабых сил
//   Левосторонняя оборотная версия
//   Протранслируйте меня с помощью команды g++ -E -o lang.txt -I. lang.cpp
// **************************************************************************
@Перевод
{
// ------------------------ перечислимые множества ------------------------ //
//
   @Выбор      ____КОНСТАНТЫ____;
   @Выбор      КОНСТАНТЫ;
}

@Перевод
{
   @Выбор      _have = @0[have] @0[has] ;
   @Выбор      _have = @0[1] @0[2] ;
}

@Перевод
{
   @Выбор      _will = @0[will] @0[shall] ;
   @Выбор      _will = @0[1] @0[2] ;
}

@Перевод
{
   @Выбор      _would = @0[would] @0[should] ;
   @Выбор      _would = @0[1] @0[2] ;
}

@Перевод
{
   @Выбор      _do = @0[do] @0[does] ;
   @Выбор      _do = @0[1] @0[2] ;
}

@Перевод
{
   @Выбор      __do = @0[do] @0[does] @00;
   @Выбор      __do = @0[1] @0[2] @00;
}

@Перевод
{
   @Выбор      _was = @0[was] @0[were] ;
   @Выбор      _was = @0[1] @0[2] ;
}

@Перевод
{
   @Выбор      _No = @0[no] @0[not] @00;
   @Выбор      _No = @0[не] @0[не] @00;
}

@Перевод
{
   @Выбор      _No_p = @0[no] @0[not] @00;
   @Выбор      _No_p( падеж &Падеж ) = @0[не] @0[не] @00;

   @Таблица( @Выбор, = падеж Падеж )
   {  1 = Р ;
      2 = Р ;
      3 = И ;
   }
}

@Перевод
{
   @Выбор      _No1_p = @0[no] @0[not] @00;
   @Выбор      _No1_p( падеж &Падеж ) = @0[нет] @0[нет] @0[есть] ;

   @Таблица( @Выбор, = падеж Падеж )
   {  1 = Р ;
      2 = Р ;
      3 = И ;
   }
}

@Перевод
{
   @Выбор      _Not = @00@0[not] ;
   @Выбор      _Not = @00@0[не] ;
}

@Перевод
{
   @Выбор      _Not1 = @00@0[not] ;
   @Выбор      _Not1 = @00@0[разве_не] ;
}

@Перевод
{
   @Выбор      _And = @00@0[and] ;
   @Выбор      _And = @00@0[и] ;
}

@Перевод
{
   @Выбор      _Got = @00@0[got] ;
   @Выбор      _Got = @00@0[1] ;
}

@Перевод
{
   @Выбор      and_or = @0[and] @0[or] @0[but] ;
   @Выбор      and_or = @0[и] @0[или] @0[но] ;
}

@Перевод
{
   @Выбор      _and_or = @00@0[and] @0[or] @0[but] ;
   @Выбор      _and_or = @00@0[и] @0[или] @0[но] ;
}

@Перевод
{
   @Выбор      _связка_is = @0[am] @0[are] @0[is] ;
   @Выбор      _связка_is = @0[1] @0[2] @0[3] ;
}

@Перевод
{
   @Выбор      _связка_was = @0[was] @0[were] ;
   @Выбор      _связка_was = @0[1] @0[2] ;
}

@Перевод
{
   @Выбор      _Наречие = гр_наречие_пп( &Смысл ) наречие( &Смысл ) @00;
   @Выбор      _Наречие = гр_наречие_пп наречие @00;
}

@Перевод
{
   @Выбор      Наречие1( смысл_наречия Смысл ) = 
               гр_наречие_пп( &Смысл ) наречие( &Смысл ) ;
   @Выбор      Наречие1 = гр_наречие_пп наречие ;
}

@Перевод
{
   @Выбор      _Наречие_степени = 
               гр_наречие_пп( %степени ) наречие( %степени ) @00;
   @Выбор      _Наречие_степени = гр_наречие_пп наречие @00;
}

@Перевод
{
   @Выбор      ____АТОМЫ________;
   @Выбор      АТОМЫ;
}
# include <atom.h>

@Перевод
{
   @Выбор      ____СУЩ__________;
   @Выбор      СУЩ;
}
# include <sub.h>

@Перевод
{
   @Выбор      ____ПРИЛ_________;
   @Выбор      ПРИЛ;
}
# include <adj.h>

@Перевод
{
   @Выбор      ____НАРЕЧИЯ______;
   @Выбор      НАРЕЧИЯ;
}
# include <adv.h>

@Перевод
{
   @Выбор      ____СКАЗУЕМЫЕ____;
   @Выбор      СКАЗУЕМЫЕ;
}
# include <verb.h>
# include <verb_be.h>
# include <verb_there_is.h>
# include <verb_have.h>
# include <verb_mod.h>
# include <verb_mod_be.h>
# include <verb_mod_have.h>
# include <verb_c.h>

@Перевод
{
   @Выбор      ____ХВОСТЫ______;
   @Выбор      ХВОСТЫ;
}
# include <tail.h>
# include <tail_is.h>
# include <dis_quest.h>

@Перевод
{
   @Выбор      ____WH_ФРАЗЫ____;
   @Выбор      WH_ФРАЗЫ;
}
# include <wh_frasa.h>

@Перевод
{
   @Выбор      ____ЯДРО________;
   @Выбор      ЯДРО;
}
# include <core.h>
# include <next_chance.h>

@Перевод
{
   @Структура2 междометие;
   @Структура2 междометие;
}

@Перевод
{
   @Выбор      _междометие = междометие @00;
   @Выбор      _междометие = междометие @00;
}

@Перевод
{
   @Структура  @междометие = междометие _междометие ;
   @Структура  @междометие = междометие _междометие ;
}

@Перевод
{
   @Выбор      все_все1 = 
               фраза 
               фраза_have 
               фраза_квазинаречие 
               фраза_be 
               фраза_be_предлог 
               фраза_there 
               понять_значит_упростить 
               понять_значит_упростить2 
               ;
   @Выбор      все_все1 = 
               фраза 
               фраза_have 
               фраза_квазинаречие 
               фраза_be 
               фраза_be_предлог 
               фраза_there 
               понять_значит_упростить 
               понять_значит_упростить2 
               ;
}

@Перевод
{
// -------- как-то похабно сделано
   @Выбор      заголовок_ман = @00сущ( &Число ) ;
   @Выбор      заголовок_ман = @00сущ( &Род, &Д, %И, %Ед ) ;
}

@Перевод
{
   @Структура  все_все_для_ман = заголовок_ман все_все1 ;
   @Структура  все_все_для_ман = заголовок_ман все_все1 ;
}

@Перевод
{
   @Выбор      все_все = все_все1 все_все_сп все_все_для_ман ;
   @Выбор      все_все = все_все1 все_все_сп все_все_для_ман ;
}