summaryrefslogtreecommitdiff
path: root/next-lib/src/api/Combinators.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
committeraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
commite89fdae2fa1626348d8025824a7469252fa85e42 (patch)
treec7d46bbd0494043b4bd6f917a25a7687517d0547 /next-lib/src/api/Combinators.gf
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'next-lib/src/api/Combinators.gf')
-rw-r--r--next-lib/src/api/Combinators.gf187
1 files changed, 0 insertions, 187 deletions
diff --git a/next-lib/src/api/Combinators.gf b/next-lib/src/api/Combinators.gf
deleted file mode 100644
index e85b25613..000000000
--- a/next-lib/src/api/Combinators.gf
+++ /dev/null
@@ -1,187 +0,0 @@
---1 Combinators: a High-Level Syntax API
-
--- This module defines some "grammatical functions" that give shortcuts to
--- typical constructions. [``Constructors`` Constructors.html] and the
--- language-specific ``Paradigms`` modules are usually needed
--- to construct arguments of these functions.
-
-incomplete resource Combinators = open Cat, Structural, Constructors in {
-
- oper
-
---2 Predication
-
- pred : overload {
- pred : V -> NP -> Cl ; -- x converges
- pred : V2 -> NP -> NP -> Cl ; -- x intersects y
- pred : V3 -> NP -> NP -> NP -> Cl ; -- x intersects y at z
- pred : V -> NP -> NP -> Cl ; -- x and y intersect
- pred : A -> NP -> Cl ; -- x is even
- pred : A2 -> NP -> NP -> Cl ; -- x is divisible by y
- pred : A -> NP -> NP -> Cl ; -- x and y are equal
- pred : N -> NP -> Cl ; -- x is a maximum
- pred : CN -> NP -> Cl ; -- x is a local maximum
- pred : NP -> NP -> Cl ; -- x is the neutral element
- pred : N -> NP -> NP -> Cl ; -- x and y are inverses
- pred : Adv -> NP -> Cl ; -- x is in scope
- pred : Prep -> NP -> NP -> Cl -- x is outside y
- } ;
-
---2 Function application
-
- app : overload {
- app : N -> NP ;
- app : N2 -> NP -> NP ;
- app : N3 -> NP -> NP -> NP ;
- app : N2 -> NP -> NP -> NP ;
- app : N2 -> N -> CN ;
-
- app : N2 -> NP -> CN ; -- divisor of x
- app : N3 -> NP -> NP -> CN ; -- path from x to y
- app : N2 -> NP -> NP -> CN ; -- path between x and y
- } ;
-
---2 Coordination
-
- coord : overload {
- coord : Conj -> Adv -> Adv -> Adv ;
- coord : Conj -> AP -> AP -> AP ;
- coord : Conj -> NP -> NP -> NP ;
- coord : Conj -> S -> S -> S ;
- coord : Conj -> ListAdv -> Adv ;
- coord : Conj -> ListAP -> AP ;
- coord : Conj -> ListNP -> NP ;
- coord : Conj -> ListS -> S ;
-
- } ;
-
---2 Modification
-
- mod : overload {
- mod : A -> N -> CN ;
- mod : AP -> CN -> CN ;
- mod : AdA -> A -> AP ;
- mod : Det -> N -> NP ;
- mod : Det -> CN -> NP ;
- mod : Quant -> N -> NP ;
- mod : Quant -> CN -> NP ;
- mod : Predet -> N -> NP ;
- mod : Numeral -> N -> NP
-
-
- } ;
-
---2 Negation
-
- neg : overload {
- neg : Imp -> Utt ;
- neg : Cl -> S ;
- neg : QCl -> QS ;
- neg : RCl -> RS
- };
-
---.
-
- pred = overload {
- pred : V -> NP -> Cl
- = \v,np -> mkCl np v ;
- pred : V2 -> NP -> NP -> Cl
- = \v,np,ob -> mkCl np v ob ;
- pred : V3 -> NP -> NP -> NP -> Cl
- = \v,np,ob,ob2 -> mkCl np v ob ob2 ;
- pred : V -> NP -> NP -> Cl --# notminimal
- = \v,x,y -> mkCl (mkNP and_Conj x y) v ; --# notminimal
- pred : A -> NP -> Cl
- = \a,np -> mkCl np a ;
- pred : A2 -> NP -> NP -> Cl --# notminimal
- = \a,x,y -> mkCl x a y ; --# notminimal
- pred : A -> NP -> NP -> Cl --# notminimal
- = \a,x,y -> mkCl (mkNP and_Conj x y) a ; --# notminimal
- pred : N -> NP -> Cl
- = \n,x -> mkCl x (mkNP a_Art n) ;
- pred : CN -> NP -> Cl
- = \n,x -> mkCl x (mkNP a_Art n) ;
- pred : NP -> NP -> Cl
- = \n,x -> mkCl x n ;
- pred : N2 -> NP -> NP -> Cl --# notminimal
- = \n,x,y -> mkCl x (mkNP a_Art (mkCN n y)) ; --# notminimal
- pred : N -> NP -> NP -> Cl --# notminimal
- = \n,x,y -> mkCl (mkNP and_Conj x y) (mkNP a_Art plNum n) ; --# notminimal
- pred : Adv -> NP -> Cl
- = \a,x -> mkCl x a ;
- pred : Prep -> NP -> NP -> Cl
- = \p,x,y -> mkCl x (mkAdv p y) ;
- } ;
-
- app = overload {
- app : N -> NP
- = \n -> mkNP the_Art n ;
- app : N2 -> NP -> NP --# notminimal
- = \n,x -> mkNP the_Art (mkCN n x) ; --# notminimal
- app : N3 -> NP -> NP -> NP --# notminimal
- = \n,x,y -> mkNP the_Art (mkCN n x y) ; --# notminimal
- app : N2 -> NP -> NP -> NP --# notminimal
- = \n,x,y -> mkNP the_Art (mkCN n (mkNP and_Conj x y)) ; --# notminimal
- app : N2 -> N -> CN --# notminimal
- = \f,n -> mkCN f (mkNP a_Art plNum n) ; --# notminimal
- app : N2 -> NP -> CN --# notminimal
- = mkCN ; --# notminimal
- app : N3 -> NP -> NP -> CN --# notminimal
- = mkCN ; --# notminimal
- app : N2 -> NP -> NP -> CN --# notminimal
- = \n,x,y -> mkCN n (mkNP and_Conj x y) ; --# notminimal
- } ;
-
- coord = overload { --# notminimal
- coord : Conj -> Adv -> Adv -> Adv --# notminimal
- = mkAdv ; --# notminimal
- coord : Conj -> AP -> AP -> AP --# notminimal
- = mkAP ; --# notminimal
- coord : Conj -> NP -> NP -> NP --# notminimal
- = mkNP ; --# notminimal
- coord : Conj -> S -> S -> S --# notminimal
- = mkS ; --# notminimal
- coord : Conj -> ListAdv -> Adv --# notminimal
- = mkAdv ; --# notminimal
- coord : Conj -> ListAP -> AP --# notminimal
- = mkAP ; --# notminimal
- coord : Conj -> ListNP -> NP --# notminimal
- = mkNP ; --# notminimal
- coord : Conj -> ListS -> S --# notminimal
- = mkS ; --# notminimal
- } ; --# notminimal
-
- mod = overload {
- mod : A -> N -> CN
- = mkCN ;
- mod : AP -> CN -> CN
- = mkCN ;
- mod : AdA -> A -> AP
- = mkAP ;
- mod : Det -> N -> NP
- = mkNP ;
- mod : Det -> CN -> NP
- = mkNP ;
- mod : Quant -> N -> NP
- = mkNP ;
- mod : Quant -> CN -> NP
- = mkNP ;
- mod : Predet -> N -> NP
- = \p,n -> mkNP p (mkNP a_Art n) ;
- mod : Numeral -> N -> NP
- = mkNP ;
- } ;
-
- neg = overload {
- neg : Imp -> Utt
- = mkUtt negativePol ;
- neg : Cl -> S
- = mkS negativePol ;
- neg : QCl -> QS
- = mkQS negativePol ;
- neg : RCl -> RS --# notminimal
- = mkRS negativePol ; --# notminimal
- };
-
-
-}