LexerSharedInputState.cpp
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

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