Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 5.0 */
  /* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
  /*
  
      ngs-feature  Features.
      Copyright (c) 2014-2015 National Marrow Donor Program (NMDP)
  
      This library is free software; you can redistribute it and/or modify it
      under the terms of the GNU Lesser General Public License as published
     by the Free Software Foundation; either version 3 of the License, or (at
     your option) any later version.
 
     This library is distributed in the hope that it will be useful, but WITHOUT
     ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
     License for more details.
 
     You should have received a copy of the GNU Lesser General Public License
     along with this library;  if not, write to the Free Software Foundation,
     Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
 
     > http://www.gnu.org/licenses/lgpl.html
 
 */
 package org.nmdp.ngs.feature.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) {  = i; }
   protected int getTabSize(int i) { return ; }
 
 
   protected void ExpandBuff(boolean wrapAround)
   {
     char[] newbuffer = new char[ + 2048];
     int newbufline[] = new int[ + 2048];
     int newbufcolumn[] = new int[ + 2048];
 
     try
     {
       if (wrapAround)
       {
         System.arraycopy(newbuffer, 0,  - );
         System.arraycopy(, 0, newbuffer - );
          = newbuffer;
 
         System.arraycopy(newbufline, 0,  - );
         System.arraycopy(, 0, newbufline - );
          = newbufline;
 
         System.arraycopy(newbufcolumn, 0,  - );
         System.arraycopy(, 0, newbufcolumn - );
          = newbufcolumn;
 
          = ( += ( - ));
       }
       else
       {
         System.arraycopy(newbuffer, 0,  - );
          = newbuffer;
 
         System.arraycopy(newbufline, 0,  - );
          = newbufline;
 
         System.arraycopy(newbufcolumn, 0,  - );
          = newbufcolumn;
 
          = ( -= );
       }
     }
     catch (Throwable t)
    {
      throw new Error(t.getMessage());
    }
     += 2048;
     = ;
     = 0;
  }
  protected void FillBuff() throws java.io.IOException
  {
    if ( == )
    {
      if ( == )
      {
        if ( > 2048)
        {
           =  = 0;
           = ;
        }
        else if ( < 0)
           =  = 0;
        else
          ExpandBuff(false);
      }
      else if ( > )
         = ;
      else if (( - ) < 2048)
        ExpandBuff(true);
      else
         = ;
    }
    int i;
    try {
      if ((i = .read( - )) == -1)
      {
        .close();
        throw new java.io.IOException();
      }
      else
         += i;
      return;
    }
    catch(java.io.IOException e) {
      --;
      backup(0);
      if ( == -1)
         = ;
      throw e;
    }
  }

Start.
  public char BeginToken() throws java.io.IOException
  {
     = -1;
    char c = readChar();
     = ;
    return c;
  }
  protected void UpdateLineColumn(char c)
  {
    ++;
    if ()
    {
       = false;
       += ( = 1);
    }
    else if ()
    {
       = false;
      if (c == '\n')
      {
         = true;
      }
      else
         += ( = 1);
    }
    switch (c)
    {
      case '\r' :
         = true;
        break;
      case '\n' :
         = true;
        break;
      case '\t' :
        --;
         += ( - ( % ));
        break;
      default :
        break;
    }
    [] = ;
    [] = ;
  }

Read a character.
  public char readChar() throws java.io.IOException
  {
    if ( > 0)
    {
      --;
      if (++ == )
         = 0;
      return [];
    }
    if (++ >= )
      FillBuff();
    char c = [];
    return c;
  }
  @Deprecated
  

Deprecated:
See also:
getEndColumn
  public int getColumn() {
    return [];
  }
  @Deprecated
  

Deprecated:
See also:
getEndLine
  public int getLine() {
    return [];
  }

  
Get token end column number.
  public int getEndColumn() {
    return [];
  }

  
Get token end line number.
  public int getEndLine() {
     return [];
  }

  
Get token beginning column number.
  public int getBeginColumn() {
    return [];
  }

  
Get token beginning line number.
  public int getBeginLine() {
    return [];
  }

Backup a number of characters.
  public void backup(int amount) {
     += amount;
    if (( -= amount) < 0)
       += ;
  }

  
Constructor.
  public SimpleCharStream(java.io.Reader dstreamint startline,
  int startcolumnint buffersize)
  {
     = dstream;
     = startline;
     = startcolumn - 1;
     =  = buffersize;
     = new char[buffersize];
     = new int[buffersize];
     = new int[buffersize];
  }

  
Constructor.
  public SimpleCharStream(java.io.Reader dstreamint startline,
                          int startcolumn)
  {
    this(dstreamstartlinestartcolumn, 4096);
  }

  
Constructor.
  public SimpleCharStream(java.io.Reader dstream)
  {
    this(dstream, 1, 1, 4096);
  }

  
Reinitialise.
  public void ReInit(java.io.Reader dstreamint startline,
  int startcolumnint buffersize)
  {
     = dstream;
     = startline;
     = startcolumn - 1;
    if ( == null || buffersize != .)
    {
       =  = buffersize;
       = new char[buffersize];
       = new int[buffersize];
       = new int[buffersize];
    }
     =  = false;
     =  =  = 0;
     = -1;
  }

  
Reinitialise.
  public void ReInit(java.io.Reader dstreamint startline,
                     int startcolumn)
  {
    ReInit(dstreamstartlinestartcolumn, 4096);
  }

  
Reinitialise.
  public void ReInit(java.io.Reader dstream)
  {
    ReInit(dstream, 1, 1, 4096);
  }
  
Constructor.
  public SimpleCharStream(java.io.InputStream dstreamString encodingint startline,
  int startcolumnint buffersizethrows java.io.UnsupportedEncodingException
  {
    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstreamencoding), startlinestartcolumnbuffersize);
  }

  
Constructor.
  public SimpleCharStream(java.io.InputStream dstreamint startline,
  int startcolumnint buffersize)
  {
    this(new java.io.InputStreamReader(dstream), startlinestartcolumnbuffersize);
  }

  
Constructor.
  public SimpleCharStream(java.io.InputStream dstreamString encodingint startline,
                          int startcolumnthrows java.io.UnsupportedEncodingException
  {
    this(dstreamencodingstartlinestartcolumn, 4096);
  }

  
Constructor.
  public SimpleCharStream(java.io.InputStream dstreamint startline,
                          int startcolumn)
  {
    this(dstreamstartlinestartcolumn, 4096);
  }

  
Constructor.
  {
    this(dstreamencoding, 1, 1, 4096);
  }

  
Constructor.
  public SimpleCharStream(java.io.InputStream dstream)
  {
    this(dstream, 1, 1, 4096);
  }

  
Reinitialise.
  public void ReInit(java.io.InputStream dstreamString encodingint startline,
                          int startcolumnint buffersizethrows java.io.UnsupportedEncodingException
  {
    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstreamencoding), startlinestartcolumnbuffersize);
  }

  
Reinitialise.
  public void ReInit(java.io.InputStream dstreamint startline,
                          int startcolumnint buffersize)
  {
    ReInit(new java.io.InputStreamReader(dstream), startlinestartcolumnbuffersize);
  }

  
Reinitialise.
  public void ReInit(java.io.InputStream dstreamString encodingthrows java.io.UnsupportedEncodingException
  {
    ReInit(dstreamencoding, 1, 1, 4096);
  }

  
Reinitialise.
  public void ReInit(java.io.InputStream dstream)
  {
    ReInit(dstream, 1, 1, 4096);
  }
  
Reinitialise.
  public void ReInit(java.io.InputStream dstreamString encodingint startline,
                     int startcolumnthrows java.io.UnsupportedEncodingException
  {
    ReInit(dstreamencodingstartlinestartcolumn, 4096);
  }
  
Reinitialise.
  public void ReInit(java.io.InputStream dstreamint startline,
                     int startcolumn)
  {
    ReInit(dstreamstartlinestartcolumn, 4096);
  }
  
Get token literal value.
  public String GetImage()
  {
    if ( >= )
      return new String( -  + 1);
    else
      return new String( - ) +
                            new String(, 0,  + 1);
  }

  
Get the suffix.
  public char[] GetSuffix(int len)
  {
    char[] ret = new char[len];
    if (( + 1) >= len)
      System.arraycopy( - len + 1, ret, 0, len);
    else
    {
      System.arraycopy( - (len -  - 1), ret, 0,
                                                        len -  - 1);
      System.arraycopy(, 0, retlen -  - 1,  + 1);
    }
    return ret;
  }

  
Reset buffer when finished.
  public void Done()
  {
     = null;
     = null;
     = null;
  }

  
Method to adjust line and column numbers for the start of a token.
  public void adjustBeginLineColumn(int newLineint newCol)
  {
    int start = ;
    int len;
    if ( >= )
    {
      len =  -  +  + 1;
    }
    else
    {
      len =  -  +  + 1 + ;
    }
    int i = 0, j = 0, k = 0;
    int nextColDiff = 0, columnDiff = 0;
    while (i < len && [j = start % ] == [k = ++start % ])
    {
      [j] = newLine;
      nextColDiff = columnDiff + [k] - [j];
      [j] = newCol + columnDiff;
      columnDiff = nextColDiff;
      i++;
    }
    if (i < len)
    {
      [j] = newLine++;
      [j] = newCol + columnDiff;
      while (i++ < len)
      {
        if ([j = start % ] != [++start % ])
          [j] = newLine++;
        else
          [j] = newLine;
      }
    }
     = [j];
     = [j];
  }
/* JavaCC - OriginalChecksum=5b246330761b6a8fb5c64c195a359295 (do not edit this line) */
New to GrepCode? Check out our FAQ X