Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  *
  *
  * This file incorporates work covered by the following copyright and
  * permission notice:
  *
  * Copyright 2004 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 /* Generated By:JavaCC: Do not edit this line. ASCII_CharStream.java Version 0.7pre6 */
 
 package org.apache.taglibs.standard.extra.spath;

An implementation of interface CharStream, where the stream is assumed to contain only ASCII characters (without unicode processing).
 
 
 public final class ASCII_CharStream
 {
   public static final boolean staticFlag = false;
   int bufsize;
   int available;
   int tokenBegin;
   public int bufpos = -1;
   private int bufline[];
   private int bufcolumn[];
 
   private int column = 0;
   private int line = 1;
 
   private boolean prevCharIsCR = false;
   private boolean prevCharIsLF = false;
 
   private java.io.Reader inputStream;
 
   private char[] buffer;
   private int maxNextCharInd = 0;
   private int inBuf = 0;
 
   private final 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;
  }
  private final 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;
     }
  }
  public final char BeginToken() throws java.io.IOException
  {
      = -1;
     char c = readChar();
      = ;
     return c;
  }
  private final 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' :
           --;
            += (8 - ( & 07));
           break;
        default :
           break;
     }
     [] = ;
     [] = ;
  }
  public final char readChar() throws java.io.IOException
  {
     if ( > 0)
     {
        --;
        return (char)((char)0xff & [( ==  - 1) ? ( = 0) : ++]);
     }
     if (++ >= )
        FillBuff();
     char c = (char)((char)0xff & []);
     UpdateLineColumn(c);
     return (c);
  }

  

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

  

Deprecated:
See also:
getEndLine()
  public final int getLine() {
     return [];
  }
  public final int getEndColumn() {
     return [];
  }
  public final int getEndLine() {
     return [];
  }
  public final int getBeginColumn() {
     return [];
  }
  public final int getBeginLine() {
     return [];
  }
  public final void backup(int amount) {
     += amount;
    if (( -= amount) < 0)
        += ;
  }
  public ASCII_CharStream(java.io.Reader dstreamint startline,
  int startcolumnint buffersize)
  {
     = dstream;
     = startline;
     = startcolumn - 1;
     =  = buffersize;
     = new char[buffersize];
     = new int[buffersize];
     = new int[buffersize];
  }
  public ASCII_CharStream(java.io.Reader dstreamint startline,
                                                           int startcolumn)
  {
     this(dstreamstartlinestartcolumn, 4096);
  }
  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;
  }
  public void ReInit(java.io.Reader dstreamint startline,
                                                           int startcolumn)
  {
     ReInit(dstreamstartlinestartcolumn, 4096);
  }
  public ASCII_CharStream(java.io.InputStream dstreamint startline,
  int startcolumnint buffersize)
  {
     this(new java.io.InputStreamReader(dstream), startlinestartcolumn, 4096);
  }
  public ASCII_CharStream(java.io.InputStream dstreamint startline,
                                                           int startcolumn)
  {
     this(dstreamstartlinestartcolumn, 4096);
  }
  public void ReInit(java.io.InputStream dstreamint startline,
  int startcolumnint buffersize)
  {
     ReInit(new java.io.InputStreamReader(dstream), startlinestartcolumn, 4096);
  }
  public void ReInit(java.io.InputStream dstreamint startline,
                                                           int startcolumn)
  {
     ReInit(dstreamstartlinestartcolumn, 4096);
  }
  public final String GetImage()
  {
     if ( >= )
        return new String( -  + 1);
     else
        return new String( - ) +
                              new String(, 0,  + 1);
  }
  public final 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;
  }
  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];
  }
New to GrepCode? Check out our FAQ X