summaryrefslogtreecommitdiff
path: root/examples/dialogue/DialogueProlog.gf
blob: 30e397f0dc0941619f8fc9e3c38f603f05cdf7dd (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
--# -path=.:prelude

concrete DialogueProlog of Dialogue = open ResProlog, Prelude in {

  flags lexer=codelit ; unlexer=code ;

  lincat
    Move   = SS ;
    Action = SS ;
    Kind   = SS ;
    Object = SS ;
    Oper0  = SS ;
    Oper1  = SS ;
    Oper2  = SS ;

  lin
    MRequest a = a ;
    MAnswer  a = a ; --- ??

    MQuery k = ss (bracket (app1 "query" k.s)) ; ---

    AOper0 op         = ss (bracket (request op.s)) ;
    AOper1 k   op x   = ss (req_ans op.s k.s x.s) ; 
    AOper2 k m op x y = 
      ss (bracket (request op.s ++ "," ++ 
        answer (app1 k.s x.s) ++ "," ++ answer (app1 m.s y.s))) ;

    OAll = apps "all" ; 
    OIndef = apps "indef" ;
    ODef = apps "def" ;


}