CharStream.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. CharStream.java Version 3.0 */
  17. using System;
  18. namespace Lucene.Net.QueryParsers
  19. {
  20. /// <summary> This interface describes a character stream that maintains line and
  21. /// column number positions of the characters.  It also has the capability
  22. /// to backup the stream to some extent.  An implementation of this
  23. /// interface is used in the TokenManager implementation generated by
  24. /// JavaCCParser.
  25. /// 
  26. /// All the methods except backup can be implemented in any fashion. backup
  27. /// needs to be implemented correctly for the correct operation of the lexer.
  28. /// Rest of the methods are all used to get information like line number,
  29. /// column number and the String that constitutes a token and are not used
  30. /// by the lexer. Hence their implementation won't affect the generated lexer's
  31. /// operation.
  32. /// </summary>
  33. public interface CharStream
  34. {
  35. /// <summary> Returns the next character from the selected input.  The method
  36. /// of selecting the input is the responsibility of the class
  37. /// implementing this interface.  Can throw any java.io.IOException.
  38. /// </summary>
  39. char ReadChar();
  40. /// <summary> Returns the column position of the character last read.</summary>
  41. /// <deprecated> 
  42. /// </deprecated>
  43. /// <seealso cref="getEndColumn">
  44. /// </seealso>
  45. int GetColumn();
  46. /// <summary> Returns the line number of the character last read.</summary>
  47. /// <deprecated> 
  48. /// </deprecated>
  49. /// <seealso cref="getEndLine">
  50. /// </seealso>
  51. int GetLine();
  52.     
  53. /// <summary> Returns the column number of the last character for current token (being
  54. /// matched after the last call to BeginTOken).
  55. /// </summary>
  56. int GetEndColumn();
  57. /// <summary> Returns the line number of the last character for current token (being
  58. /// matched after the last call to BeginTOken).
  59. /// </summary>
  60. int GetEndLine();
  61. /// <summary> Returns the column number of the first character for current token (being
  62. /// matched after the last call to BeginTOken).
  63. /// </summary>
  64. int GetBeginColumn();
  65. /// <summary> Returns the line number of the first character for current token (being
  66. /// matched after the last call to BeginTOken).
  67. /// </summary>
  68. int GetBeginLine();
  69. /// <summary> Backs up the input stream by amount steps. Lexer calls this method if it
  70. /// had already read some characters, but could not use them to match a
  71. /// (longer) token. So, they will be used again as the prefix of the next
  72. /// token and it is the implemetation's responsibility to do this right.
  73. /// </summary>
  74. void  Backup(int amount);
  75. /// <summary> Returns the next character that marks the beginning of the next token.
  76. /// All characters must remain in the buffer between two successive calls
  77. /// to this method to implement backup correctly.
  78. /// </summary>
  79. char BeginToken();
  80. /// <summary> Returns a string made up of characters from the marked token beginning 
  81. /// to the current buffer position. Implementations have the choice of returning
  82. /// anything that they want to. For example, for efficiency, one might decide
  83. /// to just return null, which is a valid implementation.
  84. /// </summary>
  85. System.String GetImage();
  86. /// <summary> Returns an array of characters that make up the suffix of length 'len' for
  87. /// the currently matched token. This is used to build up the matched string
  88. /// for use in actions in the case of MORE. A simple and inefficient
  89. /// implementation of this is as follows :
  90. /// 
  91. /// {
  92. /// String t = GetImage();
  93. /// return t.substring(t.length() - len, t.length()).toCharArray();
  94. /// }
  95. /// </summary>
  96. char[] GetSuffix(int len);
  97. /// <summary> The lexer calls this function to indicate that it is done with the stream
  98. /// and hence implementations can free any resources held by this class.
  99. /// Again, the body of this function can be just empty and it will not
  100. /// affect the lexer's operation.
  101. /// </summary>
  102. void  Done();
  103. }
  104. }