Before you start adding those features, the code that you started from has a known issue that needs to be addressed. Precedence is handled incorrectly. In the code every operator is given a unique precedence that is either greater than or lesser than another operator.
In mathematics, some operators have equal precedence. That is, Addition and Subtraction have the same precedence. When two operators have the same precedence, the Associativity determines the order of evaluation. The Associativity of the operators your code already supports is from left to right. This means that when two operators have the same precedence, evaluate the leftmost operator first.
Once this task is finished, you'll be able to add the features that you want.
Hey here's my code it is similar like that of shanky sharma but somewhat edited i want to make it multiply with brackets but i think my algorithm is not correct and i also want to keep ^ sign also there are problems like