Question: Write this program in C + + Lexical analysis is the process of reading in the stream of characters making up the source code of

Write this program in C++
Lexical analysis is the process of reading in the stream of characters making up the source code of
a program and dividing the input into tokens. In this assignment, you will use regular expressions
and DFAs to implement a lexical analyzer for a subset of C programming language.
Your Task
Your task is to write a program that reads an input text file, and constructs a list of tokens in
that file. Your program may be written in C, C++, Java or any other programming language.
Assuming that the input file contains the following code string:
2.1 Sample Input (C++ code)
void main ()
{
int sum =0;
for(int j=0; j 10; j=j+1)
{
sum = sum + j +10.43+34E4+45.34E-4+ E43+.34;
}
}
2.2 Sample Output
The output of the program should be similar to the following:
Class : Lexeme
keyword : void
identifient : main
Lexical analysis
Lexical analysis is the process of reading in the stream of characters making up the source code of
a program and dividing the input into tokens. In this assignment, you will use regular expressions
and DFAs to implement a lexical analyzer for a subset of C programming language.
Your Task
Your task is to write a program that reads an input text file, and constructs a list of tokens in
that file. Your program may be written in C, C++, Java or any other programming language.
Assuming that the input file contains the following code string:
2.1 Sample Input (C++ code)
void main ()
{
int sum =0;
for(int j=0; j 10; j=j+1)
{
sum = sum + j +10.43+34E4+45.34E-4+ E43+.34;
}
}
2.2 Sample Output
The output of the program should be similar to the following:
Class : Lexeme
keyword : void
identifier : main
( : (
) : )
{ : {
keyword : int
identifier : sum
= : =
num : 0
; : ;
keyword : for
( : (
keyword : int
identifier : j
= : =
num : 0
; : ;
identifier : j
:
num : 10
; : ;
identifier : j
= : =
identifier : j
+ : +
num : 1
) : )
{ : {
identifier : sum
= : =
identifier : sum
+ : +
identifier : j
+ : +
num : 10.43
+ : +
num : 34.E4
+ : +
num : 45.34E-4
+ : +
identifier : E43
+ : +
Error : .
num : 34
; : ;
} : }
} : }
Valid Tokens
Programs in this language are composed of tokens displayed in table 1 :
Construction of Deterministic Finite Automata (DFA) or Transi-
tion Diagrams
You can construct single DFA (also called transition diagram) for recognizing all tokens in this
language by combining individual DFAs for each type of token. For example you can construct
transition diagram for identifiers and numbers and them merge the start states of two diagrams to
create a single transition diagram that recognizes both numbers and identifiers.
For identifying keywords, you can store keywords in some data structure (hashmap or string
array). Whenever your program recognizes a token of identifier, you can check your map or string
array if this identifier matches any keyword. If it matches any keyword then consider it keyword
otherwise consider it identifier
 Write this program in C++ Lexical analysis is the process of

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!