This is a list of lists of names in a loop. The first list of names is the list of names for the outermost loop. the second list of names is the list of names for the next nesting level in, and so on.
![]() | const_iterator This is supposed to behave like the iterator class in an STL vector
| ||||||||||||||||||||||||||||||
![]() | iterator This is supposed to behave like the iterator class in an STL vector
| ||||||||||||||||||||||||||||||
![]() | Status
|
![]() | AddDataName (const string & name) DEPRECIATED - use the STL vector notation instead: |
![]() | back () |
![]() | back () const |
![]() | begin () |
![]() | begin () const |
![]() | ChangeName ( const string &oldName, const string &newName ) DEPRECIATED - use the STL vector notation instead: |
![]() | debugPrint ( void ) Print out debugging info detailing the layout of this list: |
![]() | empty () const |
![]() | end () const |
![]() | end () |
![]() | FlattenNestedLoop (List<DataNameNode*>* L) DEPRECIATED - use the STL vector notation instead: |
![]() | front () |
![]() | front () const |
![]() | getNextTag (DataLoopValListNode::Status vstat, int & row) DEPRECIATED - use the STL vector notation instead: |
![]() | isOfType ( ASTtype T ) |
![]() | myLongestStr ( void ) Returns the length of the longest string in this object |
![]() | myName () const Return the 'name' of this node (the name of the first tag in the outermost nesting level is arbitrarily chosen as the "name" of this node |
![]() | myType (void) |
![]() | operator[] ( size_type n ) |
![]() | operator[] ( size_type n) const |
![]() | RemoveDataName ( const string & name, int *nest = (int*)NULL, int *ele = (int*)NULL ) DEPRECIATED - use the STL vector notation instead: |
![]() | reset () DEPRECIATED - use the STL vector notation instead: |
![]() | searchByTag ( string &searchFor ) Given a tag name, find the AST object it resides in |
![]() | searchForType ( ASTtype type, int delim = -1 ) This method returns a list of all the nodes of the given type that are inside this node, or children of this node, or children of children of this node, etc all the way down to the leaf nodes |
![]() | size () const |
![]() | tagPosition (const string & TagName) DEPRECIATED - use tagPositionDeep instead Get the index of the given tag, if it resides in the outermost loop only (is incapable of searching into nested tags |
![]() | tagPositionDeep ( string tagName, int *nestLevel, int *column ) Get the index of the given name |
![]() | unlinkChild ( ASTnode *child ) unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode |
![]() | Unparse (int indent) |
![]() | ~DataLoopNameListNode () Destructor - recursively destroys the whole list of names. |
![]() |
| ||||||||||||||
![]() |
| ||||||||||||||
![]() |
|
This is a list of lists of names in a loop. The first list of names is the list of names for the outermost loop. the second list of names is the list of names for the next nesting level in, and so on.
DataLoopNameListNode( bool link, DataLoopDefListNode &L)
DataLoopNameListNode(const DataLoopDefListNode& D)
DataLoopNameListNode(ASTlist<LoopDefListNode *> *L)
DataLoopNameListNode()
Insert - Insert before 'pos', the row of tagnames given by
'v'. Note that what this means is that you are
inserting a new nesting level to the loop. If this
is already inside a DataLoopNode, then you are only
allowed to add new nesting levels at the deepest level,
i.e. 'pos' must == 'end()' or it will refuse to do it
and return false. This is because if you inserted a
new nesting level in the middle, then values that are
at the levels deeper than that are no longer associated
with the higher-level row that they are supposed to
"hang" off from.
If this DataLoopNameListNode is not inside a DataLoopNode,
then you can insert and remove nesting levels at will.
the passed vector itself (in other words, you can delete
it after calling (and the DataNameNodes it points to).
(This function performs a DEEP copy of the given name def list
so everything in the passed argument can be deleted after
calling, if it is appropriate.)
In order to keep the STAR syntax correct,
deleting a row of names also results in all
tagnames for levels nested AFTER that row
being deleted also. (If there are three nested
levels in a loop and you delete the middle level,
then the inner level goes away too.)
That is why there is no erase() method for erasing
a range of rows of names. There would be no point,
seeing as how once one is deleted, the rest under it
have to be deleted too.
This search is case-insensitive. The names of things, according
to the STAR specification, are supposed to be case-insensitive.
This is being applied not only to tag names but also to
saveframe names and datablock names.
WARNING: The list returned is allocated in heap space. It is
the caller's responsibility to delete the list after it is no
longer needed.
void debugPrint( void )
class iterator
ASTlist <LoopNameListNode*> ::iterator vIter
iterator()
iterator( const ASTlist<LoopNameListNode*>::iterator ©Me )
iterator( value_type ©Me )
~iterator()
bool operator==( const iterator &x ) const
bool operator!=( const iterator &x ) const
reference operator*() const
value_type operator->() const
iterator& operator++()
iterator& operator++(int)
iterator& operator--()
class const_iterator
ASTlist <LoopNameListNode*> ::const_iterator vIter
const_iterator()
const_iterator( const ASTlist<LoopNameListNode*>::const_iterator ©Me )
const_iterator( const value_type ©Me )
~const_iterator()
bool operator!=( const iterator &x ) const
const_reference operator*() const
const value_type operator->() const
const_iterator& operator++()
const_iterator& operator++(int)
const_iterator& operator--()
const_iterator& operator--(int)
iterator begin()
iterator end()
const_iterator begin() const
const_iterator end() const
size_type size() const
bool empty() const
reference operator[]( size_type n )
const_reference operator[]( size_type n) const
reference front()
const_reference back() const
const_reference front() const
reference back()
bool insert( iterator pos, vector<DataNameNode*> &v )
bool insert( iterator pos, LoopNameListNode &v )
bool insert( iterator pos, LoopNameListNode *v )
void erase( iterator pos )
virtual void Unparse(int indent)
virtual ASTnode::ASTtype myType(void)
virtual bool isOfType( ASTtype T )
StarFileNode::Status AddDataName(const string & name)
StarFileNode::Status RemoveDataName( const string & name, int *nest = (int*)NULL, int *ele = (int*)NULL )
StarFileNode::Status ChangeName( const string &oldName, const string &newName )
void reset()
Status getNextTag(DataLoopValListNode::Status vstat, int & row)
string myName() const
void FlattenNestedLoop(List<DataNameNode*>* L)
int tagPosition(const string & TagName)
Get the index of the given tag, if it resides in the outermost
loop only (is incapable of searching into nested tags.)
(This search is case-insensitive).
void tagPositionDeep( string tagName, int *nestLevel, int *column )
virtual List <ASTnode*> * searchByTag( string &searchFor )
virtual List <ASTnode*> * searchForType( ASTtype type, int delim = -1 )
delim - the delimiter type (not relevant at this scope ) virtual bool unlinkChild( ASTnode *child )
virtual int myLongestStr( void )
alphabetic index hierarchy of classes
generated by doc++