summaryrefslogtreecommitdiff
path: root/doc/tutorial/resource/Syntax.gf
blob: 59ba7d77024febc5a7db27087de0ef40a22382be (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
abstract Syntax = {

  flags startcat=Phr ;

  cat
    Phr ;  -- any complete sentence e.g. "Is this pizza good?"
    S ;    -- declarative sentence  e.g. "this pizza is good"
    QS ;   -- question sentence     e.g. "is this pizza good"
    NP ;   -- noun phrase           e.g. "this pizza"
    IP ;   -- interrogative phrase  e.g  "which pizza"
    CN ;   -- common noun phrase    e.g. "very good pizza"
    Det ;  -- determiner            e.g. "this"
    AP ;   -- adjectival phrase     e.g. "very good"
    AdA ;  -- adadjective           e.g. "very"
    VP ;   -- verb phrase           e.g. "is good"
    N ;    -- noun                  e.g. "pizza"
    A ;    -- adjective             e.g. "good"
    V ;    -- intransitive verb     e.g. "boil"
    V2 ;   -- two-place verb        e.g. "eat"

  fun
    PhrS  : S -> Phr ;
    PhrQS : QS -> Phr ;

    PosVP, NegVP : NP -> VP -> S ;
    QPosVP, QNegVP : NP -> VP -> QS ;

    IPPosVP, IPNegVP : IP -> VP -> QS ;
    IPPosV2, IPNegV2 : IP -> NP -> V2 -> QS ;
 
    ComplV2 : V2 -> NP -> VP ;
    ComplAP : AP -> VP ;

    DetCN  : Det -> CN -> NP ;

    ModCN  : AP -> CN -> CN ;

    AdAP   : AdA -> AP -> AP ;

    WhichCN : CN -> IP ;

    UseN : N -> CN ;
    UseA : A -> AP ;
    UseV : V -> VP ;

  -- entries of the closed lexicon

    this_Det  : Det ;
    that_Det  : Det ;
    these_Det : Det ;
    those_Det : Det ;
    every_Det : Det ;
    theSg_Det : Det ;
    thePl_Det : Det ;
    indef_Det : Det ;
    plur_Det  : Det ;
    two_Det   : Det ;

    very_AdA  : AdA ;
}