diff --git a/lib/src/Make.hs b/lib/src/Make.hs index c3a6530ba..2be909e95 100644 --- a/lib/src/Make.hs +++ b/lib/src/Make.hs @@ -33,6 +33,7 @@ langsCoding = [ (("bulgarian","Bul"),""), (("catalan", "Cat"),""), (("danish", "Dan"),""), + (("dutch", "Dut"),""), (("english", "Eng"),""), (("finnish", "Fin"),""), (("french", "Fre"),""), diff --git a/lib/src/api/CombinatorsDut.gf b/lib/src/api/CombinatorsDut.gf new file mode 100644 index 000000000..0ba83a7fa --- /dev/null +++ b/lib/src/api/CombinatorsDut.gf @@ -0,0 +1,6 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsDut = Combinators with + (Cat = CatDut), + (Structural = StructuralDut), + (Constructors = ConstructorsDut) ; diff --git a/lib/src/api/ConstructorsDut.gf b/lib/src/api/ConstructorsDut.gf new file mode 100644 index 000000000..7d621debe --- /dev/null +++ b/lib/src/api/ConstructorsDut.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource ConstructorsDut = Constructors with (Grammar = GrammarDut) ; diff --git a/lib/src/api/SymbolicDut.gf b/lib/src/api/SymbolicDut.gf new file mode 100644 index 000000000..5c58c0e04 --- /dev/null +++ b/lib/src/api/SymbolicDut.gf @@ -0,0 +1,5 @@ +--# -path=.:present:mathematical:prelude + +resource SymbolicDut = Symbolic with + (Symbol = SymbolDut), + (Grammar = GrammarDut) ; diff --git a/lib/src/api/SyntaxDut.gf b/lib/src/api/SyntaxDut.gf new file mode 100644 index 000000000..c46b7ed8d --- /dev/null +++ b/lib/src/api/SyntaxDut.gf @@ -0,0 +1,4 @@ +--# -path=.:alltenses:prelude + +instance SyntaxDut of Syntax = ConstructorsDut, CatDut, StructuralDut, CombinatorsDut ; + diff --git a/lib/src/api/TryDut.gf b/lib/src/api/TryDut.gf new file mode 100644 index 000000000..97eedd0d0 --- /dev/null +++ b/lib/src/api/TryDut.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource TryDut = SyntaxDut, LexiconDut, ParadigmsDut - [mkAdv,mkOrd] ; diff --git a/lib/src/dutch/ExtraGerDut.gf b/lib/src/dutch/ExtraDutAbs.gf similarity index 100% rename from lib/src/dutch/ExtraGerDut.gf rename to lib/src/dutch/ExtraDutAbs.gf diff --git a/lib/src/dutch/ResDut.gf b/lib/src/dutch/ResDut.gf index 9d54a3c1d..f533c2ea5 100644 --- a/lib/src/dutch/ResDut.gf +++ b/lib/src/dutch/ResDut.gf @@ -92,8 +92,8 @@ resource ResDut = ParamX ** open Prelude in { | VPresSg1 -- ben | VPresSg2 -- bent | VPresSg3 -- is - | VPastSg -- was - | VPastPl -- waren + | VPastSg -- was --# notpresent + | VPastPl -- waren --# notpresent | VImp2 -- wees | VImp3 -- weest | VImpPl -- wezen @@ -111,9 +111,9 @@ resource ResDut = ParamX ** open Prelude in { VInf | VImpPl => aaien; -- hij/zij/het/wij aaien VPresSg1 | VImp2 => aai; -- ik aai VPresSg2 | VPresSg3 | VImp3 => aait; -- jij aait - VPastSg => aaide; -- ik aaide - VPastPl => aaiden; -- hij/zij/het/wij aaiden - VPerf => geaaid -- ik heb geaaid + VPastSg => aaide; -- ik aaide --# notpresent + VPastPl => aaiden; -- hij/zij/het/wij aaiden --# notpresent + VPerf => geaaid -- ik heb geaaid } }; @@ -265,8 +265,8 @@ resource ResDut = ParamX ** open Prelude in { VPresSg1 => "ben" ; VPresSg2 => "bent" ; VPresSg3 => "is" ; - VPastSg => "was" ; - VPastPl => "waren" ; + VPastSg => "was" ; --# notpresent + VPastPl => "waren" ; --# notpresent VImp2 => "wees" ; VImp3 => "weest" ; VImpPl => "wezen" ; @@ -283,8 +283,8 @@ resource ResDut = ParamX ** open Prelude in { VPresSg1 => "heb" ; VPresSg2 => "hebt" ; VPresSg3 => "heeft" ; - VPastSg => "had" ; - VPastPl => "hadden" ; + VPastSg => "had" ; --# notpresent + VPastPl => "hadden" ; --# notpresent VImp2 => "heb" ; VImp3 => "heeft" ; VImpPl => "hebben" ; @@ -301,8 +301,8 @@ resource ResDut = ParamX ** open Prelude in { VPresSg1 => "zal" ; VPresSg2 => "zult" ; VPresSg3 => "zal" ; - VPastSg => "zou" ; - VPastPl => "zouden" ; + VPastSg => "zou" ; --# notpresent + VPastPl => "zouden" ; --# notpresent VImp2 => "zoud" ; ---- not used VImp3 => "zoudt" ; VImpPl => "zouden" ; ---- @@ -319,8 +319,8 @@ resource ResDut = ParamX ** open Prelude in { VPresSg1 => "kan" ; VPresSg2 => "kunt" ; VPresSg3 => "kan" ; ---- kun je - VPastSg => "kon" ; - VPastPl => "konden" ; + VPastSg => "kon" ; --# notpresent + VPastPl => "konden" ; --# notpresent VImp2 => "kan" ; ---- not used VImp3 => "kant" ; VImpPl => "kunnen" ; ---- @@ -381,16 +381,25 @@ param oper vForm : Tense -> Number -> Person -> Order -> VForm = \t,n,p,o -> case of { - => case o of { + => case o of { Inv => VPresSg1 ; _ => VPresSg2 } ; - => VPresSg1 ; - => VPresSg3 ; - => VInf ; + => VPresSg1 ; + => VPresSg3 ; + => VInf + ; --# notpresent - => VPastSg ; -- Fut and Cond affect zullen - => VPastPl + => VPastSg ; -- Fut and Cond affect zullen --# notpresent + => VPastPl --# notpresent } ; --2 For $Relative$ @@ -560,9 +569,9 @@ param auxv = (auxVerb vp.s.aux).s ; vperf = vp.s.s ! VPerf ; verb : Str * Str = case of { - => ; - => ; - <_, Anter> => ; + => ; --# notpresent + => ; --# notpresent + <_, Anter> => ; --# notpresent <_, Simul> => } ; fin = verb.p1 ; diff --git a/lib/src/dutch/SymbolDut.gf b/lib/src/dutch/SymbolDut.gf index 467814685..b53007837 100644 --- a/lib/src/dutch/SymbolDut.gf +++ b/lib/src/dutch/SymbolDut.gf @@ -2,48 +2,48 @@ concrete SymbolDut of Symbol = CatDut ** open Prelude, ResDut in { ---{ --- ---lin --- SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c --- IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c --- FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c --- NumPN i = {s = i.s ! Neutr ; g = Neutr} ; --- c --- --- CNIntNP cn i = { --- s = \\c => cn.s ! Weak ! Sg ! Nom ++ i.s ; --- a = agrP3 Sg ; --- isPron = False --- } ; --- CNSymbNP det cn xs = let g = cn.g in { --- s = \\c => det.s ! g ! c ++ cn.s ! adjfCase det.a c ! det.n ! c ++ xs.s ; --- a = agrP3 det.n ; --- isPron = False --- } ; --- CNNumNP cn i = { --- s = \\c => artDef ! (GSg cn.g) ! c ++ cn.s ! Weak ! Sg ! Nom ++ i.s ! Neutr ! c ; --- a = agrP3 Sg ; --- isPron = False --- } ; --- --- SymbS sy = {s = \\_ => sy.s} ; --- --- SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ; --- SymbOrd n = {s = \\_ => n.s ++ "."} ; --- --- ---lincat --- --- Symb, [Symb] = SS ; --- ---lin --- --- MkSymb s = s ; --- --- BaseSymb = infixSS "und" ; --- ConsSymb = infixSS "," ; --- ---} --- + + +lin + SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c + IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c + FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c + NumPN i = {s = \\_ => i.s ! Neutr ! Nom ; g = Neutr} ; --- c + + CNIntNP cn i = { + s = \\c => cn.s ! Weak ! NF Sg Nom ++ i.s ; + a = agrP3 Sg ; + isPron = False + } ; + CNSymbNP det cn xs = let g = cn.g in { + s = \\c => det.s ! g ++ cn.s ! det.a ! NF det.n Nom ++ xs.s ; + a = agrP3 det.n ; + isPron = False + } ; + CNNumNP cn i = { + s = \\c => artDef Sg cn.g ++ cn.s ! Weak ! NF Sg Nom ++ i.s ! Neutr ! Nom ; + a = agrP3 Sg ; + isPron = False + } ; + + SymbS sy = {s = \\_ => sy.s} ; + + SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ; + SymbOrd n = {s = \\_ => n.s ++ "."} ; + + +lincat + + Symb, [Symb] = SS ; + +lin + + MkSymb s = s ; + + BaseSymb = infixSS "en" ; + ConsSymb = infixSS "," ; + +oper + artDef : Number -> Gender -> Str = \n,g -> case of { => "het" ; _ => "de"} ; }