summaryrefslogtreecommitdiff
path: root/next-lib/src/latin/ParadigmsLat.gf
blob: 808d46bc4d2143b79f32ea6df1f5eb112a39f58c (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
--# -path=.:../abstract:../../prelude:../common

--1 Latin Lexical Paradigms
--
-- Aarne Ranta 2008
--
-- This is an API for the user of the resource grammar 
-- for adding lexical items. It gives functions for forming
-- expressions of open categories: nouns, adjectives, verbs.
-- 
-- Closed categories (determiners, pronouns, conjunctions) are
-- accessed through the resource syntax API, $Structural.gf$. 

resource ParadigmsLat = open 
  (Predef=Predef), 
  Prelude, 
  ResLat,
  CatLat
  in {

--2 Parameters 
--
-- To abstract over gender names, we define the following identifiers.

oper
  masculine : Gender ;
  feminine  : Gender ;
  neuter    : Gender ;

  mkN = overload {
    mkN : (verbum : Str) -> N 
      = \n -> noun n ** {lock_N = <>} ;
    mkN : (verbum, verbi : Str) -> Gender -> N 
      = \x,y,z -> noun_ngg x y z ** {lock_N = <>} ;
  } ;
  
  mkA = overload {
    mkA : (verbum : Str) -> A 
      = \n -> adj n ** {isPre = False ; lock_A = <>} ;
    mkA : (verbum, verbi : Str) -> A 
      = \x,y -> adj123 x y ** {isPre = False ; lock_A = <>} ;
    mkA : (bonus,bona,bonum : N) -> A 
      = \x,y,z -> mkAdjective x y z ** {isPre = False ; lock_A = <>} ;
  } ;
  

  mkV = overload {
    mkV : (tacere : Str) -> V
      = \v -> verb v ** {lock_V = <>} ; 
    mkV : (iacio,ieci,iactus,iacere : Str) -> V
      = \v,x,y,z -> verb_pppi v x y z ** {lock_V = <>} ; 
  } ;

  mkV2 = overload {
    mkV2 : (amare : Str) -> V2
      = \v -> verb v ** {c = {s = [] ; c = Acc} ; lock_V2 = <>} ; 
    mkV2 : (facere : V) -> V2
      = \v -> v ** {c = {s = [] ; c = Acc} ; lock_V2 = <>} ; 
    } ;
--.
  masculine = Masc ;
  feminine = Fem ;
  neuter = Neutr ;

}