[jruby-joni] 160/223: Add OP2_UNICODE_WHITESPACE syntax option

Hideki Yamane henrich at moszumanska.debian.org
Mon Nov 16 11:22:04 UTC 2015


This is an automated email from the git hooks/post-receive script.

henrich pushed a commit to branch debian/sid
in repository jruby-joni.

commit 4c4e187ae80d128c9466a0c03d82142a4c197628
Author: Ben Browning <bbrownin at redhat.com>
Date:   Thu Sep 12 21:34:53 2013 -0400

    Add OP2_UNICODE_WHITESPACE syntax option
    
    This options treats the Unicode whitespace characters \u2028 and
    \u2029 as whitespace instead of just the ascii whitespace characters.
---
 src/org/joni/Syntax.java                     | 6 +++++-
 src/org/joni/ast/CClassNode.java             | 6 +++++-
 src/org/joni/constants/SyntaxProperties.java | 1 +
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/org/joni/Syntax.java b/src/org/joni/Syntax.java
index a6a729c..4a3a315 100644
--- a/src/org/joni/Syntax.java
+++ b/src/org/joni/Syntax.java
@@ -282,6 +282,10 @@ public final class Syntax implements SyntaxProperties{
         return isOp2(OP2_ESC_IDENTITY);
     }
 
+    public boolean op2UnicodeWhitespace() {
+        return isOp2(OP2_UNICODE_WHITESPACE);
+    }
+
     /**
      * BEHAVIOR
      *
@@ -629,7 +633,7 @@ public final class Syntax implements SyntaxProperties{
         OP2_ESC_P_BRACE_CHAR_PROPERTY |
         OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |
         OP2_ESC_U_HEX4 | OP2_ESC_V_VTAB |
-        OP2_ESC_IDENTITY ),
+        OP2_ESC_IDENTITY | OP2_UNICODE_WHITESPACE ),
 
         ( CONTEXT_INDEP_ANCHORS |
         CONTEXT_INDEP_REPEAT_OPS |
diff --git a/src/org/joni/ast/CClassNode.java b/src/org/joni/ast/CClassNode.java
index 7927023..f3a9306 100644
--- a/src/org/joni/ast/CClassNode.java
+++ b/src/org/joni/ast/CClassNode.java
@@ -335,8 +335,12 @@ public final class CClassNode extends Node {
 
         if (Config.NON_UNICODE_SDW) {
             switch(ctype) {
-            case CharacterType.D:
             case CharacterType.S:
+                if (!not && env.syntax.op2UnicodeWhitespace()) {
+                    // treat \u2028 and \u2029 as whitespace
+                    addCodeRange(env, 8232, 8233);
+                }
+            case CharacterType.D:
             case CharacterType.W:
                 ctype ^= CharacterType.SPECIAL_MASK;
                 if (not) {
diff --git a/src/org/joni/constants/SyntaxProperties.java b/src/org/joni/constants/SyntaxProperties.java
index 9e783d0..9c8f031 100644
--- a/src/org/joni/constants/SyntaxProperties.java
+++ b/src/org/joni/constants/SyntaxProperties.java
@@ -75,6 +75,7 @@ public interface SyntaxProperties {
     final int OP2_ESC_H_XDIGIT               = (1<<19); /* \h, \H */
     final int OP2_INEFFECTIVE_ESCAPE         = (1<<20); /* \ */
     final int OP2_ESC_IDENTITY               = (1<<21); /* \a, \b, \c */
+    final int OP2_UNICODE_WHITESPACE         = (1<<22); /* \s matches \u2028 */
 
     /* syntax (behavior); */
     final int CONTEXT_INDEP_ANCHORS           = (1<<31); /* not implemented */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git



More information about the pkg-java-commits mailing list