summaryrefslogtreecommitdiff
path: root/examples/tutorial/syntax/Syntax.gf
blob: 31f3fc127f8c1c3b68039d9421379cce3a7b5493 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
interface Syntax = open Prelude, Grammar in {

oper
  mkPhr = overload {
    mkPhr : S -> Phr 
      = PhrS ;
    mkPhr : QS -> Phr 
      = PhrQS ;
  } ;

  mkS = overload {
    mkS : Pol -> NP -> VP -> S
       = PredVP ;
    mkS : NP -> VP -> S
       = PredVP PPos ;
    mkS : Pol -> NP -> V2 -> NP -> S
       = \p,np,v,o -> PredVP p np (ComplV2 v o) ;
    mkS : NP -> V2 -> NP -> S
       = \np,v,o -> PredVP PPos np (ComplV2 v o) ;
    mkS : Pol -> NP -> AP -> S
       = \p,np,ap -> PredVP p np (ComplAP ap) ;
    mkS : NP -> AP -> S
       = \np,ap -> PredVP PPos np (ComplAP ap) ;
    } ;

  mkNP : Det -> CN -> NP 
    = DetCN ;

  mkCN = overload {
    mkCN : AP -> CN -> CN 
      = ModCN ;
    mkCN : N -> CN 
      = UseN ;
  } ;

  mkAP = overload {
    mkAP : AdA -> AP -> AP 
      = AdAP ;
    mkAP : A -> AP 
      = UseA ;
  } ;

}