summaryrefslogtreecommitdiff
path: root/examples/tutorial/syntax/Syntax.gf
blob: e75f7dd0c72bc96eaa8c26e8c5fb6235853dd079 (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
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) ;
    } ;

}