santiagopg    2002/08/30 07:49:41

  Modified:    java/src/org/apache/xalan/xsltc/compiler xpath.cup
  Log:
  Fix for Bugzilla 12125.
  
  Revision  Changes    Path
  1.40      +21 -43    
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.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- xpath.cup 27 Jun 2002 21:52:09 -0000      1.39
  +++ xpath.cup 30 Aug 2002 14:49:41 -0000      1.40
  @@ -116,10 +116,6 @@
           return _lineNumber;
       }
   
  -    public QName getQName(String name) {
  -          return _parser.getQName(name);
  -    }    
  -
       public QName getQNameIgnoreDefaultNs(String name) {
             return _parser.getQNameIgnoreDefaultNs(name);
       }    
  @@ -133,14 +129,10 @@
       }
   
       public int findNodeType(int axis, Object test) {
  -
        if (test == null) {  // *
  -            if (axis == Axis.ATTRIBUTE)
  -                return NodeTest.ATTRIBUTE;
  -            else if (axis == Axis.NAMESPACE)
  -                return -1;
  -            else
  -                return NodeTest.ELEMENT;
  +         return (axis == Axis.ATTRIBUTE) ? 
  +             NodeTest.ATTRIBUTE :
  +             (axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
           }
           else if (test instanceof Integer) {
               return ((Integer)test).intValue();
  @@ -149,30 +141,24 @@
            QName name = (QName)test;
   
            if (axis == Axis.NAMESPACE) {
  -                if (name.toString().equals("*"))
  -                    return -1;
  -                else
  -                    return _xsltc.registerNamespace(name);
  +             return (name.toString().equals("*")) ? -1
  +                 : _xsltc.registerNamespace(name);
               }
   
  -            if (name.getPrefix() == null || name.getNamespace() == null) {
  -                final String local = name.getLocalPart();
  -             if (local.equals("*")) {
  -                    if (axis == Axis.ATTRIBUTE)
  -                        return(NodeTest.ATTRIBUTE);
  -                    else
  -                        return(NodeTest.ELEMENT);
  -                }
  -                else if (local.equals("@*"))
  -                    return(NodeTest.ATTRIBUTE);
  -                name = new QName(null,null,local);
  -            }
  -            if (axis == Axis.ATTRIBUTE) {
  -                return _xsltc.registerAttribute(name);
  -            }
  -            else {
  -             return _xsltc.registerElement(name);
  -            }
  +         if (name.getNamespace() == null) {
  +             final String local = name.getLocalPart();
  +
  +             if (local.equals("*")) {
  +                 return (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE
  +                     : NodeTest.ELEMENT;
  +             }
  +             else if (local.equals("@*")) {
  +                 return NodeTest.ATTRIBUTE;
  +             }
  +         }
  +
  +         return (axis == Axis.ATTRIBUTE) ? _xsltc.registerAttribute(name)
  +             : _xsltc.registerElement(name); 
           }
       }
   
  @@ -942,19 +928,11 @@
   
   FunctionName ::= QName:fname
           {: 
  -         final String prefix = fname.getPrefix();
  -         if (prefix == null || prefix.equals(Constants.EMPTYSTRING)) {
  -             fname = parser.getQNameIgnoreDefaultNs(fname.getLocalPart());
  -         }
            RESULT = fname; 
        :};
   
   VariableName ::= QName:vname
           {: 
  -         final String prefix = vname.getPrefix();
  -         if (prefix == null || prefix.equals(Constants.EMPTYSTRING)) {
  -             vname = parser.getQNameIgnoreDefaultNs(vname.getLocalPart());
  -         }
            RESULT = vname; 
        :};
   
  @@ -994,7 +972,7 @@
                {: RESULT = qn; :};
   
   QName ::= QNAME:qname
  -        {: RESULT = parser.getQName(qname); :}
  +        {: RESULT = parser.getQNameIgnoreDefaultNs(qname); :}
   
        | DIV
           {: RESULT = parser.getQNameIgnoreDefaultNs("div"); :}
  
  
  

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

Reply via email to