diff options
Diffstat (limited to 'poxml/antlr/src/ParserSharedInputState.cpp')
-rw-r--r-- | poxml/antlr/src/ParserSharedInputState.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/poxml/antlr/src/ParserSharedInputState.cpp b/poxml/antlr/src/ParserSharedInputState.cpp new file mode 100644 index 00000000..102aba87 --- /dev/null +++ b/poxml/antlr/src/ParserSharedInputState.cpp @@ -0,0 +1,37 @@ +#include "antlr/ParserSharedInputState.hpp" + +ANTLR_BEGIN_NAMESPACE(antlr) + +/** This object contains the data associated with an + * input stream of tokens. Multiple parsers + * share a single ParserSharedInputState to parse + * the same stream of tokens. + */ + +ParserInputState::ParserInputState(TokenBuffer* input_) +: guessing(0) +, input(input_) +, inputResponsible(true) +{ +} + +ParserInputState::ParserInputState(TokenBuffer& input_) +: guessing(0) +, input(&input_) +, inputResponsible(false) +{ +} + +ParserInputState::~ParserInputState() +{ + if (inputResponsible) + delete input; +} + +TokenBuffer& ParserInputState::getInput() +{ + return *input; +} + +ANTLR_END_NAMESPACE + |