forked from GitHub/gf-rgl
added basic syntax
This commit is contained in:
11
src/albanian/AdjectiveSqi.gf
Normal file
11
src/albanian/AdjectiveSqi.gf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
concrete AdjectiveSqi of Adjective = CatSqi ** open ResSqi in {
|
||||||
|
|
||||||
|
lin
|
||||||
|
PositA a = {
|
||||||
|
s = \\spec,c,g,n => case a.clit of {
|
||||||
|
True => link_clitic ! Indef ! c ! g ! n ++ a.s ! c ! g ! n ;
|
||||||
|
False => a.s ! c ! g ! n
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -16,4 +16,11 @@ lincat Numeral = {s : Str} ;
|
|||||||
lincat Digits = {s : Str; n : Number; tail : DTail} ;
|
lincat Digits = {s : Str; n : Number; tail : DTail} ;
|
||||||
lincat Decimal = {s : Str; n : Number; hasDot : Bool} ;
|
lincat Decimal = {s : Str; n : Number; hasDot : Bool} ;
|
||||||
|
|
||||||
|
lincat AP = {s: Species => Case => Gender => Number => Str} ;
|
||||||
|
lincat CN = Noun ;
|
||||||
|
lincat Num = {s : Str; n : Number} ;
|
||||||
|
lincat Quant = {s : Str; spec : Species} ;
|
||||||
|
lincat Det = {s : Str; spec : Species; n : Number} ;
|
||||||
|
lincat NP = {s: Case => Str; a : Agr} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
concrete GrammarSqi of Grammar =
|
concrete GrammarSqi of Grammar =
|
||||||
|
NounSqi,
|
||||||
|
AdjectiveSqi,
|
||||||
NumeralSqi
|
NumeralSqi
|
||||||
** {
|
** {
|
||||||
|
|
||||||
|
|||||||
38
src/albanian/NounSqi.gf
Normal file
38
src/albanian/NounSqi.gf
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi in {
|
||||||
|
|
||||||
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
DetCN det cn = {
|
||||||
|
s = \\c => det.s ++ cn.s ! det.spec ! c ! det.n ;
|
||||||
|
a = agrgP3 cn.g det.n
|
||||||
|
} ;
|
||||||
|
|
||||||
|
DetQuant quant num = {
|
||||||
|
s = quant.s ++ num.s ;
|
||||||
|
n = num.n ;
|
||||||
|
spec = quant.spec
|
||||||
|
} ;
|
||||||
|
|
||||||
|
NumSg = {s = []; n = Sg} ;
|
||||||
|
NumPl = {s = []; n = Pl} ;
|
||||||
|
|
||||||
|
DefArt = {
|
||||||
|
s = [] ;
|
||||||
|
spec = Def
|
||||||
|
} ;
|
||||||
|
|
||||||
|
IndefArt = {
|
||||||
|
s = "një" ;
|
||||||
|
spec = Indef
|
||||||
|
} ;
|
||||||
|
|
||||||
|
UseN n = n ;
|
||||||
|
UseN2 n = n ;
|
||||||
|
|
||||||
|
AdjCN ap cn = {
|
||||||
|
s = \\spec,c,n => cn.s ! spec ! c ! n ++ ap.s ! spec ! c ! cn.g ! n ;
|
||||||
|
g = cn.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,9 @@
|
|||||||
resource ParadigmsSqi = MorphoSqi ** open Predef, Prelude, CatSqi, ResSqi in {
|
resource ParadigmsSqi = MorphoSqi ** open Predef, Prelude, CatSqi, ResSqi in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
singular : Number = Sg ;
|
||||||
|
plural : Number = Pl ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
regN : Str -> N -- s;Indef;Nom;Sg
|
regN : Str -> N -- s;Indef;Nom;Sg
|
||||||
= \form -> case form of {
|
= \form -> case form of {
|
||||||
@@ -1226,8 +1231,8 @@ mkInterj : Str -> Interj = \s -> lin Interj {s=s} ;
|
|||||||
mkVoc : Str -> Voc = \s -> lin Voc {s=s} ;
|
mkVoc : Str -> Voc = \s -> lin Voc {s=s} ;
|
||||||
mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ;
|
mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ;
|
||||||
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
|
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
|
||||||
mkQuant : Str -> Quant = \s -> lin Quant {s=s} ;
|
mkQuant : Str -> Quant = \s -> lin Quant {s=s; spec=Indef} ;
|
||||||
mkDet : Str -> Det = \s -> lin Det {s=s} ;
|
mkDet : Str -> Number -> Det = \s,n -> lin Det {s=s; spec=Indef; n=n} ;
|
||||||
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
|
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
|
||||||
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
|
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
|
||||||
mkPron : Str -> Pron = \s -> lin Pron {s=s} ;
|
mkPron : Str -> Pron = \s -> lin Pron {s=s} ;
|
||||||
|
|||||||
@@ -2,9 +2,13 @@ resource ResSqi = ParamX-[Tense,Past,Pres] ** open Prelude in {
|
|||||||
|
|
||||||
oper Compl = {s : Str} ;
|
oper Compl = {s : Str} ;
|
||||||
|
|
||||||
param Species = Def | Indef ;
|
param Species = Indef | Def ;
|
||||||
param Case = Nom | Acc | Dat | Ablat ;
|
param Case = Nom | Acc | Dat | Ablat ;
|
||||||
param Gender = Masc | Fem ;
|
param Gender = Masc | Fem ;
|
||||||
|
|
||||||
|
param GenNum = GSg Gender | GPl ;
|
||||||
|
oper Agr = {gn : GenNum; p : Person} ;
|
||||||
|
|
||||||
oper Noun = {s: Species => Case => Number => Str; g: Gender} ; -- 3978
|
oper Noun = {s: Species => Case => Number => Str; g: Gender} ; -- 3978
|
||||||
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
|
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
|
||||||
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,g ->
|
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,g ->
|
||||||
@@ -244,4 +248,14 @@ oper link_clitic : Species => Case => Gender => Number => Str =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper genNum : Gender -> Number -> GenNum = \g,n ->
|
||||||
|
case n of {
|
||||||
|
Sg => GSg g ;
|
||||||
|
Pl => GPl
|
||||||
|
} ;
|
||||||
|
|
||||||
|
agrgP3 : Gender -> Number -> Agr =
|
||||||
|
\g,n -> {gn=genNum g n; p=P3} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user