summaryrefslogtreecommitdiffstats
path: root/vhdlparser/ParseException.cc
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-07-27 14:31:34 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-08-02 10:05:26 (GMT)
commit36122e49ed1d9e640b1ceca52536ec7c55e10474 (patch)
treec61b21164b0445eb23631aa812810f4712cd8f61 /vhdlparser/ParseException.cc
parent6a60477b418e21dbadd3e62dc557a038e319581b (diff)
downloadDoxygen-36122e49ed1d9e640b1ceca52536ec7c55e10474.zip
Doxygen-36122e49ed1d9e640b1ceca52536ec7c55e10474.tar.gz
Doxygen-36122e49ed1d9e640b1ceca52536ec7c55e10474.tar.bz2
New VHDL parser implementation
Diffstat (limited to 'vhdlparser/ParseException.cc')
-rw-r--r--vhdlparser/ParseException.cc186
1 files changed, 186 insertions, 0 deletions
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) */