Assignment 2

CS 550 Programming Languages
Instructor: Jeremy Johnson 
Due date: Wed. April 22 at midnight

Support for List Processing in Mini Language (100 points)

This assignment extends the mini language and interpreter from Lecture 2. It also builds on the Assignment 1. You are to extend the mini language to support lists. That is variables may be assigned lists, lists may be returned by functions, and lists can occur in expressions. First you must change the symbol table so that variables may be bound to either integers or lists (use a class called Element which can be an Integer or List). Second you must extend the syntax of the language to support list constants (use "[" and "]" to enclose lists so as not to be confused with "(" and ")" which are used to group arithmetic expressions). E.G. [1,2,[3,4]].

You must also support the following functions