Step 1: Eliminate isolated terminals
$ X \leftarrow \alpha y \beta $ becomes $ X \leftarrow \alpha Y \beta, Y \leftarrow y $
$ S \leftarrow ABC \\ A \leftarrow L_aAL_b | \epsilon \\ B \leftarrow L_bBL_c | L_bL_c \\ C \leftarrow L_cC | L_c \\ L_a \leftarrow a \\ L_b \leftarrow b \\ L_c \leftarrow c $
Step 2: Eliminate long rules
A rule of 3 or more non-terminals becomes a set of several rules with only 2 non-terminals.
$ S \leftarrow AS_1 \\ S_1 \leftarrow BC \\ A \leftarrow L_aA_1 | \epsilon \\ A_1 \leftarrow AL_b \\ B \leftarrow L_bB_1 | L_bL_c \\ B_1 \leftarrow BL_c \\ C \leftarrow L_cC | L_c \\ L_a \leftarrow a \\ L_b \leftarrow b \\ L_c \leftarrow c $
Step 3: Eliminate $ \epsilon $ rules
There is one $ \epsilon $ rule and that is for non-terminal A: $ A \leftarrow \epsilon $.
Identify all rules $ X \leftarrow \alpha A \beta $ and add $ X \leftarrow \alpha A \beta | \alpha \beta $. Then remove the $ \epsilon $ rules.
$ S \leftarrow S_1 | AS_1 \\ S_1 \leftarrow BC \\ A \leftarrow L_aA_1 \\ A_1 \leftarrow AL_b | L_b \\ B \leftarrow L_bB_1 | L_bL_c \\ B_1 \leftarrow BL_c \\ C \leftarrow L_cC | L_c \\ L_a \leftarrow a \\ L_b \leftarrow b \\ L_c \leftarrow c $
Step 4: Eliminate unit rules
In order to eliminate each rule $ Y \leftarrow X $, we must:
a. Identify all rules $ X \leftarrow \alpha_1 , \ldots, \alpha_n $, if none exists, simply remove $ Y \leftarrow X $
b. otherwise replace (expand) $ Y \leftarrow X $ by the rule $ Y \leftarrow \alpha_1 | \ldots | \alpha_n $
c. Repeat the process for all other rules
$ S \leftarrow BC | AS_1 \\ S_1 \leftarrow BC \\ A \leftarrow L_aA_1 \\ A_1 \leftarrow AL_b | b \\ B \leftarrow L_bB_1 | L_bL_c \\ B_1 \leftarrow BL_c \\ C \leftarrow L_cC | c \\ L_a \leftarrow a \\ L_b \leftarrow b \\ L_c \leftarrow c $
Step 5: Eeliminate unused, cyclic non-terminals and their rules