Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Complete this parser in Standard ML. write the code Declare the following datatype: datatype token = ID of string | EQ | PL | MI

Complete this parser in Standard ML. write the code

image text in transcribed

image text in transcribed

Declare the following datatype: datatype token = ID of string | EQ | PL | MI | TI | DI; Write an ML function named parse : string token list that inputs the name of a text file. The file will contain a sequence of characters representing a (not necessarily proper) assignment statement. Your function will parse the text file character by character. The output will be a list of tokens that classify each type of word that was read in the file. The following tables shows all the possible words and their tokens. For example, if the text file is named input.txt and contains: profit=Revenuecost Then your function should work as follows: -parse("input.txt");valit=[ID"profit",EQ,ID"Revenue",MI,ID"cost"]:tokenlist As another example, if the text file is named input2.txt and contains: Hello world + Then your function should work as follows: - parse ("input2.txt"); val it = [ID "Hello", ID "world",PL] : token list If your function reads any other invalid characters such as in the example: Hello 3 world + Then your function should return an empty list and print the message "Compilation error" to the terminal. Specifications/Notes: - To parse the assignment statement, you must evaluate it character by character and then make appropriate decisions so that the parser will return the correct tokens. - The words can be separated by any amount of whitespace, which shall be ignored. - The valid characters shall be only lowercase letters, uppercase letters, and the five operation characters listed above. - The operation characters will always be of length one. They may or may not have whitespace around them, so your parser should be able to handle this. In other words, if the file in the first example above contained profit=Revenue-cost, then then your program should return the same result. - The input file can be blank, in which case your function should return an empty list. - You will not know the name of the file in advance. - Check Moodle for a list of allowed structures/library functions. No other structures or library functions are allowed without explicit permission, especially if they perform the tokenization for you. - You must use the functional/recursive programming style with pattern matching where appropriate. Do not use loops, "global" variable bindings, or other procedural techniques (e.g., no huge if-then-else chains). - To conquer the complexity of the project, it is recommended you start by coding to succeed on "simpler" cases and then adjust your code to handle more complex cases. - To assist in code readability, break up tasks by writing helper functions when possible. - Comment your code briefly but thoroughly. - If you use ideas/code from other sources, cite them in the comments. Outside sources should be minimal... they shall not be used to replace large segments of code or to perform the tokenization for you. - You may work with one partner. If you do, include in the comments a brief statement on how the work was divided and/or who was responsible for which pieces of code. - You shall set an office appointment to do a presentation/demonstration/defense of your project after the submission deadline, which will be a part of your project grade. - You shall be graded on clarity, efficiency, efficacy. Observe good coding practices

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

Beyond Big Data Using Social MDM To Drive Deep Customer Insight

Authors: Martin Oberhofer, Eberhard Hechler

1st Edition

0133509796, 9780133509793

More Books

Students also viewed these Databases questions

Question

1. Television more Over watching faceing of many problems ?

Answered: 1 week ago

Question

Is there a link between chronic stress and memory function?

Answered: 1 week ago

Question

=+Are you interested in working on global teams?

Answered: 1 week ago

Question

=+Do you want to work from home?

Answered: 1 week ago

Question

=+ What skills and competencies will enable someone

Answered: 1 week ago