CS 364 - Interpreter for Clite

In this assignment you are going to implement the run and eval functions for your Clite AST. Currently Clite programs have no way of providing output to the user to see the effect of running a program. Add a simple print statement to our grammar by modifying the Statement non-terminal.

  Statement       ⇒  ; | Block | Assignment |
                      IfStatement | WhileStatement | PrintStatement

  PrintStatement  ⇒  print(Expression) ;

You will need to modify your parser and add a new print statement class to your AST. Implement the run function for the program class. To do this you will need to complete the implementation of eval on expressions. Your run function on a print statement should simply print the value of the expression to the console.

Don't worry about improperly typed Clite programs. If a program is improperly typed then just let your program crash. (Is this similar to static or dynamic typing?)

The program is due on Monday April 21 at the begninng of class. Turn in a print out of the AST classes that have an eval or run function. (I don't need to see type classes.)