/****************************************************************************** * Top contributors (to current version): * Christopher L. Conway, Mathias Preiner, Morgan Deters * * This file is part of the cvc5 project. * * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS * in the top-level source directory and their institutional affiliations. * All rights reserved. See the file COPYING in the top-level source * directory for licensing information. * **************************************************************************** * An ANTLR3 bounded token factory. * * The factory has a fixed number of tokens that are re-used as parsing * proceeds. Only use this factory if you *know* that the number of active * tokens will be bounded (e.g., if you're using a bounded token stream). */ #include "cvc5parser_private.h" #ifndef CVC5__PARSER__BOUNDED_TOKEN_FACTORY_H #define CVC5__PARSER__BOUNDED_TOKEN_FACTORY_H namespace cvc5 { namespace parser { #ifdef __cplusplus extern "C" { #endif /** Create a token factory with a pool of exactly size tokens, * attached to the input stream input. size must be * greater than the maximum lookahead in the parser, or tokens will be prematurely re-used. * * We abuse pANTLR3_TOKEN_FACTORY fields for our own purposes: * pANTLR3_COMMON_TOKEN *pools: a pointer to a single-element array, a single pool of tokens * ANTLR3_INT32 thisPool: the size of the pool * ANTLR3_UINT32 nextToken: the index of the next token to be returned * */ pANTLR3_TOKEN_FACTORY BoundedTokenFactoryNew(pANTLR3_INPUT_STREAM input,ANTLR3_UINT32 size); #ifdef __cplusplus }/* extern "C" */ #endif } // namespace parser } // namespace cvc5 #endif /* CVC5__PARSER__BOUNDED_TOKEN_FACTORY_H */