In[]:=
Equation[x_String]:=ToExpression[StringReplace[StringReplace[x,"=="->"="],"="->"=="]]
In[]:=
testcase="
2
vf
=
2
v0
+2a*x"
Out[]=
2
vf
=
2
v0
+2a*x
In[]:=
Equation@testcase
Out[]=
2
vf
25+2ax
In[]:=
Symbols[x_String]:=DeleteDuplicates@Cases[ToExpression[StringReplace[StringReplace[x,"=="->"="],"="->"=="]],_Symbol?(!NumericQ[#]&),Infinity]
In[]:=
Symbols[testcase]
Out[]=
{vf,a,v0}
In[]:=
InteractiveSolver[x_String]:=Clear/@Symbols[x];eq=Equation[x];vars=Reduce`FreeVariables[eq];sol="";​​Manipulate[Evaluate@Column@{HoldForm[Evaluate@eq],eq,Dynamic[sol]},Evaluate@Grid[Append[{HoldForm[#],InputField[Dynamic[#,Function[{val,expr},sol="";​​If[val===Null,Clear[#],#=val]]],Number]}&/@vars,With[{vars=vars,eq=eq},{Button["Solve",If[Count[vars,_Symbol]===1,sol=Flatten@Solve[eq],sol=""],ImageSize->Automatic,Method->"Queued"],SpanFromLeft}]]]]
Out[]=
​
Equation[99]
​
Solve
Equation[99]
Equation[99]
sol
In[]:=
InteractiveSolver[testcase]
Out[]=
{Null,Null,Null}