Files
gf-core/contrib/summerschool/mini/Syntax.gf
2009-08-28 07:05:08 +00:00

46 lines
1.3 KiB
Plaintext

interface Syntax = Grammar -
[UseCl,PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,
UseN,UseA,Pres,Perf,Pos,Neg] **
open Grammar in {
oper
mkS = overload {
mkS : Cl -> S = UseCl Pres Pos ;
mkS : Tense -> Cl -> S = \t -> UseCl t Pos ;
mkS : Pol -> Cl -> S = UseCl Pres ;
mkS : Tense -> Pol -> Cl -> S = UseCl ;
} ;
mkCl = overload {
mkCl : NP -> V -> Cl = \np,v -> PredVP np (UseV v) ;
mkCl : NP -> V2 -> NP -> Cl = \np,v,o -> PredVP np (ComplV2 v o) ;
mkCl : NP -> A -> Cl = \np,a -> PredVP np (CompAP (UseA a)) ;
mkCl : NP -> AP -> Cl = \np,ap -> PredVP np (CompAP ap) ;
mkCl : NP -> VP -> Cl = PredVP ;
} ;
mkAP = overload {
mkAP : A -> AP = UseA ;
mkAP : AdA -> AP -> AP = AdAP ;
} ;
mkNP = overload {
mkNP : Det -> N -> NP = \d,n -> DetCN d (UseN n) ;
mkNP : Det -> CN -> NP = \d,n -> DetCN d n ;
} ;
mkCN = overload {
mkCN : N -> CN = UseN ;
mkCN : A -> N -> CN = \a,n -> ModCN (UseA a) (UseN n) ;
mkCN : A -> CN -> CN = \a,n -> ModCN (UseA a) n ;
mkCN : AP -> N -> CN = \a,n -> ModCN a (UseN n) ;
mkCN : AP -> CN -> CN = \a,n -> ModCN a n ;
} ;
presTense : Tense = Pres ;
perfTense : Tense = Perf ;
posPol : Pol = Pos ;
negPol : Pol = Neg ;
}