Files
comp-syntax-gu-mlt/labs1-2/intro/IntroFre.gf
2025-03-21 13:51:53 +01:00

44 lines
992 B
Plaintext

concrete IntroFre of Intro = {
lincat
S = Str ;
NP = {s : Case => Str ; a : Agr ; t : NPType} ;
VP = Agr => Str ;
CN = Str ;
Det = Str ;
Pron = {s : Case => Str ; a : Agr} ;
Subj = Str ;
N = Str ;
A = Str ;
V2 = Agr => Str ;
Adv = Str ;
lin
PredVP np vp = np.s ! Nom ++ vp ! np.a ;
AdvS s adv = s ++ adv ;
ComplV2 v2 np = case np.t of {
NPPron => table {a => np.s ! Acc ++ v2 ! a} ;
NPOther => table {a => v2 ! a ++ np.s ! Acc}
} ;
DetCN det cn = {s = table {_ => det ++ cn} ; a = SgP3 ; t = NPOther} ;
UsePron pron = pron ** {t = NPPron} ;
AdjCN a cn = cn ++ a ;
UseN n = n ;
SubjS subj s = subj ++ s ;
the_Det = "le" ;
we_Pron = {s = table {Nom => "nous" ; Acc => "nous"} ; a = Other} ;
because_Subj = "parce que" ;
cat_N = "chat" ;
black_A = "noir" ;
see_V2 = table {SgP3 => "voit" ; Other => "voyons"} ;
now_Adv = "maintenant" ;
param
Case = Nom | Acc ;
Agr = SgP3 | Other ;
NPType = NPPron | NPOther ;
}