www.pudn.com > calc5.zip > Parse.h
#if !defined PARSE_H
#define PARSE_H
//------------------------------------
// parse.h
// (c) Bartosz Milewski, 1994
//------------------------------------
#include "tree.h"
enum Status
{
stOk,
stQuit,
stError
};
class Node; // forward declaration
class Scanner;
class Store;
class SymbolTable;
namespace Function
{
class Table;
}
class Parser
{
public:
Parser (Scanner & scanner,
Store & store,
Function::Table & funTab,
SymbolTable & symTab );
Status Parse ();
double Calculate () const;
private:
auto_ptr Expr();
auto_ptr Term();
auto_ptr Factor();
void Execute ();
Scanner & _scanner;
auto_ptr _pTree;
Status _status;
Store & _store;
Function::Table & _funTab;
SymbolTable & _symTab;
};
#endif