Here is a copy-and-paste from SourceCoder 2 (copyright Cemetech 2005)

I'm not sure how to add source code to the program.

:"?→Str2

:"??π??^{x}√^?*/?+-‾→Str9

:"int(.34inString(Str9,Ans→Y1

:DelVar ADelVar DDelVar N{0→O

:Input Str0

:Str0+"π→Str0

:For(I,1,length(Str0

:Disp ∟O

:Pause Str2

:sub(Str0,I,1→Str1

:inString("0123456789.",Str1→T

:If Ans:Then

:If D:Then

:N+(Ans-1)10^‾D→N

:D+1→D

:Else

:Ans=11→D

:If not(Ans

:10N+T-1→N

:1→A

:End

:Else

:If A:Then

:DelVar ADelVar Daugment({N},∟O→O

:DelVar N

:End

:Str1:Y1→P

:If Ans:Then

:sub(Str2,1,1

:If Ans="^{x}√

:Then

:"^"+sub(Str2,2,length(Str2)-1→Str2

:∟O(2→X

:∟O(1→∟O(2

:X-1→∟O(1

:Else

:While P≤Y1 and not(P=Y1 and (Str1="‾" or Ans="‾

:If Ans="‾

:Then

:‾∟O(1→∟O(1

:Else

:expr("∟O(2)"+Ans+"∟O(1"→∟O(2

:DeltaListcumSum(∟O→O

:End

:sub(Str2,2,length(Str2)-1→Str2

:sub(Str2,1,1

:End

:End

:Str1+Str2→Str2

:Else

:If Str1="(

:Str1+Str2→Str2

:inString("√(3√(",Str1

:If Ans:Then

:augment({Ans+1},∟O→O

:"(^{x}√"+Str2→Str2

:End

:If Str1=")

:Then

:inString(Str2,"(→T

:For(J,1,T-1

:sub(Str2,J,1

:If Ans="‾

:Then

:‾∟O(1→∟O(1

:Else

:expr("∟O(2)"+Ans+"∟O(1"→∟O(2

:DeltaListcumSum(∟O→O

:End

:End

:sub(Str2,T+1,length(Str2)-T→Str2

:End

:End

:End

:End

:∟O(1