Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

// CS4303 Programming Language Concepts // Lab exercise - Parser // // Name ______________________ ID _____________________ // // A simple parser for C/C++-style variable declarations.

// CS4303 Programming Language Concepts // Lab exercise - Parser // // Name ______________________ ID _____________________ // // A simple parser for C/C++-style variable declarations. // THe grammar is as follows: // //  ::=   ; |   =  ; //  ::= int | float //  ::= A | B | C | D | E //  ::=  |  //  ::=   |  //  ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 //  ::=  .  // // Input is entered at the keyboard. // If the input is correct, the program should print // "no error found", otherwise, it should print the type // of error and terminate its execution. There are four // possible errors: // // "unrecognizable type" // "illegal variable name" // "unexpected number" // "; expected" // // Error message is printed out by calling function // "error". An error code ranging from 0 to 4 can be // passed as an argument to the function indicating what // message is to be printed. The mapping from the error // code to the message can be found by looking at the // definition of function "error". // // The following are some sample input and the response // from the program: // // Please enter a declaration in format   [= number] ; // int A; // no error found // // Please enter a declaration in format   [= number] ; // int a; // illegal variable name // // Please enter a declaration in format   [= number] ; // short B; // unrecognizable type // // Please enter a declaration in format   [= number] ; // float C = 0.5; // no error found // // Please enter a declaration in format   [= number] ; // int A = 10, // unexpected token // // Other sample input: // float B; // float C=0.2; // short D; // float F; // // The last two sample inputs should generate errors because "short" and "F" are // not acceptable tokens. #include  #include  using namespace std; string GetToken(); void error(int); int main() { string token; cout << "Please enter a declaration in format " << "  [= number] ;" << endl; token = GetToken(); // Write the code here error(0); return 0; } string GetToken() { // Use the Gettoken function you have designed in Lab 1. } void error(int code) { switch (code) { case 0: cout << "no errors found" << endl; break; case 1: cout << "unrecognizable type" << endl; break; case 2: cout << "illegal variable name" << endl; break; case 3: cout << "unexpected number" << endl; break; case 4: cout << "; expected" << endl; } return; }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored 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

Recommended Textbook for

Transactions On Large Scale Data And Knowledge Centered Systems X Special Issue On Database And Expert Systems Applications Lncs 8220

Authors: Abdelkader Hameurlain ,Josef Kung ,Roland Wagner ,Stephen W. Liddle ,Klaus-Dieter Schewe ,Xiaofang Zhou

2013th Edition

3642412203, 978-3642412202

More Books

Students also viewed these Databases questions