CS 331, Spring 2008 Assignment #6: 10 points Date Due: Friday, 3/21/08. Reading Assignment: Class notes (Syntax Graphs); Sebesta: Sect 4.5 & Chapter 5. (3) 1. Show a complete parse, including the parse stack contents, input string, and actions for the expression id*id+id, using the grammar and LR parse table in Figure 4.5 of the text. (2) 2. Write an EBNF rule that describes the 'while' statement of C++. Write a recursive descent function in C++ for the 'while' statement. Assume you have a lex() function as described in the text and that 'while' is a keyword token. (2) 3. If A, B & C are variables, is the following a valid according to Pascal syntax graphs? A + not B = C Why or why not? (3) 4. Problem 5.13(a). Also answer (a) assuming normal C static scoping is used. Flesh out the skeleton to produce a test program to support your answers by assigning values to the variables and printing them to determine the scope of the variables.** **For full credit, hand in well commented source code and output exactly as produced by the program from test runs.