Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This assignment must have three different source code files. One file must be called Basic.java. Basic.java must contain main. Your main must ensure that there

This assignment must have three different source code files.

One file must be called Basic.java. Basic.java must contain main. Your main must ensure that there is only one argument (args). If there are none or more than 1, it must print an appropriate error message and exit. That one argument will be considered as a filename. Your main must then use File.ReadAllLines to read all of the lines from the file denoted by filename. Your main must instantiate one instance of your Lexer class (to be defined below) for each line from ReadAllLines. You must parse each line using the lex method of the Lexer class. You must take the list of tokens from lex and concatenate it to a single list. If lex throws an exception, you must catch the exception, print that there was an exception and lex the next line. You must then print each token out (this is a temporary step to show that it works) once the lexing is complete.

One file must be called Token.java. This file must contain a Token class. The token class is made up of an instance of an enum and a value string. There must be a public accessor for both the enum and the value string; the underlying variables must be private. You may create whatever constructors you choose. The enum must be defined as containing values appropriate to what we will be processing. The definition of the enum should be public, but the instance inside Token must be private. We will add to this enum in the next several assignments. You will find it helpful to create an appropriate ToString overload.

The final file must be called Lexer.java. The Lexer class must contain a lex method that accepts a single string and returns a collection (array or list) of Tokens. The lex method must use one or more state machine(s) to iterate over the input string and create appropriate Tokens. Any character not allowed by your state machine(s) should throw an exception.

Input/output examples:

an empty line - EndOfLine

5 - NUMBER (5) EndOfLine

+-*/ - PLUS MINUS TIMES DIVIDE EndOfLine

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Management Systems Designing And Building Business Applications

Authors: Gerald V. Post

1st Edition

0072898933, 978-0072898934

Students also viewed these Databases questions

Question

KEY QUESTION Refer to columns 1 and 6 in the table for question

Answered: 1 week ago