YEBinary Class Reference

#include <YExpression.h>

Inheritance diagram for YEBinary:
YCode Rep

List of all members.

Public Member Functions

 YEBinary (declaration_t *decl, YCodePtr arg1, YCodePtr arg2)
 YEBinary (bytecodeistream &str)
 ~YEBinary ()
virtual ykind kind () const
declaration_tdecl ()
string toString () const
YCPValue evaluate (bool cse=false)
std::ostream & toStream (std::ostream &str) const
std::ostream & toXml (std::ostream &str, int indent) const
constTypePtr type () const

Private Member Functions

 REP_BODY (YEBinary)

Private Attributes

declaration_tm_decl
YCodePtr m_arg1
YCodePtr m_arg2

Constructor & Destructor Documentation

YEBinary::YEBinary ( declaration_t decl,
YCodePtr  arg1,
YCodePtr  arg2 
)
YEBinary::YEBinary ( bytecodeistream str  ) 
YEBinary::~YEBinary (  ) 

Member Function Documentation

declaration_t * YEBinary::decl (  ) 

References m_decl.

Referenced by evaluate().

YCPValue YEBinary::evaluate ( bool  cse = false  )  [virtual]

Execute YCP code to get the resulting YCPValue. Every inherited class of YCode should reimplement this method.

Returns:
YCPValue after executing the code
Parameters:
cse should the evaluation be done for parse time evaluation (i.e. constant subexpression elimination)

Reimplemented from YCode.

References decl(), DECL_NIL, DECL_NOEVAL, declaration::flags, YCPElement::isNull(), m_arg1, m_arg2, m_decl, declaration::name, declaration::ptr, toString(), declaration::type, y2debug, and ycp2error.

virtual ykind YEBinary::kind (  )  const [inline, virtual]

Kind of this YCode. This method must be reimplemented in the inherited classes.

Returns:
the YCode kind

Implements YCode.

References YCode::yeBinary.

YEBinary::REP_BODY ( YEBinary   )  [private]
std::ostream & YEBinary::toStream ( std::ostream &  str  )  const [virtual]

Write YCP code to a byte stream (bytecode implementation). Every class inheriting from YCode must reimplement this method.

Parameters:
str byte stream to store into
Returns:
byte stream for chaining writing bytecode (str)

Implements YCode.

References m_arg1, m_arg2, m_decl, static_declarations, and StaticDeclaration::writeDeclaration().

string YEBinary::toString ( void   )  const [virtual]

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YCode.

References StaticDeclaration::Decl2String(), m_arg1, m_arg2, and m_decl.

Referenced by evaluate(), and type().

std::ostream & YEBinary::toXml ( std::ostream &  str,
int  indent 
) const [virtual]

Write YCP code as XML representation. Every class inheriting from YCode must reimplement this method.

Parameters:
str string stream to store into
indend indentation level for pretty print
Returns:
string stream for chaining writing XML (str)

Implements YCode.

References m_arg1, m_arg2, m_decl, static_declarations, and StaticDeclaration::writeXmlDeclaration().

constTypePtr YEBinary::type (  )  const [virtual]

Return type of this YCP code (interesting mostly for function calls).

Returns:
type of the value to be returned after calling evaluate

Reimplemented from YCode.

References DECL_FLEX, Type::determineFlexType(), declaration::flags, m_arg1, m_arg2, m_decl, toString(), declaration::type, Type::Unspec, and y2internal.


Member Data Documentation

YCodePtr YEBinary::m_arg1 [private]
YCodePtr YEBinary::m_arg2 [private]

The documentation for this class was generated from the following files:

Generated on a sunny day for yast2-core by doxygen 1.6.3