Addition of classes to be used in full conditional breakpoint support.

Yes folks, it's coming, and if everything works out it will be the
fastest implementation yet for any Atari 2600 debugger.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@634 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-07-12 17:02:35 +00:00
parent 5702496cdc
commit c6db07b077
5 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,27 @@
//============================================================================
//
// SSSS tt lll lll
// SS SS tt ll ll
// SS tttttt eeee ll ll aaaa
// SSSS tt ee ee ll ll aa
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
// SS SS tt ee ll ll aa aa
// SSSS ttt eeeee llll llll aaaaa
//
// Copyright (c) 1995-2005 by Bradford W. Mott and the Stella team
//
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: ConstExpression.cxx,v 1.1 2005-07-12 17:02:35 stephena Exp $
//============================================================================
#include "Expression.hxx"
#include "ConstExpression.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ConstExpression::ConstExpression(const int value)
: Expression(0, 0),
myValue(value)
{
}

View File

@ -0,0 +1,41 @@
//============================================================================
//
// SSSS tt lll lll
// SS SS tt ll ll
// SS tttttt eeee ll ll aaaa
// SSSS tt ee ee ll ll aa
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
// SS SS tt ee ll ll aa aa
// SSSS ttt eeeee llll llll aaaaa
//
// Copyright (c) 1995-2005 by Bradford W. Mott and the Stella team
//
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: ConstExpression.hxx,v 1.1 2005-07-12 17:02:35 stephena Exp $
//============================================================================
#ifndef CONST_EXPRESSION_HXX
#define CONST_EXPRESSION_HXX
#include "Expression.hxx"
/**
This class provides an implementation of an constant expression;
that is, one that consists solely of a constant integer value.
@author Stephen Anthony
@version $Id: ConstExpression.hxx,v 1.1 2005-07-12 17:02:35 stephena Exp $
*/
class ConstExpression : public Expression
{
public:
ConstExpression(const int value);
int evaluate() { return myValue; }
private:
int myValue;
};
#endif

View File

@ -0,0 +1,33 @@
//============================================================================
//
// SSSS tt lll lll
// SS SS tt ll ll
// SS tttttt eeee ll ll aaaa
// SSSS tt ee ee ll ll aa
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
// SS SS tt ee ll ll aa aa
// SSSS ttt eeeee llll llll aaaaa
//
// Copyright (c) 1995-2005 by Bradford W. Mott and the Stella team
//
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Expression.cxx,v 1.1 2005-07-12 17:02:35 stephena Exp $
//============================================================================
#include "Expression.hxx"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expression::Expression(Expression* lhs, Expression* rhs)
: myLHS(lhs),
myRHS(rhs)
{
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expression::~Expression()
{
delete myLHS;
delete myRHS;
}

View File

@ -0,0 +1,44 @@
//============================================================================
//
// SSSS tt lll lll
// SS SS tt ll ll
// SS tttttt eeee ll ll aaaa
// SSSS tt ee ee ll ll aa
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
// SS SS tt ee ll ll aa aa
// SSSS ttt eeeee llll llll aaaaa
//
// Copyright (c) 1995-2005 by Bradford W. Mott and the Stella team
//
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Expression.hxx,v 1.1 2005-07-12 17:02:35 stephena Exp $
//============================================================================
#ifndef EXPRESSION_HXX
#define EXPRESSION_HXX
/**
This class provides an implementation of an expression node, which
is a construct that is given two other expressions and evaluates and
returns the result. When placed in a tree, a collection of such nodes
can represent complex expression statements.
@author Stephen Anthony
@version $Id: Expression.hxx,v 1.1 2005-07-12 17:02:35 stephena Exp $
*/
class Expression
{
public:
Expression(Expression* lhs, Expression* rhs);
virtual ~Expression();
virtual int evaluate() = 0;
protected:
Expression* myLHS;
Expression* myRHS;
};
#endif

View File

@ -4,6 +4,8 @@ MODULE_OBJS := \
src/debugger/Debugger.o \
src/debugger/DebuggerParser.o \
src/debugger/EquateList.o \
src/debugger/Expression.o \
src/debugger/ConstExpression.o \
src/debugger/PackedBitArray.o \
src/debugger/CpuDebug.o \
src/debugger/RamDebug.o \