tagged release 0.7.1
[parrot.git] / languages / tcl / runtime / builtin / append.pir
blob09598d7a70467ad10bdd83d28e8dcf85b6233ac5
1 .HLL 'Tcl', ''
2 .namespace []
4 .sub '&append'
5   .param pmc argv :slurpy
7   .local int argc
8   argc = elements argv
10   .local pmc read
11   read = get_root_global ['_tcl'], 'readVar'
13   .local string value
14   .local int looper
15   looper = 1
17   if argc == 0 goto badargs
19   .local string name
20   name = argv[0]
22   if argc == 1 goto getter
24 setter:
25   push_eh new_variable
26     $P1 = read(name)
27   pop_eh
29   value = $P1
30   goto loop
32 new_variable:
33   value = ''
35 loop:
36   if looper == argc goto loop_done
38   $S2 = argv[looper]
39   concat value, $S2
40   inc looper
41   goto loop
43 loop_done:
44   .local pmc set
45   set = get_root_global ['_tcl'], 'setVar'
46   .return set(name, value)
48 getter:
49   .return read(name)
51 badargs:
52   die 'wrong # args: should be "append varName ?value value ...?"'
53 .end
55 # Local Variables:
56 #   mode: pir
57 #   fill-column: 100
58 # End:
59 # vim: expandtab shiftwidth=4 ft=pir: