Question
#include #include #include //function prototypes bool isDelimiter(char ch); bool IsIdentifier(char* str); bool isFloat(char* str); bool isInteger(char* str); void lex(char *fileName); //start of main function int
#include
#include #include
//function prototypes
bool isDelimiter(char ch);
bool IsIdentifier(char* str);
bool isFloat(char* str);
bool isInteger(char* str);
void lex(char *fileName);
//start of main function
int main()
{
const int size = 80;
char fileName[size];
/*Prompt for file name*/
cout
cin >> fileName;
int choice;
//do while loop
do
{
cout
cout
cin >> choice;
if (choice == 1)
//call lex that takes fileName
lex(fileName);
} while (choice == 1);
system("pause");
return 0;
}
bool isDelimiter(char ch)
{
if (ch == ' ' || ch == '+' || ch == '-' || ch == '*' ||
ch == '/' || ch == ',' || ch == ';' || ch == '>' ||
ch == '
ch == '[' || ch == ']' || ch == '{' || ch == '}')
return (true);
return (false);
}
bool IsIdentifier(char* str)
{
if (str[0] == '0' || str[0] == '1' || str[0] == '2' ||
str[0] == '3' || str[0] == '4' || str[0] == '5' ||
str[0] == '6' || str[0] == '7' || str[0] == '8' ||
str[0] == '9' || isDelimiter(str[0]) == true)
return (false);
return (true);
}
bool isFloat(char* str)
{
int i, len = strlen(str);
bool hasDecimal = false;
if (len == 0)
return (false);
for (i = 0; i
if (str[i] != '0' && str[i] != '1' && str[i] != '2'
&& str[i] != '3' && str[i] != '4' && str[i] != '5'
&& str[i] != '6' && str[i] != '7' && str[i] != '8'
&& str[i] != '9' && str[i] != '.' ||
(str[i] == '-' && i > 0))
return (false);
if (str[i] == '.')
hasDecimal = true;
}
return (hasDecimal);
}
bool isInteger(char* str)
{
int i, len = strlen(str);
if (len == 0)
return (false);
for (i = 0; i
if (str[i] != '0' && str[i] != '1' && str[i] != '2'
&& str[i] != '3' && str[i] != '4' && str[i] != '5'
&& str[i] != '6' && str[i] != '7' && str[i] != '8'
&& str[i] != '9' || (str[i] == '-' && i > 0))
return (false);
}
return (true);
}
void lex(char *fileName)
{
fstream inputFile(fileName, ios::in);
if (!inputFile) {
cout
return;
}
char *ch;
int j = 0;
while (!inputFile.eof())
{
inputFile.get(ch, 20, ' ');
if (IsIdentifier(ch))
{
cout
}
else if (isFloat(ch))
{
cout
}
else if (ch == "
{
cout
}
else if (ch == ">")
{
cout
}
else if (ch == "
{
cout
}
else if (ch == ">=")
{
cout
}
else if (ch == "==")
{
cout
}
else
{
cout
}
//call seekg on inputFile object
inputFile.seekg(1 * sizeof(char), ios::cur);
}
inputFile.close();
}
CAN YOU SOLVE THIS ERROR ? AND CAN YOU ADD 3RD OPTION IN THE MENU (SEE SYMBOL TABLE)
THE PROGRAM IS ABOUT LEXICAL ANALYZER AND ALSO PLEASE CHECK IF THERE IS ERROR AFTER CORRECTION . THANK YOU
THE PROGRAM MUST BE WRITTEN IN VISUAL STUDIO
Error List ?? Search Enror List * 1 Error ! ! 0warnings | O0Messeges Description ? File Line 113 Column Project 1 erC4700t uninitialized local variable'ch' usedStep 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