]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/parser/SimpleCharStream.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / parser / SimpleCharStream.java
index a42918ebda595129e0ae0f09139781bd255aa66b..d504d68eb5f0102708e76cae323a75bdd8c49075 100644 (file)
-/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 5.0 */\r
-/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */\r
-package org.simantics.spreadsheet.graph.parser;\r
-\r
-/**\r
- * An implementation of interface CharStream, where the stream is assumed to\r
- * contain only ASCII characters (without unicode processing).\r
- */\r
-\r
-public class SimpleCharStream\r
-{\r
-/** Whether parser is static. */\r
-  public static final boolean staticFlag = false;\r
-  int bufsize;\r
-  int available;\r
-  int tokenBegin;\r
-/** Position in buffer. */\r
-  public int bufpos = -1;\r
-  protected int bufline[];\r
-  protected int bufcolumn[];\r
-\r
-  protected int column = 0;\r
-  protected int line = 1;\r
-\r
-  protected boolean prevCharIsCR = false;\r
-  protected boolean prevCharIsLF = false;\r
-\r
-  protected java.io.Reader inputStream;\r
-\r
-  protected char[] buffer;\r
-  protected int maxNextCharInd = 0;\r
-  protected int inBuf = 0;\r
-  protected int tabSize = 8;\r
-\r
-  protected void setTabSize(int i) { tabSize = i; }\r
-  protected int getTabSize(int i) { return tabSize; }\r
-\r
-\r
-  protected void ExpandBuff(boolean wrapAround)\r
-  {\r
-    char[] newbuffer = new char[bufsize + 2048];\r
-    int newbufline[] = new int[bufsize + 2048];\r
-    int newbufcolumn[] = new int[bufsize + 2048];\r
-\r
-    try\r
-    {\r
-      if (wrapAround)\r
-      {\r
-        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);\r
-        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);\r
-        buffer = newbuffer;\r
-\r
-        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);\r
-        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);\r
-        bufline = newbufline;\r
-\r
-        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);\r
-        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);\r
-        bufcolumn = newbufcolumn;\r
-\r
-        maxNextCharInd = (bufpos += (bufsize - tokenBegin));\r
-      }\r
-      else\r
-      {\r
-        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);\r
-        buffer = newbuffer;\r
-\r
-        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);\r
-        bufline = newbufline;\r
-\r
-        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);\r
-        bufcolumn = newbufcolumn;\r
-\r
-        maxNextCharInd = (bufpos -= tokenBegin);\r
-      }\r
-    }\r
-    catch (Throwable t)\r
-    {\r
-      throw new Error(t.getMessage());\r
-    }\r
-\r
-\r
-    bufsize += 2048;\r
-    available = bufsize;\r
-    tokenBegin = 0;\r
-  }\r
-\r
-  protected void FillBuff() throws java.io.IOException\r
-  {\r
-    if (maxNextCharInd == available)\r
-    {\r
-      if (available == bufsize)\r
-      {\r
-        if (tokenBegin > 2048)\r
-        {\r
-          bufpos = maxNextCharInd = 0;\r
-          available = tokenBegin;\r
-        }\r
-        else if (tokenBegin < 0)\r
-          bufpos = maxNextCharInd = 0;\r
-        else\r
-          ExpandBuff(false);\r
-      }\r
-      else if (available > tokenBegin)\r
-        available = bufsize;\r
-      else if ((tokenBegin - available) < 2048)\r
-        ExpandBuff(true);\r
-      else\r
-        available = tokenBegin;\r
-    }\r
-\r
-    int i;\r
-    try {\r
-      if ((i = inputStream.read(buffer, maxNextCharInd, available - maxNextCharInd)) == -1)\r
-      {\r
-        inputStream.close();\r
-        throw new java.io.IOException();\r
-      }\r
-      else\r
-        maxNextCharInd += i;\r
-      return;\r
-    }\r
-    catch(java.io.IOException e) {\r
-      --bufpos;\r
-      backup(0);\r
-      if (tokenBegin == -1)\r
-        tokenBegin = bufpos;\r
-      throw e;\r
-    }\r
-  }\r
-\r
-/** Start. */\r
-  public char BeginToken() throws java.io.IOException\r
-  {\r
-    tokenBegin = -1;\r
-    char c = readChar();\r
-    tokenBegin = bufpos;\r
-\r
-    return c;\r
-  }\r
-\r
-  protected void UpdateLineColumn(char c)\r
-  {\r
-    column++;\r
-\r
-    if (prevCharIsLF)\r
-    {\r
-      prevCharIsLF = false;\r
-      line += (column = 1);\r
-    }\r
-    else if (prevCharIsCR)\r
-    {\r
-      prevCharIsCR = false;\r
-      if (c == '\n')\r
-      {\r
-        prevCharIsLF = true;\r
-      }\r
-      else\r
-        line += (column = 1);\r
-    }\r
-\r
-    switch (c)\r
-    {\r
-      case '\r' :\r
-        prevCharIsCR = true;\r
-        break;\r
-      case '\n' :\r
-        prevCharIsLF = true;\r
-        break;\r
-      case '\t' :\r
-        column--;\r
-        column += (tabSize - (column % tabSize));\r
-        break;\r
-      default :\r
-        break;\r
-    }\r
-\r
-    bufline[bufpos] = line;\r
-    bufcolumn[bufpos] = column;\r
-  }\r
-\r
-/** Read a character. */\r
-  public char readChar() throws java.io.IOException\r
-  {\r
-    if (inBuf > 0)\r
-    {\r
-      --inBuf;\r
-\r
-      if (++bufpos == bufsize)\r
-        bufpos = 0;\r
-\r
-      return buffer[bufpos];\r
-    }\r
-\r
-    if (++bufpos >= maxNextCharInd)\r
-      FillBuff();\r
-\r
-    char c = buffer[bufpos];\r
-\r
-    UpdateLineColumn(c);\r
-    return c;\r
-  }\r
-\r
-  @Deprecated\r
-  /**\r
-   * @deprecated\r
-   * @see #getEndColumn\r
-   */\r
-\r
-  public int getColumn() {\r
-    return bufcolumn[bufpos];\r
-  }\r
-\r
-  @Deprecated\r
-  /**\r
-   * @deprecated\r
-   * @see #getEndLine\r
-   */\r
-\r
-  public int getLine() {\r
-    return bufline[bufpos];\r
-  }\r
-\r
-  /** Get token end column number. */\r
-  public int getEndColumn() {\r
-    return bufcolumn[bufpos];\r
-  }\r
-\r
-  /** Get token end line number. */\r
-  public int getEndLine() {\r
-     return bufline[bufpos];\r
-  }\r
-\r
-  /** Get token beginning column number. */\r
-  public int getBeginColumn() {\r
-    return bufcolumn[tokenBegin];\r
-  }\r
-\r
-  /** Get token beginning line number. */\r
-  public int getBeginLine() {\r
-    return bufline[tokenBegin];\r
-  }\r
-\r
-/** Backup a number of characters. */\r
-  public void backup(int amount) {\r
-\r
-    inBuf += amount;\r
-    if ((bufpos -= amount) < 0)\r
-      bufpos += bufsize;\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.Reader dstream, int startline,\r
-  int startcolumn, int buffersize)\r
-  {\r
-    inputStream = dstream;\r
-    line = startline;\r
-    column = startcolumn - 1;\r
-\r
-    available = bufsize = buffersize;\r
-    buffer = new char[buffersize];\r
-    bufline = new int[buffersize];\r
-    bufcolumn = new int[buffersize];\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.Reader dstream, int startline,\r
-                          int startcolumn)\r
-  {\r
-    this(dstream, startline, startcolumn, 4096);\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.Reader dstream)\r
-  {\r
-    this(dstream, 1, 1, 4096);\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.Reader dstream, int startline,\r
-  int startcolumn, int buffersize)\r
-  {\r
-    inputStream = dstream;\r
-    line = startline;\r
-    column = startcolumn - 1;\r
-\r
-    if (buffer == null || buffersize != buffer.length)\r
-    {\r
-      available = bufsize = buffersize;\r
-      buffer = new char[buffersize];\r
-      bufline = new int[buffersize];\r
-      bufcolumn = new int[buffersize];\r
-    }\r
-    prevCharIsLF = prevCharIsCR = false;\r
-    tokenBegin = inBuf = maxNextCharInd = 0;\r
-    bufpos = -1;\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.Reader dstream, int startline,\r
-                     int startcolumn)\r
-  {\r
-    ReInit(dstream, startline, startcolumn, 4096);\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.Reader dstream)\r
-  {\r
-    ReInit(dstream, 1, 1, 4096);\r
-  }\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,\r
-  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException\r
-  {\r
-    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.InputStream dstream, int startline,\r
-  int startcolumn, int buffersize)\r
-  {\r
-    this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,\r
-                          int startcolumn) throws java.io.UnsupportedEncodingException\r
-  {\r
-    this(dstream, encoding, startline, startcolumn, 4096);\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.InputStream dstream, int startline,\r
-                          int startcolumn)\r
-  {\r
-    this(dstream, startline, startcolumn, 4096);\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException\r
-  {\r
-    this(dstream, encoding, 1, 1, 4096);\r
-  }\r
-\r
-  /** Constructor. */\r
-  public SimpleCharStream(java.io.InputStream dstream)\r
-  {\r
-    this(dstream, 1, 1, 4096);\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,\r
-                          int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException\r
-  {\r
-    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.InputStream dstream, int startline,\r
-                          int startcolumn, int buffersize)\r
-  {\r
-    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException\r
-  {\r
-    ReInit(dstream, encoding, 1, 1, 4096);\r
-  }\r
-\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.InputStream dstream)\r
-  {\r
-    ReInit(dstream, 1, 1, 4096);\r
-  }\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,\r
-                     int startcolumn) throws java.io.UnsupportedEncodingException\r
-  {\r
-    ReInit(dstream, encoding, startline, startcolumn, 4096);\r
-  }\r
-  /** Reinitialise. */\r
-  public void ReInit(java.io.InputStream dstream, int startline,\r
-                     int startcolumn)\r
-  {\r
-    ReInit(dstream, startline, startcolumn, 4096);\r
-  }\r
-  /** Get token literal value. */\r
-  public String GetImage()\r
-  {\r
-    if (bufpos >= tokenBegin)\r
-      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);\r
-    else\r
-      return new String(buffer, tokenBegin, bufsize - tokenBegin) +\r
-                            new String(buffer, 0, bufpos + 1);\r
-  }\r
-\r
-  /** Get the suffix. */\r
-  public char[] GetSuffix(int len)\r
-  {\r
-    char[] ret = new char[len];\r
-\r
-    if ((bufpos + 1) >= len)\r
-      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);\r
-    else\r
-    {\r
-      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,\r
-                                                        len - bufpos - 1);\r
-      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);\r
-    }\r
-\r
-    return ret;\r
-  }\r
-\r
-  /** Reset buffer when finished. */\r
-  public void Done()\r
-  {\r
-    buffer = null;\r
-    bufline = null;\r
-    bufcolumn = null;\r
-  }\r
-\r
-  /**\r
-   * Method to adjust line and column numbers for the start of a token.\r
-   */\r
-  public void adjustBeginLineColumn(int newLine, int newCol)\r
-  {\r
-    int start = tokenBegin;\r
-    int len;\r
-\r
-    if (bufpos >= tokenBegin)\r
-    {\r
-      len = bufpos - tokenBegin + inBuf + 1;\r
-    }\r
-    else\r
-    {\r
-      len = bufsize - tokenBegin + bufpos + 1 + inBuf;\r
-    }\r
-\r
-    int i = 0, j = 0, k = 0;\r
-    int nextColDiff = 0, columnDiff = 0;\r
-\r
-    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])\r
-    {\r
-      bufline[j] = newLine;\r
-      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];\r
-      bufcolumn[j] = newCol + columnDiff;\r
-      columnDiff = nextColDiff;\r
-      i++;\r
-    }\r
-\r
-    if (i < len)\r
-    {\r
-      bufline[j] = newLine++;\r
-      bufcolumn[j] = newCol + columnDiff;\r
-\r
-      while (i++ < len)\r
-      {\r
-        if (bufline[j = start % bufsize] != bufline[++start % bufsize])\r
-          bufline[j] = newLine++;\r
-        else\r
-          bufline[j] = newLine;\r
-      }\r
-    }\r
-\r
-    line = bufline[j];\r
-    column = bufcolumn[j];\r
-  }\r
-\r
-}\r
-/* JavaCC - OriginalChecksum=ba0a2636eda0843482e36cc3e9220588 (do not edit this line) */\r
+/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 5.0 */
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
+package org.simantics.spreadsheet.graph.parser;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (without unicode processing).
+ */
+
+public class SimpleCharStream
+{
+/** Whether parser is static. */
+  public static final boolean staticFlag = false;
+  int bufsize;
+  int available;
+  int tokenBegin;
+/** Position in buffer. */
+  public int bufpos = -1;
+  protected int bufline[];
+  protected int bufcolumn[];
+
+  protected int column = 0;
+  protected int line = 1;
+
+  protected boolean prevCharIsCR = false;
+  protected boolean prevCharIsLF = false;
+
+  protected java.io.Reader inputStream;
+
+  protected char[] buffer;
+  protected int maxNextCharInd = 0;
+  protected int inBuf = 0;
+  protected int tabSize = 8;
+
+  protected void setTabSize(int i) { tabSize = i; }
+  protected int getTabSize(int i) { return tabSize; }
+
+
+  protected void ExpandBuff(boolean wrapAround)
+  {
+    char[] newbuffer = new char[bufsize + 2048];
+    int newbufline[] = new int[bufsize + 2048];
+    int newbufcolumn[] = new int[bufsize + 2048];
+
+    try
+    {
+      if (wrapAround)
+      {
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);
+        buffer = newbuffer;
+
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+        bufline = newbufline;
+
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+        bufcolumn = newbufcolumn;
+
+        maxNextCharInd = (bufpos += (bufsize - tokenBegin));
+      }
+      else
+      {
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+        buffer = newbuffer;
+
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+        bufline = newbufline;
+
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+        bufcolumn = newbufcolumn;
+
+        maxNextCharInd = (bufpos -= tokenBegin);
+      }
+    }
+    catch (Throwable t)
+    {
+      throw new Error(t.getMessage());
+    }
+
+
+    bufsize += 2048;
+    available = bufsize;
+    tokenBegin = 0;
+  }
+
+  protected void FillBuff() throws java.io.IOException
+  {
+    if (maxNextCharInd == available)
+    {
+      if (available == bufsize)
+      {
+        if (tokenBegin > 2048)
+        {
+          bufpos = maxNextCharInd = 0;
+          available = tokenBegin;
+        }
+        else if (tokenBegin < 0)
+          bufpos = maxNextCharInd = 0;
+        else
+          ExpandBuff(false);
+      }
+      else if (available > tokenBegin)
+        available = bufsize;
+      else if ((tokenBegin - available) < 2048)
+        ExpandBuff(true);
+      else
+        available = tokenBegin;
+    }
+
+    int i;
+    try {
+      if ((i = inputStream.read(buffer, maxNextCharInd, available - maxNextCharInd)) == -1)
+      {
+        inputStream.close();
+        throw new java.io.IOException();
+      }
+      else
+        maxNextCharInd += i;
+      return;
+    }
+    catch(java.io.IOException e) {
+      --bufpos;
+      backup(0);
+      if (tokenBegin == -1)
+        tokenBegin = bufpos;
+      throw e;
+    }
+  }
+
+/** Start. */
+  public char BeginToken() throws java.io.IOException
+  {
+    tokenBegin = -1;
+    char c = readChar();
+    tokenBegin = bufpos;
+
+    return c;
+  }
+
+  protected void UpdateLineColumn(char c)
+  {
+    column++;
+
+    if (prevCharIsLF)
+    {
+      prevCharIsLF = false;
+      line += (column = 1);
+    }
+    else if (prevCharIsCR)
+    {
+      prevCharIsCR = false;
+      if (c == '\n')
+      {
+        prevCharIsLF = true;
+      }
+      else
+        line += (column = 1);
+    }
+
+    switch (c)
+    {
+      case '\r' :
+        prevCharIsCR = true;
+        break;
+      case '\n' :
+        prevCharIsLF = true;
+        break;
+      case '\t' :
+        column--;
+        column += (tabSize - (column % tabSize));
+        break;
+      default :
+        break;
+    }
+
+    bufline[bufpos] = line;
+    bufcolumn[bufpos] = column;
+  }
+
+/** Read a character. */
+  public char readChar() throws java.io.IOException
+  {
+    if (inBuf > 0)
+    {
+      --inBuf;
+
+      if (++bufpos == bufsize)
+        bufpos = 0;
+
+      return buffer[bufpos];
+    }
+
+    if (++bufpos >= maxNextCharInd)
+      FillBuff();
+
+    char c = buffer[bufpos];
+
+    UpdateLineColumn(c);
+    return c;
+  }
+
+  @Deprecated
+  /**
+   * @deprecated
+   * @see #getEndColumn
+   */
+
+  public int getColumn() {
+    return bufcolumn[bufpos];
+  }
+
+  @Deprecated
+  /**
+   * @deprecated
+   * @see #getEndLine
+   */
+
+  public int getLine() {
+    return bufline[bufpos];
+  }
+
+  /** Get token end column number. */
+  public int getEndColumn() {
+    return bufcolumn[bufpos];
+  }
+
+  /** Get token end line number. */
+  public int getEndLine() {
+     return bufline[bufpos];
+  }
+
+  /** Get token beginning column number. */
+  public int getBeginColumn() {
+    return bufcolumn[tokenBegin];
+  }
+
+  /** Get token beginning line number. */
+  public int getBeginLine() {
+    return bufline[tokenBegin];
+  }
+
+/** Backup a number of characters. */
+  public void backup(int amount) {
+
+    inBuf += amount;
+    if ((bufpos -= amount) < 0)
+      bufpos += bufsize;
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.Reader dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    inputStream = dstream;
+    line = startline;
+    column = startcolumn - 1;
+
+    available = bufsize = buffersize;
+    buffer = new char[buffersize];
+    bufline = new int[buffersize];
+    bufcolumn = new int[buffersize];
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.Reader dstream, int startline,
+                          int startcolumn)
+  {
+    this(dstream, startline, startcolumn, 4096);
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.Reader dstream)
+  {
+    this(dstream, 1, 1, 4096);
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    inputStream = dstream;
+    line = startline;
+    column = startcolumn - 1;
+
+    if (buffer == null || buffersize != buffer.length)
+    {
+      available = bufsize = buffersize;
+      buffer = new char[buffersize];
+      bufline = new int[buffersize];
+      bufcolumn = new int[buffersize];
+    }
+    prevCharIsLF = prevCharIsCR = false;
+    tokenBegin = inBuf = maxNextCharInd = 0;
+    bufpos = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader dstream, int startline,
+                     int startcolumn)
+  {
+    ReInit(dstream, startline, startcolumn, 4096);
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader dstream)
+  {
+    ReInit(dstream, 1, 1, 4096);
+  }
+  /** Constructor. */
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.InputStream dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+                          int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+    this(dstream, encoding, startline, startcolumn, 4096);
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.InputStream dstream, int startline,
+                          int startcolumn)
+  {
+    this(dstream, startline, startcolumn, 4096);
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+    this(dstream, encoding, 1, 1, 4096);
+  }
+
+  /** Constructor. */
+  public SimpleCharStream(java.io.InputStream dstream)
+  {
+    this(dstream, 1, 1, 4096);
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                          int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, int startline,
+                          int startcolumn, int buffersize)
+  {
+    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(dstream, encoding, 1, 1, 4096);
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream)
+  {
+    ReInit(dstream, 1, 1, 4096);
+  }
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                     int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(dstream, encoding, startline, startcolumn, 4096);
+  }
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, int startline,
+                     int startcolumn)
+  {
+    ReInit(dstream, startline, startcolumn, 4096);
+  }
+  /** Get token literal value. */
+  public String GetImage()
+  {
+    if (bufpos >= tokenBegin)
+      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+    else
+      return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+                            new String(buffer, 0, bufpos + 1);
+  }
+
+  /** Get the suffix. */
+  public char[] GetSuffix(int len)
+  {
+    char[] ret = new char[len];
+
+    if ((bufpos + 1) >= len)
+      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+    else
+    {
+      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+                                                        len - bufpos - 1);
+      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+    }
+
+    return ret;
+  }
+
+  /** Reset buffer when finished. */
+  public void Done()
+  {
+    buffer = null;
+    bufline = null;
+    bufcolumn = null;
+  }
+
+  /**
+   * Method to adjust line and column numbers for the start of a token.
+   */
+  public void adjustBeginLineColumn(int newLine, int newCol)
+  {
+    int start = tokenBegin;
+    int len;
+
+    if (bufpos >= tokenBegin)
+    {
+      len = bufpos - tokenBegin + inBuf + 1;
+    }
+    else
+    {
+      len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+    }
+
+    int i = 0, j = 0, k = 0;
+    int nextColDiff = 0, columnDiff = 0;
+
+    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
+    {
+      bufline[j] = newLine;
+      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+      bufcolumn[j] = newCol + columnDiff;
+      columnDiff = nextColDiff;
+      i++;
+    }
+
+    if (i < len)
+    {
+      bufline[j] = newLine++;
+      bufcolumn[j] = newCol + columnDiff;
+
+      while (i++ < len)
+      {
+        if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+          bufline[j] = newLine++;
+        else
+          bufline[j] = newLine;
+      }
+    }
+
+    line = bufline[j];
+    column = bufcolumn[j];
+  }
+
+}
+/* JavaCC - OriginalChecksum=ba0a2636eda0843482e36cc3e9220588 (do not edit this line) */