Answered step by step
Verified Expert Solution
Question
1 Approved Answer
CMSC 3 3 0 Project 1 The first programming project involves extending the Java skeleton program that it is provided in the attached . zip
CMSC Project
The first programming project involves extending the Java skeleton program that it is provided in the attached zip file. That skeleton program displays a scene of graphic images contained in a scene definition file. The grammar for that scene definition file is shown below:
scene SCENE IDENTIFIER numberlist images END images image images image
image righttriangle rectangle
righttriangle
RIGHTTRIANGLE COLOR numberlist AT numberlist HEIGHT NUMBER WIDTH NUMBER ;
rectangle
RECTANGLE COLOR numberlist AT numberlist HEIGHT NUMBER WIDTH NUMBER ;
numberlist numbers
numbers NUMBER NUMBER numbers
In the above grammar, terminal symbols are upper case names or character literals shown in blue and nonterminal symbols are lower case names shown in red. EBNF metacharacters are shown in black. Tokens can be separated by any number of spaces. Identifiers and keywords are strings of alphabetic characters. Identifiers are case sensitive Numbers are unsigned integers.
That program reads in the scene definition file that defines the image objects in a scene and creates those objects, inserts them into the scene and displays that scene.
You are to modify the program so that it will parse and display the additional images defined by the expanded grammar shown below with the additions to the grammar highlighted in yellow:
scene SCENE IDENTIFIER numberlist images END
images image images image
image
righttriangle rectangle parallelogram regularpolygon isosceles text
righttriangle
RIGHTTRIANGLE COLOR numberlist AT numberlist HEIGHT NUMBER WIDTH NUMBER ;
rectangle
RECTANGLE COLOR numberlist AT numberlist HEIGHT NUMBER WIDTH NUMBER ;
parallelogram
PARALLELOGRAM COLOR numberlist AT numberlist numberlist OFFSET
NUMBER ;
regularpolygon
REGULARPOLYGON COLOR numberlist AT numberlist SIDES NUMBER RADIUS
NUMBER ;
isosceles
ISOSCELES COLOR numberlist AT numberlist HEIGHT NUMBER WIDTH
NUMBER ;
text
TEXT COLOR numberlist AT numberlist STRING ;
numberlist numbers
numbers NUMBER NUMBER numbers
The UML diagram for the whole project is shown below:
The classes shown in black are included in the skeleton project. You must complete the project by writing those classes shown in red, modifying the Parser class so that it will parse the expanded grammar, modifying the Lexer class to handle string tokens, and modifying the Tokens enumerated type to add all the new tokens.. Below is a description of each of the five classes that you must write:
The Text class must contain a constructor that is supplied the color that defines the text color, a point that specifies the text location and a string containing the text to be displayed. It must also contain a draw function because it is extends the abstract class Image. The draw function must draw the text using the method drawString in Graphics class.
The SolidPolygon class must contain a constructor that is passed the number of vertices in the polygon and its color. It must define the method drawPolygon because it is extends the abstract
class Polygon It should call the fillPolygon method of the Graphics class to draw a solid polygon.
The IsoscelesTriangle class must have a constructor that is supplied the color of the triangle, a point that specifies the location of the top vertex, and the height and width of the triangle. It must allocate the arrays of x and y coordinates that defines the triangle and it must compute their values.
The Parallelogram class must have a constructor that is supplied the color of the parallelogram, two points that specifies the location of the upper left and lower right vertices in addition to
an x offset value that specifies the x distance between the upper and lower left vertices. It must allocate the arrays of x and y coordinates that defines the parallelogram and it must compute their values.
The RegularPolygon class must contain a constructor that is supplied the color of the polygon, the number of sides, a point that specifies the location of its center, and the radius, which defines the distance between the center and each of the vertices. It must allocate the arrays of x and y coordinates that defines the regular polygon and it must compute their values.
Below is a sample of a scene definition file that would provide input to the program:
Scene Polygons
RightTriangle Color at Height Width ; Rectangle Color at Height Width ; Isosceles Color at Height Width ; Parallelogram Color at
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started