morten      01/10/30 00:42:57

  Modified:    java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
                        AttributeSet.java AttributeValueTemplate.java
                        BinOpExpr.java CallTemplate.java ConcatCall.java
                        ContainsCall.java CopyOf.java
                        DecimalFormatting.java DocumentCall.java
                        ElementAvailableCall.java Expression.java
                        ForEach.java FormatNumberCall.java
                        FunctionAvailableCall.java FunctionCall.java
                        If.java Import.java Include.java Instruction.java
                        Key.java Output.java Param.java Parser.java
                        ProcessingInstruction.java RelationalExpr.java
                        StartsWithCall.java StringCall.java Stylesheet.java
                        Template.java TopLevelElement.java
                        TransletOutput.java UnsupportedElement.java
                        UseAttributeSets.java ValueOf.java Variable.java
                        VariableBase.java When.java Whitespace.java
                        WithParam.java XslAttribute.java XslElement.java
                        xpath.cup
               java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java
  Log:
  Moved all error messages from the various source files into the ErrorMsg
  class in the compiler/util directory.
  PR:           n/a
  Obtained from:        n/a
  Submitted by: [EMAIL PROTECTED]
  Reviewed by:  [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.8       +4 -6      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyTemplates.java
  
  Index: ApplyTemplates.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ApplyTemplates.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ApplyTemplates.java       2001/10/05 09:47:55     1.7
  +++ ApplyTemplates.java       2001/10/30 08:42:55     1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ApplyTemplates.java,v 1.7 2001/10/05 09:47:55 morten Exp $
  + * @(#)$Id: ApplyTemplates.java,v 1.8 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -126,9 +126,7 @@
                typeCheckContents(stable); // with-params
                return Type.Void;
            }
  -         String msg = "Unsupported type for <xsl:apply-templates select='"+
  -             _type+"'/>";
  -         throw new TypeCheckError(new ErrorMsg(msg));
  +         throw new TypeCheckError(this);
        }
        else {
            typeCheckContents(stable);          // with-params
  @@ -173,8 +171,8 @@
        if ((_type != null) && (_type instanceof ResultTreeType)) {
            // <xsl:sort> cannot be applied to a result tree - issue warning
            if (sortObjects.size() > 0) {
  -             ErrorMsg msg = new ErrorMsg(ErrorMsg.TREESORT_ERR);
  -             getParser().reportError(WARNING, msg);
  +             ErrorMsg err = new ErrorMsg(ErrorMsg.RESULT_TREE_SORT_ERR,this);
  +             getParser().reportError(WARNING, err);
            }
            // Put the result tree (a DOM adapter) on the stack
            _select.translate(classGen, methodGen);     
  
  
  
  1.8       +4 -11     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeSet.java
  
  Index: AttributeSet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeSet.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AttributeSet.java 2001/08/08 10:57:05     1.7
  +++ AttributeSet.java 2001/10/30 08:42:55     1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: AttributeSet.java,v 1.7 2001/08/08 10:57:05 morten Exp $
  + * @(#)$Id: AttributeSet.java,v 1.8 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -78,12 +78,6 @@
   
   final class AttributeSet extends TopLevelElement {
   
  -    // Error messages
  -    private static final String NO_NAME_ERROR =
  -     "Attribute set missing 'name' attribute.";
  -    private static final String BASTARD_ERROR =
  -     "Attribute sets can only have <xsl:attribute> child elements.";
  -
       // This prefix is used for the method name of attribute set methods
       private static final String AttributeSetPrefix = "$as$";
       
  @@ -126,8 +120,8 @@
        
        // Get this attribute set's name
        _name = parser.getQName(getAttribute("name"));
  -     if ((_name == null) || (_name.equals(Constants.EMPTYSTRING))) {
  -         final ErrorMsg msg = new ErrorMsg(NO_NAME_ERROR, getLineNumber());
  +     if ((_name == null) || (_name.equals(EMPTYSTRING))) {
  +         ErrorMsg msg = new ErrorMsg(ErrorMsg.UNNAMED_ATTRIBSET_ERR, this);
            parser.reportError(Constants.ERROR, msg);
        }
   
  @@ -148,8 +142,7 @@
                child.parseContents(parser);
            }
            else {
  -             final ErrorMsg msg =
  -                 new ErrorMsg(BASTARD_ERROR, getLineNumber());
  +             ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGAL_CHILD_ERR, this);
                parser.reportError(Constants.ERROR, msg);
            }
        }
  
  
  
  1.3       +16 -8     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeValueTemplate.java
  
  Index: AttributeValueTemplate.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/AttributeValueTemplate.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AttributeValueTemplate.java       2001/06/06 10:44:39     1.2
  +++ AttributeValueTemplate.java       2001/10/30 08:42:55     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: AttributeValueTemplate.java,v 1.2 2001/06/06 10:44:39 morten Exp 
$
  + * @(#)$Id: AttributeValueTemplate.java,v 1.3 2001/10/30 08:42:55 morten Exp 
$
    *
    * The Apache Software License, Version 1.1
    *
  @@ -73,9 +73,9 @@
   final class AttributeValueTemplate extends AttributeValue {
   
       public AttributeValueTemplate(String value, Parser parser) {
  -     check(value);
  -     parseAVTemplate(0, value, parser);
        setParser(parser);
  +     if (check(value, parser))
  +         parseAVTemplate(0, value, parser);
       }
   
       private void parseAVTemplate(final int start, String text, Parser 
parser) {
  @@ -195,9 +195,13 @@
        }
       }
   
  -    private void check(String value) {
  +    private void reportError(String value, Parser parser) {
  +     reportError(getParent(), parser, ErrorMsg.ATTR_VAL_TEMPLATE_ERR, value);
  +    }
  +
  +    private boolean check(String value, Parser parser) {
        // !!! how about quoted/escaped braces?
  -     if (value == null) return;
  +     if (value == null) return true;
   
        final char[] chars = value.toCharArray();
        int level = 0;
  @@ -223,10 +227,14 @@
            case 1:
                continue;
            default:
  -             throw new Error("bad AttributeValueTemplate: " + value);
  +             reportError(value, parser);
  +             return false;
            }
  +     }
  +     if (level != 0) {
  +         reportError(value, parser);
  +         return false;
        }
  -     if (level != 0)
  -         throw new Error("bad AttributeValueTemplate: " + value);
  +     return true;
       }
   }
  
  
  
  1.5       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BinOpExpr.java
  
  Index: BinOpExpr.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/BinOpExpr.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BinOpExpr.java    2001/10/29 11:47:25     1.4
  +++ BinOpExpr.java    2001/10/30 08:42:55     1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: BinOpExpr.java,v 1.4 2001/10/29 11:47:25 morten Exp $
  + * @(#)$Id: BinOpExpr.java,v 1.5 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -136,7 +136,7 @@
            il.append(_type.REM());
            break;
        default:
  -         final ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLBINOP_ERR, this);
  +         ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGAL_BINARY_OP_ERR, this);
            getParser().reportError(Constants.ERROR, msg);
        }
       }
  
  
  
  1.8       +3 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CallTemplate.java
  
  Index: CallTemplate.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CallTemplate.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- CallTemplate.java 2001/10/18 10:29:07     1.7
  +++ CallTemplate.java 2001/10/30 08:42:55     1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: CallTemplate.java,v 1.7 2001/10/18 10:29:07 morten Exp $
  + * @(#)$Id: CallTemplate.java,v 1.8 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -100,8 +100,8 @@
            typeCheckContents(stable);
        }
        else {
  -         ErrorMsg errorMsg = new ErrorMsg(ErrorMsg.TMPUNDEF_ERR, _name);
  -         throw new TypeCheckError(errorMsg);
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.TEMPLATE_UNDEF_ERR,_name,this);
  +         throw new TypeCheckError(err);
        }
        return Type.Void;
       }
  
  
  
  1.3       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ConcatCall.java
  
  Index: ConcatCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ConcatCall.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ConcatCall.java   2001/06/06 10:44:46     1.2
  +++ ConcatCall.java   2001/10/30 08:42:55     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ConcatCall.java,v 1.2 2001/06/06 10:44:46 morten Exp $
  + * @(#)$Id: ConcatCall.java,v 1.3 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -93,7 +93,7 @@
        
        switch (nArgs) {
        case 0:
  -         il.append(new PUSH(cpg, Constants.EMPTYSTRING));
  +         il.append(new PUSH(cpg, EMPTYSTRING));
            break;
            
        case 1:
  
  
  
  1.3       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ContainsCall.java
  
  Index: ContainsCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ContainsCall.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ContainsCall.java 2001/06/19 10:44:09     1.2
  +++ ContainsCall.java 2001/10/30 08:42:55     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ContainsCall.java,v 1.2 2001/06/19 10:44:09 morten Exp $
  + * @(#)$Id: ContainsCall.java,v 1.3 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -97,7 +97,7 @@
   
        // Check that the function was passed exactly two arguments
        if (argumentCount() != 2) {
  -         throw new TypeCheckError(ErrorMsg.FUNRESOL_ERR, getName());
  +         throw new TypeCheckError(ErrorMsg.ILLEGAL_ARG_ERR, getName(), this);
        }
   
        // The first argument must be a String, or cast to a String
  
  
  
  1.9       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CopyOf.java
  
  Index: CopyOf.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CopyOf.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CopyOf.java       2001/10/02 11:17:32     1.8
  +++ CopyOf.java       2001/10/30 08:42:55     1.9
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: CopyOf.java,v 1.8 2001/10/02 11:17:32 morten Exp $
  + * @(#)$Id: CopyOf.java,v 1.9 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -86,7 +86,7 @@
        _select = parser.parseExpression(this, "select", null);
           // make sure required attribute(s) have been set
           if (_select.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "select");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "select");
            return;
           }
       }
  
  
  
  1.6       +3 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DecimalFormatting.java
  
  Index: DecimalFormatting.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DecimalFormatting.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DecimalFormatting.java    2001/10/18 09:43:44     1.5
  +++ DecimalFormatting.java    2001/10/30 08:42:55     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DecimalFormatting.java,v 1.5 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: DecimalFormatting.java,v 1.6 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -103,7 +103,7 @@
        // Check if a set of symbols has already been registered under this name
        SymbolTable stable = parser.getSymbolTable();
        if (stable.getDecimalFormatting(_name) != null)
  -         reportWarning(this, parser, ErrorMsg.DFSREDEF_ERR,_name.toString());
  +         reportWarning(this, parser, 
ErrorMsg.SYMBOLS_REDEF_ERR,_name.toString());
        else
            stable.addDecimalFormatting(_name, this);
       }
  @@ -222,7 +222,7 @@
        // Push the format name, which is empty, on the stack
        // for call to addDecimalFormat()
        il.append(classGen.loadTranslet());
  -     il.append(new PUSH(cpg, Constants.EMPTYSTRING));
  +     il.append(new PUSH(cpg, EMPTYSTRING));
   
        // Manufacture a DecimalFormatSymbols on the stack
        // for call to addDecimalFormat()
  
  
  
  1.11      +6 -7      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DocumentCall.java
  
  Index: DocumentCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DocumentCall.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DocumentCall.java 2001/10/29 11:47:25     1.10
  +++ DocumentCall.java 2001/10/30 08:42:55     1.11
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DocumentCall.java,v 1.10 2001/10/29 11:47:25 morten Exp $
  + * @(#)$Id: DocumentCall.java,v 1.11 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -94,7 +94,7 @@
        // At least one argument - two at most
        final int ac = argumentCount();
        if ((ac < 1) || (ac > 2)) {
  -         ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGARG_ERR, this);
  +         ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGAL_ARG_ERR, this);
            throw new TypeCheckError(msg);
        }
   
  @@ -102,14 +102,13 @@
        _uri = argument(0);
        if (_uri instanceof LiteralExpr) {
            LiteralExpr expr = (LiteralExpr)_uri;
  -         if (expr.getValue().equals(Constants.EMPTYSTRING)) {
  +         if (expr.getValue().equals(EMPTYSTRING)) {
                Stylesheet stylesheet = getStylesheet();
                if (stylesheet == null) {
  -                 ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGARG_ERR, this);
  +                 ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGAL_ARG_ERR, this);
                    throw new TypeCheckError(msg);
                }
  -             _uri = new LiteralExpr(stylesheet.getSystemId(),
  -                                    Constants.EMPTYSTRING);
  +             _uri = new LiteralExpr(stylesheet.getSystemId(), EMPTYSTRING);
            }
        }
   
  @@ -122,7 +121,7 @@
        if (ac == 2) {
            _base = argument(1);
            if (!_base.typeCheck(stable).identicalTo(Type.NodeSet)) {
  -             ErrorMsg msg = new ErrorMsg(ErrorMsg.DOCUMARG_ERR, this);
  +             ErrorMsg msg = new ErrorMsg(ErrorMsg.DOCUMENT_ARG_ERR, this);
                throw new TypeCheckError(msg);
            }
        }
  
  
  
  1.3       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ElementAvailableCall.java
  
  Index: ElementAvailableCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ElementAvailableCall.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ElementAvailableCall.java 2001/06/29 12:04:34     1.2
  +++ ElementAvailableCall.java 2001/10/30 08:42:55     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ElementAvailableCall.java,v 1.2 2001/06/29 12:04:34 morten Exp $
  + * @(#)$Id: ElementAvailableCall.java,v 1.3 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -82,7 +82,9 @@
        if (argument() instanceof LiteralExpr) {
            return _type = Type.Boolean;
        }
  -     throw new TypeCheckError(ErrorMsg.LITERALS_ERR, "element-available");
  +     ErrorMsg err = new ErrorMsg(ErrorMsg.NEED_LITERAL_ERR,
  +                                 "element-available", this);
  +     throw new TypeCheckError(err);
       }
   
       /**
  
  
  
  1.7       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Expression.java
  
  Index: Expression.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Expression.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Expression.java   2001/07/31 09:11:51     1.6
  +++ Expression.java   2001/10/30 08:42:55     1.7
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Expression.java,v 1.6 2001/07/31 09:11:51 morten Exp $
  + * @(#)$Id: Expression.java,v 1.7 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -113,7 +113,9 @@
        * Translate this node into JVM bytecodes.
        */
       public void translate(ClassGenerator classGen, MethodGenerator 
methodGen) {
  -     getParser().notYetImplemented("expression: " + getClass());
  +     ErrorMsg msg = new ErrorMsg(ErrorMsg.NOT_IMPLEMENTED_ERR,
  +                                 getClass(), this);
  +     getParser().reportError(FATAL, msg);
       }
        
       /**
  
  
  
  1.11      +4 -5      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForEach.java
  
  Index: ForEach.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ForEach.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ForEach.java      2001/10/09 12:08:09     1.10
  +++ ForEach.java      2001/10/30 08:42:55     1.11
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ForEach.java,v 1.10 2001/10/09 12:08:09 morten Exp $
  + * @(#)$Id: ForEach.java,v 1.11 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -96,7 +96,7 @@
   
           // make sure required attribute(s) have been set
           if (_select.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "select");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "select");
            return;
           }
       }
  @@ -113,8 +113,7 @@
            typeCheckContents(stable);
            return Type.Void;
        }
  -     String msg = "Unsupported type for <xsl:for-each select='"+_type+"'/>";
  -     throw new TypeCheckError(new ErrorMsg(msg));
  +     throw new TypeCheckError(this);
       }
   
       public void translate(ClassGenerator classGen, MethodGenerator 
methodGen) {
  @@ -141,7 +140,7 @@
   
            // <xsl:sort> cannot be applied to a result tree - issue warning
            if (sortObjects.size() > 0) {
  -             ErrorMsg msg = new ErrorMsg(ErrorMsg.TREESORT_ERR);
  +             ErrorMsg msg = new ErrorMsg(ErrorMsg.RESULT_TREE_SORT_ERR,this);
                getParser().reportError(WARNING, msg);
            }
   
  
  
  
  1.4       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FormatNumberCall.java
  
  Index: FormatNumberCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FormatNumberCall.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FormatNumberCall.java     2001/06/06 10:44:58     1.3
  +++ FormatNumberCall.java     2001/10/30 08:42:55     1.4
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: FormatNumberCall.java,v 1.3 2001/06/06 10:44:58 morten Exp $
  + * @(#)$Id: FormatNumberCall.java,v 1.4 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -124,7 +124,7 @@
        
        il.append(classGen.loadTranslet());
        if (_name == null) {
  -         il.append(new PUSH(cpg, Constants.EMPTYSTRING));
  +         il.append(new PUSH(cpg, EMPTYSTRING));
        }
        else {
            _name.translate(classGen, methodGen);
  
  
  
  1.4       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionAvailableCall.java
  
  Index: FunctionAvailableCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionAvailableCall.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FunctionAvailableCall.java        2001/06/29 12:04:34     1.3
  +++ FunctionAvailableCall.java        2001/10/30 08:42:55     1.4
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: FunctionAvailableCall.java,v 1.3 2001/06/29 12:04:34 morten Exp $
  + * @(#)$Id: FunctionAvailableCall.java,v 1.4 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -82,7 +82,9 @@
        if (argument() instanceof LiteralExpr) {
            return _type = Type.Boolean;
        }
  -     throw new TypeCheckError(ErrorMsg.LITERALS_ERR, "function-available");
  +     ErrorMsg err = new ErrorMsg(ErrorMsg.NEED_LITERAL_ERR,
  +                                 "function-available", this);
  +     throw new TypeCheckError(err);
       }
   
       /**
  
  
  
  1.10      +12 -14    
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionCall.java
  
  Index: FunctionCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionCall.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- FunctionCall.java 2001/10/26 10:11:11     1.9
  +++ FunctionCall.java 2001/10/30 08:42:55     1.10
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: FunctionCall.java,v 1.9 2001/10/26 10:11:11 morten Exp $
  + * @(#)$Id: FunctionCall.java,v 1.10 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -224,7 +224,7 @@
                 */
                final Parser parser = getParser();
                if (parser != null) {
  -                 reportWarning(this ,parser, ErrorMsg.FUNRESOL_ERR,
  +                 reportWarning(this, parser, ErrorMsg.FUNCTION_RESOLVE_ERR,
                                  _fname.toString());
                }
                unresolvedExternal = true;
  @@ -280,8 +280,8 @@
        
        if (methods == null) {
            // Method not found in this class
  -         throw new TypeCheckError(ErrorMsg.METUNDEF_ERR, 
  -                                  _fname.getLocalPart());
  +         final String name = _fname.getLocalPart();
  +         throw new TypeCheckError(ErrorMsg.METHOD_NOT_FOUND_ERR, name);
        }
   
        final int nMethods = methods.size();
  @@ -316,8 +316,7 @@
            }
        }
   
  -     StringBuffer buf = new StringBuffer("Attempted to call method ");
  -     buf.append(_className);
  +     final StringBuffer buf = new StringBuffer(_className);
        buf.append('.');
        buf.append(_fname.getLocalPart());
        buf.append('(');
  @@ -327,11 +326,8 @@
            if (a < (nArgs-1)) buf.append(", ");
        }
        buf.append(");");
  -     getParser().reportError(Constants.WARNING,new ErrorMsg(buf.toString()));
  -
  -     throw new TypeCheckError(ErrorMsg.CANNOTCV_ERR, 
  -                              _fname.getLocalPart(),
  -                              _className);
  +     final String args = buf.toString();
  +     throw new TypeCheckError(ErrorMsg.ARGUMENT_CONVERSION_ERR, args);
       }
   
       /**
  @@ -493,7 +489,7 @@
                final Class clazz = Class.forName(_className);
                if (clazz == null) {
                    final ErrorMsg msg =
  -                     new ErrorMsg(ErrorMsg.CLSUNDEF_ERR, _className);
  +                     new ErrorMsg(ErrorMsg.CLASS_NOT_FOUND_ERR, _className);
                    getParser().reportError(Constants.ERROR, msg);
                }
                else {
  @@ -519,7 +515,7 @@
            }
            catch (ClassNotFoundException e) {
                final ErrorMsg msg =
  -                 new ErrorMsg(ErrorMsg.CLSUNDEF_ERR, _className);
  +                 new ErrorMsg(ErrorMsg.CLASS_NOT_FOUND_ERR, _className);
                getParser().reportError(Constants.ERROR, msg);
            }
        }
  @@ -569,7 +565,9 @@
                return "V";
            }
            else {
  -             throw new Error("unknown type in getSignature");
  +             final String name = clazz.toString();
  +             ErrorMsg err = new ErrorMsg(ErrorMsg.UNKNOWN_SIG_TYPE_ERR,name);
  +             throw new Error(err.toString());
            }
        }
        else {
  
  
  
  1.8       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/If.java
  
  Index: If.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/If.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- If.java   2001/08/01 11:52:58     1.7
  +++ If.java   2001/10/30 08:42:55     1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: If.java,v 1.7 2001/08/01 11:52:58 morten Exp $
  + * @(#)$Id: If.java,v 1.8 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -98,7 +98,7 @@
   
           // Make sure required attribute(s) have been set
           if (_test.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "test");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "test");
            return;
           }
   
  
  
  
  1.12      +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Import.java
  
  Index: Import.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Import.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Import.java       2001/10/25 13:13:53     1.11
  +++ Import.java       2001/10/30 08:42:55     1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Import.java,v 1.11 2001/10/25 13:13:53 morten Exp $
  + * @(#)$Id: Import.java,v 1.12 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -92,7 +92,7 @@
        try {
            String docToLoad = getAttribute("href");
            if (context.checkForLoop(docToLoad)) {
  -             final int errno = ErrorMsg.CIRCULAR_INC;
  +             final int errno = ErrorMsg.CIRCULAR_INCLUDE_ERR;
                final ErrorMsg msg = new ErrorMsg(errno, docToLoad, this);
                parser.reportError(Constants.FATAL, msg);
                return;
  
  
  
  1.11      +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Include.java
  
  Index: Include.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Include.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Include.java      2001/10/25 13:13:53     1.10
  +++ Include.java      2001/10/30 08:42:55     1.11
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Include.java,v 1.10 2001/10/25 13:13:53 morten Exp $
  + * @(#)$Id: Include.java,v 1.11 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -91,7 +91,7 @@
        try {
            String docToLoad = getAttribute("href");
            if (context.checkForLoop(docToLoad)) {
  -             final int errno = ErrorMsg.CIRCULAR_INC;
  +             final int errno = ErrorMsg.CIRCULAR_INCLUDE_ERR;
                final ErrorMsg msg = new ErrorMsg(errno, docToLoad, this);
                parser.reportError(Constants.FATAL, msg);
                return;
  
  
  
  1.2       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Instruction.java
  
  Index: Instruction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Instruction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Instruction.java  2001/04/17 18:51:32     1.1
  +++ Instruction.java  2001/10/30 08:42:55     1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Instruction.java,v 1.1 2001/04/17 18:51:32 sboag Exp $
  + * @(#)$Id: Instruction.java,v 1.2 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -77,6 +77,8 @@
        * Translate this node into JVM bytecodes.
        */
       public void translate(ClassGenerator classGen, MethodGenerator 
methodGen) {
  -     getParser().notYetImplemented("instruction: " + getClass());
  +     ErrorMsg msg = new ErrorMsg(ErrorMsg.NOT_IMPLEMENTED_ERR,
  +                                 getClass(), this);
  +     getParser().reportError(FATAL, msg);
       }
   }
  
  
  
  1.9       +6 -8      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Key.java
  
  Index: Key.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Key.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Key.java  2001/08/27 09:07:19     1.8
  +++ Key.java  2001/10/30 08:42:55     1.9
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Key.java,v 1.8 2001/08/27 09:07:19 morten Exp $
  + * @(#)$Id: Key.java,v 1.9 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -80,9 +80,6 @@
       private Expression _use;      // The nodes to include in the key
       private Type       _useType;  // The data type of the key's contents
   
  -    private final String USE_TYPE_ERR =
  -     "The use-attribute of <key> must be node, node-set, string or number.";
  -
       /**
        * Parse the <xsl:key> element and attributes
        * @param parser A reference to the stylesheet parser
  @@ -96,15 +93,15 @@
   
           // Make sure required attribute(s) have been set
           if (_name == null) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "name");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "name");
            return;
           }
           if (_match.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "match");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "match");
            return;
           }
           if (_use.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "use");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "use");
            return;
           }
       }
  @@ -144,7 +141,8 @@
        if (!(_useType instanceof StringType) &&
            !(_useType instanceof NodeSetType) &&
            !(_useType instanceof RealType)) {
  -         throw new TypeCheckError(new ErrorMsg(USE_TYPE_ERR));
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.KEY_USE_ATTR_ERR, this);
  +         throw new TypeCheckError(err);
        }
   
        return Type.Void;
  
  
  
  1.10      +2 -4      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Output.java
  
  Index: Output.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Output.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Output.java       2001/10/04 10:42:52     1.9
  +++ Output.java       2001/10/30 08:42:55     1.10
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Output.java,v 1.9 2001/10/04 10:42:52 morten Exp $
  + * @(#)$Id: Output.java,v 1.10 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -97,8 +97,6 @@
       // Some global constants
       private final static String STRING_SIG = "Ljava/lang/String;";
       private final static String ONE_DOT_ZERO_STRING = "1.0";
  -    private final static String OUTPUT_VERSION_ERROR =
  -     "Output XML document type should be 1.0";
   
       /**
        * Displays the contents of this element (for debugging)
  @@ -140,7 +138,7 @@
            _version = ONE_DOT_ZERO_STRING;
        }
        if (!_version.equals(ONE_DOT_ZERO_STRING)) {
  -         ErrorMsg msg = new ErrorMsg(OUTPUT_VERSION_ERROR);
  +         ErrorMsg msg = new ErrorMsg(ErrorMsg.OUTPUT_VERSION_ERR, this);
            parser.reportError(Constants.WARNING, msg);
        }
   
  
  
  
  1.18      +3 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Param.java
  
  Index: Param.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Param.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Param.java        2001/10/18 09:43:44     1.17
  +++ Param.java        2001/10/30 08:42:55     1.18
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Param.java,v 1.17 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: Param.java,v 1.18 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -121,8 +121,8 @@
                final int them = param.getImportPrecedence();
                // It is an error if the two have the same import precedence
                if (us == them) {
  -                 reportError(this, parser, ErrorMsg.VARREDEF_ERR,
  -                             _name.toString());
  +                 final String name = _name.toString();
  +                 reportError(this, parser, ErrorMsg.VARIABLE_REDEF_ERR,name);
                }
                // Ignore this if previous definition has higher precedence
                else if (them > us) {
  
  
  
  1.29      +72 -80    
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.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Parser.java       2001/10/18 11:59:04     1.28
  +++ Parser.java       2001/10/30 08:42:55     1.29
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Parser.java,v 1.28 2001/10/18 11:59:04 morten Exp $
  + * @(#)$Id: Parser.java,v 1.29 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -118,26 +118,6 @@
   
       private int _currentImportPrecedence = 1;
   
  -    private final static String CLASS_NOT_FOUND =
  -     "Internal XSLTC class not in classpath: ";
  -    private final static String INTERNAL_ERROR =
  -     "Unrecoverable XSLTC compilation error: ";
  -    private final static String UNSUPPORTED_XSL_ERROR =
  -     "Unsupported XSL element: ";
  -    private final static String INVALID_EXT_ERROR =
  -     "Invalid XSLTC extension: ";
  -    private final static String UNSUPPORTED_EXT_ERROR =
  -     "Unsupported XSLT extension: ";
  -    private final static String TEXT_NODE_ERROR =
  -     "Text data outside of top-level <xsl:stylesheet> element.";
  -    private final static String MISSING_HREF_ERROR =
  -     "Processing instruction <?xml-stylesheet ... ?> is missing href data.";
  -    private final static String MISSING_XSLT_URI_ERROR =
  -     "The input document is not a stylesheet "+
  -     "(the XSL namespace is not declared in the root element).";
  -    private final static String MISSING_XSLT_TARGET_ERROR =
  -     "Could not find stylesheet target ";
  -
       public Parser(XSLTC xsltc) {
        _xsltc = xsltc;
       }
  @@ -241,12 +221,13 @@
            // Get the namespace uri from the symbol table
            if (prefix.equals("xmlns") == false) {
                namespace = _symbolTable.lookupNamespace(prefix);
  -             if (namespace == null) namespace = Constants.EMPTYSTRING;
  +             if (namespace == null) namespace = EMPTYSTRING;
            }
            return getQName(namespace, prefix, localname);
        }
        else {
  -         return 
getQName(_symbolTable.lookupNamespace(Constants.EMPTYSTRING), null, stringRep);
  +         final String uri = _symbolTable.lookupNamespace(EMPTYSTRING);
  +         return getQName(uri, null, stringRep);
        }
       }
       
  @@ -262,16 +243,17 @@
            if (prefix.equals("xmlns") == false) {
                namespace = _symbolTable.lookupNamespace(prefix);
                if (namespace == null) {
  -                 reportError(Constants.ERROR,
  -                     new ErrorMsg(ErrorMsg.NSPUNDEF_ERR, prefix)); 
  -                 Exception e = new Exception();
  -                 e.printStackTrace();
  +                 final int line = _locator.getLineNumber();
  +                 ErrorMsg err = new ErrorMsg(ErrorMsg.NAMESPACE_UNDEF_ERR,
  +                                             line, prefix);
  +                 reportError(ERROR, err);
                }
            }
            return getQName(namespace, prefix, localname);
        }
        else {
  -         return 
getQName(_symbolTable.lookupNamespace(Constants.EMPTYSTRING), null, stringRep);
  +         final String defURI = _symbolTable.lookupNamespace(EMPTYSTRING);
  +         return getQName(defURI, null, stringRep);
        }
       }
   
  @@ -279,8 +261,8 @@
        if (namespace == null) {
            QName name = (QName)_qNames.get(localname);
            if (name == null) {
  -             _qNames.put(localname,
  -                         name = new QName(null, prefix, localname));
  +             name = new QName(null, prefix, localname);
  +             _qNames.put(localname, name);
            }
            return name;
        }
  @@ -345,8 +327,8 @@
            return stylesheet;
        }
        catch (ClassCastException e) {
  -         throw new CompilerException("The input document does not "+
  -                                     "contain an XSL stylesheet.");
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.NOT_STYLESHEET_ERR, element);
  +         throw new CompilerException(err.toString());
        }
       }
       
  @@ -362,8 +344,10 @@
                while (elements.hasMoreElements()) {
                    Object child = elements.nextElement();
                    if (child instanceof Text) {
  -                     reportError(Constants.ERROR,
  -                         new ErrorMsg(TEXT_NODE_ERROR));
  +                     final int l = _locator.getLineNumber();
  +                     ErrorMsg err =
  +                         new ErrorMsg(ErrorMsg.ILLEGAL_TEXT_NODE_ERR,l,null);
  +                     reportError(ERROR, err);
                    }
                }
                if (!errorsFound()) {
  @@ -372,7 +356,7 @@
            }
        }
        catch (TypeCheckError e) {
  -         reportError(Constants.ERROR, new ErrorMsg(e.toString()));
  +         reportError(ERROR, new ErrorMsg(e.toString()));
        }
       }
   
  @@ -391,15 +375,25 @@
            return (SyntaxTreeNode)getStylesheet(_root);        
        }
        catch (IOException e) {
  -         reportError(Constants.ERROR,
  -             new ErrorMsg(e.getMessage()));
  +         if (_xsltc.debug()) e.printStackTrace();
  +         reportError(ERROR,new ErrorMsg(e.getMessage()));
        }
        catch (SAXException e) {
  -         reportError(Constants.ERROR, new ErrorMsg(e.getMessage()));
  +         Throwable ex = e.getException();
  +         if (_xsltc.debug()) {
  +             e.printStackTrace();
  +             if (ex != null) ex.printStackTrace();
  +         }
  +         reportError(ERROR, new ErrorMsg(e.getMessage()));
        }
        catch (CompilerException e) {
  -         reportError(Constants.ERROR, new ErrorMsg(e.getMessage()));
  +         if (_xsltc.debug()) e.printStackTrace();
  +         reportError(ERROR, new ErrorMsg(e.getMessage()));
        }
  +     catch (Exception e) {
  +         if (_xsltc.debug()) e.printStackTrace();
  +         reportError(ERROR, new ErrorMsg(e.getMessage()));
  +     }
        return null;
       }
   
  @@ -423,15 +417,14 @@
            return(parse(reader, input));
        }
        catch (ParserConfigurationException e) {
  -         reportError(Constants.ERROR,
  -             new ErrorMsg("JAXP parser not configured correctly"));
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.SAX_PARSER_CONFIG_ERR);
  +         reportError(ERROR, err);
        }
        catch (SAXParseException e){
  -         reportError(Constants.ERROR,
  -             new ErrorMsg(e.getMessage(),e.getLineNumber()));
  +         reportError(ERROR, new ErrorMsg(e.getMessage(),e.getLineNumber()));
        }
        catch (SAXException e) {
  -         reportError(Constants.ERROR, new ErrorMsg(e.getMessage()));
  +         reportError(ERROR, new ErrorMsg(e.getMessage()));
        }
        return null;
       }
  @@ -474,16 +467,21 @@
        // Assume that this is a pure XSL stylesheet if there is not
        // <?xml-stylesheet ....?> processing instruction
        if (_target == null) {
  -         if (!_rootNamespaceDef)
  -             throw new CompilerException(MISSING_XSLT_URI_ERROR);
  +         if (!_rootNamespaceDef) {
  +             ErrorMsg msg = new ErrorMsg(ErrorMsg.MISSING_XSLT_URI_ERR);
  +             throw new CompilerException(msg.toString());
  +         }
            return(root);
        }
   
        // Find the xsl:stylesheet or xsl:transform with this reference
        if (_target.charAt(0) == '#') {
            SyntaxTreeNode element = findStylesheet(root, _target.substring(1));
  -         if (element == null)
  -             throw new CompilerException(MISSING_XSLT_TARGET_ERROR+_target);
  +         if (element == null) {
  +             ErrorMsg msg = new ErrorMsg(ErrorMsg.MISSING_XSLT_TARGET_ERR,
  +                                         _target, root);
  +             throw new CompilerException(msg.toString());
  +         }
            return(element);
        }
        else {
  @@ -797,12 +795,13 @@
                }
            }
            catch (ClassNotFoundException e) {
  -             reportError(Constants.ERROR,
  -                 new ErrorMsg(CLASS_NOT_FOUND+className));
  +             ErrorMsg err = new ErrorMsg(ErrorMsg.CLASS_NOT_FOUND_ERR, node);
  +             reportError(ERROR, err);
            }
            catch (Exception e) {
  -             reportError(Constants.ERROR,
  -                 new ErrorMsg(INTERNAL_ERROR+e.getMessage()));
  +             ErrorMsg err = new ErrorMsg(ErrorMsg.INTERNAL_ERR,
  +                                         e.getMessage(), node);
  +             reportError(FATAL, err);
            }
        }
        else {
  @@ -811,13 +810,17 @@
                if (uri.equals(XSLT_URI)) {
                    node = new UnsupportedElement(uri, prefix, local);
                    UnsupportedElement element = (UnsupportedElement)node;
  -                 element.setErrorMessage(UNSUPPORTED_XSL_ERROR+local);
  +                 ErrorMsg msg = new ErrorMsg(ErrorMsg.UNSUPPORTED_XSL_ERR,
  +                                             _locator.getLineNumber(),local);
  +                 element.setErrorMessage(msg);
                }
                // Check if this is an XSLTC extension element
                else if (uri.equals(TRANSLET_URI)) {
                    node = new UnsupportedElement(uri, prefix, local);
                    UnsupportedElement element = (UnsupportedElement)node;
  -                 element.setErrorMessage(INVALID_EXT_ERROR+local);
  +                 ErrorMsg msg = new ErrorMsg(ErrorMsg.UNSUPPORTED_EXT_ERR,
  +                                             _locator.getLineNumber(),local);
  +                 element.setErrorMessage(msg);
                }
                // Check if this is an extension of some other XSLT processor
                else {
  @@ -826,8 +829,11 @@
                        if (sheet != (SyntaxTreeNode)_parentStack.peek()) {
                            node = new UnsupportedElement(uri, prefix, local);
                            UnsupportedElement elem = (UnsupportedElement)node;
  -                         elem.setErrorMessage(UNSUPPORTED_EXT_ERROR+
  -                                              prefix+":"+local);
  +                         ErrorMsg msg =
  +                             new ErrorMsg(ErrorMsg.UNSUPPORTED_EXT_ERR,
  +                                          _locator.getLineNumber(),
  +                                          prefix+":"+local);
  +                         elem.setErrorMessage(msg);
                        }
                    }
                }
  @@ -911,17 +917,15 @@
                    return node;
                }
            } 
  -         reportError(Constants.ERROR,
  -             new ErrorMsg(ErrorMsg.XPATHPAR_ERR, line, expression));
  +         reportError(ERROR, new ErrorMsg(ErrorMsg.XPATH_PARSER_ERR,
  +                                         expression, parent));
        }
        catch (ClassCastException e) {
  -         reportError(Constants.ERROR,
  -                     new ErrorMsg(ErrorMsg.XPATHPAR_ERR, line, expression));
  +         reportError(ERROR, new ErrorMsg(ErrorMsg.XPATH_PARSER_ERR,
  +                                         expression, parent));
        }
        catch (Exception e) {
  -         if (_xsltc.debug()) {
  -             e.printStackTrace();
  -         }
  +         if (_xsltc.debug()) e.printStackTrace();
            // Intentional fall through
        }
        // Return a dummy pattern (which is an expression)
  @@ -936,27 +940,13 @@
        return _errors.size() > 0;
       }
   
  -    public void internalError() {
  -     Exception e = new Exception();
  -     e.printStackTrace();
  -     reportError(Constants.INTERNAL,
  -         new ErrorMsg("Internal compiler error.\n"+
  -                "Please report to [EMAIL PROTECTED]"+
  -                "(include stack trace)"));
  -    }
  -
  -    public void notYetImplemented(String message) {
  -     reportError(Constants.UNSUPPORTED, new ErrorMsg(message));
  -    }
  -
  -
       /**
        * Prints all compile-time errors
        */
       public void printErrors() {
        final int size = _errors.size();
        if (size > 0) {
  -         System.err.println("Compile errors:");
  +         System.err.println(ErrorMsg.getCompileErrorMessage());
            for (int i = 0; i < size; i++) {
                System.err.println("  " + _errors.elementAt(i));
            }
  @@ -969,7 +959,7 @@
       public void printWarnings() {
        final int size = _warnings.size();
        if (size > 0) {
  -         System.err.println("Warning:");
  +         ErrorMsg.getCompileWarningMessage();
            for (int i = 0; i < size; i++) {
                System.err.println("  " + _warnings.elementAt(i));
            }
  @@ -1070,7 +1060,9 @@
   
        SyntaxTreeNode element = makeInstance(uri, prefix, localname);
        if (element == null) {
  -         throw new SAXException("Error while parsing stylesheet.");
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.ELEMENT_PARSE_ERR,
  +                                     prefix+':'+localname);
  +         throw new SAXException(err.toString());
        }
   
        // If this is the root element of the XML document we need to make sure
  
  
  
  1.4       +4 -7      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ProcessingInstruction.java
  
  Index: ProcessingInstruction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ProcessingInstruction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ProcessingInstruction.java        2001/06/06 10:45:24     1.3
  +++ ProcessingInstruction.java        2001/10/30 08:42:55     1.4
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ProcessingInstruction.java,v 1.3 2001/06/06 10:45:24 morten Exp $
  + * @(#)$Id: ProcessingInstruction.java,v 1.4 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -75,7 +75,7 @@
        final String name  = getAttribute("name");
        _name = AttributeValue.create(this, name, parser);
        if (name.equals("xml")) {
  -         reportError(this, parser, ErrorMsg.ILLEG_PI_ERR, "xml");
  +         reportError(this, parser, ErrorMsg.ILLEGAL_PI_ERR, "xml");
        }
        parseChildren(parser);
       }
  @@ -110,15 +110,12 @@
        // get String out of the handler
        il.append(new INVOKEVIRTUAL(cpg.addMethodref(STRING_VALUE_HANDLER,
                                                     "getValue",
  -                                                  "()" + STRING_SIG)));
  +                                                  "()"+STRING_SIG)));
        // call "processingInstruction"
        final int processingInstruction =
            cpg.addInterfaceMethodref(TRANSLET_OUTPUT_INTERFACE,
                                      "processingInstruction", 
  -                                   "("
  -                                   + STRING_SIG
  -                                   + STRING_SIG
  -                                   + ")V");
  +                                   "("+STRING_SIG+STRING_SIG+")V");
        il.append(new INVOKEINTERFACE(processingInstruction, 3));
        // Restore old handler base from stack
        il.append(methodGen.storeHandler());
  
  
  
  1.10      +2 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RelationalExpr.java
  
  Index: RelationalExpr.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/RelationalExpr.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- RelationalExpr.java       2001/10/15 09:13:22     1.9
  +++ RelationalExpr.java       2001/10/30 08:42:55     1.10
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: RelationalExpr.java,v 1.9 2001/10/15 09:13:22 morten Exp $
  + * @(#)$Id: RelationalExpr.java,v 1.10 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -273,8 +273,7 @@
                break;
                
            default:
  -             final ErrorMsg msg = 
  -                 new ErrorMsg("Unknown operator for relational expression");
  +             ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGAL_RELAT_OP_ERR,this);
                getParser().reportError(Constants.FATAL, msg);
            }
   
  
  
  
  1.3       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StartsWithCall.java
  
  Index: StartsWithCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StartsWithCall.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StartsWithCall.java       2001/06/19 10:44:11     1.2
  +++ StartsWithCall.java       2001/10/30 08:42:55     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: StartsWithCall.java,v 1.2 2001/06/19 10:44:11 morten Exp $
  + * @(#)$Id: StartsWithCall.java,v 1.3 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -89,7 +89,9 @@
   
        // Check that the function was passed exactly two arguments
        if (argumentCount() != 2) {
  -         throw new TypeCheckError(ErrorMsg.FUNRESOL_ERR, getName());
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_ARG_ERR,
  +                                     getName(), this);
  +         throw new TypeCheckError(err);
        }
   
        // The first argument must be a String, or cast to a String
  
  
  
  1.2       +3 -4      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StringCall.java
  
  Index: StringCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/StringCall.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StringCall.java   2001/04/17 18:51:47     1.1
  +++ StringCall.java   2001/10/30 08:42:55     1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: StringCall.java,v 1.1 2001/04/17 18:51:47 sboag Exp $
  + * @(#)$Id: StringCall.java,v 1.2 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -76,9 +76,8 @@
       public Type typeCheck(SymbolTable stable) throws TypeCheckError {
        final int argc = argumentCount();
        if (argc > 1) {
  -         final String errmsg =
  -             "The string() function cannot take more than one parameter";
  -         throw new TypeCheckError(new ErrorMsg(errmsg));
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_ARG_ERR, this);
  +         throw new TypeCheckError(err);
        }
   
        if (argc > 0) {
  
  
  
  1.28      +6 -8      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Stylesheet.java
  
  Index: Stylesheet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Stylesheet.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- Stylesheet.java   2001/10/29 11:47:25     1.27
  +++ Stylesheet.java   2001/10/30 08:42:55     1.28
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Stylesheet.java,v 1.27 2001/10/29 11:47:25 morten Exp $
  + * @(#)$Id: Stylesheet.java,v 1.28 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -313,13 +313,11 @@
        // Make sure the XSL version set in this stylesheet
        _version = getAttribute("version");
        if ((_version == null) || (_version.equals(EMPTYSTRING))) {
  -         ErrorMsg err = new ErrorMsg(ErrorMsg.NREQATTR_ERR, "version", this);
  -         parser.reportError(Constants.ERROR, err);
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "version");
        }
        // Verify that the version is 1.0 and nothing else
        else if (!_version.equals("1.0")) {
  -         ErrorMsg err = new ErrorMsg(ErrorMsg.UNSUPVER_ERR, _version, this);
  -         parser.reportError(Constants.ERROR, err);
  +         reportError(this, parser, ErrorMsg.XSL_VERSION_ERR, _version);
        }
   
        // Add the implicit mapping of 'xml' to the XML namespace URI
  @@ -329,7 +327,7 @@
        final Stylesheet sheet = stable.addStylesheet(_name, this);
        if (sheet != null) {
            // Error: more that one stylesheet defined
  -         ErrorMsg err = new ErrorMsg(ErrorMsg.STLREDEF_ERR, this);
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.MULTIPLE_STYLESHEET_ERR,this);
            parser.reportError(Constants.ERROR, err);
        }
   
  @@ -698,8 +696,8 @@
            }
            // If nothing was changed in this pass then we have a circular ref
            if (!changed) {
  -             final String refs = input.toString();
  -             ErrorMsg err = new ErrorMsg(ErrorMsg.CIRCULAR_ERR, refs, this);
  +             ErrorMsg err = new ErrorMsg(ErrorMsg.CIRCULAR_VARIABLE_ERR,
  +                                         input.toString(), this);
                getParser().reportError(Constants.ERROR, err);
                return(result);
            }
  
  
  
  1.14      +4 -3      
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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- Template.java     2001/10/23 19:28:07     1.13
  +++ Template.java     2001/10/30 08:42:55     1.14
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Template.java,v 1.13 2001/10/23 19:28:07 morten Exp $
  + * @(#)$Id: Template.java,v 1.14 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -255,8 +255,9 @@
        if (_name != null) {
            Template other = parser.getSymbolTable().addTemplate(this);
            if (!resolveNamedTemplates(other, parser)) {
  -             parser.reportError( Constants.ERROR,
  -                 new ErrorMsg(ErrorMsg.TMPREDEF_ERR,_name,this));
  +             ErrorMsg err =
  +                 new ErrorMsg(ErrorMsg.TEMPLATE_REDEF_ERR, _name, this);
  +             parser.reportError(Constants.ERROR, err);
            }
        }
   
  
  
  
  1.3       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TopLevelElement.java
  
  Index: TopLevelElement.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TopLevelElement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TopLevelElement.java      2001/05/02 10:25:08     1.2
  +++ TopLevelElement.java      2001/10/30 08:42:55     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TopLevelElement.java,v 1.2 2001/05/02 10:25:08 morten Exp $
  + * @(#)$Id: TopLevelElement.java,v 1.3 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -80,7 +80,9 @@
        * Translate this node into JVM bytecodes.
        */
       public void translate(ClassGenerator classGen, MethodGenerator 
methodGen) {
  -     getParser().notYetImplemented("top-level-element: " + getClass());
  +     ErrorMsg msg = new ErrorMsg(ErrorMsg.NOT_IMPLEMENTED_ERR,
  +                                 getClass(), this);
  +     getParser().reportError(FATAL, msg);
       }
        
       /**
  
  
  
  1.6       +2 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TransletOutput.java
  
  Index: TransletOutput.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/TransletOutput.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TransletOutput.java       2001/08/27 12:38:32     1.5
  +++ TransletOutput.java       2001/10/30 08:42:55     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransletOutput.java,v 1.5 2001/08/27 12:38:32 morten Exp $
  + * @(#)$Id: TransletOutput.java,v 1.6 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -91,8 +91,7 @@
   
        // Verify that the filename is in fact set
        if ((filename == null) || (filename.equals(EMPTYSTRING))) {
  -         final ErrorMsg msg = new ErrorMsg(MISSING_FILE_ATTR);
  -         parser.reportError(Constants.ERROR, msg);
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "file");
        }
   
        // Save filename as an attribute value template
  
  
  
  1.2       +4 -4      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnsupportedElement.java
  
  Index: UnsupportedElement.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UnsupportedElement.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- UnsupportedElement.java   2001/06/06 11:55:41     1.1
  +++ UnsupportedElement.java   2001/10/30 08:42:55     1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: UnsupportedElement.java,v 1.1 2001/06/06 11:55:41 morten Exp $
  + * @(#)$Id: UnsupportedElement.java,v 1.2 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -79,7 +79,7 @@
   final class UnsupportedElement extends SyntaxTreeNode {
   
       private Fallback _fallback = null;
  -    private String _message = null;
  +    private ErrorMsg _message = null;
   
       /**
        * Basic consutrcor - stores element uri/prefix/localname
  @@ -97,7 +97,7 @@
        * should describe the unsupported element itself and what category
        * the element belongs in.
        */
  -    public void setErrorMessage(String message) {
  +    public void setErrorMessage(ErrorMsg message) {
        _message = message;
       }
   
  @@ -152,7 +152,7 @@
        */
       public Type typeCheck(SymbolTable stable) throws TypeCheckError {
        if (_fallback == null) {
  -         throw new TypeCheckError(new ErrorMsg(_message));
  +         throw new TypeCheckError(_message);
        }
        return(_fallback.typeCheck(stable));
       }
  
  
  
  1.6       +5 -5      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UseAttributeSets.java
  
  Index: UseAttributeSets.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/UseAttributeSets.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- UseAttributeSets.java     2001/08/08 10:57:05     1.5
  +++ UseAttributeSets.java     2001/10/30 08:42:55     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: UseAttributeSets.java,v 1.5 2001/08/08 10:57:05 morten Exp $
  + * @(#)$Id: UseAttributeSets.java,v 1.6 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -77,7 +77,7 @@
   
       // Only error that can occur:
       private final static String ATTR_SET_NOT_FOUND =
  -     "Attempting to use non-existing attribute set: ";
  +     "";
   
       // Contains the names of all references attribute sets
       private final Vector _sets = new Vector(2);
  @@ -139,9 +139,9 @@
            }
            // Generate an error if the attribute set does not exist
            else {
  -             final ErrorMsg msg =  new ErrorMsg(ATTR_SET_NOT_FOUND+name,
  -                                                getLineNumber());
  -             getParser().reportError(Constants.ERROR, msg);
  +             final Parser parser = getParser();
  +             final String atrs = name.toString();
  +             reportError(this, parser, ErrorMsg.ATTRIBSET_UNDEF_ERR, atrs);
            }
        }
       }
  
  
  
  1.6       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ValueOf.java
  
  Index: ValueOf.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/ValueOf.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ValueOf.java      2001/08/27 09:07:20     1.5
  +++ ValueOf.java      2001/10/30 08:42:55     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ValueOf.java,v 1.5 2001/08/27 09:07:20 morten Exp $
  + * @(#)$Id: ValueOf.java,v 1.6 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -86,7 +86,7 @@
   
           // make sure required attribute(s) have been set
           if (_select.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "select");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "select");
            return;
           }
           final String str = getAttribute("disable-output-escaping");
  
  
  
  1.21      +3 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Variable.java
  
  Index: Variable.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Variable.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- Variable.java     2001/10/18 09:43:44     1.20
  +++ Variable.java     2001/10/30 08:42:55     1.21
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Variable.java,v 1.20 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: Variable.java,v 1.21 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -124,8 +124,8 @@
                final int them = var.getImportPrecedence();
                // It is an error if the two have the same import precedence
                if (us == them) {
  -                 reportError(this, parser, ErrorMsg.VARREDEF_ERR,
  -                             _name.toString());
  +                 final String name = _name.toString();
  +                 reportError(this, parser, ErrorMsg.VARIABLE_REDEF_ERR,name);
                }
                // Ignore this if previous definition has higher precedence
                else if (them > us) {
  
  
  
  1.12      +3 -4      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableBase.java
  
  Index: VariableBase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableBase.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- VariableBase.java 2001/10/29 11:47:25     1.11
  +++ VariableBase.java 2001/10/30 08:42:55     1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: VariableBase.java,v 1.11 2001/10/29 11:47:25 morten Exp $
  + * @(#)$Id: VariableBase.java,v 1.12 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -249,13 +249,12 @@
        if (name.length() > 0)
            setName(parser.getQName(name));
           else
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "name");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "name");
   
        // Check whether variable/param of the same name is already in scope
        VariableBase other = parser.lookupVariable(_name);
        if ((other != null) && (other.getParent() == getParent())) {
  -         ErrorMsg msg = new ErrorMsg(ErrorMsg.VARREDEF_ERR, _name, this);
  -         parser.reportError(Constants.ERROR, msg);
  +         reportError(this, parser, ErrorMsg.VARIABLE_REDEF_ERR, name);
        }
        
        select = getAttribute("select");
  
  
  
  1.9       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/When.java
  
  Index: When.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/When.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- When.java 2001/10/29 11:47:25     1.8
  +++ When.java 2001/10/30 08:42:55     1.9
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: When.java,v 1.8 2001/10/29 11:47:25 morten Exp $
  + * @(#)$Id: When.java,v 1.9 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -103,7 +103,7 @@
   
        // Make sure required attribute(s) have been set
        if (_test.isDummy()) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "test");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "test");
        }
       }
   
  
  
  
  1.6       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Whitespace.java
  
  Index: Whitespace.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Whitespace.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Whitespace.java   2001/08/27 09:07:20     1.5
  +++ Whitespace.java   2001/10/30 08:42:55     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Whitespace.java,v 1.5 2001/08/27 09:07:20 morten Exp $
  + * @(#)$Id: Whitespace.java,v 1.6 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -170,7 +170,7 @@
        // Get the list of elements to strip/preserve
        _elementList = getAttribute("elements");
        if (_elementList == null || _elementList.length() == 0) {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "elements");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "elements");
            return;
        }
   
  
  
  
  1.9       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/WithParam.java
  
  Index: WithParam.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/WithParam.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- WithParam.java    2001/10/18 10:29:07     1.8
  +++ WithParam.java    2001/10/30 08:42:55     1.9
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: WithParam.java,v 1.8 2001/10/18 10:29:07 morten Exp $
  + * @(#)$Id: WithParam.java,v 1.9 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -98,7 +98,7 @@
            _name = parser.getQName(name);
        }
           else {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "name");
  +         reportError(this, parser, ErrorMsg.REQUIRED_ATTR_ERR, "name");
           }
        
        final String select = getAttribute("select");
  
  
  
  1.12      +4 -10     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslAttribute.java
  
  Index: XslAttribute.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslAttribute.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XslAttribute.java 2001/10/17 13:13:58     1.11
  +++ XslAttribute.java 2001/10/30 08:42:55     1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: XslAttribute.java,v 1.11 2001/10/17 13:13:58 morten Exp $
  + * @(#)$Id: XslAttribute.java,v 1.12 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -73,10 +73,6 @@
   
   final class XslAttribute extends Instruction {
   
  -    // Error messages:
  -    private final static String ILLEGAL_ATTRIBUTE_NAME =
  -     "Illegal attribute name: 'xmlns'";
  -
       // Attribute contents
       private AttributeValue _name; // name treated as AVT (7.1.3)
       private AttributeValueTemplate _namespace = null;
  @@ -112,7 +108,7 @@
        boolean generated = false;
   
        if ((prefix != null) && (prefix.equals("xmlns"))) {
  -         reportError(this, parser, ErrorMsg.ILL_ATTR_ERR, name);
  +         reportError(this, parser, ErrorMsg.ILLEGAL_ATTR_NAME_ERR, name);
            return;
        }
   
  @@ -131,7 +127,7 @@
            if (item instanceof If) continue;
            if (item instanceof Choose) continue;
            if (item instanceof CopyOf) continue;  // bug fix 3320, g. briem
  -         reportWarning(this, parser, ErrorMsg.ATTROUTS_ERR, name);
  +         reportWarning(this, parser, ErrorMsg.STRAY_ATTRIBUTE_ERR, name);
        }
   
        // Get namespace from namespace attribute?
  @@ -180,9 +176,7 @@
        }
   
        if (name.equals("xmlns")) {
  -         final ErrorMsg msg = 
  -             new ErrorMsg(ILLEGAL_ATTRIBUTE_NAME, getLineNumber());
  -         parser.reportError(Constants.ERROR, msg);
  +         reportError(this, parser, ErrorMsg.ILLEGAL_ATTR_NAME_ERR, name);
            return;
        }
   
  
  
  
  1.12      +9 -6      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslElement.java
  
  Index: XslElement.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XslElement.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XslElement.java   2001/08/22 09:21:29     1.11
  +++ XslElement.java   2001/10/30 08:42:55     1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: XslElement.java,v 1.11 2001/08/22 09:21:29 morten Exp $
  + * @(#)$Id: XslElement.java,v 1.12 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -105,7 +105,8 @@
        // Get the "name" attribute of the <xsl:element> element
        String name = getAttribute("name");
        if ((name == null) || (name.equals(EMPTYSTRING))) {
  -         final ErrorMsg msg = new ErrorMsg("You can't call an element \"\"");
  +         ErrorMsg msg = new ErrorMsg(ErrorMsg.ILLEGAL_ELEM_NAME_ERR,
  +                                     name, this);
            parser.reportError(WARNING, msg);
            _ignore = true; // Ignore the element if the QName is invalid
            return;
  @@ -130,8 +131,9 @@
   
            // Signal error if the prefix does not map to any namespace URI 
            if (namespace == null) {
  -             final ErrorMsg msg = new ErrorMsg(ErrorMsg.NSPUNDEF_ERR,prefix);
  -             parser.reportError(WARNING, msg);
  +             ErrorMsg err = new ErrorMsg(ErrorMsg.NAMESPACE_UNDEF_ERR,
  +                                         prefix, this);
  +             parser.reportError(WARNING, err);
                parseChildren(parser);
                _ignore = true; // Ignore the element if prefix is undeclared
                return;
  @@ -160,8 +162,9 @@
        // Next check that the local part of the QName is legal (no whitespace)
        if ((_name instanceof SimpleAttributeValue) &&
            (local.indexOf(' ') > -1)) {
  -         final String errmsg = "You can't call an element \""+local+"\"";
  -         parser.reportError(WARNING, new ErrorMsg(errmsg));
  +         ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_ELEM_NAME_ERR,
  +                                     local, this);
  +         parser.reportError(WARNING, err);
            parseChildren(parser);
            _ignore = true; // Ignore the element if the local part is invalid
            return;
  
  
  
  1.27      +4 -4      
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.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- xpath.cup 2001/10/29 11:47:25     1.26
  +++ xpath.cup 2001/10/30 08:42:55     1.27
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: xpath.cup,v 1.26 2001/10/29 11:47:25 morten Exp $
  + * @(#)$Id: xpath.cup,v 1.27 2001/10/30 08:42:55 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -180,8 +180,9 @@
            return super.parse();
           }
           catch (IllegalCharException e) {
  -         addError(new ErrorMsg("Illegal character '" + e.getMessage() +
  -             "' in XPath expression.", lineNumber));
  +            ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_CHAR_ERR,
  +                                        lineNumber, e.getMessage());
  +            _parser.reportError(Constants.FATAL, err);
           }
           return null;
       }
  @@ -201,7 +202,6 @@
       }
   
       public final void addError(ErrorMsg error) {
  -        //_parser.addError(error);
        _parser.reportError(Constants.ERROR, error);
       } 
              
  
  
  
  1.7       +160 -51   
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util/ErrorMsg.java
  
  Index: ErrorMsg.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util/ErrorMsg.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ErrorMsg.java     2001/10/29 11:47:26     1.6
  +++ ErrorMsg.java     2001/10/30 08:42:56     1.7
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ErrorMsg.java,v 1.6 2001/10/29 11:47:26 morten Exp $
  + * @(#)$Id: ErrorMsg.java,v 1.7 2001/10/30 08:42:56 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -65,91 +65,188 @@
   
   package org.apache.xalan.xsltc.compiler.util;
   
  +import org.apache.xalan.xsltc.compiler.Stylesheet;
   import org.apache.xalan.xsltc.compiler.SyntaxTreeNode;
   
   import java.net.URL;
   import java.text.MessageFormat;
   
   public final class ErrorMsg {
  +
       private int _code;
       private int _line;
       private String _message = null;
       private String _url = null;
       Object[] _params = null;
        
  -    public static final int STLREDEF_ERR = 0;
  -    public static final int TMPREDEF_ERR = 1;
  -    public static final int VARREDEF_ERR = 2;
  -    public static final int VARUNDEF_ERR = 3;
  -    public static final int CLSUNDEF_ERR = 4;
  -    public static final int METUNDEF_ERR = 5;
  -    public static final int TMPUNDEF_ERR = 6;
  -    public static final int CANNOTCV_ERR = 7;
  -    public static final int FILENOTF_ERR = 8;
  -    public static final int INVALURI_ERR = 9;
  -    public static final int FILECANT_ERR = 10;
  -    public static final int STYORTRA_ERR = 11;
  -    public static final int NSPUNDEF_ERR = 12;
  -    public static final int FUNRESOL_ERR = 13;
  -    public static final int LITERALS_ERR = 14;
  -    public static final int XPATHPAR_ERR = 15;
  -    public static final int NREQATTR_ERR = 16;
  -    public static final int FUNC_USE_ERR = 17;
  -    public static final int ILLEG_PI_ERR = 18;
  -    public static final int ATTROUTS_ERR = 19;
  -    public static final int ILL_ATTR_ERR = 20;
  -    public static final int CIRCULAR_INC = 21;
  -    public static final int TREESORT_ERR = 22;
  -    public static final int DFSREDEF_ERR = 23;
  -    public static final int UNSUPVER_ERR = 24;
  -    public static final int CIRCULAR_ERR = 25;
  -    public static final int ILLBINOP_ERR = 26;
  -    public static final int ILLEGARG_ERR = 27;
  -    public static final int DOCUMARG_ERR = 28;
  -
  -    public static final int MISSING_WHEN_ERR       = 29;
  -    public static final int MULTIPLE_OTHERWISE_ERR = 30;
  -    public static final int STRAY_OTHERWISE_ERR    = 31;
  -    public static final int STRAY_WHEN_ERR         = 32;
  -    public static final int WHEN_ELEMENT_ERR       = 33;
  +    public static final int MULTIPLE_STYLESHEET_ERR = 0;
  +    public static final int TEMPLATE_REDEF_ERR      = 1;
  +    public static final int TEMPLATE_UNDEF_ERR      = 2;
  +    public static final int VARIABLE_REDEF_ERR      = 3;
  +    public static final int VARIABLE_UNDEF_ERR      = 4;
  +    public static final int CLASS_NOT_FOUND_ERR     = 5;
  +    public static final int METHOD_NOT_FOUND_ERR    = 6;
  +    public static final int ARGUMENT_CONVERSION_ERR = 7;
  +    public static final int FILE_NOT_FOUND_ERR      = 8;
  +    public static final int INVALID_URI_ERR         = 9;
  +    public static final int FILE_ACCESS_ERR         = 10;
  +    public static final int MISSING_ROOT_ERR        = 11;
  +    public static final int NAMESPACE_UNDEF_ERR     = 12;
  +    public static final int FUNCTION_RESOLVE_ERR    = 13;
  +    public static final int NEED_LITERAL_ERR        = 14;
  +    public static final int XPATH_PARSER_ERR        = 15;
  +    public static final int REQUIRED_ATTR_ERR       = 16;
  +    public static final int ILLEGAL_CHAR_ERR        = 17;
  +    public static final int ILLEGAL_PI_ERR          = 18;
  +    public static final int STRAY_ATTRIBUTE_ERR     = 19;
  +    public static final int ILLEGAL_ATTRIBUTE_ERR   = 20;
  +    public static final int CIRCULAR_INCLUDE_ERR    = 21;
  +    public static final int RESULT_TREE_SORT_ERR    = 22;
  +    public static final int SYMBOLS_REDEF_ERR       = 23;
  +    public static final int XSL_VERSION_ERR         = 24;
  +    public static final int CIRCULAR_VARIABLE_ERR   = 25;
  +    public static final int ILLEGAL_BINARY_OP_ERR   = 26;
  +    public static final int ILLEGAL_ARG_ERR         = 27;
  +    public static final int DOCUMENT_ARG_ERR        = 28;
  +    public static final int MISSING_WHEN_ERR        = 29;
  +    public static final int MULTIPLE_OTHERWISE_ERR  = 30;
  +    public static final int STRAY_OTHERWISE_ERR     = 31;
  +    public static final int STRAY_WHEN_ERR          = 32;
  +    public static final int WHEN_ELEMENT_ERR        = 33;
  +    public static final int UNNAMED_ATTRIBSET_ERR   = 34;
  +    public static final int ILLEGAL_CHILD_ERR       = 35;
  +    public static final int ILLEGAL_ELEM_NAME_ERR   = 36;
  +    public static final int ILLEGAL_ATTR_NAME_ERR   = 37;
  +    public static final int ILLEGAL_TEXT_NODE_ERR   = 38;
  +    public static final int SAX_PARSER_CONFIG_ERR   = 39;
  +    public static final int INTERNAL_ERR            = 40;
  +    public static final int UNSUPPORTED_XSL_ERR     = 41;
  +    public static final int UNSUPPORTED_EXT_ERR     = 42;
  +    public static final int MISSING_XSLT_URI_ERR    = 43;
  +    public static final int MISSING_XSLT_TARGET_ERR = 44;
  +    public static final int NOT_IMPLEMENTED_ERR     = 45;
  +    public static final int NOT_STYLESHEET_ERR      = 46;
  +    public static final int ELEMENT_PARSE_ERR       = 47;
  +    public static final int KEY_USE_ATTR_ERR        = 48;
  +    public static final int OUTPUT_VERSION_ERR      = 49;
  +    public static final int ILLEGAL_RELAT_OP_ERR    = 50;
  +    public static final int ATTRIBSET_UNDEF_ERR     = 51;
  +    public static final int ATTR_VAL_TEMPLATE_ERR   = 52;
  +    public static final int UNKNOWN_SIG_TYPE_ERR    = 53;
  +
   
  +    // These message should be read from a locale-specific resource bundle
       static final String messages_d[] = { 
  +     // MULTIPLE_STYLESHEET_ERR
        "More than one stylesheet defined in the same file.",
  +     // TEMPLATE_REDEF_ERR   
        "Template ''{0}'' already defined in this stylesheet.",
  +     // TEMPLATE_UNDEF_ERR
  +     "Template ''{0}'' not defined in this stylesheet.",
  +     // VARIABLE_REDEF_ERR   
        "Variable ''{0}'' is multiply defined in the same scope.",
  +     // VARIABLE_UNDEF_ERR
        "Variable or parameter ''{0}'' is undefined.",
  -     "Cannot find external class ''{0}''.",
  -     "Cannot find external method ''{0}'' (It must be static and public).",
  -     "Template ''{0}'' not defined in this stylesheet.",
  -     "Cannot convert argument/return type in call to Method ''{0}'' of class 
''{1}''.",
  +     // CLASS_NOT_FOUND_ERR
  +     "Cannot find class ''{0}''.",
  +     // METHOD_NOT_FOUND_ERR
  +     "Cannot find external method ''{0}'' (must be static and public).",
  +     // ARGUMENT_CONVERSION_ERR
  +     "Cannot convert argument/return type in call to method ''{1}''",
  +     // FILE_NOT_FOUND_ERR
        "File or URI ''{0}'' not found.",
  +     // INVALID_URI_ERR
        "Invalid URI ''{0}''.",
  +     // FILE_ACCESS_ERR
        "Cannot open file ''{0}''.",
  -     "'stylesheet' or 'transform' element expected.",
  -     "Element prefix ''{0}'' is undeclared.",
  +     // MISSING_ROOT_ERR
  +     "<xsl:stylesheet> or <xsl:transform> element expected.",
  +     // NAMESPACE_UNDEF_ERR
  +     "Namespace prefix ''{0}'' is undeclared.",
  +     // FUNCTION_RESOLVE_ERR
        "Unable to resolve call to function ''{0}''.",
  +     // NEED_LITERAL_ERR
        "Argument to ''{0}'' must be a literal string.",
  +     // XPATH_PARSER_ERR
        "Error parsing XPath expression ''{0}''.",
  +     // REQUIRED_ATTR_ERR
        "Required attribute ''{0}'' is missing.",
  -     "Illegal use of function ''{0}''.",
  +     // ILLEGAL_CHAR_ERR
  +     "Illegal character ''{0}'' in XPath expression.",
  +     // ILLEGAL_PI_ERR
        "Illegal name ''{0}'' for processing instruction.",
  +     // STRAY_ATTRIBUTE_ERR
        "Attribute ''{0}'' outside of element.",
  -     "Illegal attribute name ''{0}''.",
  +     // ILLEGAL_ATTRIBUTE_ERR
  +     "Illegal attribute ''{0}''.",
  +     // CIRCULAR_INCLUDE_ERR
        "Circular import/include. Stylesheet ''{0}'' already loaded.",
  -     "Applying <xsl:sort> to a result tree is not supported (<xsl:sort> "+
  -     "elements are ignored). You can, and should, sort the nodes when "+
  -     "creating the result tree.",
  +     // RESULT_TREE_SORT_ERR
  +     "Result-tree fragments cannot be supports (<xsl:sort> elements are "+
  +     "ignored). You must sort the nodes when creating the result tree.",
  +     // SYMBOLS_REDEF_ERR
        "Decimal formatting ''{0}'' is already defined.",
  +     // XSL_VERSION_ERR
        "XSL version ''{0}'' is not supported by XSLTC.",
  +     // CIRCULAR_VARIABLE_ERR
        "Circular variable/parameter references: ''{0}''.",
  +     // ILLEGAL_BINARY_OP_ERR
        "Unknown operator for binary expression.",
  +     // ILLEGAL_ARG_ERR
        "Illegal argument(s) for function call.",
  +     // DOCUMENT_ARG_ERR
        "Second argument to document() function must be a node-set.",
  +     // MISSING_WHEN_ERR
        "At least one <xsl:when> element required in <xsl:choose>.",
  +     // MULTIPLE_OTHERWISE_ERR
        "Only one <xsl:otherwise> element allowed in <xsl:choose>.",
  +     // STRAY_OTHERWISE_ERR
        "<xsl:otherwise> can only be used within <xsl:choose>.",
  -     "<xsl:whe> can only be used within <xsl:choose>.",
  -     "Only <xsl:when> and <xsl:otherwise> elements allowed in <xsl:choose>."
  +     // STRAY_WHEN_ERR
  +     "<xsl:when> can only be used within <xsl:choose>.",
  +     // WHEN_ELEMENT_ERR     
  +     "Only <xsl:when> and <xsl:otherwise> elements allowed in <xsl:choose>.",
  +     // UNNAMED_ATTRIBSET_ERR
  +     "<xsl:attribute-set> is missing the 'name' attribute.",
  +     // ILLEGAL_CHILD_ERR
  +     "Illegal child element.",
  +     // ILLEGAL_ELEM_NAME_ERR
  +     "You cannot call an element ''{0}''",
  +     // ILLEGAL_ATTR_NAME_ERR
  +     "You cannot call an attribute ''{0}''",
  +     // ILLEGAL_TEXT_NODE_ERR
  +     "Text data outside of top-level <xsl:stylesheet> element.",
  +     // SAX_PARSER_CONFIG_ERR
  +     "JAXP parser not configured correctly",
  +     // INTERNAL_ERR
  +     "Unrecoverable XSLTC compilation error: ''{0}''",
  +     // UNSUPPORTED_XSL_ERR
  +     "Unsupported XSL element ''{0}''.",
  +     // UNSUPPORTED_EXT_ERR
  +     "Unrecognised XSLTC extension ''{0}''.",
  +     // MISSING_XSLT_URI_ERR
  +     "The input document is not a stylesheet "+
  +     "(the XSL namespace is not declared in the root element).",
  +     // MISSING_XSLT_TARGET_ERR
  +     "Could not find stylesheet target ''{0}''.",
  +     // NOT_IMPLEMENTED_ERR
  +     "Not implemented: ''{0}''.",
  +     // NOT_STYLESHEET_ERR
  +     "The input document does not contain an XSL stylesheet.",
  +     // ELEMENT_PARSE_ERR
  +     "Could not parse element ''{0}''",
  +     // KEY_USE_ATTR_ERR
  +     "The use-attribute of <key> must be node, node-set, string or number.",
  +     // OUTPUT_VERSION_ERR
  +     "Output XML document version should be 1.0",
  +     // ILLEGAL_RELAT_OP_ERR
  +     "Unknown operator for relational expression",
  +     // ATTRIBSET_UNDEF_ERR
  +     "Attempting to use non-existing attribute set ''{0}''.",
  +     // ATTR_VAL_TEMPLATE_ERR
  +     "Cannot parse attribute value template ''{0}''.",
  +     // UNKNOWN_SIG_TYPE_ERR
  +     "Unknown data-type in signature for class ''{0}''."
       };
   
       public ErrorMsg(int code) {
  @@ -212,8 +309,20 @@
        _params[1] = param2;
       }
   
  +    public static String getCompileErrorMessage() {
  +     return "Compiler error(s):";
  +    }
  +
  +    public static String getCompileWarningMessage() {
  +     return "Compiler warning(s):";
  +    }
  +
       private String getFileName(SyntaxTreeNode node) {
  -     return node.getStylesheet().getSystemId();
  +     Stylesheet stylesheet = node.getStylesheet();
  +     if (stylesheet != null)
  +         return stylesheet.getSystemId();
  +     else
  +         return null;
       }
   
       private String formatLine() {
  @@ -223,7 +332,7 @@
            result.append(": ");
        }
        if (_line > 0) {
  -         result.append("Line ");
  +         result.append("line ");
            result.append(Integer.toString(_line));
            result.append(": ");
        }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to