tmiller 01/06/06 10:49:03
Modified: java/src/org/apache/xalan/xsltc/compiler Parser.java
Template.java xpath.cup
Log:
unified Parser error reporting to use Mortens
reportError routine
Revision Changes Path
1.8 +60 -72
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Parser.java
Index: Parser.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Parser.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Parser.java 2001/06/06 14:32:41 1.7
+++ Parser.java 2001/06/06 17:48:56 1.8
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: Parser.java,v 1.7 2001/06/06 14:32:41 morten Exp $
+ * @(#)$Id: Parser.java,v 1.8 2001/06/06 17:48:56 tmiller Exp $
*
* The Apache Software License, Version 1.1
*
@@ -245,7 +245,8 @@
if (prefix.equals("xmlns") == false) {
namespace = _symbolTable.lookupNamespace(prefix);
if (namespace == null) {
- addError(new ErrorMsg(ErrorMsg.NSPUNDEF_ERR, prefix));
+ reportError(Constants.ERROR,
+ new ErrorMsg(ErrorMsg.NSPUNDEF_ERR, prefix));
Exception e = new Exception();
e.printStackTrace();
}
@@ -344,7 +345,8 @@
while (elements.hasMoreElements()) {
Object child = elements.nextElement();
if (child instanceof Text) {
- addError(new ErrorMsg(TEXT_NODE_ERROR));
+ reportError(Constants.ERROR,
+ new ErrorMsg(TEXT_NODE_ERROR));
}
}
if (!errorsFound()) {
@@ -353,7 +355,7 @@
}
}
catch (TypeCheckError e) {
- addError(new ErrorMsg(e.toString()));
+ reportError(Constants.ERROR, new ErrorMsg(e.toString()));
}
}
@@ -385,19 +387,22 @@
return (SyntaxTreeNode)getStylesheet(_root);
}
catch (ParserConfigurationException e) {
- addError(new ErrorMsg("JAXP parser not configured correctly"));
+ reportError(Constants.ERROR,
+ new ErrorMsg("JAXP parser not configured correctly"));
}
catch (IOException e) {
- addError(new ErrorMsg(ErrorMsg.FILECANT_ERR, location));
+ reportError(Constants.ERROR,
+ new ErrorMsg(ErrorMsg.FILECANT_ERR, location));
}
catch (SAXParseException e){
- addError(new ErrorMsg(e.getMessage(),e.getLineNumber()));
+ reportError(Constants.ERROR,
+ new ErrorMsg(e.getMessage(),e.getLineNumber()));
}
catch (SAXException e) {
- addError(new ErrorMsg(e.getMessage()));
+ reportError(Constants.ERROR, new ErrorMsg(e.getMessage()));
}
catch (CompilerException e) {
- addError(new ErrorMsg(e.getMessage()));
+ reportError(Constants.ERROR, new ErrorMsg(e.getMessage()));
}
return null;
}
@@ -716,10 +721,12 @@
}
}
catch (ClassNotFoundException e) {
- addError(new ErrorMsg(CLASS_NOT_FOUND+className));
+ reportError(Constants.ERROR,
+ new ErrorMsg(CLASS_NOT_FOUND+className));
}
catch (Exception e) {
- addError(new ErrorMsg(INTERNAL_ERROR+e.getMessage()));
+ reportError(Constants.ERROR,
+ new ErrorMsg(INTERNAL_ERROR+e.getMessage()));
}
}
else {
@@ -821,7 +828,8 @@
return node;
}
}
- addError(new ErrorMsg(ErrorMsg.XPATHPAR_ERR, line, expression));
+ reportError(Constants.ERROR,
+ new ErrorMsg(ErrorMsg.XPATHPAR_ERR, line, expression));
}
catch (Exception e) {
if (_xsltc.debug()) {
@@ -841,67 +849,20 @@
return _errors.size() > 0;
}
- /**
- * Adds an error to the vector containing compile-time errors.
- */
- public void addError(ErrorMsg error) {
- _errors.addElement(error);
- }
-
- public void addFatalError(String message) {
- _errors.addElement(new ErrorMsg(message));
- // support for TrAX Error Listener
- if (_errorListener != null ) {
- postErrorToListener(message);
- }
- }
-
- /**
- * inform TrAX error listener of this error
- */
- private void postErrorToListener(String msg) {
- try {
- _errorListener.error(new TransformerException(
- "Stylesheet Parsing Error: " + msg));
- } catch (TransformerException e) {
- // TBD
- }
- }
-
- /**
- * Prints all compile-time warnings
- */
- public void addWarning(ErrorMsg msg) {
- _warnings.addElement(msg);
- }
public void internalError() {
Exception e = new Exception();
e.printStackTrace();
- addFatalError("Internal compiler error.\n"+
- "Please report to [EMAIL PROTECTED]"+
- "(include stack trace)");
+ reportError(Constants.INTERNAL,
+ new ErrorMsg("Internal compiler error.\n"+
+ "Please report to [EMAIL PROTECTED]"+
+ "(include stack trace)"));
}
public void notYetImplemented(String message) {
- addWarning(new ErrorMsg("Unsupported: "+message));
- // support for TrAX Error Listener
- if (_errorListener != null ) {
- postWarningToListener(message);
- }
+ reportError(Constants.UNSUPPORTED, new ErrorMsg(message));
}
- /**
- * inform TrAX error listener of this warning
- */
- private void postWarningToListener(String msg) {
- try {
- _errorListener.warning(new TransformerException(
- "Stylesheet Parsing Warning: " + msg));
- } catch (TransformerException e) {
- // TBD
- }
- }
/**
* Prints all compile-time errors
@@ -932,33 +893,60 @@
/**
* Suggested common error handler - not in use yet!!!
*/
+// JUMP
public void reportError(final int category, final ErrorMsg error) {
try {
switch (category) {
+ case Constants.INTERNAL:
// Unexpected internal errors, such as null-ptr exceptions, etc.
// Immediately terminates compilation, no translet produced
- case Constants.INTERNAL:
+ _errors.addElement(error);
+ if (_errorListener != null) {
+ _errorListener.fatalError(new TransformerException(
+ error.toString()));
+ }
+ break;
+ case Constants.UNSUPPORTED:
// XSLT elements that are not implemented and unsupported ext.
// Immediately terminates compilation, no translet produced
- case Constants.UNSUPPORTED:
+ _errors.addElement(error);
+ if (_errorListener != null) {
+ final String msg = error.toString();
+ _errorListener.fatalError(new TransformerException(
+ "Not Implemented, Unsupported Extension: " +
+ msg));
+ }
+
+ break;
+ case Constants.FATAL:
// Fatal error in the stylesheet input (parsing or content)
// Immediately terminates compilation, no translet produced
- case Constants.FATAL:
+
+ _errors.addElement(error);
+ if (_errorListener != null ) {
+ final String msg = error.toString();
+ _errorListener.fatalError(new TransformerException(
+ "Stylesheet Parsing Fatal Error: " + msg));
+ }
+ break;
+ case Constants.ERROR:
// Other error in the stylesheet input (parsing or content)
// Does not terminate compilation, no translet produced
- case Constants.ERROR:
- // Other error in the stylesheet input (content errors only)
- // Does not terminate compilation, a translet is produced
_errors.addElement(error);
if (_errorListener != null) {
final String msg = error.toString();
- _errorListener.error(new TransformerException(msg));
+ _errorListener.error(new TransformerException(
+ "Stylesheet Parsing Error: " + msg));
}
+ break;
case Constants.WARNING:
+ // Other error in the stylesheet input (content errors only)
+ // Does not terminate compilation, a translet is produced
_warnings.addElement(error);
if (_errorListener != null) {
final String msg = error.toString();
- _errorListener.warning(new TransformerException(msg));
+ _errorListener.warning(new TransformerException(
+ "Stylesheet Parsing Warning: " + msg));
}
break;
}
1.7 +3 -2
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Template.java
Index: Template.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Template.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Template.java 2001/06/06 14:32:43 1.6
+++ Template.java 2001/06/06 17:48:58 1.7
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: Template.java,v 1.6 2001/06/06 14:32:43 morten Exp $
+ * @(#)$Id: Template.java,v 1.7 2001/06/06 17:48:58 tmiller Exp $
*
* The Apache Software License, Version 1.1
*
@@ -242,7 +242,8 @@
if (_name != null) {
Template other = parser.getSymbolTable().addTemplate(this);
if (!resolveNamedTemplates(other, parser)) {
- parser.addError(new ErrorMsg(ErrorMsg.TMPREDEF_ERR,_name,this));
+ parser.reportError( Constants.ERROR,
+ new ErrorMsg(ErrorMsg.TMPREDEF_ERR,_name,this));
}
}
1.3 +10 -5
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/xpath.cup
Index: xpath.cup
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/xpath.cup,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xpath.cup 2001/06/06 10:45:46 1.2
+++ xpath.cup 2001/06/06 17:48:59 1.3
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: xpath.cup,v 1.2 2001/06/06 10:45:46 morten Exp $
+ * @(#)$Id: xpath.cup,v 1.3 2001/06/06 17:48:59 tmiller Exp $
*
* Copyright 2000 Sun Microsystems, Inc. All Rights Reserved.
*
@@ -111,7 +111,7 @@
}
catch (IllegalCharException e) {
addError(new ErrorMsg("Illegal character '" + e.getMessage() +
- "' in XPath expression.", lineNumber));
+ "' in XPath expression.", lineNumber));
}
return null;
}
@@ -131,8 +131,9 @@
}
public final void addError(ErrorMsg error) {
- _parser.addError(error);
- }
+ //_parser.addError(error);
+ _parser.reportError(Constants.ERROR, error);
+ }
public void report_error(String message, Object info) {
// empty
@@ -617,7 +618,11 @@
RESULT = new ParameterRef((Param)node);
}
else {
- node.getParser().addFatalError("Cannot resolve variable
or parameter feference to "+varName);
+ //node.getParser().addFatalError("Cannot resolve
variable or parameter feference to "+varName);
+ node.getParser().reportError(Constants.FATAL,
+ new ErrorMsg(
+ "Cannot resolve variable or parameter feference to "+
+ varName));
}
}
else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]