This is about c++ programming. This project needs to be done in 26 hours.
I already have the parsed inputs and the code needs to be executed.
Please note that
some of the checks can be performed statically (an empty string constant is an error, and using a variable before
setting it is an error), but some can only be performed at run time.
Failing a static check should print an error message and stop execution. Failing a dynamic check should print the
string RUNTIME ERROR followed by a description of the error (for example; RUNTIME ERROR types being added
are not permitted).
Observe that doing this assignment involves evaluating the parse tree, which is a recursive operation. Defining a
virtual eval() function, with different implementations in different classes, is a useful approach. It’s also likely that
you will need to define some idea of a Type and a Value for this assignment. The eval() function will likely want to
return a Value, and will need to test a Type.
Your program should read the file whose name is passed as a command line argument, or the standard input if no command line argument is provided. You may divide this assignment into as many files as you like. You MUST use
p2lex.h from the last assignment, with no changes. You MUST have your lexical analyzer in a separate file.