summaryrefslogtreecommitdiffstats
path: root/vhdlparser
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-08-02 10:09:32 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-08-02 10:09:32 (GMT)
commitbc7aedbff07ac657ef60ffca5423fe2d054962ca (patch)
tree48f2ed563e0e272f106cefcff352bb865f30fcc7 /vhdlparser
parentc9d816aaf20c24c624407ba1c2eb4e00eff0c02f (diff)
parent36122e49ed1d9e640b1ceca52536ec7c55e10474 (diff)
downloadDoxygen-bc7aedbff07ac657ef60ffca5423fe2d054962ca.zip
Doxygen-bc7aedbff07ac657ef60ffca5423fe2d054962ca.tar.gz
Doxygen-bc7aedbff07ac657ef60ffca5423fe2d054962ca.tar.bz2
Merge branch 'vhdl'
Diffstat (limited to 'vhdlparser')
-rw-r--r--vhdlparser/CharStream.cc212
-rw-r--r--vhdlparser/CharStream.h257
-rw-r--r--vhdlparser/ErrorHandler.h43
-rw-r--r--vhdlparser/JavaCC.h51
-rw-r--r--vhdlparser/JavaCC.h.in51
-rw-r--r--vhdlparser/Makefile.in40
-rw-r--r--vhdlparser/ParseException.cc186
-rw-r--r--vhdlparser/ParseException.h99
-rw-r--r--vhdlparser/Token.cc92
-rw-r--r--vhdlparser/Token.h116
-rw-r--r--vhdlparser/TokenManager.h33
-rw-r--r--vhdlparser/TokenMgrError.cc121
-rw-r--r--vhdlparser/TokenMgrError.h90
-rw-r--r--vhdlparser/VhdlParser.cc13051
-rw-r--r--vhdlparser/VhdlParser.h8944
-rw-r--r--vhdlparser/VhdlParserConstants.h944
-rw-r--r--vhdlparser/VhdlParserErrorHandler.hpp39
-rw-r--r--vhdlparser/VhdlParserIF.cpp56
-rw-r--r--vhdlparser/VhdlParserIF.h12
-rw-r--r--vhdlparser/VhdlParserTokenManager.cc3497
-rw-r--r--vhdlparser/VhdlParserTokenManager.h133
-rw-r--r--vhdlparser/vhdlparser.jj2758
-rw-r--r--vhdlparser/vhdlparser.patch10
-rw-r--r--vhdlparser/vhdlparser.pro.in33
-rw-r--r--vhdlparser/vhdlstring.h100
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