summaryrefslogtreecommitdiff
path: root/examples-3.0/tutorial/resource-foods/ExtFoods.gf
blob: 22b65a3c00a44c56650dce1d87216b336e517aef (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
abstract ExtFoods = Foods ** {

  flags startcat=Move ;

  cat
    Move ;      -- declarative, question, or imperative
    Verb ;      -- transitive verb
    Guest ;     -- guest in restaurant
    GuestKind ; -- type of guest

  fun
    MAssert : Phrase -> Move ;  -- This pizza is warm.
    MDeny : Phrase -> Move ;    -- This pizza isn't warm.
    MAsk : Phrase -> Move ;     -- Is this pizza warm?

    PVerb : Guest -> Verb -> Item -> Phrase ;     -- we eat this pizza
    PVerbWant : Guest -> Verb -> Item -> Phrase ; -- we want to eat this pizza

    WhichVerb : Kind -> Guest -> Verb -> Move ; -- Which pizza do you eat?
    WhichVerbWant : Kind -> Guest -> Verb -> Move ;
                                        -- Which pizza do you want to eat?
    WhichIs : Kind -> Quality -> Move ; -- Which wine is Italian? 

    Do : Verb -> Item -> Move ;       -- Pay this wine!
    DoPlease : Verb -> Item -> Move ; -- Pay this wine please!

    I, You, We : Guest ;

    GThis, GThat, GThese, GThose : GuestKind -> Guest ;
    
    Eat, Drink, Pay : Verb ;

    Lady, Gentleman : GuestKind ;
    
}