#include <antlr3commontree.h>
Data Fields | |
void(* | close )(struct ANTLR3_ARBORETUM_struct *factory) |
Pointer to a function the destroys the factory. | |
pANTLR3_BASE_TREE(* | newFromToken )(struct ANTLR3_ARBORETUM_struct *factory, pANTLR3_COMMON_TOKEN token) |
pANTLR3_BASE_TREE(* | newFromTree )(struct ANTLR3_ARBORETUM_struct *factory, pANTLR3_COMMON_TREE tree) |
pANTLR3_BASE_TREE(* | newTree )(struct ANTLR3_ARBORETUM_struct *factory) |
Pointer to a function that returns a new tree. | |
ANTLR3_UINT32 | nextTree |
The next token to throw out from the pool, will cause a new pool allocation if this exceeds the available tokenCount. | |
pANTLR3_STACK | nilStack |
A resuse stack for reclaiming Nil nodes that were used in rewrites and are now dead. | |
pANTLR3_COMMON_TREE * | pools |
Pointers to the array of tokens that this factory has produced so far. | |
ANTLR3_INT32 | thisPool |
Current pool tokens we are allocating from. | |
ANTLR3_COMMON_TREE | unTruc |
Trick to initialize tokens and their API quickly, we set up this token when the factory is created, then just copy the memory it uses into the new token. | |
pANTLR3_VECTOR_FACTORY | vFactory |
Pointer to a vector factory that is used to create child list vectors for any child nodes that need them. |
void(* ANTLR3_ARBORETUM_struct::close)(struct ANTLR3_ARBORETUM_struct *factory) |
pANTLR3_BASE_TREE(* ANTLR3_ARBORETUM_struct::newFromToken)(struct ANTLR3_ARBORETUM_struct *factory, pANTLR3_COMMON_TOKEN token) |
Referenced by antlr3ArboretumNew().
pANTLR3_BASE_TREE(* ANTLR3_ARBORETUM_struct::newFromTree)(struct ANTLR3_ARBORETUM_struct *factory, pANTLR3_COMMON_TREE tree) |
Referenced by antlr3ArboretumNew(), and dupNode().
pANTLR3_BASE_TREE(* ANTLR3_ARBORETUM_struct::newTree)(struct ANTLR3_ARBORETUM_struct *factory) |
Pointer to a function that returns a new tree.
Referenced by antlr3ArboretumNew(), newFromToken(), and newFromTree().
The next token to throw out from the pool, will cause a new pool allocation if this exceeds the available tokenCount.
Referenced by newPool(), and newPoolTree().
A resuse stack for reclaiming Nil nodes that were used in rewrites and are now dead.
The nilNode() method will eat one of these before creating a new node.
Referenced by antlr3ArboretumNew(), factoryClose(), newPoolTree(), and reuse().
Pointers to the array of tokens that this factory has produced so far.
Referenced by antlr3ArboretumNew(), factoryClose(), newPool(), and newPoolTree().
Current pool tokens we are allocating from.
Referenced by antlr3ArboretumNew(), factoryClose(), newPool(), and newPoolTree().
Trick to initialize tokens and their API quickly, we set up this token when the factory is created, then just copy the memory it uses into the new token.
Referenced by antlr3ArboretumNew(), and newPoolTree().
Pointer to a vector factory that is used to create child list vectors for any child nodes that need them.
This means that we auto track the vectors and auto free them when we close the factory. It also means that all rewriting trees can use the same tree factory and the same vector factory and we do not dup any nodes unless we must do so explicitly because of context such as an empty rewrite stream and ->IMAGINARY[ID] so on. This makes memory tracking much simpler and tempts no errors.
Referenced by antlr3ArboretumNew(), and factoryClose().