// **************************************************************************
//   Описание языка Эсперанто в меру моих слабых сил
//   Протранслируйте меня с помощью команды g++ -E -o lang.txt -I. lang.cpp
// **************************************************************************
@Перевод
{
   @Выбор      _и_или = @00@0[kaj] @0[aux] @0[sed] ;
   @Выбор      _и_или = @00@0[и] @0[или] @0[но] ;
}

@Перевод
{
   @Выбор      и_или = @0[kaj] @0[aux] @0[sed] ;
   @Выбор      и_или = @0[и] @0[или] @0[но] ;
}

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

@Перевод
{
   @Выбор      _No_p = @0[ne] @00;
   @Выбор      _No_p( падеж &Падеж ) = @0[не] @00;
   @Таблица( @Выбор, = падеж Падеж )
   {  1 = Р ;
      2 = И ;
   }
}

@Перевод
{
   @Выбор      _No1_p = @0[ne] @00;
   @Выбор      _No1_p( падеж &Падеж ) = @0[нет] @0[есть] ;
   @Таблица( @Выбор, = падеж Падеж )
   {  1 = Р ;
      2 = И ;
   }
}

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

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

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

@Перевод
{
   @Выбор      ____ЧИСЛО________;
   @Выбор      ЧИСЛО;
}
# include <num.h>

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

@Перевод
{
   @Выбор      ____СКАЗУЕМЫЕ____;
   @Выбор      СКАЗУЕМЫЕ;
}
# include <verb_modal.h>
# include <verb.h>

@Перевод
{
   @Выбор      ____СКАЗУЕМЫЕ1___;
   @Выбор      СКАЗУЕМЫЕ1;
}
# include <verb1.h>

@Перевод
{
   @Выбор      ____IMPERATIV____;
   @Выбор      IMPERATIV;
}
# include <imperativ.h>

@Перевод
{
   @Выбор      ____БЕСПОРЯДОК___;
   @Выбор      БЕСПОРЯДОК;
}
# include <unorder.h>

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

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

@Перевод
{
   @Выбор      ____W_ФРАЗЫ______;
   @Выбор      W_ФРАЗЫ;
}
# include <w_frasa.h>

@Перевод
{
   @Выбор      ____ЗАПЛАТКИ_____;
   @Выбор      ЗАПЛАТКИ;
}
# include <patch.h>

@Перевод
{
   @Выбор      ____ГЛАВНЫЕ_ФРАЗЫ;
   @Выбор      ГЛАВНЫЕ_ФРАЗЫ;
}
# include <main.h>

@Перевод
{
   @Структура  ядро;
   @Структура  ядро;
}

@Перевод
{
   @Структура  отладка = @0[debug] ;
   @Структура  отладка = @0[отладка] ;
}

@Перевод
{
   @Выбор      но_догадка1 = гр_сущ_И гр_сущ_В предлог_сущ гр_наречия inf ;
   @Выбор      но_догадка1 = 
               гр_сущ_И( %И ) гр_сущ_В( %В ) предлог_сущ гр_наречия inf ;
}

@Перевод
{
   @Структура  но_догадка = @0[sed] но_догадка1 ;
   @Структура  но_догадка = @0[но] но_догадка1 ;
}

@Перевод
{
   @Структура  артикль_прил = @0[la] гр_прил( @0 ) ;
   @Структура  артикль_прил = гр_прил( %М, %О, %Т, %Ед ) ;
}

@Перевод
{
   @Выбор2     догадка1 = 
               гр_сущ_И 
               гр_сущ_В 
               предлог_сущ 
               гр_наречия 
               inf 
               бп_сказуемое2 
               фраза_что 
               фраза_обстоятельство 
               фраза_однородный_член 
               чем_что_то 
               междометие 
               но_догадка 
               артикль_прил 
               ;
   @Выбор2     догадка1 = 
               гр_сущ_И( %И ) 
               гр_сущ_В( %В ) 
               предлог_сущ 
               гр_наречия 
               inf 
               бп_сказуемое2( %3е, %Ед, %М, %Нет ) 
               фраза_что 
               фраза_обстоятельство 
               фраза_однородный_член 
               чем_что_то 
               междометие 
               но_догадка 
               артикль_прил 
               ;
}

@Перевод
{
   @Выбор2     _догадка1 = @догадка @00;
   @Выбор2     _догадка1 = @догадка @00;
}

@Перевод
{
   @Структура  @догадка = догадка1 _догадка1 ;
   @Структура  @догадка = догадка1 _догадка1 ;
}

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

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

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

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