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/12/06 09:41:09 UTC

svn commit: r1548429 [1/5] - in /uima/ruta/trunk: example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/ ruta-core/src/main/java/org/apache/uima/ruta/ ru...

Author: pkluegl
Date: Fri Dec  6 08:41:07 2013
New Revision: 1548429

URL: http://svn.apache.org/r1548429
Log:
UIMA-3483
- fixed type coercion of feature match expression, by ignoring the type and introducing a generic expression for features
- needed to introduce interfaces for most of expressions

Added:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/IRutaExpression.java   (with props)
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/AbstractBooleanExpression.java
      - copied, changed from r1545591, uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/IBooleanExpression.java   (with props)
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/GenericFeatureExpression.java   (with props)
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/INumberExpression.java   (with props)
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringExpression.java
      - copied, changed from r1545591, uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/IStringExpression.java   (with props)
Removed:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringExpression.java
Modified:
    uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleAction.java
    uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleActionExtension.java
    uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleCondition.java
    uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleConditionExtension.java
    uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunction.java
    uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunctionExtension.java
    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/BlockApply.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractStructureAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ConfigureAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/CreateAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/DynamicAnchoringAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/FillAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/GatherAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/GetAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/GetFeatureAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/GetListAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/GreedyAnchoringAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitFeatureAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/LogAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkOnceAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MatchedTextAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MergeAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveDuplicateAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ReplaceAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/SetFeatureAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ShiftAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/TrieAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContextCountCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/CountCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/CurrentCountCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/FeatureCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/IfCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ImplicitCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/InListCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/MOfNCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/NearCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/PositionCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ScoreCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/SizeCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/TotalCountCondition.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/RutaExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanFeatureExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanFunctionExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanNumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanTypeExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/ReferenceBooleanExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanFunction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureMatchExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ReferenceBooleanListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ReferenceNumberListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ReferenceStringListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleBooleanListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleNumberListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleStringListExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/AbstractNumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/ComposedNumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NegativeNumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberFeatureExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberFunctionExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/ReferenceNumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/SimpleNumberExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/ComposedStringExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/LiteralStringExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/RemoveFunction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringFeatureExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringFunctionExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringFunctionFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeExpression.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/extensions/RutaExternalFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RegExpRule.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaMatcher.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxGreedy.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxReluctant.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/Document_Type.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaOptional.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaOptional_Type.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/RutaVerbalizer.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ScriptVerbalizer.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/VerbalizerUtils.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/CustomViewTest.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/ShiftWithLowMemoryProfileTest.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ExpressionVerbalizerTest.java

Modified: uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleAction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleAction.java (original)
+++ uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleAction.java Fri Dec  6 08:41:07 2013
@@ -29,16 +29,16 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.action.AbstractRutaAction;
-import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class ExampleAction extends AbstractRutaAction {
 
-  private List<NumberExpression> indexExprList;
+  private List<INumberExpression> indexExprList;
 
-  public ExampleAction(List<NumberExpression> indexExprList) {
+  public ExampleAction(List<INumberExpression> indexExprList) {
     super();
     this.indexExprList = indexExprList;
   }
@@ -46,7 +46,7 @@ public class ExampleAction extends Abstr
   @Override
   public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
     List<Integer> indexes = new ArrayList<Integer>();
-    for (NumberExpression each : indexExprList) {
+    for (INumberExpression each : indexExprList) {
       RutaBlock parent = element.getParent();
       int integerValue = each.getIntegerValue(parent, match, element, stream);
       indexes.add(integerValue);
@@ -75,11 +75,11 @@ public class ExampleAction extends Abstr
     return subsumedTypes.get(nextInt);
   }
 
-  public List<NumberExpression> getIndexExprList() {
+  public List<INumberExpression> getIndexExprList() {
     return indexExprList;
   }
 
-  public void setIndexExprList(List<NumberExpression> indexExprList) {
+  public void setIndexExprList(List<INumberExpression> indexExprList) {
     this.indexExprList = indexExprList;
   }
 

Modified: uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleActionExtension.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleActionExtension.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleActionExtension.java (original)
+++ uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleActionExtension.java Fri Dec  6 08:41:07 2013
@@ -25,7 +25,7 @@ import java.util.List;
 import org.apache.uima.ruta.RutaElement;
 import org.apache.uima.ruta.action.AbstractRutaAction;
 import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.extensions.IRutaActionExtension;
 import org.apache.uima.ruta.extensions.RutaParseException;
 import org.apache.uima.ruta.verbalize.RutaVerbalizer;
@@ -48,11 +48,11 @@ public class ExampleActionExtension impl
 
   public AbstractRutaAction createAction(String name, List<RutaExpression> args)
           throws RutaParseException {
-    List<NumberExpression> arguments = new ArrayList<NumberExpression>();
+    List<INumberExpression> arguments = new ArrayList<INumberExpression>();
     if (args != null) {
       for (RutaExpression each : args) {
-        if (each instanceof NumberExpression) {
-          arguments.add((NumberExpression) each);
+        if (each instanceof INumberExpression) {
+          arguments.add((INumberExpression) each);
         } else {
           throw new RutaParseException("ExampleAction accepts only NumberExpressions as arguments");
         }

Modified: uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleCondition.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleCondition.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleCondition.java (original)
+++ uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleCondition.java Fri Dec  6 08:41:07 2013
@@ -25,18 +25,18 @@ import java.util.Date;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.condition.AbstractRutaCondition;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringExpression;
 import org.apache.uima.ruta.rule.EvaluatedCondition;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class ExampleCondition extends AbstractRutaCondition {
 
-  private final StringExpression dateExpr;
+  private final AbstractStringExpression dateExpr;
 
-  private final StringExpression formatExpr;
+  private final AbstractStringExpression formatExpr;
 
-  public ExampleCondition(StringExpression expr, StringExpression format) {
+  public ExampleCondition(AbstractStringExpression expr, AbstractStringExpression format) {
     super();
     this.dateExpr = expr;
     this.formatExpr = format;
@@ -60,11 +60,11 @@ public class ExampleCondition extends Ab
     return new EvaluatedCondition(this, result);
   }
 
-  public StringExpression getExpr() {
+  public AbstractStringExpression getExpr() {
     return dateExpr;
   }
 
-  public StringExpression getFormatExpr() {
+  public AbstractStringExpression getFormatExpr() {
     return formatExpr;
   }
 

Modified: uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleConditionExtension.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleConditionExtension.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleConditionExtension.java (original)
+++ uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleConditionExtension.java Fri Dec  6 08:41:07 2013
@@ -24,7 +24,7 @@ import java.util.List;
 import org.apache.uima.ruta.RutaElement;
 import org.apache.uima.ruta.condition.AbstractRutaCondition;
 import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringExpression;
 import org.apache.uima.ruta.extensions.IRutaConditionExtension;
 import org.apache.uima.ruta.extensions.RutaParseException;
 import org.apache.uima.ruta.verbalize.RutaVerbalizer;
@@ -48,15 +48,15 @@ public class ExampleConditionExtension i
   public AbstractRutaCondition createCondition(String name, List<RutaExpression> args)
           throws RutaParseException {
     if (args != null && args.size() == 2) {
-      if (!(args.get(0) instanceof StringExpression)) {
+      if (!(args.get(0) instanceof AbstractStringExpression)) {
       }
-      if (!(args.get(1) instanceof StringExpression)) {
+      if (!(args.get(1) instanceof AbstractStringExpression)) {
       }
     } else {
       throw new RutaParseException(
               "ExampleCondition accepts exactly two StringExpressions as arguments");
     }
-    return new ExampleCondition((StringExpression) args.get(0), (StringExpression) args.get(1));
+    return new ExampleCondition((AbstractStringExpression) args.get(0), (AbstractStringExpression) args.get(1));
   }
 
   public String verbalizeName(RutaElement element) {

Modified: uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunction.java (original)
+++ uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunction.java Fri Dec  6 08:41:07 2013
@@ -23,19 +23,19 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringExpression;
 import org.apache.uima.ruta.expression.type.TypeFunctionExpression;
 
 public class ExampleTypeFunction extends TypeFunctionExpression {
 
-  private final StringExpression expr;
+  private final AbstractStringExpression expr;
 
-  public ExampleTypeFunction(StringExpression expr) {
+  public ExampleTypeFunction(AbstractStringExpression expr) {
     super();
     this.expr = expr;
   }
 
-  public StringExpression getExpr() {
+  public AbstractStringExpression getExpr() {
     return expr;
   }
 

Modified: uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunctionExtension.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunctionExtension.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunctionExtension.java (original)
+++ uima/ruta/trunk/example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ExampleTypeFunctionExtension.java Fri Dec  6 08:41:07 2013
@@ -23,7 +23,7 @@ import java.util.List;
 
 import org.apache.uima.ruta.RutaElement;
 import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringExpression;
 import org.apache.uima.ruta.expression.type.TypeFunctionExpression;
 import org.apache.uima.ruta.extensions.IRutaTypeFunctionExtension;
 import org.apache.uima.ruta.extensions.RutaParseException;
@@ -46,10 +46,10 @@ public class ExampleTypeFunctionExtensio
 
   public TypeFunctionExpression createTypeFunction(String name, List<RutaExpression> args)
           throws RutaParseException {
-    if (args == null || args.size() != 1 || !(args.get(0) instanceof StringExpression)) {
+    if (args == null || args.size() != 1 || !(args.get(0) instanceof AbstractStringExpression)) {
       throw new RutaParseException("ExampleTypeFunction accepts only one StringExpression as argument!");
     }
-    return new ExampleTypeFunction((StringExpression) args.get(0));
+    return new ExampleTypeFunction((AbstractStringExpression) args.get(0));
   }
 
   public String verbalizeName(RutaElement element) {

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=1548429&r1=1548428&r2=1548429&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 Fri Dec  6 08:41:07 2013
@@ -64,20 +64,20 @@ import org.apache.uima.ruta.RutaScriptFa
 import org.apache.uima.ruta.RutaAutomataFactory;
 import org.apache.uima.ruta.RutaStatement;
 import org.apache.uima.ruta.expression.ExpressionFactory;
-import org.apache.uima.ruta.expression.RutaExpression;
+import org.apache.uima.ruta.expression.IRutaExpression;
 import org.apache.uima.ruta.expression.MatchReference;
 import org.apache.uima.ruta.expression.feature.FeatureExpression;
 import org.apache.uima.ruta.expression.feature.FeatureMatchExpression;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.list.BooleanListExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
 import org.apache.uima.ruta.expression.list.NumberListExpression;
 import org.apache.uima.ruta.expression.list.StringListExpression;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.resource.WordListExpression;
 import org.apache.uima.ruta.expression.resource.WordTableExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.string.StringFunctionFactory;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.extensions.RutaExternalFactory;
@@ -576,7 +576,7 @@ options {
 }
 @init{
 	//RegExpRule rer = null;
-	Map<TypeExpression, RutaExpression> map = new HashMap<TypeExpression, RutaExpression>();
+	Map<TypeExpression, IRutaExpression> map = new HashMap<TypeExpression, IRutaExpression>();
 }
 	: 
 
@@ -595,9 +595,9 @@ options {
 
 regexpRule returns [RegExpRule stmt = null]
 @init{
-	Map<TypeExpression, NumberExpression> map = new HashMap<TypeExpression, NumberExpression>();
-	Map<TypeExpression, Map<StringExpression, RutaExpression>> fa = new HashMap<TypeExpression, Map<StringExpression, RutaExpression>>();
-	Map<StringExpression, RutaExpression> fmap = null;
+	Map<TypeExpression, INumberExpression> map = new HashMap<TypeExpression, INumberExpression>();
+	Map<TypeExpression, Map<IStringExpression, IRutaExpression>> fa = new HashMap<TypeExpression, Map<IStringExpression, IRutaExpression>>();
+	Map<IStringExpression, IRutaExpression> fmap = null;
 }
 	:
 	{
@@ -606,11 +606,11 @@ regexpRule returns [RegExpRule stmt = nu
 	regexp = stringExpression THEN
 	(
 	(numberExpression ASSIGN_EQUAL)=> indexCG = numberExpression ASSIGN_EQUAL indexTE = typeExpression {map.put(indexTE, indexCG);}
-	(LPAREN {fmap = new HashMap<StringExpression, RutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
+	(LPAREN {fmap = new HashMap<IStringExpression, IRutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
 	(COMMA fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} )* RPAREN {fa.put(indexTE, fmap);})?
 	|
 	te = typeExpression {map.put(te, null);}
-	(LPAREN {fmap = new HashMap<StringExpression, RutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
+	(LPAREN {fmap = new HashMap<IStringExpression, IRutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
 	(COMMA fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} )* RPAREN {fa.put(te, fmap);})?
 	)
 	
@@ -618,11 +618,11 @@ regexpRule returns [RegExpRule stmt = nu
 	COMMA
 	(
 	(numberExpression ASSIGN_EQUAL)=> indexCG = numberExpression ASSIGN_EQUAL indexTE = typeExpression {map.put(indexTE, indexCG);}
-	(LPAREN {fmap = new HashMap<StringExpression, RutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
+	(LPAREN {fmap = new HashMap<IStringExpression, IRutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
 	(COMMA fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} )* RPAREN {fa.put(indexTE, fmap);})?
 	|
 	te = typeExpression {map.put(te, null);}
-	(LPAREN {fmap = new HashMap<StringExpression, RutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
+	(LPAREN {fmap = new HashMap<IStringExpression, IRutaExpression>();} fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} 
 	(COMMA fk = stringExpression ASSIGN_EQUAL arg = argument {fmap.put(fk, arg);} )* RPAREN {fa.put(te, fmap);})?
 	)
 	
@@ -808,7 +808,7 @@ booleanListExpression returns [BooleanLi
 
 simpleBooleanListExpression returns [BooleanListExpression expr = null]
 @init{
-	List<BooleanExpression> list = new ArrayList<BooleanExpression>();
+	List<IBooleanExpression> list = new ArrayList<IBooleanExpression>();
 }	:
 	LCURLY (e = simpleBooleanExpression {list.add(e);} (COMMA e = simpleBooleanExpression {list.add(e);})*)?  RCURLY
 	{expr = ExpressionFactory.createBooleanListExpression(list);}
@@ -825,7 +825,7 @@ intListExpression returns [NumberListExp
 
 simpleIntListExpression returns [NumberListExpression expr = null]
 @init{
-	List<NumberExpression> list = new ArrayList<NumberExpression>();
+	List<INumberExpression> list = new ArrayList<INumberExpression>();
 }	:
 	LCURLY (e = simpleNumberExpression {list.add(e);} (COMMA e = simpleNumberExpression {list.add(e);})*)?  RCURLY
 	{expr = ExpressionFactory.createNumberListExpression(list);}
@@ -851,7 +851,7 @@ doubleListExpression returns [NumberList
 
 simpleDoubleListExpression returns [NumberListExpression expr = null]
 @init{
-	List<NumberExpression> list = new ArrayList<NumberExpression>();
+	List<INumberExpression> list = new ArrayList<INumberExpression>();
 }	:
 	LCURLY (e = simpleNumberExpression {list.add(e);} (COMMA e = simpleNumberExpression {list.add(e);})*)?  RCURLY
 	{expr = ExpressionFactory.createNumberListExpression(list);}
@@ -868,7 +868,7 @@ floatListExpression returns [NumberListE
 
 simpleFloatListExpression returns [NumberListExpression expr = null]
 @init{
-	List<NumberExpression> list = new ArrayList<NumberExpression>();
+	List<INumberExpression> list = new ArrayList<INumberExpression>();
 }	:
 	LCURLY (e = simpleNumberExpression {list.add(e);} (COMMA e = simpleNumberExpression {list.add(e);})*)?  RCURLY
 	{expr = ExpressionFactory.createNumberListExpression(list);}
@@ -884,7 +884,7 @@ stringListExpression returns [StringList
 
 simpleStringListExpression returns [StringListExpression expr = null]
 @init{
-	List<StringExpression> list = new ArrayList<StringExpression>();
+	List<IStringExpression> list = new ArrayList<IStringExpression>();
 }	:
 	LCURLY (e = simpleStringExpression {list.add(e);} (COMMA e = simpleStringExpression {list.add(e);})*)?  RCURLY
 	{expr = ExpressionFactory.createStringListExpression(list);}	
@@ -910,7 +910,7 @@ simpleTypeListExpression returns [TypeLi
 	{expr = ExpressionFactory.createReferenceTypeListExpression(var);}
 	;
 
-typeMatchExpression returns [RutaExpression expr = null]
+typeMatchExpression returns [IRutaExpression expr = null]
 options {
 	backtrack = true;
 }
@@ -1355,8 +1355,8 @@ externalAction returns [AbstractRutaActi
 
 actionCreate returns [AbstractRutaAction action = null]
 @init {
-	Map<StringExpression, RutaExpression> map = new HashMap<StringExpression, RutaExpression>();
-    	List<NumberExpression> indexes = new ArrayList<NumberExpression>();
+	Map<IStringExpression, IRutaExpression> map = new HashMap<IStringExpression, IRutaExpression>();
+    	List<INumberExpression> indexes = new ArrayList<INumberExpression>();
 }
     :
     name = CREATE LPAREN structure = typeExpression 
@@ -1372,7 +1372,7 @@ actionCreate returns [AbstractRutaAction
 
 actionMarkTable returns [AbstractRutaAction action = null]
 @init {
-	Map<StringExpression, NumberExpression> map = new HashMap<StringExpression, NumberExpression>();
+	Map<IStringExpression, INumberExpression> map = new HashMap<IStringExpression, INumberExpression>();
 }
     :
     name = MARKTABLE LPAREN 
@@ -1394,8 +1394,8 @@ actionMarkTable returns [AbstractRutaAct
  
 actionGather returns [AbstractRutaAction action = null]
 @init {
-	Map<StringExpression, RutaExpression> map = new HashMap<StringExpression, RutaExpression>();
-    	List<NumberExpression> indexes = new ArrayList<NumberExpression>();
+	Map<IStringExpression, IRutaExpression> map = new HashMap<IStringExpression, IRutaExpression>();
+    	List<INumberExpression> indexes = new ArrayList<INumberExpression>();
 }
     :
     name = GATHER LPAREN structure = typeExpression 
@@ -1411,7 +1411,7 @@ actionGather returns [AbstractRutaAction
 
 actionFill returns [AbstractRutaAction action = null]
 @init {
-Map<StringExpression, RutaExpression> map = new HashMap<StringExpression, RutaExpression>();
+Map<IStringExpression, IRutaExpression> map = new HashMap<IStringExpression, IRutaExpression>();
 }
     :
     FILL LPAREN type = typeExpression (COMMA fname = stringExpression ASSIGN_EQUAL 
@@ -1450,7 +1450,7 @@ actionLog returns [AbstractRutaAction ac
 
 actionMark returns [AbstractRutaAction action = null]
 @init {
-List<NumberExpression> list = new ArrayList<NumberExpression>();
+List<INumberExpression> list = new ArrayList<INumberExpression>();
 }
     :   
     MARK LPAREN 
@@ -1466,7 +1466,7 @@ List<NumberExpression> list = new ArrayL
 
 actionShift returns [AbstractRutaAction action = null]
 @init {
-List<NumberExpression> list = new ArrayList<NumberExpression>();
+List<INumberExpression> list = new ArrayList<INumberExpression>();
 }
     :   
     SHIFT LPAREN 
@@ -1483,7 +1483,7 @@ List<NumberExpression> list = new ArrayL
 
 actionMarkScore returns [AbstractRutaAction action = null]
 @init {
-List<NumberExpression> list = new ArrayList<NumberExpression>();
+List<INumberExpression> list = new ArrayList<INumberExpression>();
 }
     :   
     MARKSCORE LPAREN 
@@ -1500,7 +1500,7 @@ List<NumberExpression> list = new ArrayL
 
 actionMarkOnce returns [AbstractRutaAction action = null]
 @init {
-List<NumberExpression> list = new ArrayList<NumberExpression>();
+List<INumberExpression> list = new ArrayList<INumberExpression>();
 }
     :   
     MARKONCE LPAREN ((score = numberExpression) => score = numberExpression COMMA)? (type = typeExpression) => type = typeExpression
@@ -1573,7 +1573,7 @@ actionCall returns [AbstractRutaAction a
 
 actionConfigure returns [AbstractRutaAction action = null]
 @init {
-	Map<StringExpression, RutaExpression> map = new HashMap<StringExpression, RutaExpression>();
+	Map<IStringExpression, IRutaExpression> map = new HashMap<IStringExpression, IRutaExpression>();
 }
 
     :
@@ -1672,7 +1672,7 @@ actionTrim returns [AbstractRutaAction a
 
 actionUnmark returns [AbstractRutaAction action = null]
 @init {
-List<NumberExpression> list = new ArrayList<NumberExpression>();
+List<INumberExpression> list = new ArrayList<INumberExpression>();
 }
     :
     name = UNMARK LPAREN 
@@ -1711,7 +1711,7 @@ actionTransfer returns [AbstractRutaActi
 
 actionTrie returns [AbstractRutaAction action = null]
 @init {
-Map<StringExpression, TypeExpression> map = new HashMap<StringExpression, TypeExpression>();
+Map<IStringExpression, TypeExpression> map = new HashMap<IStringExpression, TypeExpression>();
 }
     :
     name = TRIE LPAREN
@@ -1730,7 +1730,7 @@ Map<StringExpression, TypeExpression> ma
 
 actionAdd returns [AbstractRutaAction action = null]
 @init{
-	List<RutaExpression> list = new ArrayList<RutaExpression>();
+	List<IRutaExpression> list = new ArrayList<IRutaExpression>();
 } 
     :
     name = ADD LPAREN f = listVariable (COMMA a = argument {list.add(a);})+ RPAREN
@@ -1739,7 +1739,7 @@ actionAdd returns [AbstractRutaAction ac
 
 actionRemove returns [AbstractRutaAction action = null]
 @init{
-	List<RutaExpression> list = new ArrayList<RutaExpression>();
+	List<IRutaExpression> list = new ArrayList<IRutaExpression>();
 } 
     :
     name = REMOVE LPAREN f = listVariable (COMMA a = argument {list.add(a);})+ RPAREN
@@ -1775,7 +1775,7 @@ actionGetList returns [AbstractRutaActio
 
 actionMatchedText returns [AbstractRutaAction action = null]
 @init {
-List<NumberExpression> list = new ArrayList<NumberExpression>();
+List<INumberExpression> list = new ArrayList<INumberExpression>();
 }
     :   
     MATCHEDTEXT LPAREN 
@@ -1836,14 +1836,15 @@ varArgumentList returns [List args = new
 	arg = argument {args.add(arg);}(COMMA arg = argument {args.add(arg);})*
 	;
 
-argument returns [RutaExpression expr = null]
+argument returns [IRutaExpression expr = null]
 options {
 	backtrack = true;
 }
 	:
-	a4 = stringExpression {expr = a4;}
+	(featureExpression)=> fe = featureExpression {expr = ExpressionFactory.createGenericFeatureExpression(fe);}
 	| a2 = booleanExpression {expr = a2;}
 	| a3 = numberExpression {expr = a3;}
+	| a4 = stringExpression {expr = a4;}
 	| a1 = typeExpression {expr = a1;}
 	
 	//(a2 = booleanExpression)=> a2 = booleanExpression {expr = a2;}
@@ -1852,7 +1853,7 @@ options {
 	//| (a1 = typeExpression)=> a1 = typeExpression {expr = a1;}
 	;
 
-primitiveArgument returns [RutaExpression expr = null]
+primitiveArgument returns [IRutaExpression expr = null]
 options {
 	backtrack = true;
 }
@@ -1931,7 +1932,7 @@ wordTableExpression returns [WordTableEx
 	;
 
 // not checked
-numberFunction returns [NumberExpression expr = null]
+numberFunction returns [INumberExpression expr = null]
 	:
 	(op=(EXP | LOGN | SIN | COS | TAN) numExprP=numberExpressionInPar)
 	{expr = ExpressionFactory.createComposedNumberExpression(numExprP,op);}
@@ -1941,7 +1942,7 @@ numberFunction returns [NumberExpression
 
 
 // not checked
-externalNumberFunction returns [NumberExpression expr = null]
+externalNumberFunction returns [INumberExpression expr = null]
 	:
 	{isNumberFunctionExtension(input.LT(1).getText())}? 
 	id = Identifier LPAREN
@@ -1959,16 +1960,16 @@ numberVariable returns [Token ref = null
 	;
 
 
-additiveExpression returns [NumberExpression expr = null]
-@init{List<NumberExpression> exprs = new ArrayList<NumberExpression>();
+additiveExpression returns [INumberExpression expr = null]
+@init{List<INumberExpression> exprs = new ArrayList<INumberExpression>();
 	List<Token> ops = new ArrayList<Token>();}
 	:   
 	e = multiplicativeExpression{exprs.add(e);} ((PLUS | MINUS)=> op = (PLUS | MINUS){ops.add(op);} e = multiplicativeExpression{exprs.add(e);} )*
 	{expr = ExpressionFactory.createComposedNumberExpression(exprs,ops);}
 	;
 
-multiplicativeExpression returns [NumberExpression expr = null]
-@init{List<NumberExpression> exprs = new ArrayList<NumberExpression>();
+multiplicativeExpression returns [INumberExpression expr = null]
+@init{List<INumberExpression> exprs = new ArrayList<INumberExpression>();
 	List<Token> ops = new ArrayList<Token>();}
 	:	
 	(e = simpleNumberExpression{exprs.add(e);} (( STAR | SLASH | PERCENT )=> op = ( STAR | SLASH | PERCENT ){ops.add(op);} e = simpleNumberExpression{exprs.add(e);} )*
@@ -1976,17 +1977,17 @@ multiplicativeExpression returns [Number
 	|   e1 = numberFunction {expr = e1;})
 	;
 
-numberExpression returns [NumberExpression expr = null]
+numberExpression returns [INumberExpression expr = null]
 	:
 	e = additiveExpression {expr = e;}
 	;
 
-numberExpressionInPar returns [NumberExpression expr = null]
+numberExpressionInPar returns [INumberExpression expr = null]
 	:
 	LPAREN  e = additiveExpression RPAREN {expr = e;}
 	;
 
-simpleNumberExpression returns [NumberExpression expr = null]
+simpleNumberExpression returns [INumberExpression expr = null]
 	:
 	(featureExpression)=> fe = featureExpression {expr = ExpressionFactory.createNumberFeatureExpression(fe);}	
 	| m = MINUS? lit = DecimalLiteral {expr = ExpressionFactory.createIntegerExpression(lit,m);} 
@@ -1996,12 +1997,12 @@ simpleNumberExpression returns [NumberEx
 	| e = numberExpressionInPar {expr = e;}
 	;
 	
-stringExpression returns [StringExpression expr = null]
+stringExpression returns [IStringExpression expr = null]
 options {
 	backtrack = true;
 }
 @init {
-List<StringExpression> exprs = new ArrayList<StringExpression>();
+List<IStringExpression> exprs = new ArrayList<IStringExpression>();
 }
 	:
 	(featureExpression)=> fe = featureExpression {expr = ExpressionFactory.createStringFeatureExpression(fe);}
@@ -2017,8 +2018,8 @@ List<StringExpression> exprs = new Array
 	;
 
 // not checked
-stringFunction returns [StringExpression expr = null]
-@init {List<StringExpression> list = new ArrayList<StringExpression>();}
+stringFunction returns [IStringExpression expr = null]
+@init {List<IStringExpression> list = new ArrayList<IStringExpression>();}
 :
 	name = REMOVESTRING LPAREN var = variable (COMMA t = stringExpression {list.add(t);})+ RPAREN
 	{expr = StringFunctionFactory.createRemoveFunction(var,list);}
@@ -2027,7 +2028,7 @@ stringFunction returns [StringExpression
 	;
 
 // not checked
-externalStringFunction returns [StringExpression expr = null]
+externalStringFunction returns [IStringExpression expr = null]
 	:
 	{isStringFunctionExtension(input.LT(1).getText())}? 
 	id = Identifier LPAREN
@@ -2037,14 +2038,14 @@ externalStringFunction returns [StringEx
 	}
 	;
 
-simpleStringExpression returns [StringExpression expr = null]
+simpleStringExpression returns [IStringExpression expr = null]
 	: 
 	lit = StringLiteral {expr = ExpressionFactory.createSimpleStringExpression(lit);} 
 	| {isVariableOfType($blockDeclaration::env,input.LT(1).getText(), "STRING")}? id = Identifier {expr = ExpressionFactory.createReferenceStringExpression(id);} 
 	;
 
 
-booleanExpression returns [BooleanExpression expr = null]
+booleanExpression returns [IBooleanExpression expr = null]
 	:
 	(featureExpression)=> fe = featureExpression {expr = ExpressionFactory.createBooleanFeatureExpression(fe);}
 	| (e = composedBooleanExpression)=> e = composedBooleanExpression {expr = e;}
@@ -2052,7 +2053,7 @@ booleanExpression returns [BooleanExpres
 	
 	;
 
-simpleBooleanExpression returns [BooleanExpression expr = null]
+simpleBooleanExpression returns [IBooleanExpression expr = null]
 	:
 	 e = literalBooleanExpression {expr = e;}
 	| {isVariableOfType($blockDeclaration::env,input.LT(1).getText(), "BOOLEAN")}? 
@@ -2060,7 +2061,7 @@ simpleBooleanExpression returns [Boolean
 	;
 
 // not checked
-composedBooleanExpression returns [BooleanExpression expr = null]
+composedBooleanExpression returns [IBooleanExpression expr = null]
 
 	:
 	(e2 = booleanCompare)=> e2 = booleanCompare {expr = e2;}
@@ -2070,7 +2071,7 @@ composedBooleanExpression returns [Boole
 	;
 
 // not checked
-booleanFunction returns [BooleanExpression expr = null]
+booleanFunction returns [IBooleanExpression expr = null]
 
 	:
 	(op = XOR LPAREN e1 = booleanExpression COMMA e2 = booleanExpression RPAREN)
@@ -2079,7 +2080,7 @@ booleanFunction returns [BooleanExpressi
 	;
 
 // not checked
-externalBooleanFunction returns [BooleanExpression expr = null]
+externalBooleanFunction returns [IBooleanExpression expr = null]
 	:
 	{isBooleanFunctionExtension(input.LT(1).getText())}? 
 	id = Identifier LPAREN
@@ -2090,14 +2091,14 @@ externalBooleanFunction returns [Boolean
 	;
 
 // not checked
-booleanCompare returns [BooleanExpression expr = null]
+booleanCompare returns [IBooleanExpression expr = null]
 	:
 	(e1 = simpleBooleanExpression op = (EQUAL | NOTEQUAL) e2 = booleanExpression)
 	{expr = ExpressionFactory.createBooleanFunction(op,e1,e2);}
 	;
 
 
-literalBooleanExpression returns  [BooleanExpression expr = null]
+literalBooleanExpression returns  [IBooleanExpression expr = null]
 	:
 	v = TRUE {expr = ExpressionFactory.createSimpleBooleanExpression(v);} 
 	| v = FALSE {expr = ExpressionFactory.createSimpleBooleanExpression(v);}
@@ -2105,7 +2106,7 @@ literalBooleanExpression returns  [Boole
 
 
 
-booleanTypeExpression  returns  [BooleanExpression expr = null]
+booleanTypeExpression  returns  [IBooleanExpression expr = null]
 	:
 	e1 = typeExpression
 	op = (EQUAL | NOTEQUAL)
@@ -2113,7 +2114,7 @@ booleanTypeExpression  returns  [Boolean
 	{expr = ExpressionFactory.createBooleanTypeExpression(e1,op,e2);}
 	;
 	
-booleanNumberExpression  returns  [BooleanExpression expr = null]
+booleanNumberExpression  returns  [IBooleanExpression expr = null]
 	:
 	LPAREN
 	e1 = numberExpression//{exprs.add(e);} 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/BlockApply.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/BlockApply.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/BlockApply.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/BlockApply.java Fri Dec  6 08:41:07 2013
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.uima.ruta.rule.RuleApply;
-import org.apache.uima.ruta.rule.RuleElement;
 
 public class BlockApply extends ScriptApply {
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java Fri Dec  6 08:41:07 2013
@@ -44,16 +44,16 @@ import org.apache.uima.resource.metadata
 import org.apache.uima.resource.metadata.TypeSystemDescription;
 import org.apache.uima.ruta.action.AbstractRutaAction;
 import org.apache.uima.ruta.condition.AbstractRutaCondition;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
 import org.apache.uima.ruta.expression.list.SimpleBooleanListExpression;
 import org.apache.uima.ruta.expression.list.SimpleNumberListExpression;
 import org.apache.uima.ruta.expression.list.SimpleStringListExpression;
 import org.apache.uima.ruta.expression.list.SimpleTypeListExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.resource.LiteralWordListExpression;
 import org.apache.uima.ruta.expression.resource.LiteralWordTableExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.SimpleTypeExpression;
 import org.apache.uima.ruta.resource.CSVTable;
 import org.apache.uima.ruta.resource.MultiTreeWordList;
@@ -515,8 +515,8 @@ public class RutaEnvironment {
   public Object getLiteralValue(String var, Object value) {
     if (ownsVariable(var)) {
       Class<?> clazz = variableTypes.get(var);
-      if (value instanceof NumberExpression) {
-        NumberExpression ne = (NumberExpression) value;
+      if (value instanceof INumberExpression) {
+        INumberExpression ne = (INumberExpression) value;
         if (clazz.equals(Integer.class)) {
           return ne.getIntegerValue(owner, null, null);
         } else if (clazz.equals(Double.class)) {
@@ -526,11 +526,11 @@ public class RutaEnvironment {
         } else if (clazz.equals(String.class)) {
           return ne.getStringValue(owner, null, null);
         }
-      } else if (clazz.equals(String.class) && value instanceof StringExpression) {
-        StringExpression se = (StringExpression) value;
+      } else if (clazz.equals(String.class) && value instanceof IStringExpression) {
+        IStringExpression se = (IStringExpression) value;
         return se.getStringValue(owner, null, null);
-      } else if (clazz.equals(Boolean.class) && value instanceof BooleanExpression) {
-        BooleanExpression be = (BooleanExpression) value;
+      } else if (clazz.equals(Boolean.class) && value instanceof IBooleanExpression) {
+        IBooleanExpression be = (IBooleanExpression) value;
         return be.getBooleanValue(owner, null, null);
       }
       if (clazz.equals(RutaWordList.class) && value instanceof LiteralWordListExpression) {

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaScriptFactory.java Fri Dec  6 08:41:07 2013
@@ -27,10 +27,10 @@ import java.util.TreeMap;
 import org.antlr.runtime.Token;
 import org.apache.uima.ruta.action.AbstractRutaAction;
 import org.apache.uima.ruta.condition.AbstractRutaCondition;
+import org.apache.uima.ruta.expression.IRutaExpression;
 import org.apache.uima.ruta.expression.MatchReference;
-import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.AbstractRuleElement;
 import org.apache.uima.ruta.rule.ComposedRuleElement;
@@ -117,7 +117,7 @@ public class RutaScriptFactory {
     return new RutaRule(elements, parent, idCounter++);
   }
 
-  public RutaRuleElement createRuleElement(RutaExpression expression,
+  public RutaRuleElement createRuleElement(IRutaExpression expression,
           RuleElementQuantifier quantifier, List<AbstractRutaCondition> conditions,
           List<AbstractRutaAction> actions, RuleElementContainer container, RutaBlock parent) {
     RutaMatcher matcher = null;
@@ -127,8 +127,8 @@ public class RutaScriptFactory {
       // e.g., for functions
       MatchReference matchReference = new MatchReference((TypeExpression) expression);
       matcher = new RutaTypeMatcher(matchReference);
-    } else if (expression instanceof StringExpression) {
-      matcher = new RutaLiteralMatcher((StringExpression) expression);
+    } else if (expression instanceof IStringExpression) {
+      matcher = new RutaLiteralMatcher((IStringExpression) expression);
     }
     return new RutaRuleElement(matcher, quantifier, conditions, actions, container, parent);
   }
@@ -161,13 +161,13 @@ public class RutaScriptFactory {
     return new StarReluctant();
   }
 
-  public static RuleElementQuantifier createMinMaxGreedyQuantifier(NumberExpression min,
-          NumberExpression max, Token comma) {
+  public static RuleElementQuantifier createMinMaxGreedyQuantifier(INumberExpression min,
+          INumberExpression max, Token comma) {
     return new MinMaxGreedy(min, max, comma != null);
   }
 
-  public static RuleElementQuantifier createMinMaxReluctantQuantifier(NumberExpression min,
-          NumberExpression max, Token comma) {
+  public static RuleElementQuantifier createMinMaxReluctantQuantifier(INumberExpression min,
+          INumberExpression max, Token comma) {
     return new MinMaxReluctant(min, max, comma != null);
   }
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java Fri Dec  6 08:41:07 2013
@@ -26,7 +26,7 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -58,7 +58,7 @@ public abstract class AbstractMarkAction
     return super.toString() + "," + type.getClass().getSimpleName();
   }
 
-  protected List<Integer> getIndexList(RuleElement element, List<NumberExpression> list,
+  protected List<Integer> getIndexList(RuleElement element, List<INumberExpression> list,
           RutaStream stream) {
     List<Integer> indexList = new ArrayList<Integer>();
     if (list == null || list.isEmpty()) {
@@ -67,7 +67,7 @@ public abstract class AbstractMarkAction
       return indexList;
     }
     int last = Integer.MAX_VALUE - 1;
-    for (NumberExpression each : list) {
+    for (INumberExpression each : list) {
       int value = each.getIntegerValue(element.getParent(), null, stream);
       for (int i = Math.min(value, last + 1); i < value; i++) {
         indexList.add(i);

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractStructureAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractStructureAction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractStructureAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractStructureAction.java Fri Dec  6 08:41:07 2013
@@ -34,10 +34,10 @@ import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.UIMAConstants;
-import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.IRutaExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.utils.UIMAUtils;
@@ -48,11 +48,11 @@ public abstract class AbstractStructureA
     super();
   }
 
-  protected void fillFeatures(TOP structure, Map<StringExpression, RutaExpression> features,
+  protected void fillFeatures(TOP structure, Map<IStringExpression, IRutaExpression> features,
           AnnotationFS matchedAnnotation, RuleElement element, RutaStream stream) {
-    Map<String, RutaExpression> map = new HashMap<String, RutaExpression>();
+    Map<String, IRutaExpression> map = new HashMap<String, IRutaExpression>();
     RutaBlock parent = element.getParent();
-    for (Entry<StringExpression, RutaExpression> each : features.entrySet()) {
+    for (Entry<IStringExpression, IRutaExpression> each : features.entrySet()) {
       String value = each.getKey().getStringValue(parent, matchedAnnotation, stream);
       map.put(value, each.getValue());
     }
@@ -76,34 +76,34 @@ public abstract class AbstractStructureA
             AnnotationFS annotation = annotationsInWindow.get(0);
             structure.setStringValue(targetFeature, annotation.getCoveredText());
           }
-        } else if (valueObject instanceof StringExpression
+        } else if (valueObject instanceof IStringExpression
                 && range.getName().equals(UIMAConstants.TYPE_STRING)) {
-          structure.setStringValue(targetFeature, ((StringExpression) valueObject).getStringValue(
+          structure.setStringValue(targetFeature, ((IStringExpression) valueObject).getStringValue(
                   parent, matchedAnnotation, stream));
 
-        } else if (valueObject instanceof NumberExpression) {
+        } else if (valueObject instanceof INumberExpression) {
           if (range.getName().equals(UIMAConstants.TYPE_INTEGER)) {
-            structure.setIntValue(targetFeature, ((NumberExpression) valueObject).getIntegerValue(
+            structure.setIntValue(targetFeature, ((INumberExpression) valueObject).getIntegerValue(
                     parent, matchedAnnotation, stream));
           } else if (range.getName().equals(UIMAConstants.TYPE_DOUBLE)) {
-            structure.setDoubleValue(targetFeature, ((NumberExpression) valueObject)
+            structure.setDoubleValue(targetFeature, ((INumberExpression) valueObject)
                     .getDoubleValue(parent, matchedAnnotation, stream));
           } else if (range.getName().equals(UIMAConstants.TYPE_FLOAT)) {
-            structure.setFloatValue(targetFeature, ((NumberExpression) valueObject).getFloatValue(
+            structure.setFloatValue(targetFeature, ((INumberExpression) valueObject).getFloatValue(
                     parent, matchedAnnotation, stream));
           } else if (range.getName().equals(UIMAConstants.TYPE_BYTE)) {
-            structure.setByteValue(targetFeature, (byte) ((NumberExpression) valueObject)
+            structure.setByteValue(targetFeature, (byte) ((INumberExpression) valueObject)
                     .getIntegerValue(parent, matchedAnnotation, stream));
           } else if (range.getName().equals(UIMAConstants.TYPE_SHORT)) {
-            structure.setShortValue(targetFeature, (short) ((NumberExpression) valueObject)
+            structure.setShortValue(targetFeature, (short) ((INumberExpression) valueObject)
                     .getIntegerValue(parent, matchedAnnotation, stream));
           } else if (range.getName().equals(UIMAConstants.TYPE_LONG)) {
-            structure.setLongValue(targetFeature, (long) ((NumberExpression) valueObject)
+            structure.setLongValue(targetFeature, (long) ((INumberExpression) valueObject)
                     .getIntegerValue(parent, matchedAnnotation, stream));
           }
-        } else if (valueObject instanceof BooleanExpression
+        } else if (valueObject instanceof IBooleanExpression
                 && range.getName().equals(UIMAConstants.TYPE_BOOLEAN)) {
-          structure.setBooleanValue(targetFeature, ((BooleanExpression) valueObject)
+          structure.setBooleanValue(targetFeature, ((IBooleanExpression) valueObject)
                   .getBooleanValue(parent, matchedAnnotation, stream));
         } else if (valueObject instanceof TypeExpression) {
           TypeExpression type = (TypeExpression) valueObject;

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java Fri Dec  6 08:41:07 2013
@@ -25,16 +25,16 @@ import java.util.logging.Level;
 
 import org.antlr.runtime.Token;
 import org.apache.uima.ruta.RutaBlock;
-import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
+import org.apache.uima.ruta.expression.IRutaExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.feature.FeatureMatchExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
 import org.apache.uima.ruta.expression.list.StringListExpression;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.resource.WordListExpression;
 import org.apache.uima.ruta.expression.resource.WordTableExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 
 public class ActionFactory {
@@ -43,7 +43,7 @@ public class ActionFactory {
   }
 
   public static AbstractRutaAction createColorAction(TypeExpression typeExpr,
-          StringExpression bgcolor, StringExpression fgcolor, BooleanExpression selected,
+          IStringExpression bgcolor, IStringExpression fgcolor, IBooleanExpression selected,
           RutaBlock parent) {
     return new ColorAction(typeExpr, bgcolor, fgcolor, selected);
   }
@@ -53,14 +53,14 @@ public class ActionFactory {
   }
 
   public static AbstractRutaAction createMarkFastAction(TypeExpression type,
-          WordListExpression list, BooleanExpression ignore, NumberExpression ignoreLength,
-          BooleanExpression ignoreWS, RutaBlock parent) {
+          WordListExpression list, IBooleanExpression ignore, INumberExpression ignoreLength,
+          IBooleanExpression ignoreWS, RutaBlock parent) {
     return new MarkFastAction(type, list, ignore, ignoreLength, ignoreWS);
   }
 
   public static AbstractRutaAction createMarkFastAction(TypeExpression type,
-          StringListExpression list, BooleanExpression ignore, NumberExpression ignoreLength,
-          BooleanExpression ignoreWS, RutaBlock env) {
+          StringListExpression list, IBooleanExpression ignore, INumberExpression ignoreLength,
+          IBooleanExpression ignoreWS, RutaBlock env) {
     return new MarkFastAction(type, list, ignore, ignoreLength, ignoreWS);
   }
 
@@ -73,41 +73,41 @@ public class ActionFactory {
     return new RetainTypeAction(types);
   }
 
-  public static AbstractRutaAction createLogAction(StringExpression expr, Token log,
+  public static AbstractRutaAction createLogAction(IStringExpression expr, Token log,
           RutaBlock parent) {
     String logString = log == null ? "INFO" : log.getText();
     Level level = Level.parse(logString.toUpperCase());
     return new LogAction(expr, level);
   }
 
-  public static AbstractRutaAction createMarkAction(NumberExpression score, TypeExpression type,
-          List<NumberExpression> list, RutaBlock parent) {
+  public static AbstractRutaAction createMarkAction(INumberExpression score, TypeExpression type,
+          List<INumberExpression> list, RutaBlock parent) {
     return new MarkAction(type, score, list);
   }
 
-  public static AbstractRutaAction createMarkOnceAction(NumberExpression score,
-          TypeExpression type, List<NumberExpression> list, RutaBlock env) {
+  public static AbstractRutaAction createMarkOnceAction(INumberExpression score,
+          TypeExpression type, List<INumberExpression> list, RutaBlock env) {
     return new MarkOnceAction(type, score, list);
   }
 
-  public static AbstractRutaAction createReplaceAction(StringExpression lit, RutaBlock parent) {
+  public static AbstractRutaAction createReplaceAction(IStringExpression lit, RutaBlock parent) {
     return new ReplaceAction(lit);
   }
 
   public static AbstractRutaAction createCreateAction(TypeExpression typeExpr,
-          Map<StringExpression, RutaExpression> map, List<NumberExpression> indexes,
+          Map<IStringExpression, IRutaExpression> map, List<INumberExpression> indexes,
           RutaBlock parent) {
     return new CreateAction(typeExpr, map, indexes);
   }
 
   public static AbstractRutaAction createGatherAction(TypeExpression typeExpr,
-          Map<StringExpression, RutaExpression> map, List<NumberExpression> indexes,
+          Map<IStringExpression, IRutaExpression> map, List<INumberExpression> indexes,
           RutaBlock parent) {
     return new GatherAction(typeExpr, map, indexes);
   }
 
   public static AbstractRutaAction createFillAction(TypeExpression type,
-          Map<StringExpression, RutaExpression> map, RutaBlock parent) {
+          Map<IStringExpression, IRutaExpression> map, RutaBlock parent) {
     return new FillAction(type, map);
   }
 
@@ -116,11 +116,11 @@ public class ActionFactory {
   }
 
   public static AbstractRutaAction createConfigureAction(String ns,
-          Map<StringExpression, RutaExpression> map, RutaBlock env) {
+          Map<IStringExpression, IRutaExpression> map, RutaBlock env) {
     return new ConfigureAction(ns, map);
   }
 
-  public static AbstractRutaAction createAssignAction(Token nv, RutaExpression e, RutaBlock parent) {
+  public static AbstractRutaAction createAssignAction(Token nv, IRutaExpression e, RutaBlock parent) {
     return new AssignAction(nv.getText(), e);
   }
 
@@ -149,20 +149,20 @@ public class ActionFactory {
     return new RemoveFilterTypeAction(types);
   }
 
-  public static AbstractRutaAction createSetFeatureAction(StringExpression f, Object v,
+  public static AbstractRutaAction createSetFeatureAction(IStringExpression f, Object v,
           RutaBlock parent) {
-    if (v instanceof NumberExpression) {
-      return new SetFeatureAction(f, (NumberExpression) v);
-    } else if (v instanceof BooleanExpression) {
-      return new SetFeatureAction(f, (BooleanExpression) v);
-    } else if (v instanceof StringExpression) {
-      return new SetFeatureAction(f, (StringExpression) v);
+    if (v instanceof INumberExpression) {
+      return new SetFeatureAction(f, (INumberExpression) v);
+    } else if (v instanceof IBooleanExpression) {
+      return new SetFeatureAction(f, (IBooleanExpression) v);
+    } else if (v instanceof IStringExpression) {
+      return new SetFeatureAction(f, (IStringExpression) v);
     }
     return null;
   }
 
   public static AbstractRutaAction createUnmarkAction(TypeExpression f,
-          List<NumberExpression> list, BooleanExpression b, RutaBlock env) {
+          List<INumberExpression> list, IBooleanExpression b, RutaBlock env) {
     return new UnmarkAction(f, list, b);
   }
 
@@ -185,46 +185,46 @@ public class ActionFactory {
   }
 
   public static AbstractRutaAction createTrieAction(WordListExpression list,
-          Map<StringExpression, TypeExpression> map, BooleanExpression ignoreCase,
-          NumberExpression ignoreLength, BooleanExpression edit, NumberExpression distance,
-          StringExpression ignoreChar, RutaBlock parent) {
+          Map<IStringExpression, TypeExpression> map, IBooleanExpression ignoreCase,
+          INumberExpression ignoreLength, IBooleanExpression edit, INumberExpression distance,
+          IStringExpression ignoreChar, RutaBlock parent) {
     return new TrieAction(list, map, ignoreCase, ignoreLength, edit, distance, ignoreChar);
   }
 
-  public static AbstractRutaAction createExecAction(String ns, TypeListExpression tl, StringExpression view, RutaBlock env) {
+  public static AbstractRutaAction createExecAction(String ns, TypeListExpression tl, IStringExpression view, RutaBlock env) {
     return new ExecAction(ns, tl, view);
   }
 
   public static AbstractRutaAction createMarkTableAction(TypeExpression structure,
-          NumberExpression index, WordTableExpression table,
-          Map<StringExpression, NumberExpression> map, BooleanExpression ignoreCase,
-          NumberExpression ignoreLength, StringExpression ignoreChar,
-          NumberExpression maxIgnoreChar, RutaBlock env) {
+          INumberExpression index, WordTableExpression table,
+          Map<IStringExpression, INumberExpression> map, IBooleanExpression ignoreCase,
+          INumberExpression ignoreLength, IStringExpression ignoreChar,
+          INumberExpression maxIgnoreChar, RutaBlock env) {
     return new MarkTableAction(structure, index, table, map, ignoreCase, ignoreLength, ignoreChar,
             maxIgnoreChar);
   }
 
-  public static AbstractRutaAction createMergeAction(BooleanExpression union, Token target,
+  public static AbstractRutaAction createMergeAction(IBooleanExpression union, Token target,
           List<ListExpression> list, RutaBlock env) {
     return new MergeAction(union, target == null ? null : target.getText(), list);
   }
 
-  public static AbstractRutaAction createGetAction(ListExpression<RutaExpression> f, Token var,
-          StringExpression op, RutaBlock env) {
+  public static AbstractRutaAction createGetAction(ListExpression<IRutaExpression> f, Token var,
+          IStringExpression op, RutaBlock env) {
     return new GetAction(f, var == null ? null : var.getText(), op);
   }
 
-  public static AbstractRutaAction createRemoveAction(Token var, List<RutaExpression> list,
+  public static AbstractRutaAction createRemoveAction(Token var, List<IRutaExpression> list,
           RutaBlock env) {
     return new RemoveAction(var == null ? null : var.getText(), list);
   }
 
-  public static AbstractRutaAction createAddAction(Token var, List<RutaExpression> list,
+  public static AbstractRutaAction createAddAction(Token var, List<IRutaExpression> list,
           RutaBlock env) {
     return new AddAction(var == null ? null : var.getText(), list);
   }
 
-  public static AbstractRutaAction createGetListAction(Token var, StringExpression op, RutaBlock env) {
+  public static AbstractRutaAction createGetListAction(Token var, IStringExpression op, RutaBlock env) {
     return new GetListAction(var == null ? null : var.getText(), op);
   }
 
@@ -232,12 +232,12 @@ public class ActionFactory {
     return new RemoveDuplicateAction(var == null ? null : var.getText());
   }
 
-  public static AbstractRutaAction createGetFeatureAction(StringExpression f, Token var,
+  public static AbstractRutaAction createGetFeatureAction(IStringExpression f, Token var,
           RutaBlock env) {
     return new GetFeatureAction(f, var == null ? null : var.getText());
   }
 
-  public static AbstractRutaAction createMatchedTextAction(Token var, List<NumberExpression> list,
+  public static AbstractRutaAction createMatchedTextAction(Token var, List<INumberExpression> list,
           RutaBlock env) {
     return new MatchedTextAction(var == null ? null : var.getText(), list);
   }
@@ -247,12 +247,12 @@ public class ActionFactory {
   }
 
   public static AbstractRutaAction createShiftAction(TypeExpression type,
-          List<NumberExpression> list, RutaBlock env) {
+          List<INumberExpression> list, RutaBlock env) {
     return new ShiftAction(type, list);
   }
 
-  public static AbstractRutaAction createDynamicAnchoringAction(BooleanExpression active,
-          NumberExpression penalty, NumberExpression factor, RutaBlock env) {
+  public static AbstractRutaAction createDynamicAnchoringAction(IBooleanExpression active,
+          INumberExpression penalty, INumberExpression factor, RutaBlock env) {
     return new DynamicAnchoringAction(active, penalty, factor);
   }
 
@@ -273,7 +273,7 @@ public class ActionFactory {
     return new MarkFirstAction(type);
   }
 
-  public static AbstractRutaAction createGreedyAnchoringAction(BooleanExpression active,
+  public static AbstractRutaAction createGreedyAnchoringAction(IBooleanExpression active,
           RutaBlock env) {
     return new GreedyAnchoringAction(active);
   }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java Fri Dec  6 08:41:07 2013
@@ -25,11 +25,11 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaEnvironment;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
+import org.apache.uima.ruta.expression.IRutaExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -39,9 +39,9 @@ public class AddAction extends AbstractR
 
   private String var;
 
-  private List<RutaExpression> elements;
+  private List<IRutaExpression> elements;
 
-  public AddAction(String var, List<RutaExpression> list) {
+  public AddAction(String var, List<IRutaExpression> list) {
     super();
     this.var = var;
     this.elements = list;
@@ -51,7 +51,7 @@ public class AddAction extends AbstractR
     return var;
   }
 
-  public List<RutaExpression> getElements() {
+  public List<IRutaExpression> getElements() {
     return elements;
   }
 
@@ -63,20 +63,20 @@ public class AddAction extends AbstractR
     List list = environment.getVariableValue(var, List.class);
     // Class<?> vtype = environment.getVariableType(var);
     Class<?> vgtype = environment.getVariableGenericType(var);
-    for (RutaExpression each : elements) {
+    for (IRutaExpression each : elements) {
       if (each instanceof ListExpression) {
         ListExpression l = (ListExpression) each;
         list.addAll(l.getList(parent, stream));
-      } else if (vgtype.equals(Boolean.class) && each instanceof BooleanExpression) {
-        list.add(((BooleanExpression) each).getBooleanValue(parent, match, element, stream));
-      } else if (vgtype.equals(Integer.class) && each instanceof NumberExpression) {
-        list.add(((NumberExpression) each).getIntegerValue(parent, match, element, stream));
-      } else if (vgtype.equals(Double.class) && each instanceof NumberExpression) {
-        list.add(((NumberExpression) each).getDoubleValue(parent, match, element, stream));
+      } else if (vgtype.equals(Boolean.class) && each instanceof IBooleanExpression) {
+        list.add(((IBooleanExpression) each).getBooleanValue(parent, match, element, stream));
+      } else if (vgtype.equals(Integer.class) && each instanceof INumberExpression) {
+        list.add(((INumberExpression) each).getIntegerValue(parent, match, element, stream));
+      } else if (vgtype.equals(Double.class) && each instanceof INumberExpression) {
+        list.add(((INumberExpression) each).getDoubleValue(parent, match, element, stream));
       } else if (vgtype.equals(Type.class) && each instanceof TypeExpression) {
         list.add(((TypeExpression) each).getType(parent));
-      } else if (vgtype.equals(String.class) && each instanceof StringExpression) {
-        list.add(((StringExpression) each).getStringValue(parent, match, element, stream));
+      } else if (vgtype.equals(String.class) && each instanceof IStringExpression) {
+        list.add(((IStringExpression) each).getStringValue(parent, match, element, stream));
       }
     }
   }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java Fri Dec  6 08:41:07 2013
@@ -23,10 +23,10 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaEnvironment;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
-import org.apache.uima.ruta.expression.number.NumberExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
+import org.apache.uima.ruta.expression.IRutaExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -36,9 +36,9 @@ public class AssignAction extends Abstra
 
   private String var;
 
-  private RutaExpression expression;
+  private IRutaExpression expression;
 
-  public AssignAction(String var, RutaExpression e) {
+  public AssignAction(String var, IRutaExpression e) {
     super();
     this.var = var;
     this.expression = e;
@@ -49,20 +49,20 @@ public class AssignAction extends Abstra
     RutaBlock parent = element.getParent();
     RutaEnvironment environment = parent.getEnvironment();
     Class<?> clazz = environment.getVariableType(var);
-    if (clazz.equals(Integer.class) && expression instanceof NumberExpression) {
-      int v = ((NumberExpression) expression).getIntegerValue(parent, match, element, stream);
+    if (clazz.equals(Integer.class) && expression instanceof INumberExpression) {
+      int v = ((INumberExpression) expression).getIntegerValue(parent, match, element, stream);
       environment.setVariableValue(var, v);
-    } else if (clazz.equals(Double.class) && expression instanceof NumberExpression) {
-      double v = ((NumberExpression) expression).getDoubleValue(parent, match, element, stream);
+    } else if (clazz.equals(Double.class) && expression instanceof INumberExpression) {
+      double v = ((INumberExpression) expression).getDoubleValue(parent, match, element, stream);
       environment.setVariableValue(var, v);
     } else if (clazz.equals(Type.class) && expression instanceof TypeExpression) {
       Type v = ((TypeExpression) expression).getType(parent);
       environment.setVariableValue(var, v);
-    } else if (clazz.equals(Boolean.class) && expression instanceof BooleanExpression) {
-      boolean v = ((BooleanExpression) expression).getBooleanValue(parent, match, element, stream);
+    } else if (clazz.equals(Boolean.class) && expression instanceof IBooleanExpression) {
+      boolean v = ((IBooleanExpression) expression).getBooleanValue(parent, match, element, stream);
       environment.setVariableValue(var, v);
-    } else if (clazz.equals(String.class) && expression instanceof StringExpression) {
-      String v = ((StringExpression) expression).getStringValue(parent, match, element, stream);
+    } else if (clazz.equals(String.class) && expression instanceof IStringExpression) {
+      String v = ((IStringExpression) expression).getStringValue(parent, match, element, stream);
       environment.setVariableValue(var, v);
     }
   }
@@ -71,7 +71,7 @@ public class AssignAction extends Abstra
     return var;
   }
 
-  public RutaExpression getExpression() {
+  public IRutaExpression getExpression() {
     return expression;
   }
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java?rev=1548429&r1=1548428&r2=1548429&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java Fri Dec  6 08:41:07 2013
@@ -23,10 +23,10 @@ import org.apache.uima.cas.FeatureStruct
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.bool.BooleanExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.string.SimpleStringExpression;
-import org.apache.uima.ruta.expression.string.StringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -35,16 +35,16 @@ import org.apache.uima.ruta.visitor.Infe
 
 public class ColorAction extends AbstractRutaAction {
 
-  private StringExpression bgcolor;
+  private IStringExpression bgcolor;
 
-  private StringExpression fgcolor;
+  private IStringExpression fgcolor;
 
-  private BooleanExpression selected;
+  private IBooleanExpression selected;
 
   private TypeExpression type;
 
-  public ColorAction(TypeExpression type, StringExpression bgcolor, StringExpression fgcolor,
-          BooleanExpression selected) {
+  public ColorAction(TypeExpression type, IStringExpression bgcolor, IStringExpression fgcolor,
+          IBooleanExpression selected) {
     super();
     this.type = type;
     this.bgcolor = bgcolor == null ? new SimpleStringExpression("red") : bgcolor;
@@ -68,15 +68,15 @@ public class ColorAction extends Abstrac
     }
   }
 
-  public StringExpression getFgColor() {
+  public IStringExpression getFgColor() {
     return fgcolor;
   }
 
-  public StringExpression getBgColor() {
+  public IStringExpression getBgColor() {
     return bgcolor;
   }
 
-  public BooleanExpression getSelected() {
+  public IBooleanExpression getSelected() {
     return selected;
   }