    // **************************************************************************
    //   Описание англицкого языка в меру моих слабых сил
    //   Левосторонняя оборотная версия
    //   Протранслируйте меня с помощью команды 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 все_все_сп все_все_для_ман ;
    }