
  TParser is a component specialised in parsing and evaluating
mathematical expressions specified at runtime. It's performance
is remarkable - only 40-80% slower than similar compiled expression -
and it is by far the fastest parser on the freeware and
shareware market.
  The programming interface is as simple as this:
  - specify values for predefined variables in properties 
A,B,C,D,E,X,Y or T;
  - specify expression to be evaluated in Expression property;
  - retrieve computed value in Value property. 
  Should you have to compute several values of the
same expression with different sets of variables, specify
expression once - as this operation is time consuming - and
assign new values for variables and retrieve Value property as many
times as you wish. You can add however variables of your own by
specifying their names and values with method SetVar.
  There is no limit for expression size in 32 version, while
16 bit version has a severe restriction of 255 characters.
You should reserve 8 extra Kbytes for stack space when using
16 bit version; no such precautions are necessary with 32 bit
version due to automated stack resize.
  
  Accepted operators: + , - , * , / , ^ . 
  The following functions are supported; it doesn't matter
if you use lower or upper case:
  MIN, MAX,
  ARG (angle of (x,y) with the x-axis (between -pi and pi)),
  R (distance of (x,y) from (0,0)),
  PI, COS, SIN, SINH, COSH, EXP, LN, ARCTAN,
  SQRT, ABS,
  HEAV (heav(x) is =1 for x>0 and =0 for x<=0),
  SIGN (sign(x) is 1 for x>1, 0 for x=0, -1 for x<0),
  ZERO (zero(x) is 0 for x=0, 1 for x<>0),
  PH (ph(x) = x - 2*pi*round(x/2/pi))

  Feel free to add functions of one or two variables of your own; 
as you will notice, it is not that hard.

  Use and modification of TParser is entirely free, provided
that you preserve the following credits. Of course, it is 
at your own risk.

  Credits

  This component is based on original parser Pars7 developed by
Renate Schaaf (schaaf@math.usu.edu). Pars7 was fast indeed, but
somehow restricted to scientific purposes due to the limited
number of predefined variables. Unfortunately, Pars7 was quite 
stack hungry and had several elusive bugs while deallocating 
expression tree.
  Now dressed as a component, TParser has low stack demands even in
its 16 bit version, accepts practically an unlimited number of
variables, and several parts of builder code were entirely rewritten
for the sake of clarity.
  I would greatly appreciate suggestions, bug reports, any feed-back
that might contribute to further improve TParser's speed and 
functionality.

    Alin Flaider, aflaidar@datalog.ro

