Files
gf-core/examples/messages/MessagesFre.gf
2010-06-21 16:50:40 +00:00

74 lines
1.7 KiB
Plaintext

--# -path=.:../phrasebook:present
concrete MessagesFre of Messages =
WordsFre -
[IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, YouPolFemale],
GreetingsFre **
open
SyntaxFre,
ParadigmsFre,
Prelude,
(Phr = PhrasebookFre)
in {
lincat
Message = Text ;
Heading = {s : Text ; g : Gender ; isPol : Bool} ;
Body = {s : Gender => Gender => Bool => Text} ;
Ending = {s : Text ; g : Gender} ;
Statement = {s : Gender => Gender => Bool => Text} ;
Recipient = NP ;
Sender = NP ;
Title = CN ;
Role = Phr.NPPerson ;
lin
Msg h b e = mkText h.s (mkText (b.s ! h.g ! e.g ! h.isPol) e.s) ;
HHello n = {
s = mkText (strText "bonjour") (mkText (mkPhrase (mkUtt n)) (strText ",")) ;
g = n.a.g ; ----Res
isPol = n.isPol ----Res
} ;
HDear r = {
s = mkText
(mkPhrase (mkUtt (mkCN (prefixA (mkA "cher")) (nameCN r))))
(strText ",") ;
g = r.a.g ; ----Res
isPol = r.isPol ----Res
} ;
BOne p = p ;
BMore s b = {s = \\i,y,p => mkText (s.s ! i ! y ! p) (b.s ! i ! y ! p)} ;
ERegards n = {
s = mkText (strText "avec salutations") (mkPhrase (mkUtt n)) ;
g = n.a.g ----Res
} ;
SSentence s = {s = \\i,y,p => mkText s} ;
SQuestion s = {s = \\i,y,p => mkText s} ;
SGreeting s = {s = \\i,y,p => mkText s exclMarkPunct} ;
RName n = n ;
RTitle t n = cnNP (mkCN t n) ;
SName n = n ;
TMr = mkCN (mkN "monsieur" "messieurs" masculine) ;
TMs = mkCN (mkN "madame" "mesdames" feminine) ;
RI = Phr.IMale ;
RYou = Phr.YouFamMale ;
PRole r = r ;
oper
strText : Str -> Text = \s -> lin Text {s = s} ;
---- TODO in RG and its API
nameCN : NP -> CN = \n -> mkCN (mkN "") n ;
cnNP : CN -> NP = \cn -> mkNP (mkPN (cn.s ! singular) cn.g) ;
}