TokenMgrError.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:5k
源码类别:

搜索引擎

开发平台:

C#

  1. /*
  2.  * Copyright 2004 The Apache Software Foundation
  3.  * 
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  * 
  8.  * http://www.apache.org/licenses/LICENSE-2.0
  9.  * 
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  */
  16. /* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 3.0 */
  17. using System;
  18. namespace Lucene.Net.QueryParsers
  19. {
  20. [Serializable]
  21. public class TokenMgrError:System.ApplicationException
  22. {
  23. /// <summary> You can also modify the body of this method to customize your error messages.
  24. /// For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not
  25. /// of end-users concern, so you can return something like : 
  26. /// 
  27. /// "Internal Error : Please file a bug report .... "
  28. /// 
  29. /// from this method for such cases in the release version of your parser.
  30. /// </summary>
  31. public override System.String Message
  32. {
  33. get
  34. {
  35. return base.Message;
  36. }
  37. }
  38. /*
  39. * Ordinals for various reasons why an Error of this type can be thrown.
  40. */
  41. /// <summary> Lexical error occured.</summary>
  42. internal const int LEXICAL_ERROR = 0;
  43. /// <summary> An attempt wass made to create a second instance of a static token manager.</summary>
  44. internal const int STATIC_LEXER_ERROR = 1;
  45. /// <summary> Tried to change to an invalid lexical state.</summary>
  46. internal const int INVALID_LEXICAL_STATE = 2;
  47. /// <summary> Detected (and bailed out of) an infinite loop in the token manager.</summary>
  48. internal const int LOOP_DETECTED = 3;
  49. /// <summary> Indicates the reason why the exception is thrown. It will have
  50. /// one of the above 4 values.
  51. /// </summary>
  52. internal int errorCode;
  53. /// <summary> Replaces unprintable characters by their espaced (or unicode escaped)
  54. /// equivalents in the given string
  55. /// </summary>
  56. protected internal static System.String addEscapes(System.String str)
  57. {
  58. System.Text.StringBuilder retval = new System.Text.StringBuilder();
  59. char ch;
  60. for (int i = 0; i < str.Length; i++)
  61. {
  62. switch (str[i])
  63. {
  64. case (char) (0): 
  65. continue;
  66. case 'b': 
  67. retval.Append("\b");
  68. continue;
  69. case 't': 
  70. retval.Append("\t");
  71. continue;
  72. case 'n': 
  73. retval.Append("\n");
  74. continue;
  75. case 'f': 
  76. retval.Append("\f");
  77. continue;
  78. case 'r': 
  79. retval.Append("\r");
  80. continue;
  81. case '"': 
  82. retval.Append("\"");
  83. continue;
  84. case ''': 
  85. retval.Append("\'");
  86. continue;
  87. case '\': 
  88. retval.Append("\\");
  89. continue;
  90. default: 
  91. if ((ch = str[i]) < 0x20 || ch > 0x7e)
  92. {
  93. System.String s = "0000" + System.Convert.ToString(ch, 16);
  94. retval.Append("\u" + s.Substring(s.Length - 4, (s.Length) - (s.Length - 4)));
  95. }
  96. else
  97. {
  98. retval.Append(ch);
  99. }
  100. continue;
  101. }
  102. }
  103. return retval.ToString();
  104. }
  105. /// <summary> Returns a detailed message for the Error when it is thrown by the
  106. /// token manager to indicate a lexical error.
  107. /// Parameters : 
  108. /// EOFSeen     : indicates if EOF caused the lexicl error
  109. /// curLexState : lexical state in which this error occured
  110. /// errorLine   : line number when the error occured
  111. /// errorColumn : column number when the error occured
  112. /// errorAfter  : prefix that was seen before this error occured
  113. /// curchar     : the offending character
  114. /// Note: You can customize the lexical error message by modifying this method.
  115. /// </summary>
  116. protected internal static System.String LexicalError(bool EOFSeen, int lexState, int errorLine, int errorColumn, System.String errorAfter, char curChar)
  117. {
  118. return ("Lexical error at line " + errorLine + ", column " + errorColumn + ".  Encountered: " + (EOFSeen?"<EOF> ":(""" + addEscapes(System.Convert.ToString(curChar)) + """) + " (" + (int) curChar + "), ") + "after : "" + addEscapes(errorAfter) + """);
  119. }
  120. /*
  121. * Constructors of various flavors follow.
  122. */
  123. public TokenMgrError()
  124. {
  125. }
  126. public TokenMgrError(System.String message, int reason):base(message)
  127. {
  128. errorCode = reason;
  129. }
  130. public TokenMgrError(bool EOFSeen, int lexState, int errorLine, int errorColumn, System.String errorAfter, char curChar, int reason):this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason)
  131. {
  132. }
  133. }
  134. }