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 2013/06/01 15:15:05 UTC
svn commit: r1488523 - in /uima/sandbox/ruta/trunk:
ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/
ruta-core/src/main/java/org/apache/uima/ruta/condition/
ruta-core/src/main/java/org/apache/uima/ruta/verbalize/
ruta-core/src/test/java/org/apach...
Author: pkluegl
Date: Sat Jun 1 13:15:05 2013
New Revision: 1488523
URL: http://svn.apache.org/r1488523
Log:
UIMA-2955
- fixed for regexp condition
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g (original)
+++ uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g Sat Jun 1 13:15:05 2013
@@ -1159,7 +1159,11 @@ conditionPosition returns [AbstractRutaC
;
conditionRegExp returns [AbstractRutaCondition cond = null]
:
- REGEXP LPAREN (v = variable COMMA)? pattern = stringExpression (COMMA caseSensitive = booleanExpression)? RPAREN
+ REGEXP LPAREN
+ ((stringExpression COMMA stringExpression)=> v = stringExpression COMMA pattern = stringExpression
+ | pattern = stringExpression
+ )
+ (COMMA caseSensitive = booleanExpression)? RPAREN
{cond = ConditionFactory.createConditionRegExp(v, pattern, caseSensitive, $blockDeclaration::env);}
;
Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java (original)
+++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java Sat Jun 1 13:15:05 2013
@@ -129,9 +129,9 @@ public class ConditionFactory {
return new RegExpCondition(patternExpr, ignoreCase);
}
- public static AbstractRutaCondition createConditionRegExp(Token var,
+ public static AbstractRutaCondition createConditionRegExp(StringExpression v,
StringExpression patternExpr, BooleanExpression ignoreCase, RutaBlock parent) {
- return new RegExpCondition(var == null ? null : var.getText(), patternExpr, ignoreCase);
+ return new RegExpCondition(v, patternExpr, ignoreCase);
}
public static AbstractRutaCondition createConditionScore(NumberExpression min,
Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java (original)
+++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java Sat Jun 1 13:15:05 2013
@@ -37,7 +37,7 @@ public class RegExpCondition extends Ter
private final BooleanExpression ignoreCase;
- private String variable;
+ private StringExpression variable;
public RegExpCondition(StringExpression pattern, BooleanExpression ignoreCase) {
super();
@@ -45,9 +45,9 @@ public class RegExpCondition extends Ter
this.ignoreCase = ignoreCase == null ? new SimpleBooleanExpression(false) : ignoreCase;
}
- public RegExpCondition(String variable, StringExpression pattern, BooleanExpression ignoreCase) {
+ public RegExpCondition(StringExpression v, StringExpression pattern, BooleanExpression ignoreCase) {
this(pattern, ignoreCase);
- this.variable = variable;
+ this.variable = v;
}
@Override
@@ -67,8 +67,7 @@ public class RegExpCondition extends Ter
}
matcher = regularExpPattern.matcher(coveredText);
} else {
- RutaEnvironment environment = element.getParent().getEnvironment();
- String variableValue = environment.getVariableValue(variable, String.class);
+ String variableValue = variable.getStringValue(element.getParent(), annotation, stream);
Pattern regularExpPattern = null;
if (ignore) {
regularExpPattern = Pattern.compile(stringValue, Pattern.CASE_INSENSITIVE);
@@ -85,7 +84,7 @@ public class RegExpCondition extends Ter
return pattern;
}
- public String getVariable() {
+ public StringExpression getVariable() {
return variable;
}
Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java (original)
+++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java Sat Jun 1 13:15:05 2013
@@ -54,6 +54,7 @@ import org.apache.uima.ruta.condition.Vo
import org.apache.uima.ruta.expression.list.ListExpression;
import org.apache.uima.ruta.expression.number.NumberExpression;
import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
+import org.apache.uima.ruta.expression.string.StringExpression;
public class ConditionVerbalizer {
@@ -334,12 +335,12 @@ public class ConditionVerbalizer {
+ verbalizer.verbalize(c.getPosition()) + relative + ")";
} else if (condition instanceof RegExpCondition) {
RegExpCondition c = (RegExpCondition) condition;
- String variable = c.getVariable();
+ StringExpression variable = c.getVariable();
String ic = verbalizer.verbalize(c.getIgnoreCase());
if (variable == null) {
return name + verbalizer.verbalize(c.getPattern()) + ", " + ic + ")";
} else {
- return name + variable + ", " + verbalizer.verbalize(c.getPattern()) + ", " + ic + ")";
+ return name + verbalizer.verbalize(variable) + ", " + verbalizer.verbalize(c.getPattern()) + ", " + ic + ")";
}
} else if (condition instanceof ScoreCondition) {
ScoreCondition c = (ScoreCondition) condition;
Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java (original)
+++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java Sat Jun 1 13:15:05 2013
@@ -25,6 +25,7 @@ import java.util.List;
import org.apache.uima.ruta.expression.MatchReference;
import org.apache.uima.ruta.expression.RutaExpression;
import org.apache.uima.ruta.expression.bool.BooleanExpression;
+import org.apache.uima.ruta.expression.bool.BooleanFeatureExpression;
import org.apache.uima.ruta.expression.bool.BooleanNumberExpression;
import org.apache.uima.ruta.expression.bool.BooleanTypeExpression;
import org.apache.uima.ruta.expression.bool.ReferenceBooleanExpression;
@@ -43,6 +44,7 @@ import org.apache.uima.ruta.expression.l
import org.apache.uima.ruta.expression.number.ComposedNumberExpression;
import org.apache.uima.ruta.expression.number.NegativeNumberExpression;
import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.NumberFeatureExpression;
import org.apache.uima.ruta.expression.number.ReferenceNumberExpression;
import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
import org.apache.uima.ruta.expression.resource.ReferenceWordListExpression;
@@ -54,6 +56,7 @@ import org.apache.uima.ruta.expression.s
import org.apache.uima.ruta.expression.string.ReferenceStringExpression;
import org.apache.uima.ruta.expression.string.SimpleStringExpression;
import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.StringFeatureExpression;
import org.apache.uima.ruta.expression.type.ReferenceTypeExpression;
import org.apache.uima.ruta.expression.type.SimpleTypeExpression;
import org.apache.uima.ruta.expression.type.TypeExpression;
@@ -80,14 +83,14 @@ public class ExpressionVerbalizer {
return verbalize((WordTableExpression) expression);
} else if (expression instanceof ListExpression<?>) {
return verbalize((ListExpression<?>) expression);
+ } else if (expression instanceof FeatureExpression) {
+ return verbalize((FeatureExpression) expression);
} else if (expression instanceof StringExpression) {
return verbalize((StringExpression) expression);
} else if (expression instanceof MatchReference) {
return verbalize((MatchReference) expression);
} else if (expression instanceof FeatureMatchExpression) {
return verbalize((FeatureMatchExpression) expression);
- } else if (expression instanceof FeatureExpression) {
- return verbalize((FeatureExpression) expression);
}
return expression.getClass().getSimpleName();
}
@@ -163,6 +166,8 @@ public class ExpressionVerbalizer {
}
}
return result.toString();
+ } else if (expression instanceof NumberFeatureExpression) {
+ return verbalize(((NumberFeatureExpression) expression).getFe());
}
return expression.getClass().getSimpleName();
}
@@ -184,6 +189,8 @@ public class ExpressionVerbalizer {
} else if (expression instanceof SimpleBooleanExpression) {
SimpleBooleanExpression e = (SimpleBooleanExpression) expression;
return e.getPrimitiveValue() ? "true" : "false";
+ } else if (expression instanceof BooleanFeatureExpression) {
+ return verbalize(((BooleanFeatureExpression) expression).getFe());
}
return expression.getClass().getSimpleName();
}
@@ -201,6 +208,8 @@ public class ExpressionVerbalizer {
return verbalize((ListExpression) expression);
} else if (expression instanceof LiteralStringExpression) {
return verbalize((LiteralStringExpression) expression);
+ } else if (expression instanceof StringFeatureExpression) {
+ return verbalize(((StringFeatureExpression) expression).getFe());
}
return expression.getClass().getSimpleName();
}
Modified: uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java (original)
+++ uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java Sat Jun 1 13:15:05 2013
@@ -77,6 +77,7 @@ public class ConditionVerbalizerTest {
List<TypeExpression> typeExprList = new ArrayList<TypeExpression>();
List<StringExpression> stringExprList = new ArrayList<StringExpression>();
String var = "anyVar";
+ StringExpression varExpr = new ReferenceNumberExpression(var);
TypeExpression typeExpr1 = new SimpleTypeExpression("Type1");
TypeExpression typeExpr2 = new ReferenceTypeExpression("typeVar");
typeExprList.add(typeExpr1);
@@ -250,7 +251,7 @@ public class ConditionVerbalizerTest {
s = v.verbalize(c);
assertEquals("REGEXP(\"string\", true)", s);
- c = new RegExpCondition(var, stringExpr, boolExpr1);
+ c = new RegExpCondition(varExpr, stringExpr, boolExpr1);
s = v.verbalize(c);
assertEquals("REGEXP(anyVar, \"string\", true)", s);
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1488523&r1=1488522&r2=1488523&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g Sat Jun 1 13:15:05 2013
@@ -1179,7 +1179,10 @@ conditionPosition returns [RutaCondition
;
conditionRegExp returns [RutaCondition cond = null]
:
- name = REGEXP LPAREN (v = variable COMMA)? pattern = stringExpression (COMMA caseSensitive = booleanExpression)?
+ name = REGEXP LPAREN
+ ((stringExpression COMMA stringExpression)=> v = stringExpression COMMA pattern = stringExpression
+ | pattern = stringExpression
+ ) (COMMA caseSensitive = booleanExpression)?
{cond = ConditionFactory.createCondition(name, v, pattern, caseSensitive);}
RPAREN
;