/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 7.0 */
/* JavaCCOptions:KEEP_LINE_COLUMN=true */
package org.apache.el.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 public fields .
*/
@SuppressWarnings("all" ) // Ignore warnings in generated code
public class ParseException extends Exception {
/**
* The version identifier for this Serializable class .
* Increment only if the < i > serialized < / i > form of the
* class changes .
*/
private static final long serialVersionUID = 1 L;
/**
* The end of line string for this machine .
*/
protected static String EOL = System.getProperty("line.separator" , "\n" );
/**
* 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 .
*/
public ParseException(Token currentTokenVal,
int [][] expectedTokenSequencesVal,
String[] tokenImageVal
)
{
super (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 .
*/
public ParseException() {
super ();
}
/** Constructor with message. */
public ParseException(String message) {
super (message);
}
/**
* This is the last token that has been consumed successfully . If
* this object has been created due to a parse error , the token
* following this token will ( therefore ) be the first error token .
*/
public 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 .
*/
public 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 interface .
*/
public String[] 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 static String initialise(Token currentToken,
int [][] expectedTokenSequences,
String[] tokenImage) {
StringBuilder expected = new StringBuilder();
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("..." );
}
expected.append(EOL).append(" " );
}
String retval = "Encountered \" ";
Token tok = currentToken.next;
for (int i = 0 ; i < maxSize; i++) {
if (i != 0 ) {
retval += " " ;
}
if (tok.kind == 0 ) {
retval += tokenImage[0 ];
break ;
}
retval += " " + tokenImage[tok.kind];
retval += " \" ";
retval += add_escapes(tok.image);
retval += " \" ";
tok = tok.next;
}
if (currentToken.next != null ) {
retval += "\" at line " + currentToken.next.beginLine + " , column " + currentToken.next.beginColumn;
}
retval += "." + EOL;
if (expectedTokenSequences.length == 0 ) {
// Nothing to add here
} else {
if (expectedTokenSequences.length == 1 ) {
retval += "Was expecting:" + EOL + " " ;
} else {
retval += "Was expecting one of:" + EOL + " " ;
}
retval += expected.toString();
}
return retval;
}
/**
* Used to convert raw characters to their escaped version
* when these raw version cannot be used as part of an ASCII
* string literal .
*/
static String add_escapes(String str) {
StringBuilder retval = new StringBuilder();
char ch;
for (int i = 0 ; i < str.length(); i++) {
switch (str.charAt(i))
{
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)) < 0 x20 || ch > 0 x7e) {
String s = "0000" + Integer.toString(ch, 16 );
retval.append("\\u" + s.substring(s.length() - 4 ));
} else {
retval.append(ch);
}
continue ;
}
}
return retval.toString();
}
}
/* JavaCC - OriginalChecksum=7b4787d8879bd4e4e79738c1d4a275eb (do not edit this line) */
Messung V0.5 in Prozent C=93 H=86 G=89
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-10-03)
¤
*© Formatika GbR, Deutschland