diff options
Diffstat (limited to 'deprecated/old-lib/resource/english/NounEng.gf')
| -rw-r--r-- | deprecated/old-lib/resource/english/NounEng.gf | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/deprecated/old-lib/resource/english/NounEng.gf b/deprecated/old-lib/resource/english/NounEng.gf new file mode 100644 index 000000000..cc7427930 --- /dev/null +++ b/deprecated/old-lib/resource/english/NounEng.gf @@ -0,0 +1,137 @@ +concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { + + flags optimize=all_subs ; + + lin + DetCN det cn = { + s = \\c => det.s ++ cn.s ! det.n ! c ; + a = agrgP3 det.n cn.g + } ; + + UsePN pn = pn ** {a = agrgP3 Sg pn.g} ; + UsePron p = p ; + + PredetNP pred np = { + s = \\c => pred.s ++ np.s ! c ; + a = np.a + } ; + + PPartNP np v2 = { + s = \\c => np.s ! c ++ v2.s ! VPPart ; + a = np.a + } ; + + RelNP np rs = { + s = \\c => np.s ! c ++ "," ++ rs.s ! np.a ; + a = np.a + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a + } ; + + DetQuantOrd quant num ord = { + s = quant.s ! num.n ++ num.s ++ ord.s ; + n = num.n + } ; + + DetQuant quant num = { + s = quant.s ! num.n ++ num.s ; + n = num.n + } ; + + DetNP det = { + s = \\c => det.s ; ---- case + a = agrP3 det.n + } ; + + PossPron p = {s = \\_ => p.s ! Gen} ; + + NumSg = {s = []; n = Sg ; hasCard = False} ; + NumPl = {s = []; n = Pl ; hasCard = False} ; +---b NoOrd = {s = []} ; + + NumCard n = n ** {hasCard = True} ; + + NumDigits n = {s = n.s ! NCard ; n = n.n} ; + OrdDigits n = {s = n.s ! NOrd} ; + + NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ; + OrdNumeral numeral = {s = numeral.s ! NOrd} ; + + AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ; + + OrdSuperl a = {s = a.s ! AAdj Superl} ; + + DetArtOrd art num ord = { + s = art.s ! num.hasCard ! num.n ++ num.s ++ ord.s ; + n = num.n + } ; + + DetArtCard art card = { + s = art.s ! True ! card.n ++ card.s ; + n = card.n + } ; + + DetArtSg art cn = { + s = \\c => art.s ! False ! Sg ++ cn.s ! Sg ! c ; + a = agrgP3 Sg cn.g + } ; + + DetArtPl art cn = { + s = \\c => art.s ! False ! Pl ++ cn.s ! Pl ! c ; + a = agrgP3 Pl cn.g + } ; + + DefArt = {s = \\c,n => artDef} ; + + IndefArt = {s = \\c,n => case <n,c> of { + <Sg,False> => artIndef ; + _ => [] + } + } ; + + MassNP cn = { + s = cn.s ! Sg ; + a = agrP3 Sg + } ; + + UseN n = n ; + UseN2 n = n ; +---b UseN3 n = n ; + + Use2N3 f = { + s = \\n,c => f.s ! n ! Nom ; + g = f.g ; + c2 = f.c2 + } ; + + Use3N3 f = { + s = \\n,c => f.s ! n ! Nom ; + g = f.g ; + c2 = f.c3 + } ; + + ComplN2 f x = {s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ; g = f.g} ; + ComplN3 f x = { + s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ; + g = f.g ; + c2 = f.c3 + } ; + + AdjCN ap cn = { + s = \\n,c => preOrPost ap.isPre (ap.s ! agrgP3 n cn.g) (cn.s ! n ! c) ; + g = cn.g + } ; + RelCN cn rs = { + s = \\n,c => cn.s ! n ! c ++ rs.s ! agrgP3 n cn.g ; + g = cn.g + } ; + AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ; + + SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ; + + ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! c ; g = cn.g} ; + +} |
