## testujemy uruchamianie clipsa i konwersacje z nim, 11.2019
# + uwaga: trzeba czekac na prompt "CLIPS> " zanim sie wysle kolejna cmd/odp !!
#
set cli [open {|./clips624 -f2 animal.clp} r+]; # wl clipsa...
fconfigure $cli -blocking 0
fileevent $cli readable "cli_obsluga $cli"
set pro 0
set buf {}
proc cli_obsluga {cli} {
global pro buf
set x [read $cli]
_puts "|$x|"
set buf $x
if {[string match "*CLIPS> " $x]} {set pro 1}
# + tu moze byc reakcja na odp od clipsa
# tj wysylanie odp http do przekladarki...
# lacznie z odp koncowa i wylaczeniem clipsa...
}
vwait pro
puts $cli "(reset)"; flush $cli
vwait pro
puts $cli "(run)"; flush $cli; vwait buf; set _ "buf=$buf"
# + to ^^ robimy na poczatku...
#% buf=Does your animal have a backbone? (yes no)
set pro 0; puts $cli "yes"; flush $cli; vwait buf; set _ "pro=$pro; buf=$buf"
#% pro=1; buf=yes
CLIPS>
#% pro=0; buf=I think your animal is a bat
#% pro=0; buf=Can your animal fly? (yes no)
#% pro=0; buf=Does your animal eat red meat? (yes no)
#% pro=0; buf=Normally, does the female of your animal nurse its young with milk? (yes no)
#% pro=0; buf=Is the animal warm blooded? (yes no)
# + to ^^ powinno byc robione w cli_obsluga...
puts $cli "(exit)"; close $cli; # wyl clipsa...
# + to ^^ robimy po odpowiedzi koncowej...
exec ps -O ppid
exit