For each of the following grammars, devise predictive parsers and show the parsing tables. You may left-factor and/or eliminate left-recursion from your grammars first.
- $S\rightarrow 0S1\mid 01$
- $S\rightarrow +SS\mid \ast SS\mid a$
- $S\rightarrow S(S)S\mid \epsilon$
- $S\rightarrow S+S\mid SS\mid (S)\mid S\ast\mid a$ $.
- $S\rightarrow (L)\mid a$ and $L\rightarrow L,S\mid S$
- The following grammar for boolean expressions:
- $bexpr\:\rightarrow\:bexpr\:or\:bterm\mid bterm$
- $bterm\:\rightarrow\:bterm\:and\:bfactor\mid bfactor$
- $bfactor\:\rightarrow\:not\:bfactor\mid (bexpr)\mid true\mid false$