1.4k views

For the grammar below, a partial $LL(1)$ parsing table is also presented along with the grammar. Entries that need to be filled are indicated as $E1, E2,$ and $E3$. $\varepsilon$ is the empty string, \$indicates end of input, and,$\mid$separates alternate right hand sides of productions. •$ S\rightarrow a A b B \mid b A a B \mid \varepsilon $•$ A\rightarrow S $•$ B\rightarrow S ab$\$
$S$ $E1$ $E2$ $S\rightarrow \varepsilon$
$A$ $A\rightarrow S$ $A\rightarrow S$ error
$B$ $B\rightarrow S$ $B\rightarrow S$ $E3$

The FIRST and FOLLOW sets for the non-terminals $A$ and $B$ are

1. $\text{FIRST}(A) = \{a, b, \varepsilon\} =\text{FIRST}(B)$
$\text{FOLLOW}(A) = \{a, b\}$
$\text{FOLLOW}(B) = \{a, b, \$\} $2.$ \text{FIRST}(A) = \{a, b, \$\}$
$\text{FIRST}(B) = \{a, b, \varepsilon\}$
$\text{FOLLOW}(A) = \{a, b\}$
$\text{FOLLOW}(B) = \{\$\} $3.$ \text{FIRST}(A) = \{a, b, \varepsilon\} =\text{FIRST}(B)  \text{FOLLOW}(A) =\{a, b\}  \text{FOLLOW}(B) = \varnothing $4.$ \text{FIRST}(A) = \{a, b\} = \text{FIRST}(B)  \text{FOLLOW}(A) = \{a, b\}  \text{FOLLOW}(B) =\{a, b\} $asked edited | 1.4k views ## 3 Answers +13 votes Best answer$\text{First}(S) = \text{First}(A) = \text{First}(B) = \{a,b,\epsilon\}\text{Follow}(A) = \{a,b\}\text{Follow}(B) = \text{Follow}(S) = \{a,b,\$\}$

So, the answer to question 52 is option A.

edited by
+1
How can we now that the production to entered in E3 is B=>S and not B=>∊ ? Precisely, how do we decide to be inser B=>∊ versus some other production. For S at M[S, $], the production entered is S=>∊. What is the difference? +5 votes Q 52 : ans is A. first we can easly find. follow of A = {a,b}, all symbols appeared after A in RHS follow of B = {a,b,\$}, as B is at the end in RHS, follow(B) = follow (S) and S is also at the end in RHS so follow(S) = follow(A) = {a,b} and S is start symbol, so its follow contains \$also. hence, follow(B) = {a,b,\$}

Q 53.

ans is C.

1
2