mmidy       2002/08/16 14:23:48

  Modified:    java/src/org/apache/xalan/processor Tag: xslt20
                        StylesheetHandler.java XSLTSchema.java
               java/src/org/apache/xalan/templates Tag: xslt20
                        Constants.java
               java/src/org/apache/xpath/parser Tag: xslt20 SimpleNode.java
               java/src/org/apache/xpath/res Tag: xslt20
                        XPATHErrorResources.properties
  Added:       java/src/org/apache/xalan/templates Tag: xslt20
                        ElemAnalyzeString.java ElemMatchingSubstring.java
                        ElemNonMatchingSubstring.java FuncRegexGroup.java
               java/src/org/apache/xpath/functions Tag: xslt20
                        FuncMatches.java FuncReplace.java FuncTokenize.java
               java/src/org/apache/xpath/parser/regexp Tag: xslt20
                        BMPattern.java Match.java Op.java
                        ParseException.java ParserForXMLSchema.java
                        REUtil.java RangeToken.java RegexParser.java
                        RegularExpression.java Token.java
  Log:
  Implement Regular Expressions. For now, we copied all the parser code from Xerces' 
implementation. Had to make some method public and add a couple new methods to support 
XSLT functions.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.53.2.1.2.1 +4 -0      
xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java
  
  Index: StylesheetHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java,v
  retrieving revision 1.53.2.1
  retrieving revision 1.53.2.1.2.1
  diff -u -r1.53.2.1 -r1.53.2.1.2.1
  --- StylesheetHandler.java    14 Aug 2002 19:21:26 -0000      1.53.2.1
  +++ StylesheetHandler.java    16 Aug 2002 21:23:47 -0000      1.53.2.1.2.1
  @@ -158,6 +158,10 @@
             func = new org.apache.xalan.templates.FuncCurrentGroup();
   
             SimpleNode.m_builtInFunctions.put(new QName("current-group"), func);
  +          
  +          func = new org.apache.xalan.templates.FuncRegexGroup();
  +
  +          SimpleNode.m_builtInFunctions.put(new QName("regex-group"), func);
           }
         }
       }
  
  
  
  1.29.2.1.2.1 +35 -9     xml-xalan/java/src/org/apache/xalan/processor/XSLTSchema.java
  
  Index: XSLTSchema.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/XSLTSchema.java,v
  retrieving revision 1.29.2.1
  retrieving revision 1.29.2.1.2.1
  diff -u -r1.29.2.1 -r1.29.2.1.2.1
  --- XSLTSchema.java   14 Aug 2002 19:21:26 -0000      1.29.2.1
  +++ XSLTSchema.java   16 Aug 2002 21:23:47 -0000      1.29.2.1.2.1
  @@ -277,7 +277,13 @@
                                               XSLTAttributeDef.T_EXPR, false);
       XSLTAttributeDef groupEndWithAttr = new XSLTAttributeDef(null,
                                               "group-ending-with",
  -                                            XSLTAttributeDef.T_EXPR, false);        
                                                                                       
                                         
  +                                            XSLTAttributeDef.T_EXPR, false);
  +    XSLTAttributeDef regexAttrRequired = new XSLTAttributeDef(null,
  +                                            "regex",
  +                                            XSLTAttributeDef.T_AVT, true);          
                 
  +    XSLTAttributeDef flagsAttr = new XSLTAttributeDef(null,
  +                                            "flags",
  +                                            XSLTAttributeDef.T_AVT, false);         
                                                                                       
                                   
                XSLTElementDef charData = new XSLTElementDef(this, null, "text()",
                                   null /*alias */, null /* elements */, null,  /* 
attributes */
                                   new ProcessorCharacters(),
  @@ -298,11 +304,11 @@
       XSLTAttributeDef xslResultAttr =
         new XSLTAttributeDef(Constants.S_XSLNAMESPACEURL, "*",
                              XSLTAttributeDef.T_CDATA, false);
  -    XSLTElementDef[] templateElements = new XSLTElementDef[26];
  -    XSLTElementDef[] templateElementsAndParams = new XSLTElementDef[27];
  -    XSLTElementDef[] templateElementsAndSort = new XSLTElementDef[27];
  +    XSLTElementDef[] templateElements = new XSLTElementDef[27];
  +    XSLTElementDef[] templateElementsAndParams = new XSLTElementDef[28];
  +    XSLTElementDef[] templateElementsAndSort = new XSLTElementDef[28];
       //exslt
  -    XSLTElementDef[] exsltFunctionElements = new XSLTElementDef[27];// although 
should exclude some template elements.
  +    XSLTElementDef[] exsltFunctionElements = new XSLTElementDef[28];// although 
should exclude some template elements.
       
       XSLTElementDef[] charTemplateElements = new XSLTElementDef[16];
       XSLTElementDef resultElement = new XSLTElementDef(this, null, "*",
  @@ -406,14 +412,33 @@
                                     new XSLTAttributeDef[]{ selectAttrRequired,
                                                             spaceAttr }, 
                                                  new ProcessorTemplateElem(),
  -                                  ElemForEach.class /* class object */, true, 
false, true, 20, true);
  -             XSLTElementDef xslForEachGroup = new XSLTElementDef(this,
  +                                  ElemForEach.class /* class object */, true, 
false, true, 20, true);                
  +    XSLTElementDef xslMatchingSubstring = new XSLTElementDef(this,
  +                                  Constants.S_XSLNAMESPACEURL, "matching-substring",
  +                                  null /*alias */, templateElements,  // (#PCDATA 
%instructions; %result-elements;)*
  +                                  new XSLTAttributeDef[]{}, 
  +                                               new ProcessorTemplateElem(),
  +                                  ElemMatchingSubstring.class /* class object */, 
false, false, true, 19, false);                                                        
                                      
  +    XSLTElementDef xslNonMatchingSubstring = new XSLTElementDef(this,
  +                                  Constants.S_XSLNAMESPACEURL, 
"non-matching-substring",
  +                                  null /*alias */, templateElements,  // (#PCDATA 
%instructions; %result-elements;)*
  +                                  new XSLTAttributeDef[]{}, 
  +                                               new ProcessorTemplateElem(),
  +                                  ElemNonMatchingSubstring.class /* class object 
*/, false, false, true, 19, false);                                                    
                                              
  +    XSLTElementDef xslAnalyzeString = new XSLTElementDef(this,
  +                                  Constants.S_XSLNAMESPACEURL, "analyze-string",
  +                                  null /*alias */, new 
XSLTElementDef[]{xslMatchingSubstring, xslNonMatchingSubstring},  // (#PCDATA 
%instructions; %result-elements; | xsl:sort)*
  +                                  new XSLTAttributeDef[]{ selectAttrRequired,
  +                                                          regexAttrRequired, 
flagsAttr }, 
  +                                               new ProcessorTemplateElem(),
  +                                  ElemAnalyzeString.class /* class object */, true, 
false, false, 20, true);                                  
  +    XSLTElementDef xslForEachGroup = new XSLTElementDef(this,
                                     Constants.S_XSLNAMESPACEURL, "for-each-group",
                                     null /*alias */, templateElementsAndSort,  // 
(#PCDATA %instructions; %result-elements; | xsl:sort)*
                                     new XSLTAttributeDef[]{ selectAttrRequired,
                                                             groupByAttr, 
groupAdjAttr, groupStartWithAttr, groupEndWithAttr }, 
                                                  new ProcessorTemplateElem(),
  -                                  ElemForEachGroup.class /* class object */, true, 
false, true, 20, true);                                  
  +                                  ElemForEachGroup.class /* class object */, true, 
false, true, 20, true);                                                                
       XSLTElementDef xslIf = new XSLTElementDef(this,
                                                 Constants.S_XSLNAMESPACEURL,
                                                 "if", null /*alias */,
  @@ -610,7 +635,8 @@
       templateElements[i++] = xslCallTemplate;
       templateElements[i++] = xslApplyImports;
       templateElements[i++] = xslForEach;
  -             templateElements[i++] = xslForEachGroup;
  +     templateElements[i++] = xslForEachGroup;
  +     templateElements[i++] = xslAnalyzeString;
       templateElements[i++] = xslValueOf;
       templateElements[i++] = xslCopyOf;
       templateElements[i++] = xslNumber;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.14.2.1.2.1 +11 -3     xml-xalan/java/src/org/apache/xalan/templates/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/Constants.java,v
  retrieving revision 1.14.2.1
  retrieving revision 1.14.2.1.2.1
  diff -u -r1.14.2.1 -r1.14.2.1.2.1
  --- Constants.java    14 Aug 2002 19:21:28 -0000      1.14.2.1
  +++ Constants.java    16 Aug 2002 21:23:47 -0000      1.14.2.1.2.1
  @@ -197,7 +197,7 @@
     ELEMNAME_EXTENSIONSCRIPT = 86, ELEMNAME_OUTPUT = 80,
     ELEMNAME_COMPONENT = 81, ELEMNAME_SCRIPT = 82;
   
  -  // Next free number: 96 (88-93 used for XSLT2.0 and EXSLT elements);
  +  // Next free number: 99 (88-93 used for XSLT2.0 and EXSLT elements);
   
     /**
      * Literals for XSL element names.  Note that there are more
  @@ -282,13 +282,19 @@
       ELEMNAME_FUNCRESULT_STRING = "result",
       ELEMNAME_PRINCIPALRESULTDOCUMENT_STRING = "principal-result-document",
       ELEMNAME_RESULTDOCUMENT_STRING = "result-document",
  -    ELEMNAME_NAMESPACE_STRING = "namespace";
  +    ELEMNAME_NAMESPACE_STRING = "namespace",
  +    ELEMNAME_ANALYZESTRING_STRING = "analyze-string",
  +    ELEMNAME_MATCHINGSUBSTRING_STRING = "matching-substring",
  +    ELEMNAME_NONMATCHINGSUBSTRING_STRING = "non-matching-substring";
     public static final int
       ELEMNAME_FUNCTION = 88,
       ELEMNAME_FUNCRESULT = 89,
       ELEMNAME_PRINCIPALRESULTDOCUMENT = 90,
       ELEMNAME_RESULTDOCUMENT = 91,
  -    ELEMNAME_NAMESPACE = 95;
  +    ELEMNAME_NAMESPACE = 95,
  +    ELEMNAME_ANALYZESTRING = 96,
  +    ELEMNAME_MATCHINGSUBSTRING = 97,
  +    ELEMNAME_NONMATCHINGSUBSTRING = 98;
     
     /**
      * Literals for EXSLT function elements.
  @@ -331,6 +337,7 @@
         ATTRNAME_EXCLUDE_RESULT_PREFIXES ="exclude-result-prefixes",
         ATTRNAME_EXPR = "expr",
         ATTRNAME_EXTENSIONELEMENTPREFIXES = "extension-element-prefixes",
  +      ATTRNAME_FLAGS = "flags",
         ATTRNAME_FORMAT = "format",
         ATTRNAME_FROM = "from",
         ATTRNAME_GROUPINGSEPARATOR = "grouping-separator",
  @@ -373,6 +380,7 @@
         ATTRNAME_PERMILLE = "per-mille",
         ATTRNAME_PRIORITY = "priority",
         ATTRNAME_REFID = "refID",
  +      ATTRNAME_REGEX = "regex",
         ATTRNAME_RESULTNS = "result-ns",
         ATTRNAME_RESULT_PREFIX = "result-prefix",
         ATTRNAME_SELECT = "select",
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +459 -0    
xml-xalan/java/src/org/apache/xalan/templates/Attic/ElemAnalyzeString.java
  
  
  
  
  1.1.2.1   +658 -0    
xml-xalan/java/src/org/apache/xalan/templates/Attic/ElemMatchingSubstring.java
  
  
  
  
  1.1.2.1   +162 -0    
xml-xalan/java/src/org/apache/xalan/templates/Attic/ElemNonMatchingSubstring.java
  
  
  
  
  1.1.2.1   +122 -0    
xml-xalan/java/src/org/apache/xalan/templates/Attic/FuncRegexGroup.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +119 -0    
xml-xalan/java/src/org/apache/xpath/functions/Attic/FuncMatches.java
  
  
  
  
  1.1.2.1   +205 -0    
xml-xalan/java/src/org/apache/xpath/functions/Attic/FuncReplace.java
  
  
  
  
  1.1.2.1   +145 -0    
xml-xalan/java/src/org/apache/xpath/functions/Attic/FuncTokenize.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.2.3 +9 -0      
xml-xalan/java/src/org/apache/xpath/parser/Attic/SimpleNode.java
  
  Index: SimpleNode.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/parser/Attic/SimpleNode.java,v
  retrieving revision 1.1.2.1.2.2
  retrieving revision 1.1.2.1.2.3
  diff -u -r1.1.2.1.2.2 -r1.1.2.1.2.3
  --- SimpleNode.java   15 Aug 2002 21:07:45 -0000      1.1.2.1.2.2
  +++ SimpleNode.java   16 Aug 2002 21:23:48 -0000      1.1.2.1.2.3
  @@ -320,6 +320,15 @@
   m_builtInFunctions.put(
         new QName("base-uri"),
         new FuncBaseURI());
  +m_builtInFunctions.put(
  +      new QName("matches"),
  +      new FuncMatches());
  +m_builtInFunctions.put(
  +      new QName("replace"),
  +      new FuncReplace());
  +m_builtInFunctions.put(
  +      new QName("tokenize"),
  +      new FuncTokenize());    
     }
   
     /**
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +273 -0    
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/BMPattern.java
  
  
  
  
  1.1.2.1   +222 -0    
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/Match.java
  
  
  
  
  1.1.2.1   +289 -0    xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/Op.java
  
  
  
  
  1.1.2.1   +87 -0     
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/ParseException.java
  
  
  
  
  1.1.2.1   +504 -0    
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/ParserForXMLSchema.java
  
  
  
  
  1.1.2.1   +365 -0    
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/REUtil.java
  
  
  
  
  1.1.2.1   +651 -0    
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/RangeToken.java
  
  
  
  
  1.1.2.1   +1272 -0   
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/RegexParser.java
  
  
  
  
  1.1.2.1   +3383 -0   
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/RegularExpression.java
  
  
  
  
  1.1.2.1   +1502 -0   
xml-xalan/java/src/org/apache/xpath/parser/regexp/Attic/Token.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.7.2.1.2.1 +3 -1      
xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.properties
  
  Index: XPATHErrorResources.properties
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.properties,v
  retrieving revision 1.7.2.1
  retrieving revision 1.7.2.1.2.1
  diff -u -r1.7.2.1 -r1.7.2.1.2.1
  --- XPATHErrorResources.properties    14 Aug 2002 20:07:10 -0000      1.7.2.1
  +++ XPATHErrorResources.properties    16 Aug 2002 21:23:48 -0000      1.7.2.1.2.1
  @@ -226,4 +226,6 @@
   zero=0
   one=1
   two=2
  -three=3
  \ No newline at end of file
  +three=3
  +twoorthree=2 or 3
  +threeorfour = 3 or 4
  \ No newline at end of file
  
  
  

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

Reply via email to