Question: C++ code please Write a recursive descent parser that will also perform type checking (using static semantics) of a language for assignment statements with arithmetic
C++ code please
Write a recursive descent parser that will also perform type checking (using static semantics) of a language for assignment statements with arithmetic expressions in which the variables may be of type int or float, mixed-type expressions are allowed with an automatic widening type conversion, but mixed-type assignments are not allowed.
For your recursive descent parser write an unambiguous BNF grammar for assignment statements with arithmetic expressions and follow it strictly. Allow binary operations +, -, *, and / and unary operations + and -. The unary operations should have equal priority which is higher than the priority of * and /; * and / should have equal priority which is higher than the priority of + and -. An expression in parentheses should be possible to use as an operand for any operation. The parentheses have the highest priority. Use
a = b + a * c;
b = (x + y) * b;
b = ---b;
x = -(a * b) + c;
x = (((a * b))) - + c;
At the first occurrence of each identifier randomly generate its type and store it in a symbol table, so that you can look up the type of any further occurrence of this identifier. Allow the user to see the contents of the symbol table after each assignment statement.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
