S -> NP VP VP -> IV | TV NP | DTV NP NP | TV NP PP IV -> 'left' TV -> 'know' | 'knows' | 'likes' | 'read' | 'saw' | 'helps' | 'introduced' DTV -> 'gave' NP -> PRO | DET N | NP CONJ NP | 'John' | 'Mary' | 'Carlos' | 'Boston' | 'Thursday' | 'everybody' N -> ADJ N | 'book' | 'shirt' | 'student' | 'man' | 'woman' | 'men' | 'women' | 'telescope' PRO -> 'her' | 'them' | 'she' | 'they' | DET -> 'a' | 'the' | 'some' ADJ -> 'red' | 'old' PP -> P NP P -> 'with' | 'on' | 'to' CONJ -> 'and' %%COMMENTS %%The top-down parser has problems when trying to use the left recursive rule: NP -> NP CONJ NP The left recursion can be eliminated by replacing the rule as following: NP -> 'men' NP1 | 'women' NP1 | ADJ NP NP1 NP1-> CONJ NP NP1 | CONJ -> 'and' ADJ --> 'old '