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