From e382173749f02635542daeddf07423fa45d519c3 Mon Sep 17 00:00:00 2001 From: Xavier Le Vourch Date: Tue, 2 Sep 2008 16:14:53 +0000 Subject: [PATCH] javacc updated to official 4.1 version git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6433 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/lib/javacc.jar | Bin 289434 -> 289346 bytes .../sourceforge/pmd/lang/ast/CharStream.java | 224 +- .../pmd/lang/ast/JavaCharStream.java | 1228 +++--- .../pmd/lang/ast/SimpleCharStream.java | 944 ++--- .../pmd/lang/ast/TokenMgrError.java | 280 +- .../pmd/lang/cpp/ast/CppParserConstants.java | 794 ++-- .../lang/cpp/ast/CppParserTokenManager.java | 3360 ++++++++--------- .../sourceforge/pmd/lang/cpp/ast/Token.java | 248 +- .../lang/java/ast/JavaParserConstants.java | 2 +- .../lang/java/ast/JavaParserTokenManager.java | 34 +- .../pmd/lang/java/ast/ParseException.java | 6 +- .../pmd/lang/jsp/ast/JJTJspParserState.java | 2 +- .../pmd/lang/jsp/ast/JspParserConstants.java | 2 +- .../lang/jsp/ast/JspParserTokenManager.java | 84 +- .../lang/jsp/ast/JspParserTreeConstants.java | 2 +- .../pmd/lang/jsp/ast/JspParserVisitor.java | 2 +- .../pmd/lang/jsp/ast/ParseException.java | 6 +- .../sourceforge/pmd/lang/jsp/ast/Token.java | 2 +- 18 files changed, 3610 insertions(+), 3610 deletions(-) diff --git a/pmd/lib/javacc.jar b/pmd/lib/javacc.jar index 32e06d0b7eaa4831a95005f8cf20ee94734b8b61..17e3f66a90ccb20fd80f7ac32fa3e3bfbbe88693 100644 GIT binary patch delta 61340 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

7HF%4+x&GKlQRfxw#(oaFyQRt0xO+ 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 maxNextCharInd) - FillBuff(); - - return nextCharBuf[nextCharInd]; - } - -/** @return starting character for token. */ - public char BeginToken() throws java.io.IOException - { - if (inBuf > 0) - { - --inBuf; - - if (++bufpos == bufsize) - bufpos = 0; - - tokenBegin = bufpos; - return buffer[bufpos]; - } - - tokenBegin = 0; - bufpos = -1; - - return readChar(); - } - - protected void AdjustBuffSize() - { - if (available == bufsize) - { - if (tokenBegin > 2048) - { - bufpos = 0; - available = tokenBegin; - } - else - ExpandBuff(false); - } - else if (available > tokenBegin) - available = bufsize; - else if ((tokenBegin - available) < 2048) - ExpandBuff(true); - else - available = tokenBegin; - } - - protected void UpdateLineColumn(char c) - { - column++; - - if (prevCharIsLF) - { - prevCharIsLF = false; - line += (column = 1); - } - else if (prevCharIsCR) - { - prevCharIsCR = false; - if (c == '\n') - { - prevCharIsLF = true; - } - else - line += (column = 1); - } - - switch (c) - { - case '\r' : - prevCharIsCR = true; - break; - case '\n' : - prevCharIsLF = true; - break; - case '\t' : - column--; - column += (tabSize - (column % tabSize)); - break; - default : - break; - } - - bufline[bufpos] = line; - bufcolumn[bufpos] = column; - } - -/** Read a character. */ - public char readChar() throws java.io.IOException - { - if (inBuf > 0) - { - --inBuf; - - if (++bufpos == bufsize) - bufpos = 0; - - return buffer[bufpos]; - } - - char c; - - if (++bufpos == available) - AdjustBuffSize(); - - if ((buffer[bufpos] = c = ReadByte()) == '\\') - { - UpdateLineColumn(c); - - int backSlashCnt = 1; - - for (;;) // Read all the backslashes - { - if (++bufpos == available) - AdjustBuffSize(); - - try - { - if ((buffer[bufpos] = c = ReadByte()) != '\\') - { - UpdateLineColumn(c); - // found a non-backslash char. - if ((c == 'u') && ((backSlashCnt & 1) == 1)) - { - if (--bufpos < 0) - bufpos = bufsize - 1; - - break; - } - - backup(backSlashCnt); - return '\\'; - } - } - catch(java.io.IOException e) - { - if (backSlashCnt > 1) - backup(backSlashCnt-1); - - return '\\'; - } - - UpdateLineColumn(c); - backSlashCnt++; - } - - // Here, we have seen an odd number of backslash's followed by a 'u' - try - { - while ((c = ReadByte()) == 'u') - ++column; - - buffer[bufpos] = c = (char)(hexval(c) << 12 | - hexval(ReadByte()) << 8 | - hexval(ReadByte()) << 4 | - hexval(ReadByte())); - - column += 4; - } - catch(java.io.IOException e) - { - throw new Error("Invalid escape character at line " + line + - " column " + column + "."); - } - - if (backSlashCnt == 1) - return c; - else - { - backup(backSlashCnt - 1); - return '\\'; - } - } - else - { - UpdateLineColumn(c); - return c; - } - } - - /** - * @deprecated - * @see #getEndColumn - */ - public int getColumn() { - return bufcolumn[bufpos]; - } - - /** - * @deprecated - * @see #getEndLine - */ - public int getLine() { - return bufline[bufpos]; - } - -/** Get end column. */ - public int getEndColumn() { - return bufcolumn[bufpos]; - } - -/** Get end line. */ - public int getEndLine() { - return bufline[bufpos]; - } - -/** @return column of token start */ - public int getBeginColumn() { - return bufcolumn[tokenBegin]; - } - -/** @return line number of token start */ - public int getBeginLine() { - return bufline[tokenBegin]; - } - -/** Retreat. */ - public void backup(int amount) { - - inBuf += amount; - if ((bufpos -= amount) < 0) - bufpos += bufsize; - } - -/** Constructor. */ - public JavaCharStream(java.io.Reader dstream, - int startline, int startcolumn, int buffersize) - { - inputStream = dstream; - line = startline; - column = startcolumn - 1; - - available = bufsize = buffersize; - buffer = new char[buffersize]; - bufline = new int[buffersize]; - bufcolumn = new int[buffersize]; - nextCharBuf = new char[4096]; - } - -/** Constructor. */ - public JavaCharStream(java.io.Reader dstream, - int startline, int startcolumn) - { - this(dstream, startline, startcolumn, 4096); - } - -/** Constructor. */ - public JavaCharStream(java.io.Reader dstream) - { - this(dstream, 1, 1, 4096); - } -/** Reinitialise. */ - public void ReInit(java.io.Reader dstream, - int startline, int startcolumn, int buffersize) - { - inputStream = dstream; - line = startline; - column = startcolumn - 1; - - if (buffer == null || buffersize != buffer.length) - { - available = bufsize = buffersize; - buffer = new char[buffersize]; - bufline = new int[buffersize]; - bufcolumn = new int[buffersize]; - nextCharBuf = new char[4096]; - } - prevCharIsLF = prevCharIsCR = false; - tokenBegin = inBuf = maxNextCharInd = 0; - nextCharInd = bufpos = -1; - } - -/** Reinitialise. */ - public void ReInit(java.io.Reader dstream, - int startline, int startcolumn) - { - ReInit(dstream, startline, startcolumn, 4096); - } - -/** Reinitialise. */ - public void ReInit(java.io.Reader dstream) - { - ReInit(dstream, 1, 1, 4096); - } -/** Constructor. */ - public JavaCharStream(java.io.InputStream dstream, String encoding, int startline, - int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException - { - this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); - } - -/** Constructor. */ - public JavaCharStream(java.io.InputStream dstream, int startline, - int startcolumn, int buffersize) - { - this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096); - } - -/** Constructor. */ - public JavaCharStream(java.io.InputStream dstream, String encoding, int startline, - int startcolumn) throws java.io.UnsupportedEncodingException - { - this(dstream, encoding, startline, startcolumn, 4096); - } - -/** Constructor. */ - public JavaCharStream(java.io.InputStream dstream, int startline, - int startcolumn) - { - this(dstream, startline, startcolumn, 4096); - } - -/** Constructor. */ - public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException - { - this(dstream, encoding, 1, 1, 4096); - } - -/** Constructor. */ - public JavaCharStream(java.io.InputStream dstream) - { - this(dstream, 1, 1, 4096); - } - -/** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding, int startline, - int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException - { - ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); - } - -/** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, int startline, - int startcolumn, int buffersize) - { - ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); - } -/** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding, int startline, - int startcolumn) throws java.io.UnsupportedEncodingException - { - ReInit(dstream, encoding, startline, startcolumn, 4096); - } -/** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, int startline, - int startcolumn) - { - ReInit(dstream, startline, startcolumn, 4096); - } -/** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException - { - ReInit(dstream, encoding, 1, 1, 4096); - } - -/** Reinitialise. */ - public void ReInit(java.io.InputStream dstream) - { - ReInit(dstream, 1, 1, 4096); - } - - /** @return token image as String */ - public String GetImage() - { - if (bufpos >= tokenBegin) - return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); - else - return new String(buffer, tokenBegin, bufsize - tokenBegin) + - new String(buffer, 0, bufpos + 1); - } - - /** @return suffix */ - public char[] GetSuffix(int len) - { - char[] ret = new char[len]; - - if ((bufpos + 1) >= len) - System.arraycopy(buffer, bufpos - len + 1, ret, 0, len); - else - { - System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0, - len - bufpos - 1); - System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1); - } - - return ret; - } - - /** Set buffers back to null when finished. */ - public void Done() - { - nextCharBuf = null; - buffer = null; - bufline = null; - bufcolumn = null; - } - - /** - * Method to adjust line and column numbers for the start of a token. - */ - public void adjustBeginLineColumn(int newLine, int newCol) - { - int start = tokenBegin; - int len; - - if (bufpos >= tokenBegin) - { - len = bufpos - tokenBegin + inBuf + 1; - } - else - { - len = bufsize - tokenBegin + bufpos + 1 + inBuf; - } - - int i = 0, j = 0, k = 0; - int nextColDiff = 0, columnDiff = 0; - - while (i < len && - bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) - { - bufline[j] = newLine; - nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; - bufcolumn[j] = newCol + columnDiff; - columnDiff = nextColDiff; - i++; - } - - if (i < len) - { - bufline[j] = newLine++; - bufcolumn[j] = newCol + columnDiff; - - while (i++ < len) - { - if (bufline[j = start % bufsize] != bufline[++start % bufsize]) - bufline[j] = newLine++; - else - bufline[j] = newLine; - } - } - - line = bufline[j]; - column = bufcolumn[j]; - } - -} -/* JavaCC - OriginalChecksum=16325c5a3e39d8d2b22472102f938c3a (do not edit this line) */ +/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 4.1 */ +/* JavaCCOptions:STATIC=false */ +package net.sourceforge.pmd.lang.ast; + +/** + * An implementation of interface CharStream, where the stream is assumed to + * contain only ASCII characters (with java-like unicode escape processing). + */ + +public class JavaCharStream implements CharStream +{ +/** Whether parser is static. */ + public static final boolean staticFlag = false; + static final int hexval(char c) throws 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 + } + +/** Position in buffer. */ + public int bufpos = -1; + int bufsize; + int available; + int tokenBegin; + 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[] nextCharBuf; + protected char[] buffer; + protected int maxNextCharInd = 0; + protected int nextCharInd = -1; + protected int inBuf = 0; + protected int tabSize = 8; + + protected void setTabSize(int i) { tabSize = i; } + protected int getTabSize(int i) { return tabSize; } + + protected void ExpandBuff(boolean wrapAround) + { + char[] newbuffer = new char[bufsize + 2048]; + int newbufline[] = new int[bufsize + 2048]; + int newbufcolumn[] = new int[bufsize + 2048]; + + try + { + if (wrapAround) + { + System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + System.arraycopy(buffer, 0, newbuffer, + bufsize - tokenBegin, bufpos); + buffer = newbuffer; + + System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos); + bufline = newbufline; + + System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos); + bufcolumn = newbufcolumn; + + bufpos += (bufsize - tokenBegin); + } + else + { + System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + buffer = newbuffer; + + System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + bufline = newbufline; + + System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + bufcolumn = newbufcolumn; + + bufpos -= tokenBegin; + } + } + catch (Throwable t) + { + throw new Error(t.getMessage()); + } + + available = (bufsize += 2048); + tokenBegin = 0; + } + + protected void FillBuff() throws java.io.IOException + { + int i; + if (maxNextCharInd == 4096) + maxNextCharInd = nextCharInd = 0; + + try { + if ((i = inputStream.read(nextCharBuf, maxNextCharInd, + 4096 - maxNextCharInd)) == -1) + { + inputStream.close(); + throw new java.io.IOException(); + } + else + maxNextCharInd += i; + return; + } + catch(java.io.IOException e) { + if (bufpos != 0) + { + --bufpos; + backup(0); + } + else + { + bufline[bufpos] = line; + bufcolumn[bufpos] = column; + } + throw e; + } + } + + protected char ReadByte() throws java.io.IOException + { + if (++nextCharInd >= maxNextCharInd) + FillBuff(); + + return nextCharBuf[nextCharInd]; + } + +/** @return starting character for token. */ + public char BeginToken() throws java.io.IOException + { + if (inBuf > 0) + { + --inBuf; + + if (++bufpos == bufsize) + bufpos = 0; + + tokenBegin = bufpos; + return buffer[bufpos]; + } + + tokenBegin = 0; + bufpos = -1; + + return readChar(); + } + + protected void AdjustBuffSize() + { + if (available == bufsize) + { + if (tokenBegin > 2048) + { + bufpos = 0; + available = tokenBegin; + } + else + ExpandBuff(false); + } + else if (available > tokenBegin) + available = bufsize; + else if ((tokenBegin - available) < 2048) + ExpandBuff(true); + else + available = tokenBegin; + } + + protected void UpdateLineColumn(char c) + { + column++; + + if (prevCharIsLF) + { + prevCharIsLF = false; + line += (column = 1); + } + else if (prevCharIsCR) + { + prevCharIsCR = false; + if (c == '\n') + { + prevCharIsLF = true; + } + else + line += (column = 1); + } + + switch (c) + { + case '\r' : + prevCharIsCR = true; + break; + case '\n' : + prevCharIsLF = true; + break; + case '\t' : + column--; + column += (tabSize - (column % tabSize)); + break; + default : + break; + } + + bufline[bufpos] = line; + bufcolumn[bufpos] = column; + } + +/** Read a character. */ + public char readChar() throws java.io.IOException + { + if (inBuf > 0) + { + --inBuf; + + if (++bufpos == bufsize) + bufpos = 0; + + return buffer[bufpos]; + } + + char c; + + if (++bufpos == available) + AdjustBuffSize(); + + if ((buffer[bufpos] = c = ReadByte()) == '\\') + { + UpdateLineColumn(c); + + int backSlashCnt = 1; + + for (;;) // Read all the backslashes + { + if (++bufpos == available) + AdjustBuffSize(); + + try + { + if ((buffer[bufpos] = c = ReadByte()) != '\\') + { + UpdateLineColumn(c); + // found a non-backslash char. + if ((c == 'u') && ((backSlashCnt & 1) == 1)) + { + if (--bufpos < 0) + bufpos = bufsize - 1; + + break; + } + + backup(backSlashCnt); + return '\\'; + } + } + catch(java.io.IOException e) + { + if (backSlashCnt > 1) + backup(backSlashCnt-1); + + return '\\'; + } + + UpdateLineColumn(c); + backSlashCnt++; + } + + // Here, we have seen an odd number of backslash's followed by a 'u' + try + { + while ((c = ReadByte()) == 'u') + ++column; + + buffer[bufpos] = c = (char)(hexval(c) << 12 | + hexval(ReadByte()) << 8 | + hexval(ReadByte()) << 4 | + hexval(ReadByte())); + + column += 4; + } + catch(java.io.IOException e) + { + throw new Error("Invalid escape character at line " + line + + " column " + column + "."); + } + + if (backSlashCnt == 1) + return c; + else + { + backup(backSlashCnt - 1); + return '\\'; + } + } + else + { + UpdateLineColumn(c); + return c; + } + } + + /** + * @deprecated + * @see #getEndColumn + */ + public int getColumn() { + return bufcolumn[bufpos]; + } + + /** + * @deprecated + * @see #getEndLine + */ + public int getLine() { + return bufline[bufpos]; + } + +/** Get end column. */ + public int getEndColumn() { + return bufcolumn[bufpos]; + } + +/** Get end line. */ + public int getEndLine() { + return bufline[bufpos]; + } + +/** @return column of token start */ + public int getBeginColumn() { + return bufcolumn[tokenBegin]; + } + +/** @return line number of token start */ + public int getBeginLine() { + return bufline[tokenBegin]; + } + +/** Retreat. */ + public void backup(int amount) { + + inBuf += amount; + if ((bufpos -= amount) < 0) + bufpos += bufsize; + } + +/** Constructor. */ + public JavaCharStream(java.io.Reader dstream, + int startline, int startcolumn, int buffersize) + { + inputStream = dstream; + line = startline; + column = startcolumn - 1; + + available = bufsize = buffersize; + buffer = new char[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + nextCharBuf = new char[4096]; + } + +/** Constructor. */ + public JavaCharStream(java.io.Reader dstream, + int startline, int startcolumn) + { + this(dstream, startline, startcolumn, 4096); + } + +/** Constructor. */ + public JavaCharStream(java.io.Reader dstream) + { + this(dstream, 1, 1, 4096); + } +/** Reinitialise. */ + public void ReInit(java.io.Reader dstream, + int startline, int startcolumn, int buffersize) + { + inputStream = dstream; + line = startline; + column = startcolumn - 1; + + if (buffer == null || buffersize != buffer.length) + { + available = bufsize = buffersize; + buffer = new char[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + nextCharBuf = new char[4096]; + } + prevCharIsLF = prevCharIsCR = false; + tokenBegin = inBuf = maxNextCharInd = 0; + nextCharInd = bufpos = -1; + } + +/** Reinitialise. */ + public void ReInit(java.io.Reader dstream, + int startline, int startcolumn) + { + ReInit(dstream, startline, startcolumn, 4096); + } + +/** Reinitialise. */ + public void ReInit(java.io.Reader dstream) + { + ReInit(dstream, 1, 1, 4096); + } +/** Constructor. */ + public JavaCharStream(java.io.InputStream dstream, String encoding, int startline, + int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException + { + this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); + } + +/** Constructor. */ + public JavaCharStream(java.io.InputStream dstream, int startline, + int startcolumn, int buffersize) + { + this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096); + } + +/** Constructor. */ + public JavaCharStream(java.io.InputStream dstream, String encoding, int startline, + int startcolumn) throws java.io.UnsupportedEncodingException + { + this(dstream, encoding, startline, startcolumn, 4096); + } + +/** Constructor. */ + public JavaCharStream(java.io.InputStream dstream, int startline, + int startcolumn) + { + this(dstream, startline, startcolumn, 4096); + } + +/** Constructor. */ + public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException + { + this(dstream, encoding, 1, 1, 4096); + } + +/** Constructor. */ + public JavaCharStream(java.io.InputStream dstream) + { + this(dstream, 1, 1, 4096); + } + +/** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, String encoding, int startline, + int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException + { + ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); + } + +/** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, int startline, + int startcolumn, int buffersize) + { + ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); + } +/** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, String encoding, int startline, + int startcolumn) throws java.io.UnsupportedEncodingException + { + ReInit(dstream, encoding, startline, startcolumn, 4096); + } +/** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, int startline, + int startcolumn) + { + ReInit(dstream, startline, startcolumn, 4096); + } +/** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException + { + ReInit(dstream, encoding, 1, 1, 4096); + } + +/** Reinitialise. */ + public void ReInit(java.io.InputStream dstream) + { + ReInit(dstream, 1, 1, 4096); + } + + /** @return token image as String */ + public String GetImage() + { + if (bufpos >= tokenBegin) + return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); + else + return new String(buffer, tokenBegin, bufsize - tokenBegin) + + new String(buffer, 0, bufpos + 1); + } + + /** @return suffix */ + public char[] GetSuffix(int len) + { + char[] ret = new char[len]; + + if ((bufpos + 1) >= len) + System.arraycopy(buffer, bufpos - len + 1, ret, 0, len); + else + { + System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0, + len - bufpos - 1); + System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1); + } + + return ret; + } + + /** Set buffers back to null when finished. */ + public void Done() + { + nextCharBuf = null; + buffer = null; + bufline = null; + bufcolumn = null; + } + + /** + * Method to adjust line and column numbers for the start of a token. + */ + public void adjustBeginLineColumn(int newLine, int newCol) + { + int start = tokenBegin; + int len; + + if (bufpos >= tokenBegin) + { + len = bufpos - tokenBegin + inBuf + 1; + } + else + { + len = bufsize - tokenBegin + bufpos + 1 + inBuf; + } + + int i = 0, j = 0, k = 0; + int nextColDiff = 0, columnDiff = 0; + + while (i < len && + bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) + { + bufline[j] = newLine; + nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; + bufcolumn[j] = newCol + columnDiff; + columnDiff = nextColDiff; + i++; + } + + if (i < len) + { + bufline[j] = newLine++; + bufcolumn[j] = newCol + columnDiff; + + while (i++ < len) + { + if (bufline[j = start % bufsize] != bufline[++start % bufsize]) + bufline[j] = newLine++; + else + bufline[j] = newLine; + } + } + + line = bufline[j]; + column = bufcolumn[j]; + } + +} +/* JavaCC - OriginalChecksum=ba589f97766842ef9df90042be56217a (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/ast/SimpleCharStream.java b/pmd/src/net/sourceforge/pmd/lang/ast/SimpleCharStream.java index a37c4c5f03..335f3b0a56 100644 --- a/pmd/src/net/sourceforge/pmd/lang/ast/SimpleCharStream.java +++ b/pmd/src/net/sourceforge/pmd/lang/ast/SimpleCharStream.java @@ -1,472 +1,472 @@ -/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.1 */ -/* JavaCCOptions:STATIC=false */ -package net.sourceforge.pmd.lang.ast; - -/** - * An implementation of interface CharStream, where the stream is assumed to - * contain only ASCII characters (without unicode processing). - */ - -public class SimpleCharStream implements CharStream -{ -/** 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) { tabSize = i; } - protected int getTabSize(int i) { return tabSize; } - - - protected void ExpandBuff(boolean wrapAround) - { - char[] newbuffer = new char[bufsize + 2048]; - int newbufline[] = new int[bufsize + 2048]; - int newbufcolumn[] = new int[bufsize + 2048]; - - try - { - if (wrapAround) - { - System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); - System.arraycopy(buffer, 0, newbuffer, - bufsize - tokenBegin, bufpos); - buffer = newbuffer; - - System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); - System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos); - bufline = newbufline; - - System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); - System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos); - bufcolumn = newbufcolumn; - - maxNextCharInd = (bufpos += (bufsize - tokenBegin)); - } - else - { - System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); - buffer = newbuffer; - - System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); - bufline = newbufline; - - System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); - bufcolumn = newbufcolumn; - - maxNextCharInd = (bufpos -= tokenBegin); - } - } - catch (Throwable t) - { - throw new Error(t.getMessage()); - } - - - bufsize += 2048; - available = bufsize; - tokenBegin = 0; - } - - protected void FillBuff() throws java.io.IOException - { - if (maxNextCharInd == available) - { - if (available == bufsize) - { - if (tokenBegin > 2048) - { - bufpos = maxNextCharInd = 0; - available = tokenBegin; - } - else if (tokenBegin < 0) - bufpos = maxNextCharInd = 0; - else - ExpandBuff(false); - } - else if (available > tokenBegin) - available = bufsize; - else if ((tokenBegin - available) < 2048) - ExpandBuff(true); - else - available = tokenBegin; - } - - int i; - try { - if ((i = inputStream.read(buffer, maxNextCharInd, - available - maxNextCharInd)) == -1) - { - inputStream.close(); - throw new java.io.IOException(); - } - else - maxNextCharInd += i; - return; - } - catch(java.io.IOException e) { - --bufpos; - backup(0); - if (tokenBegin == -1) - tokenBegin = bufpos; - throw e; - } - } - -/** Start. */ - public char BeginToken() throws java.io.IOException - { - tokenBegin = -1; - char c = readChar(); - tokenBegin = bufpos; - - return c; - } - - protected void UpdateLineColumn(char c) - { - column++; - - if (prevCharIsLF) - { - prevCharIsLF = false; - line += (column = 1); - } - else if (prevCharIsCR) - { - prevCharIsCR = false; - if (c == '\n') - { - prevCharIsLF = true; - } - else - line += (column = 1); - } - - switch (c) - { - case '\r' : - prevCharIsCR = true; - break; - case '\n' : - prevCharIsLF = true; - break; - case '\t' : - column--; - column += (tabSize - (column % tabSize)); - break; - default : - break; - } - - bufline[bufpos] = line; - bufcolumn[bufpos] = column; - } - -/** Read a character. */ - public char readChar() throws java.io.IOException - { - if (inBuf > 0) - { - --inBuf; - - if (++bufpos == bufsize) - bufpos = 0; - - return buffer[bufpos]; - } - - if (++bufpos >= maxNextCharInd) - FillBuff(); - - char c = buffer[bufpos]; - - UpdateLineColumn(c); - return c; - } - - /** - * @deprecated - * @see #getEndColumn - */ - - public int getColumn() { - return bufcolumn[bufpos]; - } - - /** - * @deprecated - * @see #getEndLine - */ - - public int getLine() { - return bufline[bufpos]; - } - - /** Get token end column number. */ - public int getEndColumn() { - return bufcolumn[bufpos]; - } - - /** Get token end line number. */ - public int getEndLine() { - return bufline[bufpos]; - } - - /** Get token beginning column number. */ - public int getBeginColumn() { - return bufcolumn[tokenBegin]; - } - - /** Get token beginning line number. */ - public int getBeginLine() { - return bufline[tokenBegin]; - } - -/** Backup a number of characters. */ - public void backup(int amount) { - - inBuf += amount; - if ((bufpos -= amount) < 0) - bufpos += bufsize; - } - - /** Constructor. */ - public SimpleCharStream(java.io.Reader dstream, int startline, - int startcolumn, int buffersize) - { - inputStream = dstream; - line = startline; - column = startcolumn - 1; - - available = bufsize = buffersize; - buffer = new char[buffersize]; - bufline = new int[buffersize]; - bufcolumn = new int[buffersize]; - } - - /** Constructor. */ - public SimpleCharStream(java.io.Reader dstream, int startline, - int startcolumn) - { - this(dstream, startline, startcolumn, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.Reader dstream) - { - this(dstream, 1, 1, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader dstream, int startline, - int startcolumn, int buffersize) - { - inputStream = dstream; - line = startline; - column = startcolumn - 1; - - if (buffer == null || buffersize != buffer.length) - { - available = bufsize = buffersize; - buffer = new char[buffersize]; - bufline = new int[buffersize]; - bufcolumn = new int[buffersize]; - } - prevCharIsLF = prevCharIsCR = false; - tokenBegin = inBuf = maxNextCharInd = 0; - bufpos = -1; - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader dstream, int startline, - int startcolumn) - { - ReInit(dstream, startline, startcolumn, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.Reader dstream) - { - ReInit(dstream, 1, 1, 4096); - } - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, - int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException - { - this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, int startline, - int startcolumn, int buffersize) - { - this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, - int startcolumn) throws java.io.UnsupportedEncodingException - { - this(dstream, encoding, startline, startcolumn, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, int startline, - int startcolumn) - { - this(dstream, startline, startcolumn, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException - { - this(dstream, encoding, 1, 1, 4096); - } - - /** Constructor. */ - public SimpleCharStream(java.io.InputStream dstream) - { - this(dstream, 1, 1, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding, int startline, - int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException - { - ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, int startline, - int startcolumn, int buffersize) - { - ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException - { - ReInit(dstream, encoding, 1, 1, 4096); - } - - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream) - { - ReInit(dstream, 1, 1, 4096); - } - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, String encoding, int startline, - int startcolumn) throws java.io.UnsupportedEncodingException - { - ReInit(dstream, encoding, startline, startcolumn, 4096); - } - /** Reinitialise. */ - public void ReInit(java.io.InputStream dstream, int startline, - int startcolumn) - { - ReInit(dstream, startline, startcolumn, 4096); - } - /** Get token literal value. */ - public String GetImage() - { - if (bufpos >= tokenBegin) - return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); - else - return new String(buffer, tokenBegin, bufsize - tokenBegin) + - new String(buffer, 0, bufpos + 1); - } - - /** Get the suffix. */ - public char[] GetSuffix(int len) - { - char[] ret = new char[len]; - - if ((bufpos + 1) >= len) - System.arraycopy(buffer, bufpos - len + 1, ret, 0, len); - else - { - System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0, - len - bufpos - 1); - System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1); - } - - return ret; - } - - /** Reset buffer when finished. */ - public void Done() - { - buffer = null; - bufline = null; - bufcolumn = null; - } - - /** - * Method to adjust line and column numbers for the start of a token. - */ - public void adjustBeginLineColumn(int newLine, int newCol) - { - int start = tokenBegin; - int len; - - if (bufpos >= tokenBegin) - { - len = bufpos - tokenBegin + inBuf + 1; - } - else - { - len = bufsize - tokenBegin + bufpos + 1 + inBuf; - } - - int i = 0, j = 0, k = 0; - int nextColDiff = 0, columnDiff = 0; - - while (i < len && - bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) - { - bufline[j] = newLine; - nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; - bufcolumn[j] = newCol + columnDiff; - columnDiff = nextColDiff; - i++; - } - - if (i < len) - { - bufline[j] = newLine++; - bufcolumn[j] = newCol + columnDiff; - - while (i++ < len) - { - if (bufline[j = start % bufsize] != bufline[++start % bufsize]) - bufline[j] = newLine++; - else - bufline[j] = newLine; - } - } - - line = bufline[j]; - column = bufcolumn[j]; - } - -} -/* JavaCC - OriginalChecksum=43f2d208a6d06b879c3163cc1cc3e02b (do not edit this line) */ +/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.1 */ +/* JavaCCOptions:STATIC=false */ +package net.sourceforge.pmd.lang.ast; + +/** + * An implementation of interface CharStream, where the stream is assumed to + * contain only ASCII characters (without unicode processing). + */ + +public class SimpleCharStream implements CharStream +{ +/** 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) { tabSize = i; } + protected int getTabSize(int i) { return tabSize; } + + + protected void ExpandBuff(boolean wrapAround) + { + char[] newbuffer = new char[bufsize + 2048]; + int newbufline[] = new int[bufsize + 2048]; + int newbufcolumn[] = new int[bufsize + 2048]; + + try + { + if (wrapAround) + { + System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + System.arraycopy(buffer, 0, newbuffer, + bufsize - tokenBegin, bufpos); + buffer = newbuffer; + + System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos); + bufline = newbufline; + + System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos); + bufcolumn = newbufcolumn; + + maxNextCharInd = (bufpos += (bufsize - tokenBegin)); + } + else + { + System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + buffer = newbuffer; + + System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + bufline = newbufline; + + System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + bufcolumn = newbufcolumn; + + maxNextCharInd = (bufpos -= tokenBegin); + } + } + catch (Throwable t) + { + throw new Error(t.getMessage()); + } + + + bufsize += 2048; + available = bufsize; + tokenBegin = 0; + } + + protected void FillBuff() throws java.io.IOException + { + if (maxNextCharInd == available) + { + if (available == bufsize) + { + if (tokenBegin > 2048) + { + bufpos = maxNextCharInd = 0; + available = tokenBegin; + } + else if (tokenBegin < 0) + bufpos = maxNextCharInd = 0; + else + ExpandBuff(false); + } + else if (available > tokenBegin) + available = bufsize; + else if ((tokenBegin - available) < 2048) + ExpandBuff(true); + else + available = tokenBegin; + } + + int i; + try { + if ((i = inputStream.read(buffer, maxNextCharInd, + available - maxNextCharInd)) == -1) + { + inputStream.close(); + throw new java.io.IOException(); + } + else + maxNextCharInd += i; + return; + } + catch(java.io.IOException e) { + --bufpos; + backup(0); + if (tokenBegin == -1) + tokenBegin = bufpos; + throw e; + } + } + +/** Start. */ + public char BeginToken() throws java.io.IOException + { + tokenBegin = -1; + char c = readChar(); + tokenBegin = bufpos; + + return c; + } + + protected void UpdateLineColumn(char c) + { + column++; + + if (prevCharIsLF) + { + prevCharIsLF = false; + line += (column = 1); + } + else if (prevCharIsCR) + { + prevCharIsCR = false; + if (c == '\n') + { + prevCharIsLF = true; + } + else + line += (column = 1); + } + + switch (c) + { + case '\r' : + prevCharIsCR = true; + break; + case '\n' : + prevCharIsLF = true; + break; + case '\t' : + column--; + column += (tabSize - (column % tabSize)); + break; + default : + break; + } + + bufline[bufpos] = line; + bufcolumn[bufpos] = column; + } + +/** Read a character. */ + public char readChar() throws java.io.IOException + { + if (inBuf > 0) + { + --inBuf; + + if (++bufpos == bufsize) + bufpos = 0; + + return buffer[bufpos]; + } + + if (++bufpos >= maxNextCharInd) + FillBuff(); + + char c = buffer[bufpos]; + + UpdateLineColumn(c); + return c; + } + + /** + * @deprecated + * @see #getEndColumn + */ + + public int getColumn() { + return bufcolumn[bufpos]; + } + + /** + * @deprecated + * @see #getEndLine + */ + + public int getLine() { + return bufline[bufpos]; + } + + /** Get token end column number. */ + public int getEndColumn() { + return bufcolumn[bufpos]; + } + + /** Get token end line number. */ + public int getEndLine() { + return bufline[bufpos]; + } + + /** Get token beginning column number. */ + public int getBeginColumn() { + return bufcolumn[tokenBegin]; + } + + /** Get token beginning line number. */ + public int getBeginLine() { + return bufline[tokenBegin]; + } + +/** Backup a number of characters. */ + public void backup(int amount) { + + inBuf += amount; + if ((bufpos -= amount) < 0) + bufpos += bufsize; + } + + /** Constructor. */ + public SimpleCharStream(java.io.Reader dstream, int startline, + int startcolumn, int buffersize) + { + inputStream = dstream; + line = startline; + column = startcolumn - 1; + + available = bufsize = buffersize; + buffer = new char[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + } + + /** Constructor. */ + public SimpleCharStream(java.io.Reader dstream, int startline, + int startcolumn) + { + this(dstream, startline, startcolumn, 4096); + } + + /** Constructor. */ + public SimpleCharStream(java.io.Reader dstream) + { + this(dstream, 1, 1, 4096); + } + + /** Reinitialise. */ + public void ReInit(java.io.Reader dstream, int startline, + int startcolumn, int buffersize) + { + inputStream = dstream; + line = startline; + column = startcolumn - 1; + + if (buffer == null || buffersize != buffer.length) + { + available = bufsize = buffersize; + buffer = new char[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + } + prevCharIsLF = prevCharIsCR = false; + tokenBegin = inBuf = maxNextCharInd = 0; + bufpos = -1; + } + + /** Reinitialise. */ + public void ReInit(java.io.Reader dstream, int startline, + int startcolumn) + { + ReInit(dstream, startline, startcolumn, 4096); + } + + /** Reinitialise. */ + public void ReInit(java.io.Reader dstream) + { + ReInit(dstream, 1, 1, 4096); + } + /** Constructor. */ + public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, + int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException + { + this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); + } + + /** Constructor. */ + public SimpleCharStream(java.io.InputStream dstream, int startline, + int startcolumn, int buffersize) + { + this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); + } + + /** Constructor. */ + public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline, + int startcolumn) throws java.io.UnsupportedEncodingException + { + this(dstream, encoding, startline, startcolumn, 4096); + } + + /** Constructor. */ + public SimpleCharStream(java.io.InputStream dstream, int startline, + int startcolumn) + { + this(dstream, startline, startcolumn, 4096); + } + + /** Constructor. */ + public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException + { + this(dstream, encoding, 1, 1, 4096); + } + + /** Constructor. */ + public SimpleCharStream(java.io.InputStream dstream) + { + this(dstream, 1, 1, 4096); + } + + /** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, String encoding, int startline, + int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException + { + ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize); + } + + /** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, int startline, + int startcolumn, int buffersize) + { + ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize); + } + + /** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException + { + ReInit(dstream, encoding, 1, 1, 4096); + } + + /** Reinitialise. */ + public void ReInit(java.io.InputStream dstream) + { + ReInit(dstream, 1, 1, 4096); + } + /** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, String encoding, int startline, + int startcolumn) throws java.io.UnsupportedEncodingException + { + ReInit(dstream, encoding, startline, startcolumn, 4096); + } + /** Reinitialise. */ + public void ReInit(java.io.InputStream dstream, int startline, + int startcolumn) + { + ReInit(dstream, startline, startcolumn, 4096); + } + /** Get token literal value. */ + public String GetImage() + { + if (bufpos >= tokenBegin) + return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); + else + return new String(buffer, tokenBegin, bufsize - tokenBegin) + + new String(buffer, 0, bufpos + 1); + } + + /** Get the suffix. */ + public char[] GetSuffix(int len) + { + char[] ret = new char[len]; + + if ((bufpos + 1) >= len) + System.arraycopy(buffer, bufpos - len + 1, ret, 0, len); + else + { + System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0, + len - bufpos - 1); + System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1); + } + + return ret; + } + + /** Reset buffer when finished. */ + public void Done() + { + buffer = null; + bufline = null; + bufcolumn = null; + } + + /** + * Method to adjust line and column numbers for the start of a token. + */ + public void adjustBeginLineColumn(int newLine, int newCol) + { + int start = tokenBegin; + int len; + + if (bufpos >= tokenBegin) + { + len = bufpos - tokenBegin + inBuf + 1; + } + else + { + len = bufsize - tokenBegin + bufpos + 1 + inBuf; + } + + int i = 0, j = 0, k = 0; + int nextColDiff = 0, columnDiff = 0; + + while (i < len && + bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) + { + bufline[j] = newLine; + nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; + bufcolumn[j] = newCol + columnDiff; + columnDiff = nextColDiff; + i++; + } + + if (i < len) + { + bufline[j] = newLine++; + bufcolumn[j] = newCol + columnDiff; + + while (i++ < len) + { + if (bufline[j = start % bufsize] != bufline[++start % bufsize]) + bufline[j] = newLine++; + else + bufline[j] = newLine; + } + } + + line = bufline[j]; + column = bufcolumn[j]; + } + +} +/* JavaCC - OriginalChecksum=81d99296909abd2c9b4b1e2d27786d9e (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/ast/TokenMgrError.java b/pmd/src/net/sourceforge/pmd/lang/ast/TokenMgrError.java index 75bdd31e45..7930b88bfd 100644 --- a/pmd/src/net/sourceforge/pmd/lang/ast/TokenMgrError.java +++ b/pmd/src/net/sourceforge/pmd/lang/ast/TokenMgrError.java @@ -1,140 +1,140 @@ -/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 4.1 */ -/* JavaCCOptions: */ -package net.sourceforge.pmd.lang.ast; - -/** Token Manager Error. */ -public class TokenMgrError extends RuntimeException -{ - - /* - * Ordinals for various reasons why an Error of this type can be thrown. - */ - - /** - * Lexical error occurred. - */ - public static final int LEXICAL_ERROR = 0; - - /** - * An attempt was made to create a second instance of a static token manager. - */ - public static final int STATIC_LEXER_ERROR = 1; - - /** - * Tried to change to an invalid lexical state. - */ - public static final int INVALID_LEXICAL_STATE = 2; - - /** - * Detected (and bailed out of) an infinite loop in the token manager. - */ - public static final int LOOP_DETECTED = 3; - - /** - * Indicates the reason why the exception is thrown. It will have - * one of the above 4 values. - */ - int errorCode; - - /** - * Replaces unprintable characters by their escaped (or unicode escaped) - * equivalents in the given string - */ - protected static final String addEscapes(String str) { - StringBuffer retval = new StringBuffer(); - char ch; - for (int i = 0; i < str.length(); i++) { - switch (str.charAt(i)) - { - case 0 : - continue; - case '\b': - retval.append("\\b"); - continue; - case '\t': - retval.append("\\t"); - continue; - case '\n': - retval.append("\\n"); - continue; - case '\f': - retval.append("\\f"); - continue; - case '\r': - retval.append("\\r"); - continue; - case '\"': - retval.append("\\\""); - continue; - case '\'': - retval.append("\\\'"); - continue; - case '\\': - retval.append("\\\\"); - continue; - default: - if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { - String s = "0000" + Integer.toString(ch, 16); - retval.append("\\u" + s.substring(s.length() - 4, s.length())); - } else { - retval.append(ch); - } - continue; - } - } - return retval.toString(); - } - - /** - * Returns a detailed message for the Error when it is thrown by the - * token manager to indicate a lexical error. - * Parameters : - * EOFSeen : indicates if EOF caused the lexical error - * curLexState : lexical state in which this error occurred - * errorLine : line number when the error occurred - * errorColumn : column number when the error occurred - * errorAfter : prefix that was seen before this error occurred - * curchar : the offending character - * Note: You can customize the lexical error message by modifying this method. - */ - protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) { - return("Lexical error in file " + AbstractTokenManager.getFileName() + " at line " + - errorLine + ", column " + - errorColumn + ". Encountered: " + - (EOFSeen ? " " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") + - "after : \"" + addEscapes(errorAfter) + "\""); - } - - /** - * You can also modify the body of this method to customize your error messages. - * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not - * of end-users concern, so you can return something like : - * - * "Internal Error : Please file a bug report .... " - * - * from this method for such cases in the release version of your parser. - */ - public String getMessage() { - return super.getMessage(); - } - - /* - * Constructors of various flavors follow. - */ - - /** No arg constructor. */ - public TokenMgrError() { - } - - /** Constructor with message and reason. */ - public TokenMgrError(String message, int reason) { - super(message); - errorCode = reason; - } - - /** Full Constructor. */ - public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { - this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); - } -} -/* JavaCC - OriginalChecksum=011612e408dcb1be5f5ce2e2f31344d0 (do not edit this line) */ +/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 4.1 */ +/* JavaCCOptions: */ +package net.sourceforge.pmd.lang.ast; + +/** Token Manager Error. */ +public class TokenMgrError extends RuntimeException +{ + + /* + * Ordinals for various reasons why an Error of this type can be thrown. + */ + + /** + * Lexical error occurred. + */ + public static final int LEXICAL_ERROR = 0; + + /** + * An attempt was made to create a second instance of a static token manager. + */ + public static final int STATIC_LEXER_ERROR = 1; + + /** + * Tried to change to an invalid lexical state. + */ + public static final int INVALID_LEXICAL_STATE = 2; + + /** + * Detected (and bailed out of) an infinite loop in the token manager. + */ + public static final int LOOP_DETECTED = 3; + + /** + * Indicates the reason why the exception is thrown. It will have + * one of the above 4 values. + */ + int errorCode; + + /** + * Replaces unprintable characters by their escaped (or unicode escaped) + * equivalents in the given string + */ + protected static final String addEscapes(String str) { + StringBuffer retval = new StringBuffer(); + char ch; + for (int i = 0; i < str.length(); i++) { + switch (str.charAt(i)) + { + case 0 : + continue; + case '\b': + retval.append("\\b"); + continue; + case '\t': + retval.append("\\t"); + continue; + case '\n': + retval.append("\\n"); + continue; + case '\f': + retval.append("\\f"); + continue; + case '\r': + retval.append("\\r"); + continue; + case '\"': + retval.append("\\\""); + continue; + case '\'': + retval.append("\\\'"); + continue; + case '\\': + retval.append("\\\\"); + continue; + default: + if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) { + String s = "0000" + Integer.toString(ch, 16); + retval.append("\\u" + s.substring(s.length() - 4, s.length())); + } else { + retval.append(ch); + } + continue; + } + } + return retval.toString(); + } + + /** + * Returns a detailed message for the Error when it is thrown by the + * token manager to indicate a lexical error. + * Parameters : + * EOFSeen : indicates if EOF caused the lexical error + * curLexState : lexical state in which this error occurred + * errorLine : line number when the error occurred + * errorColumn : column number when the error occurred + * errorAfter : prefix that was seen before this error occurred + * curchar : the offending character + * Note: You can customize the lexical error message by modifying this method. + */ + protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) { + return("Lexical error in file " + AbstractTokenManager.getFileName() + " at line " + + errorLine + ", column " + + errorColumn + ". Encountered: " + + (EOFSeen ? " " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") + + "after : \"" + addEscapes(errorAfter) + "\""); + } + + /** + * You can also modify the body of this method to customize your error messages. + * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not + * of end-users concern, so you can return something like : + * + * "Internal Error : Please file a bug report .... " + * + * from this method for such cases in the release version of your parser. + */ + public String getMessage() { + return super.getMessage(); + } + + /* + * Constructors of various flavors follow. + */ + + /** No arg constructor. */ + public TokenMgrError() { + } + + /** Constructor with message and reason. */ + public TokenMgrError(String message, int reason) { + super(message); + errorCode = reason; + } + + /** Full Constructor. */ + public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { + this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason); + } +} +/* JavaCC - OriginalChecksum=887ef629387efaf1cf31f0dc7c077049 (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserConstants.java b/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserConstants.java index 55ea4900ed..f100a3375e 100644 --- a/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserConstants.java +++ b/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserConstants.java @@ -1,397 +1,397 @@ -/* Generated By:JavaCC: Do not edit this line. CppParserConstants.java */ -package net.sourceforge.pmd.lang.cpp.ast; - - -/** - * Token literal values and constants. - * Generated by org.javacc.parser.OtherFilesGen#start() - */ -public interface CppParserConstants { - - /** End of File. */ - int EOF = 0; - /** RegularExpression Id. */ - int LCURLYBRACE = 19; - /** RegularExpression Id. */ - int RCURLYBRACE = 20; - /** RegularExpression Id. */ - int LSQUAREBRACKET = 21; - /** RegularExpression Id. */ - int RSQUAREBRACKET = 22; - /** RegularExpression Id. */ - int LPARENTHESIS = 23; - /** RegularExpression Id. */ - int RPARENTHESIS = 24; - /** RegularExpression Id. */ - int SCOPE = 25; - /** RegularExpression Id. */ - int COLON = 26; - /** RegularExpression Id. */ - int SEMICOLON = 27; - /** RegularExpression Id. */ - int COMMA = 28; - /** RegularExpression Id. */ - int QUESTIONMARK = 29; - /** RegularExpression Id. */ - int ELLIPSIS = 30; - /** RegularExpression Id. */ - int ASSIGNEQUAL = 31; - /** RegularExpression Id. */ - int TIMESEQUAL = 32; - /** RegularExpression Id. */ - int DIVIDEEQUAL = 33; - /** RegularExpression Id. */ - int MODEQUAL = 34; - /** RegularExpression Id. */ - int PLUSEQUAL = 35; - /** RegularExpression Id. */ - int MINUSEQUAL = 36; - /** RegularExpression Id. */ - int SHIFTLEFTEQUAL = 37; - /** RegularExpression Id. */ - int SHIFTRIGHTEQUAL = 38; - /** RegularExpression Id. */ - int BITWISEANDEQUAL = 39; - /** RegularExpression Id. */ - int BITWISEXOREQUAL = 40; - /** RegularExpression Id. */ - int BITWISEOREQUAL = 41; - /** RegularExpression Id. */ - int OR = 42; - /** RegularExpression Id. */ - int AND = 43; - /** RegularExpression Id. */ - int BITWISEOR = 44; - /** RegularExpression Id. */ - int BITWISEXOR = 45; - /** RegularExpression Id. */ - int AMPERSAND = 46; - /** RegularExpression Id. */ - int EQUAL = 47; - /** RegularExpression Id. */ - int NOTEQUAL = 48; - /** RegularExpression Id. */ - int LESSTHAN = 49; - /** RegularExpression Id. */ - int GREATERTHAN = 50; - /** RegularExpression Id. */ - int LESSTHANOREQUALTO = 51; - /** RegularExpression Id. */ - int GREATERTHANOREQUALTO = 52; - /** RegularExpression Id. */ - int SHIFTLEFT = 53; - /** RegularExpression Id. */ - int SHIFTRIGHT = 54; - /** RegularExpression Id. */ - int PLUS = 55; - /** RegularExpression Id. */ - int MINUS = 56; - /** RegularExpression Id. */ - int STAR = 57; - /** RegularExpression Id. */ - int DIVIDE = 58; - /** RegularExpression Id. */ - int MOD = 59; - /** RegularExpression Id. */ - int PLUSPLUS = 60; - /** RegularExpression Id. */ - int MINUSMINUS = 61; - /** RegularExpression Id. */ - int TILDE = 62; - /** RegularExpression Id. */ - int NOT = 63; - /** RegularExpression Id. */ - int DOT = 64; - /** RegularExpression Id. */ - int POINTERTO = 65; - /** RegularExpression Id. */ - int DOTSTAR = 66; - /** RegularExpression Id. */ - int ARROWSTAR = 67; - /** RegularExpression Id. */ - int AUTO = 68; - /** RegularExpression Id. */ - int BREAK = 69; - /** RegularExpression Id. */ - int CASE = 70; - /** RegularExpression Id. */ - int CATCH = 71; - /** RegularExpression Id. */ - int CHAR = 72; - /** RegularExpression Id. */ - int CONST = 73; - /** RegularExpression Id. */ - int CONTINUE = 74; - /** RegularExpression Id. */ - int _DEFAULT = 75; - /** RegularExpression Id. */ - int DELETE = 76; - /** RegularExpression Id. */ - int DO = 77; - /** RegularExpression Id. */ - int DOUBLE = 78; - /** RegularExpression Id. */ - int ELSE = 79; - /** RegularExpression Id. */ - int ENUM = 80; - /** RegularExpression Id. */ - int EXTERN = 81; - /** RegularExpression Id. */ - int FLOAT = 82; - /** RegularExpression Id. */ - int FOR = 83; - /** RegularExpression Id. */ - int FRIEND = 84; - /** RegularExpression Id. */ - int GOTO = 85; - /** RegularExpression Id. */ - int IF = 86; - /** RegularExpression Id. */ - int INLINE = 87; - /** RegularExpression Id. */ - int INT = 88; - /** RegularExpression Id. */ - int LONG = 89; - /** RegularExpression Id. */ - int NEW = 90; - /** RegularExpression Id. */ - int PRIVATE = 91; - /** RegularExpression Id. */ - int PROTECTED = 92; - /** RegularExpression Id. */ - int PUBLIC = 93; - /** RegularExpression Id. */ - int REDECLARED = 94; - /** RegularExpression Id. */ - int REGISTER = 95; - /** RegularExpression Id. */ - int RETURN = 96; - /** RegularExpression Id. */ - int SHORT = 97; - /** RegularExpression Id. */ - int SIGNED = 98; - /** RegularExpression Id. */ - int SIZEOF = 99; - /** RegularExpression Id. */ - int STATIC = 100; - /** RegularExpression Id. */ - int STRUCT = 101; - /** RegularExpression Id. */ - int CLASS = 102; - /** RegularExpression Id. */ - int SWITCH = 103; - /** RegularExpression Id. */ - int TEMPLATE = 104; - /** RegularExpression Id. */ - int THIS = 105; - /** RegularExpression Id. */ - int TRY = 106; - /** RegularExpression Id. */ - int TYPEDEF = 107; - /** RegularExpression Id. */ - int UNION = 108; - /** RegularExpression Id. */ - int UNSIGNED = 109; - /** RegularExpression Id. */ - int VIRTUAL = 110; - /** RegularExpression Id. */ - int VOID = 111; - /** RegularExpression Id. */ - int VOLATILE = 112; - /** RegularExpression Id. */ - int WHILE = 113; - /** RegularExpression Id. */ - int OPERATOR = 114; - /** RegularExpression Id. */ - int TRUETOK = 115; - /** RegularExpression Id. */ - int FALSETOK = 116; - /** RegularExpression Id. */ - int THROW = 117; - /** RegularExpression Id. */ - int OCTALINT = 118; - /** RegularExpression Id. */ - int OCTALLONG = 119; - /** RegularExpression Id. */ - int UNSIGNED_OCTALINT = 120; - /** RegularExpression Id. */ - int UNSIGNED_OCTALLONG = 121; - /** RegularExpression Id. */ - int DECIMALINT = 122; - /** RegularExpression Id. */ - int DECIMALLONG = 123; - /** RegularExpression Id. */ - int UNSIGNED_DECIMALINT = 124; - /** RegularExpression Id. */ - int UNSIGNED_DECIMALLONG = 125; - /** RegularExpression Id. */ - int HEXADECIMALINT = 126; - /** RegularExpression Id. */ - int HEXADECIMALLONG = 127; - /** RegularExpression Id. */ - int UNSIGNED_HEXADECIMALINT = 128; - /** RegularExpression Id. */ - int UNSIGNED_HEXADECIMALLONG = 129; - /** RegularExpression Id. */ - int FLOATONE = 130; - /** RegularExpression Id. */ - int FLOATTWO = 131; - /** RegularExpression Id. */ - int CHARACTER = 132; - /** RegularExpression Id. */ - int STRING = 133; - /** RegularExpression Id. */ - int ID = 135; - - /** Lexical state. */ - int DEFAULT = 0; - /** Lexical state. */ - int IN_LINE_COMMENT = 1; - /** Lexical state. */ - int IN_COMMENT = 2; - /** Lexical state. */ - int IN_PREPROCESSOR_OUTPUT_COMMENT = 3; - /** Lexical state. */ - int PREPROCESSOR_OUTPUT = 4; - - /** Literal token values. */ - String[] tokenImage = { - "", - "\" \"", - "\"\\f\"", - "\"\\t\"", - "\"\\r\\n\"", - "\"\\n\"", - "\"//\"", - "\"/*\"", - "\"#\"", - "\"\\n\"", - "", - "\"*/\"", - "", - "\"*/\"", - "\"\\n\"", - "\"/*\"", - "\"\\\\\\n\"", - "\"\\\\\\r\\n\"", - "", - "\"{\"", - "\"}\"", - "\"[\"", - "\"]\"", - "\"(\"", - "\")\"", - "\"::\"", - "\":\"", - "\";\"", - "\",\"", - "\"?\"", - "\"...\"", - "\"=\"", - "\"*=\"", - "\"/=\"", - "\"%=\"", - "\"+=\"", - "\"-=\"", - "\"<<=\"", - "\">>=\"", - "\"&=\"", - "\"^=\"", - "\"|=\"", - "\"||\"", - "\"&&\"", - "\"|\"", - "\"^\"", - "\"&\"", - "\"==\"", - "\"!=\"", - "\"<\"", - "\">\"", - "\"<=\"", - "\">=\"", - "\"<<\"", - "\">>\"", - "\"+\"", - "\"-\"", - "\"*\"", - "\"/\"", - "\"%\"", - "\"++\"", - "\"--\"", - "\"~\"", - "\"!\"", - "\".\"", - "\"->\"", - "\".*\"", - "\"->*\"", - "\"auto\"", - "\"break\"", - "\"case\"", - "\"catch\"", - "\"char\"", - "\"const\"", - "\"continue\"", - "\"default\"", - "\"delete\"", - "\"do\"", - "\"double\"", - "\"else\"", - "\"enum\"", - "\"extern\"", - "\"float\"", - "\"for\"", - "\"friend\"", - "\"goto\"", - "\"if\"", - "\"inline\"", - "\"int\"", - "\"long\"", - "\"new\"", - "\"private\"", - "\"protected\"", - "\"public\"", - "\"redeclared\"", - "\"register\"", - "\"return\"", - "\"short\"", - "\"signed\"", - "\"sizeof\"", - "\"static\"", - "\"struct\"", - "\"class\"", - "\"switch\"", - "\"template\"", - "\"this\"", - "\"try\"", - "\"typedef\"", - "\"union\"", - "\"unsigned\"", - "\"virtual\"", - "\"void\"", - "\"volatile\"", - "\"while\"", - "\"operator\"", - "\"true\"", - "\"false\"", - "\"throw\"", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "\"finally\"", - "", - }; - -} +/* Generated By:JavaCC: Do not edit this line. CppParserConstants.java */ +package net.sourceforge.pmd.lang.cpp.ast; + + +/** + * Token literal values and constants. + * Generated by org.javacc.parser.OtherFilesGen#start() + */ +public interface CppParserConstants { + + /** End of File. */ + int EOF = 0; + /** RegularExpression Id. */ + int LCURLYBRACE = 19; + /** RegularExpression Id. */ + int RCURLYBRACE = 20; + /** RegularExpression Id. */ + int LSQUAREBRACKET = 21; + /** RegularExpression Id. */ + int RSQUAREBRACKET = 22; + /** RegularExpression Id. */ + int LPARENTHESIS = 23; + /** RegularExpression Id. */ + int RPARENTHESIS = 24; + /** RegularExpression Id. */ + int SCOPE = 25; + /** RegularExpression Id. */ + int COLON = 26; + /** RegularExpression Id. */ + int SEMICOLON = 27; + /** RegularExpression Id. */ + int COMMA = 28; + /** RegularExpression Id. */ + int QUESTIONMARK = 29; + /** RegularExpression Id. */ + int ELLIPSIS = 30; + /** RegularExpression Id. */ + int ASSIGNEQUAL = 31; + /** RegularExpression Id. */ + int TIMESEQUAL = 32; + /** RegularExpression Id. */ + int DIVIDEEQUAL = 33; + /** RegularExpression Id. */ + int MODEQUAL = 34; + /** RegularExpression Id. */ + int PLUSEQUAL = 35; + /** RegularExpression Id. */ + int MINUSEQUAL = 36; + /** RegularExpression Id. */ + int SHIFTLEFTEQUAL = 37; + /** RegularExpression Id. */ + int SHIFTRIGHTEQUAL = 38; + /** RegularExpression Id. */ + int BITWISEANDEQUAL = 39; + /** RegularExpression Id. */ + int BITWISEXOREQUAL = 40; + /** RegularExpression Id. */ + int BITWISEOREQUAL = 41; + /** RegularExpression Id. */ + int OR = 42; + /** RegularExpression Id. */ + int AND = 43; + /** RegularExpression Id. */ + int BITWISEOR = 44; + /** RegularExpression Id. */ + int BITWISEXOR = 45; + /** RegularExpression Id. */ + int AMPERSAND = 46; + /** RegularExpression Id. */ + int EQUAL = 47; + /** RegularExpression Id. */ + int NOTEQUAL = 48; + /** RegularExpression Id. */ + int LESSTHAN = 49; + /** RegularExpression Id. */ + int GREATERTHAN = 50; + /** RegularExpression Id. */ + int LESSTHANOREQUALTO = 51; + /** RegularExpression Id. */ + int GREATERTHANOREQUALTO = 52; + /** RegularExpression Id. */ + int SHIFTLEFT = 53; + /** RegularExpression Id. */ + int SHIFTRIGHT = 54; + /** RegularExpression Id. */ + int PLUS = 55; + /** RegularExpression Id. */ + int MINUS = 56; + /** RegularExpression Id. */ + int STAR = 57; + /** RegularExpression Id. */ + int DIVIDE = 58; + /** RegularExpression Id. */ + int MOD = 59; + /** RegularExpression Id. */ + int PLUSPLUS = 60; + /** RegularExpression Id. */ + int MINUSMINUS = 61; + /** RegularExpression Id. */ + int TILDE = 62; + /** RegularExpression Id. */ + int NOT = 63; + /** RegularExpression Id. */ + int DOT = 64; + /** RegularExpression Id. */ + int POINTERTO = 65; + /** RegularExpression Id. */ + int DOTSTAR = 66; + /** RegularExpression Id. */ + int ARROWSTAR = 67; + /** RegularExpression Id. */ + int AUTO = 68; + /** RegularExpression Id. */ + int BREAK = 69; + /** RegularExpression Id. */ + int CASE = 70; + /** RegularExpression Id. */ + int CATCH = 71; + /** RegularExpression Id. */ + int CHAR = 72; + /** RegularExpression Id. */ + int CONST = 73; + /** RegularExpression Id. */ + int CONTINUE = 74; + /** RegularExpression Id. */ + int _DEFAULT = 75; + /** RegularExpression Id. */ + int DELETE = 76; + /** RegularExpression Id. */ + int DO = 77; + /** RegularExpression Id. */ + int DOUBLE = 78; + /** RegularExpression Id. */ + int ELSE = 79; + /** RegularExpression Id. */ + int ENUM = 80; + /** RegularExpression Id. */ + int EXTERN = 81; + /** RegularExpression Id. */ + int FLOAT = 82; + /** RegularExpression Id. */ + int FOR = 83; + /** RegularExpression Id. */ + int FRIEND = 84; + /** RegularExpression Id. */ + int GOTO = 85; + /** RegularExpression Id. */ + int IF = 86; + /** RegularExpression Id. */ + int INLINE = 87; + /** RegularExpression Id. */ + int INT = 88; + /** RegularExpression Id. */ + int LONG = 89; + /** RegularExpression Id. */ + int NEW = 90; + /** RegularExpression Id. */ + int PRIVATE = 91; + /** RegularExpression Id. */ + int PROTECTED = 92; + /** RegularExpression Id. */ + int PUBLIC = 93; + /** RegularExpression Id. */ + int REDECLARED = 94; + /** RegularExpression Id. */ + int REGISTER = 95; + /** RegularExpression Id. */ + int RETURN = 96; + /** RegularExpression Id. */ + int SHORT = 97; + /** RegularExpression Id. */ + int SIGNED = 98; + /** RegularExpression Id. */ + int SIZEOF = 99; + /** RegularExpression Id. */ + int STATIC = 100; + /** RegularExpression Id. */ + int STRUCT = 101; + /** RegularExpression Id. */ + int CLASS = 102; + /** RegularExpression Id. */ + int SWITCH = 103; + /** RegularExpression Id. */ + int TEMPLATE = 104; + /** RegularExpression Id. */ + int THIS = 105; + /** RegularExpression Id. */ + int TRY = 106; + /** RegularExpression Id. */ + int TYPEDEF = 107; + /** RegularExpression Id. */ + int UNION = 108; + /** RegularExpression Id. */ + int UNSIGNED = 109; + /** RegularExpression Id. */ + int VIRTUAL = 110; + /** RegularExpression Id. */ + int VOID = 111; + /** RegularExpression Id. */ + int VOLATILE = 112; + /** RegularExpression Id. */ + int WHILE = 113; + /** RegularExpression Id. */ + int OPERATOR = 114; + /** RegularExpression Id. */ + int TRUETOK = 115; + /** RegularExpression Id. */ + int FALSETOK = 116; + /** RegularExpression Id. */ + int THROW = 117; + /** RegularExpression Id. */ + int OCTALINT = 118; + /** RegularExpression Id. */ + int OCTALLONG = 119; + /** RegularExpression Id. */ + int UNSIGNED_OCTALINT = 120; + /** RegularExpression Id. */ + int UNSIGNED_OCTALLONG = 121; + /** RegularExpression Id. */ + int DECIMALINT = 122; + /** RegularExpression Id. */ + int DECIMALLONG = 123; + /** RegularExpression Id. */ + int UNSIGNED_DECIMALINT = 124; + /** RegularExpression Id. */ + int UNSIGNED_DECIMALLONG = 125; + /** RegularExpression Id. */ + int HEXADECIMALINT = 126; + /** RegularExpression Id. */ + int HEXADECIMALLONG = 127; + /** RegularExpression Id. */ + int UNSIGNED_HEXADECIMALINT = 128; + /** RegularExpression Id. */ + int UNSIGNED_HEXADECIMALLONG = 129; + /** RegularExpression Id. */ + int FLOATONE = 130; + /** RegularExpression Id. */ + int FLOATTWO = 131; + /** RegularExpression Id. */ + int CHARACTER = 132; + /** RegularExpression Id. */ + int STRING = 133; + /** RegularExpression Id. */ + int ID = 135; + + /** Lexical state. */ + int DEFAULT = 0; + /** Lexical state. */ + int IN_LINE_COMMENT = 1; + /** Lexical state. */ + int IN_COMMENT = 2; + /** Lexical state. */ + int IN_PREPROCESSOR_OUTPUT_COMMENT = 3; + /** Lexical state. */ + int PREPROCESSOR_OUTPUT = 4; + + /** Literal token values. */ + String[] tokenImage = { + "", + "\" \"", + "\"\\f\"", + "\"\\t\"", + "\"\\r\\n\"", + "\"\\n\"", + "\"//\"", + "\"/*\"", + "\"#\"", + "\"\\n\"", + "", + "\"*/\"", + "", + "\"*/\"", + "\"\\n\"", + "\"/*\"", + "\"\\\\\\n\"", + "\"\\\\\\r\\n\"", + "", + "\"{\"", + "\"}\"", + "\"[\"", + "\"]\"", + "\"(\"", + "\")\"", + "\"::\"", + "\":\"", + "\";\"", + "\",\"", + "\"?\"", + "\"...\"", + "\"=\"", + "\"*=\"", + "\"/=\"", + "\"%=\"", + "\"+=\"", + "\"-=\"", + "\"<<=\"", + "\">>=\"", + "\"&=\"", + "\"^=\"", + "\"|=\"", + "\"||\"", + "\"&&\"", + "\"|\"", + "\"^\"", + "\"&\"", + "\"==\"", + "\"!=\"", + "\"<\"", + "\">\"", + "\"<=\"", + "\">=\"", + "\"<<\"", + "\">>\"", + "\"+\"", + "\"-\"", + "\"*\"", + "\"/\"", + "\"%\"", + "\"++\"", + "\"--\"", + "\"~\"", + "\"!\"", + "\".\"", + "\"->\"", + "\".*\"", + "\"->*\"", + "\"auto\"", + "\"break\"", + "\"case\"", + "\"catch\"", + "\"char\"", + "\"const\"", + "\"continue\"", + "\"default\"", + "\"delete\"", + "\"do\"", + "\"double\"", + "\"else\"", + "\"enum\"", + "\"extern\"", + "\"float\"", + "\"for\"", + "\"friend\"", + "\"goto\"", + "\"if\"", + "\"inline\"", + "\"int\"", + "\"long\"", + "\"new\"", + "\"private\"", + "\"protected\"", + "\"public\"", + "\"redeclared\"", + "\"register\"", + "\"return\"", + "\"short\"", + "\"signed\"", + "\"sizeof\"", + "\"static\"", + "\"struct\"", + "\"class\"", + "\"switch\"", + "\"template\"", + "\"this\"", + "\"try\"", + "\"typedef\"", + "\"union\"", + "\"unsigned\"", + "\"virtual\"", + "\"void\"", + "\"volatile\"", + "\"while\"", + "\"operator\"", + "\"true\"", + "\"false\"", + "\"throw\"", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\"finally\"", + "", + }; + +} diff --git a/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserTokenManager.java b/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserTokenManager.java index 57e44abbcb..0e3ce1305c 100644 --- a/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserTokenManager.java +++ b/pmd/src/net/sourceforge/pmd/lang/cpp/ast/CppParserTokenManager.java @@ -1,1680 +1,1680 @@ -/* Generated By:JavaCC: Do not edit this line. CppParserTokenManager.java */ -package net.sourceforge.pmd.lang.cpp.ast; -import net.sourceforge.pmd.lang.ast.CharStream; -import net.sourceforge.pmd.lang.ast.TokenMgrError; - -/** Token Manager. */ -public class CppParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager implements CppParserConstants -{ - - /** Debug output. */ - public java.io.PrintStream debugStream = System.out; - /** Set debug output. */ - public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } -private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2) -{ - switch (pos) - { - case 0: - if ((active1 & 0x3ffffffffffff0L) != 0L || (active2 & 0x40L) != 0L) - { - jjmatchedKind = 135; - return 29; - } - if ((active0 & 0x40000000L) != 0L || (active1 & 0x5L) != 0L) - return 1; - return -1; - case 1: - if ((active1 & 0x3fffffffbf9ff0L) != 0L || (active2 & 0x40L) != 0L) - { - if (jjmatchedPos != 1) - { - jjmatchedKind = 135; - jjmatchedPos = 1; - } - return 29; - } - if ((active1 & 0x406000L) != 0L) - return 29; - return -1; - case 2: - if ((active1 & 0x3ffbfffab7dff0L) != 0L || (active2 & 0x40L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 2; - return 29; - } - if ((active1 & 0x40005080000L) != 0L) - return 29; - return -1; - case 3: - if ((active1 & 0x3779fff8965ea0L) != 0L || (active2 & 0x40L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 3; - return 29; - } - if ((active1 & 0x8820002218150L) != 0L) - return 29; - return -1; - case 4: - if ((active1 & 0x569bdf8925c00L) != 0L || (active2 & 0x40L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 4; - return 29; - } - if ((active1 & 0x321042000402a0L) != 0L) - return 29; - return -1; - case 5: - if ((active1 & 0x56900d8000c00L) != 0L || (active2 & 0x40L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 5; - return 29; - } - if ((active1 & 0xbd20925000L) != 0L) - return 29; - return -1; - case 6: - if ((active1 & 0x52100d0000400L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 6; - return 29; - } - if ((active1 & 0x480008000800L) != 0L || (active2 & 0x40L) != 0L) - return 29; - return -1; - case 7: - if ((active1 & 0x50000000L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 7; - return 29; - } - if ((active1 & 0x5210080000400L) != 0L) - return 29; - return -1; - case 8: - if ((active1 & 0x40000000L) != 0L) - { - jjmatchedKind = 135; - jjmatchedPos = 8; - return 29; - } - if ((active1 & 0x10000000L) != 0L) - return 29; - return -1; - default : - return -1; - } -} -private final int jjStartNfa_0(int pos, long active0, long active1, long active2) -{ - return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1); -} -private int jjStopAtPos(int pos, int kind) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - return pos + 1; -} -private int jjMoveStringLiteralDfa0_0() -{ - switch(curChar) - { - case 13: - return jjMoveStringLiteralDfa1_0(0x10L, 0x0L, 0x0L); - case 33: - jjmatchedKind = 63; - return jjMoveStringLiteralDfa1_0(0x1000000000000L, 0x0L, 0x0L); - case 35: - return jjStopAtPos(0, 8); - case 37: - jjmatchedKind = 59; - return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L, 0x0L); - case 38: - jjmatchedKind = 46; - return jjMoveStringLiteralDfa1_0(0x88000000000L, 0x0L, 0x0L); - case 40: - return jjStopAtPos(0, 23); - case 41: - return jjStopAtPos(0, 24); - case 42: - jjmatchedKind = 57; - return jjMoveStringLiteralDfa1_0(0x100000000L, 0x0L, 0x0L); - case 43: - jjmatchedKind = 55; - return jjMoveStringLiteralDfa1_0(0x1000000800000000L, 0x0L, 0x0L); - case 44: - return jjStopAtPos(0, 28); - case 45: - jjmatchedKind = 56; - return jjMoveStringLiteralDfa1_0(0x2000001000000000L, 0xaL, 0x0L); - case 46: - jjmatchedKind = 64; - return jjMoveStringLiteralDfa1_0(0x40000000L, 0x4L, 0x0L); - case 47: - jjmatchedKind = 58; - return jjMoveStringLiteralDfa1_0(0x2000000c0L, 0x0L, 0x0L); - case 58: - jjmatchedKind = 26; - return jjMoveStringLiteralDfa1_0(0x2000000L, 0x0L, 0x0L); - case 59: - return jjStopAtPos(0, 27); - case 60: - jjmatchedKind = 49; - return jjMoveStringLiteralDfa1_0(0x28002000000000L, 0x0L, 0x0L); - case 61: - jjmatchedKind = 31; - return jjMoveStringLiteralDfa1_0(0x800000000000L, 0x0L, 0x0L); - case 62: - jjmatchedKind = 50; - return jjMoveStringLiteralDfa1_0(0x50004000000000L, 0x0L, 0x0L); - case 63: - return jjStopAtPos(0, 29); - case 91: - return jjStopAtPos(0, 21); - case 93: - return jjStopAtPos(0, 22); - case 94: - jjmatchedKind = 45; - return jjMoveStringLiteralDfa1_0(0x10000000000L, 0x0L, 0x0L); - case 97: - return jjMoveStringLiteralDfa1_0(0x0L, 0x10L, 0x0L); - case 98: - return jjMoveStringLiteralDfa1_0(0x0L, 0x20L, 0x0L); - case 99: - return jjMoveStringLiteralDfa1_0(0x0L, 0x40000007c0L, 0x0L); - case 100: - return jjMoveStringLiteralDfa1_0(0x0L, 0x7800L, 0x0L); - case 101: - return jjMoveStringLiteralDfa1_0(0x0L, 0x38000L, 0x0L); - case 102: - return jjMoveStringLiteralDfa1_0(0x0L, 0x100000001c0000L, 0x40L); - case 103: - return jjMoveStringLiteralDfa1_0(0x0L, 0x200000L, 0x0L); - case 105: - return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000L, 0x0L); - case 108: - return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000L, 0x0L); - case 110: - return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000L, 0x0L); - case 111: - return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000000000L, 0x0L); - case 112: - return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000L, 0x0L); - case 114: - return jjMoveStringLiteralDfa1_0(0x0L, 0x1c0000000L, 0x0L); - case 115: - return jjMoveStringLiteralDfa1_0(0x0L, 0xbe00000000L, 0x0L); - case 116: - return jjMoveStringLiteralDfa1_0(0x0L, 0x280f0000000000L, 0x0L); - case 117: - return jjMoveStringLiteralDfa1_0(0x0L, 0x300000000000L, 0x0L); - case 118: - return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000L, 0x0L); - case 119: - return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000L, 0x0L); - case 123: - return jjStopAtPos(0, 19); - case 124: - jjmatchedKind = 44; - return jjMoveStringLiteralDfa1_0(0x60000000000L, 0x0L, 0x0L); - case 125: - return jjStopAtPos(0, 20); - case 126: - return jjStopAtPos(0, 62); - default : - return jjMoveNfa_0(28, 0); - } -} -private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(0, active0, active1, active2); - return 1; - } - switch(curChar) - { - case 10: - if ((active0 & 0x10L) != 0L) - return jjStopAtPos(1, 4); - break; - case 38: - if ((active0 & 0x80000000000L) != 0L) - return jjStopAtPos(1, 43); - break; - case 42: - if ((active0 & 0x80L) != 0L) - return jjStopAtPos(1, 7); - else if ((active1 & 0x4L) != 0L) - return jjStopAtPos(1, 66); - break; - case 43: - if ((active0 & 0x1000000000000000L) != 0L) - return jjStopAtPos(1, 60); - break; - case 45: - if ((active0 & 0x2000000000000000L) != 0L) - return jjStopAtPos(1, 61); - break; - case 46: - return jjMoveStringLiteralDfa2_0(active0, 0x40000000L, active1, 0L, active2, 0L); - case 47: - if ((active0 & 0x40L) != 0L) - return jjStopAtPos(1, 6); - break; - case 58: - if ((active0 & 0x2000000L) != 0L) - return jjStopAtPos(1, 25); - break; - case 60: - if ((active0 & 0x20000000000000L) != 0L) - { - jjmatchedKind = 53; - jjmatchedPos = 1; - } - return jjMoveStringLiteralDfa2_0(active0, 0x2000000000L, active1, 0L, active2, 0L); - case 61: - if ((active0 & 0x100000000L) != 0L) - return jjStopAtPos(1, 32); - else if ((active0 & 0x200000000L) != 0L) - return jjStopAtPos(1, 33); - else if ((active0 & 0x400000000L) != 0L) - return jjStopAtPos(1, 34); - else if ((active0 & 0x800000000L) != 0L) - return jjStopAtPos(1, 35); - else if ((active0 & 0x1000000000L) != 0L) - return jjStopAtPos(1, 36); - else if ((active0 & 0x8000000000L) != 0L) - return jjStopAtPos(1, 39); - else if ((active0 & 0x10000000000L) != 0L) - return jjStopAtPos(1, 40); - else if ((active0 & 0x20000000000L) != 0L) - return jjStopAtPos(1, 41); - else if ((active0 & 0x800000000000L) != 0L) - return jjStopAtPos(1, 47); - else if ((active0 & 0x1000000000000L) != 0L) - return jjStopAtPos(1, 48); - else if ((active0 & 0x8000000000000L) != 0L) - return jjStopAtPos(1, 51); - else if ((active0 & 0x10000000000000L) != 0L) - return jjStopAtPos(1, 52); - break; - case 62: - if ((active0 & 0x40000000000000L) != 0L) - { - jjmatchedKind = 54; - jjmatchedPos = 1; - } - else if ((active1 & 0x2L) != 0L) - { - jjmatchedKind = 65; - jjmatchedPos = 1; - } - return jjMoveStringLiteralDfa2_0(active0, 0x4000000000L, active1, 0x8L, active2, 0L); - case 97: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x100000000000c0L, active2, 0L); - case 101: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x101c4001800L, active2, 0L); - case 102: - if ((active1 & 0x400000L) != 0L) - return jjStartNfaWithStates_0(1, 86, 29); - break; - case 104: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x22020200000100L, active2, 0L); - case 105: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400c00000000L, active2, 0x40L); - case 108: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000048000L, active2, 0L); - case 110: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x300001810000L, active2, 0L); - case 111: - if ((active1 & 0x2000L) != 0L) - { - jjmatchedKind = 77; - jjmatchedPos = 1; - } - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x1800002284600L, active2, 0L); - case 112: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000000L, active2, 0L); - case 114: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8040018100020L, active2, 0L); - case 116: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x3000000000L, active2, 0L); - case 117: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x20000010L, active2, 0L); - case 119: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8000000000L, active2, 0L); - case 120: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x20000L, active2, 0L); - case 121: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x80000000000L, active2, 0L); - case 124: - if ((active0 & 0x40000000000L) != 0L) - return jjStopAtPos(1, 42); - break; - default : - break; - } - return jjStartNfa_0(0, active0, active1, active2); -} -private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2) -{ - if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_0(0, old0, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(1, active0, active1, active2); - return 2; - } - switch(curChar) - { - case 42: - if ((active1 & 0x8L) != 0L) - return jjStopAtPos(2, 67); - break; - case 46: - if ((active0 & 0x40000000L) != 0L) - return jjStopAtPos(2, 30); - break; - case 61: - if ((active0 & 0x2000000000L) != 0L) - return jjStopAtPos(2, 37); - else if ((active0 & 0x4000000000L) != 0L) - return jjStopAtPos(2, 38); - break; - case 97: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x5000000100L, active2, 0L); - case 98: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x20000000L, active2, 0L); - case 100: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000L, active2, 0L); - case 101: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x4000000000020L, active2, 0L); - case 102: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800L, active2, 0L); - case 103: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x480000000L, active2, 0L); - case 105: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2928008100000L, active2, 0L); - case 108: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x11000000801000L, active2, 0L); - case 109: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10000000000L, active2, 0L); - case 110: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000600L, active2, 0x40L); - case 111: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x210040000L, active2, 0L); - case 112: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000000L, active2, 0L); - case 114: - if ((active1 & 0x80000L) != 0L) - return jjStartNfaWithStates_0(2, 83, 29); - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x20402000000000L, active2, 0L); - case 115: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000008040L, active2, 0L); - case 116: - if ((active1 & 0x1000000L) != 0L) - return jjStartNfaWithStates_0(2, 88, 29); - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x100220090L, active2, 0L); - case 117: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x8000000014000L, active2, 0L); - case 119: - if ((active1 & 0x4000000L) != 0L) - return jjStartNfaWithStates_0(2, 90, 29); - break; - case 121: - if ((active1 & 0x40000000000L) != 0L) - return jjStartNfaWithStates_0(2, 106, 29); - break; - case 122: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000000L, active2, 0L); - default : - break; - } - return jjStartNfa_0(1, active0, active1, active2); -} -private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2) -{ - if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_0(1, old0, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(2, 0L, active1, active2); - return 3; - } - switch(curChar) - { - case 97: - return jjMoveStringLiteralDfa4_0(active1, 0x1000000040820L, active2, 0x40L); - case 98: - return jjMoveStringLiteralDfa4_0(active1, 0x4000L, active2, 0L); - case 99: - return jjMoveStringLiteralDfa4_0(active1, 0x80L, active2, 0L); - case 100: - if ((active1 & 0x800000000000L) != 0L) - return jjStartNfaWithStates_0(3, 111, 29); - break; - case 101: - if ((active1 & 0x40L) != 0L) - return jjStartNfaWithStates_0(3, 70, 29); - else if ((active1 & 0x8000L) != 0L) - return jjStartNfaWithStates_0(3, 79, 29); - else if ((active1 & 0x8000000000000L) != 0L) - return jjStartNfaWithStates_0(3, 115, 29); - return jjMoveStringLiteralDfa4_0(active1, 0x80840121000L, active2, 0L); - case 103: - if ((active1 & 0x2000000L) != 0L) - return jjStartNfaWithStates_0(3, 89, 29); - break; - case 105: - return jjMoveStringLiteralDfa4_0(active1, 0x200080800000L, active2, 0L); - case 108: - return jjMoveStringLiteralDfa4_0(active1, 0x2000020000000L, active2, 0L); - case 109: - if ((active1 & 0x10000L) != 0L) - return jjStartNfaWithStates_0(3, 80, 29); - break; - case 110: - return jjMoveStringLiteralDfa4_0(active1, 0x400000000L, active2, 0L); - case 111: - if ((active1 & 0x10L) != 0L) - return jjStartNfaWithStates_0(3, 68, 29); - else if ((active1 & 0x200000L) != 0L) - return jjStartNfaWithStates_0(3, 85, 29); - return jjMoveStringLiteralDfa4_0(active1, 0x20100000000000L, active2, 0L); - case 112: - return jjMoveStringLiteralDfa4_0(active1, 0x10000000000L, active2, 0L); - case 114: - if ((active1 & 0x100L) != 0L) - return jjStartNfaWithStates_0(3, 72, 29); - return jjMoveStringLiteralDfa4_0(active1, 0x4000200000000L, active2, 0L); - case 115: - if ((active1 & 0x20000000000L) != 0L) - return jjStartNfaWithStates_0(3, 105, 29); - return jjMoveStringLiteralDfa4_0(active1, 0x10004000000200L, active2, 0L); - case 116: - return jjMoveStringLiteralDfa4_0(active1, 0x409010000400L, active2, 0L); - case 117: - return jjMoveStringLiteralDfa4_0(active1, 0x2100000000L, active2, 0L); - case 118: - return jjMoveStringLiteralDfa4_0(active1, 0x8000000L, active2, 0L); - default : - break; - } - return jjStartNfa_0(2, 0L, active1, active2); -} -private int jjMoveStringLiteralDfa4_0(long old1, long active1, long old2, long active2) -{ - if (((active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_0(2, 0L, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(3, 0L, active1, active2); - return 4; - } - switch(curChar) - { - case 97: - return jjMoveStringLiteralDfa5_0(active1, 0x4000008000000L, active2, 0L); - case 99: - return jjMoveStringLiteralDfa5_0(active1, 0xa040000000L, active2, 0L); - case 100: - return jjMoveStringLiteralDfa5_0(active1, 0x80000000000L, active2, 0L); - case 101: - if ((active1 & 0x2000000000000L) != 0L) - return jjStartNfaWithStates_0(4, 113, 29); - else if ((active1 & 0x10000000000000L) != 0L) - return jjStartNfaWithStates_0(4, 116, 29); - return jjMoveStringLiteralDfa5_0(active1, 0x410000000L, active2, 0L); - case 103: - return jjMoveStringLiteralDfa5_0(active1, 0x200000000000L, active2, 0L); - case 104: - if ((active1 & 0x80L) != 0L) - return jjStartNfaWithStates_0(4, 71, 29); - break; - case 105: - return jjMoveStringLiteralDfa5_0(active1, 0x1020000400L, active2, 0L); - case 107: - if ((active1 & 0x20L) != 0L) - return jjStartNfaWithStates_0(4, 69, 29); - break; - case 108: - return jjMoveStringLiteralDfa5_0(active1, 0x10000004000L, active2, 0x40L); - case 110: - if ((active1 & 0x100000000000L) != 0L) - return jjStartNfaWithStates_0(4, 108, 29); - return jjMoveStringLiteralDfa5_0(active1, 0x900000L, active2, 0L); - case 111: - return jjMoveStringLiteralDfa5_0(active1, 0x800000000L, active2, 0L); - case 114: - return jjMoveStringLiteralDfa5_0(active1, 0x100020000L, active2, 0L); - case 115: - if ((active1 & 0x4000000000L) != 0L) - return jjStartNfaWithStates_0(4, 102, 29); - return jjMoveStringLiteralDfa5_0(active1, 0x80000000L, active2, 0L); - case 116: - if ((active1 & 0x200L) != 0L) - return jjStartNfaWithStates_0(4, 73, 29); - else if ((active1 & 0x40000L) != 0L) - return jjStartNfaWithStates_0(4, 82, 29); - else if ((active1 & 0x200000000L) != 0L) - return jjStartNfaWithStates_0(4, 97, 29); - return jjMoveStringLiteralDfa5_0(active1, 0x1000000001000L, active2, 0L); - case 117: - return jjMoveStringLiteralDfa5_0(active1, 0x400000000800L, active2, 0L); - case 119: - if ((active1 & 0x20000000000000L) != 0L) - return jjStartNfaWithStates_0(4, 117, 29); - break; - default : - break; - } - return jjStartNfa_0(3, 0L, active1, active2); -} -private int jjMoveStringLiteralDfa5_0(long old1, long active1, long old2, long active2) -{ - if (((active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_0(3, 0L, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(4, 0L, active1, active2); - return 5; - } - switch(curChar) - { - case 97: - return jjMoveStringLiteralDfa6_0(active1, 0x410000000000L, active2, 0L); - case 99: - if ((active1 & 0x20000000L) != 0L) - return jjStartNfaWithStates_0(5, 93, 29); - else if ((active1 & 0x1000000000L) != 0L) - return jjStartNfaWithStates_0(5, 100, 29); - return jjMoveStringLiteralDfa6_0(active1, 0x10000000L, active2, 0L); - case 100: - if ((active1 & 0x100000L) != 0L) - return jjStartNfaWithStates_0(5, 84, 29); - else if ((active1 & 0x400000000L) != 0L) - return jjStartNfaWithStates_0(5, 98, 29); - break; - case 101: - if ((active1 & 0x1000L) != 0L) - return jjStartNfaWithStates_0(5, 76, 29); - else if ((active1 & 0x4000L) != 0L) - return jjStartNfaWithStates_0(5, 78, 29); - else if ((active1 & 0x800000L) != 0L) - return jjStartNfaWithStates_0(5, 87, 29); - return jjMoveStringLiteralDfa6_0(active1, 0x80000000000L, active2, 0L); - case 102: - if ((active1 & 0x800000000L) != 0L) - return jjStartNfaWithStates_0(5, 99, 29); - break; - case 104: - if ((active1 & 0x8000000000L) != 0L) - return jjStartNfaWithStates_0(5, 103, 29); - break; - case 105: - return jjMoveStringLiteralDfa6_0(active1, 0x1000000000000L, active2, 0L); - case 108: - return jjMoveStringLiteralDfa6_0(active1, 0x40000800L, active2, 0x40L); - case 110: - if ((active1 & 0x20000L) != 0L) - return jjStartNfaWithStates_0(5, 81, 29); - else if ((active1 & 0x100000000L) != 0L) - return jjStartNfaWithStates_0(5, 96, 29); - return jjMoveStringLiteralDfa6_0(active1, 0x200000000400L, active2, 0L); - case 116: - if ((active1 & 0x2000000000L) != 0L) - return jjStartNfaWithStates_0(5, 101, 29); - return jjMoveStringLiteralDfa6_0(active1, 0x4000088000000L, active2, 0L); - default : - break; - } - return jjStartNfa_0(4, 0L, active1, active2); -} -private int jjMoveStringLiteralDfa6_0(long old1, long active1, long old2, long active2) -{ - if (((active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_0(4, 0L, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(5, 0L, active1, active2); - return 6; - } - switch(curChar) - { - case 97: - return jjMoveStringLiteralDfa7_0(active1, 0x40000000L, active2, 0L); - case 101: - if ((active1 & 0x8000000L) != 0L) - return jjStartNfaWithStates_0(6, 91, 29); - return jjMoveStringLiteralDfa7_0(active1, 0x200080000000L, active2, 0L); - case 102: - if ((active1 & 0x80000000000L) != 0L) - return jjStartNfaWithStates_0(6, 107, 29); - break; - case 108: - if ((active1 & 0x400000000000L) != 0L) - return jjStartNfaWithStates_0(6, 110, 29); - return jjMoveStringLiteralDfa7_0(active1, 0x1000000000000L, active2, 0L); - case 111: - return jjMoveStringLiteralDfa7_0(active1, 0x4000000000000L, active2, 0L); - case 116: - if ((active1 & 0x800L) != 0L) - return jjStartNfaWithStates_0(6, 75, 29); - return jjMoveStringLiteralDfa7_0(active1, 0x10010000000L, active2, 0L); - case 117: - return jjMoveStringLiteralDfa7_0(active1, 0x400L, active2, 0L); - case 121: - if ((active2 & 0x40L) != 0L) - return jjStartNfaWithStates_0(6, 134, 29); - break; - default : - break; - } - return jjStartNfa_0(5, 0L, active1, active2); -} -private int jjMoveStringLiteralDfa7_0(long old1, long active1, long old2, long active2) -{ - if (((active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_0(5, 0L, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(6, 0L, active1, 0L); - return 7; - } - switch(curChar) - { - case 100: - if ((active1 & 0x200000000000L) != 0L) - return jjStartNfaWithStates_0(7, 109, 29); - break; - case 101: - if ((active1 & 0x400L) != 0L) - return jjStartNfaWithStates_0(7, 74, 29); - else if ((active1 & 0x10000000000L) != 0L) - return jjStartNfaWithStates_0(7, 104, 29); - else if ((active1 & 0x1000000000000L) != 0L) - return jjStartNfaWithStates_0(7, 112, 29); - return jjMoveStringLiteralDfa8_0(active1, 0x10000000L); - case 114: - if ((active1 & 0x80000000L) != 0L) - return jjStartNfaWithStates_0(7, 95, 29); - else if ((active1 & 0x4000000000000L) != 0L) - return jjStartNfaWithStates_0(7, 114, 29); - return jjMoveStringLiteralDfa8_0(active1, 0x40000000L); - default : - break; - } - return jjStartNfa_0(6, 0L, active1, 0L); -} -private int jjMoveStringLiteralDfa8_0(long old1, long active1) -{ - if (((active1 &= old1)) == 0L) - return jjStartNfa_0(6, 0L, old1, 0L); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(7, 0L, active1, 0L); - return 8; - } - switch(curChar) - { - case 100: - if ((active1 & 0x10000000L) != 0L) - return jjStartNfaWithStates_0(8, 92, 29); - break; - case 101: - return jjMoveStringLiteralDfa9_0(active1, 0x40000000L); - default : - break; - } - return jjStartNfa_0(7, 0L, active1, 0L); -} -private int jjMoveStringLiteralDfa9_0(long old1, long active1) -{ - if (((active1 &= old1)) == 0L) - return jjStartNfa_0(7, 0L, old1, 0L); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_0(8, 0L, active1, 0L); - return 9; - } - switch(curChar) - { - case 100: - if ((active1 & 0x40000000L) != 0L) - return jjStartNfaWithStates_0(9, 94, 29); - break; - default : - break; - } - return jjStartNfa_0(8, 0L, active1, 0L); -} -private int jjStartNfaWithStates_0(int pos, int kind, int state) -{ - jjmatchedKind = kind; - jjmatchedPos = pos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return pos + 1; } - return jjMoveNfa_0(state, pos + 1); -} -static final long[] jjbitVec0 = { - 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL -}; -private int jjMoveNfa_0(int startState, int curPos) -{ - int startsAt = 0; - jjnewStateCnt = 78; - int i = 1; - jjstateSet[0] = startState; - int kind = 0x7fffffff; - for (;;) - { - if (++jjround == 0x7fffffff) - ReInitRounds(); - if (curChar < 64) - { - long l = 1L << curChar; - do - { - switch(jjstateSet[--i]) - { - case 28: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddStates(0, 5); - else if (curChar == 36) - { - if (kind > 135) - kind = 135; - jjCheckNAdd(29); - } - else if (curChar == 34) - jjCheckNAddStates(6, 8); - else if (curChar == 39) - jjCheckNAddTwoStates(7, 9); - else if (curChar == 46) - jjCheckNAdd(1); - if ((0x3fe000000000000L & l) != 0L) - { - if (kind > 122) - kind = 122; - jjCheckNAddStates(9, 16); - } - else if (curChar == 48) - jjAddStates(17, 20); - if (curChar == 48) - { - if (kind > 118) - kind = 118; - jjCheckNAddStates(21, 28); - } - break; - case 0: - if (curChar == 46) - jjCheckNAdd(1); - break; - case 1: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 130) - kind = 130; - jjCheckNAddStates(29, 31); - break; - case 3: - if ((0x280000000000L & l) != 0L) - jjCheckNAdd(4); - break; - case 4: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 130) - kind = 130; - jjCheckNAddTwoStates(4, 5); - break; - case 6: - if (curChar == 39) - jjCheckNAddTwoStates(7, 9); - break; - case 7: - if ((0xffffff7fffffdbffL & l) != 0L) - jjCheckNAddTwoStates(7, 8); - break; - case 8: - if (curChar == 39 && kind > 132) - kind = 132; - break; - case 10: - if ((0x8000008400000000L & l) != 0L) - jjCheckNAdd(8); - break; - case 11: - if (curChar == 48) - jjCheckNAddTwoStates(12, 8); - break; - case 12: - if ((0xff000000000000L & l) != 0L) - jjCheckNAddTwoStates(12, 8); - break; - case 13: - if ((0x3fe000000000000L & l) != 0L) - jjCheckNAddTwoStates(14, 8); - break; - case 14: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(14, 8); - break; - case 16: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(16, 8); - break; - case 17: - if (curChar == 34) - jjCheckNAddStates(6, 8); - break; - case 18: - if ((0xfffffffbffffdbffL & l) != 0L) - jjCheckNAddStates(6, 8); - break; - case 20: - if ((0x8000008400000400L & l) != 0L) - jjCheckNAddStates(6, 8); - break; - case 21: - if (curChar == 34 && kind > 133) - kind = 133; - break; - case 22: - if (curChar == 48) - jjCheckNAddStates(32, 35); - break; - case 23: - if ((0xff000000000000L & l) != 0L) - jjCheckNAddStates(32, 35); - break; - case 24: - if ((0x3fe000000000000L & l) != 0L) - jjCheckNAddStates(36, 39); - break; - case 25: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddStates(36, 39); - break; - case 27: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddStates(40, 43); - break; - case 29: - if ((0x3ff001000000000L & l) == 0L) - break; - if (kind > 135) - kind = 135; - jjCheckNAdd(29); - break; - case 30: - if (curChar != 48) - break; - if (kind > 118) - kind = 118; - jjCheckNAddStates(21, 28); - break; - case 31: - if ((0xff000000000000L & l) == 0L) - break; - if (kind > 118) - kind = 118; - jjCheckNAdd(31); - break; - case 32: - if ((0xff000000000000L & l) != 0L) - jjCheckNAddTwoStates(32, 33); - break; - case 34: - if ((0xff000000000000L & l) != 0L) - jjCheckNAddTwoStates(34, 35); - break; - case 36: - if ((0xff000000000000L & l) != 0L) - jjCheckNAddStates(44, 46); - break; - case 41: - if ((0x3fe000000000000L & l) == 0L) - break; - if (kind > 122) - kind = 122; - jjCheckNAddStates(9, 16); - break; - case 42: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 122) - kind = 122; - jjCheckNAdd(42); - break; - case 43: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(43, 44); - break; - case 45: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(45, 46); - break; - case 47: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddStates(47, 49); - break; - case 52: - if (curChar == 48) - jjAddStates(17, 20); - break; - case 54: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 126) - kind = 126; - jjstateSet[jjnewStateCnt++] = 54; - break; - case 56: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 127) - kind = 127; - jjAddStates(50, 51); - break; - case 59: - if ((0x3ff000000000000L & l) != 0L) - jjAddStates(52, 53); - break; - case 62: - if ((0x3ff000000000000L & l) != 0L) - jjAddStates(54, 56); - break; - case 67: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddStates(0, 5); - break; - case 68: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(68, 69); - break; - case 69: - if (curChar != 46) - break; - if (kind > 130) - kind = 130; - jjCheckNAddStates(57, 59); - break; - case 70: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 130) - kind = 130; - jjCheckNAddStates(57, 59); - break; - case 71: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(71, 0); - break; - case 72: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(72, 73); - break; - case 74: - if ((0x280000000000L & l) != 0L) - jjCheckNAdd(75); - break; - case 75: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 131) - kind = 131; - jjCheckNAddTwoStates(75, 76); - break; - default : break; - } - } while(i != startsAt); - } - else if (curChar < 128) - { - long l = 1L << (curChar & 077); - do - { - switch(jjstateSet[--i]) - { - case 28: - if ((0x7fffffe87fffffeL & l) != 0L) - { - if (kind > 135) - kind = 135; - jjCheckNAdd(29); - } - if (curChar == 76) - jjAddStates(60, 61); - break; - case 2: - if ((0x2000000020L & l) != 0L) - jjAddStates(62, 63); - break; - case 5: - if ((0x104000001040L & l) != 0L && kind > 130) - kind = 130; - break; - case 7: - if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddTwoStates(7, 8); - break; - case 9: - if (curChar == 92) - jjAddStates(64, 67); - break; - case 10: - if ((0x54404610000000L & l) != 0L) - jjCheckNAdd(8); - break; - case 15: - if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(16); - break; - case 16: - if ((0x7e0000007eL & l) != 0L) - jjCheckNAddTwoStates(16, 8); - break; - case 18: - if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(6, 8); - break; - case 19: - if (curChar == 92) - jjAddStates(68, 71); - break; - case 20: - if ((0x54404610000000L & l) != 0L) - jjCheckNAddStates(6, 8); - break; - case 26: - if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(27); - break; - case 27: - if ((0x7e0000007eL & l) != 0L) - jjCheckNAddStates(40, 43); - break; - case 29: - if ((0x7fffffe87fffffeL & l) == 0L) - break; - if (kind > 135) - kind = 135; - jjCheckNAdd(29); - break; - case 33: - if ((0x100000001000L & l) != 0L && kind > 119) - kind = 119; - break; - case 35: - if ((0x20000000200000L & l) != 0L && kind > 120) - kind = 120; - break; - case 37: - if ((0x100000001000L & l) != 0L && kind > 121) - kind = 121; - break; - case 38: - if ((0x20000000200000L & l) != 0L) - jjstateSet[jjnewStateCnt++] = 37; - break; - case 39: - if ((0x20000000200000L & l) != 0L && kind > 121) - kind = 121; - break; - case 40: - if ((0x100000001000L & l) != 0L) - jjstateSet[jjnewStateCnt++] = 39; - break; - case 44: - if ((0x20100000201000L & l) != 0L && kind > 123) - kind = 123; - break; - case 46: - if ((0x20000000200000L & l) != 0L && kind > 124) - kind = 124; - break; - case 48: - if ((0x100000001000L & l) != 0L && kind > 125) - kind = 125; - break; - case 49: - if ((0x20000000200000L & l) != 0L) - jjstateSet[jjnewStateCnt++] = 48; - break; - case 50: - if ((0x20000000200000L & l) != 0L && kind > 125) - kind = 125; - break; - case 51: - if ((0x100000001000L & l) != 0L) - jjstateSet[jjnewStateCnt++] = 50; - break; - case 53: - if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(54); - break; - case 54: - if ((0x7e0000007eL & l) == 0L) - break; - if (kind > 126) - kind = 126; - jjCheckNAdd(54); - break; - case 55: - if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(56); - break; - case 56: - if ((0x7e0000007eL & l) == 0L) - break; - if (kind > 127) - kind = 127; - jjCheckNAddTwoStates(56, 57); - break; - case 57: - if ((0x20100000201000L & l) != 0L && kind > 127) - kind = 127; - break; - case 58: - if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(59); - break; - case 59: - if ((0x7e0000007eL & l) != 0L) - jjCheckNAddTwoStates(59, 60); - break; - case 60: - if ((0x20000000200000L & l) != 0L && kind > 128) - kind = 128; - break; - case 61: - if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(62); - break; - case 62: - if ((0x7e0000007eL & l) != 0L) - jjCheckNAddStates(54, 56); - break; - case 63: - if ((0x100000001000L & l) != 0L && kind > 129) - kind = 129; - break; - case 64: - if ((0x20000000200000L & l) != 0L) - jjstateSet[jjnewStateCnt++] = 63; - break; - case 65: - if ((0x20000000200000L & l) != 0L && kind > 129) - kind = 129; - break; - case 66: - if ((0x100000001000L & l) != 0L) - jjstateSet[jjnewStateCnt++] = 65; - break; - case 73: - if ((0x2000000020L & l) != 0L) - jjAddStates(72, 73); - break; - case 76: - if ((0x104000001040L & l) != 0L && kind > 131) - kind = 131; - break; - case 77: - if (curChar == 76) - jjAddStates(60, 61); - break; - default : break; - } - } while(i != startsAt); - } - else - { - int i2 = (curChar & 0xff) >> 6; - long l2 = 1L << (curChar & 077); - do - { - switch(jjstateSet[--i]) - { - case 7: - if ((jjbitVec0[i2] & l2) != 0L) - jjAddStates(74, 75); - break; - case 18: - if ((jjbitVec0[i2] & l2) != 0L) - jjAddStates(6, 8); - break; - default : break; - } - } while(i != startsAt); - } - if (kind != 0x7fffffff) - { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 78 - (jjnewStateCnt = startsAt))) - return curPos; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { return curPos; } - } -} -private int jjMoveStringLiteralDfa0_1() -{ - switch(curChar) - { - case 10: - return jjStopAtPos(0, 9); - default : - return 1; - } -} -private int jjMoveStringLiteralDfa0_4() -{ - switch(curChar) - { - case 10: - return jjStopAtPos(0, 14); - case 47: - return jjMoveStringLiteralDfa1_4(0x8000L); - case 92: - return jjMoveStringLiteralDfa1_4(0x30000L); - default : - return 1; - } -} -private int jjMoveStringLiteralDfa1_4(long active0) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 1; - } - switch(curChar) - { - case 10: - if ((active0 & 0x10000L) != 0L) - return jjStopAtPos(1, 16); - break; - case 13: - return jjMoveStringLiteralDfa2_4(active0, 0x20000L); - case 42: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); - break; - default : - return 2; - } - return 2; -} -private int jjMoveStringLiteralDfa2_4(long old0, long active0) -{ - if (((active0 &= old0)) == 0L) - return 2; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 2; - } - switch(curChar) - { - case 10: - if ((active0 & 0x20000L) != 0L) - return jjStopAtPos(2, 17); - break; - default : - return 3; - } - return 3; -} -private int jjMoveStringLiteralDfa0_3() -{ - switch(curChar) - { - case 42: - return jjMoveStringLiteralDfa1_3(0x2000L); - default : - return 1; - } -} -private int jjMoveStringLiteralDfa1_3(long active0) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 1; - } - switch(curChar) - { - case 47: - if ((active0 & 0x2000L) != 0L) - return jjStopAtPos(1, 13); - break; - default : - return 2; - } - return 2; -} -private int jjMoveStringLiteralDfa0_2() -{ - switch(curChar) - { - case 42: - return jjMoveStringLiteralDfa1_2(0x800L); - default : - return 1; - } -} -private int jjMoveStringLiteralDfa1_2(long active0) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 1; - } - switch(curChar) - { - case 47: - if ((active0 & 0x800L) != 0L) - return jjStopAtPos(1, 11); - break; - default : - return 2; - } - return 2; -} -static final int[] jjnextStates = { - 68, 69, 71, 0, 72, 73, 18, 19, 21, 42, 43, 44, 45, 46, 47, 49, - 51, 53, 55, 58, 61, 31, 32, 33, 34, 35, 36, 38, 40, 1, 2, 5, - 18, 19, 23, 21, 18, 19, 25, 21, 18, 19, 27, 21, 36, 38, 40, 47, - 49, 51, 56, 57, 59, 60, 62, 64, 66, 70, 2, 5, 6, 17, 3, 4, - 10, 11, 13, 15, 20, 22, 24, 26, 74, 75, 7, 8, -}; - -/** Token literal values. */ -public static final String[] jjstrLiteralImages = { -"", null, null, null, null, null, null, null, null, null, null, null, null, -null, null, null, null, null, null, "\173", "\175", "\133", "\135", "\50", "\51", -"\72\72", "\72", "\73", "\54", "\77", "\56\56\56", "\75", "\52\75", "\57\75", "\45\75", -"\53\75", "\55\75", "\74\74\75", "\76\76\75", "\46\75", "\136\75", "\174\75", -"\174\174", "\46\46", "\174", "\136", "\46", "\75\75", "\41\75", "\74", "\76", "\74\75", -"\76\75", "\74\74", "\76\76", "\53", "\55", "\52", "\57", "\45", "\53\53", "\55\55", -"\176", "\41", "\56", "\55\76", "\56\52", "\55\76\52", "\141\165\164\157", -"\142\162\145\141\153", "\143\141\163\145", "\143\141\164\143\150", "\143\150\141\162", -"\143\157\156\163\164", "\143\157\156\164\151\156\165\145", "\144\145\146\141\165\154\164", -"\144\145\154\145\164\145", "\144\157", "\144\157\165\142\154\145", "\145\154\163\145", -"\145\156\165\155", "\145\170\164\145\162\156", "\146\154\157\141\164", "\146\157\162", -"\146\162\151\145\156\144", "\147\157\164\157", "\151\146", "\151\156\154\151\156\145", "\151\156\164", -"\154\157\156\147", "\156\145\167", "\160\162\151\166\141\164\145", -"\160\162\157\164\145\143\164\145\144", "\160\165\142\154\151\143", "\162\145\144\145\143\154\141\162\145\144", -"\162\145\147\151\163\164\145\162", "\162\145\164\165\162\156", "\163\150\157\162\164", -"\163\151\147\156\145\144", "\163\151\172\145\157\146", "\163\164\141\164\151\143", -"\163\164\162\165\143\164", "\143\154\141\163\163", "\163\167\151\164\143\150", -"\164\145\155\160\154\141\164\145", "\164\150\151\163", "\164\162\171", "\164\171\160\145\144\145\146", -"\165\156\151\157\156", "\165\156\163\151\147\156\145\144", "\166\151\162\164\165\141\154", -"\166\157\151\144", "\166\157\154\141\164\151\154\145", "\167\150\151\154\145", -"\157\160\145\162\141\164\157\162", "\164\162\165\145", "\146\141\154\163\145", "\164\150\162\157\167", null, null, -null, null, null, null, null, null, null, null, null, null, null, null, null, null, -"\146\151\156\141\154\154\171", null, }; - -/** Lexer state names. */ -public static final String[] lexStateNames = { - "DEFAULT", - "IN_LINE_COMMENT", - "IN_COMMENT", - "IN_PREPROCESSOR_OUTPUT_COMMENT", - "PREPROCESSOR_OUTPUT", -}; - -/** Lex State array. */ -public static final int[] jjnewLexState = { - -1, -1, -1, -1, -1, -1, 1, 2, 4, 0, -1, 0, -1, 4, 0, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -}; -static final long[] jjtoToken = { - 0xfffffffffff80001L, 0xffffffffffffffffL, 0xffL, -}; -static final long[] jjtoSkip = { - 0xebfeL, 0x0L, 0x0L, -}; -static final long[] jjtoMore = { - 0x71400L, 0x0L, 0x0L, -}; -protected CharStream input_stream; -private final int[] jjrounds = new int[78]; -private final int[] jjstateSet = new int[156]; -protected char curChar; -/** Constructor. */ -public CppParserTokenManager(CharStream stream){ - input_stream = stream; -} - -/** Constructor. */ -public CppParserTokenManager(CharStream stream, int lexState){ - this(stream); - SwitchTo(lexState); -} - -/** Reinitialise parser. */ -public void ReInit(CharStream stream) -{ - jjmatchedPos = jjnewStateCnt = 0; - curLexState = defaultLexState; - input_stream = stream; - ReInitRounds(); -} -private void ReInitRounds() -{ - int i; - jjround = 0x80000001; - for (i = 78; i-- > 0;) - jjrounds[i] = 0x80000000; -} - -/** Reinitialise parser. */ -public void ReInit(CharStream stream, int lexState) -{ - ReInit(stream); - SwitchTo(lexState); -} - -/** Switch to specified lex state. */ -public void SwitchTo(int lexState) -{ - if (lexState >= 5 || lexState < 0) - throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); - else - curLexState = lexState; -} - -protected Token jjFillToken() -{ - final Token t; - final String curTokenImage; - final int beginLine; - final int endLine; - final int beginColumn; - final int endColumn; - String im = jjstrLiteralImages[jjmatchedKind]; - curTokenImage = (im == null) ? input_stream.GetImage() : im; - beginLine = input_stream.getBeginLine(); - beginColumn = input_stream.getBeginColumn(); - endLine = input_stream.getEndLine(); - endColumn = input_stream.getEndColumn(); - t = Token.newToken(jjmatchedKind, curTokenImage); - - t.beginLine = beginLine; - t.endLine = endLine; - t.beginColumn = beginColumn; - t.endColumn = endColumn; - - return t; -} - -int curLexState = 0; -int defaultLexState = 0; -int jjnewStateCnt; -int jjround; -int jjmatchedPos; -int jjmatchedKind; - -/** Get the next Token. */ -public Token getNextToken() -{ - Token matchedToken; - int curPos = 0; - - EOFLoop : - for (;;) - { - try - { - curChar = input_stream.BeginToken(); - } - catch(java.io.IOException e) - { - jjmatchedKind = 0; - matchedToken = jjFillToken(); - return matchedToken; - } - - for (;;) - { - switch(curLexState) - { - case 0: - try { input_stream.backup(0); - while (curChar <= 32 && (0x100001600L & (1L << curChar)) != 0L) - curChar = input_stream.BeginToken(); - } - catch (java.io.IOException e1) { continue EOFLoop; } - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_0(); - break; - case 1: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_1(); - if (jjmatchedPos == 0 && jjmatchedKind > 10) - { - jjmatchedKind = 10; - } - break; - case 2: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_2(); - if (jjmatchedPos == 0 && jjmatchedKind > 12) - { - jjmatchedKind = 12; - } - break; - case 3: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_3(); - if (jjmatchedPos == 0 && jjmatchedKind > 12) - { - jjmatchedKind = 12; - } - break; - case 4: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_4(); - if (jjmatchedPos == 0 && jjmatchedKind > 18) - { - jjmatchedKind = 18; - } - break; - } - if (jjmatchedKind != 0x7fffffff) - { - if (jjmatchedPos + 1 < curPos) - input_stream.backup(curPos - jjmatchedPos - 1); - if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) - { - matchedToken = jjFillToken(); - if (jjnewLexState[jjmatchedKind] != -1) - curLexState = jjnewLexState[jjmatchedKind]; - return matchedToken; - } - else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) - { - if (jjnewLexState[jjmatchedKind] != -1) - curLexState = jjnewLexState[jjmatchedKind]; - continue EOFLoop; - } - if (jjnewLexState[jjmatchedKind] != -1) - curLexState = jjnewLexState[jjmatchedKind]; - curPos = 0; - jjmatchedKind = 0x7fffffff; - try { - curChar = input_stream.readChar(); - continue; - } - catch (java.io.IOException e1) { } - } - int error_line = input_stream.getEndLine(); - int error_column = input_stream.getEndColumn(); - String error_after = null; - boolean EOFSeen = false; - try { input_stream.readChar(); input_stream.backup(1); } - catch (java.io.IOException e1) { - EOFSeen = true; - error_after = curPos <= 1 ? "" : input_stream.GetImage(); - if (curChar == '\n' || curChar == '\r') { - error_line++; - error_column = 0; - } - else - error_column++; - } - if (!EOFSeen) { - input_stream.backup(1); - error_after = curPos <= 1 ? "" : input_stream.GetImage(); - } - throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR); - } - } -} - -private void jjCheckNAdd(int state) -{ - if (jjrounds[state] != jjround) - { - jjstateSet[jjnewStateCnt++] = state; - jjrounds[state] = jjround; - } -} -private void jjAddStates(int start, int end) -{ - do { - jjstateSet[jjnewStateCnt++] = jjnextStates[start]; - } while (start++ != end); -} -private void jjCheckNAddTwoStates(int state1, int state2) -{ - jjCheckNAdd(state1); - jjCheckNAdd(state2); -} - -private void jjCheckNAddStates(int start, int end) -{ - do { - jjCheckNAdd(jjnextStates[start]); - } while (start++ != end); -} - -} +/* Generated By:JavaCC: Do not edit this line. CppParserTokenManager.java */ +package net.sourceforge.pmd.lang.cpp.ast; +import net.sourceforge.pmd.lang.ast.CharStream; +import net.sourceforge.pmd.lang.ast.TokenMgrError; + +/** Token Manager. */ +public class CppParserTokenManager extends net.sourceforge.pmd.lang.ast.AbstractTokenManager implements CppParserConstants +{ + + /** Debug output. */ + public java.io.PrintStream debugStream = System.out; + /** Set debug output. */ + public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } +private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2) +{ + switch (pos) + { + case 0: + if ((active1 & 0x3ffffffffffff0L) != 0L || (active2 & 0x40L) != 0L) + { + jjmatchedKind = 135; + return 29; + } + if ((active0 & 0x40000000L) != 0L || (active1 & 0x5L) != 0L) + return 1; + return -1; + case 1: + if ((active1 & 0x3fffffffbf9ff0L) != 0L || (active2 & 0x40L) != 0L) + { + if (jjmatchedPos != 1) + { + jjmatchedKind = 135; + jjmatchedPos = 1; + } + return 29; + } + if ((active1 & 0x406000L) != 0L) + return 29; + return -1; + case 2: + if ((active1 & 0x3ffbfffab7dff0L) != 0L || (active2 & 0x40L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 2; + return 29; + } + if ((active1 & 0x40005080000L) != 0L) + return 29; + return -1; + case 3: + if ((active1 & 0x3779fff8965ea0L) != 0L || (active2 & 0x40L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 3; + return 29; + } + if ((active1 & 0x8820002218150L) != 0L) + return 29; + return -1; + case 4: + if ((active1 & 0x569bdf8925c00L) != 0L || (active2 & 0x40L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 4; + return 29; + } + if ((active1 & 0x321042000402a0L) != 0L) + return 29; + return -1; + case 5: + if ((active1 & 0x56900d8000c00L) != 0L || (active2 & 0x40L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 5; + return 29; + } + if ((active1 & 0xbd20925000L) != 0L) + return 29; + return -1; + case 6: + if ((active1 & 0x52100d0000400L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 6; + return 29; + } + if ((active1 & 0x480008000800L) != 0L || (active2 & 0x40L) != 0L) + return 29; + return -1; + case 7: + if ((active1 & 0x50000000L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 7; + return 29; + } + if ((active1 & 0x5210080000400L) != 0L) + return 29; + return -1; + case 8: + if ((active1 & 0x40000000L) != 0L) + { + jjmatchedKind = 135; + jjmatchedPos = 8; + return 29; + } + if ((active1 & 0x10000000L) != 0L) + return 29; + return -1; + default : + return -1; + } +} +private final int jjStartNfa_0(int pos, long active0, long active1, long active2) +{ + return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1); +} +private int jjStopAtPos(int pos, int kind) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + return pos + 1; +} +private int jjMoveStringLiteralDfa0_0() +{ + switch(curChar) + { + case 13: + return jjMoveStringLiteralDfa1_0(0x10L, 0x0L, 0x0L); + case 33: + jjmatchedKind = 63; + return jjMoveStringLiteralDfa1_0(0x1000000000000L, 0x0L, 0x0L); + case 35: + return jjStopAtPos(0, 8); + case 37: + jjmatchedKind = 59; + return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L, 0x0L); + case 38: + jjmatchedKind = 46; + return jjMoveStringLiteralDfa1_0(0x88000000000L, 0x0L, 0x0L); + case 40: + return jjStopAtPos(0, 23); + case 41: + return jjStopAtPos(0, 24); + case 42: + jjmatchedKind = 57; + return jjMoveStringLiteralDfa1_0(0x100000000L, 0x0L, 0x0L); + case 43: + jjmatchedKind = 55; + return jjMoveStringLiteralDfa1_0(0x1000000800000000L, 0x0L, 0x0L); + case 44: + return jjStopAtPos(0, 28); + case 45: + jjmatchedKind = 56; + return jjMoveStringLiteralDfa1_0(0x2000001000000000L, 0xaL, 0x0L); + case 46: + jjmatchedKind = 64; + return jjMoveStringLiteralDfa1_0(0x40000000L, 0x4L, 0x0L); + case 47: + jjmatchedKind = 58; + return jjMoveStringLiteralDfa1_0(0x2000000c0L, 0x0L, 0x0L); + case 58: + jjmatchedKind = 26; + return jjMoveStringLiteralDfa1_0(0x2000000L, 0x0L, 0x0L); + case 59: + return jjStopAtPos(0, 27); + case 60: + jjmatchedKind = 49; + return jjMoveStringLiteralDfa1_0(0x28002000000000L, 0x0L, 0x0L); + case 61: + jjmatchedKind = 31; + return jjMoveStringLiteralDfa1_0(0x800000000000L, 0x0L, 0x0L); + case 62: + jjmatchedKind = 50; + return jjMoveStringLiteralDfa1_0(0x50004000000000L, 0x0L, 0x0L); + case 63: + return jjStopAtPos(0, 29); + case 91: + return jjStopAtPos(0, 21); + case 93: + return jjStopAtPos(0, 22); + case 94: + jjmatchedKind = 45; + return jjMoveStringLiteralDfa1_0(0x10000000000L, 0x0L, 0x0L); + case 97: + return jjMoveStringLiteralDfa1_0(0x0L, 0x10L, 0x0L); + case 98: + return jjMoveStringLiteralDfa1_0(0x0L, 0x20L, 0x0L); + case 99: + return jjMoveStringLiteralDfa1_0(0x0L, 0x40000007c0L, 0x0L); + case 100: + return jjMoveStringLiteralDfa1_0(0x0L, 0x7800L, 0x0L); + case 101: + return jjMoveStringLiteralDfa1_0(0x0L, 0x38000L, 0x0L); + case 102: + return jjMoveStringLiteralDfa1_0(0x0L, 0x100000001c0000L, 0x40L); + case 103: + return jjMoveStringLiteralDfa1_0(0x0L, 0x200000L, 0x0L); + case 105: + return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000L, 0x0L); + case 108: + return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000L, 0x0L); + case 110: + return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000L, 0x0L); + case 111: + return jjMoveStringLiteralDfa1_0(0x0L, 0x4000000000000L, 0x0L); + case 112: + return jjMoveStringLiteralDfa1_0(0x0L, 0x38000000L, 0x0L); + case 114: + return jjMoveStringLiteralDfa1_0(0x0L, 0x1c0000000L, 0x0L); + case 115: + return jjMoveStringLiteralDfa1_0(0x0L, 0xbe00000000L, 0x0L); + case 116: + return jjMoveStringLiteralDfa1_0(0x0L, 0x280f0000000000L, 0x0L); + case 117: + return jjMoveStringLiteralDfa1_0(0x0L, 0x300000000000L, 0x0L); + case 118: + return jjMoveStringLiteralDfa1_0(0x0L, 0x1c00000000000L, 0x0L); + case 119: + return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000L, 0x0L); + case 123: + return jjStopAtPos(0, 19); + case 124: + jjmatchedKind = 44; + return jjMoveStringLiteralDfa1_0(0x60000000000L, 0x0L, 0x0L); + case 125: + return jjStopAtPos(0, 20); + case 126: + return jjStopAtPos(0, 62); + default : + return jjMoveNfa_0(28, 0); + } +} +private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(0, active0, active1, active2); + return 1; + } + switch(curChar) + { + case 10: + if ((active0 & 0x10L) != 0L) + return jjStopAtPos(1, 4); + break; + case 38: + if ((active0 & 0x80000000000L) != 0L) + return jjStopAtPos(1, 43); + break; + case 42: + if ((active0 & 0x80L) != 0L) + return jjStopAtPos(1, 7); + else if ((active1 & 0x4L) != 0L) + return jjStopAtPos(1, 66); + break; + case 43: + if ((active0 & 0x1000000000000000L) != 0L) + return jjStopAtPos(1, 60); + break; + case 45: + if ((active0 & 0x2000000000000000L) != 0L) + return jjStopAtPos(1, 61); + break; + case 46: + return jjMoveStringLiteralDfa2_0(active0, 0x40000000L, active1, 0L, active2, 0L); + case 47: + if ((active0 & 0x40L) != 0L) + return jjStopAtPos(1, 6); + break; + case 58: + if ((active0 & 0x2000000L) != 0L) + return jjStopAtPos(1, 25); + break; + case 60: + if ((active0 & 0x20000000000000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x2000000000L, active1, 0L, active2, 0L); + case 61: + if ((active0 & 0x100000000L) != 0L) + return jjStopAtPos(1, 32); + else if ((active0 & 0x200000000L) != 0L) + return jjStopAtPos(1, 33); + else if ((active0 & 0x400000000L) != 0L) + return jjStopAtPos(1, 34); + else if ((active0 & 0x800000000L) != 0L) + return jjStopAtPos(1, 35); + else if ((active0 & 0x1000000000L) != 0L) + return jjStopAtPos(1, 36); + else if ((active0 & 0x8000000000L) != 0L) + return jjStopAtPos(1, 39); + else if ((active0 & 0x10000000000L) != 0L) + return jjStopAtPos(1, 40); + else if ((active0 & 0x20000000000L) != 0L) + return jjStopAtPos(1, 41); + else if ((active0 & 0x800000000000L) != 0L) + return jjStopAtPos(1, 47); + else if ((active0 & 0x1000000000000L) != 0L) + return jjStopAtPos(1, 48); + else if ((active0 & 0x8000000000000L) != 0L) + return jjStopAtPos(1, 51); + else if ((active0 & 0x10000000000000L) != 0L) + return jjStopAtPos(1, 52); + break; + case 62: + if ((active0 & 0x40000000000000L) != 0L) + { + jjmatchedKind = 54; + jjmatchedPos = 1; + } + else if ((active1 & 0x2L) != 0L) + { + jjmatchedKind = 65; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x4000000000L, active1, 0x8L, active2, 0L); + case 97: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x100000000000c0L, active2, 0L); + case 101: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x101c4001800L, active2, 0L); + case 102: + if ((active1 & 0x400000L) != 0L) + return jjStartNfaWithStates_0(1, 86, 29); + break; + case 104: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x22020200000100L, active2, 0L); + case 105: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400c00000000L, active2, 0x40L); + case 108: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000048000L, active2, 0L); + case 110: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x300001810000L, active2, 0L); + case 111: + if ((active1 & 0x2000L) != 0L) + { + jjmatchedKind = 77; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x1800002284600L, active2, 0L); + case 112: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x4000000000000L, active2, 0L); + case 114: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8040018100020L, active2, 0L); + case 116: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x3000000000L, active2, 0L); + case 117: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x20000010L, active2, 0L); + case 119: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8000000000L, active2, 0L); + case 120: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x20000L, active2, 0L); + case 121: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x80000000000L, active2, 0L); + case 124: + if ((active0 & 0x40000000000L) != 0L) + return jjStopAtPos(1, 42); + break; + default : + break; + } + return jjStartNfa_0(0, active0, active1, active2); +} +private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2) +{ + if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_0(0, old0, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(1, active0, active1, active2); + return 2; + } + switch(curChar) + { + case 42: + if ((active1 & 0x8L) != 0L) + return jjStopAtPos(2, 67); + break; + case 46: + if ((active0 & 0x40000000L) != 0L) + return jjStopAtPos(2, 30); + break; + case 61: + if ((active0 & 0x2000000000L) != 0L) + return jjStopAtPos(2, 37); + else if ((active0 & 0x4000000000L) != 0L) + return jjStopAtPos(2, 38); + break; + case 97: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x5000000100L, active2, 0L); + case 98: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x20000000L, active2, 0L); + case 100: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40000000L, active2, 0L); + case 101: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x4000000000020L, active2, 0L); + case 102: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800L, active2, 0L); + case 103: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x480000000L, active2, 0L); + case 105: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2928008100000L, active2, 0L); + case 108: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x11000000801000L, active2, 0L); + case 109: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10000000000L, active2, 0L); + case 110: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000600L, active2, 0x40L); + case 111: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x210040000L, active2, 0L); + case 112: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000000000L, active2, 0L); + case 114: + if ((active1 & 0x80000L) != 0L) + return jjStartNfaWithStates_0(2, 83, 29); + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x20402000000000L, active2, 0L); + case 115: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000008040L, active2, 0L); + case 116: + if ((active1 & 0x1000000L) != 0L) + return jjStartNfaWithStates_0(2, 88, 29); + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x100220090L, active2, 0L); + case 117: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x8000000014000L, active2, 0L); + case 119: + if ((active1 & 0x4000000L) != 0L) + return jjStartNfaWithStates_0(2, 90, 29); + break; + case 121: + if ((active1 & 0x40000000000L) != 0L) + return jjStartNfaWithStates_0(2, 106, 29); + break; + case 122: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000000L, active2, 0L); + default : + break; + } + return jjStartNfa_0(1, active0, active1, active2); +} +private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2) +{ + if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_0(1, old0, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(2, 0L, active1, active2); + return 3; + } + switch(curChar) + { + case 97: + return jjMoveStringLiteralDfa4_0(active1, 0x1000000040820L, active2, 0x40L); + case 98: + return jjMoveStringLiteralDfa4_0(active1, 0x4000L, active2, 0L); + case 99: + return jjMoveStringLiteralDfa4_0(active1, 0x80L, active2, 0L); + case 100: + if ((active1 & 0x800000000000L) != 0L) + return jjStartNfaWithStates_0(3, 111, 29); + break; + case 101: + if ((active1 & 0x40L) != 0L) + return jjStartNfaWithStates_0(3, 70, 29); + else if ((active1 & 0x8000L) != 0L) + return jjStartNfaWithStates_0(3, 79, 29); + else if ((active1 & 0x8000000000000L) != 0L) + return jjStartNfaWithStates_0(3, 115, 29); + return jjMoveStringLiteralDfa4_0(active1, 0x80840121000L, active2, 0L); + case 103: + if ((active1 & 0x2000000L) != 0L) + return jjStartNfaWithStates_0(3, 89, 29); + break; + case 105: + return jjMoveStringLiteralDfa4_0(active1, 0x200080800000L, active2, 0L); + case 108: + return jjMoveStringLiteralDfa4_0(active1, 0x2000020000000L, active2, 0L); + case 109: + if ((active1 & 0x10000L) != 0L) + return jjStartNfaWithStates_0(3, 80, 29); + break; + case 110: + return jjMoveStringLiteralDfa4_0(active1, 0x400000000L, active2, 0L); + case 111: + if ((active1 & 0x10L) != 0L) + return jjStartNfaWithStates_0(3, 68, 29); + else if ((active1 & 0x200000L) != 0L) + return jjStartNfaWithStates_0(3, 85, 29); + return jjMoveStringLiteralDfa4_0(active1, 0x20100000000000L, active2, 0L); + case 112: + return jjMoveStringLiteralDfa4_0(active1, 0x10000000000L, active2, 0L); + case 114: + if ((active1 & 0x100L) != 0L) + return jjStartNfaWithStates_0(3, 72, 29); + return jjMoveStringLiteralDfa4_0(active1, 0x4000200000000L, active2, 0L); + case 115: + if ((active1 & 0x20000000000L) != 0L) + return jjStartNfaWithStates_0(3, 105, 29); + return jjMoveStringLiteralDfa4_0(active1, 0x10004000000200L, active2, 0L); + case 116: + return jjMoveStringLiteralDfa4_0(active1, 0x409010000400L, active2, 0L); + case 117: + return jjMoveStringLiteralDfa4_0(active1, 0x2100000000L, active2, 0L); + case 118: + return jjMoveStringLiteralDfa4_0(active1, 0x8000000L, active2, 0L); + default : + break; + } + return jjStartNfa_0(2, 0L, active1, active2); +} +private int jjMoveStringLiteralDfa4_0(long old1, long active1, long old2, long active2) +{ + if (((active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_0(2, 0L, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(3, 0L, active1, active2); + return 4; + } + switch(curChar) + { + case 97: + return jjMoveStringLiteralDfa5_0(active1, 0x4000008000000L, active2, 0L); + case 99: + return jjMoveStringLiteralDfa5_0(active1, 0xa040000000L, active2, 0L); + case 100: + return jjMoveStringLiteralDfa5_0(active1, 0x80000000000L, active2, 0L); + case 101: + if ((active1 & 0x2000000000000L) != 0L) + return jjStartNfaWithStates_0(4, 113, 29); + else if ((active1 & 0x10000000000000L) != 0L) + return jjStartNfaWithStates_0(4, 116, 29); + return jjMoveStringLiteralDfa5_0(active1, 0x410000000L, active2, 0L); + case 103: + return jjMoveStringLiteralDfa5_0(active1, 0x200000000000L, active2, 0L); + case 104: + if ((active1 & 0x80L) != 0L) + return jjStartNfaWithStates_0(4, 71, 29); + break; + case 105: + return jjMoveStringLiteralDfa5_0(active1, 0x1020000400L, active2, 0L); + case 107: + if ((active1 & 0x20L) != 0L) + return jjStartNfaWithStates_0(4, 69, 29); + break; + case 108: + return jjMoveStringLiteralDfa5_0(active1, 0x10000004000L, active2, 0x40L); + case 110: + if ((active1 & 0x100000000000L) != 0L) + return jjStartNfaWithStates_0(4, 108, 29); + return jjMoveStringLiteralDfa5_0(active1, 0x900000L, active2, 0L); + case 111: + return jjMoveStringLiteralDfa5_0(active1, 0x800000000L, active2, 0L); + case 114: + return jjMoveStringLiteralDfa5_0(active1, 0x100020000L, active2, 0L); + case 115: + if ((active1 & 0x4000000000L) != 0L) + return jjStartNfaWithStates_0(4, 102, 29); + return jjMoveStringLiteralDfa5_0(active1, 0x80000000L, active2, 0L); + case 116: + if ((active1 & 0x200L) != 0L) + return jjStartNfaWithStates_0(4, 73, 29); + else if ((active1 & 0x40000L) != 0L) + return jjStartNfaWithStates_0(4, 82, 29); + else if ((active1 & 0x200000000L) != 0L) + return jjStartNfaWithStates_0(4, 97, 29); + return jjMoveStringLiteralDfa5_0(active1, 0x1000000001000L, active2, 0L); + case 117: + return jjMoveStringLiteralDfa5_0(active1, 0x400000000800L, active2, 0L); + case 119: + if ((active1 & 0x20000000000000L) != 0L) + return jjStartNfaWithStates_0(4, 117, 29); + break; + default : + break; + } + return jjStartNfa_0(3, 0L, active1, active2); +} +private int jjMoveStringLiteralDfa5_0(long old1, long active1, long old2, long active2) +{ + if (((active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_0(3, 0L, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(4, 0L, active1, active2); + return 5; + } + switch(curChar) + { + case 97: + return jjMoveStringLiteralDfa6_0(active1, 0x410000000000L, active2, 0L); + case 99: + if ((active1 & 0x20000000L) != 0L) + return jjStartNfaWithStates_0(5, 93, 29); + else if ((active1 & 0x1000000000L) != 0L) + return jjStartNfaWithStates_0(5, 100, 29); + return jjMoveStringLiteralDfa6_0(active1, 0x10000000L, active2, 0L); + case 100: + if ((active1 & 0x100000L) != 0L) + return jjStartNfaWithStates_0(5, 84, 29); + else if ((active1 & 0x400000000L) != 0L) + return jjStartNfaWithStates_0(5, 98, 29); + break; + case 101: + if ((active1 & 0x1000L) != 0L) + return jjStartNfaWithStates_0(5, 76, 29); + else if ((active1 & 0x4000L) != 0L) + return jjStartNfaWithStates_0(5, 78, 29); + else if ((active1 & 0x800000L) != 0L) + return jjStartNfaWithStates_0(5, 87, 29); + return jjMoveStringLiteralDfa6_0(active1, 0x80000000000L, active2, 0L); + case 102: + if ((active1 & 0x800000000L) != 0L) + return jjStartNfaWithStates_0(5, 99, 29); + break; + case 104: + if ((active1 & 0x8000000000L) != 0L) + return jjStartNfaWithStates_0(5, 103, 29); + break; + case 105: + return jjMoveStringLiteralDfa6_0(active1, 0x1000000000000L, active2, 0L); + case 108: + return jjMoveStringLiteralDfa6_0(active1, 0x40000800L, active2, 0x40L); + case 110: + if ((active1 & 0x20000L) != 0L) + return jjStartNfaWithStates_0(5, 81, 29); + else if ((active1 & 0x100000000L) != 0L) + return jjStartNfaWithStates_0(5, 96, 29); + return jjMoveStringLiteralDfa6_0(active1, 0x200000000400L, active2, 0L); + case 116: + if ((active1 & 0x2000000000L) != 0L) + return jjStartNfaWithStates_0(5, 101, 29); + return jjMoveStringLiteralDfa6_0(active1, 0x4000088000000L, active2, 0L); + default : + break; + } + return jjStartNfa_0(4, 0L, active1, active2); +} +private int jjMoveStringLiteralDfa6_0(long old1, long active1, long old2, long active2) +{ + if (((active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_0(4, 0L, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(5, 0L, active1, active2); + return 6; + } + switch(curChar) + { + case 97: + return jjMoveStringLiteralDfa7_0(active1, 0x40000000L, active2, 0L); + case 101: + if ((active1 & 0x8000000L) != 0L) + return jjStartNfaWithStates_0(6, 91, 29); + return jjMoveStringLiteralDfa7_0(active1, 0x200080000000L, active2, 0L); + case 102: + if ((active1 & 0x80000000000L) != 0L) + return jjStartNfaWithStates_0(6, 107, 29); + break; + case 108: + if ((active1 & 0x400000000000L) != 0L) + return jjStartNfaWithStates_0(6, 110, 29); + return jjMoveStringLiteralDfa7_0(active1, 0x1000000000000L, active2, 0L); + case 111: + return jjMoveStringLiteralDfa7_0(active1, 0x4000000000000L, active2, 0L); + case 116: + if ((active1 & 0x800L) != 0L) + return jjStartNfaWithStates_0(6, 75, 29); + return jjMoveStringLiteralDfa7_0(active1, 0x10010000000L, active2, 0L); + case 117: + return jjMoveStringLiteralDfa7_0(active1, 0x400L, active2, 0L); + case 121: + if ((active2 & 0x40L) != 0L) + return jjStartNfaWithStates_0(6, 134, 29); + break; + default : + break; + } + return jjStartNfa_0(5, 0L, active1, active2); +} +private int jjMoveStringLiteralDfa7_0(long old1, long active1, long old2, long active2) +{ + if (((active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_0(5, 0L, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(6, 0L, active1, 0L); + return 7; + } + switch(curChar) + { + case 100: + if ((active1 & 0x200000000000L) != 0L) + return jjStartNfaWithStates_0(7, 109, 29); + break; + case 101: + if ((active1 & 0x400L) != 0L) + return jjStartNfaWithStates_0(7, 74, 29); + else if ((active1 & 0x10000000000L) != 0L) + return jjStartNfaWithStates_0(7, 104, 29); + else if ((active1 & 0x1000000000000L) != 0L) + return jjStartNfaWithStates_0(7, 112, 29); + return jjMoveStringLiteralDfa8_0(active1, 0x10000000L); + case 114: + if ((active1 & 0x80000000L) != 0L) + return jjStartNfaWithStates_0(7, 95, 29); + else if ((active1 & 0x4000000000000L) != 0L) + return jjStartNfaWithStates_0(7, 114, 29); + return jjMoveStringLiteralDfa8_0(active1, 0x40000000L); + default : + break; + } + return jjStartNfa_0(6, 0L, active1, 0L); +} +private int jjMoveStringLiteralDfa8_0(long old1, long active1) +{ + if (((active1 &= old1)) == 0L) + return jjStartNfa_0(6, 0L, old1, 0L); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(7, 0L, active1, 0L); + return 8; + } + switch(curChar) + { + case 100: + if ((active1 & 0x10000000L) != 0L) + return jjStartNfaWithStates_0(8, 92, 29); + break; + case 101: + return jjMoveStringLiteralDfa9_0(active1, 0x40000000L); + default : + break; + } + return jjStartNfa_0(7, 0L, active1, 0L); +} +private int jjMoveStringLiteralDfa9_0(long old1, long active1) +{ + if (((active1 &= old1)) == 0L) + return jjStartNfa_0(7, 0L, old1, 0L); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_0(8, 0L, active1, 0L); + return 9; + } + switch(curChar) + { + case 100: + if ((active1 & 0x40000000L) != 0L) + return jjStartNfaWithStates_0(9, 94, 29); + break; + default : + break; + } + return jjStartNfa_0(8, 0L, active1, 0L); +} +private int jjStartNfaWithStates_0(int pos, int kind, int state) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return pos + 1; } + return jjMoveNfa_0(state, pos + 1); +} +static final long[] jjbitVec0 = { + 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +private int jjMoveNfa_0(int startState, int curPos) +{ + int startsAt = 0; + jjnewStateCnt = 78; + int i = 1; + jjstateSet[0] = startState; + int kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + do + { + switch(jjstateSet[--i]) + { + case 28: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddStates(0, 5); + else if (curChar == 36) + { + if (kind > 135) + kind = 135; + jjCheckNAdd(29); + } + else if (curChar == 34) + jjCheckNAddStates(6, 8); + else if (curChar == 39) + jjCheckNAddTwoStates(7, 9); + else if (curChar == 46) + jjCheckNAdd(1); + if ((0x3fe000000000000L & l) != 0L) + { + if (kind > 122) + kind = 122; + jjCheckNAddStates(9, 16); + } + else if (curChar == 48) + jjAddStates(17, 20); + if (curChar == 48) + { + if (kind > 118) + kind = 118; + jjCheckNAddStates(21, 28); + } + break; + case 0: + if (curChar == 46) + jjCheckNAdd(1); + break; + case 1: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 130) + kind = 130; + jjCheckNAddStates(29, 31); + break; + case 3: + if ((0x280000000000L & l) != 0L) + jjCheckNAdd(4); + break; + case 4: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 130) + kind = 130; + jjCheckNAddTwoStates(4, 5); + break; + case 6: + if (curChar == 39) + jjCheckNAddTwoStates(7, 9); + break; + case 7: + if ((0xffffff7fffffdbffL & l) != 0L) + jjCheckNAddTwoStates(7, 8); + break; + case 8: + if (curChar == 39 && kind > 132) + kind = 132; + break; + case 10: + if ((0x8000008400000000L & l) != 0L) + jjCheckNAdd(8); + break; + case 11: + if (curChar == 48) + jjCheckNAddTwoStates(12, 8); + break; + case 12: + if ((0xff000000000000L & l) != 0L) + jjCheckNAddTwoStates(12, 8); + break; + case 13: + if ((0x3fe000000000000L & l) != 0L) + jjCheckNAddTwoStates(14, 8); + break; + case 14: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(14, 8); + break; + case 16: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(16, 8); + break; + case 17: + if (curChar == 34) + jjCheckNAddStates(6, 8); + break; + case 18: + if ((0xfffffffbffffdbffL & l) != 0L) + jjCheckNAddStates(6, 8); + break; + case 20: + if ((0x8000008400000400L & l) != 0L) + jjCheckNAddStates(6, 8); + break; + case 21: + if (curChar == 34 && kind > 133) + kind = 133; + break; + case 22: + if (curChar == 48) + jjCheckNAddStates(32, 35); + break; + case 23: + if ((0xff000000000000L & l) != 0L) + jjCheckNAddStates(32, 35); + break; + case 24: + if ((0x3fe000000000000L & l) != 0L) + jjCheckNAddStates(36, 39); + break; + case 25: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddStates(36, 39); + break; + case 27: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddStates(40, 43); + break; + case 29: + if ((0x3ff001000000000L & l) == 0L) + break; + if (kind > 135) + kind = 135; + jjCheckNAdd(29); + break; + case 30: + if (curChar != 48) + break; + if (kind > 118) + kind = 118; + jjCheckNAddStates(21, 28); + break; + case 31: + if ((0xff000000000000L & l) == 0L) + break; + if (kind > 118) + kind = 118; + jjCheckNAdd(31); + break; + case 32: + if ((0xff000000000000L & l) != 0L) + jjCheckNAddTwoStates(32, 33); + break; + case 34: + if ((0xff000000000000L & l) != 0L) + jjCheckNAddTwoStates(34, 35); + break; + case 36: + if ((0xff000000000000L & l) != 0L) + jjCheckNAddStates(44, 46); + break; + case 41: + if ((0x3fe000000000000L & l) == 0L) + break; + if (kind > 122) + kind = 122; + jjCheckNAddStates(9, 16); + break; + case 42: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 122) + kind = 122; + jjCheckNAdd(42); + break; + case 43: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(43, 44); + break; + case 45: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(45, 46); + break; + case 47: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddStates(47, 49); + break; + case 52: + if (curChar == 48) + jjAddStates(17, 20); + break; + case 54: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 126) + kind = 126; + jjstateSet[jjnewStateCnt++] = 54; + break; + case 56: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 127) + kind = 127; + jjAddStates(50, 51); + break; + case 59: + if ((0x3ff000000000000L & l) != 0L) + jjAddStates(52, 53); + break; + case 62: + if ((0x3ff000000000000L & l) != 0L) + jjAddStates(54, 56); + break; + case 67: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddStates(0, 5); + break; + case 68: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(68, 69); + break; + case 69: + if (curChar != 46) + break; + if (kind > 130) + kind = 130; + jjCheckNAddStates(57, 59); + break; + case 70: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 130) + kind = 130; + jjCheckNAddStates(57, 59); + break; + case 71: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(71, 0); + break; + case 72: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(72, 73); + break; + case 74: + if ((0x280000000000L & l) != 0L) + jjCheckNAdd(75); + break; + case 75: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 131) + kind = 131; + jjCheckNAddTwoStates(75, 76); + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 28: + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 135) + kind = 135; + jjCheckNAdd(29); + } + if (curChar == 76) + jjAddStates(60, 61); + break; + case 2: + if ((0x2000000020L & l) != 0L) + jjAddStates(62, 63); + break; + case 5: + if ((0x104000001040L & l) != 0L && kind > 130) + kind = 130; + break; + case 7: + if ((0xffffffffefffffffL & l) != 0L) + jjCheckNAddTwoStates(7, 8); + break; + case 9: + if (curChar == 92) + jjAddStates(64, 67); + break; + case 10: + if ((0x54404610000000L & l) != 0L) + jjCheckNAdd(8); + break; + case 15: + if ((0x100000001000000L & l) != 0L) + jjCheckNAdd(16); + break; + case 16: + if ((0x7e0000007eL & l) != 0L) + jjCheckNAddTwoStates(16, 8); + break; + case 18: + if ((0xffffffffefffffffL & l) != 0L) + jjCheckNAddStates(6, 8); + break; + case 19: + if (curChar == 92) + jjAddStates(68, 71); + break; + case 20: + if ((0x54404610000000L & l) != 0L) + jjCheckNAddStates(6, 8); + break; + case 26: + if ((0x100000001000000L & l) != 0L) + jjCheckNAdd(27); + break; + case 27: + if ((0x7e0000007eL & l) != 0L) + jjCheckNAddStates(40, 43); + break; + case 29: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 135) + kind = 135; + jjCheckNAdd(29); + break; + case 33: + if ((0x100000001000L & l) != 0L && kind > 119) + kind = 119; + break; + case 35: + if ((0x20000000200000L & l) != 0L && kind > 120) + kind = 120; + break; + case 37: + if ((0x100000001000L & l) != 0L && kind > 121) + kind = 121; + break; + case 38: + if ((0x20000000200000L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 37; + break; + case 39: + if ((0x20000000200000L & l) != 0L && kind > 121) + kind = 121; + break; + case 40: + if ((0x100000001000L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 39; + break; + case 44: + if ((0x20100000201000L & l) != 0L && kind > 123) + kind = 123; + break; + case 46: + if ((0x20000000200000L & l) != 0L && kind > 124) + kind = 124; + break; + case 48: + if ((0x100000001000L & l) != 0L && kind > 125) + kind = 125; + break; + case 49: + if ((0x20000000200000L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 48; + break; + case 50: + if ((0x20000000200000L & l) != 0L && kind > 125) + kind = 125; + break; + case 51: + if ((0x100000001000L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 50; + break; + case 53: + if ((0x100000001000000L & l) != 0L) + jjCheckNAdd(54); + break; + case 54: + if ((0x7e0000007eL & l) == 0L) + break; + if (kind > 126) + kind = 126; + jjCheckNAdd(54); + break; + case 55: + if ((0x100000001000000L & l) != 0L) + jjCheckNAdd(56); + break; + case 56: + if ((0x7e0000007eL & l) == 0L) + break; + if (kind > 127) + kind = 127; + jjCheckNAddTwoStates(56, 57); + break; + case 57: + if ((0x20100000201000L & l) != 0L && kind > 127) + kind = 127; + break; + case 58: + if ((0x100000001000000L & l) != 0L) + jjCheckNAdd(59); + break; + case 59: + if ((0x7e0000007eL & l) != 0L) + jjCheckNAddTwoStates(59, 60); + break; + case 60: + if ((0x20000000200000L & l) != 0L && kind > 128) + kind = 128; + break; + case 61: + if ((0x100000001000000L & l) != 0L) + jjCheckNAdd(62); + break; + case 62: + if ((0x7e0000007eL & l) != 0L) + jjCheckNAddStates(54, 56); + break; + case 63: + if ((0x100000001000L & l) != 0L && kind > 129) + kind = 129; + break; + case 64: + if ((0x20000000200000L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 63; + break; + case 65: + if ((0x20000000200000L & l) != 0L && kind > 129) + kind = 129; + break; + case 66: + if ((0x100000001000L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 65; + break; + case 73: + if ((0x2000000020L & l) != 0L) + jjAddStates(72, 73); + break; + case 76: + if ((0x104000001040L & l) != 0L && kind > 131) + kind = 131; + break; + case 77: + if (curChar == 76) + jjAddStates(60, 61); + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 7: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(74, 75); + break; + case 18: + if ((jjbitVec0[i2] & l2) != 0L) + jjAddStates(6, 8); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 78 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} +private int jjMoveStringLiteralDfa0_1() +{ + switch(curChar) + { + case 10: + return jjStopAtPos(0, 9); + default : + return 1; + } +} +private int jjMoveStringLiteralDfa0_4() +{ + switch(curChar) + { + case 10: + return jjStopAtPos(0, 14); + case 47: + return jjMoveStringLiteralDfa1_4(0x8000L); + case 92: + return jjMoveStringLiteralDfa1_4(0x30000L); + default : + return 1; + } +} +private int jjMoveStringLiteralDfa1_4(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 1; + } + switch(curChar) + { + case 10: + if ((active0 & 0x10000L) != 0L) + return jjStopAtPos(1, 16); + break; + case 13: + return jjMoveStringLiteralDfa2_4(active0, 0x20000L); + case 42: + if ((active0 & 0x8000L) != 0L) + return jjStopAtPos(1, 15); + break; + default : + return 2; + } + return 2; +} +private int jjMoveStringLiteralDfa2_4(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return 2; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 2; + } + switch(curChar) + { + case 10: + if ((active0 & 0x20000L) != 0L) + return jjStopAtPos(2, 17); + break; + default : + return 3; + } + return 3; +} +private int jjMoveStringLiteralDfa0_3() +{ + switch(curChar) + { + case 42: + return jjMoveStringLiteralDfa1_3(0x2000L); + default : + return 1; + } +} +private int jjMoveStringLiteralDfa1_3(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 1; + } + switch(curChar) + { + case 47: + if ((active0 & 0x2000L) != 0L) + return jjStopAtPos(1, 13); + break; + default : + return 2; + } + return 2; +} +private int jjMoveStringLiteralDfa0_2() +{ + switch(curChar) + { + case 42: + return jjMoveStringLiteralDfa1_2(0x800L); + default : + return 1; + } +} +private int jjMoveStringLiteralDfa1_2(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 1; + } + switch(curChar) + { + case 47: + if ((active0 & 0x800L) != 0L) + return jjStopAtPos(1, 11); + break; + default : + return 2; + } + return 2; +} +static final int[] jjnextStates = { + 68, 69, 71, 0, 72, 73, 18, 19, 21, 42, 43, 44, 45, 46, 47, 49, + 51, 53, 55, 58, 61, 31, 32, 33, 34, 35, 36, 38, 40, 1, 2, 5, + 18, 19, 23, 21, 18, 19, 25, 21, 18, 19, 27, 21, 36, 38, 40, 47, + 49, 51, 56, 57, 59, 60, 62, 64, 66, 70, 2, 5, 6, 17, 3, 4, + 10, 11, 13, 15, 20, 22, 24, 26, 74, 75, 7, 8, +}; + +/** Token literal values. */ +public static final String[] jjstrLiteralImages = { +"", null, null, null, null, null, null, null, null, null, null, null, null, +null, null, null, null, null, null, "\173", "\175", "\133", "\135", "\50", "\51", +"\72\72", "\72", "\73", "\54", "\77", "\56\56\56", "\75", "\52\75", "\57\75", "\45\75", +"\53\75", "\55\75", "\74\74\75", "\76\76\75", "\46\75", "\136\75", "\174\75", +"\174\174", "\46\46", "\174", "\136", "\46", "\75\75", "\41\75", "\74", "\76", "\74\75", +"\76\75", "\74\74", "\76\76", "\53", "\55", "\52", "\57", "\45", "\53\53", "\55\55", +"\176", "\41", "\56", "\55\76", "\56\52", "\55\76\52", "\141\165\164\157", +"\142\162\145\141\153", "\143\141\163\145", "\143\141\164\143\150", "\143\150\141\162", +"\143\157\156\163\164", "\143\157\156\164\151\156\165\145", "\144\145\146\141\165\154\164", +"\144\145\154\145\164\145", "\144\157", "\144\157\165\142\154\145", "\145\154\163\145", +"\145\156\165\155", "\145\170\164\145\162\156", "\146\154\157\141\164", "\146\157\162", +"\146\162\151\145\156\144", "\147\157\164\157", "\151\146", "\151\156\154\151\156\145", "\151\156\164", +"\154\157\156\147", "\156\145\167", "\160\162\151\166\141\164\145", +"\160\162\157\164\145\143\164\145\144", "\160\165\142\154\151\143", "\162\145\144\145\143\154\141\162\145\144", +"\162\145\147\151\163\164\145\162", "\162\145\164\165\162\156", "\163\150\157\162\164", +"\163\151\147\156\145\144", "\163\151\172\145\157\146", "\163\164\141\164\151\143", +"\163\164\162\165\143\164", "\143\154\141\163\163", "\163\167\151\164\143\150", +"\164\145\155\160\154\141\164\145", "\164\150\151\163", "\164\162\171", "\164\171\160\145\144\145\146", +"\165\156\151\157\156", "\165\156\163\151\147\156\145\144", "\166\151\162\164\165\141\154", +"\166\157\151\144", "\166\157\154\141\164\151\154\145", "\167\150\151\154\145", +"\157\160\145\162\141\164\157\162", "\164\162\165\145", "\146\141\154\163\145", "\164\150\162\157\167", null, null, +null, null, null, null, null, null, null, null, null, null, null, null, null, null, +"\146\151\156\141\154\154\171", null, }; + +/** Lexer state names. */ +public static final String[] lexStateNames = { + "DEFAULT", + "IN_LINE_COMMENT", + "IN_COMMENT", + "IN_PREPROCESSOR_OUTPUT_COMMENT", + "PREPROCESSOR_OUTPUT", +}; + +/** Lex State array. */ +public static final int[] jjnewLexState = { + -1, -1, -1, -1, -1, -1, 1, 2, 4, 0, -1, 0, -1, 4, 0, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +}; +static final long[] jjtoToken = { + 0xfffffffffff80001L, 0xffffffffffffffffL, 0xffL, +}; +static final long[] jjtoSkip = { + 0xebfeL, 0x0L, 0x0L, +}; +static final long[] jjtoMore = { + 0x71400L, 0x0L, 0x0L, +}; +protected CharStream input_stream; +private final int[] jjrounds = new int[78]; +private final int[] jjstateSet = new int[156]; +protected char curChar; +/** Constructor. */ +public CppParserTokenManager(CharStream stream){ + input_stream = stream; +} + +/** Constructor. */ +public CppParserTokenManager(CharStream stream, int lexState){ + this(stream); + SwitchTo(lexState); +} + +/** Reinitialise parser. */ +public void ReInit(CharStream stream) +{ + jjmatchedPos = jjnewStateCnt = 0; + curLexState = defaultLexState; + input_stream = stream; + ReInitRounds(); +} +private void ReInitRounds() +{ + int i; + jjround = 0x80000001; + for (i = 78; i-- > 0;) + jjrounds[i] = 0x80000000; +} + +/** Reinitialise parser. */ +public void ReInit(CharStream stream, int lexState) +{ + ReInit(stream); + SwitchTo(lexState); +} + +/** Switch to specified lex state. */ +public void SwitchTo(int lexState) +{ + if (lexState >= 5 || lexState < 0) + throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); + else + curLexState = lexState; +} + +protected Token jjFillToken() +{ + final Token t; + final String curTokenImage; + final int beginLine; + final int endLine; + final int beginColumn; + final int endColumn; + String im = jjstrLiteralImages[jjmatchedKind]; + curTokenImage = (im == null) ? input_stream.GetImage() : im; + beginLine = input_stream.getBeginLine(); + beginColumn = input_stream.getBeginColumn(); + endLine = input_stream.getEndLine(); + endColumn = input_stream.getEndColumn(); + t = Token.newToken(jjmatchedKind, curTokenImage); + + t.beginLine = beginLine; + t.endLine = endLine; + t.beginColumn = beginColumn; + t.endColumn = endColumn; + + return t; +} + +int curLexState = 0; +int defaultLexState = 0; +int jjnewStateCnt; +int jjround; +int jjmatchedPos; +int jjmatchedKind; + +/** Get the next Token. */ +public Token getNextToken() +{ + Token matchedToken; + int curPos = 0; + + EOFLoop : + for (;;) + { + try + { + curChar = input_stream.BeginToken(); + } + catch(java.io.IOException e) + { + jjmatchedKind = 0; + matchedToken = jjFillToken(); + return matchedToken; + } + + for (;;) + { + switch(curLexState) + { + case 0: + try { input_stream.backup(0); + while (curChar <= 32 && (0x100001600L & (1L << curChar)) != 0L) + curChar = input_stream.BeginToken(); + } + catch (java.io.IOException e1) { continue EOFLoop; } + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_0(); + break; + case 1: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_1(); + if (jjmatchedPos == 0 && jjmatchedKind > 10) + { + jjmatchedKind = 10; + } + break; + case 2: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_2(); + if (jjmatchedPos == 0 && jjmatchedKind > 12) + { + jjmatchedKind = 12; + } + break; + case 3: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_3(); + if (jjmatchedPos == 0 && jjmatchedKind > 12) + { + jjmatchedKind = 12; + } + break; + case 4: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_4(); + if (jjmatchedPos == 0 && jjmatchedKind > 18) + { + jjmatchedKind = 18; + } + break; + } + if (jjmatchedKind != 0x7fffffff) + { + if (jjmatchedPos + 1 < curPos) + input_stream.backup(curPos - jjmatchedPos - 1); + if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) + { + matchedToken = jjFillToken(); + if (jjnewLexState[jjmatchedKind] != -1) + curLexState = jjnewLexState[jjmatchedKind]; + return matchedToken; + } + else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) + { + if (jjnewLexState[jjmatchedKind] != -1) + curLexState = jjnewLexState[jjmatchedKind]; + continue EOFLoop; + } + if (jjnewLexState[jjmatchedKind] != -1) + curLexState = jjnewLexState[jjmatchedKind]; + curPos = 0; + jjmatchedKind = 0x7fffffff; + try { + curChar = input_stream.readChar(); + continue; + } + catch (java.io.IOException e1) { } + } + int error_line = input_stream.getEndLine(); + int error_column = input_stream.getEndColumn(); + String error_after = null; + boolean EOFSeen = false; + try { input_stream.readChar(); input_stream.backup(1); } + catch (java.io.IOException e1) { + EOFSeen = true; + error_after = curPos <= 1 ? "" : input_stream.GetImage(); + if (curChar == '\n' || curChar == '\r') { + error_line++; + error_column = 0; + } + else + error_column++; + } + if (!EOFSeen) { + input_stream.backup(1); + error_after = curPos <= 1 ? "" : input_stream.GetImage(); + } + throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR); + } + } +} + +private void jjCheckNAdd(int state) +{ + if (jjrounds[state] != jjround) + { + jjstateSet[jjnewStateCnt++] = state; + jjrounds[state] = jjround; + } +} +private void jjAddStates(int start, int end) +{ + do { + jjstateSet[jjnewStateCnt++] = jjnextStates[start]; + } while (start++ != end); +} +private void jjCheckNAddTwoStates(int state1, int state2) +{ + jjCheckNAdd(state1); + jjCheckNAdd(state2); +} + +private void jjCheckNAddStates(int start, int end) +{ + do { + jjCheckNAdd(jjnextStates[start]); + } while (start++ != end); +} + +} diff --git a/pmd/src/net/sourceforge/pmd/lang/cpp/ast/Token.java b/pmd/src/net/sourceforge/pmd/lang/cpp/ast/Token.java index 032945e9c8..9dc194fc79 100644 --- a/pmd/src/net/sourceforge/pmd/lang/cpp/ast/Token.java +++ b/pmd/src/net/sourceforge/pmd/lang/cpp/ast/Token.java @@ -1,124 +1,124 @@ -/* Generated By:JavaCC: Do not edit this line. Token.java Version 4.1 */ -/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null */ -package net.sourceforge.pmd.lang.cpp.ast; - -/** - * Describes the input token stream. - */ - -public class Token { - - /** - * An integer that describes the kind of this token. This numbering - * system is determined by JavaCCParser, and a table of these numbers is - * stored in the file ...Constants.java. - */ - public int kind; - - /** The line number of the first character of this Token. */ - public int beginLine; - /** The column number of the first character of this Token. */ - public int beginColumn; - /** The line number of the last character of this Token. */ - public int endLine; - /** The column number of the last character of this Token. */ - public int endColumn; - - /** - * The string image of the token. - */ - public String image; - - /** - * A reference to the next regular (non-special) token from the input - * stream. If this is the last token from the input stream, or if the - * token manager has not read tokens beyond this one, this field is - * set to null. This is true only if this token is also a regular - * token. Otherwise, see below for a description of the contents of - * this field. - */ - public Token next; - - /** - * This field is used to access special tokens that occur prior to this - * token, but after the immediately preceding regular (non-special) token. - * If there are no such special tokens, this field is set to null. - * When there are more than one such special token, this field refers - * to the last of these special tokens, which in turn refers to the next - * previous special token through its specialToken field, and so on - * until the first special token (whose specialToken field is null). - * The next fields of special tokens refer to other special tokens that - * immediately follow it (without an intervening regular token). If there - * is no such token, this field is null. - */ - public Token specialToken; - - /** - * An optional attribute value of the Token. - * Tokens which are not used as syntactic sugar will often contain - * meaningful values that will be used later on by the compiler or - * interpreter. This attribute value is often different from the image. - * Any subclass of Token that actually wants to return a non-null value can - * override this method as appropriate. - */ - public Object getValue() { - return null; - } - - /** - * No-argument constructor - */ - public Token() {} - - /** - * Constructs a new token for the specified Image. - */ - public Token(int kind) - { - this(kind, null); - } - - /** - * Constructs a new token for the specified Image and Kind. - */ - public Token(int kind, String image) - { - this.kind = kind; - this.image = image; - } - - /** - * Returns the image. - */ - public String toString() - { - return image; - } - - /** - * Returns a new Token object, by default. However, if you want, you - * can create and return subclass objects based on the value of ofKind. - * Simply add the cases to the switch for all those special cases. - * For example, if you have a subclass of Token called IDToken that - * you want to create if ofKind is ID, simply add something like : - * - * case MyParserConstants.ID : return new IDToken(ofKind, image); - * - * to the following switch statement. Then you can cast matchedToken - * variable to the appropriate type and use sit in your lexical actions. - */ - public static Token newToken(int ofKind, String image) - { - switch(ofKind) - { - default : return new Token(ofKind, image); - } - } - - public static Token newToken(int ofKind) - { - return newToken(ofKind, null); - } - -} -/* JavaCC - OriginalChecksum=a48eff30fff78ae5da63653beea2021f (do not edit this line) */ +/* Generated By:JavaCC: Do not edit this line. Token.java Version 4.1 */ +/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null */ +package net.sourceforge.pmd.lang.cpp.ast; + +/** + * Describes the input token stream. + */ + +public class Token { + + /** + * An integer that describes the kind of this token. This numbering + * system is determined by JavaCCParser, and a table of these numbers is + * stored in the file ...Constants.java. + */ + public int kind; + + /** The line number of the first character of this Token. */ + public int beginLine; + /** The column number of the first character of this Token. */ + public int beginColumn; + /** The line number of the last character of this Token. */ + public int endLine; + /** The column number of the last character of this Token. */ + public int endColumn; + + /** + * The string image of the token. + */ + public String image; + + /** + * A reference to the next regular (non-special) token from the input + * stream. If this is the last token from the input stream, or if the + * token manager has not read tokens beyond this one, this field is + * set to null. This is true only if this token is also a regular + * token. Otherwise, see below for a description of the contents of + * this field. + */ + public Token next; + + /** + * This field is used to access special tokens that occur prior to this + * token, but after the immediately preceding regular (non-special) token. + * If there are no such special tokens, this field is set to null. + * When there are more than one such special token, this field refers + * to the last of these special tokens, which in turn refers to the next + * previous special token through its specialToken field, and so on + * until the first special token (whose specialToken field is null). + * The next fields of special tokens refer to other special tokens that + * immediately follow it (without an intervening regular token). If there + * is no such token, this field is null. + */ + public Token specialToken; + + /** + * An optional attribute value of the Token. + * Tokens which are not used as syntactic sugar will often contain + * meaningful values that will be used later on by the compiler or + * interpreter. This attribute value is often different from the image. + * Any subclass of Token that actually wants to return a non-null value can + * override this method as appropriate. + */ + public Object getValue() { + return null; + } + + /** + * No-argument constructor + */ + public Token() {} + + /** + * Constructs a new token for the specified Image. + */ + public Token(int kind) + { + this(kind, null); + } + + /** + * Constructs a new token for the specified Image and Kind. + */ + public Token(int kind, String image) + { + this.kind = kind; + this.image = image; + } + + /** + * Returns the image. + */ + public String toString() + { + return image; + } + + /** + * Returns a new Token object, by default. However, if you want, you + * can create and return subclass objects based on the value of ofKind. + * Simply add the cases to the switch for all those special cases. + * For example, if you have a subclass of Token called IDToken that + * you want to create if ofKind is ID, simply add something like : + * + * case MyParserConstants.ID : return new IDToken(ofKind, image); + * + * to the following switch statement. Then you can cast matchedToken + * variable to the appropriate type and use sit in your lexical actions. + */ + public static Token newToken(int ofKind, String image) + { + switch(ofKind) + { + default : return new Token(ofKind, image); + } + } + + public static Token newToken(int ofKind) + { + return newToken(ofKind, null); + } + +} +/* JavaCC - OriginalChecksum=2fb0085f94258a33bfd304b374a2793f (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserConstants.java b/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserConstants.java index 6057f59f26..6fdc5acfb6 100644 --- a/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserConstants.java +++ b/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserConstants.java @@ -2,7 +2,7 @@ package net.sourceforge.pmd.lang.java.ast; -/** +/** * Token literal values and constants. * Generated by org.javacc.parser.OtherFilesGen#start() */ diff --git a/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserTokenManager.java b/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserTokenManager.java index 5604850745..81b98f539f 100644 --- a/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserTokenManager.java +++ b/pmd/src/net/sourceforge/pmd/lang/java/ast/JavaParserTokenManager.java @@ -388,7 +388,7 @@ private int jjMoveStringLiteralDfa1_0(long active0, long active1) private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1) { if (((active0 &= old0) | (active1 &= old1)) == 0L) - return jjStartNfa_0(0, old0, old1); + return jjStartNfa_0(0, old0, old1); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(1, active0, active1); @@ -468,7 +468,7 @@ private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long a private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1) { if (((active0 &= old0) | (active1 &= old1)) == 0L) - return jjStartNfa_0(1, old0, old1); + return jjStartNfa_0(1, old0, old1); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(2, active0, active1); @@ -540,7 +540,7 @@ private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long a private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1) { if (((active0 &= old0) | (active1 &= old1)) == 0L) - return jjStartNfa_0(2, old0, old1); + return jjStartNfa_0(2, old0, old1); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(3, active0, 0L); @@ -1604,7 +1604,7 @@ private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, lo { case 0: return ((jjbitVec2[i2] & l2) != 0L); - default : + default : if ((jjbitVec0[i1] & l1) != 0L) return true; return false; @@ -1688,7 +1688,7 @@ private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, lo return ((jjbitVec38[i2] & l2) != 0L); case 255: return ((jjbitVec39[i2] & l2) != 0L); - default : + default : if ((jjbitVec3[i1] & l1) != 0L) return true; return false; @@ -1772,7 +1772,7 @@ private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, lo return ((jjbitVec60[i2] & l2) != 0L); case 255: return ((jjbitVec61[i2] & l2) != 0L); - default : + default : if ((jjbitVec3[i1] & l1) != 0L) return true; return false; @@ -1806,9 +1806,9 @@ null, null, null, null, null, "\50", "\51", "\173", "\175", "\133", "\135", "\73 /** Lexer state names. */ public static final String[] lexStateNames = { - "DEFAULT", - "IN_FORMAL_COMMENT", - "IN_MULTI_LINE_COMMENT", + "DEFAULT", + "IN_FORMAL_COMMENT", + "IN_MULTI_LINE_COMMENT", }; /** Lex State array. */ @@ -1922,13 +1922,13 @@ public Token getNextToken() EOFLoop : for (;;) - { - try - { + { + try + { curChar = input_stream.BeginToken(); - } + } catch(java.io.IOException e) - { + { jjmatchedKind = 0; matchedToken = jjFillToken(); matchedToken.specialToken = specialToken; @@ -1993,7 +1993,7 @@ public Token getNextToken() } SkipLexicalActions(matchedToken); } - else + else SkipLexicalActions(null); if (jjnewLexState[jjmatchedKind] != -1) curLexState = jjnewLexState[jjmatchedKind]; @@ -2068,7 +2068,7 @@ void MoreLexicalActions() jjimageLen = 0; input_stream.backup(1); break; - default : + default : break; } } @@ -2092,7 +2092,7 @@ void TokenLexicalActions(Token matchedToken) input_stream.backup(1); matchedToken.image = ">"; break; - default : + default : break; } } diff --git a/pmd/src/net/sourceforge/pmd/lang/java/ast/ParseException.java b/pmd/src/net/sourceforge/pmd/lang/java/ast/ParseException.java index 34c72400a7..7f7a6340d9 100644 --- a/pmd/src/net/sourceforge/pmd/lang/java/ast/ParseException.java +++ b/pmd/src/net/sourceforge/pmd/lang/java/ast/ParseException.java @@ -126,7 +126,7 @@ public class ParseException extends net.sourceforge.pmd.lang.ast.ParseException retval += " \""; retval += add_escapes(tok.image); retval += " \""; - tok = tok.next; + tok = tok.next; } retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn; retval += "." + eol; @@ -143,7 +143,7 @@ public class ParseException extends net.sourceforge.pmd.lang.ast.ParseException * The end of line string for this machine. */ protected String eol = System.getProperty("line.separator", "\n"); - + /** * Used to convert raw characters to their escaped version * when these raw version cannot be used as part of an ASCII @@ -195,4 +195,4 @@ public class ParseException extends net.sourceforge.pmd.lang.ast.ParseException } } -/* JavaCC - OriginalChecksum=29236f8f6c91a233e4875e6687062604 (do not edit this line) */ +/* JavaCC - OriginalChecksum=a63a6feef75bb2f43f87818b3b26b2af (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JJTJspParserState.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JJTJspParserState.java index 03333c63f2..70fbaa3bdb 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JJTJspParserState.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JJTJspParserState.java @@ -122,4 +122,4 @@ public class JJTJspParserState { } } } -/* JavaCC - OriginalChecksum=976ca1e331dba4277c943b828fdb0955 (do not edit this line) */ +/* JavaCC - OriginalChecksum=d16c33f88464be769fa14a7d8f0b5d07 (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java index 07cf1dda50..e89e0761f0 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java @@ -2,7 +2,7 @@ package net.sourceforge.pmd.lang.jsp.ast; -/** +/** * Token literal values and constants. * Generated by org.javacc.parser.OtherFilesGen#start() */ diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java index 841b4310f8..d8b03a1eb3 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java @@ -871,7 +871,7 @@ private int jjMoveStringLiteralDfa1_7(long active0) private int jjMoveStringLiteralDfa2_7(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_7(0, old0); + return jjStartNfa_7(0, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_7(1, active0); @@ -889,7 +889,7 @@ private int jjMoveStringLiteralDfa2_7(long old0, long active0) private int jjMoveStringLiteralDfa3_7(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_7(1, old0); + return jjStartNfa_7(1, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_7(2, active0); @@ -1213,7 +1213,7 @@ private int jjMoveStringLiteralDfa1_16(long active0) private int jjMoveStringLiteralDfa2_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(0, old0); + return jjStartNfa_16(0, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(1, active0); @@ -1248,7 +1248,7 @@ private int jjMoveStringLiteralDfa2_16(long old0, long active0) private int jjMoveStringLiteralDfa3_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(1, old0); + return jjStartNfa_16(1, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(2, active0); @@ -1276,7 +1276,7 @@ private int jjMoveStringLiteralDfa3_16(long old0, long active0) private int jjMoveStringLiteralDfa4_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(2, old0); + return jjStartNfa_16(2, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(3, active0); @@ -1298,7 +1298,7 @@ private int jjMoveStringLiteralDfa4_16(long old0, long active0) private int jjMoveStringLiteralDfa5_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(3, old0); + return jjStartNfa_16(3, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(4, active0); @@ -1320,7 +1320,7 @@ private int jjMoveStringLiteralDfa5_16(long old0, long active0) private int jjMoveStringLiteralDfa6_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(4, old0); + return jjStartNfa_16(4, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(5, active0); @@ -1342,7 +1342,7 @@ private int jjMoveStringLiteralDfa6_16(long old0, long active0) private int jjMoveStringLiteralDfa7_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(5, old0); + return jjStartNfa_16(5, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(6, active0); @@ -1364,7 +1364,7 @@ private int jjMoveStringLiteralDfa7_16(long old0, long active0) private int jjMoveStringLiteralDfa8_16(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_16(6, old0); + return jjStartNfa_16(6, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_16(7, active0); @@ -1507,7 +1507,7 @@ private int jjMoveStringLiteralDfa1_12(long active0) private int jjMoveStringLiteralDfa2_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(0, old0); + return jjStartNfa_12(0, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(1, active0); @@ -1542,7 +1542,7 @@ private int jjMoveStringLiteralDfa2_12(long old0, long active0) private int jjMoveStringLiteralDfa3_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(1, old0); + return jjStartNfa_12(1, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(2, active0); @@ -1570,7 +1570,7 @@ private int jjMoveStringLiteralDfa3_12(long old0, long active0) private int jjMoveStringLiteralDfa4_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(2, old0); + return jjStartNfa_12(2, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(3, active0); @@ -1592,7 +1592,7 @@ private int jjMoveStringLiteralDfa4_12(long old0, long active0) private int jjMoveStringLiteralDfa5_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(3, old0); + return jjStartNfa_12(3, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(4, active0); @@ -1614,7 +1614,7 @@ private int jjMoveStringLiteralDfa5_12(long old0, long active0) private int jjMoveStringLiteralDfa6_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(4, old0); + return jjStartNfa_12(4, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(5, active0); @@ -1636,7 +1636,7 @@ private int jjMoveStringLiteralDfa6_12(long old0, long active0) private int jjMoveStringLiteralDfa7_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(5, old0); + return jjStartNfa_12(5, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(6, active0); @@ -1658,7 +1658,7 @@ private int jjMoveStringLiteralDfa7_12(long old0, long active0) private int jjMoveStringLiteralDfa8_12(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_12(6, old0); + return jjStartNfa_12(6, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_12(7, active0); @@ -2679,7 +2679,7 @@ private int jjMoveStringLiteralDfa1_5(long active0) private int jjMoveStringLiteralDfa2_5(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_5(0, old0); + return jjStartNfa_5(0, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_5(1, active0); @@ -2701,7 +2701,7 @@ private int jjMoveStringLiteralDfa2_5(long old0, long active0) private int jjMoveStringLiteralDfa3_5(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_5(1, old0); + return jjStartNfa_5(1, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_5(2, active0); @@ -2723,7 +2723,7 @@ private int jjMoveStringLiteralDfa3_5(long old0, long active0) private int jjMoveStringLiteralDfa4_5(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_5(2, old0); + return jjStartNfa_5(2, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_5(3, active0); @@ -2745,7 +2745,7 @@ private int jjMoveStringLiteralDfa4_5(long old0, long active0) private int jjMoveStringLiteralDfa5_5(long old0, long active0) { if (((active0 &= old0)) == 0L) - return jjStartNfa_5(3, old0); + return jjStartNfa_5(3, old0); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_5(4, active0); @@ -3229,23 +3229,23 @@ null, "\47", null, null, "\42", null, null, null, null, }; /** Lexer state names. */ public static final String[] lexStateNames = { - "CommentState", - "AttrValueBetweenDoubleQuotesState", - "AttrValueBetweenSingleQuotesState", - "StartTagState", - "CDataState", - "DocTypeExternalIdState", - "DocTypeState", - "JspCommentState", - "JspDeclarationState", - "JspExpressionState", - "JspScriptletState", - "InTagState", - "AfterTagState", - "AttrValueState", - "JspDirectiveAttributesState", - "JspDirectiveState", - "DEFAULT", + "CommentState", + "AttrValueBetweenDoubleQuotesState", + "AttrValueBetweenSingleQuotesState", + "StartTagState", + "CDataState", + "DocTypeExternalIdState", + "DocTypeState", + "JspCommentState", + "JspDeclarationState", + "JspExpressionState", + "JspScriptletState", + "InTagState", + "AfterTagState", + "AttrValueState", + "JspDirectiveAttributesState", + "JspDirectiveState", + "DEFAULT", }; /** Lex State array. */ @@ -3351,13 +3351,13 @@ public Token getNextToken() EOFLoop : for (;;) - { - try - { + { + try + { curChar = input_stream.BeginToken(); - } + } catch(java.io.IOException e) - { + { jjmatchedKind = 0; matchedToken = jjFillToken(); matchedToken.specialToken = specialToken; diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTreeConstants.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTreeConstants.java index 7eb11ac69b..42ca4ed802 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTreeConstants.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTreeConstants.java @@ -52,4 +52,4 @@ public interface JspParserTreeConstants "DoctypeExternalId", }; } -/* JavaCC - OriginalChecksum=538b584b412e9a3389185d768af28183 (do not edit this line) */ +/* JavaCC - OriginalChecksum=71c6213c71bf42a9b188039b011ef3fa (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java index c5113d2ff6..6b62420aa8 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java @@ -26,4 +26,4 @@ public interface JspParserVisitor public Object visit(ASTDoctypeDeclaration node, Object data); public Object visit(ASTDoctypeExternalId node, Object data); } -/* JavaCC - OriginalChecksum=ca2b21d15ecbbc104a0ac9792fa736b6 (do not edit this line) */ +/* JavaCC - OriginalChecksum=34036f9be051dd3397ac21f8e8b1d0ca (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ParseException.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ParseException.java index 5d35ab2c1a..4613d4f17c 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ParseException.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ParseException.java @@ -126,7 +126,7 @@ public class ParseException extends net.sourceforge.pmd.lang.ast.ParseException retval += " \""; retval += add_escapes(tok.image); retval += " \""; - tok = tok.next; + tok = tok.next; } retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn; retval += "." + eol; @@ -143,7 +143,7 @@ public class ParseException extends net.sourceforge.pmd.lang.ast.ParseException * The end of line string for this machine. */ protected String eol = System.getProperty("line.separator", "\n"); - + /** * Used to convert raw characters to their escaped version * when these raw version cannot be used as part of an ASCII @@ -195,4 +195,4 @@ public class ParseException extends net.sourceforge.pmd.lang.ast.ParseException } } -/* JavaCC - OriginalChecksum=cd4307ac2d4989d25bb500d2c43a83fe (do not edit this line) */ +/* JavaCC - OriginalChecksum=3eaeda8e5224d230494da79e6989b339 (do not edit this line) */ diff --git a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/Token.java b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/Token.java index bfc96799ba..55b20db16a 100644 --- a/pmd/src/net/sourceforge/pmd/lang/jsp/ast/Token.java +++ b/pmd/src/net/sourceforge/pmd/lang/jsp/ast/Token.java @@ -121,4 +121,4 @@ public class Token { } } -/* JavaCC - OriginalChecksum=eb53772888f3c45b4e16655eb67fdfd3 (do not edit this line) */ +/* JavaCC - OriginalChecksum=37d2b2975506f4acde6f7611ffab4e7d (do not edit this line) */