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]

Reply via email to