summaryrefslogtreecommitdiff
path: root/examples/tutorial/semantics/BaseI.gf
blob: 23b4fbcb805b0801302dcf066ebfaecd6bc61dec (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
--# -path=.:prelude:present

concrete BaseEng of Base = open Syntax, (G = Grammar), Symbolic, LexBase in {

flags lexer=literals ; unlexer=text ;

lincat
  Question = Phr ;
  Answer = Phr ;
  S  = Cl ;
  NP = NP ;
  PN = NP ;
  CN = CN ;
  AP = AP ;
  A2 = A2 ;
  Conj = Conj ;
  ListPN = ListNP ;
lin 
  PredAP  = mkCl ;

  ComplA2 = mkAP ;

  ModCN   = mkCN ;

---  ConjS  = mkS ;
  ConjAP = mkAP ;
  ConjNP = mkNP ;

  UsePN p = p ;
  Every = mkNP every_Det ;
  Some  = mkNP someSg_Det ;
---  None  = mkNP noSg_Det ; ---

  And = and_Conj ;
  Or  = or_Conj ;

  UseInt = symb ;

  Number = mkCN number_N ;

  Even   = mkAP even_A ;
  Odd    = mkAP odd_A ;
  Prime  = mkAP prime_A ;
  Equal  = mkA2 equal_A2 ;
  Greater = mkA2 greater_A2 ;
  Smaller = mkA2 smaller_A2 ;
  Divisible = mkA2 divisible_A2 ;
 
  Sum pns = mkNP defSgDet (mkCN sum_N2 (mkNP and_Conj pns)) ;
---  Product = prefixSS ["the product of"] ;
---  GCD     = prefixSS ["the greatest common divisor of"] ;

---  WhatIs = prefixSS ["what is"] ;
---  WhichAre cn ap = ss ("which" ++ cn.s ++ "is" ++ ap.s) ; ---- are
  QuestS s = mkPhr (mkQCl s) ;

  Yes = yes_Phr ;
  No = no_Phr ;

  Value np = mkPhr (mkUtt np) ;
  Many list = list ;

  BasePN = G.BaseNP ;
  ConsPN = G.ConsNP ;
  
}