/****************************************************************************
    Kalkulon - A programmable calculator for programmers

    This file is part of the Kalkulon core.

    If you find this source code useful, your are encouraged to use it in your own projects.
    Please give me credit!

    COPYRIGHT by Juergen Holetzeck 2003 - 2008
    e-mail:		contact@kalkulon.de
    homepage:	www.kalkulon.de
****************************************************************************/


// DataStack.h:
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DATASTACK_H__AF8C40FA_D479_408D_A62D_24892CEF8375__INCLUDED_)
#define AFX_DATASTACK_H__AF8C40FA_D479_408D_A62D_24892CEF8375__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <stack>
#include "DataObject.h"
#include "Token.h"

namespace Kalkulon{
class CDataStack
{
public:
    CDataStack();
    virtual ~CDataStack();

    DataObject pop();
    void push(double d);
    void push(const DataObject& data);
    void push(DataObject&& data);
    void clear();
    bool empty() {return datastack.empty();};

private:
    std::stack<DataObject> datastack;



};
}


#endif // !defined(AFX_DATASTACK_H__AF8C40FA_D479_408D_A62D_24892CEF8375__INCLUDED_)
