JavaScript is required

Cho văn phạm gồm 7 luật sinh: (1) S->BA; (2) C->A0; (3) A->1; (4) B->A1; (5) B- >0; (6) A-> epsilon; (7) B-> epsilon. FOLLOW(A)=?

A.

A. {0}

B.

B. {1}

C.

C. {0,1}

D.

D. {0,1,epsilon}

Trả lời:

Đáp án đúng: C


Để tìm FOLLOW(A), ta xét các luật sinh có A ở vế phải:

  • (1) S -> BA: FOLLOW(A) chứa FIRST(A) \ {ε}. Trong trường hợp này, FIRST(A) = {1, ε}, do đó FOLLOW(A) chứa {1}. Nếu ε thuộc FIRST(A) thì FOLLOW(A) chứa FOLLOW(S).
  • (2) C -> A0: FOLLOW(A) chứa {0}.
  • (4) B -> A1: FOLLOW(A) chứa {1}.

Kết hợp lại, FOLLOW(A) = {0, 1}.

Câu hỏi liên quan