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)