mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-10 05:29:30 -06:00
43 lines
1003 B
Plaintext
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" ;
|
|
|
|
|
|
}
|
|
|