LL1 parsing algorithm for strings generated by a given grammar How to describe a $\operatorname{LL(1)}$ parsing algorithm for strings generated by a given grammar?


I have to design a parser for a specific grammar.
Let $G$ be the grammar described as:

$$S \rightarrow aBC $$
$$B \rightarrow bB \mid cC $$
$$C \rightarrow c \mid S $$

My approach

1. Test if the grammar is $\operatorname{LL(1)}$

First I have to determine if the grammar is $\operatorname{LL(1)}$ or not. It seems that G is  $\operatorname{LL(1)}$ because:

$\operatorname{FIRST}(aBC) \cap \operatorname{FIRST}(bB \mid cC) \cap \operatorname{FIRST}(c \mid S) = 
\{a\} \cap \{b,c\} \cap \{c,a\} = \emptyset
$

2. Write a string generated by G

$s = abccaccc$

3. Design the algorithm for parsing strings

I'm getting stuck here

4. Test the algorithm for a given string

Lets test the algorithm for a given string $s = abccaccc$
Here's a possibly useful quote from Aho, Lam et al (&quot;the Dragon Book&quot;). (Emphasis added.)

A grammar $G$ is $LL(1)$ if and only if whenever $a \to \alpha | \beta$ are two distinct productions of $G$, the following conditions hold:

For no terminal $a$ do both $\alpha$ and $\beta$ derive strings beginning with $a$.

…