You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2012/07/27 13:49:33 UTC

svn commit: r1366343 - in /uima/sandbox/trunk/TextMarker: uima-docbook-textmarker/ uima-docbook-textmarker/src/docbook/ uimaj-ep-textmarker-ide/src/main/antlr3/org/apache/uima/textmarker/ide/core/parser/ uimaj-textmarker/src/main/antlr3/org/apache/uima...

Author: pkluegl
Date: Fri Jul 27 11:49:32 2012
New Revision: 1366343

URL: http://svn.apache.org/viewvc?rev=1366343&view=rev
Log:
UIMA-2438
- added argument to regexp condition in order to evaluate given pattern on the variable value instead of the matched text
- extended grammars
- updated documentation

Modified:
    uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/   (props changed)
    uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/src/docbook/tools.textmarker.conditions.xml
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/antlr3/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g
    uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/antlr3/org/apache/uima/textmarker/parser/TextMarkerParser.g
    uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/java/org/apache/uima/textmarker/condition/ConditionFactory.java

Propchange: uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Jul 27 11:49:32 2012
@@ -0,0 +1,2 @@
+target
+.settings

Modified: uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/src/docbook/tools.textmarker.conditions.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/src/docbook/tools.textmarker.conditions.xml?rev=1366343&r1=1366342&r2=1366343&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/src/docbook/tools.textmarker.conditions.xml (original)
+++ uima/sandbox/trunk/TextMarker/uima-docbook-textmarker/src/docbook/tools.textmarker.conditions.xml Fri Jul 27 11:49:32 2012
@@ -726,8 +726,11 @@
 		<title>REGEXP</title>
 		<para>
 			The REGEXP condition is fulfilled if the given pattern matches on the
-			matched annotation. For more details on the syntax of regular
-			expressions, have a look at the
+			matched annotation. However, if a string variable is given as the first
+      argument, then the pattern is evaluated on the value of the variable.
+      For more details on the syntax of regular
+      expressions, have a look at
+      the
 			<ulink
 				url="http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html">Java API</ulink>
 			. By default the REGEXP condition is case-sensitive. To change this
@@ -738,7 +741,7 @@
 				<emphasis role="bold">Definition:</emphasis>
 			</title>
 			<para>
-				<programlisting><![CDATA[REGEXP(StringExpression(,BooleanExpression)?)]]></programlisting>
+				<programlisting><![CDATA[REGEXP((StringVariable,)? StringExpression(,BooleanExpression)?)]]></programlisting>
 			</para>
 		</section>
 		<section>

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/antlr3/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/antlr3/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g?rev=1366343&r1=1366342&r2=1366343&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/antlr3/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/antlr3/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g Fri Jul 27 11:49:32 2012
@@ -1060,8 +1060,8 @@ conditionPosition returns [TextMarkerCon
     ;
 conditionRegExp returns [TextMarkerCondition cond = null]
     :
-    name = REGEXP LPAREN pattern = stringExpression (COMMA caseSensitive = booleanExpression)? 
-    {cond = ConditionFactory.createCondition(name, pattern, caseSensitive);}   
+    name = REGEXP LPAREN (v = variable COMMA)? pattern = stringExpression (COMMA caseSensitive = booleanExpression)? 
+    {cond = ConditionFactory.createCondition(name, v, pattern, caseSensitive);}   
     RPAREN 
     ;
     

Modified: uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/antlr3/org/apache/uima/textmarker/parser/TextMarkerParser.g
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/antlr3/org/apache/uima/textmarker/parser/TextMarkerParser.g?rev=1366343&r1=1366342&r2=1366343&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/antlr3/org/apache/uima/textmarker/parser/TextMarkerParser.g (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/antlr3/org/apache/uima/textmarker/parser/TextMarkerParser.g Fri Jul 27 11:49:32 2012
@@ -1005,8 +1005,8 @@ conditionPosition returns [AbstractTextM
     ;
 conditionRegExp returns [AbstractTextMarkerCondition cond = null]
     :
-    REGEXP LPAREN pattern = stringExpression (COMMA caseSensitive = booleanExpression)? RPAREN
-    {cond = ConditionFactory.createConditionRegExp(pattern, caseSensitive, $blockDeclaration::env);}    
+    REGEXP LPAREN (v = variable COMMA)? pattern = stringExpression (COMMA caseSensitive = booleanExpression)? RPAREN
+    {cond = ConditionFactory.createConditionRegExp(v, pattern, caseSensitive, $blockDeclaration::env);}    
     ;
 
 conditionScore returns [AbstractTextMarkerCondition cond = null]

Modified: uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/java/org/apache/uima/textmarker/condition/ConditionFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/java/org/apache/uima/textmarker/condition/ConditionFactory.java?rev=1366343&r1=1366342&r2=1366343&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/java/org/apache/uima/textmarker/condition/ConditionFactory.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-textmarker/src/main/java/org/apache/uima/textmarker/condition/ConditionFactory.java Fri Jul 27 11:49:32 2012
@@ -131,6 +131,11 @@ public class ConditionFactory {
     return new RegExpCondition(patternExpr, ignoreCase);
   }
 
+  public static AbstractTextMarkerCondition createConditionRegExp(Token var, StringExpression patternExpr,
+          BooleanExpression ignoreCase, TextMarkerBlock parent) {
+    return new RegExpCondition(var == null ? null : var.getText(), patternExpr, ignoreCase);
+  }
+  
   public static AbstractTextMarkerCondition createConditionScore(NumberExpression min,
           NumberExpression max, Token var, TextMarkerBlock parent) {
     String varString = null;