Figuring out whether LL(1) grammar has an $\varepsilon$-free variant This question arose out of a concrete problem I had, which was to find an $\varepsilon$-free variant of the following LL(1) grammar $G_0$ that I developed for a Lisp-like language $L$ (I found a monotone LR(0) variant):

$$
\begin{array} \\
P &amp; \rightarrow &amp; (EP \\
  &amp; | &amp; \varepsilon \\
E &amp; \rightarrow &amp;iE \\
  &amp; | &amp;sE \\
  &amp; | &amp;nE \\
  &amp; | &amp;(EE \\
  &amp; | &amp;)
\end{array}
$$
where the start symbol is $P$. With this grammar, the leftmost derivation of $\omega = (i()sn)(inn)$ is
$$
\begin{array} \\
P &amp; \Rightarrow_L (EP \\
  &amp; \Rightarrow_L (iEP \\
  &amp; \Rightarrow_L (i(EEP \\
  &amp; \Rightarrow_L (i()EP \\
  &amp; \Rightarrow_L (i()sEP \\
  &amp; \Rightarrow_L (i()snEP \\
  &amp; \Rightarrow_L (i()sn)P \\
  &amp; \Rightarrow_L (i()sn)(EP \\
  &amp; \Rightarrow_L (i()sn)(iEP \\
  &amp; \Rightarrow_L (i()sn)(inEP \\
  &amp; \Rightarrow_L (i()sn)(innEP \\
  &amp; \Rightarrow_L (i()sn)(inn)P \\
  &amp; \Rightarrow_L (i()sn)(inn)
\end{array}
$$
My problem is that the parser generated by this grammar accepts the empty string, and I would like to exclude that.
So I am looking for an $\varepsilon$-free LL(1) grammar $G_1$ that generates $L-\{\varepsilon\}$. I have tried several times without success, leading me to doubt whether $L-\{\varepsilon\}$ is simple deterministic.
The solution is to simply start in a slightly different starting state before starting the main recursion:

$$
\begin{array} \\
S &amp; \rightarrow &amp; (EP\\
P &amp; \rightarrow &amp; (EP \\
  &amp; | &amp; \varepsilon \\
E &amp; \rightarrow &amp;iE \\
  &amp; | &amp;sE \\
  &amp; | &amp;nE \\
  &amp; | &amp;(EE \\
  &amp; | &amp;)
\end{array}
$$