Posted to tcl by dgp at Thu Nov 06 20:08:04 GMT 2014view raw

  1.  
  2. % proc Eval script {uplevel 1 $script}
  3. % proc frames {} {
  4. set l [info frame]
  5. incr l
  6. set i 0
  7. while {[incr l -1]} {
  8. puts $l:[info frame $i]\n
  9. incr i -1
  10. }}
  11. % oo::class create A {
  12. method foo {} {Eval {my bar}}
  13. method bar {} {frames}
  14. }
  15. ::A
  16. % A create a
  17. ::a
  18. % a foo
  19. 6:type proc line 6 cmd {info frame $i} proc ::frames level 0
  20.  
  21. 5:type proc line 1 cmd frames method bar class ::A level 1
  22.  
  23. 4:type eval line 1 cmd {my bar} proc ::Eval
  24.  
  25. 3:type proc line 1 cmd {uplevel 1 $script} proc ::Eval
  26.  
  27. 2:type proc line 1 cmd {Eval {my bar}} method foo class ::A level 2
  28.  
  29. 1:type eval line 1 cmd {a foo} level 3
  30.