1 Complete and test the parsing program developed in the case study.

2 Add the operator ^ for exponentiation to the language of expressions in the case study. This operation is right associative, which means that consecutive instances of it are evaluated from right to left. Thus, the expression 3 ^ 3 ^ 2 is equivalent to 3 ^ 9 (19683), not 9 ^ 2 (81). This behavior is expressed by adding a new grammar rule and renaming another rule. First, you rename the existing rule (and the existing method in the parser) for factor to primary. Second, you define a new rule (and a new parsing method) for factor. This rule states that a factor is a primary followed by an optional exponentiation operator followed by another factor. Modify the token set and the parser in the case study to handle exponentiation.