#ifndef PARSER_H
#define PARSER_H

#include <iostream>
#include <cstdlib>

using namespace std;

#include "Nodo.h"

extern int   VarX;

class Parser {
    private:
       istream* is;
       char     tok;    // ultimo atomo leido
       int      num;    // ultimo int leido
       Nodo*    prim();   // lee un primario
       Nodo*    factor(); // lee un factor
       Nodo*    term();   // lee un termino
       Nodo*    expr();   // lee una expresion
       void     Error(const char* msg);
    public:
       Parser(istream& s); 
       char lex();        // avanza un atomo
       char Tok() const;  // reporta el ultimo atomo leido
       double Num() const;   // reporta el ultimo num leido
       Nodo* Read();
};

#endif
