## follow集合の作成 先読みを実装するためfollow集合を作成する。 還元時に次に続く記号の読み取りと、次の記号が[nullable集合](15.nullable集合の作成.md)であればfollowを集約する。 また、非終端記号が規則の最後である場合、非終端記号に規則のfollowを集約する。 ### 次に続く記号の読み取り 非終端記号の次に終端記号がある場合は、followとなる ``` start : . a 'B' a のfollowは 'B' となる ``` ### 次に続く記号がnullable 非終端記号の次にnullable集合がある場合は、followを集約する ``` start : . a void 'B' void : void のfollowは 'B' となる a のfollowは void だが void のfollowを集約し 'B' となる ``` ### 非終端記号が規則の最後 非終端記号が規則の最後である場合、非終端記号に規則のfollowを集約する。 ``` start : a . b b のfollowは start のfollowを集約する ```