I'm trying to figure out if there is some function available that would take a 
string as input and return a double value that is the complete evaluation of 
the string?

So when asked for a numeric input, the user could just put in a number like 
6.28 but also put in a formula like SQRT(2) or (3*(8+Q))/9.3 or Hypot(I,J).... 
etc... using any random math operations in combination with math functions and 
variables,  without editing the code to create an expression to evaluate the 
formula.   

I don't know what this method of input is even called, but I have some programs 
that do it on a small scale, for example I have a CAD program where I can type 
in 5/32 as in put and it will calculate it to be 0.15625  I can put in anything 
I want.. like SQRT(2) or Pi or big long formula and it will resolve it for me, 
so basically all the input fields are all formula calculators.  The CAD program 
does some basic functions, but none of the more complex ones like Hypot and it 
has no way to use any variables... still it's very useful to just put a formula 
in the input field.  

I have a unit that I found decades ago for turbo pascal that partially does 
this, but it's outdated, it only works with reals, doesn't work with functions 
from the math unit like Hypot or atan2 but it does work with things like sqrt, 
and it doesn't work with values available in the math unit like NAN +inf or 
-inf, and I would really like to know if the result was NAN as opposed to 0.   
Anyway I'm wondering if there is already something available that does this in 
a more modern way, using all the features of the math unit, or am I going to 
just need to muddle through and re-write the unit I have already. 

I tried to do a search on this but don't really know what it's called.  My old 
unit was call infix, but when I search for that I find a lot of methods for 
converting infix to postfix, which is not what this does at all,  the unit I 
have just evaluates the expression properly and it never converted it to 
postfix notation to do it.  I think it was called infix because it could 
calculate user input in infix notation and return a result... but that process 
of accepting a formula as a string, evaluating it as a formula and returning a 
value.. I do not know what that might be called.. or if it already exists as a 
function in a unit somewhere.   I started to add some missing functions to the 
unit I have and to convert it to use doubles.. etc, but it's going to be a long 
tedious process.. and I'll be wasting my time if I could have just used 
something that is already out there. 

Any Ideas?

James

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to