1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#include "Antlr/LexerSharedInputState.hpp"
#include "Antlr/CharBuffer.hpp"
/** This object contains the data associated with an
* input stream of characters. Multiple lexers
* share a single LexerSharedInputState to lex
* the same input stream.
*/
LexerInputState::LexerInputState(InputBuffer* inbuf)
: line(1)
, guessing(0)
, input(inbuf)
, inputResponsible(true)
{
}
LexerInputState::LexerInputState(InputBuffer& inbuf)
: line(1)
, guessing(0)
, input(&inbuf)
, inputResponsible(false)
{
}
LexerInputState::LexerInputState(std::istream& in)
: line(1)
, guessing(0)
, input(new CharBuffer(in))
, inputResponsible(true)
{
}
LexerInputState::~LexerInputState()
{
if (inputResponsible)
delete input;
}
InputBuffer& LexerInputState::getInput()
{
return *input;
}
|