mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-12 14:29:31 -06:00
337 lines
118 KiB
Plaintext
337 lines
118 KiB
Plaintext
concrete Hebrew of Letter=open ResHebU in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;lincat Author={s:(ResHebU.Num=>(ResHebU.Gen=>Str));n:ResHebU.DepNum;g:ResHebU.DepGen}={s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>str@0}};n=<ResHebU.depnum>;g=<ResHebU.depgen>};"Author";
|
||
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResHebU.DepNum{(ResHebU.depnum)(ResHebU.cnum(ResHebU.sg))(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.depgen)(ResHebU.cgen(ResHebU.masc))(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"קודמת"++("לתפקיד"++("של"++Position@0.s!<ResHebU.sg>!<ResHebU.fem>));(ResHebU.masc)=>"קודמת"++("לתפקיד"++("של"++Position@0.s!<ResHebU.sg>!<ResHebU.masc>))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"קודמתם"++("לתפקיד"++("של"++Position@0.s!<ResHebU.pl>!<ResHebU.masc>));(ResHebU.fem)=>"קודמתן"++("לתפקיד"++("של"++Position@0.s!<ResHebU.pl>!<ResHebU.fem>))}}}}};"קודמת לתפקיד של Position_0";
|
||
lin ColleagueHe:Letter.Recipient=\->{s="עמית";n=<ResHebU.sg>;g=<ResHebU.masc>};"עמית";
|
||
lin ColleagueShe:Letter.Recipient=\->{s="עמיתה";n=<ResHebU.sg>;g=<ResHebU.fem>};"עמיתה";
|
||
lin ColleaguesHe:Letter.Recipient=\->{s="עמיתים";n=<ResHebU.pl>;g=<ResHebU.masc>};"עמיתים";
|
||
lin ColleaguesShe:Letter.Recipient=\->{s="עמיתות";n=<ResHebU.pl>;g=<ResHebU.fem>};"עמיתות";
|
||
lin Company:Letter.NounPhrase=\->{s="חברתןו";n=<ResHebU.sg>;g=<ResHebU.fem>};"חברתןו";
|
||
lin Competitor:Letter.NounPhrase=\->{s="המתחרה"++("הגרוע"++("ביותר"++"שלןו"));n=<ResHebU.sg>;g=<ResHebU.masc>};"המתחרה הגרוע ביותר שלןו";
|
||
lin DarlingHe:Letter.Recipient=\->{s="אהובי";n=<ResHebU.sg>;g=<ResHebU.masc>};"אהובי";
|
||
lin DarlingShe:Letter.Recipient=\->{s="אהובתי";n=<ResHebU.sg>;g=<ResHebU.fem>};"אהובתי";
|
||
lin Dean:Letter.Author=\->{s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"דיקן"}};n=<ResHebU.cnum<ResHebU.sg>>;g=<ResHebU.cgen<ResHebU.masc>>};"דיקן";
|
||
lin DearRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s++table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>"יקרות";(ResHebU.masc)=>"יקרים"}!(Recipient@0.g);(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"יקר";(ResHebU.fem)=>"יקרה"}!(Recipient@0.g)}!(Recipient@0.n);n=Recipient@0.n;g=Recipient@0.g};"Recipient_0 יקר";
|
||
lincat Ending={s:(ResHebU.Num=>(ResHebU.Gen=>Str));n:ResHebU.DepNum;g:ResHebU.DepGen}={s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>str@0}};n=<ResHebU.depnum>;g=<ResHebU.depgen>};"Ending";
|
||
lin FormalEnding:Letter.Ending=\Author@0->{s=table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>",בכבוד"++("רב"++"&-")++Author@0.s!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>",בכבוד"++("רב"++"&-")++Author@0.s!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>",בכבוד"++("רב"++"&-")++Author@0.s!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>",בכבוד"++("רב"++"&-")++Author@0.s!<ResHebU.sg>!<ResHebU.masc>}};n=Author@0.n;g=Author@0.g};"(,בכבוד רב &-)Author_0";
|
||
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResHebU.DepNum{(ResHebU.depnum)(ResHebU.cnum(ResHebU.sg))(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.depgen)(ResHebU.cgen(ResHebU.masc))(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>NounPhrase@0.s++(table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"פשט";(ResHebU.fem)=>"פשטה"}!(NounPhrase@0.g);(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"פשטו"}!(NounPhrase@0.g)}!(NounPhrase@0.n)++"רגל")}}}}};"NounPhrase_0 פשט רגל";
|
||
lincat Heading={s:Str;n:ResHebU.Num;g:ResHebU.Gen}={s=str@0;n=<ResHebU.sg>;g=<ResHebU.masc>};"Heading";
|
||
lin HelloRec:Letter.Heading=\Recipient@0->{s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>"שלום"}!(Recipient@0.n)++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"שלום Recipient_0";
|
||
lin Honour:Letter.Mode=\->{s=table ResHebU.DepNum{(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדות"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"הןןו"++("מתכבדות"++("להודיע"++("לך"++"ש")))}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדים"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדים"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"הןןו"++("מתכבדים"++("להודיע"++("לך"++"ש")))}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדות"++("להודיע"++("לך"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדים"++("להודיע"++("לך"++"ש")))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדים"++("להודיע"++("לכן"++"ש")))}}};(ResHebU.depnum)=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדות"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"הןןי"++("מתכבדת"++("להודיע"++("לך"++"ש")))}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדים"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדים"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"הןןי"++("מתכבד"++("להודיע"++("לך"++"ש")))}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"הןןי"++("מתכבד"++("להודיע"++("לך"++"ש")));(ResHebU.masc)=>"הןןי"++("מתכבדת"++("להודיע"++("לך"++"ש")))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןו"++("מתכבדות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןו"++("מתכבדים"++("להודיע"++("לכן"++"ש")))}}};(ResHebU.cnum(ResHebU.sg))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןי"++("מתכבד"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןי"++("מתכבד"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"הןןי"++("מתכבד"++("להודיע"++("לך"++"ש")))}};(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"הןןי"++("מתכבדת"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"הןןי"++("מתכבדת"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"הןןי"++("מתכבדת"++("להודיע"++("לך"++"ש")))}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"הןןי"++("מתכבד"++("להודיע"++("לך"++"ש")));(ResHebU.masc)=>"הןןי"++("מתכבדת"++("להודיע"++("לך"++"ש")))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>"הןןי"++("מתכבד"++("להודיע"++("לכן"++"ש")));(ResHebU.masc)=>"הןןי"++("מתכבדת"++("להודיע"++("לכם"++"ש")))}}}}};"הןןי מתכבדת להודיע לך ש";
|
||
lin ILoveYou:Letter.Sentence=\->{s=table ResHebU.DepNum{(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבות"++"אתכם");(ResHebU.fem)=>"אןחןו"++("אוהבות"++"אתכן")};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןחןו"++("אוהבות"++"אותך")}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבים"++"אתכם");(ResHebU.fem)=>"אןחןו"++("אוהבים"++"אתכן")};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןחןו"++("אוהבים"++"אותך")}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבות"++"אותך");(ResHebU.fem)=>"אןחןו"++("אוהבים"++"אותך")};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבות"++"אתכם");(ResHebU.fem)=>"אןחןו"++("אוהבים"++"אתכן")}}};(ResHebU.depnum)=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבות"++"אתכם");(ResHebU.fem)=>"אןחןו"++("אוהבות"++"אתכן")};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("אוהבת"++"אותך")}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבים"++"אתכם");(ResHebU.fem)=>"אןחןו"++("אוהבים"++"אתכן")};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("אוהב"++"אותך")}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"אןי"++("אוהב"++"אותך");(ResHebU.masc)=>"אןי"++("אוהבת"++"אותך")};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("אוהבות"++"אתכם");(ResHebU.fem)=>"אןחןו"++("אוהבים"++"אתכן")}}};(ResHebU.cnum(ResHebU.sg))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןי"++("אוהב"++"אתכם");(ResHebU.fem)=>"אןי"++("אוהב"++"אתכן")};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("אוהב"++"אותך")}};(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןי"++("אוהבת"++"אתכם");(ResHebU.fem)=>"אןי"++("אוהבת"++"אתכן")};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("אוהבת"++"אותך")}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"אןי"++("אוהב"++"אותך");(ResHebU.masc)=>"אןי"++("אוהבת"++"אותך")};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>"אןי"++("אוהב"++"אתכן");(ResHebU.masc)=>"אןי"++("אוהבת"++"אתכם")}}}}};"אןי אוהבת אותך";
|
||
lin InformalEnding:Letter.Ending=\Author@0->{s=table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>",בברכה"++"&-"++Author@0.s!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>",בברכה"++"&-"++Author@0.s!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>",בברכה"++"&-"++Author@0.s!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>",בברכה"++"&-"++Author@0.s!<ResHebU.sg>!<ResHebU.masc>}};n=Author@0.n;g=Author@0.g};"(,בברכה &-)Author_0";
|
||
lin JustHello:Letter.Heading=\Recipient@0->{s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>"שלום"}!(Recipient@0.n);n=Recipient@0.n;g=Recipient@0.g};"שלום";
|
||
lincat Letter={s:Str}={s=str@0};"Letter";
|
||
lincat Message={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{(ResHebU.depnum)(ResHebU.cnum(ResHebU.sg))(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.depgen)(ResHebU.cgen(ResHebU.masc))(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>str@0}}}}};"Message";
|
||
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=","++(Heading@0.s++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g)))))};", Heading_0 &- Message_1 &- Ending_2";
|
||
lincat Mode={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{(ResHebU.depnum)(ResHebU.cnum(ResHebU.sg))(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.depgen)(ResHebU.cgen(ResHebU.masc))(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>str@0}}}}};"Mode";
|
||
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResHebU.DepNum{(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.masc>}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.masc>}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.pl>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.masc>}}};(ResHebU.cnum(ResHebU.sg))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.masc>}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.masc>}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.cnum<ResHebU.sg>>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.masc>}}};(ResHebU.depnum)=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.fem>>!<ResHebU.sg>!<ResHebU.masc>}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.cgen<ResHebU.masc>>!<ResHebU.sg>!<ResHebU.masc>}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.pl>!<ResHebU.masc>};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.fem>;(ResHebU.masc)=>Mode@0.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!<ResHebU.depgen>!<ResHebU.sg>!<ResHebU.masc>}}}}};"Mode_0 Sentence_1";
|
||
lin Mother:Letter.Author=\->{s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אמא"}};n=<ResHebU.cnum<ResHebU.sg>>;g=<ResHebU.cgen<ResHebU.fem>>};"אמא";
|
||
lin Name:Letter.Author=\String@0->{s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>String@0.s}};n=<ResHebU.cnum<ResHebU.sg>>;g=<ResHebU.cgen<ResHebU.masc>>};"String_0";
|
||
lin NameHe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResHebU.sg>;g=<ResHebU.masc>};"String_0";
|
||
lin NameShe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResHebU.sg>;g=<ResHebU.fem>};"String_0";
|
||
lincat NounPhrase={s:Str;n:ResHebU.Num;g:ResHebU.Gen}={s=str@0;n=<ResHebU.sg>;g=<ResHebU.masc>};"NounPhrase";
|
||
lin OurCustomers:Letter.NounPhrase=\->{s="לקוחותיןו";n=<ResHebU.pl>;g=<ResHebU.masc>};"לקוחותיןו";
|
||
lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Recipient_0";
|
||
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
|
||
lincat Position={s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>str@0}}};"Position";
|
||
lin President:Letter.Author=\->{s=table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"ןשיא"}};n=<ResHebU.cnum<ResHebU.sg>>;g=<ResHebU.cgen<ResHebU.masc>>};"ןשיא";
|
||
lin ProjectManager:Letter.Position=\->{s=table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>"מןהלות"++"פרוייקט";(ResHebU.masc)=>"מןהלי"++"פרוייקט"};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"מןהל"++"פרוייקט";(ResHebU.fem)=>"מןהלת"++"פרוייקט"}}};"מןהל פרוייקט";
|
||
lincat Recipient={s:Str;n:ResHebU.Num;g:ResHebU.Gen}={s=str@0;n=<ResHebU.sg>;g=<ResHebU.masc>};"Recipient";
|
||
lin Regret:Letter.Mode=\->{s=table ResHebU.DepNum{(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערות"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןחןו"++("מצטערות"++("להודיע"++("לך"++"ש")))}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערים"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערים"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןחןו"++("מצטערים"++("להודיע"++("לך"++"ש")))}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערות"++("להודיע"++("לך"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערים"++("להודיע"++("לך"++"ש")))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערים"++("להודיע"++("לכן"++"ש")))}}};(ResHebU.depnum)=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערות"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("מצטערת"++("להודיע"++("לך"++"ש")))}};(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערים"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערים"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("מצטער"++("להודיע"++("לך"++"ש")))}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"אןי"++("מצטער"++("להודיע"++("לך"++"ש")));(ResHebU.masc)=>"אןי"++("מצטערת"++("להודיע"++("לך"++"ש")))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןחןו"++("מצטערות"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןחןו"++("מצטערים"++("להודיע"++("לכן"++"ש")))}}};(ResHebU.cnum(ResHebU.sg))=>table ResHebU.DepGen{(ResHebU.cgen(ResHebU.masc))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןי"++("מצטער"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןי"++("מצטער"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("מצטער"++("להודיע"++("לך"++"ש")))}};(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)=>"אןי"++("מצטערת"++("להודיע"++("לכם"++"ש")));(ResHebU.fem)=>"אןי"++("מצטערת"++("להודיע"++("לכן"++"ש")))};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"אןי"++("מצטערת"++("להודיע"++("לך"++"ש")))}};(ResHebU.depgen)=>table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.fem)=>"אןי"++("מצטער"++("להודיע"++("לך"++"ש")));(ResHebU.masc)=>"אןי"++("מצטערת"++("להודיע"++("לך"++"ש")))};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>"אןי"++("מצטער"++("להודיע"++("לכן"++"ש")));(ResHebU.masc)=>"אןי"++("מצטערת"++("להודיע"++("לכם"++"ש")))}}}}};"אןי מצטערת להודיע לך ש";
|
||
lin Senior:Letter.Position=\->{s=table ResHebU.Num{(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"חבר"++"בכיר"};(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>"חברים"++"בכירים"}}};"חבר בכיר";
|
||
lincat Sentence={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{(ResHebU.depnum)(ResHebU.cnum(ResHebU.sg))(ResHebU.cnum(ResHebU.pl))=>table ResHebU.DepGen{(ResHebU.depgen)(ResHebU.cgen(ResHebU.masc))(ResHebU.cgen(ResHebU.fem))=>table ResHebU.Num{(ResHebU.sg)(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.masc)(ResHebU.fem)=>str@0}}}}};"Sentence";
|
||
lin Spouse:Letter.Author=\->{s=table ResHebU.Num{(ResHebU.pl)=>table ResHebU.Gen{(ResHebU.fem)=>"בעליכן";(ResHebU.masc)=>"ןשותיכם"};(ResHebU.sg)=>table ResHebU.Gen{(ResHebU.masc)=>"אישתך";(ResHebU.fem)=>"בעלך"}};n=<ResHebU.depnum>;g=<ResHebU.depgen>};"אישתך";
|
||
}
|
||
resource ResHebU={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResHebU.Gen;
|
||
param DepNum=depnum|cnum ResHebU.Num;
|
||
param Gen=masc|fem;
|
||
param Kas=nom|dat|acc;
|
||
param Num=sg|pl;
|
||
}
|
||
abstract Letter={flags coding=utf8;flags modulesize=n42;cat Author[]=;
|
||
fun BePromoted:(h_:Letter.Position)->Letter.Sentence={};
|
||
fun ColleagueHe:Letter.Recipient={};
|
||
fun ColleagueShe:Letter.Recipient={};
|
||
fun ColleaguesHe:Letter.Recipient={};
|
||
fun ColleaguesShe:Letter.Recipient={};
|
||
fun Company:Letter.NounPhrase={};
|
||
fun Competitor:Letter.NounPhrase={};
|
||
fun DarlingHe:Letter.Recipient={};
|
||
fun DarlingShe:Letter.Recipient={};
|
||
fun Dean:Letter.Author={};
|
||
fun DearRec:(h_:Letter.Recipient)->Letter.Heading={};
|
||
cat Ending[]=;
|
||
fun FormalEnding:(h_:Letter.Author)->Letter.Ending={};
|
||
fun GoBankrupt:(h_:Letter.NounPhrase)->Letter.Sentence={};
|
||
cat Heading[]=;
|
||
fun HelloRec:(h_:Letter.Recipient)->Letter.Heading={};
|
||
fun Honour:Letter.Mode={};
|
||
fun ILoveYou:Letter.Sentence={};
|
||
fun InformalEnding:(h_:Letter.Author)->Letter.Ending={};
|
||
fun JustHello:(h_:Letter.Recipient)->Letter.Heading={};
|
||
cat Letter[]=;
|
||
cat Message[]=;
|
||
fun MkLetter:(h_:Letter.Heading)->(h_:Letter.Message)->(h_:Letter.Ending)->Letter.Letter={};
|
||
cat Mode[]=;
|
||
fun ModeSent:(h_:Letter.Mode)->(h_:Letter.Sentence)->Letter.Message={};
|
||
fun Mother:Letter.Author={};
|
||
fun Name:(h_:PredefAbs.String)->Letter.Author={};
|
||
fun NameHe:(h_:PredefAbs.String)->Letter.Recipient={};
|
||
fun NameShe:(h_:PredefAbs.String)->Letter.Recipient={};
|
||
cat NounPhrase[]=;
|
||
fun OurCustomers:Letter.NounPhrase={};
|
||
fun PlainRec:(h_:Letter.Recipient)->Letter.Heading={};
|
||
fun PlainSent:(h_:Letter.Sentence)->Letter.Message={};
|
||
cat Position[]=;
|
||
fun President:Letter.Author={};
|
||
fun ProjectManager:Letter.Position={};
|
||
cat Recipient[]=;
|
||
fun Regret:Letter.Mode={};
|
||
fun Senior:Letter.Position={};
|
||
cat Sentence[]=;
|
||
fun Spouse:Letter.Author={};
|
||
}
|
||
concrete Russian of Letter=open ResRusU in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;lincat Author={s:(ResRusU.Num=>(ResRusU.Gen=>Str));n:ResRusU.DepNum;g:ResRusU.DepGen}={s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>str@0}};n=<ResRusU.depnum>;g=<ResRusU.depgen>};"Author";
|
||
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResRusU.DepNum{(ResRusU.depnum)(ResRusU.cnum(ResRusU.sg))(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>"вы"++"были"++("назначены"++Position@0.s!<ResRusU.pl>!<ResRusU.fem>);(ResRusU.masc)=>"вы"++"были"++("назначены"++Position@0.s!<ResRusU.pl>!<ResRusU.masc>)};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)=>"ты"++"был"++("назначен"++Position@0.s!<ResRusU.sg>!<ResRusU.masc>);(ResRusU.fem)=>"ты"++"была"++("назначена"++Position@0.s!<ResRusU.sg>!<ResRusU.fem>)}}}}};"(ты был)назначен Position_0";
|
||
lin ColleagueHe:Letter.Recipient=\->{s="коллега";n=<ResRusU.sg>;g=<ResRusU.masc>};"коллега";
|
||
lin ColleagueShe:Letter.Recipient=\->{s="коллега";n=<ResRusU.sg>;g=<ResRusU.fem>};"коллега";
|
||
lin ColleaguesHe:Letter.Recipient=\->{s="коллеги";n=<ResRusU.pl>;g=<ResRusU.masc>};"коллеги";
|
||
lin ColleaguesShe:Letter.Recipient=\->{s="коллеги";n=<ResRusU.pl>;g=<ResRusU.fem>};"коллеги";
|
||
lin Company:Letter.NounPhrase=\->{s="наше"++"предприятие";n=<ResRusU.sg>;g=<ResRusU.fem>};"наше предприятие";
|
||
lin Competitor:Letter.NounPhrase=\->{s="наш"++"конкурент";n=<ResRusU.sg>;g=<ResRusU.masc>};"наш конкурент";
|
||
lin DarlingHe:Letter.Recipient=\->{s="любимый";n=<ResRusU.sg>;g=<ResRusU.masc>};"любимый";
|
||
lin DarlingShe:Letter.Recipient=\->{s="любимая";n=<ResRusU.sg>;g=<ResRusU.fem>};"любимая";
|
||
lin Dean:Letter.Author=\->{s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"декан"}};n=<ResRusU.cnum<ResRusU.sg>>;g=<ResRusU.cgen<ResRusU.masc>>};"декан";
|
||
lin DearRec:Letter.Heading=\Recipient@0->{s=table ResRusU.Num{(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>"Дорогая";(ResRusU.masc)=>"Дорогой"}!(Recipient@0.g);(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"Дорогие"}!(Recipient@0.g)}!(Recipient@0.n)++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Дорогой Recipient_0";
|
||
lincat Ending={s:(ResRusU.Num=>(ResRusU.Gen=>Str));n:ResRusU.DepNum;g:ResRusU.DepGen}={s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>str@0}};n=<ResRusU.depnum>;g=<ResRusU.depgen>};"Ending";
|
||
lin FormalEnding:Letter.Ending=\Author@0->{s=table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>"С"++("наилучшими"++("пожеланиями,"++"&-")++Author@0.s!<ResRusU.pl>!<ResRusU.fem>);(ResRusU.masc)=>"С"++("наилучшими"++("пожеланиями,"++"&-")++Author@0.s!<ResRusU.pl>!<ResRusU.masc>)};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>"С"++("наилучшими"++("пожеланиями,"++"&-")++Author@0.s!<ResRusU.sg>!<ResRusU.fem>);(ResRusU.masc)=>"С"++("наилучшими"++("пожеланиями,"++"&-")++Author@0.s!<ResRusU.sg>!<ResRusU.masc>)}};n=Author@0.n;g=Author@0.g};"С (наилучшими пожеланиями, &-)Author_0";
|
||
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResRusU.DepNum{(ResRusU.depnum)(ResRusU.cnum(ResRusU.sg))(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>NounPhrase@0.s++table ResRusU.Num{(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>"обанкротилось";(ResRusU.masc)=>"обанкротился"}!(NounPhrase@0.g);(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"обанкротились"}!(NounPhrase@0.g)}!(NounPhrase@0.n)}}}}};"NounPhrase_0 обанкротился";
|
||
lincat Heading={s:Str;n:ResRusU.Num;g:ResRusU.Gen}={s=str@0;n=<ResRusU.sg>;g=<ResRusU.masc>};"Heading";
|
||
lin HelloRec:Letter.Heading=\Recipient@0->{s=table ResRusU.Num{(ResRusU.sg)=>"Здравствуй";(ResRusU.pl)=>"Здравствуйте"}!(Recipient@0.n)++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Здравствуй Recipient_0";
|
||
lin Honour:Letter.Mode=\->{s=table ResRusU.DepNum{(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мы"++"имеем"++("честь"++("сообщить"++"вам"++(","++"что")))};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мы"++"имеем"++("честь"++("сообщить"++"тебе"++(","++"что")))}}};(ResRusU.depnum)=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мы"++"имеем"++("честь"++("сообщить"++"вам"++(","++"что")))};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++"имею"++("честь"++("сообщить"++"тебе"++(","++"что")))}}};(ResRusU.cnum(ResRusU.sg))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++"имею"++("честь"++("сообщить"++"вам"++(","++"что")))};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++"имею"++("честь"++("сообщить"++"тебе"++(","++"что")))}}}}};"(я имею)честь (сообщить тебе), что";
|
||
lin ILoveYou:Letter.Sentence=\->{s=table ResRusU.DepNum{(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мы"++("вас"++"любим")};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мы"++("тебя"++"любим")}}};(ResRusU.depnum)=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мы"++("вас"++"любим")};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("тебя"++"люблю")}}};(ResRusU.cnum(ResRusU.sg))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("вас"++"люблю")};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("тебя"++"люблю")}}}}};"я тебя люблю";
|
||
lin InformalEnding:Letter.Ending=\Author@0->{s=table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>"С"++("дружеским"++("приветом,"++"&-"))++Author@0.s!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>"С"++("дружеским"++("приветом,"++"&-"))++Author@0.s!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>"С"++("дружеским"++("приветом,"++"&-"))++Author@0.s!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>"С"++("дружеским"++("приветом,"++"&-"))++Author@0.s!<ResRusU.sg>!<ResRusU.masc>}};n=Author@0.n;g=Author@0.g};"(С дружеским приветом, &-)Author_0";
|
||
lin JustHello:Letter.Heading=\Recipient@0->{s=table ResRusU.Num{(ResRusU.sg)=>"Здравствуй";(ResRusU.pl)=>"Здравствуйте"}!(Recipient@0.n);n=Recipient@0.n;g=Recipient@0.g};"Здравствуй";
|
||
lincat Letter={s:Str}={s=str@0};"Letter";
|
||
lincat Message={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{(ResRusU.depnum)(ResRusU.cnum(ResRusU.sg))(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>str@0}}}}};"Message";
|
||
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g))))))};"Heading_0 , &- Message_1 . &- Ending_2";
|
||
lincat Mode={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{(ResRusU.depnum)(ResRusU.cnum(ResRusU.sg))(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>str@0}}}}};"Mode";
|
||
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResRusU.DepNum{(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.masc>}};(ResRusU.cgen(ResRusU.masc))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.masc>}};(ResRusU.depgen)=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.pl>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.masc>}}};(ResRusU.cnum(ResRusU.sg))=>table ResRusU.DepGen{(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.masc>}};(ResRusU.cgen(ResRusU.masc))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.masc>}};(ResRusU.depgen)=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.cnum<ResRusU.sg>>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.masc>}}};(ResRusU.depnum)=>table ResRusU.DepGen{(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.fem>>!<ResRusU.sg>!<ResRusU.masc>}};(ResRusU.cgen(ResRusU.masc))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.cgen<ResRusU.masc>>!<ResRusU.sg>!<ResRusU.masc>}};(ResRusU.depgen)=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.pl>!<ResRusU.masc>};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.fem>;(ResRusU.masc)=>Mode@0.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!<ResRusU.depgen>!<ResRusU.sg>!<ResRusU.masc>}}}}};"Mode_0 Sentence_1";
|
||
lin Mother:Letter.Author=\->{s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"мама"}};n=<ResRusU.cnum<ResRusU.sg>>;g=<ResRusU.cgen<ResRusU.fem>>};"мама";
|
||
lin Name:Letter.Author=\String@0->{s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>String@0.s}};n=<ResRusU.cnum<ResRusU.sg>>;g=<ResRusU.cgen<ResRusU.masc>>};"String_0";
|
||
lin NameHe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResRusU.sg>;g=<ResRusU.masc>};"String_0";
|
||
lin NameShe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResRusU.sg>;g=<ResRusU.fem>};"String_0";
|
||
lincat NounPhrase={s:Str;n:ResRusU.Num;g:ResRusU.Gen}={s=str@0;n=<ResRusU.sg>;g=<ResRusU.masc>};"NounPhrase";
|
||
lin OurCustomers:Letter.NounPhrase=\->{s="наши"++"клиенты";n=<ResRusU.pl>;g=<ResRusU.masc>};"наши клиенты";
|
||
lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Recipient_0";
|
||
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
|
||
lincat Position={s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>str@0}}};"Position";
|
||
lin President:Letter.Author=\->{s=table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"президент"}};n=<ResRusU.cnum<ResRusU.sg>>;g=<ResRusU.cgen<ResRusU.masc>>};"президент";
|
||
lin ProjectManager:Letter.Position=\->{s=table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"менеджерами"++"проектов"};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"менеджером"++"проекта"}}};"менеджером проекта";
|
||
lincat Recipient={s:Str;n:ResRusU.Num;g:ResRusU.Gen}={s=str@0;n=<ResRusU.sg>;g=<ResRusU.masc>};"Recipient";
|
||
lin Regret:Letter.Mode=\->{s=table ResRusU.DepNum{(ResRusU.depnum)=>table ResRusU.DepGen{(ResRusU.cgen(ResRusU.masc))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"вы"++("вынуждены"++("сообщить"++(","++"что")))};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("вынужден"++("сообщить"++(","++"что")))}};(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"вы"++("вынуждены"++("сообщить"++(","++"что")))};(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("вынуждена"++("сообщить"++(","++"что")))}};(ResRusU.depgen)=>table ResRusU.Num{(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>"я"++("вынужден"++("сообщить"++(","++"что")));(ResRusU.masc)=>"я"++("вынуждена"++("сообщить"++(","++"что")))};(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"вы"++("вынуждены"++("сообщить"++(","++"что")))}}};(ResRusU.cnum(ResRusU.sg))=>table ResRusU.DepGen{(ResRusU.depgen)=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.fem)=>"я"++("вынужден"++("сообщить"++(","++"что")));(ResRusU.masc)=>"я"++("вынуждена"++("сообщить"++(","++"что")))}};(ResRusU.cgen(ResRusU.masc))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("вынужден"++("сообщить"++(","++"что")))}};(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"я"++("вынуждена"++("сообщить"++(","++"что")))}}};(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"вы"++("вынуждены"++("сообщить"++(","++"что")))}}}}};"я вынуждена сообщить , что";
|
||
lin Senior:Letter.Position=\->{s=table ResRusU.Num{(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"старшим"++("научным"++"сотрудником")};(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>"старшими"++("научными"++"сотрудниками")}}};"старшим научным сотрудником";
|
||
lincat Sentence={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{(ResRusU.depnum)(ResRusU.cnum(ResRusU.sg))(ResRusU.cnum(ResRusU.pl))=>table ResRusU.DepGen{(ResRusU.depgen)(ResRusU.cgen(ResRusU.masc))(ResRusU.cgen(ResRusU.fem))=>table ResRusU.Num{(ResRusU.sg)(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)(ResRusU.fem)=>str@0}}}}};"Sentence";
|
||
lin Spouse:Letter.Author=\->{s=table ResRusU.Num{(ResRusU.sg)=>table ResRusU.Gen{(ResRusU.fem)=>"твой"++"муж";(ResRusU.masc)=>"твоя"++"жена"};(ResRusU.pl)=>table ResRusU.Gen{(ResRusU.masc)=>"ваши"++"жены";(ResRusU.fem)=>"ваши"++"мужья"}};n=<ResRusU.depnum>;g=<ResRusU.depgen>};"твоя жена";
|
||
}
|
||
resource ResRusU={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResRusU.Gen;
|
||
param DepNum=depnum|cnum ResRusU.Num;
|
||
param Gen=masc|fem;
|
||
param Kas=nom|acc;
|
||
param Num=sg|pl;
|
||
}
|
||
concrete Finnish of Letter=open ResFin in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;lincat Author={s:(ResFin.Num=>(ResFin.Gen=>Str));n:ResFin.DepNum;g:ResFin.DepGen}={s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>str@0}};n=<ResFin.depnum>;g=<ResFin.depgen>};"Author";
|
||
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResFin.DepNum{(ResFin.depnum)(ResFin.cnum(ResFin.sg))(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>"sinut"++"on"++("ylennetty"++Position@0.s!<ResFin.sg>!<ResFin.fem>);(ResFin.masc)=>"sinut"++"on"++("ylennetty"++Position@0.s!<ResFin.sg>!<ResFin.masc>)};(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>"teidät"++"on"++("ylennetty"++Position@0.s!<ResFin.pl>!<ResFin.fem>);(ResFin.masc)=>"teidät"++"on"++("ylennetty"++Position@0.s!<ResFin.pl>!<ResFin.masc>)}}}}};"(sinut on)ylennetty Position_0";
|
||
lin ColleagueHe:Letter.Recipient=\->{s="kollega";n=<ResFin.sg>;g=<ResFin.masc>};"kollega";
|
||
lin ColleagueShe:Letter.Recipient=\->{s="kollega";n=<ResFin.sg>;g=<ResFin.fem>};"kollega";
|
||
lin ColleaguesHe:Letter.Recipient=\->{s="kollegat";n=<ResFin.pl>;g=<ResFin.masc>};"kollegat";
|
||
lin ColleaguesShe:Letter.Recipient=\->{s="kollegat";n=<ResFin.pl>;g=<ResFin.fem>};"kollegat";
|
||
lin Company:Letter.NounPhrase=\->{s="yrityksemme";n=<ResFin.sg>;g=<ResFin.fem>};"yrityksemme";
|
||
lin Competitor:Letter.NounPhrase=\->{s="pahin"++"kilpailijamme";n=<ResFin.sg>;g=<ResFin.masc>};"pahin kilpailijamme";
|
||
lin DarlingHe:Letter.Recipient=\->{s="kulta";n=<ResFin.sg>;g=<ResFin.masc>};"kulta";
|
||
lin DarlingShe:Letter.Recipient=\->{s="kulta";n=<ResFin.sg>;g=<ResFin.fem>};"kulta";
|
||
lin Dean:Letter.Author=\->{s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"dekaani"}};n=<ResFin.cnum<ResFin.sg>>;g=<ResFin.cgen<ResFin.masc>>};"dekaani";
|
||
lin DearRec:Letter.Heading=\Recipient@0->{s=table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakas"}!(Recipient@0.g);(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakkaat"}!(Recipient@0.g)}!(Recipient@0.n)++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"rakas Recipient_0";
|
||
lincat Ending={s:(ResFin.Num=>(ResFin.Gen=>Str));n:ResFin.DepNum;g:ResFin.DepGen}={s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>str@0}};n=<ResFin.depnum>;g=<ResFin.depgen>};"Ending";
|
||
lin FormalEnding:Letter.Ending=\Author@0->{s=table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>"parhain"++("terveisin"++"&-")++Author@0.s!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>"parhain"++("terveisin"++"&-")++Author@0.s!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>"parhain"++("terveisin"++"&-")++Author@0.s!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>"parhain"++("terveisin"++"&-")++Author@0.s!<ResFin.sg>!<ResFin.masc>}};n=Author@0.n;g=Author@0.g};"(parhain terveisin &-)Author_0";
|
||
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResFin.DepNum{(ResFin.depnum)(ResFin.cnum(ResFin.sg))(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>NounPhrase@0.s++(table ResFin.Num{(ResFin.sg)=>"on";(ResFin.pl)=>"ovat"}!(NounPhrase@0.n)++(table ResFin.Num{(ResFin.pl)=>"menneet";(ResFin.sg)=>"mennyt"}!(NounPhrase@0.n)++"konkurssiin"))}}}}};"NounPhrase_0 on mennyt konkurssiin";
|
||
lincat Heading={s:Str;n:ResFin.Num;g:ResFin.Gen}={s=str@0;n=<ResFin.sg>;g=<ResFin.masc>};"Heading";
|
||
lin HelloRec:Letter.Heading=\Recipient@0->{s="Terve"++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Terve Recipient_0";
|
||
lin Honour:Letter.Mode=\->{s=table ResFin.DepNum{(ResFin.depnum)=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"meillä"++"on"++("kunnia"++("ilmoittaa"++"teille"++"että"))};(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"että"))}}};(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"meillä"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"että"))};(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"meillä"++"on"++("kunnia"++("ilmoittaa"++"teille"++"että"))}}};(ResFin.cnum(ResFin.sg))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"että"))};(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"teille"++"että"))}}}}};"(minulla on)kunnia (ilmoittaa sinulle)ett<74>";
|
||
lin ILoveYou:Letter.Sentence=\->{s=table ResFin.DepNum{(ResFin.depnum)=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakastamme"++"teitä"};(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakastan"++"sinua"}}};(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakastamme"++"sinua"};(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakastamme"++"teitä"}}};(ResFin.cnum(ResFin.sg))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakastan"++"sinua"};(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"rakastan"++"teitä"}}}}};"rakastan sinua";
|
||
lin InformalEnding:Letter.Ending=\Author@0->{s=table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>"terveisin"++"&-"++Author@0.s!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>"terveisin"++"&-"++Author@0.s!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>"terveisin"++"&-"++Author@0.s!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>"terveisin"++"&-"++Author@0.s!<ResFin.sg>!<ResFin.masc>}};n=Author@0.n;g=Author@0.g};"(terveisin &-)Author_0";
|
||
lin JustHello:Letter.Heading=\Recipient@0->{s="Terve";n=Recipient@0.n;g=Recipient@0.g};"Terve";
|
||
lincat Letter={s:Str}={s=str@0};"Letter";
|
||
lincat Message={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{(ResFin.depnum)(ResFin.cnum(ResFin.sg))(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>str@0}}}}};"Message";
|
||
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g))))))};"Heading_0 , &- Message_1 . &- Ending_2";
|
||
lincat Mode={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{(ResFin.depnum)(ResFin.cnum(ResFin.sg))(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>str@0}}}}};"Mode";
|
||
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResFin.DepNum{(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.masc>}};(ResFin.cgen(ResFin.masc))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.masc>}};(ResFin.depgen)=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.pl>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.masc>}}};(ResFin.cnum(ResFin.sg))=>table ResFin.DepGen{(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.masc>}};(ResFin.cgen(ResFin.masc))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.masc>}};(ResFin.depgen)=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.cnum<ResFin.sg>>!<ResFin.depgen>!<ResFin.sg>!<ResFin.masc>}}};(ResFin.depnum)=>table ResFin.DepGen{(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.fem>>!<ResFin.sg>!<ResFin.masc>}};(ResFin.cgen(ResFin.masc))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!<ResFin.cgen<ResFin.masc>>!<ResFin.sg>!<ResFin.masc>}};(ResFin.depgen)=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.pl>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.pl>!<ResFin.masc>};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>Mode@0.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.sg>!<ResFin.fem>;(ResFin.masc)=>Mode@0.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!<ResFin.depgen>!<ResFin.sg>!<ResFin.masc>}}}}};"Mode_0 Sentence_1";
|
||
lin Mother:Letter.Author=\->{s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"äiti"}};n=<ResFin.cnum<ResFin.sg>>;g=<ResFin.cgen<ResFin.fem>>};"<22>iti";
|
||
lin Name:Letter.Author=\String@0->{s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>String@0.s}};n=<ResFin.cnum<ResFin.sg>>;g=<ResFin.cgen<ResFin.masc>>};"String_0";
|
||
lin NameHe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResFin.sg>;g=<ResFin.masc>};"String_0";
|
||
lin NameShe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResFin.sg>;g=<ResFin.fem>};"String_0";
|
||
lincat NounPhrase={s:Str;n:ResFin.Num;g:ResFin.Gen}={s=str@0;n=<ResFin.sg>;g=<ResFin.masc>};"NounPhrase";
|
||
lin OurCustomers:Letter.NounPhrase=\->{s="asiakkaamme";n=<ResFin.pl>;g=<ResFin.masc>};"asiakkaamme";
|
||
lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Recipient_0";
|
||
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
|
||
lincat Position={s:(ResFin.Num=>(ResFin.Gen=>Str))}={s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>str@0}}};"Position";
|
||
lin President:Letter.Author=\->{s=table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"presidentti"}};n=<ResFin.cnum<ResFin.sg>>;g=<ResFin.cgen<ResFin.masc>>};"presidentti";
|
||
lin ProjectManager:Letter.Position=\->{s=table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"projektipäälliköiksi"};(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"projektipäälliköksi"}}};"projektip<69><70>llik<69>ksi";
|
||
lincat Recipient={s:Str;n:ResFin.Num;g:ResFin.Gen}={s=str@0;n=<ResFin.sg>;g=<ResFin.masc>};"Recipient";
|
||
lin Regret:Letter.Mode=\->{s=table ResFin.DepNum{(ResFin.depnum)=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"meidän"++("on"++("valitettavasti"++"ilmoitettava")++"että")};(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"minun"++("on"++("valitettavasti"++"ilmoitettava")++"että")}}};(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"meidän"++("on"++("valitettavasti"++"ilmoitettava")++"että")}}};(ResFin.cnum(ResFin.sg))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"minun"++("on"++("valitettavasti"++"ilmoitettava")++"että")}}}}};"minun (on valitettavasti ilmoitettava)ett<74>";
|
||
lin Senior:Letter.Position=\->{s=table ResFin.Num{(ResFin.sg)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"vanhemmaksi"++"tutkijaksi"};(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>"vanhemmiksi"++"tutkijoiksi"}}};"vanhemmaksi tutkijaksi";
|
||
lincat Sentence={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{(ResFin.depnum)(ResFin.cnum(ResFin.sg))(ResFin.cnum(ResFin.pl))=>table ResFin.DepGen{(ResFin.depgen)(ResFin.cgen(ResFin.masc))(ResFin.cgen(ResFin.fem))=>table ResFin.Num{(ResFin.sg)(ResFin.pl)=>table ResFin.Gen{(ResFin.masc)(ResFin.fem)=>str@0}}}}};"Sentence";
|
||
lin Spouse:Letter.Author=\->{s=table ResFin.Num{(ResFin.pl)=>table ResFin.Gen{(ResFin.fem)=>"miehenne";(ResFin.masc)=>"vaimonne"};(ResFin.sg)=>table ResFin.Gen{(ResFin.fem)=>"miehesi";(ResFin.masc)=>"vaimosi"}};n=<ResFin.depnum>;g=<ResFin.depgen>};"vaimosi";
|
||
}
|
||
resource ResFin={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResFin.Gen;
|
||
param DepNum=depnum|cnum ResFin.Num;
|
||
param Gen=masc|fem;
|
||
param Kas=nom|acc;
|
||
param Num=sg|pl;
|
||
}
|
||
concrete Swedish of Letter=open ResSve in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;lincat Author={s:(ResSve.Num=>(ResSve.Sex=>Str));n:ResSve.DepNum;x:ResSve.Sex}={s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>str@0}};n=<ResSve.depnum>;x=<ResSve.masc>};"Author";
|
||
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResSve.DepNum{(ResSve.depnum)(ResSve.cnum(ResSve.sg))(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>"du"++("har"++"blivit"++("befordrad"++("till"++Position@0.s!<ResSve.sg>!<ResSve.fem>)));(ResSve.masc)=>"du"++("har"++"blivit"++("befordrad"++("till"++Position@0.s!<ResSve.sg>!<ResSve.masc>)))};(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>"ni"++("har"++"blivit"++("befordrade"++("till"++Position@0.s!<ResSve.pl>!<ResSve.fem>)));(ResSve.masc)=>"ni"++("har"++"blivit"++("befordrade"++("till"++Position@0.s!<ResSve.pl>!<ResSve.masc>)))}}}}};"du (har blivit)befordrad till Position_0";
|
||
lin ColleagueHe:Letter.Recipient=\->{s="kollega";n=<ResSve.sg>;x=<ResSve.masc>};"kollega";
|
||
lin ColleagueShe:Letter.Recipient=\->{s="kollega";n=<ResSve.sg>;x=<ResSve.fem>};"kollega";
|
||
lin ColleaguesHe:Letter.Recipient=\->{s="kollegor";n=<ResSve.pl>;x=<ResSve.masc>};"kollegor";
|
||
lin ColleaguesShe:Letter.Recipient=\->{s="kollegor";n=<ResSve.pl>;x=<ResSve.fem>};"kollegor";
|
||
lin Company:Letter.NounPhrase=\->{s="vårt"++"företag";n=<ResSve.sg>;g=<ResSve.ett>};"v<>rt f<>retag";
|
||
lin Competitor:Letter.NounPhrase=\->{s="vår"++("värsta"++"konkurrent");n=<ResSve.sg>;g=<ResSve.en>};"v<>r v<>rsta konkurrent";
|
||
lin DarlingHe:Letter.Recipient=\->{s="älskling";n=<ResSve.sg>;x=<ResSve.masc>};"<22>lskling";
|
||
lin DarlingShe:Letter.Recipient=\->{s="älskling";n=<ResSve.sg>;x=<ResSve.fem>};"<22>lskling";
|
||
lin Dean:Letter.Author=\->{s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"Dekanus"}};n=<ResSve.cnum<ResSve.sg>>;x=<ResSve.masc>};"Dekanus";
|
||
lin DearRec:Letter.Heading=\Recipient@0->{s=table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>"Kära";(ResSve.masc)=>"Käre"}!(Recipient@0.x);(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"Kära"}!(Recipient@0.x)}!(Recipient@0.n)++Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"K<>re Recipient_0";
|
||
lincat Ending={s:(ResSve.Num=>(ResSve.Sex=>Str));n:ResSve.DepNum;x:ResSve.Sex}={s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>str@0}};n=<ResSve.depnum>;x=<ResSve.masc>};"Ending";
|
||
lin FormalEnding:Letter.Ending=\Author@0->{s=table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>"Med"++("vänlig"++("hälsning"++"&-"))++Author@0.s!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>"Med"++("vänlig"++("hälsning"++"&-"))++Author@0.s!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>"Med"++("vänlig"++("hälsning"++"&-"))++Author@0.s!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>"Med"++("vänlig"++("hälsning"++"&-"))++Author@0.s!<ResSve.sg>!<ResSve.masc>}};n=Author@0.n;x=Author@0.x};"(Med v<>nlig h<>lsning &-)Author_0";
|
||
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResSve.DepNum{(ResSve.depnum)(ResSve.cnum(ResSve.sg))(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>NounPhrase@0.s++("har"++("gått"++("i"++"konkurs")))}}}}};"NounPhrase_0 har g<>tt i konkurs";
|
||
lincat Heading={s:Str;n:ResSve.Num;x:ResSve.Sex}={s=str@0;n=<ResSve.sg>;x=<ResSve.masc>};"Heading";
|
||
lin HelloRec:Letter.Heading=\Recipient@0->{s="Hej"++Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"Hej Recipient_0";
|
||
lin Honour:Letter.Mode=\->{s=table ResSve.DepNum{(ResSve.cnum(ResSve.sg))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("har"++("äran"++("att"++"meddela"))++("dig"++"att"))};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("har"++("äran"++("att"++"meddela"))++("er"++"att"))}}};(ResSve.depnum)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("har"++("äran"++("att"++"meddela"))++("dig"++"att"))};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("har"++("äran"++("att"++"meddela"))++("er"++"att"))}}};(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("har"++("äran"++("att"++"meddela"))++("dig"++"att"))};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("har"++("äran"++("att"++"meddela"))++("er"++"att"))}}}}};"jag (har <20>ran att meddela)dig att";
|
||
lin ILoveYou:Letter.Sentence=\->{s=table ResSve.DepNum{(ResSve.cnum(ResSve.sg))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("älskar"++"dig")};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("älskar"++"er")}}};(ResSve.depnum)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("älskar"++"dig")};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("älskar"++"er")}}};(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("älskar"++"dig")};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("älskar"++"er")}}}}};"jag <20>lskar dig";
|
||
lin InformalEnding:Letter.Ending=\Author@0->{s=table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>"Med"++("hälsningar"++"&-")++Author@0.s!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>"Med"++("hälsningar"++"&-")++Author@0.s!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>"Med"++("hälsningar"++"&-")++Author@0.s!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>"Med"++("hälsningar"++"&-")++Author@0.s!<ResSve.sg>!<ResSve.masc>}};n=Author@0.n;x=Author@0.x};"(Med h<>lsningar &-)Author_0";
|
||
lin JustHello:Letter.Heading=\Recipient@0->{s="Hej";n=Recipient@0.n;x=Recipient@0.x};"Hej";
|
||
lincat Letter={s:Str}={s=str@0};"Brev";
|
||
lincat Message={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{(ResSve.depnum)(ResSve.cnum(ResSve.sg))(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>str@0}}}}};"Message";
|
||
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.x)!(Heading@0.n)!(Heading@0.x)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.x))))))};"brevmall";
|
||
lincat Mode={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{(ResSve.depnum)(ResSve.cnum(ResSve.sg))(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>str@0}}}}};"Mode";
|
||
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResSve.DepNum{(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.fem)=>table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>}};(ResSve.masc)=>table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.pl>>!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>}}};(ResSve.cnum(ResSve.sg))=>table ResSve.Sex{(ResSve.fem)=>table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>}};(ResSve.masc)=>table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!<ResSve.cnum<ResSve.sg>>!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>}}};(ResSve.depnum)=>table ResSve.Sex{(ResSve.fem)=>table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>}};(ResSve.masc)=>table ResSve.Num{(ResSve.pl)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>};(ResSve.sg)=>table ResSve.Sex{(ResSve.fem)=>Mode@0.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>;(ResSve.masc)=>Mode@0.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>}}}}};"Mode_0 Sentence_1";
|
||
lin Mother:Letter.Author=\->{s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"Mamma"}};n=<ResSve.cnum<ResSve.sg>>;x=<ResSve.fem>};"Mamma";
|
||
lin Name:Letter.Author=\String@0->{s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>String@0.s}};n=<ResSve.cnum<ResSve.sg>>;x=<ResSve.masc>};"String_0";
|
||
lin NameHe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResSve.sg>;x=<ResSve.masc>};"String_0";
|
||
lin NameShe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResSve.sg>;x=<ResSve.fem>};"String_0";
|
||
lincat NounPhrase={s:Str;n:ResSve.Num;g:ResSve.Gen}={s=str@0;n=<ResSve.sg>;g=<ResSve.en>};"NounPhrase";
|
||
lin OurCustomers:Letter.NounPhrase=\->{s="våra"++"kunder";n=<ResSve.pl>;g=<ResSve.en>};"v<>ra kunder";
|
||
lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"Recipient_0";
|
||
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
|
||
lincat Position={s:(ResSve.Num=>(ResSve.Sex=>Str))}={s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>str@0}}};"Position";
|
||
lin President:Letter.Author=\->{s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"Presidenten"}};n=<ResSve.cnum<ResSve.sg>>;x=<ResSve.masc>};"Presidenten";
|
||
lin ProjectManager:Letter.Position=\->{s=table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"projektchef"};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"projektchefer"}}};"projektchef";
|
||
lincat Recipient={s:Str;n:ResSve.Num;x:ResSve.Sex}={s=str@0;n=<ResSve.sg>;x=<ResSve.masc>};"Recipient";
|
||
lin Regret:Letter.Mode=\->{s=table ResSve.DepNum{(ResSve.cnum(ResSve.sg))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("måste"++("tyvärr"++"meddela")++("dig"++"att"))};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("måste"++("tyvärr"++"meddela")++("er"++"att"))}}};(ResSve.depnum)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"jag"++("måste"++("tyvärr"++"meddela")++("dig"++"att"))};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("måste"++("tyvärr"++"meddela")++("er"++"att"))}}};(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("måste"++("tyvärr"++"meddela")++("dig"++"att"))};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"vi"++("måste"++("tyvärr"++"meddela")++("er"++"att"))}}}}};"jag (m<>ste tyv<79>rr meddela)dig att";
|
||
lin Senior:Letter.Position=\->{s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"äldre"++"forskare"}}};"<22>ldre forskare";
|
||
lincat Sentence={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{(ResSve.depnum)(ResSve.cnum(ResSve.sg))(ResSve.cnum(ResSve.pl))=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>str@0}}}}};"Sentence";
|
||
lin Spouse:Letter.Author=\->{s=table ResSve.Num{(ResSve.sg)=>table ResSve.Sex{(ResSve.masc)=>"din"++"hustru";(ResSve.fem)=>"din"++"man"};(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)=>"era"++"hustrur";(ResSve.fem)=>"era"++"män"}};n=<ResSve.depnum>;x=<ResSve.masc>};"din hustru";
|
||
}
|
||
resource ResSve={flags coding=utf8;flags modulesize=n5;param DepNum=depnum|cnum ResSve.Num;
|
||
param Gen=en|ett;
|
||
param Kas=nom|acc;
|
||
param Num=sg|pl;
|
||
param Sex=masc|fem;
|
||
}
|
||
concrete French of Letter=open ResFra in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;lincat Author={s:(ResFra.Num=>(ResFra.Gen=>Str));n:ResFra.DepNum;g:ResFra.DepGen}={s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>str@0}};n=<ResFra.depnum>;g=<ResFra.depgen>};"Author";
|
||
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.sg))(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>"vous"++("avez"++"été")++("promues"++Position@0.s!<ResFra.pl>!<ResFra.fem>);(ResFra.masc)=>"vous"++("avez"++"été")++("promus"++Position@0.s!<ResFra.pl>!<ResFra.masc>)};(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)=>"tu"++("as"++"été")++("promu"++Position@0.s!<ResFra.sg>!<ResFra.masc>);(ResFra.fem)=>"tu"++("as"++"été")++("promue"++Position@0.s!<ResFra.sg>!<ResFra.fem>)}}}}};"(tu as <20>t<EFBFBD>)promu Position_0";
|
||
lin ColleagueHe:Letter.Recipient=\->{s="collègue";n=<ResFra.sg>;g=<ResFra.masc>};"coll<6C>gue";
|
||
lin ColleagueShe:Letter.Recipient=\->{s="collègue";n=<ResFra.sg>;g=<ResFra.fem>};"coll<6C>gue";
|
||
lin ColleaguesHe:Letter.Recipient=\->{s="collègues";n=<ResFra.pl>;g=<ResFra.masc>};"coll<6C>gues";
|
||
lin ColleaguesShe:Letter.Recipient=\->{s="collègues";n=<ResFra.pl>;g=<ResFra.fem>};"coll<6C>gues";
|
||
lin Company:Letter.NounPhrase=\->{s="notre"++"entreprise";n=<ResFra.sg>;g=<ResFra.fem>};"notre entreprise";
|
||
lin Competitor:Letter.NounPhrase=\->{s="notre"++("pire"++"compétiteur");n=<ResFra.sg>;g=<ResFra.masc>};"notre pire comp<6D>titeur";
|
||
lin DarlingHe:Letter.Recipient=\->{s="chéri";n=<ResFra.sg>;g=<ResFra.masc>};"ch<63>ri";
|
||
lin DarlingShe:Letter.Recipient=\->{s="chérie";n=<ResFra.sg>;g=<ResFra.fem>};"ch<63>rie";
|
||
lin Dean:Letter.Author=\->{s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"le"++"doyen"}};n=<ResFra.cnum<ResFra.sg>>;g=<ResFra.cgen<ResFra.masc>>};"le doyen";
|
||
lin DearRec:Letter.Heading=\Recipient@0->{s=table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)=>"cher";(ResFra.fem)=>"chère"}!(Recipient@0.g);(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)=>"chers";(ResFra.fem)=>"chères"}!(Recipient@0.g)}!(Recipient@0.n)++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"cher Recipient_0";
|
||
lincat Ending={s:(ResFra.Num=>(ResFra.Gen=>Str));n:ResFra.DepNum;g:ResFra.DepGen}={s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>str@0}};n=<ResFra.depnum>;g=<ResFra.depgen>};"Ending";
|
||
lin FormalEnding:Letter.Ending=\Author@0->{s=table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>"avec"++(table ResFra.Num{(ResFra.sg)=>"mes";(ResFra.pl)=>"nos"}!(table ResFra.DepNum{(ResFra.cnum(ResFra.pl))=><ResFra.pl>;(ResFra.depnum)(ResFra.cnum(ResFra.sg))=><ResFra.sg>}!(Author@0.n))++("salutations"++("distinguées"++"&-")++Author@0.s!<ResFra.sg>!<ResFra.fem>));(ResFra.masc)=>"avec"++(table ResFra.Num{(ResFra.sg)=>"mes";(ResFra.pl)=>"nos"}!(table ResFra.DepNum{(ResFra.cnum(ResFra.pl))=><ResFra.pl>;(ResFra.depnum)(ResFra.cnum(ResFra.sg))=><ResFra.sg>}!(Author@0.n))++("salutations"++("distinguées"++"&-")++Author@0.s!<ResFra.sg>!<ResFra.masc>))};(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>"avec"++(table ResFra.Num{(ResFra.sg)=>"mes";(ResFra.pl)=>"nos"}!(table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.pl))=><ResFra.pl>;(ResFra.cnum(ResFra.sg))=><ResFra.sg>}!(Author@0.n))++("salutations"++("distinguées"++"&-")++Author@0.s!<ResFra.pl>!<ResFra.fem>));(ResFra.masc)=>"avec"++(table ResFra.Num{(ResFra.sg)=>"mes";(ResFra.pl)=>"nos"}!(table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.pl))=><ResFra.pl>;(ResFra.cnum(ResFra.sg))=><ResFra.sg>}!(Author@0.n))++("salutations"++("distinguées"++"&-")++Author@0.s!<ResFra.pl>!<ResFra.masc>))}};n=Author@0.n;g=Author@0.g};"avec mes (salutations distingu<67>es &-)Author_0";
|
||
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.sg))(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>NounPhrase@0.s++(table ResFra.Num{(ResFra.sg)=>"a";(ResFra.pl)=>"ont"}!(NounPhrase@0.n)++("fait"++"banqueroute"))}}}}};"NounPhrase_0 a fait banqueroute";
|
||
lincat Heading={s:Str;n:ResFra.Num;g:ResFra.Gen}={s=str@0;n=<ResFra.sg>;g=<ResFra.masc>};"Heading";
|
||
lin HelloRec:Letter.Heading=\Recipient@0->{s="Bonjour"++Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Bonjour Recipient_0";
|
||
lin Honour:Letter.Mode=\->{s=table ResFra.DepNum{(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"avons"++("l'honneur"++"de"++("vous"++"informer"++"que"))};(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"avons"++("l'honneur"++"de"++("t'informer"++"que"))}}};(ResFra.depnum)=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"avons"++("l'honneur"++"de"++("vous"++"informer"++"que"))};(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"j'ai"++("l'honneur"++"de"++("t'informer"++"que"))}}};(ResFra.cnum(ResFra.sg))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"j'ai"++("l'honneur"++"de"++("vous"++"informer"++"que"))};(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"j'ai"++("l'honneur"++"de"++("t'informer"++"que"))}}}}};"j'ai (l'honneur de)t'informer que";
|
||
lin ILoveYou:Letter.Sentence=\->{s=table ResFra.DepNum{(ResFra.cnum(ResFra.sg))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++("vous"++"aime")};(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++"t'aime"}}};(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++("vous"++"aimons")};(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"t'aimons"}}};(ResFra.depnum)=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++"t'aime"};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++("vous"++"aimons")}}}}};"je t'aime";
|
||
lin InformalEnding:Letter.Ending=\Author@0->{s=table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>"Amicalement"++"&-"++Author@0.s!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>"Amicalement"++"&-"++Author@0.s!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>"Amicalement"++"&-"++Author@0.s!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>"Amicalement"++"&-"++Author@0.s!<ResFra.sg>!<ResFra.masc>}};n=Author@0.n;g=Author@0.g};"(Amicalement &-)Author_0";
|
||
lin JustHello:Letter.Heading=\Recipient@0->{s="Bonjour";n=Recipient@0.n;g=Recipient@0.g};"Bonjour";
|
||
lincat Letter={s:Str}={s=str@0};"Letter";
|
||
lincat Message={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.sg))(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>str@0}}}}};"Message";
|
||
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g))))))};"Heading_0 , &- Message_1 . &- Ending_2";
|
||
lincat Mode={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.sg))(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>str@0}}}}};"Mode";
|
||
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResFra.DepNum{(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.masc>}};(ResFra.cgen(ResFra.masc))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.masc>}};(ResFra.depgen)=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.pl>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.masc>}}};(ResFra.cnum(ResFra.sg))=>table ResFra.DepGen{(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.masc>}};(ResFra.cgen(ResFra.masc))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.masc>}};(ResFra.depgen)=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.cnum<ResFra.sg>>!<ResFra.depgen>!<ResFra.sg>!<ResFra.masc>}}};(ResFra.depnum)=>table ResFra.DepGen{(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.fem>>!<ResFra.sg>!<ResFra.masc>}};(ResFra.cgen(ResFra.masc))=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!<ResFra.cgen<ResFra.masc>>!<ResFra.sg>!<ResFra.masc>}};(ResFra.depgen)=>table ResFra.Num{(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.pl>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.pl>!<ResFra.masc>};(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>Mode@0.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.sg>!<ResFra.fem>;(ResFra.masc)=>Mode@0.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!<ResFra.depgen>!<ResFra.sg>!<ResFra.masc>}}}}};"Mode_0 Sentence_1";
|
||
lin Mother:Letter.Author=\->{s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"maman"}};n=<ResFra.cnum<ResFra.sg>>;g=<ResFra.cgen<ResFra.fem>>};"maman";
|
||
lin Name:Letter.Author=\String@0->{s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>String@0.s}};n=<ResFra.cnum<ResFra.sg>>;g=<ResFra.cgen<ResFra.masc>>};"String_0";
|
||
lin NameHe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResFra.sg>;g=<ResFra.masc>};"String_0";
|
||
lin NameShe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResFra.sg>;g=<ResFra.fem>};"String_0";
|
||
lincat NounPhrase={s:Str;n:ResFra.Num;g:ResFra.Gen}={s=str@0;n=<ResFra.sg>;g=<ResFra.masc>};"NounPhrase";
|
||
lin OurCustomers:Letter.NounPhrase=\->{s="nos"++"clients";n=<ResFra.pl>;g=<ResFra.masc>};"nos clients";
|
||
lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;g=Recipient@0.g};"Recipient_0";
|
||
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
|
||
lincat Position={s:(ResFra.Num=>(ResFra.Gen=>Str))}={s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>str@0}}};"Position";
|
||
lin President:Letter.Author=\->{s=table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"le"++"président"}};n=<ResFra.cnum<ResFra.sg>>;g=<ResFra.cgen<ResFra.masc>>};"le pr<70>sident";
|
||
lin ProjectManager:Letter.Position=\->{s=table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"chef"++("de"++"projet")};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"chefs"++("de"++"projets")}}};"chef de projet";
|
||
lincat Recipient={s:Str;n:ResFra.Num;g:ResFra.Gen}={s=str@0;n=<ResFra.sg>;g=<ResFra.masc>};"Recipient";
|
||
lin Regret:Letter.Mode=\->{s=table ResFra.DepNum{(ResFra.depnum)=>table ResFra.DepGen{(ResFra.depgen)=>table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.fem)=>"je"++"suis"++("désolé"++("d'informer"++"que"));(ResFra.masc)=>"je"++"suis"++("désolée"++("d'informer"++"que"))};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)=>"nous"++"sommes"++("désolées"++("d'informer"++"que"));(ResFra.fem)=>"nous"++"sommes"++("désolés"++("d'informer"++"que"))}};(ResFra.cgen(ResFra.masc))=>table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++"suis"++("désolé"++("d'informer"++"que"))};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"sommes"++("désolés"++("d'informer"++"que"))}};(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++"suis"++("désolée"++("d'informer"++"que"))};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"sommes"++("désolées"++("d'informer"++"que"))}}};(ResFra.cnum(ResFra.sg))=>table ResFra.DepGen{(ResFra.depgen)=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.fem)=>"je"++"suis"++("désolé"++("d'informer"++"que"));(ResFra.masc)=>"je"++"suis"++("désolée"++("d'informer"++"que"))}};(ResFra.cgen(ResFra.masc))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++"suis"++("désolé"++("d'informer"++"que"))}};(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"je"++"suis"++("désolée"++("d'informer"++"que"))}}};(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)=>"nous"++"sommes"++("désolées"++("d'informer"++"que"));(ResFra.fem)=>"nous"++"sommes"++("désolés"++("d'informer"++"que"))}};(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"sommes"++("désolées"++("d'informer"++"que"))}};(ResFra.cgen(ResFra.masc))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"nous"++"sommes"++("désolés"++("d'informer"++"que"))}}}}};"(je suis)d<>sol<6F>e d'informer que";
|
||
lin Senior:Letter.Position=\->{s=table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"responsable"++"scientifique"};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>"responsables"++"scientifiques"}}};"responsable scientifique";
|
||
lincat Sentence={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{(ResFra.depnum)(ResFra.cnum(ResFra.sg))(ResFra.cnum(ResFra.pl))=>table ResFra.DepGen{(ResFra.depgen)(ResFra.cgen(ResFra.masc))(ResFra.cgen(ResFra.fem))=>table ResFra.Num{(ResFra.sg)(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)(ResFra.fem)=>str@0}}}}};"Sentence";
|
||
lin Spouse:Letter.Author=\->{s=table ResFra.Num{(ResFra.sg)=>table ResFra.Gen{(ResFra.masc)=>"ta"++"femme";(ResFra.fem)=>"ton"++"mari"};(ResFra.pl)=>table ResFra.Gen{(ResFra.masc)=>"vos"++"femmes";(ResFra.fem)=>"vos"++"maris"}};n=<ResFra.depnum>;g=<ResFra.depgen>};"ta femme";
|
||
}
|
||
resource ResFra={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResFra.Gen;
|
||
param DepNum=depnum|cnum ResFra.Num;
|
||
param Gen=masc|fem;
|
||
param Kas=nom|acc;
|
||
param Num=sg|pl;
|
||
}
|
||
concrete English of Letter=open ResEng in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;lincat Author={s:(ResEng.Num=>(ResEng.Sex=>Str));n:ResEng.DepNum;x:ResEng.Sex}={s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>str@0}};n=<ResEng.depnum>;x=<ResEng.masc>};"Author";
|
||
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResEng.DepNum{(ResEng.depnum)(ResEng.cnum(ResEng.sg))(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>"you"++("have"++("been"++("promoted"++"to")))++Position@0.s!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>"you"++("have"++("been"++("promoted"++"to")))++Position@0.s!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>"you"++("have"++("been"++("promoted"++"to")))++Position@0.s!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>"you"++("have"++("been"++("promoted"++"to")))++Position@0.s!<ResEng.sg>!<ResEng.masc>}}}}};"(you have been promoted to)Position_0";
|
||
lin ColleagueHe:Letter.Recipient=\->{s="colleague";n=<ResEng.sg>;x=<ResEng.masc>};"colleague";
|
||
lin ColleagueShe:Letter.Recipient=\->{s="colleague";n=<ResEng.sg>;x=<ResEng.fem>};"colleague";
|
||
lin ColleaguesHe:Letter.Recipient=\->{s="colleagues";n=<ResEng.pl>;x=<ResEng.masc>};"colleagues";
|
||
lin ColleaguesShe:Letter.Recipient=\->{s="colleagues";n=<ResEng.pl>;x=<ResEng.fem>};"colleagues";
|
||
lin Company:Letter.NounPhrase=\->{s="our"++"company";n=<ResEng.sg>};"our company";
|
||
lin Competitor:Letter.NounPhrase=\->{s="our"++("worst"++"competitor");n=<ResEng.sg>};"our worst competitor";
|
||
lin DarlingHe:Letter.Recipient=\->{s="darling";n=<ResEng.sg>;x=<ResEng.masc>};"darling";
|
||
lin DarlingShe:Letter.Recipient=\->{s="darling";n=<ResEng.sg>;x=<ResEng.fem>};"darling";
|
||
lin Dean:Letter.Author=\->{s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"the"++"Dean"}};n=<ResEng.cnum<ResEng.sg>>;x=<ResEng.masc>};"the Dean";
|
||
lin DearRec:Letter.Heading=\Recipient@0->{s="Dear"++Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"Dear Recipient_0";
|
||
lincat Ending={s:(ResEng.Num=>(ResEng.Sex=>Str));n:ResEng.DepNum;x:ResEng.Sex}={s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>str@0}};n=<ResEng.depnum>;x=<ResEng.masc>};"Ending";
|
||
lin FormalEnding:Letter.Ending=\Author@0->{s=table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>"Sincerely"++("yours"++"&-")++Author@0.s!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>"Sincerely"++("yours"++"&-")++Author@0.s!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>"Sincerely"++("yours"++"&-")++Author@0.s!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>"Sincerely"++("yours"++"&-")++Author@0.s!<ResEng.sg>!<ResEng.masc>}};n=Author@0.n;x=Author@0.x};"(Sincerely yours &-)Author_0";
|
||
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResEng.DepNum{(ResEng.depnum)(ResEng.cnum(ResEng.sg))(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>NounPhrase@0.s++(table ResEng.Num{(ResEng.sg)=>"has";(ResEng.pl)=>"have"}!(NounPhrase@0.n)++("gone"++"bankrupt"))}}}}};"NounPhrase_0 has gone bankrupt";
|
||
lincat Heading={s:Str;n:ResEng.Num;x:ResEng.Sex}={s=str@0;n=<ResEng.sg>;x=<ResEng.masc>};"Heading";
|
||
lin HelloRec:Letter.Heading=\Recipient@0->{s="Hello"++Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"Hello Recipient_0";
|
||
lin Honour:Letter.Mode=\->{s=table ResEng.DepNum{(ResEng.depnum)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"I"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))};(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"we"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))}}};(ResEng.cnum(ResEng.sg))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"I"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))}}};(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"we"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))}}}}};"I have the honour to inform you that";
|
||
lin ILoveYou:Letter.Sentence=\->{s=table ResEng.DepNum{(ResEng.depnum)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"I"++("love"++"you")};(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"we"++("love"++"you")}}};(ResEng.cnum(ResEng.sg))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"I"++("love"++"you")}}};(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"we"++("love"++"you")}}}}};"I love you";
|
||
lin InformalEnding:Letter.Ending=\Author@0->{s=table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>"With"++("best"++("regards"++"&-"))++Author@0.s!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>"With"++("best"++("regards"++"&-"))++Author@0.s!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>"With"++("best"++("regards"++"&-"))++Author@0.s!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>"With"++("best"++("regards"++"&-"))++Author@0.s!<ResEng.sg>!<ResEng.masc>}};n=Author@0.n;x=Author@0.x};"(With best regards &-)Author_0";
|
||
lin JustHello:Letter.Heading=\Recipient@0->{s="Hello";n=Recipient@0.n;x=Recipient@0.x};"Hello";
|
||
lincat Letter={s:Str}={s=str@0};"Letter";
|
||
lincat Message={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{(ResEng.depnum)(ResEng.cnum(ResEng.sg))(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>str@0}}}}};"Message";
|
||
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.x)!(Heading@0.n)!(Heading@0.x)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.x))))))};"Heading_0 , &- Message_1 . &- Ending_2";
|
||
lincat Mode={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{(ResEng.depnum)(ResEng.cnum(ResEng.sg))(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>str@0}}}}};"Mode";
|
||
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResEng.DepNum{(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.fem)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>}};(ResEng.masc)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.pl>>!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>}}};(ResEng.cnum(ResEng.sg))=>table ResEng.Sex{(ResEng.fem)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>}};(ResEng.masc)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!<ResEng.cnum<ResEng.sg>>!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>}}};(ResEng.depnum)=>table ResEng.Sex{(ResEng.fem)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>}};(ResEng.masc)=>table ResEng.Num{(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>};(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>Mode@0.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>;(ResEng.masc)=>Mode@0.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>}}}}};"Mode_0 Sentence_1";
|
||
lin Mother:Letter.Author=\->{s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"Mom"}};n=<ResEng.cnum<ResEng.sg>>;x=<ResEng.fem>};"Mom";
|
||
lin Name:Letter.Author=\String@0->{s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>String@0.s}};n=<ResEng.cnum<ResEng.sg>>;x=<ResEng.masc>};"String_0";
|
||
lin NameHe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResEng.sg>;x=<ResEng.masc>};"String_0";
|
||
lin NameShe:Letter.Recipient=\String@0->{s=String@0.s;n=<ResEng.sg>;x=<ResEng.fem>};"String_0";
|
||
lincat NounPhrase={s:Str;n:ResEng.Num}={s=str@0;n=<ResEng.sg>};"NounPhrase";
|
||
lin OurCustomers:Letter.NounPhrase=\->{s="our"++"customers";n=<ResEng.pl>};"our customers";
|
||
lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"Recipient_0";
|
||
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
|
||
lincat Position={s:(ResEng.Num=>(ResEng.Sex=>Str))}={s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>str@0}}};"Position";
|
||
lin President:Letter.Author=\->{s=table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"the"++"President"}};n=<ResEng.cnum<ResEng.sg>>;x=<ResEng.masc>};"the President";
|
||
lin ProjectManager:Letter.Position=\->{s=table ResEng.Num{(ResEng.sg)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"a"++("project"++"manager")};(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"project"++"managers"}}};"a project manager";
|
||
lincat Recipient={s:Str;n:ResEng.Num;x:ResEng.Sex}={s=str@0;n=<ResEng.sg>;x=<ResEng.masc>};"Recipient";
|
||
lin Regret:Letter.Mode=\->{s=table ResEng.DepNum{(ResEng.depnum)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"I"++("am"++("sorry"++("to"++("inform"++("you"++"that")))))};(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"we"++("are"++("sorry"++("to"++("inform"++("you"++"that")))))}}};(ResEng.cnum(ResEng.sg))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"I"++("am"++("sorry"++("to"++("inform"++("you"++"that")))))}}};(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"we"++("are"++("sorry"++("to"++("inform"++("you"++"that")))))}}}}};"I am sorry to inform you that";
|
||
lin Senior:Letter.Position=\->{s=table ResEng.Num{(ResEng.sg)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"a"++("senior"++"fellow")};(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>"senior"++"fellows"}}};"a senior fellow";
|
||
lincat Sentence={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{(ResEng.depnum)(ResEng.cnum(ResEng.sg))(ResEng.cnum(ResEng.pl))=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>table ResEng.Num{(ResEng.sg)(ResEng.pl)=>table ResEng.Sex{(ResEng.masc)(ResEng.fem)=>str@0}}}}};"Sentence";
|
||
lin Spouse:Letter.Author=\->{s=table ResEng.Num{(ResEng.sg)=>table ResEng.Sex{(ResEng.fem)=>"your"++"husband";(ResEng.masc)=>"your"++"wife"};(ResEng.pl)=>table ResEng.Sex{(ResEng.fem)=>"your"++"husbands";(ResEng.masc)=>"your"++"wives"}};n=<ResEng.depnum>;x=<ResEng.masc>};"your wife";
|
||
}
|
||
resource ResEng={flags coding=utf8;flags modulesize=n4;param DepNum=depnum|cnum ResEng.Num;
|
||
param Kas=nom|acc;
|
||
param Num=sg|pl;
|
||
param Sex=masc|fem;
|
||
}
|