Module Rpn_Calc { Rem Form 80,60 function rpn_calc(a$) { def m=0 dim token$() token$()=piece$(a$," ") l=len(token$()) dim type(l)=0, reg(l) where=-1 for i=0 to l-1 c=val(token$(i),"",m) if m>-1 then where++ reg(where)=c else reg(where-1)=eval(str$(reg(where-1))+token$(i)+str$(reg(where))) where-- end if inf=each(reg(),1, where+1) while inf export$<=token$(i)+" ["+str$(inf^,"")+"] "+ str$(array(inf))+{ } token$(i)=" " end while next i =reg(0) } Global export$ document export$ example1=rpn_calc("3 4 2 * 1 5 - 2 3 ^ ^ / +") example2=rpn_calc("1 2 + 3 4 + ^ 5 6 + ^") Print example1, example2 Rem Print #-2, Export$ ClipBoard Export$ } Rpn_Calc