4.3BSD/usr/contrib/icon/book/f/gener.icn

procedure generate(line)
   local goal, count
   if line ? {
      ="<" &
      goal := tab(upto('>')) &
      move(1) &
      count := (0 <= integer(tab(0)))
      }
   then {
      every write(gener(goal)) \ count
      return
      }
   else fail
end