Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

#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 #includeimage text in transcribed

//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' used

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions