Create a C++ program that can parse and evaluate arithmetic expressions. For example, on input 3+(5+(4*3))-12, the program should return 8. The program should also detect an invalid input and report an appropriate error.
Supported Symbols
- Positive and negative numbers.
- +, -, *, / and parentheses.
Your code will be reviewed by at least two of our engineers. We do take into consideration your experience level.
We value quality over feature-completeness. It is fine to skip certain features aside provided you mention them out in your project's README.
The aspects of your code we will review include:
- Code quality: is the code simple, easy to understand, and maintainable? Are there any code smells or other red flags? Is the coding style consistent with the language's guidelines? Is it consistent throughout the codebase?
- Version Control: are you commiting early and often ? how good are your git commit messages ?
- Correctness: does the application do what was asked? If there is anything missing, does the README explain why it is missing?