yast2-core
Public Member Functions | Private Member Functions | Private Attributes
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
- Public Member Functions inherited from YCode
 YCode ()
virtual ~YCode ()
virtual ykind kind () const =0
virtual bool isConstant () const
bool isError () const
virtual bool isBlock () const
virtual bool isReferenceable () const
- Public Member Functions inherited from Rep
 Rep ()
 Rep (const Rep &)
Repoperator= (const Rep &)
virtual ~Rep ()
void ref () const
void unref () const
unsigned refCount () const
virtual const char * repName () const
virtual std::ostream & dumpOn (std::ostream &str) const

Private Member Functions

 REP_BODY (YStatement)

Private Attributes

int m_line

Additional Inherited Members

- Public Types inherited from YCode
enum  ykind {
  yxError = 0, ycVoid, ycBoolean, ycInteger,
  ycFloat, ycString, ycByteblock, ycPath,
  ycSymbol, ycList, ycMap, ycTerm,
  ycEntry, ycConstant, ycLocale, ycFunction,
  yePropagate, yeUnary, yeBinary, yeTriple,
  yeCompare, yeLocale, yeList, yeMap,
  yeTerm, yeIs, yeBracket, yeBlock,
  yeReturn, yeVariable, yeBuiltin, yeFunction,
  yeReference, yeFunctionPointer, yeExpression, ysTypedef,
  ysVariable, ysFunction, ysAssign, ysBracket,
  ysIf, ysWhile, ysDo, ysRepeat,
  ysExpression, ysReturn, ysBreak, ysContinue,
  ysTextdomain, ysInclude, ysFilename, ysImport,
  ysBlock, ysSwitch, ysStatement, yiBreakpoint
}
- Static Public Member Functions inherited from YCode
static string toString (ykind kind)
- Static Public Member Functions inherited from Rep
static void ref (const Rep *obj_r)
static void unref (const Rep *obj_r)

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:
cseshould the evaluation be done for parse time evaluation (i.e. constant subexpression elimination)

Reimplemented from YCode.

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

References toString(), and y2debug.

virtual bool YStatement::isStatement ( ) const
inlinevirtual

yes

Reimplemented from YCode.

int YStatement::line ( void  ) const
inline

References m_line.

Referenced by YSExpression::evaluate(), and YSBlock::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:
strbyte stream to store into
Returns:
byte stream for chaining writing bytecode (str)

Implements YCode.

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

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 YSSwitch, YSFilename, YSImport, YSInclude, YSTextdomain, YSDo, YSRepeat, YSWhile, YSIf, YSBracket, YSVariable, YSAssign, YSFunction, YSTypedef, YSReturn, YSBlock, YSExpression, YSContinue, and YSBreak.

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:
strstring stream to store into
indendindentation level for pretty print
Returns:
string stream for chaining writing XML (str)

Implements YCode.

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

References m_line.

constTypePtr YStatement::type ( ) const
inlinevirtual

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 YSSwitch, YSFilename, YSImport, YSInclude, YSTextdomain, YSDo, YSRepeat, YSWhile, YSIf, YSBracket, YSFunction, YSTypedef, YSReturn, YSBlock, and YSExpression.

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.8.1