Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Examples

Y2Namespace Class Reference

#include <Y2Namespace.h>

Inheritance diagram for Y2Namespace:

PkgModuleFunctions YBlock PkgModule Y2CPPFunctionCallBase Y2CPPFunctionCall< T > List of all members.

Public Member Functions

 Y2Namespace ()
virtual ~Y2Namespace ()
void finish ()
virtual const string name () const
 what namespace do we implement

virtual const string filename () const=0
 used for error reporting

virtual unsigned int symbolCount () const
 gives the number of symbol declarations

virtual SymbolEntryPtr symbolEntry (unsigned int position) const
 access to definitions of this namespace

virtual string toString () const
 unparse. useful for debugging

string symbolsToString () const
virtual YCPValue evaluate (bool cse=false)=0
 called when evaluating the import statement

virtual SymbolTabletable () const
 get our whole symbol table?

void createTable ()
virtual Y2FunctioncreateFunctionCall (const string name)=0
void pushToStack ()
void popFromStack ()
virtual void initialize ()

Protected Types

typedef vector< SymbolEntryPtr > symbols_t

Protected Member Functions

unsigned int addSymbol (SymbolEntryPtr sentry)
void enterSymbol (SymbolEntryPtr sentry, Point *point=0)
SymbolEntryPtr lookupSymbol (const char *name) const
void releaseSymbol (unsigned int position)

Protected Attributes

SymbolTablem_table
unsigned int m_symbolcount
symbols_t m_symbols
bool m_initialized

Detailed Description

Y2Namespace implements a hash(?) table of nested(?) SymbolEntries and allows to look them up


Member Typedef Documentation

typedef vector<SymbolEntryPtr> Y2Namespace::symbols_t [protected]
 


Constructor & Destructor Documentation

Y2Namespace::Y2Namespace  ) 
 

Y2Namespace::~Y2Namespace  )  [virtual]
 


Member Function Documentation

unsigned int Y2Namespace::addSymbol SymbolEntryPtr  sentry  )  [protected]
 

virtual Y2Function* Y2Namespace::createFunctionCall const string  name  )  [pure virtual]
 

Creates a function call instance, which can be used to call a function from this namespace. The object is NOT owned anymore by this instance, the caller can (and should) delete it.

Parameters:
name name of the required function
Returns:
an object, that can be used to call the function, or NULL on error

Implemented in YBlock, and PkgModuleFunctions.

void Y2Namespace::createTable  ) 
 

void Y2Namespace::enterSymbol SymbolEntryPtr  sentry,
Point point = 0
[protected]
 

virtual YCPValue Y2Namespace::evaluate bool  cse = false  )  [pure virtual]
 

called when evaluating the import statement

Implemented in YBlock, and PkgModuleFunctions.

virtual const string Y2Namespace::filename  )  const [pure virtual]
 

used for error reporting

Implemented in YBlock, and PkgModuleFunctions.

void Y2Namespace::finish  ) 
 

void Y2Namespace::initialize  )  [virtual]
 

SymbolEntryPtr Y2Namespace::lookupSymbol const char *  name  )  const [protected]
 

const string Y2Namespace::name  )  const [virtual]
 

what namespace do we implement

Reimplemented in YBlock, and PkgModuleFunctions.

void Y2Namespace::popFromStack  ) 
 

void Y2Namespace::pushToStack  ) 
 

void Y2Namespace::releaseSymbol unsigned int  position  )  [protected]
 

unsigned int Y2Namespace::symbolCount  )  const [virtual]
 

gives the number of symbol declarations

SymbolEntryPtr Y2Namespace::symbolEntry unsigned int  position  )  const [virtual]
 

access to definitions of this namespace

string Y2Namespace::symbolsToString  )  const
 

SymbolTable * Y2Namespace::table  )  const [virtual]
 

get our whole symbol table?

Reimplemented in YBlock.

string Y2Namespace::toString  )  const [virtual]
 

unparse. useful for debugging

Reimplemented in YBlock, and PkgModuleFunctions.


Member Data Documentation

bool Y2Namespace::m_initialized [protected]
 

unsigned int Y2Namespace::m_symbolcount [protected]
 

symbols_t Y2Namespace::m_symbols [protected]
 

SymbolTable* Y2Namespace::m_table [protected]
 


The documentation for this class was generated from the following files:
Generated on Fri Nov 9 18:15:24 2007 for yast2-core by doxygen 1.3.6