YSBracket Class Reference

#include <YStatement.h>

Inheritance diagram for YSBracket:
YStatement YCode Rep

List of all members.

Public Member Functions

 YSBracket (SymbolEntryPtr entry, YCodePtr arg, YCodePtr code, int line=0)
 YSBracket (bytecodeistream &str)
 ~YSBracket ()
virtual ykind kind () const
string toString () const
std::ostream & toStream (std::ostream &str) const
std::ostream & toXml (std::ostream &str, int indent) const
YCPValue commit (YCPValue current, int idx, YCPList arg, YCPValue value)
YCPValue evaluate (bool cse=false)
constTypePtr type () const

Private Member Functions

 REP_BODY (YSBracket)

Private Attributes

SymbolEntryPtr m_entry
YCodePtr m_arg
YCodePtr m_code

Detailed Description

bracket assignment <m_entry>[<m_arg>] = <m_code>


Constructor & Destructor Documentation

YSBracket::YSBracket ( SymbolEntryPtr  entry,
YCodePtr  arg,
YCodePtr  code,
int  line = 0 
)
YSBracket::YSBracket ( bytecodeistream str  ) 
YSBracket::~YSBracket (  ) 

Member Function Documentation

YCPValue YSBracket::commit ( YCPValue  current,
int  idx,
YCPList  arg,
YCPValue  value 
)
YCPValue YSBracket::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 YStatement.

References commit(), YCPElement::isNull(), m_arg, m_code, m_entry, y2debug, y2internal, and ycp2error.

virtual ykind YSBracket::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::ysBracket.

YSBracket::REP_BODY ( YSBracket   )  [private]
std::ostream & YSBracket::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)

Reimplemented from YStatement.

References m_arg, m_code, m_entry, and Bytecode::writeEntry().

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

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YStatement.

References m_arg, m_code, and m_entry.

std::ostream & YSBracket::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)

Reimplemented from YStatement.

References m_arg, m_code, m_entry, and Xmlcode::writeEntry().

constTypePtr YSBracket::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 YStatement.

References Type::Void.


Member Data Documentation

YCodePtr YSBracket::m_arg [private]
YCodePtr YSBracket::m_code [private]
SymbolEntryPtr YSBracket::m_entry [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