Consider the following grammar fragment for if-then-else statements in a programming language (where teminals are in lower case and non-terminals are upper case: STATEMENT --> if BOOLEAN-EXPRSSION then STATEMENT else STATEMENT STATEMENT --> if BOOLEAN-EXPRSSION then STATEMENT 1) Show that a statement of the form if BOOLEAN-EXPRSSION then if BOOLEAN-EXPRSSION then STATEMENT else STATEMENT is ambiguous according to the grammar fragment. 2) Rewrite the grammar fragment so that it is not ambiguous. In particular, ambiguities should be eliminated in such a way that in the example of 1), the "else" part is associated with the nearest the second "if". That is, the statement will read like a), not b). a) (if BOOLEAN-EXPRSSION then (if BOOLEAN-EXPRSSION then STATEMENT else STATEMENT)) b) (if BOOLEAN-EXPRSSION then (if BOOLEAN-EXPRSSION then STATEMENT) else STATEMENT) 3) As the grammar stands, there is no way for a programmer to specify a statement with meaning b). One way to enable this, would be to incorporate parentheses (or begin-end pairs) into the language so that a programmer could write a) or b) explicitly. Modify your grammar to facilitate this.