This is BinaryExpression.h in view mode; [Download] [Up]
// Copyright (c) 1996 David Engberg All rights reserved
// $Id: BinaryExpression.h,v 1.3 1996/04/25 21:10:43 geppetto Exp $
#ifndef _BinaryExpression_h
#define _BinaryExpression_h
#pragma interface
#include "Expression.h"
//
// Class name : CBinaryExpression
// Description : Represents an expression composed of a pair of expressions
// joined with a binary operator. Stores the operator and both expressions.
// I put this in a separate file since it's so ungodly huge.
//
class CBinaryExpression : public CExpression {
DynamicCastDeclarations;
public:
CBinaryExpression(CExpression* leftExpression, unsigned short binaryOperator,
CExpression* rightExpression);
CBinaryExpression(const CBinaryExpression& source);
virtual ~CBinaryExpression();
virtual CExpression* Clone() const { return new CBinaryExpression(*this); }
virtual CCompileError* CreateConstantExpression(CExpression*& result,
CCompileContext& context) const;
virtual CCompileError* GenerateCode(CCodeSequence& code,
CCompileContext& context, unsigned short& stackUsed,
bool isStatement = false);
const CExpression* GetLeftArgument() const { return fLeft; }
const CExpression* GetRightArgument() const { return fRight; }
protected:
virtual CCompileError* HandleEvaluateType(CCompileContext& context,
CJavaTypeSignature& setType);
CCompileError* AppendToStringBuffer(CCodeSequence& code,
CExpression* childExpression, CCompileContext& compiler,
unsigned short& stackUsed);
private:
CExpression* fLeft;
CExpression* fRight;
unsigned short fOperator; // taken from parser.y/h
};
#endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.