mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
added Albanian
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synopsis
|
Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synopsis
|
||||||
Afr,Afrikaans,afrikaans,,,,,,n,,y
|
Afr,Afrikaans,afrikaans,,,,,,n,,y
|
||||||
|
Alb,Albanian,albanian,,,,y,n,n,n,y
|
||||||
Amh,Amharic,amharic,,,,,n,n,,n
|
Amh,Amharic,amharic,,,,,n,n,,n
|
||||||
Ara,Arabic,arabic,,,,,,y,,y
|
Ara,Arabic,arabic,,,,,,y,,y
|
||||||
Bul,Bulgarian,bulgarian,,,y,,,,,y
|
Bul,Bulgarian,bulgarian,,,y,,,,,y
|
||||||
|
|||||||
|
4
src/albanian/AllAlb.gf
Normal file
4
src/albanian/AllAlb.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
concrete AllAlb of AllAlbAbs =
|
||||||
|
LangAlb
|
||||||
|
**
|
||||||
|
{} ;
|
||||||
3
src/albanian/AllAlbAbs.gf
Normal file
3
src/albanian/AllAlbAbs.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
abstract AllAlbAbs =
|
||||||
|
Lang
|
||||||
|
** {}
|
||||||
19
src/albanian/CatAlb.gf
Normal file
19
src/albanian/CatAlb.gf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
concrete CatAlb of Cat = CommonX ** open ParamX, Prelude, ResAlb in {
|
||||||
|
|
||||||
|
lincat N = Noun ;
|
||||||
|
lincat N2 = Noun ** {c2 : Compl} ;
|
||||||
|
lincat N3 = Noun ** {c2,c3 : Compl} ;
|
||||||
|
lincat A = Adj ;
|
||||||
|
lincat A2 = Adj ** {c2 : Compl} ;
|
||||||
|
lincat V, VA, VV, VS, VQ = Verb ;
|
||||||
|
lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ;
|
||||||
|
lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
|
||||||
|
lincat Prep = Compl ;
|
||||||
|
lincat Interj = {s : Str} ;
|
||||||
|
lincat Voc = {s : Str} ;
|
||||||
|
|
||||||
|
lincat Numeral = {s : Str} ;
|
||||||
|
lincat Digits = {s : Str; n : Number; tail : DTail} ;
|
||||||
|
lincat Decimal = {s : Str; n : Number; hasDot : Bool} ;
|
||||||
|
|
||||||
|
}
|
||||||
5
src/albanian/GrammarAlb.gf
Normal file
5
src/albanian/GrammarAlb.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
concrete GrammarAlb of Grammar =
|
||||||
|
NumeralAlb
|
||||||
|
** {
|
||||||
|
|
||||||
|
} ;
|
||||||
9
src/albanian/LangAlb.gf
Normal file
9
src/albanian/LangAlb.gf
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
--# -path=.:../abstract
|
||||||
|
concrete LangAlb of Lang =
|
||||||
|
GrammarAlb,
|
||||||
|
LexiconAlb
|
||||||
|
** {
|
||||||
|
|
||||||
|
flags startcat = Phr ;
|
||||||
|
|
||||||
|
}
|
||||||
2
src/albanian/LexiconAlb.gf
Normal file
2
src/albanian/LexiconAlb.gf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
concrete LexiconAlb of Lexicon = CatAlb ** open ParadigmsAlb in {
|
||||||
|
}
|
||||||
41212
src/albanian/MorphoAlb.gf
Normal file
41212
src/albanian/MorphoAlb.gf
Normal file
File diff suppressed because it is too large
Load Diff
93
src/albanian/NumeralAlb.gf
Normal file
93
src/albanian/NumeralAlb.gf
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
concrete NumeralAlb of Numeral = CatAlb ** open ParamX, Prelude in {
|
||||||
|
|
||||||
|
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||||
|
|
||||||
|
param DForm = unit | teen | ten ;
|
||||||
|
|
||||||
|
oper LinDigit = {s : DForm => Str };
|
||||||
|
oper LinSub100 = {s : Str } ;
|
||||||
|
|
||||||
|
lincat Digit = LinDigit ;
|
||||||
|
lincat Sub10 = LinDigit ;
|
||||||
|
lincat Sub100 = LinSub100 ;
|
||||||
|
lincat Sub1000 = LinSub100 ;
|
||||||
|
lincat Sub1000000 = { s : Str } ;
|
||||||
|
|
||||||
|
oper mkNum : Str -> LinDigit = \tri ->
|
||||||
|
{ s = table {unit => tri ; teen => tri + "mbë" + "dhjetë" ; ten => tri + "dhjetë" }};
|
||||||
|
|
||||||
|
lin num x = {s = x.s } ;
|
||||||
|
|
||||||
|
lin n2 = {s = table {unit => "dy" ; teen => "dy" + "mbë" + "dhjetë" ; ten => "njëzet" }};
|
||||||
|
lin n3 = mkNum "tre" ;
|
||||||
|
lin n4 = {s = table {unit => "katër" ; teen => "katër" + "mbë" + "dhjetë" ; ten => "dyzet" } };
|
||||||
|
lin n5 = mkNum "pesë" ;
|
||||||
|
lin n6 = mkNum "gjashtë";
|
||||||
|
lin n7 = mkNum "shtatë";
|
||||||
|
lin n8 = mkNum "tetë";
|
||||||
|
lin n9 = mkNum "nëntë";
|
||||||
|
|
||||||
|
oper mkR : Str -> LinSub100 = \n -> {s = n } ;
|
||||||
|
|
||||||
|
lin pot01 = { s = table {_ => "një" }};
|
||||||
|
lin pot0 d = d ;
|
||||||
|
lin pot110 = mkR "dhjetë" ;
|
||||||
|
lin pot111 = mkR ("një" + "mbë" + "dhjetë") ;
|
||||||
|
lin pot1to19 d = mkR (d.s ! teen) ;
|
||||||
|
lin pot0as1 n = mkR (n.s ! unit) ;
|
||||||
|
lin pot1 d = mkR (d.s ! ten) ;
|
||||||
|
lin pot1plus d e = mkR ((d.s ! ten) ++ "e" ++ (e.s ! unit)) ;
|
||||||
|
lin pot1as2 n = n ;
|
||||||
|
lin pot2 d = mkR (bind (d.s ! unit) "qind") ;
|
||||||
|
lin pot2plus d e = mkR ((bind (d.s ! unit) "qind") ++ "e" ++ e.s) ;
|
||||||
|
lin pot2as3 n = {s = n.s };
|
||||||
|
lin pot3 n = {s = n.s ++ "mijë" } ;
|
||||||
|
lin pot3plus n m = {s = n.s ++ "mijë" ++ m.s} ;
|
||||||
|
|
||||||
|
|
||||||
|
lincat Dig = {s : Str; n : Number} ;
|
||||||
|
|
||||||
|
lin IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
|
IIDig d i = {
|
||||||
|
s = d.s ++ spaceIf i.tail ++ i.s ;
|
||||||
|
n = Pl ;
|
||||||
|
tail = inc i.tail
|
||||||
|
} ;
|
||||||
|
|
||||||
|
D_0 = mkDig "0" Pl ;
|
||||||
|
D_1 = mkDig "1" Sg ;
|
||||||
|
D_2 = mkDig "2" Pl ;
|
||||||
|
D_3 = mkDig "3" Pl ;
|
||||||
|
D_4 = mkDig "4" Pl ;
|
||||||
|
D_5 = mkDig "5" Pl ;
|
||||||
|
D_6 = mkDig "6" Pl ;
|
||||||
|
D_7 = mkDig "7" Pl ;
|
||||||
|
D_8 = mkDig "8" Pl ;
|
||||||
|
D_9 = mkDig "9" Pl ;
|
||||||
|
|
||||||
|
lin PosDecimal d = d ** {hasDot=False} ;
|
||||||
|
NegDecimal d = {s="-" ++ BIND ++ d.s; hasDot=False; n = Pl} ;
|
||||||
|
IFrac d i = {
|
||||||
|
s=d.s ++
|
||||||
|
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
|
||||||
|
i.s ;
|
||||||
|
hasDot=True;
|
||||||
|
n = Pl
|
||||||
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
mkDig : Str -> Number -> Dig = \s,n -> lin Dig {s=s; n=n} ;
|
||||||
|
|
||||||
|
spaceIf : DTail -> Str = \t -> case t of {
|
||||||
|
T3 => "" ;
|
||||||
|
_ => BIND
|
||||||
|
} ;
|
||||||
|
|
||||||
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
|
T1 => T2 ;
|
||||||
|
T2 => T3 ;
|
||||||
|
T3 => T1
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
1240
src/albanian/ParadigmsAlb.gf
Normal file
1240
src/albanian/ParadigmsAlb.gf
Normal file
File diff suppressed because it is too large
Load Diff
210
src/albanian/ResAlb.gf
Normal file
210
src/albanian/ResAlb.gf
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
resource ResAlb = ParamX [Number,Person] ** {
|
||||||
|
|
||||||
|
oper Compl = {s : Str} ;
|
||||||
|
|
||||||
|
param Species = Def | Indef ;
|
||||||
|
param Case = Nom | Acc | Dat | Ablat ;
|
||||||
|
param Gender = Masc | Fem ;
|
||||||
|
oper Noun = {s: Species => Case => Number => Str; g: Gender} ; -- 3978
|
||||||
|
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
|
||||||
|
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,g ->
|
||||||
|
{ s = table {
|
||||||
|
Indef => table {
|
||||||
|
Nom => table {
|
||||||
|
Sg => f1 ;
|
||||||
|
Pl => f2
|
||||||
|
} ;
|
||||||
|
Acc => table {
|
||||||
|
Sg => f3 ;
|
||||||
|
Pl => f4
|
||||||
|
} ;
|
||||||
|
Dat => table {
|
||||||
|
Sg => f5 ;
|
||||||
|
Pl => f6
|
||||||
|
} ;
|
||||||
|
Ablat => table {
|
||||||
|
Sg => f7 ;
|
||||||
|
Pl => f8
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Def => table {
|
||||||
|
Nom => table {
|
||||||
|
Sg => f9 ;
|
||||||
|
Pl => f10
|
||||||
|
} ;
|
||||||
|
Acc => table {
|
||||||
|
Sg => f11 ;
|
||||||
|
Pl => f12
|
||||||
|
} ;
|
||||||
|
Dat => table {
|
||||||
|
Sg => f13 ;
|
||||||
|
Pl => f14
|
||||||
|
} ;
|
||||||
|
Ablat => table {
|
||||||
|
Sg => f15 ;
|
||||||
|
Pl => f16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
oper Adj = {s: Case => Gender => Number => Str} ; -- 462
|
||||||
|
oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj =
|
||||||
|
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16 ->
|
||||||
|
{ s = table {
|
||||||
|
Nom => table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => f1 ;
|
||||||
|
Pl => f2
|
||||||
|
} ;
|
||||||
|
Fem => table {
|
||||||
|
Sg => f3 ;
|
||||||
|
Pl => f4
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Acc => table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => f5 ;
|
||||||
|
Pl => f6
|
||||||
|
} ;
|
||||||
|
Fem => table {
|
||||||
|
Sg => f7 ;
|
||||||
|
Pl => f8
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Dat => table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => f9 ;
|
||||||
|
Pl => f10
|
||||||
|
} ;
|
||||||
|
Fem => table {
|
||||||
|
Sg => f11 ;
|
||||||
|
Pl => f12
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Ablat => table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => f13 ;
|
||||||
|
Pl => f14
|
||||||
|
} ;
|
||||||
|
Fem => table {
|
||||||
|
Sg => f15 ;
|
||||||
|
Pl => f16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
param Tense = Pres | Past | Imperfect | Aorist ;
|
||||||
|
oper Verb = {Indicative: Tense => Number => Person => Str; Imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758
|
||||||
|
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
|
||||||
|
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51 ->
|
||||||
|
{ Indicative = table {
|
||||||
|
Pres => table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f1 ;
|
||||||
|
P2 => f2 ;
|
||||||
|
P3 => f3
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f4 ;
|
||||||
|
P2 => f5 ;
|
||||||
|
P3 => f6
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Past => table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f7 ;
|
||||||
|
P2 => f8 ;
|
||||||
|
P3 => f9
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f10 ;
|
||||||
|
P2 => f11 ;
|
||||||
|
P3 => f12
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Aorist => table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f13 ;
|
||||||
|
P2 => f14 ;
|
||||||
|
P3 => f15
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f16 ;
|
||||||
|
P2 => f17 ;
|
||||||
|
P3 => f18
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Imperfect => table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f19 ;
|
||||||
|
P2 => f20 ;
|
||||||
|
P3 => f21
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f22 ;
|
||||||
|
P2 => f23 ;
|
||||||
|
P3 => f24
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Imperative = table {
|
||||||
|
Sg => f25 ;
|
||||||
|
Pl => f26
|
||||||
|
} ;
|
||||||
|
participle = f27 ;
|
||||||
|
pres_optative = table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f28 ;
|
||||||
|
P2 => f29 ;
|
||||||
|
P3 => f30
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f31 ;
|
||||||
|
P2 => f32 ;
|
||||||
|
P3 => f33
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
perf_optative = table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f34 ;
|
||||||
|
P2 => f35 ;
|
||||||
|
P3 => f36
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f37 ;
|
||||||
|
P2 => f38 ;
|
||||||
|
P3 => f39
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
pres_admirative = table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f40 ;
|
||||||
|
P2 => f41 ;
|
||||||
|
P3 => f42
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f43 ;
|
||||||
|
P2 => f44 ;
|
||||||
|
P3 => f45
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
imperf_admirative = table {
|
||||||
|
Sg => table {
|
||||||
|
P1 => f46 ;
|
||||||
|
P2 => f47 ;
|
||||||
|
P3 => f48
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
P1 => f49 ;
|
||||||
|
P2 => f50 ;
|
||||||
|
P3 => f51
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user