3.5 Context-Free Grammars and Parsing