Спасибо! Вариант с "set %a [1] %Dep" помог заставить работать eval.
Вот что получилось у меня
Код
set #fc 1
set %Depcow[1 1] 111
set %Deppig[1 1] 211
set %Depsable[1 1] 311
set %animal[1 1] cow
set %animal[2 1] pig
set %animal[3 1] sable
set #ac size (%animal)
set %a[1] %SQ
set %a[2] %Dep
set #z1 0
for #z1 1 #fc
set #z 0
for #z 1 #ac
set #tmp eval (%a[2]$animal[#z1 1])
set $tmp #tmp
set $animal %animal[#z 1]
eval (set %a[1]$animal[#z1 1] $tmp)
eval (set %a[1]$animal[#z1 2] %a[2]$animal[#z1 1])
eval (set %a[1]%animal[#z 1][#z1 4] $tmp)
log eval(%SQ%animal[#z 1][#z1 1] %a[1]$animal[#z1 2] %a[1]%animal[#z 1][#z1 4])
end_for
end_for
log eval(%a[2]%animal[1 1] %a[2]%animal[2 1] %a[2]%animal[3 1])
end_script