procedure enrepl(s) local c, s1 s1 := "" s ? while c := move(1) do { i := 1 + (*tab(many(c)) | 0) if i > 4 then s1 ||:= c || "(" || i || ")" else s1 ||:= repl(c,i) } return s1 end procedure derepl(s) local c, s1 s1 := "" s ? { while s1 ||:= tab(upto('(') - 1) do { c := move(1) move(1) s1 ||:= repl(c,tab(upto(')'))) move(1) } s1 ||:= tab(0) } return s1 end