mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 17:42:51 -06:00
Finished Finnish and German.
This commit is contained in:
@@ -566,6 +566,46 @@ getHarmony : Str -> Str = \u ->
|
||||
}
|
||||
} ;
|
||||
|
||||
mikaanPron : Number => Case => Str = \\n,c =>
|
||||
case <n,c> of {
|
||||
<Sg,Nom> => "mikään" ;
|
||||
<_,Part> => "mitään" ;
|
||||
<Sg,Gen> => "minkään" ;
|
||||
<Pl,Nom> => "mitkään" ;
|
||||
<Pl,Gen> => "mittenkään" ;
|
||||
<_,Ess> => "minään" ;
|
||||
<_,Iness> => "missään" ;
|
||||
<_,Elat> => "mistään" ;
|
||||
<_,Adess> => "millään" ;
|
||||
<_,Ablat> => "miltään" ;
|
||||
_ => mikaInt ! n ! c + "kään"
|
||||
} ;
|
||||
|
||||
kukaanPron : Number => Case => Str =
|
||||
table {
|
||||
Sg => table {
|
||||
Nom => "kukaan" ;
|
||||
Part => "ketään" ;
|
||||
Ess => "kenään" ;
|
||||
Iness => "kessään" ;
|
||||
Elat => "kestään" ;
|
||||
Illat => "kehenkään" ;
|
||||
Adess => "kellään" ;
|
||||
Ablat => "keltään" ;
|
||||
c => kukaInt ! Sg ! c + "kään"
|
||||
} ;
|
||||
Pl => table {
|
||||
Nom => "ketkään" ;
|
||||
Part => "keitään" ;
|
||||
Ess => "keinään" ;
|
||||
Iness => "keissään" ;
|
||||
Elat => "keistään" ;
|
||||
Adess => "keillään" ;
|
||||
Ablat => "keiltään" ;
|
||||
c => kukaInt ! Pl ! c + "kään"
|
||||
}
|
||||
} ;
|
||||
|
||||
jokuPron : Number => Case => Str =
|
||||
let
|
||||
ku = sPuu "ku" ;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
-- expressions of basic categories: nouns, adjectives, verbs.
|
||||
--
|
||||
-- Closed categories (determiners, pronouns, conjunctions) are
|
||||
-- accessed through the resource syntax API, $resource.Abs.gf$.
|
||||
-- accessed through the resource syntax API, $Structural.gf$.
|
||||
--
|
||||
-- The main difference with $morpho.Fin.gf$ is that the types
|
||||
-- referred to are compiled resource grammar types. We have moreover
|
||||
@@ -19,7 +19,7 @@
|
||||
--
|
||||
-- The following modules are presupposed:
|
||||
|
||||
resource ParadigmsFin = open (Predef=Predef), Prelude, SyntaxFin, Finnish in {
|
||||
resource ParadigmsFin = open (Predef=Predef), Prelude, SyntaxFin, ResourceFin in {
|
||||
|
||||
--2 Parameters
|
||||
--
|
||||
@@ -241,7 +241,7 @@ oper
|
||||
fGen = \n -> mkFun n genitive ;
|
||||
mkPN n = mkProperName n ** {lock_PN = <>} ;
|
||||
|
||||
mkAdj1 = \x -> {s = x.s ; lock_Adj1 = <>} ;
|
||||
mkAdj1 = \x -> noun2adj x ** {lock_Adj1 = <>} ;
|
||||
mkAdj2 = \x,c -> mkAdj1 x ** {c = NPCase c ; lock_Adj2 = <>} ;
|
||||
mkAdjDeg x y z = regAdjDegr x y z ** {lock_AdjDeg = <>} ;
|
||||
|
||||
|
||||
3
lib/resource-0.6/finnish/ResourceFin.gf
Normal file
3
lib/resource-0.6/finnish/ResourceFin.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
--# -path=.:../abstract:../../prelude
|
||||
|
||||
resource ResourceFin = reuse StructuralFin ;
|
||||
@@ -45,6 +45,19 @@ concrete StructuralFin of Structural =
|
||||
p = NP3
|
||||
} ;
|
||||
|
||||
--- This two don't work in Finnish except out of context
|
||||
--- ("kenet tapasitte - emme ketään").
|
||||
|
||||
NobodyNP = {
|
||||
s = \\f => "ei" ++ kukaanPron ! Sg ! (npForm2Case Sg f) ;
|
||||
n = Sg ;
|
||||
p = NP3
|
||||
} ;
|
||||
NothingNP = {
|
||||
s = \\f => "ei" ++ mikaanPron ! Sg ! (npForm2Case Sg f) ;
|
||||
n = Sg ;
|
||||
p = NP3
|
||||
} ;
|
||||
|
||||
EveryDet = jokainenDet ;
|
||||
AllDet = mkDeterminer singular (kaikkiPron Sg) ;
|
||||
@@ -56,6 +69,17 @@ concrete StructuralFin of Structural =
|
||||
ManyDet = mkDeterminer singular moniPron ;
|
||||
MuchDet = mkDeterminer singular (caseTable singular (sNauris "runsasta")) ;
|
||||
|
||||
--- The following 4 only work this way in Finnish if used outside sentences
|
||||
--- with a verb.
|
||||
|
||||
AnyDet = mkDeterminerGen Sg (mikaanPron ! Sg) (kukaanPron ! Sg) ;
|
||||
AnysDet n = mkDeterminerGenNum n (mikaanPron ! Pl) (kukaanPron ! Pl) ;
|
||||
NoDet = mkDeterminerGen Sg
|
||||
(\\c => "ei" ++ mikaanPron ! Sg ! c)
|
||||
(\\c => "ei" ++ kukaanPron ! Sg ! c) ;
|
||||
NosDet n = mkDeterminerGenNum n
|
||||
(\\c => "ei" ++ mikaanPron ! Pl ! c)
|
||||
(\\c => "ei" ++ kukaanPron ! Pl ! c) ;
|
||||
|
||||
ThisDet = mkDeterminer Sg (\\c => pronTama.s ! PCase c) ;
|
||||
ThatDet = mkDeterminer Sg (\\c => pronTuo.s ! PCase c) ;
|
||||
@@ -65,6 +89,8 @@ concrete StructuralFin of Structural =
|
||||
SomeDet = mkDeterminerGen Sg (jokinPron ! Sg) (jokuPron ! Sg) ;
|
||||
SomesDet n = mkDeterminerGenNum n (jokinPron ! Pl) (jokuPron ! Pl) ;
|
||||
|
||||
--- These two don't work in Finnish sentences.
|
||||
|
||||
|
||||
HowIAdv = ss "kuinka" ;
|
||||
WhenIAdv = ss "koska" ;
|
||||
|
||||
Reference in New Issue
Block a user