Question
THIS PROGRAM MUST BE LIKE IN THE PHOTO I ASKED YOU 3 TIMES AND YOU DIDNT GIVE ME TRUE ANSWER. THIS PROGRAMS DO NOTHING PLEASE
THIS PROGRAM MUST BE LIKE IN THE PHOTO I ASKED YOU 3 TIMES AND YOU DIDNT GIVE ME TRUE ANSWER. THIS PROGRAMS DO NOTHING PLEASE HELP ME AND ADD 3RD OPTION TO THE MENU WHICH IS SYMBOL TABLE. . PLEASE ANSWER IT CORRECT I WAS SO DISAPPOINTENT FOR YOUR ANSWERS. PLEASE DO IT CORRECT. PROGRAM MUST BE WRITTEN IN THE VISUAL STUDIO
#include
#include
#include
#include
using namespace std;
//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 = (char*)malloc(sizeof(char) * 20);
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();
}?
The Task You will write a lexical analyzer in C++ or C# that recognizes integers, floating point numbers, identifiers, and relational operators <.>.-.--. Examples of integers are 34,-322, 0, Examples of floating point numbers are 3.243, 0.003, -3.4 ctc. (no exponent notation required, such as 3.2E4). Examples of identifiers are sum, x123, big_size, A12R etc. Your lexical analyzer function should read the input from a file, and return a result. The main program should first read the name of the input file, and enter a loop, with the following menu being displayed: Call lex0 - Exit "Exit" should end the program. "Call lexO" should call the lexical analyzer to get the next token, as well as additional information, such as a pointer to the symbol table entry, as necessary. Spaces should be skipped in the input file. Identifiers should be placed by lex) in the symbol table the first time they are encountered. In case an unrecognized string is found, lex0 should return UNKNOWN The TOKENS that should be returned by the lexical analyzer are: INTEGER FLOAT ID . GT (for>) LT (for) LE (for . GE (for EQ (for UNKNOWN x 45 5.4 33 size 345abc y1234> The lexical analyzer should return the following results: ID,0 INTEGER,45Step 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