YStatement Class Reference

#include <YStatement.h>

Inheritance diagram for YStatement:

YCode Rep YSAssign YSBlock YSBracket YSBreak YSContinue YSDo YSExpression YSFilename YSFunction YSIf YSImport YSInclude YSRepeat YSReturn YSSwitch YSTextdomain YSTypedef YSWhile

List of all members.

Public Member Functions

 YStatement (int line=0)
 YStatement (bytecodeistream &str)
 ~YStatement ()
virtual string toString () const
std::ostream & toStream (std::ostream &str) const
std::ostream & toXml (std::ostream &str, int indent) const
virtual bool isStatement () const
int line () const
virtual YCPValue evaluate (bool cse=false)
constTypePtr type () const

Private Member Functions

 REP_BODY (YStatement)

Private Attributes

int m_line


Detailed Description

statement (-> statement, next statement)

Constructor & Destructor Documentation

YStatement::YStatement ( int  line = 0  ) 

YStatement::YStatement ( bytecodeistream str  ) 

YStatement::~YStatement (  )  [inline]


Member Function Documentation

YCPValue YStatement::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.

Reimplemented in YSBreak, YSContinue, YSExpression, YSBlock, YSReturn, YSTypedef, YSFunction, YSAssign, YSBracket, YSIf, YSWhile, YSRepeat, YSDo, YSTextdomain, YSInclude, YSImport, YSFilename, and YSSwitch.

References toString(), and y2debug.

virtual bool YStatement::isStatement (  )  const [inline, virtual]

yes

Reimplemented from YCode.

int YStatement::line ( void   )  const [inline]

References m_line.

Referenced by YSBlock::evaluate(), and YSExpression::evaluate().

YStatement::REP_BODY ( YStatement   )  [private]

std::ostream & YStatement::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.

Reimplemented in YSBreak, YSContinue, YSExpression, YSBlock, YSReturn, YSTypedef, YSFunction, YSAssign, YSBracket, YSIf, YSWhile, YSRepeat, YSDo, YSTextdomain, YSInclude, YSImport, YSFilename, and YSSwitch.

References YCode::kind(), m_line, Bytecode::writeInt32(), and y2debug.

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

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YCode.

Reimplemented in YSBreak, YSContinue, YSExpression, YSBlock, YSReturn, YSTypedef, YSFunction, YSAssign, YSVariable, YSBracket, YSIf, YSWhile, YSRepeat, YSDo, YSTextdomain, YSInclude, YSImport, YSFilename, and YSSwitch.

Referenced by evaluate().

std::ostream & YStatement::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.

Reimplemented in YSBreak, YSContinue, YSExpression, YSBlock, YSReturn, YSTypedef, YSFunction, YSAssign, YSBracket, YSIf, YSWhile, YSRepeat, YSDo, YSTextdomain, YSInclude, YSImport, YSFilename, and YSSwitch.

References m_line.

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

Reimplemented in YSExpression, YSBlock, YSReturn, YSTypedef, YSFunction, YSBracket, YSIf, YSWhile, YSRepeat, YSDo, YSTextdomain, YSInclude, YSImport, YSFilename, and YSSwitch.

References Type::Void.


Member Data Documentation

int YStatement::m_line [private]

Referenced by line(), toStream(), toXml(), and YStatement().


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

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