Why for A->BC ,Follow of C = Follow of A?
Follow(B) = First( C )
But you can clearly see that you can’t write Follow( C )=First(anything) as it is the right most literal.
So as per the rules when ever you encounter on the right most literal,
Follow( C )= Follow(A)
I think there is some logic behind,
follow is not just a rule,it helps us in getting a derivation so theres a reason why follow of C = Follow of A for
a production rule like A->BC
Suppose in deriving a derivation tree,
u reach upto this point
so the real cases can be
Now you choose to take A->BC at this point.
So the above thing becomes
so whats Followi actually is you it tells you which terminals can come after a non terminal and though Im not explaining it here how this thing helps us in getting a derivation ,so follow is which terminals can come after a non terminal.
since now we have used A->BC
so whatver comes after A is actually whatver comes after C.
so if you go backwards
so thats what follow actaully is the terminals coming after A can come after C so follow of C = follow of A.
Its highly impossible to make understand the complete picture but I hope I was of some help.
Follow is not a rule,
Its a you can say pre computation done which makes our process if whether a string can be deraivable or not process easier.