diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-06-18 21:21:13 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-06-18 21:21:13 +0000 |
| commit | c212633be8264ce724ad2304861ee4cf0111b70b (patch) | |
| tree | a8b62c7c4f42c897d841c9c08cf2c1091cda178b /examples | |
| parent | 6b99696e860e9d12fb3102867e622bbf828cf271 (diff) | |
fixed the mysterious "file..gfc" error
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/letter/Letter.gfcm | 544 |
1 files changed, 310 insertions, 234 deletions
diff --git a/examples/letter/Letter.gfcm b/examples/letter/Letter.gfcm index da77a7585..849461cb2 100644 --- a/examples/letter/Letter.gfcm +++ b/examples/letter/Letter.gfcm @@ -1,45 +1,67 @@ -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};"שלום"; +concrete Hebrew of Letter=open ResHebU in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''114:Str=table ResHebU.Gen[("אןי"++("מצטערת"++("להודיע"++("לך"++"ש"))))("אןי"++("מצטער"++("להודיע"++("לך"++"ש"))))]; +oper A''115:Str=table ResHebU.Gen[("אןחןו"++("מצטערות"++("להודיע"++("לכם"++"ש"))))("אןחןו"++("מצטערים"++("להודיע"++("לכן"++"ש"))))]; +oper A''117:Str=table ResHebU.Gen{p_Regret__3=>"אןי"++("מצטער"++("להודיע"++("לך"++"ש")))}; +oper A''118:Str=table ResHebU.Gen[("אןחןו"++("מצטערים"++("להודיע"++("לכם"++"ש"))))("אןחןו"++("מצטערים"++("להודיע"++("לכן"++"ש"))))]; +oper A''120:Str=table ResHebU.Gen{p_Regret__3=>"אןי"++("מצטערת"++("להודיע"++("לך"++"ש")))}; +oper A''121:Str=table ResHebU.Gen[("אןחןו"++("מצטערות"++("להודיע"++("לכם"++"ש"))))("אןחןו"++("מצטערות"++("להודיע"++("לכן"++"ש"))))]; +oper A''22:Str=table ResHebU.Gen[("הןןי"++("מתכבדת"++("להודיע"++("לך"++"ש"))))("הןןי"++("מתכבד"++("להודיע"++("לך"++"ש"))))]; +oper A''23:Str=table ResHebU.Gen[("הןןו"++("מתכבדות"++("להודיע"++("לכם"++"ש"))))("הןןו"++("מתכבדים"++("להודיע"++("לכן"++"ש"))))]; +oper A''25:Str=table ResHebU.Gen{p_Honour__3=>"הןןי"++("מתכבד"++("להודיע"++("לך"++"ש")))}; +oper A''26:Str=table ResHebU.Gen[("הןןו"++("מתכבדים"++("להודיע"++("לכם"++"ש"))))("הןןו"++("מתכבדים"++("להודיע"++("לכן"++"ש"))))]; +oper A''28:Str=table ResHebU.Gen{p_Honour__3=>"הןןי"++("מתכבדת"++("להודיע"++("לך"++"ש")))}; +oper A''29:Str=table ResHebU.Gen[("הןןו"++("מתכבדות"++("להודיע"++("לכם"++"ש"))))("הןןו"++("מתכבדות"++("להודיע"++("לכן"++"ש"))))]; +oper A''47:Str=table ResHebU.Gen[("אןי"++("אוהבת"++"אותך"))("אןי"++("אוהב"++"אותך"))]; +oper A''48:Str=table ResHebU.Gen[("אןחןו"++("אוהבות"++"אתכם"))("אןחןו"++("אוהבים"++"אתכן"))]; +oper A''5:Str=<ResHebU.cgen<ResHebU.masc>>; +oper A''50:Str=table ResHebU.Gen{p_ILoveYou__3=>"אןי"++("אוהב"++"אותך")}; +oper A''51:Str=table ResHebU.Gen[("אןחןו"++("אוהבים"++"אתכם"))("אןחןו"++("אוהבים"++"אתכן"))]; +oper A''53:Str=table ResHebU.Gen{p_ILoveYou__3=>"אןי"++("אוהבת"++"אותך")}; +oper A''54:Str=table ResHebU.Gen[("אןחןו"++("אוהבות"++"אתכם"))("אןחןו"++("אוהבות"++"אתכן"))]; +oper A''6:Str=<ResHebU.cnum<ResHebU.sg>>; +oper A''79:Str=<ResHebU.cgen<ResHebU.fem>>; +oper A''93:Str=<ResHebU.cnum<ResHebU.pl>>; +lincat Author={g:ResHebU.DepGen;n:ResHebU.DepNum;s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={g=<ResHebU.depgen>;n=<ResHebU.depnum>;s=table ResHebU.Num{p_Author__0=>table ResHebU.Gen{p_Author__1=>str@0}}};"Author"; +lin BePromoted:Letter.Sentence=\Position@0->{s=table ResHebU.DepNum{p_BePromoted__0=>table ResHebU.DepGen{p_BePromoted__1=>table ResHebU.Num[(table ResHebU.Gen{p_BePromoted__3=>"קודמת"++("לתפקיד"++("של"++Position@0.s!<ResHebU.sg>!$p_BePromoted__3))})(table ResHebU.Gen[("קודמתם"++("לתפקיד"++("של"++Position@0.s!<ResHebU.pl>!<ResHebU.masc>)))("קודמתן"++("לתפקיד"++("של"++Position@0.s!<ResHebU.pl>!<ResHebU.fem>)))])]}}};"קודמת לתפקיד של Position_0"; +lin ColleagueHe:Letter.Recipient=\->{g=<ResHebU.masc>;n=<ResHebU.sg>;s="עמית"};"{ResHebU.masc}"; +lin ColleagueShe:Letter.Recipient=\->{g=<ResHebU.fem>;n=<ResHebU.sg>;s="עמיתה"};"{ResHebU.fem}"; +lin ColleaguesHe:Letter.Recipient=\->{g=<ResHebU.masc>;n=<ResHebU.pl>;s="עמיתים"};"{ResHebU.masc}"; +lin ColleaguesShe:Letter.Recipient=\->{g=<ResHebU.fem>;n=<ResHebU.pl>;s="עמיתות"};"{ResHebU.fem}"; +lin Company:Letter.NounPhrase=\->{g=<ResHebU.fem>;n=<ResHebU.sg>;s="חברתןו"};"{ResHebU.fem}"; +lin Competitor:Letter.NounPhrase=\->{g=<ResHebU.masc>;n=<ResHebU.sg>;s="המתחרה"++("הגרוע"++("ביותר"++"שלןו"))};"{ResHebU.masc}"; +lin DarlingHe:Letter.Recipient=\->{g=<ResHebU.masc>;n=<ResHebU.sg>;s="אהובי"};"{ResHebU.masc}"; +lin DarlingShe:Letter.Recipient=\->{g=<ResHebU.fem>;n=<ResHebU.sg>;s="אהובתי"};"{ResHebU.fem}"; +lin Dean:Letter.Author=\->{g=Hebrew.A''5;n=Hebrew.A''6;s=table ResHebU.Num{p_Dean__0=>table ResHebU.Gen{p_Dean__1=>"דיקן"}}};"{ResHebU.cgen} {ResHebU.masc}"; +lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s++table ResHebU.Num[(table ResHebU.Gen["יקר""יקרה"]!(Recipient@0.g))(table ResHebU.Gen["יקרים""יקרות"]!(Recipient@0.g))]!(Recipient@0.n)};"Recipient_0"; +lincat Ending={g:ResHebU.DepGen;n:ResHebU.DepNum;s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={g=<ResHebU.depgen>;n=<ResHebU.depnum>;s=table ResHebU.Num{p_Ending__0=>table ResHebU.Gen{p_Ending__1=>str@0}}};"Ending"; +lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResHebU.Num{p_FormalEnding__0=>table ResHebU.Gen{p_FormalEnding__1=>",בכבוד"++("רב"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}}};"Author_0"; +lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResHebU.DepNum{p_GoBankrupt__0=>table ResHebU.DepGen{p_GoBankrupt__1=>table ResHebU.Num{p_GoBankrupt__2=>table ResHebU.Gen{p_GoBankrupt__3=>NounPhrase@0.s++(table ResHebU.Num[(table ResHebU.Gen["פשט""פשטה"]!(NounPhrase@0.g))(table ResHebU.Gen{p_GoBankrupt__5=>"פשטו"}!(NounPhrase@0.g))]!(NounPhrase@0.n)++"רגל")}}}}};"NounPhrase_0 פשט רגל"; +lincat Heading={g:ResHebU.Gen;n:ResHebU.Num;s:Str}={g=<ResHebU.masc>;n=<ResHebU.sg>;s=str@0};"Heading"; +lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResHebU.Num{p_HelloRec__0=>"שלום"}!(Recipient@0.n)++Recipient@0.s};"Recipient_0"; +lin Honour:Letter.Mode=\->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''22 Hebrew.A''23])(table ResHebU.Num[Hebrew.A''25 Hebrew.A''26])(table ResHebU.Num[Hebrew.A''28 Hebrew.A''29])])(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''22(table ResHebU.Gen[("הןןי"++("מתכבדת"++("להודיע"++("לכם"++"ש"))))("הןןי"++("מתכבד"++("להודיע"++("לכן"++"ש"))))])])(table ResHebU.Num[Hebrew.A''25(table ResHebU.Gen[("הןןי"++("מתכבד"++("להודיע"++("לכם"++"ש"))))("הןןי"++("מתכבד"++("להודיע"++("לכן"++"ש"))))])])(table ResHebU.Num[Hebrew.A''28(table ResHebU.Gen[("הןןי"++("מתכבדת"++("להודיע"++("לכם"++"ש"))))("הןןי"++("מתכבדת"++("להודיע"++("לכן"++"ש"))))])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen[("הןןו"++("מתכבדות"++("להודיע"++("לך"++"ש"))))("הןןו"++("מתכבדים"++("להודיע"++("לך"++"ש"))))])Hebrew.A''23])(table ResHebU.Num[(table ResHebU.Gen{p_Honour__3=>"הןןו"++("מתכבדים"++("להודיע"++("לך"++"ש")))})Hebrew.A''26])(table ResHebU.Num[(table ResHebU.Gen{p_Honour__3=>"הןןו"++("מתכבדות"++("להודיע"++("לך"++"ש")))})Hebrew.A''29])])]};"הןןי מתכבדת להודיע לך ש"; +lin ILoveYou:Letter.Sentence=\->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''47 Hebrew.A''48])(table ResHebU.Num[Hebrew.A''50 Hebrew.A''51])(table ResHebU.Num[Hebrew.A''53 Hebrew.A''54])])(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''47(table ResHebU.Gen[("אןי"++("אוהבת"++"אתכם"))("אןי"++("אוהב"++"אתכן"))])])(table ResHebU.Num[Hebrew.A''50(table ResHebU.Gen[("אןי"++("אוהב"++"אתכם"))("אןי"++("אוהב"++"אתכן"))])])(table ResHebU.Num[Hebrew.A''53(table ResHebU.Gen[("אןי"++("אוהבת"++"אתכם"))("אןי"++("אוהבת"++"אתכן"))])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen[("אןחןו"++("אוהבות"++"אותך"))("אןחןו"++("אוהבים"++"אותך"))])Hebrew.A''48])(table ResHebU.Num[(table ResHebU.Gen{p_ILoveYou__3=>"אןחןו"++("אוהבים"++"אותך")})Hebrew.A''51])(table ResHebU.Num[(table ResHebU.Gen{p_ILoveYou__3=>"אןחןו"++("אוהבות"++"אותך")})Hebrew.A''54])])]};"אןי אוהבת אותך"; +lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResHebU.Num{p_InformalEnding__0=>table ResHebU.Gen{p_InformalEnding__1=>",בברכה"++"&-"++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0"; +lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResHebU.Num{p_JustHello__0=>"שלום"}!(Recipient@0.n)};"Recipient_0"; 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"; +lincat Message={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{p_Message__0=>table ResHebU.DepGen{p_Message__1=>table ResHebU.Num{p_Message__2=>table ResHebU.Gen{p_Message__3=>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"; +lincat Mode={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{p_Mode__0=>table ResHebU.DepGen{p_Mode__1=>table ResHebU.Num{p_Mode__2=>table ResHebU.Gen{p_Mode__3=>str@0}}}}};"Mode"; +lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num{p_ModeSent__2=>table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!<ResHebU.depnum>!<ResHebU.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResHebU.depnum>!<ResHebU.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResHebU.Num{p_ModeSent__2=>table ResHebU.Gen[(Mode@0.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.masc>)(Mode@0.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.fem>)]})(table ResHebU.Num{p_ModeSent__2=>table ResHebU.Gen[(Mode@0.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.masc>)(Mode@0.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.fem>)]})])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3})(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3})])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>)])])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>)])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3})(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3})])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>)])])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>)])])])]};"Mode_0 Sentence_1"; +lin Mother:Letter.Author=\->{g=Hebrew.A''79;n=Hebrew.A''6;s=table ResHebU.Num{p_Mother__0=>table ResHebU.Gen{p_Mother__1=>"אמא"}}};"{ResHebU.cgen} {ResHebU.fem}"; +lin Name:Letter.Author=\String@0->{g=Hebrew.A''5;n=Hebrew.A''6;s=table ResHebU.Num{p_Name__0=>table ResHebU.Gen{p_Name__1=>String@0.s}}};"{ResHebU.cgen} {ResHebU.masc}"; +lin NameHe:Letter.Recipient=\String@0->{g=<ResHebU.masc>;n=<ResHebU.sg>;s=String@0.s};"{ResHebU.masc}"; +lin NameShe:Letter.Recipient=\String@0->{g=<ResHebU.fem>;n=<ResHebU.sg>;s=String@0.s};"{ResHebU.fem}"; +lincat NounPhrase={g:ResHebU.Gen;n:ResHebU.Num;s:Str}={g=<ResHebU.masc>;n=<ResHebU.sg>;s=str@0};"NounPhrase"; +lin OurCustomers:Letter.NounPhrase=\->{g=<ResHebU.masc>;n=<ResHebU.pl>;s="לקוחותיןו"};"{ResHebU.masc}"; +lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"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>};"אישתך"; +lincat Position={s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={s=table ResHebU.Num{p_Position__0=>table ResHebU.Gen{p_Position__1=>str@0}}};"Position"; +lin President:Letter.Author=\->{g=Hebrew.A''5;n=Hebrew.A''6;s=table ResHebU.Num{p_President__0=>table ResHebU.Gen{p_President__1=>"ןשיא"}}};"{ResHebU.cgen} {ResHebU.masc}"; +lin ProjectManager:Letter.Position=\->{s=table ResHebU.Num[(table ResHebU.Gen[("מןהל"++"פרוייקט")("מןהלת"++"פרוייקט")])(table ResHebU.Gen[("מןהלי"++"פרוייקט")("מןהלות"++"פרוייקט")])]};"מןהל פרוייקט"; +lincat Recipient={g:ResHebU.Gen;n:ResHebU.Num;s:Str}={g=<ResHebU.masc>;n=<ResHebU.sg>;s=str@0};"Recipient"; +lin Regret:Letter.Mode=\->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''114 Hebrew.A''115])(table ResHebU.Num[Hebrew.A''117 Hebrew.A''118])(table ResHebU.Num[Hebrew.A''120 Hebrew.A''121])])(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''114(table ResHebU.Gen[("אןי"++("מצטערת"++("להודיע"++("לכם"++"ש"))))("אןי"++("מצטער"++("להודיע"++("לכן"++"ש"))))])])(table ResHebU.Num[Hebrew.A''117(table ResHebU.Gen[("אןי"++("מצטער"++("להודיע"++("לכם"++"ש"))))("אןי"++("מצטער"++("להודיע"++("לכן"++"ש"))))])])(table ResHebU.Num[Hebrew.A''120(table ResHebU.Gen[("אןי"++("מצטערת"++("להודיע"++("לכם"++"ש"))))("אןי"++("מצטערת"++("להודיע"++("לכן"++"ש"))))])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen[("אןחןו"++("מצטערות"++("להודיע"++("לך"++"ש"))))("אןחןו"++("מצטערים"++("להודיע"++("לך"++"ש"))))])Hebrew.A''115])(table ResHebU.Num[(table ResHebU.Gen{p_Regret__3=>"אןחןו"++("מצטערים"++("להודיע"++("לך"++"ש")))})Hebrew.A''118])(table ResHebU.Num[(table ResHebU.Gen{p_Regret__3=>"אןחןו"++("מצטערות"++("להודיע"++("לך"++"ש")))})Hebrew.A''121])])]};"אןי מצטערת להודיע לך ש"; +lin Senior:Letter.Position=\->{s=table ResHebU.Num[(table ResHebU.Gen{p_Senior__1=>"חבר"++"בכיר"})(table ResHebU.Gen{p_Senior__1=>"חברים"++"בכירים"})]};"חבר בכיר"; +lincat Sentence={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{p_Sentence__0=>table ResHebU.DepGen{p_Sentence__1=>table ResHebU.Num{p_Sentence__2=>table ResHebU.Gen{p_Sentence__3=>str@0}}}}};"Sentence"; +lin Spouse:Letter.Author=\->{g=<ResHebU.depgen>;n=<ResHebU.depnum>;s=table ResHebU.Num[(table ResHebU.Gen["אישתך""בעלך"])(table ResHebU.Gen["ןשותיכם""בעליכן"])]};"{ResHebU.depgen}"; } resource ResHebU={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResHebU.Gen; param DepNum=depnum|cnum ResHebU.Num; @@ -90,48 +112,61 @@ 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};"Здравствуй"; +concrete Russian of Letter=open ResRusU in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''21:Str=table ResRusU.Num["Здравствуй""Здравствуйте"]; +oper A''22:Str=table ResRusU.Gen{p_Honour__3=>"я"++"имею"++("честь"++("сообщить"++"тебе"++(","++"что")))}; +oper A''23:Str=table ResRusU.Gen{p_Honour__3=>"мы"++"имеем"++("честь"++("сообщить"++"вам"++(","++"что")))}; +oper A''33:Str=table ResRusU.Gen{p_ILoveYou__3=>"я"++("тебя"++"люблю")}; +oper A''34:Str=table ResRusU.Gen{p_ILoveYou__3=>"мы"++("вас"++"любим")}; +oper A''5:Str=<ResRusU.cgen<ResRusU.masc>>; +oper A''50:Str=<ResRusU.cgen<ResRusU.fem>>; +oper A''6:Str=<ResRusU.cnum<ResRusU.sg>>; +oper A''64:Str=<ResRusU.cnum<ResRusU.pl>>; +oper A''85:Str=table ResRusU.Gen[("я"++("вынуждена"++("сообщить"++(","++"что"))))("я"++("вынужден"++("сообщить"++(","++"что"))))]; +oper A''86:Str=table ResRusU.Gen{p_Regret__3=>"вы"++("вынуждены"++("сообщить"++(","++"что")))}; +oper A''88:Str=table ResRusU.Gen{p_Regret__3=>"я"++("вынужден"++("сообщить"++(","++"что")))}; +oper A''90:Str=table ResRusU.Gen{p_Regret__3=>"я"++("вынуждена"++("сообщить"++(","++"что")))}; +lincat Author={g:ResRusU.DepGen;n:ResRusU.DepNum;s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={g=<ResRusU.depgen>;n=<ResRusU.depnum>;s=table ResRusU.Num{p_Author__0=>table ResRusU.Gen{p_Author__1=>str@0}}};"Author"; +lin BePromoted:Letter.Sentence=\Position@0->{s=table ResRusU.DepNum{p_BePromoted__0=>table ResRusU.DepGen{p_BePromoted__1=>table ResRusU.Num[(table ResRusU.Gen[("ты"++"был"++("назначен"++Position@0.s!<ResRusU.sg>!<ResRusU.masc>))("ты"++"была"++("назначена"++Position@0.s!<ResRusU.sg>!<ResRusU.fem>))])(table ResRusU.Gen{p_BePromoted__3=>"вы"++"были"++("назначены"++Position@0.s!<ResRusU.pl>!$p_BePromoted__3)})]}}};"(ты был)назначен Position_0"; +lin ColleagueHe:Letter.Recipient=\->{g=<ResRusU.masc>;n=<ResRusU.sg>;s="коллега"};"{ResRusU.masc}"; +lin ColleagueShe:Letter.Recipient=\->{g=<ResRusU.fem>;n=<ResRusU.sg>;s="коллега"};"{ResRusU.fem}"; +lin ColleaguesHe:Letter.Recipient=\->{g=<ResRusU.masc>;n=<ResRusU.pl>;s="коллеги"};"{ResRusU.masc}"; +lin ColleaguesShe:Letter.Recipient=\->{g=<ResRusU.fem>;n=<ResRusU.pl>;s="коллеги"};"{ResRusU.fem}"; +lin Company:Letter.NounPhrase=\->{g=<ResRusU.fem>;n=<ResRusU.sg>;s="наше"++"предприятие"};"{ResRusU.fem}"; +lin Competitor:Letter.NounPhrase=\->{g=<ResRusU.masc>;n=<ResRusU.sg>;s="наш"++"конкурент"};"{ResRusU.masc}"; +lin DarlingHe:Letter.Recipient=\->{g=<ResRusU.masc>;n=<ResRusU.sg>;s="любимый"};"{ResRusU.masc}"; +lin DarlingShe:Letter.Recipient=\->{g=<ResRusU.fem>;n=<ResRusU.sg>;s="любимая"};"{ResRusU.fem}"; +lin Dean:Letter.Author=\->{g=Russian.A''5;n=Russian.A''6;s=table ResRusU.Num{p_Dean__0=>table ResRusU.Gen{p_Dean__1=>"декан"}}};"{ResRusU.cgen} {ResRusU.masc}"; +lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResRusU.Num[(table ResRusU.Gen["Дорогой""Дорогая"]!(Recipient@0.g))(table ResRusU.Gen{p_DearRec__1=>"Дорогие"}!(Recipient@0.g))]!(Recipient@0.n)++Recipient@0.s};"Recipient_0"; +lincat Ending={g:ResRusU.DepGen;n:ResRusU.DepNum;s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={g=<ResRusU.depgen>;n=<ResRusU.depnum>;s=table ResRusU.Num{p_Ending__0=>table ResRusU.Gen{p_Ending__1=>str@0}}};"Ending"; +lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResRusU.Num{p_FormalEnding__0=>table ResRusU.Gen{p_FormalEnding__1=>"С"++("наилучшими"++("пожеланиями,"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1)}}};"Author_0"; +lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResRusU.DepNum{p_GoBankrupt__0=>table ResRusU.DepGen{p_GoBankrupt__1=>table ResRusU.Num{p_GoBankrupt__2=>table ResRusU.Gen{p_GoBankrupt__3=>NounPhrase@0.s++table ResRusU.Num[(table ResRusU.Gen["обанкротился""обанкротилось"]!(NounPhrase@0.g))(table ResRusU.Gen{p_GoBankrupt__5=>"обанкротились"}!(NounPhrase@0.g))]!(NounPhrase@0.n)}}}}};"NounPhrase_0 обанкротился"; +lincat Heading={g:ResRusU.Gen;n:ResRusU.Num;s:Str}={g=<ResRusU.masc>;n=<ResRusU.sg>;s=str@0};"Heading"; +lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Russian.A''21!(Recipient@0.n)++Recipient@0.s};"Recipient_0"; +lin Honour:Letter.Mode=\->{s=table ResRusU.DepNum[(table ResRusU.DepGen{p_Honour__1=>table ResRusU.Num[Russian.A''22 Russian.A''23]})(table ResRusU.DepGen{p_Honour__1=>table ResRusU.Num[Russian.A''22(table ResRusU.Gen{p_Honour__3=>"я"++"имею"++("честь"++("сообщить"++"вам"++(","++"что")))})]})(table ResRusU.DepGen{p_Honour__1=>table ResRusU.Num[(table ResRusU.Gen{p_Honour__3=>"мы"++"имеем"++("честь"++("сообщить"++"тебе"++(","++"что")))})Russian.A''23]})]};"(я имею)честь (сообщить тебе), что"; +lin ILoveYou:Letter.Sentence=\->{s=table ResRusU.DepNum[(table ResRusU.DepGen{p_ILoveYou__1=>table ResRusU.Num[Russian.A''33 Russian.A''34]})(table ResRusU.DepGen{p_ILoveYou__1=>table ResRusU.Num[Russian.A''33(table ResRusU.Gen{p_ILoveYou__3=>"я"++("вас"++"люблю")})]})(table ResRusU.DepGen{p_ILoveYou__1=>table ResRusU.Num[(table ResRusU.Gen{p_ILoveYou__3=>"мы"++("тебя"++"любим")})Russian.A''34]})]};"я тебя люблю"; +lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResRusU.Num{p_InformalEnding__0=>table ResRusU.Gen{p_InformalEnding__1=>"С"++("дружеским"++("приветом,"++"&-"))++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0"; +lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Russian.A''21!(Recipient@0.n)};"Recipient_0"; 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"; +lincat Message={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{p_Message__0=>table ResRusU.DepGen{p_Message__1=>table ResRusU.Num{p_Message__2=>table ResRusU.Gen{p_Message__3=>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"; +lincat Mode={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{p_Mode__0=>table ResRusU.DepGen{p_Mode__1=>table ResRusU.Num{p_Mode__2=>table ResRusU.Gen{p_Mode__3=>str@0}}}}};"Mode"; +lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResRusU.DepNum[(table ResRusU.DepGen[(table ResRusU.Num{p_ModeSent__2=>table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!<ResRusU.depnum>!<ResRusU.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResRusU.depnum>!<ResRusU.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResRusU.Num{p_ModeSent__2=>table ResRusU.Gen[(Mode@0.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.masc>)(Mode@0.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.fem>)]})(table ResRusU.Num{p_ModeSent__2=>table ResRusU.Gen[(Mode@0.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.masc>)(Mode@0.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.fem>)]})])(table ResRusU.DepGen[(table ResRusU.Num[(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3++Sentence@1.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3})(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3++Sentence@1.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3})])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>)])])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>)])])])(table ResRusU.DepGen[(table ResRusU.Num[(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3++Sentence@1.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3})(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3++Sentence@1.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3})])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>)])])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>)])])])]};"Mode_0 Sentence_1"; +lin Mother:Letter.Author=\->{g=Russian.A''50;n=Russian.A''6;s=table ResRusU.Num{p_Mother__0=>table ResRusU.Gen{p_Mother__1=>"мама"}}};"{ResRusU.cgen} {ResRusU.fem}"; +lin Name:Letter.Author=\String@0->{g=Russian.A''5;n=Russian.A''6;s=table ResRusU.Num{p_Name__0=>table ResRusU.Gen{p_Name__1=>String@0.s}}};"{ResRusU.cgen} {ResRusU.masc}"; +lin NameHe:Letter.Recipient=\String@0->{g=<ResRusU.masc>;n=<ResRusU.sg>;s=String@0.s};"{ResRusU.masc}"; +lin NameShe:Letter.Recipient=\String@0->{g=<ResRusU.fem>;n=<ResRusU.sg>;s=String@0.s};"{ResRusU.fem}"; +lincat NounPhrase={g:ResRusU.Gen;n:ResRusU.Num;s:Str}={g=<ResRusU.masc>;n=<ResRusU.sg>;s=str@0};"NounPhrase"; +lin OurCustomers:Letter.NounPhrase=\->{g=<ResRusU.masc>;n=<ResRusU.pl>;s="наши"++"клиенты"};"{ResRusU.masc}"; +lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"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>};"твоя жена"; +lincat Position={s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={s=table ResRusU.Num{p_Position__0=>table ResRusU.Gen{p_Position__1=>str@0}}};"Position"; +lin President:Letter.Author=\->{g=Russian.A''5;n=Russian.A''6;s=table ResRusU.Num{p_President__0=>table ResRusU.Gen{p_President__1=>"президент"}}};"{ResRusU.cgen} {ResRusU.masc}"; +lin ProjectManager:Letter.Position=\->{s=table ResRusU.Num[(table ResRusU.Gen{p_ProjectManager__1=>"менеджером"++"проекта"})(table ResRusU.Gen{p_ProjectManager__1=>"менеджерами"++"проектов"})]};"менеджером проекта"; +lincat Recipient={g:ResRusU.Gen;n:ResRusU.Num;s:Str}={g=<ResRusU.masc>;n=<ResRusU.sg>;s=str@0};"Recipient"; +lin Regret:Letter.Mode=\->{s=table ResRusU.DepNum[(table ResRusU.DepGen[(table ResRusU.Num[Russian.A''85 Russian.A''86])(table ResRusU.Num[Russian.A''88 Russian.A''86])(table ResRusU.Num[Russian.A''90 Russian.A''86])])(table ResRusU.DepGen[(table ResRusU.Num{p_Regret__2=>Russian.A''85})(table ResRusU.Num{p_Regret__2=>Russian.A''88})(table ResRusU.Num{p_Regret__2=>Russian.A''90})])(table ResRusU.DepGen{p_Regret__1=>table ResRusU.Num{p_Regret__2=>Russian.A''86}})]};"я вынуждена сообщить , что"; +lin Senior:Letter.Position=\->{s=table ResRusU.Num[(table ResRusU.Gen{p_Senior__1=>"старшим"++("научным"++"сотрудником")})(table ResRusU.Gen{p_Senior__1=>"старшими"++("научными"++"сотрудниками")})]};"старшим научным сотрудником"; +lincat Sentence={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{p_Sentence__0=>table ResRusU.DepGen{p_Sentence__1=>table ResRusU.Num{p_Sentence__2=>table ResRusU.Gen{p_Sentence__3=>str@0}}}}};"Sentence"; +lin Spouse:Letter.Author=\->{g=<ResRusU.depgen>;n=<ResRusU.depnum>;s=table ResRusU.Num[(table ResRusU.Gen[("твоя"++"жена")("твой"++"муж")])(table ResRusU.Gen[("ваши"++"жены")("ваши"++"мужья")])]};"{ResRusU.depgen}"; } resource ResRusU={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResRusU.Gen; param DepNum=depnum|cnum ResRusU.Num; @@ -139,48 +174,58 @@ 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"; -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"; +concrete Finnish of Letter=open ResFin in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''20:Str=table ResFin.Gen{p_Honour__3=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"että"))}; +oper A''21:Str=table ResFin.Gen{p_Honour__3=>"meillä"++"on"++("kunnia"++("ilmoittaa"++"teille"++"että"))}; +oper A''31:Str=table ResFin.Gen{p_ILoveYou__3=>"rakastan"++"sinua"}; +oper A''32:Str=table ResFin.Gen{p_ILoveYou__3=>"rakastamme"++"teitä"}; +oper A''48:Str=<ResFin.cgen<ResFin.fem>>; +oper A''5:Str=<ResFin.cgen<ResFin.masc>>; +oper A''6:Str=<ResFin.cnum<ResFin.sg>>; +oper A''62:Str=<ResFin.cnum<ResFin.pl>>; +oper A''83:Str=table ResFin.Gen{p_Regret__3=>"minun"++("on"++("valitettavasti"++"ilmoitettava")++"että")}; +oper A''84:Str=table ResFin.Gen{p_Regret__3=>"meidän"++("on"++("valitettavasti"++"ilmoitettava")++"että")}; +lincat Author={g:ResFin.DepGen;n:ResFin.DepNum;s:(ResFin.Num=>(ResFin.Gen=>Str))}={g=<ResFin.depgen>;n=<ResFin.depnum>;s=table ResFin.Num{p_Author__0=>table ResFin.Gen{p_Author__1=>str@0}}};"Author"; +lin BePromoted:Letter.Sentence=\Position@0->{s=table ResFin.DepNum{p_BePromoted__0=>table ResFin.DepGen{p_BePromoted__1=>table ResFin.Num[(table ResFin.Gen{p_BePromoted__3=>"sinut"++"on"++("ylennetty"++Position@0.s!<ResFin.sg>!$p_BePromoted__3)})(table ResFin.Gen{p_BePromoted__3=>"teidät"++"on"++("ylennetty"++Position@0.s!<ResFin.pl>!$p_BePromoted__3)})]}}};"(sinut on)ylennetty Position_0"; +lin ColleagueHe:Letter.Recipient=\->{g=<ResFin.masc>;n=<ResFin.sg>;s="kollega"};"{ResFin.masc}"; +lin ColleagueShe:Letter.Recipient=\->{g=<ResFin.fem>;n=<ResFin.sg>;s="kollega"};"{ResFin.fem}"; +lin ColleaguesHe:Letter.Recipient=\->{g=<ResFin.masc>;n=<ResFin.pl>;s="kollegat"};"{ResFin.masc}"; +lin ColleaguesShe:Letter.Recipient=\->{g=<ResFin.fem>;n=<ResFin.pl>;s="kollegat"};"{ResFin.fem}"; +lin Company:Letter.NounPhrase=\->{g=<ResFin.fem>;n=<ResFin.sg>;s="yrityksemme"};"{ResFin.fem}"; +lin Competitor:Letter.NounPhrase=\->{g=<ResFin.masc>;n=<ResFin.sg>;s="pahin"++"kilpailijamme"};"{ResFin.masc}"; +lin DarlingHe:Letter.Recipient=\->{g=<ResFin.masc>;n=<ResFin.sg>;s="kulta"};"{ResFin.masc}"; +lin DarlingShe:Letter.Recipient=\->{g=<ResFin.fem>;n=<ResFin.sg>;s="kulta"};"{ResFin.fem}"; +lin Dean:Letter.Author=\->{g=Finnish.A''5;n=Finnish.A''6;s=table ResFin.Num{p_Dean__0=>table ResFin.Gen{p_Dean__1=>"dekaani"}}};"{ResFin.cgen} {ResFin.masc}"; +lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResFin.Num[(table ResFin.Gen{p_DearRec__1=>"rakas"}!(Recipient@0.g))(table ResFin.Gen{p_DearRec__1=>"rakkaat"}!(Recipient@0.g))]!(Recipient@0.n)++Recipient@0.s};"Recipient_0"; +lincat Ending={g:ResFin.DepGen;n:ResFin.DepNum;s:(ResFin.Num=>(ResFin.Gen=>Str))}={g=<ResFin.depgen>;n=<ResFin.depnum>;s=table ResFin.Num{p_Ending__0=>table ResFin.Gen{p_Ending__1=>str@0}}};"Ending"; +lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFin.Num{p_FormalEnding__0=>table ResFin.Gen{p_FormalEnding__1=>"parhain"++("terveisin"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}}};"Author_0"; +lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResFin.DepNum{p_GoBankrupt__0=>table ResFin.DepGen{p_GoBankrupt__1=>table ResFin.Num{p_GoBankrupt__2=>table ResFin.Gen{p_GoBankrupt__3=>NounPhrase@0.s++(table ResFin.Num["on""ovat"]!(NounPhrase@0.n)++(table ResFin.Num["mennyt""menneet"]!(NounPhrase@0.n)++"konkurssiin"))}}}}};"NounPhrase_0 on mennyt konkurssiin"; +lincat Heading={g:ResFin.Gen;n:ResFin.Num;s:Str}={g=<ResFin.masc>;n=<ResFin.sg>;s=str@0};"Heading"; +lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Terve"++Recipient@0.s};"Recipient_0"; +lin Honour:Letter.Mode=\->{s=table ResFin.DepNum[(table ResFin.DepGen{p_Honour__1=>table ResFin.Num[Finnish.A''20 Finnish.A''21]})(table ResFin.DepGen{p_Honour__1=>table ResFin.Num[Finnish.A''20(table ResFin.Gen{p_Honour__3=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"teille"++"että"))})]})(table ResFin.DepGen{p_Honour__1=>table ResFin.Num[(table ResFin.Gen{p_Honour__3=>"meillä"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"että"))})Finnish.A''21]})]};"(minulla on)kunnia (ilmoittaa sinulle)ett"; +lin ILoveYou:Letter.Sentence=\->{s=table ResFin.DepNum[(table ResFin.DepGen{p_ILoveYou__1=>table ResFin.Num[Finnish.A''31 Finnish.A''32]})(table ResFin.DepGen{p_ILoveYou__1=>table ResFin.Num[Finnish.A''31(table ResFin.Gen{p_ILoveYou__3=>"rakastan"++"teitä"})]})(table ResFin.DepGen{p_ILoveYou__1=>table ResFin.Num[(table ResFin.Gen{p_ILoveYou__3=>"rakastamme"++"sinua"})Finnish.A''32]})]};"rakastan sinua"; +lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFin.Num{p_InformalEnding__0=>table ResFin.Gen{p_InformalEnding__1=>"terveisin"++"&-"++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0"; +lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Terve"};"Recipient_0"; 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"; +lincat Message={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{p_Message__0=>table ResFin.DepGen{p_Message__1=>table ResFin.Num{p_Message__2=>table ResFin.Gen{p_Message__3=>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>>};"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"; +lincat Mode={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{p_Mode__0=>table ResFin.DepGen{p_Mode__1=>table ResFin.Num{p_Mode__2=>table ResFin.Gen{p_Mode__3=>str@0}}}}};"Mode"; +lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResFin.DepNum[(table ResFin.DepGen[(table ResFin.Num{p_ModeSent__2=>table ResFin.Gen{p_ModeSent__3=>Mode@0.s!<ResFin.depnum>!<ResFin.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResFin.depnum>!<ResFin.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResFin.Num{p_ModeSent__2=>table ResFin.Gen[(Mode@0.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.masc>)(Mode@0.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.fem>)]})(table ResFin.Num{p_ModeSent__2=>table ResFin.Gen[(Mode@0.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.masc>)(Mode@0.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.fem>)]})])(table ResFin.DepGen[(table ResFin.Num[(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''6!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3++Sentence@1.s!Finnish.A''6!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3})(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''6!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3++Sentence@1.s!Finnish.A''6!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3})])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.fem>)])])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.fem>)])])])(table ResFin.DepGen[(table ResFin.Num[(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''62!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3++Sentence@1.s!Finnish.A''62!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3})(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''62!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3++Sentence@1.s!Finnish.A''62!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3})])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.fem>)])])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.fem>)])])])]};"Mode_0 Sentence_1"; +lin Mother:Letter.Author=\->{g=Finnish.A''48;n=Finnish.A''6;s=table ResFin.Num{p_Mother__0=>table ResFin.Gen{p_Mother__1=>"äiti"}}};"{ResFin.cgen} {ResFin.fem}"; +lin Name:Letter.Author=\String@0->{g=Finnish.A''5;n=Finnish.A''6;s=table ResFin.Num{p_Name__0=>table ResFin.Gen{p_Name__1=>String@0.s}}};"{ResFin.cgen} {ResFin.masc}"; +lin NameHe:Letter.Recipient=\String@0->{g=<ResFin.masc>;n=<ResFin.sg>;s=String@0.s};"{ResFin.masc}"; +lin NameShe:Letter.Recipient=\String@0->{g=<ResFin.fem>;n=<ResFin.sg>;s=String@0.s};"{ResFin.fem}"; +lincat NounPhrase={g:ResFin.Gen;n:ResFin.Num;s:Str}={g=<ResFin.masc>;n=<ResFin.sg>;s=str@0};"NounPhrase"; +lin OurCustomers:Letter.NounPhrase=\->{g=<ResFin.masc>;n=<ResFin.pl>;s="asiakkaamme"};"{ResFin.masc}"; +lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"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"}}};"projektipllikksi"; -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"; -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"; +lincat Position={s:(ResFin.Num=>(ResFin.Gen=>Str))}={s=table ResFin.Num{p_Position__0=>table ResFin.Gen{p_Position__1=>str@0}}};"Position"; +lin President:Letter.Author=\->{g=Finnish.A''5;n=Finnish.A''6;s=table ResFin.Num{p_President__0=>table ResFin.Gen{p_President__1=>"presidentti"}}};"{ResFin.cgen} {ResFin.masc}"; +lin ProjectManager:Letter.Position=\->{s=table ResFin.Num[(table ResFin.Gen{p_ProjectManager__1=>"projektipäälliköksi"})(table ResFin.Gen{p_ProjectManager__1=>"projektipäälliköiksi"})]};"projektipllikksi"; +lincat Recipient={g:ResFin.Gen;n:ResFin.Num;s:Str}={g=<ResFin.masc>;n=<ResFin.sg>;s=str@0};"Recipient"; +lin Regret:Letter.Mode=\->{s=table ResFin.DepNum[(table ResFin.DepGen{p_Regret__1=>table ResFin.Num[Finnish.A''83 Finnish.A''84]})(table ResFin.DepGen{p_Regret__1=>table ResFin.Num{p_Regret__2=>Finnish.A''83}})(table ResFin.DepGen{p_Regret__1=>table ResFin.Num{p_Regret__2=>Finnish.A''84}})]};"minun (on valitettavasti ilmoitettava)ett"; +lin Senior:Letter.Position=\->{s=table ResFin.Num[(table ResFin.Gen{p_Senior__1=>"vanhemmaksi"++"tutkijaksi"})(table ResFin.Gen{p_Senior__1=>"vanhemmiksi"++"tutkijoiksi"})]};"vanhemmaksi tutkijaksi"; +lincat Sentence={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{p_Sentence__0=>table ResFin.DepGen{p_Sentence__1=>table ResFin.Num{p_Sentence__2=>table ResFin.Gen{p_Sentence__3=>str@0}}}}};"Sentence"; +lin Spouse:Letter.Author=\->{g=<ResFin.depgen>;n=<ResFin.depnum>;s=table ResFin.Num[(table ResFin.Gen["vaimosi""miehesi"])(table ResFin.Gen["vaimonne""miehenne"])]};"{ResFin.depgen}"; } resource ResFin={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResFin.Gen; param DepNum=depnum|cnum ResFin.Num; @@ -188,48 +233,56 @@ 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>};"vrt fretag"; -lin Competitor:Letter.NounPhrase=\->{s="vår"++("värsta"++"konkurrent");n=<ResSve.sg>;g=<ResSve.en>};"vr vrsta konkurrent"; -lin DarlingHe:Letter.Recipient=\->{s="älskling";n=<ResSve.sg>;x=<ResSve.masc>};"lskling"; -lin DarlingShe:Letter.Recipient=\->{s="älskling";n=<ResSve.sg>;x=<ResSve.fem>};"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};"Kre 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 vnlig hlsning &-)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 gtt 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 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 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 hlsningar &-)Author_0"; -lin JustHello:Letter.Heading=\Recipient@0->{s="Hej";n=Recipient@0.n;x=Recipient@0.x};"Hej"; +concrete Swedish of Letter=open ResSve in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''17:Str=table ResSve.Sex{p_Honour__3=>"jag"++("har"++("äran"++("att"++"meddela"))++("dig"++"att"))}; +oper A''18:Str=table ResSve.Sex{p_Honour__3=>"vi"++("har"++("äran"++("att"++"meddela"))++("er"++"att"))}; +oper A''28:Str=table ResSve.Sex{p_ILoveYou__3=>"jag"++("älskar"++"dig")}; +oper A''29:Str=table ResSve.Sex{p_ILoveYou__3=>"vi"++("älskar"++"er")}; +oper A''5:Str=<ResSve.cnum<ResSve.sg>>; +oper A''53:Str=<ResSve.cnum<ResSve.pl>>; +oper A''71:Str=table ResSve.Sex{p_Regret__3=>"jag"++("måste"++("tyvärr"++"meddela")++("dig"++"att"))}; +oper A''72:Str=table ResSve.Sex{p_Regret__3=>"vi"++("måste"++("tyvärr"++"meddela")++("er"++"att"))}; +lincat Author={n:ResSve.DepNum;s:(ResSve.Num=>(ResSve.Sex=>Str));x:ResSve.Sex}={n=<ResSve.depnum>;s=table ResSve.Num{p_Author__0=>table ResSve.Sex{p_Author__1=>str@0}};x=<ResSve.masc>};"Author"; +lin BePromoted:Letter.Sentence=\Position@0->{s=table ResSve.DepNum{p_BePromoted__0=>table ResSve.Sex{p_BePromoted__1=>table ResSve.Num[(table ResSve.Sex{p_BePromoted__3=>"du"++("har"++"blivit"++("befordrad"++("till"++Position@0.s!<ResSve.sg>!$p_BePromoted__3)))})(table ResSve.Sex{p_BePromoted__3=>"ni"++("har"++"blivit"++("befordrade"++("till"++Position@0.s!<ResSve.pl>!$p_BePromoted__3)))})]}}};"du (har blivit)befordrad till Position_0"; +lin ColleagueHe:Letter.Recipient=\->{n=<ResSve.sg>;s="kollega";x=<ResSve.masc>};"{ResSve.sg}"; +lin ColleagueShe:Letter.Recipient=\->{n=<ResSve.sg>;s="kollega";x=<ResSve.fem>};"{ResSve.sg}"; +lin ColleaguesHe:Letter.Recipient=\->{n=<ResSve.pl>;s="kollegor";x=<ResSve.masc>};"{ResSve.pl}"; +lin ColleaguesShe:Letter.Recipient=\->{n=<ResSve.pl>;s="kollegor";x=<ResSve.fem>};"{ResSve.pl}"; +lin Company:Letter.NounPhrase=\->{g=<ResSve.ett>;n=<ResSve.sg>;s="vårt"++"företag"};"{ResSve.ett}"; +lin Competitor:Letter.NounPhrase=\->{g=<ResSve.en>;n=<ResSve.sg>;s="vår"++("värsta"++"konkurrent")};"{ResSve.en}"; +lin DarlingHe:Letter.Recipient=\->{n=<ResSve.sg>;s="älskling";x=<ResSve.masc>};"{ResSve.sg}"; +lin DarlingShe:Letter.Recipient=\->{n=<ResSve.sg>;s="älskling";x=<ResSve.fem>};"{ResSve.sg}"; +lin Dean:Letter.Author=\->{n=Swedish.A''5;s=table ResSve.Num{p_Dean__0=>table ResSve.Sex{p_Dean__1=>"Dekanus"}};x=<ResSve.masc>};"{ResSve.cnum} {ResSve.sg}"; +lin DearRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s=table ResSve.Num[(table ResSve.Sex["Käre""Kära"]!(Recipient@0.x))(table ResSve.Sex{p_DearRec__1=>"Kära"}!(Recipient@0.x))]!(Recipient@0.n)++Recipient@0.s;x=Recipient@0.x};"Recipient_0"; +lincat Ending={n:ResSve.DepNum;s:(ResSve.Num=>(ResSve.Sex=>Str));x:ResSve.Sex}={n=<ResSve.depnum>;s=table ResSve.Num{p_Ending__0=>table ResSve.Sex{p_Ending__1=>str@0}};x=<ResSve.masc>};"Ending"; +lin FormalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResSve.Num{p_FormalEnding__0=>table ResSve.Sex{p_FormalEnding__1=>"Med"++("vänlig"++("hälsning"++"&-"))++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}};x=Author@0.x};"Author_0"; +lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResSve.DepNum{p_GoBankrupt__0=>table ResSve.Sex{p_GoBankrupt__1=>table ResSve.Num{p_GoBankrupt__2=>table ResSve.Sex{p_GoBankrupt__3=>NounPhrase@0.s++("har"++("gått"++("i"++"konkurs")))}}}}};"NounPhrase_0 har gtt i konkurs"; +lincat Heading={n:ResSve.Num;s:Str;x:ResSve.Sex}={n=<ResSve.sg>;s=str@0;x=<ResSve.masc>};"Heading"; +lin HelloRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hej"++Recipient@0.s;x=Recipient@0.x};"Recipient_0"; +lin Honour:Letter.Mode=\->{s=table ResSve.DepNum[(table ResSve.Sex{p_Honour__1=>table ResSve.Num[Swedish.A''17 Swedish.A''18]})(table ResSve.Sex{p_Honour__1=>table ResSve.Num[Swedish.A''17(table ResSve.Sex{p_Honour__3=>"jag"++("har"++("äran"++("att"++"meddela"))++("er"++"att"))})]})(table ResSve.Sex{p_Honour__1=>table ResSve.Num[(table ResSve.Sex{p_Honour__3=>"vi"++("har"++("äran"++("att"++"meddela"))++("dig"++"att"))})Swedish.A''18]})]};"jag (har ran att meddela)dig att"; +lin ILoveYou:Letter.Sentence=\->{s=table ResSve.DepNum[(table ResSve.Sex{p_ILoveYou__1=>table ResSve.Num[Swedish.A''28 Swedish.A''29]})(table ResSve.Sex{p_ILoveYou__1=>table ResSve.Num[Swedish.A''28(table ResSve.Sex{p_ILoveYou__3=>"jag"++("älskar"++"er")})]})(table ResSve.Sex{p_ILoveYou__1=>table ResSve.Num[(table ResSve.Sex{p_ILoveYou__3=>"vi"++("älskar"++"dig")})Swedish.A''29]})]};"jag lskar dig"; +lin InformalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResSve.Num{p_InformalEnding__0=>table ResSve.Sex{p_InformalEnding__1=>"Med"++("hälsningar"++"&-")++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}};x=Author@0.x};"Author_0"; +lin JustHello:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hej";x=Recipient@0.x};"Recipient_0"; 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"; +lincat Message={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{p_Message__0=>table ResSve.Sex{p_Message__1=>table ResSve.Num{p_Message__2=>table ResSve.Sex{p_Message__3=>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>};"vra kunder"; -lin PlainRec:Letter.Heading=\Recipient@0->{s=Recipient@0.s;n=Recipient@0.n;x=Recipient@0.x};"Recipient_0"; +lincat Mode={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{p_Mode__0=>table ResSve.Sex{p_Mode__1=>table ResSve.Num{p_Mode__2=>table ResSve.Sex{p_Mode__3=>str@0}}}}};"Mode"; +lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResSve.DepNum[(table ResSve.Sex[(table ResSve.Num{p_ModeSent__2=>table ResSve.Sex[(Mode@0.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.masc>)(Mode@0.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.fem>)]})(table ResSve.Num{p_ModeSent__2=>table ResSve.Sex[(Mode@0.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.masc>)(Mode@0.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.fem>)]})])(table ResSve.Sex[(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>)])])(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>)])])])(table ResSve.Sex[(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>)])])(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>)])])])]};"Mode_0 Sentence_1"; +lin Mother:Letter.Author=\->{n=Swedish.A''5;s=table ResSve.Num{p_Mother__0=>table ResSve.Sex{p_Mother__1=>"Mamma"}};x=<ResSve.fem>};"{ResSve.cnum} {ResSve.sg}"; +lin Name:Letter.Author=\String@0->{n=Swedish.A''5;s=table ResSve.Num{p_Name__0=>table ResSve.Sex{p_Name__1=>String@0.s}};x=<ResSve.masc>};"{ResSve.cnum} {ResSve.sg}"; +lin NameHe:Letter.Recipient=\String@0->{n=<ResSve.sg>;s=String@0.s;x=<ResSve.masc>};"{ResSve.sg}"; +lin NameShe:Letter.Recipient=\String@0->{n=<ResSve.sg>;s=String@0.s;x=<ResSve.fem>};"{ResSve.sg}"; +lincat NounPhrase={g:ResSve.Gen;n:ResSve.Num;s:Str}={g=<ResSve.en>;n=<ResSve.sg>;s=str@0};"NounPhrase"; +lin OurCustomers:Letter.NounPhrase=\->{g=<ResSve.en>;n=<ResSve.pl>;s="våra"++"kunder"};"{ResSve.en}"; +lin PlainRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s=Recipient@0.s;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 (mste tyvrr meddela)dig att"; -lin Senior:Letter.Position=\->{s=table ResSve.Num{(ResSve.sg)(ResSve.pl)=>table ResSve.Sex{(ResSve.masc)(ResSve.fem)=>"äldre"++"forskare"}}};"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"; +lincat Position={s:(ResSve.Num=>(ResSve.Sex=>Str))}={s=table ResSve.Num{p_Position__0=>table ResSve.Sex{p_Position__1=>str@0}}};"Position"; +lin President:Letter.Author=\->{n=Swedish.A''5;s=table ResSve.Num{p_President__0=>table ResSve.Sex{p_President__1=>"Presidenten"}};x=<ResSve.masc>};"{ResSve.cnum} {ResSve.sg}"; +lin ProjectManager:Letter.Position=\->{s=table ResSve.Num[(table ResSve.Sex{p_ProjectManager__1=>"projektchef"})(table ResSve.Sex{p_ProjectManager__1=>"projektchefer"})]};"projektchef"; +lincat Recipient={n:ResSve.Num;s:Str;x:ResSve.Sex}={n=<ResSve.sg>;s=str@0;x=<ResSve.masc>};"Recipient"; +lin Regret:Letter.Mode=\->{s=table ResSve.DepNum[(table ResSve.Sex{p_Regret__1=>table ResSve.Num[Swedish.A''71 Swedish.A''72]})(table ResSve.Sex{p_Regret__1=>table ResSve.Num[Swedish.A''71(table ResSve.Sex{p_Regret__3=>"jag"++("måste"++("tyvärr"++"meddela")++("er"++"att"))})]})(table ResSve.Sex{p_Regret__1=>table ResSve.Num[(table ResSve.Sex{p_Regret__3=>"vi"++("måste"++("tyvärr"++"meddela")++("dig"++"att"))})Swedish.A''72]})]};"jag (mste tyvrr meddela)dig att"; +lin Senior:Letter.Position=\->{s=table ResSve.Num{p_Senior__0=>table ResSve.Sex{p_Senior__1=>"äldre"++"forskare"}}};"ldre forskare"; +lincat Sentence={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{p_Sentence__0=>table ResSve.Sex{p_Sentence__1=>table ResSve.Num{p_Sentence__2=>table ResSve.Sex{p_Sentence__3=>str@0}}}}};"Sentence"; +lin Spouse:Letter.Author=\->{n=<ResSve.depnum>;s=table ResSve.Num[(table ResSve.Sex[("din"++"hustru")("din"++"man")])(table ResSve.Sex[("era"++"hustrur")("era"++"män")])];x=<ResSve.masc>};"{ResSve.depnum}"; } resource ResSve={flags coding=utf8;flags modulesize=n5;param DepNum=depnum|cnum ResSve.Num; param Gen=en|ett; @@ -237,48 +290,63 @@ 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 t)promu Position_0"; -lin ColleagueHe:Letter.Recipient=\->{s="collègue";n=<ResFra.sg>;g=<ResFra.masc>};"collgue"; -lin ColleagueShe:Letter.Recipient=\->{s="collègue";n=<ResFra.sg>;g=<ResFra.fem>};"collgue"; -lin ColleaguesHe:Letter.Recipient=\->{s="collègues";n=<ResFra.pl>;g=<ResFra.masc>};"collgues"; -lin ColleaguesShe:Letter.Recipient=\->{s="collègues";n=<ResFra.pl>;g=<ResFra.fem>};"collgues"; -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 comptiteur"; -lin DarlingHe:Letter.Recipient=\->{s="chéri";n=<ResFra.sg>;g=<ResFra.masc>};"chri"; -lin DarlingShe:Letter.Recipient=\->{s="chérie";n=<ResFra.sg>;g=<ResFra.fem>};"chrie"; -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 distingues &-)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"; +concrete French of Letter=open ResFra in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''12:Str=table ResFra.Num["mes""nos"]; +oper A''23:Str=table ResFra.Gen{p_Honour__3=>"j'ai"++("l'honneur"++"de"++("t'informer"++"que"))}; +oper A''24:Str=table ResFra.Gen{p_Honour__3=>"nous"++"avons"++("l'honneur"++"de"++("vous"++"informer"++"que"))}; +oper A''34:Str=table ResFra.Gen{p_ILoveYou__3=>"je"++"t'aime"}; +oper A''35:Str=table ResFra.Gen{p_ILoveYou__3=>"nous"++("vous"++"aimons")}; +oper A''5:Str=<ResFra.cgen<ResFra.masc>>; +oper A''51:Str=<ResFra.cgen<ResFra.fem>>; +oper A''6:Str=<ResFra.cnum<ResFra.sg>>; +oper A''65:Str=<ResFra.cnum<ResFra.pl>>; +oper A''86:Str=table ResFra.Gen[("je"++"suis"++("désolée"++("d'informer"++"que")))("je"++"suis"++("désolé"++("d'informer"++"que")))]; +oper A''87:Str=table ResFra.Gen[("nous"++"sommes"++("désolées"++("d'informer"++"que")))("nous"++"sommes"++("désolés"++("d'informer"++"que")))]; +oper A''89:Str=table ResFra.Gen{p_Regret__3=>"je"++"suis"++("désolé"++("d'informer"++"que"))}; +oper A''90:Str=table ResFra.Gen{p_Regret__3=>"nous"++"sommes"++("désolés"++("d'informer"++"que"))}; +oper A''92:Str=table ResFra.Gen{p_Regret__3=>"je"++"suis"++("désolée"++("d'informer"++"que"))}; +oper A''93:Str=table ResFra.Gen{p_Regret__3=>"nous"++"sommes"++("désolées"++("d'informer"++"que"))}; +lincat Author={g:ResFra.DepGen;n:ResFra.DepNum;s:(ResFra.Num=>(ResFra.Gen=>Str))}={g=<ResFra.depgen>;n=<ResFra.depnum>;s=table ResFra.Num{p_Author__0=>table ResFra.Gen{p_Author__1=>str@0}}};"Author"; +lin BePromoted:Letter.Sentence=\Position@0->{s=table ResFra.DepNum{p_BePromoted__0=>table ResFra.DepGen{p_BePromoted__1=>table ResFra.Num[(table ResFra.Gen[("tu"++("as"++"été")++("promu"++Position@0.s!<ResFra.sg>!<ResFra.masc>))("tu"++("as"++"été")++("promue"++Position@0.s!<ResFra.sg>!<ResFra.fem>))])(table ResFra.Gen[("vous"++("avez"++"été")++("promus"++Position@0.s!<ResFra.pl>!<ResFra.masc>))("vous"++("avez"++"été")++("promues"++Position@0.s!<ResFra.pl>!<ResFra.fem>))])]}}};"(tu as t)promu Position_0"; +lin ColleagueHe:Letter.Recipient=\->{g=<ResFra.masc>;n=<ResFra.sg>;s="collègue"};"{ResFra.masc}"; +lin ColleagueShe:Letter.Recipient=\->{g=<ResFra.fem>;n=<ResFra.sg>;s="collègue"};"{ResFra.fem}"; +lin ColleaguesHe:Letter.Recipient=\->{g=<ResFra.masc>;n=<ResFra.pl>;s="collègues"};"{ResFra.masc}"; +lin ColleaguesShe:Letter.Recipient=\->{g=<ResFra.fem>;n=<ResFra.pl>;s="collègues"};"{ResFra.fem}"; +lin Company:Letter.NounPhrase=\->{g=<ResFra.fem>;n=<ResFra.sg>;s="notre"++"entreprise"};"{ResFra.fem}"; +lin Competitor:Letter.NounPhrase=\->{g=<ResFra.masc>;n=<ResFra.sg>;s="notre"++("pire"++"compétiteur")};"{ResFra.masc}"; +lin DarlingHe:Letter.Recipient=\->{g=<ResFra.masc>;n=<ResFra.sg>;s="chéri"};"{ResFra.masc}"; +lin DarlingShe:Letter.Recipient=\->{g=<ResFra.fem>;n=<ResFra.sg>;s="chérie"};"{ResFra.fem}"; +lin Dean:Letter.Author=\->{g=French.A''5;n=French.A''6;s=table ResFra.Num{p_Dean__0=>table ResFra.Gen{p_Dean__1=>"le"++"doyen"}}};"{ResFra.cgen} {ResFra.masc}"; +lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResFra.Num[(table ResFra.Gen["cher""chère"]!(Recipient@0.g))(table ResFra.Gen["chers""chères"]!(Recipient@0.g))]!(Recipient@0.n)++Recipient@0.s};"Recipient_0"; +lincat Ending={g:ResFra.DepGen;n:ResFra.DepNum;s:(ResFra.Num=>(ResFra.Gen=>Str))}={g=<ResFra.depgen>;n=<ResFra.depnum>;s=table ResFra.Num{p_Ending__0=>table ResFra.Gen{p_Ending__1=>str@0}}};"Ending"; +lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFra.Num[(table ResFra.Gen{p_FormalEnding__1=>"avec"++(French.A''12!(table ResFra.DepNum[<ResFra.sg><ResFra.sg><ResFra.pl>]!(Author@0.n))++("salutations"++("distinguées"++"&-")++Author@0.s!<ResFra.sg>!$p_FormalEnding__1))})(table ResFra.Gen{p_FormalEnding__1=>"avec"++(French.A''12!(table ResFra.DepNum[<ResFra.pl><ResFra.sg><ResFra.pl>]!(Author@0.n))++("salutations"++("distinguées"++"&-")++Author@0.s!<ResFra.pl>!$p_FormalEnding__1))})]};"Author_0"; +lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResFra.DepNum{p_GoBankrupt__0=>table ResFra.DepGen{p_GoBankrupt__1=>table ResFra.Num{p_GoBankrupt__2=>table ResFra.Gen{p_GoBankrupt__3=>NounPhrase@0.s++(table ResFra.Num["a""ont"]!(NounPhrase@0.n)++("fait"++"banqueroute"))}}}}};"NounPhrase_0 a fait banqueroute"; +lincat Heading={g:ResFra.Gen;n:ResFra.Num;s:Str}={g=<ResFra.masc>;n=<ResFra.sg>;s=str@0};"Heading"; +lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Bonjour"++Recipient@0.s};"Recipient_0"; +lin Honour:Letter.Mode=\->{s=table ResFra.DepNum[(table ResFra.DepGen{p_Honour__1=>table ResFra.Num[French.A''23 French.A''24]})(table ResFra.DepGen{p_Honour__1=>table ResFra.Num[French.A''23(table ResFra.Gen{p_Honour__3=>"j'ai"++("l'honneur"++"de"++("vous"++"informer"++"que"))})]})(table ResFra.DepGen{p_Honour__1=>table ResFra.Num[(table ResFra.Gen{p_Honour__3=>"nous"++"avons"++("l'honneur"++"de"++("t'informer"++"que"))})French.A''24]})]};"j'ai (l'honneur de)t'informer que"; +lin ILoveYou:Letter.Sentence=\->{s=table ResFra.DepNum[(table ResFra.DepGen{p_ILoveYou__1=>table ResFra.Num[French.A''34 French.A''35]})(table ResFra.DepGen{p_ILoveYou__1=>table ResFra.Num[French.A''34(table ResFra.Gen{p_ILoveYou__3=>"je"++("vous"++"aime")})]})(table ResFra.DepGen{p_ILoveYou__1=>table ResFra.Num[(table ResFra.Gen{p_ILoveYou__3=>"nous"++"t'aimons"})French.A''35]})]};"je t'aime"; +lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFra.Num{p_InformalEnding__0=>table ResFra.Gen{p_InformalEnding__1=>"Amicalement"++"&-"++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0"; +lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Bonjour"};"Recipient_0"; 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"; +lincat Message={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{p_Message__0=>table ResFra.DepGen{p_Message__1=>table ResFra.Num{p_Message__2=>table ResFra.Gen{p_Message__3=>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"; +lincat Mode={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{p_Mode__0=>table ResFra.DepGen{p_Mode__1=>table ResFra.Num{p_Mode__2=>table ResFra.Gen{p_Mode__3=>str@0}}}}};"Mode"; +lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResFra.DepNum[(table ResFra.DepGen[(table ResFra.Num{p_ModeSent__2=>table ResFra.Gen{p_ModeSent__3=>Mode@0.s!<ResFra.depnum>!<ResFra.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResFra.depnum>!<ResFra.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResFra.Num{p_ModeSent__2=>table ResFra.Gen[(Mode@0.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.masc>)(Mode@0.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.fem>)]})(table ResFra.Num{p_ModeSent__2=>table ResFra.Gen[(Mode@0.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.masc>)(Mode@0.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.fem>)]})])(table ResFra.DepGen[(table ResFra.Num[(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''6!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3++Sentence@1.s!French.A''6!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3})(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''6!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3++Sentence@1.s!French.A''6!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3})])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.fem>)])])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.fem>)])])])(table ResFra.DepGen[(table ResFra.Num[(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''65!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3++Sentence@1.s!French.A''65!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3})(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''65!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3++Sentence@1.s!French.A''65!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3})])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.fem>)])])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.fem>)])])])]};"Mode_0 Sentence_1"; +lin Mother:Letter.Author=\->{g=French.A''51;n=French.A''6;s=table ResFra.Num{p_Mother__0=>table ResFra.Gen{p_Mother__1=>"maman"}}};"{ResFra.cgen} {ResFra.fem}"; +lin Name:Letter.Author=\String@0->{g=French.A''5;n=French.A''6;s=table ResFra.Num{p_Name__0=>table ResFra.Gen{p_Name__1=>String@0.s}}};"{ResFra.cgen} {ResFra.masc}"; +lin NameHe:Letter.Recipient=\String@0->{g=<ResFra.masc>;n=<ResFra.sg>;s=String@0.s};"{ResFra.masc}"; +lin NameShe:Letter.Recipient=\String@0->{g=<ResFra.fem>;n=<ResFra.sg>;s=String@0.s};"{ResFra.fem}"; +lincat NounPhrase={g:ResFra.Gen;n:ResFra.Num;s:Str}={g=<ResFra.masc>;n=<ResFra.sg>;s=str@0};"NounPhrase"; +lin OurCustomers:Letter.NounPhrase=\->{g=<ResFra.masc>;n=<ResFra.pl>;s="nos"++"clients"};"{ResFra.masc}"; +lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"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 prsident"; -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)dsole 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"; +lincat Position={s:(ResFra.Num=>(ResFra.Gen=>Str))}={s=table ResFra.Num{p_Position__0=>table ResFra.Gen{p_Position__1=>str@0}}};"Position"; +lin President:Letter.Author=\->{g=French.A''5;n=French.A''6;s=table ResFra.Num{p_President__0=>table ResFra.Gen{p_President__1=>"le"++"président"}}};"{ResFra.cgen} {ResFra.masc}"; +lin ProjectManager:Letter.Position=\->{s=table ResFra.Num[(table ResFra.Gen{p_ProjectManager__1=>"chef"++("de"++"projet")})(table ResFra.Gen{p_ProjectManager__1=>"chefs"++("de"++"projets")})]};"chef de projet"; +lincat Recipient={g:ResFra.Gen;n:ResFra.Num;s:Str}={g=<ResFra.masc>;n=<ResFra.sg>;s=str@0};"Recipient"; +lin Regret:Letter.Mode=\->{s=table ResFra.DepNum[(table ResFra.DepGen[(table ResFra.Num[French.A''86 French.A''87])(table ResFra.Num[French.A''89 French.A''90])(table ResFra.Num[French.A''92 French.A''93])])(table ResFra.DepGen[(table ResFra.Num{p_Regret__2=>French.A''86})(table ResFra.Num{p_Regret__2=>French.A''89})(table ResFra.Num{p_Regret__2=>French.A''92})])(table ResFra.DepGen[(table ResFra.Num{p_Regret__2=>French.A''87})(table ResFra.Num{p_Regret__2=>French.A''90})(table ResFra.Num{p_Regret__2=>French.A''93})])]};"(je suis)dsole d'informer que"; +lin Senior:Letter.Position=\->{s=table ResFra.Num[(table ResFra.Gen{p_Senior__1=>"responsable"++"scientifique"})(table ResFra.Gen{p_Senior__1=>"responsables"++"scientifiques"})]};"responsable scientifique"; +lincat Sentence={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{p_Sentence__0=>table ResFra.DepGen{p_Sentence__1=>table ResFra.Num{p_Sentence__2=>table ResFra.Gen{p_Sentence__3=>str@0}}}}};"Sentence"; +lin Spouse:Letter.Author=\->{g=<ResFra.depgen>;n=<ResFra.depnum>;s=table ResFra.Num[(table ResFra.Gen[("ta"++"femme")("ton"++"mari")])(table ResFra.Gen[("vos"++"femmes")("vos"++"maris")])]};"{ResFra.depgen}"; } resource ResFra={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResFra.Gen; param DepNum=depnum|cnum ResFra.Num; @@ -286,48 +354,56 @@ 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"; +concrete English of Letter=open ResEng in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''14:Str=table ResEng.Sex{p_Honour__3=>"I"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))}; +oper A''15:Str=table ResEng.Sex{p_Honour__3=>"we"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))}; +oper A''23:Str=table ResEng.Sex{p_ILoveYou__3=>"I"++("love"++"you")}; +oper A''24:Str=table ResEng.Sex{p_ILoveYou__3=>"we"++("love"++"you")}; +oper A''4:Str=<ResEng.cnum<ResEng.sg>>; +oper A''46:Str=<ResEng.cnum<ResEng.pl>>; +oper A''64:Str=table ResEng.Sex{p_Regret__3=>"I"++("am"++("sorry"++("to"++("inform"++("you"++"that")))))}; +oper A''65:Str=table ResEng.Sex{p_Regret__3=>"we"++("are"++("sorry"++("to"++("inform"++("you"++"that")))))}; +lincat Author={n:ResEng.DepNum;s:(ResEng.Num=>(ResEng.Sex=>Str));x:ResEng.Sex}={n=<ResEng.depnum>;s=table ResEng.Num{p_Author__0=>table ResEng.Sex{p_Author__1=>str@0}};x=<ResEng.masc>};"Author"; +lin BePromoted:Letter.Sentence=\Position@0->{s=table ResEng.DepNum{p_BePromoted__0=>table ResEng.Sex{p_BePromoted__1=>table ResEng.Num{p_BePromoted__2=>table ResEng.Sex{p_BePromoted__3=>"you"++("have"++("been"++("promoted"++"to")))++Position@0.s!$p_BePromoted__2!$p_BePromoted__3}}}}};"(you have been promoted to)Position_0"; +lin ColleagueHe:Letter.Recipient=\->{n=<ResEng.sg>;s="colleague";x=<ResEng.masc>};"{ResEng.sg}"; +lin ColleagueShe:Letter.Recipient=\->{n=<ResEng.sg>;s="colleague";x=<ResEng.fem>};"{ResEng.sg}"; +lin ColleaguesHe:Letter.Recipient=\->{n=<ResEng.pl>;s="colleagues";x=<ResEng.masc>};"{ResEng.pl}"; +lin ColleaguesShe:Letter.Recipient=\->{n=<ResEng.pl>;s="colleagues";x=<ResEng.fem>};"{ResEng.pl}"; +lin Company:Letter.NounPhrase=\->{n=<ResEng.sg>;s="our"++"company"};"{ResEng.sg}"; +lin Competitor:Letter.NounPhrase=\->{n=<ResEng.sg>;s="our"++("worst"++"competitor")};"{ResEng.sg}"; +lin DarlingHe:Letter.Recipient=\->{n=<ResEng.sg>;s="darling";x=<ResEng.masc>};"{ResEng.sg}"; +lin DarlingShe:Letter.Recipient=\->{n=<ResEng.sg>;s="darling";x=<ResEng.fem>};"{ResEng.sg}"; +lin Dean:Letter.Author=\->{n=English.A''4;s=table ResEng.Num{p_Dean__0=>table ResEng.Sex{p_Dean__1=>"the"++"Dean"}};x=<ResEng.masc>};"{ResEng.cnum} {ResEng.sg}"; +lin DearRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Dear"++Recipient@0.s;x=Recipient@0.x};"Recipient_0"; +lincat Ending={n:ResEng.DepNum;s:(ResEng.Num=>(ResEng.Sex=>Str));x:ResEng.Sex}={n=<ResEng.depnum>;s=table ResEng.Num{p_Ending__0=>table ResEng.Sex{p_Ending__1=>str@0}};x=<ResEng.masc>};"Ending"; +lin FormalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResEng.Num{p_FormalEnding__0=>table ResEng.Sex{p_FormalEnding__1=>"Sincerely"++("yours"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}};x=Author@0.x};"Author_0"; +lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResEng.DepNum{p_GoBankrupt__0=>table ResEng.Sex{p_GoBankrupt__1=>table ResEng.Num{p_GoBankrupt__2=>table ResEng.Sex{p_GoBankrupt__3=>NounPhrase@0.s++(table ResEng.Num["has""have"]!(NounPhrase@0.n)++("gone"++"bankrupt"))}}}}};"NounPhrase_0 has gone bankrupt"; +lincat Heading={n:ResEng.Num;s:Str;x:ResEng.Sex}={n=<ResEng.sg>;s=str@0;x=<ResEng.masc>};"Heading"; +lin HelloRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hello"++Recipient@0.s;x=Recipient@0.x};"Recipient_0"; +lin Honour:Letter.Mode=\->{s=table ResEng.DepNum[(table ResEng.Sex{p_Honour__1=>table ResEng.Num[English.A''14 English.A''15]})(table ResEng.Sex{p_Honour__1=>table ResEng.Num{p_Honour__2=>English.A''14}})(table ResEng.Sex{p_Honour__1=>table ResEng.Num{p_Honour__2=>English.A''15}})]};"I have the honour to inform you that"; +lin ILoveYou:Letter.Sentence=\->{s=table ResEng.DepNum[(table ResEng.Sex{p_ILoveYou__1=>table ResEng.Num[English.A''23 English.A''24]})(table ResEng.Sex{p_ILoveYou__1=>table ResEng.Num{p_ILoveYou__2=>English.A''23}})(table ResEng.Sex{p_ILoveYou__1=>table ResEng.Num{p_ILoveYou__2=>English.A''24}})]};"I love you"; +lin InformalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResEng.Num{p_InformalEnding__0=>table ResEng.Sex{p_InformalEnding__1=>"With"++("best"++("regards"++"&-"))++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}};x=Author@0.x};"Author_0"; +lin JustHello:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hello";x=Recipient@0.x};"Recipient_0"; 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"; +lincat Message={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{p_Message__0=>table ResEng.Sex{p_Message__1=>table ResEng.Num{p_Message__2=>table ResEng.Sex{p_Message__3=>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"; +lincat Mode={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{p_Mode__0=>table ResEng.Sex{p_Mode__1=>table ResEng.Num{p_Mode__2=>table ResEng.Sex{p_Mode__3=>str@0}}}}};"Mode"; +lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResEng.DepNum[(table ResEng.Sex[(table ResEng.Num{p_ModeSent__2=>table ResEng.Sex[(Mode@0.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.masc>)(Mode@0.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.fem>)]})(table ResEng.Num{p_ModeSent__2=>table ResEng.Sex[(Mode@0.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.masc>)(Mode@0.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.fem>)]})])(table ResEng.Sex[(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>)])])(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>)])])])(table ResEng.Sex[(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>)])])(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>)])])])]};"Mode_0 Sentence_1"; +lin Mother:Letter.Author=\->{n=English.A''4;s=table ResEng.Num{p_Mother__0=>table ResEng.Sex{p_Mother__1=>"Mom"}};x=<ResEng.fem>};"{ResEng.cnum} {ResEng.sg}"; +lin Name:Letter.Author=\String@0->{n=English.A''4;s=table ResEng.Num{p_Name__0=>table ResEng.Sex{p_Name__1=>String@0.s}};x=<ResEng.masc>};"{ResEng.cnum} {ResEng.sg}"; +lin NameHe:Letter.Recipient=\String@0->{n=<ResEng.sg>;s=String@0.s;x=<ResEng.masc>};"{ResEng.sg}"; +lin NameShe:Letter.Recipient=\String@0->{n=<ResEng.sg>;s=String@0.s;x=<ResEng.fem>};"{ResEng.sg}"; +lincat NounPhrase={n:ResEng.Num;s:Str}={n=<ResEng.sg>;s=str@0};"NounPhrase"; +lin OurCustomers:Letter.NounPhrase=\->{n=<ResEng.pl>;s="our"++"customers"};"{ResEng.pl}"; +lin PlainRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s=Recipient@0.s;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"; +lincat Position={s:(ResEng.Num=>(ResEng.Sex=>Str))}={s=table ResEng.Num{p_Position__0=>table ResEng.Sex{p_Position__1=>str@0}}};"Position"; +lin President:Letter.Author=\->{n=English.A''4;s=table ResEng.Num{p_President__0=>table ResEng.Sex{p_President__1=>"the"++"President"}};x=<ResEng.masc>};"{ResEng.cnum} {ResEng.sg}"; +lin ProjectManager:Letter.Position=\->{s=table ResEng.Num[(table ResEng.Sex{p_ProjectManager__1=>"a"++("project"++"manager")})(table ResEng.Sex{p_ProjectManager__1=>"project"++"managers"})]};"a project manager"; +lincat Recipient={n:ResEng.Num;s:Str;x:ResEng.Sex}={n=<ResEng.sg>;s=str@0;x=<ResEng.masc>};"Recipient"; +lin Regret:Letter.Mode=\->{s=table ResEng.DepNum[(table ResEng.Sex{p_Regret__1=>table ResEng.Num[English.A''64 English.A''65]})(table ResEng.Sex{p_Regret__1=>table ResEng.Num{p_Regret__2=>English.A''64}})(table ResEng.Sex{p_Regret__1=>table ResEng.Num{p_Regret__2=>English.A''65}})]};"I am sorry to inform you that"; +lin Senior:Letter.Position=\->{s=table ResEng.Num[(table ResEng.Sex{p_Senior__1=>"a"++("senior"++"fellow")})(table ResEng.Sex{p_Senior__1=>"senior"++"fellows"})]};"a senior fellow"; +lincat Sentence={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{p_Sentence__0=>table ResEng.Sex{p_Sentence__1=>table ResEng.Num{p_Sentence__2=>table ResEng.Sex{p_Sentence__3=>str@0}}}}};"Sentence"; +lin Spouse:Letter.Author=\->{n=<ResEng.depnum>;s=table ResEng.Num[(table ResEng.Sex[("your"++"wife")("your"++"husband")])(table ResEng.Sex[("your"++"wives")("your"++"husbands")])];x=<ResEng.masc>};"{ResEng.depnum}"; } resource ResEng={flags coding=utf8;flags modulesize=n4;param DepNum=depnum|cnum ResEng.Num; param Kas=nom|acc; |
