<>; $.=0; while(<>){ ($o,$v)=split; if($o eq '/'){ goto saw_div; } push@a,($o eq'*'?mul:add)." a a A[$.]"; } goto out; saw_div: push@a,"add b b A[$.]"; while(<>){ ($o,$v)=split; if($o eq '/'){ push@a,"mul b b A[$.]"; }elsif($o eq '*'){ push@a,"mul a a A[$.]"; }else{ push@a,"mul c b A[$.]"; push@a,"add a a c"; } } push@a,"div a a b"; out:; print~~@a,"\n"; print$_,"\n"for@a;