yast2-core
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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

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
 
std::string commentToXml () const
 
std::ostream & commentToXml (std::ostream &str) const
 
virtual bool isConstant () const
 
bool isError () const
 
virtual bool isBlock () const
 
virtual bool isReferenceable () const
 
void setCommentBefore (const char *comment)
 
void setCommentAfter (const char *comment)
 
- 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)
 
- Protected Member Functions inherited from Rep
virtual void ref_to (unsigned) const
 
virtual void unref_to (unsigned) const
 
- Protected Attributes inherited from YCode
const char * comment_before
 
const char * comment_after
 

Detailed Description

statement (-> statement, next statement)

Constructor & Destructor Documentation

YStatement::YStatement ( int  line = 0)
YStatement::YStatement ( bytecodeistream str)
YStatement::~YStatement ( )
inline

References str, toStream(), toString(), and toXml().

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.

Referenced by YSBreak::kind(), YSContinue::kind(), YSExpression::kind(), YSBlock::kind(), YSReturn::kind(), YSTypedef::kind(), YSFunction::kind(), YSAssign::kind(), YSBracket::kind(), YSIf::kind(), YSWhile::kind(), YSRepeat::kind(), YSDo::kind(), YSTextdomain::kind(), YSInclude::kind(), YSImport::kind(), YSFilename::kind(), YSSwitch::kind(), and line().

virtual bool YStatement::isStatement ( ) const
inlinevirtual

yes

Reimplemented from YCode.

int YStatement::line ( void  ) const
inline

References evaluate(), and m_line.

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

YStatement::REP_BODY ( YStatement  )
private
std::ostream & YStatement::toStream ( std::ostream &  str) const
virtual
string YStatement::toString ( void  ) const
virtual
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 YCode::commentToXml(), and m_line.

Referenced by YSBreak::kind(), YSContinue::kind(), YSExpression::kind(), YSBlock::kind(), YSReturn::kind(), YSTypedef::kind(), YSFunction::kind(), YSAssign::kind(), YSBracket::kind(), YSIf::kind(), YSWhile::kind(), YSRepeat::kind(), YSDo::kind(), YSTextdomain::kind(), YSInclude::kind(), YSImport::kind(), YSFilename::kind(), YSSwitch::kind(), and ~YStatement().

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