PageRenderTime 24ms CodeModel.GetById 19ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/bundles/plugins-trunk/XML/sidekick/css/parser/CharStream.java

#
Java | 110 lines | 15 code | 15 blank | 80 comment | 0 complexity | 7d60f505329ffb4e6839ee457b72e760 MD5 | raw file
  1/* Generated By:JavaCC: Do not edit this line. CharStream.java Version 4.0 */
  2package sidekick.css.parser;
  3
  4/**
  5 * This interface describes a character stream that maintains line and
  6 * column number positions of the characters.  It also has the capability
  7 * to backup the stream to some extent.  An implementation of this
  8 * interface is used in the TokenManager implementation generated by
  9 * JavaCCParser.
 10 *
 11 * All the methods except backup can be implemented in any fashion. backup
 12 * needs to be implemented correctly for the correct operation of the lexer.
 13 * Rest of the methods are all used to get information like line number,
 14 * column number and the String that constitutes a token and are not used
 15 * by the lexer. Hence their implementation won't affect the generated lexer's
 16 * operation.
 17 */
 18
 19public interface CharStream {
 20
 21  /**
 22   * Returns the next character from the selected input.  The method
 23   * of selecting the input is the responsibility of the class
 24   * implementing this interface.  Can throw any java.io.IOException.
 25   */
 26  char readChar() throws java.io.IOException;
 27
 28  /**
 29   * Returns the column position of the character last read.
 30   * @deprecated 
 31   * @see #getEndColumn
 32   */
 33  int getColumn();
 34
 35  /**
 36   * Returns the line number of the character last read.
 37   * @deprecated 
 38   * @see #getEndLine
 39   */
 40  int getLine();
 41
 42  /**
 43   * Returns the column number of the last character for current token (being
 44   * matched after the last call to BeginTOken).
 45   */
 46  int getEndColumn();
 47
 48  /**
 49   * Returns the line number of the last character for current token (being
 50   * matched after the last call to BeginTOken).
 51   */
 52  int getEndLine();
 53
 54  /**
 55   * Returns the column number of the first character for current token (being
 56   * matched after the last call to BeginTOken).
 57   */
 58  int getBeginColumn();
 59
 60  /**
 61   * Returns the line number of the first character for current token (being
 62   * matched after the last call to BeginTOken).
 63   */
 64  int getBeginLine();
 65
 66  /**
 67   * Backs up the input stream by amount steps. Lexer calls this method if it
 68   * had already read some characters, but could not use them to match a
 69   * (longer) token. So, they will be used again as the prefix of the next
 70   * token and it is the implemetation's responsibility to do this right.
 71   */
 72  void backup(int amount);
 73
 74  /**
 75   * 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   */
 79  char BeginToken() throws java.io.IOException;
 80
 81  /**
 82   * Returns a string made up of characters from the marked token beginning 
 83   * to the current buffer position. Implementations have the choice of returning
 84   * anything that they want to. For example, for efficiency, one might decide
 85   * to just return null, which is a valid implementation.
 86   */
 87  String GetImage();
 88
 89  /**
 90   * Returns an array of characters that make up the suffix of length 'len' for
 91   * the currently matched token. This is used to build up the matched string
 92   * for use in actions in the case of MORE. A simple and inefficient
 93   * implementation of this is as follows :
 94   *
 95   *   {
 96   *      String t = GetImage();
 97   *      return t.substring(t.length() - len, t.length()).toCharArray();
 98   *   }
 99   */
100  char[] GetSuffix(int len);
101
102  /**
103   * The lexer calls this function to indicate that it is done with the stream
104   * and hence implementations can free any resources held by this class.
105   * Again, the body of this function can be just empty and it will not
106   * affect the lexer's operation.
107   */
108  void Done();
109
110}