]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graphviz/src/org/simantics/graphviz/internal/parser/TokenMgrError.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graphviz / src / org / simantics / graphviz / internal / parser / TokenMgrError.java
1 /* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 5.0 */\r
2 /* JavaCCOptions: */\r
3 package org.simantics.graphviz.internal.parser;\r
4 \r
5 /** Token Manager Error. */\r
6 public class TokenMgrError extends Error\r
7 {\r
8 \r
9   /**\r
10    * The version identifier for this Serializable class.\r
11    * Increment only if the <i>serialized</i> form of the\r
12    * class changes.\r
13    */\r
14   private static final long serialVersionUID = 1L;\r
15 \r
16   /*\r
17    * Ordinals for various reasons why an Error of this type can be thrown.\r
18    */\r
19 \r
20   /**\r
21    * Lexical error occurred.\r
22    */\r
23   static final int LEXICAL_ERROR = 0;\r
24 \r
25   /**\r
26    * An attempt was made to create a second instance of a static token manager.\r
27    */\r
28   static final int STATIC_LEXER_ERROR = 1;\r
29 \r
30   /**\r
31    * Tried to change to an invalid lexical state.\r
32    */\r
33   static final int INVALID_LEXICAL_STATE = 2;\r
34 \r
35   /**\r
36    * Detected (and bailed out of) an infinite loop in the token manager.\r
37    */\r
38   static final int LOOP_DETECTED = 3;\r
39 \r
40   /**\r
41    * Indicates the reason why the exception is thrown. It will have\r
42    * one of the above 4 values.\r
43    */\r
44   int errorCode;\r
45 \r
46   /**\r
47    * Replaces unprintable characters by their escaped (or unicode escaped)\r
48    * equivalents in the given string\r
49    */\r
50   protected static final String addEscapes(String str) {\r
51     StringBuffer retval = new StringBuffer();\r
52     char ch;\r
53     for (int i = 0; i < str.length(); i++) {\r
54       switch (str.charAt(i))\r
55       {\r
56         case 0 :\r
57           continue;\r
58         case '\b':\r
59           retval.append("\\b");\r
60           continue;\r
61         case '\t':\r
62           retval.append("\\t");\r
63           continue;\r
64         case '\n':\r
65           retval.append("\\n");\r
66           continue;\r
67         case '\f':\r
68           retval.append("\\f");\r
69           continue;\r
70         case '\r':\r
71           retval.append("\\r");\r
72           continue;\r
73         case '\"':\r
74           retval.append("\\\"");\r
75           continue;\r
76         case '\'':\r
77           retval.append("\\\'");\r
78           continue;\r
79         case '\\':\r
80           retval.append("\\\\");\r
81           continue;\r
82         default:\r
83           if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {\r
84             String s = "0000" + Integer.toString(ch, 16);\r
85             retval.append("\\u" + s.substring(s.length() - 4, s.length()));\r
86           } else {\r
87             retval.append(ch);\r
88           }\r
89           continue;\r
90       }\r
91     }\r
92     return retval.toString();\r
93   }\r
94 \r
95   /**\r
96    * Returns a detailed message for the Error when it is thrown by the\r
97    * token manager to indicate a lexical error.\r
98    * Parameters :\r
99    *    EOFSeen     : indicates if EOF caused the lexical error\r
100    *    curLexState : lexical state in which this error occurred\r
101    *    errorLine   : line number when the error occurred\r
102    *    errorColumn : column number when the error occurred\r
103    *    errorAfter  : prefix that was seen before this error occurred\r
104    *    curchar     : the offending character\r
105    * Note: You can customize the lexical error message by modifying this method.\r
106    */\r
107   protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {\r
108     return("Lexical error at line " +\r
109           errorLine + ", column " +\r
110           errorColumn + ".  Encountered: " +\r
111           (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +\r
112           "after : \"" + addEscapes(errorAfter) + "\"");\r
113   }\r
114 \r
115   /**\r
116    * You can also modify the body of this method to customize your error messages.\r
117    * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not\r
118    * of end-users concern, so you can return something like :\r
119    *\r
120    *     "Internal Error : Please file a bug report .... "\r
121    *\r
122    * from this method for such cases in the release version of your parser.\r
123    */\r
124   public String getMessage() {\r
125     return super.getMessage();\r
126   }\r
127 \r
128   /*\r
129    * Constructors of various flavors follow.\r
130    */\r
131 \r
132   /** No arg constructor. */\r
133   public TokenMgrError() {\r
134   }\r
135 \r
136   /** Constructor with message and reason. */\r
137   public TokenMgrError(String message, int reason) {\r
138     super(message);\r
139     errorCode = reason;\r
140   }\r
141 \r
142   /** Full Constructor. */\r
143   public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {\r
144     this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);\r
145   }\r
146 }\r
147 /* JavaCC - OriginalChecksum=d0257806af0a9f8026ffba40f485ae93 (do not edit this line) */\r