编译原理 02 First集和Follow集求法

发布于 2021-06-07  45 次阅读


一、First集求法

1.1 直接收取:

    对形如“U -> a…”的形式,把’a’收入到First(U)当中。

1.2 反复传送:

    对形如“U -> P…”的形式,把First(P)传入到First(U)当中。

二、Follow集求法

    对于起始符号,还需要加入’#’(EOF终结符)。

2.1 直接收取:

    对形如“S -> …Ua…”的形式,把’a’收入到Follow(U)当中。
    对形如“S -> …UP”的形式,将First(P)传入Follow(U)当中。如果First(P)中有空串,则形如“S -> …U”,此时调用反复传送。注意:Follow集不含空串。
    对形如“S -> …U”的形式,则’#’(EOF终结符)∈Follow(U)。

2.2 反复传送:

    对形如“S -> …U”的形式,应该把Follow(S)的内容全部传入Follow(U)中。