YECompare Class Reference

#include <YExpression.h>

Inheritance diagram for YECompare:
YCode Rep

List of all members.

Public Types

enum  cmp_op {
  C_NOT = 1, C_EQ = 2, C_LT = 4, C_NEQ = C_NOT|C_EQ,
  C_LE = C_EQ|C_LT, C_GE = C_NOT|C_LT, C_GT = C_NOT|C_EQ|C_LT
}
typedef cmp_op c_op

Public Member Functions

 YECompare (YCodePtr left, c_op op, YCodePtr right)
 YECompare (bytecodeistream &str)
 ~YECompare ()
virtual ykind kind () const
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 (YECompare)

Private Attributes

YCodePtr m_left
c_op m_op
YCodePtr m_right

Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
C_NOT 
C_EQ 
C_LT 
C_NEQ 
C_LE 
C_GE 
C_GT 

Constructor & Destructor Documentation

YECompare::YECompare ( YCodePtr  left,
c_op  op,
YCodePtr  right 
)
YECompare::YECompare ( bytecodeistream str  ) 
YECompare::~YECompare (  ) 

Member Function Documentation

YCPValue YECompare::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 C_EQ, C_GE, C_GT, C_LE, C_LT, C_NEQ, YCPElement::isNull(), m_left, m_op, m_right, y2debug, ycp2error, YO_EQUAL, YO_GREATER, and YO_LESS.

virtual ykind YECompare::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::yeCompare.

YECompare::REP_BODY ( YECompare   )  [private]
std::ostream & YECompare::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_left, m_op, and m_right.

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

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YCode.

References compare_op_string(), m_left, m_op, and m_right.

std::ostream & YECompare::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 compare_op_string(), m_left, m_op, m_right, and Xmlcode::xmlify().

constTypePtr YECompare::type (  )  const [inline, 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 Type::Boolean.


Member Data Documentation

YCodePtr YECompare::m_left [private]
c_op YECompare::m_op [private]
YCodePtr YECompare::m_right [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