diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2014-07-27 14:31:34 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-02 10:05:26 (GMT) |
commit | 36122e49ed1d9e640b1ceca52536ec7c55e10474 (patch) | |
tree | c61b21164b0445eb23631aa812810f4712cd8f61 /vhdlparser | |
parent | 6a60477b418e21dbadd3e62dc557a038e319581b (diff) | |
download | Doxygen-36122e49ed1d9e640b1ceca52536ec7c55e10474.zip Doxygen-36122e49ed1d9e640b1ceca52536ec7c55e10474.tar.gz Doxygen-36122e49ed1d9e640b1ceca52536ec7c55e10474.tar.bz2 |
New VHDL parser implementation
Diffstat (limited to 'vhdlparser')
-rw-r--r-- | vhdlparser/CharStream.cc | 212 | ||||
-rw-r--r-- | vhdlparser/CharStream.h | 257 | ||||
-rw-r--r-- | vhdlparser/ErrorHandler.h | 43 | ||||
-rw-r--r-- | vhdlparser/JavaCC.h | 51 | ||||
-rw-r--r-- | vhdlparser/JavaCC.h.in | 51 | ||||
-rw-r--r-- | vhdlparser/Makefile.in | 40 | ||||
-rw-r--r-- | vhdlparser/ParseException.cc | 186 | ||||
-rw-r--r-- | vhdlparser/ParseException.h | 99 | ||||
-rw-r--r-- | vhdlparser/Token.cc | 92 | ||||
-rw-r--r-- | vhdlparser/Token.h | 116 | ||||
-rw-r--r-- | vhdlparser/TokenManager.h | 33 | ||||
-rw-r--r-- | vhdlparser/TokenMgrError.cc | 121 | ||||
-rw-r--r-- | vhdlparser/TokenMgrError.h | 90 | ||||
-rw-r--r-- | vhdlparser/VhdlParser.cc | 13051 | ||||
-rw-r--r-- | vhdlparser/VhdlParser.h | 8944 | ||||
-rw-r--r-- | vhdlparser/VhdlParserConstants.h | 944 | ||||
-rw-r--r-- | vhdlparser/VhdlParserErrorHandler.hpp | 39 | ||||
-rw-r--r-- | vhdlparser/VhdlParserIF.cpp | 56 | ||||
-rw-r--r-- | vhdlparser/VhdlParserIF.h | 12 | ||||
-rw-r--r-- | vhdlparser/VhdlParserTokenManager.cc | 3497 | ||||
-rw-r--r-- | vhdlparser/VhdlParserTokenManager.h | 133 | ||||
-rw-r--r-- | vhdlparser/vhdlparser.jj | 2758 | ||||
-rw-r--r-- | vhdlparser/vhdlparser.patch | 10 | ||||
-rw-r--r-- | vhdlparser/vhdlparser.pro.in | 33 | ||||
-rw-r--r-- | vhdlparser/vhdlstring.h | 100 |
25 files changed, 30968 insertions, 0 deletions
diff --git a/vhdlparser/CharStream.cc b/vhdlparser/CharStream.cc new file mode 100644 index 0000000..8cc17c3 --- /dev/null +++ b/vhdlparser/CharStream.cc @@ -0,0 +1,212 @@ +/* Generated By:JavaCC: Do not edit this line. CharStream.cc Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#include "CharStream.h" + +namespace { +template <class T> +void ArrayCopy(T* src, int src_offset, T* dest, int dest_offset, int len) { + for (int i = 0; i < len; i++) { + dest[dest_offset + i] = src[src_offset + i]; + } +} + +class StringReaderStream : public ReaderStream { + public: + StringReaderStream(const JAVACC_STRING_TYPE& str) : str_(str), cur_(0), max_(str.size()) {} + virtual size_t read(JAVACC_CHAR_TYPE *bufptr, int offset, size_t len) { + size_t count = str_.copy(bufptr + offset, len > max_ ? max_ : len, cur_); + cur_ += count; + max_ -= count; + return count; + } + virtual ~StringReaderStream() {} + virtual bool endOfInput() { + return max_ == 0; + } + + private: + const JAVACC_STRING_TYPE str_; + size_t cur_; + size_t max_; +}; +} + +namespace vhdl { +namespace parser { +void CharStream::ReInit(const JAVACC_STRING_TYPE& str, int startline, + int startcolumn, int buffersize) { + StringReaderStream *stream = new StringReaderStream(str); + ReInit(stream, startline, startcolumn, buffersize); + deleteStream = true; +} + +void CharStream::ReInit(ReaderStream *input_stream, int startline, + int startcolumn, int buffersize) { + if (deleteStream) { + delete inputStream; + } + + if (buffer != NULL) { + DeleteBuffers(); + } + + available = bufsize = buffersize; + buffer = new JAVACC_CHAR_TYPE[buffersize]; + bufline = new int[buffersize]; + bufcolumn = new int[buffersize]; + + column = startcolumn - 1; + inputStream = input_stream; + line = startline; + prevCharIsLF = prevCharIsCR = false; + tokenBegin = inBuf = maxNextCharInd = 0; + bufpos = -1; + deleteStream = false; +} + +void CharStream::DeleteBuffers() { + delete[] buffer; + delete[] bufline; + delete[] bufcolumn; +} + +void CharStream::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 + 1) % bufsize]) { + bufline[j] = newLine; + nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j]; + bufcolumn[j] = newCol + columnDiff; + columnDiff = nextColDiff; + i++; + start++; + } + + if (i < len) { + bufline[j] = newLine++; + bufcolumn[j] = newCol + columnDiff; + + while (i++ < len) { + if (bufline[j = start % bufsize] != bufline[(start + 1) % bufsize]) + bufline[j] = newLine++; + else + bufline[j] = newLine; + start++; + } + } + + line = bufline[j]; + column = bufcolumn[j]; +} + +void CharStream::ExpandBuff(bool wrapAround) { + JAVACC_CHAR_TYPE *newbuffer = new JAVACC_CHAR_TYPE[bufsize + 2048]; + int *newbufline = new int[bufsize + 2048]; + int *newbufcolumn = new int[bufsize + 2048]; + + if (wrapAround) { + ArrayCopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + ArrayCopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos); + ArrayCopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + ArrayCopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos); + ArrayCopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + ArrayCopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos); + bufpos += (bufsize - tokenBegin); + } else { + ArrayCopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin); + ArrayCopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin); + ArrayCopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin); + bufpos -= tokenBegin; + } + + maxNextCharInd = bufpos; + DeleteBuffers(); + buffer = newbuffer; + bufline = newbufline; + bufcolumn = newbufcolumn; + bufsize += 2048; + available = bufsize; + tokenBegin = 0; +} + +void CharStream::FillBuff() { + 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 = inputStream->read(buffer, maxNextCharInd, available - maxNextCharInd); + if (i > 0) { + maxNextCharInd += i; + } else { + --bufpos; + backup(0); + if (tokenBegin == -1) { + tokenBegin = bufpos; + } + } +} + +void CharStream::UpdateLineColumn(JAVACC_CHAR_TYPE c) { + column++; + if (prevCharIsLF) { + prevCharIsLF = false; + column = 1; + line++; + } else if (prevCharIsCR) { + prevCharIsCR = false; + if (c == '\n') { + prevCharIsLF = true; + } else { + column = 1; + line++; + } + } + + 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; +} + +} +} +/* JavaCC - OriginalChecksum=e709b9ee1adf0fcb6b1c5e1641f10348 (do not edit this line) */ diff --git a/vhdlparser/CharStream.h b/vhdlparser/CharStream.h new file mode 100644 index 0000000..b0e74b6 --- /dev/null +++ b/vhdlparser/CharStream.h @@ -0,0 +1,257 @@ +/* Generated By:JavaCC: Do not edit this line. CharStream.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef CHARSTREAM_H +#define CHARSTREAM_H +#include "JavaCC.h" + +#ifndef INITIAL_BUFFER_SIZE +#define INITIAL_BUFFER_SIZE 4096 +#endif + +namespace vhdl { +namespace parser { + +/** + * This class describes a character stream that maintains line and + * column number positions of the characters. It also has the capability + * to backup the stream to some extent. An implementation of this + * class is used in the TokenManager implementation generated by + * JavaCCParser. + * + * All the methods except backup can be implemented in any fashion. backup + * needs to be implemented correctly for the correct operation of the lexer. + * Rest of the methods are all used to get information like line number, + * column number and the string that constitutes a token and are not used + * by the lexer. Hence their implementation won't affect the generated lexer's + * operation. + */ + + +class CharStream { + public: + void setTabSize(int i) { tabSize = i; } + int getTabSize(int) { return tabSize; } + virtual int getColumn() { return trackLineColumn ? bufcolumn[bufpos] : -1; } + virtual int getLine() { return trackLineColumn ? bufline[bufpos] : -1; } + virtual int getEndColumn() { return trackLineColumn ? bufcolumn[bufpos] : -1; } + virtual int getEndLine() { return trackLineColumn ? bufline[bufpos] : -1; } + virtual int getBeginColumn() { return trackLineColumn ? bufcolumn[tokenBegin] : -1; } + virtual int getBeginLine() { return trackLineColumn ? bufline[tokenBegin] : -1; } + + virtual bool getTrackLineColumn() { return trackLineColumn; } + virtual void setTrackLineColumn(bool val) { trackLineColumn = val; } + +/** + * Backs up the input stream by amount steps. Lexer calls this method if it + * had already read some characters, but could not use them to match a + * (longer) token. So, they will be used again as the prefix of the next + * token and it is the implemetation's responsibility to do this right. + */ +virtual inline void backup(int amount) { + inBuf += amount; + bufpos -= amount; + if (bufpos < 0) { + bufpos += bufsize; + } +} + +/** + * Returns the next character that marks the beginning of the next token. + * All characters must remain in the buffer between two successive calls + * to this method to implement backup correctly. + */ +virtual inline JAVACC_CHAR_TYPE BeginToken() { + tokenBegin = -1; + JAVACC_CHAR_TYPE c = readChar(); + tokenBegin = bufpos; + return c; +} + + +/** + * Returns the next character from the selected input. The method + * of selecting the input is the responsibility of the class + * implementing this class. + */ +virtual inline JAVACC_CHAR_TYPE readChar() { + if (inBuf > 0) { + --inBuf; + ++bufpos; + if (bufpos == bufsize) { + bufpos = 0; + } + + return buffer[bufpos]; + } + + ++bufpos; + if (bufpos >= maxNextCharInd) { + FillBuff(); + } + + JAVACC_CHAR_TYPE c = buffer[bufpos]; + + if (trackLineColumn) { + UpdateLineColumn(c); + } + + return c; +} + + + virtual void ExpandBuff(bool wrapAround); + virtual void FillBuff(); + + /** + * Returns a string made up of characters from the marked token beginning + * to the current buffer position. Implementations can return + * anything that they want to. For example, for efficiency, one might decide + * to just return NULL, which is a valid implementation. + */ + virtual JAVACC_STRING_TYPE GetImage() { + if (bufpos >= tokenBegin) + return JAVACC_STRING_TYPE(buffer + tokenBegin, bufpos - tokenBegin + 1); + else + return JAVACC_STRING_TYPE(buffer + tokenBegin, bufsize - tokenBegin) + .append(buffer, bufpos + 1); + } + + /** + * Returns an array of characters that make up the suffix of length 'len' for + * the currently matched token. This is used to build up the matched string + * for use in actions in the case of MORE. A simple and inefficient + * implementation of this is as follows : + */ + virtual JAVACC_STRING_TYPE GetSuffix(int len) { + if ((bufpos + 1) >= len) { + return JAVACC_STRING_TYPE(buffer + bufpos - len + 1, len); + } + return JAVACC_STRING_TYPE(buffer + bufsize - (len - bufpos - 1), len - bufpos - 1) + .append(buffer, bufpos + 1); + } + + /** + * The lexer calls this function to indicate that it is done with the stream + * and hence implementations can free any resources held by this class. + */ + virtual void DeleteBuffers(); + + virtual ~CharStream() { + if (deleteStream) { + delete inputStream; + } + DeleteBuffers(); + } + + bool endOfInput() { + return inBuf == 0 && bufpos + 1 >= maxNextCharInd && + inputStream->endOfInput(); + } + + CharStream(const JAVACC_CHAR_TYPE *buf, int sz, int startline, + int startcolumn, int buffersize) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0),tabSize(8), trackLineColumn(true) { + ReInit(JAVACC_STRING_TYPE(buf, sz), startline, startcolumn, buffersize); + } + + CharStream(const JAVACC_CHAR_TYPE *buf, int sz, int startline, int startcolumn) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0),tabSize(8), trackLineColumn(true) { + ReInit(JAVACC_STRING_TYPE(buf, sz), startline, startcolumn, INITIAL_BUFFER_SIZE); + } + + CharStream(const JAVACC_STRING_TYPE& str, int startline, + int startcolumn, int buffersize) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0),tabSize(8), trackLineColumn(true) { + ReInit(str, startline, startcolumn, buffersize); + } + + CharStream(const JAVACC_STRING_TYPE& str, int startline, int startcolumn) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0) ,tabSize(8), trackLineColumn(true){ + ReInit(str, startline, startcolumn, INITIAL_BUFFER_SIZE); + } + + CharStream(ReaderStream *input_stream, int startline, + int startcolumn, int) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0),tabSize(8), trackLineColumn(true) { + ReInit(input_stream, startline, startcolumn, INITIAL_BUFFER_SIZE); + } + + CharStream(ReaderStream *input_stream, int startline, int startcolumn) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0),tabSize(8), trackLineColumn(true) { + ReInit(input_stream, startline, startcolumn, INITIAL_BUFFER_SIZE); + } + + CharStream(ReaderStream *input_stream) : + bufline(NULL), bufcolumn(NULL), inputStream(NULL), deleteStream(false), + buffer(NULL), bufpos(0), bufsize(0), tokenBegin(0), column(0), line(0), + prevCharIsCR (false), prevCharIsLF (false), available(0), maxNextCharInd(0), + inBuf(0),tabSize(8), trackLineColumn(true) { + ReInit(input_stream, 1, 1, INITIAL_BUFFER_SIZE); + } + + virtual void ReInit(ReaderStream *input_stream, int startline, int startcolumn, + int buffersize); + + virtual void ReInit(ReaderStream *input_stream, int startline, + int startcolumn) { + ReInit(input_stream, startline, startcolumn, INITIAL_BUFFER_SIZE); + } + + virtual void ReInit(ReaderStream *input_stream) { + ReInit(input_stream, 1, 1, INITIAL_BUFFER_SIZE); + } + + virtual void ReInit(const JAVACC_STRING_TYPE& str, int startline, + int startcolumn, int buffersize); + + virtual void ReInit(const JAVACC_STRING_TYPE& str, int startline, + int startcolumn) { + ReInit(str, startline, startcolumn, INITIAL_BUFFER_SIZE); + } + + virtual void adjustBeginLineColumn(int newLine, int newCol); + + protected: + virtual void UpdateLineColumn(JAVACC_CHAR_TYPE c); + + int *bufline; + int *bufcolumn; + ReaderStream *inputStream; + bool deleteStream; + JAVACC_CHAR_TYPE * buffer; + int bufpos; + int bufsize; + int tokenBegin; + int column; + int line; + bool prevCharIsCR ; + bool prevCharIsLF ; + int available; + int maxNextCharInd; + int inBuf ; + int tabSize ; + bool trackLineColumn; +}; + +} +} +#endif +/* JavaCC - OriginalChecksum=5eaf75ef6a2c7859369c80cf6fd037e0 (do not edit this line) */ diff --git a/vhdlparser/ErrorHandler.h b/vhdlparser/ErrorHandler.h new file mode 100644 index 0000000..9f0d38c --- /dev/null +++ b/vhdlparser/ErrorHandler.h @@ -0,0 +1,43 @@ +/* Generated By:JavaCC: Do not edit this line. ErrorHandler.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef ERRORHANDLER_H +#define ERRORHANDLER_H +#include <string> +#include "JavaCC.h" +#include "Token.h" + +namespace vhdl { +namespace parser { +class VhdlParser; + class ErrorHandler { + protected: + int error_count; + public: + // Called when the parser encounters a different token when expecting to + // consume a specific kind of token. + // expectedKind - token kind that the parser was trying to consume. + // expectedToken - the image of the token - tokenImages[expectedKind]. + // actual - the actual token that the parser got instead. + virtual void handleUnexpectedToken(int, JAVACC_STRING_TYPE expectedToken, Token *actual, VhdlParser *) { + error_count++; + fprintf(stderr, "Expecting %s at: %d:%d but got %s\n", addUnicodeEscapes(expectedToken).c_str(), actual->beginLine, actual->beginColumn, addUnicodeEscapes(actual->image).c_str()); + } + // Called when the parser cannot continue parsing. + // last - the last token successfully parsed. + // unexpected - the token at which the error occurs. + // production - the production in which this error occurrs. + virtual void handleParseError(Token *, Token *unexpected, JAVACC_SIMPLE_STRING production, VhdlParser *) { + error_count++; + fprintf(stderr, "Encountered: %s at: %d:%d while parsing: %s\n", addUnicodeEscapes(unexpected->image).c_str(), unexpected->beginLine, unexpected->beginColumn, production.c_str()); + } + virtual int getErrorCount() { + return error_count; + } + virtual ~ErrorHandler() {} + ErrorHandler() { error_count = 0; } + }; +} +} + +#endif +/* JavaCC - OriginalChecksum=282223c3bcb53b7ff385aed35944d185 (do not edit this line) */ diff --git a/vhdlparser/JavaCC.h b/vhdlparser/JavaCC.h new file mode 100644 index 0000000..9504168 --- /dev/null +++ b/vhdlparser/JavaCC.h @@ -0,0 +1,51 @@ +/* Generated By:JavaCC: Do not edit this line. JavaCC.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef __JAVACC_H +#define __JAVACC_H +#include <stdio.h> +#include <string> +#include <memory.h> +#include <assert.h> +#include <cstring> + +#include "vhdlstring.h" + +#ifndef JAVACC_CHAR_TYPE +#define JAVACC_CHAR_TYPE char +#endif + +#ifndef JAVACC_STRING_TYPE +#define JAVACC_STRING_TYPE VhdlString +#endif + +#define finally // TODO(Sreeni): Get rid of when we fix jjtree + +#define JAVACC_SIMPLE_STRING VhdlString + +JAVACC_SIMPLE_STRING addUnicodeEscapes(JAVACC_STRING_TYPE str); + +typedef JAVACC_STRING_TYPE StringBuffer; +typedef JAVACC_STRING_TYPE String; + +// Abstraction on stream classes to read a block of data into a buffer. +class ReaderStream { + public: + // Read block of data into a buffer and return the actual number read. + virtual size_t read(JAVACC_CHAR_TYPE *, int, size_t) { + return 0; + } + virtual bool endOfInput() { return true; } + virtual ~ReaderStream() {} +}; + +const JAVACC_CHAR_TYPE EMPTY[] = { 0 }; + +#ifndef MAX +#define MAX(a,b) ((a)>(b)?(a):(b)) +#endif +#ifndef MIN +#define MIN(a,b) ((a)<(b)?(a):(b)) +#endif + +#endif +/* JavaCC - OriginalChecksum=775c677272b259e2a33aac80851ba9f1 (do not edit this line) */ diff --git a/vhdlparser/JavaCC.h.in b/vhdlparser/JavaCC.h.in new file mode 100644 index 0000000..9504168 --- /dev/null +++ b/vhdlparser/JavaCC.h.in @@ -0,0 +1,51 @@ +/* Generated By:JavaCC: Do not edit this line. JavaCC.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef __JAVACC_H +#define __JAVACC_H +#include <stdio.h> +#include <string> +#include <memory.h> +#include <assert.h> +#include <cstring> + +#include "vhdlstring.h" + +#ifndef JAVACC_CHAR_TYPE +#define JAVACC_CHAR_TYPE char +#endif + +#ifndef JAVACC_STRING_TYPE +#define JAVACC_STRING_TYPE VhdlString +#endif + +#define finally // TODO(Sreeni): Get rid of when we fix jjtree + +#define JAVACC_SIMPLE_STRING VhdlString + +JAVACC_SIMPLE_STRING addUnicodeEscapes(JAVACC_STRING_TYPE str); + +typedef JAVACC_STRING_TYPE StringBuffer; +typedef JAVACC_STRING_TYPE String; + +// Abstraction on stream classes to read a block of data into a buffer. +class ReaderStream { + public: + // Read block of data into a buffer and return the actual number read. + virtual size_t read(JAVACC_CHAR_TYPE *, int, size_t) { + return 0; + } + virtual bool endOfInput() { return true; } + virtual ~ReaderStream() {} +}; + +const JAVACC_CHAR_TYPE EMPTY[] = { 0 }; + +#ifndef MAX +#define MAX(a,b) ((a)>(b)?(a):(b)) +#endif +#ifndef MIN +#define MIN(a,b) ((a)<(b)?(a):(b)) +#endif + +#endif +/* JavaCC - OriginalChecksum=775c677272b259e2a33aac80851ba9f1 (do not edit this line) */ diff --git a/vhdlparser/Makefile.in b/vhdlparser/Makefile.in new file mode 100644 index 0000000..2838700 --- /dev/null +++ b/vhdlparser/Makefile.in @@ -0,0 +1,40 @@ +# +# +# +# Copyright (C) 1997-2000 by Dimitri van Heesch. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation under the terms of the GNU General Public License is hereby +# granted. No representations are made about the suitability of this software +# for any purpose. It is provided "as is" without express or implied warranty. +# See the GNU General Public License for more details. +# +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. +# + +all: Makefile.vhdlparser Makefile + $(MAKE) -f Makefile.vhdlparser $@ + +Makefile.vhdlparser: vhdlparser.pro + $(ENV) $(PERL) "$(TMAKE)" vhdlparser.pro >Makefile.vhdlparser + +tmake: + $(ENV) $(PERL) "$(TMAKE)" vhdlparser.pro >Makefile.vhdlparser + +clean: Makefile.vhdlparser + $(MAKE) -f Makefile.vhdlparser clean + +regenerate: + $(RM) CharStream.cc CharStream.h ErrorHandler.h ParseException.cc ParseException.h \ + Token.cc Token.h TokenManager.h TokenMgrError.cc TokenMgrError.h VhdlParser.cc VhdlParser.h \ + VhdlParserConstants.h VhdlParserTokenManager.cc VhdlParserTokenManager.h \ + JavaCC.h + javacc vhdlparser.jj + patch <vhdlparser.patch + $(CP) JavaCC.h.in JavaCC.h + +distclean: clean + $(RM) Makefile vhdlparser.pro + +FORCE: diff --git a/vhdlparser/ParseException.cc b/vhdlparser/ParseException.cc new file mode 100644 index 0000000..31ee7a3 --- /dev/null +++ b/vhdlparser/ParseException.cc @@ -0,0 +1,186 @@ +/* Generated By:JavaCC: Do not edit this line. ParseException.cc Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#include "ParseException.h" + + +namespace vhdl { +namespace parser { +/** + * This exception is thrown when parse errors are encountered. + * You can explicitly create objects of this exception type by + * calling the method generate_ParseException in the generated + * parser. + * + * You can modify this class to customize your error reporting + * mechanisms so long as you retain the fields. + */ + + /** + * This constructor is used by the method "generate_ParseException" + * in the generated parser. Calling this constructor generates + * a new object of this type with the fields "currentToken", + * "expectedTokenSequences", and "tokenImage" set. + */ + ParseException::ParseException(Token currentTokenVal, + int** expectedTokenSequencesVal, + JAVACC_STRING_TYPE* tokenImageVal + ) + { + initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal); + currentToken = currentTokenVal; + expectedTokenSequences = expectedTokenSequencesVal; + tokenImage = tokenImageVal; + } + + /** + * The following constructors are for use by you for whatever + * purpose you can think of. Constructing the exception in this + * manner makes the exception behave in the normal way - i.e., as + * documented in the class "Throwable". The fields "errorToken", + * "expectedTokenSequences", and "tokenImage" do not contain + * relevant information. The JavaCC generated code does not use + * these constructors. + */ + + ParseException::ParseException() { + } + + /** Constructor with message. */ + ParseException::ParseException(JAVACC_STRING_TYPE message) { + } + + + /** + * This is the last token that has been consumed successfully. If + * this object has been created due to a parse error, the token + * followng this token will (therefore) be the first error token. + */ + Token currentToken; + + /** + * Each entry in this array is an array of integers. Each array + * of integers represents a sequence of tokens (by their ordinal + * values) that is expected at this point of the parse. + */ + int** expectedTokenSequences; + + /** + * This is a reference to the "tokenImage" array of the generated + * parser within which the parse error occurred. This array is + * defined in the generated ...Constants class. + */ + JAVACC_STRING_TYPE* tokenImage; + + /** + * It uses "currentToken" and "expectedTokenSequences" to generate a parse + * error message and returns it. If this object has been created + * due to a parse error, and you do not catch it (it gets thrown + * from the parser) the correct error message + * gets displayed. + */ + JAVACC_STRING_TYPE ParseException::initialise(Token currentToken, + int** expectedTokenSequences, + JAVACC_STRING_TYPE* tokenImage) { +#if 0 + //JAVACC_STRING_TYPE eol = System.getProperty("line.separator", "\n"); + expected = new JAVACC_STRING_TYPE(); + int maxSize = 0; + for (int i = 0; i < expectedTokenSequences.length; i++) { + if (maxSize < expectedTokenSequences[i].length) { + maxSize = expectedTokenSequences[i].length; + } + for (int j = 0; j < expectedTokenSequences[i].length; j++) { + expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' '); + } + if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) { + expected.append((JAVACC_CHAR_TYPE*)"..."); + } + expected.append(eol).append(" "); + } + JAVACC_STRING_TYPE retval = (JAVACC_CHAR_TYPE*)"Encountered \""; + Token tok = currentToken.next; + for (int i = 0; i < maxSize; i++) { + if (i != 0) retval += (JAVACC_CHAR_TYPE*)" "; + if (tok.kind == 0) { + retval += tokenImage[0]; + break; + } + retval += (JAVACC_CHAR_TYPE*)" " + tokenImage[tok.kind]; + retval += (JAVACC_CHAR_TYPE*)" \""; + retval += add_escapes(tok.image); + retval += (JAVACC_CHAR_TYPE*)" \""; + tok = tok.next; + } + retval += (JAVACC_CHAR_TYPE*)"\" at line " + currentToken.next.beginLine + (JAVACC_CHAR_TYPE*)", column " + currentToken.next.beginColumn; + retval += (JAVACC_CHAR_TYPE*)"." + eol; + if (expectedTokenSequences.length == 1) { + retval += (JAVACC_CHAR_TYPE*)"Was expecting:" + eol + (JAVACC_CHAR_TYPE*)" "; + } else { + retval += (JAVACC_CHAR_TYPE*)"Was expecting one of:" + eol + (JAVACC_CHAR_TYPE*)" "; + } + retval += expected.toString(); + return retval; +#endif + return (JAVACC_CHAR_TYPE*)"Parse exception"; + } + + /** + * The end of line JAVACC_STRING_TYPE for this machine. + */ +#define eol "\n" + + /** + * Used to convert raw characters to their escaped version + * when these raw version cannot be used as part of an ASCII + * string literal. + */ + JAVACC_STRING_TYPE ParseException::add_escapes(JAVACC_STRING_TYPE str) { +/* + JAVACC_STRING_TYPE *retval = new JAVACC_STRING_TYPE(); + JAVACC_CHAR_TYPE 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) { + JAVACC_STRING_TYPE s = "0000" + Integer.toString(ch, 16); + retval.append("\\u" + s.substring(s.length() - 4, s.length())); + } else { + retval.append(ch); + } + continue; + } + } + return retval.toString(); +*/ return str; + } + +} +} +/* JavaCC - OriginalChecksum=99d488e13335cf377284c90700f070ed (do not edit this line) */ diff --git a/vhdlparser/ParseException.h b/vhdlparser/ParseException.h new file mode 100644 index 0000000..1f3a3dc --- /dev/null +++ b/vhdlparser/ParseException.h @@ -0,0 +1,99 @@ +/* Generated By:JavaCC: Do not edit this line. ParseException.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef _PARSE_EXCEPTION_H +#define _PARSE_EXCEPTION_H +#include "JavaCC.h" +#include "Token.h" + + +namespace vhdl { +namespace parser { +/** + * This exception is thrown when parse errors are encountered. + * You can explicitly create objects of this exception type by + * calling the method generateParseException in the generated + * parser. + * + * You can modify this class to customize your error reporting + * mechanisms so long as you retain the fields. + */ +class ParseException { + public: + + /** + * This constructor is used by the method "generateParseException" + * in the generated parser. Calling this constructor generates + * a new object of this type with the fields "currentToken", + * "expectedTokenSequences", and "tokenImage" set. + */ + ParseException(Token currentTokenVal, + int** expectedTokenSequencesVal, + JAVACC_STRING_TYPE* tokenImageVal + ); + + /** + * The following constructors are for use by you for whatever + * purpose you can think of. Constructing the exception in this + * manner makes the exception behave in the normal way - i.e., as + * documented in the class "Throwable". The fields "errorToken", + * "expectedTokenSequences", and "tokenImage" do not contain + * relevant information. The JavaCC generated code does not use + * these constructors. + */ + + ParseException(); + + /** Constructor with message. */ + ParseException(JAVACC_STRING_TYPE message); + + + /** + * This is the last token that has been consumed successfully. If + * this object has been created due to a parse error, the token + * followng this token will (therefore) be the first error token. + */ + Token currentToken; + + /** + * Each entry in this array is an array of integers. Each array + * of integers represents a sequence of tokens (by their ordinal + * values) that is expected at this point of the parse. + */ + int** expectedTokenSequences; + + /** + * This is a reference to the "tokenImage" array of the generated + * parser within which the parse error occurred. This array is + * defined in the generated ...Constants class. + */ + JAVACC_STRING_TYPE* tokenImage; + + /** + * It uses "currentToken" and "expectedTokenSequences" to generate a parse + * error message and returns it. If this object has been created + * due to a parse error, and you do not catch it (it gets thrown + * from the parser) the correct error message + * gets displayed. + */ + private: JAVACC_STRING_TYPE initialise(Token currentToken, + int** expectedTokenSequences, + JAVACC_STRING_TYPE* tokenImage); + + /** + * The end of line string for this machine. + */ +#define eol "\n" + + /** + * Used to convert raw characters to their escaped version + * when these raw version cannot be used as part of an ASCII + * string literal. + */ + JAVACC_STRING_TYPE add_escapes(JAVACC_STRING_TYPE str); + +}; + +} +} +#endif +/* JavaCC - OriginalChecksum=8c47c56fc2030f05b43e20cae6ca5d66 (do not edit this line) */ diff --git a/vhdlparser/Token.cc b/vhdlparser/Token.cc new file mode 100644 index 0000000..62a8169 --- /dev/null +++ b/vhdlparser/Token.cc @@ -0,0 +1,92 @@ +/* Generated By:JavaCC: Do not edit this line. Token.cc Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true,TOKEN_INCLUDES=,TOKEN_EXTENDS= */ +#include "Token.h" + +namespace vhdl { +namespace parser { + +/** + * Describes the input token stream. + */ + + /** + * 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. + */ + void * Token::getValue() { + return NULL; + } + + /** + * No-argument constructor + */ + Token::Token() { + this->next = NULL; + this->specialToken = NULL; + } + + /** + * Constructs a new token for the specified Image. + */ + Token::Token(int kind) + { + this->kind = kind; + this->next = NULL; + this->specialToken = NULL; + } + + /** + * Constructs a new token for the specified Image and Kind. + */ + Token::Token(int kind, JAVACC_STRING_TYPE image) + { + this->kind = kind; + this->image = image; + this->next = NULL; + this->specialToken = NULL; + } + + /** + * Returns the image. + */ + JAVACC_STRING_TYPE Token::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. + */ + Token *Token::newToken(int ofKind, JAVACC_STRING_TYPE image) + { + switch(ofKind) + { + default : return new Token(ofKind, image); + } + } + + Token *Token::newToken(int ofKind) + { + return newToken(ofKind, JAVACC_STRING_TYPE((JAVACC_CHAR_TYPE*)"")); + } + + Token::~Token() { + if (specialToken) delete specialToken; + } + +} +} +/* JavaCC - OriginalChecksum=9db9ca693072c4c37bb7cc933c0c5e35 (do not edit this line) */ diff --git a/vhdlparser/Token.h b/vhdlparser/Token.h new file mode 100644 index 0000000..5fce69f --- /dev/null +++ b/vhdlparser/Token.h @@ -0,0 +1,116 @@ +/* Generated By:JavaCC: Do not edit this line. Token.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true,TOKEN_INCLUDES=,TOKEN_EXTENDS= */ +#ifndef TOKEN_H +#define TOKEN_H +#include "JavaCC.h" + + +namespace vhdl { +namespace parser { + +/** + * Describes the input token stream. + */ + +class Token +{ + public: + + /** + * 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. + */ + int kind; + + /** The line number of the first character of this Token. */ + int beginLine; + /** The column number of the first character of this Token. */ + int beginColumn; + /** The line number of the last character of this Token. */ + int endLine; + /** The column number of the last character of this Token. */ + int endColumn; + + /** + * The string image of the token. + */ + JAVACC_STRING_TYPE 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. + */ + 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 specialToke_ 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. + */ + 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. + */ + void * getValue(); + + /** + * No-argument constructor + */ + Token(); + + /** + * Constructs a new token for the specified Image. + */ + Token(int kind); + + /** + * Constructs a new token for the specified Image and Kind. + */ + Token(int kind, JAVACC_STRING_TYPE image); + + /** + * Returns the image. + */ + JAVACC_STRING_TYPE toString(); + + public: virtual ~Token(); + + /** + * Returns a new Token void *, 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. + */ + static Token *newToken(int ofKind, JAVACC_STRING_TYPE image); + + static Token *newToken(int ofKind); +}; + +} +} +#endif +/* JavaCC - OriginalChecksum=2f5eb1c937adc983dfa2008c4fe383a7 (do not edit this line) */ diff --git a/vhdlparser/TokenManager.h b/vhdlparser/TokenManager.h new file mode 100644 index 0000000..efffce6 --- /dev/null +++ b/vhdlparser/TokenManager.h @@ -0,0 +1,33 @@ +/* Generated By:JavaCC: Do not edit this line. TokenManager.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef TOKENMANAGER_H +#define TOKENMANAGER_H +#include "JavaCC.h" +#include "Token.h" + + +namespace vhdl { +namespace parser { +/** + * An implementation for this interface is generated by + * JavaCCParser. The user is free to use any implementation + * of their choice. + */ + +class TokenManager { +public: + /** This gets the next token from the input stream. + * A token of kind 0 (<EOF>) should be returned on EOF. + */ + public: virtual Token *getNextToken() = 0; + public: virtual ~TokenManager() { } + public: virtual void lexicalError() { + fprintf(stderr, "Lexical error encountered\n"); + } + +}; + +} +} +#endif +/* JavaCC - OriginalChecksum=d4725ee75465725057819b3b07fadaa7 (do not edit this line) */ diff --git a/vhdlparser/TokenMgrError.cc b/vhdlparser/TokenMgrError.cc new file mode 100644 index 0000000..0be1213 --- /dev/null +++ b/vhdlparser/TokenMgrError.cc @@ -0,0 +1,121 @@ +/* Generated By:JavaCC: Do not edit this line. TokenMgrError.cc Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#include "TokenMgrError.h" + +namespace vhdl { +namespace parser { + + /** + * 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 + * curJAVACC_CHAR_TYPE : the offending character + * Note: You can customize the lexical error message by modifying this method. + */ + JAVACC_STRING_TYPE TokenMgrError::LexicalError(bool EOFSeen, int lexState, int errorLine, int errorColumn, JAVACC_STRING_TYPE errorAfter, JAVACC_CHAR_TYPE curChar) { +#if 0 + JAVACC_STRING_TYPE s; + stringstream<JAVACC_STRING_TYPE> ss; + ss << "Lexical error at line " << errorLine << " column " << errorColumn + << ". Encountered: " << curChar << "(" << (int)curChar + << ") after : \"" << errorAfter.c_str() << "\""; + return (JAVACC_STRING_TYPE)ss.rdbuf()->str(); +#endif + return EMPTY; + } + + /** + * 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. + */ + JAVACC_STRING_TYPE TokenMgrError::getMessage() { + return message; + } + + /* + * Constructors of various flavors follow. + */ + + /** No arg constructor. */ + TokenMgrError::TokenMgrError() { + } + + /** Constructor with message and reason. */ + TokenMgrError::TokenMgrError(JAVACC_STRING_TYPE message, int reason) { + errorCode = reason; + } + + /** Full Constructor. */ + TokenMgrError::TokenMgrError(bool EOFSeen, int lexState, int errorLine, int errorColumn, JAVACC_STRING_TYPE errorAfter, JAVACC_CHAR_TYPE curChar, int reason) { + message = LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar); + errorCode = reason; + } + +} +} + +// i < 16 - guaranteed +static char hexChar(int i) { + if (i < 10) { + return i - '0'; + } + return 'a' + (i - 10); +} + +/** + * Replaces unprintable characters by their escaped (or unicode escaped) + * equivalents in the given string + */ +JAVACC_SIMPLE_STRING addUnicodeEscapes(JAVACC_STRING_TYPE str) { + JAVACC_SIMPLE_STRING retval; + for (size_t i = 0; i < str.size(); i++) { + JAVACC_CHAR_TYPE ch = str[i]; + switch (ch) + { + case 0 : + retval += EMPTY[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; + default: + if (ch < 0xff) { + retval += ch; + continue; + } + retval.append("\\u"); + retval += (hexChar(ch >> 12)); + retval += (hexChar((ch & 0x0f00) >> 8)); + retval += (hexChar((ch & 0x00f0) >> 4)); + retval += (hexChar(ch & 0x000f)); + continue; + } + } + return retval; +} +/* JavaCC - OriginalChecksum=7f80e3c4eac120168f5e81d4ddb72e4b (do not edit this line) */ diff --git a/vhdlparser/TokenMgrError.h b/vhdlparser/TokenMgrError.h new file mode 100644 index 0000000..2702b29 --- /dev/null +++ b/vhdlparser/TokenMgrError.h @@ -0,0 +1,90 @@ +/* Generated By:JavaCC: Do not edit this line. TokenMgrError.h Version 6.0 */ +/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ +#ifndef _TOKENMGRERROR_H +#define _TOKENMGRERROR_H +#include "JavaCC.h" + + +namespace vhdl { +namespace parser { + + enum LexerErrors { + /** + * Lexical error occurred. + */ + LEXICAL_ERROR = 0, + + /** + * An attempt was made to create a second instance of a token manager. + */ + STATIC_LEXER_ERROR = 1, + + /** + * Tried to change to an invalid lexical state. + */ + INVALID_LEXICAL_STATE = 2, + + /** + * Detected (and bailed out of) an infinite loop in the token manager. + */ + LOOP_DETECTED = 3, + }; + +class TokenMgrError +{ + public: + /* + * Ordinals for various reasons why an Error of this type can be thrown. + */ + + /** + * Indicates the reason why the exception is thrown. It will have + * one of the above 4 values. + */ + int errorCode; + + /** + * 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. + */ + JAVACC_STRING_TYPE LexicalError(bool EOFSeen, int lexState, int errorLine, int errorColumn, JAVACC_STRING_TYPE errorAfter, JAVACC_CHAR_TYPE curChar); + + private: JAVACC_STRING_TYPE message; + + /** + * 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. + */ + JAVACC_STRING_TYPE getMessage() ; + + /* + * Constructors of various flavors follow. + */ + + /** No arg constructor. */ + public: TokenMgrError() ; + + /** Constructor with message and reason. */ + public: TokenMgrError(JAVACC_STRING_TYPE message, int reason) ; + + /** Full Constructor. */ + public: TokenMgrError(bool EOFSeen, int lexState, int errorLine, int errorColumn, JAVACC_STRING_TYPE errorAfter, JAVACC_CHAR_TYPE curChar, int reason) ; +}; + +} +} +#endif +/* JavaCC - OriginalChecksum=c7d825cb4d037b031ae43569d383f738 (do not edit this line) */ diff --git a/vhdlparser/VhdlParser.cc b/vhdlparser/VhdlParser.cc new file mode 100644 index 0000000..6555320 --- /dev/null +++ b/vhdlparser/VhdlParser.cc @@ -0,0 +1,13051 @@ +/* VhdlParser.cc */ +#include "./VhdlParser.h" +namespace vhdl { +namespace parser { + unsigned int jj_la1_0[] = { +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x0,0x48202000,0x10040000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48002000,0x200000,0x0,0x48202000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10040000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x10000000,0x0,0x20000000,0x0,0x200000,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0xa0010000,0xa0010001,0x0,0x0,0x0,0x20000000,0x68010000,0x0,0x0,0x400000,0x0,0x0,0x40002000,0x200000,0x0,0x0,0x40202000,0x0,0x0,0x0,0x0,0x4000,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x8000,0x0,0x400,0x0,0x0,0x0,0x0,0x48202000,0x48602000,0x10040000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x8000000,0x0,0x28000000,0x4000,0x0,0x40000000,0x0,0x40000000,0x40000000,0x2000000,0x4000000,0x0,0x0,0x80010000,0x0,0x0,0x0,0x0,0x400,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x40002000,0x0,0x40002000,0x0,0x0,0x0,0x0,0x48002000,0x200000,0x0,0x0,0x48202000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x40002000,0x200000,0x0,0x40202000,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x10040000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x4000000,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40002000,0x200000,0x0,0x40202000,0x0,0x0,0x0,0x0,0x0,0x0,0x10040000,0x4000,0x0,0x0,0x20800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x1000,0x0,0x40002000,0x200000,0x0,0x40202000,0x0,0x200000,0x200000,0x80000000,0x80000000,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x48602000,0x10040000,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + unsigned int jj_la1_1[] = { +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x92c04,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x800,0x82400,0x804,0x10000,0x92c04,0x8000,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x800,0x800000,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x800,0x0,0x2000000,0x2000000,0x0,0x200000,0x2000080,0x2000080,0x0,0x8,0x0,0x80,0x9012480,0x0,0x0,0x0,0x80,0x0,0x82400,0x4,0x10000,0x0,0x92404,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x800000,0x0,0x0,0x0,0x92c04,0x92c04,0x0,0x0,0x40800,0x0,0x0,0x0,0x0,0x0,0x20,0x10,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x400,0x0,0x0,0x0,0x4500000,0x0,0x0,0x800,0x0,0x0,0x0,0x800,0x0,0x0,0x4500000,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x20000,0x200000,0x0,0x0,0x82400,0x10000,0x92400,0x0,0x0,0x8000,0x8000,0x82400,0x4,0x10000,0x0,0x92404,0x0,0x0,0x0,0x80,0x0,0x0,0x82400,0x0,0x10000,0x92400,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x10040900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x82000,0x800000,0x882400,0x0,0x10000,0x892400,0x2000,0x0,0x80000,0x80000,0x0,0x82000,0x10040900,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x882400,0x0,0x10000,0x892400,0x0,0x82000,0x82000,0x2000000,0x0,0x0,0x2000000,0x8000,0x8000,0x8000,0x0,0x0,0x92c04,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x10,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x100000,0x0,0x0,0x0,0x100000,0x0,0x10,0x82000,0x80000,0x80000,0x0,0x800000,0x0,0x0,0x82000,}; + unsigned int jj_la1_2[] = { +0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x88000,0x14000,0x0,0x10000000,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x2000,0x0,0x0,0x88000,0x0,0x0,0x88000,0x0,0x2000,0x2000,0x0,0x0,0x0,0x0,0x14000,0x0,0x0,0x0,0x200,0x0,0x2000,0x0,0x0,0x0,0x2000,0x0,0x2000,0x200000,0x4000,0x4000,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x800000,0x800,0x800,0x0,0x0,0x0,0x80,0x8800,0x0,0x0,0x0,0x0,0x0,0x88000,0x0,0x0,0x800,0x88800,0x0,0x0,0x2000,0x0,0x200,0x4000,0x14000,0x0,0x0,0x0,0x0,0x0,0x0,0x104,0x104,0x0,0x19,0x80,0x80,0x0,0x0,0x88000,0x88000,0x14000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x200,0x800,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x800,0x10,0x0,0x0,0x0,0x8,0x400,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x800,0x0,0x88000,0x0,0x88000,0x800,0x0,0x0,0x0,0x88000,0x0,0x0,0x800,0x88800,0x0,0x0,0x1,0x0,0x800,0x0,0x88000,0x0,0x0,0x88000,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x90000012,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19,0x100000,0x800,0x0,0x0,0x10,0x60000000,0x60000000,0x0,0x800000,0x0,0x400000,0x0,0x400000,0x0,0x200,0x0,0x0,0x80000000,0x0,0x8000,0x0,0x88000,0x0,0x88000,0x0,0x0,0x88000,0x8000,0x0,0x80000,0x80000,0x0,0x88000,0x90000012,0x0,0x0,0x0,0x300000,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x19,0x0,0x0,0x88000,0x0,0x0,0x88000,0x0,0x88000,0x88000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x88000,0x14000,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x400,0x19,0x0,0x0,0x0,0x0,0x800000,0x0,0x400,0x0,0x0,0x0,0x400,0x0,0x0,0x88000,0x80000,0x80000,0x0,0x0,0x1000,0x0,0x9c000,}; + unsigned int jj_la1_3[] = { +0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4418,0x84000000,0x0,0x0,0x4,0x0,0x0,0x0,0x80000000,0x40000,0x0,0x0,0x40000,0x0,0x84418,0x40000,0x0,0xc4418,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x84000000,0x0,0x1000000,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x1000000,0x0,0x0,0x40000,0x40000,0x0,0x0,0x40000,0x40000,0x0,0x2000,0x40000,0x40000,0x0,0x1000,0x80000000,0x0,0x94408,0x0,0x0,0x0,0x0,0x0,0x84418,0x40000,0x0,0x0,0xc4418,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x18000000,0x18000000,0x0,0x80000000,0x0,0x0,0x0,0x80000000,0xc4418,0xc4418,0x84000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x0,0x0,0x84018,0x0,0x80018,0x80018,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x1000000,0x0,0x0,0x84018,0x0,0x2000,0x0,0x0,0xc4410,0x0,0xc4410,0x0,0x0,0x0,0x0,0x84418,0x40000,0x0,0x0,0xc4418,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x84410,0x40000,0x0,0xc4410,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x86800000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x1e0,0x1e0,0x0,0x2000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x84410,0x40000,0x0,0xc4410,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x86800000,0x0,0x80000000,0x4000,0x80000000,0x0,0x0,0x0,0x84000000,0x10,0x0,0x0,0x0,0x20000,0x0,0x0,0x80008000,0x0,0x0,0x84410,0x40000,0x0,0xc4410,0x0,0x40000,0x40000,0x40000,0x0,0x0,0x40000,0x0,0x0,0x0,0x1000000,0x0,0xc4418,0x84000000,0x80008,0x0,0x0,0x0,0x80000000,0x80000000,0x2000,0x0,0x1000000,0x0,0x80000000,0x4000000,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,}; + unsigned int jj_la1_4[] = { +0x0,0x0,0x30000,0x18,0x20,0x80,0x0,0x0,0x0,0x0,0x20000,0x0,0x20000,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x8000000,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x20,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x20000,0x20000,0x20000,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x2,0x20000,0x0,0x0,0x20000,0x0,0x0,0x0,0x20000,0x0,0x0,0x20000,0x20,0x0,0x20,0x0,0x0,0x0,0x0,0x20,0x20018,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x20000004,0x20000,0x20,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x20000,0x7e00,0x7e00,0x0,0x0,0x0,0x20018,0x0,0x0,0x20,0x20,0x0,0x0,0x0,0x18,0x0,0x20000,0x0,0x40,0x0,0x20,0x20000,0x20,0x20000,0x0,0x18,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x20000,0x0,0x0,0x0,0x20,0x20,0x20000,0x0,0x40,0x0,0x0,0x0,0x0,0x20,0x20018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0xd0000000,0x10000000,0x80000000,0x0,0x20000,0x0,0x0,0x0,0x0,0x20018,0x0,0x4000000,0x20000,0x4000000,0x0,0x4000000,0x0,0x120,0x120,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x0,0x0,}; + unsigned int jj_la1_5[] = { +0xa10,0x0,0xe0,0x0,0x0,0x0,0x1,0x1e0,0x0,0x0,0xe0,0x0,0xe0,0x0,0x0,0x0,0xc0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xe0,0xc0,0x0,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1e0,0x1e0,0xe0,0xe0,0x1e0,0x1c0,0x0,0xc0,0xc0,0x0,0x0,0x0,0x0,0x40bf0,0x0,0x0,0xf0,0x0,0x0,0x0,0xe0,0xc0,0x0,0x1e0,0x0,0xc0,0x0,0xc0,0x0,0x0,0xc0,0x0,0x40bf0,0x0,0x0,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0xc0,0x0,0xc0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0xc0,0xc0,0x0,0xc0,0xa10,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0xe0,0x0,0x0,0x0,0xc0,0xe0,0x0,0xc0,0xe0,0x0,0x0,0xc0,0x0,0xc0,0x40bf0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0xe0,0x0,0xe0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe0,0x120,0xe0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x40bf0,0x0,0xc0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x40bf0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0xc0,}; + + /** Constructor with user supplied TokenManager. */ + + + + +QCString VhdlParser::abstract_literal() {Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DECIMAL_LITERAL:{if (!hasError) { + + tok = jj_consume_token(DECIMAL_LITERAL); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case INTEGER:{if (!hasError) { + + tok = jj_consume_token(INTEGER); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case BASED_LITERAL:{if (!hasError) { + + tok = jj_consume_token(BASED_LITERAL); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[0] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::access_type_definition() {Token *tok;QCString str,str1;if (!hasError) { + + tok = jj_consume_token(ACCESS_T); + } + if (!hasError) { + + str1 = subtype_indication(); + } + +str=tok->image.c_str(); return str+str1; +assert(false); + } + + +QCString VhdlParser::actual_designator() {QCString str;Token *t; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case OPEN_T:{if (!hasError) { + + t = jj_consume_token(OPEN_T); + } + if (!hasError) { + +return t->image.c_str(); + } + + break; + } + default: + jj_la1[1] = jj_gen; + if (jj_2_1(2147483647)) {if (!hasError) { + + str = expression(); + } + if (!hasError) { + +return str; + } + + } else if (jj_2_2(2147483647)) {if (!hasError) { + + str = name(); + } + if (!hasError) { + +return str; + } + + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::actual_parameter_part() {QCString s;if (!hasError) { + + s = association_list(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::actual_part() {QCString s,s1; + if (jj_2_3(2147483647)) {if (!hasError) { + + s = actual_designator(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BOX_T:{if (!hasError) { + + jj_consume_token(BOX_T); + } + if (!hasError) { + +return "<>"; + } + + break; + } + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = actual_designator(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+="(";s+=s1+")";return s; + } + + break; + } + default: + jj_la1[2] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::adding_operator() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PLUS_T:{if (!hasError) { + + jj_consume_token(PLUS_T); + } + if (!hasError) { + +return "+"; + } + + break; + } + case MINUS_T:{if (!hasError) { + + jj_consume_token(MINUS_T); + } + if (!hasError) { + +return "-"; + } + + break; + } + case AMPERSAND_T:{if (!hasError) { + + jj_consume_token(AMPERSAND_T); + } + if (!hasError) { + +return "&"; + } + + break; + } + default: + jj_la1[3] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::aggregate() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s = element_association(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[4] = jj_gen; + goto end_label_1; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = element_association(); + } + if (!hasError) { + +s+=","+s1; + } + + } + end_label_1: ; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return s; +assert(false); + } + + +QCString VhdlParser::alias_declaration() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(ALIAS_T); + } + if (!hasError) { + + s2 = alias_designator(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COLON_T:{if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + +s+=":"; + } + if (!hasError) { + + s1 = subtype_indication(); + } + if (!hasError) { + +s+=s1; + } + + break; + } + default: + jj_la1[5] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +s+=" is "; + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + +s+=s1; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LBRACKET_T:{if (!hasError) { + + s1 = signature(); + } + if (!hasError) { + +s+=s1; + } + + break; + } + default: + jj_la1[6] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +addVhdlType(s2.data(),getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data(),Public); + + return s2+" "+s+";"; +assert(false); + } + + +QCString VhdlParser::alias_designator() {Token *tok=0;QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +return s; + } + + break; + } + case CHARACTER_LITERAL:{if (!hasError) { + + tok = jj_consume_token(CHARACTER_LITERAL); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case STRINGLITERAL:{if (!hasError) { + + s = operator_symbol(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[7] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::allocator() { + if (jj_2_4(3)) {if (!hasError) { + + jj_consume_token(NEW_T); + } + if (!hasError) { + + qualified_expression(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case NEW_T:{if (!hasError) { + + jj_consume_token(NEW_T); + } + if (!hasError) { + + subtype_indication(); + } + + break; + } + default: + jj_la1[8] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::architecture_body() {QCString s,s1;if (!hasError) { + + jj_consume_token(ARCHITECTURE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(OF_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +QCString t=s1+"::"+s; + genLabels.resize(0); + pushLabel(genLabels,s1); + lastCompound=current; + addVhdlType(t,getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private); + } + if (!hasError) { + + try {if (!hasError) { + + architecture_declarative_part(); + } + + } catch ( ...) { +error_skipto(BEGIN_T); + } + } + if (!hasError) { + + jj_consume_token(BEGIN_T); + } + if (!hasError) { + + architecture_statement_part(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARCHITECTURE_T:{if (!hasError) { + + jj_consume_token(ARCHITECTURE_T); + } + + break; + } + default: + jj_la1[9] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[10] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +lastEntity=0;lastCompound=0; genLabels.resize(0); + } + + +void VhdlParser::architecture_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FOR_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[11] = jj_gen; + goto end_label_2; + }if (!hasError) { + + block_declarative_item(); + } + + } + end_label_2: ; + } + + } + + +void VhdlParser::architecture_statement_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case CASE_T: + case POSTPONED_T: + case PROCESS_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[12] = jj_gen; + goto end_label_3; + }if (!hasError) { + + concurrent_statement(); + } + + } + end_label_3: ; + } + + } + + +QCString VhdlParser::array_type_definition() {QCString s; + if (jj_2_5(2147483647)) {if (!hasError) { + + s = unconstraint_array_definition(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARRAY_T:{if (!hasError) { + + s = constraint_array_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[13] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) { + + jj_consume_token(ASSERT_T); + } + if (!hasError) { + + s = condition(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case REPORT_T:{if (!hasError) { + + t = jj_consume_token(REPORT_T); + } + if (!hasError) { + + s1 = expression(); + } + + break; + } + default: + jj_la1[14] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SEVERITY_T:{if (!hasError) { + + t1 = jj_consume_token(SEVERITY_T); + } + if (!hasError) { + + s2 = expression(); + } + + break; + } + default: + jj_la1[15] = jj_gen; + ; + } + } + +s.prepend("assert "); + if(t) s1.prepend(" report "); + if(t1) s2.prepend(" report "); + return s+s1+s2; +assert(false); + } + + +QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = label(); + } + if (!hasError) { + + t = jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[16] = jj_gen; + ; + } + } + if (!hasError) { + + s1 = assertion(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(t) s+=":"; + return s+s1+";"; +assert(false); + } + + +QCString VhdlParser::association_element() {if (!hasError) { + + if (jj_2_6(2147483647)) {if (!hasError) { + + formal_part(); + } + if (!hasError) { + + jj_consume_token(ARROW_T); + } + + } else { + ; + } + } + if (!hasError) { + + actual_part(); + } + +return " "; +assert(false); + } + + +QCString VhdlParser::association_list() {QCString s,s1;if (!hasError) { + + s = association_element(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[17] = jj_gen; + goto end_label_4; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = association_element(); + } + if (!hasError) { + +s+=","+s1; + } + + } + end_label_4: ; + } + +return s; +assert(false); + } + + +QCString VhdlParser::attribute_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(ATTRIBUTE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = type_mark(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public); + return " attribute "+s+":"+s1+";"; +assert(false); + } + + +QCString VhdlParser::attribute_designator() {QCString s;Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +return s; + } + + break; + } + case RANGE_T:{if (!hasError) { + + tok = jj_consume_token(RANGE_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[18] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::attribute_name() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + +s+="'"+s1; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+"("+s1+")"; + } + + break; + } + default: + jj_la1[19] = jj_gen; + ; + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::attribute_specification() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(ATTRIBUTE_T); + } + if (!hasError) { + + s = attribute_designator(); + } + if (!hasError) { + + jj_consume_token(OF_T); + } + if (!hasError) { + + s1 = entity_specification(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + s2 = expression(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +QCString t= s1+" is "+s2; + addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public); + return " attribute "+s+" of "+s1+ " is "+s2+";"; +assert(false); + } + + +QCString VhdlParser::base() {Token *tok;if (!hasError) { + + tok = jj_consume_token(INTEGER); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::base_specifier() {Token *tok;if (!hasError) { + + tok = jj_consume_token(BASIC_IDENTIFIER); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::base_unit_declaration() {QCString s;if (!hasError) { + + s = identifier(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::based_integer() {Token *tok;if (!hasError) { + + tok = jj_consume_token(BASIC_IDENTIFIER); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::based_literal() {Token *tok;if (!hasError) { + + tok = jj_consume_token(BASED_LITERAL); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::basic_identifier() {Token *tok;if (!hasError) { + + tok = jj_consume_token(BASIC_IDENTIFIER); + } + +return tok->image.c_str(); +assert(false); + } + + +void VhdlParser::binding_indication() {if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case USE_T:{if (!hasError) { + + jj_consume_token(USE_T); + } + if (!hasError) { + + entity_aspect(); + } + + break; + } + default: + jj_la1[20] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + generic_map_aspect(); + } + + break; + } + default: + jj_la1[21] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PORT_T:{if (!hasError) { + + port_map_aspect(); + } + + break; + } + default: + jj_la1[22] = jj_gen; + ; + } + } + + } + + +QCString VhdlParser::bit_string_literal() {Token *tok;if (!hasError) { + + tok = jj_consume_token(BIT_STRING_LITERAL); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::bit_value() {Token *tok;if (!hasError) { + + tok = jj_consume_token(BASIC_IDENTIFIER); + } + +return tok->image.c_str(); +assert(false); + } + + +void VhdlParser::block_configuration() {if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + block_specification(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case USE_T:{ + ; + break; + } + default: + jj_la1[23] = jj_gen; + goto end_label_5; + }if (!hasError) { + + use_clause(); + } + + } + end_label_5: ; + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FOR_T:{ + ; + break; + } + default: + jj_la1[24] = jj_gen; + goto end_label_6; + }if (!hasError) { + + configuration_item(); + } + + } + end_label_6: ; + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::block_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + + break; + } + case TYPE_T:{if (!hasError) { + + type_declaration(); + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + subtype_declaration(); + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + constant_declaration(); + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + signal_declaration(); + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + variable_declaration(); + } + + break; + } + case FILE_T:{if (!hasError) { + + file_declaration(); + } + + break; + } + case ALIAS_T:{if (!hasError) { + + alias_declaration(); + } + + break; + } + case COMPONENT_T:{if (!hasError) { + + component_declaration(); + } + + break; + } + default: + jj_la1[25] = jj_gen; + if (jj_2_7(2147483647)) {if (!hasError) { + + attribute_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{if (!hasError) { + + attribute_specification(); + } + + break; + } + case FOR_T:{if (!hasError) { + + configuration_specification(); + } + + break; + } + case DISCONNECT_T:{if (!hasError) { + + disconnection_specification(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[26] = jj_gen; + if (jj_2_8(3)) {if (!hasError) { + + group_template_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + group_declaration(); + } + + break; + } + default: + jj_la1[27] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } + } + + +void VhdlParser::block_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FOR_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[28] = jj_gen; + goto end_label_7; + }if (!hasError) { + + block_declarative_item(); + } + + } + end_label_7: ; + } + + } + + +void VhdlParser::block_header() {if (!hasError) { + + if (jj_2_9(2147483647)) {if (!hasError) { + + generic_clause(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + generic_map_aspect(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[29] = jj_gen; + ; + } + } + + } else { + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PORT_T:{if (!hasError) { + + port_clause(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PORT_T:{if (!hasError) { + + port_map_aspect(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[30] = jj_gen; + ; + } + } + + break; + } + default: + jj_la1[31] = jj_gen; + ; + } + } + + } + + +void VhdlParser::block_specification() {if (!hasError) { + + name(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + index_specification(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + break; + } + default: + jj_la1[32] = jj_gen; + ; + } + } + + } + + +void VhdlParser::block_statement() {QCString s;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + jj_consume_token(BLOCK_T); + } + if (!hasError) { + +pushLabel(genLabels,s); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + break; + } + default: + jj_la1[33] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{if (!hasError) { + + jj_consume_token(IS_T); + } + + break; + } + default: + jj_la1[34] = jj_gen; + ; + } + } + if (!hasError) { + + block_header(); + } + if (!hasError) { + + block_declarative_part(); + } + if (!hasError) { + + jj_consume_token(BEGIN_T); + } + if (!hasError) { + + block_statement_part(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(BLOCK_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[35] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +genLabels=popLabel(genLabels); + } + + +void VhdlParser::block_statement_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case CASE_T: + case POSTPONED_T: + case PROCESS_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[36] = jj_gen; + goto end_label_8; + }if (!hasError) { + + concurrent_statement(); + } + + } + end_label_8: ; + } + + } + + +void VhdlParser::case_statement() {QCString s;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[37] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(CASE_T); + } + if (!hasError) { + + s = expression(); + } + if (!hasError) { + +QCString ca="case "+s; + FlowChart::addFlowChart(FlowChart::CASE_NO,0,ca); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + case_statement_alternative(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + ; + break; + } + default: + jj_la1[38] = jj_gen; + goto end_label_9; + }if (!hasError) { + + case_statement_alternative(); + } + + } + end_label_9: ; + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(CASE_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[39] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +FlowChart::moveToPrevLevel(); + FlowChart::addFlowChart(FlowChart::END_CASE,0,0); + } + + +void VhdlParser::case_statement_alternative() {QCString s;if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + s = choices(); + } + if (!hasError) { + + jj_consume_token(ARROW_T); + } + if (!hasError) { + +QCString t="when "; + t+=s+"=> "; + FlowChart::addFlowChart(FlowChart::WHEN_NO,s.data(),t); + } + if (!hasError) { + + sequence_of_statement(); + } + +FlowChart::moveToPrevLevel(); + } + + +QCString VhdlParser::character_literal() {Token *tok;if (!hasError) { + + tok = jj_consume_token(CHARACTER_LITERAL); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::choice() {QCString s; + if (jj_2_10(2147483647)) {if (!hasError) { + + s = discrete_range(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_11(2147483647)) {if (!hasError) { + + s = simple_expression(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +return s; + } + + break; + } + case OTHER_T:{if (!hasError) { + + jj_consume_token(OTHER_T); + } + if (!hasError) { + +return " others "; + } + + break; + } + default: + jj_la1[40] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::choices() {QCString s,s1;if (!hasError) { + + s = choice(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BAR_T:{ + ; + break; + } + default: + jj_la1[41] = jj_gen; + goto end_label_10; + }if (!hasError) { + + jj_consume_token(BAR_T); + } + if (!hasError) { + + choice(); + } + if (!hasError) { + +s+="|";s+=s1; + } + + } + end_label_10: ; + } + +return s; +assert(false); + } + + +void VhdlParser::component_configuration() {if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + component_specification(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T: + case PORT_T: + case USE_T: + case SEMI_T:{if (!hasError) { + + binding_indication(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[42] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FOR_T:{if (!hasError) { + + block_configuration(); + } + + break; + } + default: + jj_la1[43] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::component_declaration() {QCString s;if (!hasError) { + + jj_consume_token(COMPONENT_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{if (!hasError) { + + jj_consume_token(IS_T); + } + + break; + } + default: + jj_la1[44] = jj_gen; + ; + } + } + if (!hasError) { + +currP=VhdlDocGen::COMPONENT; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + generic_clause(); + } + + break; + } + default: + jj_la1[45] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PORT_T:{if (!hasError) { + + port_clause(); + } + + break; + } + default: + jj_la1[46] = jj_gen; + ; + } + } + if (!hasError) { + +addVhdlType(s.data(),getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Public); + currP=0; + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(COMPONENT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[47] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::component_instantiation_statement() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = instantiation_unit(); + } + if (!hasError) { + +addCompInst(s.lower().data(),s1.lower().data(),0,getLine()); + } + if (!hasError) { + + if (jj_2_12(2147483647)) {if (!hasError) { + + generic_map_aspect(); + } + + } else { + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PORT_T:{if (!hasError) { + + port_map_aspect(); + } + + break; + } + default: + jj_la1[48] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::component_specification() {if (!hasError) { + + instantiation_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + name(); + } + + } + + +QCString VhdlParser::composite_type_definition() {QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARRAY_T:{if (!hasError) { + + s = array_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + case RECORD_T:{if (!hasError) { + + record_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[49] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::concurrent_assertion_statement() {if (!hasError) { + + if (jj_2_13(2)) {if (!hasError) { + + identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + } else { + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T:{if (!hasError) { + + jj_consume_token(POSTPONED_T); + } + + break; + } + default: + jj_la1[50] = jj_gen; + ; + } + } + if (!hasError) { + + assertion(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::concurrent_procedure_call_statement() {if (!hasError) { + + if (jj_2_14(2)) {if (!hasError) { + + identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + } else { + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T:{if (!hasError) { + + jj_consume_token(POSTPONED_T); + } + + break; + } + default: + jj_la1[51] = jj_gen; + ; + } + } + if (!hasError) { + + procedure_call(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::concurrent_signal_assignment_statement() {if (!hasError) { + + if (jj_2_15(2)) {if (!hasError) { + + identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + } else { + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T:{if (!hasError) { + + jj_consume_token(POSTPONED_T); + } + + break; + } + default: + jj_la1[52] = jj_gen; + ; + } + } + if (!hasError) { + + if (jj_2_16(2147483647)) {if (!hasError) { + + conditional_signal_assignment(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WITH_T:{if (!hasError) { + + selected_signal_assignment(); + } + + break; + } + default: + jj_la1[53] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + } + + +void VhdlParser::concurrent_statement() { + if (jj_2_17(2147483647)) {if (!hasError) { + + block_statement(); + } + + } else if (jj_2_18(2147483647)) {if (!hasError) { + + process_statement(); + } + + } else if (jj_2_19(2147483647)) {if (!hasError) { + + generate_statement(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CASE_T:{if (!hasError) { + + case_scheme(); + } + + break; + } + default: + jj_la1[54] = jj_gen; + if (jj_2_20(2147483647)) {if (!hasError) { + + concurrent_assertion_statement(); + } + + } else if (jj_2_21(2147483647)) {if (!hasError) { + + concurrent_signal_assignment_statement(); + } + + } else if (jj_2_22(2147483647)) {if (!hasError) { + + component_instantiation_statement(); + } + + } else if (jj_2_23(2147483647)) {if (!hasError) { + + concurrent_procedure_call_statement(); + } + + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + + +QCString VhdlParser::condition() {QCString s;if (!hasError) { + + s = expression(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::condition_clause() {QCString s;if (!hasError) { + + jj_consume_token(UNTIL_T); + } + if (!hasError) { + + s = condition(); + } + +return " until "+s; +assert(false); + } + + +void VhdlParser::conditional_signal_assignment() {if (!hasError) { + + target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + options(); + } + if (!hasError) { + + conditional_waveforms(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::conditional_waveforms() {if (!hasError) { + + waveform(); + } + if (!hasError) { + + while (!hasError) { + if (jj_2_24(2147483647)) { + ; + } else { + goto end_label_11; + }if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + condition(); + } + if (!hasError) { + + jj_consume_token(ELSE_T); + } + if (!hasError) { + + waveform(); + } + + } + end_label_11: ; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + condition(); + } + + break; + } + default: + jj_la1[55] = jj_gen; + ; + } + } + + } + + +void VhdlParser::configuration_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(CONFIGURATION_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(OF_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +confName=s+"::"+s1; + addVhdlType(s.data(),getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Public); + } + if (!hasError) { + + configuration_declarative_part(); + } + if (!hasError) { + + block_configuration(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONFIGURATION_T:{if (!hasError) { + + jj_consume_token(CONFIGURATION_T); + } + + break; + } + default: + jj_la1[56] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[57] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +genLabels.resize(0); confName=""; + } + + +void VhdlParser::configuration_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + case ATTRIBUTE_T:{if (!hasError) { + + attribute_specification(); + } + + break; + } + case GROUP_T:{if (!hasError) { + + group_declaration(); + } + + break; + } + default: + jj_la1[58] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::configuration_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T: + case GROUP_T: + case USE_T:{ + ; + break; + } + default: + jj_la1[59] = jj_gen; + goto end_label_12; + }if (!hasError) { + + configuration_declarative_item(); + } + + } + end_label_12: ; + } + + } + + +void VhdlParser::configuration_item() { + if (jj_2_25(2147483647)) {if (!hasError) { + + component_configuration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FOR_T:{if (!hasError) { + + block_configuration(); + } + + break; + } + default: + jj_la1[60] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::configuration_specification() {if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + component_specification(); + } + if (!hasError) { + + binding_indication(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0;if (!hasError) { + + jj_consume_token(CONSTANT_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{if (!hasError) { + + t = jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + + s2 = expression(); + } + + break; + } + default: + jj_la1[61] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(t) + s2.prepend(":="); + QCString it=s1+s2; + addVhdlType(s.data(),getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Public); + it.prepend("constant "); + return it; +assert(false); + } + + +QCString VhdlParser::constraint_array_definition() {QCString s,s1;if (!hasError) { + + jj_consume_token(ARRAY_T); + } + if (!hasError) { + + s = index_constraint(); + } + if (!hasError) { + + jj_consume_token(OF_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + +return s+" "+s1; +assert(false); + } + + +void VhdlParser::context_clause() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LIBRARY_T: + case USE_T:{ + ; + break; + } + default: + jj_la1[62] = jj_gen; + goto end_label_13; + }if (!hasError) { + + context_item(); + } + + } + end_label_13: ; + } + + } + + +QCString VhdlParser::constraint() {QCString s; + if (jj_2_26(2147483647)) {if (!hasError) { + + s = range_constraint(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_27(2147483647)) {if (!hasError) { + + s = index_constraint(); + } + if (!hasError) { + +return s; + } + + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::context_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LIBRARY_T:{if (!hasError) { + + library_clause(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[63] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +QCString VhdlParser::decimal_literal() {Token *tok;if (!hasError) { + + tok = jj_consume_token(DECIMAL_LITERAL); + } + +return tok->image.c_str(); +assert(false); + } + + +QCString VhdlParser::delay_mechanism() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case TRANSPORT_T:{if (!hasError) { + + jj_consume_token(TRANSPORT_T); + } + if (!hasError) { + +return " transport "; + } + + break; + } + case INERTIAL_T: + case REJECT_T:{if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case REJECT_T:{if (!hasError) { + + jj_consume_token(REJECT_T); + } + if (!hasError) { + + s = expression(); + } + if (!hasError) { + +s.prepend(" reject "); + } + + break; + } + default: + jj_la1[64] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(INERTIAL_T); + } + if (!hasError) { + +return s+" inertial "; + } + + break; + } + default: + jj_la1[65] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::design_file() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARCHITECTURE_T: + case CONFIGURATION_T: + case CONTEXT_T: + case ENTITY_T: + case LIBRARY_T: + case PACKAGE_T: + case USE_T:{if (!hasError) { + + while (!hasError) {if (!hasError) { + + design_unit(); + } + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARCHITECTURE_T: + case CONFIGURATION_T: + case CONTEXT_T: + case ENTITY_T: + case LIBRARY_T: + case PACKAGE_T: + case USE_T:{ + ; + break; + } + default: + jj_la1[66] = jj_gen; + goto end_label_14; + } + } + end_label_14: ; + } + if (!hasError) { + + + } + + break; + } + case 0:{if (!hasError) { + + jj_consume_token(0); + } + + break; + } + default: + jj_la1[67] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::design_unit() {if (!hasError) { + + context_clause(); + } + if (!hasError) { + + library_unit(); + } + + } + + +QCString VhdlParser::designator() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +return s; + } + + break; + } + case STRINGLITERAL:{if (!hasError) { + + s = operator_symbol(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[68] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::direction() {Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case TO_T:{if (!hasError) { + + tok = jj_consume_token(TO_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case DOWNTO_T:{if (!hasError) { + + tok = jj_consume_token(DOWNTO_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[69] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::disconnection_specification() {if (!hasError) { + + jj_consume_token(DISCONNECT_T); + } + if (!hasError) { + + guarded_signal_specificatio(); + } + if (!hasError) { + + jj_consume_token(AFTER_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::guarded_signal_specificatio() {if (!hasError) { + + signal_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + name(); + } + + } + + +QCString VhdlParser::discrete_range() {QCString s; + if (jj_2_28(2147483647)) {if (!hasError) { + + s = range(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_29(2147483647)) {if (!hasError) { + + s = subtype_indication(); + } + if (!hasError) { + +return s; + } + + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::element_association() {QCString s,s1;if (!hasError) { + + if (jj_2_30(2147483647)) {if (!hasError) { + + choices(); + } + if (!hasError) { + + jj_consume_token(ARROW_T); + } + + } else { + ; + } + } + if (!hasError) { + + s1 = expression(); + } + +return s1; +assert(false); + } + + +QCString VhdlParser::element_declaration() {QCString s,s1;if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return s+":"+s1; +assert(false); + } + + +QCString VhdlParser::entity_aspect() {Token *tok;QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ENTITY_T:{if (!hasError) { + + tok = jj_consume_token(ENTITY_T); + } + if (!hasError) { + + s = name(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = identifier(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+="("+s1+")"; + } + + break; + } + default: + jj_la1[70] = jj_gen; + ; + } + } + if (!hasError) { + +return s; + } + + break; + } + case CONFIGURATION_T:{if (!hasError) { + + tok = jj_consume_token(CONFIGURATION_T); + } + if (!hasError) { + + s = name(); + } + if (!hasError) { + +return tok->image.c_str()+s; + } + + break; + } + case OPEN_T:{if (!hasError) { + + tok = jj_consume_token(OPEN_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[71] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::entity_class() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ENTITY_T:{if (!hasError) { + + jj_consume_token(ENTITY_T); + } + if (!hasError) { + +return "entity"; + } + + break; + } + case ARCHITECTURE_T:{if (!hasError) { + + jj_consume_token(ARCHITECTURE_T); + } + if (!hasError) { + +return "architecture"; + } + + break; + } + case CONFIGURATION_T:{if (!hasError) { + + jj_consume_token(CONFIGURATION_T); + } + if (!hasError) { + +return "configuration"; + } + + break; + } + case PROCEDURE_T:{if (!hasError) { + + jj_consume_token(PROCEDURE_T); + } + if (!hasError) { + +return "procedure"; + } + + break; + } + case FUNCTION_T:{if (!hasError) { + + jj_consume_token(FUNCTION_T); + } + if (!hasError) { + +return "function"; + } + + break; + } + case PACKAGE_T:{if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + +return "package"; + } + + break; + } + case TYPE_T:{if (!hasError) { + + jj_consume_token(TYPE_T); + } + if (!hasError) { + +return "type"; + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + jj_consume_token(SUBTYPE_T); + } + if (!hasError) { + +return "subtype"; + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + jj_consume_token(CONSTANT_T); + } + if (!hasError) { + +return "constant"; + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + jj_consume_token(SIGNAL_T); + } + if (!hasError) { + +return "signal"; + } + + break; + } + case VARIABLE_T:{if (!hasError) { + + jj_consume_token(VARIABLE_T); + } + if (!hasError) { + +return "variable"; + } + + break; + } + case COMPONENT_T:{if (!hasError) { + + jj_consume_token(COMPONENT_T); + } + if (!hasError) { + +return "component"; + } + + break; + } + case LABEL_T:{if (!hasError) { + + jj_consume_token(LABEL_T); + } + if (!hasError) { + +return "label"; + } + + break; + } + case LITERAL_T:{if (!hasError) { + + jj_consume_token(LITERAL_T); + } + if (!hasError) { + +return "literal"; + } + + break; + } + case UNITS_T:{if (!hasError) { + + jj_consume_token(UNITS_T); + } + if (!hasError) { + +return "units"; + } + + break; + } + case GROUP_T:{if (!hasError) { + + jj_consume_token(GROUP_T); + } + if (!hasError) { + +return "group"; + } + + break; + } + case FILE_T:{if (!hasError) { + + jj_consume_token(FILE_T); + } + if (!hasError) { + +return "file"; + } + + break; + } + default: + jj_la1[72] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::entity_class_entry() {QCString s;if (!hasError) { + + s = entity_class(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BOX_T:{if (!hasError) { + + jj_consume_token(BOX_T); + } + if (!hasError) { + +s+="<>"; + } + + break; + } + default: + jj_la1[73] = jj_gen; + ; + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::entity_class_entry_list() {QCString s,s1,s2;if (!hasError) { + if (!hasError) { + + s1 = entity_class_entry(); + } + if (!hasError) { + +s+=s1; + } + + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[74] = jj_gen; + goto end_label_15; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s = entity_class_entry(); + } + if (!hasError) { + +s2+=",";s2+=s; + } + + } + end_label_15: ; + } + +return s1+s2; +assert(false); + } + + +void VhdlParser::entity_declaration() {QCString s;if (!hasError) { + + try {if (!hasError) { + + jj_consume_token(ENTITY_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +lastEntity=current; + lastCompound=0; + addVhdlType(s.data(),getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public); + } + if (!hasError) { + + entity_header(); + } + if (!hasError) { + + entity_declarative_part(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BEGIN_T:{if (!hasError) { + + jj_consume_token(BEGIN_T); + } + if (!hasError) { + + entity_statement_part(); + } + + break; + } + default: + jj_la1[75] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ENTITY_T:{if (!hasError) { + + jj_consume_token(ENTITY_T); + } + + break; + } + default: + jj_la1[76] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[77] = jj_gen; + ; + } + } + + } catch ( ...) { +error_skipto(SEMI_T); + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +lastEntity=0;lastCompound=0; genLabels.resize(0); + } + + +void VhdlParser::entity_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + + break; + } + case TYPE_T:{if (!hasError) { + + type_declaration(); + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + subtype_declaration(); + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + constant_declaration(); + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + signal_declaration(); + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + variable_declaration(); + } + + break; + } + case FILE_T:{if (!hasError) { + + file_declaration(); + } + + break; + } + case ALIAS_T:{if (!hasError) { + + alias_declaration(); + } + + break; + } + default: + jj_la1[78] = jj_gen; + if (jj_2_31(2147483647)) {if (!hasError) { + + attribute_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{if (!hasError) { + + attribute_specification(); + } + + break; + } + case DISCONNECT_T:{if (!hasError) { + + disconnection_specification(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[79] = jj_gen; + if (jj_2_32(3)) {if (!hasError) { + + group_template_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + group_declaration(); + } + + break; + } + default: + jj_la1[80] = jj_gen; + if (jj_2_33(5)) {if (!hasError) { + + package_instantiation_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{if (!hasError) { + + package_declaration(); + } + + break; + } + default: + jj_la1[81] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } + } + } + } + + +void VhdlParser::entity_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PACKAGE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[82] = jj_gen; + goto end_label_16; + }if (!hasError) { + + entity_declarative_item(); + } + + } + end_label_16: ; + } + + } + + +QCString VhdlParser::entity_designator() {QCString s,s1;if (!hasError) { + + s = entity_tag(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LBRACKET_T:{if (!hasError) { + + s1 = signature(); + } + + break; + } + default: + jj_la1[83] = jj_gen; + ; + } + } + +return s+s1; +assert(false); + } + + +void VhdlParser::entity_header() {if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + +currP=VhdlDocGen::GENERIC;parse_sec=GEN_SEC; + } + if (!hasError) { + + generic_clause(); + } + + break; + } + default: + jj_la1[84] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PORT_T:{if (!hasError) { + +currP=VhdlDocGen::PORT; + } + if (!hasError) { + + port_clause(); + } + + break; + } + default: + jj_la1[85] = jj_gen; + ; + } + } + + } + + +QCString VhdlParser::entity_name_list() {QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL:{if (!hasError) { + + while (!hasError) {if (!hasError) { + + s1 = entity_designator(); + } + if (!hasError) { + +s+=s1; + } + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL:{ + ; + break; + } + default: + jj_la1[86] = jj_gen; + goto end_label_17; + } + } + end_label_17: ; + } + if (!hasError) { + +return s; + } + + break; + } + case OTHER_T:{if (!hasError) { + + jj_consume_token(OTHER_T); + } + if (!hasError) { + +return "other"; + } + + break; + } + case ALL_T:{if (!hasError) { + + jj_consume_token(ALL_T); + } + if (!hasError) { + +return "all"; + } + + break; + } + default: + jj_la1[87] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::entity_specification() {QCString s,s1;if (!hasError) { + + s = entity_name_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = entity_class(); + } + +return s+":"+s1; +assert(false); + } + + +void VhdlParser::entity_statement() { + if (jj_2_34(2147483647)) {if (!hasError) { + + concurrent_assertion_statement(); + } + + } else if (jj_2_35(2147483647)) {if (!hasError) { + + process_statement(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + concurrent_procedure_call_statement(); + } + + break; + } + default: + jj_la1[88] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::entity_statement_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case POSTPONED_T: + case PROCESS_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[89] = jj_gen; + goto end_label_18; + }if (!hasError) { + + entity_statement(); + } + + } + end_label_18: ; + } + + } + + +QCString VhdlParser::entity_tag() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + +return s; + } + + break; + } + case CHARACTER_LITERAL:{if (!hasError) { + + s = character_literal(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[90] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::enumeration_literal() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +return s; + } + + break; + } + case CHARACTER_LITERAL:{if (!hasError) { + + s = character_literal(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[91] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::enumeration_type_definition() {QCString s,s1;if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s = enumeration_literal(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[92] = jj_gen; + goto end_label_19; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = enumeration_literal(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_19: ; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return "("+s+")"; +assert(false); + } + + +QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + t = jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[93] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(EXIT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s1 = identifier(); + } + + break; + } + default: + jj_la1[94] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{if (!hasError) { + + t1 = jj_consume_token(WHEN_T); + } + if (!hasError) { + + s2 = condition(); + } + + break; + } + default: + jj_la1[95] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(t) s+=":"; + if(t1) s2.prepend(" when "); + return s+s1+s2+";"; +assert(false); + } + + +QCString VhdlParser::expression() {QCString s,s1,s2;if (!hasError) { + + s = relation(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case AND_T: + case NAND_T: + case NOR_T: + case OR_T: + case XOR_T: + case XNOR_T:{ + ; + break; + } + default: + jj_la1[96] = jj_gen; + goto end_label_20; + }if (!hasError) { + + s1 = logop(); + } + if (!hasError) { + + s2 = relation(); + } + if (!hasError) { + +s+=s1;s+=s2; + } + + } + end_label_20: ; + } + +return s; +assert(false); + } + + +QCString VhdlParser::logop() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case AND_T:{if (!hasError) { + + jj_consume_token(AND_T); + } + if (!hasError) { + +return "and" ; + } + + break; + } + case NAND_T:{if (!hasError) { + + jj_consume_token(NAND_T); + } + if (!hasError) { + +return "nand" ; + } + + break; + } + case NOR_T:{if (!hasError) { + + jj_consume_token(NOR_T); + } + if (!hasError) { + +return "nor" ; + } + + break; + } + case XNOR_T:{if (!hasError) { + + jj_consume_token(XNOR_T); + } + if (!hasError) { + +return "xnor" ; + } + + break; + } + case XOR_T:{if (!hasError) { + + jj_consume_token(XOR_T); + } + if (!hasError) { + +return "xor" ; + } + + break; + } + case OR_T:{if (!hasError) { + + jj_consume_token(OR_T); + } + if (!hasError) { + +return "or" ; + } + + break; + } + default: + jj_la1[97] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::extended_identifier() {Token *t;if (!hasError) { + + t = jj_consume_token(EXTENDED_CHARACTER); + } + +return t->image.c_str(); +assert(false); + } + + +QCString VhdlParser::factor() {QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case NEW_T: + case NULL_T: + case LPAREN_T: + case SLSL_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{if (!hasError) { + + s = primary(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOUBLEMULT_T:{if (!hasError) { + + jj_consume_token(DOUBLEMULT_T); + } + if (!hasError) { + + s1 = primary(); + } + if (!hasError) { + +s+="**";s+=s1; + } + + break; + } + default: + jj_la1[98] = jj_gen; + ; + } + } + if (!hasError) { + +return s; + } + + break; + } + case ABS_T:{if (!hasError) { + + jj_consume_token(ABS_T); + } + if (!hasError) { + + s = primary(); + } + if (!hasError) { + +s1 = "abs "; return s1+s; + } + + break; + } + case NOT_T:{if (!hasError) { + + jj_consume_token(NOT_T); + } + if (!hasError) { + + s = primary(); + } + if (!hasError) { + +s1="not ";return s1+s; + } + + break; + } + default: + jj_la1[99] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3;if (!hasError) { + + jj_consume_token(FILE_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s2 = subtype_indication(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T: + case OPEN_T:{if (!hasError) { + + s3 = file_open_information(); + } + + break; + } + default: + jj_la1[100] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +QCString t1=s2+" "+s3; + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public); + return " file "+s+":"+s2+" "+s3+";"; +assert(false); + } + + +QCString VhdlParser::file_logical_name() {QCString s;if (!hasError) { + + s = expression(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::file_open_information() {QCString s,s1,s2;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case OPEN_T:{if (!hasError) { + + jj_consume_token(OPEN_T); + } + if (!hasError) { + + s = expression(); + } + + break; + } + default: + jj_la1[101] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + s1 = file_logical_name(); + } + +s2="open "+s+" is "+s1; return s2; +assert(false); + } + + +QCString VhdlParser::file_type_definition() {QCString s,s1;if (!hasError) { + + jj_consume_token(FILE_T); + } + if (!hasError) { + + jj_consume_token(OF_T); + } + if (!hasError) { + + s = type_mark(); + } + +s1=" file of "+s; return s1; +assert(false); + } + + +QCString VhdlParser::floating_type_definition() {QCString s;if (!hasError) { + + s = range_constraint(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::formal_designator() {QCString s;Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + +return s; + } + + break; + } + case INTEGER:{if (!hasError) { + + tok = jj_consume_token(INTEGER); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[102] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::formal_parameter_list() {QCString s;if (!hasError) { + + s = interface_list(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::formal_part() {QCString s,s1;if (!hasError) { + + s = name(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + formal_designator(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+"("+s1+")"; + } + + break; + } + default: + jj_la1[103] = jj_gen; + ; + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::full_type_declaration() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(TYPE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + try {if (!hasError) { + + s2 = type_definition(); + } + + } catch ( ...) { +error_skipto(SEMI_T); + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +addVhdlType(s.data(),getLine(TYPE_T),Entry::VARIABLE_SEC,VhdlDocGen::TYPE,0,s2.data(),Public); + return "type "+s+" is "+s2+";"; +assert(false); + } + + +QCString VhdlParser::function_call() {QCString s,s1;if (!hasError) { + + s = name(); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = actual_parameter_part(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return s+"("+s1+")"; +assert(false); + } + + +void VhdlParser::generate_statement() {QCString s;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + try {if (!hasError) { + + generate_scheme(); + } + if (!hasError) { + + jj_consume_token(GENERATE_T); + } + if (!hasError) { + +pushLabel(genLabels,s); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case BEGIN_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FOR_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FOR_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[104] = jj_gen; + goto end_label_21; + }if (!hasError) { + + block_declarative_item(); + } + + } + end_label_21: ; + } + if (!hasError) { + + jj_consume_token(BEGIN_T); + } + + break; + } + default: + jj_la1[105] = jj_gen; + ; + } + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case CASE_T: + case POSTPONED_T: + case PROCESS_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[106] = jj_gen; + goto end_label_22; + }if (!hasError) { + + concurrent_statement(); + } + + } + end_label_22: ; + } + if (!hasError) { + + jj_consume_token(END_T); + } + + } catch ( ...) { +error_skipto(GENERATE_T); + } + } + if (!hasError) { + + jj_consume_token(GENERATE_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[107] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +genLabels=popLabel(genLabels); + } + + +void VhdlParser::generate_scheme() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FOR_T:{if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + parameter_specification(); + } + + break; + } + case IF_T:{if (!hasError) { + + jj_consume_token(IF_T); + } + if (!hasError) { + + condition(); + } + + break; + } + default: + jj_la1[108] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::generic_clause() {QCString s;if (!hasError) { + + jj_consume_token(GENERIC_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + +parse_sec=GEN_SEC; + } + if (!hasError) { + + s = generic_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +parse_sec=0; + } + + +QCString VhdlParser::generic_list() {QCString s;if (!hasError) { + + s = interface_list(); + } + +return s; +assert(false); + } + + +void VhdlParser::generic_map_aspect() {if (!hasError) { + + jj_consume_token(GENERIC_T); + } + if (!hasError) { + + jj_consume_token(MAP_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + association_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + } + + +QCString VhdlParser::group_constituent() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + +return s; + } + + break; + } + case CHARACTER_LITERAL:{if (!hasError) { + + s = character_literal(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[109] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::group_constituent_list() {QCString s,s1,s2;if (!hasError) { + if (!hasError) { + + s1 = group_constituent(); + } + + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[110] = jj_gen; + goto end_label_23; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s = group_constituent(); + } + if (!hasError) { + +s2+=",";s2+=s1; + } + + } + end_label_23: ; + } + +return s+s2; +assert(false); + } + + +QCString VhdlParser::group_declaration() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(GROUP_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = identifier(); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s2 = group_constituent_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return "group "+s+":"+s1+"("+s2+");"; +assert(false); + } + + +QCString VhdlParser::group_template_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(GROUP_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = entity_class_entry_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return "group "+s+ "is ("+s1+");"; +assert(false); + } + + +void VhdlParser::guarded_signal_specification() {if (!hasError) { + + signal_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + type_mark(); + } + + } + + +QCString VhdlParser::identifier() {Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case EXTENDED_CHARACTER:{if (!hasError) { + + tok = jj_consume_token(EXTENDED_CHARACTER); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case BASIC_IDENTIFIER:{if (!hasError) { + + tok = jj_consume_token(BASIC_IDENTIFIER); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[111] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::identifier_list() {QCString str,str1;if (!hasError) { + + str = identifier(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[112] = jj_gen; + goto end_label_24; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + str1 = identifier(); + } + if (!hasError) { + +str+=",";str+=str1; + } + + } + end_label_24: ; + } + +return str; +assert(false); + } + + +void VhdlParser::if_statement() {QCString s,s1;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[113] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(IF_T); + } + if (!hasError) { + + s = condition(); + } + if (!hasError) { + + jj_consume_token(THEN_T); + } + if (!hasError) { + +s.prepend("if "); + FlowChart::addFlowChart(FlowChart::IF_NO,0,s); + } + if (!hasError) { + + sequence_of_statement(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSIF_T:{ + ; + break; + } + default: + jj_la1[114] = jj_gen; + goto end_label_25; + }if (!hasError) { + + jj_consume_token(ELSIF_T); + } + if (!hasError) { + + s1 = condition(); + } + if (!hasError) { + + jj_consume_token(THEN_T); + } + if (!hasError) { + +s1.prepend("elsif "); + FlowChart::addFlowChart(FlowChart::ELSIF_NO,0,s1.data()); + } + if (!hasError) { + + sequence_of_statement(); + } + + } + end_label_25: ; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSE_T:{if (!hasError) { + + jj_consume_token(ELSE_T); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::ELSE_NO,0,0); + } + if (!hasError) { + + sequence_of_statement(); + } + + break; + } + default: + jj_la1[115] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(IF_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[116] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +FlowChart::moveToPrevLevel(); + FlowChart::addFlowChart(FlowChart::ENDIF_NO,0,0); + } + + +QCString VhdlParser::incomplete_type_declaration() {QCString s;if (!hasError) { + + jj_consume_token(TYPE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return "type "+s+";"; +assert(false); + } + + +QCString VhdlParser::index_constraint() {QCString s="("; QCString s1,s2;if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s2 = discrete_range(); + } + if (!hasError) { + +s+=s2; + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[117] = jj_gen; + goto end_label_26; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = discrete_range(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_26: ; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return s+")"; +assert(false); + } + + +QCString VhdlParser::index_specification() {QCString s; + if (jj_2_36(2147483647)) {if (!hasError) { + + s = discrete_range(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ABS_T: + case NEW_T: + case NOT_T: + case NULL_T: + case LPAREN_T: + case PLUS_T: + case MINUS_T: + case SLSL_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{if (!hasError) { + + s = expression(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[118] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::index_subtype_definition() {QCString s;if (!hasError) { + + s = type_mark(); + } + if (!hasError) { + + jj_consume_token(RANGE_T); + } + if (!hasError) { + + jj_consume_token(BOX_T); + } + +return s+" range <> "; +assert(false); + } + + +QCString VhdlParser::instantiation_unit() {QCString s,s1,s2;Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMPONENT_T: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMPONENT_T:{if (!hasError) { + + tok = jj_consume_token(COMPONENT_T); + } + + break; + } + default: + jj_la1[119] = jj_gen; + ; + } + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +s1="component"; return s; + } + + break; + } + case ENTITY_T:{if (!hasError) { + + tok = jj_consume_token(ENTITY_T); + } + if (!hasError) { + + s2 = name(); + } + if (!hasError) { + +s=tok->image.c_str()+s2; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = identifier(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+="(";s+=s1;s+=")" ; + } + + break; + } + default: + jj_la1[120] = jj_gen; + ; + } + } + if (!hasError) { + +return s; + } + + break; + } + case CONFIGURATION_T:{if (!hasError) { + + jj_consume_token(CONFIGURATION_T); + } + if (!hasError) { + + s = name(); + } + if (!hasError) { + +s1="configuration ";return s; + } + + break; + } + default: + jj_la1[121] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::instantiation_list() {QCString s;Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + +return s; + } + + break; + } + case OTHER_T:{if (!hasError) { + + tok = jj_consume_token(OTHER_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case ALL_T:{if (!hasError) { + + tok = jj_consume_token(ALL_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[122] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::integer() {Token *t;if (!hasError) { + + t = jj_consume_token(INTEGER); + } + +return t->image.c_str(); +assert(false); + } + + +QCString VhdlParser::integer_type_definition() {QCString s;if (!hasError) { + + s = range_constraint(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::interface_declaration() {QCString s,s1; + if (jj_2_37(5)) {if (!hasError) { + + s = interface_subprogram_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{if (!hasError) { + + interface_package_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[123] = jj_gen; + if (jj_2_38(5)) {if (!hasError) { + + s = interface_variable_declaration(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_39(5)) {if (!hasError) { + + interface_file_declaration(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_40(2147483647)) {if (!hasError) { + + subprogram_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONSTANT_T: + case FILE_T: + case SIGNAL_T: + case SHARED_T: + case TYPE_T: + case VARIABLE_T:{if (!hasError) { + + s = object_class(); + } + if (!hasError) { + + s1 = identifier(); + } + if (!hasError) { + +if (parse_sec==GEN_SEC) + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,s1.data(),0,Public); + return s; + } + + break; + } + default: + jj_la1[124] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } +assert(false); + } + + +QCString VhdlParser::interface_element() {QCString s;if (!hasError) { + + s = interface_declaration(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::interface_file_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(FILE_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + +addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public); + return " file "+s+":"+s1; +assert(false); + } + + +QCString VhdlParser::interface_list() {QCString s,s1,s2;if (!hasError) { + + s = interface_element(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SEMI_T:{ + ; + break; + } + default: + jj_la1[125] = jj_gen; + goto end_label_27; + }if (!hasError) { + + jj_consume_token(SEMI_T); + } + if (!hasError) { + + s1 = interface_element(); + } + if (!hasError) { + +s2+=";";s2+=s1; + } + + } + end_label_27: ; + } + +return s+s2; +assert(false); + } + + +QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONSTANT_T: + case SIGNAL_T: + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARIABLE_T:{if (!hasError) { + + tok = jj_consume_token(VARIABLE_T); + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + tok = jj_consume_token(SIGNAL_T); + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + tok = jj_consume_token(CONSTANT_T); + } + + break; + } + case SHARED_T:{if (!hasError) { + + tok = jj_consume_token(SHARED_T); + } + + break; + } + default: + jj_la1[126] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + break; + } + default: + jj_la1[127] = jj_gen; + ; + } + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUFFER_T: + case IN_T: + case INOUT_T: + case LINKAGE_T: + case OUT_T:{if (!hasError) { + + s1 = mode(); + } + + break; + } + default: + jj_la1[128] = jj_gen; + ; + } + } + if (!hasError) { + + s2 = subtype_indication(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUS_T:{if (!hasError) { + + tok1 = jj_consume_token(BUS_T); + } + + break; + } + default: + jj_la1[129] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{if (!hasError) { + + tok2 = jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + + s4 = expression(); + } + + break; + } + default: + jj_la1[130] = jj_gen; + ; + } + } + +if(tok) + s5=tok->image.c_str(); + + if(tok1) + s3=tok->image.data(); + + if(tok2) + s3+=":="; + + QCString it=s+":"+s1+" "+s2+" "+s3+" "+s4; + if (currP!=VhdlDocGen::COMPONENT) + { + if (currP==VhdlDocGen::FUNCTION || currP==VhdlDocGen::PROCEDURE) + { + addProto(s5.data(),s.data(),s2.data(),s3.data(),0,s4.data()); + } + else + { + QCString i=s2+s3+s4; + if (currP==VhdlDocGen::GENERIC && param_sec==0) + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public); + else if(parse_sec != GEN_SEC) + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public); + } + // fprintf(stderr,"\n\n <<port %s >>\n",$$.data()); + } // if component + return it; +assert(false); + } + + +void VhdlParser::iteration_scheme() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHILE_T:{if (!hasError) { + + jj_consume_token(WHILE_T); + } + if (!hasError) { + + condition(); + } + + break; + } + case FOR_T:{if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + parameter_specification(); + } + + break; + } + default: + jj_la1[131] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +QCString VhdlParser::label() {QCString s;if (!hasError) { + + s = identifier(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::library_clause() {QCString s;if (!hasError) { + if (!hasError) { + + jj_consume_token(LIBRARY_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + +if ( parse_sec==0 && Config_getBool("SHOW_INCLUDE_FILES") ) + { + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Public); + } + QCString s1="library "+s; + return s1; +assert(false); + } + + +QCString VhdlParser::library_unit() {QCString s; + if (jj_2_41(2)) {if (!hasError) { + + primary_unit(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARCHITECTURE_T: + case PACKAGE_T:{if (!hasError) { + + secondary_unit(); + } + if (!hasError) { + +return s; + } + + break; + } + case CONTEXT_T:{if (!hasError) { + + context_declaration(); + } + + break; + } + default: + jj_la1[132] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::literal() {QCString s; + if (jj_2_42(2147483647)) {if (!hasError) { + + s = bit_string_literal(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_43(2147483647)) {if (!hasError) { + + s = numeric_literal(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_44(2147483647)) {if (!hasError) { + + s = enumeration_literal(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case STRINGLITERAL:{if (!hasError) { + + s = string_literal(); + } + if (!hasError) { + +return s; + } + + break; + } + case NULL_T:{if (!hasError) { + + jj_consume_token(NULL_T); + } + if (!hasError) { + +return "null"; + } + + break; + } + default: + jj_la1[133] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::logical_operator() {QCString s;if (!hasError) { + + s = logop(); + } + +return s; +assert(false); + } + + +void VhdlParser::loop_statement() {if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[134] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FOR_T: + case WHILE_T:{if (!hasError) { + + iteration_scheme(); + } + + break; + } + default: + jj_la1[135] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(LOOP_T); + } + if (!hasError) { + + sequence_of_statement(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(LOOP_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[136] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +QCString VhdlParser::miscellaneous_operator() {Token *t=0; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOUBLEMULT_T:{if (!hasError) { + + jj_consume_token(DOUBLEMULT_T); + } + if (!hasError) { + +return "**"; + } + + break; + } + case ABS_T:{if (!hasError) { + + jj_consume_token(ABS_T); + } + if (!hasError) { + +return "abs"; + } + + break; + } + case NOT_T:{if (!hasError) { + + jj_consume_token(NOT_T); + } + if (!hasError) { + +return "not"; + } + + break; + } + default: + jj_la1[137] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::mode() {Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T:{if (!hasError) { + + tok = jj_consume_token(IN_T); + } + if (!hasError) { + +return "in"; + } + + break; + } + case OUT_T:{if (!hasError) { + + tok = jj_consume_token(OUT_T); + } + if (!hasError) { + +return "out"; + } + + break; + } + case INOUT_T:{if (!hasError) { + + tok = jj_consume_token(INOUT_T); + } + if (!hasError) { + +return "inout"; + } + + break; + } + case BUFFER_T:{if (!hasError) { + + tok = jj_consume_token(BUFFER_T); + } + if (!hasError) { + +return "buffer"; + } + + break; + } + case LINKAGE_T:{if (!hasError) { + + tok = jj_consume_token(LINKAGE_T); + } + if (!hasError) { + +return "linkage"; + } + + break; + } + default: + jj_la1[138] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::multiplying_operation() {Token *tok; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case MULT_T:{if (!hasError) { + + tok = jj_consume_token(MULT_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case SLASH_T:{if (!hasError) { + + tok = jj_consume_token(SLASH_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case MOD_T:{if (!hasError) { + + tok = jj_consume_token(MOD_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + case REM_T:{if (!hasError) { + + tok = jj_consume_token(REM_T); + } + if (!hasError) { + +return tok->image.c_str(); + } + + break; + } + default: + jj_la1[139] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::name() {QCString s,s1;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case STRINGLITERAL:{if (!hasError) { + + s = operator_symbol(); + } + + break; + } + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + + break; + } + case SLSL_T:{if (!hasError) { + + s = external_name(); + } + + break; + } + default: + jj_la1[140] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + if (!hasError) { + + if (jj_2_45(2147483647)) {if (!hasError) { + + s1 = name_ext1(); + } + if (!hasError) { + +s+=s1; + } + + } else { + ; + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::name_ext1() {QCString s,s1,s2;if (!hasError) { + + s = name_ext(); + } + if (!hasError) { + + while (!hasError) { + if (jj_2_46(2147483647)) { + ; + } else { + goto end_label_28; + }if (!hasError) { + + s1 = name_ext(); + } + if (!hasError) { + +s+=s1; + } + + } + end_label_28: ; + } + +return s; +assert(false); + } + + +QCString VhdlParser::name_ext() {QCString s,s1,s2;if (!hasError) { + + if (jj_2_47(2147483647)) {if (!hasError) { + + jj_consume_token(DOT_T); + } + if (!hasError) { + + s1 = suffix(); + } + if (!hasError) { + +s+=".";s+=s1; + } + + } else if (jj_2_48(2147483647)) {if (!hasError) { + + s1 = test_att_name(); + } + if (!hasError) { + +s+=s1; + } + + } else if (jj_2_49(2147483647)) {if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = discrete_range(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+="(";s+=s1;s+=")"; + } + + } else if (jj_2_50(2147483647)) {if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + +s+="(";s+=s1; + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[141] = jj_gen; + goto end_label_29; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_29: ; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+=")"; + } + + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::test_att_name() {QCString s,s1;if (!hasError) { + + if (jj_2_51(2147483647)) {if (!hasError) { + + s1 = signature(); + } + if (!hasError) { + +s=s1; + } + + } else { + ; + } + } + if (!hasError) { + + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { + + s1 = attribute_designator(); + } + if (!hasError) { + +s+="'";s+=s1; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+="(";s+=s1;s+=")"; + } + + break; + } + default: + jj_la1[142] = jj_gen; + ; + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::indexed_name() {QCString s,s1,s2;if (!hasError) { + + s2 = identifier(); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + +s=s2+"("+s1; + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[143] = jj_gen; + goto end_label_30; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_30: ; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return s+")"; +assert(false); + } + + +QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + t = jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[144] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(NEXT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s1 = identifier(); + } + + break; + } + default: + jj_la1[145] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{if (!hasError) { + + t1 = jj_consume_token(WHEN_T); + } + if (!hasError) { + + s2 = condition(); + } + + break; + } + default: + jj_la1[146] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(t) s+=":"; + if(t1) s2.prepend("when "); + return s+s1+s2+";"; +assert(false); + } + + +QCString VhdlParser::null_statement() {QCString s;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + +s+=":"; + } + + break; + } + default: + jj_la1[147] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(NULL_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return s+="null"; +assert(false); + } + + +QCString VhdlParser::numeric_literal() {QCString s; + if (jj_2_52(2147483647)) {if (!hasError) { + + s = physical_literal(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INTEGER: + case DECIMAL_LITERAL: + case BASED_LITERAL:{if (!hasError) { + + s = abstract_literal(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[148] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::object_class() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONSTANT_T:{if (!hasError) { + + jj_consume_token(CONSTANT_T); + } + if (!hasError) { + +return "constant"; + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + jj_consume_token(SIGNAL_T); + } + if (!hasError) { + +return "signal"; + } + + break; + } + case VARIABLE_T:{if (!hasError) { + + jj_consume_token(VARIABLE_T); + } + if (!hasError) { + +return "variable"; + } + + break; + } + case SHARED_T:{if (!hasError) { + + jj_consume_token(SHARED_T); + } + if (!hasError) { + + jj_consume_token(VARIABLE_T); + } + if (!hasError) { + +return "shared variable"; + } + + break; + } + case FILE_T:{if (!hasError) { + + jj_consume_token(FILE_T); + } + if (!hasError) { + +return "file"; + } + + break; + } + case TYPE_T:{if (!hasError) { + + jj_consume_token(TYPE_T); + } + if (!hasError) { + +return "type"; + } + + break; + } + default: + jj_la1[149] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::operator_symbol() {Token *tok;if (!hasError) { + + tok = jj_consume_token(STRINGLITERAL); + } + +return tok->image.c_str(); +assert(false); + } + + +void VhdlParser::options() {if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GUARDED_T:{if (!hasError) { + + jj_consume_token(GUARDED_T); + } + + break; + } + default: + jj_la1[150] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{if (!hasError) { + + delay_mechanism(); + } + + break; + } + default: + jj_la1[151] = jj_gen; + ; + } + } + + } + + +void VhdlParser::package_body() {QCString s;if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + + jj_consume_token(BODY_T); + } + if (!hasError) { + + s = name(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +lastCompound=current; + s.prepend("_"); + addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected); + } + if (!hasError) { + + package_body_declarative_part(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + + jj_consume_token(BODY_T); + } + + break; + } + default: + jj_la1[152] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[153] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +lastCompound=0; genLabels.resize(0); + } + + +void VhdlParser::package_body_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + + break; + } + case TYPE_T:{if (!hasError) { + + type_declaration(); + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + subtype_declaration(); + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + constant_declaration(); + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + variable_declaration(); + } + + break; + } + case FILE_T:{if (!hasError) { + + file_declaration(); + } + + break; + } + case ALIAS_T:{if (!hasError) { + + alias_declaration(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[154] = jj_gen; + if (jj_2_53(3)) {if (!hasError) { + + group_template_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + group_declaration(); + } + + break; + } + default: + jj_la1[155] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + + +void VhdlParser::package_body_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[156] = jj_gen; + goto end_label_31; + }if (!hasError) { + + package_body_declarative_item(); + } + + } + end_label_31: ; + } + + } + + +void VhdlParser::package_declaration() {QCString s;if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +lastCompound=current; + Entry *clone=new Entry(*current); + clone->section=Entry::NAMESPACE_SEC; + clone->spec=VhdlDocGen::PACKAGE; + clone->name=s; + clone->startLine=getLine(); + clone->bodyLine=getLine(); + clone->protection=Package; + current_root->addSubEntry(clone); + addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package); + } + if (!hasError) { + + package_declarative_part(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + + break; + } + default: + jj_la1[157] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[158] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +lastEntity=0;lastCompound=0; genLabels.resize(0); + } + + +void VhdlParser::geninter() {if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + gen_interface_list(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + gen_assoc_list(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[159] = jj_gen; + ; + } + } + + break; + } + default: + jj_la1[160] = jj_gen; + ; + } + } + + } + + +void VhdlParser::package_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + + break; + } + case TYPE_T:{if (!hasError) { + + type_declaration(); + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + subtype_declaration(); + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + constant_declaration(); + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + signal_declaration(); + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + variable_declaration(); + } + + break; + } + case FILE_T:{if (!hasError) { + + file_declaration(); + } + + break; + } + case ALIAS_T:{if (!hasError) { + + alias_declaration(); + } + + break; + } + case COMPONENT_T:{if (!hasError) { + + component_declaration(); + } + + break; + } + default: + jj_la1[161] = jj_gen; + if (jj_2_54(2147483647)) {if (!hasError) { + + attribute_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{if (!hasError) { + + attribute_specification(); + } + + break; + } + case DISCONNECT_T:{if (!hasError) { + + disconnection_specification(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[162] = jj_gen; + if (jj_2_55(3)) {if (!hasError) { + + group_template_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + group_declaration(); + } + + break; + } + default: + jj_la1[163] = jj_gen; + if (jj_2_56(5)) {if (!hasError) { + + package_instantiation_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{if (!hasError) { + + package_declaration(); + } + + break; + } + default: + jj_la1[164] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } + } + } + } + + +void VhdlParser::package_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PACKAGE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[165] = jj_gen; + goto end_label_32; + }if (!hasError) { + + package_declarative_item(); + } + + } + end_label_32: ; + } + + } + + +QCString VhdlParser::parameter_specification() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IN_T); + } + if (!hasError) { + + s1 = discrete_range(); + } + +return s+" in "+s1; +assert(false); + } + + +QCString VhdlParser::physical_literal() {QCString s,s1;if (!hasError) { + + if (jj_2_57(2147483647)) {if (!hasError) { + + s = abstract_literal(); + } + + } else { + ; + } + } + if (!hasError) { + + s1 = name(); + } + +s+=" ";s+=s1;s.prepend(" "); return s; +assert(false); + } + + +QCString VhdlParser::physical_type_definition() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(UNITS_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[166] = jj_gen; + goto end_label_33; + }if (!hasError) { + + s1 = secondary_unit_declaration(); + } + if (!hasError) { + +s2+=s1;s2+="#"; + } + + } + end_label_33: ; + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(UNITS_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[167] = jj_gen; + ; + } + } + +current->args=s2; + current->args.prepend("units"); + current->spec=VhdlDocGen::UNITS; + return s2; +assert(false); + } + + +void VhdlParser::port_clause() {if (!hasError) { + + jj_consume_token(PORT_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + port_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +currP=0; + } + + +QCString VhdlParser::port_list() {QCString s;if (!hasError) { + + s = interface_list(); + } + +return s; +assert(false); + } + + +void VhdlParser::port_map_aspect() {if (!hasError) { + + jj_consume_token(PORT_T); + } + if (!hasError) { + + jj_consume_token(MAP_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + association_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + } + + +QCString VhdlParser::primary() {QCString s,s1; + if (jj_2_58(2147483647)) {if (!hasError) { + + s = function_call(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_59(2147483647)) {if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s="("+s1+")"; return s; + } + + } else if (jj_2_60(2147483647)) {if (!hasError) { + + s = qualified_expression(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_61(2147483647)) {if (!hasError) { + + s = type_conversion(); + } + if (!hasError) { + +return s; + } + + } else if (jj_2_62(2147483647)) {if (!hasError) { + + s = literal(); + } + if (!hasError) { + +s.prepend(" ");return s; + } + + } else if (jj_2_63(2147483647)) {if (!hasError) { + + s = name(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case NEW_T:{if (!hasError) { + + allocator(); + } + if (!hasError) { + +return ""; + } + + break; + } + case LPAREN_T:{if (!hasError) { + + s = aggregate(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[168] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +void VhdlParser::primary_unit() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ENTITY_T:{if (!hasError) { + + entity_declaration(); + } + + break; + } + case CONFIGURATION_T:{if (!hasError) { + + configuration_declaration(); + } + + break; + } + default: + jj_la1[169] = jj_gen; + if (jj_2_64(2147483647)) {if (!hasError) { + + package_instantiation_declaration(); + } + + } else if (jj_2_65(4)) {if (!hasError) { + + interface_package_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PACKAGE_T:{if (!hasError) { + + package_declaration(); + } + + break; + } + default: + jj_la1[170] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + + +QCString VhdlParser::procedure_call() {QCString s,s1;if (!hasError) { + + s = name(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = actual_parameter_part(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s1.prepend("("); s1.append(")"); + } + + break; + } + default: + jj_la1[171] = jj_gen; + ; + } + } + +return s+s1; +assert(false); + } + + +QCString VhdlParser::procedure_call_statement() {QCString s,s1;if (!hasError) { + + if (jj_2_66(2)) {if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + +s+=":"; + } + + } else { + ; + } + } + if (!hasError) { + + s1 = procedure_call(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return s+s1+";"; +assert(false); + } + + +QCString VhdlParser::process_declarative_item() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + if (!hasError) { + +return ""; + } + + break; + } + case TYPE_T:{if (!hasError) { + + s = type_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + s = subtype_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + s = constant_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + s = variable_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case FILE_T:{if (!hasError) { + + s = file_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case ALIAS_T:{if (!hasError) { + + s = alias_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[172] = jj_gen; + if (jj_2_67(3)) {if (!hasError) { + + s = attribute_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{if (!hasError) { + + s = attribute_specification(); + } + if (!hasError) { + +return s; + } + + break; + } + case USE_T:{if (!hasError) { + + s = use_clause(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[173] = jj_gen; + if (jj_2_68(3)) {if (!hasError) { + + s = group_template_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + s = group_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[174] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } +assert(false); + } + + +QCString VhdlParser::process_declarative_part() {QCString s,s1;if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[175] = jj_gen; + goto end_label_34; + }if (!hasError) { + + s1 = process_declarative_item(); + } + if (!hasError) { + +s+=s1; + } + + } + end_label_34: ; + } + +return s; +assert(false); + } + + +void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[176] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T:{if (!hasError) { + + jj_consume_token(POSTPONED_T); + } + + break; + } + default: + jj_la1[177] = jj_gen; + ; + } + } + if (!hasError) { + +currP=VhdlDocGen::PROCESS; + current->startLine=getLine(); + current->bodyLine=getLine(); + } + if (!hasError) { + + jj_consume_token(PROCESS_T); + } + if (!hasError) { + + try {if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALL_T:{if (!hasError) { + + tok = jj_consume_token(ALL_T); + } + + break; + } + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s1 = sensitivity_list(); + } + + break; + } + default: + jj_la1[178] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + break; + } + default: + jj_la1[179] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{if (!hasError) { + + jj_consume_token(IS_T); + } + + break; + } + default: + jj_la1[180] = jj_gen; + ; + } + } + if (!hasError) { + + s2 = process_declarative_part(); + } + if (!hasError) { + +if (s2.data()) + FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s2.data(),0); + FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0); + } + if (!hasError) { + + jj_consume_token(BEGIN_T); + } + if (!hasError) { + + process_statement_part(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T:{if (!hasError) { + + jj_consume_token(POSTPONED_T); + } + + break; + } + default: + jj_la1[181] = jj_gen; + ; + } + } + + } catch ( ...) { +error_skipto(PROCESS_T); + } + } + if (!hasError) { + + jj_consume_token(PROCESS_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[182] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(s.isEmpty()) + currName=VhdlDocGen::getProcessNumber(); + else + currName=s; + + current->name=currName; + tempEntry=current; + current->endBodyLine=getLine(); + currP=0; + if(tok) + s1=tok->image.data(); + createFunction(currName,VhdlDocGen::PROCESS,s1.data()); + createFlow(); + currName=""; + newEntry(); + } + + +void VhdlParser::process_statement_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case CASE_T: + case EXIT_T: + case FOR_T: + case IF_T: + case LOOP_T: + case NEXT_T: + case NULL_T: + case REPORT_T: + case RETURN_T: + case WAIT_T: + case WHILE_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[183] = jj_gen; + goto end_label_35; + }if (!hasError) { + + sequential_statement(); + } + + } + end_label_35: ; + } + + } + + +QCString VhdlParser::qualified_expression() {QCString s,s1;if (!hasError) { + + s1 = identifier(); + } + if (!hasError) { + + jj_consume_token(APOSTROPHE_T); + } + if (!hasError) { + +s=s1+"'"; + } + if (!hasError) { + + if (jj_2_69(2147483647)) {if (!hasError) { + + s1 = aggregate(); + } + if (!hasError) { + +s+=s1; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +s+="(";s+=s1;s+=")"; + } + + break; + } + default: + jj_la1[184] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + +return s; +assert(false); + } + + +QCString VhdlParser::range() {QCString s,s1,s2; + if (jj_2_70(2147483647)) {if (!hasError) { + + s = simple_expression(); + } + if (!hasError) { + + s1 = direction(); + } + if (!hasError) { + + s2 = simple_expression(); + } + if (!hasError) { + +return s+" "+s1+" "+s2; + } + + } else if (jj_2_71(2147483647)) {if (!hasError) { + + s = attribute_name(); + } + if (!hasError) { + +return s; + } + + } else { + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::range_constraint() {QCString s,s1;if (!hasError) { + + jj_consume_token(RANGE_T); + } + if (!hasError) { + + s = range(); + } + +return " range "+s; +assert(false); + } + + +void VhdlParser::record_type_definition() {if (!hasError) { + + jj_consume_token(RECORD_T); + } + if (!hasError) { + + try {if (!hasError) { + + while (!hasError) {if (!hasError) { + + element_declaration(); + } + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[185] = jj_gen; + goto end_label_36; + } + } + end_label_36: ; + } + + } catch ( ...) { +error_skipto(END_T); + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(RECORD_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[186] = jj_gen; + ; + } + } + + } + + +QCString VhdlParser::relation() {QCString s,s1,s2;if (!hasError) { + + s = shift_expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LESSTHAN_T: + case GREATERTHAN_T: + case LT_T: + case GT_T: + case EQU_T: + case NOTEQU_T:{if (!hasError) { + + s1 = relation_operator(); + } + if (!hasError) { + + s2 = shift_expression(); + } + + break; + } + default: + jj_la1[187] = jj_gen; + ; + } + } + +return s+s1+s2; +assert(false); + } + + +QCString VhdlParser::relation_operator() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LT_T:{if (!hasError) { + + jj_consume_token(LT_T); + } + if (!hasError) { + +return "<"; + } + + break; + } + case GT_T:{if (!hasError) { + + jj_consume_token(GT_T); + } + if (!hasError) { + +return ">"; + } + + break; + } + case EQU_T:{if (!hasError) { + + jj_consume_token(EQU_T); + } + if (!hasError) { + +return "="; + } + + break; + } + case GREATERTHAN_T:{if (!hasError) { + + jj_consume_token(GREATERTHAN_T); + } + if (!hasError) { + +return ">="; + } + + break; + } + case LESSTHAN_T:{if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + +return "<="; + } + + break; + } + case NOTEQU_T:{if (!hasError) { + + jj_consume_token(NOTEQU_T); + } + if (!hasError) { + +return "/="; + } + + break; + } + default: + jj_la1[188] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + t = jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[189] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(REPORT_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SEVERITY_T:{if (!hasError) { + + t1 = jj_consume_token(SEVERITY_T); + } + if (!hasError) { + + s2 = expression(); + } + + break; + } + default: + jj_la1[190] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(t) s.append(":"); + s1.prepend(" report "); + if(t1) s2.prepend(" severity "); + return s+s1+s2+";"; +assert(false); + } + + +QCString VhdlParser::return_statement() {QCString s,s1;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + +s+=":"; + } + + break; + } + default: + jj_la1[191] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(RETURN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ABS_T: + case NEW_T: + case NOT_T: + case NULL_T: + case LPAREN_T: + case PLUS_T: + case MINUS_T: + case SLSL_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{if (!hasError) { + + s1 = expression(); + } + + break; + } + default: + jj_la1[192] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return s+" return "+s1+";"; +assert(false); + } + + +QCString VhdlParser::scalar_type_definition() {QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + s = enumeration_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + case RANGE_T:{if (!hasError) { + + s = range_constraint(); + } + if (!hasError) { + + if (jj_2_72(2147483647)) {if (!hasError) { + + s1 = physical_type_definition(); + } + + } else { + ; + } + } + if (!hasError) { + +s+=" ";s+=s1;return s; + } + + break; + } + default: + jj_la1[193] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::secondary_unit() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ARCHITECTURE_T:{if (!hasError) { + + architecture_body(); + } + + break; + } + case PACKAGE_T:{if (!hasError) { + + package_body(); + } + + break; + } + default: + jj_la1[194] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(EQU_T); + } + if (!hasError) { + + s1 = physical_literal(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return s+"="+s1; +assert(false); + } + + +QCString VhdlParser::selected_name() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(DOT_T); + } + if (!hasError) { + + s1 = suffix(); + } + +return s+"."+s1; +assert(false); + } + + +void VhdlParser::selected_signal_assignment() {if (!hasError) { + + jj_consume_token(WITH_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(SELECT_T); + } + if (!hasError) { + + target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + options(); + } + if (!hasError) { + + selected_waveforms(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::selected_waveforms() {if (!hasError) { + + waveform(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + choices(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[195] = jj_gen; + goto end_label_37; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + waveform(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + choices(); + } + + } + end_label_37: ; + } + + } + + +QCString VhdlParser::sensitivity_clause() {QCString s;if (!hasError) { + + jj_consume_token(ON_T); + } + if (!hasError) { + + s = sensitivity_list(); + } + +s.prepend(" on "); + return s; +assert(false); + } + + +QCString VhdlParser::sensitivity_list() {QCString s,s1;if (!hasError) { + + s = name(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[196] = jj_gen; + goto end_label_38; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_38: ; + } + +return s; +assert(false); + } + + +void VhdlParser::sequence_of_statement() {if (!hasError) { + + while (!hasError) { + if (jj_2_73(3)) { + ; + } else { + goto end_label_39; + }if (!hasError) { + + sequential_statement(); + } + + } + end_label_39: ; + } + + } + + +void VhdlParser::sequential_statement() {QCString s; + if (jj_2_74(2147483647)) {if (!hasError) { + + s = signal_assignment_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + } else if (jj_2_75(3)) {if (!hasError) { + + s = assertion_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + } else if (jj_2_76(3)) {if (!hasError) { + + s = report_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + } else if (jj_2_77(3)) {if (!hasError) { + + s = wait_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + } else if (jj_2_78(2147483647)) {if (!hasError) { + + s = variable_assignment_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + } else if (jj_2_79(3)) {if (!hasError) { + + s = procedure_call_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + } else if (jj_2_80(3)) {if (!hasError) { + + if_statement(); + } + + } else if (jj_2_81(3)) {if (!hasError) { + + case_statement(); + } + + } else if (jj_2_82(3)) {if (!hasError) { + + loop_statement(); + } + + } else if (jj_2_83(3)) {if (!hasError) { + + s = next_statement(); + } + + } else if (jj_2_84(3)) {if (!hasError) { + + s = exit_statement(); + } + + } else if (jj_2_85(3)) {if (!hasError) { + + s = return_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::RETURN_NO,s.data(),0); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case NULL_T: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = null_statement(); + } + if (!hasError) { + +FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); + } + + break; + } + default: + jj_la1[197] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +QCString VhdlParser::shift_expression() {QCString s,s1,s2;if (!hasError) { + + s = simple_expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ROL_T: + case ROR_T: + case SLA_T: + case SLL_T: + case SRA_T: + case SRL_T:{if (!hasError) { + + s1 = shift_operator(); + } + if (!hasError) { + + s2 = simple_expression(); + } + + break; + } + default: + jj_la1[198] = jj_gen; + ; + } + } + +return s+s1+s2; +assert(false); + } + + +QCString VhdlParser::shift_operator() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLL_T:{if (!hasError) { + + jj_consume_token(SLL_T); + } + if (!hasError) { + +return "sll"; + } + + break; + } + case SRL_T:{if (!hasError) { + + jj_consume_token(SRL_T); + } + if (!hasError) { + +return "srl"; + } + + break; + } + case SLA_T:{if (!hasError) { + + jj_consume_token(SLA_T); + } + if (!hasError) { + +return "sla"; + } + + break; + } + case SRA_T:{if (!hasError) { + + jj_consume_token(SRA_T); + } + if (!hasError) { + +return "sra"; + } + + break; + } + case ROL_T:{if (!hasError) { + + jj_consume_token(ROL_T); + } + if (!hasError) { + +return "rol"; + } + + break; + } + case ROR_T:{if (!hasError) { + + jj_consume_token(ROR_T); + } + if (!hasError) { + +return "ror"; + } + + break; + } + default: + jj_la1[199] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::sign() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PLUS_T:{if (!hasError) { + + jj_consume_token(PLUS_T); + } + if (!hasError) { + +return "+"; + } + + break; + } + case MINUS_T:{if (!hasError) { + + jj_consume_token(MINUS_T); + } + if (!hasError) { + +return "-"; + } + + break; + } + default: + jj_la1[200] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3; + if (jj_2_87(2147483647)) {if (!hasError) { + + conditional_signal_assignment_wave(); + } + if (!hasError) { + +return ""; + } + + } else if (jj_2_88(2147483647)) {if (!hasError) { + + selected_signal_assignment_wave(); + } + if (!hasError) { + +return ""; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + if (jj_2_86(2)) {if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + +s+=":"; + } + + } else { + ; + } + } + if (!hasError) { + + s1 = target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{if (!hasError) { + + s2 = delay_mechanism(); + } + + break; + } + default: + jj_la1[201] = jj_gen; + ; + } + } + if (!hasError) { + + s3 = waveform(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + if (!hasError) { + +return s+s1+"<="+s2+s3+";"; + } + + break; + } + default: + jj_la1[202] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +void VhdlParser::semi() {if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::signal_declaration() {QCString s,s1,s2,s3,s4;if (!hasError) { + + jj_consume_token(SIGNAL_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BUS_T: + case REGISTER_T:{if (!hasError) { + + s2 = signal_kind(); + } + + break; + } + default: + jj_la1[203] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{if (!hasError) { + + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + + s3 = expression(); + } + + break; + } + default: + jj_la1[204] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +s4=s1+s2+s3; + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public); + } + + +QCString VhdlParser::signal_kind() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case REGISTER_T:{if (!hasError) { + + jj_consume_token(REGISTER_T); + } + if (!hasError) { + +return "register"; + } + + break; + } + case BUS_T:{if (!hasError) { + + jj_consume_token(BUS_T); + } + if (!hasError) { + +return "bus"; + } + + break; + } + default: + jj_la1[205] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::signal_list() {QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[206] = jj_gen; + goto end_label_40; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_40: ; + } + + break; + } + case OTHER_T:{if (!hasError) { + + jj_consume_token(OTHER_T); + } + if (!hasError) { + +return "other"; + } + + break; + } + case ALL_T:{if (!hasError) { + + jj_consume_token(ALL_T); + } + if (!hasError) { + +return "all"; + } + + break; + } + default: + jj_la1[207] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::signature() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(LBRACKET_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[208] = jj_gen; + goto end_label_41; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_41: ; + } + + break; + } + default: + jj_la1[209] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case RETURN_T:{if (!hasError) { + + jj_consume_token(RETURN_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + +s+="return ";s+=s1; + } + + break; + } + default: + jj_la1[210] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(RBRACKET_T); + } + +s1="["+s+"]";return s1; +assert(false); + } + + +QCString VhdlParser::simple_expression() {QCString s,s1,s2;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PLUS_T: + case MINUS_T:{if (!hasError) { + + s = sign(); + } + + break; + } + default: + jj_la1[211] = jj_gen; + ; + } + } + if (!hasError) { + + s1 = term(); + } + if (!hasError) { + +s+=s1; + } + if (!hasError) { + + while (!hasError) { + if (jj_2_89(2147483647)) { + ; + } else { + goto end_label_42; + }if (!hasError) { + + s1 = adding_operator(); + } + if (!hasError) { + + s2 = term(); + } + if (!hasError) { + +s+=s1;s+=s2; + } + + } + end_label_42: ; + } + +return s; +assert(false); + } + + +void VhdlParser::simple_name() {if (!hasError) { + + name(); + } + + } + + +QCString VhdlParser::slice_name() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = discrete_range(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return s+"("+s1+")"; +assert(false); + } + + +QCString VhdlParser::string_literal() {Token *tok;if (!hasError) { + + tok = jj_consume_token(STRINGLITERAL); + } + +return tok->image.c_str(); +assert(false); + } + + +void VhdlParser::subprogram_body() {QCString s;if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + try {if (!hasError) { + + s = subprogram_declarative_part(); + } + if (!hasError) { + +if (s.data()) + { + FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s,0); + } + FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0); + } + + } catch ( ...) { +error_skipto(BEGIN_T); + } + } + if (!hasError) { + + jj_consume_token(BEGIN_T); + } + if (!hasError) { + + subprogram_statement_part(); + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case PROCEDURE_T:{if (!hasError) { + + subprogram_kind(); + } + + break; + } + default: + jj_la1[212] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + designator(); + } + + break; + } + default: + jj_la1[213] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +tempEntry->endBodyLine=getLine(END_T); + createFlow(); + currP=0; + } + + +void VhdlParser::subprogram_declaration() { + if (jj_2_90(2147483647)) {if (!hasError) { + + subprogram_instantiation_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_specification(); + } + if (!hasError) { + + subprogram_1(); + } + if (!hasError) { + +currP=0; + } + + break; + } + default: + jj_la1[214] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::subprogram_1() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{if (!hasError) { + + subprogram_body(); + } + + break; + } + case SEMI_T:{if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[215] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +QCString VhdlParser::subprogram_declarative_item() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + if (!hasError) { + +return ""; + } + + break; + } + case TYPE_T:{if (!hasError) { + + s = type_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case IS_T:{if (!hasError) { + + subprogram_body(); + } + if (!hasError) { + +return ""; + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + s = subtype_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + s = constant_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + s = variable_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case FILE_T:{if (!hasError) { + + s = file_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + case ALIAS_T:{if (!hasError) { + + s = alias_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[216] = jj_gen; + if (jj_2_91(2147483647)) {if (!hasError) { + + s = attribute_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{if (!hasError) { + + s = attribute_specification(); + } + if (!hasError) { + +return s; + } + + break; + } + case USE_T:{if (!hasError) { + + s = use_clause(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[217] = jj_gen; + if (jj_2_92(3)) {if (!hasError) { + + s = group_template_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + s = group_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[218] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } +assert(false); + } + + +QCString VhdlParser::subprogram_declarative_part() {QCString s,s1;if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case IS_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[219] = jj_gen; + goto end_label_43; + }if (!hasError) { + + s1 = subprogram_declarative_item(); + } + if (!hasError) { + +s+=s1; + } + + } + end_label_43: ; + } + +return s; +assert(false); + } + + +void VhdlParser::subprogram_kind() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T:{if (!hasError) { + + jj_consume_token(FUNCTION_T); + } + + break; + } + case PROCEDURE_T:{if (!hasError) { + + jj_consume_token(PROCEDURE_T); + } + + break; + } + default: + jj_la1[220] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PROCEDURE_T:{if (!hasError) { + + jj_consume_token(PROCEDURE_T); + } + if (!hasError) { + + s = designator(); + } + if (!hasError) { + +currP=VhdlDocGen::PROCEDURE; + createFunction(s.data(),currP,0); + tempEntry=current; + current->startLine=getLine(PROCEDURE_T); + current->bodyLine=getLine(PROCEDURE_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + +param_sec=PARAM_SEC; + } + if (!hasError) { + + interface_list(); + } + if (!hasError) { + +param_sec=0; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + break; + } + default: + jj_la1[221] = jj_gen; + ; + } + } + if (!hasError) { + + if (jj_2_93(2)) {if (!hasError) { + + gen_interface_list(); + } + + } else { + ; + } + } + if (!hasError) { + + if (jj_2_94(2)) {if (!hasError) { + + gen_assoc_list(); + } + + } else { + ; + } + } + if (!hasError) { + + param(); + } + if (!hasError) { + +newEntry(); + } + + break; + } + case FUNCTION_T: + case IMPURE_T: + case PURE_T:{if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IMPURE_T: + case PURE_T:{if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PURE_T:{if (!hasError) { + + tok = jj_consume_token(PURE_T); + } + + break; + } + case IMPURE_T:{if (!hasError) { + + tok = jj_consume_token(IMPURE_T); + } + + break; + } + default: + jj_la1[222] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + break; + } + default: + jj_la1[223] = jj_gen; + ; + } + } + if (!hasError) { + + t = jj_consume_token(FUNCTION_T); + } + if (!hasError) { + + s = designator(); + } + if (!hasError) { + +currP=VhdlDocGen::FUNCTION; + if(tok) + createFunction(tok->image.c_str(),currP,s.data()); + else + createFunction(0,currP,s.data()); + tempEntry=current; + current->startLine=getLine(FUNCTION_T); + current->bodyLine=getLine(FUNCTION_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + +param_sec=PARAM_SEC; + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + formal_parameter_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + +param_sec=0; + } + + break; + } + default: + jj_la1[224] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(RETURN_T); + } + if (!hasError) { + + s = type_mark(); + } + if (!hasError) { + +tempEntry=current; + current->type=s; + newEntry(); + } + + break; + } + default: + jj_la1[225] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::subprogram_statement_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case CASE_T: + case EXIT_T: + case FOR_T: + case IF_T: + case LOOP_T: + case NEXT_T: + case NULL_T: + case REPORT_T: + case RETURN_T: + case WAIT_T: + case WHILE_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[226] = jj_gen; + goto end_label_44; + }if (!hasError) { + + sequential_statement(); + } + + } + end_label_44: ; + } + + } + + +QCString VhdlParser::subtype_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(SUBTYPE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public); + return " subtype "+s+" is "+s1+";"; +assert(false); + } + + +QCString VhdlParser::subtype_indication() {QCString s,s1,s2;if (!hasError) { + + s = name(); + } + if (!hasError) { + + if (jj_2_95(2147483647)) {if (!hasError) { + + s1 = name(); + } + + } else { + ; + } + } + if (!hasError) { + + if (jj_2_96(2147483647)) {if (!hasError) { + + s2 = constraint(); + } + + } else { + ; + } + } + +return s+" "+s1+" "+s2; +assert(false); + } + + +QCString VhdlParser::suffix() {QCString s; + if (jj_2_97(2147483647)) {if (!hasError) { + + s = name(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CHARACTER_LITERAL:{if (!hasError) { + + s = character_literal(); + } + if (!hasError) { + +return s; + } + + break; + } + case STRINGLITERAL:{if (!hasError) { + + s = operator_symbol(); + } + if (!hasError) { + +return s; + } + + break; + } + case ALL_T:{if (!hasError) { + + jj_consume_token(ALL_T); + } + if (!hasError) { + +return " all "; + } + + break; + } + default: + jj_la1[227] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::target() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = name(); + } + if (!hasError) { + +return s; + } + + break; + } + case LPAREN_T:{if (!hasError) { + + s = aggregate(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[228] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::term() {QCString s,s1,s2;if (!hasError) { + + s = factor(); + } + if (!hasError) { + + while (!hasError) { + if (jj_2_98(2)) { + ; + } else { + goto end_label_45; + }if (!hasError) { + + s1 = multiplying_operation(); + } + if (!hasError) { + + s2 = factor(); + } + if (!hasError) { + +s+=s1;s+=s2; + } + + } + end_label_45: ; + } + +return s; +assert(false); + } + + +QCString VhdlParser::timeout_clause() {QCString s;if (!hasError) { + + jj_consume_token(FOR_T); + } + if (!hasError) { + + s = expression(); + } + +return " for "+s; +assert(false); + } + + +QCString VhdlParser::type_conversion() {QCString s,s1;if (!hasError) { + + s = name(); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + +return s+"("+s1+")"; +assert(false); + } + + +QCString VhdlParser::type_declaration() {QCString s; + if (jj_2_99(3)) {if (!hasError) { + + s = full_type_declaration(); + } + if (!hasError) { + +return s; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case TYPE_T:{if (!hasError) { + + s = incomplete_type_declaration(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[229] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::type_definition() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case RANGE_T: + case LPAREN_T:{if (!hasError) { + + //try{ + s = scalar_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + case ARRAY_T: + case RECORD_T:{if (!hasError) { + + s = composite_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + case ACCESS_T:{if (!hasError) { + + s = access_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + case FILE_T:{if (!hasError) { + + s = file_type_definition(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[230] = jj_gen; + if (jj_2_100(2)) {if (!hasError) { + + protected_type_body(); + } + if (!hasError) { + +return ""; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PROTECTED_T:{if (!hasError) { + + protected_type_declaration(); + } + if (!hasError) { + +return ""; + } + + break; + } + default: + jj_la1[231] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } +assert(false); + } + + +QCString VhdlParser::type_mark() {QCString s;if (!hasError) { + + s = name(); + } + +return s; +assert(false); + } + + +QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3;if (!hasError) { + + jj_consume_token(ARRAY_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s = index_subtype_definition(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[232] = jj_gen; + goto end_label_46; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = index_subtype_definition(); + } + if (!hasError) { + +s3+=",";s3+=s1; + } + + } + end_label_46: ; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + if (!hasError) { + + jj_consume_token(OF_T); + } + if (!hasError) { + + s2 = subtype_indication(); + } + +return "array("+s+s3+") of "+s2; +assert(false); + } + + +QCString VhdlParser::use_clause() {QCString s,s1;if (!hasError) { + + jj_consume_token(USE_T); + } + if (!hasError) { + + s = selected_name(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[233] = jj_gen; + goto end_label_47; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = selected_name(); + } + if (!hasError) { + +s+=",";s+=s1; + } + + } + end_label_47: ; + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +QStringList ql1=QStringList::split(",",s,FALSE); + for (uint j=0;j<ql1.count();j++) + { + QCString it=ql1[j].utf8(); + if ( parse_sec==0 && Config_getBool("SHOW_INCLUDE_FILES") ) + { + ::vhdl::parser::VhdlParser::addVhdlType(it.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::USE,it.data(),"_use_",Public); + } + } + s1="use "+s; + return s1; +assert(false); + } + + +QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + if (jj_2_101(2)) {if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + +s+=":"; + } + + } else { + ; + } + } + if (!hasError) { + + s1 = target(); + } + if (!hasError) { + + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + + s2 = expression(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + if (!hasError) { + +return s+s1+":="+s2+";"; + } + + break; + } + case WITH_T:{if (!hasError) { + + selected_variable_assignment(); + } + if (!hasError) { + +return ""; + } + + break; + } + default: + jj_la1[234] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::variable_declaration() {Token *tok=0;QCString s,s1,s2;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SHARED_T:{if (!hasError) { + + tok = jj_consume_token(SHARED_T); + } + + break; + } + default: + jj_la1[235] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(VARIABLE_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s1 = subtype_indication(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case VARASSIGN_T:{if (!hasError) { + + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + + s2 = expression(); + } + + break; + } + default: + jj_la1[236] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +int spec; + QCString val=" variable "+s+":"+s1+":="+s2+";"; + QCString it=s1+" "+s2; + if(tok != 0) + { + it.prepend(" shared "); + val.prepend(" shared"); + spec=VhdlDocGen::SHAREDVARIABLE; + } + else + spec=VhdlDocGen::SHAREDVARIABLE; + + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public); + return val; +assert(false); + } + + +QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + break; + } + default: + jj_la1[237] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(WAIT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ON_T:{if (!hasError) { + + s1 = sensitivity_clause(); + } + + break; + } + default: + jj_la1[238] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case UNTIL_T:{if (!hasError) { + + s2 = condition_clause(); + } + + break; + } + default: + jj_la1[239] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FOR_T:{if (!hasError) { + + s3 = timeout_clause(); + } + + break; + } + default: + jj_la1[240] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +if(t) s.append(":"); + return s+" wait "+s1+s2+s3+";"; +assert(false); + } + + +QCString VhdlParser::waveform() {QCString s,s1; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ABS_T: + case NEW_T: + case NOT_T: + case NULL_T: + case LPAREN_T: + case PLUS_T: + case MINUS_T: + case SLSL_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{if (!hasError) { + + s = waveform_element(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[241] = jj_gen; + goto end_label_48; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + s1 = waveform_element(); + } + if (!hasError) { + +s+=","; s+=s1; + } + + } + end_label_48: ; + } + if (!hasError) { + +return s; + } + + break; + } + case UNAFFECTED_T:{if (!hasError) { + + jj_consume_token(UNAFFECTED_T); + } + if (!hasError) { + +return " unaffected "; + } + + break; + } + default: + jj_la1[242] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::waveform_element() {QCString s,s1;if (!hasError) { + + s = expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case AFTER_T:{if (!hasError) { + + jj_consume_token(AFTER_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + +s1.prepend(" after "); + } + + break; + } + default: + jj_la1[243] = jj_gen; + ; + } + } + +return s+s1; +assert(false); + } + + +QCString VhdlParser::protected_type_body() {if (!hasError) { + + try {if (!hasError) { + + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + + jj_consume_token(BODY_T); + } + if (!hasError) { + + protected_type_body_declarative_part(); + } + + } catch ( ...) { +error_skipto(END_T); + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + + jj_consume_token(BODY_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[244] = jj_gen; + ; + } + } + +return ""; +assert(false); + } + + +void VhdlParser::protected_type_body_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + + break; + } + case IS_T:{if (!hasError) { + + subprogram_body(); + } + + break; + } + case TYPE_T:{if (!hasError) { + + type_declaration(); + } + + break; + } + case SUBTYPE_T:{if (!hasError) { + + subtype_declaration(); + } + + break; + } + case CONSTANT_T:{if (!hasError) { + + constant_declaration(); + } + + break; + } + case SHARED_T: + case VARIABLE_T:{if (!hasError) { + + variable_declaration(); + } + + break; + } + case FILE_T:{if (!hasError) { + + file_declaration(); + } + + break; + } + case ALIAS_T:{if (!hasError) { + + alias_declaration(); + } + + break; + } + default: + jj_la1[245] = jj_gen; + if (jj_2_102(2147483647)) {if (!hasError) { + + attribute_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T:{if (!hasError) { + + attribute_specification(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[246] = jj_gen; + if (jj_2_103(3)) {if (!hasError) { + + group_template_declaration(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GROUP_T:{if (!hasError) { + + group_declaration(); + } + + break; + } + default: + jj_la1[247] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + } + } + } + + +void VhdlParser::protected_type_body_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case CONSTANT_T: + case FILE_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case IS_T: + case PROCEDURE_T: + case PURE_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{ + ; + break; + } + default: + jj_la1[248] = jj_gen; + goto end_label_49; + }if (!hasError) { + + protected_type_body_declarative_item(); + } + + } + end_label_49: ; + } + + } + + +QCString VhdlParser::protected_type_declaration() {if (!hasError) { + + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + + try {if (!hasError) { + + protected_type_declarative_part(); + } + + } catch ( ...) { +error_skipto(END_T); + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(PROTECTED_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[249] = jj_gen; + ; + } + } + +return ""; +assert(false); + } + + +void VhdlParser::protected_type_declarative_item() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_specification(); + } + + break; + } + case ATTRIBUTE_T:{if (!hasError) { + + attribute_specification(); + } + + break; + } + case USE_T:{if (!hasError) { + + use_clause(); + } + + break; + } + default: + jj_la1[250] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::protected_type_declarative_part() {if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ATTRIBUTE_T: + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case USE_T:{ + ; + break; + } + default: + jj_la1[251] = jj_gen; + goto end_label_50; + }if (!hasError) { + + protected_type_declarative_item(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + end_label_50: ; + } + + } + + +QCString VhdlParser::context_ref() {QCString s;if (!hasError) { + + jj_consume_token(CONTEXT_T); + } + if (!hasError) { + + s = identifier_list(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +return "context "+s ; +assert(false); + } + + +void VhdlParser::context_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(CONTEXT_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + +parse_sec=CONTEXT_SEC; + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONTEXT_T: + case LIBRARY_T: + case USE_T:{ + ; + break; + } + default: + jj_la1[252] = jj_gen; + goto end_label_51; + }if (!hasError) { + + s1 = libustcont_stats(); + } + + } + end_label_51: ; + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONTEXT_T:{if (!hasError) { + + jj_consume_token(CONTEXT_T); + } + + break; + } + default: + jj_la1[253] = jj_gen; + ; + } + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[254] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +parse_sec=0; + addVhdlType(s.data(),getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public); + } + + +QCString VhdlParser::libustcont_stats() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case USE_T:{if (!hasError) { + + s = use_clause(); + } + if (!hasError) { + +return s; + } + + break; + } + case LIBRARY_T:{if (!hasError) { + + s = library_clause(); + } + if (!hasError) { + +return s; + } + + break; + } + case CONTEXT_T:{if (!hasError) { + + s = context_ref(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[255] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + jj_consume_token(NEW_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + + s2 = signature(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + gen_assoc_list(); + } + + break; + } + default: + jj_la1[256] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +QCString q=" is new "+s1+s2; + addVhdlType(s.data(),getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public); + } + + +QCString VhdlParser::interface_package_declaration() {QCString s,s1;if (!hasError) { + + jj_consume_token(PACKAGE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + jj_consume_token(NEW_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + gen_assoc_list(); + } + + break; + } + default: + jj_la1[257] = jj_gen; + ; + } + } + +current->name=s; + return "package "+s+" is new "+s1; +assert(false); + } + + +QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(FUNCTION_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + jj_consume_token(IS_T); + } + if (!hasError) { + + jj_consume_token(NEW_T); + } + if (!hasError) { + + s1 = name(); + } + if (!hasError) { + + s2 = signature(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case GENERIC_T:{if (!hasError) { + + gen_assoc_list(); + } + + break; + } + default: + jj_la1[258] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + +QCString q= " is new "+s1+s2; + addVhdlType(s.data(),getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public); + return q; +assert(false); + } + + +void VhdlParser::gen_assoc_list() {if (!hasError) { + + jj_consume_token(GENERIC_T); + } + if (!hasError) { + + jj_consume_token(MAP_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + association_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + } + + +void VhdlParser::gen_interface_list() {if (!hasError) { + + jj_consume_token(GENERIC_T); + } + if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + +//int u=s_str.iLine; + parse_sec=GEN_SEC; + } + if (!hasError) { + + interface_list(); + } + if (!hasError) { + +// QCString vo=$3; + parse_sec=0; + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + } + + +void VhdlParser::case_scheme() {if (!hasError) { + + jj_consume_token(CASE_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(GENERATE_T); + } + if (!hasError) { + + when_stats(); + } + if (!hasError) { + + if (jj_2_104(3)) {if (!hasError) { + + ttend(); + } + + } else { + ; + } + } + if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + jj_consume_token(GENERATE_T); + } + if (!hasError) { + + generate_statement_body(); + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::when_stats() {if (!hasError) { + + while (!hasError) {if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + if (jj_2_105(2)) {if (!hasError) { + + label(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + + } else { + ; + } + } + if (!hasError) { + + choices(); + } + if (!hasError) { + + jj_consume_token(ARROW_T); + } + if (!hasError) { + + generate_statement_body(); + } + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{ + ; + break; + } + default: + jj_la1[259] = jj_gen; + goto end_label_52; + } + } + end_label_52: ; + } + + } + + +void VhdlParser::ttend() {if (!hasError) { + + jj_consume_token(END_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + identifier(); + } + + break; + } + default: + jj_la1[260] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::generate_statement_body() {if (!hasError) { + + jj_consume_token(BEGIN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ALIAS_T: + case ATTRIBUTE_T: + case BEGIN_T: + case COMPONENT_T: + case CONSTANT_T: + case DISCONNECT_T: + case FILE_T: + case FOR_T: + case FUNCTION_T: + case GROUP_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T: + case SIGNAL_T: + case SHARED_T: + case SUBTYPE_T: + case TYPE_T: + case USE_T: + case VARIABLE_T:{if (!hasError) { + + block_declarative_part(); + } + if (!hasError) { + + jj_consume_token(BEGIN_T); + } + + break; + } + default: + jj_la1[261] = jj_gen; + ; + } + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ASSERT_T: + case CASE_T: + case POSTPONED_T: + case PROCESS_T: + case WITH_T: + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{ + ; + break; + } + default: + jj_la1[262] = jj_gen; + goto end_label_53; + }if (!hasError) { + + concurrent_statement(); + } + + } + end_label_53: ; + } + + } + + +QCString VhdlParser::external_name() {QCString s,s1,s2;if (!hasError) { + + jj_consume_token(SLSL_T); + } + if (!hasError) { + + s = sig_stat(); + } + if (!hasError) { + + s1 = external_pathname(); + } + if (!hasError) { + + jj_consume_token(COLON_T); + } + if (!hasError) { + + s2 = subtype_indication(); + } + if (!hasError) { + + jj_consume_token(RSRS_T); + } + +QCString t="<<"+s; + QCString t1=s1+":"+s2+">>"; + return s+s1; +assert(false); + } + + +QCString VhdlParser::sig_stat() {Token *t; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case CONSTANT_T:{if (!hasError) { + + t = jj_consume_token(CONSTANT_T); + } + if (!hasError) { + +return t->image.data(); + } + + break; + } + case SIGNAL_T:{if (!hasError) { + + t = jj_consume_token(SIGNAL_T); + } + if (!hasError) { + +return t->image.data(); + } + + break; + } + case VARIABLE_T:{if (!hasError) { + + t = jj_consume_token(VARIABLE_T); + } + if (!hasError) { + +return t->image.data(); + } + + break; + } + default: + jj_la1[263] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::external_pathname() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOT_T:{if (!hasError) { + + s = absolute_pathname(); + } + if (!hasError) { + +return s; + } + + break; + } + case NEG_T:{if (!hasError) { + + s = relative_pathname(); + } + if (!hasError) { + +return s; + } + + break; + } + case AT_T:{if (!hasError) { + + s = package_path_name(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[264] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::absolute_pathname() {QCString s,s1; + if (jj_2_106(2147483647)) {if (!hasError) { + + jj_consume_token(DOT_T); + } + if (!hasError) { + + s = pathname_element_list(); + } + if (!hasError) { + + s1 = identifier(); + } + if (!hasError) { + +return "."+s+s1; + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case DOT_T:{if (!hasError) { + + jj_consume_token(DOT_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + +return "."+s; + } + + break; + } + default: + jj_la1[265] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } +assert(false); + } + + +QCString VhdlParser::relative_pathname() {QCString s,s1,s2;if (!hasError) { + + s = neg_list(); + } + if (!hasError) { + + if (jj_2_107(2147483647)) {if (!hasError) { + + s1 = pathname_element_list(); + } + + } else { + ; + } + } + if (!hasError) { + + s2 = identifier(); + } + +return s+s1+s2; +assert(false); + } + + +QCString VhdlParser::neg_list() {QCString s;if (!hasError) { + + while (!hasError) {if (!hasError) { + + jj_consume_token(NEG_T); + } + if (!hasError) { + + jj_consume_token(DOT_T); + } + if (!hasError) { + +s+="^."; + } + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case NEG_T:{ + ; + break; + } + default: + jj_la1[266] = jj_gen; + goto end_label_54; + } + } + end_label_54: ; + } + +return s; +assert(false); + } + + +QCString VhdlParser::pathname_element() {QCString s,s1;if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = expression(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + break; + } + default: + jj_la1[267] = jj_gen; + ; + } + } + +if(!s1.isEmpty()) + return s+"("+s1+")"; + + return s; +assert(false); + } + + +QCString VhdlParser::pathname_element_list() {QCString s,s1,s2;if (!hasError) { + if (!hasError) { + + s = pathname_element(); + } + if (!hasError) { + + jj_consume_token(DOT_T); + } + + } + if (!hasError) { + +s+="."; + } + if (!hasError) { + + while (!hasError) { + if (jj_2_108(2147483647)) { + ; + } else { + goto end_label_55; + }if (!hasError) { + + s1 = pathname_element(); + } + if (!hasError) { + + jj_consume_token(DOT_T); + } + if (!hasError) { + +s2+=s1;s2+="."; + } + + } + end_label_55: ; + } + +return s+s2; +assert(false); + } + + +QCString VhdlParser::package_path_name() {QCString s;if (!hasError) { + + jj_consume_token(AT_T); + } + if (!hasError) { + + s = name(); + } + +return "@"+s; +assert(false); + } + + +void VhdlParser::conditional_signal_assignment_wave() { + if (jj_2_109(2147483647)) {if (!hasError) { + + conditional_force_assignment(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T: + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + conditional_waveform_assignment(); + } + + break; + } + default: + jj_la1[268] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::conditional_waveform_assignment() {if (!hasError) { + + target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{if (!hasError) { + + delay_mechanism(); + } + + break; + } + default: + jj_la1[269] = jj_gen; + ; + } + } + if (!hasError) { + + waveform_element(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSE_T:{if (!hasError) { + + else_wave_list(); + } + + break; + } + default: + jj_la1[270] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::else_wave_list() {if (!hasError) { + + jj_consume_token(ELSE_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + expression(); + } + + break; + } + default: + jj_la1[271] = jj_gen; + ; + } + } + + } + + +void VhdlParser::conditional_force_assignment() {if (!hasError) { + + target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + jj_consume_token(FORCE_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T: + case OUT_T:{if (!hasError) { + + inout_stat(); + } + + break; + } + default: + jj_la1[272] = jj_gen; + ; + } + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ABS_T: + case NEW_T: + case NOT_T: + case NULL_T: + case LPAREN_T: + case PLUS_T: + case MINUS_T: + case SLSL_T: + case INTEGER: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER: + case CHARACTER_LITERAL: + case DECIMAL_LITERAL: + case BASED_LITERAL: + case BIT_STRING_LITERAL:{if (!hasError) { + + expression(); + } + if (!hasError) { + + else_stat(); + } + + break; + } + default: + jj_la1[273] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::selected_signal_assignment_wave() { + if (jj_2_110(2147483647)) {if (!hasError) { + + selected_force_assignment(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WITH_T:{if (!hasError) { + + selected_waveform_assignment(); + } + + break; + } + default: + jj_la1[274] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::selected_variable_assignment() {if (!hasError) { + + jj_consume_token(WITH_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(SELECT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{if (!hasError) { + + jj_consume_token(Q_T); + } + + break; + } + default: + jj_la1[275] = jj_gen; + ; + } + } + if (!hasError) { + + select_name(); + } + if (!hasError) { + + jj_consume_token(VARASSIGN_T); + } + if (!hasError) { + + sel_var_list(); + } + + } + + +void VhdlParser::select_name() { + if (jj_2_111(2147483647)) {if (!hasError) { + + aggregate(); + } + + } else { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case SLSL_T: + case STRINGLITERAL: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + name(); + } + + break; + } + default: + jj_la1[276] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + } + + +void VhdlParser::selected_waveform_assignment() {if (!hasError) { + + jj_consume_token(WITH_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(SELECT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{if (!hasError) { + + jj_consume_token(Q_T); + } + + break; + } + default: + jj_la1[277] = jj_gen; + ; + } + } + if (!hasError) { + + target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case INERTIAL_T: + case REJECT_T: + case TRANSPORT_T:{if (!hasError) { + + delay_mechanism(); + } + + break; + } + default: + jj_la1[278] = jj_gen; + ; + } + } + if (!hasError) { + + sel_wave_list(); + } + + } + + +void VhdlParser::selected_force_assignment() {if (!hasError) { + + jj_consume_token(WITH_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(SELECT_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case Q_T:{if (!hasError) { + + jj_consume_token(Q_T); + } + + break; + } + default: + jj_la1[279] = jj_gen; + ; + } + } + if (!hasError) { + + target(); + } + if (!hasError) { + + jj_consume_token(LESSTHAN_T); + } + if (!hasError) { + + jj_consume_token(FORCE_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T: + case OUT_T:{if (!hasError) { + + inout_stat(); + } + + break; + } + default: + jj_la1[280] = jj_gen; + ; + } + } + if (!hasError) { + + sel_var_list(); + } + + } + + +void VhdlParser::sel_var_list() {if (!hasError) { + if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + choices(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{if (!hasError) { + + jj_consume_token(COMMA_T); + } + + break; + } + case SEMI_T:{if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[281] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + } + if (!hasError) { + + while (!hasError) { + if (jj_2_112(2147483647)) { + ; + } else { + goto end_label_56; + }if (!hasError) { + + expression(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + choices(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{if (!hasError) { + + jj_consume_token(COMMA_T); + } + + break; + } + case SEMI_T:{if (!hasError) { + + jj_consume_token(SEMI_T); + } + + break; + } + default: + jj_la1[282] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + } + end_label_56: ; + } + + } + + +void VhdlParser::sel_wave_list() {if (!hasError) { + + waveform_element(); + } + if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + choices(); + } + if (!hasError) { + + while (!hasError) { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case COMMA_T:{ + ; + break; + } + default: + jj_la1[283] = jj_gen; + goto end_label_57; + }if (!hasError) { + + jj_consume_token(COMMA_T); + } + if (!hasError) { + + sel_wave_list(); + } + + } + end_label_57: ; + } + if (!hasError) { + + jj_consume_token(SEMI_T); + } + + } + + +void VhdlParser::inout_stat() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IN_T:{if (!hasError) { + + jj_consume_token(IN_T); + } + + break; + } + case OUT_T:{if (!hasError) { + + jj_consume_token(OUT_T); + } + + break; + } + default: + jj_la1[284] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + +void VhdlParser::else_stat() {if (!hasError) { + + while (!hasError) {if (!hasError) { + + jj_consume_token(ELSE_T); + } + if (!hasError) { + + expression(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case WHEN_T:{if (!hasError) { + + jj_consume_token(WHEN_T); + } + if (!hasError) { + + expression(); + } + + break; + } + default: + jj_la1[285] = jj_gen; + ; + } + } + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case ELSE_T:{ + ; + break; + } + default: + jj_la1[286] = jj_gen; + goto end_label_58; + } + } + end_label_58: ; + } + + } + + +QCString VhdlParser::interface_subprogram_declaration() {QCString s; + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PROCEDURE_T:{if (!hasError) { + + s = iproc(); + } + if (!hasError) { + +return s; + } + + break; + } + case FUNCTION_T: + case IMPURE_T: + case PURE_T:{if (!hasError) { + + s = ifunc(); + } + if (!hasError) { + +return s; + } + + break; + } + default: + jj_la1[287] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } +assert(false); + } + + +QCString VhdlParser::iproc() {QCString s,s1;if (!hasError) { + + jj_consume_token(PROCEDURE_T); + } + if (!hasError) { + + s = identifier(); + } + if (!hasError) { + + s1 = param(); + } + +current->name=s; + return "procedure "+s+s1; +assert(false); + } + + +QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IMPURE_T: + case PURE_T:{ + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PURE_T:{if (!hasError) { + + t = jj_consume_token(PURE_T); + } + + break; + } + case IMPURE_T:{if (!hasError) { + + t = jj_consume_token(IMPURE_T); + } + + break; + } + default: + jj_la1[288] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + break; + } + default: + jj_la1[289] = jj_gen; + ; + } + } + if (!hasError) { + + jj_consume_token(FUNCTION_T); + } + if (!hasError) { + + s = name(); + } + if (!hasError) { + + s1 = param(); + } + if (!hasError) { + + jj_consume_token(RETURN_T); + } + if (!hasError) { + + s2 = name(); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case IS_T:{if (!hasError) { + + t1 = jj_consume_token(IS_T); + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + s3 = identifier(); + } + + break; + } + case BOX_T:{if (!hasError) { + + t2 = jj_consume_token(BOX_T); + } + + break; + } + default: + jj_la1[290] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + break; + } + default: + jj_la1[291] = jj_gen; + ; + } + } + +QCString q; + if(t) q=t->image.data(); + if(t2) s3="<>"; + if (!s3.isEmpty()) + { + s3.prepend(" is "); + } + current->name=s; + if (parse_sec==GEN_SEC) + { + QCString ss=q+" function "+s1+" return "+s2+s3; + int a=getLine(FUNCTION_T); + int b=getLine(PROCEDURE_T); + + if (a>b) b=a; + addVhdlType(current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Public); + } + currP=0;return ""; +assert(false); + } + + +QCString VhdlParser::param() {QCString s,s1;Token *tok=0;if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case PARAMETER_T:{if (!hasError) { + + tok = jj_consume_token(PARAMETER_T); + } + + break; + } + default: + jj_la1[292] = jj_gen; + ; + } + } + if (!hasError) { + +param_sec=PARAM_SEC; + } + if (!hasError) { + + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case LPAREN_T:{if (!hasError) { + + jj_consume_token(LPAREN_T); + } + if (!hasError) { + + s1 = interface_list(); + } + if (!hasError) { + + jj_consume_token(RPAREN_T); + } + + break; + } + default: + jj_la1[293] = jj_gen; + ; + } + } + +if(tok) + { + s = tok->image.data(); + param_sec=0; + } + return s+"("+s1+")"; +assert(false); + } + + +void VhdlParser::parseInline() { + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POSTPONED_T: + case PROCESS_T: + case BASIC_IDENTIFIER: + case EXTENDED_CHARACTER:{if (!hasError) { + + process_statement(); + } + + break; + } + case FUNCTION_T: + case IMPURE_T: + case PROCEDURE_T: + case PURE_T:{if (!hasError) { + + subprogram_declaration(); + } + + break; + } + default: + jj_la1[294] = jj_gen; + jj_consume_token(-1); + errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; + } + } + + + VhdlParser::VhdlParser(TokenManager *tm){ + head = NULL; + ReInit(tm); +} + VhdlParser::~VhdlParser() +{ + if (token_source) delete token_source; + if (head) { + Token *next, *t = head; + while (t) { + next = t->next; + delete t; + t = next; + } + } + if (errorHandlerCreated) { + delete errorHandler; + } +} + +void VhdlParser::ReInit(TokenManager *tm){ + if (head) delete head; + errorHandler = new ErrorHandler(); + errorHandlerCreated = true; + hasError = false; + token_source = tm; + head = token = new Token(); + token->kind = 0; + token->next = NULL; + jj_lookingAhead = false; + jj_rescan = false; + jj_done = false; + jj_scanpos = jj_lastpos = NULL; + jj_gc = 0; + jj_kind = -1; + trace_indent = 0; + trace_enabled = false; + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 295; i++) jj_la1[i] = -1; + } + + +Token * VhdlParser::jj_consume_token(int kind) { + Token *oldToken; + if ((oldToken = token)->next != NULL) token = token->next; + else token = token->next = token_source->getNextToken(); + jj_ntk = -1; + if (token->kind == kind) { + jj_gen++; + if (++jj_gc > 100) { + jj_gc = 0; + for (int i = 0; i < 112; i++) { + JJCalls *c = &jj_2_rtns[i]; + while (c != NULL) { + if (c->gen < jj_gen) c->first = NULL; + c = c->next; + } + } + } + return token; + } + token = oldToken; + jj_kind = kind; + JAVACC_STRING_TYPE image = kind >= 0 ? tokenImage[kind] : tokenImage[0]; + errorHandler->handleUnexpectedToken(kind, image.substr(1, image.size() - 2), getToken(1), this), hasError = true; + return token; + } + + +bool VhdlParser::jj_scan_token(int kind){ + if (jj_scanpos == jj_lastpos) { + jj_la--; + if (jj_scanpos->next == NULL) { + jj_lastpos = jj_scanpos = jj_scanpos->next = token_source->getNextToken(); + } else { + jj_lastpos = jj_scanpos = jj_scanpos->next; + } + } else { + jj_scanpos = jj_scanpos->next; + } + if (jj_rescan) { + int i = 0; Token *tok = token; + while (tok != NULL && tok != jj_scanpos) { i++; tok = tok->next; } + if (tok != NULL) jj_add_error_token(kind, i); + } + if (jj_scanpos->kind != kind) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) { return jj_done = true; } + return false; + } + + +/** Get the next Token. */ + +Token * VhdlParser::getNextToken(){ + if (token->next != NULL) token = token->next; + else token = token->next = token_source->getNextToken(); + jj_ntk = -1; + jj_gen++; + return token; + } + +/** Get the specific Token. */ + +Token * VhdlParser::getToken(int index){ + Token *t = token; + for (int i = 0; i < index; i++) { + if (t->next != NULL) t = t->next; + else t = t->next = token_source->getNextToken(); + } + return t; + } + + +int VhdlParser::jj_ntk_f(){ + if ((jj_nt=token->next) == NULL) + return (jj_ntk = (token->next=token_source->getNextToken())->kind); + else + return (jj_ntk = jj_nt->kind); + } + + +void VhdlParser::jj_add_error_token(int kind, int pos) { + } + + /** Generate ParseException. */ + + void VhdlParser::parseError() { + fprintf(stderr, "Parse error at: %d:%d, after token: %s encountered: %s\n", token->beginLine, token->beginColumn, addUnicodeEscapes(token->image).c_str(), addUnicodeEscapes(getToken(1)->image).c_str()); + } + + + void VhdlParser::enable_tracing() { + } + + /** Disable tracing. */ + + void VhdlParser::disable_tracing() { + } + + +void VhdlParser::jj_rescan_token(){ + jj_rescan = true; + for (int i = 0; i < 112; i++) { + JJCalls *p = &jj_2_rtns[i]; + do { + if (p->gen > jj_gen) { + jj_la = p->arg; jj_lastpos = jj_scanpos = p->first; + switch (i) { + case 0: jj_3_1(); break; + case 1: jj_3_2(); break; + case 2: jj_3_3(); break; + case 3: jj_3_4(); break; + case 4: jj_3_5(); break; + case 5: jj_3_6(); break; + case 6: jj_3_7(); break; + case 7: jj_3_8(); break; + case 8: jj_3_9(); break; + case 9: jj_3_10(); break; + case 10: jj_3_11(); break; + case 11: jj_3_12(); break; + case 12: jj_3_13(); break; + case 13: jj_3_14(); break; + case 14: jj_3_15(); break; + case 15: jj_3_16(); break; + case 16: jj_3_17(); break; + case 17: jj_3_18(); break; + case 18: jj_3_19(); break; + case 19: jj_3_20(); break; + case 20: jj_3_21(); break; + case 21: jj_3_22(); break; + case 22: jj_3_23(); break; + case 23: jj_3_24(); break; + case 24: jj_3_25(); break; + case 25: jj_3_26(); break; + case 26: jj_3_27(); break; + case 27: jj_3_28(); break; + case 28: jj_3_29(); break; + case 29: jj_3_30(); break; + case 30: jj_3_31(); break; + case 31: jj_3_32(); break; + case 32: jj_3_33(); break; + case 33: jj_3_34(); break; + case 34: jj_3_35(); break; + case 35: jj_3_36(); break; + case 36: jj_3_37(); break; + case 37: jj_3_38(); break; + case 38: jj_3_39(); break; + case 39: jj_3_40(); break; + case 40: jj_3_41(); break; + case 41: jj_3_42(); break; + case 42: jj_3_43(); break; + case 43: jj_3_44(); break; + case 44: jj_3_45(); break; + case 45: jj_3_46(); break; + case 46: jj_3_47(); break; + case 47: jj_3_48(); break; + case 48: jj_3_49(); break; + case 49: jj_3_50(); break; + case 50: jj_3_51(); break; + case 51: jj_3_52(); break; + case 52: jj_3_53(); break; + case 53: jj_3_54(); break; + case 54: jj_3_55(); break; + case 55: jj_3_56(); break; + case 56: jj_3_57(); break; + case 57: jj_3_58(); break; + case 58: jj_3_59(); break; + case 59: jj_3_60(); break; + case 60: jj_3_61(); break; + case 61: jj_3_62(); break; + case 62: jj_3_63(); break; + case 63: jj_3_64(); break; + case 64: jj_3_65(); break; + case 65: jj_3_66(); break; + case 66: jj_3_67(); break; + case 67: jj_3_68(); break; + case 68: jj_3_69(); break; + case 69: jj_3_70(); break; + case 70: jj_3_71(); break; + case 71: jj_3_72(); break; + case 72: jj_3_73(); break; + case 73: jj_3_74(); break; + case 74: jj_3_75(); break; + case 75: jj_3_76(); break; + case 76: jj_3_77(); break; + case 77: jj_3_78(); break; + case 78: jj_3_79(); break; + case 79: jj_3_80(); break; + case 80: jj_3_81(); break; + case 81: jj_3_82(); break; + case 82: jj_3_83(); break; + case 83: jj_3_84(); break; + case 84: jj_3_85(); break; + case 85: jj_3_86(); break; + case 86: jj_3_87(); break; + case 87: jj_3_88(); break; + case 88: jj_3_89(); break; + case 89: jj_3_90(); break; + case 90: jj_3_91(); break; + case 91: jj_3_92(); break; + case 92: jj_3_93(); break; + case 93: jj_3_94(); break; + case 94: jj_3_95(); break; + case 95: jj_3_96(); break; + case 96: jj_3_97(); break; + case 97: jj_3_98(); break; + case 98: jj_3_99(); break; + case 99: jj_3_100(); break; + case 100: jj_3_101(); break; + case 101: jj_3_102(); break; + case 102: jj_3_103(); break; + case 103: jj_3_104(); break; + case 104: jj_3_105(); break; + case 105: jj_3_106(); break; + case 106: jj_3_107(); break; + case 107: jj_3_108(); break; + case 108: jj_3_109(); break; + case 109: jj_3_110(); break; + case 110: jj_3_111(); break; + case 111: jj_3_112(); break; + } + } + p = p->next; + } while (p != NULL); + } + jj_rescan = false; + } + + +void VhdlParser::jj_save(int index, int xla){ + JJCalls *p = &jj_2_rtns[index]; + while (p->gen > jj_gen) { + if (p->next == NULL) { p = p->next = new JJCalls(); break; } + p = p->next; + } + p->gen = jj_gen + xla - jj_la; p->first = token; p->arg = xla; + } + + +} +} diff --git a/vhdlparser/VhdlParser.h b/vhdlparser/VhdlParser.h new file mode 100644 index 0000000..dcde4f3 --- /dev/null +++ b/vhdlparser/VhdlParser.h @@ -0,0 +1,8944 @@ +#ifndef VHDLPARSER_H +#define VHDLPARSER_H + +#include "JavaCC.h" +#include "CharStream.h" +#include "Token.h" +#include "TokenManager.h" +#include "VhdlParserTokenManager.h" +#include "VhdlParser.h" +#include "vhdljjparser.h" + +#include "VhdlParserConstants.h" +#include "ErrorHandler.h" +namespace vhdl { +namespace parser { + struct JJCalls { + int gen; + Token *first; + int arg; + JJCalls *next; + ~JJCalls() { if (next) delete next; } + JJCalls() { next = NULL; arg = 0; gen = -1; first = NULL; } + }; + +class VhdlParser { + public: + +QCString abstract_literal(); + +QCString access_type_definition(); + +QCString actual_designator(); + +QCString actual_parameter_part(); + +QCString actual_part(); + +QCString adding_operator(); + +QCString aggregate(); + +QCString alias_declaration(); + +QCString alias_designator(); + +void allocator(); + +void architecture_body(); + +void architecture_declarative_part(); + +void architecture_statement_part(); + +QCString array_type_definition(); + +QCString assertion(); + +QCString assertion_statement(); + +QCString association_element(); + +QCString association_list(); + +QCString attribute_declaration(); + +QCString attribute_designator(); + +QCString attribute_name(); + +QCString attribute_specification(); + +QCString base(); + +QCString base_specifier(); + +QCString base_unit_declaration(); + +QCString based_integer(); + +QCString based_literal(); + +QCString basic_identifier(); + +void binding_indication(); + +QCString bit_string_literal(); + +QCString bit_value(); + +void block_configuration(); + +void block_declarative_item(); + +void block_declarative_part(); + +void block_header(); + +void block_specification(); + +void block_statement(); + +void block_statement_part(); + +void case_statement(); + +void case_statement_alternative(); + +QCString character_literal(); + +QCString choice(); + +QCString choices(); + +void component_configuration(); + +void component_declaration(); + +void component_instantiation_statement(); + +void component_specification(); + +QCString composite_type_definition(); + +void concurrent_assertion_statement(); + +void concurrent_procedure_call_statement(); + +void concurrent_signal_assignment_statement(); + +void concurrent_statement(); + +QCString condition(); + +QCString condition_clause(); + +void conditional_signal_assignment(); + +void conditional_waveforms(); + +void configuration_declaration(); + +void configuration_declarative_item(); + +void configuration_declarative_part(); + +void configuration_item(); + +void configuration_specification(); + +QCString constant_declaration(); + +QCString constraint_array_definition(); + +void context_clause(); + +QCString constraint(); + +void context_item(); + +QCString decimal_literal(); + +QCString delay_mechanism(); + +void design_file(); + +void design_unit(); + +QCString designator(); + +QCString direction(); + +void disconnection_specification(); + +void guarded_signal_specificatio(); + +QCString discrete_range(); + +QCString element_association(); + +QCString element_declaration(); + +QCString entity_aspect(); + +QCString entity_class(); + +QCString entity_class_entry(); + +QCString entity_class_entry_list(); + +void entity_declaration(); + +void entity_declarative_item(); + +void entity_declarative_part(); + +QCString entity_designator(); + +void entity_header(); + +QCString entity_name_list(); + +QCString entity_specification(); + +void entity_statement(); + +void entity_statement_part(); + +QCString entity_tag(); + +QCString enumeration_literal(); + +QCString enumeration_type_definition(); + +QCString exit_statement(); + +QCString expression(); + +QCString logop(); + +QCString extended_identifier(); + +QCString factor(); + +QCString file_declaration(); + +QCString file_logical_name(); + +QCString file_open_information(); + +QCString file_type_definition(); + +QCString floating_type_definition(); + +QCString formal_designator(); + +QCString formal_parameter_list(); + +QCString formal_part(); + +QCString full_type_declaration(); + +QCString function_call(); + +void generate_statement(); + +void generate_scheme(); + +void generic_clause(); + +QCString generic_list(); + +void generic_map_aspect(); + +QCString group_constituent(); + +QCString group_constituent_list(); + +QCString group_declaration(); + +QCString group_template_declaration(); + +void guarded_signal_specification(); + +QCString identifier(); + +QCString identifier_list(); + +void if_statement(); + +QCString incomplete_type_declaration(); + +QCString index_constraint(); + +QCString index_specification(); + +QCString index_subtype_definition(); + +QCString instantiation_unit(); + +QCString instantiation_list(); + +QCString integer(); + +QCString integer_type_definition(); + +QCString interface_declaration(); + +QCString interface_element(); + +QCString interface_file_declaration(); + +QCString interface_list(); + +QCString interface_variable_declaration(); + +void iteration_scheme(); + +QCString label(); + +QCString library_clause(); + +QCString library_unit(); + +QCString literal(); + +QCString logical_operator(); + +void loop_statement(); + +QCString miscellaneous_operator(); + +QCString mode(); + +QCString multiplying_operation(); + +QCString name(); + +QCString name_ext1(); + +QCString name_ext(); + +QCString test_att_name(); + +QCString indexed_name(); + +QCString next_statement(); + +QCString null_statement(); + +QCString numeric_literal(); + +QCString object_class(); + +QCString operator_symbol(); + +void options(); + +void package_body(); + +void package_body_declarative_item(); + +void package_body_declarative_part(); + +void package_declaration(); + +void geninter(); + +void package_declarative_item(); + +void package_declarative_part(); + +QCString parameter_specification(); + +QCString physical_literal(); + +QCString physical_type_definition(); + +void port_clause(); + +QCString port_list(); + +void port_map_aspect(); + +QCString primary(); + +void primary_unit(); + +QCString procedure_call(); + +QCString procedure_call_statement(); + +QCString process_declarative_item(); + +QCString process_declarative_part(); + +void process_statement(); + +void process_statement_part(); + +QCString qualified_expression(); + +QCString range(); + +QCString range_constraint(); + +void record_type_definition(); + +QCString relation(); + +QCString relation_operator(); + +QCString report_statement(); + +QCString return_statement(); + +QCString scalar_type_definition(); + +void secondary_unit(); + +QCString secondary_unit_declaration(); + +QCString selected_name(); + +void selected_signal_assignment(); + +void selected_waveforms(); + +QCString sensitivity_clause(); + +QCString sensitivity_list(); + +void sequence_of_statement(); + +void sequential_statement(); + +QCString shift_expression(); + +QCString shift_operator(); + +QCString sign(); + +QCString signal_assignment_statement(); + +void semi(); + +void signal_declaration(); + +QCString signal_kind(); + +QCString signal_list(); + +QCString signature(); + +QCString simple_expression(); + +void simple_name(); + +QCString slice_name(); + +QCString string_literal(); + +void subprogram_body(); + +void subprogram_declaration(); + +void subprogram_1(); + +QCString subprogram_declarative_item(); + +QCString subprogram_declarative_part(); + +void subprogram_kind(); + +void subprogram_specification(); + +void subprogram_statement_part(); + +QCString subtype_declaration(); + +QCString subtype_indication(); + +QCString suffix(); + +QCString target(); + +QCString term(); + +QCString timeout_clause(); + +QCString type_conversion(); + +QCString type_declaration(); + +QCString type_definition(); + +QCString type_mark(); + +QCString unconstraint_array_definition(); + +QCString use_clause(); + +QCString variable_assignment_statement(); + +QCString variable_declaration(); + +QCString wait_statement(); + +QCString waveform(); + +QCString waveform_element(); + +QCString protected_type_body(); + +void protected_type_body_declarative_item(); + +void protected_type_body_declarative_part(); + +QCString protected_type_declaration(); + +void protected_type_declarative_item(); + +void protected_type_declarative_part(); + +QCString context_ref(); + +void context_declaration(); + +QCString libustcont_stats(); + +void package_instantiation_declaration(); + +QCString interface_package_declaration(); + +QCString subprogram_instantiation_declaration(); + +void gen_assoc_list(); + +void gen_interface_list(); + +void case_scheme(); + +void when_stats(); + +void ttend(); + +void generate_statement_body(); + +QCString external_name(); + +QCString sig_stat(); + +QCString external_pathname(); + +QCString absolute_pathname(); + +QCString relative_pathname(); + +QCString neg_list(); + +QCString pathname_element(); + +QCString pathname_element_list(); + +QCString package_path_name(); + +void conditional_signal_assignment_wave(); + +void conditional_waveform_assignment(); + +void else_wave_list(); + +void conditional_force_assignment(); + +void selected_signal_assignment_wave(); + +void selected_variable_assignment(); + +void select_name(); + +void selected_waveform_assignment(); + +void selected_force_assignment(); + +void sel_var_list(); + +void sel_wave_list(); + +void inout_stat(); + +void else_stat(); + +QCString interface_subprogram_declaration(); + +QCString iproc(); + +QCString ifunc(); + +QCString param(); + +void parseInline(); + inline bool jj_2_1(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_1() || jj_done; + finally { jj_save(0, xla); } + } + + inline bool jj_2_2(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_2() || jj_done; + finally { jj_save(1, xla); } + } + + inline bool jj_2_3(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_3() || jj_done; + finally { jj_save(2, xla); } + } + + inline bool jj_2_4(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_4() || jj_done; + finally { jj_save(3, xla); } + } + + inline bool jj_2_5(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_5() || jj_done; + finally { jj_save(4, xla); } + } + + inline bool jj_2_6(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_6() || jj_done; + finally { jj_save(5, xla); } + } + + inline bool jj_2_7(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_7() || jj_done; + finally { jj_save(6, xla); } + } + + inline bool jj_2_8(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_8() || jj_done; + finally { jj_save(7, xla); } + } + + inline bool jj_2_9(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_9() || jj_done; + finally { jj_save(8, xla); } + } + + inline bool jj_2_10(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_10() || jj_done; + finally { jj_save(9, xla); } + } + + inline bool jj_2_11(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_11() || jj_done; + finally { jj_save(10, xla); } + } + + inline bool jj_2_12(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_12() || jj_done; + finally { jj_save(11, xla); } + } + + inline bool jj_2_13(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_13() || jj_done; + finally { jj_save(12, xla); } + } + + inline bool jj_2_14(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_14() || jj_done; + finally { jj_save(13, xla); } + } + + inline bool jj_2_15(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_15() || jj_done; + finally { jj_save(14, xla); } + } + + inline bool jj_2_16(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_16() || jj_done; + finally { jj_save(15, xla); } + } + + inline bool jj_2_17(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_17() || jj_done; + finally { jj_save(16, xla); } + } + + inline bool jj_2_18(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_18() || jj_done; + finally { jj_save(17, xla); } + } + + inline bool jj_2_19(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_19() || jj_done; + finally { jj_save(18, xla); } + } + + inline bool jj_2_20(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_20() || jj_done; + finally { jj_save(19, xla); } + } + + inline bool jj_2_21(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_21() || jj_done; + finally { jj_save(20, xla); } + } + + inline bool jj_2_22(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_22() || jj_done; + finally { jj_save(21, xla); } + } + + inline bool jj_2_23(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_23() || jj_done; + finally { jj_save(22, xla); } + } + + inline bool jj_2_24(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_24() || jj_done; + finally { jj_save(23, xla); } + } + + inline bool jj_2_25(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_25() || jj_done; + finally { jj_save(24, xla); } + } + + inline bool jj_2_26(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_26() || jj_done; + finally { jj_save(25, xla); } + } + + inline bool jj_2_27(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_27() || jj_done; + finally { jj_save(26, xla); } + } + + inline bool jj_2_28(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_28() || jj_done; + finally { jj_save(27, xla); } + } + + inline bool jj_2_29(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_29() || jj_done; + finally { jj_save(28, xla); } + } + + inline bool jj_2_30(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_30() || jj_done; + finally { jj_save(29, xla); } + } + + inline bool jj_2_31(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_31() || jj_done; + finally { jj_save(30, xla); } + } + + inline bool jj_2_32(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_32() || jj_done; + finally { jj_save(31, xla); } + } + + inline bool jj_2_33(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_33() || jj_done; + finally { jj_save(32, xla); } + } + + inline bool jj_2_34(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_34() || jj_done; + finally { jj_save(33, xla); } + } + + inline bool jj_2_35(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_35() || jj_done; + finally { jj_save(34, xla); } + } + + inline bool jj_2_36(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_36() || jj_done; + finally { jj_save(35, xla); } + } + + inline bool jj_2_37(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_37() || jj_done; + finally { jj_save(36, xla); } + } + + inline bool jj_2_38(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_38() || jj_done; + finally { jj_save(37, xla); } + } + + inline bool jj_2_39(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_39() || jj_done; + finally { jj_save(38, xla); } + } + + inline bool jj_2_40(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_40() || jj_done; + finally { jj_save(39, xla); } + } + + inline bool jj_2_41(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_41() || jj_done; + finally { jj_save(40, xla); } + } + + inline bool jj_2_42(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_42() || jj_done; + finally { jj_save(41, xla); } + } + + inline bool jj_2_43(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_43() || jj_done; + finally { jj_save(42, xla); } + } + + inline bool jj_2_44(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_44() || jj_done; + finally { jj_save(43, xla); } + } + + inline bool jj_2_45(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_45() || jj_done; + finally { jj_save(44, xla); } + } + + inline bool jj_2_46(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_46() || jj_done; + finally { jj_save(45, xla); } + } + + inline bool jj_2_47(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_47() || jj_done; + finally { jj_save(46, xla); } + } + + inline bool jj_2_48(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_48() || jj_done; + finally { jj_save(47, xla); } + } + + inline bool jj_2_49(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_49() || jj_done; + finally { jj_save(48, xla); } + } + + inline bool jj_2_50(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_50() || jj_done; + finally { jj_save(49, xla); } + } + + inline bool jj_2_51(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_51() || jj_done; + finally { jj_save(50, xla); } + } + + inline bool jj_2_52(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_52() || jj_done; + finally { jj_save(51, xla); } + } + + inline bool jj_2_53(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_53() || jj_done; + finally { jj_save(52, xla); } + } + + inline bool jj_2_54(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_54() || jj_done; + finally { jj_save(53, xla); } + } + + inline bool jj_2_55(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_55() || jj_done; + finally { jj_save(54, xla); } + } + + inline bool jj_2_56(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_56() || jj_done; + finally { jj_save(55, xla); } + } + + inline bool jj_2_57(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_57() || jj_done; + finally { jj_save(56, xla); } + } + + inline bool jj_2_58(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_58() || jj_done; + finally { jj_save(57, xla); } + } + + inline bool jj_2_59(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_59() || jj_done; + finally { jj_save(58, xla); } + } + + inline bool jj_2_60(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_60() || jj_done; + finally { jj_save(59, xla); } + } + + inline bool jj_2_61(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_61() || jj_done; + finally { jj_save(60, xla); } + } + + inline bool jj_2_62(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_62() || jj_done; + finally { jj_save(61, xla); } + } + + inline bool jj_2_63(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_63() || jj_done; + finally { jj_save(62, xla); } + } + + inline bool jj_2_64(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_64() || jj_done; + finally { jj_save(63, xla); } + } + + inline bool jj_2_65(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_65() || jj_done; + finally { jj_save(64, xla); } + } + + inline bool jj_2_66(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_66() || jj_done; + finally { jj_save(65, xla); } + } + + inline bool jj_2_67(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_67() || jj_done; + finally { jj_save(66, xla); } + } + + inline bool jj_2_68(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_68() || jj_done; + finally { jj_save(67, xla); } + } + + inline bool jj_2_69(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_69() || jj_done; + finally { jj_save(68, xla); } + } + + inline bool jj_2_70(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_70() || jj_done; + finally { jj_save(69, xla); } + } + + inline bool jj_2_71(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_71() || jj_done; + finally { jj_save(70, xla); } + } + + inline bool jj_2_72(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_72() || jj_done; + finally { jj_save(71, xla); } + } + + inline bool jj_2_73(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_73() || jj_done; + finally { jj_save(72, xla); } + } + + inline bool jj_2_74(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_74() || jj_done; + finally { jj_save(73, xla); } + } + + inline bool jj_2_75(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_75() || jj_done; + finally { jj_save(74, xla); } + } + + inline bool jj_2_76(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_76() || jj_done; + finally { jj_save(75, xla); } + } + + inline bool jj_2_77(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_77() || jj_done; + finally { jj_save(76, xla); } + } + + inline bool jj_2_78(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_78() || jj_done; + finally { jj_save(77, xla); } + } + + inline bool jj_2_79(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_79() || jj_done; + finally { jj_save(78, xla); } + } + + inline bool jj_2_80(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_80() || jj_done; + finally { jj_save(79, xla); } + } + + inline bool jj_2_81(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_81() || jj_done; + finally { jj_save(80, xla); } + } + + inline bool jj_2_82(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_82() || jj_done; + finally { jj_save(81, xla); } + } + + inline bool jj_2_83(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_83() || jj_done; + finally { jj_save(82, xla); } + } + + inline bool jj_2_84(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_84() || jj_done; + finally { jj_save(83, xla); } + } + + inline bool jj_2_85(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_85() || jj_done; + finally { jj_save(84, xla); } + } + + inline bool jj_2_86(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_86() || jj_done; + finally { jj_save(85, xla); } + } + + inline bool jj_2_87(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_87() || jj_done; + finally { jj_save(86, xla); } + } + + inline bool jj_2_88(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_88() || jj_done; + finally { jj_save(87, xla); } + } + + inline bool jj_2_89(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_89() || jj_done; + finally { jj_save(88, xla); } + } + + inline bool jj_2_90(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_90() || jj_done; + finally { jj_save(89, xla); } + } + + inline bool jj_2_91(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_91() || jj_done; + finally { jj_save(90, xla); } + } + + inline bool jj_2_92(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_92() || jj_done; + finally { jj_save(91, xla); } + } + + inline bool jj_2_93(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_93() || jj_done; + finally { jj_save(92, xla); } + } + + inline bool jj_2_94(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_94() || jj_done; + finally { jj_save(93, xla); } + } + + inline bool jj_2_95(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_95() || jj_done; + finally { jj_save(94, xla); } + } + + inline bool jj_2_96(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_96() || jj_done; + finally { jj_save(95, xla); } + } + + inline bool jj_2_97(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_97() || jj_done; + finally { jj_save(96, xla); } + } + + inline bool jj_2_98(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_98() || jj_done; + finally { jj_save(97, xla); } + } + + inline bool jj_2_99(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_99() || jj_done; + finally { jj_save(98, xla); } + } + + inline bool jj_2_100(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_100() || jj_done; + finally { jj_save(99, xla); } + } + + inline bool jj_2_101(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_101() || jj_done; + finally { jj_save(100, xla); } + } + + inline bool jj_2_102(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_102() || jj_done; + finally { jj_save(101, xla); } + } + + inline bool jj_2_103(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_103() || jj_done; + finally { jj_save(102, xla); } + } + + inline bool jj_2_104(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_104() || jj_done; + finally { jj_save(103, xla); } + } + + inline bool jj_2_105(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_105() || jj_done; + finally { jj_save(104, xla); } + } + + inline bool jj_2_106(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_106() || jj_done; + finally { jj_save(105, xla); } + } + + inline bool jj_2_107(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_107() || jj_done; + finally { jj_save(106, xla); } + } + + inline bool jj_2_108(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_108() || jj_done; + finally { jj_save(107, xla); } + } + + inline bool jj_2_109(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_109() || jj_done; + finally { jj_save(108, xla); } + } + + inline bool jj_2_110(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_110() || jj_done; + finally { jj_save(109, xla); } + } + + inline bool jj_2_111(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_111() || jj_done; + finally { jj_save(110, xla); } + } + + inline bool jj_2_112(int xla) + { + jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_done = false; + return !jj_3_112() || jj_done; + finally { jj_save(111, xla); } + } + + inline bool jj_3_48() + { + if (jj_done) return true; + if (jj_3R_101()) return true; + return false; + } + + inline bool jj_3R_214() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_338()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3_47() + { + if (jj_done) return true; + if (jj_scan_token(DOT_T)) return true; + if (jj_3R_100()) return true; + return false; + } + + inline bool jj_3R_210() + { + if (jj_done) return true; + if (jj_3R_99()) return true; + return false; + } + + inline bool jj_3R_213() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_68()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_148() + { + if (jj_done) return true; + if (jj_3R_296()) return true; + return false; + } + + inline bool jj_3R_212() + { + if (jj_done) return true; + if (jj_3R_101()) return true; + return false; + } + + inline bool jj_3R_211() + { + if (jj_done) return true; + if (jj_scan_token(DOT_T)) return true; + if (jj_3R_100()) return true; + return false; + } + + inline bool jj_3R_99() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_211()) { + jj_scanpos = xsp; + if (jj_3R_212()) { + jj_scanpos = xsp; + if (jj_3R_213()) { + jj_scanpos = xsp; + if (jj_3R_214()) return true; + } + } + } + return false; + } + + inline bool jj_3_45() + { + if (jj_done) return true; + if (jj_3R_98()) return true; + return false; + } + + inline bool jj_3R_98() + { + if (jj_done) return true; + if (jj_3R_99()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_210()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_147() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_149() + { + if (jj_done) return true; + if (jj_3R_98()) return true; + return false; + } + + inline bool jj_3R_590() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_146() + { + if (jj_done) return true; + if (jj_3R_295()) return true; + return false; + } + + inline bool jj_3R_60() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_146()) { + jj_scanpos = xsp; + if (jj_3R_147()) { + jj_scanpos = xsp; + if (jj_3R_148()) return true; + } + } + xsp = jj_scanpos; + if (jj_3R_149()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_281() + { + if (jj_done) return true; + if (jj_scan_token(REM_T)) return true; + return false; + } + + inline bool jj_3R_280() + { + if (jj_done) return true; + if (jj_scan_token(MOD_T)) return true; + return false; + } + + inline bool jj_3R_279() + { + if (jj_done) return true; + if (jj_scan_token(SLASH_T)) return true; + return false; + } + + inline bool jj_3R_134() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_278()) { + jj_scanpos = xsp; + if (jj_3R_279()) { + jj_scanpos = xsp; + if (jj_3R_280()) { + jj_scanpos = xsp; + if (jj_3R_281()) return true; + } + } + } + return false; + } + + inline bool jj_3R_278() + { + if (jj_done) return true; + if (jj_scan_token(MULT_T)) return true; + return false; + } + + inline bool jj_3R_410() + { + if (jj_done) return true; + if (jj_scan_token(LINKAGE_T)) return true; + return false; + } + + inline bool jj_3R_409() + { + if (jj_done) return true; + if (jj_scan_token(BUFFER_T)) return true; + return false; + } + + inline bool jj_3R_408() + { + if (jj_done) return true; + if (jj_scan_token(INOUT_T)) return true; + return false; + } + + inline bool jj_3R_407() + { + if (jj_done) return true; + if (jj_scan_token(OUT_T)) return true; + return false; + } + + inline bool jj_3R_331() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_406()) { + jj_scanpos = xsp; + if (jj_3R_407()) { + jj_scanpos = xsp; + if (jj_3R_408()) { + jj_scanpos = xsp; + if (jj_3R_409()) { + jj_scanpos = xsp; + if (jj_3R_410()) return true; + } + } + } + } + return false; + } + + inline bool jj_3R_406() + { + if (jj_done) return true; + if (jj_scan_token(IN_T)) return true; + return false; + } + + inline bool jj_3R_258() + { + if (jj_done) return true; + if (jj_3R_352()) return true; + return false; + } + + inline bool jj_3R_257() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_123() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_257()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_258()) jj_scanpos = xsp; + if (jj_scan_token(LOOP_T)) return true; + if (jj_3R_259()) return true; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(LOOP_T)) return true; + xsp = jj_scanpos; + if (jj_3R_590()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_44() + { + if (jj_done) return true; + if (jj_3R_97()) return true; + return false; + } + + inline bool jj_3_43() + { + if (jj_done) return true; + if (jj_3R_96()) return true; + return false; + } + + inline bool jj_3R_233() + { + if (jj_done) return true; + if (jj_scan_token(NULL_T)) return true; + return false; + } + + inline bool jj_3R_232() + { + if (jj_done) return true; + if (jj_3R_341()) return true; + return false; + } + + inline bool jj_3_42() + { + if (jj_done) return true; + if (jj_3R_95()) return true; + return false; + } + + inline bool jj_3R_231() + { + if (jj_done) return true; + if (jj_3R_97()) return true; + return false; + } + + inline bool jj_3R_230() + { + if (jj_done) return true; + if (jj_3R_96()) return true; + return false; + } + + inline bool jj_3R_229() + { + if (jj_done) return true; + if (jj_3R_95()) return true; + return false; + } + + inline bool jj_3R_107() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_229()) { + jj_scanpos = xsp; + if (jj_3R_230()) { + jj_scanpos = xsp; + if (jj_3R_231()) { + jj_scanpos = xsp; + if (jj_3R_232()) { + jj_scanpos = xsp; + if (jj_3R_233()) return true; + } + } + } + } + return false; + } + + inline bool jj_3_41() + { + if (jj_done) return true; + if (jj_3R_94()) return true; + return false; + } + + inline bool jj_3R_199() + { + if (jj_done) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_139() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_422() + { + if (jj_done) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_3R_380()) return true; + return false; + } + + inline bool jj_3R_352() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_421()) { + jj_scanpos = xsp; + if (jj_3R_422()) return true; + } + return false; + } + + inline bool jj_3R_421() + { + if (jj_done) return true; + if (jj_scan_token(WHILE_T)) return true; + if (jj_3R_80()) return true; + return false; + } + + inline bool jj_3R_198() + { + if (jj_done) return true; + if (jj_3R_331()) return true; + return false; + } + + inline bool jj_3R_372() + { + if (jj_done) return true; + if (jj_scan_token(SEMI_T)) return true; + if (jj_3R_371()) return true; + return false; + } + + inline bool jj_3R_196() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(115)) { + jj_scanpos = xsp; + if (jj_scan_token(99)) { + jj_scanpos = xsp; + if (jj_scan_token(30)) { + jj_scanpos = xsp; + if (jj_scan_token(100)) return true; + } + } + } + return false; + } + + inline bool jj_3R_91() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_196()) jj_scanpos = xsp; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + xsp = jj_scanpos; + if (jj_3R_198()) jj_scanpos = xsp; + if (jj_3R_85()) return true; + xsp = jj_scanpos; + if (jj_scan_token(26)) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_199()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_298() + { + if (jj_done) return true; + if (jj_3R_371()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_372()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_391() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_92() + { + if (jj_done) return true; + if (jj_scan_token(FILE_T)) return true; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_371() + { + if (jj_done) return true; + if (jj_3R_450()) return true; + return false; + } + + inline bool jj_3_40() + { + if (jj_done) return true; + if (jj_3R_93()) return true; + return false; + } + + inline bool jj_3R_515() + { + if (jj_done) return true; + if (jj_3R_557()) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_514() + { + if (jj_done) return true; + if (jj_3R_93()) return true; + return false; + } + + inline bool jj_3_39() + { + if (jj_done) return true; + if (jj_3R_92()) return true; + return false; + } + + inline bool jj_3_38() + { + if (jj_done) return true; + if (jj_3R_91()) return true; + return false; + } + + inline bool jj_3R_513() + { + if (jj_done) return true; + if (jj_3R_108()) return true; + return false; + } + + inline bool jj_3_37() + { + if (jj_done) return true; + if (jj_3R_90()) return true; + return false; + } + + inline bool jj_3R_450() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_37()) { + jj_scanpos = xsp; + if (jj_3R_513()) { + jj_scanpos = xsp; + if (jj_3_38()) { + jj_scanpos = xsp; + if (jj_3_39()) { + jj_scanpos = xsp; + if (jj_3R_514()) { + jj_scanpos = xsp; + if (jj_3R_515()) return true; + } + } + } + } + } + return false; + } + + inline bool jj_3R_586() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_181() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_68()) return true; + return false; + } + + inline bool jj_3R_394() + { + if (jj_done) return true; + if (jj_scan_token(ALL_T)) return true; + return false; + } + + inline bool jj_3R_393() + { + if (jj_done) return true; + if (jj_scan_token(OTHER_T)) return true; + return false; + } + + inline bool jj_3R_316() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_392()) { + jj_scanpos = xsp; + if (jj_3R_393()) { + jj_scanpos = xsp; + if (jj_3R_394()) return true; + } + } + return false; + } + + inline bool jj_3R_392() + { + if (jj_done) return true; + if (jj_3R_197()) return true; + return false; + } + + inline bool jj_3R_313() + { + if (jj_done) return true; + if (jj_scan_token(CONFIGURATION_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_312() + { + if (jj_done) return true; + if (jj_scan_token(ENTITY_T)) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_391()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_174() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_311()) { + jj_scanpos = xsp; + if (jj_3R_312()) { + jj_scanpos = xsp; + if (jj_3R_313()) return true; + } + } + return false; + } + + inline bool jj_3_36() + { + if (jj_done) return true; + if (jj_3R_68()) return true; + return false; + } + + inline bool jj_3R_311() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(27)) jj_scanpos = xsp; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_153() + { + if (jj_done) return true; + if (jj_3R_156()) return true; + if (jj_scan_token(RANGE_T)) return true; + if (jj_scan_token(BOX_T)) return true; + return false; + } + + inline bool jj_3R_583() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_582() + { + if (jj_done) return true; + if (jj_3R_68()) return true; + return false; + } + + inline bool jj_3R_539() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_582()) { + jj_scanpos = xsp; + if (jj_3R_583()) return true; + } + return false; + } + + inline bool jj_3R_83() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_68()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_181()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_585() + { + if (jj_done) return true; + if (jj_scan_token(ELSE_T)) return true; + if (jj_3R_259()) return true; + return false; + } + + inline bool jj_3R_602() + { + if (jj_done) return true; + if (jj_scan_token(TYPE_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_584() + { + if (jj_done) return true; + if (jj_scan_token(ELSIF_T)) return true; + if (jj_3R_80()) return true; + if (jj_scan_token(THEN_T)) return true; + if (jj_3R_259()) return true; + return false; + } + + inline bool jj_3R_673() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_330() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_405() + { + if (jj_done) return true; + if (jj_scan_token(IS_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_673()) { + jj_scanpos = xsp; + if (jj_scan_token(144)) return true; + } + return false; + } + + inline bool jj_3R_255() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_121() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_255()) jj_scanpos = xsp; + if (jj_scan_token(IF_T)) return true; + if (jj_3R_80()) return true; + if (jj_scan_token(THEN_T)) return true; + if (jj_3R_259()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_584()) { jj_scanpos = xsp; break; } + } + xsp = jj_scanpos; + if (jj_3R_585()) jj_scanpos = xsp; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(IF_T)) return true; + xsp = jj_scanpos; + if (jj_3R_586()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_197() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_330()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_165() + { + if (jj_done) return true; + if (jj_scan_token(BASIC_IDENTIFIER)) return true; + return false; + } + + inline bool jj_3R_164() + { + if (jj_done) return true; + if (jj_scan_token(EXTENDED_CHARACTER)) return true; + return false; + } + + inline bool jj_3R_71() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_164()) { + jj_scanpos = xsp; + if (jj_3R_165()) return true; + } + return false; + } + + inline bool jj_3R_615() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_614()) return true; + return false; + } + + inline bool jj_3R_170() + { + if (jj_done) return true; + if (jj_3R_309()) return true; + return false; + } + + inline bool jj_3R_66() + { + if (jj_done) return true; + if (jj_scan_token(GROUP_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_572()) return true; + if (jj_scan_token(RPAREN_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_491() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_298()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_528() + { + if (jj_done) return true; + if (jj_scan_token(GROUP_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_573()) return true; + if (jj_scan_token(RPAREN_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_573() + { + if (jj_done) return true; + if (jj_3R_614()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_615()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_171() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_650() + { + if (jj_done) return true; + if (jj_3R_337()) return true; + return false; + } + + inline bool jj_3R_649() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_614() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_649()) { + jj_scanpos = xsp; + if (jj_3R_650()) return true; + } + return false; + } + + inline bool jj_3R_70() + { + if (jj_done) return true; + if (jj_scan_token(GENERIC_T)) return true; + if (jj_scan_token(MAP_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_163()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_403() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(76)) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_491()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_157() + { + if (jj_done) return true; + if (jj_3R_298()) return true; + return false; + } + + inline bool jj_3_112() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(WHEN_T)) return true; + return false; + } + + inline bool jj_3R_67() + { + if (jj_done) return true; + if (jj_scan_token(GENERIC_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_157()) return true; + if (jj_scan_token(RPAREN_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_307() + { + if (jj_done) return true; + if (jj_scan_token(IF_T)) return true; + if (jj_3R_80()) return true; + return false; + } + + inline bool jj_3R_308() + { + if (jj_done) return true; + if (jj_3R_381()) return true; + return false; + } + + inline bool jj_3R_169() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_308()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(BEGIN_T)) return true; + return false; + } + + inline bool jj_3R_358() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_86()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(133)) { + jj_scanpos = xsp; + if (jj_scan_token(136)) return true; + } + return false; + } + + inline bool jj_3R_168() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_306()) { + jj_scanpos = xsp; + if (jj_3R_307()) return true; + } + return false; + } + + inline bool jj_3R_306() + { + if (jj_done) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_3R_380()) return true; + return false; + } + + inline bool jj_3R_425() + { + if (jj_done) return true; + if (jj_3R_500()) return true; + return false; + } + + inline bool jj_3R_501() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_427()) return true; + return false; + } + + inline bool jj_3R_503() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_290() + { + if (jj_done) return true; + if (jj_3R_356()) return true; + return false; + } + + inline bool jj_3R_404() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(83)) { + jj_scanpos = xsp; + if (jj_scan_token(51)) return true; + } + return false; + } + + inline bool jj_3R_563() + { + if (jj_done) return true; + if (jj_3R_604()) return true; + return false; + } + + inline bool jj_3R_329() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_404()) jj_scanpos = xsp; + if (jj_scan_token(FUNCTION_T)) return true; + if (jj_3R_60()) return true; + if (jj_3R_403()) return true; + if (jj_scan_token(RETURN_T)) return true; + if (jj_3R_60()) return true; + xsp = jj_scanpos; + if (jj_3R_405()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_75() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_168()) return true; + if (jj_scan_token(GENERATE_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_169()) jj_scanpos = xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_170()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(GENERATE_T)) return true; + xsp = jj_scanpos; + if (jj_3R_171()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_105() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_226()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_289() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + if (jj_3R_357()) return true; + return false; + } + + inline bool jj_3R_328() + { + if (jj_done) return true; + if (jj_scan_token(PROCEDURE_T)) return true; + if (jj_3R_71()) return true; + if (jj_3R_403()) return true; + return false; + } + + inline bool jj_3R_195() + { + if (jj_done) return true; + if (jj_3R_329()) return true; + return false; + } + + inline bool jj_3R_155() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_297()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_194() + { + if (jj_done) return true; + if (jj_3R_328()) return true; + return false; + } + + inline bool jj_3R_90() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_194()) { + jj_scanpos = xsp; + if (jj_3R_195()) return true; + } + return false; + } + + inline bool jj_3R_136() + { + if (jj_done) return true; + if (jj_scan_token(TYPE_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_619()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_436() + { + if (jj_done) return true; + if (jj_scan_token(ELSE_T)) return true; + if (jj_3R_59()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_503()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_357() + { + if (jj_done) return true; + Token * xsp; + if (jj_3R_436()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_436()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_64() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_155()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_370() + { + if (jj_done) return true; + if (jj_scan_token(INTEGER)) return true; + return false; + } + + inline bool jj_3R_546() + { + if (jj_done) return true; + if (jj_3R_298()) return true; + return false; + } + + inline bool jj_3R_356() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(52)) { + jj_scanpos = xsp; + if (jj_scan_token(74)) return true; + } + return false; + } + + inline bool jj_3R_426() + { + if (jj_done) return true; + if (jj_3R_377()) return true; + return false; + } + + inline bool jj_3R_297() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_369()) { + jj_scanpos = xsp; + if (jj_3R_370()) return true; + } + return false; + } + + inline bool jj_3R_369() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_427() + { + if (jj_done) return true; + if (jj_3R_424()) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_86()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_501()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_291() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_86()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(133)) { + jj_scanpos = xsp; + if (jj_scan_token(136)) return true; + } + while (true) { + xsp = jj_scanpos; + if (jj_3R_358()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_677() + { + if (jj_done) return true; + if (jj_scan_token(FILE_T)) return true; + if (jj_scan_token(OF_T)) return true; + if (jj_3R_156()) return true; + return false; + } + + inline bool jj_3R_288() + { + if (jj_done) return true; + if (jj_3R_356()) return true; + return false; + } + + inline bool jj_3R_622() + { + if (jj_done) return true; + if (jj_scan_token(OPEN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3_108() + { + if (jj_done) return true; + if (jj_3R_141()) return true; + if (jj_scan_token(DOT_T)) return true; + return false; + } + + inline bool jj_3R_604() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_622()) jj_scanpos = xsp; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_623()) return true; + return false; + } + + inline bool jj_3R_143() + { + if (jj_done) return true; + if (jj_scan_token(WITH_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SELECT_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(154)) jj_scanpos = xsp; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + if (jj_scan_token(FORCE_T)) return true; + xsp = jj_scanpos; + if (jj_3R_290()) jj_scanpos = xsp; + if (jj_3R_291()) return true; + return false; + } + + inline bool jj_3_111() + { + if (jj_done) return true; + if (jj_3R_109()) return true; + return false; + } + + inline bool jj_3R_623() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_354() + { + if (jj_done) return true; + if (jj_scan_token(WITH_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SELECT_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(154)) jj_scanpos = xsp; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + xsp = jj_scanpos; + if (jj_3R_426()) jj_scanpos = xsp; + if (jj_3R_427()) return true; + return false; + } + + inline bool jj_3R_286() + { + if (jj_done) return true; + if (jj_3R_141()) return true; + if (jj_scan_token(DOT_T)) return true; + return false; + } + + inline bool jj_3R_672() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_451() + { + if (jj_done) return true; + if (jj_scan_token(DOUBLEMULT_T)) return true; + if (jj_3R_355()) return true; + return false; + } + + inline bool jj_3R_551() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_671() + { + if (jj_done) return true; + if (jj_3R_109()) return true; + return false; + } + + inline bool jj_3R_651() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_671()) { + jj_scanpos = xsp; + if (jj_3R_672()) return true; + } + return false; + } + + inline bool jj_3R_264() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_522() + { + if (jj_done) return true; + if (jj_scan_token(FILE_T)) return true; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_563()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_110() + { + if (jj_done) return true; + if (jj_3R_143()) return true; + return false; + } + + inline bool jj_3R_423() + { + if (jj_done) return true; + if (jj_3R_377()) return true; + return false; + } + + inline bool jj_3R_498() + { + if (jj_done) return true; + if (jj_scan_token(WITH_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SELECT_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(154)) jj_scanpos = xsp; + if (jj_3R_651()) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + if (jj_3R_291()) return true; + return false; + } + + inline bool jj_3R_284() + { + if (jj_done) return true; + if (jj_scan_token(NOT_T)) return true; + if (jj_3R_355()) return true; + return false; + } + + inline bool jj_3R_283() + { + if (jj_done) return true; + if (jj_scan_token(ABS_T)) return true; + if (jj_3R_355()) return true; + return false; + } + + inline bool jj_3R_135() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_282()) { + jj_scanpos = xsp; + if (jj_3R_283()) { + jj_scanpos = xsp; + if (jj_3R_284()) return true; + } + } + return false; + } + + inline bool jj_3R_282() + { + if (jj_done) return true; + if (jj_3R_355()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_451()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_271() + { + if (jj_done) return true; + if (jj_3R_354()) return true; + return false; + } + + inline bool jj_3R_698() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_97()) return true; + return false; + } + + inline bool jj_3R_128() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_270()) { + jj_scanpos = xsp; + if (jj_3R_271()) return true; + } + return false; + } + + inline bool jj_3R_270() + { + if (jj_done) return true; + if (jj_3R_143()) return true; + return false; + } + + inline bool jj_3R_145() + { + if (jj_done) return true; + if (jj_3R_294()) return true; + if (jj_3R_144()) return true; + return false; + } + + inline bool jj_3R_366() + { + if (jj_done) return true; + if (jj_scan_token(OR_T)) return true; + return false; + } + + inline bool jj_3R_142() + { + if (jj_done) return true; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + if (jj_scan_token(FORCE_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_288()) jj_scanpos = xsp; + if (jj_3R_59()) return true; + if (jj_scan_token(WHEN_T)) return true; + xsp = jj_scanpos; + if (jj_3R_289()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_365() + { + if (jj_done) return true; + if (jj_scan_token(XOR_T)) return true; + return false; + } + + inline bool jj_3R_364() + { + if (jj_done) return true; + if (jj_scan_token(XNOR_T)) return true; + return false; + } + + inline bool jj_3R_363() + { + if (jj_done) return true; + if (jj_scan_token(NOR_T)) return true; + return false; + } + + inline bool jj_3R_362() + { + if (jj_done) return true; + if (jj_scan_token(NAND_T)) return true; + return false; + } + + inline bool jj_3R_294() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_361()) { + jj_scanpos = xsp; + if (jj_3R_362()) { + jj_scanpos = xsp; + if (jj_3R_363()) { + jj_scanpos = xsp; + if (jj_3R_364()) { + jj_scanpos = xsp; + if (jj_3R_365()) { + jj_scanpos = xsp; + if (jj_3R_366()) return true; + } + } + } + } + } + return false; + } + + inline bool jj_3R_361() + { + if (jj_done) return true; + if (jj_scan_token(AND_T)) return true; + return false; + } + + inline bool jj_3_109() + { + if (jj_done) return true; + if (jj_3R_142()) return true; + return false; + } + + inline bool jj_3R_500() + { + if (jj_done) return true; + if (jj_scan_token(ELSE_T)) return true; + if (jj_3R_59()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_551()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_353() + { + if (jj_done) return true; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_423()) jj_scanpos = xsp; + if (jj_3R_424()) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_59()) return true; + xsp = jj_scanpos; + if (jj_3R_425()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_269() + { + if (jj_done) return true; + if (jj_3R_353()) return true; + return false; + } + + inline bool jj_3R_59() + { + if (jj_done) return true; + if (jj_3R_144()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_145()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_127() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_268()) { + jj_scanpos = xsp; + if (jj_3R_269()) return true; + } + return false; + } + + inline bool jj_3R_268() + { + if (jj_done) return true; + if (jj_3R_142()) return true; + return false; + } + + inline bool jj_3R_140() + { + if (jj_done) return true; + if (jj_3R_141()) return true; + if (jj_scan_token(DOT_T)) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_286()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_265() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_80()) return true; + return false; + } + + inline bool jj_3R_287() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_512() + { + if (jj_done) return true; + if (jj_scan_token(AT_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_263() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3_107() + { + if (jj_done) return true; + if (jj_3R_140()) return true; + return false; + } + + inline bool jj_3R_125() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_263()) jj_scanpos = xsp; + if (jj_scan_token(EXIT_T)) return true; + xsp = jj_scanpos; + if (jj_3R_264()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_265()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_690() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_97()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_698()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_209() + { + if (jj_done) return true; + if (jj_3R_337()) return true; + return false; + } + + inline bool jj_3R_556() + { + if (jj_done) return true; + if (jj_3R_140()) return true; + return false; + } + + inline bool jj_3R_580() + { + if (jj_done) return true; + if (jj_3R_309()) return true; + return false; + } + + inline bool jj_3R_208() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_97() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_208()) { + jj_scanpos = xsp; + if (jj_3R_209()) return true; + } + return false; + } + + inline bool jj_3R_141() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_287()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_697() + { + if (jj_done) return true; + if (jj_3R_337()) return true; + return false; + } + + inline bool jj_3R_696() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_688() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_696()) { + jj_scanpos = xsp; + if (jj_3R_697()) return true; + } + return false; + } + + inline bool jj_3R_594() + { + if (jj_done) return true; + if (jj_scan_token(NEG_T)) return true; + if (jj_scan_token(DOT_T)) return true; + return false; + } + + inline bool jj_3R_555() + { + if (jj_done) return true; + Token * xsp; + if (jj_3R_594()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_594()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3_106() + { + if (jj_done) return true; + if (jj_scan_token(DOT_T)) return true; + if (jj_3R_140()) return true; + return false; + } + + inline bool jj_3_35() + { + if (jj_done) return true; + if (jj_3R_89()) return true; + return false; + } + + inline bool jj_3R_511() + { + if (jj_done) return true; + if (jj_3R_555()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_556()) jj_scanpos = xsp; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3_34() + { + if (jj_done) return true; + if (jj_3R_88()) return true; + return false; + } + + inline bool jj_3R_554() + { + if (jj_done) return true; + if (jj_scan_token(DOT_T)) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_553() + { + if (jj_done) return true; + if (jj_scan_token(DOT_T)) return true; + if (jj_3R_140()) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_510() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_553()) { + jj_scanpos = xsp; + if (jj_3R_554()) return true; + } + return false; + } + + inline bool jj_3_104() + { + if (jj_done) return true; + if (jj_3R_138()) return true; + return false; + } + + inline bool jj_3R_449() + { + if (jj_done) return true; + if (jj_3R_512()) return true; + return false; + } + + inline bool jj_3R_448() + { + if (jj_done) return true; + if (jj_3R_511()) return true; + return false; + } + + inline bool jj_3R_368() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_447()) { + jj_scanpos = xsp; + if (jj_3R_448()) { + jj_scanpos = xsp; + if (jj_3R_449()) return true; + } + } + return false; + } + + inline bool jj_3R_447() + { + if (jj_done) return true; + if (jj_3R_510()) return true; + return false; + } + + inline bool jj_3R_570() + { + if (jj_done) return true; + if (jj_3R_609()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_610()) return true; + return false; + } + + inline bool jj_3R_689() + { + if (jj_done) return true; + if (jj_3R_234()) return true; + return false; + } + + inline bool jj_3R_446() + { + if (jj_done) return true; + if (jj_scan_token(VARIABLE_T)) return true; + return false; + } + + inline bool jj_3R_275() + { + if (jj_done) return true; + if (jj_3R_132()) return true; + return false; + } + + inline bool jj_3R_445() + { + if (jj_done) return true; + if (jj_scan_token(SIGNAL_T)) return true; + return false; + } + + inline bool jj_3R_627() + { + if (jj_done) return true; + if (jj_scan_token(ALL_T)) return true; + return false; + } + + inline bool jj_3R_626() + { + if (jj_done) return true; + if (jj_scan_token(OTHER_T)) return true; + return false; + } + + inline bool jj_3R_367() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_444()) { + jj_scanpos = xsp; + if (jj_3R_445()) { + jj_scanpos = xsp; + if (jj_3R_446()) return true; + } + } + return false; + } + + inline bool jj_3R_444() + { + if (jj_done) return true; + if (jj_scan_token(CONSTANT_T)) return true; + return false; + } + + inline bool jj_3R_669() + { + if (jj_done) return true; + if (jj_3R_679()) return true; + return false; + } + + inline bool jj_3R_625() + { + if (jj_done) return true; + Token * xsp; + if (jj_3R_669()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_669()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_609() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_625()) { + jj_scanpos = xsp; + if (jj_3R_626()) { + jj_scanpos = xsp; + if (jj_3R_627()) return true; + } + } + return false; + } + + inline bool jj_3R_579() + { + if (jj_done) return true; + if (jj_3R_531()) return true; + if (jj_scan_token(BEGIN_T)) return true; + return false; + } + + inline bool jj_3R_296() + { + if (jj_done) return true; + if (jj_scan_token(SLSL_T)) return true; + if (jj_3R_367()) return true; + if (jj_3R_368()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + if (jj_scan_token(RSRS_T)) return true; + return false; + } + + inline bool jj_3R_679() + { + if (jj_done) return true; + if (jj_3R_688()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_689()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_285() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_535() + { + if (jj_done) return true; + if (jj_scan_token(BEGIN_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_579()) jj_scanpos = xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_580()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_235() + { + if (jj_done) return true; + if (jj_3R_132()) return true; + return false; + } + + inline bool jj_3_105() + { + if (jj_done) return true; + if (jj_3R_139()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_138() + { + if (jj_done) return true; + if (jj_scan_token(END_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_285()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_595() + { + if (jj_done) return true; + if (jj_3R_132()) return true; + return false; + } + + inline bool jj_3_31() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3_33() + { + if (jj_done) return true; + if (jj_3R_87()) return true; + return false; + } + + inline bool jj_3R_578() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_105()) jj_scanpos = xsp; + if (jj_3R_86()) return true; + if (jj_scan_token(ARROW_T)) return true; + if (jj_3R_535()) return true; + return false; + } + + inline bool jj_3_32() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_613() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_612()) return true; + return false; + } + + inline bool jj_3R_534() + { + if (jj_done) return true; + Token * xsp; + if (jj_3R_578()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_578()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_474() + { + if (jj_done) return true; + if (jj_scan_token(CASE_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(GENERATE_T)) return true; + if (jj_3R_534()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_104()) jj_scanpos = xsp; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(GENERATE_T)) return true; + if (jj_3R_535()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_131() + { + if (jj_done) return true; + if (jj_scan_token(GENERIC_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_298()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_648() + { + if (jj_done) return true; + if (jj_scan_token(BOX_T)) return true; + return false; + } + + inline bool jj_3R_132() + { + if (jj_done) return true; + if (jj_scan_token(GENERIC_T)) return true; + if (jj_scan_token(MAP_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_163()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_334() + { + if (jj_done) return true; + if (jj_scan_token(ENTITY_T)) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_572() + { + if (jj_done) return true; + if (jj_3R_612()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_613()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_130() + { + if (jj_done) return true; + if (jj_scan_token(FUNCTION_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_scan_token(NEW_T)) return true; + if (jj_3R_60()) return true; + if (jj_3R_234()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_275()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_612() + { + if (jj_done) return true; + if (jj_3R_610()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_648()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_581() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_644() + { + if (jj_done) return true; + if (jj_scan_token(FILE_T)) return true; + return false; + } + + inline bool jj_3R_643() + { + if (jj_done) return true; + if (jj_scan_token(GROUP_T)) return true; + return false; + } + + inline bool jj_3R_108() + { + if (jj_done) return true; + if (jj_scan_token(PACKAGE_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_scan_token(NEW_T)) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_595()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_642() + { + if (jj_done) return true; + if (jj_scan_token(UNITS_T)) return true; + return false; + } + + inline bool jj_3R_641() + { + if (jj_done) return true; + if (jj_scan_token(LITERAL_T)) return true; + return false; + } + + inline bool jj_3R_640() + { + if (jj_done) return true; + if (jj_scan_token(LABEL_T)) return true; + return false; + } + + inline bool jj_3R_639() + { + if (jj_done) return true; + if (jj_scan_token(COMPONENT_T)) return true; + return false; + } + + inline bool jj_3R_638() + { + if (jj_done) return true; + if (jj_scan_token(VARIABLE_T)) return true; + return false; + } + + inline bool jj_3R_637() + { + if (jj_done) return true; + if (jj_scan_token(SIGNAL_T)) return true; + return false; + } + + inline bool jj_3R_636() + { + if (jj_done) return true; + if (jj_scan_token(CONSTANT_T)) return true; + return false; + } + + inline bool jj_3R_635() + { + if (jj_done) return true; + if (jj_scan_token(SUBTYPE_T)) return true; + return false; + } + + inline bool jj_3R_634() + { + if (jj_done) return true; + if (jj_scan_token(TYPE_T)) return true; + return false; + } + + inline bool jj_3R_87() + { + if (jj_done) return true; + if (jj_scan_token(PACKAGE_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_scan_token(NEW_T)) return true; + if (jj_3R_60()) return true; + if (jj_3R_234()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_235()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_633() + { + if (jj_done) return true; + if (jj_scan_token(PACKAGE_T)) return true; + return false; + } + + inline bool jj_3R_632() + { + if (jj_done) return true; + if (jj_scan_token(FUNCTION_T)) return true; + return false; + } + + inline bool jj_3R_631() + { + if (jj_done) return true; + if (jj_scan_token(PROCEDURE_T)) return true; + return false; + } + + inline bool jj_3R_630() + { + if (jj_done) return true; + if (jj_scan_token(CONFIGURATION_T)) return true; + return false; + } + + inline bool jj_3R_629() + { + if (jj_done) return true; + if (jj_scan_token(ARCHITECTURE_T)) return true; + return false; + } + + inline bool jj_3R_628() + { + if (jj_done) return true; + if (jj_scan_token(ENTITY_T)) return true; + return false; + } + + inline bool jj_3R_610() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_628()) { + jj_scanpos = xsp; + if (jj_3R_629()) { + jj_scanpos = xsp; + if (jj_3R_630()) { + jj_scanpos = xsp; + if (jj_3R_631()) { + jj_scanpos = xsp; + if (jj_3R_632()) { + jj_scanpos = xsp; + if (jj_3R_633()) { + jj_scanpos = xsp; + if (jj_3R_634()) { + jj_scanpos = xsp; + if (jj_3R_635()) { + jj_scanpos = xsp; + if (jj_3R_636()) { + jj_scanpos = xsp; + if (jj_3R_637()) { + jj_scanpos = xsp; + if (jj_3R_638()) { + jj_scanpos = xsp; + if (jj_3R_639()) { + jj_scanpos = xsp; + if (jj_3R_640()) { + jj_scanpos = xsp; + if (jj_3R_641()) { + jj_scanpos = xsp; + if (jj_3R_642()) { + jj_scanpos = xsp; + if (jj_3R_643()) { + jj_scanpos = xsp; + if (jj_3R_644()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_538() + { + if (jj_done) return true; + if (jj_scan_token(OPEN_T)) return true; + return false; + } + + inline bool jj_3R_537() + { + if (jj_done) return true; + if (jj_scan_token(CONFIGURATION_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3_30() + { + if (jj_done) return true; + if (jj_3R_86()) return true; + if (jj_scan_token(ARROW_T)) return true; + return false; + } + + inline bool jj_3R_536() + { + if (jj_done) return true; + if (jj_scan_token(ENTITY_T)) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_581()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_476() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_536()) { + jj_scanpos = xsp; + if (jj_3R_537()) { + jj_scanpos = xsp; + if (jj_3R_538()) return true; + } + } + return false; + } + + inline bool jj_3R_687() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3_29() + { + if (jj_done) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_706() + { + if (jj_done) return true; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_28() + { + if (jj_done) return true; + if (jj_3R_84()) return true; + return false; + } + + inline bool jj_3R_254() + { + if (jj_done) return true; + if (jj_3R_351()) return true; + return false; + } + + inline bool jj_3R_344() + { + if (jj_done) return true; + if (jj_3R_86()) return true; + if (jj_scan_token(ARROW_T)) return true; + return false; + } + + inline bool jj_3R_236() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_344()) jj_scanpos = xsp; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_695() + { + if (jj_done) return true; + if (jj_3R_704()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_159() + { + if (jj_done) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_686() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_695()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_158() + { + if (jj_done) return true; + if (jj_3R_84()) return true; + return false; + } + + inline bool jj_3R_68() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_158()) { + jj_scanpos = xsp; + if (jj_3R_159()) return true; + } + return false; + } + + inline bool jj_3R_721() + { + if (jj_done) return true; + if (jj_3R_478()) return true; + return false; + } + + inline bool jj_3R_720() + { + if (jj_done) return true; + if (jj_3R_525()) return true; + return false; + } + + inline bool jj_3R_719() + { + if (jj_done) return true; + if (jj_3R_332()) return true; + return false; + } + + inline bool jj_3R_704() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_719()) { + jj_scanpos = xsp; + if (jj_3R_720()) { + jj_scanpos = xsp; + if (jj_3R_721()) return true; + } + } + return false; + } + + inline bool jj_3R_571() + { + if (jj_done) return true; + if (jj_3R_611()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_685() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_527() + { + if (jj_done) return true; + if (jj_scan_token(DISCONNECT_T)) return true; + if (jj_3R_571()) return true; + if (jj_scan_token(AFTER_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_559() + { + if (jj_done) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_239() + { + if (jj_done) return true; + if (jj_scan_token(DOWNTO_T)) return true; + return false; + } + + inline bool jj_3R_678() + { + if (jj_done) return true; + if (jj_scan_token(PROTECTED_T)) return true; + if (jj_3R_686()) return true; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(PROTECTED_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_687()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_102() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3R_253() + { + if (jj_done) return true; + if (jj_3R_350()) return true; + return false; + } + + inline bool jj_3R_110() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_238()) { + jj_scanpos = xsp; + if (jj_3R_239()) return true; + } + return false; + } + + inline bool jj_3R_238() + { + if (jj_done) return true; + if (jj_scan_token(TO_T)) return true; + return false; + } + + inline bool jj_3R_694() + { + if (jj_done) return true; + if (jj_3R_703()) return true; + return false; + } + + inline bool jj_3R_545() + { + if (jj_done) return true; + if (jj_3R_295()) return true; + return false; + } + + inline bool jj_3R_684() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_694()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_544() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_492() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_544()) { + jj_scanpos = xsp; + if (jj_3R_545()) return true; + } + return false; + } + + inline bool jj_3R_718() + { + if (jj_done) return true; + if (jj_3R_528()) return true; + return false; + } + + inline bool jj_3R_715() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3_103() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_717() + { + if (jj_done) return true; + if (jj_3R_478()) return true; + return false; + } + + inline bool jj_3R_716() + { + if (jj_done) return true; + if (jj_3R_525()) return true; + return false; + } + + inline bool jj_3R_714() + { + if (jj_done) return true; + if (jj_3R_523()) return true; + return false; + } + + inline bool jj_3R_713() + { + if (jj_done) return true; + if (jj_3R_522()) return true; + return false; + } + + inline bool jj_3R_712() + { + if (jj_done) return true; + if (jj_3R_521()) return true; + return false; + } + + inline bool jj_3R_711() + { + if (jj_done) return true; + if (jj_3R_519()) return true; + return false; + } + + inline bool jj_3R_710() + { + if (jj_done) return true; + if (jj_3R_518()) return true; + return false; + } + + inline bool jj_3R_516() + { + if (jj_done) return true; + if (jj_scan_token(REJECT_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_709() + { + if (jj_done) return true; + if (jj_3R_517()) return true; + return false; + } + + inline bool jj_3R_707() + { + if (jj_done) return true; + if (jj_3R_93()) return true; + return false; + } + + inline bool jj_3R_703() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_707()) { + jj_scanpos = xsp; + if (jj_3R_708()) { + jj_scanpos = xsp; + if (jj_3R_709()) { + jj_scanpos = xsp; + if (jj_3R_710()) { + jj_scanpos = xsp; + if (jj_3R_711()) { + jj_scanpos = xsp; + if (jj_3R_712()) { + jj_scanpos = xsp; + if (jj_3R_713()) { + jj_scanpos = xsp; + if (jj_3R_714()) { + jj_scanpos = xsp; + if (jj_3R_715()) { + jj_scanpos = xsp; + if (jj_3R_716()) { + jj_scanpos = xsp; + if (jj_3R_717()) { + jj_scanpos = xsp; + if (jj_3_103()) { + jj_scanpos = xsp; + if (jj_3R_718()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_708() + { + if (jj_done) return true; + if (jj_3R_496()) return true; + return false; + } + + inline bool jj_3R_456() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_516()) jj_scanpos = xsp; + if (jj_scan_token(INERTIAL_T)) return true; + return false; + } + + inline bool jj_3_27() + { + if (jj_done) return true; + if (jj_3R_83()) return true; + return false; + } + + inline bool jj_3R_377() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_455()) { + jj_scanpos = xsp; + if (jj_3R_456()) return true; + } + return false; + } + + inline bool jj_3R_455() + { + if (jj_done) return true; + if (jj_scan_token(TRANSPORT_T)) return true; + return false; + } + + inline bool jj_3R_252() + { + if (jj_done) return true; + if (jj_3R_349()) return true; + return false; + } + + inline bool jj_3_26() + { + if (jj_done) return true; + if (jj_3R_82()) return true; + return false; + } + + inline bool jj_3R_499() + { + if (jj_done) return true; + if (jj_scan_token(AFTER_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_277() + { + if (jj_done) return true; + if (jj_3R_83()) return true; + return false; + } + + inline bool jj_3R_137() + { + if (jj_done) return true; + if (jj_scan_token(PROTECTED_T)) return true; + if (jj_scan_token(BODY_T)) return true; + if (jj_3R_684()) return true; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(PROTECTED_T)) return true; + if (jj_scan_token(BODY_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_685()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_457() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_424()) return true; + return false; + } + + inline bool jj_3R_133() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_276()) { + jj_scanpos = xsp; + if (jj_3R_277()) return true; + } + return false; + } + + inline bool jj_3R_276() + { + if (jj_done) return true; + if (jj_3R_82()) return true; + return false; + } + + inline bool jj_3R_424() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_499()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_705() + { + if (jj_done) return true; + if (jj_scan_token(ARRAY_T)) return true; + if (jj_3R_83()) return true; + if (jj_scan_token(OF_T)) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_379() + { + if (jj_done) return true; + if (jj_scan_token(UNAFFECTED_T)) return true; + return false; + } + + inline bool jj_3R_303() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_378()) { + jj_scanpos = xsp; + if (jj_3R_379()) return true; + } + return false; + } + + inline bool jj_3R_378() + { + if (jj_done) return true; + if (jj_3R_424()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_457()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_251() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_519() + { + if (jj_done) return true; + if (jj_scan_token(CONSTANT_T)) return true; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_559()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_118() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_251()) jj_scanpos = xsp; + if (jj_scan_token(WAIT_T)) return true; + xsp = jj_scanpos; + if (jj_3R_252()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_253()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_254()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_25() + { + if (jj_done) return true; + if (jj_3R_81()) return true; + return false; + } + + inline bool jj_3R_154() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_153()) return true; + return false; + } + + inline bool jj_3R_526() + { + if (jj_done) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_3R_178()) return true; + if (jj_3R_317()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_543() + { + if (jj_done) return true; + if (jj_3R_318()) return true; + return false; + } + + inline bool jj_3R_542() + { + if (jj_done) return true; + if (jj_3R_81()) return true; + return false; + } + + inline bool jj_3R_479() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_542()) { + jj_scanpos = xsp; + if (jj_3R_543()) return true; + } + return false; + } + + inline bool jj_3R_562() + { + if (jj_done) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_541() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_540()) return true; + return false; + } + + inline bool jj_3R_521() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(100)) jj_scanpos = xsp; + if (jj_scan_token(VARIABLE_T)) return true; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + xsp = jj_scanpos; + if (jj_3R_562()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_419() + { + if (jj_done) return true; + if (jj_3R_498()) return true; + return false; + } + + inline bool jj_3_101() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_347() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_418()) { + jj_scanpos = xsp; + if (jj_3R_419()) return true; + } + return false; + } + + inline bool jj_3R_418() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_101()) jj_scanpos = xsp; + if (jj_3R_115()) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_24() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_80()) return true; + if (jj_scan_token(ELSE_T)) return true; + return false; + } + + inline bool jj_3R_335() + { + if (jj_done) return true; + if (jj_scan_token(CONFIGURATION_T)) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_305() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_80()) return true; + return false; + } + + inline bool jj_3R_304() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_80()) return true; + if (jj_scan_token(ELSE_T)) return true; + if (jj_3R_303()) return true; + return false; + } + + inline bool jj_3R_478() + { + if (jj_done) return true; + if (jj_scan_token(USE_T)) return true; + if (jj_3R_540()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_541()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_167() + { + if (jj_done) return true; + if (jj_3R_303()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_304()) { jj_scanpos = xsp; break; } + } + xsp = jj_scanpos; + if (jj_3R_305()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_63() + { + if (jj_done) return true; + if (jj_scan_token(ARRAY_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_153()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_154()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN_T)) return true; + if (jj_scan_token(OF_T)) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_156() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_72() + { + if (jj_done) return true; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + if (jj_3R_166()) return true; + if (jj_3R_167()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_668() + { + if (jj_done) return true; + if (jj_3R_678()) return true; + return false; + } + + inline bool jj_3R_350() + { + if (jj_done) return true; + if (jj_scan_token(UNTIL_T)) return true; + if (jj_3R_80()) return true; + return false; + } + + inline bool jj_3_100() + { + if (jj_done) return true; + if (jj_3R_137()) return true; + return false; + } + + inline bool jj_3R_667() + { + if (jj_done) return true; + if (jj_3R_677()) return true; + return false; + } + + inline bool jj_3R_666() + { + if (jj_done) return true; + if (jj_3R_676()) return true; + return false; + } + + inline bool jj_3R_665() + { + if (jj_done) return true; + if (jj_3R_675()) return true; + return false; + } + + inline bool jj_3R_80() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_664() + { + if (jj_done) return true; + if (jj_3R_674()) return true; + return false; + } + + inline bool jj_3R_619() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_664()) { + jj_scanpos = xsp; + if (jj_3R_665()) { + jj_scanpos = xsp; + if (jj_3R_666()) { + jj_scanpos = xsp; + if (jj_3R_667()) { + jj_scanpos = xsp; + if (jj_3_100()) { + jj_scanpos = xsp; + if (jj_3R_668()) return true; + } + } + } + } + } + return false; + } + + inline bool jj_3R_558() + { + if (jj_done) return true; + if (jj_3R_602()) return true; + return false; + } + + inline bool jj_3_23() + { + if (jj_done) return true; + if (jj_3R_79()) return true; + return false; + } + + inline bool jj_3_96() + { + if (jj_done) return true; + if (jj_3R_133()) return true; + return false; + } + + inline bool jj_3_22() + { + if (jj_done) return true; + if (jj_3R_78()) return true; + return false; + } + + inline bool jj_3_99() + { + if (jj_done) return true; + if (jj_3R_136()) return true; + return false; + } + + inline bool jj_3R_517() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_99()) { + jj_scanpos = xsp; + if (jj_3R_558()) return true; + } + return false; + } + + inline bool jj_3_21() + { + if (jj_done) return true; + if (jj_3R_77()) return true; + return false; + } + + inline bool jj_3R_106() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_76() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3_98() + { + if (jj_done) return true; + if (jj_3R_134()) return true; + if (jj_3R_135()) return true; + return false; + } + + inline bool jj_3_20() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_76()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + if (jj_scan_token(ASSERT_T)) return true; + return false; + } + + inline bool jj_3R_389() + { + if (jj_done) return true; + if (jj_3R_79()) return true; + return false; + } + + inline bool jj_3R_185() + { + if (jj_done) return true; + if (jj_3R_133()) return true; + return false; + } + + inline bool jj_3R_388() + { + if (jj_done) return true; + if (jj_3R_78()) return true; + return false; + } + + inline bool jj_3_19() + { + if (jj_done) return true; + if (jj_3R_75()) return true; + return false; + } + + inline bool jj_3R_74() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_387() + { + if (jj_done) return true; + if (jj_3R_77()) return true; + return false; + } + + inline bool jj_3_18() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_74()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + if (jj_scan_token(PROCESS_T)) return true; + return false; + } + + inline bool jj_3R_351() + { + if (jj_done) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_73() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_386() + { + if (jj_done) return true; + if (jj_3R_88()) return true; + return false; + } + + inline bool jj_3_17() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_73()) jj_scanpos = xsp; + if (jj_scan_token(BLOCK_T)) return true; + return false; + } + + inline bool jj_3R_385() + { + if (jj_done) return true; + if (jj_3R_474()) return true; + return false; + } + + inline bool jj_3R_161() + { + if (jj_done) return true; + if (jj_3R_135()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_98()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_384() + { + if (jj_done) return true; + if (jj_3R_75()) return true; + return false; + } + + inline bool jj_3R_247() + { + if (jj_done) return true; + if (jj_3R_109()) return true; + return false; + } + + inline bool jj_3R_383() + { + if (jj_done) return true; + if (jj_3R_89()) return true; + return false; + } + + inline bool jj_3R_115() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_246()) { + jj_scanpos = xsp; + if (jj_3R_247()) return true; + } + return false; + } + + inline bool jj_3_97() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_246() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_309() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_382()) { + jj_scanpos = xsp; + if (jj_3R_383()) { + jj_scanpos = xsp; + if (jj_3R_384()) { + jj_scanpos = xsp; + if (jj_3R_385()) { + jj_scanpos = xsp; + if (jj_3R_386()) { + jj_scanpos = xsp; + if (jj_3R_387()) { + jj_scanpos = xsp; + if (jj_3R_388()) { + jj_scanpos = xsp; + if (jj_3R_389()) return true; + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_382() + { + if (jj_done) return true; + if (jj_3R_473()) return true; + return false; + } + + inline bool jj_3_95() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3_16() + { + if (jj_done) return true; + if (jj_3R_72()) return true; + return false; + } + + inline bool jj_3R_218() + { + if (jj_done) return true; + if (jj_scan_token(ALL_T)) return true; + return false; + } + + inline bool jj_3R_217() + { + if (jj_done) return true; + if (jj_3R_295()) return true; + return false; + } + + inline bool jj_3R_216() + { + if (jj_done) return true; + if (jj_3R_337()) return true; + return false; + } + + inline bool jj_3R_173() + { + if (jj_done) return true; + if (jj_3R_310()) return true; + return false; + } + + inline bool jj_3R_215() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_100() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_215()) { + jj_scanpos = xsp; + if (jj_3R_216()) { + jj_scanpos = xsp; + if (jj_3R_217()) { + jj_scanpos = xsp; + if (jj_3R_218()) return true; + } + } + } + return false; + } + + inline bool jj_3R_172() + { + if (jj_done) return true; + if (jj_3R_72()) return true; + return false; + } + + inline bool jj_3_15() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_184() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_77() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_15()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_172()) { + jj_scanpos = xsp; + if (jj_3R_173()) return true; + } + return false; + } + + inline bool jj_3R_85() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_184()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_185()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_14() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_79() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_14()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + if (jj_3R_177()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_13() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3_12() + { + if (jj_done) return true; + if (jj_3R_70()) return true; + return false; + } + + inline bool jj_3R_88() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_13()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + if (jj_3R_188()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_518() + { + if (jj_done) return true; + if (jj_scan_token(SUBTYPE_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_85()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_592() + { + if (jj_done) return true; + if (jj_3R_113()) return true; + return false; + } + + inline bool jj_3R_683() + { + if (jj_done) return true; + if (jj_3R_693()) return true; + return false; + } + + inline bool jj_3R_569() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_548() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_592()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3_94() + { + if (jj_done) return true; + if (jj_3R_132()) return true; + return false; + } + + inline bool jj_3R_493() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_298()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_682() + { + if (jj_done) return true; + if (jj_3R_692()) return true; + return false; + } + + inline bool jj_3R_675() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_682()) { + jj_scanpos = xsp; + if (jj_3R_683()) return true; + } + return false; + } + + inline bool jj_3R_176() + { + if (jj_done) return true; + if (jj_3R_314()) return true; + return false; + } + + inline bool jj_3_93() + { + if (jj_done) return true; + if (jj_3R_131()) return true; + return false; + } + + inline bool jj_3R_175() + { + if (jj_done) return true; + if (jj_3R_70()) return true; + return false; + } + + inline bool jj_3R_178() + { + if (jj_done) return true; + if (jj_3R_316()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_495() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_546()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_78() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_174()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_175()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_176()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_494() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(83)) { + jj_scanpos = xsp; + if (jj_scan_token(51)) return true; + } + return false; + } + + inline bool jj_3R_412() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_494()) jj_scanpos = xsp; + if (jj_scan_token(FUNCTION_T)) return true; + if (jj_3R_492()) return true; + xsp = jj_scanpos; + if (jj_3R_495()) jj_scanpos = xsp; + if (jj_scan_token(RETURN_T)) return true; + if (jj_3R_156()) return true; + return false; + } + + inline bool jj_3R_568() + { + if (jj_done) return true; + if (jj_3R_608()) return true; + return false; + } + + inline bool jj_3R_567() + { + if (jj_done) return true; + if (jj_3R_67()) return true; + return false; + } + + inline bool jj_3R_180() + { + if (jj_done) return true; + if (jj_3R_318()) return true; + return false; + } + + inline bool jj_3R_179() + { + if (jj_done) return true; + if (jj_3R_317()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_187() + { + if (jj_done) return true; + if (jj_scan_token(BAR_T)) return true; + if (jj_3R_186()) return true; + return false; + } + + inline bool jj_3R_524() + { + if (jj_done) return true; + if (jj_scan_token(COMPONENT_T)) return true; + if (jj_3R_71()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(55)) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_567()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_568()) jj_scanpos = xsp; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(COMPONENT_T)) return true; + xsp = jj_scanpos; + if (jj_3R_569()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_81() + { + if (jj_done) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_3R_178()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_179()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_180()) jj_scanpos = xsp; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_332() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_411()) { + jj_scanpos = xsp; + if (jj_3R_412()) return true; + } + return false; + } + + inline bool jj_3R_411() + { + if (jj_done) return true; + if (jj_scan_token(PROCEDURE_T)) return true; + if (jj_3R_492()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_493()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_93()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3_94()) jj_scanpos = xsp; + if (jj_3R_403()) return true; + return false; + } + + inline bool jj_3_11() + { + if (jj_done) return true; + if (jj_3R_69()) return true; + return false; + } + + inline bool jj_3R_593() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(45)) { + jj_scanpos = xsp; + if (jj_scan_token(79)) return true; + } + return false; + } + + inline bool jj_3R_86() + { + if (jj_done) return true; + if (jj_3R_186()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_187()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3_10() + { + if (jj_done) return true; + if (jj_3R_68()) return true; + return false; + } + + inline bool jj_3R_591() + { + if (jj_done) return true; + if (jj_3R_618()) return true; + return false; + } + + inline bool jj_3R_589() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_547() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_591()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_322() + { + if (jj_done) return true; + if (jj_scan_token(OTHER_T)) return true; + return false; + } + + inline bool jj_3R_321() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3_91() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3R_663() + { + if (jj_done) return true; + if (jj_3R_528()) return true; + return false; + } + + inline bool jj_3R_320() + { + if (jj_done) return true; + if (jj_3R_69()) return true; + return false; + } + + inline bool jj_3R_186() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_319()) { + jj_scanpos = xsp; + if (jj_3R_320()) { + jj_scanpos = xsp; + if (jj_3R_321()) { + jj_scanpos = xsp; + if (jj_3R_322()) return true; + } + } + } + return false; + } + + inline bool jj_3R_319() + { + if (jj_done) return true; + if (jj_3R_68()) return true; + return false; + } + + inline bool jj_3R_662() + { + if (jj_done) return true; + if (jj_3R_478()) return true; + return false; + } + + inline bool jj_3_92() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_661() + { + if (jj_done) return true; + if (jj_3R_525()) return true; + return false; + } + + inline bool jj_3R_533() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_337() + { + if (jj_done) return true; + if (jj_scan_token(CHARACTER_LITERAL)) return true; + return false; + } + + inline bool jj_3R_660() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3R_659() + { + if (jj_done) return true; + if (jj_3R_523()) return true; + return false; + } + + inline bool jj_3R_658() + { + if (jj_done) return true; + if (jj_3R_522()) return true; + return false; + } + + inline bool jj_3R_529() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_657() + { + if (jj_done) return true; + if (jj_3R_521()) return true; + return false; + } + + inline bool jj_3R_550() + { + if (jj_done) return true; + if (jj_3R_492()) return true; + return false; + } + + inline bool jj_3R_656() + { + if (jj_done) return true; + if (jj_3R_519()) return true; + return false; + } + + inline bool jj_3R_655() + { + if (jj_done) return true; + if (jj_3R_518()) return true; + return false; + } + + inline bool jj_3R_654() + { + if (jj_done) return true; + if (jj_3R_496()) return true; + return false; + } + + inline bool jj_3R_653() + { + if (jj_done) return true; + if (jj_3R_517()) return true; + return false; + } + + inline bool jj_3R_652() + { + if (jj_done) return true; + if (jj_3R_93()) return true; + return false; + } + + inline bool jj_3R_618() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_652()) { + jj_scanpos = xsp; + if (jj_3R_653()) { + jj_scanpos = xsp; + if (jj_3R_654()) { + jj_scanpos = xsp; + if (jj_3R_655()) { + jj_scanpos = xsp; + if (jj_3R_656()) { + jj_scanpos = xsp; + if (jj_3R_657()) { + jj_scanpos = xsp; + if (jj_3R_658()) { + jj_scanpos = xsp; + if (jj_3R_659()) { + jj_scanpos = xsp; + if (jj_3R_660()) { + jj_scanpos = xsp; + if (jj_3R_661()) { + jj_scanpos = xsp; + if (jj_3R_662()) { + jj_scanpos = xsp; + if (jj_3_92()) { + jj_scanpos = xsp; + if (jj_3R_663()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_587() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_86()) return true; + if (jj_scan_token(ARROW_T)) return true; + if (jj_3R_259()) return true; + return false; + } + + inline bool jj_3R_561() + { + if (jj_done) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_588() + { + if (jj_done) return true; + if (jj_3R_587()) return true; + return false; + } + + inline bool jj_3R_616() + { + if (jj_done) return true; + if (jj_3R_70()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_90() + { + if (jj_done) return true; + if (jj_3R_130()) return true; + return false; + } + + inline bool jj_3R_333() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_413()) { + jj_scanpos = xsp; + if (jj_scan_token(136)) return true; + } + return false; + } + + inline bool jj_3R_413() + { + if (jj_done) return true; + if (jj_3R_496()) return true; + return false; + } + + inline bool jj_3R_201() + { + if (jj_done) return true; + if (jj_3R_332()) return true; + if (jj_3R_333()) return true; + return false; + } + + inline bool jj_3R_549() + { + if (jj_done) return true; + if (jj_3R_593()) return true; + return false; + } + + inline bool jj_3R_200() + { + if (jj_done) return true; + if (jj_3R_130()) return true; + return false; + } + + inline bool jj_3R_93() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_200()) { + jj_scanpos = xsp; + if (jj_3R_201()) return true; + } + return false; + } + + inline bool jj_3_89() + { + if (jj_done) return true; + if (jj_3R_129()) return true; + return false; + } + + inline bool jj_3R_256() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_122() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_256()) jj_scanpos = xsp; + if (jj_scan_token(CASE_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_587()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_588()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(CASE_T)) return true; + xsp = jj_scanpos; + if (jj_3R_589()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_577() + { + if (jj_done) return true; + if (jj_3R_309()) return true; + return false; + } + + inline bool jj_3R_560() + { + if (jj_done) return true; + if (jj_3R_603()) return true; + return false; + } + + inline bool jj_3R_532() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_577()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_162() + { + if (jj_done) return true; + if (jj_3R_129()) return true; + if (jj_3R_161()) return true; + return false; + } + + inline bool jj_3R_617() + { + if (jj_done) return true; + if (jj_3R_314()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_477() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_539()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_473() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_scan_token(BLOCK_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_529()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(55)) jj_scanpos = xsp; + if (jj_3R_530()) return true; + if (jj_3R_531()) return true; + if (jj_scan_token(BEGIN_T)) return true; + if (jj_3R_532()) return true; + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(BLOCK_T)) return true; + xsp = jj_scanpos; + if (jj_3R_533()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_496() + { + if (jj_done) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_547()) return true; + if (jj_scan_token(BEGIN_T)) return true; + if (jj_3R_548()) return true; + if (jj_scan_token(END_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_549()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_550()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_9() + { + if (jj_done) return true; + if (jj_3R_67()) return true; + return false; + } + + inline bool jj_3R_398() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_477()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_341() + { + if (jj_done) return true; + if (jj_scan_token(STRINGLITERAL)) return true; + return false; + } + + inline bool jj_3R_575() + { + if (jj_done) return true; + if (jj_3R_608()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_617()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_574() + { + if (jj_done) return true; + if (jj_3R_67()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_616()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_530() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_574()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_575()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_576() + { + if (jj_done) return true; + if (jj_3R_381()) return true; + return false; + } + + inline bool jj_3R_531() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_576()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_414() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_160() + { + if (jj_done) return true; + if (jj_3R_299()) return true; + return false; + } + + inline bool jj_3R_472() + { + if (jj_done) return true; + if (jj_3R_528()) return true; + return false; + } + + inline bool jj_3R_69() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_160()) jj_scanpos = xsp; + if (jj_3R_161()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_162()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3_7() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3_8() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_471() + { + if (jj_done) return true; + if (jj_3R_478()) return true; + return false; + } + + inline bool jj_3R_343() + { + if (jj_done) return true; + if (jj_scan_token(RETURN_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_670() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_470() + { + if (jj_done) return true; + if (jj_3R_527()) return true; + return false; + } + + inline bool jj_3R_342() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_414()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_469() + { + if (jj_done) return true; + if (jj_3R_526()) return true; + return false; + } + + inline bool jj_3R_468() + { + if (jj_done) return true; + if (jj_3R_525()) return true; + return false; + } + + inline bool jj_3R_234() + { + if (jj_done) return true; + if (jj_scan_token(LBRACKET_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_342()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_343()) jj_scanpos = xsp; + if (jj_scan_token(RBRACKET_T)) return true; + return false; + } + + inline bool jj_3R_466() + { + if (jj_done) return true; + if (jj_3R_524()) return true; + return false; + } + + inline bool jj_3R_467() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3R_647() + { + if (jj_done) return true; + if (jj_scan_token(ALL_T)) return true; + return false; + } + + inline bool jj_3R_465() + { + if (jj_done) return true; + if (jj_3R_523()) return true; + return false; + } + + inline bool jj_3R_646() + { + if (jj_done) return true; + if (jj_scan_token(OTHER_T)) return true; + return false; + } + + inline bool jj_3R_464() + { + if (jj_done) return true; + if (jj_3R_522()) return true; + return false; + } + + inline bool jj_3R_463() + { + if (jj_done) return true; + if (jj_3R_521()) return true; + return false; + } + + inline bool jj_3R_645() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_670()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_611() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_645()) { + jj_scanpos = xsp; + if (jj_3R_646()) { + jj_scanpos = xsp; + if (jj_3R_647()) return true; + } + } + return false; + } + + inline bool jj_3R_462() + { + if (jj_done) return true; + if (jj_3R_520()) return true; + return false; + } + + inline bool jj_3R_461() + { + if (jj_done) return true; + if (jj_3R_519()) return true; + return false; + } + + inline bool jj_3R_621() + { + if (jj_done) return true; + if (jj_scan_token(BUS_T)) return true; + return false; + } + + inline bool jj_3R_460() + { + if (jj_done) return true; + if (jj_3R_518()) return true; + return false; + } + + inline bool jj_3R_400() + { + if (jj_done) return true; + if (jj_3R_479()) return true; + return false; + } + + inline bool jj_3R_459() + { + if (jj_done) return true; + if (jj_3R_517()) return true; + return false; + } + + inline bool jj_3R_399() + { + if (jj_done) return true; + if (jj_3R_478()) return true; + return false; + } + + inline bool jj_3R_620() + { + if (jj_done) return true; + if (jj_scan_token(REGISTER_T)) return true; + return false; + } + + inline bool jj_3R_603() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_620()) { + jj_scanpos = xsp; + if (jj_3R_621()) return true; + } + return false; + } + + inline bool jj_3R_381() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_458()) { + jj_scanpos = xsp; + if (jj_3R_459()) { + jj_scanpos = xsp; + if (jj_3R_460()) { + jj_scanpos = xsp; + if (jj_3R_461()) { + jj_scanpos = xsp; + if (jj_3R_462()) { + jj_scanpos = xsp; + if (jj_3R_463()) { + jj_scanpos = xsp; + if (jj_3R_464()) { + jj_scanpos = xsp; + if (jj_3R_465()) { + jj_scanpos = xsp; + if (jj_3R_466()) { + jj_scanpos = xsp; + if (jj_3R_467()) { + jj_scanpos = xsp; + if (jj_3R_468()) { + jj_scanpos = xsp; + if (jj_3R_469()) { + jj_scanpos = xsp; + if (jj_3R_470()) { + jj_scanpos = xsp; + if (jj_3R_471()) { + jj_scanpos = xsp; + if (jj_3_8()) { + jj_scanpos = xsp; + if (jj_3R_472()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_458() + { + if (jj_done) return true; + if (jj_3R_93()) return true; + return false; + } + + inline bool jj_3R_318() + { + if (jj_done) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_3R_398()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_399()) { jj_scanpos = xsp; break; } + } + while (true) { + xsp = jj_scanpos; + if (jj_3R_400()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(FOR_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_520() + { + if (jj_done) return true; + if (jj_scan_token(SIGNAL_T)) return true; + if (jj_3R_197()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_560()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_561()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_88() + { + if (jj_done) return true; + if (jj_3R_128()) return true; + return false; + } + + inline bool jj_3R_95() + { + if (jj_done) return true; + if (jj_scan_token(BIT_STRING_LITERAL)) return true; + return false; + } + + inline bool jj_3R_240() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3_87() + { + if (jj_done) return true; + if (jj_3R_127()) return true; + return false; + } + + inline bool jj_3R_397() + { + if (jj_done) return true; + if (jj_3R_314()) return true; + return false; + } + + inline bool jj_3R_497() + { + if (jj_done) return true; + if (jj_3R_377()) return true; + return false; + } + + inline bool jj_3R_396() + { + if (jj_done) return true; + if (jj_3R_70()) return true; + return false; + } + + inline bool jj_3_86() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_395() + { + if (jj_done) return true; + if (jj_scan_token(USE_T)) return true; + if (jj_3R_476()) return true; + return false; + } + + inline bool jj_3R_417() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_86()) jj_scanpos = xsp; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + xsp = jj_scanpos; + if (jj_3R_497()) jj_scanpos = xsp; + if (jj_3R_303()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_317() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_395()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_396()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_397()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_416() + { + if (jj_done) return true; + if (jj_3R_128()) return true; + return false; + } + + inline bool jj_3R_359() + { + if (jj_done) return true; + if (jj_3R_437()) return true; + if (jj_3R_69()) return true; + return false; + } + + inline bool jj_3R_346() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_415()) { + jj_scanpos = xsp; + if (jj_3R_416()) { + jj_scanpos = xsp; + if (jj_3R_417()) return true; + } + } + return false; + } + + inline bool jj_3R_415() + { + if (jj_done) return true; + if (jj_3R_127()) return true; + return false; + } + + inline bool jj_3R_374() + { + if (jj_done) return true; + if (jj_scan_token(MINUS_T)) return true; + return false; + } + + inline bool jj_3R_299() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_373()) { + jj_scanpos = xsp; + if (jj_3R_374()) return true; + } + return false; + } + + inline bool jj_3R_373() + { + if (jj_done) return true; + if (jj_scan_token(PLUS_T)) return true; + return false; + } + + inline bool jj_3R_509() + { + if (jj_done) return true; + if (jj_scan_token(ROR_T)) return true; + return false; + } + + inline bool jj_3R_508() + { + if (jj_done) return true; + if (jj_scan_token(ROL_T)) return true; + return false; + } + + inline bool jj_3R_507() + { + if (jj_done) return true; + if (jj_scan_token(SRA_T)) return true; + return false; + } + + inline bool jj_3R_506() + { + if (jj_done) return true; + if (jj_scan_token(SLA_T)) return true; + return false; + } + + inline bool jj_3R_505() + { + if (jj_done) return true; + if (jj_scan_token(SRL_T)) return true; + return false; + } + + inline bool jj_3R_437() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_504()) { + jj_scanpos = xsp; + if (jj_3R_505()) { + jj_scanpos = xsp; + if (jj_3R_506()) { + jj_scanpos = xsp; + if (jj_3R_507()) { + jj_scanpos = xsp; + if (jj_3R_508()) { + jj_scanpos = xsp; + if (jj_3R_509()) return true; + } + } + } + } + } + return false; + } + + inline bool jj_3R_504() + { + if (jj_done) return true; + if (jj_scan_token(SLL_T)) return true; + return false; + } + + inline bool jj_3R_245() + { + if (jj_done) return true; + if (jj_3R_348()) return true; + return false; + } + + inline bool jj_3R_292() + { + if (jj_done) return true; + if (jj_3R_69()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_359()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_84() + { + if (jj_done) return true; + if (jj_3R_125()) return true; + return false; + } + + inline bool jj_3R_324() + { + if (jj_done) return true; + if (jj_scan_token(SEVERITY_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3_85() + { + if (jj_done) return true; + if (jj_3R_126()) return true; + return false; + } + + inline bool jj_3_83() + { + if (jj_done) return true; + if (jj_3R_124()) return true; + return false; + } + + inline bool jj_3_82() + { + if (jj_done) return true; + if (jj_3R_123()) return true; + return false; + } + + inline bool jj_3R_119() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3_81() + { + if (jj_done) return true; + if (jj_3R_122()) return true; + return false; + } + + inline bool jj_3R_525() + { + if (jj_done) return true; + if (jj_scan_token(ATTRIBUTE_T)) return true; + if (jj_3R_220()) return true; + if (jj_scan_token(OF_T)) return true; + if (jj_3R_570()) return true; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_78() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_119()) jj_scanpos = xsp; + if (jj_3R_115()) return true; + if (jj_scan_token(VARASSIGN_T)) return true; + return false; + } + + inline bool jj_3_80() + { + if (jj_done) return true; + if (jj_3R_121()) return true; + return false; + } + + inline bool jj_3R_301() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_300()) return true; + return false; + } + + inline bool jj_3R_111() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(APOSTROPHE_T)) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_240()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_340() + { + if (jj_done) return true; + if (jj_scan_token(RANGE_T)) return true; + return false; + } + + inline bool jj_3_79() + { + if (jj_done) return true; + if (jj_3R_120()) return true; + return false; + } + + inline bool jj_3R_114() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3_77() + { + if (jj_done) return true; + if (jj_3R_118()) return true; + return false; + } + + inline bool jj_3R_220() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_339()) { + jj_scanpos = xsp; + if (jj_3R_340()) return true; + } + return false; + } + + inline bool jj_3R_339() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_244() + { + if (jj_done) return true; + if (jj_3R_347()) return true; + return false; + } + + inline bool jj_3_74() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_114()) jj_scanpos = xsp; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + return false; + } + + inline bool jj_3_76() + { + if (jj_done) return true; + if (jj_3R_117()) return true; + return false; + } + + inline bool jj_3_75() + { + if (jj_done) return true; + if (jj_3R_116()) return true; + return false; + } + + inline bool jj_3R_475() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_303()) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_86()) return true; + return false; + } + + inline bool jj_3_6() + { + if (jj_done) return true; + if (jj_3R_64()) return true; + if (jj_scan_token(ARROW_T)) return true; + return false; + } + + inline bool jj_3R_65() + { + if (jj_done) return true; + if (jj_scan_token(ATTRIBUTE_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_156()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_323() + { + if (jj_done) return true; + if (jj_scan_token(REPORT_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_113() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_243()) { + jj_scanpos = xsp; + if (jj_3_75()) { + jj_scanpos = xsp; + if (jj_3_76()) { + jj_scanpos = xsp; + if (jj_3_77()) { + jj_scanpos = xsp; + if (jj_3R_244()) { + jj_scanpos = xsp; + if (jj_3_79()) { + jj_scanpos = xsp; + if (jj_3_80()) { + jj_scanpos = xsp; + if (jj_3_81()) { + jj_scanpos = xsp; + if (jj_3_82()) { + jj_scanpos = xsp; + if (jj_3_83()) { + jj_scanpos = xsp; + if (jj_3_84()) { + jj_scanpos = xsp; + if (jj_3_85()) { + jj_scanpos = xsp; + if (jj_3R_245()) return true; + } + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_243() + { + if (jj_done) return true; + if (jj_3R_346()) return true; + return false; + } + + inline bool jj_3R_480() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_163() + { + if (jj_done) return true; + if (jj_3R_300()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_301()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3_73() + { + if (jj_done) return true; + if (jj_3R_113()) return true; + return false; + } + + inline bool jj_3R_375() + { + if (jj_done) return true; + if (jj_3R_64()) return true; + if (jj_scan_token(ARROW_T)) return true; + return false; + } + + inline bool jj_3R_259() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_73()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_300() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_375()) jj_scanpos = xsp; + if (jj_3R_376()) return true; + return false; + } + + inline bool jj_3R_267() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_401() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_480()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_248() + { + if (jj_done) return true; + if (jj_3R_139()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_116() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_248()) jj_scanpos = xsp; + if (jj_3R_188()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3_72() + { + if (jj_done) return true; + if (jj_3R_112()) return true; + return false; + } + + inline bool jj_3R_349() + { + if (jj_done) return true; + if (jj_scan_token(ON_T)) return true; + if (jj_3R_401()) return true; + return false; + } + + inline bool jj_3R_188() + { + if (jj_done) return true; + if (jj_scan_token(ASSERT_T)) return true; + if (jj_3R_80()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_323()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_324()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_5() + { + if (jj_done) return true; + if (jj_3R_63()) return true; + return false; + } + + inline bool jj_3R_390() + { + if (jj_done) return true; + if (jj_3R_303()) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_86()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_475()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_700() + { + if (jj_done) return true; + if (jj_3R_705()) return true; + return false; + } + + inline bool jj_3R_691() + { + if (jj_done) return true; + if (jj_3R_112()) return true; + return false; + } + + inline bool jj_3R_310() + { + if (jj_done) return true; + if (jj_scan_token(WITH_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(SELECT_T)) return true; + if (jj_3R_115()) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + if (jj_3R_166()) return true; + if (jj_3R_390()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_699() + { + if (jj_done) return true; + if (jj_3R_63()) return true; + return false; + } + + inline bool jj_3R_692() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_699()) { + jj_scanpos = xsp; + if (jj_3R_700()) return true; + } + return false; + } + + inline bool jj_3R_540() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(DOT_T)) return true; + if (jj_3R_100()) return true; + return false; + } + + inline bool jj_3R_345() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(EQU_T)) return true; + if (jj_3R_103()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_566() + { + if (jj_done) return true; + if (jj_3R_234()) return true; + return false; + } + + inline bool jj_3R_681() + { + if (jj_done) return true; + if (jj_3R_82()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_691()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_680() + { + if (jj_done) return true; + if (jj_3R_690()) return true; + return false; + } + + inline bool jj_3R_674() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_680()) { + jj_scanpos = xsp; + if (jj_3R_681()) return true; + } + return false; + } + + inline bool jj_3R_266() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_237() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_236()) return true; + return false; + } + + inline bool jj_3R_126() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_266()) jj_scanpos = xsp; + if (jj_scan_token(RETURN_T)) return true; + xsp = jj_scanpos; + if (jj_3R_267()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_250() + { + if (jj_done) return true; + if (jj_scan_token(SEVERITY_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_293() + { + if (jj_done) return true; + if (jj_3R_360()) return true; + if (jj_3R_292()) return true; + return false; + } + + inline bool jj_3R_552() + { + if (jj_done) return true; + if (jj_scan_token(NEW_T)) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_702() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3_4() + { + if (jj_done) return true; + if (jj_scan_token(NEW_T)) return true; + if (jj_3R_62()) return true; + return false; + } + + inline bool jj_3R_502() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_4()) { + jj_scanpos = xsp; + if (jj_3R_552()) return true; + } + return false; + } + + inline bool jj_3R_249() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_117() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_249()) jj_scanpos = xsp; + if (jj_scan_token(REPORT_T)) return true; + if (jj_3R_59()) return true; + xsp = jj_scanpos; + if (jj_3R_250()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_607() + { + if (jj_done) return true; + if (jj_3R_295()) return true; + return false; + } + + inline bool jj_3R_606() + { + if (jj_done) return true; + if (jj_scan_token(CHARACTER_LITERAL)) return true; + return false; + } + + inline bool jj_3R_443() + { + if (jj_done) return true; + if (jj_scan_token(NOTEQU_T)) return true; + return false; + } + + inline bool jj_3R_605() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_564() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_605()) { + jj_scanpos = xsp; + if (jj_3R_606()) { + jj_scanpos = xsp; + if (jj_3R_607()) return true; + } + } + return false; + } + + inline bool jj_3R_442() + { + if (jj_done) return true; + if (jj_scan_token(LESSTHAN_T)) return true; + return false; + } + + inline bool jj_3R_441() + { + if (jj_done) return true; + if (jj_scan_token(GREATERTHAN_T)) return true; + return false; + } + + inline bool jj_3R_440() + { + if (jj_done) return true; + if (jj_scan_token(EQU_T)) return true; + return false; + } + + inline bool jj_3R_439() + { + if (jj_done) return true; + if (jj_scan_token(GT_T)) return true; + return false; + } + + inline bool jj_3R_360() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_438()) { + jj_scanpos = xsp; + if (jj_3R_439()) { + jj_scanpos = xsp; + if (jj_3R_440()) { + jj_scanpos = xsp; + if (jj_3R_441()) { + jj_scanpos = xsp; + if (jj_3R_442()) { + jj_scanpos = xsp; + if (jj_3R_443()) return true; + } + } + } + } + } + return false; + } + + inline bool jj_3R_438() + { + if (jj_done) return true; + if (jj_scan_token(LT_T)) return true; + return false; + } + + inline bool jj_3R_701() + { + if (jj_done) return true; + if (jj_3R_706()) return true; + return false; + } + + inline bool jj_3R_144() + { + if (jj_done) return true; + if (jj_3R_292()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_293()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_565() + { + if (jj_done) return true; + if (jj_scan_token(COLON_T)) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_523() + { + if (jj_done) return true; + if (jj_scan_token(ALIAS_T)) return true; + if (jj_3R_564()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_565()) jj_scanpos = xsp; + if (jj_scan_token(IS_T)) return true; + if (jj_3R_60()) return true; + xsp = jj_scanpos; + if (jj_3R_566()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_693() + { + if (jj_done) return true; + if (jj_scan_token(RECORD_T)) return true; + Token * xsp; + if (jj_3R_701()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_701()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(RECORD_T)) return true; + xsp = jj_scanpos; + if (jj_3R_702()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_109() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_236()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_237()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_273() + { + if (jj_done) return true; + if (jj_scan_token(MINUS_T)) return true; + return false; + } + + inline bool jj_3R_274() + { + if (jj_done) return true; + if (jj_scan_token(AMPERSAND_T)) return true; + return false; + } + + inline bool jj_3_71() + { + if (jj_done) return true; + if (jj_3R_111()) return true; + return false; + } + + inline bool jj_3_70() + { + if (jj_done) return true; + if (jj_3R_69()) return true; + if (jj_3R_110()) return true; + if (jj_3R_69()) return true; + return false; + } + + inline bool jj_3R_129() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_272()) { + jj_scanpos = xsp; + if (jj_3R_273()) { + jj_scanpos = xsp; + if (jj_3R_274()) return true; + } + } + return false; + } + + inline bool jj_3R_272() + { + if (jj_done) return true; + if (jj_scan_token(PLUS_T)) return true; + return false; + } + + inline bool jj_3R_82() + { + if (jj_done) return true; + if (jj_scan_token(RANGE_T)) return true; + if (jj_3R_84()) return true; + return false; + } + + inline bool jj_3_3() + { + if (jj_done) return true; + if (jj_3R_61()) return true; + return false; + } + + inline bool jj_3_69() + { + if (jj_done) return true; + if (jj_3R_109()) return true; + return false; + } + + inline bool jj_3R_183() + { + if (jj_done) return true; + if (jj_3R_111()) return true; + return false; + } + + inline bool jj_3R_453() + { + if (jj_done) return true; + if (jj_scan_token(BOX_T)) return true; + return false; + } + + inline bool jj_3R_454() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_61()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_228() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_182() + { + if (jj_done) return true; + if (jj_3R_69()) return true; + if (jj_3R_110()) return true; + if (jj_3R_69()) return true; + return false; + } + + inline bool jj_3R_84() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_182()) { + jj_scanpos = xsp; + if (jj_3R_183()) return true; + } + return false; + } + + inline bool jj_3R_376() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_452()) { + jj_scanpos = xsp; + if (jj_3R_453()) { + jj_scanpos = xsp; + if (jj_3R_454()) return true; + } + } + return false; + } + + inline bool jj_3R_452() + { + if (jj_done) return true; + if (jj_3R_61()) return true; + return false; + } + + inline bool jj_3_2() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_227() + { + if (jj_done) return true; + if (jj_3R_109()) return true; + return false; + } + + inline bool jj_3R_226() + { + if (jj_done) return true; + if (jj_3R_163()) return true; + return false; + } + + inline bool jj_3R_193() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3_1() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_62() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(APOSTROPHE_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_227()) { + jj_scanpos = xsp; + if (jj_3R_228()) return true; + } + return false; + } + + inline bool jj_3R_327() + { + if (jj_done) return true; + if (jj_3R_113()) return true; + return false; + } + + inline bool jj_3R_152() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_192() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_327()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_151() + { + if (jj_done) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_325() + { + if (jj_done) return true; + if (jj_3R_401()) return true; + return false; + } + + inline bool jj_3R_150() + { + if (jj_done) return true; + if (jj_scan_token(OPEN_T)) return true; + return false; + } + + inline bool jj_3R_61() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_150()) { + jj_scanpos = xsp; + if (jj_3R_151()) { + jj_scanpos = xsp; + if (jj_3R_152()) return true; + } + } + return false; + } + + inline bool jj_3R_676() + { + if (jj_done) return true; + if (jj_scan_token(ACCESS_T)) return true; + if (jj_3R_85()) return true; + return false; + } + + inline bool jj_3R_225() + { + if (jj_done) return true; + if (jj_scan_token(BASED_LITERAL)) return true; + return false; + } + + inline bool jj_3R_224() + { + if (jj_done) return true; + if (jj_scan_token(INTEGER)) return true; + return false; + } + + inline bool jj_3R_223() + { + if (jj_done) return true; + if (jj_scan_token(DECIMAL_LITERAL)) return true; + return false; + } + + inline bool jj_3R_104() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_223()) { + jj_scanpos = xsp; + if (jj_3R_224()) { + jj_scanpos = xsp; + if (jj_3R_225()) return true; + } + } + return false; + } + + inline bool jj_3R_190() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(14)) { + jj_scanpos = xsp; + if (jj_3R_325()) return true; + } + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_189() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_89() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_189()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + if (jj_scan_token(PROCESS_T)) return true; + xsp = jj_scanpos; + if (jj_3R_190()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_scan_token(55)) jj_scanpos = xsp; + if (jj_3R_191()) return true; + if (jj_scan_token(BEGIN_T)) return true; + if (jj_3R_192()) return true; + if (jj_scan_token(END_T)) return true; + xsp = jj_scanpos; + if (jj_scan_token(78)) jj_scanpos = xsp; + if (jj_scan_token(PROCESS_T)) return true; + xsp = jj_scanpos; + if (jj_3R_193()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_326() + { + if (jj_done) return true; + if (jj_3R_402()) return true; + return false; + } + + inline bool jj_3R_191() + { + if (jj_done) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_326()) { jj_scanpos = xsp; break; } + } + return false; + } + + inline bool jj_3R_490() + { + if (jj_done) return true; + if (jj_3R_528()) return true; + return false; + } + + inline bool jj_3_68() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_489() + { + if (jj_done) return true; + if (jj_3R_478()) return true; + return false; + } + + inline bool jj_3R_488() + { + if (jj_done) return true; + if (jj_3R_525()) return true; + return false; + } + + inline bool jj_3_67() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3R_487() + { + if (jj_done) return true; + if (jj_3R_523()) return true; + return false; + } + + inline bool jj_3R_486() + { + if (jj_done) return true; + if (jj_3R_522()) return true; + return false; + } + + inline bool jj_3R_485() + { + if (jj_done) return true; + if (jj_3R_521()) return true; + return false; + } + + inline bool jj_3R_484() + { + if (jj_done) return true; + if (jj_3R_519()) return true; + return false; + } + + inline bool jj_3R_483() + { + if (jj_done) return true; + if (jj_3R_518()) return true; + return false; + } + + inline bool jj_3R_482() + { + if (jj_done) return true; + if (jj_3R_517()) return true; + return false; + } + + inline bool jj_3R_402() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_481()) { + jj_scanpos = xsp; + if (jj_3R_482()) { + jj_scanpos = xsp; + if (jj_3R_483()) { + jj_scanpos = xsp; + if (jj_3R_484()) { + jj_scanpos = xsp; + if (jj_3R_485()) { + jj_scanpos = xsp; + if (jj_3R_486()) { + jj_scanpos = xsp; + if (jj_3R_487()) { + jj_scanpos = xsp; + if (jj_3_67()) { + jj_scanpos = xsp; + if (jj_3R_488()) { + jj_scanpos = xsp; + if (jj_3R_489()) { + jj_scanpos = xsp; + if (jj_3_68()) { + jj_scanpos = xsp; + if (jj_3R_490()) return true; + } + } + } + } + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_481() + { + if (jj_done) return true; + if (jj_3R_93()) return true; + return false; + } + + inline bool jj_3R_315() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_226()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3_66() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_120() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3_66()) jj_scanpos = xsp; + if (jj_3R_177()) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_177() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_315()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_64() + { + if (jj_done) return true; + if (jj_3R_87()) return true; + return false; + } + + inline bool jj_3R_205() + { + if (jj_done) return true; + if (jj_3R_336()) return true; + return false; + } + + inline bool jj_3_65() + { + if (jj_done) return true; + if (jj_3R_108()) return true; + return false; + } + + inline bool jj_3R_204() + { + if (jj_done) return true; + if (jj_3R_87()) return true; + return false; + } + + inline bool jj_3R_203() + { + if (jj_done) return true; + if (jj_3R_335()) return true; + return false; + } + + inline bool jj_3R_202() + { + if (jj_done) return true; + if (jj_3R_334()) return true; + return false; + } + + inline bool jj_3R_94() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_202()) { + jj_scanpos = xsp; + if (jj_3R_203()) { + jj_scanpos = xsp; + if (jj_3R_204()) { + jj_scanpos = xsp; + if (jj_3_65()) { + jj_scanpos = xsp; + if (jj_3R_205()) return true; + } + } + } + } + return false; + } + + inline bool jj_3_63() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3_62() + { + if (jj_done) return true; + if (jj_3R_107()) return true; + return false; + } + + inline bool jj_3R_435() + { + if (jj_done) return true; + if (jj_3R_109()) return true; + return false; + } + + inline bool jj_3_61() + { + if (jj_done) return true; + if (jj_3R_106()) return true; + return false; + } + + inline bool jj_3R_242() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_434() + { + if (jj_done) return true; + if (jj_3R_502()) return true; + return false; + } + + inline bool jj_3_60() + { + if (jj_done) return true; + if (jj_3R_62()) return true; + return false; + } + + inline bool jj_3R_433() + { + if (jj_done) return true; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3_59() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_432() + { + if (jj_done) return true; + if (jj_3R_107()) return true; + return false; + } + + inline bool jj_3_58() + { + if (jj_done) return true; + if (jj_3R_105()) return true; + return false; + } + + inline bool jj_3R_431() + { + if (jj_done) return true; + if (jj_3R_106()) return true; + return false; + } + + inline bool jj_3R_430() + { + if (jj_done) return true; + if (jj_3R_62()) return true; + return false; + } + + inline bool jj_3R_429() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_355() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_428()) { + jj_scanpos = xsp; + if (jj_3R_429()) { + jj_scanpos = xsp; + if (jj_3R_430()) { + jj_scanpos = xsp; + if (jj_3R_431()) { + jj_scanpos = xsp; + if (jj_3R_432()) { + jj_scanpos = xsp; + if (jj_3R_433()) { + jj_scanpos = xsp; + if (jj_3R_434()) { + jj_scanpos = xsp; + if (jj_3R_435()) return true; + } + } + } + } + } + } + } + return false; + } + + inline bool jj_3R_428() + { + if (jj_done) return true; + if (jj_3R_105()) return true; + return false; + } + + inline bool jj_3R_314() + { + if (jj_done) return true; + if (jj_scan_token(PORT_T)) return true; + if (jj_scan_token(MAP_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_163()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_624() + { + if (jj_done) return true; + if (jj_3R_298()) return true; + return false; + } + + inline bool jj_3R_608() + { + if (jj_done) return true; + if (jj_scan_token(PORT_T)) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_624()) return true; + if (jj_scan_token(RPAREN_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_241() + { + if (jj_done) return true; + if (jj_3R_345()) return true; + return false; + } + + inline bool jj_3R_112() + { + if (jj_done) return true; + if (jj_scan_token(UNITS_T)) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(SEMI_T)) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_241()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(END_T)) return true; + if (jj_scan_token(UNITS_T)) return true; + xsp = jj_scanpos; + if (jj_3R_242()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_57() + { + if (jj_done) return true; + if (jj_3R_104()) return true; + return false; + } + + inline bool jj_3R_222() + { + if (jj_done) return true; + if (jj_3R_104()) return true; + return false; + } + + inline bool jj_3R_103() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_222()) jj_scanpos = xsp; + if (jj_3R_60()) return true; + return false; + } + + inline bool jj_3R_380() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(IN_T)) return true; + if (jj_3R_68()) return true; + return false; + } + + inline bool jj_3_56() + { + if (jj_done) return true; + if (jj_3R_87()) return true; + return false; + } + + inline bool jj_3_54() + { + if (jj_done) return true; + if (jj_3R_65()) return true; + return false; + } + + inline bool jj_3_55() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_336() + { + if (jj_done) return true; + if (jj_scan_token(PACKAGE_T)) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3_53() + { + if (jj_done) return true; + if (jj_3R_66()) return true; + return false; + } + + inline bool jj_3R_302() + { + if (jj_done) return true; + if (jj_3R_377()) return true; + return false; + } + + inline bool jj_3R_261() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + return false; + } + + inline bool jj_3R_166() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_scan_token(49)) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_302()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3R_295() + { + if (jj_done) return true; + if (jj_scan_token(STRINGLITERAL)) return true; + return false; + } + + inline bool jj_3R_601() + { + if (jj_done) return true; + if (jj_scan_token(TYPE_T)) return true; + return false; + } + + inline bool jj_3R_600() + { + if (jj_done) return true; + if (jj_scan_token(FILE_T)) return true; + return false; + } + + inline bool jj_3R_599() + { + if (jj_done) return true; + if (jj_scan_token(SHARED_T)) return true; + if (jj_scan_token(VARIABLE_T)) return true; + return false; + } + + inline bool jj_3_52() + { + if (jj_done) return true; + if (jj_3R_103()) return true; + return false; + } + + inline bool jj_3R_598() + { + if (jj_done) return true; + if (jj_scan_token(VARIABLE_T)) return true; + return false; + } + + inline bool jj_3R_597() + { + if (jj_done) return true; + if (jj_scan_token(SIGNAL_T)) return true; + return false; + } + + inline bool jj_3R_338() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_596() + { + if (jj_done) return true; + if (jj_scan_token(CONSTANT_T)) return true; + return false; + } + + inline bool jj_3R_557() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_596()) { + jj_scanpos = xsp; + if (jj_3R_597()) { + jj_scanpos = xsp; + if (jj_3R_598()) { + jj_scanpos = xsp; + if (jj_3R_599()) { + jj_scanpos = xsp; + if (jj_3R_600()) { + jj_scanpos = xsp; + if (jj_3R_601()) return true; + } + } + } + } + } + return false; + } + + inline bool jj_3R_207() + { + if (jj_done) return true; + if (jj_3R_104()) return true; + return false; + } + + inline bool jj_3R_206() + { + if (jj_done) return true; + if (jj_3R_103()) return true; + return false; + } + + inline bool jj_3R_96() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_206()) { + jj_scanpos = xsp; + if (jj_3R_207()) return true; + } + return false; + } + + inline bool jj_3R_420() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_348() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_420()) jj_scanpos = xsp; + if (jj_scan_token(NULL_T)) return true; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_102() + { + if (jj_done) return true; + if (jj_scan_token(COMMA_T)) return true; + if (jj_3R_59()) return true; + return false; + } + + inline bool jj_3R_262() + { + if (jj_done) return true; + if (jj_scan_token(WHEN_T)) return true; + if (jj_3R_80()) return true; + return false; + } + + inline bool jj_3_51() + { + if (jj_done) return true; + if (jj_scan_token(LBRACKET_T)) return true; + return false; + } + + inline bool jj_3R_260() + { + if (jj_done) return true; + if (jj_3R_71()) return true; + if (jj_scan_token(COLON_T)) return true; + return false; + } + + inline bool jj_3R_124() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_260()) jj_scanpos = xsp; + if (jj_scan_token(NEXT_T)) return true; + xsp = jj_scanpos; + if (jj_3R_261()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_262()) jj_scanpos = xsp; + if (jj_scan_token(SEMI_T)) return true; + return false; + } + + inline bool jj_3R_221() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_219() + { + if (jj_done) return true; + if (jj_3R_234()) return true; + return false; + } + + inline bool jj_3_50() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_59()) return true; + Token * xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_102()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + inline bool jj_3R_101() + { + if (jj_done) return true; + Token * xsp; + xsp = jj_scanpos; + if (jj_3R_219()) jj_scanpos = xsp; + if (jj_scan_token(APOSTROPHE_T)) return true; + if (jj_3R_220()) return true; + xsp = jj_scanpos; + if (jj_3R_221()) jj_scanpos = xsp; + return false; + } + + inline bool jj_3_46() + { + if (jj_done) return true; + if (jj_3R_99()) return true; + return false; + } + + inline bool jj_3_49() + { + if (jj_done) return true; + if (jj_scan_token(LPAREN_T)) return true; + if (jj_3R_68()) return true; + if (jj_scan_token(RPAREN_T)) return true; + return false; + } + + public: TokenManager *token_source; + public: CharStream *jj_input_stream; + /** Current token. */ + public: Token *token; + /** Next token. */ + public: Token *jj_nt; + private: int jj_ntk; + private: JJCalls jj_2_rtns[113]; + private: bool jj_rescan; + private: int jj_gc; + private: Token *jj_scanpos, *jj_lastpos; + private: int jj_la; + /** Whether we are looking ahead. */ + private: bool jj_lookingAhead; + private: bool jj_semLA; + private: int jj_gen; + private: int jj_la1[296]; + private: ErrorHandler *errorHandler; + private: bool errorHandlerCreated; + protected: bool hasError; + public: void setErrorHandler(ErrorHandler *eh) { + if (errorHandlerCreated) delete errorHandler; + errorHandler = eh; + errorHandlerCreated = false; + } + Token *head; + public: + + VhdlParser(TokenManager *tm); + public: virtual ~VhdlParser(); + +void ReInit(TokenManager *tm); + +Token * jj_consume_token(int kind); + +bool jj_scan_token(int kind); + +Token * getNextToken(); + +Token * getToken(int index); + +int jj_ntk_f(); + private: int jj_kind; + int **jj_expentries; + int *jj_expentry; + +void jj_add_error_token(int kind, int pos); + +protected: virtual void parseError(); + private: int trace_indent; + private: bool trace_enabled; + /** Enable tracing. */ + +public: void enable_tracing(); + +public: void disable_tracing(); + +void jj_rescan_token(); + +void jj_save(int index, int xla); +typedef unsigned long long uint64; + + +static Entry* current_root; +static Entry* tempEntry; +static Entry* lastEntity ; +static Entry* lastCompound ; +static Entry* current; +static QCString compSpec; +static QCString currName; +static int levelCounter; +static QCString confName; +static QCString genLabels; +static QCString lab; +static QCString forL; +static int param_sec ; +static int parse_sec; +static int currP; +static Entry* currentCompound; + +//---------------------------------------- + +static void setLineParsed(int tok); +static int getLine(int tok); +static int getLine(); +static void lineCount(const char*); +static void lineCount(); +static void addProto(const char *s1,const char *s2,const char *s3,const char *s4,const char *s5,const char *s6); +static void addConfigureNode(const char* a,const char*b, bool,bool isLeaf,bool inlineConf); +static void createFunction(const char *impure,uint64 spec,const char *fname); +static void addVhdlType(const char *n,int startLine,int section, uint64 spec,const char* args,const char* type,Protection prot); +static void addCompInst(char *n, char* instName, char* comp,int iLine); +static void handleCommentBlock(const char* doc,bool brief); +static void initEntry(Entry *e); +static void newEntry(); +static bool isFuncProcProced(); +static void pushLabel(QCString &,QCString&); +static QCString popLabel(QCString & q); +static bool addLibUseClause(const QCString &type); +static void mapLibPackage( Entry* root); +static void createFlow(); +static void error_skipto(int kind);private: bool jj_done; + +}; +} +} +#endif diff --git a/vhdlparser/VhdlParserConstants.h b/vhdlparser/VhdlParserConstants.h new file mode 100644 index 0000000..1428805 --- /dev/null +++ b/vhdlparser/VhdlParserConstants.h @@ -0,0 +1,944 @@ +/* Generated By:JavaCC: Do not edit this line. VhdlParserConstants.java */ + +/** + * Token literal values and constants. + * Generated by org.javacc.parser.OtherFilesGen#start() + */ +#ifndef VHDLPARSERCONSTANTS_H +#define VHDLPARSERCONSTANTS_H + +namespace vhdl { +namespace parser { + /** End of File. */ +const int _EOF = 0; + /** RegularExpression Id. */ +const int DOXYGEN_VHDL_COMMENT = 5; + /** RegularExpression Id. */ +const int MULT_DOXYGEN_COMMENT = 6; + /** RegularExpression Id. */ +const int VHDL_COMMENT = 7; + /** RegularExpression Id. */ +const int MULT_DOXYGEN_VHDL_COMMENT_2008 = 8; + /** RegularExpression Id. */ +const int MULT_VHDL_2008_COMMENT = 9; + /** RegularExpression Id. */ +const int ABS_T = 10; + /** RegularExpression Id. */ +const int ACCESS_T = 11; + /** RegularExpression Id. */ +const int AFTER_T = 12; + /** RegularExpression Id. */ +const int ALIAS_T = 13; + /** RegularExpression Id. */ +const int ALL_T = 14; + /** RegularExpression Id. */ +const int AND_T = 15; + /** RegularExpression Id. */ +const int ARCHITECTURE_T = 16; + /** RegularExpression Id. */ +const int ARRAY_T = 17; + /** RegularExpression Id. */ +const int ASSERT_T = 18; + /** RegularExpression Id. */ +const int ASSUME_T = 19; + /** RegularExpression Id. */ +const int ASSUME_GUARANTEE_T = 20; + /** RegularExpression Id. */ +const int ATTRIBUTE_T = 21; + /** RegularExpression Id. */ +const int BEGIN_T = 22; + /** RegularExpression Id. */ +const int BLOCK_T = 23; + /** RegularExpression Id. */ +const int BODY_T = 24; + /** RegularExpression Id. */ +const int BUFFER_T = 25; + /** RegularExpression Id. */ +const int BUS_T = 26; + /** RegularExpression Id. */ +const int COMPONENT_T = 27; + /** RegularExpression Id. */ +const int CASE_T = 28; + /** RegularExpression Id. */ +const int CONFIGURATION_T = 29; + /** RegularExpression Id. */ +const int CONSTANT_T = 30; + /** RegularExpression Id. */ +const int CONTEXT_T = 31; + /** RegularExpression Id. */ +const int COVER_T = 32; + /** RegularExpression Id. */ +const int DEFAULT_T = 33; + /** RegularExpression Id. */ +const int DISCONNECT_T = 34; + /** RegularExpression Id. */ +const int DOWNTO_T = 35; + /** RegularExpression Id. */ +const int ELSE_T = 36; + /** RegularExpression Id. */ +const int ELSIF_T = 37; + /** RegularExpression Id. */ +const int END_T = 38; + /** RegularExpression Id. */ +const int ENTITY_T = 39; + /** RegularExpression Id. */ +const int EXIT_T = 40; + /** RegularExpression Id. */ +const int FAIRNESS_T = 41; + /** RegularExpression Id. */ +const int FILE_T = 42; + /** RegularExpression Id. */ +const int FOR_T = 43; + /** RegularExpression Id. */ +const int FORCE_T = 44; + /** RegularExpression Id. */ +const int FUNCTION_T = 45; + /** RegularExpression Id. */ +const int GENERATE_T = 46; + /** RegularExpression Id. */ +const int GENERIC_T = 47; + /** RegularExpression Id. */ +const int GROUP_T = 48; + /** RegularExpression Id. */ +const int GUARDED_T = 49; + /** RegularExpression Id. */ +const int IF_T = 50; + /** RegularExpression Id. */ +const int IMPURE_T = 51; + /** RegularExpression Id. */ +const int IN_T = 52; + /** RegularExpression Id. */ +const int INERTIAL_T = 53; + /** RegularExpression Id. */ +const int INOUT_T = 54; + /** RegularExpression Id. */ +const int IS_T = 55; + /** RegularExpression Id. */ +const int LABEL_T = 56; + /** RegularExpression Id. */ +const int LIBRARY_T = 57; + /** RegularExpression Id. */ +const int LINKAGE_T = 58; + /** RegularExpression Id. */ +const int LITERAL_T = 59; + /** RegularExpression Id. */ +const int LOOP_T = 60; + /** RegularExpression Id. */ +const int MAP_T = 61; + /** RegularExpression Id. */ +const int MOD_T = 62; + /** RegularExpression Id. */ +const int NAND_T = 63; + /** RegularExpression Id. */ +const int NEW_T = 64; + /** RegularExpression Id. */ +const int NEXT_T = 65; + /** RegularExpression Id. */ +const int NOR_T = 66; + /** RegularExpression Id. */ +const int NOT_T = 67; + /** RegularExpression Id. */ +const int NULL_T = 68; + /** RegularExpression Id. */ +const int OF_T = 69; + /** RegularExpression Id. */ +const int ON_T = 70; + /** RegularExpression Id. */ +const int OPEN_T = 71; + /** RegularExpression Id. */ +const int OR_T = 72; + /** RegularExpression Id. */ +const int OTHER_T = 73; + /** RegularExpression Id. */ +const int OUT_T = 74; + /** RegularExpression Id. */ +const int PACKAGE_T = 75; + /** RegularExpression Id. */ +const int PARAMETER_T = 76; + /** RegularExpression Id. */ +const int PORT_T = 77; + /** RegularExpression Id. */ +const int POSTPONED_T = 78; + /** RegularExpression Id. */ +const int PROCEDURE_T = 79; + /** RegularExpression Id. */ +const int PROCESS_T = 80; + /** RegularExpression Id. */ +const int PROPERTY_T = 81; + /** RegularExpression Id. */ +const int PROTECTED_T = 82; + /** RegularExpression Id. */ +const int PURE_T = 83; + /** RegularExpression Id. */ +const int RANGE_T = 84; + /** RegularExpression Id. */ +const int RECORD_T = 85; + /** RegularExpression Id. */ +const int REGISTER_T = 86; + /** RegularExpression Id. */ +const int REJECT_T = 87; + /** RegularExpression Id. */ +const int RELEASE_T = 88; + /** RegularExpression Id. */ +const int RESTRICT_T = 89; + /** RegularExpression Id. */ +const int RESTRICT_GUARANTEE_T = 90; + /** RegularExpression Id. */ +const int REM_T = 91; + /** RegularExpression Id. */ +const int REPORT_T = 92; + /** RegularExpression Id. */ +const int ROL_T = 93; + /** RegularExpression Id. */ +const int ROR_T = 94; + /** RegularExpression Id. */ +const int RETURN_T = 95; + /** RegularExpression Id. */ +const int SELECT_T = 96; + /** RegularExpression Id. */ +const int SEQUENCE_T = 97; + /** RegularExpression Id. */ +const int SEVERITY_T = 98; + /** RegularExpression Id. */ +const int SIGNAL_T = 99; + /** RegularExpression Id. */ +const int SHARED_T = 100; + /** RegularExpression Id. */ +const int SLA_T = 101; + /** RegularExpression Id. */ +const int SLL_T = 102; + /** RegularExpression Id. */ +const int SRA_T = 103; + /** RegularExpression Id. */ +const int SRL_T = 104; + /** RegularExpression Id. */ +const int STRONG_T = 105; + /** RegularExpression Id. */ +const int SUBTYPE_T = 106; + /** RegularExpression Id. */ +const int THEN_T = 107; + /** RegularExpression Id. */ +const int TO_T = 108; + /** RegularExpression Id. */ +const int TRANSPORT_T = 109; + /** RegularExpression Id. */ +const int TYPE_T = 110; + /** RegularExpression Id. */ +const int UNAFFECTED_T = 111; + /** RegularExpression Id. */ +const int UNITS_T = 112; + /** RegularExpression Id. */ +const int UNTIL_T = 113; + /** RegularExpression Id. */ +const int USE_T = 114; + /** RegularExpression Id. */ +const int VARIABLE_T = 115; + /** RegularExpression Id. */ +const int VMODE_T = 116; + /** RegularExpression Id. */ +const int VPROP_T = 117; + /** RegularExpression Id. */ +const int VUNIT_T = 118; + /** RegularExpression Id. */ +const int WAIT_T = 119; + /** RegularExpression Id. */ +const int WHEN_T = 120; + /** RegularExpression Id. */ +const int WHILE_T = 121; + /** RegularExpression Id. */ +const int WITH_T = 122; + /** RegularExpression Id. */ +const int XOR_T = 123; + /** RegularExpression Id. */ +const int XNOR_T = 124; + /** RegularExpression Id. */ +const int AMPERSAND_T = 125; + /** RegularExpression Id. */ +const int APOSTROPHE_T = 126; + /** RegularExpression Id. */ +const int LPAREN_T = 127; + /** RegularExpression Id. */ +const int RPAREN_T = 128; + /** RegularExpression Id. */ +const int DOUBLEMULT_T = 129; + /** RegularExpression Id. */ +const int MULT_T = 130; + /** RegularExpression Id. */ +const int PLUS_T = 131; + /** RegularExpression Id. */ +const int MINUS_T = 132; + /** RegularExpression Id. */ +const int COMMA_T = 133; + /** RegularExpression Id. */ +const int VARASSIGN_T = 134; + /** RegularExpression Id. */ +const int COLON_T = 135; + /** RegularExpression Id. */ +const int SEMI_T = 136; + /** RegularExpression Id. */ +const int LESSTHAN_T = 137; + /** RegularExpression Id. */ +const int GREATERTHAN_T = 138; + /** RegularExpression Id. */ +const int LT_T = 139; + /** RegularExpression Id. */ +const int GT_T = 140; + /** RegularExpression Id. */ +const int EQU_T = 141; + /** RegularExpression Id. */ +const int NOTEQU_T = 142; + /** RegularExpression Id. */ +const int ARROW_T = 143; + /** RegularExpression Id. */ +const int BOX_T = 144; + /** RegularExpression Id. */ +const int SLSL_T = 145; + /** RegularExpression Id. */ +const int RSRS_T = 146; + /** RegularExpression Id. */ +const int QQ_T = 147; + /** RegularExpression Id. */ +const int QGT_T = 148; + /** RegularExpression Id. */ +const int QLT_T = 149; + /** RegularExpression Id. */ +const int QG_T = 150; + /** RegularExpression Id. */ +const int QL_T = 151; + /** RegularExpression Id. */ +const int QEQU_T = 152; + /** RegularExpression Id. */ +const int QNEQU_T = 153; + /** RegularExpression Id. */ +const int Q_T = 154; + /** RegularExpression Id. */ +const int BAR_T = 155; + /** RegularExpression Id. */ +const int DOT_T = 156; + /** RegularExpression Id. */ +const int SLASH_T = 157; + /** RegularExpression Id. */ +const int AT_T = 158; + /** RegularExpression Id. */ +const int NEG_T = 159; + /** RegularExpression Id. */ +const int LBRACKET_T = 160; + /** RegularExpression Id. */ +const int RBRACKET_T = 161; + /** RegularExpression Id. */ +const int LBRACE = 162; + /** RegularExpression Id. */ +const int RBRACE = 163; + /** RegularExpression Id. */ +const int INTEGER = 164; + /** RegularExpression Id. */ +const int STRINGLITERAL = 165; + /** RegularExpression Id. */ +const int BASIC_IDENTIFIER = 166; + /** RegularExpression Id. */ +const int EXTENDED_CHARACTER = 167; + /** RegularExpression Id. */ +const int CHARACTER_LITERAL = 168; + /** RegularExpression Id. */ +const int DECIMAL_LITERAL = 169; + /** RegularExpression Id. */ +const int BASED_INTEGER = 170; + /** RegularExpression Id. */ +const int BASED_LITERAL = 171; + /** RegularExpression Id. */ +const int EXPONENT = 172; + /** RegularExpression Id. */ +const int BASIC_GRAPHIC_CHARACTER = 173; + /** RegularExpression Id. */ +const int GRAPHIC_CHARACTER = 174; + /** RegularExpression Id. */ +const int LETTER_OR_DIGIT = 175; + /** RegularExpression Id. */ +const int LETTER = 176; + /** RegularExpression Id. */ +const int UPPER_CASE_LETTER = 177; + /** RegularExpression Id. */ +const int BIT_STRING_LITERAL = 178; + /** RegularExpression Id. */ +const int BASE_SPECIFIER = 179; + /** RegularExpression Id. */ +const int DIGIT = 180; + /** RegularExpression Id. */ +const int SPECIAL_CHARACTER = 181; + /** RegularExpression Id. */ +const int OTHER_SPECIAL_CHARACTER = 182; + /** RegularExpression Id. */ +const int SPACE_CHARACTER = 183; + /** RegularExpression Id. */ +const int LOWER_CASE_LETTER = 184; + /** RegularExpression Id. */ +const int VHDL2008TOOLDIR = 185; + + /** Lexical state. */ +const int DEFAULT = 0; + + /** Literal token values. */ + static JAVACC_CHAR_TYPE tokenImage_arr_0[] = +{0x3c, 0x45, 0x4f, 0x46, 0x3e, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_1[] = +{0x22, 0x20, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_2[] = +{0x22, 0x9, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_3[] = +{0x22, 0xa, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_4[] = +{0x22, 0xd, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_5[] = +{0x22, 0x3c, 0x44, 0x4f, 0x58, 0x59, 0x47, 0x45, 0x4e, 0x5f, 0x56, 0x48, 0x44, 0x4c, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_6[] = +{0x22, 0x3c, 0x4d, 0x55, 0x4c, 0x54, 0x5f, 0x44, 0x4f, 0x58, 0x59, 0x47, 0x45, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_7[] = +{0x22, 0x3c, 0x56, 0x48, 0x44, 0x4c, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_8[] = +{0x22, 0x3c, 0x4d, 0x55, 0x4c, 0x54, 0x5f, 0x44, 0x4f, 0x58, 0x59, 0x47, 0x45, 0x4e, 0x5f, 0x56, 0x48, 0x44, 0x4c, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x32, 0x30, 0x30, 0x38, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_9[] = +{0x22, 0x3c, 0x4d, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x48, 0x44, 0x4c, 0x5f, 0x32, 0x30, 0x30, 0x38, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_10[] = +{0x22, 0x61, 0x62, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_11[] = +{0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_12[] = +{0x22, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_13[] = +{0x22, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_14[] = +{0x22, 0x61, 0x6c, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_15[] = +{0x22, 0x61, 0x6e, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_16[] = +{0x22, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_17[] = +{0x22, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_18[] = +{0x22, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_19[] = +{0x22, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_20[] = +{0x22, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_21[] = +{0x22, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_22[] = +{0x22, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_23[] = +{0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_24[] = +{0x22, 0x62, 0x6f, 0x64, 0x79, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_25[] = +{0x22, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_26[] = +{0x22, 0x62, 0x75, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_27[] = +{0x22, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_28[] = +{0x22, 0x63, 0x61, 0x73, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_29[] = +{0x22, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_30[] = +{0x22, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_31[] = +{0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_32[] = +{0x22, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_33[] = +{0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_34[] = +{0x22, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_35[] = +{0x22, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x6f, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_36[] = +{0x22, 0x65, 0x6c, 0x73, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_37[] = +{0x22, 0x65, 0x6c, 0x73, 0x69, 0x66, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_38[] = +{0x22, 0x65, 0x6e, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_39[] = +{0x22, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_40[] = +{0x22, 0x65, 0x78, 0x69, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_41[] = +{0x22, 0x66, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_42[] = +{0x22, 0x66, 0x69, 0x6c, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_43[] = +{0x22, 0x66, 0x6f, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_44[] = +{0x22, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_45[] = +{0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_46[] = +{0x22, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_47[] = +{0x22, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_48[] = +{0x22, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_49[] = +{0x22, 0x67, 0x75, 0x61, 0x72, 0x64, 0x65, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_50[] = +{0x22, 0x69, 0x66, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_51[] = +{0x22, 0x69, 0x6d, 0x70, 0x75, 0x72, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_52[] = +{0x22, 0x69, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_53[] = +{0x22, 0x69, 0x6e, 0x65, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_54[] = +{0x22, 0x69, 0x6e, 0x6f, 0x75, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_55[] = +{0x22, 0x69, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_56[] = +{0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_57[] = +{0x22, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_58[] = +{0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_59[] = +{0x22, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_60[] = +{0x22, 0x6c, 0x6f, 0x6f, 0x70, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_61[] = +{0x22, 0x6d, 0x61, 0x70, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_62[] = +{0x22, 0x6d, 0x6f, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_63[] = +{0x22, 0x6e, 0x61, 0x6e, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_64[] = +{0x22, 0x6e, 0x65, 0x77, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_65[] = +{0x22, 0x6e, 0x65, 0x78, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_66[] = +{0x22, 0x6e, 0x6f, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_67[] = +{0x22, 0x6e, 0x6f, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_68[] = +{0x22, 0x6e, 0x75, 0x6c, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_69[] = +{0x22, 0x6f, 0x66, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_70[] = +{0x22, 0x6f, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_71[] = +{0x22, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_72[] = +{0x22, 0x6f, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_73[] = +{0x22, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_74[] = +{0x22, 0x6f, 0x75, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_75[] = +{0x22, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_76[] = +{0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_77[] = +{0x22, 0x70, 0x6f, 0x72, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_78[] = +{0x22, 0x70, 0x6f, 0x73, 0x74, 0x70, 0x6f, 0x6e, 0x65, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_79[] = +{0x22, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_80[] = +{0x22, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_81[] = +{0x22, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_82[] = +{0x22, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_83[] = +{0x22, 0x70, 0x75, 0x72, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_84[] = +{0x22, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_85[] = +{0x22, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_86[] = +{0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_87[] = +{0x22, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_88[] = +{0x22, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_89[] = +{0x22, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_90[] = +{0x22, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_91[] = +{0x22, 0x72, 0x65, 0x6d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_92[] = +{0x22, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_93[] = +{0x22, 0x72, 0x6f, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_94[] = +{0x22, 0x72, 0x6f, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_95[] = +{0x22, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_96[] = +{0x22, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_97[] = +{0x22, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_98[] = +{0x22, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_99[] = +{0x22, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_100[] = +{0x22, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_101[] = +{0x22, 0x73, 0x6c, 0x61, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_102[] = +{0x22, 0x73, 0x6c, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_103[] = +{0x22, 0x73, 0x72, 0x61, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_104[] = +{0x22, 0x73, 0x72, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_105[] = +{0x22, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_106[] = +{0x22, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_107[] = +{0x22, 0x74, 0x68, 0x65, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_108[] = +{0x22, 0x74, 0x6f, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_109[] = +{0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_110[] = +{0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_111[] = +{0x22, 0x75, 0x6e, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_112[] = +{0x22, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_113[] = +{0x22, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_114[] = +{0x22, 0x75, 0x73, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_115[] = +{0x22, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_116[] = +{0x22, 0x76, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_117[] = +{0x22, 0x76, 0x70, 0x72, 0x6f, 0x70, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_118[] = +{0x22, 0x76, 0x75, 0x6e, 0x69, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_119[] = +{0x22, 0x77, 0x61, 0x69, 0x74, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_120[] = +{0x22, 0x77, 0x68, 0x65, 0x6e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_121[] = +{0x22, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_122[] = +{0x22, 0x77, 0x69, 0x74, 0x68, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_123[] = +{0x22, 0x78, 0x6f, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_124[] = +{0x22, 0x78, 0x6e, 0x6f, 0x72, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_125[] = +{0x22, 0x26, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_126[] = +{0x22, 0x27, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_127[] = +{0x22, 0x28, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_128[] = +{0x22, 0x29, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_129[] = +{0x22, 0x2a, 0x2a, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_130[] = +{0x22, 0x2a, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_131[] = +{0x22, 0x2b, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_132[] = +{0x22, 0x2d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_133[] = +{0x22, 0x2c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_134[] = +{0x22, 0x3a, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_135[] = +{0x22, 0x3a, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_136[] = +{0x22, 0x3b, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_137[] = +{0x22, 0x3c, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_138[] = +{0x22, 0x3e, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_139[] = +{0x22, 0x3c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_140[] = +{0x22, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_141[] = +{0x22, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_142[] = +{0x22, 0x2f, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_143[] = +{0x22, 0x3d, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_144[] = +{0x22, 0x3c, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_145[] = +{0x22, 0x3c, 0x3c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_146[] = +{0x22, 0x3e, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_147[] = +{0x22, 0x3f, 0x3f, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_148[] = +{0x22, 0x3f, 0x3e, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_149[] = +{0x22, 0x3f, 0x3c, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_150[] = +{0x22, 0x3f, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_151[] = +{0x22, 0x3f, 0x3c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_152[] = +{0x22, 0x3f, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_153[] = +{0x22, 0x3f, 0x2f, 0x3d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_154[] = +{0x22, 0x3f, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_155[] = +{0x22, 0x7c, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_156[] = +{0x22, 0x2e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_157[] = +{0x22, 0x2f, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_158[] = +{0x22, 0x40, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_159[] = +{0x22, 0x5e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_160[] = +{0x22, 0x5b, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_161[] = +{0x22, 0x5d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_162[] = +{0x22, 0x7b, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_163[] = +{0x22, 0x7d, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_164[] = +{0x22, 0x3c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_165[] = +{0x22, 0x3c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_166[] = +{0x22, 0x3c, 0x42, 0x41, 0x53, 0x49, 0x43, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_167[] = +{0x22, 0x3c, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_168[] = +{0x22, 0x3c, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x5f, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_169[] = +{0x22, 0x3c, 0x44, 0x45, 0x43, 0x49, 0x4d, 0x41, 0x4c, 0x5f, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_170[] = +{0x22, 0x3c, 0x42, 0x41, 0x53, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_171[] = +{0x22, 0x3c, 0x42, 0x41, 0x53, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_172[] = +{0x22, 0x3c, 0x45, 0x58, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_173[] = +{0x22, 0x3c, 0x42, 0x41, 0x53, 0x49, 0x43, 0x5f, 0x47, 0x52, 0x41, 0x50, 0x48, 0x49, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_174[] = +{0x22, 0x3c, 0x47, 0x52, 0x41, 0x50, 0x48, 0x49, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_175[] = +{0x22, 0x3c, 0x4c, 0x45, 0x54, 0x54, 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x5f, 0x44, 0x49, 0x47, 0x49, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_176[] = +{0x22, 0x3c, 0x4c, 0x45, 0x54, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_177[] = +{0x22, 0x3c, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x45, 0x54, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_178[] = +{0x22, 0x3c, 0x42, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_179[] = +{0x22, 0x3c, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_180[] = +{0x22, 0x3c, 0x44, 0x49, 0x47, 0x49, 0x54, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_181[] = +{0x22, 0x3c, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_182[] = +{0x22, 0x3c, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_183[] = +{0x22, 0x3c, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_184[] = +{0x22, 0x3c, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x45, 0x54, 0x54, 0x45, 0x52, 0x3e, 0x22, 0}; + static JAVACC_CHAR_TYPE tokenImage_arr_185[] = +{0x22, 0x3c, 0x56, 0x48, 0x44, 0x4c, 0x32, 0x30, 0x30, 0x38, 0x54, 0x4f, 0x4f, 0x4c, 0x44, 0x49, 0x52, 0x3e, 0x22, 0}; + static JAVACC_STRING_TYPE tokenImage[] = { +tokenImage_arr_0, +tokenImage_arr_1, +tokenImage_arr_2, +tokenImage_arr_3, +tokenImage_arr_4, +tokenImage_arr_5, +tokenImage_arr_6, +tokenImage_arr_7, +tokenImage_arr_8, +tokenImage_arr_9, +tokenImage_arr_10, +tokenImage_arr_11, +tokenImage_arr_12, +tokenImage_arr_13, +tokenImage_arr_14, +tokenImage_arr_15, +tokenImage_arr_16, +tokenImage_arr_17, +tokenImage_arr_18, +tokenImage_arr_19, +tokenImage_arr_20, +tokenImage_arr_21, +tokenImage_arr_22, +tokenImage_arr_23, +tokenImage_arr_24, +tokenImage_arr_25, +tokenImage_arr_26, +tokenImage_arr_27, +tokenImage_arr_28, +tokenImage_arr_29, +tokenImage_arr_30, +tokenImage_arr_31, +tokenImage_arr_32, +tokenImage_arr_33, +tokenImage_arr_34, +tokenImage_arr_35, +tokenImage_arr_36, +tokenImage_arr_37, +tokenImage_arr_38, +tokenImage_arr_39, +tokenImage_arr_40, +tokenImage_arr_41, +tokenImage_arr_42, +tokenImage_arr_43, +tokenImage_arr_44, +tokenImage_arr_45, +tokenImage_arr_46, +tokenImage_arr_47, +tokenImage_arr_48, +tokenImage_arr_49, +tokenImage_arr_50, +tokenImage_arr_51, +tokenImage_arr_52, +tokenImage_arr_53, +tokenImage_arr_54, +tokenImage_arr_55, +tokenImage_arr_56, +tokenImage_arr_57, +tokenImage_arr_58, +tokenImage_arr_59, +tokenImage_arr_60, +tokenImage_arr_61, +tokenImage_arr_62, +tokenImage_arr_63, +tokenImage_arr_64, +tokenImage_arr_65, +tokenImage_arr_66, +tokenImage_arr_67, +tokenImage_arr_68, +tokenImage_arr_69, +tokenImage_arr_70, +tokenImage_arr_71, +tokenImage_arr_72, +tokenImage_arr_73, +tokenImage_arr_74, +tokenImage_arr_75, +tokenImage_arr_76, +tokenImage_arr_77, +tokenImage_arr_78, +tokenImage_arr_79, +tokenImage_arr_80, +tokenImage_arr_81, +tokenImage_arr_82, +tokenImage_arr_83, +tokenImage_arr_84, +tokenImage_arr_85, +tokenImage_arr_86, +tokenImage_arr_87, +tokenImage_arr_88, +tokenImage_arr_89, +tokenImage_arr_90, +tokenImage_arr_91, +tokenImage_arr_92, +tokenImage_arr_93, +tokenImage_arr_94, +tokenImage_arr_95, +tokenImage_arr_96, +tokenImage_arr_97, +tokenImage_arr_98, +tokenImage_arr_99, +tokenImage_arr_100, +tokenImage_arr_101, +tokenImage_arr_102, +tokenImage_arr_103, +tokenImage_arr_104, +tokenImage_arr_105, +tokenImage_arr_106, +tokenImage_arr_107, +tokenImage_arr_108, +tokenImage_arr_109, +tokenImage_arr_110, +tokenImage_arr_111, +tokenImage_arr_112, +tokenImage_arr_113, +tokenImage_arr_114, +tokenImage_arr_115, +tokenImage_arr_116, +tokenImage_arr_117, +tokenImage_arr_118, +tokenImage_arr_119, +tokenImage_arr_120, +tokenImage_arr_121, +tokenImage_arr_122, +tokenImage_arr_123, +tokenImage_arr_124, +tokenImage_arr_125, +tokenImage_arr_126, +tokenImage_arr_127, +tokenImage_arr_128, +tokenImage_arr_129, +tokenImage_arr_130, +tokenImage_arr_131, +tokenImage_arr_132, +tokenImage_arr_133, +tokenImage_arr_134, +tokenImage_arr_135, +tokenImage_arr_136, +tokenImage_arr_137, +tokenImage_arr_138, +tokenImage_arr_139, +tokenImage_arr_140, +tokenImage_arr_141, +tokenImage_arr_142, +tokenImage_arr_143, +tokenImage_arr_144, +tokenImage_arr_145, +tokenImage_arr_146, +tokenImage_arr_147, +tokenImage_arr_148, +tokenImage_arr_149, +tokenImage_arr_150, +tokenImage_arr_151, +tokenImage_arr_152, +tokenImage_arr_153, +tokenImage_arr_154, +tokenImage_arr_155, +tokenImage_arr_156, +tokenImage_arr_157, +tokenImage_arr_158, +tokenImage_arr_159, +tokenImage_arr_160, +tokenImage_arr_161, +tokenImage_arr_162, +tokenImage_arr_163, +tokenImage_arr_164, +tokenImage_arr_165, +tokenImage_arr_166, +tokenImage_arr_167, +tokenImage_arr_168, +tokenImage_arr_169, +tokenImage_arr_170, +tokenImage_arr_171, +tokenImage_arr_172, +tokenImage_arr_173, +tokenImage_arr_174, +tokenImage_arr_175, +tokenImage_arr_176, +tokenImage_arr_177, +tokenImage_arr_178, +tokenImage_arr_179, +tokenImage_arr_180, +tokenImage_arr_181, +tokenImage_arr_182, +tokenImage_arr_183, +tokenImage_arr_184, +tokenImage_arr_185, + }; + +} +} +#endif diff --git a/vhdlparser/VhdlParserErrorHandler.hpp b/vhdlparser/VhdlParserErrorHandler.hpp new file mode 100644 index 0000000..ba9a260 --- /dev/null +++ b/vhdlparser/VhdlParserErrorHandler.hpp @@ -0,0 +1,39 @@ +#ifndef VHDLPARSERERRORHANDLER_H +#define VHDLPARSERERRORHANDLER_H + +#include <stdio.h> +#include <stdlib.h> +#include <exception> +#include "VhdlParser.h" +#include "ErrorHandler.h" + +namespace vhdl { namespace parser { + +class VhdlErrorHandler: public ErrorHandler + { + virtual void handleUnexpectedToken(int expectedKind, JAVACC_STRING_TYPE expectedToken, Token *actual, VhdlParser *parser) + { + fprintf(stderr,"\n\n syntax error at line: %d : %s\n", actual->beginLine,actual->image.data()); + error_count++; + throw std::exception(); + } + + virtual void handleParseError(Token *last, Token *unexpected, JAVACC_SIMPLE_STRING production, VhdlParser *parser) + { + fprintf(stderr,"\n\n unexpected token at line: %d %s\n", last->beginLine,unexpected->image.data()); + error_count++; + throw std::exception(); + } + + virtual void handleOtherError(JAVACC_STRING_TYPE message, VhdlParser *parser) + { + fprintf(stderr, "\n\n unexpected error: %s\n", (char*)message.c_str()); + error_count++; + throw std::exception(); + } + }; +} +} + +#endif + diff --git a/vhdlparser/VhdlParserIF.cpp b/vhdlparser/VhdlParserIF.cpp new file mode 100644 index 0000000..1369b73 --- /dev/null +++ b/vhdlparser/VhdlParserIF.cpp @@ -0,0 +1,56 @@ + +#include "VhdlParserTokenManager.h" +#include "VhdlParserErrorHandler.hpp" +#include "VhdlParser.h" +#include "VhdlParserIF.h" +#include "CharStream.h" + +using namespace vhdl::parser; + +static VhdlParser * myParser; + +void VhdlParserIF::parseVhdlfile(const char* inputBuffer,bool inLine) +{ + JAVACC_STRING_TYPE s =inputBuffer; + CharStream *stream = new CharStream(s.c_str(), (int)s.size(), 1, 1); + VhdlParserTokenManager *tokenManager = new VhdlParserTokenManager(stream); + myParser=new VhdlParser(tokenManager); + VhdlErrorHandler *myErr=new VhdlErrorHandler(); + myParser->setErrorHandler(myErr); + try + { + if(inLine) + { + myParser->parseInline(); + } + else + { + myParser->design_file(); + } + } + catch( std::exception &) + { + /* fprintf(stderr,"\n[%s]",e.what()); */ + } + // fprintf(stderr,"\n\nparsed lines: %d\n",yyLineNr); + // fprintf(stderr,"\n\nerrors : %d\n\n",myErr->getErrorCount()); + delete myParser; +} + +void VhdlParser::error_skipto(int kind) +{ + Token *op; + do + { + op=myParser->getToken(1); + if (op==0) break; + //fprintf(stderr,"\n %s",t->image.data()); + } while (op->kind != kind); + myParser->hasError=false; + // The above loop consumes tokens all the way up to a token of + // "kind". We use a do-while loop rather than a while because the + // current token is the one immediately before the erroneous token + // (in our case the token immediately before what should have been + // "if"/"while". + +} diff --git a/vhdlparser/VhdlParserIF.h b/vhdlparser/VhdlParserIF.h new file mode 100644 index 0000000..d11389b --- /dev/null +++ b/vhdlparser/VhdlParserIF.h @@ -0,0 +1,12 @@ +#ifndef VHDLPARSERIF +#define VHDLPARSERIF + +#include "VhdlParser.h" + +class VhdlParserIF +{ + public: + static void parseVhdlfile(const char* inputBuffer,bool inLine); + +}; +#endif diff --git a/vhdlparser/VhdlParserTokenManager.cc b/vhdlparser/VhdlParserTokenManager.cc new file mode 100644 index 0000000..58f525c --- /dev/null +++ b/vhdlparser/VhdlParserTokenManager.cc @@ -0,0 +1,3497 @@ +/* VhdlParserTokenManager.cc */ +#include "./VhdlParserTokenManager.h" +namespace vhdl { +namespace parser { +static const unsigned long long jjbitVec0[] = { + 0x0ULL, 0x0ULL, 0xffffffff00000000ULL, 0xffffffffffffffffULL +}; +static const unsigned long long jjbitVec1[] = { + 0xfffffffffffffffeULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL +}; +static const unsigned long long jjbitVec3[] = { + 0x0ULL, 0x0ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL +}; +static const int jjnextStates[] = { + 43, 44, 45, 46, 47, 50, 54, 55, 56, 37, 38, 4, 5, 7, 8, 22, + 23, 24, 26, 28, 29, 31, 45, 46, 47, 50, 49, 48, 50, 54, 55, 56, + 57, 58, 60, 1, 2, 15, 16, 34, 36, 39, 41, +}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_0[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_1[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_2[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_3[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_4[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_5[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_6[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_7[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_8[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_9[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_10[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_11[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_12[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_13[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_14[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_15[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_16[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_17[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_18[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_19[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_20[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_21[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_22[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_23[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_24[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_25[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_26[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_27[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_28[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_29[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_30[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_31[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_32[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_33[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_34[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_35[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_36[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_37[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_38[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_39[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_40[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_41[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_42[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_43[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_44[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_45[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_46[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_47[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_48[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_49[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_50[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_51[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_52[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_53[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_54[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_55[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_56[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_57[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_58[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_59[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_60[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_61[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_62[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_63[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_64[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_65[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_66[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_67[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_68[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_69[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_70[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_71[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_72[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_73[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_74[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_75[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_76[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_77[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_78[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_79[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_80[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_81[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_82[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_83[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_84[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_85[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_86[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_87[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_88[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_89[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_90[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_91[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_92[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_93[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_94[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_95[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_96[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_97[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_98[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_99[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_100[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_101[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_102[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_103[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_104[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_105[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_106[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_107[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_108[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_109[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_110[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_111[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_112[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_113[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_114[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_115[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_116[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_117[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_118[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_119[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_120[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_121[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_122[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_123[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_124[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_125[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_126[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_127[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_128[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_129[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_130[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_131[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_132[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_133[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_134[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_135[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_136[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_137[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_138[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_139[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_140[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_141[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_142[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_143[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_144[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_145[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_146[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_147[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_148[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_149[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_150[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_151[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_152[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_153[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_154[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_155[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_156[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_157[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_158[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_159[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_160[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_161[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_162[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_163[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_164[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_165[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_166[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_167[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_168[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_169[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_170[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_171[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_172[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_173[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_174[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_175[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_176[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_177[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_178[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_179[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_180[] = {0}; + +static JAVACC_CHAR_TYPE jjstrLiteralChars_181[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_182[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_183[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_184[] = {0}; +static JAVACC_CHAR_TYPE jjstrLiteralChars_185[] = {0}; +static const JAVACC_STRING_TYPE jjstrLiteralImages[] = { +jjstrLiteralChars_0, +jjstrLiteralChars_1, +jjstrLiteralChars_2, +jjstrLiteralChars_3, +jjstrLiteralChars_4, +jjstrLiteralChars_5, +jjstrLiteralChars_6, +jjstrLiteralChars_7, +jjstrLiteralChars_8, +jjstrLiteralChars_9, +jjstrLiteralChars_10, +jjstrLiteralChars_11, +jjstrLiteralChars_12, +jjstrLiteralChars_13, +jjstrLiteralChars_14, +jjstrLiteralChars_15, +jjstrLiteralChars_16, +jjstrLiteralChars_17, +jjstrLiteralChars_18, +jjstrLiteralChars_19, +jjstrLiteralChars_20, +jjstrLiteralChars_21, +jjstrLiteralChars_22, +jjstrLiteralChars_23, +jjstrLiteralChars_24, +jjstrLiteralChars_25, +jjstrLiteralChars_26, +jjstrLiteralChars_27, +jjstrLiteralChars_28, +jjstrLiteralChars_29, +jjstrLiteralChars_30, +jjstrLiteralChars_31, +jjstrLiteralChars_32, +jjstrLiteralChars_33, +jjstrLiteralChars_34, +jjstrLiteralChars_35, +jjstrLiteralChars_36, +jjstrLiteralChars_37, +jjstrLiteralChars_38, +jjstrLiteralChars_39, +jjstrLiteralChars_40, +jjstrLiteralChars_41, +jjstrLiteralChars_42, +jjstrLiteralChars_43, +jjstrLiteralChars_44, +jjstrLiteralChars_45, +jjstrLiteralChars_46, +jjstrLiteralChars_47, +jjstrLiteralChars_48, +jjstrLiteralChars_49, +jjstrLiteralChars_50, +jjstrLiteralChars_51, +jjstrLiteralChars_52, +jjstrLiteralChars_53, +jjstrLiteralChars_54, +jjstrLiteralChars_55, +jjstrLiteralChars_56, +jjstrLiteralChars_57, +jjstrLiteralChars_58, +jjstrLiteralChars_59, +jjstrLiteralChars_60, +jjstrLiteralChars_61, +jjstrLiteralChars_62, +jjstrLiteralChars_63, +jjstrLiteralChars_64, +jjstrLiteralChars_65, +jjstrLiteralChars_66, +jjstrLiteralChars_67, +jjstrLiteralChars_68, +jjstrLiteralChars_69, +jjstrLiteralChars_70, +jjstrLiteralChars_71, +jjstrLiteralChars_72, +jjstrLiteralChars_73, +jjstrLiteralChars_74, +jjstrLiteralChars_75, +jjstrLiteralChars_76, +jjstrLiteralChars_77, +jjstrLiteralChars_78, +jjstrLiteralChars_79, +jjstrLiteralChars_80, +jjstrLiteralChars_81, +jjstrLiteralChars_82, +jjstrLiteralChars_83, +jjstrLiteralChars_84, +jjstrLiteralChars_85, +jjstrLiteralChars_86, +jjstrLiteralChars_87, +jjstrLiteralChars_88, +jjstrLiteralChars_89, +jjstrLiteralChars_90, +jjstrLiteralChars_91, +jjstrLiteralChars_92, +jjstrLiteralChars_93, +jjstrLiteralChars_94, +jjstrLiteralChars_95, +jjstrLiteralChars_96, +jjstrLiteralChars_97, +jjstrLiteralChars_98, +jjstrLiteralChars_99, +jjstrLiteralChars_100, +jjstrLiteralChars_101, +jjstrLiteralChars_102, +jjstrLiteralChars_103, +jjstrLiteralChars_104, +jjstrLiteralChars_105, +jjstrLiteralChars_106, +jjstrLiteralChars_107, +jjstrLiteralChars_108, +jjstrLiteralChars_109, +jjstrLiteralChars_110, +jjstrLiteralChars_111, +jjstrLiteralChars_112, +jjstrLiteralChars_113, +jjstrLiteralChars_114, +jjstrLiteralChars_115, +jjstrLiteralChars_116, +jjstrLiteralChars_117, +jjstrLiteralChars_118, +jjstrLiteralChars_119, +jjstrLiteralChars_120, +jjstrLiteralChars_121, +jjstrLiteralChars_122, +jjstrLiteralChars_123, +jjstrLiteralChars_124, +jjstrLiteralChars_125, +jjstrLiteralChars_126, +jjstrLiteralChars_127, +jjstrLiteralChars_128, +jjstrLiteralChars_129, +jjstrLiteralChars_130, +jjstrLiteralChars_131, +jjstrLiteralChars_132, +jjstrLiteralChars_133, +jjstrLiteralChars_134, +jjstrLiteralChars_135, +jjstrLiteralChars_136, +jjstrLiteralChars_137, +jjstrLiteralChars_138, +jjstrLiteralChars_139, +jjstrLiteralChars_140, +jjstrLiteralChars_141, +jjstrLiteralChars_142, +jjstrLiteralChars_143, +jjstrLiteralChars_144, +jjstrLiteralChars_145, +jjstrLiteralChars_146, +jjstrLiteralChars_147, +jjstrLiteralChars_148, +jjstrLiteralChars_149, +jjstrLiteralChars_150, +jjstrLiteralChars_151, +jjstrLiteralChars_152, +jjstrLiteralChars_153, +jjstrLiteralChars_154, +jjstrLiteralChars_155, +jjstrLiteralChars_156, +jjstrLiteralChars_157, +jjstrLiteralChars_158, +jjstrLiteralChars_159, +jjstrLiteralChars_160, +jjstrLiteralChars_161, +jjstrLiteralChars_162, +jjstrLiteralChars_163, +jjstrLiteralChars_164, +jjstrLiteralChars_165, +jjstrLiteralChars_166, +jjstrLiteralChars_167, +jjstrLiteralChars_168, +jjstrLiteralChars_169, +jjstrLiteralChars_170, +jjstrLiteralChars_171, +jjstrLiteralChars_172, +jjstrLiteralChars_173, +jjstrLiteralChars_174, +jjstrLiteralChars_175, +jjstrLiteralChars_176, +jjstrLiteralChars_177, +jjstrLiteralChars_178, +jjstrLiteralChars_179, +jjstrLiteralChars_180, +jjstrLiteralChars_181, +jjstrLiteralChars_182, +jjstrLiteralChars_183, +jjstrLiteralChars_184, +jjstrLiteralChars_185, +}; + +/** Lexer state names. */ +static const JAVACC_CHAR_TYPE lexStateNames_arr_0[] = +{0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0}; +static const JAVACC_STRING_TYPE lexStateNames[] = { +lexStateNames_arr_0, +}; +static const unsigned long long jjtoToken[] = { + 0xfffffffffffffc01ULL, 0xffffffffffffffffULL, 0x2040fffffffffffULL, +}; +static const unsigned long long jjtoSkip[] = { + 0x1eULL, 0x0ULL, 0x0ULL, +}; + +void VhdlParserTokenManager::setDebugStream(FILE *ds){ debugStream = ds; } + + int VhdlParserTokenManager::jjStopAtPos(int pos, int kind){ + jjmatchedKind = kind; + jjmatchedPos = pos; + return pos + 1; +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa0_0(){ + switch(curChar) + { + case 9: + jjmatchedKind = 2; + return jjMoveNfa_0(3, 0); + case 10: + jjmatchedKind = 3; + return jjMoveNfa_0(3, 0); + case 13: + jjmatchedKind = 4; + return jjMoveNfa_0(3, 0); + case 32: + jjmatchedKind = 1; + return jjMoveNfa_0(3, 0); + case 38: + jjmatchedKind = 125; + return jjMoveNfa_0(3, 0); + case 39: + jjmatchedKind = 126; + return jjMoveNfa_0(3, 0); + case 40: + jjmatchedKind = 127; + return jjMoveNfa_0(3, 0); + case 41: + jjmatchedKind = 128; + return jjMoveNfa_0(3, 0); + case 42: + jjmatchedKind = 130; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x2ULL); + case 43: + jjmatchedKind = 131; + return jjMoveNfa_0(3, 0); + case 44: + jjmatchedKind = 133; + return jjMoveNfa_0(3, 0); + case 45: + jjmatchedKind = 132; + return jjMoveNfa_0(3, 0); + case 46: + jjmatchedKind = 156; + return jjMoveNfa_0(3, 0); + case 47: + jjmatchedKind = 157; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x4000ULL); + case 58: + jjmatchedKind = 135; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x40ULL); + case 59: + jjmatchedKind = 136; + return jjMoveNfa_0(3, 0); + case 60: + jjmatchedKind = 139; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x30200ULL); + case 61: + jjmatchedKind = 141; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x8000ULL); + case 62: + jjmatchedKind = 140; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x40400ULL); + case 63: + jjmatchedKind = 154; + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x0ULL, 0x3f80000ULL); + case 64: + jjmatchedKind = 158; + return jjMoveNfa_0(3, 0); + case 65: + return jjMoveStringLiteralDfa1_0(0x3ffc00ULL, 0x0ULL, 0x0ULL); + case 66: + return jjMoveStringLiteralDfa1_0(0x7c00000ULL, 0x0ULL, 0x0ULL); + case 67: + return jjMoveStringLiteralDfa1_0(0x1f8000000ULL, 0x0ULL, 0x0ULL); + case 68: + return jjMoveStringLiteralDfa1_0(0xe00000000ULL, 0x0ULL, 0x0ULL); + case 69: + return jjMoveStringLiteralDfa1_0(0x1f000000000ULL, 0x0ULL, 0x0ULL); + case 70: + return jjMoveStringLiteralDfa1_0(0x3e0000000000ULL, 0x0ULL, 0x0ULL); + case 71: + return jjMoveStringLiteralDfa1_0(0x3c00000000000ULL, 0x0ULL, 0x0ULL); + case 73: + return jjMoveStringLiteralDfa1_0(0xfc000000000000ULL, 0x0ULL, 0x0ULL); + case 76: + return jjMoveStringLiteralDfa1_0(0x1f00000000000000ULL, 0x0ULL, 0x0ULL); + case 77: + return jjMoveStringLiteralDfa1_0(0x6000000000000000ULL, 0x0ULL, 0x0ULL); + case 78: + return jjMoveStringLiteralDfa1_0(0x8000000000000000ULL, 0x1fULL, 0x0ULL); + case 79: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x7e0ULL, 0x0ULL); + case 80: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0xff800ULL, 0x0ULL); + case 82: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0xfff00000ULL, 0x0ULL); + case 83: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x7ff00000000ULL, 0x0ULL); + case 84: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x780000000000ULL, 0x0ULL); + case 85: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x7800000000000ULL, 0x0ULL); + case 86: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x78000000000000ULL, 0x0ULL); + case 87: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x780000000000000ULL, 0x0ULL); + case 88: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x1800000000000000ULL, 0x0ULL); + case 91: + jjmatchedKind = 160; + return jjMoveNfa_0(3, 0); + case 93: + jjmatchedKind = 161; + return jjMoveNfa_0(3, 0); + case 94: + jjmatchedKind = 159; + return jjMoveNfa_0(3, 0); + case 97: + return jjMoveStringLiteralDfa1_0(0x3ffc00ULL, 0x0ULL, 0x0ULL); + case 98: + return jjMoveStringLiteralDfa1_0(0x7c00000ULL, 0x0ULL, 0x0ULL); + case 99: + return jjMoveStringLiteralDfa1_0(0x1f8000000ULL, 0x0ULL, 0x0ULL); + case 100: + return jjMoveStringLiteralDfa1_0(0xe00000000ULL, 0x0ULL, 0x0ULL); + case 101: + return jjMoveStringLiteralDfa1_0(0x1f000000000ULL, 0x0ULL, 0x0ULL); + case 102: + return jjMoveStringLiteralDfa1_0(0x3e0000000000ULL, 0x0ULL, 0x0ULL); + case 103: + return jjMoveStringLiteralDfa1_0(0x3c00000000000ULL, 0x0ULL, 0x0ULL); + case 105: + return jjMoveStringLiteralDfa1_0(0xfc000000000000ULL, 0x0ULL, 0x0ULL); + case 108: + return jjMoveStringLiteralDfa1_0(0x1f00000000000000ULL, 0x0ULL, 0x0ULL); + case 109: + return jjMoveStringLiteralDfa1_0(0x6000000000000000ULL, 0x0ULL, 0x0ULL); + case 110: + return jjMoveStringLiteralDfa1_0(0x8000000000000000ULL, 0x1fULL, 0x0ULL); + case 111: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x7e0ULL, 0x0ULL); + case 112: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0xff800ULL, 0x0ULL); + case 114: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0xfff00000ULL, 0x0ULL); + case 115: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x7ff00000000ULL, 0x0ULL); + case 116: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x780000000000ULL, 0x0ULL); + case 117: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x7800000000000ULL, 0x0ULL); + case 118: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x78000000000000ULL, 0x0ULL); + case 119: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x780000000000000ULL, 0x0ULL); + case 120: + return jjMoveStringLiteralDfa1_0(0x0ULL, 0x1800000000000000ULL, 0x0ULL); + case 123: + jjmatchedKind = 162; + return jjMoveNfa_0(3, 0); + case 124: + jjmatchedKind = 155; + return jjMoveNfa_0(3, 0); + case 125: + jjmatchedKind = 163; + return jjMoveNfa_0(3, 0); + default : + return jjMoveNfa_0(3, 0); + } +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa1_0(unsigned long long active0, unsigned long long active1, unsigned long long active2){ + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 0); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 42: + if ((active2 & 0x2ULL) != 0L) + { + jjmatchedKind = 129; + jjmatchedPos = 1; + } + break; + case 47: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x2000000ULL); + case 60: + if ((active2 & 0x20000ULL) != 0L) + { + jjmatchedKind = 145; + jjmatchedPos = 1; + } + else if ((active2 & 0x800000ULL) != 0L) + { + jjmatchedKind = 151; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x200000ULL); + case 61: + if ((active2 & 0x40ULL) != 0L) + { + jjmatchedKind = 134; + jjmatchedPos = 1; + } + else if ((active2 & 0x200ULL) != 0L) + { + jjmatchedKind = 137; + jjmatchedPos = 1; + } + else if ((active2 & 0x400ULL) != 0L) + { + jjmatchedKind = 138; + jjmatchedPos = 1; + } + else if ((active2 & 0x4000ULL) != 0L) + { + jjmatchedKind = 142; + jjmatchedPos = 1; + } + else if ((active2 & 0x1000000ULL) != 0L) + { + jjmatchedKind = 152; + jjmatchedPos = 1; + } + break; + case 62: + if ((active2 & 0x8000ULL) != 0L) + { + jjmatchedKind = 143; + jjmatchedPos = 1; + } + else if ((active2 & 0x10000ULL) != 0L) + { + jjmatchedKind = 144; + jjmatchedPos = 1; + } + else if ((active2 & 0x40000ULL) != 0L) + { + jjmatchedKind = 146; + jjmatchedPos = 1; + } + else if ((active2 & 0x400000ULL) != 0L) + { + jjmatchedKind = 150; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0L, active2, 0x100000ULL); + case 63: + if ((active2 & 0x80000ULL) != 0L) + { + jjmatchedKind = 147; + jjmatchedPos = 1; + } + break; + case 65: + return jjMoveStringLiteralDfa2_0(active0, 0xa100020010000000ULL, active1, 0x88000000101800ULL, active2, 0L); + case 66: + return jjMoveStringLiteralDfa2_0(active0, 0x400ULL, active1, 0L, active2, 0L); + case 67: + return jjMoveStringLiteralDfa2_0(active0, 0x800ULL, active1, 0L, active2, 0L); + case 69: + return jjMoveStringLiteralDfa2_0(active0, 0xc00200400000ULL, active1, 0x79fe00003ULL, active2, 0L); + case 70: + if ((active0 & 0x4000000000000ULL) != 0L) + { + jjmatchedKind = 50; + jjmatchedPos = 1; + } + else if ((active1 & 0x20ULL) != 0L) + { + jjmatchedKind = 69; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x1000ULL, active1, 0L, active2, 0L); + case 72: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x300081000000000ULL, active2, 0L); + case 73: + return jjMoveStringLiteralDfa2_0(active0, 0xe00040400000000ULL, active1, 0x400000800000000ULL, active2, 0L); + case 76: + return jjMoveStringLiteralDfa2_0(active0, 0x3000806000ULL, active1, 0x6000000000ULL, active2, 0L); + case 77: + return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000ULL, active1, 0x10000000000000ULL, active2, 0L); + case 78: + if ((active0 & 0x10000000000000ULL) != 0L) + { + jjmatchedKind = 52; + jjmatchedPos = 1; + } + else if ((active1 & 0x40ULL) != 0L) + { + jjmatchedKind = 70; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x6000c000008000ULL, active1, 0x1003800000000000ULL, active2, 0L); + case 79: + if ((active1 & 0x100000000000ULL) != 0L) + { + jjmatchedKind = 108; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x50001809e9000000ULL, active1, 0x80000006000600cULL, active2, 0L); + case 80: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x20000000000080ULL, active2, 0L); + case 82: + if ((active1 & 0x100ULL) != 0L) + { + jjmatchedKind = 72; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x1000000030000ULL, active1, 0x218000078000ULL, active2, 0L); + case 83: + if ((active0 & 0x80000000000000ULL) != 0L) + { + jjmatchedKind = 55; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x1c0000ULL, active1, 0x4000000000000ULL, active2, 0L); + case 84: + return jjMoveStringLiteralDfa2_0(active0, 0x200000ULL, active1, 0x20000000200ULL, active2, 0L); + case 85: + return jjMoveStringLiteralDfa2_0(active0, 0x2200006000000ULL, active1, 0x40040000080410ULL, active2, 0L); + case 88: + return jjMoveStringLiteralDfa2_0(active0, 0x10000000000ULL, active1, 0L, active2, 0L); + case 89: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000000ULL, active2, 0L); + case 97: + return jjMoveStringLiteralDfa2_0(active0, 0xa100020010000000ULL, active1, 0x88000000101800ULL, active2, 0L); + case 98: + return jjMoveStringLiteralDfa2_0(active0, 0x400ULL, active1, 0L, active2, 0L); + case 99: + return jjMoveStringLiteralDfa2_0(active0, 0x800ULL, active1, 0L, active2, 0L); + case 101: + return jjMoveStringLiteralDfa2_0(active0, 0xc00200400000ULL, active1, 0x79fe00003ULL, active2, 0L); + case 102: + if ((active0 & 0x4000000000000ULL) != 0L) + { + jjmatchedKind = 50; + jjmatchedPos = 1; + } + else if ((active1 & 0x20ULL) != 0L) + { + jjmatchedKind = 69; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x1000ULL, active1, 0L, active2, 0L); + case 104: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x300081000000000ULL, active2, 0L); + case 105: + return jjMoveStringLiteralDfa2_0(active0, 0xe00040400000000ULL, active1, 0x400000800000000ULL, active2, 0L); + case 108: + return jjMoveStringLiteralDfa2_0(active0, 0x3000806000ULL, active1, 0x6000000000ULL, active2, 0L); + case 109: + return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000ULL, active1, 0x10000000000000ULL, active2, 0L); + case 110: + if ((active0 & 0x10000000000000ULL) != 0L) + { + jjmatchedKind = 52; + jjmatchedPos = 1; + } + else if ((active1 & 0x40ULL) != 0L) + { + jjmatchedKind = 70; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x6000c000008000ULL, active1, 0x1003800000000000ULL, active2, 0L); + case 111: + if ((active1 & 0x100000000000ULL) != 0L) + { + jjmatchedKind = 108; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x50001809e9000000ULL, active1, 0x80000006000600cULL, active2, 0L); + case 112: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x20000000000080ULL, active2, 0L); + case 114: + if ((active1 & 0x100ULL) != 0L) + { + jjmatchedKind = 72; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x1000000030000ULL, active1, 0x218000078000ULL, active2, 0L); + case 115: + if ((active0 & 0x80000000000000ULL) != 0L) + { + jjmatchedKind = 55; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_0(active0, 0x1c0000ULL, active1, 0x4000000000000ULL, active2, 0L); + case 116: + return jjMoveStringLiteralDfa2_0(active0, 0x200000ULL, active1, 0x20000000200ULL, active2, 0L); + case 117: + return jjMoveStringLiteralDfa2_0(active0, 0x2200006000000ULL, active1, 0x40040000080410ULL, active2, 0L); + case 120: + return jjMoveStringLiteralDfa2_0(active0, 0x10000000000ULL, active1, 0L, active2, 0L); + case 121: + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000000ULL, active2, 0L); + default : + break; + } + return jjMoveNfa_0(3, 1); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa2_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1, unsigned long long old2, unsigned long long active2){ + if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) + return jjMoveNfa_0(3, 1); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 1); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 61: + if ((active2 & 0x100000ULL) != 0L) + { + jjmatchedKind = 148; + jjmatchedPos = 2; + } + else if ((active2 & 0x200000ULL) != 0L) + { + jjmatchedKind = 149; + jjmatchedPos = 2; + } + else if ((active2 & 0x2000000ULL) != 0L) + { + jjmatchedKind = 153; + jjmatchedPos = 2; + } + break; + case 65: + if ((active1 & 0x2000000000ULL) != 0L) + { + jjmatchedKind = 101; + jjmatchedPos = 2; + } + else if ((active1 & 0x8000000000ULL) != 0L) + { + jjmatchedKind = 103; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000ULL, active1, 0xa01000000000ULL, active2, 0L); + case 66: + return jjMoveStringLiteralDfa3_0(active0, 0x300000000000000ULL, active1, 0x40000000000ULL, active2, 0L); + case 67: + return jjMoveStringLiteralDfa3_0(active0, 0x10800ULL, active1, 0x200800ULL, active2, 0L); + case 68: + if ((active0 & 0x8000ULL) != 0L) + { + jjmatchedKind = 15; + jjmatchedPos = 2; + } + else if ((active0 & 0x4000000000ULL) != 0L) + { + jjmatchedKind = 38; + jjmatchedPos = 2; + } + else if ((active0 & 0x4000000000000000ULL) != 0L) + { + jjmatchedKind = 62; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x1000000ULL, active1, 0L, active2, 0L); + case 69: + if ((active1 & 0x4000000000000ULL) != 0L) + { + jjmatchedKind = 114; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x20000000000000ULL, active1, 0x100080000000080ULL, active2, 0L); + case 70: + return jjMoveStringLiteralDfa3_0(active0, 0x202000000ULL, active1, 0L, active2, 0L); + case 71: + return jjMoveStringLiteralDfa3_0(active0, 0x400000ULL, active1, 0x800400000ULL, active2, 0L); + case 72: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200ULL, active2, 0L); + case 73: + return jjMoveStringLiteralDfa3_0(active0, 0x30000002000ULL, active1, 0x281000000000000ULL, active2, 0L); + case 74: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000ULL, active2, 0L); + case 76: + if ((active0 & 0x4000ULL) != 0L) + { + jjmatchedKind = 14; + jjmatchedPos = 2; + } + else if ((active1 & 0x20000000ULL) != 0L) + { + jjmatchedKind = 93; + jjmatchedPos = 2; + } + else if ((active1 & 0x4000000000ULL) != 0L) + { + jjmatchedKind = 102; + jjmatchedPos = 2; + } + else if ((active1 & 0x10000000000ULL) != 0L) + { + jjmatchedKind = 104; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x40000000000ULL, active1, 0x101000010ULL, active2, 0L); + case 77: + if ((active1 & 0x8000000ULL) != 0L) + { + jjmatchedKind = 91; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x8000000ULL, active1, 0L, active2, 0L); + case 78: + return jjMoveStringLiteralDfa3_0(active0, 0x8400e000e0000000ULL, active1, 0x40000000100000ULL, active2, 0L); + case 79: + return jjMoveStringLiteralDfa3_0(active0, 0x1041000000800000ULL, active1, 0x1010000000078000ULL, active2, 0L); + case 80: + if ((active0 & 0x2000000000000000ULL) != 0L) + { + jjmatchedKind = 61; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000ULL, active1, 0x400010000000ULL, active2, 0L); + case 81: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000000ULL, active2, 0L); + case 82: + if ((active0 & 0x80000000000ULL) != 0L) + { + jjmatchedKind = 43; + jjmatchedPos = 2; + } + else if ((active1 & 0x4ULL) != 0L) + { + jjmatchedKind = 66; + jjmatchedPos = 2; + } + else if ((active1 & 0x40000000ULL) != 0L) + { + jjmatchedKind = 94; + jjmatchedPos = 2; + } + else if ((active1 & 0x800000000000000ULL) != 0L) + { + jjmatchedKind = 123; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x100000020000ULL, active1, 0x28020000083000ULL, active2, 0L); + case 83: + if ((active0 & 0x400ULL) != 0L) + { + jjmatchedKind = 10; + jjmatchedPos = 2; + } + else if ((active0 & 0x4000000ULL) != 0L) + { + jjmatchedKind = 26; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x34101c0000ULL, active1, 0x6004000ULL, active2, 0L); + case 84: + if ((active1 & 0x8ULL) != 0L) + { + jjmatchedKind = 67; + jjmatchedPos = 2; + } + else if ((active1 & 0x400ULL) != 0L) + { + jjmatchedKind = 74; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x800008000201000ULL, active1, 0x402000080000000ULL, active2, 0L); + case 86: + return jjMoveStringLiteralDfa3_0(active0, 0x100000000ULL, active1, 0x400000000ULL, active2, 0L); + case 87: + if ((active1 & 0x1ULL) != 0L) + { + jjmatchedKind = 64; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x800000000ULL, active1, 0L, active2, 0L); + case 88: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2ULL, active2, 0L); + case 97: + if ((active1 & 0x2000000000ULL) != 0L) + { + jjmatchedKind = 101; + jjmatchedPos = 2; + } + else if ((active1 & 0x8000000000ULL) != 0L) + { + jjmatchedKind = 103; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000ULL, active1, 0xa01000000000ULL, active2, 0L); + case 98: + return jjMoveStringLiteralDfa3_0(active0, 0x300000000000000ULL, active1, 0x40000000000ULL, active2, 0L); + case 99: + return jjMoveStringLiteralDfa3_0(active0, 0x10800ULL, active1, 0x200800ULL, active2, 0L); + case 100: + if ((active0 & 0x8000ULL) != 0L) + { + jjmatchedKind = 15; + jjmatchedPos = 2; + } + else if ((active0 & 0x4000000000ULL) != 0L) + { + jjmatchedKind = 38; + jjmatchedPos = 2; + } + else if ((active0 & 0x4000000000000000ULL) != 0L) + { + jjmatchedKind = 62; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x1000000ULL, active1, 0L, active2, 0L); + case 101: + if ((active1 & 0x4000000000000ULL) != 0L) + { + jjmatchedKind = 114; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x20000000000000ULL, active1, 0x100080000000080ULL, active2, 0L); + case 102: + return jjMoveStringLiteralDfa3_0(active0, 0x202000000ULL, active1, 0L, active2, 0L); + case 103: + return jjMoveStringLiteralDfa3_0(active0, 0x400000ULL, active1, 0x800400000ULL, active2, 0L); + case 104: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200ULL, active2, 0L); + case 105: + return jjMoveStringLiteralDfa3_0(active0, 0x30000002000ULL, active1, 0x281000000000000ULL, active2, 0L); + case 106: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000ULL, active2, 0L); + case 108: + if ((active0 & 0x4000ULL) != 0L) + { + jjmatchedKind = 14; + jjmatchedPos = 2; + } + else if ((active1 & 0x20000000ULL) != 0L) + { + jjmatchedKind = 93; + jjmatchedPos = 2; + } + else if ((active1 & 0x4000000000ULL) != 0L) + { + jjmatchedKind = 102; + jjmatchedPos = 2; + } + else if ((active1 & 0x10000000000ULL) != 0L) + { + jjmatchedKind = 104; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x40000000000ULL, active1, 0x101000010ULL, active2, 0L); + case 109: + if ((active1 & 0x8000000ULL) != 0L) + { + jjmatchedKind = 91; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x8000000ULL, active1, 0L, active2, 0L); + case 110: + return jjMoveStringLiteralDfa3_0(active0, 0x8400e000e0000000ULL, active1, 0x40000000100000ULL, active2, 0L); + case 111: + return jjMoveStringLiteralDfa3_0(active0, 0x1041000000800000ULL, active1, 0x1010000000078000ULL, active2, 0L); + case 112: + if ((active0 & 0x2000000000000000ULL) != 0L) + { + jjmatchedKind = 61; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000ULL, active1, 0x400010000000ULL, active2, 0L); + case 113: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000000ULL, active2, 0L); + case 114: + if ((active0 & 0x80000000000ULL) != 0L) + { + jjmatchedKind = 43; + jjmatchedPos = 2; + } + else if ((active1 & 0x4ULL) != 0L) + { + jjmatchedKind = 66; + jjmatchedPos = 2; + } + else if ((active1 & 0x40000000ULL) != 0L) + { + jjmatchedKind = 94; + jjmatchedPos = 2; + } + else if ((active1 & 0x800000000000000ULL) != 0L) + { + jjmatchedKind = 123; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x100000020000ULL, active1, 0x28020000083000ULL, active2, 0L); + case 115: + if ((active0 & 0x400ULL) != 0L) + { + jjmatchedKind = 10; + jjmatchedPos = 2; + } + else if ((active0 & 0x4000000ULL) != 0L) + { + jjmatchedKind = 26; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x34101c0000ULL, active1, 0x6004000ULL, active2, 0L); + case 116: + if ((active1 & 0x8ULL) != 0L) + { + jjmatchedKind = 67; + jjmatchedPos = 2; + } + else if ((active1 & 0x400ULL) != 0L) + { + jjmatchedKind = 74; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x800008000201000ULL, active1, 0x402000080000000ULL, active2, 0L); + case 118: + return jjMoveStringLiteralDfa3_0(active0, 0x100000000ULL, active1, 0x400000000ULL, active2, 0L); + case 119: + if ((active1 & 0x1ULL) != 0L) + { + jjmatchedKind = 64; + jjmatchedPos = 2; + } + return jjMoveStringLiteralDfa3_0(active0, 0x800000000ULL, active1, 0L, active2, 0L); + case 120: + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2ULL, active2, 0L); + default : + break; + } + return jjMoveNfa_0(3, 2); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa3_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1, unsigned long long old2, unsigned long long active2){ + if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) + return jjMoveNfa_0(3, 2); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 2); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa4_0(active0, 0x200022000ULL, active1, 0x1000ULL); + case 67: + return jjMoveStringLiteralDfa4_0(active0, 0x300400800000ULL, active1, 0x18000ULL); + case 68: + if ((active0 & 0x8000000000000000ULL) != 0L) + { + jjmatchedKind = 63; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x10000000000000ULL); + case 69: + if ((active0 & 0x10000000ULL) != 0L) + { + jjmatchedKind = 28; + jjmatchedPos = 3; + } + else if ((active0 & 0x1000000000ULL) != 0L) + { + jjmatchedKind = 36; + jjmatchedPos = 3; + } + else if ((active0 & 0x40000000000ULL) != 0L) + { + jjmatchedKind = 42; + jjmatchedPos = 3; + } + else if ((active1 & 0x80000ULL) != 0L) + { + jjmatchedKind = 83; + jjmatchedPos = 3; + } + else if ((active1 & 0x400000000000ULL) != 0L) + { + jjmatchedKind = 110; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x900c00100041800ULL, active1, 0x501800200ULL); + case 70: + return jjMoveStringLiteralDfa4_0(active0, 0x22000000ULL, active1, 0x800000000000ULL); + case 71: + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000ULL); + case 72: + if ((active1 & 0x400000000000000ULL) != 0L) + { + jjmatchedKind = 122; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x10000ULL, active1, 0L); + case 73: + return jjMoveStringLiteralDfa4_0(active0, 0xa000400000ULL, active1, 0x4a000000400000ULL); + case 75: + return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000ULL, active1, 0x800ULL); + case 76: + if ((active1 & 0x10ULL) != 0L) + { + jjmatchedKind = 68; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000000000000ULL); + case 78: + if ((active1 & 0x80ULL) != 0L) + { + jjmatchedKind = 71; + jjmatchedPos = 3; + } + else if ((active1 & 0x80000000000ULL) != 0L) + { + jjmatchedKind = 107; + jjmatchedPos = 3; + } + else if ((active1 & 0x100000000000000ULL) != 0L) + { + jjmatchedKind = 120; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x800000000ULL, active1, 0x200800000000ULL); + case 79: + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20020010200000ULL); + case 80: + if ((active0 & 0x1000000000000000ULL) != 0L) + { + jjmatchedKind = 60; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x8000000ULL, active1, 0x20000ULL); + case 82: + if ((active1 & 0x1000000000000000ULL) != 0L) + { + jjmatchedKind = 124; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x222020000200000ULL, active1, 0x1000000000ULL); + case 83: + return jjMoveStringLiteralDfa4_0(active0, 0x40000000ULL, active1, 0L); + case 84: + if ((active0 & 0x10000000000ULL) != 0L) + { + jjmatchedKind = 40; + jjmatchedPos = 3; + } + else if ((active1 & 0x2ULL) != 0L) + { + jjmatchedKind = 65; + jjmatchedPos = 3; + } + else if ((active1 & 0x2000ULL) != 0L) + { + jjmatchedKind = 77; + jjmatchedPos = 3; + } + else if ((active1 & 0x80000000000000ULL) != 0L) + { + jjmatchedKind = 119; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x80000000ULL, active1, 0x1040006044000ULL); + case 85: + return jjMoveStringLiteralDfa4_0(active0, 0x49000000180000ULL, active1, 0x280000000ULL); + case 89: + if ((active0 & 0x1000000ULL) != 0L) + { + jjmatchedKind = 24; + jjmatchedPos = 3; + } + break; + case 97: + return jjMoveStringLiteralDfa4_0(active0, 0x200022000ULL, active1, 0x1000ULL); + case 99: + return jjMoveStringLiteralDfa4_0(active0, 0x300400800000ULL, active1, 0x18000ULL); + case 100: + if ((active0 & 0x8000000000000000ULL) != 0L) + { + jjmatchedKind = 63; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x10000000000000ULL); + case 101: + if ((active0 & 0x10000000ULL) != 0L) + { + jjmatchedKind = 28; + jjmatchedPos = 3; + } + else if ((active0 & 0x1000000000ULL) != 0L) + { + jjmatchedKind = 36; + jjmatchedPos = 3; + } + else if ((active0 & 0x40000000000ULL) != 0L) + { + jjmatchedKind = 42; + jjmatchedPos = 3; + } + else if ((active1 & 0x80000ULL) != 0L) + { + jjmatchedKind = 83; + jjmatchedPos = 3; + } + else if ((active1 & 0x400000000000ULL) != 0L) + { + jjmatchedKind = 110; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x900c00100041800ULL, active1, 0x501800200ULL); + case 102: + return jjMoveStringLiteralDfa4_0(active0, 0x22000000ULL, active1, 0x800000000000ULL); + case 103: + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000ULL); + case 104: + if ((active1 & 0x400000000000000ULL) != 0L) + { + jjmatchedKind = 122; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x10000ULL, active1, 0L); + case 105: + return jjMoveStringLiteralDfa4_0(active0, 0xa000400000ULL, active1, 0x4a000000400000ULL); + case 107: + return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000ULL, active1, 0x800ULL); + case 108: + if ((active1 & 0x10ULL) != 0L) + { + jjmatchedKind = 68; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000000000000ULL); + case 110: + if ((active1 & 0x80ULL) != 0L) + { + jjmatchedKind = 71; + jjmatchedPos = 3; + } + else if ((active1 & 0x80000000000ULL) != 0L) + { + jjmatchedKind = 107; + jjmatchedPos = 3; + } + else if ((active1 & 0x100000000000000ULL) != 0L) + { + jjmatchedKind = 120; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x800000000ULL, active1, 0x200800000000ULL); + case 111: + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20020010200000ULL); + case 112: + if ((active0 & 0x1000000000000000ULL) != 0L) + { + jjmatchedKind = 60; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x8000000ULL, active1, 0x20000ULL); + case 114: + if ((active1 & 0x1000000000000000ULL) != 0L) + { + jjmatchedKind = 124; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x222020000200000ULL, active1, 0x1000000000ULL); + case 115: + return jjMoveStringLiteralDfa4_0(active0, 0x40000000ULL, active1, 0L); + case 116: + if ((active0 & 0x10000000000ULL) != 0L) + { + jjmatchedKind = 40; + jjmatchedPos = 3; + } + else if ((active1 & 0x2ULL) != 0L) + { + jjmatchedKind = 65; + jjmatchedPos = 3; + } + else if ((active1 & 0x2000ULL) != 0L) + { + jjmatchedKind = 77; + jjmatchedPos = 3; + } + else if ((active1 & 0x80000000000000ULL) != 0L) + { + jjmatchedKind = 119; + jjmatchedPos = 3; + } + return jjMoveStringLiteralDfa4_0(active0, 0x80000000ULL, active1, 0x1040006044000ULL); + case 117: + return jjMoveStringLiteralDfa4_0(active0, 0x49000000180000ULL, active1, 0x280000000ULL); + case 121: + if ((active0 & 0x1000000ULL) != 0L) + { + jjmatchedKind = 24; + jjmatchedPos = 3; + } + break; + default : + break; + } + return jjMoveNfa_0(3, 3); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa4_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 3); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 3); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa5_0(active0, 0x600000000000000ULL, active1, 0x8000801000800ULL); + case 67: + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100800000ULL); + case 68: + return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000ULL, active1, 0L); + case 69: + if ((active0 & 0x100000000000ULL) != 0L) + { + jjmatchedKind = 44; + jjmatchedPos = 4; + } + else if ((active1 & 0x100000ULL) != 0L) + { + jjmatchedKind = 84; + jjmatchedPos = 4; + } + else if ((active1 & 0x10000000000000ULL) != 0L) + { + jjmatchedKind = 116; + jjmatchedPos = 4; + } + else if ((active1 & 0x200000000000000ULL) != 0L) + { + jjmatchedKind = 121; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x82000000ULL, active1, 0x1200078000ULL); + case 70: + if ((active0 & 0x2000000000ULL) != 0L) + { + jjmatchedKind = 37; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000000ULL); + case 73: + return jjMoveStringLiteralDfa5_0(active0, 0x20210000ULL, active1, 0L); + case 75: + if ((active0 & 0x800000ULL) != 0L) + { + jjmatchedKind = 23; + jjmatchedPos = 4; + } + break; + case 76: + if ((active0 & 0x100000000000000ULL) != 0L) + { + jjmatchedKind = 56; + jjmatchedPos = 4; + } + else if ((active1 & 0x2000000000000ULL) != 0L) + { + jjmatchedKind = 113; + jjmatchedPos = 4; + } + break; + case 77: + return jjMoveStringLiteralDfa5_0(active0, 0x180000ULL, active1, 0x1000ULL); + case 78: + if ((active0 & 0x400000ULL) != 0L) + { + jjmatchedKind = 22; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x20000000000ULL, active1, 0x20000000000ULL); + case 79: + return jjMoveStringLiteralDfa5_0(active0, 0x408000000ULL, active1, 0L); + case 80: + if ((active0 & 0x1000000000000ULL) != 0L) + { + jjmatchedKind = 48; + jjmatchedPos = 4; + } + else if ((active1 & 0x20000000000000ULL) != 0L) + { + jjmatchedKind = 117; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4000ULL); + case 82: + if ((active0 & 0x1000ULL) != 0L) + { + jjmatchedKind = 12; + jjmatchedPos = 4; + } + else if ((active0 & 0x100000000ULL) != 0L) + { + jjmatchedKind = 32; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x808c00000040000ULL, active1, 0x496200200ULL); + case 83: + if ((active0 & 0x2000ULL) != 0L) + { + jjmatchedKind = 13; + jjmatchedPos = 4; + } + else if ((active1 & 0x1000000000000ULL) != 0L) + { + jjmatchedKind = 112; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x800ULL, active1, 0x200000400000ULL); + case 84: + if ((active0 & 0x40000000000000ULL) != 0L) + { + jjmatchedKind = 54; + jjmatchedPos = 4; + } + else if ((active1 & 0x40000000000000ULL) != 0L) + { + jjmatchedKind = 118; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x20208840000000ULL, active1, 0L); + case 85: + return jjMoveStringLiteralDfa5_0(active0, 0x200000000ULL, active1, 0L); + case 89: + if ((active0 & 0x20000ULL) != 0L) + { + jjmatchedKind = 17; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000000000ULL); + case 97: + return jjMoveStringLiteralDfa5_0(active0, 0x600000000000000ULL, active1, 0x8000801000800ULL); + case 99: + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100800000ULL); + case 100: + return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000ULL, active1, 0L); + case 101: + if ((active0 & 0x100000000000ULL) != 0L) + { + jjmatchedKind = 44; + jjmatchedPos = 4; + } + else if ((active1 & 0x100000ULL) != 0L) + { + jjmatchedKind = 84; + jjmatchedPos = 4; + } + else if ((active1 & 0x10000000000000ULL) != 0L) + { + jjmatchedKind = 116; + jjmatchedPos = 4; + } + else if ((active1 & 0x200000000000000ULL) != 0L) + { + jjmatchedKind = 121; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x82000000ULL, active1, 0x1200078000ULL); + case 102: + if ((active0 & 0x2000000000ULL) != 0L) + { + jjmatchedKind = 37; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000000ULL); + case 105: + return jjMoveStringLiteralDfa5_0(active0, 0x20210000ULL, active1, 0L); + case 107: + if ((active0 & 0x800000ULL) != 0L) + { + jjmatchedKind = 23; + jjmatchedPos = 4; + } + break; + case 108: + if ((active0 & 0x100000000000000ULL) != 0L) + { + jjmatchedKind = 56; + jjmatchedPos = 4; + } + else if ((active1 & 0x2000000000000ULL) != 0L) + { + jjmatchedKind = 113; + jjmatchedPos = 4; + } + break; + case 109: + return jjMoveStringLiteralDfa5_0(active0, 0x180000ULL, active1, 0x1000ULL); + case 110: + if ((active0 & 0x400000ULL) != 0L) + { + jjmatchedKind = 22; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x20000000000ULL, active1, 0x20000000000ULL); + case 111: + return jjMoveStringLiteralDfa5_0(active0, 0x408000000ULL, active1, 0L); + case 112: + if ((active0 & 0x1000000000000ULL) != 0L) + { + jjmatchedKind = 48; + jjmatchedPos = 4; + } + else if ((active1 & 0x20000000000000ULL) != 0L) + { + jjmatchedKind = 117; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4000ULL); + case 114: + if ((active0 & 0x1000ULL) != 0L) + { + jjmatchedKind = 12; + jjmatchedPos = 4; + } + else if ((active0 & 0x100000000ULL) != 0L) + { + jjmatchedKind = 32; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x808c00000040000ULL, active1, 0x496200200ULL); + case 115: + if ((active0 & 0x2000ULL) != 0L) + { + jjmatchedKind = 13; + jjmatchedPos = 4; + } + else if ((active1 & 0x1000000000000ULL) != 0L) + { + jjmatchedKind = 112; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x800ULL, active1, 0x200000400000ULL); + case 116: + if ((active0 & 0x40000000000000ULL) != 0L) + { + jjmatchedKind = 54; + jjmatchedPos = 4; + } + else if ((active1 & 0x40000000000000ULL) != 0L) + { + jjmatchedKind = 118; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0x20208840000000ULL, active1, 0L); + case 117: + return jjMoveStringLiteralDfa5_0(active0, 0x200000000ULL, active1, 0L); + case 121: + if ((active0 & 0x20000ULL) != 0L) + { + jjmatchedKind = 17; + jjmatchedPos = 4; + } + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000000000ULL); + default : + break; + } + return jjMoveNfa_0(3, 4); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa5_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 4); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 4); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa6_0(active0, 0x800400040000000ULL, active1, 0L); + case 66: + return jjMoveStringLiteralDfa6_0(active0, 0x200000ULL, active1, 0x8000000000000ULL); + case 67: + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x40000ULL); + case 68: + if ((active1 & 0x200000ULL) != 0L) + { + jjmatchedKind = 85; + jjmatchedPos = 5; + } + else if ((active1 & 0x1000000000ULL) != 0L) + { + jjmatchedKind = 100; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8000ULL); + case 69: + if ((active0 & 0x80000ULL) != 0L) + { + jjmatchedKind = 19; + jjmatchedPos = 5; + } + else if ((active0 & 0x8000000000000ULL) != 0L) + { + jjmatchedKind = 51; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x2020000100000ULL, active1, 0x800000001000ULL); + case 71: + if ((active1 & 0x20000000000ULL) != 0L) + { + jjmatchedKind = 105; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x400000020000000ULL, active1, 0x800ULL); + case 73: + return jjMoveStringLiteralDfa6_0(active0, 0x20a00000000000ULL, active1, 0x406000000ULL); + case 76: + if ((active1 & 0x800000000ULL) != 0L) + { + jjmatchedKind = 99; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x200000000ULL, active1, 0L); + case 78: + if ((active1 & 0x80000000ULL) != 0L) + { + jjmatchedKind = 95; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x408000000ULL, active1, 0x200000000ULL); + case 79: + if ((active0 & 0x800000000ULL) != 0L) + { + jjmatchedKind = 35; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000ULL); + case 80: + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x240000000000ULL); + case 82: + if ((active0 & 0x2000000ULL) != 0L) + { + jjmatchedKind = 25; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000ULL, active1, 0x20000ULL); + case 83: + if ((active0 & 0x800ULL) != 0L) + { + jjmatchedKind = 11; + jjmatchedPos = 5; + } + else if ((active1 & 0x200ULL) != 0L) + { + jjmatchedKind = 73; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1010000ULL); + case 84: + if ((active0 & 0x40000ULL) != 0L) + { + jjmatchedKind = 18; + jjmatchedPos = 5; + } + else if ((active1 & 0x800000ULL) != 0L) + { + jjmatchedKind = 87; + jjmatchedPos = 5; + } + else if ((active1 & 0x10000000ULL) != 0L) + { + jjmatchedKind = 92; + jjmatchedPos = 5; + } + else if ((active1 & 0x100000000ULL) != 0L) + { + jjmatchedKind = 96; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x10000ULL, active1, 0x400000ULL); + case 88: + return jjMoveStringLiteralDfa6_0(active0, 0x80000000ULL, active1, 0L); + case 89: + if ((active0 & 0x8000000000ULL) != 0L) + { + jjmatchedKind = 39; + jjmatchedPos = 5; + } + break; + case 97: + return jjMoveStringLiteralDfa6_0(active0, 0x800400040000000ULL, active1, 0L); + case 98: + return jjMoveStringLiteralDfa6_0(active0, 0x200000ULL, active1, 0x8000000000000ULL); + case 99: + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x40000ULL); + case 100: + if ((active1 & 0x200000ULL) != 0L) + { + jjmatchedKind = 85; + jjmatchedPos = 5; + } + else if ((active1 & 0x1000000000ULL) != 0L) + { + jjmatchedKind = 100; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8000ULL); + case 101: + if ((active0 & 0x80000ULL) != 0L) + { + jjmatchedKind = 19; + jjmatchedPos = 5; + } + else if ((active0 & 0x8000000000000ULL) != 0L) + { + jjmatchedKind = 51; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x2020000100000ULL, active1, 0x800000001000ULL); + case 103: + if ((active1 & 0x20000000000ULL) != 0L) + { + jjmatchedKind = 105; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x400000020000000ULL, active1, 0x800ULL); + case 105: + return jjMoveStringLiteralDfa6_0(active0, 0x20a00000000000ULL, active1, 0x406000000ULL); + case 108: + if ((active1 & 0x800000000ULL) != 0L) + { + jjmatchedKind = 99; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x200000000ULL, active1, 0L); + case 110: + if ((active1 & 0x80000000ULL) != 0L) + { + jjmatchedKind = 95; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x408000000ULL, active1, 0x200000000ULL); + case 111: + if ((active0 & 0x800000000ULL) != 0L) + { + jjmatchedKind = 35; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4000ULL); + case 112: + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x240000000000ULL); + case 114: + if ((active0 & 0x2000000ULL) != 0L) + { + jjmatchedKind = 25; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000ULL, active1, 0x20000ULL); + case 115: + if ((active0 & 0x800ULL) != 0L) + { + jjmatchedKind = 11; + jjmatchedPos = 5; + } + else if ((active1 & 0x200ULL) != 0L) + { + jjmatchedKind = 73; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1010000ULL); + case 116: + if ((active0 & 0x40000ULL) != 0L) + { + jjmatchedKind = 18; + jjmatchedPos = 5; + } + else if ((active1 & 0x800000ULL) != 0L) + { + jjmatchedKind = 87; + jjmatchedPos = 5; + } + else if ((active1 & 0x10000000ULL) != 0L) + { + jjmatchedKind = 92; + jjmatchedPos = 5; + } + else if ((active1 & 0x100000000ULL) != 0L) + { + jjmatchedKind = 96; + jjmatchedPos = 5; + } + return jjMoveStringLiteralDfa6_0(active0, 0x10000ULL, active1, 0x400000ULL); + case 120: + return jjMoveStringLiteralDfa6_0(active0, 0x80000000ULL, active1, 0L); + case 121: + if ((active0 & 0x8000000000ULL) != 0L) + { + jjmatchedKind = 39; + jjmatchedPos = 5; + } + break; + default : + break; + } + return jjMoveNfa_0(3, 5); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa6_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 5); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 5); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000ULL, active1, 0L); + case 67: + if ((active0 & 0x800000000000ULL) != 0L) + { + jjmatchedKind = 47; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800206000000ULL); + case 68: + if ((active0 & 0x2000000000000ULL) != 0L) + { + jjmatchedKind = 49; + jjmatchedPos = 6; + } + break; + case 69: + if ((active0 & 0x400000000000000ULL) != 0L) + { + jjmatchedKind = 58; + jjmatchedPos = 6; + } + else if ((active1 & 0x800ULL) != 0L) + { + jjmatchedKind = 75; + jjmatchedPos = 6; + } + else if ((active1 & 0x1000000ULL) != 0L) + { + jjmatchedKind = 88; + jjmatchedPos = 6; + } + else if ((active1 & 0x40000000000ULL) != 0L) + { + jjmatchedKind = 106; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0x8010000ULL, active1, 0x400000ULL); + case 76: + if ((active0 & 0x800000000000000ULL) != 0L) + { + jjmatchedKind = 59; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8000000000000ULL); + case 78: + return jjMoveStringLiteralDfa7_0(active0, 0x440000000ULL, active1, 0x4000ULL); + case 79: + return jjMoveStringLiteralDfa7_0(active0, 0x200000000000ULL, active1, 0x200000000000ULL); + case 83: + if ((active1 & 0x10000ULL) != 0L) + { + jjmatchedKind = 80; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0x20000000000ULL, active1, 0L); + case 84: + if ((active0 & 0x80000000ULL) != 0L) + { + jjmatchedKind = 31; + jjmatchedPos = 6; + } + else if ((active0 & 0x200000000ULL) != 0L) + { + jjmatchedKind = 33; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0x400000000000ULL, active1, 0x400061000ULL); + case 85: + return jjMoveStringLiteralDfa7_0(active0, 0x20200000ULL, active1, 0x8000ULL); + case 89: + if ((active0 & 0x200000000000000ULL) != 0L) + { + jjmatchedKind = 57; + jjmatchedPos = 6; + } + break; + case 95: + return jjMoveStringLiteralDfa7_0(active0, 0x100000ULL, active1, 0L); + case 97: + return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000ULL, active1, 0L); + case 99: + if ((active0 & 0x800000000000ULL) != 0L) + { + jjmatchedKind = 47; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800206000000ULL); + case 100: + if ((active0 & 0x2000000000000ULL) != 0L) + { + jjmatchedKind = 49; + jjmatchedPos = 6; + } + break; + case 101: + if ((active0 & 0x400000000000000ULL) != 0L) + { + jjmatchedKind = 58; + jjmatchedPos = 6; + } + else if ((active1 & 0x800ULL) != 0L) + { + jjmatchedKind = 75; + jjmatchedPos = 6; + } + else if ((active1 & 0x1000000ULL) != 0L) + { + jjmatchedKind = 88; + jjmatchedPos = 6; + } + else if ((active1 & 0x40000000000ULL) != 0L) + { + jjmatchedKind = 106; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0x8010000ULL, active1, 0x400000ULL); + case 108: + if ((active0 & 0x800000000000000ULL) != 0L) + { + jjmatchedKind = 59; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8000000000000ULL); + case 110: + return jjMoveStringLiteralDfa7_0(active0, 0x440000000ULL, active1, 0x4000ULL); + case 111: + return jjMoveStringLiteralDfa7_0(active0, 0x200000000000ULL, active1, 0x200000000000ULL); + case 115: + if ((active1 & 0x10000ULL) != 0L) + { + jjmatchedKind = 80; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0x20000000000ULL, active1, 0L); + case 116: + if ((active0 & 0x80000000ULL) != 0L) + { + jjmatchedKind = 31; + jjmatchedPos = 6; + } + else if ((active0 & 0x200000000ULL) != 0L) + { + jjmatchedKind = 33; + jjmatchedPos = 6; + } + return jjMoveStringLiteralDfa7_0(active0, 0x400000000000ULL, active1, 0x400061000ULL); + case 117: + return jjMoveStringLiteralDfa7_0(active0, 0x20200000ULL, active1, 0x8000ULL); + case 121: + if ((active0 & 0x200000000000000ULL) != 0L) + { + jjmatchedKind = 57; + jjmatchedPos = 6; + } + break; + default : + break; + } + return jjMoveNfa_0(3, 6); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa7_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 6); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 6); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 67: + return jjMoveStringLiteralDfa8_0(active0, 0x10000ULL, active1, 0L); + case 69: + if ((active0 & 0x400000000000ULL) != 0L) + { + jjmatchedKind = 46; + jjmatchedPos = 7; + } + else if ((active1 & 0x200000000ULL) != 0L) + { + jjmatchedKind = 97; + jjmatchedPos = 7; + } + else if ((active1 & 0x8000000000000ULL) != 0L) + { + jjmatchedKind = 115; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x400000000ULL, active1, 0x45000ULL); + case 71: + return jjMoveStringLiteralDfa8_0(active0, 0x100000ULL, active1, 0L); + case 76: + if ((active0 & 0x20000000000000ULL) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 7; + } + break; + case 78: + if ((active0 & 0x200000000000ULL) != 0L) + { + jjmatchedKind = 45; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x8000000ULL, active1, 0L); + case 82: + if ((active1 & 0x400000ULL) != 0L) + { + jjmatchedKind = 86; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x20000000ULL, active1, 0x200000008000ULL); + case 83: + if ((active0 & 0x20000000000ULL) != 0L) + { + jjmatchedKind = 41; + jjmatchedPos = 7; + } + break; + case 84: + if ((active0 & 0x40000000ULL) != 0L) + { + jjmatchedKind = 30; + jjmatchedPos = 7; + } + else if ((active1 & 0x2000000ULL) != 0L) + { + jjmatchedKind = 89; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x200000ULL, active1, 0x800004000000ULL); + case 89: + if ((active1 & 0x20000ULL) != 0L) + { + jjmatchedKind = 81; + jjmatchedPos = 7; + } + else if ((active1 & 0x400000000ULL) != 0L) + { + jjmatchedKind = 98; + jjmatchedPos = 7; + } + break; + case 99: + return jjMoveStringLiteralDfa8_0(active0, 0x10000ULL, active1, 0L); + case 101: + if ((active0 & 0x400000000000ULL) != 0L) + { + jjmatchedKind = 46; + jjmatchedPos = 7; + } + else if ((active1 & 0x200000000ULL) != 0L) + { + jjmatchedKind = 97; + jjmatchedPos = 7; + } + else if ((active1 & 0x8000000000000ULL) != 0L) + { + jjmatchedKind = 115; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x400000000ULL, active1, 0x45000ULL); + case 103: + return jjMoveStringLiteralDfa8_0(active0, 0x100000ULL, active1, 0L); + case 108: + if ((active0 & 0x20000000000000ULL) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 7; + } + break; + case 110: + if ((active0 & 0x200000000000ULL) != 0L) + { + jjmatchedKind = 45; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x8000000ULL, active1, 0L); + case 114: + if ((active1 & 0x400000ULL) != 0L) + { + jjmatchedKind = 86; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x20000000ULL, active1, 0x200000008000ULL); + case 115: + if ((active0 & 0x20000000000ULL) != 0L) + { + jjmatchedKind = 41; + jjmatchedPos = 7; + } + break; + case 116: + if ((active0 & 0x40000000ULL) != 0L) + { + jjmatchedKind = 30; + jjmatchedPos = 7; + } + else if ((active1 & 0x2000000ULL) != 0L) + { + jjmatchedKind = 89; + jjmatchedPos = 7; + } + return jjMoveStringLiteralDfa8_0(active0, 0x200000ULL, active1, 0x800004000000ULL); + case 121: + if ((active1 & 0x20000ULL) != 0L) + { + jjmatchedKind = 81; + jjmatchedPos = 7; + } + else if ((active1 & 0x400000000ULL) != 0L) + { + jjmatchedKind = 98; + jjmatchedPos = 7; + } + break; + default : + break; + } + return jjMoveNfa_0(3, 7); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa8_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 7); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 7); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa9_0(active0, 0x20000000ULL, active1, 0L); + case 67: + return jjMoveStringLiteralDfa9_0(active0, 0x400000000ULL, active1, 0L); + case 68: + if ((active1 & 0x4000ULL) != 0L) + { + jjmatchedKind = 78; + jjmatchedPos = 8; + } + else if ((active1 & 0x40000ULL) != 0L) + { + jjmatchedKind = 82; + jjmatchedPos = 8; + } + break; + case 69: + if ((active0 & 0x200000ULL) != 0L) + { + jjmatchedKind = 21; + jjmatchedPos = 8; + } + else if ((active1 & 0x8000ULL) != 0L) + { + jjmatchedKind = 79; + jjmatchedPos = 8; + } + return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x800000000000ULL); + case 82: + if ((active1 & 0x1000ULL) != 0L) + { + jjmatchedKind = 76; + jjmatchedPos = 8; + } + break; + case 84: + if ((active0 & 0x8000000ULL) != 0L) + { + jjmatchedKind = 27; + jjmatchedPos = 8; + } + else if ((active1 & 0x200000000000ULL) != 0L) + { + jjmatchedKind = 109; + jjmatchedPos = 8; + } + return jjMoveStringLiteralDfa9_0(active0, 0x10000ULL, active1, 0L); + case 85: + return jjMoveStringLiteralDfa9_0(active0, 0x100000ULL, active1, 0L); + case 95: + return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x4000000ULL); + case 97: + return jjMoveStringLiteralDfa9_0(active0, 0x20000000ULL, active1, 0L); + case 99: + return jjMoveStringLiteralDfa9_0(active0, 0x400000000ULL, active1, 0L); + case 100: + if ((active1 & 0x4000ULL) != 0L) + { + jjmatchedKind = 78; + jjmatchedPos = 8; + } + else if ((active1 & 0x40000ULL) != 0L) + { + jjmatchedKind = 82; + jjmatchedPos = 8; + } + break; + case 101: + if ((active0 & 0x200000ULL) != 0L) + { + jjmatchedKind = 21; + jjmatchedPos = 8; + } + else if ((active1 & 0x8000ULL) != 0L) + { + jjmatchedKind = 79; + jjmatchedPos = 8; + } + return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x800000000000ULL); + case 114: + if ((active1 & 0x1000ULL) != 0L) + { + jjmatchedKind = 76; + jjmatchedPos = 8; + } + break; + case 116: + if ((active0 & 0x8000000ULL) != 0L) + { + jjmatchedKind = 27; + jjmatchedPos = 8; + } + else if ((active1 & 0x200000000000ULL) != 0L) + { + jjmatchedKind = 109; + jjmatchedPos = 8; + } + return jjMoveStringLiteralDfa9_0(active0, 0x10000ULL, active1, 0L); + case 117: + return jjMoveStringLiteralDfa9_0(active0, 0x100000ULL, active1, 0L); + default : + break; + } + return jjMoveNfa_0(3, 8); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa9_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 8); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 8); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa10_0(active0, 0x100000ULL, active1, 0L); + case 68: + if ((active1 & 0x800000000000ULL) != 0L) + { + jjmatchedKind = 111; + jjmatchedPos = 9; + } + break; + case 71: + return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x4000000ULL); + case 84: + if ((active0 & 0x400000000ULL) != 0L) + { + jjmatchedKind = 34; + jjmatchedPos = 9; + } + return jjMoveStringLiteralDfa10_0(active0, 0x20000000ULL, active1, 0L); + case 85: + return jjMoveStringLiteralDfa10_0(active0, 0x10000ULL, active1, 0L); + case 97: + return jjMoveStringLiteralDfa10_0(active0, 0x100000ULL, active1, 0L); + case 100: + if ((active1 & 0x800000000000ULL) != 0L) + { + jjmatchedKind = 111; + jjmatchedPos = 9; + } + break; + case 103: + return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x4000000ULL); + case 116: + if ((active0 & 0x400000000ULL) != 0L) + { + jjmatchedKind = 34; + jjmatchedPos = 9; + } + return jjMoveStringLiteralDfa10_0(active0, 0x20000000ULL, active1, 0L); + case 117: + return jjMoveStringLiteralDfa10_0(active0, 0x10000ULL, active1, 0L); + default : + break; + } + return jjMoveNfa_0(3, 9); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa10_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 9); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 9); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 73: + return jjMoveStringLiteralDfa11_0(active0, 0x20000000ULL, active1, 0L); + case 82: + return jjMoveStringLiteralDfa11_0(active0, 0x110000ULL, active1, 0L); + case 85: + return jjMoveStringLiteralDfa11_0(active0, 0L, active1, 0x4000000ULL); + case 105: + return jjMoveStringLiteralDfa11_0(active0, 0x20000000ULL, active1, 0L); + case 114: + return jjMoveStringLiteralDfa11_0(active0, 0x110000ULL, active1, 0L); + case 117: + return jjMoveStringLiteralDfa11_0(active0, 0L, active1, 0x4000000ULL); + default : + break; + } + return jjMoveNfa_0(3, 10); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa11_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 10); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 10); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa12_0(active0, 0L, active1, 0x4000000ULL); + case 69: + if ((active0 & 0x10000ULL) != 0L) + { + jjmatchedKind = 16; + jjmatchedPos = 11; + } + return jjMoveStringLiteralDfa12_0(active0, 0x100000ULL, active1, 0L); + case 79: + return jjMoveStringLiteralDfa12_0(active0, 0x20000000ULL, active1, 0L); + case 97: + return jjMoveStringLiteralDfa12_0(active0, 0L, active1, 0x4000000ULL); + case 101: + if ((active0 & 0x10000ULL) != 0L) + { + jjmatchedKind = 16; + jjmatchedPos = 11; + } + return jjMoveStringLiteralDfa12_0(active0, 0x100000ULL, active1, 0L); + case 111: + return jjMoveStringLiteralDfa12_0(active0, 0x20000000ULL, active1, 0L); + default : + break; + } + return jjMoveNfa_0(3, 11); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa12_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 11); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 11); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 78: + if ((active0 & 0x20000000ULL) != 0L) + { + jjmatchedKind = 29; + jjmatchedPos = 12; + } + return jjMoveStringLiteralDfa13_0(active0, 0x100000ULL, active1, 0L); + case 82: + return jjMoveStringLiteralDfa13_0(active0, 0L, active1, 0x4000000ULL); + case 110: + if ((active0 & 0x20000000ULL) != 0L) + { + jjmatchedKind = 29; + jjmatchedPos = 12; + } + return jjMoveStringLiteralDfa13_0(active0, 0x100000ULL, active1, 0L); + case 114: + return jjMoveStringLiteralDfa13_0(active0, 0L, active1, 0x4000000ULL); + default : + break; + } + return jjMoveNfa_0(3, 12); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa13_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 12); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 12); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 65: + return jjMoveStringLiteralDfa14_0(active0, 0L, active1, 0x4000000ULL); + case 84: + return jjMoveStringLiteralDfa14_0(active0, 0x100000ULL, active1, 0L); + case 97: + return jjMoveStringLiteralDfa14_0(active0, 0L, active1, 0x4000000ULL); + case 116: + return jjMoveStringLiteralDfa14_0(active0, 0x100000ULL, active1, 0L); + default : + break; + } + return jjMoveNfa_0(3, 13); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa14_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 13); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 13); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 69: + return jjMoveStringLiteralDfa15_0(active0, 0x100000ULL, active1, 0L); + case 78: + return jjMoveStringLiteralDfa15_0(active0, 0L, active1, 0x4000000ULL); + case 101: + return jjMoveStringLiteralDfa15_0(active0, 0x100000ULL, active1, 0L); + case 110: + return jjMoveStringLiteralDfa15_0(active0, 0L, active1, 0x4000000ULL); + default : + break; + } + return jjMoveNfa_0(3, 14); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa15_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 14); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 14); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 69: + if ((active0 & 0x100000ULL) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 15; + } + break; + case 84: + return jjMoveStringLiteralDfa16_0(active0, 0L, active1, 0x4000000ULL); + case 101: + if ((active0 & 0x100000ULL) != 0L) + { + jjmatchedKind = 20; + jjmatchedPos = 15; + } + break; + case 116: + return jjMoveStringLiteralDfa16_0(active0, 0L, active1, 0x4000000ULL); + default : + break; + } + return jjMoveNfa_0(3, 15); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa16_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1){ + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 15); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 15); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 69: + return jjMoveStringLiteralDfa17_0(active1, 0x4000000ULL); + case 101: + return jjMoveStringLiteralDfa17_0(active1, 0x4000000ULL); + default : + break; + } + return jjMoveNfa_0(3, 16); +} + + int VhdlParserTokenManager::jjMoveStringLiteralDfa17_0(unsigned long long old1, unsigned long long active1){ + if (((active1 &= old1)) == 0L) + return jjMoveNfa_0(3, 16); + if (input_stream->endOfInput()) { + return jjMoveNfa_0(3, 16); + } + curChar = input_stream->readChar(); + switch(curChar) + { + case 69: + if ((active1 & 0x4000000ULL) != 0L) + { + jjmatchedKind = 90; + jjmatchedPos = 17; + } + break; + case 101: + if ((active1 & 0x4000000ULL) != 0L) + { + jjmatchedKind = 90; + jjmatchedPos = 17; + } + break; + default : + break; + } + return jjMoveNfa_0(3, 17); +} + +int VhdlParserTokenManager::jjMoveNfa_0(int startState, int curPos){ + int strKind = jjmatchedKind; + int strPos = jjmatchedPos; + int seenUpto; + input_stream->backup(seenUpto = curPos + 1); + assert(!input_stream->endOfInput()); + curChar = input_stream->readChar(); + curPos = 0; + int startsAt = 0; + jjnewStateCnt = 65; + int i = 1; + jjstateSet[0] = startState; + int kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + unsigned long long l = 1ULL << curChar; + if (l == 1); + do + { + switch(jjstateSet[--i]) + { + case 3: + if ((0x3ff000000000000ULL & l) != 0L) + { + if (kind > 164) + kind = 164; + { jjCheckNAddStates(0, 8); } + } + else if (curChar == 47) + { jjAddStates(9, 10); } + else if (curChar == 45) + { jjCheckNAddTwoStates(21, 27); } + else if (curChar == 39) + jjstateSet[jjnewStateCnt++] = 10; + else if (curChar == 34) + { jjCheckNAddTwoStates(1, 2); } + if ((0x3ff000000000000ULL & l) != 0L) + { + if (kind > 170) + kind = 170; + { jjCheckNAdd(12); } + } + break; + case 0: + if (curChar == 34) + { jjCheckNAddTwoStates(1, 2); } + break; + case 1: + if ((0xfffffffb00000200ULL & l) != 0L) + { jjCheckNAddTwoStates(1, 2); } + break; + case 2: + if (curChar != 34) + break; + if (kind > 165) + kind = 165; + jjstateSet[jjnewStateCnt++] = 0; + break; + case 5: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 166) + kind = 166; + { jjAddStates(11, 12); } + break; + case 7: + if ((0xfffffffb00000200ULL & l) != 0L) + { jjAddStates(13, 14); } + break; + case 9: + if (curChar == 39) + jjstateSet[jjnewStateCnt++] = 10; + break; + case 10: + if ((0xfffffffb00000200ULL & l) != 0L) + jjstateSet[jjnewStateCnt++] = 11; + break; + case 11: + if (curChar == 39 && kind > 168) + kind = 168; + break; + case 12: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 170) + kind = 170; + { jjCheckNAdd(12); } + break; + case 14: + if (curChar == 34) + { jjCheckNAddTwoStates(15, 16); } + break; + case 15: + if ((0x3ff000000000000ULL & l) != 0L) + { jjCheckNAddTwoStates(15, 16); } + break; + case 16: + if (curChar == 34 && kind > 178) + kind = 178; + break; + case 18: + if ((0xfffffffb00000200ULL & l) == 0L) + break; + if (kind > 185) + kind = 185; + jjstateSet[jjnewStateCnt++] = 18; + break; + case 19: + if (curChar == 45) + { jjCheckNAddTwoStates(21, 27); } + break; + case 20: + if (curChar != 33) + break; + if (kind > 6) + kind = 6; + { jjCheckNAddStates(15, 18); } + break; + case 21: + if (curChar == 45) + jjstateSet[jjnewStateCnt++] = 20; + break; + case 22: + if (curChar == 45) + { jjCheckNAdd(21); } + break; + case 23: + if ((0xffffffffffffdbffULL & l) == 0L) + break; + if (kind > 6) + kind = 6; + { jjCheckNAddStates(15, 18); } + break; + case 24: + if ((0x2400ULL & l) == 0L) + break; + if (kind > 6) + kind = 6; + { jjCheckNAdd(22); } + break; + case 25: + if (curChar != 10) + break; + if (kind > 6) + kind = 6; + { jjCheckNAdd(22); } + break; + case 26: + if (curChar == 13) + jjstateSet[jjnewStateCnt++] = 25; + break; + case 27: + if (curChar != 45) + break; + if (kind > 7) + kind = 7; + { jjCheckNAddStates(19, 21); } + break; + case 28: + if ((0xffffffffffffdbffULL & l) == 0L) + break; + if (kind > 7) + kind = 7; + { jjCheckNAddStates(19, 21); } + break; + case 29: + if ((0x2400ULL & l) != 0L && kind > 7) + kind = 7; + break; + case 30: + if (curChar == 10 && kind > 7) + kind = 7; + break; + case 31: + if (curChar == 13) + jjstateSet[jjnewStateCnt++] = 30; + break; + case 32: + if (curChar == 47) + { jjAddStates(9, 10); } + break; + case 33: + if (curChar == 33) + { jjCheckNAddTwoStates(34, 36); } + break; + case 34: + { jjCheckNAddTwoStates(34, 36); } + break; + case 35: + if (curChar == 47 && kind > 8) + kind = 8; + break; + case 36: + if (curChar == 42) + jjstateSet[jjnewStateCnt++] = 35; + break; + case 37: + if (curChar == 42) + jjstateSet[jjnewStateCnt++] = 33; + break; + case 38: + if (curChar == 42) + { jjCheckNAddTwoStates(39, 41); } + break; + case 39: + { jjCheckNAddTwoStates(39, 41); } + break; + case 40: + if (curChar == 47 && kind > 9) + kind = 9; + break; + case 41: + if (curChar == 42) + jjstateSet[jjnewStateCnt++] = 40; + break; + case 42: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 164) + kind = 164; + { jjCheckNAddStates(0, 8); } + break; + case 44: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 164) + kind = 164; + { jjCheckNAddTwoStates(43, 44); } + break; + case 46: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 169) + kind = 169; + { jjCheckNAddStates(22, 25); } + break; + case 47: + if (curChar == 46) + { jjCheckNAdd(48); } + break; + case 48: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 169) + kind = 169; + { jjCheckNAddStates(26, 28); } + break; + case 51: + if ((0x280000000000ULL & l) != 0L) + { jjCheckNAdd(52); } + break; + case 52: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 169) + kind = 169; + { jjCheckNAddTwoStates(53, 52); } + break; + case 55: + if ((0x3ff000000000000ULL & l) != 0L) + { jjCheckNAddStates(29, 31); } + break; + case 56: + if (curChar == 35) + { jjCheckNAdd(57); } + break; + case 57: + if ((0x3ff000000000000ULL & l) != 0L) + { jjCheckNAddStates(32, 34); } + break; + case 58: + if (curChar == 46) + { jjCheckNAdd(59); } + break; + case 59: + if ((0x3ff000000000000ULL & l) != 0L) + { jjCheckNAddTwoStates(59, 60); } + break; + case 60: + if (curChar != 35) + break; + if (kind > 171) + kind = 171; + jjstateSet[jjnewStateCnt++] = 61; + break; + case 62: + if ((0x280000000000ULL & l) != 0L) + { jjCheckNAdd(63); } + break; + case 63: + if ((0x3ff000000000000ULL & l) == 0L) + break; + if (kind > 171) + kind = 171; + { jjCheckNAddTwoStates(64, 63); } + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + unsigned long long l = 1ULL << (curChar & 077); + if (l == 1); + do + { + switch(jjstateSet[--i]) + { + case 3: + if ((0x7fffffe07fffffeULL & l) != 0L) + { + if (kind > 170) + kind = 170; + { jjCheckNAdd(12); } + } + else if (curChar == 96) + { jjCheckNAdd(18); } + else if (curChar == 92) + { jjCheckNAddTwoStates(7, 8); } + if ((0x7fffffe07fffffeULL & l) != 0L) + { + if (kind > 166) + kind = 166; + { jjCheckNAddTwoStates(4, 5); } + } + if ((0x100800401008004ULL & l) != 0L) + jjstateSet[jjnewStateCnt++] = 14; + break; + case 1: + if ((0x7fffffffffffffffULL & l) != 0L) + { jjAddStates(35, 36); } + break; + case 4: + if (curChar == 95) + { jjCheckNAddTwoStates(4, 5); } + break; + case 5: + if ((0x7fffffe07fffffeULL & l) == 0L) + break; + if (kind > 166) + kind = 166; + { jjCheckNAddTwoStates(4, 5); } + break; + case 6: + if (curChar == 92) + { jjCheckNAddTwoStates(7, 8); } + break; + case 7: + if ((0x7fffffffffffffffULL & l) != 0L) + { jjCheckNAddTwoStates(7, 8); } + break; + case 8: + if (curChar == 92 && kind > 167) + kind = 167; + break; + case 10: + if ((0x7fffffffffffffffULL & l) != 0L) + jjstateSet[jjnewStateCnt++] = 11; + break; + case 12: + if ((0x7fffffe07fffffeULL & l) == 0L) + break; + if (kind > 170) + kind = 170; + { jjCheckNAdd(12); } + break; + case 13: + if ((0x100800401008004ULL & l) != 0L) + jjstateSet[jjnewStateCnt++] = 14; + break; + case 15: + if ((0x7fffffe07fffffeULL & l) != 0L) + { jjAddStates(37, 38); } + break; + case 17: + if (curChar == 96) + { jjCheckNAdd(18); } + break; + case 18: + if ((0x7fffffffffffffffULL & l) == 0L) + break; + if (kind > 185) + kind = 185; + { jjCheckNAdd(18); } + break; + case 23: + if (kind > 6) + kind = 6; + { jjAddStates(15, 18); } + break; + case 28: + if (kind > 7) + kind = 7; + { jjAddStates(19, 21); } + break; + case 34: + { jjAddStates(39, 40); } + break; + case 39: + { jjAddStates(41, 42); } + break; + case 43: + if (curChar == 95) + jjstateSet[jjnewStateCnt++] = 44; + break; + case 45: + if (curChar == 95) + jjstateSet[jjnewStateCnt++] = 46; + break; + case 49: + if (curChar == 95) + jjstateSet[jjnewStateCnt++] = 48; + break; + case 50: + if ((0x2000000020ULL & l) != 0L) + { jjCheckNAddTwoStates(51, 52); } + break; + case 53: + if (curChar == 95) + { jjCheckNAdd(52); } + break; + case 54: + if (curChar == 95) + jjstateSet[jjnewStateCnt++] = 55; + break; + case 57: + if ((0x7fffffe07fffffeULL & l) != 0L) + { jjCheckNAddStates(32, 34); } + break; + case 59: + if ((0x7fffffe07fffffeULL & l) != 0L) + { jjCheckNAddTwoStates(59, 60); } + break; + case 61: + if ((0x2000000020ULL & l) != 0L) + { jjCheckNAddTwoStates(62, 63); } + break; + case 64: + if (curChar == 95) + { jjCheckNAdd(63); } + break; + default : break; + } + } while(i != startsAt); + } + else + { + int hiByte = (curChar >> 8); + int i1 = hiByte >> 6; + unsigned long long l1 = 1ULL << (hiByte & 077); + int i2 = (curChar & 0xff) >> 6; + unsigned long long l2 = 1ULL << (curChar & 077); + do + { + switch(jjstateSet[--i]) + { + case 1: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + { jjAddStates(35, 36); } + break; + case 7: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + { jjAddStates(13, 14); } + break; + case 10: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + jjstateSet[jjnewStateCnt++] = 11; + break; + case 18: + if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) + break; + if (kind > 185) + kind = 185; + jjstateSet[jjnewStateCnt++] = 18; + break; + case 23: + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + break; + if (kind > 6) + kind = 6; + { jjAddStates(15, 18); } + break; + case 28: + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + break; + if (kind > 7) + kind = 7; + { jjAddStates(19, 21); } + break; + case 34: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + { jjAddStates(39, 40); } + break; + case 39: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + { jjAddStates(41, 42); } + break; + default : if (i1 == 0 || l1 == 0 || i2 == 0 || l2 == 0) break; else break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt), (jjnewStateCnt = startsAt), (i == (startsAt = 65 - startsAt))) + break; + if (input_stream->endOfInput()) { break; } + curChar = input_stream->readChar(); + } + if (jjmatchedPos > strPos) + return curPos; + + int toRet = MAX(curPos, seenUpto); + + if (curPos < toRet) + for (i = toRet - MIN(curPos, seenUpto); i-- > 0; ) + { assert(!input_stream->endOfInput()); + curChar = input_stream->readChar(); } + + if (jjmatchedPos < strPos) + { + jjmatchedKind = strKind; + jjmatchedPos = strPos; + } + else if (jjmatchedPos == strPos && jjmatchedKind > strKind) + jjmatchedKind = strKind; + + return toRet; +} + +bool VhdlParserTokenManager::jjCanMove_0(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2){ + switch(hiByte) + { + case 0: + return ((jjbitVec0[i2] & l2) != 0L); + default : + return false; + } +} + +bool VhdlParserTokenManager::jjCanMove_1(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2){ + switch(hiByte) + { + case 0: + return ((jjbitVec3[i2] & l2) != 0L); + default : + if ((jjbitVec1[i1] & l1) != 0L) + return true; + return false; + } +} + +/** Token literal values. */ + +Token * VhdlParserTokenManager::jjFillToken(){ + Token *t; + JAVACC_STRING_TYPE curTokenImage; + int beginLine; + int endLine; + int beginColumn; + int endColumn; + JAVACC_STRING_TYPE im = jjstrLiteralImages[jjmatchedKind]; + curTokenImage = (im.length() == 0) ? input_stream->GetImage() : im; + if (input_stream->getTrackLineColumn()) { + beginLine = input_stream->getBeginLine(); + beginColumn = input_stream->getBeginColumn(); + endLine = input_stream->getEndLine(); + endColumn = input_stream->getEndColumn(); + } + t = Token::newToken(jjmatchedKind, curTokenImage); + t->specialToken = NULL; + t->next = NULL; + + if (input_stream->getTrackLineColumn()) { + t->beginLine = beginLine; + t->endLine = endLine; + t->beginColumn = beginColumn; + t->endColumn = endColumn; + } + + return t; +} +const int defaultLexState = 0; +/** Get the next Token. */ + +Token * VhdlParserTokenManager::getNextToken(){ + Token *matchedToken; + int curPos = 0; + + for (;;) + { + EOFLoop: + if (input_stream->endOfInput()) + { + jjmatchedKind = 0; + jjmatchedPos = -1; + matchedToken = jjFillToken(); + return matchedToken; + } + curChar = input_stream->BeginToken(); + image = jjimage; + image.clear(); + jjimageLen = 0; + + for (;;) + { + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_0(); + if (jjmatchedKind != 0x7fffffff) + { + if (jjmatchedPos + 1 < curPos) + input_stream->backup(curPos - jjmatchedPos - 1); + if ((jjtoToken[jjmatchedKind >> 6] & (1ULL << (jjmatchedKind & 077))) != 0L) + { + matchedToken = jjFillToken(); + TokenLexicalActions(matchedToken); + return matchedToken; + } + else if ((jjtoSkip[jjmatchedKind >> 6] & (1ULL << (jjmatchedKind & 077))) != 0L) + { + SkipLexicalActions(NULL); + goto EOFLoop; + } + MoreLexicalActions(); + curPos = 0; + jjmatchedKind = 0x7fffffff; + if (!input_stream->endOfInput()) { + curChar = input_stream->readChar(); + continue; + } + } + int error_line = input_stream->getEndLine(); + int error_column = input_stream->getEndColumn(); + JAVACC_STRING_TYPE error_after; + bool EOFSeen = false; + if (input_stream->endOfInput()) { + EOFSeen = true; + error_after = curPos <= 1 ? EMPTY : input_stream->GetImage(); + if (curChar == '\n' || curChar == '\r') { + error_line++; + error_column = 0; + } + else + error_column++; + } + if (!EOFSeen) { + error_after = curPos <= 1 ? EMPTY : input_stream->GetImage(); + } + lexicalError(); + } + } +} + + +void VhdlParserTokenManager::SkipLexicalActions(Token *matchedToken){ + switch(jjmatchedKind) + { + case 3 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::lineCount(); + break; + default : + break; + } +} + +void VhdlParserTokenManager::MoreLexicalActions(){ + jjimageLen += (lengthOfMatch = jjmatchedPos + 1); + switch(jjmatchedKind) + { + case 6 : + image.append(input_stream->GetSuffix(jjimageLen)); + jjimageLen = 0; + ::vhdl::parser::VhdlParser::handleCommentBlock(image.data(),TRUE);image.clear(); + break; + case 7 : + image.append(input_stream->GetSuffix(jjimageLen)); + jjimageLen = 0; + ::vhdl::parser::VhdlParser::lineCount(image.data());image.clear(); + break; + case 8 : + image.append(input_stream->GetSuffix(jjimageLen)); + jjimageLen = 0; + ::vhdl::parser::VhdlParser::handleCommentBlock(image.data(),TRUE);image.clear(); + break; + case 9 : + image.append(input_stream->GetSuffix(jjimageLen)); + jjimageLen = 0; + ::vhdl::parser::VhdlParser::lineCount(image.data());image.clear(); + break; + default : + break; + } +} + +void VhdlParserTokenManager::TokenLexicalActions(Token *matchedToken){ + switch(jjmatchedKind) + { + case 16 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(ARCHITECTURE_T); + break; + case 17 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(ARRAY_T); + break; + case 21 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(ATTRIBUTE_T); + break; + case 24 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(BODY_T); + break; + case 27 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(COMPONENT_T); + break; + case 29 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(CONFIGURATION_T); + break; + case 30 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(CONSTANT_T); + break; + case 31 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(CONTEXT_T); + break; + case 38 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(END_T); + break; + case 39 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(ENTITY_T); + break; + case 42 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(FILE_T); + break; + case 45 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(FUNCTION_T); + break; + case 48 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(GROUP_T); + break; + case 57 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(LIBRARY_T); + break; + case 75 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(PACKAGE_T); + break; + case 77 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(PORT_T); + break; + case 79 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(PROCEDURE_T); + break; + case 80 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(PROCESS_T); + break; + case 85 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(RECORD_T); + break; + case 99 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(SIGNAL_T); + break; + case 106 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(SUBTYPE_T); + break; + case 110 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(TYPE_T); + break; + case 112 : + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + ::vhdl::parser::VhdlParser::setLineParsed(UNITS_T); + break; + default : + break; + } +} + /** Reinitialise parser. */ + void VhdlParserTokenManager::ReInit(JAVACC_CHARSTREAM *stream, int lexState, VhdlParser *parserArg) { + if (input_stream) delete input_stream; + jjmatchedPos = jjnewStateCnt = 0; + curLexState = lexState; + input_stream = stream; + ReInitRounds(); + debugStream = stdout; // init + SwitchTo(lexState); + parser = parserArg; + } + + void VhdlParserTokenManager::ReInitRounds() { + int i; + jjround = 0x80000001; + for (i = 65; i-- > 0;) + jjrounds[i] = 0x80000000; + } + + /** Switch to specified lex state. */ + void VhdlParserTokenManager::SwitchTo(int lexState) { + if (lexState >= 1 || lexState < 0) + assert(false); + //throw 1;//new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); + else + curLexState = lexState; + } + + /** Constructor. */ + VhdlParserTokenManager::VhdlParserTokenManager (JAVACC_CHARSTREAM *stream, int lexState, VhdlParser *parserArg) + { + input_stream = NULL; + ReInit(stream, lexState, parserArg); + } + + // Destructor + VhdlParserTokenManager::~VhdlParserTokenManager () { + if (input_stream) delete input_stream; + } +} +} diff --git a/vhdlparser/VhdlParserTokenManager.h b/vhdlparser/VhdlParserTokenManager.h new file mode 100644 index 0000000..68eb51b --- /dev/null +++ b/vhdlparser/VhdlParserTokenManager.h @@ -0,0 +1,133 @@ +#ifndef VHDLPARSERTOKENMANAGER_H +#define VHDLPARSERTOKENMANAGER_H +#include "JavaCC.h" +#include "CharStream.h" +#include "Token.h" +#include "TokenManager.h" +#include "VhdlParserConstants.h" +#include "VhdlParser.h" + +namespace vhdl { +namespace parser { +class VhdlParser; + +/** Token Manager. */ +class VhdlParserTokenManager : public TokenManager { + public: + + /** Debug output. */ + FILE *debugStream; + /** Set debug output. */ + +void setDebugStream(FILE *ds); + + int jjStopAtPos(int pos, int kind); + + int jjMoveStringLiteralDfa0_0(); + + int jjMoveStringLiteralDfa1_0(unsigned long long active0, unsigned long long active1, unsigned long long active2); + + int jjMoveStringLiteralDfa2_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1, unsigned long long old2, unsigned long long active2); + + int jjMoveStringLiteralDfa3_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1, unsigned long long old2, unsigned long long active2); + + int jjMoveStringLiteralDfa4_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa5_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa6_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa7_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa8_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa9_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa10_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa11_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa12_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa13_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa14_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa15_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa16_0(unsigned long long old0, unsigned long long active0, unsigned long long old1, unsigned long long active1); + + int jjMoveStringLiteralDfa17_0(unsigned long long old1, unsigned long long active1); + +int jjMoveNfa_0(int startState, int curPos); + +bool jjCanMove_0(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2); + +bool jjCanMove_1(int hiByte, int i1, int i2, unsigned long long l1, unsigned long long l2); + +Token * jjFillToken(); + +public: int curLexState; +public: int jjnewStateCnt; +public: int jjround; +public: int jjmatchedPos; +public: int jjmatchedKind; + + +Token * getNextToken(); + +void SkipLexicalActions(Token *matchedToken); + +void MoreLexicalActions(); + +void TokenLexicalActions(Token *matchedToken); +#define jjCheckNAdd(state)\ +{\ + if (jjrounds[state] != jjround)\ + {\ + jjstateSet[jjnewStateCnt++] = state;\ + jjrounds[state] = jjround;\ + }\ +} +#define jjAddStates(start, end)\ +{\ + for (int x = start; x <= end; x++) {\ + jjstateSet[jjnewStateCnt++] = jjnextStates[x];\ + } /*while (start++ != end);*/\ +} +#define jjCheckNAddTwoStates(state1, state2)\ +{\ + jjCheckNAdd(state1);\ + jjCheckNAdd(state2);\ +} + +#define jjCheckNAddStates(start, end)\ +{\ + for (int x = start; x <= end; x++) {\ + jjCheckNAdd(jjnextStates[x]);\ + } /*while (start++ != end);*/\ +} + +#ifndef JAVACC_CHARSTREAM +#define JAVACC_CHARSTREAM CharStream +#endif + private: VhdlParser*parser; + private: void ReInitRounds(); + public: VhdlParserTokenManager(JAVACC_CHARSTREAM *stream, int lexState = 0, VhdlParser *parserArg = NULL); + public: virtual ~VhdlParserTokenManager(); + void ReInit(JAVACC_CHARSTREAM *stream, int lexState = 0, VhdlParser *parserArg = NULL); + void SwitchTo(int lexState); + const JAVACC_SIMPLE_STRING jjKindsForBitVector(int i, unsigned long long vec); + const JAVACC_SIMPLE_STRING jjKindsForStateVector(int lexState, int vec[], int start, int end); + JAVACC_CHARSTREAM *input_stream; + int jjrounds[65]; + int jjstateSet[2 * 65]; + JAVACC_STRING_TYPE jjimage; + JAVACC_STRING_TYPE image; + int jjimageLen; + int lengthOfMatch; + JAVACC_CHAR_TYPE curChar; +}; +} +} +#endif diff --git a/vhdlparser/vhdlparser.jj b/vhdlparser/vhdlparser.jj new file mode 100644 index 0000000..daeceed --- /dev/null +++ b/vhdlparser/vhdlparser.jj @@ -0,0 +1,2758 @@ +/****************************************************************************** + * + * Copyright (C) 2014 by M. Kreis + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + */ +options { + JAVA_UNICODE_ESCAPE = true; + OUTPUT_LANGUAGE = "c++"; + NAMESPACE = "vhdl::parser"; + STATIC=false; + PARSER_INCLUDES="VhdlParser.h"; + TOKEN_MANAGER_INCLUDES="VhdlParser.h"; + + //OUTPUT_DIRECTORY = "."; + //DEBUG_PARSER=true; + //DEBUG_LOOKAHEAD=true; + + } + +PARSER_BEGIN(VhdlParser) + +typedef unsigned long long uint64; + + +static Entry* current_root; +static Entry* tempEntry; +static Entry* lastEntity ; +static Entry* lastCompound ; +static Entry* current; +static QCString compSpec; +static QCString currName; +static int levelCounter; +static QCString confName; +static QCString genLabels; +static QCString lab; +static QCString forL; +static int param_sec ; +static int parse_sec; +static int currP; +static Entry* currentCompound; + +//---------------------------------------- + +static void setLineParsed(int tok); +static int getLine(int tok); +static int getLine(); +static void lineCount(const char*); +static void lineCount(); +static void addProto(const char *s1,const char *s2,const char *s3,const char *s4,const char *s5,const char *s6); +static void addConfigureNode(const char* a,const char*b, bool,bool isLeaf,bool inlineConf); +static void createFunction(const char *impure,uint64 spec,const char *fname); +static void addVhdlType(const char *n,int startLine,int section, uint64 spec,const char* args,const char* type,Protection prot); +static void addCompInst(char *n, char* instName, char* comp,int iLine); +static void handleCommentBlock(const char* doc,bool brief); +static void initEntry(Entry *e); +static void newEntry(); +static bool isFuncProcProced(); +static void pushLabel(QCString &,QCString&); +static QCString popLabel(QCString & q); +static bool addLibUseClause(const QCString &type); +static void mapLibPackage( Entry* root); +static void createFlow(); +static void error_skipto(int kind); + +PARSER_END(VhdlParser) + +SKIP : +{ + " " +| "\t" +| "\n" {::vhdl::parser::VhdlParser::lineCount();} +| "\r" +} + +MORE : +{ + // VHDL comment -- ...... + // VHDL doxygen comment --! .... + <#DOXYGEN_VHDL_COMMENT: "--!" (~["\n", "\r"])* ("\n" | "\r" | "\r\n")?> + | <MULT_DOXYGEN_COMMENT: (<DOXYGEN_VHDL_COMMENT>)+ > {::vhdl::parser::VhdlParser::handleCommentBlock(image.data(),TRUE);image.clear();} + | <VHDL_COMMENT: "--" (~["\n", "\r"])* ("\n" | "\r" | "\r\n")?> { ::vhdl::parser::VhdlParser::lineCount(image.data());image.clear();} +} + +// VHDL 2008 comment /* .... */ +// VHDL 2008 doxygen comment /*! .... */ +MORE : +{ + <MULT_DOXYGEN_VHDL_COMMENT_2008 : "/*!" (~[])* "*/" > {::vhdl::parser::VhdlParser::handleCommentBlock(image.data(),TRUE);image.clear();} + | <MULT_VHDL_2008_COMMENT : "/*" (~[])* "*/" > {::vhdl::parser::VhdlParser::lineCount(image.data());image.clear();} +} + +/* KEYWORDS */ + +TOKEN [IGNORE_CASE] : +{ + <ABS_T: "abs"> +| <ACCESS_T: "access"> +| <AFTER_T: "after"> +| <ALIAS_T: "alias"> +| <ALL_T: "all"> +| <AND_T: "and"> +| <ARCHITECTURE_T: "architecture"> {::vhdl::parser::VhdlParser::setLineParsed(ARCHITECTURE_T);} +| <ARRAY_T: "array"> {::vhdl::parser::VhdlParser::setLineParsed(ARRAY_T);} +| <ASSERT_T: "assert"> +| <ASSUME_T: "assume"> +| <ASSUME_GUARANTEE_T: "assume_guarentee"> +| <ATTRIBUTE_T: "attribute"> {::vhdl::parser::VhdlParser::setLineParsed(ATTRIBUTE_T);} +| <BEGIN_T: "begin"> +| <BLOCK_T: "block"> +| <BODY_T: "body"> {::vhdl::parser::VhdlParser::setLineParsed(BODY_T);} +| <BUFFER_T: "buffer"> +| <BUS_T: "bus"> +| <COMPONENT_T: "component"> {::vhdl::parser::VhdlParser::setLineParsed(COMPONENT_T);} +| <CASE_T: "case"> +| <CONFIGURATION_T: "configuration"> {::vhdl::parser::VhdlParser::setLineParsed(CONFIGURATION_T);} +| <CONSTANT_T: "constant"> {::vhdl::parser::VhdlParser::setLineParsed(CONSTANT_T);} +| <CONTEXT_T: "context"> {::vhdl::parser::VhdlParser::setLineParsed(CONTEXT_T);} +| <COVER_T: "cover"> +| <DEFAULT_T: "default"> +| <DISCONNECT_T: "disconnect"> +| <DOWNTO_T: "downto"> +| <ELSE_T: "else"> +| <ELSIF_T: "elsif"> +| <END_T: "end"> {::vhdl::parser::VhdlParser::setLineParsed(END_T);} +| <ENTITY_T: "entity"> {::vhdl::parser::VhdlParser::setLineParsed(ENTITY_T);} +| <EXIT_T: "exit"> +| <FAIRNESS_T: "fairness"> +| <FILE_T: "file"> {::vhdl::parser::VhdlParser::setLineParsed(FILE_T);} +| <FOR_T: "for"> +| <FORCE_T: "force"> +| <FUNCTION_T: "function"> {::vhdl::parser::VhdlParser::setLineParsed(FUNCTION_T);} +| <GENERATE_T: "generate"> +| <GENERIC_T: "generic"> +| <GROUP_T: "group"> {::vhdl::parser::VhdlParser::setLineParsed(GROUP_T);} +| <GUARDED_T: "guarded"> +| <IF_T: "if"> +| <IMPURE_T: "impure"> +| <IN_T: "in"> +| <INERTIAL_T: "inertial"> +| <INOUT_T: "inout"> +| <IS_T: "is"> +| <LABEL_T: "label"> +| <LIBRARY_T: "library"> {::vhdl::parser::VhdlParser::setLineParsed(LIBRARY_T);} +| <LINKAGE_T: "linkage"> +| <LITERAL_T: "literal"> +| <LOOP_T: "loop"> +| <MAP_T: "map"> +| <MOD_T: "mod"> +| <NAND_T: "nand"> +| <NEW_T: "new"> +| <NEXT_T: "next"> +| <NOR_T: "nor"> +| <NOT_T: "not"> +| <NULL_T: "null"> +| <OF_T: "of"> +| <ON_T: "on"> +| <OPEN_T: "open"> +| <OR_T: "or"> +| <OTHER_T: "others"> +| <OUT_T: "out"> +| <PACKAGE_T: "package"> {::vhdl::parser::VhdlParser::setLineParsed(PACKAGE_T);} +| <PARAMETER_T: "parameter"> +| <PORT_T: "port"> {::vhdl::parser::VhdlParser::setLineParsed(PORT_T);} +| <POSTPONED_T: "postponed"> +| <PROCEDURE_T: "procedure"> {::vhdl::parser::VhdlParser::setLineParsed(PROCEDURE_T);} +| <PROCESS_T: "process"> {::vhdl::parser::VhdlParser::setLineParsed(PROCESS_T);} +| <PROPERTY_T: "property"> +| <PROTECTED_T: "protected"> +| <PURE_T: "pure"> +| <RANGE_T: "range"> +| <RECORD_T: "record"> {::vhdl::parser::VhdlParser::setLineParsed(RECORD_T);} +| <REGISTER_T: "register"> +| <REJECT_T: "reject"> +| <RELEASE_T: "release"> +| <RESTRICT_T: "restrict"> +| <RESTRICT_GUARANTEE_T: "restrict_guarantee"> +| <REM_T: "rem"> +| <REPORT_T: "report"> +| <ROL_T: "rol"> +| <ROR_T: "ror"> +| <RETURN_T: "return"> +| <SELECT_T: "select"> +| <SEQUENCE_T: "sequence"> +| <SEVERITY_T: "severity"> +| <SIGNAL_T: "signal"> {::vhdl::parser::VhdlParser::setLineParsed(SIGNAL_T);} +| <SHARED_T: "shared"> +| <SLA_T: "sla"> +| <SLL_T: "sll"> +| <SRA_T: "sra"> +| <SRL_T: "srl"> +| <STRONG_T: "strong"> +| <SUBTYPE_T: "subtype"> {::vhdl::parser::VhdlParser::setLineParsed(SUBTYPE_T);} +| <THEN_T: "then"> +| <TO_T: "to"> +| <TRANSPORT_T: "transport"> +| <TYPE_T: "type"> {::vhdl::parser::VhdlParser::setLineParsed(TYPE_T);} +| <UNAFFECTED_T: "unaffected"> +| <UNITS_T: "units"> {::vhdl::parser::VhdlParser::setLineParsed(UNITS_T);} +| <UNTIL_T: "until"> +| <USE_T: "use"> +| <VARIABLE_T: "variable"> +| <VMODE_T: "vmode"> +| <VPROP_T: "vprop"> +| <VUNIT_T: "vunit"> +| <WAIT_T: "wait"> +| <WHEN_T: "when"> +| <WHILE_T: "while"> +| <WITH_T: "with"> +| <XOR_T: "xor"> +| <XNOR_T: "xnor"> +} + +/* OPERATORS */ + +TOKEN : +{ + < AMPERSAND_T: "&" > +| < APOSTROPHE_T: "'" > +| < LPAREN_T: "(" > +| < RPAREN_T: ")" > +| < DOUBLEMULT_T: "**" > +| < MULT_T: "*" > +| < PLUS_T: "+" > +| < MINUS_T: "-" > +| < COMMA_T: "," > +| < VARASSIGN_T: ":=" > +| < COLON_T: ":" > +| < SEMI_T: ";" > +| < LESSTHAN_T: "<=" > +| < GREATERTHAN_T: ">=" > +| < LT_T: "<" > +| < GT_T: ">" > +| < EQU_T: "=" > +| < NOTEQU_T: "/=" > +| < ARROW_T: "=>" > +| < BOX_T: "<>" > +| < SLSL_T: "<<" > +| < RSRS_T: ">>" > +| < QQ_T: "??" > +| < QGT_T: "?>=" > +| < QLT_T: "?<=" > +| < QG_T: "?>" > +| < QL_T: "?<" > +| < QEQU_T: "?=" > +| < QNEQU_T: "?/=" > +| < Q_T: "?" > +| < BAR_T: "|" > +| <DOT_T: "." > +| < SLASH_T: "/" > +| < AT_T: "@" > +| < NEG_T: "^" > +| < LBRACKET_T: "[" > +| < RBRACKET_T: "]" > +| < LBRACE: "{" > +| < RBRACE: "}" > + +} + +TOKEN: +{ + <INTEGER: <DIGIT> ((["_"])? (<DIGIT>))* > + | <STRINGLITERAL: (( ["\""](<GRAPHIC_CHARACTER>)*) "\"")+ > + | <BASIC_IDENTIFIER: (<LETTER> ( (["_"])* <LETTER_OR_DIGIT> )*) > + | <EXTENDED_CHARACTER: ( ["\\"](<GRAPHIC_CHARACTER>)*["\\"] ) > + | <CHARACTER_LITERAL: (["'"]<GRAPHIC_CHARACTER>["'"]) > + | <DECIMAL_LITERAL: (<INTEGER> (["."]<INTEGER>)? (<EXPONENT>)? ) > + | <BASED_INTEGER: <LETTER_OR_DIGIT>( <LETTER_OR_DIGIT>)* > + | <BASED_LITERAL: <INTEGER>["#"]<BASED_INTEGER>(["."] <BASED_INTEGER>)? ["#"] (<EXPONENT>)? > + | <#EXPONENT: (["e","E"] (["+","-"])? (<INTEGER>)+) > + | < #BASIC_GRAPHIC_CHARACTER: (<UPPER_CASE_LETTER>|<DIGIT>|<SPECIAL_CHARACTER>|<SPACE_CHARACTER>) > + | < #GRAPHIC_CHARACTER: ( <BASIC_GRAPHIC_CHARACTER>|<LOWER_CASE_LETTER>|<OTHER_SPECIAL_CHARACTER> ) > + | < #LETTER_OR_DIGIT: ( <LETTER> | <DIGIT> ) > + | < #LETTER: (<UPPER_CASE_LETTER>|<LOWER_CASE_LETTER>) > + | < #UPPER_CASE_LETTER: ["A"-"Z"] > + | <BIT_STRING_LITERAL : <BASE_SPECIFIER >["\""](<LETTER_OR_DIGIT>)* ["\""] > + | <#BASE_SPECIFIER:["B","O","X","b","o","x"]> + | < #DIGIT: ["0"-"9"] > + | < #SPECIAL_CHARACTER: ["#","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","_","|"] > + | < #OTHER_SPECIAL_CHARACTER: ["%","!","$","@","?","[","\\","]","^","`","{","}","~","\u00A0"-"\u00FF"]> + | < #SPACE_CHARACTER: [" ","\t"] > + | < #LOWER_CASE_LETTER: ["a"-"z"] > + | <VHDL2008TOOLDIR : ["`"](<GRAPHIC_CHARACTER>)+ > + + +} + +QCString abstract_literal() : +{Token *tok;} +{ + tok=<DECIMAL_LITERAL> { return tok->image.c_str(); } + | tok=<INTEGER> { return tok->image.c_str(); } + | tok=<BASED_LITERAL> { return tok->image.c_str(); } +} + +QCString access_type_definition() : +{Token *tok;QCString str,str1;} +{ +tok=<ACCESS_T> str1=subtype_indication() {str=tok->image.c_str(); return str+str1;} +} + +QCString actual_designator() : +{QCString str;Token *t;} +{ +t=<OPEN_T> { return t->image.c_str(); } +| +LOOKAHEAD(expression()) + str=expression() { return str; } +| + LOOKAHEAD(name()) + str=name() { return str; } +} + +QCString actual_parameter_part() : +{QCString s;} +{ + s=association_list() { return s;} +} + +QCString actual_part() : +{QCString s,s1;} +{ + LOOKAHEAD(actual_designator()) + s=actual_designator() { return s;} + | + <BOX_T> { return "<>";} + | + s=name() <LPAREN_T> s1=actual_designator() <RPAREN_T> {s+="(";s+=s1+")";return s;} + + } + +QCString adding_operator () : +{} +{ + <PLUS_T> { return "+";} + | <MINUS_T> { return "-";} + |<AMPERSAND_T> { return "&";} +} + +QCString aggregate() : {QCString s,s1,s2;} +{ + <LPAREN_T> s=element_association() (LOOKAHEAD(1)<COMMA_T> s1=element_association(){s+=","+s1;})* <RPAREN_T> { return s;} +} + +QCString alias_declaration() : {QCString s,s1,s2;} +{ + <ALIAS_T> s2=alias_designator() + [ <COLON_T>{ s+=":"; } s1=subtype_indication() { s+=s1; }] + <IS_T> { s+=" is "; } s1=name() {s+=s1;} [s1=signature() {s+=s1;}] + <SEMI_T> +{ + addVhdlType(s2.data(),getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data(),Public); + + return s2+" "+s+";"; +} + } + +QCString alias_designator() : {Token *tok=0;QCString s;} +{ + s=identifier() { return s;} + | tok=<CHARACTER_LITERAL> { return tok->image.c_str(); } + | s=operator_symbol() { return s; } +} + +void allocator() :{} +{ + LOOKAHEAD(3) + <NEW_T> qualified_expression() + | <NEW_T> subtype_indication() +} + +void architecture_body() : {QCString s,s1;} +{ + + <ARCHITECTURE_T> s=identifier() <OF_T> s1=name() <IS_T> + { + QCString t=s1+"::"+s; + genLabels.resize(0); + pushLabel(genLabels,s1); + lastCompound=current; + addVhdlType(t,getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private); + } + try{ + architecture_declarative_part() + }catch(...){error_skipto(BEGIN_T);} + <BEGIN_T> + architecture_statement_part() + <END_T> [<ARCHITECTURE_T>] [name()] <SEMI_T> + { lastEntity=0;lastCompound=0; genLabels.resize(0); } +} + +void architecture_declarative_part() : {} +{ + (block_declarative_item() )* +} + +void architecture_statement_part() : {} +{ + (concurrent_statement())* +} + +QCString array_type_definition (): { QCString s;} +{ + + LOOKAHEAD(unconstraint_array_definition()) + + s=unconstraint_array_definition() {return s;} + | s=constraint_array_definition() {return s;} + +} + +QCString assertion() : {QCString s,s1,s2;Token *t=0;Token *t1=0;} +{ + <ASSERT_T> s=condition() [ t=<REPORT_T> s1=expression() ] [t1=<SEVERITY_T> s2=expression()] + { + s.prepend("assert "); + if(t) s1.prepend(" report "); + if(t1) s2.prepend(" report "); + return s+s1+s2; + } +} + +QCString assertion_statement() : {QCString s,s1,s2;Token *t=0;} +{ + [ s=label() t=<COLON_T> ] s1=assertion() <SEMI_T> + { + if(t) s+=":"; + return s+s1+";"; + } +} +QCString association_element() : {} +{ + [LOOKAHEAD(formal_part() <ARROW_T>) formal_part() <ARROW_T> ] actual_part() + { return " ";} +} + +QCString association_list (): {QCString s,s1;} +{ +s=association_element() (<COMMA_T> s1=association_element() { s+=","+s1; })* { return s; } +} + +QCString attribute_declaration() : {QCString s,s1;} +{ + <ATTRIBUTE_T> s=identifier() <COLON_T> s1=type_mark() <SEMI_T> + { + addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public); + return " attribute "+s+":"+s1+";"; + } + } + +QCString attribute_designator (): {QCString s;Token *tok;} +{ + s=identifier() { return s;} + | tok=<RANGE_T> { return tok->image.c_str(); } +} + +QCString attribute_name (): {QCString s,s1;} +{ + s=identifier() <APOSTROPHE_T> s1=name(){ s+="'"+s1; }[LOOKAHEAD(1)<LPAREN_T>s1=expression() <RPAREN_T> {s+"("+s1+")";}] { return s; } +} + + +QCString attribute_specification(): {QCString s,s1,s2;} +{ + <ATTRIBUTE_T> s=attribute_designator() <OF_T> s1=entity_specification() <IS_T> s2=expression() <SEMI_T> + { + QCString t= s1+" is "+s2; + addVhdlType(s.data(),getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public); + return " attribute "+s+" of "+s1+ " is "+s2+";"; + } +} + +QCString base() : {Token *tok;} +{ + tok=<INTEGER> { return tok->image.c_str();} +} + +QCString base_specifier (): {Token *tok;} +{ + tok=<BASIC_IDENTIFIER> { return tok->image.c_str();} +} + +QCString base_unit_declaration() : +{QCString s;} +{ + s=identifier() { return s; } +} + +QCString based_integer() : {Token *tok;} +{ + tok=<BASIC_IDENTIFIER> { return tok->image.c_str();} +} + +QCString based_literal(): {Token *tok;} +{ + tok=<BASED_LITERAL> { return tok->image.c_str();} +} + +QCString basic_identifier() : {Token *tok;} +{ + tok=<BASIC_IDENTIFIER> { return tok->image.c_str();} +} + +void binding_indication() : {} +{ + [ <USE_T> entity_aspect() ] + [ generic_map_aspect() ] + [ port_map_aspect() ] +} + +QCString bit_string_literal (): {Token *tok;} +{ + tok=<BIT_STRING_LITERAL> { return tok->image.c_str();} +} + + +QCString bit_value() : {Token *tok;} +{ + tok=<BASIC_IDENTIFIER> { return tok->image.c_str();} +} + +void block_configuration() : {} +{ + <FOR_T> block_specification() + ( use_clause() )* + ( configuration_item())* + <END_T> <FOR_T> <SEMI_T> +} + +void block_declarative_item (): {} +{ + subprogram_declaration() +//| subprogram_body() +| type_declaration() +| subtype_declaration() +| constant_declaration() +| signal_declaration() +| variable_declaration() +| file_declaration() +| alias_declaration() +| component_declaration() +| +LOOKAHEAD(attribute_declaration()) +attribute_declaration() +| attribute_specification() +| configuration_specification() +| disconnection_specification () +| use_clause() +| +LOOKAHEAD(3) +group_template_declaration() +| group_declaration() +} + +void block_declarative_part() : {} +{ + (block_declarative_item() )* +} + +void block_header() : {} +{ +[LOOKAHEAD(generic_clause()) generic_clause()[ generic_map_aspect() <SEMI_T> ] ] +[ port_clause() [ port_map_aspect() <SEMI_T> ] ] +} + +void block_specification() : {} +{ + name()[LOOKAHEAD(1) <LPAREN_T> index_specification() <RPAREN_T>] +} + +void block_statement() : {QCString s;} +{ + s=identifier() <COLON_T> + <BLOCK_T> { pushLabel(genLabels,s); }[ <LPAREN_T> expression() <RPAREN_T> ] [ <IS_T> ] + block_header() + block_declarative_part() + <BEGIN_T> + block_statement_part() + <END_T> <BLOCK_T> [ identifier() ] <SEMI_T> + { + genLabels=popLabel(genLabels); + } +} + +void block_statement_part() : {} +{ + ( concurrent_statement() )* +} + +void case_statement() : {QCString s;} +{ +[ identifier() <COLON_T> ] + <CASE_T> s=expression() + { + QCString ca="case "+s; + FlowChart::addFlowChart(FlowChart::CASE_NO,0,ca); + } + <IS_T> + case_statement_alternative() + ( case_statement_alternative ())* + <END_T> <CASE_T> [ identifier() ] <SEMI_T> + { + FlowChart::moveToPrevLevel(); + FlowChart::addFlowChart(FlowChart::END_CASE,0,0); + } +} + +void case_statement_alternative() : {QCString s;} +{ + <WHEN_T> s=choices() <ARROW_T> + { + QCString t="when "; + t+=s+"=> "; + FlowChart::addFlowChart(FlowChart::WHEN_NO,s.data(),t); + } + sequence_of_statement(){FlowChart::moveToPrevLevel(); } +} + +QCString character_literal() : {Token *tok;} +{ + tok=<CHARACTER_LITERAL>{ return tok->image.c_str();} +} + +QCString choice() : {QCString s;} +{ + LOOKAHEAD(discrete_range()) + s=discrete_range(){ return s; } + | + LOOKAHEAD(simple_expression()) + s=simple_expression(){ return s; } + | s=identifier(){ return s; } + | <OTHER_T> { return " others "; } +} + +QCString choices() : {QCString s,s1;} +{ + s=choice() (<BAR_T> choice(){s+="|";s+=s1;})* { return s; } +} + +void component_configuration () :{} +{ + <FOR_T> component_specification() + [ binding_indication() <SEMI_T> ] + [ block_configuration() ] + <END_T> <FOR_T> <SEMI_T> +} +void component_declaration() : {QCString s;} +{ + <COMPONENT_T> s=identifier() [ <IS_T> ] + { currP=VhdlDocGen::COMPONENT; } + [ generic_clause() ] + [ port_clause() ] + { + addVhdlType(s.data(),getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Public); + currP=0; + } + <END_T> <COMPONENT_T> [ identifier() ] <SEMI_T> + +} + +void component_instantiation_statement() : {QCString s,s1;} +{ + +s=identifier() <COLON_T> + s1=instantiation_unit() + { + addCompInst(s.lower().data(),s1.lower().data(),0,getLine()); + } + [ LOOKAHEAD(generic_map_aspect()) generic_map_aspect() ] + [ port_map_aspect() ] <SEMI_T> +} + +void component_specification() : {} +{ +instantiation_list() <COLON_T> name() +} + +QCString composite_type_definition() : { QCString s,s1;} +{ + s=array_type_definition(){ return s; } +| record_type_definition(){ return s; } +} + +void concurrent_assertion_statement() : {} +{ +[ LOOKAHEAD(2) identifier() <COLON_T> ] [ <POSTPONED_T> ] assertion() <SEMI_T> +} + +void concurrent_procedure_call_statement() : {} +{ +[ LOOKAHEAD(2) identifier() <COLON_T> ] [ <POSTPONED_T> ] procedure_call() <SEMI_T> +} + +void concurrent_signal_assignment_statement() : {} +{ +[ LOOKAHEAD(2) identifier() <COLON_T> ] [<POSTPONED_T> ] +( +LOOKAHEAD(conditional_signal_assignment() ) + conditional_signal_assignment() +| selected_signal_assignment() + +) +} + +void concurrent_statement() : {} +{ + +// try { +LOOKAHEAD([identifier() ":"] <BLOCK_T>) +block_statement() +| +LOOKAHEAD([identifier() ":"] [<POSTPONED_T>] <PROCESS_T>) +process_statement() +| +LOOKAHEAD(generate_statement()) +generate_statement() +| +case_scheme() +| +LOOKAHEAD([identifier() ":"] [<POSTPONED_T>] <ASSERT_T>) +concurrent_assertion_statement() +| +LOOKAHEAD(concurrent_signal_assignment_statement()) + concurrent_signal_assignment_statement() +| +LOOKAHEAD(component_instantiation_statement() ) +component_instantiation_statement() +| +LOOKAHEAD(concurrent_procedure_call_statement()) +concurrent_procedure_call_statement() + /* + } + catch( ParseException e ) + { + error_skipto(SEMI_T, "syntax error in declarative item"); + } + */ +} + +QCString condition() : {QCString s;} +{ + s=expression() { return s; } +} + +QCString condition_clause() : {QCString s;} +{ + <UNTIL_T> s=condition() + { + return " until "+s; + } +} + +void conditional_signal_assignment() : {} +{ + // LOOKAHEAD( target() "<=" options_() conditional_waveforms() ";") + target() <LESSTHAN_T> options() conditional_waveforms() <SEMI_T> +} + +void conditional_waveforms() : {} +{ +waveform() + ( LOOKAHEAD(<WHEN_T> condition() <ELSE_T>) + <WHEN_T> condition() <ELSE_T> waveform() )* + [ <WHEN_T> condition() ] +} + +// ( waveform() < WHEN_T> condition() <ELSE_T> )* +// waveform() [ <WHEN_T> condition() ] + +//waveform() + // ( LOOKAHEAD( <WHEN> condition() <ELSE>) + // <WHEN> condition() <ELSE> waveform() )* + //[ <WHEN> condition() ] + +void configuration_declaration() : {QCString s,s1;} +{ + <CONFIGURATION_T> s=identifier() <OF_T> s1=name() <IS_T> + { + + confName=s+"::"+s1; + addVhdlType(s.data(),getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Public); + } + configuration_declarative_part() + block_configuration() + <END_T> [ <CONFIGURATION_T> ] [ name() ] <SEMI_T> + { genLabels.resize(0); confName="";} +} + +void configuration_declarative_item() : {} +{ + use_clause() +| attribute_specification() +| group_declaration() +} + +void configuration_declarative_part() : {} +{ + (configuration_declarative_item())* +} + +void configuration_item (): {} +{ + LOOKAHEAD(component_configuration()) + component_configuration() + | block_configuration() + +} + +void configuration_specification() : {} +{ +<FOR_T> component_specification() binding_indication() <SEMI_T> +} + +QCString constant_declaration() : {QCString s,s1,s2;Token *t=0;} +{ + <CONSTANT_T> s=identifier_list() <COLON_T> s1= subtype_indication() [ t=<VARASSIGN_T> s2=expression() ] <SEMI_T> + { + if(t) + s2.prepend(":="); + QCString it=s1+s2; + addVhdlType(s.data(),getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Public); + it.prepend("constant "); + return it; + } +} + +QCString constraint_array_definition (): {QCString s,s1;} +{ +<ARRAY_T> s=index_constraint() <OF_T> s1=subtype_indication(){ return s+" "+s1;} +} + +void context_clause (): {} +{ + (context_item())* +} + +QCString constraint () :{QCString s;} + { + LOOKAHEAD(range_constraint()) + s=range_constraint(){ return s;} + | + LOOKAHEAD(index_constraint()) + s=index_constraint(){ return s;} +} + +void context_item() : {} +{ + library_clause() +| use_clause() +} + +QCString decimal_literal() : {Token *tok;} +{ + tok=<DECIMAL_LITERAL> { return tok->image.c_str(); } +} + + +QCString delay_mechanism (): {QCString s;} +{ +<TRANSPORT_T> { return " transport ";} +| [ <REJECT_T> s=expression() {s.prepend(" reject ");}] <INERTIAL_T> { return s+" inertial "; } +} + +void design_file() : {} +{ + (design_unit() )+ {} + | <EOF> +} + +void design_unit() : {} +{ + context_clause()library_unit() + +} + +QCString designator() : {QCString s;} +{ + s=identifier() {return s;} + | s=operator_symbol(){return s;} +} + +QCString direction (): {Token *tok;} +{ +tok=<TO_T> { return tok->image.c_str();} +| tok=<DOWNTO_T> { return tok->image.c_str();} +} + +void disconnection_specification() : {} +{ +<DISCONNECT_T> guarded_signal_specificatio() <AFTER_T> expression() <SEMI_T> +} + +void guarded_signal_specificatio() : {} +{ + signal_list() <COLON_T> name() +} + +QCString discrete_range() : {QCString s;} +{ + LOOKAHEAD(range()) + s=range() { return s;} + | + LOOKAHEAD(subtype_indication()) + s=subtype_indication() { return s;} +} + +QCString element_association() : {QCString s,s1;} +{ + [LOOKAHEAD(choices() <ARROW_T>) choices() <ARROW_T> ] s1=expression() { return s1;} +} + +QCString element_declaration() : {QCString s,s1;} +{ +s=identifier_list() <COLON_T> s1=subtype_indication() <SEMI_T> {return s+":"+s1;} +} + + +QCString entity_aspect() : {Token *tok;QCString s,s1;} +{ +tok=<ENTITY_T> s=name() [ LOOKAHEAD(1)<LPAREN_T> s1=identifier() <RPAREN_T> {s+="("+s1+")";} ] { return s;} +| tok=<CONFIGURATION_T> s=name() { return tok->image.c_str()+s;} +| tok=<OPEN_T> { return tok->image.c_str(); } +} + +QCString entity_class() : {} +{ +<ENTITY_T> { return "entity";} +| <ARCHITECTURE_T> {return "architecture";} +| <CONFIGURATION_T> {return "configuration";} +| <PROCEDURE_T> {return "procedure";} +| <FUNCTION_T> {return "function";} +| <PACKAGE_T> {return "package";} +| <TYPE_T> {return "type";} +| <SUBTYPE_T> {return "subtype";} +| <CONSTANT_T> {return "constant";} +| <SIGNAL_T> {return "signal";} +| <VARIABLE_T> {return "variable";} +| <COMPONENT_T> {return "component";} +| <LABEL_T> {return "label";} +| <LITERAL_T> {return "literal";} +| <UNITS_T> {return "units";} +| <GROUP_T> {return "group";} +| <FILE_T> {return "file";} +} + +QCString entity_class_entry() : {QCString s;} +{ + s=entity_class() [ <BOX_T> {s+="<>";} ] { return s;} +} + +QCString entity_class_entry_list() : {QCString s,s1,s2;} +{ + ( s1=entity_class_entry() {s+=s1;} )(<COMMA_T> s=entity_class_entry(){s2+=",";s2+=s;} )* { return s1+s2;} +} + +void entity_declaration() : {QCString s;} +{ + try{ + <ENTITY_T> s=identifier() <IS_T> + { + lastEntity=current; + lastCompound=0; + addVhdlType(s.data(),getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public); + } + entity_header() + entity_declarative_part () + [ <BEGIN_T> entity_statement_part() ] + <END_T> [ <ENTITY_T> ] [ name() ] + }catch(...){error_skipto(SEMI_T);} + <SEMI_T> + { lastEntity=0;lastCompound=0; genLabels.resize(0); } +} + +void entity_declarative_item() : {} +{ +subprogram_declaration() +//| subprogram_body() +| type_declaration() +| subtype_declaration() +| constant_declaration() +| signal_declaration() +| variable_declaration() +| file_declaration() +| alias_declaration() +| +LOOKAHEAD(attribute_declaration()) +attribute_declaration() +| attribute_specification() +| disconnection_specification() +| use_clause() +| +LOOKAHEAD(3) +group_template_declaration() +| group_declaration() +| +LOOKAHEAD(5) + package_instantiation_declaration() +|package_declaration() +} + +void entity_declarative_part() : {} +{ + (entity_declarative_item() )* +} + +QCString entity_designator() : {QCString s,s1;} +{ +s=entity_tag() [ s1=signature() ] { return s+s1;} +} + +void entity_header() : {} +{ + [ { currP=VhdlDocGen::GENERIC;parse_sec=GEN_SEC; } generic_clause()] + [ { currP=VhdlDocGen::PORT; } port_clause()] +} + +QCString entity_name_list() : {QCString s,s1;} +{ +(s1=entity_designator() {s+=s1;})+ { return s;} +| <OTHER_T> { return "other";} +| <ALL_T> {return "all";} +} + +QCString entity_specification() : {QCString s,s1;} +{ +s=entity_name_list() <COLON_T> s1=entity_class(){ return s+":"+s1;} +} + +void entity_statement() : {} +{ +LOOKAHEAD(concurrent_assertion_statement()) +concurrent_assertion_statement() +| +LOOKAHEAD(process_statement()) + process_statement() +| concurrent_procedure_call_statement() + +} + +void entity_statement_part() : {} +{ + (entity_statement())* +} + + +QCString entity_tag (): {QCString s;} +{ +s=name() { return s;} +| s=character_literal() { return s;} +} + +QCString enumeration_literal() : {QCString s;} +{ + s=identifier() { return s;} + | s=character_literal() { return s;} +} + +QCString enumeration_type_definition() : {QCString s,s1;} +{ + <LPAREN_T>s=enumeration_literal() (LOOKAHEAD(1)<COMMA_T> s1=enumeration_literal() {s+=",";s+=s1;} )* <RPAREN_T> + { return "("+s+")";} +} + +QCString exit_statement() : {QCString s,s1,s2;Token *t=0;Token *t1=0;} +{ +[ s=identifier() t=<COLON_T> ] <EXIT_T> [ s1=identifier() ] +[ t1=<WHEN_T> s2=condition() ] <SEMI_T> +{ + if(t) s+=":"; + if(t1) s2.prepend(" when "); + return s+s1+s2+";"; +} +} + +QCString expression (): {QCString s,s1,s2;} +{ +s=relation() ( s1=logop() s2=relation() {s+=s1;s+=s2;} )* +{ return s; } +} + +QCString logop() : {} +{ + <AND_T> { return "and" ;} + |<NAND_T> { return "nand" ;} + |<NOR_T> { return "nor" ;} + |<XNOR_T> { return "xnor" ;} + |<XOR_T> { return "xor" ;} + |<OR_T> { return "or" ;} + +} + +QCString extended_identifier (): {Token *t;} +{ + t=<EXTENDED_CHARACTER> { return t->image.c_str(); } +} + +QCString factor(): {QCString s,s1;} +{ +s=primary() [LOOKAHEAD(1) <DOUBLEMULT_T> s1=primary(){ s+="**";s+=s1;} ] { return s;} +| <ABS_T> s=primary(){ s1 = "abs "; return s1+s; } +| <NOT_T> s=primary(){s1="not ";return s1+s;} +} + +QCString file_declaration() : {QCString s,s1,s2,s3;} +{ + <FILE_T> s=identifier_list() <COLON_T> s2=subtype_indication() [ s3=file_open_information() ] <SEMI_T> + { + QCString t1=s2+" "+s3; + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public); + return " file "+s+":"+s2+" "+s3+";"; + } + } + +QCString file_logical_name(): {QCString s;} +{ + s=expression() { return s; } +} + +QCString file_open_information() : {QCString s,s1,s2;} +{ + [ <OPEN_T> s=expression() ] <IS_T> s1=file_logical_name() {s2="open "+s+" is "+s1; return s2; } +} + +QCString file_type_definition() : {QCString s,s1;} +{ + <FILE_T> <OF_T> s=type_mark() { s1=" file of "+s; return s1;} +} + +QCString floating_type_definition() : {QCString s;} +{ + s=range_constraint(){ return s;} +} + +QCString formal_designator() : {QCString s;Token *tok;} +{ + s=name() { return s; } + |tok=<INTEGER> { return tok->image.c_str();} +} + + +QCString formal_parameter_list() : {QCString s;} +{ + s=interface_list(){ return s; } +} + +QCString formal_part() : {QCString s,s1;} +{ +s=name() [<LPAREN_T> formal_designator() <RPAREN_T> {s+"("+s1+")";}] {return s;} +} + +QCString full_type_declaration() : {QCString s,s1,s2;} +{ +<TYPE_T> s=identifier() <IS_T> + try{ + s2=type_definition() + }catch(...){error_skipto(SEMI_T);} + <SEMI_T> + { + addVhdlType(s.data(),getLine(TYPE_T),Entry::VARIABLE_SEC,VhdlDocGen::TYPE,0,s2.data(),Public); + return "type "+s+" is "+s2+";"; + } +} + +QCString function_call() : {QCString s,s1;} +{ +s=name() <LPAREN_T> s1=actual_parameter_part() <RPAREN_T> { return s+"("+s1+")";} +} + +void generate_statement() : {QCString s;} +{ +s=identifier() <COLON_T> + try{ + generate_scheme() <GENERATE_T> + { pushLabel(genLabels,s); } + [ (block_declarative_item() )* <BEGIN_T> ] (concurrent_statement())* + <END_T> + }catch(...){error_skipto(GENERATE_T);} + <GENERATE_T> [ identifier() ] <SEMI_T> {genLabels=popLabel(genLabels); } +} + +void generate_scheme() : {} +{ +<FOR_T> parameter_specification() +| <IF_T> condition() +} + +void generic_clause() : {QCString s;} +{ + <GENERIC_T> <LPAREN_T> { parse_sec=GEN_SEC; } s=generic_list() <RPAREN_T> <SEMI_T> { parse_sec=0; } +} + +QCString generic_list() : {QCString s;} +{ + s=interface_list() { return s; } +} + +void generic_map_aspect() : {} +{ + <GENERIC_T> <MAP_T> <LPAREN_T> association_list() <RPAREN_T> +} + +QCString group_constituent() : {QCString s;} +{ + s=name() { return s; } + | s=character_literal() { return s;} +} + +QCString group_constituent_list() : {QCString s,s1,s2;} +{ + (s1=group_constituent())(<COMMA_T> s=group_constituent(){s2+=",";s2+=s1;})* { return s+s2;} +} + +QCString group_declaration() : {QCString s,s1,s2;} +{ + <GROUP_T> s=identifier() <COLON_T> s1=identifier() <LPAREN_T> s2=group_constituent_list() <RPAREN_T> <SEMI_T> + { + return "group "+s+":"+s1+"("+s2+");"; + } +} + +QCString group_template_declaration() : {QCString s,s1;} +{ + <GROUP_T> s=identifier() <IS_T> <LPAREN_T> s1=entity_class_entry_list() <RPAREN_T> <SEMI_T> + { + return "group "+s+ "is ("+s1+");"; + } + } + +void guarded_signal_specification() : {} +{ + signal_list() <COLON_T> type_mark() +} + +QCString identifier() : {Token *tok;} +{ + tok=<EXTENDED_CHARACTER>{ return tok->image.c_str(); } + |tok=<BASIC_IDENTIFIER> { return tok->image.c_str(); } +} + +QCString identifier_list() : {QCString str,str1;} +{ + str=identifier() (<COMMA_T> str1=identifier() {str+=",";str+=str1;})* { return str; } +} + +void if_statement() : {QCString s,s1;} +{ +[LOOKAHEAD(1) identifier() <COLON_T> ] + <IF_T> s=condition() <THEN_T> + { + s.prepend("if "); + FlowChart::addFlowChart(FlowChart::IF_NO,0,s); + } + sequence_of_statement() + ( + <ELSIF_T> s1=condition() <THEN_T> + { + s1.prepend("elsif "); + FlowChart::addFlowChart(FlowChart::ELSIF_NO,0,s1.data()); + } + sequence_of_statement() + )* + [LOOKAHEAD(1) <ELSE_T> + { + FlowChart::addFlowChart(FlowChart::ELSE_NO,0,0); + } + sequence_of_statement() ] <END_T> <IF_T> [ identifier() ] <SEMI_T> + { + FlowChart::moveToPrevLevel(); + FlowChart::addFlowChart(FlowChart::ENDIF_NO,0,0); + } +} + +QCString incomplete_type_declaration() : {QCString s;} +{ + <TYPE_T> s=identifier() <SEMI_T> + { + return "type "+s+";"; + } +} + +QCString index_constraint() : {QCString s="("; QCString s1,s2;} +{ + //try{ + <LPAREN_T> s2=discrete_range(){s+=s2;}(LOOKAHEAD(1)<COMMA_T> s1=discrete_range(){s+=",";s+=s1;})* <RPAREN_T> {return s+")";} +//}catch(...){ error_skipto(SEMI_T);hasError=false;return "";} + } + +QCString index_specification() : {QCString s;} +{ + LOOKAHEAD( discrete_range()) + s=discrete_range() { return s;} +| s=expression(){ return s;} +} + +QCString index_subtype_definition() : {QCString s;} +{ + s=type_mark() <RANGE_T> <BOX_T> { return s+" range <> ";} +} + +QCString instantiation_unit() : {QCString s,s1,s2;Token *tok;} +{ +[ tok=<COMPONENT_T> ] s=identifier() {s1="component"; return s; } +| tok=<ENTITY_T> s2=name() {s=tok->image.c_str()+s2;} [ <LPAREN_T> s1=identifier() <RPAREN_T> {s+="(";s+=s1;s+=")" ;}] { return s;} +| <CONFIGURATION_T> s=name() {s1="configuration ";return s;} +} + +QCString instantiation_list() : {QCString s;Token *tok;} +{ + s=identifier_list() { return s;} +| tok=<OTHER_T> {return tok->image.c_str();} +| tok=<ALL_T> {return tok->image.c_str();} +} + +QCString integer() : {Token *t;} +{ + t=<INTEGER> {return t->image.c_str();} +} + +QCString integer_type_definition() : {QCString s;} +{ + s=range_constraint(){ return s;} +} + +QCString interface_declaration() : {QCString s,s1;} +{ + +LOOKAHEAD(5) + s=interface_subprogram_declaration() { return s;} + +|interface_package_declaration() { return s;} +| + LOOKAHEAD(5) + s=interface_variable_declaration() { return s;} +| +LOOKAHEAD(5) +interface_file_declaration() { return s;} +| +LOOKAHEAD(subprogram_declaration()) +subprogram_declaration() { return s;} +| + s=object_class() s1=identifier() + { + if (parse_sec==GEN_SEC) + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,s1.data(),0,Public); + return s; + } +} + +QCString interface_element() : {QCString s;} +{ +s=interface_declaration(){ return s;} +} + +QCString interface_file_declaration() : {QCString s,s1;} +{ +<FILE_T> s=identifier_list() <COLON_T> s1=subtype_indication() +{ + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public); + return " file "+s+":"+s1; +} +} + +QCString interface_list() : {QCString s,s1,s2;} +{ +s=interface_element() (LOOKAHEAD(1) <SEMI_T> s1=interface_element(){s2+=";";s2+=s1;})* { return s+s2;} +} + + + +QCString interface_variable_declaration() : {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5;} +{ +[( tok=<VARIABLE_T> | tok=<SIGNAL_T> | tok=<CONSTANT_T>|tok=<SHARED_T>) ] + s=identifier_list() <COLON_T> [ s1=mode() ] + s2=subtype_indication() [ tok1=<BUS_T> ] [ tok2=<VARASSIGN_T> s4=expression() ] +{ + if(tok) + s5=tok->image.c_str(); + + if(tok1) + s3=tok->image.data(); + + if(tok2) + s3+=":="; + + QCString it=s+":"+s1+" "+s2+" "+s3+" "+s4; + if (currP!=VhdlDocGen::COMPONENT) + { + if (currP==VhdlDocGen::FUNCTION || currP==VhdlDocGen::PROCEDURE) + { + addProto(s5.data(),s.data(),s2.data(),s3.data(),0,s4.data()); + } + else + { + QCString i=s2+s3+s4; + if (currP==VhdlDocGen::GENERIC && param_sec==0) + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public); + else if(parse_sec != GEN_SEC) + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,currP,i.data(),s1.data(),Public); + } + // fprintf(stderr,"\n\n <<port %s >>\n",$$.data()); + } // if component + return it; + } +} + +void iteration_scheme() : {} +{ +<WHILE_T> condition() +| <FOR_T> parameter_specification() +} + +QCString label() : {QCString s;} +{ + s=identifier() { return s;} +} + +QCString library_clause() : {QCString s;} +{ + (<LIBRARY_T> s=identifier_list() <SEMI_T> + ) + { + if ( parse_sec==0 && Config_getBool("SHOW_INCLUDE_FILES") ) + { + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Public); + } + QCString s1="library "+s; + return s1; + } +} + +QCString library_unit() : {QCString s;} +{ +LOOKAHEAD(2) +primary_unit() { return s; } +| secondary_unit() { return s; } +| context_declaration() + +} + +QCString literal() : {QCString s;} +{ + + LOOKAHEAD(bit_string_literal()) +s=bit_string_literal() { return s;} +| + LOOKAHEAD(numeric_literal()) + s=numeric_literal() { return s;} +| + +LOOKAHEAD(enumeration_literal()) +s=enumeration_literal() { return s;} +| s=string_literal() { return s;} +| <NULL_T> {return "null";} +} + +QCString logical_operator() : {QCString s;} +{ + s=logop() { return s;} +} + +void loop_statement() : {} +{ +[ identifier() <COLON_T> ] + [ iteration_scheme() ] <LOOP_T> + sequence_of_statement() + <END_T> <LOOP_T> [ identifier() ] <SEMI_T> +} + + +QCString miscellaneous_operator():{Token *t=0;} +{ + <DOUBLEMULT_T> {return "**";} + | <ABS_T> {return "abs";} + | <NOT_T> {return "not";} +} + +QCString mode() : {Token *tok;} +{ +tok=<IN_T> { return "in"; } +| tok=<OUT_T> { return "out"; } +| tok=<INOUT_T> { return "inout"; } +| tok=<BUFFER_T> { return "buffer"; } +| tok=<LINKAGE_T> { return "linkage"; } +} + +QCString multiplying_operation() : {Token *tok;} +{ +tok=<MULT_T> { return tok->image.c_str(); } +| tok=<SLASH_T> { return tok->image.c_str(); } +| tok=<MOD_T> { return tok->image.c_str(); } +| tok=<REM_T> { return tok->image.c_str(); } +} + + + QCString name() : {QCString s,s1;} +{ + ( + s=operator_symbol() + | s=identifier()| s=external_name() + ) + [LOOKAHEAD(name_ext1()) s1=name_ext1(){ s+=s1;}] { return s; } +} + +QCString name_ext1() : {QCString s,s1,s2;} + { + s=name_ext() (LOOKAHEAD(name_ext()) s1=name_ext(){s+=s1;})* { return s;} + } + + QCString name_ext() : {QCString s,s1,s2;} + { + + ( + LOOKAHEAD(<DOT_T> suffix()) + <DOT_T> s1=suffix(){s+=".";s+=s1;} +| + LOOKAHEAD(test_att_name()) + s1=test_att_name() { s+=s1;} + | + LOOKAHEAD( <LPAREN_T> discrete_range() <RPAREN_T>) + <LPAREN_T> s1=discrete_range() <RPAREN_T> {s+="(";s+=s1;s+=")";} + | + LOOKAHEAD( "(" expression() ("," expression() )* ")" ) + <LPAREN_T> s1=expression() {s+="(";s+=s1;} (LOOKAHEAD(1) <COMMA_T> s1=expression(){s+=",";s+=s1;})* <RPAREN_T> { s+=")";} + + ) + {return s;} + } + + QCString test_att_name() : {QCString s,s1;} + { + [ LOOKAHEAD(<LBRACKET_T>) s1=signature() {s=s1;}] + <APOSTROPHE_T> s1=attribute_designator() {s+="'";s+=s1;} + [LOOKAHEAD(1) <LPAREN_T> s1=expression() <RPAREN_T> {s+="(";s+=s1;s+=")";}] + { return s;} + } + + QCString indexed_name() : {QCString s,s1,s2;} + { + s2=identifier() <LPAREN_T> s1=expression(){s=s2+"("+s1;} (<COMMA_T> s1=expression(){s+=",";s+=s1;})* <RPAREN_T> {return s+")";} + } + +QCString next_statement() : {QCString s,s1,s2;Token *t=0;Token *t1=0;} +{ +[LOOKAHEAD(1) s=identifier() t=<COLON_T> ] <NEXT_T> [ s1=identifier() ] +[LOOKAHEAD(1) t1=<WHEN_T> s2=condition() ] <SEMI_T> +{ + if(t) s+=":"; + if(t1) s2.prepend("when "); + return s+s1+s2+";"; +} +} + +QCString null_statement() : {QCString s;} +{ +[ s=identifier() <COLON_T> {s+=":";}] <NULL_T> <SEMI_T>{return s+="null";} +} + +QCString numeric_literal() : {QCString s;} +{ + + LOOKAHEAD(physical_literal()) + s=physical_literal(){ return s;} + | s=abstract_literal() { return s;} +} + +QCString object_class() : {} +{ +<CONSTANT_T> { return "constant"; } +|<SIGNAL_T> { return "signal"; } +|<VARIABLE_T> { return "variable"; } +|<SHARED_T> <VARIABLE_T> { return "shared variable"; } +|<FILE_T> { return "file"; } +|<TYPE_T> { return "type"; } +} + +QCString operator_symbol() : {Token *tok;} +{ +tok=<STRINGLITERAL> {return tok->image.c_str();} +} + +void options() : {} +{ + [ <GUARDED_T> ] [ delay_mechanism() ] +} + +void package_body() : {QCString s;} +{ +<PACKAGE_T> <BODY_T> s=name() <IS_T> + { + lastCompound=current; + s.prepend("_"); + addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected); + } + package_body_declarative_part() + +<END_T> [<PACKAGE_T> <BODY_T> ] [ name() ] <SEMI_T> { lastCompound=0; genLabels.resize(0); } +} + +void package_body_declarative_item() : {} +{ +subprogram_declaration() +//| subprogram_body() +| type_declaration() +| subtype_declaration() +| constant_declaration() +| variable_declaration() +| file_declaration() +| alias_declaration() +| use_clause() +| +LOOKAHEAD(3) +group_template_declaration() +| group_declaration() +} + +void package_body_declarative_part() : {} +{ +(package_body_declarative_item() )* +} + +void package_declaration(): {QCString s;} +{ + + <PACKAGE_T> s=identifier() <IS_T> + { + lastCompound=current; + Entry *clone=new Entry(*current); + clone->section=Entry::NAMESPACE_SEC; + clone->spec=VhdlDocGen::PACKAGE; + clone->name=s; + clone->startLine=getLine(); + clone->bodyLine=getLine(); + clone->protection=Package; + current_root->addSubEntry(clone); + addVhdlType(s,getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package); + } + package_declarative_part() +<END_T> [ <PACKAGE_T>] [ name() ] <SEMI_T> +{ lastEntity=0;lastCompound=0; genLabels.resize(0); } +} + +void geninter():{} +{ + [gen_interface_list() <SEMI_T> [gen_assoc_list() <SEMI_T>]] +} + +void package_declarative_item() : {} +{ +//LOOKAHEAD(3) +//interface_subprogram_declaration() +subprogram_declaration() +| type_declaration() +| subtype_declaration() +| constant_declaration() +| signal_declaration() +| variable_declaration() +| file_declaration() +| alias_declaration() +| component_declaration() +| +LOOKAHEAD(attribute_declaration()) + attribute_declaration() +| attribute_specification() +| disconnection_specification() +| use_clause() +| +LOOKAHEAD(3) + group_template_declaration() +| group_declaration() +| + LOOKAHEAD(5) + package_instantiation_declaration() +|package_declaration() + +} + +void package_declarative_part() : {} +{ + (package_declarative_item())* +} + +QCString parameter_specification() : {QCString s,s1;} +{ +s=identifier() <IN_T> s1=discrete_range(){ return s+" in "+s1;} +} + +QCString physical_literal() : {QCString s,s1;} +{ + [LOOKAHEAD(abstract_literal()) s=abstract_literal()] s1=name(){s+=" ";s+=s1;s.prepend(" "); return s;} +} + +QCString physical_type_definition() : {QCString s,s1,s2;} +{ + <UNITS_T> + s=identifier()<SEMI_T> + (s1=secondary_unit_declaration(){s2+=s1;s2+="#";})* + <END_T> <UNITS_T> [name()] + { + current->args=s2; + current->args.prepend("units"); + current->spec=VhdlDocGen::UNITS; + return s2; + } +} + +void port_clause() : {} +{ + <PORT_T> <LPAREN_T> port_list()<RPAREN_T> <SEMI_T>{ currP=0; } +} + +QCString port_list() : {QCString s;} +{ + s=interface_list(){return s;} +} + +void port_map_aspect() : {} +{ + <PORT_T> <MAP_T> <LPAREN_T> association_list() <RPAREN_T> +} + +QCString primary() : {QCString s,s1;} +{ +LOOKAHEAD(function_call()) +s=function_call() { return s;} +| +LOOKAHEAD(<LPAREN_T> expression() <RPAREN_T>) + <LPAREN_T> s1=expression() <RPAREN_T>{ s="("+s1+")"; return s;} +| +LOOKAHEAD(qualified_expression()) +s=qualified_expression() { return s;} +| +LOOKAHEAD(type_conversion()) +s=type_conversion() { return s;} +| +LOOKAHEAD(literal()) +s=literal() { s.prepend(" ");return s;} +| +LOOKAHEAD(name()) +s=name() { return s;} +| +allocator() { return "";} +| +s=aggregate() { return s; } +} + + +void primary_unit() : {} +{ +entity_declaration() +| configuration_declaration() +| +LOOKAHEAD(package_instantiation_declaration()) +package_instantiation_declaration() +| +LOOKAHEAD(4) + interface_package_declaration() +| package_declaration() + +} + +QCString procedure_call() : {QCString s,s1;} +{ + s=name() [ <LPAREN_T> s1=actual_parameter_part() <RPAREN_T>{ s1.prepend("("); s1.append(")");}] +{ return s+s1;} + } + +QCString procedure_call_statement() : {QCString s,s1;} +{ +[LOOKAHEAD(2) s=identifier() <COLON_T> { s+=":"; }] s1=procedure_call() <SEMI_T> +{ + return s+s1+";"; +} +} + +QCString process_declarative_item() : {QCString s;} +{ +subprogram_declaration() { return "";} +//| subprogram_body() +| s=type_declaration() { return s;} +| s=subtype_declaration() { return s;} +| s=constant_declaration() { return s;} +| s=variable_declaration() { return s;} +| s=file_declaration() { return s;} +| s=alias_declaration() { return s;} +| +LOOKAHEAD(3) +s=attribute_declaration() { return s;} +| s=attribute_specification() { return s;} +| s=use_clause() { return s;} +| +LOOKAHEAD(3) +s=group_template_declaration() { return s;} +| s=group_declaration() { return s;} +} + +QCString process_declarative_part() :{QCString s,s1;} +{ + ( s1=process_declarative_item(){s+=s1;} )* { return s;} +} + +void process_statement() : {QCString s,s1,s2;Token *tok=0;} +{ +[ s=identifier() <COLON_T> ] +[ <POSTPONED_T> ] + { + currP=VhdlDocGen::PROCESS; + current->startLine=getLine(); + current->bodyLine=getLine(); + } + <PROCESS_T> + try{ + [ <LPAREN_T> (tok=<ALL_T> | s1=sensitivity_list()) <RPAREN_T> ] [ <IS_T> ] + s2=process_declarative_part() + { + if (s2.data()) + FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s2.data(),0); + FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0); + } + <BEGIN_T> + process_statement_part() + <END_T> [ <POSTPONED_T> ] + }catch(...){error_skipto(PROCESS_T);} + <PROCESS_T> [ identifier() ] <SEMI_T> + { + if(s.isEmpty()) + currName=VhdlDocGen::getProcessNumber(); + else + currName=s; + + current->name=currName; + tempEntry=current; + current->endBodyLine=getLine(); + currP=0; + if(tok) + s1=tok->image.data(); + createFunction(currName,VhdlDocGen::PROCESS,s1.data()); + createFlow(); + currName=""; + newEntry(); +} +} + +void process_statement_part() : {} +{ + (sequential_statement())* +} + +QCString qualified_expression() : {QCString s,s1;} +{ + s1=identifier() <APOSTROPHE_T> {s=s1+"'";} + ( + LOOKAHEAD(aggregate()) + s1=aggregate(){s+=s1;} + | <LPAREN_T> s1=expression() <RPAREN_T>{s+="(";s+=s1;s+=")";} + ) + {return s;} +} + +QCString range() : {QCString s,s1,s2;} +{ + LOOKAHEAD( simple_expression() direction() simple_expression()) + s=simple_expression() s1=direction() s2=simple_expression(){return s+" "+s1+" "+s2;} + | + LOOKAHEAD(attribute_name()) + s=attribute_name(){ return s;} +} + +QCString range_constraint() : {QCString s,s1;} +{ +<RANGE_T> s=range(){return " range "+s;} +} + +void record_type_definition() : {} +{ + <RECORD_T> + try{ + (element_declaration())+ + }catch(...){error_skipto(END_T);} + <END_T> + <RECORD_T> [ name()] +} + +QCString relation() : {QCString s,s1,s2;} +{ + s=shift_expression() [LOOKAHEAD(1) s1=relation_operator() s2=shift_expression() ] {return s+s1+s2;} +} + +QCString relation_operator() : {} +{ + <LT_T> {return "<";} + |<GT_T> {return ">";} + |<EQU_T> {return "=";} + |<GREATERTHAN_T> {return ">=";} + |<LESSTHAN_T> {return "<=";} + |<NOTEQU_T> {return "/=";} + +} + +QCString report_statement() : {Token *t=0;Token *t1=0;QCString s,s1,s2;} +{ +[ s=identifier() t=<COLON_T> ] + <REPORT_T> s1=expression() + [ t1=<SEVERITY_T> s2=expression() ] <SEMI_T> + { + if(t) s.append(":"); + s1.prepend(" report "); + if(t1) s2.prepend(" severity "); + return s+s1+s2+";"; + } +} + +QCString return_statement() : {QCString s,s1;} +{ +[ s=identifier() <COLON_T> { s+=":";}] <RETURN_T> [ s1=expression() ] <SEMI_T> +{ return s+" return "+s1+";";} +} + +QCString scalar_type_definition() : {QCString s,s1;} +{ + +s=enumeration_type_definition(){ return s;} +| s=range_constraint() [LOOKAHEAD( physical_type_definition()) s1=physical_type_definition()] { s+=" ";s+=s1;return s;} +} + +void secondary_unit() : {} +{ +architecture_body() +| package_body() +} + +QCString secondary_unit_declaration() : {QCString s,s1;} +{ +s=identifier() <EQU_T> s1=physical_literal() <SEMI_T> { return s+"="+s1; } +} + +QCString selected_name() : {QCString s,s1;} +{ + s=identifier() <DOT_T> s1=suffix(){ return s+"."+s1;} +} + +void selected_signal_assignment() : {} +{ + <WITH_T> expression() <SELECT_T> + + target() < LESSTHAN_T> options() selected_waveforms() <SEMI_T> +} + +void selected_waveforms() : {} +{ + waveform() <WHEN_T> choices()(<COMMA_T> waveform() <WHEN_T> choices())* +} + +QCString sensitivity_clause() : {QCString s;} +{ + <ON_T> s=sensitivity_list() + { + s.prepend(" on "); + return s; + } +} + +QCString sensitivity_list() : {QCString s,s1;} +{ + s=name() (<COMMA_T> s1=name(){s+=",";s+=s1;} )* { return s;} +} + +void sequence_of_statement() : {} +{ + ( LOOKAHEAD(3)sequential_statement())* +} + +void sequential_statement() :{QCString s;} +{ + LOOKAHEAD( [ identifier() ":" ] target() "<=") + s=signal_assignment_statement(){FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);} + | + LOOKAHEAD(3) + s=assertion_statement(){FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);} + | + LOOKAHEAD(3) + s=report_statement(){FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);} + | + LOOKAHEAD(3) + s=wait_statement(){FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);} + | + LOOKAHEAD( [ identifier() ":" ] target() ":=" ) + s=variable_assignment_statement(){FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);} + | + LOOKAHEAD(3) + s=procedure_call_statement(){ FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0); } + | + LOOKAHEAD(3) + if_statement() + | + LOOKAHEAD(3) + case_statement() + | + LOOKAHEAD(3) + loop_statement() + | + LOOKAHEAD(3) + s=next_statement() + | + LOOKAHEAD(3) + s=exit_statement() + | + LOOKAHEAD(3) + s=return_statement(){FlowChart::addFlowChart(FlowChart::RETURN_NO,s.data(),0);} + | + s=null_statement(){FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);} +} + +QCString shift_expression() : {QCString s,s1,s2;} +{ + s=simple_expression() [ s1=shift_operator() s2=simple_expression() ] { return s+s1+s2;} +} +QCString shift_operator() : {} +{ + <SLL_T> { return "sll";} + | <SRL_T> { return "srl";} + | <SLA_T> { return "sla";} + | <SRA_T> { return "sra";} + | <ROL_T> { return "rol";} + | <ROR_T> { return "ror";} +} + +QCString sign() : {} +{ + <PLUS_T> { return "+";} + | <MINUS_T> { return "-";} +} + +QCString signal_assignment_statement() : {QCString s,s1,s2,s3;} +{ + + LOOKAHEAD(conditional_signal_assignment_wave()) + conditional_signal_assignment_wave(){ return ""; } +| + LOOKAHEAD(selected_signal_assignment_wave()) + selected_signal_assignment_wave() { return ""; } + | + [LOOKAHEAD(2) s=identifier() <COLON_T> {s+=":";} ] +s1=target() <LESSTHAN_T> +[ s2=delay_mechanism() ] +s3=waveform() <SEMI_T> +{ + return s+s1+"<="+s2+s3+";"; +} + +} + +void semi() : {} +{ +<SEMI_T> +} + +void signal_declaration() : {QCString s,s1,s2,s3,s4;} +{ +<SIGNAL_T> s=identifier_list() <COLON_T> s1=subtype_indication() [ s2=signal_kind() ] [ <VARASSIGN_T> s3=expression() ] <SEMI_T> + { + s4=s1+s2+s3; + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public); + } +} +QCString signal_kind() : {} +{ + <REGISTER_T> { return "register";} + | <BUS_T> { return "bus";} +} + +QCString signal_list() : {QCString s,s1;} +{ + s=name() (<COMMA_T> s1=name() { s+=",";s+=s1;})* +| <OTHER_T> { return "other";} +| <ALL_T> { return "all";} +} + +QCString signature() : {QCString s,s1,s2;} +{ +<LBRACKET_T> + [ s=name() (<COMMA_T> s1=name() {s+=",";s+=s1; })* ] + [ <RETURN_T> s1=name() {s+="return ";s+=s1;}] + <RBRACKET_T> + { s1="["+s+"]";return s1;} + } + +QCString simple_expression(): {QCString s,s1,s2;} +{ +[ s=sign() ] s1=term() {s+=s1;} ( LOOKAHEAD(adding_operator()) s1=adding_operator() s2=term() {s+=s1;s+=s2;})* { return s;} +} + +void simple_name() : {} +{ +name() +} + +QCString slice_name() : {QCString s,s1;} +{ + s=identifier() <LPAREN_T> s1=discrete_range() <RPAREN_T> {return s+"("+s1+")";} +} + +QCString string_literal() : {Token *tok;} +{ +tok=<STRINGLITERAL> {return tok->image.c_str();} +} + + void subprogram_body() : {QCString s;} +{ +//subprogram_specification() +<IS_T> + try{ + s=subprogram_declarative_part() + { + if (s.data()) + { + FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s,0); + } + FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0); + } + }catch(...){error_skipto(BEGIN_T);} +<BEGIN_T> +subprogram_statement_part() +<END_T> [ subprogram_kind() ] [ designator() ] <SEMI_T> + { + tempEntry->endBodyLine=getLine(END_T); + createFlow(); + currP=0; + } +} + +void subprogram_declaration() : {} +{ +LOOKAHEAD(subprogram_instantiation_declaration()) +subprogram_instantiation_declaration() +| +subprogram_specification()subprogram_1(){currP=0;} +} + +void subprogram_1() : {} +{ + + subprogram_body() + | <SEMI_T> +} + +QCString subprogram_declarative_item() : {QCString s;} +{ +subprogram_declaration(){ return "";} +|s=type_declaration(){ return s;} + | subprogram_body(){ return "";} +| s=subtype_declaration(){ return s;} +| s=constant_declaration(){ return s;} +| s=variable_declaration(){ return s;} +| s=file_declaration(){ return s;} +| s=alias_declaration(){ return s;} +| +LOOKAHEAD(attribute_declaration()) +s=attribute_declaration(){ return s;} +| s=attribute_specification(){ return s;} +| s=use_clause(){ return s;} +| +LOOKAHEAD(3) +s=group_template_declaration(){ return s;} +| s=group_declaration() { return s;} +} + +QCString subprogram_declarative_part() : {QCString s,s1;} +{ + (s1=subprogram_declarative_item(){s+=s1;})* { return s;} +} + +void subprogram_kind() : {} +{ + <FUNCTION_T> + |<PROCEDURE_T> +} + +void subprogram_specification() : {QCString s;Token *tok=0;Token *t;} +{ + <PROCEDURE_T> s=designator() + { + currP=VhdlDocGen::PROCEDURE; + createFunction(s.data(),currP,0); + tempEntry=current; + current->startLine=getLine(PROCEDURE_T); + current->bodyLine=getLine(PROCEDURE_T); + + } [LOOKAHEAD(1) <LPAREN_T> { param_sec=PARAM_SEC; } interface_list() { param_sec=0; }<RPAREN_T> ] + [LOOKAHEAD(2) gen_interface_list()] + [ LOOKAHEAD(2) gen_assoc_list()] + param() + { newEntry(); } +| + [ (tok=<PURE_T> | tok=<IMPURE_T>) ] t=<FUNCTION_T> s=designator() + { + currP=VhdlDocGen::FUNCTION; + if(tok) + createFunction(tok->image.c_str(),currP,s.data()); + else + createFunction(0,currP,s.data()); + tempEntry=current; + current->startLine=getLine(FUNCTION_T); + current->bodyLine=getLine(FUNCTION_T); + } + [{ param_sec=PARAM_SEC; } <LPAREN_T> formal_parameter_list() <RPAREN_T> { param_sec=0; }] + <RETURN_T> s=type_mark() + { + tempEntry=current; + current->type=s; + newEntry(); + } +} + +void subprogram_statement_part() : {} +{ + (sequential_statement())* +} + +QCString subtype_declaration() : {QCString s,s1;} +{ +<SUBTYPE_T> s=identifier() <IS_T> s1=subtype_indication() <SEMI_T> + { + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public); + return " subtype "+s+" is "+s1+";"; + } +} + +QCString subtype_indication() : {QCString s,s1,s2;} +{ + s=name() + [LOOKAHEAD (name()) s1=name()] [LOOKAHEAD(constraint() ) s2=constraint()] + {return s+" "+s1+" "+s2;} +} + +QCString suffix() : {QCString s;} +{ +LOOKAHEAD(name()) +s=name() { return s;} +| s=character_literal() { return s;} +| s=operator_symbol(){ return s;} +| <ALL_T> {return " all ";} +} + +QCString target() : {QCString s;} +{ + s=name(){ return s;} +| s=aggregate() { return s;} +} + +QCString term() : {QCString s,s1,s2;} +{ + s=factor() ( LOOKAHEAD(2) s1=multiplying_operation() s2=factor(){s+=s1;s+=s2;} )* { return s;} +} + +QCString timeout_clause() : {QCString s;} +{ +<FOR_T> s=expression() +{ + return " for "+s; +} +} + +QCString type_conversion() : {QCString s,s1;} +{ + s=name() <LPAREN_T> s1=expression() <RPAREN_T> { return s+"("+s1+")";} +} + +QCString type_declaration() : {QCString s;} +{ +LOOKAHEAD(3) +s=full_type_declaration(){ return s;} +| s=incomplete_type_declaration(){ return s;} +} + +QCString type_definition() : {QCString s;} +{ +//try{ +s=scalar_type_definition(){ return s;} +| s=composite_type_definition(){ return s;} +| s=access_type_definition(){ return s;} +| s=file_type_definition(){ return s;} +| + LOOKAHEAD(2) + protected_type_body() { return ""; } +| protected_type_declaration() { return ""; } +//}catch(...){error_skipto(SEMI_T); return "";} +} + +QCString type_mark() : {QCString s; } +{ + s=name() { return s;} +} + +QCString unconstraint_array_definition() : {QCString s,s1,s2,s3;} +{ +<ARRAY_T> <LPAREN_T> s=index_subtype_definition() ( <COMMA_T> s1=index_subtype_definition(){s3+=",";s3+=s1;})* <RPAREN_T> + <OF_T> s2=subtype_indication() {return "array("+s+s3+") of "+s2;} +} + + QCString use_clause() : {QCString s,s1;} +{ + <USE_T> s=selected_name()(<COMMA_T> s1=selected_name(){s+=",";s+=s1;})* <SEMI_T> + { + QStringList ql1=QStringList::split(",",s,FALSE); + for (uint j=0;j<ql1.count();j++) + { + QCString it=ql1[j].utf8(); + if ( parse_sec==0 && Config_getBool("SHOW_INCLUDE_FILES") ) + { + ::vhdl::parser::VhdlParser::addVhdlType(it.data(),getLine(),Entry::VARIABLE_SEC,VhdlDocGen::USE,it.data(),"_use_",Public); + } + } + s1="use "+s; + return s1; + } +} + +QCString variable_assignment_statement() : {QCString s,s1,s2;} +{ +[LOOKAHEAD(2) s=identifier() <COLON_T> {s+=":";}] + s1=target() <VARASSIGN_T> s2=expression() <SEMI_T> + {return s+s1+":="+s2+";";} + | + selected_variable_assignment() { return ""; } +} + +QCString variable_declaration() : {Token *tok=0;QCString s,s1,s2;} +{ +[ tok=<SHARED_T> ] <VARIABLE_T> s=identifier_list() <COLON_T> s1=subtype_indication() +[ <VARASSIGN_T> s2=expression() ] <SEMI_T> + +{ + int spec; + QCString val=" variable "+s+":"+s1+":="+s2+";"; + QCString it=s1+" "+s2; + if(tok != 0) + { + it.prepend(" shared "); + val.prepend(" shared"); + spec=VhdlDocGen::SHAREDVARIABLE; + } + else + spec=VhdlDocGen::SHAREDVARIABLE; + + addVhdlType(s.data(),getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public); + return val; + } + +} + +QCString wait_statement() : {QCString s,s1,s2,s3;Token *t=0;} +{ +[ s=identifier() <COLON_T> ] <WAIT_T> [ s1=sensitivity_clause() ] [ s2=condition_clause() ] [ s3=timeout_clause() ] <SEMI_T> +{ + if(t) s.append(":"); + return s+" wait "+s1+s2+s3+";"; +} +} + +QCString waveform() : {QCString s,s1;} +{ +s=waveform_element() (<COMMA_T> s1=waveform_element(){s+=","; s+=s1;})* { return s;} +| +<UNAFFECTED_T> { return " unaffected ";} + +} + +QCString waveform_element() : {QCString s,s1;} +{ + s=expression() [ <AFTER_T> s1=expression(){ s1.prepend(" after ");} ] + { return s+s1;} +//<NULL_T> [ <AFTER_T> expression() ] +} + +// ----------------------------------------------------------------- +// VHDL 2002 +// ----------------------------------------------------------------- + +QCString protected_type_body() :{ } +{ + try{ + <PROTECTED_T> <BODY_T> + protected_type_body_declarative_part() + + }catch(...){error_skipto(END_T);} + <END_T><PROTECTED_T> <BODY_T> [identifier()] {return "";} +} + +void protected_type_body_declarative_item() : { } + { + subprogram_declaration() + | subprogram_body() + | type_declaration() + | subtype_declaration() + | constant_declaration() + | variable_declaration() + | file_declaration() + | alias_declaration() + | + LOOKAHEAD( attribute_declaration()) + attribute_declaration() + | attribute_specification() + | use_clause() + | LOOKAHEAD(3) + group_template_declaration() + | group_declaration() + +} + +void protected_type_body_declarative_part() :{ } +{ + ( protected_type_body_declarative_item ())* +} + + +QCString protected_type_declaration() : { } + { + <PROTECTED_T> + try{ + protected_type_declarative_part() + }catch(...){error_skipto(END_T);} + <END_T><PROTECTED_T> [ identifier() ] { return "";} + } + + +void protected_type_declarative_item(): { } +{ + subprogram_specification() + | attribute_specification() + | use_clause() +} + +void protected_type_declarative_part() : {} +{ + (protected_type_declarative_item ()<SEMI_T>)* +} + +// ----------------------------------------------------------------- +// VHDL 2008 +// ----------------------------------------------------------------- + +QCString context_ref() : {QCString s;} +{ + <CONTEXT_T> s=identifier_list() <SEMI_T> + { + return "context "+s ; + } +} + + +void context_declaration(): {QCString s,s1;} +{ + <CONTEXT_T> s=identifier() <IS_T> { parse_sec=CONTEXT_SEC; } (s1=libustcont_stats())* <END_T> [ <CONTEXT_T> ][identifier()] <SEMI_T> + { + parse_sec=0; + addVhdlType(s.data(),getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public); + } +} + +QCString libustcont_stats(): {QCString s;} +{ + s=use_clause() { return s;} + | s=library_clause() { return s;} + | s=context_ref() { return s;} +} + + void package_instantiation_declaration() : {QCString s,s1,s2;} + { + <PACKAGE_T> s=identifier() <IS_T> <NEW_T> s1=name() s2=signature() [gen_assoc_list()] <SEMI_T> + { + QCString q=" is new "+s1+s2; + addVhdlType(s.data(),getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public); + } +} + +QCString interface_package_declaration(): {QCString s,s1;} +{ + <PACKAGE_T> s=identifier() <IS_T> <NEW_T> s1=name() [gen_assoc_list()] + { + current->name=s; + return "package "+s+" is new "+s1; + } +} + +QCString subprogram_instantiation_declaration():{QCString s,s1,s2;} +{ + <FUNCTION_T> s=identifier() <IS_T> <NEW_T> s1=name() s2=signature() [gen_assoc_list()] <SEMI_T> + { + QCString q= " is new "+s1+s2; + addVhdlType(s.data(),getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public); + return q; + } +} + + +void gen_assoc_list():{} +{ + <GENERIC_T> <MAP_T> <LPAREN_T> association_list()<RPAREN_T> +} + +void gen_interface_list() : {} +{ + <GENERIC_T><LPAREN_T> + { + //int u=s_str.iLine; + parse_sec=GEN_SEC; + } + interface_list() + { + // QCString vo=$3; + parse_sec=0; + } + <RPAREN_T> +} + +void case_scheme (): {} +{ + <CASE_T> expression() <GENERATE_T> when_stats() [LOOKAHEAD(3) ttend()] <END_T> + <GENERATE_T> generate_statement_body() <SEMI_T> +} + +void when_stats() : {} +{ + ( + <WHEN_T> [LOOKAHEAD(2) label() <COLON_T>] choices() <ARROW_T> generate_statement_body() + )+ +} + + +void ttend(): {} +{ + <END_T> [identifier()] <SEMI_T> + } + + + +void generate_statement_body() : {} +{ + <BEGIN_T> [block_declarative_part() <BEGIN_T>] (concurrent_statement())* +} + +QCString external_name(): {QCString s,s1,s2;} +{ + <SLSL_T> s=sig_stat() s1=external_pathname() <COLON_T> s2=subtype_indication() <RSRS_T> + { + QCString t="<<"+s; + QCString t1=s1+":"+s2+">>"; + return s+s1; + } +} + +QCString sig_stat(): {Token *t;} +{ + t=<CONSTANT_T> { return t->image.data(); } + | t=<SIGNAL_T> { return t->image.data(); } + | t=<VARIABLE_T> { return t->image.data(); } + +} + +QCString external_pathname(): {QCString s;} +{ + s=absolute_pathname() { return s;} + | s=relative_pathname() { return s;} + | s=package_path_name() { return s;} + } + +QCString absolute_pathname(): {QCString s,s1;} +{ + LOOKAHEAD(<DOT_T> pathname_element_list()) + <DOT_T> s=pathname_element_list() s1=identifier() { return "."+s+s1;} +| <DOT_T> s=identifier (){ return "."+s;} +} + +QCString relative_pathname():{QCString s,s1,s2;} +{ + s=neg_list() [LOOKAHEAD( pathname_element_list()) s1=pathname_element_list() ] s2=identifier() { return s+s1+s2;} +} + +QCString neg_list(): {QCString s;} +{ + (<NEG_T> <DOT_T>{s+="^.";})+ {return s; } +} + +QCString pathname_element ():{QCString s,s1;} +{ + s=identifier() [<LPAREN_T> s1=expression() <RPAREN_T>] + { + if(!s1.isEmpty()) + return s+"("+s1+")"; + + return s; + } + } + +QCString pathname_element_list():{QCString s,s1,s2;} +{ + ( s=pathname_element() <DOT_T> ) {s+=".";} (LOOKAHEAD(pathname_element() <DOT_T>) s1=pathname_element() <DOT_T> {s2+=s1;s2+="."; })* + { return s+s2; } +} + +QCString package_path_name():{QCString s;} +{ + <AT_T> s=name() { return "@"+s; } +} + +void conditional_signal_assignment_wave(): {} +{ + LOOKAHEAD(conditional_force_assignment()) + conditional_force_assignment() + |conditional_waveform_assignment() +} + +void conditional_waveform_assignment():{} +{ + target() <LESSTHAN_T> [LOOKAHEAD(1) delay_mechanism() ] waveform_element() <WHEN_T> expression() [else_wave_list()] <SEMI_T> + } + +void else_wave_list(): {} +{ +<ELSE_T> expression() [ <WHEN_T> expression()] +} + +void conditional_force_assignment(): {} +{ + target() <LESSTHAN_T> <FORCE_T> [inout_stat()] expression() <WHEN_T> [expression() else_stat()] <SEMI_T> +} + +void selected_signal_assignment_wave() : {} +{ + LOOKAHEAD(selected_force_assignment() ) + selected_force_assignment() +| selected_waveform_assignment() +} + +void selected_variable_assignment():{} +{ + <WITH_T> expression() <SELECT_T> [<Q_T>] select_name() <VARASSIGN_T> sel_var_list() // { $$=""; } +} + +void select_name(): {} +{ + LOOKAHEAD(aggregate()) + aggregate() + | name() + +} + +void selected_waveform_assignment():{} +{ + <WITH_T> expression() <SELECT_T> [<Q_T>] + target() <LESSTHAN_T> [delay_mechanism()] sel_wave_list() +} + +void selected_force_assignment():{} +{ +<WITH_T> expression() <SELECT_T> [<Q_T>] target() <LESSTHAN_T> <FORCE_T> + [inout_stat()] sel_var_list() +} + +void sel_var_list(): {} +{ + (expression() <WHEN_T> choices() (<COMMA_T>|<SEMI_T>))(LOOKAHEAD(expression() <WHEN_T>) expression() <WHEN_T> choices() (<COMMA_T>|<SEMI_T>))* + +} + + +void sel_wave_list() : {} +{ + waveform_element() <WHEN_T> choices() (LOOKAHEAD(1) <COMMA_T> sel_wave_list())* <SEMI_T> + // | sel_wave_list_1() +} + + + +void inout_stat(): {} +{ + <IN_T> + | <OUT_T> + } + +void else_stat(): {} +{ + (<ELSE_T> expression() [LOOKAHEAD(1) <WHEN_T> expression()])+ +} + + + +QCString interface_subprogram_declaration(): {QCString s;} +{ + s=iproc() { return s;} + | s=ifunc() { return s; } +} + +QCString iproc(): {QCString s,s1;} + { + <PROCEDURE_T> s=identifier() s1=param() + { + current->name=s; + return "procedure "+s+s1; + } + } + +QCString ifunc():{QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0;} +{ + + [t=<PURE_T> | t=<IMPURE_T> ] <FUNCTION_T> s=name() s1=param() <RETURN_T> s2=name() [t1=<IS_T> (s3=identifier() | t2=<BOX_T>)] + { + QCString q; + if(t) q=t->image.data(); + if(t2) s3="<>"; + if (!s3.isEmpty()) + { + s3.prepend(" is "); + } + current->name=s; + if (parse_sec==GEN_SEC) + { + QCString ss=q+" function "+s1+" return "+s2+s3; + int a=getLine(FUNCTION_T); + int b=getLine(PROCEDURE_T); + + if (a>b) b=a; + addVhdlType(current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Public); + } + currP=0;return ""; + } + + } + + +QCString param(): {QCString s,s1;Token *tok=0;} +{ +[ tok=<PARAMETER_T> ] { param_sec=PARAM_SEC; } + [ <LPAREN_T> s1=interface_list() <RPAREN_T>] + { + if(tok) + { + s = tok->image.data(); + param_sec=0; + } + return s+"("+s1+")"; + } + + } + + // ----------------------------------------------------------------- + // needed for inline (function/process/procedure) parsing + +void parseInline() : {} +{ + process_statement() + | subprogram_declaration() + } diff --git a/vhdlparser/vhdlparser.patch b/vhdlparser/vhdlparser.patch new file mode 100644 index 0000000..37cca10 --- /dev/null +++ b/vhdlparser/vhdlparser.patch @@ -0,0 +1,10 @@ +--- VhdlParser.h 2014-07-27 14:26:18.000000000 +0200 ++++ VhdlParser.h.new 2014-07-27 14:23:22.000000000 +0200 +@@ -6,6 +6,7 @@ + #include "TokenManager.h" + #include "VhdlParserTokenManager.h" + #include "VhdlParser.h" ++#include "vhdljjparser.h" + + #include "VhdlParserConstants.h" + #include "ErrorHandler.h" diff --git a/vhdlparser/vhdlparser.pro.in b/vhdlparser/vhdlparser.pro.in new file mode 100644 index 0000000..0232fd5 --- /dev/null +++ b/vhdlparser/vhdlparser.pro.in @@ -0,0 +1,33 @@ +TEMPLATE = lib +CONFIG = warn_on staticlib $extraopts +HEADERS = CharStream.h \ + ErrorHandler.h \ + JavaCC.h \ + ParseException.h \ + TokenManager.h \ + Token.h \ + vhdlstring.h \ + VhdlParser.h \ + VhdlParserConstants.h \ + VhdlParserTokenManager.h \ + TokenMgrError.h \ + VhdlParserIF.h \ + VhdlParserErrorHandler.hpp + +SOURCES = CharStream.cc \ + ParseException.cc \ + Token.cc \ + TokenMgrError.cc \ + VhdlParser.cc \ + VhdlParserTokenManager.cc \ + VhdlParserIF.cpp + +INCLUDEPATH = . ../src ../qtools generated_src/doxygen +#TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQ T_LITE_UNICODE + +#must enable -fexceptions because we have try catch blocks in VhdlParser.cc +TMAKE_CXXFLAGS +=-w -fexceptions -DQT_LITE_UNICODE +win32:TMAKE_CXXFLAGS += -fexceptions -DQT_NODLL +win32-g++:TMAKE_CXXFLAGS += -fexceptions -D__CYGWIN__ -DALL_STATIC +OBJECTS_DIR = ../objects/vhdlparser +DESTDIR = ../lib diff --git a/vhdlparser/vhdlstring.h b/vhdlparser/vhdlstring.h new file mode 100644 index 0000000..16e1d9a --- /dev/null +++ b/vhdlparser/vhdlstring.h @@ -0,0 +1,100 @@ +#ifndef VHDLSTRING_H +#define VHDLSTRING_H + +#include <stdio.h> +#include <string.h> + +/** @brief Minimal string class with std::string like behaviour that fulfills the JavaCC + * string requirements. + */ +class VhdlString +{ + public: + VhdlString() + { + init(); + } + VhdlString(const VhdlString &other) + { + m_str = (char*)malloc(other.m_len+1); + memcpy(m_str,other.m_str,other.m_len); + m_len = other.m_len; + m_str[m_len]=0; + } + VhdlString &operator=(const VhdlString &other) + { + if (this!=&other) + { + free(m_str); + m_str = (char*)malloc(other.m_len+1); + memcpy(m_str,other.m_str,other.m_len); + m_len = other.m_len; + m_str[m_len]=0; + } + return *this; + } + VhdlString(const char *s) + { + m_len = strlen(s); + m_str=(char*)malloc(m_len+1); + memcpy(m_str,s,m_len+1); + } + VhdlString(const char *s,int size) + { + m_str = (char*)malloc(size+1); + memcpy(m_str,s,size); + m_str[size]=0; + m_len=size; + } + ~VhdlString() + { + delete[] m_str; + } + VhdlString& append(const char *s,int size) + { + int oldlen = m_len; + m_len+=size+1; + if (m_len) + { + m_str = (char*)realloc(m_str,m_len); + memcpy(m_str+oldlen,s,m_len-oldlen-1); + m_str[m_len-1]=0; + } + return *this; + } + VhdlString& append(const char *s) + { + return append(s,strlen(s)); + } + VhdlString& append(const VhdlString &other) + { + return append(other.m_str,other.m_len); + } + VhdlString substr(int pos=0,int len=-1) + { + return VhdlString(m_str?m_str+pos:0,len==-1?m_len-pos:m_len); + } + int copy(char *s,int len,int pos=0) const + { + if (len==0) return 0; + if (pos>=m_len) { s[0]=0; return 0; } + int r=m_len<pos+len ? m_len-pos : len; + memcpy(s,m_str+pos,r); + return r; + } + const char *c_str() const { return m_str; } + const char *data() const { return m_str; } + int size() const { return m_len; } + int length() const { return m_len; } + char & operator[](int i) { return m_str[i]; } + const char &operator[](int i) const { return m_str[i]; } + void clear() { free(m_str); init(); } + VhdlString operator+=(char c) { char s[2]; s[0]=c; s[1]=0; return append(s); } + + private: + void init() { m_str=(char*)calloc(1,1); m_len=0; } + char *m_str; + int m_len; +}; + +#endif |