diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-09-22 11:49:15 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-09-22 11:49:15 +0000 |
| commit | 98665df78b8018af30051cb4a9a31f845e0ba19d (patch) | |
| tree | 67ba30b09e2b9590a00a4b193bf7611caa935af8 /next-lib/src/common/Overload.gf | |
| parent | 4862018f140a1bdcc7961d445ed9aa92facd742f (diff) | |
moved lib/next-resource to next-lib/src, to enable linking with next-lib as value of GF_LIB_PATH
Diffstat (limited to 'next-lib/src/common/Overload.gf')
| -rw-r--r-- | next-lib/src/common/Overload.gf | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/next-lib/src/common/Overload.gf b/next-lib/src/common/Overload.gf new file mode 100644 index 000000000..df7baeab9 --- /dev/null +++ b/next-lib/src/common/Overload.gf @@ -0,0 +1,101 @@ +incomplete resource Overload = open Grammar in { + + oper + + pred = overload { + pred : NP -> V -> Cl + = \v,np -> PredVP np (UseV v) ; + pred : NP -> V2 -> NP -> Cl + = \v,np,ob -> PredVP np (ComplV2 v ob) ; + pred : NP -> V3 -> NP -> NP -> Cl + = \v,np,ob,ob2 -> + PredVP np (ComplV3 v ob ob2) ; + pred : NP -> A -> Cl + = \a,np -> + PredVP np (UseComp (CompAP (PositA a))) + } ; + + mod = overload { + mod : A -> N -> CN + = \a,n -> AdjCN (PositA a) (UseN n) ; + mod : AP -> N -> CN + = \a,n -> AdjCN a (UseN n) ; + mod : AP -> CN -> CN + = \a,n -> AdjCN a n ; + mod : AdA -> A -> AP + = \m,a -> AdAP m (PositA a) ; + mod : Quant -> N -> NP + = \q,n -> DetCN (DetSg (SgQuant q) + NoOrd) (UseN n) ; + mod : Quant -> CN -> NP + = \q,n -> DetCN (DetSg + (SgQuant q) NoOrd) n ; + mod : Predet -> N -> NP + = \q,n -> PredetNP q (DetCN (DetPl + (PlQuant IndefArt) NoNum NoOrd) (UseN n)) ; + mod : Num -> N -> NP + = \nu,n -> DetCN (DetPl (PlQuant + IndefArt) nu NoOrd) (UseN n) + + } ; + + coord = overload { + coord : Conj -> Adv -> Adv -> Adv + = \c,x,y -> ConjAdv c (BaseAdv x y) ; + coord : Conj -> AP -> AP -> AP + = \c,x,y -> ConjAP c (BaseAP x y) ; + coord : Conj -> NP -> NP -> NP + = \c,x,y -> ConjNP c (BaseNP x y) ; + coord : Conj -> S -> S -> S + = \c,x,y -> ConjS c (BaseS x y) ; + coord : DConj -> Adv -> Adv -> Adv + = \c,x,y -> DConjAdv c (BaseAdv x y) ; + coord : DConj -> AP -> AP -> AP + = \c,x,y -> DConjAP c (BaseAP x y) ; + coord : DConj -> NP -> NP -> NP + = \c,x,y -> DConjNP c (BaseNP x y) ; + coord : DConj -> S -> S -> S + = \c,x,y -> DConjS c (BaseS x y) ; + coord : Conj -> ListAdv -> Adv + = \c,xy -> ConjAdv c xy ; + coord : Conj -> ListAP -> AP + = \c,xy -> ConjAP c xy ; + coord : Conj -> ListNP -> NP + = \c,xy -> ConjNP c xy ; + coord : Conj -> ListS -> S + = \c,xy -> ConjS c xy ; + coord : DConj -> ListAdv -> Adv + = \c,xy -> DConjAdv c xy ; + coord : DConj -> ListAP -> AP + = \c,xy -> DConjAP c xy ; + coord : DConj -> ListNP -> NP + = \c,xy -> DConjNP c xy ; + coord : DConj -> ListS -> S + = \c,xy -> DConjS c xy + } ; + + mkCN = overload { + mkCN : N -> CN + = UseN ; + mkCN : A -> N -> CN + = \a,n -> AdjCN (PositA a) (UseN n) ; + mkCN : AP -> N -> CN + = \a,n -> AdjCN a (UseN n) ; + mkCN : AP -> CN -> CN + = \a,n -> AdjCN a n ; + } ; + + mkNP = overload { + mkNP : NP + = this_NP ; + mkNP : Pron -> NP + = UsePron ; + mkNP : PN -> NP + = UsePN ; + mkNP : Quant -> N -> NP + = \q,n -> DetCN (DetSg (SgQuant q) NoOrd) (UseN n) ; + mkNP : Predet -> N -> NP + = \q,n -> PredetNP q (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN n)) + } ; + +} |
