dfs         2002/10/14 09:16:22

  Modified:    src/java/org/apache/oro/text/regex Perl5Compiler.java
  Log:
  Added support for negating modifiers.  For example (?-i)foo.  Note,
  we still do not support Perl 5.005+ group-local modifiers like
  (?imsx-imsx:pattern).
  
  Revision  Changes    Path
  1.14      +11 -5     
jakarta-oro/src/java/org/apache/oro/text/regex/Perl5Compiler.java
  
  Index: Perl5Compiler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-oro/src/java/org/apache/oro/text/regex/Perl5Compiler.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- Perl5Compiler.java        23 Oct 2001 06:42:20 -0000      1.13
  +++ Perl5Compiler.java        14 Oct 2002 16:16:22 -0000      1.14
  @@ -1524,11 +1524,12 @@
     private int __parseExpression(boolean isParenthesized, int[] hintFlags)
       throws MalformedPatternException {
       char value, paren;
  +    char[] modifierFlags, posFlags = { 0 }, negFlags = { 0 };
       int nodeOffset = OpCode._NULL_OFFSET, parenthesisNum = 0, br, ender;
  -    int[] flags = { 0 };
  -    String modifiers = "iogmsx";
  -
  +    int[] flags = { 0 };;
  +    String modifiers = "iogmsx-";
   
  +    modifierFlags = posFlags;
       // Initially we assume expression doesn't match null string.
       hintFlags[0] = __NONNULL;
   
  @@ -1557,9 +1558,14 @@
          value = __input._getValue();
          while(value != CharStringPointer._END_OF_STRING &&
                modifiers.indexOf(value) != -1) {
  -         __setModifierFlag(__modifierFlags, value);
  +         if(value == '-')
  +           modifierFlags = negFlags;
  +         __setModifierFlag(modifierFlags, value);
            value = __input._increment();
          }
  +       __modifierFlags[0] |= posFlags[0];
  +       __modifierFlags[0] &= ~negFlags[0];
  +
          if(value != ')')
            throw new MalformedPatternException(
               "Sequence (?" + value + "...) not recognized");
  
  
  

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

Reply via email to