Answered step by step
Verified Expert Solution
Question
1 Approved Answer
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:
Sample Input C code
void main
int sum ;
forint j; j ; jj
sum sum j EE E;
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:
Sample Input C code
void main
int sum ;
forint j; j ; jj
sum sum j EE E;
Sample Output
The output of the program should be similar to the following:
Class : Lexeme
keyword : void
identifier : main
:
:
:
keyword : int
identifier : sum
:
num :
; : ;
keyword : for
:
keyword : int
identifier : j
:
num :
; : ;
identifier : j
:
num :
; : ;
identifier : j
:
identifier : j
:
num :
:
:
identifier : sum
:
identifier : sum
:
identifier : j
:
num :
:
num : E
:
num : E
:
identifier : E
:
Error :
num :
; : ;
:
:
Valid Tokens
Programs in this language are composed of tokens displayed in table :
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
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started