tagged release 0.6.4
[parrot.git] / languages / tcl / src / builtin / while.tmt
blob7b266cd60e062c2732f7cb7eae53ee64cdad3763
1 [while test:expr command:script]
3   .local pmc __boolean
4   __boolean = get_root_global ['_tcl'], '__boolean'
5 while_loop:
6   $P0 = $test
7   $I0 = __boolean($P0)
8   unless $I0 goto while_loop_done
9   
10   push_eh while_loop_exception
11     $command
12   pop_eh
13   
14   goto while_loop
16 while_loop_exception:
17   .catch()
18   .get_return_code($I0)
19   if $I0 == .CONTROL_CONTINUE goto while_loop
20   if $I0 == .CONTROL_BREAK    goto while_loop_done
21   .rethrow()
23 while_loop_done:
24   $R = new 'TclString'
25   $R = ''