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

编译器/解释器

开发平台:

Others

  1. #ifndef INC_MismatchedCharException_hpp__
  2. #define INC_MismatchedCharException_hpp__
  3. /**
  4.  * <b>SOFTWARE RIGHTS</b>
  5.  * <p>
  6.  * ANTLR 2.6.0 MageLang Insitute, 1999
  7.  * <p>
  8.  * We reserve no legal rights to the ANTLR--it is fully in the
  9.  * public domain. An individual or company may do whatever
  10.  * they wish with source code distributed with ANTLR or the
  11.  * code generated by ANTLR, including the incorporation of
  12.  * ANTLR, or its output, into commerical software.
  13.  * <p>
  14.  * We encourage users to develop software with ANTLR. However,
  15.  * we do ask that credit is given to us for developing
  16.  * ANTLR. By "credit", we mean that if you use ANTLR or
  17.  * incorporate any source code into one of your programs
  18.  * (commercial product, research project, or otherwise) that
  19.  * you acknowledge this fact somewhere in the documentation,
  20.  * research report, etc... If you like ANTLR and have
  21.  * developed a nice tool with the output, please mention that
  22.  * you developed it using ANTLR. In addition, we ask that the
  23.  * headers remain intact in our source code. As long as these
  24.  * guidelines are kept, we expect to continue enhancing this
  25.  * system and expect to make other tools available as they are
  26.  * completed.
  27.  * <p>
  28.  * The ANTLR gang:
  29.  * @version ANTLR 2.6.0 MageLang Insitute, 1999
  30.  * @author Terence Parr, <a href=http://www.MageLang.com>MageLang Institute</a>
  31.  * @author <br>John Lilley, <a href=http://www.Empathy.com>Empathy Software</a>
  32.  * @author <br><a href="mailto:pete@yamuna.demon.co.uk">Pete Wells</a>
  33.  */
  34. #include "antlr/config.hpp"
  35. #include "antlr/RecognitionException.hpp"
  36. #include "antlr/BitSet.hpp"
  37. #include "antlr/CharScanner.hpp"
  38. ANTLR_BEGIN_NAMESPACE(antlr)
  39. class MismatchedCharException : public RecognitionException {
  40. public:
  41. // Types of chars
  42. #ifndef NO_STATIC_CONSTS
  43. static const int CHAR = 1;
  44. static const int NOT_CHAR = 2;
  45. static const int RANGE = 3;
  46. static const int NOT_RANGE = 4;
  47. static const int SET = 5;
  48. static const int NOT_SET = 6;
  49. #else
  50. enum {
  51. CHAR = 1,
  52. NOT_CHAR = 2,
  53. RANGE = 3,
  54. NOT_RANGE = 4,
  55. SET = 5,
  56. NOT_SET = 6
  57. };
  58. #endif
  59. public:
  60. // One of the above
  61. int mismatchType;
  62. // what was found on the input stream
  63. int foundChar;
  64. // For CHAR/NOT_CHAR and RANGE/NOT_RANGE
  65. int expecting;
  66. // For RANGE/NOT_RANGE (expecting is lower bound of range)
  67. int upper;
  68. // For SET/NOT_SET
  69. BitSet set;
  70. protected:
  71. // who knows...they may want to ask scanner questions
  72. CharScanner* scanner;
  73. public:
  74. MismatchedCharException();
  75. // Expected range / not range
  76. MismatchedCharException(
  77. int c,
  78. int lower,
  79. int upper_,
  80. bool matchNot,
  81. CharScanner* scanner_
  82. );
  83. // Expected token / not token
  84. MismatchedCharException(
  85. int c,
  86. int expecting_,
  87. bool matchNot,
  88. CharScanner* scanner_
  89. );
  90. // Expected BitSet / not BitSet
  91. MismatchedCharException(
  92. int c,
  93. BitSet set_,
  94. bool matchNot,
  95. CharScanner* scanner_
  96. );
  97. MismatchedCharException(
  98. const ANTLR_USE_NAMESPACE(std)string& s,
  99. int line
  100. );
  101. /**
  102.  * Returns the error message that happened on the line/col given.
  103.  * Copied from toString().
  104.  */
  105. ANTLR_USE_NAMESPACE(std)string getMessage() const;
  106. };
  107. ANTLR_END_NAMESPACE
  108. #endif //INC_MismatchedCharException_hpp__