• Define and implement an abstract class Expression.
• Add private field expression.
• Add public methods characterAt and getLen.
• Add static methods isOperator, isIdentifier, and getPrecedence.
• Define and implement subclass InfixExpression.
• Add private fields opStack and valStack.
• Add public methods isLegal and evaluate.
• Add protected methods isExpression, isTerm, isFactor and doOperation.