rep.tcl
# file: rep.tcl
# purpose: provide read-eval-print loop for newLISP
# correspondending with rep.lsp
package require Tk
destroy .rep
toplevel .rep
wm title .rep "Read Eval Print -- newLISP"
tk appname rep
pack\
[text .rep.t -font {Mono -15} -undo yes -wrap none\
-width 40 -height 10 -yscrollcommand ".rep.v set"]\
-expand yes -fill both -side left
pack\
[scrollbar .rep.v -orient vertical -command ".rep.t yview"]\
-side left -fill y
proc newLISP line {
puts "(respond $line)"
}
proc println result {
# aufgerufen aus newLISP heraus
.rep.t mark set insert end
.rep.t insert insert [lindex [list $result] 0]\n
after idle .rep.t see insert
}
bind .rep.t [list apply [list win {
#
# Teile die Benutzereingabe an newLISP mit:
#
if {[$win tag ranges sel] eq {}} then {
set line [$win get {insert linestart} {insert lineend}]
} else {
set line [$win get sel.first sel.last]
}
# puts "(respond $line)"
newLISP $line
$win mark set insert end
$win insert insert \n
}] %W]
bind .rep.t +break
bind .rep.t continue
# eof
4.10.2022
<< | Heimatseite | Verzeichnis | Stichworte | Autor | >>