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 2016/01/04 11:33:50 UTC

svn commit: r1722834 [8/9] - in /uima/ruta/trunk: ./ example-projects/ruta-ep-example-extensions/ example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/ ruta-core-ext/src/main/java/org/apache/uima/ruta/block/...

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java Mon Jan  4 10:33:48 2016
@@ -252,7 +252,8 @@ public class WildCardRuleElement extends
     } else if (matcher instanceof RutaLiteralMatcher) {
       RutaLiteralMatcher lm = (RutaLiteralMatcher) matcher;
       IStringExpression expression = lm.getExpression();
-      String stringValue = expression.getStringValue(parent, annotation, stream);
+      MatchContext context = new MatchContext(this, null, after);
+      String stringValue = expression.getStringValue(context, stream);
       AnnotationFS documentAnnotation = stream.getDocumentAnnotation();
       int delta = documentAnnotation.getBegin();
       String document = documentAnnotation.getCoveredText();
@@ -298,7 +299,8 @@ public class WildCardRuleElement extends
       if (c instanceof ComposedRuleElement) {
         ComposedRuleElement cre = (ComposedRuleElement) c;
 
-        if (nextElement.getQuantifier().isOptional(parent, stream)) {
+        MatchContext context = new MatchContext(this, null, after);
+        if (nextElement.getQuantifier().isOptional(context, stream)) {
           // optional did not match -> match complete window/document
           // TODO refactor
 
@@ -418,10 +420,10 @@ public class WildCardRuleElement extends
           } else {
             // HOTFIX caused by type priorities
             result.moveToLast();
-            if(result.isValid()) {
+            if (result.isValid()) {
               // HOTFIX avoid pointer to current annotation
               AnnotationFS current = result.get();
-              if(current.getEnd() >= annotation.getBegin()) {
+              if (current.getEnd() >= annotation.getBegin()) {
                 result.moveToPrevious();
               }
             }
@@ -468,10 +470,10 @@ public class WildCardRuleElement extends
           } else {
             // TODO due to type priorities: RutaBasic is last -> moveTo will not work
             result.moveToLast();
-            if(result.isValid()) {
+            if (result.isValid()) {
               // HOTFIX avoid pointer to current annotation
               AnnotationFS current = result.get();
-              if(current.getEnd() >= annotation.getBegin()) {
+              if (current.getEnd() >= annotation.getBegin()) {
                 result.moveToPrevious();
               }
             }
@@ -494,7 +496,8 @@ public class WildCardRuleElement extends
     List<RuleMatch> result = new ArrayList<RuleMatch>();
     RutaLiteralMatcher matcher = (RutaLiteralMatcher) nextElement.getMatcher();
     IStringExpression expression = matcher.getExpression();
-    String stringValue = expression.getStringValue(parent, null, stream);
+    MatchContext context = new MatchContext(this, ruleMatch, true);
+    String stringValue = expression.getStringValue(context, stream);
     AnnotationFS documentAnnotation = stream.getDocumentAnnotation();
     int delta = documentAnnotation.getBegin();
     String document = documentAnnotation.getCoveredText();
@@ -629,11 +632,14 @@ public class WildCardRuleElement extends
     List<EvaluatedCondition> evaluatedConditions = new ArrayList<EvaluatedCondition>(
             conditions.size());
     boolean base = true;
+
+    MatchContext context = new MatchContext(annotation, this, ruleMatch, true);
+
     List<AnnotationFS> textsMatched = new ArrayList<AnnotationFS>(1);
     if (base) {
       for (AbstractRutaCondition condition : conditions) {
         crowd.beginVisit(condition, null);
-        EvaluatedCondition eval = condition.eval(annotation, this, stream, crowd);
+        EvaluatedCondition eval = condition.eval(context, stream, crowd);
         crowd.endVisit(condition, null);
         evaluatedConditions.add(eval);
       }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxGreedy.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxGreedy.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxGreedy.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxGreedy.java Mon Jan  4 10:33:48 2016
@@ -22,14 +22,12 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 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.number.INumberExpression;
 import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
-import org.apache.uima.ruta.rule.RuleElement;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElementMatch;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class MinMaxGreedy extends AbstractRuleElementQuantifier {
@@ -53,10 +51,10 @@ public class MinMaxGreedy extends Abstra
   }
 
   @Override
-  public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches, RutaBlock parent,
-          RutaStream stream, InferenceCrowd crowd) {
-    int minValue = min.getIntegerValue(parent, null, stream);
-    int maxValue = max.getIntegerValue(parent, null, stream);
+  public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+    int minValue = min.getIntegerValue(context, stream);
+    int maxValue = max.getIntegerValue(context, stream);
 
     if (matches.size() > 0) {
       RuleElementMatch ruleElementMatch = matches.get(matches.size() - 1);
@@ -84,16 +82,15 @@ public class MinMaxGreedy extends Abstra
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch extendedMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
     if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
-    int minValue = min.getIntegerValue(ruleElement.getParent(), annotation, stream);
-    int maxValue = max.getIntegerValue(ruleElement.getParent(), annotation, stream);
-    List<RuleElementMatch> list = containerMatch.getInnerMatches().get(ruleElement);
+    int minValue = min.getIntegerValue(context, stream);
+    int maxValue = max.getIntegerValue(context, stream);
+    List<RuleElementMatch> list = containerMatch.getInnerMatches().get(context.getElement());
     if (list == null) {
       if (maxValue > 0) {
         return true;
@@ -116,8 +113,8 @@ public class MinMaxGreedy extends Abstra
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
-    int minValue = min.getIntegerValue(parent, null, stream);
+  public boolean isOptional(MatchContext context, RutaStream stream) {
+    int minValue = min.getIntegerValue(context, stream);
     return minValue == 0;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxReluctant.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxReluctant.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxReluctant.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/MinMaxReluctant.java Mon Jan  4 10:33:48 2016
@@ -22,11 +22,11 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 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.number.INumberExpression;
 import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -62,9 +62,9 @@ public class MinMaxReluctant extends Abs
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
-    int minValue = min.getIntegerValue(parent, null, stream);
-    int maxValue = max.getIntegerValue(parent, null, stream);
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+    int minValue = min.getIntegerValue(context, stream);
+    int maxValue = max.getIntegerValue(context, stream);
     if (matches.size() > 0) {
       RuleElementMatch ruleElementMatch = matches.get(matches.size() - 1);
       if (!ruleElementMatch.matched()) {
@@ -81,15 +81,15 @@ public class MinMaxReluctant extends Abs
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch ruleMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
-    int minValue = min.getIntegerValue(ruleElement.getParent(), annotation, stream);
-    int maxValue = max.getIntegerValue(ruleElement.getParent(), annotation, stream);
+    RuleElement ruleElement = context.getElement();
+    int minValue = min.getIntegerValue(context, stream);
+    int maxValue = max.getIntegerValue(context, stream);
     List<RuleElementMatch> list = containerMatch.getInnerMatches().get(ruleElement);
     if (list == null) {
       if (maxValue > 0) {
@@ -115,8 +115,8 @@ public class MinMaxReluctant extends Abs
       return false;
     }
     ComposedRuleElementMatch extendedContainerMatch = containerMatch.copy();
-    RuleMatch extendedMatch = ruleMatch.copy(extendedContainerMatch, after);
-    
+    RuleMatch extendedMatch = context.getRuleMatch().copy(extendedContainerMatch, after);
+
     List<RuleMatch> continueMatch = nextElement.continueMatch(after, annotation, extendedMatch,
             null, extendedContainerMatch, null, nextElement, stream, crowd);
     boolean nextMatched = nextElementMatched(nextElement, continueMatch);
@@ -126,8 +126,8 @@ public class MinMaxReluctant extends Abs
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
-    int minValue = min.getIntegerValue(parent, null, stream);
+  public boolean isOptional(MatchContext context, RutaStream stream) {
+    int minValue = min.getIntegerValue(context, stream);
     return minValue == 0;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/NormalQuantifier.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/NormalQuantifier.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/NormalQuantifier.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/NormalQuantifier.java Mon Jan  4 10:33:48 2016
@@ -22,25 +22,24 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class NormalQuantifier extends AbstractRuleElementQuantifier {
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     if (matches == null) {
       return null;
     }
     boolean result = true;
     boolean allEmpty = true;
-    
+
     for (RuleElementMatch match : matches) {
       result &= match.matched();
       allEmpty &= match.getTextsMatched().isEmpty();
@@ -54,19 +53,19 @@ public class NormalQuantifier extends Ab
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch extendedMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
+    RuleElement ruleElement = context.getElement();
     List<RuleElementMatch> list = containerMatch.getInnerMatches().get(ruleElement);
     return list == null || list.isEmpty();
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return false;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusGreedy.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusGreedy.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusGreedy.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusGreedy.java Mon Jan  4 10:33:48 2016
@@ -22,12 +22,11 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class PlusGreedy extends AbstractRuleElementQuantifier {
@@ -38,7 +37,7 @@ public class PlusGreedy extends Abstract
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     boolean result = true;
     boolean allEmpty = true;
     if (matches == null) {
@@ -63,14 +62,14 @@ public class PlusGreedy extends Abstract
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch extendedMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
-    List<List<RuleElementMatch>> matchInfo = extendedMatch.getMatchInfo(ruleElement);
+    RuleElement ruleElement = context.getElement();
+    List<List<RuleElementMatch>> matchInfo = context.getRuleMatch().getMatchInfo(ruleElement);
     List<RuleElementMatch> matches;
     if (after) {
       matches = matchInfo.get(matchInfo.size() - 1);
@@ -99,7 +98,7 @@ public class PlusGreedy extends Abstract
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return false;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusReluctant.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusReluctant.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusReluctant.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/PlusReluctant.java Mon Jan  4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -34,7 +34,7 @@ public class PlusReluctant extends Abstr
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     boolean result = true;
     boolean allEmpty = true;
     for (RuleElementMatch match : matches) {
@@ -57,13 +57,13 @@ public class PlusReluctant extends Abstr
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch ruleMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
+    RuleElement ruleElement = context.getElement();
     List<RuleElementMatch> ownList = containerMatch.getInnerMatches().get(ruleElement);
     if (ownList == null || ownList.isEmpty()) {
       return true;
@@ -74,7 +74,7 @@ public class PlusReluctant extends Abstr
       return false;
     }
     ComposedRuleElementMatch extendedContainerMatch = containerMatch.copy();
-    RuleMatch extendedMatch = ruleMatch.copy(extendedContainerMatch, after);
+    RuleMatch extendedMatch = context.getRuleMatch().copy(extendedContainerMatch, after);
     List<RuleMatch> continueMatch = nextElement.continueMatch(after, annotation, extendedMatch,
             null, extendedContainerMatch, null, nextElement, stream, crowd);
     boolean result = !nextElementMatched(nextElement, continueMatch);
@@ -82,7 +82,7 @@ public class PlusReluctant extends Abstr
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return false;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionGreedy.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionGreedy.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionGreedy.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionGreedy.java Mon Jan  4 10:33:48 2016
@@ -23,19 +23,18 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class QuestionGreedy extends AbstractRuleElementQuantifier {
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     boolean result = true;
     if (matches == null) {
       return Collections.emptyList();
@@ -56,19 +55,19 @@ public class QuestionGreedy extends Abst
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch extendedMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
+    RuleElement ruleElement = context.getElement();
     List<RuleElementMatch> list = containerMatch.getInnerMatches().get(ruleElement);
     return list == null || list.isEmpty();
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return true;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionReluctant.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionReluctant.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionReluctant.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/QuestionReluctant.java Mon Jan  4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -34,7 +34,7 @@ public class QuestionReluctant extends A
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     boolean result = true;
     for (RuleElementMatch match : matches) {
       result &= match.matched() || match.getTextsMatched().isEmpty();
@@ -51,10 +51,10 @@ public class QuestionReluctant extends A
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch ruleMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    RuleElement ruleElement = context.getElement();
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
@@ -68,8 +68,8 @@ public class QuestionReluctant extends A
       return false;
     }
     ComposedRuleElementMatch extendedContainerMatch = containerMatch.copy();
-    RuleMatch extendedMatch = ruleMatch.copy(extendedContainerMatch, after);
-    
+    RuleMatch extendedMatch = context.getRuleMatch().copy(extendedContainerMatch, after);
+
     List<RuleMatch> continueMatch = nextElement.continueMatch(after, annotation, extendedMatch,
             null, extendedContainerMatch, null, nextElement, stream, crowd);
     boolean result = !nextElementMatched(nextElement, continueMatch);
@@ -77,7 +77,7 @@ public class QuestionReluctant extends A
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return true;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/RuleElementQuantifier.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/RuleElementQuantifier.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/RuleElementQuantifier.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/RuleElementQuantifier.java Mon Jan  4 10:33:48 2016
@@ -22,23 +22,20 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
-import org.apache.uima.ruta.rule.RuleElement;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElementMatch;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public interface RuleElementQuantifier {
 
-  List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches, RutaBlock parent,
+  List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches, MatchContext context,
           RutaStream stream, InferenceCrowd crowd);
 
-  boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch extendedMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd);
+  boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd);
 
-  boolean isOptional(RutaBlock parent, RutaStream stream);
+  boolean isOptional(MatchContext context, RutaStream stream);
 
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarGreedy.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarGreedy.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarGreedy.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarGreedy.java Mon Jan  4 10:33:48 2016
@@ -22,12 +22,10 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
-import org.apache.uima.ruta.rule.RuleElement;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElementMatch;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class StarGreedy extends AbstractRuleElementQuantifier {
@@ -38,7 +36,7 @@ public class StarGreedy extends Abstract
 
   @Override
   public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
-          RutaBlock parent, RutaStream stream, InferenceCrowd crowd) {
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     boolean result = true;
     if (matches == null) {
       return null;
@@ -59,10 +57,9 @@ public class StarGreedy extends Abstract
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch extendedMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
-    if(annotation == null) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
     }
@@ -70,7 +67,7 @@ public class StarGreedy extends Abstract
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return true;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarReluctant.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarReluctant.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarReluctant.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/quantifier/StarReluctant.java Mon Jan  4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.rule.quanti
 import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.ComposedRuleElementMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -33,15 +33,15 @@ import org.apache.uima.ruta.visitor.Infe
 public class StarReluctant extends AbstractRuleElementQuantifier {
 
   @Override
-  public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches, RutaBlock parent,
-          RutaStream stream, InferenceCrowd crowd) {
+  public List<RuleElementMatch> evaluateMatches(List<RuleElementMatch> matches,
+          MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     return matches;
   }
 
   @Override
-  public boolean continueMatch(boolean after, AnnotationFS annotation, RuleElement ruleElement,
-          RuleMatch ruleMatch, ComposedRuleElementMatch containerMatch, RutaStream stream,
-          InferenceCrowd crowd) {
+  public boolean continueMatch(boolean after, MatchContext context, AnnotationFS annotation,
+          ComposedRuleElementMatch containerMatch, RutaStream stream, InferenceCrowd crowd) {
+    RuleElement ruleElement = context.getElement();
     if (annotation == null) {
       // do not try to continue a match that totally failed
       return false;
@@ -51,7 +51,7 @@ public class StarReluctant extends Abstr
       return false;
     }
     ComposedRuleElementMatch extendedContainerMatch = containerMatch.copy();
-    RuleMatch extendedMatch = ruleMatch.copy(extendedContainerMatch, after);
+    RuleMatch extendedMatch = context.getRuleMatch().copy(extendedContainerMatch, after);
     List<RuleMatch> continueMatch = nextElement.continueMatch(after, annotation, extendedMatch,
             null, extendedContainerMatch, null, nextElement, stream, crowd);
     boolean result = !nextElementMatched(nextElement, continueMatch);
@@ -59,7 +59,7 @@ public class StarReluctant extends Abstr
   }
 
   @Override
-  public boolean isOptional(RutaBlock parent, RutaStream stream) {
+  public boolean isOptional(MatchContext context, RutaStream stream) {
     return true;
   }
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/seed/SeedLexer.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/seed/SeedLexer.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/seed/SeedLexer.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/seed/SeedLexer.java Mon Jan  4 10:33:48 2016
@@ -19,14 +19,10 @@
  * under the License.
  */
 
-
 package org.apache.uima.ruta.seed;
-import java.util.*;
-import java.util.regex.*;
 
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.jcas.JCas;
-
 import org.apache.uima.ruta.type.AMP;
 import org.apache.uima.ruta.type.BREAK;
 import org.apache.uima.ruta.type.CAP;
@@ -44,11 +40,9 @@ import org.apache.uima.ruta.type.SPACE;
 import org.apache.uima.ruta.type.SPECIAL;
 import org.apache.uima.ruta.type.SW;
 
-
 /**
- * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 04.11.14 14:02 from the specification file
+ * This class is a scanner generated by <a href="http://www.jflex.de/">JFlex</a> 1.4.3 on 04.11.14
+ * 14:02 from the specification file
  * <tt>D:/work/workspace-uima-ruta5/ruta/ruta-core/src/main/java/org/apache/uima/ruta/seed/SeedLexer.flex</tt>
  */
 class SeedLexer {
@@ -63,208 +57,201 @@ class SeedLexer {
   public static final int YYINITIAL = 0;
 
   /**
-   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
-   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
-   *                  at the beginning of a line
-   * l is of the form l = 2*k, k a non negative integer
-   */
-  private static final int ZZ_LEXSTATE[] = { 
-     0, 0
-  };
+   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l ZZ_LEXSTATE[l+1] is the state in
+   * the DFA for the lexical state l at the beginning of a line l is of the form l = 2*k, k a non
+   * negative integer
+   */
+  private static final int ZZ_LEXSTATE[] = { 0, 0 };
 
-  /** 
+  /**
    * Translates characters to character classes
    */
-  private static final String ZZ_CMAP_PACKED = 
-    "\10\0\1\4\1\3\1\4\2\0\1\4\22\0\1\3\1\7\4\0"+
-    "\1\12\5\0\1\25\1\0\1\26\1\6\12\2\1\24\1\17\1\5"+
-    "\1\0\1\10\1\27\1\0\1\1\1\21\13\1\1\20\1\1\1\23"+
-    "\2\1\1\22\7\1\6\0\1\31\1\14\13\31\1\13\1\31\1\16"+
-    "\2\31\1\15\7\31\45\0\1\11\11\0\1\30\12\0\1\30\4\0"+
-    "\1\30\5\0\27\32\1\0\7\32\30\30\1\0\10\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\2\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\2\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\2\32\1\30\1\32\1\30"+
-    "\1\32\3\30\2\32\1\30\1\32\1\30\2\32\1\30\3\32\2\30"+
-    "\4\32\1\30\2\32\1\30\3\32\3\30\2\32\1\30\2\32\1\30"+
-    "\1\32\1\30\1\32\1\30\2\32\1\30\1\32\2\30\1\32\1\30"+
-    "\2\32\1\30\3\32\1\30\1\32\1\30\2\32\2\30\1\0\1\32"+
-    "\3\30\4\0\1\32\1\0\1\30\1\32\1\0\1\30\1\32\1\0"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\2\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\2\30\1\32\1\0\1\30\1\32\1\30"+
-    "\3\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\7\30"+
-    "\2\32\1\30\2\32\2\30\1\32\1\30\4\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\105\30\1\0\44\30\7\0\2\30"+
-    "\36\0\5\30\140\0\1\30\52\0\1\32\1\30\1\32\1\30\2\0"+
-    "\1\32\1\30\2\0\4\30\10\0\1\32\1\0\3\32\1\0\1\32"+
-    "\1\0\2\32\1\30\21\32\1\0\11\32\43\30\1\32\2\30\3\32"+
-    "\3\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\5\30\1\32\1\30\1\0\1\32\1\30"+
-    "\2\32\2\30\63\32\60\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\10\0\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\2\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\2\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\11\0\46\32\12\0\47\30\u0b18\0"+
-    "\46\32\1\0\1\32\5\0\1\32\u0740\0\1\11\u04f1\0\300\30\100\0"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\11\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\11\30\10\32\6\30"+
-    "\2\0\6\32\2\0\10\30\10\32\10\30\10\32\6\30\2\0\6\32"+
-    "\2\0\10\30\1\0\1\32\1\0\1\32\1\0\1\32\1\0\1\32"+
-    "\10\30\10\32\16\30\2\0\10\30\10\0\10\30\10\0\10\30\10\0"+
-    "\5\30\1\0\2\30\4\32\2\0\1\30\3\0\3\30\1\0\2\30"+
-    "\4\32\4\0\4\30\2\0\2\30\4\32\4\0\10\30\5\32\5\0"+
-    "\3\30\1\0\2\30\4\32\13\0\1\11\47\0\1\11\101\0\1\30"+
-    "\15\0\1\30\20\0\15\30\145\0\1\32\4\0\1\32\2\0\1\30"+
-    "\3\32\2\30\3\32\1\30\1\0\1\32\3\0\5\32\6\0\1\32"+
-    "\1\0\1\32\1\0\1\32\1\0\4\32\1\0\1\30\4\32\1\30"+
-    "\4\0\1\30\2\0\2\30\2\32\5\0\1\32\4\30\4\0\1\30"+
-    "\21\0\20\32\20\30\3\0\1\32\1\30\u0331\0\32\32\32\30\u0716\0"+
-    "\57\32\1\0\57\30\1\0\1\32\1\30\3\32\2\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\4\32\1\30\1\32\2\30\1\32\10\30"+
-    "\3\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\2\30"+
-    "\6\0\1\32\1\30\1\32\1\30\3\0\1\32\1\30\14\0\46\30"+
-    "\1\0\1\30\5\0\1\30\u7912\0\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\22\0\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\212\0\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\3\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"+
-    "\1\30\1\32\12\30\1\32\1\30\1\32\1\30\2\32\1\30\1\32"+
-    "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\3\0\1\32\1\30"+
-    "\1\32\1\30\1\0\1\32\1\30\1\32\1\30\14\0\1\32\1\30"+
-    "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\115\0"+
-    "\3\30\u5305\0\7\30\14\0\5\30\u03e7\0\1\11\41\0\32\32\6\0"+
-    "\32\30\245\0";
+  private static final String ZZ_CMAP_PACKED = "\10\0\1\4\1\3\1\4\2\0\1\4\22\0\1\3\1\7\4\0"
+          + "\1\12\5\0\1\25\1\0\1\26\1\6\12\2\1\24\1\17\1\5"
+          + "\1\0\1\10\1\27\1\0\1\1\1\21\13\1\1\20\1\1\1\23"
+          + "\2\1\1\22\7\1\6\0\1\31\1\14\13\31\1\13\1\31\1\16"
+          + "\2\31\1\15\7\31\45\0\1\11\11\0\1\30\12\0\1\30\4\0"
+          + "\1\30\5\0\27\32\1\0\7\32\30\30\1\0\10\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\2\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\2\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\2\32\1\30\1\32\1\30"
+          + "\1\32\3\30\2\32\1\30\1\32\1\30\2\32\1\30\3\32\2\30"
+          + "\4\32\1\30\2\32\1\30\3\32\3\30\2\32\1\30\2\32\1\30"
+          + "\1\32\1\30\1\32\1\30\2\32\1\30\1\32\2\30\1\32\1\30"
+          + "\2\32\1\30\3\32\1\30\1\32\1\30\2\32\2\30\1\0\1\32"
+          + "\3\30\4\0\1\32\1\0\1\30\1\32\1\0\1\30\1\32\1\0"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\2\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\2\30\1\32\1\0\1\30\1\32\1\30"
+          + "\3\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\7\30"
+          + "\2\32\1\30\2\32\2\30\1\32\1\30\4\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\105\30\1\0\44\30\7\0\2\30"
+          + "\36\0\5\30\140\0\1\30\52\0\1\32\1\30\1\32\1\30\2\0"
+          + "\1\32\1\30\2\0\4\30\10\0\1\32\1\0\3\32\1\0\1\32"
+          + "\1\0\2\32\1\30\21\32\1\0\11\32\43\30\1\32\2\30\3\32"
+          + "\3\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\5\30\1\32\1\30\1\0\1\32\1\30"
+          + "\2\32\2\30\63\32\60\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\10\0\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\2\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\2\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\11\0\46\32\12\0\47\30\u0b18\0"
+          + "\46\32\1\0\1\32\5\0\1\32\u0740\0\1\11\u04f1\0\300\30\100\0"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\11\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\11\30\10\32\6\30"
+          + "\2\0\6\32\2\0\10\30\10\32\10\30\10\32\6\30\2\0\6\32"
+          + "\2\0\10\30\1\0\1\32\1\0\1\32\1\0\1\32\1\0\1\32"
+          + "\10\30\10\32\16\30\2\0\10\30\10\0\10\30\10\0\10\30\10\0"
+          + "\5\30\1\0\2\30\4\32\2\0\1\30\3\0\3\30\1\0\2\30"
+          + "\4\32\4\0\4\30\2\0\2\30\4\32\4\0\10\30\5\32\5\0"
+          + "\3\30\1\0\2\30\4\32\13\0\1\11\47\0\1\11\101\0\1\30"
+          + "\15\0\1\30\20\0\15\30\145\0\1\32\4\0\1\32\2\0\1\30"
+          + "\3\32\2\30\3\32\1\30\1\0\1\32\3\0\5\32\6\0\1\32"
+          + "\1\0\1\32\1\0\1\32\1\0\4\32\1\0\1\30\4\32\1\30"
+          + "\4\0\1\30\2\0\2\30\2\32\5\0\1\32\4\30\4\0\1\30"
+          + "\21\0\20\32\20\30\3\0\1\32\1\30\u0331\0\32\32\32\30\u0716\0"
+          + "\57\32\1\0\57\30\1\0\1\32\1\30\3\32\2\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\4\32\1\30\1\32\2\30\1\32\10\30"
+          + "\3\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\2\30"
+          + "\6\0\1\32\1\30\1\32\1\30\3\0\1\32\1\30\14\0\46\30"
+          + "\1\0\1\30\5\0\1\30\u7912\0\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\22\0\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\212\0\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\3\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32"
+          + "\1\30\1\32\12\30\1\32\1\30\1\32\1\30\2\32\1\30\1\32"
+          + "\1\30\1\32\1\30\1\32\1\30\1\32\1\30\3\0\1\32\1\30"
+          + "\1\32\1\30\1\0\1\32\1\30\1\32\1\30\14\0\1\32\1\30"
+          + "\1\32\1\30\1\32\1\30\1\32\1\30\1\32\1\30\1\32\115\0"
+          + "\3\30\u5305\0\7\30\14\0\5\30\u03e7\0\1\11\41\0\32\32\6\0" + "\32\30\245\0";
 
-  /** 
+  /**
    * Translates characters to character classes
    */
-  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+  private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
 
-  /** 
+  /**
    * Translates DFA states to action switch labels.
    */
-  private static final int [] ZZ_ACTION = zzUnpackAction();
+  private static final int[] ZZ_ACTION = zzUnpackAction();
 
-  private static final String ZZ_ACTION_PACKED_0 =
-    "\1\0\1\1\1\2\1\3\1\4\1\5\1\1\1\6"+
-    "\1\7\1\1\1\10\1\11\1\12\1\13\1\14\1\15"+
-    "\1\16\1\2\5\0\1\17\1\20\5\0";
+  private static final String ZZ_ACTION_PACKED_0 = "\1\0\1\1\1\2\1\3\1\4\1\5\1\1\1\6"
+          + "\1\7\1\1\1\10\1\11\1\12\1\13\1\14\1\15" + "\1\16\1\2\5\0\1\17\1\20\5\0";
 
-  private static int [] zzUnpackAction() {
-    int [] result = new int[30];
+  private static int[] zzUnpackAction() {
+    int[] result = new int[30];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
   }
 
-  private static int zzUnpackAction(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
+  private static int zzUnpackAction(String packed, int offset, int[] result) {
+    int i = 0; /* index in packed string */
+    int j = offset; /* index in unpacked array */
     int l = packed.length();
     while (i < l) {
       int count = packed.charAt(i++);
       int value = packed.charAt(i++);
-      do result[j++] = value; while (--count > 0);
+      do
+        result[j++] = value;
+      while (--count > 0);
     }
     return j;
   }
 
-
-  /** 
+  /**
    * Translates a state to a row index in the transition table
    */
-  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
+  private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
 
-  private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\33\0\66\0\121\0\33\0\33\0\154\0\33"+
-    "\0\33\0\207\0\242\0\33\0\33\0\33\0\33\0\33"+
-    "\0\275\0\330\0\363\0\u010e\0\u0129\0\u0144\0\u015f\0\33"+
-    "\0\33\0\u017a\0\u0195\0\u01b0\0\u01cb\0\u01e6";
+  private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\33\0\66\0\121\0\33\0\33\0\154\0\33"
+          + "\0\33\0\207\0\242\0\33\0\33\0\33\0\33\0\33"
+          + "\0\275\0\330\0\363\0\u010e\0\u0129\0\u0144\0\u015f\0\33"
+          + "\0\33\0\u017a\0\u0195\0\u01b0\0\u01cb\0\u01e6";
 
-  private static int [] zzUnpackRowMap() {
-    int [] result = new int[30];
+  private static int[] zzUnpackRowMap() {
+    int[] result = new int[30];
     int offset = 0;
     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
     return result;
   }
 
-  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
-    int i = 0;  /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
+  private static int zzUnpackRowMap(String packed, int offset, int[] result) {
+    int i = 0; /* index in packed string */
+    int j = offset; /* index in unpacked array */
     int l = packed.length();
     while (i < l) {
       int high = packed.charAt(i++) << 16;
@@ -273,88 +260,80 @@ class SeedLexer {
     return j;
   }
 
-  /** 
+  /**
    * The transition table of the DFA
    */
-  private static final int [] ZZ_TRANS = zzUnpackTrans();
+  private static final int[] ZZ_TRANS = zzUnpackTrans();
 
-  private static final String ZZ_TRANS_PACKED_0 =
-    "\1\2\1\3\1\4\1\5\1\6\1\7\1\2\1\10"+
-    "\1\2\1\11\1\12\4\13\1\14\4\3\1\15\1\16"+
-    "\1\17\1\20\2\13\1\3\34\0\1\21\11\0\4\22"+
-    "\1\0\4\21\4\0\2\22\1\21\2\0\1\4\36\0"+
-    "\1\23\1\24\24\0\1\25\11\0\1\26\3\25\1\0"+
-    "\1\27\3\25\5\0\1\25\14\0\4\13\11\0\2\13"+
-    "\2\0\1\21\16\0\4\21\6\0\1\21\13\0\4\22"+
-    "\11\0\2\22\10\0\1\24\23\0\10\24\1\30\22\24"+
-    "\1\0\1\25\11\0\4\25\1\31\4\25\5\0\1\25"+
-    "\2\0\1\25\11\0\1\25\1\32\2\25\1\31\4\25"+
-    "\5\0\1\25\2\0\1\25\11\0\4\25\1\31\1\25"+
-    "\1\33\2\25\5\0\1\25\2\0\1\25\11\0\2\25"+
-    "\1\34\1\25\1\31\4\25\5\0\1\25\2\0\1\25"+
-    "\11\0\4\25\1\31\2\25\1\35\1\25\5\0\1\25"+
-    "\2\0\1\25\11\0\3\25\1\36\1\31\4\25\5\0"+
-    "\1\25\2\0\1\25\11\0\4\25\1\31\3\25\1\36"+
-    "\5\0\1\25\2\0\1\25\11\0\4\25\1\11\4\25"+
-    "\5\0\1\25\1\0";
+  private static final String ZZ_TRANS_PACKED_0 = "\1\2\1\3\1\4\1\5\1\6\1\7\1\2\1\10"
+          + "\1\2\1\11\1\12\4\13\1\14\4\3\1\15\1\16" + "\1\17\1\20\2\13\1\3\34\0\1\21\11\0\4\22"
+          + "\1\0\4\21\4\0\2\22\1\21\2\0\1\4\36\0" + "\1\23\1\24\24\0\1\25\11\0\1\26\3\25\1\0"
+          + "\1\27\3\25\5\0\1\25\14\0\4\13\11\0\2\13" + "\2\0\1\21\16\0\4\21\6\0\1\21\13\0\4\22"
+          + "\11\0\2\22\10\0\1\24\23\0\10\24\1\30\22\24" + "\1\0\1\25\11\0\4\25\1\31\4\25\5\0\1\25"
+          + "\2\0\1\25\11\0\1\25\1\32\2\25\1\31\4\25" + "\5\0\1\25\2\0\1\25\11\0\4\25\1\31\1\25"
+          + "\1\33\2\25\5\0\1\25\2\0\1\25\11\0\2\25" + "\1\34\1\25\1\31\4\25\5\0\1\25\2\0\1\25"
+          + "\11\0\4\25\1\31\2\25\1\35\1\25\5\0\1\25" + "\2\0\1\25\11\0\3\25\1\36\1\31\4\25\5\0"
+          + "\1\25\2\0\1\25\11\0\4\25\1\31\3\25\1\36" + "\5\0\1\25\2\0\1\25\11\0\4\25\1\11\4\25"
+          + "\5\0\1\25\1\0";
 
-  private static int [] zzUnpackTrans() {
-    int [] result = new int[513];
+  private static int[] zzUnpackTrans() {
+    int[] result = new int[513];
     int offset = 0;
     offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
     return result;
   }
 
-  private static int zzUnpackTrans(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
+  private static int zzUnpackTrans(String packed, int offset, int[] result) {
+    int i = 0; /* index in packed string */
+    int j = offset; /* index in unpacked array */
     int l = packed.length();
     while (i < l) {
       int count = packed.charAt(i++);
       int value = packed.charAt(i++);
       value--;
-      do result[j++] = value; while (--count > 0);
+      do
+        result[j++] = value;
+      while (--count > 0);
     }
     return j;
   }
 
-
   /* error codes */
   private static final int ZZ_UNKNOWN_ERROR = 0;
+
   private static final int ZZ_NO_MATCH = 1;
+
   private static final int ZZ_PUSHBACK_2BIG = 2;
 
   /* error messages for the codes above */
-  private static final String ZZ_ERROR_MSG[] = {
-    "Unkown internal scanner error",
-    "Error: could not match input",
-    "Error: pushback value was too large"
-  };
+  private static final String ZZ_ERROR_MSG[] = { "Unkown internal scanner error",
+      "Error: could not match input", "Error: pushback value was too large" };
 
   /**
    * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
    */
-  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+  private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
 
-  private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\1\0\1\11\2\1\2\11\1\1\2\11\2\1\5\11"+
-    "\2\1\5\0\2\11\5\0";
+  private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\1\11\2\1\2\11\1\1\2\11\2\1\5\11"
+          + "\2\1\5\0\2\11\5\0";
 
-  private static int [] zzUnpackAttribute() {
-    int [] result = new int[30];
+  private static int[] zzUnpackAttribute() {
+    int[] result = new int[30];
     int offset = 0;
     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
     return result;
   }
 
-  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
-    int i = 0;       /* index in packed string  */
-    int j = offset;  /* index in unpacked array */
+  private static int zzUnpackAttribute(String packed, int offset, int[] result) {
+    int i = 0; /* index in packed string */
+    int j = offset; /* index in unpacked array */
     int l = packed.length();
     while (i < l) {
       int count = packed.charAt(i++);
       int value = packed.charAt(i++);
-      do result[j++] = value; while (--count > 0);
+      do
+        result[j++] = value;
+      while (--count > 0);
     }
     return j;
   }
@@ -368,8 +347,9 @@ class SeedLexer {
   /** the current lexical state */
   private int zzLexicalState = YYINITIAL;
 
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
+  /**
+   * this buffer contains the current text to be matched and is the source of the yytext() string
+   */
   private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
 
   /** the textposition at the last accepting state */
@@ -381,8 +361,9 @@ class SeedLexer {
   /** startRead marks the beginning of the yytext() string in the buffer */
   private int zzStartRead;
 
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
+  /**
+   * endRead marks the last character in the buffer, that has been read from input
+   */
   private int zzEndRead;
 
   /** number of newlines encountered up to the start of the matched text */
@@ -392,12 +373,11 @@ class SeedLexer {
   private int yychar;
 
   /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
+   * the number of characters from the last newline up to the start of the matched text
    */
   private int yycolumn;
 
-  /** 
+  /**
    * zzAtBOL == true <=> the scanner is currently at the beginning of a line
    */
   private boolean zzAtBOL = true;
@@ -409,91 +389,90 @@ class SeedLexer {
   private boolean zzEOFDone;
 
   /* user code: */
-    private JCas cas;
-        
-    public void setJCas(JCas cas) {
-        this.cas = cas;
-    }
+  private JCas cas;
 
+  public void setJCas(JCas cas) {
+    this.cas = cas;
+  }
 
   /**
-   * Creates a new scanner
-   * There is also a java.io.InputStream version of this constructor.
+   * Creates a new scanner There is also a java.io.InputStream version of this constructor.
    *
-   * @param   in  the java.io.Reader to read input from.
+   * @param in
+   *          the java.io.Reader to read input from.
    */
   SeedLexer(java.io.Reader in) {
     this.zzReader = in;
   }
 
   /**
-   * Creates a new scanner.
-   * There is also java.io.Reader version of this constructor.
+   * Creates a new scanner. There is also java.io.Reader version of this constructor.
    *
-   * @param   in  the java.io.Inputstream to read input from.
+   * @param in
+   *          the java.io.Inputstream to read input from.
    */
   SeedLexer(java.io.InputStream in) {
     this(new java.io.InputStreamReader(in));
   }
 
-  /** 
+  /**
    * Unpacks the compressed character translation table.
    *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] zzUnpackCMap(String packed) {
-    char [] map = new char[0x10000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
+   * @param packed
+   *          the packed character translation table
+   * @return the unpacked character translation table
+   */
+  private static char[] zzUnpackCMap(String packed) {
+    char[] map = new char[0x10000];
+    int i = 0; /* index in packed string */
+    int j = 0; /* index in unpacked array */
     while (i < 2624) {
-      int  count = packed.charAt(i++);
+      int count = packed.charAt(i++);
       char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
+      do
+        map[j++] = value;
+      while (--count > 0);
     }
     return map;
   }
 
-
   /**
    * Refills the input buffer.
    *
-   * @return      <code>false</code>, iff there was new input.
+   * @return <code>false</code>, iff there was new input.
    * 
-   * @exception   java.io.IOException  if any I/O-Error occurs
+   * @exception java.io.IOException
+   *              if any I/O-Error occurs
    */
   private boolean zzRefill() throws java.io.IOException {
 
     /* first: make room (if you can) */
     if (zzStartRead > 0) {
-      System.arraycopy(zzBuffer, zzStartRead,
-                       zzBuffer, 0,
-                       zzEndRead-zzStartRead);
+      System.arraycopy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead - zzStartRead);
 
       /* translate stored positions */
-      zzEndRead-= zzStartRead;
-      zzCurrentPos-= zzStartRead;
-      zzMarkedPos-= zzStartRead;
+      zzEndRead -= zzStartRead;
+      zzCurrentPos -= zzStartRead;
+      zzMarkedPos -= zzStartRead;
       zzStartRead = 0;
     }
 
     /* is the buffer big enough? */
     if (zzCurrentPos >= zzBuffer.length) {
       /* if not: blow it up */
-      char newBuffer[] = new char[zzCurrentPos*2];
+      char newBuffer[] = new char[zzCurrentPos * 2];
       System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
       zzBuffer = newBuffer;
     }
 
     /* finally: fill the buffer with new input */
-    int numRead = zzReader.read(zzBuffer, zzEndRead,
-                                            zzBuffer.length-zzEndRead);
+    int numRead = zzReader.read(zzBuffer, zzEndRead, zzBuffer.length - zzEndRead);
 
     if (numRead > 0) {
-      zzEndRead+= numRead;
+      zzEndRead += numRead;
       return false;
     }
-    // unlikely but not impossible: read 0 characters, but not at end of stream    
+    // unlikely but not impossible: read 0 characters, but not at end of stream
     if (numRead == 0) {
       int c = zzReader.read();
       if (c == -1) {
@@ -501,40 +480,37 @@ class SeedLexer {
       } else {
         zzBuffer[zzEndRead++] = (char) c;
         return false;
-      }     
+      }
     }
 
-	// numRead < 0
+    // numRead < 0
     return true;
   }
 
-    
   /**
    * Closes the input stream.
    */
   public final void yyclose() throws java.io.IOException {
-    zzAtEOF = true;            /* indicate end of file */
-    zzEndRead = zzStartRead;  /* invalidate buffer    */
+    zzAtEOF = true; /* indicate end of file */
+    zzEndRead = zzStartRead; /* invalidate buffer */
 
     if (zzReader != null)
       zzReader.close();
   }
 
-
   /**
-   * Resets the scanner to read from a new input stream.
-   * Does not close the old reader.
+   * Resets the scanner to read from a new input stream. Does not close the old reader.
    *
-   * All internal variables are reset, the old input stream 
-   * <b>cannot</b> be reused (internal buffer is discarded and lost).
-   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
+   * All internal variables are reset, the old input stream <b>cannot</b> be reused (internal buffer
+   * is discarded and lost). Lexical state is set to <tt>ZZ_INITIAL</tt>.
    *
-   * @param reader   the new input stream 
+   * @param reader
+   *          the new input stream
    */
   public final void yyreset(java.io.Reader reader) {
     zzReader = reader;
-    zzAtBOL  = true;
-    zzAtEOF  = false;
+    zzAtBOL = true;
+    zzAtEOF = false;
     zzEOFDone = false;
     zzEndRead = zzStartRead = 0;
     zzCurrentPos = zzMarkedPos = 0;
@@ -542,7 +518,6 @@ class SeedLexer {
     zzLexicalState = YYINITIAL;
   }
 
-
   /**
    * Returns the current lexical state.
    */
@@ -550,98 +525,90 @@ class SeedLexer {
     return zzLexicalState;
   }
 
-
   /**
    * Enters a new lexical state
    *
-   * @param newState the new lexical state
+   * @param newState
+   *          the new lexical state
    */
   public final void yybegin(int newState) {
     zzLexicalState = newState;
   }
 
-
   /**
    * Returns the text matched by the current regular expression.
    */
   public final String yytext() {
-    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+    return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
   }
 
-
   /**
-   * Returns the character at position <tt>pos</tt> from the 
-   * matched text. 
+   * Returns the character at position <tt>pos</tt> from the matched text.
    * 
    * It is equivalent to yytext().charAt(pos), but faster
    *
-   * @param pos the position of the character to fetch. 
-   *            A value from 0 to yylength()-1.
+   * @param pos
+   *          the position of the character to fetch. A value from 0 to yylength()-1.
    *
    * @return the character at position pos
    */
   public final char yycharat(int pos) {
-    return zzBuffer[zzStartRead+pos];
+    return zzBuffer[zzStartRead + pos];
   }
 
-
   /**
    * Returns the length of the matched text region.
    */
   public final int yylength() {
-    return zzMarkedPos-zzStartRead;
+    return zzMarkedPos - zzStartRead;
   }
 
-
   /**
    * Reports an error that occured while scanning.
    *
-   * In a wellformed scanner (no or only correct usage of 
-   * yypushback(int) and a match-all fallback rule) this method 
-   * will only be called with things that "Can't Possibly Happen".
-   * If this method is called, something is seriously wrong
-   * (e.g. a JFlex bug producing a faulty scanner etc.).
+   * In a wellformed scanner (no or only correct usage of yypushback(int) and a match-all fallback
+   * rule) this method will only be called with things that "Can't Possibly Happen". If this method
+   * is called, something is seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
    *
-   * Usual syntax/scanner level error handling should be done
-   * in error fallback rules.
+   * Usual syntax/scanner level error handling should be done in error fallback rules.
    *
-   * @param   errorCode  the code of the errormessage to display
+   * @param errorCode
+   *          the code of the errormessage to display
    */
   private void zzScanError(int errorCode) {
     String message;
     try {
       message = ZZ_ERROR_MSG[errorCode];
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
+    } catch (ArrayIndexOutOfBoundsException e) {
       message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
     }
 
     throw new Error(message);
-  } 
-
+  }
 
   /**
    * Pushes the specified amount of characters back into the input stream.
    *
    * They will be read again by then next call of the scanning method
    *
-   * @param number  the number of characters to be read again.
-   *                This number must not be greater than yylength()!
+   * @param number
+   *          the number of characters to be read again. This number must not be greater than
+   *          yylength()!
    */
-  public void yypushback(int number)  {
-    if ( number > yylength() )
+  public void yypushback(int number) {
+    if (number > yylength())
       zzScanError(ZZ_PUSHBACK_2BIG);
 
     zzMarkedPos -= number;
   }
 
-
   /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
+   * Resumes scanning until the next regular expression is matched, the end of input is encountered
+   * or an I/O-Error occurs.
    *
-   * @return      the next token
-   * @exception   java.io.IOException  if any I/O-Error occurs
+   * @return the next token
+   * @exception java.io.IOException
+   *              if any I/O-Error occurs
    */
   public AnnotationFS yylex() throws java.io.IOException {
     int zzInput;
@@ -651,43 +618,42 @@ class SeedLexer {
     int zzCurrentPosL;
     int zzMarkedPosL;
     int zzEndReadL = zzEndRead;
-    char [] zzBufferL = zzBuffer;
-    char [] zzCMapL = ZZ_CMAP;
+    char[] zzBufferL = zzBuffer;
+    char[] zzCMapL = ZZ_CMAP;
 
-    int [] zzTransL = ZZ_TRANS;
-    int [] zzRowMapL = ZZ_ROWMAP;
-    int [] zzAttrL = ZZ_ATTRIBUTE;
+    int[] zzTransL = ZZ_TRANS;
+    int[] zzRowMapL = ZZ_ROWMAP;
+    int[] zzAttrL = ZZ_ATTRIBUTE;
 
     while (true) {
       zzMarkedPosL = zzMarkedPos;
 
-      yychar+= zzMarkedPosL-zzStartRead;
+      yychar += zzMarkedPosL - zzStartRead;
 
       boolean zzR = false;
-      for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
-                                                             zzCurrentPosL++) {
+      for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL; zzCurrentPosL++) {
         switch (zzBufferL[zzCurrentPosL]) {
-        case '\u000B':
-        case '\u000C':
-        case '\u0085':
-        case '\u2028':
-        case '\u2029':
-          yyline++;
-          zzR = false;
-          break;
-        case '\r':
-          yyline++;
-          zzR = true;
-          break;
-        case '\n':
-          if (zzR)
+          case '\u000B':
+          case '\u000C':
+          case '\u0085':
+          case '\u2028':
+          case '\u2029':
+            yyline++;
             zzR = false;
-          else {
+            break;
+          case '\r':
             yyline++;
-          }
-          break;
-        default:
-          zzR = false;
+            zzR = true;
+            break;
+          case '\n':
+            if (zzR)
+              zzR = false;
+            else {
+              yyline++;
+            }
+            break;
+          default:
+            zzR = false;
         }
       }
 
@@ -703,56 +669,56 @@ class SeedLexer {
           zzEndReadL = zzEndRead;
           zzMarkedPosL = zzMarkedPos;
           zzBufferL = zzBuffer;
-          if (eof) 
+          if (eof)
             zzPeek = false;
-          else 
+          else
             zzPeek = zzBufferL[zzMarkedPosL] == '\n';
         }
-        if (zzPeek) yyline--;
+        if (zzPeek)
+          yyline--;
       }
       zzAction = -1;
 
       zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-  
-      zzState = ZZ_LEXSTATE[zzLexicalState];
 
+      zzState = ZZ_LEXSTATE[zzLexicalState];
 
       zzForAction: {
         while (true) {
-    
+
           if (zzCurrentPosL < zzEndReadL)
             zzInput = zzBufferL[zzCurrentPosL++];
           else if (zzAtEOF) {
             zzInput = YYEOF;
             break zzForAction;
-          }
-          else {
+          } else {
             // store back cached positions
-            zzCurrentPos  = zzCurrentPosL;
-            zzMarkedPos   = zzMarkedPosL;
+            zzCurrentPos = zzCurrentPosL;
+            zzMarkedPos = zzMarkedPosL;
             boolean eof = zzRefill();
             // get translated positions and possibly new buffer
-            zzCurrentPosL  = zzCurrentPos;
-            zzMarkedPosL   = zzMarkedPos;
-            zzBufferL      = zzBuffer;
-            zzEndReadL     = zzEndRead;
+            zzCurrentPosL = zzCurrentPos;
+            zzMarkedPosL = zzMarkedPos;
+            zzBufferL = zzBuffer;
+            zzEndReadL = zzEndRead;
             if (eof) {
               zzInput = YYEOF;
               break zzForAction;
-            }
-            else {
+            } else {
               zzInput = zzBufferL[zzCurrentPosL++];
             }
           }
-          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
-          if (zzNext == -1) break zzForAction;
+          int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
+          if (zzNext == -1)
+            break zzForAction;
           zzState = zzNext;
 
           int zzAttributes = zzAttrL[zzState];
-          if ( (zzAttributes & 1) == 1 ) {
+          if ((zzAttributes & 1) == 1) {
             zzAction = zzState;
             zzMarkedPosL = zzCurrentPosL;
-            if ( (zzAttributes & 8) == 8 ) break zzForAction;
+            if ((zzAttributes & 8) == 8)
+              break zzForAction;
           }
 
         }
@@ -762,152 +728,167 @@ class SeedLexer {
       zzMarkedPos = zzMarkedPosL;
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-        case 3: 
-          { NUM t = new NUM(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 17: break;
-        case 13: 
-          { QUESTION t = new QUESTION(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 18: break;
-        case 8: 
-          { SW t = new SW(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 19: break;
-        case 4: 
-          { SPACE t = new SPACE(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 20: break;
-        case 11: 
-          { COMMA t = new COMMA(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 21: break;
-        case 1: 
-          { SPECIAL t = new SPECIAL(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 22: break;
-        case 15: 
-          { MARKUP t = new MARKUP(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 23: break;
-        case 6: 
-          { EXCLAMATION t = new EXCLAMATION(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 24: break;
-        case 7: 
-          { NBSP t = new NBSP(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 25: break;
-        case 14: 
-          { CAP t = new CAP(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 26: break;
-        case 12: 
-          { PERIOD t = new PERIOD(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 27: break;
-        case 5: 
-          { BREAK t = new BREAK(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 28: break;
-        case 2: 
-          { CW t = new CW(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 29: break;
-        case 10: 
-          { COLON t = new COLON(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 30: break;
-        case 9: 
-          { SEMICOLON t = new SEMICOLON(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 31: break;
-        case 16: 
-          { AMP t = new AMP(cas);
-                t.setBegin(yychar);
-                t.setEnd(yychar + yytext().length());
-                
-                return t;
-          }
-        case 32: break;
-        default: 
+        case 3: {
+          NUM t = new NUM(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 17:
+          break;
+        case 13: {
+          QUESTION t = new QUESTION(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 18:
+          break;
+        case 8: {
+          SW t = new SW(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 19:
+          break;
+        case 4: {
+          SPACE t = new SPACE(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 20:
+          break;
+        case 11: {
+          COMMA t = new COMMA(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 21:
+          break;
+        case 1: {
+          SPECIAL t = new SPECIAL(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 22:
+          break;
+        case 15: {
+          MARKUP t = new MARKUP(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 23:
+          break;
+        case 6: {
+          EXCLAMATION t = new EXCLAMATION(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 24:
+          break;
+        case 7: {
+          NBSP t = new NBSP(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 25:
+          break;
+        case 14: {
+          CAP t = new CAP(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 26:
+          break;
+        case 12: {
+          PERIOD t = new PERIOD(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 27:
+          break;
+        case 5: {
+          BREAK t = new BREAK(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 28:
+          break;
+        case 2: {
+          CW t = new CW(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 29:
+          break;
+        case 10: {
+          COLON t = new COLON(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 30:
+          break;
+        case 9: {
+          SEMICOLON t = new SEMICOLON(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 31:
+          break;
+        case 16: {
+          AMP t = new AMP(cas);
+          t.setBegin(yychar);
+          t.setEnd(yychar + yytext().length());
+
+          return t;
+        }
+        case 32:
+          break;
+        default:
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
             switch (zzLexicalState) {
-            case YYINITIAL: {
-              return null;
-            }
-            case 31: break;
-            default:
-            return null;
+              case YYINITIAL: {
+                return null;
+              }
+              case 31:
+                break;
+              default:
+                return null;
             }
-          } 
-          else {
+          } else {
             zzScanError(ZZ_NO_MATCH);
           }
       }
     }
   }
 
-
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java Mon Jan  4 10:33:48 2016
@@ -69,7 +69,7 @@ import org.apache.uima.ruta.expression.l
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.resource.WordTableExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
-import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.expression.type.ITypeExpression;
 
 public class ActionVerbalizer {
 
@@ -433,7 +433,7 @@ public class ActionVerbalizer {
       return name + var + ", " + op + ")";
     } else if (action instanceof MarkTableAction) {
       MarkTableAction a = (MarkTableAction) action;
-      TypeExpression typeExpr = a.getTypeExpr();
+      ITypeExpression typeExpr = a.getTypeExpr();
       INumberExpression indexExpr = a.getIndexExpr();
       WordTableExpression tableExpr = a.getTableExpr();
       Map<IStringExpression, INumberExpression> featureMap = a.getFeatureMap();

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ConditionVerbalizer.java Mon Jan  4 10:33:48 2016
@@ -231,7 +231,7 @@ public class ConditionVerbalizer {
       if (a != null) {
         arg = ", " + verbalizer.verbalize(a);
       }
-      return name + list +arg + ")";
+      return name + list + arg + ")";
     } else if (condition instanceof LastCondition) {
       LastCondition c = (LastCondition) condition;
       return name + verbalizer.verbalize(c.getType()) + ")";
@@ -336,7 +336,8 @@ public class ConditionVerbalizer {
       if (variable == null) {
         return name + verbalizer.verbalize(c.getPattern()) + ", " + ic + ")";
       } else {
-        return name + verbalizer.verbalize(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;