diff --git a/lectures/lecture-02/IntroEng.gf b/lectures/lecture-02/IntroEng.gf index 759ff24..c70ca4a 100644 --- a/lectures/lecture-02/IntroEng.gf +++ b/lectures/lecture-02/IntroEng.gf @@ -2,20 +2,23 @@ concrete IntroEng of Intro = { lincat S = Str ; - NP = Str ; - VP = Str ; + NP = {s : Case => Str ; a : Agr} ; + VP = Agr => Str ; CN = Str ; AP = Str ; Det = Str ; - Pron = Str ; + Pron = {s : Case => Str ; a : Agr} ; N = Str ; A = Str ; - V2 = Str ; + V2 = Agr => Str ; lin - PredVP np vp = np ++ vp ; - ComplV2 v2 np = v2 ++ np ; - DetCN det cn = det ++ cn ; + PredVP np vp = np.s ! Nom ++ vp ! np.a ; + ComplV2 v2 np = table {a => v2 ! a ++ np.s ! Acc} ; + DetCN det cn = { + s = table {_ => det ++ cn} ; + a = SgP3 + } ; AdjCN ap cn = ap ++ cn ; UseN n = n ; UseA a = a ; @@ -24,7 +27,14 @@ lin the_Det = "the" ; black_A = "black" ; cat_N = "cat" ; - see_V2 = "sees" ; - we_Pron = "us" ; + see_V2 = table {SgP3 => "sees" ; Other => "see"} ; + we_Pron = { + s = table {Nom => "we" ; Acc => "us"} ; + a = Other + } ; + +param + Case = Nom | Acc ; + Agr = SgP3 | Other ; } \ No newline at end of file