YEBuiltin Class Reference

#include <YExpression.h>

Inheritance diagram for YEBuiltin:

YCode List of all members.

Public Member Functions

 YEBuiltin (declaration_t *decl, YBlockPtr parameterblock=0, constTypePtr type=0)
 YEBuiltin (bytecodeistream &str)
 ~YEBuiltin ()
virtual ykind kind () const
declaration_tdecl () const
constTypePtr finalize (Logger *problem_logger)
void closeParameters ()
constTypePtr attachParameter (YCodePtr code, constTypePtr type=Type::Unspec)
constTypePtr attachSymVariable (const char *name, constTypePtr type, unsigned int line, TableEntry *&tentry)
string toString () const
YCPValue evaluate (bool cse=false)
std::ostream & toStream (std::ostream &str) const
constTypePtr type () const
constTypePtr completeType () const
YBlockPtr parameterBlock () const

Private Member Functions

 REP_BODY (YEBuiltin)

Private Attributes

declaration_tm_decl
constFunctionTypePtr m_type
YBlockPtr m_parameterblock
ycodelist_tm_parameters

Constructor & Destructor Documentation

YEBuiltin::YEBuiltin ( declaration_t decl,
YBlockPtr  parameterblock = 0,
constTypePtr  type = 0 
)

YEBuiltin::YEBuiltin ( bytecodeistream str  ) 

YEBuiltin::~YEBuiltin (  ) 


Member Function Documentation

YEBuiltin::REP_BODY ( YEBuiltin   )  [private]

virtual ykind YEBuiltin::kind (  )  const [inline, virtual]

Returns the YCode kind

Implements YCode.

declaration_t * YEBuiltin::decl (  )  const

constTypePtr YEBuiltin::finalize ( Logger problem_logger  ) 

'close' function, perform final parameter check if ok, return 0 if wrong signature (wrong parameter count, template mismatch) return expected signature if undefined, return Type::Error (wrong type was already reported in attachParameter())

void YEBuiltin::closeParameters (  ) 

constTypePtr YEBuiltin::attachParameter ( YCodePtr  code,
constTypePtr  type = Type::Unspec 
)

Attach parameter to external function call

Parameters:
code,: parameter code
type,: parameter type
Returns:
NULL if success, != NULL (expected type) if wrong parameter type Type::Unspec if bad code (NULL or isError) Type::Error if excessive parameter

constTypePtr YEBuiltin::attachSymVariable ( const char *  name,
constTypePtr  type,
unsigned int  line,
TableEntry *&  tentry 
)

string YEBuiltin::toString (  )  const [virtual]

Returns an ASCII representation of the YCode.

Reimplemented from YCode.

YCPValue YEBuiltin::evaluate ( bool  cse = false  )  [virtual]

evaluate YCode to YCPValue if debugger == 0 called for parse time evaluation (i.e. constant subexpression elimination) else called for runtime evaluation

Reimplemented from YCode.

std::ostream & YEBuiltin::toStream ( std::ostream &  str  )  const [virtual]

writes YCode to a stream see Bytecode for read

Implements YCode.

constTypePtr YEBuiltin::type (  )  const [virtual]

return type (interesting mostly for function calls)

Reimplemented from YCode.

constTypePtr YEBuiltin::completeType (  )  const

YBlockPtr YEBuiltin::parameterBlock (  )  const


Member Data Documentation

declaration_t* YEBuiltin::m_decl [private]

constFunctionTypePtr YEBuiltin::m_type [private]

YBlockPtr YEBuiltin::m_parameterblock [private]

ycodelist_t* YEBuiltin::m_parameters [private]


The documentation for this class was generated from the following files:
Generated on Tue Nov 6 01:20:23 2007 for yast2-core by  doxygen 1.5.0