You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2012/01/09 11:22:04 UTC

svn commit: r1229085 [4/5] - in /uima/sandbox/trunk/TextMarker: uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/ uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ uimaj-ep-textmarker-engine/src/main/jav...

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.java Mon Jan  9 10:22:03 2012
@@ -1,4 +1,4 @@
-// $ANTLR 3.4 D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g 2011-10-21 15:26:08
+// $ANTLR 3.4 D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g 2012-01-09 11:03:58
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -87,7 +87,7 @@ import java.util.HashMap;
 @SuppressWarnings({"all", "warnings", "unchecked"})
 public class TextMarkerParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACTION", "ADD", "AFTER", "ALT_NOTEQUAL", "AMPER", "AND", "ASSIGN", "ASSIGN_EQUAL", "AT", "ATTRIBUTE", "Annotation", "AutomataBlockString", "BEFORE", "BOOLEANLIST", "BasicAnnotationType", "BlockString", "BooleanString", "CALL", "CIRCUMFLEX", "CLEAR", "COLON", "COLOR", "COMMA", "COMMENT", "CONDITION", "CONFIGURE", "CONTAINS", "CONTEXTCOUNT", "COS", "COUNT", "CREATE", "CURRENTCOUNT", "CharacterLiteral", "DECLARE", "DEL", "DOT", "DOUBLELIST", "DYNAMICANCHORING", "DecimalLiteral", "DocComment", "DoubleString", "ENDSWITH", "EQUAL", "EXEC", "EXP", "EXPAND", "EngineString", "EscapeSequence", "Exponent", "FALSE", "FEATURE", "FILL", "FILTERMARKUP", "FILTERTYPE", "FloatTypeSuffix", "FloatingPointLiteral", "GATHER", "GET", "GETFEATURE", "GETLIST", "GREATER", "GREATEREQUAL", "HexDigit", "HexLiteral", "IF", "INLIST", "INTLIST", "IS", "ISINTAG", "Identifier", "IntString", "IntegerTypeSuffix", "JavaIDDigit", "LAST", "LBRACK", "LCURLY", "LESS"
 , "LESSEQUAL", "LINE_COMMENT", "LOG", "LOGN", "LPAREN", "Letter", "ListIdentifier", "LogLevel", "MARK", "MARKFAST", "MARKLAST", "MARKONCE", "MARKSCORE", "MARKTABLE", "MATCHEDTEXT", "MERGE", "MINUS", "MOFN", "NEAR", "NOT", "NOTEQUAL", "OR", "OctalEscape", "OctalLiteral", "OldColor", "PARSE", "PARTOF", "PARTOFNEQ", "PERCENT", "PLUS", "POSITION", "PackageString", "QUESTION", "RBRACK", "RCURLY", "REGEXP", "REMOVE", "REMOVEDUPLICATE", "REMOVESTRING", "REPLACE", "RETAINMARKUP", "RETAINTYPE", "RPAREN", "RessourceLiteral", "SCORE", "SEMI", "SETFEATURE", "SIN", "SIZE", "SLASH", "STAR", "STARTSWITH", "STRINGLIST", "ScriptString", "StringLiteral", "StringString", "SymbolString", "TAN", "THEN", "TOTALCOUNT", "TRANSFER", "TRIE", "TRUE", "TYPELIST", "TypeString", "TypeSystemString", "UNMARK", "UNMARKALL", "UnicodeEscape", "VBAR", "VOTE", "WORDLIST", "WORDTABLE", "WS", "XOR"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACTION", "ADD", "AFTER", "ALT_NOTEQUAL", "AMPER", "AND", "ASSIGN", "ASSIGN_EQUAL", "AT", "ATTRIBUTE", "Annotation", "AutomataBlockString", "BEFORE", "BOOLEANLIST", "BasicAnnotationType", "BlockString", "BooleanString", "CALL", "CIRCUMFLEX", "CLEAR", "COLON", "COLOR", "COMMA", "COMMENT", "CONDITION", "CONFIGURE", "CONTAINS", "CONTEXTCOUNT", "COS", "COUNT", "CREATE", "CURRENTCOUNT", "CharacterLiteral", "DECLARE", "DEL", "DOT", "DOUBLELIST", "DYNAMICANCHORING", "DecimalLiteral", "DocComment", "DoubleString", "ENDSWITH", "EQUAL", "EXEC", "EXP", "EXPAND", "EngineString", "EscapeSequence", "Exponent", "FALSE", "FEATURE", "FILL", "FILTERMARKUP", "FILTERTYPE", "FLOATLIST", "FloatString", "FloatTypeSuffix", "FloatingPointLiteral", "GATHER", "GET", "GETFEATURE", "GETLIST", "GREATER", "GREATEREQUAL", "HexDigit", "HexLiteral", "IF", "INLIST", "INTLIST", "IS", "ISINTAG", "Identifier", "IntString", "IntegerTypeSuffix", "JavaIDDigit", "LAST"
 , "LBRACK", "LCURLY", "LESS", "LESSEQUAL", "LINE_COMMENT", "LOG", "LOGN", "LPAREN", "Letter", "ListIdentifier", "LogLevel", "MARK", "MARKFAST", "MARKLAST", "MARKONCE", "MARKSCORE", "MARKTABLE", "MATCHEDTEXT", "MERGE", "MINUS", "MOFN", "NEAR", "NOT", "NOTEQUAL", "OR", "OctalEscape", "OctalLiteral", "OldColor", "PARSE", "PARTOF", "PARTOFNEQ", "PERCENT", "PLUS", "POSITION", "PackageString", "QUESTION", "RBRACK", "RCURLY", "REGEXP", "REMOVE", "REMOVEDUPLICATE", "REMOVESTRING", "REPLACE", "RETAINMARKUP", "RETAINTYPE", "RPAREN", "RessourceLiteral", "SCORE", "SEMI", "SETFEATURE", "SIN", "SIZE", "SLASH", "STAR", "STARTSWITH", "STRINGLIST", "ScriptString", "StringLiteral", "StringString", "SymbolString", "TAN", "THEN", "TOTALCOUNT", "TRANSFER", "TRIE", "TRUE", "TYPELIST", "TypeString", "TypeSystemString", "UNMARK", "UNMARKALL", "UnicodeEscape", "VBAR", "VOTE", "WORDLIST", "WORDTABLE", "WS", "XOR"
     };
 
     public static final int EOF=-1;
@@ -145,104 +145,106 @@ public class TextMarkerParser extends Pa
     public static final int FILL=55;
     public static final int FILTERMARKUP=56;
     public static final int FILTERTYPE=57;
-    public static final int FloatTypeSuffix=58;
-    public static final int FloatingPointLiteral=59;
-    public static final int GATHER=60;
-    public static final int GET=61;
-    public static final int GETFEATURE=62;
-    public static final int GETLIST=63;
-    public static final int GREATER=64;
-    public static final int GREATEREQUAL=65;
-    public static final int HexDigit=66;
-    public static final int HexLiteral=67;
-    public static final int IF=68;
-    public static final int INLIST=69;
-    public static final int INTLIST=70;
-    public static final int IS=71;
-    public static final int ISINTAG=72;
-    public static final int Identifier=73;
-    public static final int IntString=74;
-    public static final int IntegerTypeSuffix=75;
-    public static final int JavaIDDigit=76;
-    public static final int LAST=77;
-    public static final int LBRACK=78;
-    public static final int LCURLY=79;
-    public static final int LESS=80;
-    public static final int LESSEQUAL=81;
-    public static final int LINE_COMMENT=82;
-    public static final int LOG=83;
-    public static final int LOGN=84;
-    public static final int LPAREN=85;
-    public static final int Letter=86;
-    public static final int ListIdentifier=87;
-    public static final int LogLevel=88;
-    public static final int MARK=89;
-    public static final int MARKFAST=90;
-    public static final int MARKLAST=91;
-    public static final int MARKONCE=92;
-    public static final int MARKSCORE=93;
-    public static final int MARKTABLE=94;
-    public static final int MATCHEDTEXT=95;
-    public static final int MERGE=96;
-    public static final int MINUS=97;
-    public static final int MOFN=98;
-    public static final int NEAR=99;
-    public static final int NOT=100;
-    public static final int NOTEQUAL=101;
-    public static final int OR=102;
-    public static final int OctalEscape=103;
-    public static final int OctalLiteral=104;
-    public static final int OldColor=105;
-    public static final int PARSE=106;
-    public static final int PARTOF=107;
-    public static final int PARTOFNEQ=108;
-    public static final int PERCENT=109;
-    public static final int PLUS=110;
-    public static final int POSITION=111;
-    public static final int PackageString=112;
-    public static final int QUESTION=113;
-    public static final int RBRACK=114;
-    public static final int RCURLY=115;
-    public static final int REGEXP=116;
-    public static final int REMOVE=117;
-    public static final int REMOVEDUPLICATE=118;
-    public static final int REMOVESTRING=119;
-    public static final int REPLACE=120;
-    public static final int RETAINMARKUP=121;
-    public static final int RETAINTYPE=122;
-    public static final int RPAREN=123;
-    public static final int RessourceLiteral=124;
-    public static final int SCORE=125;
-    public static final int SEMI=126;
-    public static final int SETFEATURE=127;
-    public static final int SIN=128;
-    public static final int SIZE=129;
-    public static final int SLASH=130;
-    public static final int STAR=131;
-    public static final int STARTSWITH=132;
-    public static final int STRINGLIST=133;
-    public static final int ScriptString=134;
-    public static final int StringLiteral=135;
-    public static final int StringString=136;
-    public static final int SymbolString=137;
-    public static final int TAN=138;
-    public static final int THEN=139;
-    public static final int TOTALCOUNT=140;
-    public static final int TRANSFER=141;
-    public static final int TRIE=142;
-    public static final int TRUE=143;
-    public static final int TYPELIST=144;
-    public static final int TypeString=145;
-    public static final int TypeSystemString=146;
-    public static final int UNMARK=147;
-    public static final int UNMARKALL=148;
-    public static final int UnicodeEscape=149;
-    public static final int VBAR=150;
-    public static final int VOTE=151;
-    public static final int WORDLIST=152;
-    public static final int WORDTABLE=153;
-    public static final int WS=154;
-    public static final int XOR=155;
+    public static final int FLOATLIST=58;
+    public static final int FloatString=59;
+    public static final int FloatTypeSuffix=60;
+    public static final int FloatingPointLiteral=61;
+    public static final int GATHER=62;
+    public static final int GET=63;
+    public static final int GETFEATURE=64;
+    public static final int GETLIST=65;
+    public static final int GREATER=66;
+    public static final int GREATEREQUAL=67;
+    public static final int HexDigit=68;
+    public static final int HexLiteral=69;
+    public static final int IF=70;
+    public static final int INLIST=71;
+    public static final int INTLIST=72;
+    public static final int IS=73;
+    public static final int ISINTAG=74;
+    public static final int Identifier=75;
+    public static final int IntString=76;
+    public static final int IntegerTypeSuffix=77;
+    public static final int JavaIDDigit=78;
+    public static final int LAST=79;
+    public static final int LBRACK=80;
+    public static final int LCURLY=81;
+    public static final int LESS=82;
+    public static final int LESSEQUAL=83;
+    public static final int LINE_COMMENT=84;
+    public static final int LOG=85;
+    public static final int LOGN=86;
+    public static final int LPAREN=87;
+    public static final int Letter=88;
+    public static final int ListIdentifier=89;
+    public static final int LogLevel=90;
+    public static final int MARK=91;
+    public static final int MARKFAST=92;
+    public static final int MARKLAST=93;
+    public static final int MARKONCE=94;
+    public static final int MARKSCORE=95;
+    public static final int MARKTABLE=96;
+    public static final int MATCHEDTEXT=97;
+    public static final int MERGE=98;
+    public static final int MINUS=99;
+    public static final int MOFN=100;
+    public static final int NEAR=101;
+    public static final int NOT=102;
+    public static final int NOTEQUAL=103;
+    public static final int OR=104;
+    public static final int OctalEscape=105;
+    public static final int OctalLiteral=106;
+    public static final int OldColor=107;
+    public static final int PARSE=108;
+    public static final int PARTOF=109;
+    public static final int PARTOFNEQ=110;
+    public static final int PERCENT=111;
+    public static final int PLUS=112;
+    public static final int POSITION=113;
+    public static final int PackageString=114;
+    public static final int QUESTION=115;
+    public static final int RBRACK=116;
+    public static final int RCURLY=117;
+    public static final int REGEXP=118;
+    public static final int REMOVE=119;
+    public static final int REMOVEDUPLICATE=120;
+    public static final int REMOVESTRING=121;
+    public static final int REPLACE=122;
+    public static final int RETAINMARKUP=123;
+    public static final int RETAINTYPE=124;
+    public static final int RPAREN=125;
+    public static final int RessourceLiteral=126;
+    public static final int SCORE=127;
+    public static final int SEMI=128;
+    public static final int SETFEATURE=129;
+    public static final int SIN=130;
+    public static final int SIZE=131;
+    public static final int SLASH=132;
+    public static final int STAR=133;
+    public static final int STARTSWITH=134;
+    public static final int STRINGLIST=135;
+    public static final int ScriptString=136;
+    public static final int StringLiteral=137;
+    public static final int StringString=138;
+    public static final int SymbolString=139;
+    public static final int TAN=140;
+    public static final int THEN=141;
+    public static final int TOTALCOUNT=142;
+    public static final int TRANSFER=143;
+    public static final int TRIE=144;
+    public static final int TRUE=145;
+    public static final int TYPELIST=146;
+    public static final int TypeString=147;
+    public static final int TypeSystemString=148;
+    public static final int UNMARK=149;
+    public static final int UNMARKALL=150;
+    public static final int UnicodeEscape=151;
+    public static final int VBAR=152;
+    public static final int VOTE=153;
+    public static final int WORDLIST=154;
+    public static final int WORDTABLE=155;
+    public static final int WS=156;
+    public static final int XOR=157;
 
     // delegates
     public Parser[] getDelegates() {
@@ -502,7 +504,7 @@ public class TextMarkerParser extends Pa
                 int alt1=2;
                 int LA1_0 = input.LA(1);
 
-                if ( (LA1_0==ACTION||LA1_0==AutomataBlockString||(LA1_0 >= BOOLEANLIST && LA1_0 <= BooleanString)||LA1_0==CONDITION||LA1_0==DECLARE||LA1_0==DOUBLELIST||LA1_0==DoubleString||LA1_0==INTLIST||(LA1_0 >= Identifier && LA1_0 <= IntString)||LA1_0==LPAREN||LA1_0==STRINGLIST||(LA1_0 >= StringLiteral && LA1_0 <= StringString)||(LA1_0 >= TYPELIST && LA1_0 <= TypeString)||(LA1_0 >= WORDLIST && LA1_0 <= WORDTABLE)) ) {
+                if ( (LA1_0==ACTION||LA1_0==AutomataBlockString||(LA1_0 >= BOOLEANLIST && LA1_0 <= BooleanString)||LA1_0==CONDITION||LA1_0==DECLARE||LA1_0==DOUBLELIST||LA1_0==DoubleString||(LA1_0 >= FLOATLIST && LA1_0 <= FloatString)||LA1_0==INTLIST||(LA1_0 >= Identifier && LA1_0 <= IntString)||LA1_0==LPAREN||LA1_0==STRINGLIST||(LA1_0 >= StringLiteral && LA1_0 <= StringString)||(LA1_0 >= TYPELIST && LA1_0 <= TypeString)||(LA1_0 >= WORDLIST && LA1_0 <= WORDTABLE)) ) {
                     alt1=1;
                 }
 
@@ -689,6 +691,8 @@ public class TextMarkerParser extends Pa
             case CONDITION:
             case DOUBLELIST:
             case DoubleString:
+            case FLOATLIST:
+            case FloatString:
             case INTLIST:
             case IntString:
             case STRINGLIST:
@@ -819,7 +823,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "variableDeclaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:249:1: variableDeclaration returns [TextMarkerStatement stmt = null] : (type= IntString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value1= numberExpression )? SEMI |type= DoubleString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI |type= StringString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value3= stringExpression )? SEMI |type= BooleanString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value4= booleanExpression )? SEMI |type= TypeString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value5= annotationType )? SEMI |type= WORDLIST {...}?name= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE {...}?name= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |typ
 e= BOOLEANLIST {...}?name= Identifier ( ASSIGN_EQUAL bl= booleanListExpression )? SEMI |type= STRINGLIST {...}?name= Identifier ( ASSIGN_EQUAL sl= stringListExpression )? SEMI |type= INTLIST {...}?name= Identifier ( ASSIGN_EQUAL il= numberListExpression )? SEMI |type= DOUBLELIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI |type= TYPELIST {...}?name= Identifier ( ASSIGN_EQUAL tl= typeListExpression )? SEMI |stmt1= conditionDeclaration |stmt2= actionDeclaration );
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:249:1: variableDeclaration returns [TextMarkerStatement stmt = null] : (type= IntString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value1= numberExpression )? SEMI |type= DoubleString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI |type= FloatString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI |type= StringString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value3= stringExpression )? SEMI |type= BooleanString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value4= booleanExpression )? SEMI |type= TypeString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value5= annotationType )? SEMI |type= WORDLIST {...}?name= Identifier ( ASSIGN_EQUAL list= w
 ordListExpression )? SEMI |type= WORDTABLE {...}?name= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST {...}?name= Identifier ( ASSIGN_EQUAL bl= booleanListExpression )? SEMI |type= STRINGLIST {...}?name= Identifier ( ASSIGN_EQUAL sl= stringListExpression )? SEMI |type= INTLIST {...}?name= Identifier ( ASSIGN_EQUAL il= numberListExpression )? SEMI |type= DOUBLELIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI |type= FLOATLIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI |type= TYPELIST {...}?name= Identifier ( ASSIGN_EQUAL tl= typeListExpression )? SEMI |stmt1= conditionDeclaration |stmt2= actionDeclaration );
     public final TextMarkerStatement variableDeclaration() throws RecognitionException {
         TextMarkerStatement stmt =  null;
 
@@ -857,89 +861,99 @@ public class TextMarkerParser extends Pa
 
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:250:2: (type= IntString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value1= numberExpression )? SEMI |type= DoubleString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI |type= StringString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value3= stringExpression )? SEMI |type= BooleanString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value4= booleanExpression )? SEMI |type= TypeString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value5= annotationType )? SEMI |type= WORDLIST {...}?name= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE {...}?name= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST {...}?name= Identifier ( ASSIGN_EQUAL bl=
  booleanListExpression )? SEMI |type= STRINGLIST {...}?name= Identifier ( ASSIGN_EQUAL sl= stringListExpression )? SEMI |type= INTLIST {...}?name= Identifier ( ASSIGN_EQUAL il= numberListExpression )? SEMI |type= DOUBLELIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI |type= TYPELIST {...}?name= Identifier ( ASSIGN_EQUAL tl= typeListExpression )? SEMI |stmt1= conditionDeclaration |stmt2= actionDeclaration )
-            int alt21=14;
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:250:2: (type= IntString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value1= numberExpression )? SEMI |type= DoubleString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI |type= FloatString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI |type= StringString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value3= stringExpression )? SEMI |type= BooleanString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value4= booleanExpression )? SEMI |type= TypeString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value5= annotationType )? SEMI |type= WORDLIST {...}?name= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE {...}?name= I
 dentifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST {...}?name= Identifier ( ASSIGN_EQUAL bl= booleanListExpression )? SEMI |type= STRINGLIST {...}?name= Identifier ( ASSIGN_EQUAL sl= stringListExpression )? SEMI |type= INTLIST {...}?name= Identifier ( ASSIGN_EQUAL il= numberListExpression )? SEMI |type= DOUBLELIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI |type= FLOATLIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI |type= TYPELIST {...}?name= Identifier ( ASSIGN_EQUAL tl= typeListExpression )? SEMI |stmt1= conditionDeclaration |stmt2= actionDeclaration )
+            int alt24=16;
             switch ( input.LA(1) ) {
             case IntString:
                 {
-                alt21=1;
+                alt24=1;
                 }
                 break;
             case DoubleString:
                 {
-                alt21=2;
+                alt24=2;
+                }
+                break;
+            case FloatString:
+                {
+                alt24=3;
                 }
                 break;
             case StringString:
                 {
-                alt21=3;
+                alt24=4;
                 }
                 break;
             case BooleanString:
                 {
-                alt21=4;
+                alt24=5;
                 }
                 break;
             case TypeString:
                 {
-                alt21=5;
+                alt24=6;
                 }
                 break;
             case WORDLIST:
                 {
-                alt21=6;
+                alt24=7;
                 }
                 break;
             case WORDTABLE:
                 {
-                alt21=7;
+                alt24=8;
                 }
                 break;
             case BOOLEANLIST:
                 {
-                alt21=8;
+                alt24=9;
                 }
                 break;
             case STRINGLIST:
                 {
-                alt21=9;
+                alt24=10;
                 }
                 break;
             case INTLIST:
                 {
-                alt21=10;
+                alt24=11;
                 }
                 break;
             case DOUBLELIST:
                 {
-                alt21=11;
+                alt24=12;
+                }
+                break;
+            case FLOATLIST:
+                {
+                alt24=13;
                 }
                 break;
             case TYPELIST:
                 {
-                alt21=12;
+                alt24=14;
                 }
                 break;
             case CONDITION:
                 {
-                alt21=13;
+                alt24=15;
                 }
                 break;
             case ACTION:
                 {
-                alt21=14;
+                alt24=16;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return stmt;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
 
             }
 
-            switch (alt21) {
+            switch (alt24) {
                 case 1 :
                     // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:251:2: type= IntString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value1= numberExpression )? SEMI
                     {
@@ -1101,9 +1115,9 @@ public class TextMarkerParser extends Pa
                     }
                     break;
                 case 3 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:261:2: type= StringString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value3= stringExpression )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:261:2: type= FloatString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value2= numberExpression )? SEMI
                     {
-                    type=(Token)match(input,StringString,FOLLOW_StringString_in_variableDeclaration413); if (state.failed) return stmt;
+                    type=(Token)match(input,FloatString,FOLLOW_FloatString_in_variableDeclaration413); if (state.failed) return stmt;
 
                     if ( !((!ownsVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
@@ -1149,7 +1163,7 @@ public class TextMarkerParser extends Pa
                     } while (true);
 
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:264:7: ( ASSIGN_EQUAL value3= stringExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:264:7: ( ASSIGN_EQUAL value2= numberExpression )?
                     int alt9=2;
                     int LA9_0 = input.LA(1);
 
@@ -1158,12 +1172,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt9) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:264:8: ASSIGN_EQUAL value3= stringExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:264:8: ASSIGN_EQUAL value2= numberExpression
                             {
                             match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration448); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_stringExpression_in_variableDeclaration454);
-                            value3=stringExpression();
+                            pushFollow(FOLLOW_numberExpression_in_variableDeclaration454);
+                            value2=numberExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1174,16 +1188,16 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value3);}
+                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value2);}
 
                     match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration460); if (state.failed) return stmt;
 
                     }
                     break;
                 case 4 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:266:2: type= BooleanString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value4= booleanExpression )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:266:2: type= StringString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value3= stringExpression )? SEMI
                     {
-                    type=(Token)match(input,BooleanString,FOLLOW_BooleanString_in_variableDeclaration470); if (state.failed) return stmt;
+                    type=(Token)match(input,StringString,FOLLOW_StringString_in_variableDeclaration470); if (state.failed) return stmt;
 
                     if ( !((!ownsVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
@@ -1229,7 +1243,7 @@ public class TextMarkerParser extends Pa
                     } while (true);
 
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:269:7: ( ASSIGN_EQUAL value4= booleanExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:269:7: ( ASSIGN_EQUAL value3= stringExpression )?
                     int alt11=2;
                     int LA11_0 = input.LA(1);
 
@@ -1238,12 +1252,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt11) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:269:8: ASSIGN_EQUAL value4= booleanExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:269:8: ASSIGN_EQUAL value3= stringExpression
                             {
                             match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration505); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_booleanExpression_in_variableDeclaration511);
-                            value4=booleanExpression();
+                            pushFollow(FOLLOW_stringExpression_in_variableDeclaration511);
+                            value3=stringExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1254,16 +1268,16 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value4);}
+                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value3);}
 
                     match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration517); if (state.failed) return stmt;
 
                     }
                     break;
                 case 5 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:271:2: type= TypeString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value5= annotationType )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:271:2: type= BooleanString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value4= booleanExpression )? SEMI
                     {
-                    type=(Token)match(input,TypeString,FOLLOW_TypeString_in_variableDeclaration527); if (state.failed) return stmt;
+                    type=(Token)match(input,BooleanString,FOLLOW_BooleanString_in_variableDeclaration527); if (state.failed) return stmt;
 
                     if ( !((!ownsVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
@@ -1309,7 +1323,7 @@ public class TextMarkerParser extends Pa
                     } while (true);
 
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:274:7: ( ASSIGN_EQUAL value5= annotationType )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:274:7: ( ASSIGN_EQUAL value4= booleanExpression )?
                     int alt13=2;
                     int LA13_0 = input.LA(1);
 
@@ -1318,12 +1332,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt13) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:274:8: ASSIGN_EQUAL value5= annotationType
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:274:8: ASSIGN_EQUAL value4= booleanExpression
                             {
                             match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration562); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_annotationType_in_variableDeclaration568);
-                            value5=annotationType();
+                            pushFollow(FOLLOW_booleanExpression_in_variableDeclaration568);
+                            value4=booleanExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1334,68 +1348,62 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value5);}
+                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value4);}
 
                     match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration574); if (state.failed) return stmt;
 
                     }
                     break;
                 case 6 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:276:2: type= WORDLIST {...}?name= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:276:2: type= TypeString {...}?id= Identifier ( COMMA {...}?id= Identifier )* ( ASSIGN_EQUAL value5= annotationType )? SEMI
                     {
-                    type=(Token)match(input,WORDLIST,FOLLOW_WORDLIST_in_variableDeclaration585); if (state.failed) return stmt;
+                    type=(Token)match(input,TypeString,FOLLOW_TypeString_in_variableDeclaration584); if (state.failed) return stmt;
 
-                    if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
+                    if ( !((!ownsVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
-                        throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
+                        throw new FailedPredicateException(input, "variableDeclaration", "!ownsVariable($blockDeclaration::env, input.LT(1).getText())");
                     }
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration597); if (state.failed) return stmt;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration593); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:278:20: ( ASSIGN_EQUAL list= wordListExpression )?
-                    int alt14=2;
-                    int LA14_0 = input.LA(1);
-
-                    if ( (LA14_0==ASSIGN_EQUAL) ) {
-                        alt14=1;
-                    }
-                    switch (alt14) {
-                        case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:278:21: ASSIGN_EQUAL list= wordListExpression
-                            {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration600); if (state.failed) return stmt;
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), type.getText());}
 
-                            pushFollow(FOLLOW_wordListExpression_in_variableDeclaration606);
-                            list=wordListExpression();
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:278:3: ( COMMA {...}?id= Identifier )*
+                    loop14:
+                    do {
+                        int alt14=2;
+                        int LA14_0 = input.LA(1);
 
-                            state._fsp--;
-                            if (state.failed) return stmt;
+                        if ( (LA14_0==COMMA) ) {
+                            alt14=1;
+                        }
 
-                            }
-                            break;
 
-                    }
+                        switch (alt14) {
+                    	case 1 :
+                    	    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:278:4: COMMA {...}?id= Identifier
+                    	    {
+                    	    match(input,COMMA,FOLLOW_COMMA_in_variableDeclaration600); if (state.failed) return stmt;
 
+                    	    if ( !((!ownsVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText()))) ) {
+                    	        if (state.backtracking>0) {state.failed=true; return stmt;}
+                    	        throw new FailedPredicateException(input, "variableDeclaration", "!ownsVariable($blockDeclaration::env, input.LT(1).getText())");
+                    	    }
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration610); if (state.failed) return stmt;
+                    	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration608); if (state.failed) return stmt;
 
-                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(list != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), list);}}
+                    	    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), type.getText());}
 
-                    }
-                    break;
-                case 7 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:280:2: type= WORDTABLE {...}?name= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI
-                    {
-                    type=(Token)match(input,WORDTABLE,FOLLOW_WORDTABLE_in_variableDeclaration624); if (state.failed) return stmt;
+                    	    }
+                    	    break;
 
-                    if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
-                        if (state.backtracking>0) {state.failed=true; return stmt;}
-                        throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
-                    }
+                    	default :
+                    	    break loop14;
+                        }
+                    } while (true);
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration636); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:282:20: ( ASSIGN_EQUAL table= wordTableExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:279:7: ( ASSIGN_EQUAL value5= annotationType )?
                     int alt15=2;
                     int LA15_0 = input.LA(1);
 
@@ -1404,12 +1412,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt15) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:282:21: ASSIGN_EQUAL table= wordTableExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:279:8: ASSIGN_EQUAL value5= annotationType
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration639); if (state.failed) return stmt;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration619); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_wordTableExpression_in_variableDeclaration645);
-                            table=wordTableExpression();
+                            pushFollow(FOLLOW_annotationType_in_variableDeclaration625);
+                            value5=annotationType();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1420,25 +1428,25 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration649); if (state.failed) return stmt;
+                    if ( state.backtracking==0 ) {setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), value5);}
 
-                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(table != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), table);}}
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration631); if (state.failed) return stmt;
 
                     }
                     break;
-                case 8 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:284:2: type= BOOLEANLIST {...}?name= Identifier ( ASSIGN_EQUAL bl= booleanListExpression )? SEMI
+                case 7 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:281:2: type= WORDLIST {...}?name= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI
                     {
-                    type=(Token)match(input,BOOLEANLIST,FOLLOW_BOOLEANLIST_in_variableDeclaration661); if (state.failed) return stmt;
+                    type=(Token)match(input,WORDLIST,FOLLOW_WORDLIST_in_variableDeclaration642); if (state.failed) return stmt;
 
                     if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
                         throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
                     }
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration673); if (state.failed) return stmt;
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration654); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:286:20: ( ASSIGN_EQUAL bl= booleanListExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:283:20: ( ASSIGN_EQUAL list= wordListExpression )?
                     int alt16=2;
                     int LA16_0 = input.LA(1);
 
@@ -1447,12 +1455,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt16) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:286:21: ASSIGN_EQUAL bl= booleanListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:283:21: ASSIGN_EQUAL list= wordListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration676); if (state.failed) return stmt;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration657); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_booleanListExpression_in_variableDeclaration682);
-                            bl=booleanListExpression();
+                            pushFollow(FOLLOW_wordListExpression_in_variableDeclaration663);
+                            list=wordListExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1463,25 +1471,25 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration686); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration667); if (state.failed) return stmt;
 
-                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(bl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), bl);}}
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(list != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), list);}}
 
                     }
                     break;
-                case 9 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:288:2: type= STRINGLIST {...}?name= Identifier ( ASSIGN_EQUAL sl= stringListExpression )? SEMI
+                case 8 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:285:2: type= WORDTABLE {...}?name= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI
                     {
-                    type=(Token)match(input,STRINGLIST,FOLLOW_STRINGLIST_in_variableDeclaration699); if (state.failed) return stmt;
+                    type=(Token)match(input,WORDTABLE,FOLLOW_WORDTABLE_in_variableDeclaration681); if (state.failed) return stmt;
 
                     if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
                         throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
                     }
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration711); if (state.failed) return stmt;
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration693); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:290:20: ( ASSIGN_EQUAL sl= stringListExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:287:20: ( ASSIGN_EQUAL table= wordTableExpression )?
                     int alt17=2;
                     int LA17_0 = input.LA(1);
 
@@ -1490,12 +1498,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt17) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:290:21: ASSIGN_EQUAL sl= stringListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:287:21: ASSIGN_EQUAL table= wordTableExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration714); if (state.failed) return stmt;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration696); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_stringListExpression_in_variableDeclaration720);
-                            sl=stringListExpression();
+                            pushFollow(FOLLOW_wordTableExpression_in_variableDeclaration702);
+                            table=wordTableExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1506,25 +1514,25 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration724); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration706); if (state.failed) return stmt;
 
-                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(sl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), sl);}}
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(table != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), table);}}
 
                     }
                     break;
-                case 10 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:292:2: type= INTLIST {...}?name= Identifier ( ASSIGN_EQUAL il= numberListExpression )? SEMI
+                case 9 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:289:2: type= BOOLEANLIST {...}?name= Identifier ( ASSIGN_EQUAL bl= booleanListExpression )? SEMI
                     {
-                    type=(Token)match(input,INTLIST,FOLLOW_INTLIST_in_variableDeclaration737); if (state.failed) return stmt;
+                    type=(Token)match(input,BOOLEANLIST,FOLLOW_BOOLEANLIST_in_variableDeclaration718); if (state.failed) return stmt;
 
                     if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
                         throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
                     }
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration749); if (state.failed) return stmt;
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration730); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:294:20: ( ASSIGN_EQUAL il= numberListExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:291:20: ( ASSIGN_EQUAL bl= booleanListExpression )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -1533,12 +1541,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt18) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:294:21: ASSIGN_EQUAL il= numberListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:291:21: ASSIGN_EQUAL bl= booleanListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration752); if (state.failed) return stmt;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration733); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration758);
-                            il=numberListExpression();
+                            pushFollow(FOLLOW_booleanListExpression_in_variableDeclaration739);
+                            bl=booleanListExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1549,25 +1557,25 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration762); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration743); if (state.failed) return stmt;
 
-                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(il != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), il);}}
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(bl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), bl);}}
 
                     }
                     break;
-                case 11 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:296:2: type= DOUBLELIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI
+                case 10 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:293:2: type= STRINGLIST {...}?name= Identifier ( ASSIGN_EQUAL sl= stringListExpression )? SEMI
                     {
-                    type=(Token)match(input,DOUBLELIST,FOLLOW_DOUBLELIST_in_variableDeclaration775); if (state.failed) return stmt;
+                    type=(Token)match(input,STRINGLIST,FOLLOW_STRINGLIST_in_variableDeclaration756); if (state.failed) return stmt;
 
                     if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
                         throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
                     }
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration787); if (state.failed) return stmt;
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration768); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:298:20: ( ASSIGN_EQUAL dl= numberListExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:295:20: ( ASSIGN_EQUAL sl= stringListExpression )?
                     int alt19=2;
                     int LA19_0 = input.LA(1);
 
@@ -1576,12 +1584,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt19) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:298:21: ASSIGN_EQUAL dl= numberListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:295:21: ASSIGN_EQUAL sl= stringListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration790); if (state.failed) return stmt;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration771); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration796);
-                            dl=numberListExpression();
+                            pushFollow(FOLLOW_stringListExpression_in_variableDeclaration777);
+                            sl=stringListExpression();
 
                             state._fsp--;
                             if (state.failed) return stmt;
@@ -1592,25 +1600,25 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration800); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration781); if (state.failed) return stmt;
 
-                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(dl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), dl);}}
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(sl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), sl);}}
 
                     }
                     break;
-                case 12 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:300:2: type= TYPELIST {...}?name= Identifier ( ASSIGN_EQUAL tl= typeListExpression )? SEMI
+                case 11 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:297:2: type= INTLIST {...}?name= Identifier ( ASSIGN_EQUAL il= numberListExpression )? SEMI
                     {
-                    type=(Token)match(input,TYPELIST,FOLLOW_TYPELIST_in_variableDeclaration813); if (state.failed) return stmt;
+                    type=(Token)match(input,INTLIST,FOLLOW_INTLIST_in_variableDeclaration794); if (state.failed) return stmt;
 
                     if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
                         if (state.backtracking>0) {state.failed=true; return stmt;}
                         throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
                     }
 
-                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration825); if (state.failed) return stmt;
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration806); if (state.failed) return stmt;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:302:20: ( ASSIGN_EQUAL tl= typeListExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:299:20: ( ASSIGN_EQUAL il= numberListExpression )?
                     int alt20=2;
                     int LA20_0 = input.LA(1);
 
@@ -1619,11 +1627,140 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt20) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:302:21: ASSIGN_EQUAL tl= typeListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:299:21: ASSIGN_EQUAL il= numberListExpression
+                            {
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration809); if (state.failed) return stmt;
+
+                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration815);
+                            il=numberListExpression();
+
+                            state._fsp--;
+                            if (state.failed) return stmt;
+
+                            }
+                            break;
+
+                    }
+
+
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration819); if (state.failed) return stmt;
+
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(il != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), il);}}
+
+                    }
+                    break;
+                case 12 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:301:2: type= DOUBLELIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI
+                    {
+                    type=(Token)match(input,DOUBLELIST,FOLLOW_DOUBLELIST_in_variableDeclaration832); if (state.failed) return stmt;
+
+                    if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
+                        if (state.backtracking>0) {state.failed=true; return stmt;}
+                        throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
+                    }
+
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration844); if (state.failed) return stmt;
+
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:303:20: ( ASSIGN_EQUAL dl= numberListExpression )?
+                    int alt21=2;
+                    int LA21_0 = input.LA(1);
+
+                    if ( (LA21_0==ASSIGN_EQUAL) ) {
+                        alt21=1;
+                    }
+                    switch (alt21) {
+                        case 1 :
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:303:21: ASSIGN_EQUAL dl= numberListExpression
+                            {
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration847); if (state.failed) return stmt;
+
+                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration853);
+                            dl=numberListExpression();
+
+                            state._fsp--;
+                            if (state.failed) return stmt;
+
+                            }
+                            break;
+
+                    }
+
+
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration857); if (state.failed) return stmt;
+
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(dl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), dl);}}
+
+                    }
+                    break;
+                case 13 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:305:2: type= FLOATLIST {...}?name= Identifier ( ASSIGN_EQUAL dl= numberListExpression )? SEMI
+                    {
+                    type=(Token)match(input,FLOATLIST,FOLLOW_FLOATLIST_in_variableDeclaration870); if (state.failed) return stmt;
+
+                    if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
+                        if (state.backtracking>0) {state.failed=true; return stmt;}
+                        throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
+                    }
+
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration882); if (state.failed) return stmt;
+
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:307:20: ( ASSIGN_EQUAL dl= numberListExpression )?
+                    int alt22=2;
+                    int LA22_0 = input.LA(1);
+
+                    if ( (LA22_0==ASSIGN_EQUAL) ) {
+                        alt22=1;
+                    }
+                    switch (alt22) {
+                        case 1 :
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:307:21: ASSIGN_EQUAL dl= numberListExpression
+                            {
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration885); if (state.failed) return stmt;
+
+                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration891);
+                            dl=numberListExpression();
+
+                            state._fsp--;
+                            if (state.failed) return stmt;
+
+                            }
+                            break;
+
+                    }
+
+
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration895); if (state.failed) return stmt;
+
+                    if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(dl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), dl);}}
+
+                    }
+                    break;
+                case 14 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:309:2: type= TYPELIST {...}?name= Identifier ( ASSIGN_EQUAL tl= typeListExpression )? SEMI
+                    {
+                    type=(Token)match(input,TYPELIST,FOLLOW_TYPELIST_in_variableDeclaration908); if (state.failed) return stmt;
+
+                    if ( !((!isVariableOfType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, input.LT(1).getText(), type.getText()))) ) {
+                        if (state.backtracking>0) {state.failed=true; return stmt;}
+                        throw new FailedPredicateException(input, "variableDeclaration", "!isVariableOfType($blockDeclaration::env, input.LT(1).getText(), type.getText())");
+                    }
+
+                    name=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration920); if (state.failed) return stmt;
+
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:311:20: ( ASSIGN_EQUAL tl= typeListExpression )?
+                    int alt23=2;
+                    int LA23_0 = input.LA(1);
+
+                    if ( (LA23_0==ASSIGN_EQUAL) ) {
+                        alt23=1;
+                    }
+                    switch (alt23) {
+                        case 1 :
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:311:21: ASSIGN_EQUAL tl= typeListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration828); if (state.failed) return stmt;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration923); if (state.failed) return stmt;
 
-                            pushFollow(FOLLOW_typeListExpression_in_variableDeclaration834);
+                            pushFollow(FOLLOW_typeListExpression_in_variableDeclaration929);
                             tl=typeListExpression();
 
                             state._fsp--;
@@ -1635,16 +1772,16 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration838); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration933); if (state.failed) return stmt;
 
                     if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), type.getText());if(tl != null){setValue(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, name.getText(), tl);}}
 
                     }
                     break;
-                case 13 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:304:2: stmt1= conditionDeclaration
+                case 15 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:313:2: stmt1= conditionDeclaration
                     {
-                    pushFollow(FOLLOW_conditionDeclaration_in_variableDeclaration851);
+                    pushFollow(FOLLOW_conditionDeclaration_in_variableDeclaration946);
                     stmt1=conditionDeclaration();
 
                     state._fsp--;
@@ -1654,10 +1791,10 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 14 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:306:2: stmt2= actionDeclaration
+                case 16 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:315:2: stmt2= actionDeclaration
                     {
-                    pushFollow(FOLLOW_actionDeclaration_in_variableDeclaration863);
+                    pushFollow(FOLLOW_actionDeclaration_in_variableDeclaration958);
                     stmt2=actionDeclaration();
 
                     state._fsp--;
@@ -1688,7 +1825,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "conditionDeclaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:310:1: conditionDeclaration returns [TextMarkerStatement stmt = null] : type= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI ;
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:319:1: conditionDeclaration returns [TextMarkerStatement stmt = null] : type= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI ;
     public final TextMarkerStatement conditionDeclaration() throws RecognitionException {
         TextMarkerStatement stmt =  null;
 
@@ -1699,26 +1836,26 @@ public class TextMarkerParser extends Pa
 
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:311:5: (type= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI )
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:312:5: type= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:320:5: (type= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI )
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:321:5: type= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI
             {
-            type=(Token)match(input,CONDITION,FOLLOW_CONDITION_in_conditionDeclaration892); if (state.failed) return stmt;
+            type=(Token)match(input,CONDITION,FOLLOW_CONDITION_in_conditionDeclaration987); if (state.failed) return stmt;
 
-            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_conditionDeclaration898); if (state.failed) return stmt;
+            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_conditionDeclaration993); if (state.failed) return stmt;
 
-            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_conditionDeclaration900); if (state.failed) return stmt;
+            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_conditionDeclaration995); if (state.failed) return stmt;
 
-            match(input,LPAREN,FOLLOW_LPAREN_in_conditionDeclaration902); if (state.failed) return stmt;
+            match(input,LPAREN,FOLLOW_LPAREN_in_conditionDeclaration997); if (state.failed) return stmt;
 
-            pushFollow(FOLLOW_conditions_in_conditionDeclaration908);
+            pushFollow(FOLLOW_conditions_in_conditionDeclaration1003);
             cons=conditions();
 
             state._fsp--;
             if (state.failed) return stmt;
 
-            match(input,RPAREN,FOLLOW_RPAREN_in_conditionDeclaration910); if (state.failed) return stmt;
+            match(input,RPAREN,FOLLOW_RPAREN_in_conditionDeclaration1005); if (state.failed) return stmt;
 
-            match(input,SEMI,FOLLOW_SEMI_in_conditionDeclaration912); if (state.failed) return stmt;
+            match(input,SEMI,FOLLOW_SEMI_in_conditionDeclaration1007); if (state.failed) return stmt;
 
             if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), type.getText());
                 AbstractTextMarkerCondition condition = ConditionFactory.createConditionAnd(cons,((blockDeclaration_scope)blockDeclaration_stack.peek()).env);
@@ -1745,7 +1882,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "actionDeclaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:319:1: actionDeclaration returns [TextMarkerStatement stmt = null] : type= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI ;
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:328:1: actionDeclaration returns [TextMarkerStatement stmt = null] : type= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI ;
     public final TextMarkerStatement actionDeclaration() throws RecognitionException {
         TextMarkerStatement stmt =  null;
 
@@ -1756,26 +1893,26 @@ public class TextMarkerParser extends Pa
 
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:320:5: (type= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI )
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:321:5: type= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:329:5: (type= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI )
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:330:5: type= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI
             {
-            type=(Token)match(input,ACTION,FOLLOW_ACTION_in_actionDeclaration948); if (state.failed) return stmt;
+            type=(Token)match(input,ACTION,FOLLOW_ACTION_in_actionDeclaration1043); if (state.failed) return stmt;
 
-            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_actionDeclaration954); if (state.failed) return stmt;
+            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_actionDeclaration1049); if (state.failed) return stmt;
 
-            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_actionDeclaration956); if (state.failed) return stmt;
+            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_actionDeclaration1051); if (state.failed) return stmt;
 
-            match(input,LPAREN,FOLLOW_LPAREN_in_actionDeclaration958); if (state.failed) return stmt;
+            match(input,LPAREN,FOLLOW_LPAREN_in_actionDeclaration1053); if (state.failed) return stmt;
 
-            pushFollow(FOLLOW_actions_in_actionDeclaration964);
+            pushFollow(FOLLOW_actions_in_actionDeclaration1059);
             a=actions();
 
             state._fsp--;
             if (state.failed) return stmt;
 
-            match(input,RPAREN,FOLLOW_RPAREN_in_actionDeclaration966); if (state.failed) return stmt;
+            match(input,RPAREN,FOLLOW_RPAREN_in_actionDeclaration1061); if (state.failed) return stmt;
 
-            match(input,SEMI,FOLLOW_SEMI_in_actionDeclaration968); if (state.failed) return stmt;
+            match(input,SEMI,FOLLOW_SEMI_in_actionDeclaration1063); if (state.failed) return stmt;
 
             if ( state.backtracking==0 ) {addVariable(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), type.getText());
                 AbstractTextMarkerAction action = ActionFactory.createComposedAction(a,((blockDeclaration_scope)blockDeclaration_stack.peek()).env);
@@ -1802,7 +1939,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "importStatement"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:327:1: importStatement returns [TextMarkerStatement stmt = null] : ( TypeSystemString ts= dottedIdentifier2 SEMI | ScriptString ns= dottedIdentifier2 SEMI | EngineString ns= dottedIdentifier2 SEMI );
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:336:1: importStatement returns [TextMarkerStatement stmt = null] : ( TypeSystemString ts= dottedIdentifier2 SEMI | ScriptString ns= dottedIdentifier2 SEMI | EngineString ns= dottedIdentifier2 SEMI );
     public final TextMarkerStatement importStatement() throws RecognitionException {
         TextMarkerStatement stmt =  null;
 
@@ -1813,40 +1950,40 @@ public class TextMarkerParser extends Pa
 
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:328:2: ( TypeSystemString ts= dottedIdentifier2 SEMI | ScriptString ns= dottedIdentifier2 SEMI | EngineString ns= dottedIdentifier2 SEMI )
-            int alt22=3;
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:337:2: ( TypeSystemString ts= dottedIdentifier2 SEMI | ScriptString ns= dottedIdentifier2 SEMI | EngineString ns= dottedIdentifier2 SEMI )
+            int alt25=3;
             switch ( input.LA(1) ) {
             case TypeSystemString:
                 {
-                alt22=1;
+                alt25=1;
                 }
                 break;
             case ScriptString:
                 {
-                alt22=2;
+                alt25=2;
                 }
                 break;
             case EngineString:
                 {
-                alt22=3;
+                alt25=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return stmt;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 22, 0, input);
+                    new NoViableAltException("", 25, 0, input);
 
                 throw nvae;
 
             }
 
-            switch (alt22) {
+            switch (alt25) {
                 case 1 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:329:2: TypeSystemString ts= dottedIdentifier2 SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:338:2: TypeSystemString ts= dottedIdentifier2 SEMI
                     {
-                    match(input,TypeSystemString,FOLLOW_TypeSystemString_in_importStatement993); if (state.failed) return stmt;
+                    match(input,TypeSystemString,FOLLOW_TypeSystemString_in_importStatement1088); if (state.failed) return stmt;
 
-                    pushFollow(FOLLOW_dottedIdentifier2_in_importStatement999);
+                    pushFollow(FOLLOW_dottedIdentifier2_in_importStatement1094);
                     ts=dottedIdentifier2();
 
                     state._fsp--;
@@ -1854,16 +1991,16 @@ public class TextMarkerParser extends Pa
 
                     if ( state.backtracking==0 ) {addImportTypeSystem(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, ts);}
 
-                    match(input,SEMI,FOLLOW_SEMI_in_importStatement1002); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_importStatement1097); if (state.failed) return stmt;
 
                     }
                     break;
                 case 2 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:330:4: ScriptString ns= dottedIdentifier2 SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:339:4: ScriptString ns= dottedIdentifier2 SEMI
                     {
-                    match(input,ScriptString,FOLLOW_ScriptString_in_importStatement1007); if (state.failed) return stmt;
+                    match(input,ScriptString,FOLLOW_ScriptString_in_importStatement1102); if (state.failed) return stmt;
 
-                    pushFollow(FOLLOW_dottedIdentifier2_in_importStatement1013);
+                    pushFollow(FOLLOW_dottedIdentifier2_in_importStatement1108);
                     ns=dottedIdentifier2();
 
                     state._fsp--;
@@ -1871,16 +2008,16 @@ public class TextMarkerParser extends Pa
 
                     if ( state.backtracking==0 ) {addImportScript(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, ns);}
 
-                    match(input,SEMI,FOLLOW_SEMI_in_importStatement1016); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_importStatement1111); if (state.failed) return stmt;
 
                     }
                     break;
                 case 3 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:331:4: EngineString ns= dottedIdentifier2 SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-engine\\src\\main\\java\\org\\apache\\uima\\textmarker\\parser\\TextMarkerParser.g:340:4: EngineString ns= dottedIdentifier2 SEMI
                     {
-                    match(input,EngineString,FOLLOW_EngineString_in_importStatement1021); if (state.failed) return stmt;
+                    match(input,EngineString,FOLLOW_EngineString_in_importStatement1116); if (state.failed) return stmt;
 
-                    pushFollow(FOLLOW_dottedIdentifier2_in_importStatement1027);
+                    pushFollow(FOLLOW_dottedIdentifier2_in_importStatement1122);
                     ns=dottedIdentifier2();
 
                     state._fsp--;
@@ -1888,7 +2025,7 @@ public class TextMarkerParser extends Pa
 
                     if ( state.backtracking==0 ) {addImportEngine(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, ns);}
 
-                    match(input,SEMI,FOLLOW_SEMI_in_importStatement1030); if (state.failed) return stmt;
+                    match(input,SEMI,FOLLOW_SEMI_in_importStatement1125); if (state.failed) return stmt;
 
                     }
                     break;
@@ -1913,7 +2050,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "declaration"

[... 16887 lines stripped ...]