[jboss-svn-commits] JBL Code SVN: r36182 - labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Dec 3 02:00:23 EST 2010


Author: laune
Date: 2010-12-03 02:00:22 -0500 (Fri, 03 Dec 2010)
New Revision: 36182

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
Log:
fix incorrect counting of capturing groups
fix boundary test (space vs. non-word)


Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java	2010-12-03 06:54:39 UTC (rev 36181)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java	2010-12-03 07:00:22 UTC (rev 36182)
@@ -75,7 +75,7 @@
 
             if ( !keyPattern.startsWith( "^" ) ) {
                 // making it start with a space char or a line start
-                keyPattern = "(\\W|^)" + keyPattern;
+                keyPattern = "(\\s|^)" + keyPattern;
                 // adding a dummy variable due to index shift
                 getVariables().put( HEAD_TAG,
                                     Integer.valueOf( 0 ) );
@@ -87,7 +87,7 @@
             if ( keyPattern.endsWith( "(.*?)" ) ) {
                 keyPattern += "$";
             } else {
-                keyPattern += "(\\W|$)";
+                keyPattern += "(\\s|$)";
                 getVariables().put( TAIL_TAG,
                                     Integer.valueOf( 1 ) );
                 tailMatchGroupAdded = true;
@@ -135,7 +135,8 @@
                     i++;
                     break;
                 case '(' :
-                    counter++;
+                    // All groups starting with "(?" are non-capturing.
+                    if( i == input.length - 1 || input[i+1] != '?' ) counter++;
                     break;
                 case '{' :
                     if ( insideCurly ) {



More information about the jboss-svn-commits mailing list