Homework 4, CS 350 Programming Languages Purpose: Implementations of Lexical and Syntactic Analyzers Work in 2-person team I What to do? 1. Design a grammar for assignment statement using grammar of as part of your assignment statement. 2. Expand the lex() function so that it will recogize symbols that appear in assignment symbol but not in lex(). 3. Write a parser, assign_func(), to parse an assignment which will be entered from standard input device. You can use expr() on the book. 4. Print meaninful error message if there is error in the input program ( actually a single assignment statement) pinrt error, and exit parser. 5. Print parser's trace on screen for a given statement/program. You may improve the trace shown on page 189 to make it more clear to see or more close to parse tree.