Y2Namespace Class Reference

#include <Y2Namespace.h>

Inheritance diagram for Y2Namespace:

Y2SystemNamespace YBlock 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, constFunctionTypePtr type)=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

Friends

class SymbolTable

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,
constFunctionTypePtr  type
[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
type the type of the function (needed for overloading)
Returns:
an object, that can be used to call the function, or NULL on error

Implemented in YBlock, and Y2SystemNamespace.

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

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

used for error reporting

Implemented in YBlock, and Y2SystemNamespace.

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

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.


Friends And Related Function Documentation

friend class SymbolTable [friend]
 


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 Jun 16 18:07:46 2006 for yast2-core by  doxygen 1.4.6