% Description of the software: Summary of the JAVA classes you implemented; for instance, for symbol % table management, type checking, code generation, error handling, etc. In your description, rely % on the concepts and terminology you learned during the course, such as synthesised and inherited % attributes, tree listeners and visitors.