#include <antlr3collections.h>
Public Member Functions | |
void (ANTLR3_CDECL *free)(struct ANTLR3_VECTOR_struct *vector) | |
Data Fields | |
ANTLR3_UINT32(* | add )(struct ANTLR3_VECTOR_struct *vector, void *element, void(ANTLR3_CDECL *freeptr)(void *)) |
void(* | clear )(struct ANTLR3_VECTOR_struct *vector) |
ANTLR3_UINT32 | count |
Number of entries currently in the list;. | |
void(* | del )(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry) |
pANTLR3_VECTOR_ELEMENT | elements |
Array of pointers to vector elements. | |
ANTLR3_UINT32 | elementsSize |
Total number of entries in elements at any point in time. | |
ANTLR3_BOOLEAN | factoryMade |
Indicates if the structure was made by a factory, in which case only the factory can free the memory for the actual vector, though the vector free function is called and will recurse through its entries calling any free pointers for each entry. | |
void *(* | get )(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry) |
ANTLR3_VECTOR_ELEMENT | internal [ANTLR3_VECTOR_INTERNAL_SIZE] |
Many times, a vector holds just a few nodes in an AST and it is too much overhead to malloc the space for elements so at the expense of a few bytes of memory, we hold the first few elements internally. | |
void *(* | remove )(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry) |
ANTLR3_UINT32(* | set )(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry, void *element, void(ANTLR3_CDECL *freeptr)(void *), ANTLR3_BOOLEAN freeExisting) |
ANTLR3_UINT32(* | size )(struct ANTLR3_VECTOR_struct *vector) |
ANTLR3_BOOLEAN(* | swap )(struct ANTLR3_VECTOR_struct *, ANTLR3_UINT32 entry1, ANTLR3_UINT32 entry2) |
ANTLR3_VECTOR_struct::void | ( | ANTLR3_CDECL * | free | ) |
ANTLR3_UINT32(* ANTLR3_VECTOR_struct::add)(struct ANTLR3_VECTOR_struct *vector, void *element, void(ANTLR3_CDECL *freeptr)(void *)) |
Referenced by add(), addChild(), antlr38BitMark(), antlr3SetVectorApi(), antlr3StackPush(), fillBuffer(), freeNodeRS(), freeRS(), and replaceChildren().
void(* ANTLR3_VECTOR_struct::clear)(struct ANTLR3_VECTOR_struct *vector) |
Referenced by antlr3InputReset(), antlr3SetVectorApi(), freeNodeRS(), freeRS(), reset(), returnVector(), and reuse().
Number of entries currently in the list;.
Referenced by add(), antlr38BitMark(), antlr3RewriteRuleElementStreamNewAE(), antlr3SetVectorApi(), antlr3StackPop(), antlr3StackSize(), antlr3VectorAdd(), antlr3VectorClear(), antlr3VectorDel(), antlr3VectorFree(), antlr3VectorSet(), antlr3VectorSize(), antrl3VectorRemove(), consume(), freeNodeRS(), mismatchIsMissingToken(), size(), and sortVector().
void(* ANTLR3_VECTOR_struct::del)(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry) |
Referenced by antlr3SetVectorApi(), antlr3StackPop(), and destroy().
Array of pointers to vector elements.
Referenced by antlr3SetVectorApi(), antlr3VectorAdd(), antlr3VectorClear(), antlr3VectorDel(), antlr3VectorFree(), antlr3VectorGet(), antlr3VectorResize(), antlr3VectorSet(), antlr3VectorSwap(), antrl3VectorRemove(), closeVectorFactory(), destroy(), freeNodeRS(), LB(), newVector(), replaceChildren(), and tokLT().
Total number of entries in elements at any point in time.
Referenced by antlr3SetVectorApi(), antlr3VectorAdd(), antlr3VectorFree(), antlr3VectorResize(), antlr3VectorSet(), antlr3VectorSwap(), and closeVectorFactory().
Indicates if the structure was made by a factory, in which case only the factory can free the memory for the actual vector, though the vector free function is called and will recurse through its entries calling any free pointers for each entry.
Referenced by antlr3RewriteRuleElementStreamNewAEV(), antlr3SetVectorApi(), antlr3VectorFactoryNew(), antlr3VectorFree(), closeVectorFactory(), freeNodeRS(), freeRS(), and newVector().
void*(* ANTLR3_VECTOR_struct::get)(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry) |
ANTLR3_VECTOR_ELEMENT ANTLR3_VECTOR_struct::internal[ANTLR3_VECTOR_INTERNAL_SIZE] |
Many times, a vector holds just a few nodes in an AST and it is too much overhead to malloc the space for elements so at the expense of a few bytes of memory, we hold the first few elements internally.
It means we must copy them when we grow beyond this initial size, but that is less overhead than the malloc/free callas we would otherwise require.
Referenced by antlr3SetVectorApi(), antlr3VectorResize(), and newVector().
void*(* ANTLR3_VECTOR_struct::remove)(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry) |
Referenced by antlr3RewriteRuleElementStreamNewAE(), antlr3SetVectorApi(), deleteChild(), and replaceChildren().
ANTLR3_UINT32(* ANTLR3_VECTOR_struct::set)(struct ANTLR3_VECTOR_struct *vector, ANTLR3_UINT32 entry, void *element, void(ANTLR3_CDECL *freeptr)(void *), ANTLR3_BOOLEAN freeExisting) |
Referenced by antlr3SetVectorApi(), newRaw8(), newRawUTF16(), replaceChildren(), and setChild().
ANTLR3_UINT32(* ANTLR3_VECTOR_struct::size)(struct ANTLR3_VECTOR_struct *vector) |
Referenced by addChild(), antlr3SetVectorApi(), dupTree(), getChild(), getChildCount(), getFirstChildWithType(), hasNext(), replaceChildren(), and toStringTree().
ANTLR3_BOOLEAN(* ANTLR3_VECTOR_struct::swap)(struct ANTLR3_VECTOR_struct *, ANTLR3_UINT32 entry1, ANTLR3_UINT32 entry2) |
Referenced by antlr3SetVectorApi(), and sortVector().