1
0
forked from GitHub/gf-core
Files
gf-core/examples/dialogue/DialogueProlog.gf
2006-05-17 21:04:54 +00:00

43 lines
1003 B
Plaintext

--# -path=.:prelude
concrete DialogueProlog of Dialogue = open ResProlog, Prelude in {
flags lexer=codelit ; unlexer=code ;
lincat
Move = SS ;
Action = SS ;
Proposition = SS ;
Question = SS ;
Kind = SS ;
Object = SS ;
Oper0 = SS ;
Oper1 = {s, x : Str} ;
Oper2 = {s, x, y : Str} ;
lin
MRequest a = a ;
MConfirm a = a ; --- ??
MAnswer a = a ; --- ??
MIssue a = ss (bracket (app1 "ask" a.s)) ; --- ??
MYes = ss (bracket (app1 "answer" "yes")) ;
MNo = ss (bracket (app1 "answer" "no")) ;
MObject _ ob = ss (bracket (apps "answer" ob).s) ;
QKind k = ss (app2 "q" "X" (app1 k.s "X")) ;
AOper0 op = ss (bracket (request op.s)) ;
AOper1 _ op x = ss (req_ans op.s op.x x.s) ;
AOper2 _ _ op x y =
ss (bracket (request op.s ++ "," ++
answer (app1 op.x x.s) ++ "," ++ answer (app1 op.y y.s))) ;
OAll = apps "all" ;
OIndef = apps "indef" ;
ODef = apps "def" ;
}