Expression Manipulator v0.2 (bug fixes, functions)

Here's the source code. I'll upload an executable a short while later (in the morning, likely).

New Features:

- functions: 6 constant trig functions, log functions, and any number of user-defined functions

- new subtraction rules

- all known bugs fixed

Features:

- 4 regular functions plus raising to a power

- boundless limits on name sizes and recursion

- simplification functions

Usage:

Code:

`sin(cos(0))*3+4(5-x)^3`

Output:

Code:

`3*sin(cos(0)) + 4*[5 + -1*x]^3 = 3*sin(cos(0)) + 4*[5 + -1*x]^3`

3*sin(cos(0)) + 4*[5 + -1*x]^3 = 3*sin(cos(0)) + 4*[5 + -1*x]^3

3*sin(cos(0)) + 500 + -300*x + 60*x^2 + -4*x^3 = 3*sin(cos(0)) + 500 + -300*x +

60*x^2 + -4*x^3

2.52441 + 500 + -300*x + 60*x^2 + -4*x^3 = 2.52441 + 500 + -300*x + 60*x^2 + -4*x^3

6 trig functions:

sin, cos, tan, cot, sec, csc

2 log functions:

log - base 10

ln - base e

f() is defined to be f(x) = x+y, although it could be any expression.

Code:

`f(3)g(3)`

would become

(3+y)*g(3)

Comments? Questions? Suggestions? (Just fyi, terms aren't combined at the end, though nothing prevents them from being combined)