YEPropagate Class Reference

#include <YExpression.h>

Inheritance diagram for YEPropagate:

YCode Rep

List of all members.

Public Member Functions

 YEPropagate (YCodePtr value, constTypePtr from, constTypePtr to)
 YEPropagate (bytecodeistream &str)
 ~YEPropagate ()
virtual ykind kind () const
string toString () const
bool canPropagate (const YCPValue &value, constTypePtr to_type) 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 (YEPropagate)

Private Attributes

constTypePtr m_from
constTypePtr m_to
YCodePtr m_value


Constructor & Destructor Documentation

YEPropagate::YEPropagate ( YCodePtr  value,
constTypePtr  from,
constTypePtr  to 
)

lookup (map m, any k, any default) -> any Looks up the value matching to given key k. Returns default if the key was not found or has a different type than default.

Example:

 lookup ($[1:"a", 2:"bc"], 371, "take this") -> "take this"

 Type mismatch, returns default:
 lookup ($[1:"a", 2:"bc"], 1, true) -> true
 

References ee, ExecutionEnvironment::filename(), ExecutionEnvironment::linenumber(), m_from, and ycp2warning.

YEPropagate::YEPropagate ( bytecodeistream str  ) 

References m_value, and Bytecode::readCode().

YEPropagate::~YEPropagate (  ) 


Member Function Documentation

bool YEPropagate::canPropagate ( const YCPValue value,
constTypePtr  to_type 
) const

YCPValue YEPropagate::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 canPropagate(), YCPElement::isNull(), m_to, m_value, toString(), y2debug, and ycp2error.

virtual ykind YEPropagate::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::yePropagate.

YEPropagate::REP_BODY ( YEPropagate   )  [private]

std::ostream & YEPropagate::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_from, m_to, and m_value.

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

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YCode.

References m_from, m_to, and m_value.

Referenced by evaluate().

std::ostream & YEPropagate::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_from, m_to, m_value, and Xmlcode::xmlify().

constTypePtr YEPropagate::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 m_to.


Member Data Documentation

constTypePtr YEPropagate::m_from [private]

Referenced by toStream(), toString(), toXml(), and YEPropagate().

constTypePtr YEPropagate::m_to [private]

Referenced by evaluate(), toStream(), toString(), toXml(), and type().

YCodePtr YEPropagate::m_value [private]


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

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