LL法
構文解析表を作成するためには、非終端記号 'A' がスタックのトップにあり、記号 'a' が入力バッファの先頭にある場合に適用すべき文法規則を決定しなければならない。そのような規則はA → w という形式であり、さらにw に対応する言語に、先頭が 'a' の文字列が少なくとも1つ存在する場合に限られることは簡単に分かる。このため、文字列 w の先頭になりうる終端記号の集合 (First-set) を Fi(w) で表す。また、w が空文字列の可能性もある場合はFi(w)に ε を加える。A1 → w1, ..., An → wn という規則群から構成される文法があるとき、Fi(wi) と Fi(Ai) を各規則について以下のように求める。
各 Fi(wi) と Fi(Ai) を空集合で初期化する。
各規則 Ai → wi について、Fi(wi) を Fi(Ai) に追加する。ここで、Fi は以下のように定義される: Fi(a w' ) = { a } 、a は すべての終端記号 Fi(A w' ) = Fi(A)、A は非終端記号で、Fi(A) には ε は含まれない。 Fi(A w' ) = Fi(A) \ { ε } ∪ Fi(w' )、A は非終端記号で、Fi(A) には ε が含まれる。 Fi(ε) = { ε }
各規則 Ai → wi について Fi(wi) を Fi(Ai) に追加する。
ステップ2と3を全 Fi 集合が変化しなくなるまで繰り返す。
なお、First-set だけでは構文解析表は完成しない。