#include <YStatement.h>
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 |
statement (-> statement, next statement)
YStatement::YStatement | ( | int | line = 0 |
) |
YStatement::YStatement | ( | bytecodeistream & | str | ) |
References YCode::kind(), m_line, Bytecode::readInt32(), and y2debug.
YStatement::~YStatement | ( | ) | [inline] |
YCPValue YStatement::evaluate | ( | bool | cse = false |
) | [virtual] |
Execute YCP code to get the resulting YCPValue. Every inherited class of YCode should reimplement this method.
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.
str | byte stream to store into |
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.
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.
str | string stream to store into | |
indend | indentation level for pretty print |
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).
Reimplemented from YCode.
Reimplemented in YSExpression, YSBlock, YSReturn, YSTypedef, YSFunction, YSBracket, YSIf, YSWhile, YSRepeat, YSDo, YSTextdomain, YSInclude, YSImport, YSFilename, and YSSwitch.
References Type::Void.
int YStatement::m_line [private] |
Referenced by line(), toStream(), toXml(), and YStatement().