summaryrefslogtreecommitdiff
path: root/examples/extmini/ParadigmsEng.gf
blob: ce46159d8e9c78b6e2a89b2c0f2d13c7307c8fd7 (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
resource ParadigmsEng = GrammarEng [N,A,V] ** 
  open ResEng, GrammarEng, Prelude in {

oper
  mkN = overload {
    mkN : (dog : Str) -> N 
      = \n -> lin N (regNoun n) ;
    mkN : (man, men : Str) -> N 
      = \s,p -> lin N (mkNoun s p) ;
    } ;

  mkPN : (john : Str) -> PN
     = \s -> lin PN (ss s) ;  

  mkA = overload {
    mkA : (small : Str) -> A 
      = \a -> lin A (mkAdj a) ;
    } ;

  mkV = overload {
    mkV : (walk : Str) -> V 
      = \v -> lin V (regVerb v) ;
    mkV : (go,goes,went,gone : Str) -> V 
      = \p1,p2,p3,p4 -> lin V (mkVerb p1 p2 p3 p4) ;
    } ;

  mkV2 = overload {
    mkV2 : Str -> V2
      = \s -> lin V2 (regVerb s ** {c = []}) ;
    mkV2 : V -> V2
      = \v -> lin V2 (v ** {c = []}) ;
    mkV2 : V -> Str -> V2
      = \v,p -> lin V2 (v ** {c = p}) ;
    } ;

}