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_UCodeESC_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 (with java-like unicode escape processing).
 
 
 public final class ASCII_UCodeESC_CharStream
 {
   public static final boolean staticFlag = false;
   static final int hexval(char cthrows java.io.IOException {
     switch(c)
     {
        case '0' :
           return 0;
        case '1' :
           return 1;
        case '2' :
           return 2;
        case '3' :
           return 3;
        case '4' :
           return 4;
        case '5' :
           return 5;
        case '6' :
           return 6;
        case '7' :
           return 7;
        case '8' :
           return 8;
        case '9' :
           return 9;
 
        case 'a' :
        case 'A' :
           return 10;
        case 'b' :
        case 'B' :
          return 11;
       case 'c' :
       case 'C' :
          return 12;
       case 'd' :
       case 'D' :
          return 13;
       case 'e' :
       case 'E' :
          return 14;
       case 'f' :
       case 'F' :
          return 15;
    }
    throw new java.io.IOException(); // Should never come here
  }
  public int bufpos = -1;
  int bufsize;
  int available;
  int tokenBegin;
  private int bufline[];
  private int bufcolumn[];
  private int column = 0;
  private int line = 1;
  private java.io.Reader inputStream;
  private boolean prevCharIsCR = false;
  private boolean prevCharIsLF = false;
  private char[] nextCharBuf;
  private char[] buffer;
  private int maxNextCharInd = 0;
  private int nextCharInd = -1;
  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
  {
     int i;
     if ( == 4096)
         =  = 0;
     try {
        if ((i = .read(,
                                            4096 - )) == -1)
        {
           .close();
           throw new java.io.IOException();
        }
        else
            += i;
        return;
     }
     catch(java.io.IOException e) {
        if ( != 0)
        {
           --;
           backup(0);
        }
        else
        {
           [] = ;
           [] = ;
        }
        throw e;
     }
  }
  private final char ReadByte() throws java.io.IOException
  {
     if (++ >= )
        FillBuff();
     return [];
  }
  public final char BeginToken() throws java.io.IOException
  {     
     if ( > 0)
     {
        --;
        return [ = ( ==  - 1) ? ( = 0)
                                                           : ++];
     }
      = 0;
      = -1;
     return readChar();
  }     
  private final void AdjustBuffSize()
  {
     if ( == )
     {
        if ( > 2048)
        {
            = 0;
            = ;
        }
        else
           ExpandBuff(false);
     }
     else if ( > )
         = ;
     else if (( - ) < 2048)
        ExpandBuff(true);
     else
         = ;
  }
  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 [( ==  - 1) ? ( = 0) : ++];
     }
     char c;
     if (++ == )
        AdjustBuffSize();
     if ((([] = c = (char)((char)0xff & ReadByte())) == '\\'))
     {
        UpdateLineColumn(c);
        int backSlashCnt = 1;
        for (;;) // Read all the backslashes
        {
           if (++ == )
              AdjustBuffSize();
           try
           {
              if (([] = c = (char)((char)0xff & ReadByte())) != '\\')
              {
                 UpdateLineColumn(c);
                 // found a non-backslash char.
                 if ((c == 'u') && ((backSlashCnt & 1) == 1))
                 {
                    if (-- < 0)
                        =  - 1;
                    break;
                 }
                 backup(backSlashCnt);
                 return '\\';
              }
           }
           catch(java.io.IOException e)
           {
              if (backSlashCnt > 1)
                 backup(backSlashCnt);
              return '\\';
           }
           UpdateLineColumn(c);
           backSlashCnt++;
        }
        // Here, we have seen an odd number of backslash's followed by a 'u'
        try
        {
           while ((c = (char)((char)0xff & ReadByte())) == 'u')
              ++;
           [] = c = (char)(hexval(c) << 12 |
                                       hexval((char)((char)0xff & ReadByte())) << 8 |
                                       hexval((char)((char)0xff & ReadByte())) << 4 |
                                       hexval((char)((char)0xff & ReadByte())));
            += 4;
        }
        catch(java.io.IOException e)
        {
           throw new Error("Invalid escape character at line " +  +
                                         " column " +  + ".");
        }
        if (backSlashCnt == 1)
           return c;
        else
        {
           backup(backSlashCnt - 1);
           return '\\';
        }
     }
     else
     {
        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)
        += ;
  }
                 int startlineint startcolumnint buffersize)
  {
     = dstream;
     = startline;
     = startcolumn - 1;
     =  = buffersize;
     = new char[buffersize];
     = new int[buffersize];
     = new int[buffersize];
     = new char[4096];
  }
                                        int startlineint startcolumn)
  {
     this(dstreamstartlinestartcolumn, 4096);
  }
  public void ReInit(java.io.Reader dstream,
                 int startlineint startcolumnint buffersize)
  {
     = dstream;
     = startline;
     = startcolumn - 1;
    if ( == null || buffersize != .)
    {
       =  = buffersize;
       = new char[buffersize];
       = new int[buffersize];
       = new int[buffersize];
       = new char[4096];
    }
     =  = false;
     =  =  = 0;
     =  = -1;
  }
  public void ReInit(java.io.Reader dstream,
                                        int startlineint startcolumn)
  {
     ReInit(dstreamstartlinestartcolumn, 4096);
  }
  public ASCII_UCodeESC_CharStream(java.io.InputStream dstreamint startline,
  int startcolumnint buffersize)
  {
     this(new java.io.InputStreamReader(dstream), startlinestartcolumn, 4096);
  }
  public ASCII_UCodeESC_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;
      = 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