Clover coverage report - PMD - 3.3
Coverage timestamp: Thu Sep 15 2005 17:59:57 EDT
file stats: LOC: 354   Methods: 28
NCLOC: 271   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
SimpleCharStream.java 0% 0% 0% 0%
coverage
 1    /* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 3.0 */
 2    package net.sourceforge.pmd.ast;
 3   
 4    /**
 5    * An implementation of interface CharStream, where the stream is assumed to
 6    * contain only ASCII characters (without unicode processing).
 7    */
 8   
 9    public class SimpleCharStream {
 10    public static final boolean staticFlag = false;
 11    int bufsize;
 12    int available;
 13    int tokenBegin;
 14    public int bufpos = -1;
 15    protected int bufline[];
 16    protected int bufcolumn[];
 17   
 18    protected int column = 0;
 19    protected int line = 1;
 20   
 21    protected boolean prevCharIsCR = false;
 22    protected boolean prevCharIsLF = false;
 23   
 24    protected java.io.Reader inputStream;
 25   
 26    protected char[] buffer;
 27    protected int maxNextCharInd = 0;
 28    protected int inBuf = 0;
 29   
 30  0 protected void ExpandBuff(boolean wrapAround) {
 31  0 char[] newbuffer = new char[bufsize + 2048];
 32  0 int newbufline[] = new int[bufsize + 2048];
 33  0 int newbufcolumn[] = new int[bufsize + 2048];
 34   
 35  0 try {
 36  0 if (wrapAround) {
 37  0 System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
 38  0 System.arraycopy(buffer, 0, newbuffer,
 39    bufsize - tokenBegin, bufpos);
 40  0 buffer = newbuffer;
 41   
 42  0 System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
 43  0 System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
 44  0 bufline = newbufline;
 45   
 46  0 System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
 47  0 System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
 48  0 bufcolumn = newbufcolumn;
 49   
 50  0 maxNextCharInd = (bufpos += (bufsize - tokenBegin));
 51    } else {
 52  0 System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
 53  0 buffer = newbuffer;
 54   
 55  0 System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
 56  0 bufline = newbufline;
 57   
 58  0 System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
 59  0 bufcolumn = newbufcolumn;
 60   
 61  0 maxNextCharInd = (bufpos -= tokenBegin);
 62    }
 63    } catch (Throwable t) {
 64  0 throw new Error(t.getMessage());
 65    }
 66   
 67   
 68  0 bufsize += 2048;
 69  0 available = bufsize;
 70  0 tokenBegin = 0;
 71    }
 72   
 73  0 protected void FillBuff() throws java.io.IOException {
 74  0 if (maxNextCharInd == available) {
 75  0 if (available == bufsize) {
 76  0 if (tokenBegin > 2048) {
 77  0 bufpos = maxNextCharInd = 0;
 78  0 available = tokenBegin;
 79  0 } else if (tokenBegin < 0)
 80  0 bufpos = maxNextCharInd = 0;
 81    else
 82  0 ExpandBuff(false);
 83  0 } else if (available > tokenBegin)
 84  0 available = bufsize;
 85  0 else if ((tokenBegin - available) < 2048)
 86  0 ExpandBuff(true);
 87    else
 88  0 available = tokenBegin;
 89    }
 90   
 91  0 int i;
 92  0 try {
 93  0 if ((i = inputStream.read(buffer, maxNextCharInd,
 94    available - maxNextCharInd)) == -1) {
 95  0 inputStream.close();
 96  0 throw new java.io.IOException();
 97    } else
 98  0 maxNextCharInd += i;
 99  0 return;
 100    } catch (java.io.IOException e) {
 101  0 --bufpos;
 102  0 backup(0);
 103  0 if (tokenBegin == -1)
 104  0 tokenBegin = bufpos;
 105  0 throw e;
 106    }
 107    }
 108   
 109  0 public char BeginToken() throws java.io.IOException {
 110  0 tokenBegin = -1;
 111  0 char c = readChar();
 112  0 tokenBegin = bufpos;
 113   
 114  0 return c;
 115    }
 116   
 117  0 protected void UpdateLineColumn(char c) {
 118  0 column++;
 119   
 120  0 if (prevCharIsLF) {
 121  0 prevCharIsLF = false;
 122  0 line += (column = 1);
 123  0 } else if (prevCharIsCR) {
 124  0 prevCharIsCR = false;
 125  0 if (c == '\n') {
 126  0 prevCharIsLF = true;
 127    } else
 128  0 line += (column = 1);
 129    }
 130   
 131  0 switch (c) {
 132  0 case '\r':
 133  0 prevCharIsCR = true;
 134  0 break;
 135  0 case '\n':
 136  0 prevCharIsLF = true;
 137  0 break;
 138  0 case '\t':
 139  0 column--;
 140  0 column += (8 - (column & 07));
 141  0 break;
 142  0 default :
 143  0 break;
 144    }
 145   
 146  0 bufline[bufpos] = line;
 147  0 bufcolumn[bufpos] = column;
 148    }
 149   
 150  0 public char readChar() throws java.io.IOException {
 151  0 if (inBuf > 0) {
 152  0 --inBuf;
 153   
 154  0 if (++bufpos == bufsize)
 155  0 bufpos = 0;
 156   
 157  0 return buffer[bufpos];
 158    }
 159   
 160  0 if (++bufpos >= maxNextCharInd)
 161  0 FillBuff();
 162   
 163  0 char c = buffer[bufpos];
 164   
 165  0 UpdateLineColumn(c);
 166  0 return (c);
 167    }
 168   
 169    /**
 170    * @see #getEndColumn
 171    * @deprecated
 172    */
 173   
 174  0 public int getColumn() {
 175  0 return bufcolumn[bufpos];
 176    }
 177   
 178    /**
 179    * @see #getEndLine
 180    * @deprecated
 181    */
 182   
 183  0 public int getLine() {
 184  0 return bufline[bufpos];
 185    }
 186   
 187  0 public int getEndColumn() {
 188  0 return bufcolumn[bufpos];
 189    }
 190   
 191  0 public int getEndLine() {
 192  0 return bufline[bufpos];
 193    }
 194   
 195  0 public int getBeginColumn() {
 196  0 return bufcolumn[tokenBegin];
 197    }
 198   
 199  0 public int getBeginLine() {
 200  0 return bufline[tokenBegin];
 201    }
 202   
 203  0 public void backup(int amount) {
 204   
 205  0 inBuf += amount;
 206  0 if ((bufpos -= amount) < 0)
 207  0 bufpos += bufsize;
 208    }
 209   
 210  0 public SimpleCharStream(java.io.Reader dstream, int startline,
 211    int startcolumn, int buffersize) {
 212  0 inputStream = dstream;
 213  0 line = startline;
 214  0 column = startcolumn - 1;
 215   
 216  0 available = bufsize = buffersize;
 217  0 buffer = new char[buffersize];
 218  0 bufline = new int[buffersize];
 219  0 bufcolumn = new int[buffersize];
 220    }
 221   
 222  0 public SimpleCharStream(java.io.Reader dstream, int startline,
 223    int startcolumn) {
 224  0 this(dstream, startline, startcolumn, 4096);
 225    }
 226   
 227  0 public SimpleCharStream(java.io.Reader dstream) {
 228  0 this(dstream, 1, 1, 4096);
 229    }
 230   
 231  0 public void ReInit(java.io.Reader dstream, int startline,
 232    int startcolumn, int buffersize) {
 233  0 inputStream = dstream;
 234  0 line = startline;
 235  0 column = startcolumn - 1;
 236   
 237  0 if (buffer == null || buffersize != buffer.length) {
 238  0 available = bufsize = buffersize;
 239  0 buffer = new char[buffersize];
 240  0 bufline = new int[buffersize];
 241  0 bufcolumn = new int[buffersize];
 242    }
 243  0 prevCharIsLF = prevCharIsCR = false;
 244  0 tokenBegin = inBuf = maxNextCharInd = 0;
 245  0 bufpos = -1;
 246    }
 247   
 248  0 public void ReInit(java.io.Reader dstream, int startline,
 249    int startcolumn) {
 250  0 ReInit(dstream, startline, startcolumn, 4096);
 251    }
 252   
 253  0 public void ReInit(java.io.Reader dstream) {
 254  0 ReInit(dstream, 1, 1, 4096);
 255    }
 256   
 257  0 public SimpleCharStream(java.io.InputStream dstream, int startline,
 258    int startcolumn, int buffersize) {
 259  0 this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
 260    }
 261   
 262  0 public SimpleCharStream(java.io.InputStream dstream, int startline,
 263    int startcolumn) {
 264  0 this(dstream, startline, startcolumn, 4096);
 265    }
 266   
 267  0 public SimpleCharStream(java.io.InputStream dstream) {
 268  0 this(dstream, 1, 1, 4096);
 269    }
 270   
 271  0 public void ReInit(java.io.InputStream dstream, int startline,
 272    int startcolumn, int buffersize) {
 273  0 ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
 274    }
 275   
 276  0 public void ReInit(java.io.InputStream dstream) {
 277  0 ReInit(dstream, 1, 1, 4096);
 278    }
 279   
 280  0 public void ReInit(java.io.InputStream dstream, int startline,
 281    int startcolumn) {
 282  0 ReInit(dstream, startline, startcolumn, 4096);
 283    }
 284   
 285  0 public String GetImage() {
 286  0 if (bufpos >= tokenBegin)
 287  0 return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
 288    else
 289  0 return new String(buffer, tokenBegin, bufsize - tokenBegin) +
 290    new String(buffer, 0, bufpos + 1);
 291    }
 292   
 293  0 public char[] GetSuffix(int len) {
 294  0 char[] ret = new char[len];
 295   
 296  0 if ((bufpos + 1) >= len)
 297  0 System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
 298    else {
 299  0 System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
 300    len - bufpos - 1);
 301  0 System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
 302    }
 303   
 304  0 return ret;
 305    }
 306   
 307  0 public void Done() {
 308  0 buffer = null;
 309  0 bufline = null;
 310  0 bufcolumn = null;
 311    }
 312   
 313    /**
 314    * Method to adjust line and column numbers for the start of a token.
 315    */
 316  0 public void adjustBeginLineColumn(int newLine, int newCol) {
 317  0 int start = tokenBegin;
 318  0 int len;
 319   
 320  0 if (bufpos >= tokenBegin) {
 321  0 len = bufpos - tokenBegin + inBuf + 1;
 322    } else {
 323  0 len = bufsize - tokenBegin + bufpos + 1 + inBuf;
 324    }
 325   
 326  0 int i = 0, j = 0, k = 0;
 327  0 int nextColDiff = 0, columnDiff = 0;
 328   
 329  0 while (i < len &&
 330    bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) {
 331  0 bufline[j] = newLine;
 332  0 nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
 333  0 bufcolumn[j] = newCol + columnDiff;
 334  0 columnDiff = nextColDiff;
 335  0 i++;
 336    }
 337   
 338  0 if (i < len) {
 339  0 bufline[j] = newLine++;
 340  0 bufcolumn[j] = newCol + columnDiff;
 341   
 342  0 while (i++ < len) {
 343  0 if (bufline[j = start % bufsize] != bufline[++start % bufsize])
 344  0 bufline[j] = newLine++;
 345    else
 346  0 bufline[j] = newLine;
 347    }
 348    }
 349   
 350  0 line = bufline[j];
 351  0 column = bufcolumn[j];
 352    }
 353   
 354    }