Posted to tcl by dbohdan at Mon Mar 23 09:06:59 GMT 2015view raw
- proc sla script {
- set res {}
- set parts {}
- foreach part [split $script \n] {
- lappend parts $part
- set part [join $parts \n]
- #add the newline that was stripped because it can make a difference
- if {[info complete $part\n]} {
- set parts {}
- set part [string trim $part]
- if {$part eq {}} {
- continue
- }
- if {[string index $part 0] eq {#}} {
- continue
- }
- # A hack to ensure $part is byte-compiled.
- set x [apply "{} { uplevel 2 {list $part} }"]
- lappend res {*}$x
- }
- }
- if {$parts ne {}} {
- error [list {incomplete parts} [join $parts]]
- }
- return $res
- }