Fill in the Action and Goto tables for an LALR parser for the grammar given below, where the start symbol is E. Although the grammar is ambiguous, your parser must not be ambiguous: an ambiguous string, such as x − y − z or x + y ∗ z, must be parsed according to the usual precedence of operators. “∧” stands for exponentiation, i.e., x ∧ y means x^{y}. Exponentiation is right-associative, as in Python. Thus, a∧a∧a means a∧(a∧a). Note: id stands for any variable name, such as x, y, or z. Thus, if the expression is x − y − z, you can think of the input to the parser as id - id - id.

1. E ⟶ E_{1,13} +_{2} E_{3}

2. E ⟶ E_{1,13} −_{4} E_{5}

3. E ⟶ E_{1,3,5,13} ∗_{6} E_{7}

4. E ⟶ −_{8}E_{9}

5. E ⟶ E_{1,3,5,7,9,11,13} ∧_{10} E_{11}

6. E ⟶ (_{12}E_{13})_{14}

7. E ⟶ id_{15}

id  +  −  ⋆  ∧  (  )  eof  E
0 s15  s8  s12  1
1  s2  s4  s6  s10  halt
2 s15  s8  s12  3
3  r1  r1  s6  s10  r1  r1
4 s15  s8  s12  5
5  r2  r2  s6  s10  r2  r2
6 s15  s8  s12  7
7  r3  r3  r3  s10  r3  r3
8 s15  s8  s12  9
9  r4  r4  r4  s10  r4  r4
10 s15  s8  s12  11
11  r5  r5  r5  s10  r5  r5
12 s15  s8  s12  13
13  s2  s4  s6  s10  s14
14  r6  r6  r6  r6  r6  r6
15  r7  r7  r7  r7  r7  r7