net.sourceforge.pmd.ast
Class JavaCharStream

java.lang.Object
  extended by net.sourceforge.pmd.ast.JavaCharStream
All Implemented Interfaces:
CharStream

public class JavaCharStream
extends java.lang.Object
implements CharStream

An implementation of interface CharStream, where the stream is assumed to contain only ASCII characters (with java-like unicode escape processing).


Field Summary
protected  int[] bufcolumn
           
protected  char[] buffer
           
protected  int[] bufline
           
 int bufpos
          Position in buffer.
protected  int column
           
protected  int inBuf
           
protected  java.io.Reader inputStream
           
protected  int line
           
protected  int maxNextCharInd
           
protected  char[] nextCharBuf
           
protected  int nextCharInd
           
protected  boolean prevCharIsCR
           
protected  boolean prevCharIsLF
           
static boolean staticFlag
          Whether parser is static.
protected  int tabSize
           
 
Constructor Summary
JavaCharStream(java.io.InputStream dstream)
          Constructor.
JavaCharStream(java.io.InputStream dstream, int startline, int startcolumn)
          Constructor.
JavaCharStream(java.io.InputStream dstream, int startline, int startcolumn, int buffersize)
          Constructor.
JavaCharStream(java.io.InputStream dstream, java.lang.String encoding)
          Constructor.
JavaCharStream(java.io.InputStream dstream, java.lang.String encoding, int startline, int startcolumn)
          Constructor.
JavaCharStream(java.io.InputStream dstream, java.lang.String encoding, int startline, int startcolumn, int buffersize)
          Constructor.
JavaCharStream(java.io.Reader dstream)
          Constructor.
JavaCharStream(java.io.Reader dstream, int startline, int startcolumn)
          Constructor.
JavaCharStream(java.io.Reader dstream, int startline, int startcolumn, int buffersize)
          Constructor.
 
Method Summary
 void adjustBeginLineColumn(int newLine, int newCol)
          Method to adjust line and column numbers for the start of a token.
protected  void AdjustBuffSize()
           
 void backup(int amount)
          Retreat.
 char BeginToken()
          Returns the next character that marks the beginning of the next token.
 void Done()
          Set buffers back to null when finished.
protected  void ExpandBuff(boolean wrapAround)
           
protected  void FillBuff()
           
 int getBeginColumn()
          Returns the column number of the first character for current token (being matched after the last call to BeginTOken).
 int getBeginLine()
          Returns the line number of the first character for current token (being matched after the last call to BeginTOken).
 int getColumn()
          Deprecated. 
 int getEndColumn()
          Get end column.
 int getEndLine()
          Get end line.
 java.lang.String GetImage()
          Returns a string made up of characters from the marked token beginning to the current buffer position.
 int getLine()
          Deprecated. 
 char[] GetSuffix(int len)
          Returns an array of characters that make up the suffix of length 'len' for the currently matched token.
protected  int getTabSize(int i)
           
protected  char ReadByte()
           
 char readChar()
          Read a character.
 void ReInit(java.io.InputStream dstream)
          Reinitialise.
 void ReInit(java.io.InputStream dstream, int startline, int startcolumn)
          Reinitialise.
 void ReInit(java.io.InputStream dstream, int startline, int startcolumn, int buffersize)
          Reinitialise.
 void ReInit(java.io.InputStream dstream, java.lang.String encoding)
          Reinitialise.
 void ReInit(java.io.InputStream dstream, java.lang.String encoding, int startline, int startcolumn)
          Reinitialise.
 void ReInit(java.io.InputStream dstream, java.lang.String encoding, int startline, int startcolumn, int buffersize)
          Reinitialise.
 void ReInit(java.io.Reader dstream)
          Reinitialise.
 void ReInit(java.io.Reader dstream, int startline, int startcolumn)
          Reinitialise.
 void ReInit(java.io.Reader dstream, int startline, int startcolumn, int buffersize)
          Reinitialise.
protected  void setTabSize(int i)
           
protected  void UpdateLineColumn(char c)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

staticFlag

public static final boolean staticFlag
Whether parser is static.

See Also:
Constant Field Values

bufpos

public int bufpos
Position in buffer.


bufline

protected int[] bufline

bufcolumn

protected int[] bufcolumn

column

protected int column

line

protected int line

prevCharIsCR

protected boolean prevCharIsCR

prevCharIsLF

protected boolean prevCharIsLF

inputStream

protected java.io.Reader inputStream

nextCharBuf

protected char[] nextCharBuf

buffer

protected char[] buffer

maxNextCharInd

protected int maxNextCharInd

nextCharInd

protected int nextCharInd

inBuf

protected int inBuf

tabSize

protected int tabSize
Constructor Detail

JavaCharStream

public JavaCharStream(java.io.Reader dstream,
                      int startline,
                      int startcolumn,
                      int buffersize)
Constructor.


JavaCharStream

public JavaCharStream(java.io.Reader dstream,
                      int startline,
                      int startcolumn)
Constructor.


JavaCharStream

public JavaCharStream(java.io.Reader dstream)
Constructor.


JavaCharStream

public JavaCharStream(java.io.InputStream dstream,
                      java.lang.String encoding,
                      int startline,
                      int startcolumn,
                      int buffersize)
               throws java.io.UnsupportedEncodingException
Constructor.

Throws:
java.io.UnsupportedEncodingException

JavaCharStream

public JavaCharStream(java.io.InputStream dstream,
                      int startline,
                      int startcolumn,
                      int buffersize)
Constructor.


JavaCharStream

public JavaCharStream(java.io.InputStream dstream,
                      java.lang.String encoding,
                      int startline,
                      int startcolumn)
               throws java.io.UnsupportedEncodingException
Constructor.

Throws:
java.io.UnsupportedEncodingException

JavaCharStream

public JavaCharStream(java.io.InputStream dstream,
                      int startline,
                      int startcolumn)
Constructor.


JavaCharStream

public JavaCharStream(java.io.InputStream dstream,
                      java.lang.String encoding)
               throws java.io.UnsupportedEncodingException
Constructor.

Throws:
java.io.UnsupportedEncodingException

JavaCharStream

public JavaCharStream(java.io.InputStream dstream)
Constructor.

Method Detail

setTabSize

protected void setTabSize(int i)

getTabSize

protected int getTabSize(int i)

ExpandBuff

protected void ExpandBuff(boolean wrapAround)

FillBuff

protected void FillBuff()
                 throws java.io.IOException
Throws:
java.io.IOException

ReadByte

protected char ReadByte()
                 throws java.io.IOException
Throws:
java.io.IOException

BeginToken

public char BeginToken()
                throws java.io.IOException
Description copied from interface: CharStream
Returns the next character that marks the beginning of the next token. All characters must remain in the buffer between two successive calls to this method to implement backup correctly.

Specified by:
BeginToken in interface CharStream
Returns:
starting character for token.
Throws:
java.io.IOException

AdjustBuffSize

protected void AdjustBuffSize()

UpdateLineColumn

protected void UpdateLineColumn(char c)

readChar

public char readChar()
              throws java.io.IOException
Read a character.

Specified by:
readChar in interface CharStream
Throws:
java.io.IOException

getColumn

@Deprecated
public int getColumn()
Deprecated. 

Description copied from interface: CharStream
Returns the column position of the character last read.

Specified by:
getColumn in interface CharStream
See Also:
CharStream.getEndColumn()

getLine

@Deprecated
public int getLine()
Deprecated. 

Description copied from interface: CharStream
Returns the line number of the character last read.

Specified by:
getLine in interface CharStream
See Also:
CharStream.getEndLine()

getEndColumn

public int getEndColumn()
Get end column.

Specified by:
getEndColumn in interface CharStream

getEndLine

public int getEndLine()
Get end line.

Specified by:
getEndLine in interface CharStream

getBeginColumn

public int getBeginColumn()
Description copied from interface: CharStream
Returns the column number of the first character for current token (being matched after the last call to BeginTOken).

Specified by:
getBeginColumn in interface CharStream
Returns:
column of token start

getBeginLine

public int getBeginLine()
Description copied from interface: CharStream
Returns the line number of the first character for current token (being matched after the last call to BeginTOken).

Specified by:
getBeginLine in interface CharStream
Returns:
line number of token start

backup

public void backup(int amount)
Retreat.

Specified by:
backup in interface CharStream

ReInit

public void ReInit(java.io.Reader dstream,
                   int startline,
                   int startcolumn,
                   int buffersize)
Reinitialise.


ReInit

public void ReInit(java.io.Reader dstream,
                   int startline,
                   int startcolumn)
Reinitialise.


ReInit

public void ReInit(java.io.Reader dstream)
Reinitialise.


ReInit

public void ReInit(java.io.InputStream dstream,
                   java.lang.String encoding,
                   int startline,
                   int startcolumn,
                   int buffersize)
            throws java.io.UnsupportedEncodingException
Reinitialise.

Throws:
java.io.UnsupportedEncodingException

ReInit

public void ReInit(java.io.InputStream dstream,
                   int startline,
                   int startcolumn,
                   int buffersize)
Reinitialise.


ReInit

public void ReInit(java.io.InputStream dstream,
                   java.lang.String encoding,
                   int startline,
                   int startcolumn)
            throws java.io.UnsupportedEncodingException
Reinitialise.

Throws:
java.io.UnsupportedEncodingException

ReInit

public void ReInit(java.io.InputStream dstream,
                   int startline,
                   int startcolumn)
Reinitialise.


ReInit

public void ReInit(java.io.InputStream dstream,
                   java.lang.String encoding)
            throws java.io.UnsupportedEncodingException
Reinitialise.

Throws:
java.io.UnsupportedEncodingException

ReInit

public void ReInit(java.io.InputStream dstream)
Reinitialise.


GetImage

public java.lang.String GetImage()
Description copied from interface: CharStream
Returns a string made up of characters from the marked token beginning to the current buffer position. Implementations have the choice of returning anything that they want to. For example, for efficiency, one might decide to just return null, which is a valid implementation.

Specified by:
GetImage in interface CharStream
Returns:
token image as String

GetSuffix

public char[] GetSuffix(int len)
Description copied from interface: CharStream
Returns an array of characters that make up the suffix of length 'len' for the currently matched token. This is used to build up the matched string for use in actions in the case of MORE. A simple and inefficient implementation of this is as follows : { String t = GetImage(); return t.substring(t.length() - len, t.length()).toCharArray(); }

Specified by:
GetSuffix in interface CharStream
Returns:
suffix

Done

public void Done()
Set buffers back to null when finished.

Specified by:
Done in interface CharStream

adjustBeginLineColumn

public void adjustBeginLineColumn(int newLine,
                                  int newCol)
Method to adjust line and column numbers for the start of a token.



Copyright © 2002-2011 InfoEther. All Rights Reserved.