In this assignment, you are required to specify and build an expression analyser that takes arithmetic expressions. You are also required to produce both pretty-print and evaluator by using Antlr and Java. The main features of your expression analyser should support both integer number and variable, hence support assignment statement. You are also expected to add some extended features to the expression language. The pretty-print should display the internal representation of parsed expressions in an easily readable form. The evaluator should evaluate the value of given expressions. The final program should produce sensible error messages given ill-formed expressions. Finally, you are required to submit a report which describes the specification of the language, and the implementation of main and extended features.
You are expected to provide a specification of the languages. The main features of your expression language should support integer number and variable, and also support assignment.
These should include:
- The tokens of the expression
- The syntax of the expression
You need to produce both pretty-print and evaluator by using Antlr and Java.
- The pretty-print should display the internal representation of parsed expressions in an easily readable form, such as LISP-like text form (root children).
- The evaluator should evaluate the value of given expressions.
- Sensible error messages should be produced if ill-formed expressions are given.
- Visual rendering of Abstract Syntax Tree (AST) using tools such as java swing or graphviz or similar tools. You will be expected to select and learn about the tools by yourself.
- Handling of both integer and floating-point numbers.
- Support for multiple statements and control flow for multiple statements with Boolean expressions.
The report should be in PDF and must include a cover page with the module name, student name and ID. The source code (for the node you developed) should be made as an zip file to be submitted together with the report. The maximum length of the report is of 10 pages
(include the appendix). The report should include
- A section that describes the specification.
- A section that describes the implementation.
- A section that describes how the tools were applied.