summaryrefslogtreecommitdiff
path: root/examples/SUMO/RGLExt/ExtensionEng.gf
blob: 89fd8a9e4bf37417559318dd65c0e2a077a86224 (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
66
67
68
69
70
71
--# -path=.:RGLExt:alltenses:../../lib/src/english

concrete ExtensionEng of Extension = open CatEng, MorphoEng, ResEng, ConjunctionEng, StructuralEng, Prelude, ParadigmsEng, Coordination, ParamBasic in {


lincat 
    PolSentence = {s : SentForm => CPolarity => Str ; flag : Flag};
    [CN] = {s1,s2 : Number => ResEng.Case => Str ; g : Gender} ;   
    StmtS = {s : Str};
    NP = CatEng.NP;
    CN = CatEng.CN; 
    N = CatEng.N;
    N2 = CatEng.N2;
    A = CatEng.A;
    V = CatEng.V;
    V2 = CatEng.V2;
    Cl = CatEng.Cl;
    Pol = CatEng.Pol;
    Prep = CatEng.Prep;
    Conj = CatEng.Conj;
lin 

VerbToNounV2 vs = VerbToNoun vs ** {c2 = vs.c2; lock_N2=<>};

VerbToNoun v = {s = \\_,_ => v.s ! VPresPart;
                g = Masc; lock_N=<>};
                                
VerbToGerundA v = {s = \\_ => v.s ! VPresPart; lock_A=<>};              

VerbToParticipeA v = {s = \\_ => v.s ! VPPart; lock_A=<>};

mkPolSent cl = {s = \\f,b => case b of 
                              {CPos => cl.s ! Pres ! Simul ! CPos ! ODir;
                               _   => cl.s ! Pres ! Simul ! CNeg False ! ODir};
                flag = NothingS ;
                lock_PolSentence = <>};
               
sentToNoun ps = {s = \\_ => "\"" ++ ps.s ! Indep ! CPos ++ "\"";
                 a = agrP3 Sg; lock_NP=<>};               
               
ConjCN conj ss = conjunctDistrTable2 Number ResEng.Case conj ss ** {g = ss.g;lock_CN=<>};               

BaseCN x y ={s1 = \\n,c => x.s ! n ! c ;
             s2 = \\n,c => y.s ! n ! c ;   
             g  =  x.g} ;  

ConsCN xs x = consrTable2 Number ResEng.Case comma xs x ** {g = Masc} ;               


UsePolSentence p ps = {s = ps.s ! Indep ! p.p};

at_Prep = mkPrep "at" ;
per_Prep = mkPrep "per" ;  

O1 = {s = \\_ => "o1" ;
      a = agrP3 Sg}**{lock_NP=<>};

O2 = {s = \\_ => "o2" ;
      a = agrP3 Sg}**{lock_NP=<>};

O3 = {s = \\_ => "o3" ;
      a = agrP3 Sg}**{lock_NP=<>};
      
O4 = {s = \\_ => "o4" ;
      a = agrP3 Sg}**{lock_NP=<>};      
      
O5 = {s = \\_ => "o5" ;
      a = agrP3 Sg}**{lock_NP=<>};      

     
}