summaryrefslogtreecommitdiff
path: root/examples/letter/LetterFre.gf
diff options
context:
space:
mode:
authorJohn J. Camilleri <john@digitalgrammars.com>2018-07-04 10:09:58 +0200
committerJohn J. Camilleri <john@digitalgrammars.com>2018-07-04 10:09:58 +0200
commitc6f4edaea5f1074ba682fac5d711016f0136998f (patch)
treebb49b8bac2e3cafd3c1f997115bf5bb841554eab /examples/letter/LetterFre.gf
parent00476ae38687fb7d33081130822cbd4e8f34cfd3 (diff)
Remove examples directory; these now live in gf-contrib
All changes have been reflected in the gf-contrib repository: https://github.com/GrammaticalFramework/gf-contrib Now, for WebSetup to build the example grammars, one must have gf-contrib cloned in the same top-level directory as GF. When this isn't the case, WebSetup displays a notice without failing.
Diffstat (limited to 'examples/letter/LetterFre.gf')
-rw-r--r--examples/letter/LetterFre.gf171
1 files changed, 0 insertions, 171 deletions
diff --git a/examples/letter/LetterFre.gf b/examples/letter/LetterFre.gf
deleted file mode 100644
index 4eb40e6d0..000000000
--- a/examples/letter/LetterFre.gf
+++ /dev/null
@@ -1,171 +0,0 @@
-concrete LetterFre of Letter = {
-
---1 An French Concrete Syntax for Business and Love Letters
---
--- This file defines the French syntax of the grammar set
--- whose abstract syntax is $letter.Abs.gf$.
-
-
-flags lexer=textlit ; unlexer=textlit ; coding=utf8;
-
-param Gen = masc | fem ;
-param Num = sg | pl ;
-param Kas = nom | acc ;
-param DepNum = depnum | cnum Num ;
-param DepGen = depgen | cgen Gen ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Gen => Str} ; -- needs Num and Gen
-oper SSSrc = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-oper SSSrc2 = {s : Num => Gen => Str ; n : DepNum ; g : DepGen} ; -- gives&needs
-oper SSDep2 = {s : DepNum => DepGen => Num => Gen => Str} ; -- needs Auth's&Rec's
-oper SSSrcGen = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
- cher : Num => Gen => Tok =
- table {n => table {masc => regNom "cher" ! n ; fem => regNom "chère" ! n}};
- regAdj : Str -> Gen => Num => Str = \s ->
- table {masc => regNom s ; fem => regNom (s + "e")} ;
- regNom : Str -> Num => Str = \s -> table {sg => s ; pl => s + "s"} ;
- egosum : Num => Str =
- table {sg => "je" ++ "suis" ; pl => "nous" ++ "sommes"} ;
- egohabeo : Num => Str =
- table {sg => "j'ai" ; pl => "nous" ++ "avons"} ;
- fuisti : Num => Str =
- table {sg => "tu" ++ "as" ++ "été"; pl => "vous" ++ "avez" ++ "été"} ;
- quePrep = "que" ; ----
- tuinformare : Num => Str =
- table {sg => "t'informer"; pl => "vous" ++ "informer"} ;
-
- avoir : Num => Str =
- table {sg => "a"; pl => "ont"} ;
-
- mes : Num => Str = table {sg => "mes" ; pl => "nos"} ;
-
- teamo : Num => Num => Str = table {
- sg => table {sg => "je" ++ "t'aime" ;
- pl => "je" ++ "vous" ++ "aime"} ;
- pl => table {sg => "nous" ++ "t'aimons" ;
- pl => "nous" ++ "vous" ++ "aimons"}
- } ;
-
- constNG : Str -> Num -> Gen -> SSSrc2 = \str,num,gen ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; g = cgen gen} ;
-
- dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum sg => sg ;
- cnum pl => pl
- } ;
- dep2gen : DepGen -> Gen -> Gen = \dg,g -> case dg of {
- depgen => case g of {
- masc => fem ;
- fem => masc
- }; -- negative dependence: the author is of opposite sex
- cgen cg => cg
- } ;
-
- RET = "" ; -- &-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcGen ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss (head.s ++ "," ++ RET ++
- mess.s ! end.n ! end.g ! head.n ! head.g ++ "." ++ RET ++
- end.s ! head.n ! head.g) ;
-
-DearRec rec = {s = cher ! rec.n ! rec.g ++ rec.s ; n = rec.n ; g = rec.g} ;
-PlainRec rec = rec ;
-HelloRec rec = {s = "Bonjour" ++ rec.s ; n = rec.n ; g = rec.g} ;
-JustHello rec = {s = "Bonjour" ; n = rec.n ; g = rec.g} ;
-
-ModeSent mode sent =
- {s =
- table {na => table {xa => table {nr => table {xr =>
- mode.s ! na ! xa ! nr ! xr ++ sent.s ! na ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s =
- table {n => table {g =>
- "avec" ++ mes ! dep2num auth.n n ++
- ["salutations distinguées"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-InformalEnding auth =
- {s = table {n => table {g => ["Amicalement"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-
-ColleaguesHe = {s = regNom "collègue" ! pl ; n = pl ; g = masc} ;
-ColleaguesShe = {s = regNom "collègue" ! pl ; n = pl ; g = fem} ;
-ColleagueHe = {s = regNom "collègue" ! sg ; n = sg ; g = masc} ;
-ColleagueShe = {s = regNom "collègue" ! sg ; n = sg ; g = fem} ;
-DarlingHe = {s = "chéri" ; n = sg ; g = masc} ;
-DarlingShe = {s = "chérie" ; n = sg ; g = fem} ;
-NameHe s = {s = s.s ; n = sg ; g = masc} ;
-NameShe s = {s = s.s ; n = sg ; g = fem} ;
-
-Honour = {s =
- table {na => table {xa => table {nr => table {xr =>
- egohabeo ! dep2num na nr ++
- ["l'honneur de"] ++ tuinformare ! nr ++ quePrep}}}}
- } ;
-
-Regret = {s =
- table {na => table {ga => table {nr => table {gr =>
- let {dga = dep2gen ga gr ; dna = dep2num na nr} in
- egosum ! dna ++ regAdj "désolé" ! dga ! dna ++
- ["d'informer"] ++ quePrep}}}}
- } ;
-
-
-President = constNG ["le président"] sg masc ;
-Mother = constNG ["maman"] sg fem ;
-Spouse = {s = table {
- sg => table {fem => ["ton mari"] ; masc => ["ta femme"]} ;
- pl => table {fem => ["vos maris"] ; masc => ["vos femmes"]}
- } ; n = depnum ; g = depgen} ;
-Dean = constNG ["le doyen"] sg masc ;
-Name s = constNG s.s sg masc ; ---
-
-BePromoted pos = {s =
- table {na => table {xa => table {nr => table {xr =>
- fuisti ! nr ++ regAdj "promu" ! xr ! nr ++
- pos.s ! nr ! xr}}}}
- } ;
-GoBankrupt np = {s =
- table {na => table {xa => table {nr => table {xr =>
- np.s ++ avoir ! np.n ++ ["fait banqueroute"]}}}}
- } ;
-ILoveYou = {s =
- table {na => table {xa => table {nr => table {xr =>
- teamo ! dep2num na nr ! nr}}}}
- } ;
-
-Company = {s = ["notre entreprise"] ; n = sg ; g = fem} ;
-Competitor = {s = ["notre pire compétiteur"] ; n = sg ; g = masc} ;
-OurCustomers = {s = ["nos clients"] ; n = pl ; g = masc} ;
-
-Senior = {s = table {sg => table {g => ["responsable scientifique"]} ;
- pl => table {g => ["responsables scientifiques"]}
- }
- } ;
-
-ProjectManager = {s =
- table {
- sg => table {_ => ["chef de projet"]} ;
- pl => table {_ => ["chefs de projets"]}
- }} ;
-}