can someone help me fix this? C++ code default:              if (isalpha(ch)) {  // for keywords or IDENT                 while (file.get(ch) && (isalpha(ch) || isdigit(ch) || ch == '_')) {                     lexeme += ch;                 }                 file.unget();  // push back the non-alpha character                 if (lexeme == "read") return "read KEY_READ";                 if (lexeme == "write") return "write KEY_WRITE";                 if (lexeme == "while") return "while KEY_WHILE";                 if (lexeme == "do") return "do KEY_DO";                 return "IDENT";  // identifier not matched with any keyword             }             if (isdigit(ch)) {  // for INT_LIT                 while (file.get(ch) && isdigit(ch)) {                     lexeme += ch;                 }                 file.unget();  // push back the non-digit character                 return "INT_LIT";             }             break;     }     return "UNKNOWN";  // unknown lexeme } int main() {     ifstream file("file.txt");     if (!file.is_open()) {         cerr << "Unable to open file";         return 1;     }     string token;     while (!(token = getNextToken(file)).empty()) {         cout << token << endl;     }     file.close();     return 0; }   It will not print the IDENT and or the INT_LIT lexemes with the tokens

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Topic Video
Question

can someone help me fix this? C++ code

default: 
            if (isalpha(ch)) {  // for keywords or IDENT
                while (file.get(ch) && (isalpha(ch) || isdigit(ch) || ch == '_')) {
                    lexeme += ch;
                }
                file.unget();  // push back the non-alpha character

                if (lexeme == "read") return "read KEY_READ";
                if (lexeme == "write") return "write KEY_WRITE";
                if (lexeme == "while") return "while KEY_WHILE";
                if (lexeme == "do") return "do KEY_DO";
                return "IDENT";  // identifier not matched with any keyword
            }
            if (isdigit(ch)) {  // for INT_LIT
                while (file.get(ch) && isdigit(ch)) {
                    lexeme += ch;
                }
                file.unget();  // push back the non-digit character
                return "INT_LIT";
            }
            break;
    }
    return "UNKNOWN";  // unknown lexeme
}

int main() {

    ifstream file("file.txt");

    if (!file.is_open()) {
        cerr << "Unable to open file";
        return 1;
    }

    string token;
    while (!(token = getNextToken(file)).empty()) {
        cout << token << endl;
    }

    file.close();
    return 0;
}

 

It will not print the IDENT and or the INT_LIT lexemes with the tokens

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 5 images

Blurred answer
Knowledge Booster
Instruction Format
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education