summaryrefslogtreecommitdiff
path: root/examples/phrasebook/SentencesFin.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2012-12-07 15:25:27 +0000
committeraarne <aarne@chalmers.se>2012-12-07 15:25:27 +0000
commitc4931fccaf6ae5ed2c6d164f53f13d5d55c76a72 (patch)
treed31c887cb54cbde44f12fc8f6d5cb1b6865458b2 /examples/phrasebook/SentencesFin.gf
parent46b634f2564bb1ed849008fc6fcc4bfe3ab45ac4 (diff)
fixed external case for countries in PhrasebookFin
Diffstat (limited to 'examples/phrasebook/SentencesFin.gf')
-rw-r--r--examples/phrasebook/SentencesFin.gf17
1 files changed, 12 insertions, 5 deletions
diff --git a/examples/phrasebook/SentencesFin.gf b/examples/phrasebook/SentencesFin.gf
index c704c4e57..608a42233 100644
--- a/examples/phrasebook/SentencesFin.gf
+++ b/examples/phrasebook/SentencesFin.gf
@@ -3,7 +3,9 @@ concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale,
NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl,
- GObjectPlease
+ GObjectPlease,
+ NPNationality, mkNPNationality,
+ Country, PCountry
] with
(Syntax = SyntaxFin),
(Symbolic = SymbolicFin),
@@ -12,16 +14,21 @@ concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
flags optimize = noexpand ;
+ lincat
+ Country = {np : NP ; isExternal : Bool} ;
+ lin
+ PCountry x = mkPhrase (mkUtt x.np) ;
oper
+ NPNationality = {lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} ;
NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
- CNPlace = {name : CN ; at : Prep ; to : Prep ; from : Prep ; isPl : Bool} ;
+ CNPlace = {name : CN ; isExternal : Bool ; isPl : Bool} ;
placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
let name : NP = mkNP det kind.name in {
name = name ;
- at = mkAdv kind.at name ;
- to = mkAdv kind.to name ;
- from = mkAdv kind.from name
+ at = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.adessive P.inessive)) name ;
+ to = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.allative P.illative)) name ;
+ from = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.ablative P.elative)) name
} ;
lin