Experience Level: Entry
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 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.
2. 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.
3. 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.
4. A Boolean literal token should be added. It should have two lexemes, which are true and false. The token should be named BOOL_LITERAL.
5. 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.
6. Five relational operators should be added. They are =, /=, >, >= and 6 and 8 = 5 * (7 - 4);
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
3 function test2 returns integer;
5 7 $ 2 ^ (2 + 4);
Lexical Error, Invalid Character $
Lexical Error, Invalid Character ^
Lexical Errors 2
Syntax Errors 0
Semantic Errors 0
D S.100% (4)
9 Dec 2018
Create an account now and send a proposal now to get this project.Sign up
Clarification Board Ask a Question
There are no clarification messages.