Theory and design

 

 

The first project involves modifying the attached lexical analyzer and the compilation listing generator code. You need to make the following modifications to the lexical analyzer, scanner.l:

1. A new token ARROW should be added for the two character punctuation symbol =>.

2. The following reserved words should be added:

case, else, endcase, endif, if, others, real, then, when

Each reserved words should be a separate token. The token name should be the same as the lexeme, but in all upper case.

3. Two additional logical operators should be added. The lexeme for the first should be or and its token should be OROP. The second logical operator added should be not and its token should be NOTOP.

4. Five relational operators should be added. They are =, /=, >, >= and <=. All of the lexemes should be represented by the single token RELOP.

5. One additional lexeme should be added for the ADDOP token. It is binary -.

6. One additional lexeme should be added for the MULOP token. It is/.

7. A new token REMOP should be added for the remainder operator. Its lexeme should be rem.

8. A new token EXPOP should be added for the exponentiation operator. Its lexeme should be **.

9. A second type of comment should be added that begins with // and ends with the end of line. As with the existing comment, no token should be returned.

10. The definition for the identifiers should be modified so that underscores can be included, however, consecutive underscores, leading and trailing underscores should not be permitted.

11. A real literal token should be added. It should begin with a sequence of one or more digits following by a decimal point followed by zero or more additional digits. It may optionally end with an exponent. If present, the exponent should begin with an e or E, followed by an optional plus or minus sign followed by one or more digits. The token should be named REAL_LITERAL.

12. A Boolean literal token should be added. It should have two lexemes, which are true and false. The token should be named BOOL_LITERAL.

You must also modify the header file tokens.h to include each the new tokens mentioned above.

The compilation listing generator code should be modified as follows:

1. The lastLine function should be modified to compute the total number of errors. If any errors occurred the number of lexical, syntactic and semantic errors should be displayed.

If no errors occurred, it should display Compiled Successfully. It should return the total number of errors.

2. The appendError function should be modified to count the number of lexical, syntactic and semantic errors. The error message passed to it should be added to a queue of messages that occurred on that line.

3. The displayErrors function should be modified to display all the error messages that have occurred on the previous line and then clear the queue of messages.

An example of the output of a program with no lexical errors is shown below:

1 (* Program with no errors *)

2

3 function test1 returns boolean;

4 begin

5 7 + 2 > 6 and 8 = 5 * (7 – 4);

6 end;

Compiled Successfully

Here is the required output for a program that contains more than one lexical error on the same line:

1 — Function with two lexical errors

2

3 function test2 returns integer;

4 begin

5 7 $ 2 ^ (2 + 4);

Lexical Error, Invalid Character $

Lexical Error, Invalid Character ^

6 end;

Lexical Errors 2

Syntax Errors 0

Semantic Errors 0

You are to submit two files.

1. The first is a .zip file that contains all the source code for the project. The .zip file should contain the flex input file, which should be a .l file, all .cc and .h files and a makefile that builds the project.

2. The second is a Word document (PDF or RTF is also acceptable) that contains the documentation for the project, which should include the following:

a. A discussion of how you approached the project

b. A test plan that includes test cases that you have created indicating what aspects of the program each one is testing and a screen shot of your compiler run on that test case

 

 

Sample Solution

According to Hussey and Hussey (1997) research process starts with an identification of a certain research problem. As researchers investigate the area in which the problem is embedded in more detail they are able to define a comprehensive research problem/research question which they intend to solve. Next, the way in which the research will be conducted is determined. Following, researchers collect, analyze and interpret the data and compose their results in form of a report, dissertation or thesis. Graig and Douglas (2005) define the international marketing research as research that crosses national borders and involves respondents and researchers from different countries and cultures. As it was noticed above, Furniture designing industry is my preferred field where. The research on the topic How Furniture Designers can set up their own business?” becomes very ‘hot issue’. Data concerning the Furniture designers and the markets in which they operate come from a wide range of sources. Research for this report includes interviews with reputed furniture designers and General Director of Hunts office furniture and also some information was obtained from Furniture-related organizations, government reports of United Kingdom and furniture designing analysts via email. Further, research objectives and questions were discussed with the supervisor and after that the process of main work was begun. Types of Research Hussey and Hussey (1997) define four different types of research: exploratory, descriptive, analytical or predictive. Exploratory research is used when the problem is badly understood and leads to an unstructured problem design. This kind of research helps to increase the familiarity with the researched area. During exploratory research, new findings and information are discovered, so the researcher must be flexible and prepared for possible changes in the research direction. The key requirements for this type of research are ability to observe, find information and be able to explain the findings. Descriptive research is used when the problem is well structured and understood; the task to solve is clear. The researchers should focus on the structure of the research, precise rules and procedures, since the ability to make good measurements is crucial for this type of research. However, they provide two additional research types. Analytical research can be seen as a continuation of descriptive research as it attempts to explain why a particular situation exists. It tries to identify causal relationships, i.e. ‘A’ causes ‘B’. Predictive research continues from analytical as it attempts to predict future outcomes from a particular situation. This type of research attempts to generalize, and these generaliz

This question has been answered.

Get Answer
WeCreativez WhatsApp Support
Our customer support team is here to answer your questions. Ask us anything!
👋 Hi, Welcome to Compliant Papers.