NewList stroka.s()

a$="4-5*6-7+8+9-4000*8-494+999+564-345*7*8*9+568/2"

old_marker=1
marker=old_marker
Repeat
       
       s$=Mid(a$,marker,1)
       If s$="+" Or s$="-" Or s$="*" Or s$="/"
             AddElement(stroka())
              stroka()=Mid(a$,old_marker,marker-old_marker)
              AddElement(stroka())
              stroka()=s$
              old_marker=marker+1         
       EndIf
       
       
   marker+1   
   If marker>Len(a$)
           AddElement(stroka())
               stroka()=Mid(a$,old_marker,marker-old_marker)
               Break
   EndIf

   
ForEver
rez=0

ForEach stroka()
       If stroka()="*"
              DeleteElement(stroka())
              rez=Val(stroka())
              NextElement(stroka())
              rez*Val(stroka())
              DeleteElement(stroka())
              stroka()=Str(rez)
       EndIf     
      If stroka()="/"
              DeleteElement(stroka())
              rez=Val(stroka())
              NextElement(stroka())
              rez/Val(stroka())
              DeleteElement(stroka())
              stroka()=Str(rez)
        EndIf   
Next

ForEach stroka()
       If stroka()="+"
              DeleteElement(stroka())
              rez=Val(stroka())
              NextElement(stroka())
              rez+Val(stroka())
              DeleteElement(stroka())
              stroka()=Str(rez)
       EndIf
      If stroka()="-"
              DeleteElement(stroka())
              rez=Val(stroka())
              NextElement(stroka())
              rez-Val(stroka())
              DeleteElement(stroka())
              stroka()=Str(rez)
        EndIf     
Next
Debug stroka()
   
Debug 4-5*6-7+8+9-4000*8-494+999+564-345*7*8*9+568/2

можно ли его еще усовершенствовать?