YETerm Class Reference

#include <YExpression.h>

Inheritance diagram for YETerm:
YCode Rep

List of all members.

Public Member Functions

 YETerm (const char *name)
 YETerm (bytecodeistream &str)
 ~YETerm ()
virtual ykind kind () const
constTypePtr attachParameter (YCodePtr code, constTypePtr dummy=Type::Unspec)
string toString () const
const char * name () 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 (YETerm)

Private Attributes

const char * m_name
ycodelist_tm_parameters

Constructor & Destructor Documentation

YETerm::YETerm ( const char *  name  ) 
YETerm::YETerm ( bytecodeistream str  ) 
YETerm::~YETerm (  ) 

References m_name, m_parameters, and ycodelist::next.


Member Function Documentation

constTypePtr YETerm::attachParameter ( YCodePtr  code,
constTypePtr  dummy = Type::Unspec 
)

Attach parameter to external function call

Parameters:
code,: parameter code
type,: parameter type
Returns:
NULL if success, != NULL (expected type) if wrong parameter type Type::Unspec if bad code (NULL or isError) Type::Error if excessive parameter

References m_parameters, ycodelist::next, Type::Unspec, and y2debug.

YCPValue YETerm::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 YCPTerm::add(), ycodelist::code, YCPElement::isNull(), m_name, m_parameters, ycodelist::next, toString(), y2debug, and ycp2error.

virtual ykind YETerm::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::yeTerm.

const char * YETerm::name (  )  const

References m_name.

YETerm::REP_BODY ( YETerm   )  [private]
std::ostream & YETerm::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_name, m_parameters, Bytecode::writeCharp(), and Bytecode::writeYCodelist().

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

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YCode.

References ycodelist::code, m_name, m_parameters, ycodelist::next, and ycp2error.

Referenced by evaluate().

std::ostream & YETerm::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_name, m_parameters, ycodelist::next, and Xmlcode::writeYCodelist().

constTypePtr YETerm::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::Term.


Member Data Documentation

const char* YETerm::m_name [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