]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
Sysdyn: [{a, b, c}] support for enums in ExpressionParser (refs #4948).
authormiettinen <miettinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 16 Jun 2014 12:09:20 +0000 (12:09 +0000)
committermiettinen <miettinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 16 Jun 2014 12:09:20 +0000 (12:09 +0000)
git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@29616 ac1ea38d-2e2b-0410-8846-a27921b304fc

org.simantics.sysdyn/src/org/simantics/sysdyn/expressionParser/ExpressionParser.java
org.simantics.sysdyn/src/org/simantics/sysdyn/expressionParser/ExpressionParser.jj

index 08ecdcb477a21a81679cdad6a0578d6354392bd0..5b37fb688f6f1fe02ce782175e64f19f51362fff 100644 (file)
@@ -856,7 +856,7 @@ void named_arguments() : {
             currentRange.add(token);\r
       break;\r
     default:\r
-      jj_la1[39] = jj_gen;\r
+      jj_la1[40] = jj_gen;\r
       if (jj_2_3(2147483647)) {\r
         functionCall = null;\r
         name();\r
@@ -871,11 +871,11 @@ void named_arguments() : {
         case IDENT:\r
         case QIDENT:\r
         case UNSIGNED_INTEGER:\r
-          rangeIndex(rangeToken, true);\r
+          rangeIndex(rangeToken, true, ":");\r
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
           case 67:\r
             jj_consume_token(67);\r
-            rangeIndex(rangeToken, false);\r
+            rangeIndex(rangeToken, false, ":");\r
             break;\r
           default:\r
             jj_la1[38] = jj_gen;\r
@@ -885,8 +885,31 @@ void named_arguments() : {
             rangeToken.endLine = token.endLine;\r
                 currentRange.add(rangeToken);\r
           break;\r
+        case 62:\r
+          jj_consume_token(62);\r
+            rangeToken.image = rangeToken.image + token.image;\r
+          rangeIndex(rangeToken, true, ",");\r
+          label_12:\r
+          while (true) {\r
+            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+            case 69:\r
+              ;\r
+              break;\r
+            default:\r
+              jj_la1[39] = jj_gen;\r
+              break label_12;\r
+            }\r
+            jj_consume_token(69);\r
+            rangeIndex(rangeToken, false, ",");\r
+          }\r
+            rangeToken.endColumn = token.endColumn;\r
+            rangeToken.endLine = token.endLine;\r
+                currentRange.add(rangeToken);\r
+          jj_consume_token(63);\r
+                rangeToken.image = rangeToken.image + token.image;\r
+          break;\r
         default:\r
-          jj_la1[40] = jj_gen;\r
+          jj_la1[41] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -894,10 +917,10 @@ void named_arguments() : {
     }\r
   }\r
 \r
-  final public void rangeIndex(Token rangeToken, boolean first) throws ParseException {\r
+  final public void rangeIndex(Token rangeToken, boolean first, String delim) throws ParseException {\r
   Token identToken = null;\r
   if(!first)\r
-        rangeToken.image = rangeToken.image + ":";\r
+        rangeToken.image = rangeToken.image + delim;\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case UNSIGNED_INTEGER:\r
       jj_consume_token(UNSIGNED_INTEGER);\r
@@ -909,7 +932,7 @@ void named_arguments() : {
                 rangeToken.image = rangeToken.image + identToken;\r
       break;\r
     default:\r
-      jj_la1[41] = jj_gen;\r
+      jj_la1[42] = jj_gen;\r
       jj_consume_token(-1);\r
       throw new ParseException();\r
     }\r
@@ -936,24 +959,30 @@ void named_arguments() : {
     finally { jj_save(2, xla); }\r
   }\r
 \r
-  private boolean jj_3R_34() {\r
-    if (jj_3R_38()) return true;\r
+  private boolean jj_3R_74() {\r
+    if (jj_scan_token(67)) return true;\r
+    if (jj_3R_73()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_32() {\r
+  private boolean jj_3R_35() {\r
+    if (jj_3R_39()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_33() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_34()) jj_scanpos = xsp;\r
-    if (jj_3R_35()) return true;\r
+    if (jj_3R_35()) jj_scanpos = xsp;\r
+    if (jj_3R_36()) return true;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_36()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_37()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_37() {\r
+  private boolean jj_3R_38() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(70)) {\r
@@ -975,388 +1004,397 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_15() {\r
+  private boolean jj_3R_16() {\r
     if (jj_scan_token(66)) return true;\r
-    if (jj_3R_12()) return true;\r
+    if (jj_3R_13()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_72() {\r
+  private boolean jj_3R_26() {\r
     if (jj_scan_token(67)) return true;\r
-    if (jj_3R_71()) return true;\r
+    if (jj_3R_25()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_29()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_25() {\r
-    if (jj_scan_token(67)) return true;\r
-    if (jj_3R_24()) return true;\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_28()) jj_scanpos = xsp;\r
+  private boolean jj_3R_79() {\r
+    if (jj_3R_15()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_27() {\r
+  private boolean jj_3R_28() {\r
     if (jj_scan_token(22)) return true;\r
-    if (jj_3R_26()) return true;\r
+    if (jj_3R_27()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_77() {\r
+  private boolean jj_3R_80() {\r
     if (jj_scan_token(41)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_31() {\r
-    if (jj_3R_32()) return true;\r
+  private boolean jj_3R_32() {\r
+    if (jj_3R_33()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_33()) jj_scanpos = xsp;\r
+    if (jj_3R_34()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_29() {\r
+  private boolean jj_3R_78() {\r
+    if (jj_scan_token(UNSIGNED_INTEGER)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_73() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_78()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_79()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_30() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(12)) jj_scanpos = xsp;\r
-    if (jj_3R_31()) return true;\r
+    if (jj_3R_32()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_12() {\r
-    if (jj_3R_14()) return true;\r
+  private boolean jj_3R_13() {\r
+    if (jj_3R_15()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_15()) jj_scanpos = xsp;\r
+    if (jj_3R_16()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_74() {\r
+  private boolean jj_3R_77() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_73()) return true;\r
+    if (jj_3R_76()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_26() {\r
-    if (jj_3R_29()) return true;\r
+  private boolean jj_3R_27() {\r
+    if (jj_3R_30()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_30()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_31()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_65() {\r
+  private boolean jj_3R_66() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_53()) return true;\r
+    if (jj_3R_54()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_62() {\r
+  private boolean jj_3R_63() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_65()) {\r
+    if (jj_3R_66()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_66()) return true;\r
+    if (jj_3R_67()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_56() {\r
+  private boolean jj_3R_57() {\r
     if (jj_scan_token(66)) return true;\r
-    if (jj_3R_50()) return true;\r
+    if (jj_3R_51()) return true;\r
     return false;\r
   }\r
 \r
   private boolean jj_3R_76() {\r
-    if (jj_3R_14()) return true;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_73() {\r
-    if (jj_3R_14()) return true;\r
+    if (jj_3R_15()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_77()) jj_scanpos = xsp;\r
+    if (jj_3R_80()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_24() {\r
-    if (jj_3R_26()) return true;\r
+  private boolean jj_3R_25() {\r
+    if (jj_3R_27()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_27()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_28()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_75() {\r
-    if (jj_scan_token(UNSIGNED_INTEGER)) return true;\r
+  private boolean jj_3_2() {\r
+    if (jj_3R_14()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_71() {\r
+  private boolean jj_3R_23() {\r
+    if (jj_3R_25()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_75()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_76()) return true;\r
-    }\r
+    if (jj_3R_26()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_2() {\r
-    if (jj_3R_13()) return true;\r
+  private boolean jj_3R_19() {\r
+    if (jj_scan_token(QIDENT)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_22() {\r
-    if (jj_3R_24()) return true;\r
+  private boolean jj_3R_72() {\r
+    if (jj_3R_76()) return true;\r
     Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_25()) jj_scanpos = xsp;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_18() {\r
-    if (jj_scan_token(QIDENT)) return true;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_77()) { jj_scanpos = xsp; break; }\r
+    }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_70() {\r
+  private boolean jj_3R_71() {\r
+    if (jj_scan_token(62)) return true;\r
     if (jj_3R_73()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_74()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_75()) { jj_scanpos = xsp; break; }\r
     }\r
+    if (jj_scan_token(63)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_52() {\r
+  private boolean jj_3R_53() {\r
     if (jj_scan_token(68)) return true;\r
-    if (jj_3R_51()) return true;\r
+    if (jj_3R_52()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_20() {\r
+  private boolean jj_3R_21() {\r
     if (jj_scan_token(31)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     if (jj_scan_token(28)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_23()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_24()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(15)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_59() {\r
-    if (jj_3R_16()) return true;\r
+  private boolean jj_3R_60() {\r
+    if (jj_3R_17()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_62()) jj_scanpos = xsp;\r
+    if (jj_3R_63()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_64() {\r
+  private boolean jj_3R_65() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_63()) return true;\r
+    if (jj_3R_64()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_19() {\r
-    if (jj_3R_22()) return true;\r
+  private boolean jj_3R_20() {\r
+    if (jj_3R_23()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_16() {\r
+  private boolean jj_3R_17() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_19()) {\r
+    if (jj_3R_20()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_20()) return true;\r
+    if (jj_3R_21()) return true;\r
     }\r
     return false;\r
   }\r
 \r
   private boolean jj_3_3() {\r
-    if (jj_3R_12()) return true;\r
+    if (jj_3R_13()) return true;\r
     if (jj_scan_token(60)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_69() {\r
-    if (jj_3R_71()) return true;\r
+  private boolean jj_3R_70() {\r
+    if (jj_3R_73()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_72()) jj_scanpos = xsp;\r
+    if (jj_3R_74()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_58() {\r
-    if (jj_3R_13()) return true;\r
+  private boolean jj_3R_59() {\r
+    if (jj_3R_14()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_61()) jj_scanpos = xsp;\r
+    if (jj_3R_62()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_53() {\r
+  private boolean jj_3R_54() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_58()) {\r
+    if (jj_3R_59()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_59()) return true;\r
+    if (jj_3R_60()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_54() {\r
-    if (jj_3R_53()) return true;\r
+  private boolean jj_3R_55() {\r
+    if (jj_3R_54()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_21() {\r
-    if (jj_3R_14()) return true;\r
+  private boolean jj_3R_22() {\r
+    if (jj_3R_15()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_68() {\r
-    if (jj_3R_12()) return true;\r
-    if (jj_3R_49()) return true;\r
+  private boolean jj_3R_69() {\r
+    if (jj_3R_13()) return true;\r
+    if (jj_3R_50()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_17() {\r
+  private boolean jj_3R_18() {\r
     if (jj_scan_token(IDENT)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_21()) jj_scanpos = xsp;\r
+    if (jj_3R_22()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_14() {\r
+  private boolean jj_3R_15() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_17()) {\r
+    if (jj_3R_18()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_18()) return true;\r
+    if (jj_3R_19()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_49() {\r
+  private boolean jj_3R_50() {\r
     if (jj_scan_token(60)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_54()) jj_scanpos = xsp;\r
+    if (jj_3R_55()) jj_scanpos = xsp;\r
     if (jj_scan_token(61)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_55() {\r
-    if (jj_3R_60()) return true;\r
+  private boolean jj_3R_56() {\r
+    if (jj_3R_61()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_67() {\r
+  private boolean jj_3R_68() {\r
     if (jj_scan_token(67)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_63() {\r
+  private boolean jj_3R_64() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_67()) {\r
-    jj_scanpos = xsp;\r
     if (jj_3R_68()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_69()) return true;\r
+    if (jj_3R_69()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_70()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_71()) return true;\r
+    }\r
     }\r
     }\r
     return false;\r
   }\r
 \r
   private boolean jj_3_1() {\r
-    if (jj_3R_12()) return true;\r
+    if (jj_3R_13()) return true;\r
     if (jj_scan_token(60)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_48() {\r
+  private boolean jj_3R_49() {\r
     if (jj_scan_token(62)) return true;\r
-    if (jj_3R_53()) return true;\r
+    if (jj_3R_54()) return true;\r
     if (jj_scan_token(63)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_47() {\r
+  private boolean jj_3R_48() {\r
     if (jj_scan_token(64)) return true;\r
-    if (jj_3R_51()) return true;\r
+    if (jj_3R_52()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_52()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_53()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(65)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_46() {\r
+  private boolean jj_3R_47() {\r
     if (jj_scan_token(60)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     if (jj_scan_token(61)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_45() {\r
-    if (jj_3R_50()) return true;\r
+  private boolean jj_3R_46() {\r
+    if (jj_3R_51()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_57() {\r
+  private boolean jj_3R_58() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_60() {\r
+  private boolean jj_3R_61() {\r
     if (jj_scan_token(64)) return true;\r
-    if (jj_3R_63()) return true;\r
+    if (jj_3R_64()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_64()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_65()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(65)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_44() {\r
-    if (jj_3R_12()) return true;\r
-    if (jj_3R_49()) return true;\r
+  private boolean jj_3R_45() {\r
+    if (jj_3R_13()) return true;\r
+    if (jj_3R_50()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_42() {\r
+  private boolean jj_3R_43() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(84)) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(85)) return true;\r
     }\r
-    if (jj_3R_41()) return true;\r
+    if (jj_3R_42()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_41() {\r
+  private boolean jj_3R_42() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(92)) {\r
@@ -1369,8 +1407,6 @@ void named_arguments() : {
     jj_scanpos = xsp;\r
     if (jj_scan_token(33)) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_44()) {\r
-    jj_scanpos = xsp;\r
     if (jj_3R_45()) {\r
     jj_scanpos = xsp;\r
     if (jj_3R_46()) {\r
@@ -1379,6 +1415,8 @@ void named_arguments() : {
     jj_scanpos = xsp;\r
     if (jj_3R_48()) {\r
     jj_scanpos = xsp;\r
+    if (jj_3R_49()) {\r
+    jj_scanpos = xsp;\r
     if (jj_scan_token(35)) return true;\r
     }\r
     }\r
@@ -1393,31 +1431,31 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_28() {\r
+  private boolean jj_3R_29() {\r
     if (jj_scan_token(67)) return true;\r
-    if (jj_3R_24()) return true;\r
+    if (jj_3R_25()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_40() {\r
-    if (jj_3R_43()) return true;\r
-    if (jj_3R_39()) return true;\r
+  private boolean jj_3R_41() {\r
+    if (jj_3R_44()) return true;\r
+    if (jj_3R_40()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_33() {\r
-    if (jj_3R_37()) return true;\r
-    if (jj_3R_32()) return true;\r
+  private boolean jj_3R_34() {\r
+    if (jj_3R_38()) return true;\r
+    if (jj_3R_33()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_36() {\r
-    if (jj_3R_38()) return true;\r
-    if (jj_3R_35()) return true;\r
+  private boolean jj_3R_37() {\r
+    if (jj_3R_39()) return true;\r
+    if (jj_3R_36()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_43() {\r
+  private boolean jj_3R_44() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(80)) {\r
@@ -1433,62 +1471,68 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_39() {\r
-    if (jj_3R_41()) return true;\r
+  private boolean jj_3R_40() {\r
+    if (jj_3R_42()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_42()) jj_scanpos = xsp;\r
+    if (jj_3R_43()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_51() {\r
-    if (jj_3R_16()) return true;\r
+  private boolean jj_3R_52() {\r
+    if (jj_3R_17()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_57()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_58()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_61() {\r
+  private boolean jj_3R_75() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_53()) return true;\r
+    if (jj_3R_73()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_13() {\r
-    if (jj_3R_14()) return true;\r
+  private boolean jj_3R_62() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_54()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_14() {\r
+    if (jj_3R_15()) return true;\r
     if (jj_scan_token(86)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_66() {\r
+  private boolean jj_3R_67() {\r
     if (jj_scan_token(21)) return true;\r
-    if (jj_3R_70()) return true;\r
+    if (jj_3R_72()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_23() {\r
+  private boolean jj_3R_24() {\r
     if (jj_scan_token(20)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     if (jj_scan_token(28)) return true;\r
-    if (jj_3R_16()) return true;\r
+    if (jj_3R_17()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_35() {\r
-    if (jj_3R_39()) return true;\r
+  private boolean jj_3R_36() {\r
+    if (jj_3R_40()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_40()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_41()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_38() {\r
+  private boolean jj_3R_39() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(76)) {\r
@@ -1504,19 +1548,19 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_50() {\r
-    if (jj_3R_14()) return true;\r
+  private boolean jj_3R_51() {\r
+    if (jj_3R_15()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_55()) jj_scanpos = xsp;\r
-    xsp = jj_scanpos;\r
     if (jj_3R_56()) jj_scanpos = xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_57()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_30() {\r
+  private boolean jj_3R_31() {\r
     if (jj_scan_token(9)) return true;\r
-    if (jj_3R_29()) return true;\r
+    if (jj_3R_30()) return true;\r
     return false;\r
   }\r
 \r
@@ -1531,7 +1575,7 @@ void named_arguments() : {
   private Token jj_scanpos, jj_lastpos;\r
   private int jj_la;\r
   private int jj_gen;\r
-  final private int[] jj_la1 = new int[42];\r
+  final private int[] jj_la1 = new int[43];\r
   static private int[] jj_la1_0;\r
   static private int[] jj_la1_1;\r
   static private int[] jj_la1_2;\r
@@ -1541,13 +1585,13 @@ void named_arguments() : {
       jj_la1_init_2();\r
    }\r
    private static void jj_la1_init_0() {\r
-      jj_la1_0 = new int[] {0x100000,0x80001040,0x100000,0x80001040,0x0,0x0,0x400000,0x200,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x80001040,0x0,0x200000,0x200000,0x80001040,0x0,0x0,0x80001040,0x0,0x80001040,0x0,0x0,0x0,0x0,0x0,0x0,};\r
+      jj_la1_0 = new int[] {0x100000,0x80001040,0x100000,0x80001040,0x0,0x0,0x400000,0x200,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x80001040,0x0,0x200000,0x200000,0x80001040,0x0,0x0,0x80001040,0x0,0x80001040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};\r
    }\r
    private static void jj_la1_init_1() {\r
-      jj_la1_1 = new int[] {0x0,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x50000008,0x0,0x0,0x0,0x0,0x0,0x5000000a,0x0,0x0,0x0,0x5000000a,0x0,0x200,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,};\r
+      jj_la1_1 = new int[] {0x0,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x50000008,0x0,0x0,0x0,0x0,0x0,0x5000000a,0x0,0x0,0x0,0x5000000a,0x0,0x200,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,};\r
    }\r
    private static void jj_la1_init_2() {\r
-      jj_la1_2 = new int[] {0x0,0x1f00f001,0x0,0x1f00f001,0x8,0x8,0x0,0x0,0x0,0xfc0,0xfc0,0xf000,0xf000,0xf000,0xf0000,0x300000,0x300000,0xf0000,0x10,0x1c000000,0x3000001,0x3000000,0x3000000,0x4,0x1,0x4,0x1f00f001,0x20,0x20,0x20,0x1f00f001,0x20,0x0,0x1f00f001,0x20,0x1f00f001,0x20,0x20,0x8,0x8,0xb000000,0xb000000,};\r
+      jj_la1_2 = new int[] {0x0,0x1f00f001,0x0,0x1f00f001,0x8,0x8,0x0,0x0,0x0,0xfc0,0xfc0,0xf000,0xf000,0xf000,0xf0000,0x300000,0x300000,0xf0000,0x10,0x1c000000,0x3000001,0x3000000,0x3000000,0x4,0x1,0x4,0x1f00f001,0x20,0x20,0x20,0x1f00f001,0x20,0x0,0x1f00f001,0x20,0x1f00f001,0x20,0x20,0x8,0x20,0x8,0xb000000,0xb000000,};\r
    }\r
   final private JJCalls[] jj_2_rtns = new JJCalls[3];\r
   private boolean jj_rescan = false;\r
@@ -1564,7 +1608,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 42; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 43; i++) jj_la1[i] = -1;\r
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();\r
   }\r
 \r
@@ -1579,7 +1623,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 42; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 43; i++) jj_la1[i] = -1;\r
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();\r
   }\r
 \r
@@ -1590,7 +1634,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 42; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 43; i++) jj_la1[i] = -1;\r
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();\r
   }\r
 \r
@@ -1601,7 +1645,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 42; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 43; i++) jj_la1[i] = -1;\r
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();\r
   }\r
 \r
@@ -1611,7 +1655,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 42; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 43; i++) jj_la1[i] = -1;\r
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();\r
   }\r
 \r
@@ -1621,7 +1665,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 42; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 43; i++) jj_la1[i] = -1;\r
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();\r
   }\r
 \r
@@ -1738,7 +1782,7 @@ void named_arguments() : {
       la1tokens[jj_kind] = true;\r
       jj_kind = -1;\r
     }\r
-    for (int i = 0; i < 42; i++) {\r
+    for (int i = 0; i < 43; i++) {\r
       if (jj_la1[i] == jj_gen) {\r
         for (int j = 0; j < 32; j++) {\r
           if ((jj_la1_0[i] & (1<<j)) != 0) {\r
index e3884cf9580f0e0404b6892c2cec104dd51f7cf4..ce3aa44a22d86d2c7559263448355fa14c9954c8 100644 (file)
@@ -398,17 +398,29 @@ void subscript(List<Token> currentRange) : {
            rangeToken.endLine = token.endLine;\r
            currentRange.add(rangeToken);\r
     }\r
-       | rangeIndex(rangeToken, true) ( ":" rangeIndex(rangeToken, false))?    {\r
+       | rangeIndex(rangeToken, true, ":") ( ":" rangeIndex(rangeToken, false, ":"))?  {\r
            rangeToken.endColumn = token.endColumn;\r
            rangeToken.endLine = token.endLine;\r
                currentRange.add(rangeToken);\r
        }\r
+       | "{"\r
+       {\r          rangeToken.image = rangeToken.image + token.image;\r
+       }\r
+               rangeIndex(rangeToken, true, ",") ( "," rangeIndex(rangeToken, false, ","))*\r
+       {\r
+           rangeToken.endColumn = token.endColumn;\r
+           rangeToken.endLine = token.endLine;\r
+               currentRange.add(rangeToken);\r
+       }\r
+               "}"\r
+       {\r              rangeToken.image = rangeToken.image + token.image;\r
+       }\r
 }\r
 \r
-void rangeIndex(Token rangeToken, boolean first) : {\r
+void rangeIndex(Token rangeToken, boolean first, String delim) : {\r
   Token identToken = null;\r
   if(!first)\r
-       rangeToken.image = rangeToken.image + ":";\r
+       rangeToken.image = rangeToken.image + delim;\r
 } {\r   <UNSIGNED_INTEGER>\r     {\r
                rangeToken.image = rangeToken.image + token.image;  \r   }\r
        | identToken = ident()\r