proc parsedict {args} {
set d [join $args]
if {[catch {dict size $d} result]} {
puts "err $result"
} else {
puts "size=$result"
set n 0
foreach key [dict keys $d] {
puts key$n=$key
incr n
}
set n 0
foreach value [dict values $d] {
puts value$n=$value
incr n
}
}
}
parsedict -name "name with spaces" -value 3 -color {-type enum -values {red blue green}}
cHJvYyBwYXJzZWRpY3Qge2FyZ3N9IHsKc2V0IGQgW2pvaW4gJGFyZ3NdCmlmIHtbY2F0Y2gge2RpY3Qgc2l6ZSAkZH0gcmVzdWx0XX0gewogICAgcHV0cyAiZXJyICRyZXN1bHQiCn0gZWxzZSB7CiAgICBwdXRzICJzaXplPSRyZXN1bHQiCiAgICBzZXQgbiAwCiAgICBmb3JlYWNoIGtleSBbZGljdCBrZXlzICRkXSB7CiAgICAgICAgcHV0cyBrZXkkbj0ka2V5CiAgICAgICAgaW5jciBuCiAgICB9CiAgICBzZXQgbiAwCiAgICBmb3JlYWNoIHZhbHVlIFtkaWN0IHZhbHVlcyAkZF0gewogICAgICAgIHB1dHMgdmFsdWUkbj0kdmFsdWUKICAgICAgICBpbmNyIG4KICAgIH0KfQp9CiAKcGFyc2VkaWN0IC1uYW1lICJuYW1lIHdpdGggc3BhY2VzIiAtdmFsdWUgMyAtY29sb3Igey10eXBlIGVudW0gLXZhbHVlcyB7cmVkIGJsdWUgZ3JlZW59fQo=