
In all equations the goal is the same, finding the unknown, 
Between every term there must be a space ex:
x = 50
x = x - 50
x - 10 = 50
x - 10 = x - 50
5x = 50
5x = x - 50
5x - 10 = 50
5x - 10 = x - 50

BEDMAS

2(x^2 + 50) = 50 + x
-2(x^2 + 50) is a term
-50 is a term
-x is a term

- Term:
	- Variable
	- Value
	- Power

- Constant:
	- Value
	- Power

- Variable:
	- Value
	- Char var
	- Power

- Operator:
	- char

- Bracket:
	- Value
	- Terms vector

- Equation:
	- lwing		// Contains list of terms on the left side of the equation
	- rwing		// Conatins list of terms on the right side of the equation
	// lwing = rwing

Parsing Algorithim:
	- split the terms in the term of spaces
	- iterate over the terms, call the iterator mTerm:
		- if there exists an opening bracket in the mTerm
			- split upon the bracket
			- make the coefficient of the bracket the first item in the split,
			- make the other terms in the mTerms vector.
			- consume the other terms until a closing bracket is found.
			*- if the bracket is found delete the char and convert normally to valid term and append.
			- add the bracket to the list of terms in the correct wing.
		- if mTerm contains a '^':
			- if a character is detected:
				- split upon the power.
				- the first split is converted to a variable.
				- the second split is added to the power of the variable.
				- add the variable to the list of the terms in the correct wing.
			- if all of the mTerm is digits with '^':
				- split upon the power.
				- the fist split is converted to a constant.
				- the second split is added to the power of the variable.
				- add the constant to the list of the terms in the correct wing.
		- if mTerm is all digits:
			- convert to a constant.
			- add the constant to the list of the terms in the correct wing.
		- if mTerm contains a character:
			- convert to a variable.
			- add the constant to the list of the terms in the correct wing.
		- if mTerm is an Operator:
			- convert to an operator;
			- add the operator to the list of the terms in the correct wing.
		- if the mTerm is an equality operator:
			- switch the bool of lwing_turn.


Initialization:
1. Seperate the terms.
2. Put the lwing and rwing correctly.
3. Put all of the data in memory correctly

In Case of One unknown:
1. Swap like terms to keep the unknowns in one side and constants on other.
2. Combine the terms