Cho văn phạm với các luật sinh sau: E->TE; E’->+TE’; E’->epsilon; T- >FT'; T'->*FT’; T’->epsilon; F->(E); F->id; FOLLOW (T’)=?
Đáp án đúng: C
Để tìm FOLLOW(T'), ta thực hiện theo các bước sau:
Vì T' xuất hiện ở vế phải của luật T -> FT', nên ta xét FIRST(phần còn lại của luật sau T'). Ở đây, phần còn lại là rỗng (epsilon), do đó ta xét FOLLOW(T).
T xuất hiện ở vế phải của luật E -> TE', nên ta xét FIRST(E'). FIRST(E') = { + , epsilon}. Do đó, + thuộc FOLLOW(T).
Vì E' -> epsilon, nên FOLLOW(E) thuộc FOLLOW(T). Để tìm FOLLOW(E), ta thấy E xuất hiện trong luật F -> (E), do đó ')' thuộc FOLLOW(E). Vì vậy, ')' thuộc FOLLOW(T).
Do T -> FT', suy ra FOLLOW(T) chứa FOLLOW(T').
Xét luật E' -> +TE'. Khi đó FOLLOW(E') thuộc FOLLOW(T').
Vì E là ký hiệu bắt đầu, nên $ thuộc FOLLOW(E). Do đó $ thuộc FOLLOW(T) và FOLLOW(T').
Vậy, FOLLOW(T') = { +, ), $ }.