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

编译器/解释器

开发平台:

Others

  1. #ifndef INC_LexerSharedInputState_hpp__
  2. #define INC_LexerSharedInputState_hpp__
  3. #include "antlr/config.hpp"
  4. #include "antlr/InputBuffer.hpp"
  5. #include "antlr/RefCount.hpp"
  6. #include <string>
  7. ANTLR_BEGIN_NAMESPACE(antlr)
  8. /** This object contains the data associated with an
  9.  *  input stream of characters.  Multiple lexers
  10.  *  share a single LexerSharedInputState to lex
  11.  *  the same input stream.
  12.  */
  13. class LexerInputState {
  14. public:
  15. LexerInputState(InputBuffer* inbuf);
  16. LexerInputState(InputBuffer& inbuf);
  17. LexerInputState(ANTLR_USE_NAMESPACE(std)istream& in);
  18. ~LexerInputState();
  19. int column;
  20. int line;
  21. int guessing;
  22. /** What file (if known) caused the problem? */
  23. ANTLR_USE_NAMESPACE(std)string filename;
  24. InputBuffer& getInput();
  25. private:
  26. InputBuffer* input;
  27. bool inputResponsible;
  28. // we don't want these:
  29. LexerInputState(const LexerInputState&);
  30. LexerInputState& operator=(const LexerInputState&);
  31. };
  32. typedef RefCount<LexerInputState> LexerSharedInputState;
  33. ANTLR_END_NAMESPACE
  34. #endif //INC_LexerSharedInputState_hpp__