villard     2003/03/27 07:11:28

  Modified:    java/xpath_rwapi/src2/org/apache/xpath/impl Tag: xslt20
                        KindTestImpl.java FunctionCallImpl.java
                        LiteralImpl.java VariableImpl.java
                        ExpressionFactoryImpl.java StepExprImpl.java
               java/xpath_rwapi/src2/org/apache/xpath/expression Tag:
                        xslt20 StepExpr.java FunctionCall.java Visitor.java
                        Literal.java Variable.java ExpressionFactory.java
               java/xpath_rwapi/src2/org/apache/xpath/test Tag: xslt20
                        TestSamples.xml TestSamples.java
               java/xpath_rwapi/src2/org/apache/xpath/impl/parser Tag:
                        xslt20 SimpleNode.java Singletons.java
  Log:
  - various bug fixes
  - improvement of documentation
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +2 -19     
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/KindTestImpl.java
  
  Index: KindTestImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/KindTestImpl.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- KindTestImpl.java 13 Mar 2003 20:28:14 -0000      1.1.2.1
  +++ KindTestImpl.java 27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -58,7 +58,6 @@
   import org.apache.xpath.XPathException;
   import org.apache.xpath.expression.Expr;
   import org.apache.xpath.expression.NodeTest;
  -import org.apache.xpath.expression.Visitor;
   import org.apache.xpath.impl.parser.Node;
   import org.apache.xpath.impl.parser.SimpleNode;
   import org.apache.xpath.impl.parser.XPath;
  @@ -143,15 +142,7 @@
           throw new XPathException("Invalid call this method on kind test"); 
// I8
       }
   
  -    /**
  -     * @see org.apache.xpath.expression.Expr#getExprType()
  -     */
  -  //  public short getExprType()
  -   // {
  -   //     return Expr.KINDTEST_EXPR;
  -   // }
  -
  -    /**
  +   /**
        * @see org.apache.xpath.expression.Expr#cloneExpression()
        */
       public Expr cloneExpression()
  @@ -168,19 +159,11 @@
       }
   
       /**
  -     * @see org.apache.xpath.expression.Visitable#visited(Visitor)
  -     */
  -    public void visited(Visitor visitor)
  -    {
  -    }
  -
  -    /**
        * @see org.apache.xpath.impl.parser.Node#jjtAddChild(Node, int)
        */
       public void jjtAddChild(Node n, int i)
       {
  -        // filter child
  -        // m_kindTest = ((KindTest) n).getKindTest();
  +       
       }
   
       /**
  
  
  
  1.1.2.3   +1 -1      
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/FunctionCallImpl.java
  
  Index: FunctionCallImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/FunctionCallImpl.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- FunctionCallImpl.java     26 Mar 2003 21:27:22 -0000      1.1.2.2
  +++ FunctionCallImpl.java     27 Mar 2003 15:11:27 -0000      1.1.2.3
  @@ -93,7 +93,7 @@
        /**
         * @see org.apache.xpath.expression.FunctionCall#getFunctionName()
         */
  -     public String getFunctionName() {               
  +     public String getFunctionQName() {              
                return m_qname.toString();
        }
   
  
  
  
  1.1.2.2   +62 -21    
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/LiteralImpl.java
  
  Index: LiteralImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/LiteralImpl.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- LiteralImpl.java  13 Mar 2003 20:28:14 -0000      1.1.2.1
  +++ LiteralImpl.java  27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -55,9 +55,6 @@
    */
   package org.apache.xpath.impl;
   
  -import java.math.BigDecimal;
  -import java.math.BigInteger;
  -
   import org.apache.xpath.XPathException;
   import org.apache.xpath.expression.Expr;
   import org.apache.xpath.expression.Literal;
  @@ -66,17 +63,22 @@
   import org.apache.xpath.impl.parser.XPath;
   import org.apache.xpath.impl.parser.XPathTreeConstants;
   
  +import java.math.BigDecimal;
  +import java.math.BigInteger;
  +
   
   /**
  - *
  + * Default implementation of literal XPath expression type.
    */
   public class LiteralImpl extends ExprImpl implements Literal
   {
  -    Object m_literal;
  +    /**
  +     * Literal object. Either BigInteger, BigDecimal, String or Double
  +     */
  +    protected Object m_literal;
   
       /**
  -     *
  -     *
  +     * Constructor for LiteralImpl. Internal uses only.
        */
       protected LiteralImpl()
       {
  @@ -84,7 +86,8 @@
       }
   
       /**
  -     * Constructor for PrimaryExprImpl.
  +     * Constructor for LiteralImpl. Internal uses only.
  +     *
        * @param i
        */
       public LiteralImpl(int i)
  @@ -93,7 +96,8 @@
       }
   
       /**
  -     * Constructor for PrimaryExprImpl.
  +     * Constructor for LiteralImpl. Internal uses only.
  +     *
        * @param p
        * @param i
        */
  @@ -101,6 +105,18 @@
       {
           super(p, i);
       }
  +    
  +     /**
  +              * Constructor for cloning.
  +              *
  +              */
  +             public LiteralImpl(LiteralImpl expr)
  +             {
  +                     super(expr.id);
  +                     
  +                     m_literal = expr.m_literal; 
  +                     // no cloning since m_literal reference is immutable
  +             }
   
       /**
        * @see org.apache.xpath.expression.Expr#getExprType()
  @@ -115,7 +131,7 @@
        */
       public Expr cloneExpression()
       {
  -        return null;
  +        return new LiteralImpl(this);
       }
   
       /**
  @@ -132,6 +148,14 @@
               "Invalid method call: the literal is not a decimal");
       }
   
  +    /* (non-Javadoc)
  +     * @see org.apache.xpath.expression.Literal#getDecimalLiteralAsDouble()
  +     */
  +    public double getDecimalLiteralAsDouble() throws XPathException
  +    {
  +        return getDecimalLiteral().doubleValue();
  +    }
  +
       /**
        * @see org.apache.xpath.expression.Literal#getDoubleLiteral()
        */
  @@ -157,7 +181,15 @@
           }
   
           throw new XPathException(
  -            "Invalid method call: the literal is not a integer");
  +            "Invalid method call: the literal is not a integer"); //I16
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see org.apache.xpath.expression.Literal#getIntLiteral()
  +     */
  +    public int getIntegerLiteralAsInt() throws XPathException
  +    {
  +        return getIntegerLiteral().intValue();
       }
   
       /**
  @@ -185,7 +217,7 @@
               //break;
               default:
   
  -                // bug
  +                // Invalid state of this object
                   throw new RuntimeException("Invalid JJTree id:" + id);
           }
       }
  @@ -215,7 +247,10 @@
       /**
        * @see org.apache.xpath.expression.Visitable#visited(Visitor)
        */
  -    public void visited(Visitor visitor) {}
  +    public void visited(Visitor visitor)
  +    {
  +     visitor.visitLiteral(this);
  +    }
   
       /**
        * @see org.apache.xpath.impl.parser.SimpleNode#processToken(Token)
  @@ -235,6 +270,7 @@
                   m_literal = new Double(token.image);
   
                   break;
  +
               case XPathTreeConstants.JJTSTRINGLITERAL:
                   m_literal = token.image;
   
  @@ -261,25 +297,29 @@
       }
   
       /**
  +     * DOCUMENT ME!
  +     *
        * @param value
        */
  -    protected void setIntValue(int value)
  +    protected void setIntValue(BigInteger value)
       {
  -        m_literal = new Integer(value);
  +        m_literal = value;
           id = XPathTreeConstants.JJTINTEGERLITERAL;
       }
   
       /**
  +     * DOCUMENT ME!
        *
        * @param value
        */
  -    protected void setDecimalValue(float value)
  +    protected void setDecimalValue(BigDecimal value)
       {
  -        m_literal = new Float(value);
  +        m_literal = value;
           id = XPathTreeConstants.JJTDECIMALLITERAL;
       }
   
       /**
  +     * DOCUMENT ME!
        *
        * @param value
        */
  @@ -290,6 +330,7 @@
       }
   
       /**
  +     * DOCUMENT ME!
        *
        * @param value
        */
  @@ -300,13 +341,13 @@
       }
   
       /**
  -     * Override to print out useful instance data.  
  +     * Override to print out useful instance data.
  +     *
        * @see org.apache.xpath.impl.parser.SimpleNode#toString()
        */
       public String toString()
       {
  -        return XPathTreeConstants.jjtNodeName[id] + " " 
  -                + getClass() + " " 
  -                + getString(false);
  +        return XPathTreeConstants.jjtNodeName[id] + " " + getClass() + " "
  +        + getString(false);
       }
   }
  
  
  
  1.1.2.2   +103 -66   
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/VariableImpl.java
  
  Index: VariableImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/VariableImpl.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- VariableImpl.java 13 Mar 2003 20:28:14 -0000      1.1.2.1
  +++ VariableImpl.java 27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights 
  + * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -9,7 +9,7 @@
    * are met:
    *
    * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer. 
  + *    notice, this list of conditions and the following disclaimer.
    *
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in
  @@ -17,7 +17,7 @@
    *    distribution.
    *
    * 3. The end-user documentation included with the redistribution,
  - *    if any, must include the following acknowledgment:  
  + *    if any, must include the following acknowledgment:
    *       "This product includes software developed by the
    *        Apache Software Foundation (http://www.apache.org/)."
    *    Alternately, this acknowledgment may appear in the software itself,
  @@ -25,7 +25,7 @@
    *
    * 4. The names "Xalan" and "Apache Software Foundation" must
    *    not be used to endorse or promote products derived from this
  - *    software without prior written permission. For written 
  + *    software without prior written permission. For written
    *    permission, please contact [EMAIL PROTECTED]
    *
    * 5. Products derived from this software may not be called "Apache",
  @@ -55,77 +55,114 @@
    */
   package org.apache.xpath.impl;
   
  +import org.apache.xpath.XPathException;
   import org.apache.xpath.expression.Expr;
   import org.apache.xpath.expression.Variable;
   import org.apache.xpath.expression.Visitor;
   import org.apache.xpath.impl.parser.Token;
   import org.apache.xpath.impl.parser.XPath;
   
  +
   /**
  - *
  + * Default implementation of variable.
    */
  -public class VariableImpl extends ExprImpl implements Variable {
  -
  -    String m_varName;    
  -
  -     /**
  -      * Constructor for VariableImpl.
  -      * @param i
  -      */
  -     public VariableImpl(int i) {
  -             super(i);
  -     }
  -
  -     /**
  -      * Constructor for VariableImpl.
  -      * @param p
  -      * @param i
  -      */
  -     public VariableImpl(XPath p, int i) {
  -             super(p, i);
  -     }
  -
  -     /**
  -      * @see org.apache.xpath.expression.Variable#getVariableName()
  -      */
  -     public String getVariableName() {
  -             return m_varName;
  -     }
  -
  -     /**
  -      * @see org.apache.xpath.expression.Expr#getExprType()
  -      */
  -     public short getExprType() {
  -             return VARIABLE_REF_EXPR;
  -     }
  -
  -     /**
  -      * @see org.apache.xpath.expression.Expr#cloneExpression()
  -      */
  -     public Expr cloneExpression() {
  -             // TODO
  -             return null;
  -     }
  -
  -     /**
  -      * @see org.apache.xpath.expression.Visitable#visited(Visitor)
  -      */
  -     public void visited(Visitor visitor) {
  -     }
  -
  -     /**
  -      * @see org.apache.xpath.impl.parser.SimpleNode#processToken(Token)
  -      */
  -     public void processToken(Token token) {
  -             super.processToken(token);
  +public class VariableImpl extends ExprImpl implements Variable
  +{
  +    /**
  +     * Name of the variable
  +     */
  +    String m_varName;
  +
  +    /**
  +     * Constructor for VariableImpl. Internal use only.
  +     *
  +     * @param i
  +     */
  +    public VariableImpl(int i)
  +    {
  +        super(i);
  +    }
  +
  +    /**
  +     * Constructor for VariableImpl. Internal use only.
  +     *
  +     * @param p
  +     * @param i
  +     */
  +    public VariableImpl(XPath p, int i)
  +    {
  +        super(p, i);
  +    }
  +
  +    /**
  +     * Constructor for cloning.
  +     *
  +     * @param expr
  +     */
  +    protected VariableImpl(VariableImpl expr)
  +    {
  +        super(expr.id);
  +
  +        m_varName = expr.m_varName;
  +    }
  +
  +    /**
  +     * @see org.apache.xpath.expression.Variable#getVariableName()
  +     */
  +    public String getVariableName()
  +    {
  +        return m_varName;
  +    }
  +    
  +     /* (non-Javadoc)
  +      * @see 
org.apache.xpath.expression.Variable#setVariableName(java.lang.String)
  +      */
  +     public void setVariableName(String name) throws XPathException {
  +             // TODO: check the validity of the var name
  +             
  +             m_varName = name;
  +     }
  +
  +    /**
  +     * @see org.apache.xpath.expression.Expr#getExprType()
  +     */
  +    public short getExprType()
  +    {
  +        return VARIABLE_REF_EXPR;
  +    }
  +
  +    /**
  +     * @see org.apache.xpath.expression.Expr#cloneExpression()
  +     */
  +    public Expr cloneExpression()
  +    {
  +        return new VariableImpl(this);
  +    }
  +
  +    /**
  +     * @see org.apache.xpath.expression.Visitable#visited(Visitor)
  +     */
  +    public void visited(Visitor visitor)
  +    {
  +        visitor.visitVariable(this);
  +    }
  +
  +    /**
  +     * @see org.apache.xpath.impl.parser.SimpleNode#processToken(Token)
  +     */
  +    public void processToken(Token token)
  +    {
  +        super.processToken(token);
           m_varName = token.image.trim();
  -     }
  +    }
   
  -     /**
  -      * @see org.apache.xpath.impl.ExprImpl#getString(StringBuffer, boolean)
  -      */
  -     public void getString(StringBuffer expr, boolean abbreviate) {
  -             expr.append('$').append(m_varName);
  -     }
  +    /**
  +     * @see org.apache.xpath.impl.ExprImpl#getString(StringBuffer, boolean)
  +     */
  +    public void getString(StringBuffer expr, boolean abbreviate)
  +    {
  +        expr.append('$').append(m_varName);
  +    }
  +     
   
   }
  
  
  
  1.1.2.3   +34 -5     
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/ExpressionFactoryImpl.java
  
  Index: ExpressionFactoryImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/ExpressionFactoryImpl.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- ExpressionFactoryImpl.java        26 Mar 2003 03:42:54 -0000      1.1.2.2
  +++ ExpressionFactoryImpl.java        27 Mar 2003 15:11:27 -0000      1.1.2.3
  @@ -56,6 +56,8 @@
   package org.apache.xpath.impl;
   
   import java.io.StringReader;
  +import java.math.BigDecimal;
  +import java.math.BigInteger;
   
   import org.apache.xpath.XPathException;
   import org.apache.xpath.datamodel.SequenceType;
  @@ -73,9 +75,8 @@
   import org.apache.xpath.impl.parser.XPath;
   
   /**
  - * Implement the ExpressionFactory to create XPath AST nodes.
  + * Default implementation expression factory to create XPath AST nodes.
    * //@TODO not fully implemented! 13-Mar-03 -sc
  - * @author villard
    */
   public class ExpressionFactoryImpl implements ExpressionFactory {
   
  @@ -173,26 +174,52 @@
        /**
         * @see 
org.apache.xpath.expression.ExpressionFactory#createCastExpr(org.apache.xpath.datamodel.SequenceType,
 org.apache.xpath.expression.OperatorExpr)
         */
  -     public CastOrTreatAsExpr createCastExpr(SequenceType seqType, 
OperatorExpr parExpr) {
  +     public CastOrTreatAsExpr createCastAsExpr(SequenceType seqType, 
OperatorExpr parExpr) {
                return null;
        }
   
  +     /* (non-Javadoc)
  +      * @see 
org.apache.xpath.expression.ExpressionFactory#createTreatAsExpr(org.apache.xpath.datamodel.SequenceType,
 org.apache.xpath.expression.OperatorExpr)
  +      */
  +     public CastOrTreatAsExpr createTreatAsExpr(
  +             SequenceType seqType,
  +             OperatorExpr parExpr) {
  +             return null;
  +
  +     }
  +
        /**
         * @see 
org.apache.xpath.expression.ExpressionFactory#createIntegerLiteralExpr(int)
         */
  -     public Literal createIntegerLiteralExpr(int value) {
  +     public Literal createIntegerLiteralExpr(BigInteger value) {
                LiteralImpl lit = new LiteralImpl();
                lit.setIntValue(value);
                return lit;
        }
  +     
  +     /* (non-Javadoc)
  +      * @see 
org.apache.xpath.expression.ExpressionFactory#createIntegerLiteralExpr(int)
  +      */
  +     public Literal createIntegerLiteralExpr(int value) {
  +             return createIntegerLiteralExpr(BigInteger.valueOf(value));
  +     }
  +
   
        /**
         * @see 
org.apache.xpath.expression.ExpressionFactory#createDecimalLiteralExpr(float)
         */
  -     public Literal createDecimalLiteralExpr(float value) {
  +     public Literal createDecimalLiteralExpr(double value) {
  +             return createDecimalLiteralExpr(new BigDecimal(value));
  +     }
  +     
  +     /* (non-Javadoc)
  +      * @see 
org.apache.xpath.expression.ExpressionFactory#createDecimalLiteralExpr(java.math.BigDecimal)
  +      */
  +     public Literal createDecimalLiteralExpr(BigDecimal value) {
                LiteralImpl lit = new LiteralImpl();
                lit.setDecimalValue(value);
                return lit;
  +
        }
   
        /**
  @@ -212,5 +239,7 @@
                lit.setDoubleValue(value);
                return lit;
        }
  +
  +
   
   }
  
  
  
  1.1.2.2   +12 -5     
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/StepExprImpl.java
  
  Index: StepExprImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/Attic/StepExprImpl.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- StepExprImpl.java 13 Mar 2003 20:28:14 -0000      1.1.2.1
  +++ StepExprImpl.java 27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -63,13 +63,14 @@
   import org.apache.xpath.impl.parser.Axis;
   import org.apache.xpath.impl.parser.Node;
   import org.apache.xpath.impl.parser.SimpleNode;
  -import org.apache.xpath.impl.parser.Singletons;
   import org.apache.xpath.impl.parser.XPath;
   import org.apache.xpath.impl.parser.XPathTreeConstants;
   
   
   /**
  - * Implementation of step expression
  + * Default implementation of step. 
  + * %review% step is not an expression by itself: it's always ebbeded in path 
expression. 
  + * So make it inherit of SimpleNode?
    */
   public class StepExprImpl extends ExprImpl implements StepExpr
   {
  @@ -124,6 +125,14 @@
   
           //  super.jjtAddChild(new 
OperatorImpl(XPathTreeConstants.JJTPREDICATES), 1);
       }
  +    
  +    /**
  +     * Constructor for cloning     
  +     */
  +    private StepExprImpl(StepExprImpl step)
  +    {
  +     
  +    }
   
       /**
        * @see org.apache.xpath.expression.StepExpr#getPredicateAt(int)
  @@ -288,7 +297,7 @@
                   break;
                        case XPathTreeConstants.JJTDOT:
                                m_axisType = AXIS_SELF;
  -                             super.jjtAddChild(Singletons.DOT_KIND_TEST, 0);
  +                             super.jjtAddChild(n, 0);
                        break;
               case XPathTreeConstants.JJTAXISCHILD:
               case XPathTreeConstants.JJTAXISDESCENDANT:
  @@ -307,8 +316,6 @@
                   m_axisType = ((Axis) n).getAxis();
   
                   break;
  -
  -          
   
               case XPathTreeConstants.JJTNODETEST:
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +1 -1      
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/StepExpr.java
  
  Index: StepExpr.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/StepExpr.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- StepExpr.java     13 Mar 2003 20:28:17 -0000      1.1.2.1
  +++ StepExpr.java     27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -59,7 +59,7 @@
   
   
   /**
  - * Represents step expression.
  + * Represents step.
    * <pre>
    * [20]   StepExpr   ::=   (ForwardStep |  ReverseStep |  Literal) Predicates
    * [39]   ForwardStep   ::=   (ForwardAxis NodeTest) |  
AbbreviatedForwardStep
  
  
  
  1.1.2.2   +2 -6      
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/FunctionCall.java
  
  Index: FunctionCall.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/FunctionCall.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- FunctionCall.java 13 Mar 2003 20:28:17 -0000      1.1.2.1
  +++ FunctionCall.java 27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -63,13 +63,9 @@
   public interface FunctionCall extends OperatorExpr {
   
       /**
  -     * 
  +     * Gets the qualified name of the function
        */
  -    String getFunctionName();
  +    String getFunctionQName();
       
  -    /**
  -     * 
  -     */
  -    String getFunctionPrefix();
   
   }
  
  
  
  1.1.2.4   +10 -1     
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/Visitor.java
  
  Index: Visitor.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/Visitor.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- Visitor.java      26 Mar 2003 21:27:20 -0000      1.1.2.3
  +++ Visitor.java      27 Mar 2003 15:11:27 -0000      1.1.2.4
  @@ -63,35 +63,41 @@
        /**
         * Visit path expression
        * @param path
  +     * @return true to continue visiting the container expression
         */
        boolean visitPath(PathExpr path);
   
        /**
         * Visit step expression
  -     * @param
  +     * @param     
  +     * @return true to continue visiting the container expression
         */
        boolean visitStep(StepExpr step);
   
        /**
         * Visit literal expression
        * @param
  +     * * @return true to continue visiting the container expression
         */
        boolean visitLiteral(Literal literal);
        
        /**
         * Visit variable expression
         * @param
  +      * @return true to continue visiting the container expression
         */
        boolean visitVariable(Variable var);
   
        /**
         * Visit operator expression
        * @param
  +     * @return true to continue visiting the container expression
         */
        boolean visitOperator(OperatorExpr arithmetic);
   
        /**
         * Visit conditional expression
  +      * @return true to continue visiting the container expression
        * @param
         */
        boolean visitConditional(ConditionalExpr condition);
  @@ -99,16 +105,19 @@
        /**
         * Visit for or quantified expression
        * @param
  +     * @return true to continue visiting the container expression
         */
        boolean visitForOrQuantifiedExpr(ForAndQuantifiedExpr expr);
        
        /**
         * Visit instance of expression
  +      * @return true to continue visiting the container expression
         */
        boolean visitInstanceOf(InstanceOfExpr expr);
        
        /**
         * Visit 'castable as' expression
  +      * @return true to continue visiting the container expression
         */
        boolean visitCastableAs(CastableAsExpr expr);
   
  
  
  
  1.1.2.3   +61 -24    
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/Literal.java
  
  Index: Literal.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/Literal.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- Literal.java      24 Mar 2003 17:35:06 -0000      1.1.2.2
  +++ Literal.java      27 Mar 2003 15:11:27 -0000      1.1.2.3
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights 
  + * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -9,7 +9,7 @@
    * are met:
    *
    * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer. 
  + *    notice, this list of conditions and the following disclaimer.
    *
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in
  @@ -17,7 +17,7 @@
    *    distribution.
    *
    * 3. The end-user documentation included with the redistribution,
  - *    if any, must include the following acknowledgment:  
  + *    if any, must include the following acknowledgment:
    *       "This product includes software developed by the
    *        Apache Software Foundation (http://www.apache.org/)."
    *    Alternately, this acknowledgment may appear in the software itself,
  @@ -25,7 +25,7 @@
    *
    * 4. The names "Xalan" and "Apache Software Foundation" must
    *    not be used to endorse or promote products derived from this
  - *    software without prior written permission. For written 
  + *    software without prior written permission. For written
    *    permission, please contact [EMAIL PROTECTED]
    *
    * 5. Products derived from this software may not be called "Apache",
  @@ -60,8 +60,9 @@
   
   import org.apache.xpath.XPathException;
   
  +
   /**
  - * Represents literal expressions
  + * Represents literal expression type.
    * <pre>
    * [59]   Literal   ::=   NumericLiteral |  StringLiteral 
    * [58]   NumericLiteral   ::=   IntegerLiteral |  DecimalLiteral |  
DoubleLiteral 
  @@ -70,57 +71,93 @@
    * [3]   DoubleLiteral   ::=   (("." Digits) |  (Digits ("." [0-9]*)?)) ("e" 
| "E") ("+" | "-")? Digits 
    * [4]   StringLiteral ::=   ('"' (('"' '"') |  [^"])* '"') |  ("'" (("'" 
"'") |  [^'])* "'")
    * </pre>
  - * @see <a href="http://www.w3.org/TR/xpath20#id-literals";>XPath 2.0 
Specification</a>
  + * 
  + * @see <a href="http://www.w3.org/TR/xpath20#id-literals";>XPath 2.0
  + *      Specification</a>
    */
  -public interface Literal extends Expr {
  -
  +public interface Literal extends Expr
  +{
       /**
  -     * 
  +     * This expression is an integer literal
        */
       short INTEGER_LITERAL = 0;
   
       /**
  -     * 
  +     * This expression is a decimal literal
        */
       short DECIMAL_LITERAL = 1;
  -    
  +
       /**
  -     * 
  +     * This expression is an string literal
        */
       short STRING_LITERAL = 2;
  -    
  +
       /**
  -     * 
  +     * This expression is an double literal
        */
       short DOUBLE_LITERAL = 3;
   
       /**
        * Gets the literal type
  -     * @return short One of the four following literal type: 
<code>INTEGER_LITERAL</code>,
  -     * <code>DECIMAL_LITERAL</code>, <code>STRING_LITERAL</code>, 
<code>DOUBLE_LITERAL</code>.
  +     *
  +     * @return short One of the four following literal type:
  +     *         <code>INTEGER_LITERAL</code>, <code>DECIMAL_LITERAL</code>,
  +     *         <code>STRING_LITERAL</code>, <code>DOUBLE_LITERAL</code>.
        */
       short getLiteralType();
  -       
  +
  +    /**
  +     * Gets the integer literal
  +     *
  +     * @return DOCUMENT ME!
  +     *
  +     * @throws XPathException when the literal isn't an integer or cannot be
  +     *         represented by the primitive int type (in case of big integer)
  +     */
  +    int getIntegerLiteralAsInt() throws XPathException;
  +
       /**
  +     * Gets the integer literal
  +     *
  +     * @return DOCUMENT ME!
  +     *
        * @throws XPathException when the literal isn't an integer
        */
       BigInteger getIntegerLiteral() throws XPathException;
  -   
  +
       /**
  +     * Gets the decimal literal
  +     *
  +     * @return DOCUMENT ME!
  +     *
        * @throws XPathException when the literal isn't a decimal
        */
       BigDecimal getDecimalLiteral() throws XPathException;
  -   
  +
       /**
  +     * Gets the decimal literal as a double
  +     *
  +     * @return DOCUMENT ME!
  +     *
  +     * @throws XPathException when the literal isn't a decimal
  +     */
  +    double getDecimalLiteralAsDouble() throws XPathException;
  +
  +    /**
  +     * Gets the double literal
  +     *
  +     * @return DOCUMENT ME!
  +     *
        * @throws XPathException when the literal isn't a double
        */
       double getDoubleLiteral() throws XPathException;
  -  
  +
       /**
  +     * Gets the string literal
  +     *
  +     * @return DOCUMENT ME!
  +     *
        * @throws XPathException when the literal isn't a string
  -     */   
  +     */
       String getStringLiteral() throws XPathException;
  -    
  -   
  -   
   }
  
  
  
  1.1.2.2   +10 -1     
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/Variable.java
  
  Index: Variable.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/Variable.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- Variable.java     13 Mar 2003 20:28:17 -0000      1.1.2.1
  +++ Variable.java     27 Mar 2003 15:11:27 -0000      1.1.2.2
  @@ -55,8 +55,10 @@
    */
   package org.apache.xpath.expression;
   
  +import org.apache.xpath.XPathException;
  +
   /**
  - * Basic implementation of a Variable.
  + * Represents variable.
    */
   public interface Variable extends Expr {
   
  @@ -65,5 +67,12 @@
        * @return String
        */
       String getVariableName();
  +    
  +     /**
  +      * Sets the name of the variable.
  +      * @param name New name of the variable
  +      * @throws XPathException whenever the given name is not a valid 
variable name
  +      */
  +     void setVariableName(String name) throws XPathException;
   
   }
  
  
  
  1.1.2.3   +148 -64   
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/ExpressionFactory.java
  
  Index: ExpressionFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/expression/Attic/ExpressionFactory.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- ExpressionFactory.java    26 Mar 2003 03:42:56 -0000      1.1.2.2
  +++ ExpressionFactory.java    27 Mar 2003 15:11:27 -0000      1.1.2.3
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights 
  + * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -9,7 +9,7 @@
    * are met:
    *
    * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer. 
  + *    notice, this list of conditions and the following disclaimer.
    *
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in
  @@ -17,7 +17,7 @@
    *    distribution.
    *
    * 3. The end-user documentation included with the redistribution,
  - *    if any, must include the following acknowledgment:  
  + *    if any, must include the following acknowledgment:
    *       "This product includes software developed by the
    *        Apache Software Foundation (http://www.apache.org/)."
    *    Alternately, this acknowledgment may appear in the software itself,
  @@ -25,7 +25,7 @@
    *
    * 4. The names "Xalan" and "Apache Software Foundation" must
    *    not be used to endorse or promote products derived from this
  - *    software without prior written permission. For written 
  + *    software without prior written permission. For written
    *    permission, please contact [EMAIL PROTECTED]
    *
    * 5. Products derived from this software may not be called "Apache",
  @@ -58,98 +58,182 @@
   import org.apache.xpath.XPathException;
   import org.apache.xpath.datamodel.SequenceType;
   
  +import java.math.BigDecimal;
  +import java.math.BigInteger;
  +
   
   /**
  - * Allows the creation of XPath expressions either from string representation
  - * or directly using the object-oriented representation.
  + * Allows the creation of XPath expression either from string representation 
or
  + * by composing expressions.
    */
  -public interface ExpressionFactory {
  -
  -     
  +public interface ExpressionFactory
  +{
       /**
  -     * Create a expression from a string representation
  -     * @throws XPathException whenever the given expression isn't an XPath 
expression
  +     * Create a new XPath expression from a string representation
  +     *
  +     * @return A XPath expression
  +     *
  +     * @throws XPathException whenever the given expression isn't a valid 
XPath
  +     *         expression
        */
       public Expr createExpr(String expr) throws XPathException;
   
  -     /**
  -      * Create a relative or absolute path expression 
  -      */
  -     public PathExpr createPathExpr(boolean isAbsolute);
  -
  -     /**
  -      * Create a step expression without qualifiers
  -      */
  -     public StepExpr createStepExpr(short axisType, NodeTest nodeTest);
  -
  -     /**
  -      * Create a name test
  -      */
  -     public NodeTest createNameTest(String namespace, String name);
  -
  -     /**
  -      * Create a predicate qualifier
  -      * @param expr
  -      */
  -     public Expr createPredicate(Expr expr);
  -
  -     /**
  -      * Create a combining expression
  -      */
  -     public OperatorExpr createCombineExpr(short type);
  -    
       /**
  -     * Create a quantifier expression of type 'some' with one clause
  +     * Create a new relative or absolute path expression
  +     *
  +     * @return An XPath expression of type 'path'
        */
  -    public ForAndQuantifiedExpr createSomeExpr(Expr clause);
  +    public PathExpr createPathExpr(boolean isAbsolute);
   
       /**
  -     * Create a quantifier expression of type 'every'  with one clause
  +     * Create a new step. This step contains no qualifier.
  +     *
  +     * @return A step
        */
  -    public ForAndQuantifiedExpr createEveryExpr(Expr clause);
  +    public StepExpr createStepExpr(short axisType, NodeTest nodeTest);
   
       /**
  -     * Create an logical expression of type 'and' with at least two operands
  +     * Create a name test.
  +     *
  +     * @return A name test
        */
  -    public OperatorExpr createAndExpr(Expr firstOperand, Expr secondOperand);
  -    
  +    public NodeTest createNameTest(String namespace, String name);
  +
       /**
  -     * Create an logical expression of type 'or' with at least two operands
  +     * Create a new combining expression of the given type
  +     *
  +     * @param type The type of the combining expression to create.
  +     *
  +     * @return An XPath expression of type combine
  +     *
  +     * @see OperatorExpr#UNION_COMBINE
  +     * @see OperatorExpr#EXCEPT_COMBINE
  +     * @see OperatorExpr#INTERSECT_COMBINE
        */
  -    public OperatorExpr createOrExpr(Expr firstOperand, Expr secondOperand);
  -    
  +    public OperatorExpr createCombineExpr(short type);
  +
       /**
  -     * Create an if expression
  +     * Create a new quantifier expression of type 'some' with one clause
  +     *
  +     * @param clause First clause of the new quantifier expression
  +     *
  +     * @return An XPath expression of type 'some'
        */
  -    public ConditionalExpr createIfExpr(Expr test, Expr thenExpr, Expr 
elseExpr);
  -    
  +    public ForAndQuantifiedExpr createSomeExpr(Expr clause);
  +
       /**
  -     * Create a for expression
  +     * Create a quantifier expression of type 'every'  with one clause
  +     *
  +     * @return An XPath expression of type 'every'
        */
  -    public ForAndQuantifiedExpr createForExpr(String varName, Expr 
clauseExpr, Expr quantifiedExpr);
  -    
  +    public ForAndQuantifiedExpr createEveryExpr(Expr clause);
  +
       /**
  -     * Create a cast as expression 
  +     * Create a logical expression of type 'and' with at least two operands
  +     *
  +     * @param operand1 XPath expression to compose
  +     * @param operand2 XPath expression to compose
  +     *
  +     * @return An XPath expression of type 'and'
  +     */
  +    public OperatorExpr createAndExpr(Expr operand1, Expr operand2);
  +
  +    /**
  +     * Create a new logical expression of type 'or' with at least two 
operands
  +     *
  +     * @param operand1 XPath expression to compose
  +     * @param operand2 XPath expression to compose
  +     *
  +     * @return An XPath expression of type 'or'
  +     */
  +    public OperatorExpr createOrExpr(Expr operand1, Expr operand2);
  +
  +    /**
  +     * Create a new conditional expression
  +     *
  +     * @param test The boolean XPath expression
  +     * @param thenExpr The XPath expression uses in the then clause
  +     * @param elseExpr The XPath expression uses in the else clause
  +     *
  +     * @return An XPath expression of type 'if'
        */
  -    public CastOrTreatAsExpr createCastExpr(SequenceType seqType, 
OperatorExpr parExpr);
  -    
  +    public ConditionalExpr createIfExpr(Expr test, Expr thenExpr, Expr 
elseExpr);
  +
       /**
  -     * Create an integer expression 
  +     * Create a new for expression
  +     *
  +     * @param varName The name of the binding variable
  +     * @param clauseExpr The for clause expression
  +     * @param quantifiedExpr The content of the for expression
  +     *
  +     * @return An XPath expression of type for
  +     */
  +    public ForAndQuantifiedExpr createForExpr(String varName, Expr 
clauseExpr,
  +        Expr quantifiedExpr);
  +
  +    /**
  +     * Create a new cast as expression
  +     *
  +     * @param seqType The cast as type
  +     * @param parExpr The XPath expression to cast as
  +     *
  +     * @return An XPath expression of type cast as
  +     */
  +    public CastOrTreatAsExpr createCastAsExpr(SequenceType seqType,
  +        OperatorExpr parExpr);
  +
  +    /**
  +     * Create a new treat as expression
  +     *
  +     * @param seqType The treat as type
  +     * @param parExpr The XPath expression to treat as
  +     *
  +     * @return An XPath expression of type treat as
  +     */
  +    public CastOrTreatAsExpr createTreatAsExpr(SequenceType seqType,
  +        OperatorExpr parExpr);
  +
  +    /**
  +     * Create a new integer literal
  +     *
  +     * @return A literal of type integer
        */
       public Literal createIntegerLiteralExpr(int value);
  -    
  +
  +    /**
  +     * Create a new 'big' integer literal
  +     *
  +     * @param value The big integer
  +     *
  +     * @return A literal of type integer
  +     */
  +    public Literal createIntegerLiteralExpr(BigInteger value);
  +
  +    /**
  +     * Create a new decimal literal
  +     *
  +     * @return A literal of type decimal
  +     */
  +    public Literal createDecimalLiteralExpr(double value);
  +
       /**
  -     * Create a decimal expression 
  +     * Create a new 'big' decimal literal
  +     *
  +     * @return A literal of type decimal
        */
  -    public Literal createDecimalLiteralExpr(float value);
  -    
  +    public Literal createDecimalLiteralExpr(BigDecimal value);
  +
       /**
  -     * Create a string expression 
  +     * Create a new string literal
  +     *
  +     * @return A literal of type string
        */
       public Literal createStringLiteralExpr(String value);
  -    
  +
       /**
  -     * Create a double expression 
  +     * Create a new double literal
  +     *
  +     * @return A literal of type double
        */
       public Literal createDoubleLiteralExpr(double value);
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.6   +7 -13     
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/test/Attic/TestSamples.xml
  
  Index: TestSamples.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/test/Attic/TestSamples.xml,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- TestSamples.xml   26 Mar 2003 21:27:22 -0000      1.1.2.5
  +++ TestSamples.xml   27 Mar 2003 15:11:27 -0000      1.1.2.6
  @@ -107,12 +107,6 @@
                </ast>
        </expr>
        
  -     <expr value="()" normalized-round-trip="">
  -             <ast>
  -                     <node name="ExprSequence">                              
  -                     </node>
  -             </ast>
  -     </expr>
        
        <expr value="(10)" normalized-round-trip="10">
                <ast>
  @@ -251,12 +245,12 @@
        </expr>
        
        <!-- abbreviate step -->
  -     <expr value=".">
  +     <expr value="." normalized-round-trip="self::.">
                <ast>
                        <node name="ExprSequence">
                                <node name="PathExpr">
                                        <node name="StepExpr">
  -                                             <node name="AnyKindTest"/>
  +                                             <node name="Dot"/>
                                        </node>
                                </node>
                        </node>
  @@ -531,7 +525,8 @@
        </expr>
        
        
  -     <expr value="tutu/toto|titi">
  +     <expr value="tutu/toto|titi" normalized-round-trip="(tutu/toto|titi)">
  +             <!-- maybe not the good normalization!! -->
                <ast>
                        <node name="ExprSequence">
                                <node name="UnionExpr">
  @@ -670,7 +665,9 @@
                </ast>
        </expr>
        
  -     <expr value="4 div 12">
  +     <expr value="4 div 12" normalized-round-trip="(4 div 12)">
  +             <!-- maybe not the good normalization!! -->
  +     
                <ast>
                        <node name="ExprSequence">
                                <node name="MultiplicativeExpr">
  @@ -993,12 +990,9 @@
        </expr>
   
        <!-- Semantically invalid expression (parser should return an error) 
-->        
  -     <expr value="9876543210" valid="false"/>
        
        <expr value="toto/(45+23)" valid="false"/>
        <expr value="a/(b,c)/d" valid="false"/>
  -     
  -     <expr value="if (a) then b" valid="false"/>
        
        <!-- Expressions for which no common AST has been decided yet -->
        
  
  
  
  1.1.2.5   +72 -58    
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/test/Attic/TestSamples.java
  
  Index: TestSamples.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/test/Attic/TestSamples.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- TestSamples.java  26 Mar 2003 21:27:22 -0000      1.1.2.4
  +++ TestSamples.java  27 Mar 2003 15:11:27 -0000      1.1.2.5
  @@ -55,15 +55,11 @@
    */
   package org.apache.xpath.test;
   
  -import java.io.StringReader;
  -
  -import javax.xml.parsers.DocumentBuilder;
  -import javax.xml.parsers.DocumentBuilderFactory;
  -
   import org.apache.xpath.XPathFactory;
   import org.apache.xpath.expression.CastableAsExpr;
   import org.apache.xpath.expression.ConditionalExpr;
   import org.apache.xpath.expression.Expr;
  +import org.apache.xpath.expression.ExprContext;
   import org.apache.xpath.expression.ExpressionFactory;
   import org.apache.xpath.expression.ForAndQuantifiedExpr;
   import org.apache.xpath.expression.InstanceOfExpr;
  @@ -80,12 +76,20 @@
   import org.apache.xpath.impl.parser.XPath;
   import org.apache.xpath.impl.parser.XPathTreeConstants;
   import org.apache.xpath.objects.XObject;
  +
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
   import org.w3c.dom.Node;
   import org.w3c.dom.NodeList;
  +
   import org.xml.sax.InputSource;
   
  +import java.io.StringReader;
  +import java.math.BigInteger;
  +
  +import javax.xml.parsers.DocumentBuilder;
  +import javax.xml.parsers.DocumentBuilderFactory;
  +
   
   /**
    * Simple unit test for various samples; adhoc.
  @@ -157,7 +161,7 @@
                   + pathExpr.getString(false));
   
               StepExpr se = (StepExpr) pathExpr.getOperand(0); // first step
  -            se.appendPredicate(exprFct.createIntegerLiteralExpr(50));
  +            
se.appendPredicate(exprFct.createIntegerLiteralExpr(BigInteger.valueOf(50)));
               System.out.println("/toto[50]/descendant::titi =? "
                   + pathExpr.getString(true));
               System.out.println("/child::toto[50]/descendant::titi =? "
  @@ -268,81 +272,91 @@
               {
                   tree = parser.XPath2();
   
  -                if (SimpleNode.PRODUCE_RAW_TREE)
  +                if ("false".equals(((Element) node).getAttribute("valid")))
                   {
  -                    //  if (dumpTree)
  -                    //{
  -                    tree.dump("|");
  -
  -                    //   }
  +                    // the parser should have raise an exception
  +                    System.err.println(
  +                        "The expression has not been detected as invalid!");
  +                    testOK = false;
                   }
                   else
                   {
  -                    Expr expr = (Expr) tree.jjtGetChild(0);
  -
  -                    // Gets the reference AST to compare with
  -                    NodeList astNodes = ((Element) 
node).getElementsByTagName(
  -                            "ast");
  +                    if (SimpleNode.PRODUCE_RAW_TREE)
  +                    {
  +                        //  if (dumpTree)
  +                        //{
  +                        tree.dump("|");
   
  -                    if ((astNodes != null) && (astNodes.getLength() >= 1))
  +                        //   }
  +                    }
  +                    else
                       {
  -                        Node astNode = astNodes.item(0);
  +                        Expr expr = (Expr) tree.jjtGetChild(0);
  +
  +                        // Gets the reference AST to compare with
  +                        NodeList astNodes = ((Element) node)
  +                            .getElementsByTagName("ast");
   
  -                        if (!checkAST((SimpleNode) expr,
  -                                    (Element) ((Element) 
astNode).getElementsByTagName(
  -                                        "node").item(0)))
  +                        if ((astNodes != null) && (astNodes.getLength() >= 
1))
                           {
  -                            System.err.println(
  -                                "Generated AST doesn't match the reference 
one");
  +                            Node astNode = astNodes.item(0);
   
  -                            tree.dump("|");
  +                            if (!checkAST((SimpleNode) expr,
  +                                        (Element) ((Element) 
astNode).getElementsByTagName(
  +                                            "node").item(0)))
  +                            {
  +                                System.err.println(
  +                                    "Generated AST doesn't match the 
reference one");
   
  -                            // Produce the raw tree
  -                            System.err.println("Raw tree is");
  +                                tree.dump("|");
   
  -                            SimpleNode.PRODUCE_RAW_TREE = true;
  +                                // Produce the raw tree
  +                                System.err.println("Raw tree is");
   
  -                            parser = new XPath(new 
StringReader(xpathString));
  -                            tree = parser.XPath2();
  -                            tree.dump("|");
  +                                SimpleNode.PRODUCE_RAW_TREE = true;
   
  -                            SimpleNode.PRODUCE_RAW_TREE = false;
  +                                parser = new XPath(new 
StringReader(xpathString));
  +                                tree = parser.XPath2();
  +                                tree.dump("|");
  +
  +                                SimpleNode.PRODUCE_RAW_TREE = false;
  +                            }
  +                        }
  +                        else
  +                        {
  +                            System.err.println("No reference AST provided");
                           }
  -                    }
  -                    else
  -                    {
  -                        System.err.println("No reference AST provided");
  -                    }
   
  -                    String ab = expr.getString(true);
  +                        String ab = expr.getString(true);
   
  -                    String norm = ((Element) node).getAttribute(
  -                            "normalized-round-trip");
  +                        String norm = ((Element) node).getAttribute(
  +                                "normalized-round-trip");
   
  -                    if ("".equals(norm))
  -                    {
  -                        norm = xpathString;
  -                    }
  +                        if ("".equals(norm))
  +                        {
  +                            norm = xpathString;
  +                        }
   
  -                    if (!ab.equals(norm))
  -                    {
  -                        System.err.print(
  -                            "Bad external or internal representation: ");
  -                        System.err.println(ab + "  !=  " + xpathString);
  +                        if (!ab.equals(norm))
  +                        {
  +                            System.err.print(
  +                                "Bad external or internal representation: ");
  +                            System.err.println(ab + "  !=  " + xpathString);
   
  -                        tree.dump("|");
  +                            tree.dump("|");
   
  -                        // Produce the raw tree
  -                        System.err.println("Raw tree is");
  +                            // Produce the raw tree
  +                            System.err.println("Raw tree is");
   
  -                        SimpleNode.PRODUCE_RAW_TREE = true;
  +                            SimpleNode.PRODUCE_RAW_TREE = true;
   
  -                        parser = new XPath(new StringReader(xpathString));
  -                        tree = parser.XPath2();
  -                        tree.dump("|");
  +                            parser = new XPath(new 
StringReader(xpathString));
  +                            tree = parser.XPath2();
  +                            tree.dump("|");
   
  -                        SimpleNode.PRODUCE_RAW_TREE = false;
  -                        testOK = false;
  +                            SimpleNode.PRODUCE_RAW_TREE = false;
  +                            testOK = false;
  +                        }
                       }
                   }
               }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.6   +12 -12    
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/parser/Attic/SimpleNode.java
  
  Index: SimpleNode.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/parser/Attic/SimpleNode.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- SimpleNode.java   26 Mar 2003 21:27:21 -0000      1.1.2.5
  +++ SimpleNode.java   27 Mar 2003 15:11:27 -0000      1.1.2.6
  @@ -280,7 +280,7 @@
                   break;
   
               case XPathTreeConstants.JJTDOT:
  -                newNode = Singletons.DOT;
  +                newNode = Singletons.DOT_KIND_TEST;
   
                   break;
   
  @@ -311,52 +311,52 @@
   
                   break;
   
  -            case XPathTreeConstants.JJTATTRIBUTETYPE: //92;
  +            case XPathTreeConstants.JJTATTRIBUTETYPE: 
                   newNode = Singletons.ATTRIBUTE;
   
                   break;
   
  -            case XPathTreeConstants.JJTATOMICTYPE: //104;
  +            case XPathTreeConstants.JJTATOMICTYPE: 
                   newNode = Singletons.ATOMIC;
   
                   break;
   
  -            case XPathTreeConstants.JJTNODE: //93;
  +            case XPathTreeConstants.JJTNODE:
                   newNode = Singletons.NODE;
   
                   break;
   
  -            case XPathTreeConstants.JJTPROCESSINGINSTRUCTION: //94;
  +            case XPathTreeConstants.JJTPROCESSINGINSTRUCTION: 
                   newNode = Singletons.PI;
   
                   break;
   
  -            case XPathTreeConstants.JJTCOMMENT: //95;
  +            case XPathTreeConstants.JJTCOMMENT:
                   newNode = Singletons.COMMENT;
   
                   break;
   
  -            case XPathTreeConstants.JJTTEXT: //96;
  +            case XPathTreeConstants.JJTTEXT: 
                   newNode = Singletons.TEXT;
   
                   break;
   
  -            case XPathTreeConstants.JJTDOCUMENT: //97;
  +            case XPathTreeConstants.JJTDOCUMENT: 
                   newNode = Singletons.DOCUMENT;
   
                   break;
   
  -            case XPathTreeConstants.JJTITEM: //98;
  +            case XPathTreeConstants.JJTITEM: 
                   newNode = Singletons.ITEM;
   
                   break;
   
  -            case XPathTreeConstants.JJTMULTIPLY: //106;
  +            case XPathTreeConstants.JJTMULTIPLY:
                   newNode = Singletons.MULTIPLY;
   
                   break;
   
  -            case XPathTreeConstants.JJTQMARK: //107;
  +            case XPathTreeConstants.JJTQMARK: 
                   newNode = Singletons.QMARK;
   
                   break;
  @@ -441,6 +441,7 @@
   
                   break;
   
  +                     // Below: xpath grammar unit not implemented yet
               case XPathTreeConstants.JJTMATCHPATTERN:
               case XPathTreeConstants.JJTPATTERN:
               case XPathTreeConstants.JJTPATHPATTERN:
  @@ -455,7 +456,6 @@
               case XPathTreeConstants.JJTINTERSECTEXCEPTEXPR: //37;           
               case XPathTreeConstants.JJTVALIDATEEXPR: //44;
               case XPathTreeConstants.JJTRBRACE: //47;
  -
               case XPathTreeConstants.JJTSCHEMACONTEXT: //84;
               case XPathTreeConstants.JJTSCHEMAGLOBALCONTEXT: //85;
               case XPathTreeConstants.JJTSCHEMACONTEXTSTEP: //87;
  
  
  
  1.1.2.3   +2 -9      
xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/parser/Attic/Singletons.java
  
  Index: Singletons.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/xpath_rwapi/src2/org/apache/xpath/impl/parser/Attic/Singletons.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- Singletons.java   25 Mar 2003 23:46:08 -0000      1.1.2.2
  +++ Singletons.java   27 Mar 2003 15:11:28 -0000      1.1.2.3
  @@ -112,11 +112,6 @@
       static final public StepExprImpl SLASHSLASH;
   
       /**
  -     * Dot singleton
  -     */
  -    protected static final Singletons DOT = new 
Singletons(XPathTreeConstants.JJTDOT);
  -
  -    /**
        * Empty singleton (appear in sequencetype)
        */
       protected static final Singletons EMPTY = new 
Singletons(XPathTreeConstants.JJTEMPTY);
  @@ -189,10 +184,8 @@
   
           SLASHSLASH = new StepExprImpl(StepExpr.AXIS_DESCENDANT_OR_SELF, kt);
   
  -        DOT_KIND_TEST = new KindTestImpl();
  -
  -        //           well use any kind test for dot, but it's more than 
that..
  -        DOT_KIND_TEST.setKindTest(NodeTest.ANY_KIND_TEST);
  +        DOT_KIND_TEST = new KindTestImpl(XPathTreeConstants.JJTDOT);
  +        DOT_KIND_TEST.setKindTest(NodeTest.CONTEXT_ITEM_TEST);
       }
   
       /**
  
  
  

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

Reply via email to