Uplevel

Uplevel is a command in Tcl that allows a command script to be executed in a scope other than the current innermost scope on the stack. Because the command script may itself call procedures that use the uplevel command, this has the net effect of transforming the call stack into a call tree.

It was originally implemented to permit Tcl procedures to reimplement built-in commands (like for, if or while) and still have the ability to manipulate local variables. For example, the following Tcl script is a reimplementation of the for command (omitting exception handling):

  proc for {initCmd testExpr advanceCmd bodyScript} {
     uplevel 1 $initCmd
     set testCmd [list expr $testExpr]
     while {[uplevel 1 $testCmd]} {
        uplevel 1 $bodyScript
        uplevel 1 $advanceCmd
     }
  }


This article is issued from Wikipedia - version of the Wednesday, January 07, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.