0

Hi

I have a homework program to convert from postfix to infix, almost most of the functions are done but i can't make few functions to make the program run correctly

Please help me finishing the remaining functions

Here is the code

//-------------------------------------------------------------------------------------------------------
//  NextToken.h

#ifndef     NEXTTOKENH

#define     NEXTTOKENH

#include    <iostream>

using namespace std;


class NextToken
{
  public:
    NextToken( );
    void next_token( );
    void write_token( ) const;
    void write_token( char ) const;
    char get_token( ) const;
    void match( char );

  private:
    char token;
};


inline NextToken::NextToken( )
{
    next_token();
}


inline char NextToken::get_token( ) const
{
    return token;
}


inline void NextToken::write_token( ) const
{
    cout << " " << token;
}


inline void NextToken::write_token( char c ) const
{
    cout << " " << c;
}

#endif

//---------------------------------------------------------------------------------------------------
// NextToken.ccp


#include    <iostream>
#include    "NextToken.h"

using namespace std;

void error( char, char * );


void NextToken::match( char et )
{
    if ( et == token )      // expected token et matches current token ?
    {
        next_token();       // yes, read the next token
    }
    else                    // otherwise it is a syntax error
    {
        error( token, "match()" );
    }
}


void NextToken::next_token( )
{
    char c;

    while ( cin.get( c ) )  // get the next char and store it in c
    {
        if ( c == ' ' )
        {
            ;               // ignore spaces
        }
        else
        {
            break;          // found a non-blank input char
        }
    }

    token = c;              // remember the character token
}


//---------------------------------------------------------------------------------------------------------

// parser.ccp

#include    <iostream>
#include    <cstdlib>
#include    <cctype>
#include    "NextToken.h"

using namespace std;


void error      ( char, char * );
void expr       ( NextToken & );
void term       ( NextToken & );
void factor     ( NextToken & );
void moreterms  ( NextToken & );
void morefactors( NextToken & );


int main()
{
    NextToken nt;           // next input token

    expr( nt );             // handle expr()

    nt.write_token( '\n' );

    return 0;
}


// . . .


void error( char c, char *function )
{
    cerr << "\nsyntax error: ";
    cerr << "char is '" <<  c << "' in " << function << "\n";
    cout << "\n";

    exit( 1 );
}

And here is the assignment


Please use NextToken.h and NextToken.cpp from the examples in class.

Please use the grammar in the file grammar. Note that we have a few
more productions and some of the productions (like term) were modified.

Please modify parser.cpp that we used in class to accomodate the new or
modified productions.

2
Contributors
1
Reply
2
Views
9 Years
Discussion Span
Last Post by WaltP
0

So you get that far and quit? And we get to finish it for you, and we have no idea what's not working? Somehow I don't think I need an A that bad.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.