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 5f5477376112fb28e4d889479894e02744e8cd9c Author: Ben Browning <[email protected]> Date: Mon Sep 9 20:07:07 2013 -0400 Add OP2_ESC_IDENTITY syntax option JavaScript allows what it calls an identity escape, where an escaped character falls back to just returning itself if not other escape sequence matches. --- src/org/joni/Lexer.java | 8 +++++++- src/org/joni/Syntax.java | 7 ++++++- src/org/joni/constants/SyntaxProperties.java | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/org/joni/Lexer.java b/src/org/joni/Lexer.java index bc919ad..e50be33 100644 --- a/src/org/joni/Lexer.java +++ b/src/org/joni/Lexer.java @@ -184,7 +184,13 @@ class Lexer extends ScannerSupport { } private void fetchEscapedValueControl() { - if (!left()) newSyntaxException(ERR_END_PATTERN_AT_CONTROL); + if (!left()) { + if (syntax.op2EscIdentity()) { + return; + } else { + newSyntaxException(ERR_END_PATTERN_AT_CONTROL); + } + } fetch(); if (c == '?') { c = 0177; diff --git a/src/org/joni/Syntax.java b/src/org/joni/Syntax.java index 2827cd4..a6a729c 100644 --- a/src/org/joni/Syntax.java +++ b/src/org/joni/Syntax.java @@ -278,6 +278,10 @@ public final class Syntax implements SyntaxProperties{ return isOp2(OP2_INEFFECTIVE_ESCAPE); } + public boolean op2EscIdentity() { + return isOp2(OP2_ESC_IDENTITY); + } + /** * BEHAVIOR * @@ -624,7 +628,8 @@ public final class Syntax implements SyntaxProperties{ OP2_QMARK_GROUP_EFFECT | OP2_OPTION_PERL | OP2_ESC_P_BRACE_CHAR_PROPERTY | OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | - OP2_ESC_U_HEX4 | OP2_ESC_V_VTAB ), + OP2_ESC_U_HEX4 | OP2_ESC_V_VTAB | + OP2_ESC_IDENTITY ), ( CONTEXT_INDEP_ANCHORS | CONTEXT_INDEP_REPEAT_OPS | diff --git a/src/org/joni/constants/SyntaxProperties.java b/src/org/joni/constants/SyntaxProperties.java index b31b6cb..9e783d0 100644 --- a/src/org/joni/constants/SyntaxProperties.java +++ b/src/org/joni/constants/SyntaxProperties.java @@ -74,6 +74,7 @@ public interface SyntaxProperties { /* final int OP2_CHAR_PROPERTY_PREFIX_IS = (1<<18); */ 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 */ /* 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 _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

