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 14:02:08 UTC

svn commit: r1229131 [2/3] - in /uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide: core/parser/ parser/ast/

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.java?rev=1229131&r1=1229130&r2=1229131&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.java Mon Jan  9 13:02:07 2012
@@ -1,4 +1,4 @@
-// $ANTLR 3.4 D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g 2011-10-21 15:25:54
+// $ANTLR 3.4 D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g 2012-01-09 13:42:27
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -81,7 +81,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;
@@ -139,104 +139,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() {
@@ -556,7 +558,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;
                 }
 
@@ -756,6 +758,8 @@ public class TextMarkerParser extends Pa
             case CONDITION:
             case DOUBLELIST:
             case DoubleString:
+            case FLOATLIST:
+            case FloatString:
             case INTLIST:
             case IntString:
             case STRINGLIST:
@@ -995,7 +999,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "variableDeclaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:324:1: variableDeclaration returns [List<Statement> stmts = new ArrayList<Statement>()] : (type= IntString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= DoubleString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= StringString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= stringExpression )? SEMI |type= BooleanString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= booleanExpression )? SEMI |type= TypeString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= annotationType )? SEMI |type= WORDLIST id= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE id= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST id= Identifier ( ASSIGN_EQUAL list= booleanL
 istExpression )? SEMI |type= INTLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= DOUBLELIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= STRINGLIST id= Identifier ( ASSIGN_EQUAL list= stringListExpression )? SEMI |type= TYPELIST id= Identifier ( ASSIGN_EQUAL list= typeListExpression )? SEMI |stmt= conditionDeclaration |stmt= actionDeclaration );
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:324:1: variableDeclaration returns [List<Statement> stmts = new ArrayList<Statement>()] : (type= IntString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= DoubleString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= FloatString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= StringString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= stringExpression )? SEMI |type= BooleanString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= booleanExpression )? SEMI |type= TypeString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= annotationType )? SEMI |type= WORDLIST id= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE id= Identifier ( ASSIG
 N_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST id= Identifier ( ASSIGN_EQUAL list= booleanListExpression )? SEMI |type= INTLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= DOUBLELIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= FLOATLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= STRINGLIST id= Identifier ( ASSIGN_EQUAL list= stringListExpression )? SEMI |type= TYPELIST id= Identifier ( ASSIGN_EQUAL list= typeListExpression )? SEMI |stmt= conditionDeclaration |stmt= actionDeclaration );
     public final List<Statement> variableDeclaration() throws RecognitionException {
         List<Statement> stmts =  new ArrayList<Statement>();
 
@@ -1015,89 +1019,99 @@ public class TextMarkerParser extends Pa
         	List decls = new ArrayList();
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:328:2: (type= IntString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= DoubleString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= StringString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= stringExpression )? SEMI |type= BooleanString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= booleanExpression )? SEMI |type= TypeString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= annotationType )? SEMI |type= WORDLIST id= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE id= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST id= Identifier ( ASSIGN_EQUAL list= booleanListExpression )? SEMI |type= INTLIST id= Identifier ( ASSIGN_EQUAL list= nu
 mberListExpression )? SEMI |type= DOUBLELIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= STRINGLIST id= Identifier ( ASSIGN_EQUAL list= stringListExpression )? SEMI |type= TYPELIST id= Identifier ( ASSIGN_EQUAL list= typeListExpression )? SEMI |stmt= conditionDeclaration |stmt= actionDeclaration )
-            int alt22=14;
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:328:2: (type= IntString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= DoubleString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= FloatString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI |type= StringString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= stringExpression )? SEMI |type= BooleanString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= booleanExpression )? SEMI |type= TypeString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= annotationType )? SEMI |type= WORDLIST id= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI |type= WORDTABLE id= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI |type= BOOLEANLIST id= Identifie
 r ( ASSIGN_EQUAL list= booleanListExpression )? SEMI |type= INTLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= DOUBLELIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= FLOATLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI |type= STRINGLIST id= Identifier ( ASSIGN_EQUAL list= stringListExpression )? SEMI |type= TYPELIST id= Identifier ( ASSIGN_EQUAL list= typeListExpression )? SEMI |stmt= conditionDeclaration |stmt= actionDeclaration )
+            int alt25=16;
             switch ( input.LA(1) ) {
             case IntString:
                 {
-                alt22=1;
+                alt25=1;
                 }
                 break;
             case DoubleString:
                 {
-                alt22=2;
+                alt25=2;
+                }
+                break;
+            case FloatString:
+                {
+                alt25=3;
                 }
                 break;
             case StringString:
                 {
-                alt22=3;
+                alt25=4;
                 }
                 break;
             case BooleanString:
                 {
-                alt22=4;
+                alt25=5;
                 }
                 break;
             case TypeString:
                 {
-                alt22=5;
+                alt25=6;
                 }
                 break;
             case WORDLIST:
                 {
-                alt22=6;
+                alt25=7;
                 }
                 break;
             case WORDTABLE:
                 {
-                alt22=7;
+                alt25=8;
                 }
                 break;
             case BOOLEANLIST:
                 {
-                alt22=8;
+                alt25=9;
                 }
                 break;
             case INTLIST:
                 {
-                alt22=9;
+                alt25=10;
                 }
                 break;
             case DOUBLELIST:
                 {
-                alt22=10;
+                alt25=11;
+                }
+                break;
+            case FLOATLIST:
+                {
+                alt25=12;
                 }
                 break;
             case STRINGLIST:
                 {
-                alt22=11;
+                alt25=13;
                 }
                 break;
             case TYPELIST:
                 {
-                alt22=12;
+                alt25=14;
                 }
                 break;
             case CONDITION:
                 {
-                alt22=13;
+                alt25=15;
                 }
                 break;
             case ACTION:
                 {
-                alt22=14;
+                alt25=16;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return stmts;}
                 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-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:329:2: type= IntString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI
                     {
@@ -1243,13 +1257,13 @@ public class TextMarkerParser extends Pa
                     }
                     break;
                 case 3 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:343:2: type= StringString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= stringExpression )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:343:2: type= FloatString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= numberExpression )? SEMI
                     {
-                    type=(Token)match(input,StringString,FOLLOW_StringString_in_variableDeclaration519); if (state.failed) return stmts;
+                    type=(Token)match(input,FloatString,FOLLOW_FloatString_in_variableDeclaration519); if (state.failed) return stmts;
 
                     id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration525); if (state.failed) return stmts;
 
-                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createStringVariable(id, type));}
+                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createFloatVariable(id, type));}
 
                     // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:344:4: ( COMMA id= Identifier )*
                     loop9:
@@ -1270,7 +1284,7 @@ public class TextMarkerParser extends Pa
 
                     	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration539); if (state.failed) return stmts;
 
-                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createStringVariable(id, type));}
+                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createFloatVariable(id, type));}
 
                     	    }
                     	    break;
@@ -1281,7 +1295,7 @@ public class TextMarkerParser extends Pa
                     } while (true);
 
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:345:7: ( ASSIGN_EQUAL init= stringExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:345:7: ( ASSIGN_EQUAL init= numberExpression )?
                     int alt10=2;
                     int LA10_0 = input.LA(1);
 
@@ -1290,12 +1304,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt10) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:345:8: ASSIGN_EQUAL init= stringExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:345:8: ASSIGN_EQUAL init= numberExpression
                             {
                             match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration550); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_stringExpression_in_variableDeclaration556);
-                            init=stringExpression();
+                            pushFollow(FOLLOW_numberExpression_in_variableDeclaration556);
+                            init=numberExpression();
 
                             state._fsp--;
                             if (state.failed) return stmts;
@@ -1315,13 +1329,13 @@ public class TextMarkerParser extends Pa
                     }
                     break;
                 case 4 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:350:2: type= BooleanString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= booleanExpression )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:350:2: type= StringString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= stringExpression )? SEMI
                     {
-                    type=(Token)match(input,BooleanString,FOLLOW_BooleanString_in_variableDeclaration575); if (state.failed) return stmts;
+                    type=(Token)match(input,StringString,FOLLOW_StringString_in_variableDeclaration575); if (state.failed) return stmts;
 
                     id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration581); if (state.failed) return stmts;
 
-                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createBooleanVariable(id, type));}
+                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createStringVariable(id, type));}
 
                     // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:351:4: ( COMMA id= Identifier )*
                     loop11:
@@ -1342,7 +1356,7 @@ public class TextMarkerParser extends Pa
 
                     	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration595); if (state.failed) return stmts;
 
-                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createBooleanVariable(id, type));}
+                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createStringVariable(id, type));}
 
                     	    }
                     	    break;
@@ -1353,7 +1367,7 @@ public class TextMarkerParser extends Pa
                     } while (true);
 
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:352:7: ( ASSIGN_EQUAL init= booleanExpression )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:352:7: ( ASSIGN_EQUAL init= stringExpression )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -1362,12 +1376,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt12) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:352:8: ASSIGN_EQUAL init= booleanExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:352:8: ASSIGN_EQUAL init= stringExpression
                             {
                             match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration606); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_booleanExpression_in_variableDeclaration612);
-                            init=booleanExpression();
+                            pushFollow(FOLLOW_stringExpression_in_variableDeclaration612);
+                            init=stringExpression();
 
                             state._fsp--;
                             if (state.failed) return stmts;
@@ -1387,13 +1401,13 @@ public class TextMarkerParser extends Pa
                     }
                     break;
                 case 5 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:357:2: type= TypeString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= annotationType )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:357:2: type= BooleanString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= booleanExpression )? SEMI
                     {
-                    type=(Token)match(input,TypeString,FOLLOW_TypeString_in_variableDeclaration631); if (state.failed) return stmts;
+                    type=(Token)match(input,BooleanString,FOLLOW_BooleanString_in_variableDeclaration631); if (state.failed) return stmts;
 
                     id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration637); if (state.failed) return stmts;
 
-                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createTypeVariable(id,type));}
+                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createBooleanVariable(id, type));}
 
                     // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:358:4: ( COMMA id= Identifier )*
                     loop13:
@@ -1414,7 +1428,7 @@ public class TextMarkerParser extends Pa
 
                     	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration651); if (state.failed) return stmts;
 
-                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createTypeVariable(id,type));}
+                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createBooleanVariable(id, type));}
 
                     	    }
                     	    break;
@@ -1425,7 +1439,7 @@ public class TextMarkerParser extends Pa
                     } while (true);
 
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:359:7: ( ASSIGN_EQUAL init= annotationType )?
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:359:7: ( ASSIGN_EQUAL init= booleanExpression )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -1434,12 +1448,12 @@ public class TextMarkerParser extends Pa
                     }
                     switch (alt14) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:359:8: ASSIGN_EQUAL init= annotationType
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:359:8: ASSIGN_EQUAL init= booleanExpression
                             {
                             match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration662); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_annotationType_in_variableDeclaration668);
-                            init=annotationType();
+                            pushFollow(FOLLOW_booleanExpression_in_variableDeclaration668);
+                            init=booleanExpression();
 
                             state._fsp--;
                             if (state.failed) return stmts;
@@ -1459,26 +1473,98 @@ public class TextMarkerParser extends Pa
                     }
                     break;
                 case 6 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:364:9: type= WORDLIST id= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:364:2: type= TypeString id= Identifier ( COMMA id= Identifier )* ( ASSIGN_EQUAL init= annotationType )? SEMI
+                    {
+                    type=(Token)match(input,TypeString,FOLLOW_TypeString_in_variableDeclaration687); if (state.failed) return stmts;
+
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration693); if (state.failed) return stmts;
+
+                    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createTypeVariable(id,type));}
+
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:365:4: ( COMMA id= Identifier )*
+                    loop15:
+                    do {
+                        int alt15=2;
+                        int LA15_0 = input.LA(1);
+
+                        if ( (LA15_0==COMMA) ) {
+                            alt15=1;
+                        }
+
+
+                        switch (alt15) {
+                    	case 1 :
+                    	    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:365:5: COMMA id= Identifier
+                    	    {
+                    	    match(input,COMMA,FOLLOW_COMMA_in_variableDeclaration701); if (state.failed) return stmts;
+
+                    	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration707); if (state.failed) return stmts;
+
+                    	    if ( state.backtracking==0 ) {addVariable(id.getText(), type.getText());decls.add(StatementFactory.createTypeVariable(id,type));}
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop15;
+                        }
+                    } while (true);
+
+
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:366:7: ( ASSIGN_EQUAL init= annotationType )?
+                    int alt16=2;
+                    int LA16_0 = input.LA(1);
+
+                    if ( (LA16_0==ASSIGN_EQUAL) ) {
+                        alt16=1;
+                    }
+                    switch (alt16) {
+                        case 1 :
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:366:8: ASSIGN_EQUAL init= annotationType
+                            {
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration718); if (state.failed) return stmts;
+
+                            pushFollow(FOLLOW_annotationType_in_variableDeclaration724);
+                            init=annotationType();
+
+                            state._fsp--;
+                            if (state.failed) return stmts;
+
+                            }
+                            break;
+
+                    }
+
+
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration729); if (state.failed) return stmts;
+
+                    if ( state.backtracking==0 ) {
+                    		 stmts.add(StatementFactory.createDeclarationsStatement(type, decls, init));
+                    		 }
+
+                    }
+                    break;
+                case 7 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:371:9: type= WORDLIST id= Identifier ( ASSIGN_EQUAL list= wordListExpression )? SEMI
                     {
-                    type=(Token)match(input,WORDLIST,FOLLOW_WORDLIST_in_variableDeclaration701); if (state.failed) return stmts;
+                    type=(Token)match(input,WORDLIST,FOLLOW_WORDLIST_in_variableDeclaration757); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration707); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration763); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:364:41: ( ASSIGN_EQUAL list= wordListExpression )?
-                    int alt15=2;
-                    int LA15_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:371:41: ( ASSIGN_EQUAL list= wordListExpression )?
+                    int alt17=2;
+                    int LA17_0 = input.LA(1);
 
-                    if ( (LA15_0==ASSIGN_EQUAL) ) {
-                        alt15=1;
+                    if ( (LA17_0==ASSIGN_EQUAL) ) {
+                        alt17=1;
                     }
-                    switch (alt15) {
+                    switch (alt17) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:364:42: ASSIGN_EQUAL list= wordListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:371:42: ASSIGN_EQUAL list= wordListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration710); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration766); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_wordListExpression_in_variableDeclaration716);
+                            pushFollow(FOLLOW_wordListExpression_in_variableDeclaration772);
                             list=wordListExpression();
 
                             state._fsp--;
@@ -1490,7 +1576,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration720); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration776); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1500,27 +1586,27 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 7 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:371:9: type= WORDTABLE id= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI
+                case 8 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:378:9: type= WORDTABLE id= Identifier ( ASSIGN_EQUAL table= wordTableExpression )? SEMI
                     {
-                    type=(Token)match(input,WORDTABLE,FOLLOW_WORDTABLE_in_variableDeclaration754); if (state.failed) return stmts;
+                    type=(Token)match(input,WORDTABLE,FOLLOW_WORDTABLE_in_variableDeclaration810); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration760); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration816); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:371:42: ( ASSIGN_EQUAL table= wordTableExpression )?
-                    int alt16=2;
-                    int LA16_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:378:42: ( ASSIGN_EQUAL table= wordTableExpression )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
 
-                    if ( (LA16_0==ASSIGN_EQUAL) ) {
-                        alt16=1;
+                    if ( (LA18_0==ASSIGN_EQUAL) ) {
+                        alt18=1;
                     }
-                    switch (alt16) {
+                    switch (alt18) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:371:43: ASSIGN_EQUAL table= wordTableExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:378:43: ASSIGN_EQUAL table= wordTableExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration763); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration819); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_wordTableExpression_in_variableDeclaration769);
+                            pushFollow(FOLLOW_wordTableExpression_in_variableDeclaration825);
                             table=wordTableExpression();
 
                             state._fsp--;
@@ -1532,7 +1618,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration774); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration830); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1542,27 +1628,27 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 8 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:378:9: type= BOOLEANLIST id= Identifier ( ASSIGN_EQUAL list= booleanListExpression )? SEMI
+                case 9 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:385:9: type= BOOLEANLIST id= Identifier ( ASSIGN_EQUAL list= booleanListExpression )? SEMI
                     {
-                    type=(Token)match(input,BOOLEANLIST,FOLLOW_BOOLEANLIST_in_variableDeclaration808); if (state.failed) return stmts;
+                    type=(Token)match(input,BOOLEANLIST,FOLLOW_BOOLEANLIST_in_variableDeclaration864); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration814); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration870); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:378:44: ( ASSIGN_EQUAL list= booleanListExpression )?
-                    int alt17=2;
-                    int LA17_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:385:44: ( ASSIGN_EQUAL list= booleanListExpression )?
+                    int alt19=2;
+                    int LA19_0 = input.LA(1);
 
-                    if ( (LA17_0==ASSIGN_EQUAL) ) {
-                        alt17=1;
+                    if ( (LA19_0==ASSIGN_EQUAL) ) {
+                        alt19=1;
                     }
-                    switch (alt17) {
+                    switch (alt19) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:378:45: ASSIGN_EQUAL list= booleanListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:385:45: ASSIGN_EQUAL list= booleanListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration817); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration873); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_booleanListExpression_in_variableDeclaration823);
+                            pushFollow(FOLLOW_booleanListExpression_in_variableDeclaration879);
                             list=booleanListExpression();
 
                             state._fsp--;
@@ -1574,7 +1660,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration828); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration884); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1584,27 +1670,27 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 9 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:385:9: type= INTLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI
+                case 10 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:392:9: type= INTLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI
                     {
-                    type=(Token)match(input,INTLIST,FOLLOW_INTLIST_in_variableDeclaration862); if (state.failed) return stmts;
+                    type=(Token)match(input,INTLIST,FOLLOW_INTLIST_in_variableDeclaration918); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration868); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration924); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:385:40: ( ASSIGN_EQUAL list= numberListExpression )?
-                    int alt18=2;
-                    int LA18_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:392:40: ( ASSIGN_EQUAL list= numberListExpression )?
+                    int alt20=2;
+                    int LA20_0 = input.LA(1);
 
-                    if ( (LA18_0==ASSIGN_EQUAL) ) {
-                        alt18=1;
+                    if ( (LA20_0==ASSIGN_EQUAL) ) {
+                        alt20=1;
                     }
-                    switch (alt18) {
+                    switch (alt20) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:385:41: ASSIGN_EQUAL list= numberListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:392:41: ASSIGN_EQUAL list= numberListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration871); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration927); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration877);
+                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration933);
                             list=numberListExpression();
 
                             state._fsp--;
@@ -1616,7 +1702,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration882); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration938); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1626,27 +1712,27 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 10 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:392:9: type= DOUBLELIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI
+                case 11 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:399:9: type= DOUBLELIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI
                     {
-                    type=(Token)match(input,DOUBLELIST,FOLLOW_DOUBLELIST_in_variableDeclaration917); if (state.failed) return stmts;
+                    type=(Token)match(input,DOUBLELIST,FOLLOW_DOUBLELIST_in_variableDeclaration973); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration923); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration979); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:392:43: ( ASSIGN_EQUAL list= numberListExpression )?
-                    int alt19=2;
-                    int LA19_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:399:43: ( ASSIGN_EQUAL list= numberListExpression )?
+                    int alt21=2;
+                    int LA21_0 = input.LA(1);
 
-                    if ( (LA19_0==ASSIGN_EQUAL) ) {
-                        alt19=1;
+                    if ( (LA21_0==ASSIGN_EQUAL) ) {
+                        alt21=1;
                     }
-                    switch (alt19) {
+                    switch (alt21) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:392:44: ASSIGN_EQUAL list= numberListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:399:44: ASSIGN_EQUAL list= numberListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration926); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration982); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration932);
+                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration988);
                             list=numberListExpression();
 
                             state._fsp--;
@@ -1658,7 +1744,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration937); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration993); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1668,27 +1754,69 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 11 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:399:9: type= STRINGLIST id= Identifier ( ASSIGN_EQUAL list= stringListExpression )? SEMI
+                case 12 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:406:9: type= FLOATLIST id= Identifier ( ASSIGN_EQUAL list= numberListExpression )? SEMI
                     {
-                    type=(Token)match(input,STRINGLIST,FOLLOW_STRINGLIST_in_variableDeclaration979); if (state.failed) return stmts;
+                    type=(Token)match(input,FLOATLIST,FOLLOW_FLOATLIST_in_variableDeclaration1029); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration985); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration1035); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:399:43: ( ASSIGN_EQUAL list= stringListExpression )?
-                    int alt20=2;
-                    int LA20_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:406:42: ( ASSIGN_EQUAL list= numberListExpression )?
+                    int alt22=2;
+                    int LA22_0 = input.LA(1);
 
-                    if ( (LA20_0==ASSIGN_EQUAL) ) {
-                        alt20=1;
+                    if ( (LA22_0==ASSIGN_EQUAL) ) {
+                        alt22=1;
                     }
-                    switch (alt20) {
+                    switch (alt22) {
+                        case 1 :
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:406:43: ASSIGN_EQUAL list= numberListExpression
+                            {
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration1038); if (state.failed) return stmts;
+
+                            pushFollow(FOLLOW_numberListExpression_in_variableDeclaration1044);
+                            list=numberListExpression();
+
+                            state._fsp--;
+                            if (state.failed) return stmts;
+
+                            }
+                            break;
+
+                    }
+
+
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration1049); if (state.failed) return stmts;
+
+                    if ( state.backtracking==0 ) {
+                            addVariable(id.getText(), type.getText());
+                            decls.add(StatementFactory.createVarListVariable(id,type,list, TMTypeConstants.TM_TYPE_NL));
+                            stmts.add(StatementFactory.createDeclarationsStatement(type, decls, list));
+                            }
+
+                    }
+                    break;
+                case 13 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:413:9: type= STRINGLIST id= Identifier ( ASSIGN_EQUAL list= stringListExpression )? SEMI
+                    {
+                    type=(Token)match(input,STRINGLIST,FOLLOW_STRINGLIST_in_variableDeclaration1091); if (state.failed) return stmts;
+
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration1097); if (state.failed) return stmts;
+
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:413:43: ( ASSIGN_EQUAL list= stringListExpression )?
+                    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-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:399:44: ASSIGN_EQUAL list= stringListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:413:44: ASSIGN_EQUAL list= stringListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration988); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration1100); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_stringListExpression_in_variableDeclaration994);
+                            pushFollow(FOLLOW_stringListExpression_in_variableDeclaration1106);
                             list=stringListExpression();
 
                             state._fsp--;
@@ -1700,7 +1828,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration999); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration1111); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1710,27 +1838,27 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 12 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:406:9: type= TYPELIST id= Identifier ( ASSIGN_EQUAL list= typeListExpression )? SEMI
+                case 14 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:420:9: type= TYPELIST id= Identifier ( ASSIGN_EQUAL list= typeListExpression )? SEMI
                     {
-                    type=(Token)match(input,TYPELIST,FOLLOW_TYPELIST_in_variableDeclaration1041); if (state.failed) return stmts;
+                    type=(Token)match(input,TYPELIST,FOLLOW_TYPELIST_in_variableDeclaration1153); if (state.failed) return stmts;
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration1047); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_variableDeclaration1159); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:406:41: ( ASSIGN_EQUAL list= typeListExpression )?
-                    int alt21=2;
-                    int LA21_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:420:41: ( ASSIGN_EQUAL list= typeListExpression )?
+                    int alt24=2;
+                    int LA24_0 = input.LA(1);
 
-                    if ( (LA21_0==ASSIGN_EQUAL) ) {
-                        alt21=1;
+                    if ( (LA24_0==ASSIGN_EQUAL) ) {
+                        alt24=1;
                     }
-                    switch (alt21) {
+                    switch (alt24) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:406:42: ASSIGN_EQUAL list= typeListExpression
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:420:42: ASSIGN_EQUAL list= typeListExpression
                             {
-                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration1050); if (state.failed) return stmts;
+                            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_variableDeclaration1162); if (state.failed) return stmts;
 
-                            pushFollow(FOLLOW_typeListExpression_in_variableDeclaration1056);
+                            pushFollow(FOLLOW_typeListExpression_in_variableDeclaration1168);
                             list=typeListExpression();
 
                             state._fsp--;
@@ -1742,7 +1870,7 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration1061); if (state.failed) return stmts;
+                    match(input,SEMI,FOLLOW_SEMI_in_variableDeclaration1173); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {
                             addVariable(id.getText(), type.getText());
@@ -1752,10 +1880,10 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 13 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:413:2: stmt= conditionDeclaration
+                case 15 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:427:2: stmt= conditionDeclaration
                     {
-                    pushFollow(FOLLOW_conditionDeclaration_in_variableDeclaration1088);
+                    pushFollow(FOLLOW_conditionDeclaration_in_variableDeclaration1200);
                     stmt=conditionDeclaration();
 
                     state._fsp--;
@@ -1765,10 +1893,10 @@ public class TextMarkerParser extends Pa
 
                     }
                     break;
-                case 14 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:415:2: stmt= actionDeclaration
+                case 16 :
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:429:2: stmt= actionDeclaration
                     {
-                    pushFollow(FOLLOW_actionDeclaration_in_variableDeclaration1100);
+                    pushFollow(FOLLOW_actionDeclaration_in_variableDeclaration1212);
                     stmt=actionDeclaration();
 
                     state._fsp--;
@@ -1804,7 +1932,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "conditionDeclaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:418:1: conditionDeclaration returns [Statement stmt = null] : declareToken= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI ;
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:432:1: conditionDeclaration returns [Statement stmt = null] : declareToken= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI ;
     public final Statement conditionDeclaration() throws RecognitionException {
         Statement stmt =  null;
 
@@ -1815,28 +1943,28 @@ public class TextMarkerParser extends Pa
 
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:419:5: (declareToken= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI )
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:420:5: declareToken= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:433:5: (declareToken= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI )
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:434:5: declareToken= CONDITION id= Identifier ASSIGN_EQUAL LPAREN cons= conditions RPAREN SEMI
             {
-            declareToken=(Token)match(input,CONDITION,FOLLOW_CONDITION_in_conditionDeclaration1128); if (state.failed) return stmt;
+            declareToken=(Token)match(input,CONDITION,FOLLOW_CONDITION_in_conditionDeclaration1240); if (state.failed) return stmt;
 
-            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_conditionDeclaration1134); if (state.failed) return stmt;
+            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_conditionDeclaration1246); if (state.failed) return stmt;
 
             if ( state.backtracking==0 ) {addVariable(id.getText(), declareToken.getText());}
 
-            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_conditionDeclaration1142); if (state.failed) return stmt;
+            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_conditionDeclaration1254); if (state.failed) return stmt;
 
-            match(input,LPAREN,FOLLOW_LPAREN_in_conditionDeclaration1149); if (state.failed) return stmt;
+            match(input,LPAREN,FOLLOW_LPAREN_in_conditionDeclaration1261); if (state.failed) return stmt;
 
-            pushFollow(FOLLOW_conditions_in_conditionDeclaration1155);
+            pushFollow(FOLLOW_conditions_in_conditionDeclaration1267);
             cons=conditions();
 
             state._fsp--;
             if (state.failed) return stmt;
 
-            match(input,RPAREN,FOLLOW_RPAREN_in_conditionDeclaration1157); if (state.failed) return stmt;
+            match(input,RPAREN,FOLLOW_RPAREN_in_conditionDeclaration1269); if (state.failed) return stmt;
 
-            match(input,SEMI,FOLLOW_SEMI_in_conditionDeclaration1159); if (state.failed) return stmt;
+            match(input,SEMI,FOLLOW_SEMI_in_conditionDeclaration1271); if (state.failed) return stmt;
 
             if ( state.backtracking==0 ) {stmt = StatementFactory.createComposedVariableConditionDeclaration(id, cons);}
 
@@ -1866,7 +1994,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "actionDeclaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:427:1: actionDeclaration returns [Statement stmt = null] : declareToken= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI ;
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:441:1: actionDeclaration returns [Statement stmt = null] : declareToken= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI ;
     public final Statement actionDeclaration() throws RecognitionException {
         Statement stmt =  null;
 
@@ -1877,28 +2005,28 @@ public class TextMarkerParser extends Pa
 
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:428:5: (declareToken= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI )
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:429:5: declareToken= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:442:5: (declareToken= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI )
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:443:5: declareToken= ACTION id= Identifier ASSIGN_EQUAL LPAREN a= actions RPAREN SEMI
             {
-            declareToken=(Token)match(input,ACTION,FOLLOW_ACTION_in_actionDeclaration1195); if (state.failed) return stmt;
+            declareToken=(Token)match(input,ACTION,FOLLOW_ACTION_in_actionDeclaration1307); if (state.failed) return stmt;
 
-            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_actionDeclaration1201); if (state.failed) return stmt;
+            id=(Token)match(input,Identifier,FOLLOW_Identifier_in_actionDeclaration1313); if (state.failed) return stmt;
 
             if ( state.backtracking==0 ) {addVariable(id.getText(), declareToken.getText());}
 
-            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_actionDeclaration1209); if (state.failed) return stmt;
+            match(input,ASSIGN_EQUAL,FOLLOW_ASSIGN_EQUAL_in_actionDeclaration1321); if (state.failed) return stmt;
 
-            match(input,LPAREN,FOLLOW_LPAREN_in_actionDeclaration1215); if (state.failed) return stmt;
+            match(input,LPAREN,FOLLOW_LPAREN_in_actionDeclaration1327); if (state.failed) return stmt;
 
-            pushFollow(FOLLOW_actions_in_actionDeclaration1221);
+            pushFollow(FOLLOW_actions_in_actionDeclaration1333);
             a=actions();
 
             state._fsp--;
             if (state.failed) return stmt;
 
-            match(input,RPAREN,FOLLOW_RPAREN_in_actionDeclaration1223); if (state.failed) return stmt;
+            match(input,RPAREN,FOLLOW_RPAREN_in_actionDeclaration1335); if (state.failed) return stmt;
 
-            match(input,SEMI,FOLLOW_SEMI_in_actionDeclaration1225); if (state.failed) return stmt;
+            match(input,SEMI,FOLLOW_SEMI_in_actionDeclaration1337); if (state.failed) return stmt;
 
             if ( state.backtracking==0 ) {stmt = StatementFactory.createComposedVariableActionDeclaration(id, a);}
 
@@ -1928,7 +2056,7 @@ public class TextMarkerParser extends Pa
 
 
     // $ANTLR start "declaration"
-    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:435:1: declaration returns [List<Statement> stmts = new ArrayList<Statement>()] : (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI ) ;
+    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:449:1: declaration returns [List<Statement> stmts = new ArrayList<Statement>()] : (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI ) ;
     public final List<Statement> declaration() throws RecognitionException {
         List<Statement> stmts =  new ArrayList<Statement>();
 
@@ -1938,6 +2066,7 @@ public class TextMarkerParser extends Pa
         Token end=null;
         Token obj2=null;
         Token obj3=null;
+        Token obj6=null;
         Token obj4=null;
         Token obj5=null;
         Token fname=null;
@@ -1955,37 +2084,37 @@ public class TextMarkerParser extends Pa
         	List<Declaration> declarations = new ArrayList<Declaration>();
 
         try {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:442:2: ( (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI ) )
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:444:2: (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI )
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:456:2: ( (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI ) )
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:458:2: (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI )
             {
-            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:444:2: (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI )
-            int alt28=2;
-            alt28 = dfa28.predict(input);
-            switch (alt28) {
+            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:458:2: (declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI |declareToken= DECLARE type= annotationType id= Identifier ( LPAREN (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier ( COMMA (obj1= annotationType |obj2= StringString |obj3= DoubleString |obj6= FloatString |obj4= IntString |obj5= BooleanString ) fname= Identifier )* RPAREN ) SEMI )
+            int alt31=2;
+            alt31 = dfa31.predict(input);
+            switch (alt31) {
                 case 1 :
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:444:3: declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:458:3: declareToken= DECLARE (lazyParent= annotationType )? id= Identifier ( COMMA id= Identifier )* end= SEMI
                     {
-                    declareToken=(Token)match(input,DECLARE,FOLLOW_DECLARE_in_declaration1260); if (state.failed) return stmts;
+                    declareToken=(Token)match(input,DECLARE,FOLLOW_DECLARE_in_declaration1372); if (state.failed) return stmts;
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:444:35: (lazyParent= annotationType )?
-                    int alt23=2;
-                    int LA23_0 = input.LA(1);
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:458:35: (lazyParent= annotationType )?
+                    int alt26=2;
+                    int LA26_0 = input.LA(1);
 
-                    if ( (LA23_0==Identifier) ) {
-                        int LA23_1 = input.LA(2);
+                    if ( (LA26_0==Identifier) ) {
+                        int LA26_1 = input.LA(2);
 
-                        if ( (LA23_1==DOT||LA23_1==Identifier) ) {
-                            alt23=1;
+                        if ( (LA26_1==DOT||LA26_1==Identifier) ) {
+                            alt26=1;
                         }
                     }
-                    else if ( (LA23_0==BasicAnnotationType) ) {
-                        alt23=1;
+                    else if ( (LA26_0==BasicAnnotationType) ) {
+                        alt26=1;
                     }
-                    switch (alt23) {
+                    switch (alt26) {
                         case 1 :
-                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:444:35: lazyParent= annotationType
+                            // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:458:35: lazyParent= annotationType
                             {
-                            pushFollow(FOLLOW_annotationType_in_declaration1266);
+                            pushFollow(FOLLOW_annotationType_in_declaration1378);
                             lazyParent=annotationType();
 
                             state._fsp--;
@@ -1997,31 +2126,31 @@ public class TextMarkerParser extends Pa
                     }
 
 
-                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_declaration1276); if (state.failed) return stmts;
+                    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_declaration1388); if (state.failed) return stmts;
 
                     if ( state.backtracking==0 ) {addVariable(id.getText(), declareToken.getText());}
 
                     if ( state.backtracking==0 ) {addType(((blockDeclaration_scope)blockDeclaration_stack.peek()).env, id.getText(), lazyParent == null ? null : lazyParent.toString());
                     			declarations.add(StatementFactory.createAnnotationType(id,declareToken));}
 
-                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:448:3: ( COMMA id= Identifier )*
-                    loop24:
+                    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:462:3: ( COMMA id= Identifier )*
+                    loop27:
                     do {
-                        int alt24=2;
-                        int LA24_0 = input.LA(1);
+                        int alt27=2;
+                        int LA27_0 = input.LA(1);
 
-                        if ( (LA24_0==COMMA) ) {
-                            alt24=1;
+                        if ( (LA27_0==COMMA) ) {
+                            alt27=1;
                         }
 
 
-                        switch (alt24) {
+                        switch (alt27) {
                     	case 1 :
-                    	    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:448:4: COMMA id= Identifier
+                    	    // D:\\work\\workspace-uima3\\uimaj-ep-textmarker-ide\\src\\main\\java\\org\\apache\\uima\\textmarker\\ide\\core\\parser\\TextMarkerParser.g:462:4: COMMA id= Identifier
                     	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_declaration1288); if (state.failed) return stmts;
+                    	    match(input,COMMA,FOLLOW_COMMA_in_declaration1400); if (state.failed) return stmts;
 
-                    	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_declaration1298); if (state.failed) return stmts;
+                    	    id=(Token)match(input,Identifier,FOLLOW_Identifier_in_declaration1410); if (state.failed) return stmts;
 
                     	    if ( state.backtracking==0 ) {addVariable(id.getText(), declareToken.getText());}
 
@@ -2032,12 +2161,12 @@ public class TextMarkerParser extends Pa
                     	    break;
 
                     	default :
-                    	    break loop24;
+                    	    break loop27;
                         }
                     } while (true);
 
 
-                    end=(Token)match(input,SEMI,FOLLOW_SEMI_in_declaration1317); if (state.failed) return stmts;

[... 16791 lines stripped ...]