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 2017/07/06 14:30:00 UTC
svn commit: r1801062 - in /uima/ruta/trunk/ruta-core/src:
main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java
Author: pkluegl
Date: Thu Jul 6 14:30:00 2017
New Revision: 1801062
URL: http://svn.apache.org/viewvc?rev=1801062&view=rev
Log:
UIMA-5436
- allow comparison, won't work with variables
Modified:
uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java
Modified: uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1801062&r1=1801061&r2=1801062&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g (original)
+++ uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g Thu Jul 6 14:30:00 2017
@@ -2440,7 +2440,7 @@ externalAnnotationFunction returns [IAnn
}
;
-nullExpression returns [IRutaExpression expr = null]
+nullExpression returns [IStringExpression expr = null]
:
NULL {expr = expressionFactory.createNullExpression();}
;
@@ -2790,7 +2790,10 @@ booleanStringExpression returns [IBool
:
e1 = stringExpression
op = (EQUAL | NOTEQUAL)
+ (
e2 = stringExpression
+ | e2 = nullExpression
+ )
{expr = expressionFactory.createBooleanStringExpression(e1,op,e2);}
;
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java?rev=1801062&r1=1801061&r2=1801062&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java Thu Jul 6 14:30:00 2017
@@ -366,7 +366,7 @@ public class ExpressionFactory {
return new ExternalWordTableExpression(name.getText(), args);
}
- public IRutaExpression createNullExpression() {
+ public IStringExpression createNullExpression() {
return new NullExpression();
}
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java?rev=1801062&r1=1801061&r2=1801062&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java Thu Jul 6 14:30:00 2017
@@ -63,12 +63,28 @@ public class ImplicitCondition2Test {
@Test
public void testStringCompare() throws ResourceInitializationException, InvalidXMLException, IOException, AnalysisEngineProcessException, CASException {
- CAS cas = RutaTestUtils.getCAS("a b. a b.");
+ String document = "a b. a b.";
+ CAS cas = RutaTestUtils.getCAS(document);
Assert.assertTrue(Ruta.matches(cas.getJCas(), "(w:W # W{W.ct==w.ct}){->T1};"));
Assert.assertTrue(Ruta.matches(cas.getJCas(), "STRING s1 = \"a\"; (w:W W{s1==w.ct}){->T2};"));
RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "a b. a", "b. a b");
RutaTestUtils.assertAnnotationsEquals(cas, 2, 2, "a b", "a b");
}
+ @Test
+ public void testStringCompareNull() throws ResourceInitializationException, InvalidXMLException, IOException, AnalysisEngineProcessException, CASException {
+ String document = "a b. a b.";
+ CAS cas = RutaTestUtils.getCAS(document);
+
+ String rules = "STRING s2;\n";
+ rules += "Document{s2 == \"\" -> T10};\n";
+ rules += "Document{s2 == null -> T11};\n";
+ Assert.assertTrue(Ruta.matches(cas.getJCas(), rules));
+
+ RutaTestUtils.assertAnnotationsEquals(cas, 10, 1, document);
+ RutaTestUtils.assertAnnotationsEquals(cas, 11, 0);
+
+ }
+
}