Lines Matching defs:factory

61 static	void			factoryClose	(pANTLR3_TOKEN_FACTORY factory);
63 static void setInputStream (pANTLR3_TOKEN_FACTORY factory, pANTLR3_INPUT_STREAM input);
64 static void factoryReset (pANTLR3_TOKEN_FACTORY factory);
68 static void newPool (pANTLR3_TOKEN_FACTORY factory);
69 static pANTLR3_COMMON_TOKEN newPoolToken (pANTLR3_TOKEN_FACTORY factory);
94 pANTLR3_TOKEN_FACTORY factory;
98 factory = (pANTLR3_TOKEN_FACTORY) ANTLR3_MALLOC((size_t)sizeof(ANTLR3_TOKEN_FACTORY));
100 if (factory == NULL)
105 /* Install factory API
107 factory->newToken = newPoolToken;
108 factory->close = factoryClose;
109 factory->setInputStream = setInputStream;
110 factory->reset = factoryReset;
114 factory->thisPool = -1;
115 factory->pools = NULL;
116 factory->maxPool = -1;
117 newPool(factory);
122 antlr3SetTokenAPI(&factory->unTruc);
126 factory->unTruc.factoryMade = ANTLR3_TRUE;
130 setInputStream(factory, input);
132 return factory;
137 setInputStream (pANTLR3_TOKEN_FACTORY factory, pANTLR3_INPUT_STREAM input)
139 factory->input = input;
140 factory->unTruc.input = input;
143 factory->unTruc.strFactory = input->strFactory;
147 factory->unTruc.strFactory = NULL;
152 newPool(pANTLR3_TOKEN_FACTORY factory)
154 /* Increment factory count
156 factory->thisPool++;
158 // If we were reusing this token factory then we may already have a pool
161 if (factory->thisPool > factory->maxPool)
165 factory->pools = (pANTLR3_COMMON_TOKEN *)
166 ANTLR3_REALLOC( (void *)factory->pools, /* Current pools pointer (starts at NULL) */
167 (ANTLR3_UINT32)((factory->thisPool + 1) * sizeof(pANTLR3_COMMON_TOKEN *)) /* Memory for new pool pointers */
170 /* Allocate a new pool for the factory
172 factory->pools[factory->thisPool] =
178 factory->maxPool = factory->thisPool;
183 factory->nextToken = 0;
191 newPoolToken(pANTLR3_TOKEN_FACTORY factory)
198 if (factory->nextToken >= ANTLR3_FACTORY_POOL_SIZE)
202 newPool(factory);
208 token = factory->pools[factory->thisPool] + factory->nextToken;
209 factory->nextToken++;
219 // It is factory made, and we need to copy the string factory pointer
222 token->strFactory = factory->input == NULL ? NULL : factory->input->strFactory;
223 token->input = factory->input;
232 factoryReset (pANTLR3_TOKEN_FACTORY factory)
237 factory->thisPool = -1;
238 newPool(factory);
242 factoryClose (pANTLR3_TOKEN_FACTORY factory)
252 for (poolCount = 0; poolCount <= factory->thisPool; poolCount++)
256 pool = factory->pools[poolCount];
260 limit = (poolCount == factory->thisPool ? factory->nextToken : ANTLR3_FACTORY_POOL_SIZE);
288 ANTLR3_FREE(factory->pools[poolCount]);
289 factory->pools[poolCount] = NULL;
295 ANTLR3_FREE(factory->pools);
297 /* Finally, we can free the space for the factory itself
299 ANTLR3_FREE(factory);
391 token->tokText.text->factory = token->strFactory;
447 * The method assumes that the existing text (if any) was created by a factory
546 if (text->factory == NULL)
553 outtext = text->factory->newRaw(text->factory);