Patch implements set of basic arithmetic operations
that are commonly used in linkerscripts, they
are: +,-,*,/,&,().
At first for expression Reverse Polish Notation (RPN) is built
using shunting-yard algorithm by Edsger Dijkstra.
Then RPN is used to calculate the expression.
Approach and algorithm should be extremely fast.
To analyze the running time complexity of this algorithm, one
has only to note that each token will be read once, each function,
operator, or parenthesis will be pushed onto the stack and popped
off the stack once – therefore, there are at most a constant number
of operations executed per token, and the running time is
thus O(n) – linear in the size of the input.
Also this approach is easy to extend to support functions,
ternary operator and other operators which we might want to add
in future.