]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
A bug fix in the Sysdyn Expression parser (refs #5267).
authormiettinen <miettinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 8 Sep 2014 05:55:21 +0000 (05:55 +0000)
committermiettinen <miettinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 8 Sep 2014 05:55:21 +0000 (05:55 +0000)
git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@30218 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 4c9293977acc6cef01fdcf5db63d7d9f7add89c8..88dd5eb53ec3943a0fcbd350efc3d05e688dbdf1 100644 (file)
@@ -684,18 +684,31 @@ public class ExpressionParser implements ExpressionParserConstants {
           name();\r
           jj_consume_token(60);\r
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case 69:\r
-            jj_consume_token(69);\r
+          case IDENT:\r
+          case QIDENT:\r
             named_argument();\r
+            label_8:\r
+            while (true) {\r
+              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+              case 69:\r
+                ;\r
+                break;\r
+              default:\r
+                jj_la1[28] = jj_gen;\r
+                break label_8;\r
+              }\r
+              jj_consume_token(69);\r
+              named_argument();\r
+            }\r
             break;\r
           default:\r
-            jj_la1[28] = jj_gen;\r
+            jj_la1[29] = jj_gen;\r
             ;\r
           }\r
           jj_consume_token(61);\r
           break;\r
         default:\r
-          jj_la1[29] = jj_gen;\r
+          jj_la1[30] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -712,18 +725,18 @@ public class ExpressionParser implements ExpressionParserConstants {
             for_indices();\r
             break;\r
           default:\r
-            jj_la1[30] = jj_gen;\r
+            jj_la1[31] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
           break;\r
         default:\r
-          jj_la1[31] = jj_gen;\r
+          jj_la1[32] = jj_gen;\r
           ;\r
         }\r
         break;\r
       default:\r
-        jj_la1[32] = jj_gen;\r
+        jj_la1[33] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -732,15 +745,15 @@ public class ExpressionParser implements ExpressionParserConstants {
 \r
   final public void for_indices() throws ParseException {\r
     for_index();\r
-    label_8:\r
+    label_9:\r
     while (true) {\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 69:\r
         ;\r
         break;\r
       default:\r
-        jj_la1[33] = jj_gen;\r
-        break label_8;\r
+        jj_la1[34] = jj_gen;\r
+        break label_9;\r
       }\r
       jj_consume_token(69);\r
       for_index();\r
@@ -764,7 +777,7 @@ public class ExpressionParser implements ExpressionParserConstants {
                   forRanges.add(forRange);\r
       break;\r
     default:\r
-      jj_la1[34] = jj_gen;\r
+      jj_la1[35] = jj_gen;\r
       ;\r
     }\r
                 forIndex = false;\r
@@ -804,18 +817,18 @@ void named_arguments() : {
       expression();\r
       break;\r
     default:\r
-      jj_la1[35] = jj_gen;\r
+      jj_la1[36] = jj_gen;\r
       ;\r
     }\r
-    label_9:\r
+    label_10:\r
     while (true) {\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 69:\r
         ;\r
         break;\r
       default:\r
-        jj_la1[36] = jj_gen;\r
-        break label_9;\r
+        jj_la1[37] = jj_gen;\r
+        break label_10;\r
       }\r
       jj_consume_token(69);\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -839,7 +852,7 @@ void named_arguments() : {
         expression();\r
         break;\r
       default:\r
-        jj_la1[37] = jj_gen;\r
+        jj_la1[38] = jj_gen;\r
         ;\r
       }\r
     }\r
@@ -847,15 +860,15 @@ void named_arguments() : {
 \r
   final public void expression_list() throws ParseException {\r
     expression();\r
-    label_10:\r
+    label_11:\r
     while (true) {\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 69:\r
         ;\r
         break;\r
       default:\r
-        jj_la1[38] = jj_gen;\r
-        break label_10;\r
+        jj_la1[39] = jj_gen;\r
+        break label_11;\r
       }\r
       jj_consume_token(69);\r
       expression();\r
@@ -870,15 +883,15 @@ void named_arguments() : {
         currentRange = new ArrayList<Token>();\r
     jj_consume_token(64);\r
     subscript(currentRange);\r
-    label_11:\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_11;\r
+        jj_la1[40] = jj_gen;\r
+        break label_12;\r
       }\r
       jj_consume_token(69);\r
       subscript(currentRange);\r
@@ -897,7 +910,7 @@ void named_arguments() : {
             currentRange.add(token);\r
       break;\r
     default:\r
-      jj_la1[42] = jj_gen;\r
+      jj_la1[43] = jj_gen;\r
       if (jj_2_3(2147483647)) {\r
         functionCall = null;\r
         name();\r
@@ -919,7 +932,7 @@ void named_arguments() : {
             rangeIndex(rangeToken, false, ":");\r
             break;\r
           default:\r
-            jj_la1[40] = jj_gen;\r
+            jj_la1[41] = jj_gen;\r
             ;\r
           }\r
             rangeToken.endColumn = token.endColumn;\r
@@ -930,15 +943,15 @@ void named_arguments() : {
           jj_consume_token(62);\r
             rangeToken.image = rangeToken.image + token.image;\r
           rangeIndex(rangeToken, true, ",");\r
-          label_12:\r
+          label_13:\r
           while (true) {\r
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
             case 69:\r
               ;\r
               break;\r
             default:\r
-              jj_la1[41] = jj_gen;\r
-              break label_12;\r
+              jj_la1[42] = jj_gen;\r
+              break label_13;\r
             }\r
             jj_consume_token(69);\r
             rangeIndex(rangeToken, false, ",");\r
@@ -950,7 +963,7 @@ void named_arguments() : {
                 rangeToken.image = rangeToken.image + token.image;\r
           break;\r
         default:\r
-          jj_la1[43] = jj_gen;\r
+          jj_la1[44] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -973,7 +986,7 @@ void named_arguments() : {
                 rangeToken.image = rangeToken.image + identToken;\r
       break;\r
     default:\r
-      jj_la1[44] = jj_gen;\r
+      jj_la1[45] = jj_gen;\r
       jj_consume_token(-1);\r
       throw new ParseException();\r
     }\r
@@ -1000,30 +1013,30 @@ void named_arguments() : {
     finally { jj_save(2, xla); }\r
   }\r
 \r
-  private boolean jj_3R_31() {\r
+  private boolean jj_3R_32() {\r
     if (jj_scan_token(9)) return true;\r
-    if (jj_3R_30()) return true;\r
+    if (jj_3R_31()) 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
     return false;\r
   }\r
 \r
-  private boolean jj_3R_33() {\r
+  private boolean jj_3R_34() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_35()) jj_scanpos = xsp;\r
-    if (jj_3R_36()) return true;\r
+    if (jj_3R_36()) jj_scanpos = xsp;\r
+    if (jj_3R_37()) return true;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_37()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_38()) { 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(70)) {\r
@@ -1045,445 +1058,445 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_26() {\r
+  private boolean jj_3R_27() {\r
     if (jj_scan_token(67)) return true;\r
-    if (jj_3R_25()) return true;\r
+    if (jj_3R_26()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_29()) jj_scanpos = xsp;\r
+    if (jj_3R_30()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_28() {\r
+  private boolean jj_3R_29() {\r
     if (jj_scan_token(22)) return true;\r
-    if (jj_3R_27()) return true;\r
+    if (jj_3R_28()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_83() {\r
+  private boolean jj_3R_85() {\r
     if (jj_scan_token(41)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_32() {\r
-    if (jj_3R_33()) return true;\r
+  private boolean jj_3R_33() {\r
+    if (jj_3R_34()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_34()) jj_scanpos = xsp;\r
+    if (jj_3R_35()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_30() {\r
+  private boolean jj_3R_31() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(12)) jj_scanpos = xsp;\r
-    if (jj_3R_32()) return true;\r
+    if (jj_3R_33()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_80() {\r
+  private boolean jj_3R_82() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_79()) return true;\r
+    if (jj_3R_81()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_27() {\r
-    if (jj_3R_30()) return true;\r
+  private boolean jj_3R_28() {\r
+    if (jj_3R_31()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_31()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_32()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_64() {\r
+  private boolean jj_3R_65() {\r
     if (jj_scan_token(26)) return true;\r
-    if (jj_3R_13()) return true;\r
+    if (jj_3R_14()) return true;\r
     if (jj_scan_token(60)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_68()) jj_scanpos = xsp;\r
+    if (jj_3R_69()) jj_scanpos = xsp;\r
     if (jj_scan_token(61)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_57() {\r
+  private boolean jj_3R_58() {\r
     if (jj_scan_token(66)) 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_25() {\r
-    if (jj_3R_27()) return true;\r
+  private boolean jj_3R_26() {\r
+    if (jj_3R_28()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_28()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_29()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_79() {\r
-    if (jj_3R_15()) return true;\r
+  private boolean jj_3R_81() {\r
+    if (jj_3R_16()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_83()) jj_scanpos = xsp;\r
+    if (jj_3R_85()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_23() {\r
-    if (jj_3R_25()) return true;\r
+  private boolean jj_3R_24() {\r
+    if (jj_3R_26()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_26()) jj_scanpos = xsp;\r
+    if (jj_3R_27()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
   private boolean jj_3_2() {\r
-    if (jj_3R_14()) return true;\r
+    if (jj_3R_15()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_75() {\r
-    if (jj_3R_79()) return true;\r
+  private boolean jj_3R_77() {\r
+    if (jj_3R_81()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_80()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_82()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_21() {\r
+  private boolean jj_3R_22() {\r
     if (jj_scan_token(31)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     if (jj_scan_token(28)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_24()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_25()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(15)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_63() {\r
-    if (jj_3R_17()) return true;\r
+  private boolean jj_3R_64() {\r
+    if (jj_3R_18()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_17() {\r
+  private boolean jj_3R_18() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_20()) {\r
+    if (jj_3R_21()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_21()) return true;\r
+    if (jj_3R_22()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_20() {\r
-    if (jj_3R_23()) return true;\r
+  private boolean jj_3R_21() {\r
+    if (jj_3R_24()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_60() {\r
+  private boolean jj_3R_61() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_63()) {\r
+    if (jj_3R_64()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_64()) return true;\r
+    if (jj_3R_65()) return true;\r
     }\r
     xsp = jj_scanpos;\r
-    if (jj_3R_65()) jj_scanpos = xsp;\r
+    if (jj_3R_66()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_54() {\r
+  private boolean jj_3R_55() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_59()) {\r
+    if (jj_3R_60()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_60()) return true;\r
+    if (jj_3R_61()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_59() {\r
-    if (jj_3R_14()) return true;\r
+  private boolean jj_3R_60() {\r
+    if (jj_3R_15()) 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_55() {\r
-    if (jj_3R_54()) return true;\r
+  private boolean jj_3R_56() {\r
+    if (jj_3R_55()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_50() {\r
+  private boolean jj_3R_51() {\r
     if (jj_scan_token(60)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_55()) jj_scanpos = xsp;\r
+    if (jj_3R_56()) jj_scanpos = xsp;\r
     if (jj_scan_token(61)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_56() {\r
-    if (jj_3R_61()) return true;\r
+  private boolean jj_3R_57() {\r
+    if (jj_3R_62()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_78() {\r
+  private boolean jj_3R_80() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_76()) return true;\r
+    if (jj_3R_78()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_51() {\r
-    if (jj_3R_15()) return true;\r
+  private boolean jj_3R_52() {\r
+    if (jj_3R_16()) return true;\r
     Token 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
+    xsp = jj_scanpos;\r
+    if (jj_3R_58()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_77() {\r
+  private boolean jj_3R_79() {\r
     if (jj_scan_token(67)) return true;\r
-    if (jj_3R_76()) return true;\r
+    if (jj_3R_78()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_16() {\r
+  private boolean jj_3R_17() {\r
     if (jj_scan_token(66)) return true;\r
-    if (jj_3R_13()) return true;\r
+    if (jj_3R_14()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_82() {\r
-    if (jj_3R_15()) return true;\r
+  private boolean jj_3R_84() {\r
+    if (jj_3R_16()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_81() {\r
+  private boolean jj_3R_71() {\r
+    if (jj_scan_token(21)) return true;\r
+    if (jj_3R_77()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_83() {\r
     if (jj_scan_token(UNSIGNED_INTEGER)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_13() {\r
-    if (jj_3R_15()) return true;\r
+  private boolean jj_3R_14() {\r
+    if (jj_3R_16()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_16()) jj_scanpos = xsp;\r
+    if (jj_3R_17()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_76() {\r
+  private boolean jj_3R_78() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_81()) {\r
+    if (jj_3R_83()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_82()) return true;\r
+    if (jj_3R_84()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_19() {\r
+  private boolean jj_3R_20() {\r
     if (jj_scan_token(QIDENT)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_70() {\r
-    if (jj_scan_token(21)) return true;\r
-    if (jj_3R_75()) return true;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_53() {\r
+  private boolean jj_3R_54() {\r
     if (jj_scan_token(68)) return true;\r
-    if (jj_3R_52()) return true;\r
+    if (jj_3R_53()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_74() {\r
+  private boolean jj_3R_75() {\r
     if (jj_scan_token(62)) return true;\r
-    if (jj_3R_76()) return true;\r
+    if (jj_3R_78()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_78()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_80()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(63)) return true;\r
     return false;\r
   }\r
 \r
   private boolean jj_3_3() {\r
-    if (jj_3R_13()) return true;\r
+    if (jj_3R_14()) return true;\r
     if (jj_scan_token(60)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_67() {\r
+  private boolean jj_3R_66() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_70()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_71()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_68() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_66()) return true;\r
+    if (jj_3R_67()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_73() {\r
-    if (jj_3R_76()) return true;\r
+  private boolean jj_3R_70() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_55()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_74() {\r
+    if (jj_3R_78()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_77()) jj_scanpos = xsp;\r
+    if (jj_3R_79()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_22() {\r
-    if (jj_3R_15()) return true;\r
+  private boolean jj_3R_23() {\r
+    if (jj_3R_16()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_72() {\r
-    if (jj_3R_13()) return true;\r
-    if (jj_3R_50()) return true;\r
+  private boolean jj_3R_73() {\r
+    if (jj_3R_14()) return true;\r
+    if (jj_3R_51()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_15() {\r
+  private boolean jj_3R_16() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_18()) {\r
+    if (jj_3R_19()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_19()) return true;\r
+    if (jj_3R_20()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_18() {\r
+  private boolean jj_3R_19() {\r
     if (jj_scan_token(IDENT)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_22()) jj_scanpos = xsp;\r
+    if (jj_3R_23()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
   private boolean jj_3_1() {\r
-    if (jj_3R_13()) return true;\r
+    if (jj_3R_14()) return true;\r
     if (jj_scan_token(60)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_49() {\r
+  private boolean jj_3R_50() {\r
     if (jj_scan_token(62)) return true;\r
-    if (jj_3R_54()) return true;\r
+    if (jj_3R_55()) return true;\r
     if (jj_scan_token(63)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_66() {\r
+  private boolean jj_3R_67() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_71()) {\r
-    jj_scanpos = xsp;\r
     if (jj_3R_72()) {\r
     jj_scanpos = xsp;\r
     if (jj_3R_73()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_74()) return true;\r
+    if (jj_3R_74()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_75()) return true;\r
     }\r
     }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_71() {\r
+  private boolean jj_3R_72() {\r
     if (jj_scan_token(67)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_48() {\r
+  private boolean jj_3R_49() {\r
     if (jj_scan_token(64)) return true;\r
-    if (jj_3R_52()) return true;\r
+    if (jj_3R_53()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_53()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_54()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(65)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_47() {\r
+  private boolean jj_3R_48() {\r
     if (jj_scan_token(60)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     if (jj_scan_token(61)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_65() {\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_69()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_70()) return true;\r
-    }\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_69() {\r
-    if (jj_scan_token(69)) return true;\r
-    if (jj_3R_54()) return true;\r
+  private boolean jj_3R_47() {\r
+    if (jj_3R_52()) return true;\r
     return false;\r
   }\r
 \r
   private boolean jj_3R_46() {\r
+    if (jj_3R_14()) return true;\r
     if (jj_3R_51()) return true;\r
     return false;\r
   }\r
 \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_58() {\r
+  private boolean jj_3R_59() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) 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(84)) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(85)) return true;\r
     }\r
-    if (jj_3R_42()) return true;\r
+    if (jj_3R_43()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_61() {\r
+  private boolean jj_3R_62() {\r
     if (jj_scan_token(64)) return true;\r
-    if (jj_3R_66()) return true;\r
+    if (jj_3R_67()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_67()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_68()) { jj_scanpos = xsp; break; }\r
     }\r
     if (jj_scan_token(65)) 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(92)) {\r
@@ -1496,8 +1509,6 @@ void named_arguments() : {
     jj_scanpos = xsp;\r
     if (jj_scan_token(33)) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_45()) {\r
-    jj_scanpos = xsp;\r
     if (jj_3R_46()) {\r
     jj_scanpos = xsp;\r
     if (jj_3R_47()) {\r
@@ -1506,6 +1517,8 @@ void named_arguments() : {
     jj_scanpos = xsp;\r
     if (jj_3R_49()) {\r
     jj_scanpos = xsp;\r
+    if (jj_3R_50()) {\r
+    jj_scanpos = xsp;\r
     if (jj_scan_token(35)) return true;\r
     }\r
     }\r
@@ -1520,19 +1533,25 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_29() {\r
+  private boolean jj_3R_76() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_15()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_30() {\r
     if (jj_scan_token(67)) return true;\r
-    if (jj_3R_25()) return true;\r
+    if (jj_3R_26()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_41() {\r
-    if (jj_3R_44()) return true;\r
-    if (jj_3R_40()) return true;\r
+  private boolean jj_3R_42() {\r
+    if (jj_3R_45()) return true;\r
+    if (jj_3R_41()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_44() {\r
+  private boolean jj_3R_45() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(80)) {\r
@@ -1548,74 +1567,78 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3R_37() {\r
-    if (jj_3R_39()) return true;\r
-    if (jj_3R_36()) return true;\r
+  private boolean jj_3R_38() {\r
+    if (jj_3R_40()) return true;\r
+    if (jj_3R_37()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_34() {\r
-    if (jj_3R_38()) return true;\r
-    if (jj_3R_33()) return true;\r
+  private boolean jj_3R_35() {\r
+    if (jj_3R_39()) return true;\r
+    if (jj_3R_34()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_40() {\r
-    if (jj_3R_42()) return true;\r
+  private boolean jj_3R_41() {\r
+    if (jj_3R_43()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_43()) jj_scanpos = xsp;\r
+    if (jj_3R_44()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_52() {\r
-    if (jj_3R_17()) return true;\r
+  private boolean jj_3R_53() {\r
+    if (jj_3R_18()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_58()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_59()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_62() {\r
+  private boolean jj_3R_63() {\r
     if (jj_scan_token(69)) return true;\r
-    if (jj_3R_54()) return true;\r
+    if (jj_3R_55()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_36() {\r
-    if (jj_3R_40()) return true;\r
+  private boolean jj_3R_37() {\r
+    if (jj_3R_41()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_41()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_42()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_24() {\r
+  private boolean jj_3R_25() {\r
     if (jj_scan_token(20)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     if (jj_scan_token(28)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_14() {\r
-    if (jj_3R_15()) return true;\r
+  private boolean jj_3R_15() {\r
+    if (jj_3R_16()) return true;\r
     if (jj_scan_token(86)) return true;\r
-    if (jj_3R_17()) return true;\r
+    if (jj_3R_18()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_68() {\r
-    if (jj_scan_token(69)) return true;\r
-    if (jj_3R_14()) return true;\r
+  private boolean jj_3R_69() {\r
+    if (jj_3R_15()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_76()) { jj_scanpos = xsp; break; }\r
+    }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_39() {\r
+  private boolean jj_3R_40() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(76)) {\r
@@ -1642,7 +1665,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[45];\r
+  final private int[] jj_la1 = new int[46];\r
   static private int[] jj_la1_0;\r
   static private int[] jj_la1_1;\r
   static private int[] jj_la1_2;\r
@@ -1652,13 +1675,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,0x84001040,0x0,0x0,0x84001040,0x200000,0x200000,0x84001040,0x0,0x0,0x80001040,0x0,0x80001040,0x0,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,0x84001040,0x0,0x0,0x0,0x84001040,0x200000,0x200000,0x84001040,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,0x5000000a,0x0,0x0,0x5000000a,0x0,0x200,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x40000000,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,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,0x1f00f001,0x20,0x20,0x1f00f001,0x20,0x0,0x1f00f001,0x20,0x1f00f001,0x20,0x20,0x8,0x20,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,0x3000000,0x1f00f001,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
@@ -1675,7 +1698,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 45; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 46; 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
@@ -1690,7 +1713,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 45; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 46; 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
@@ -1701,7 +1724,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 45; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 46; 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
@@ -1712,7 +1735,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 45; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 46; 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
@@ -1722,7 +1745,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 45; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 46; 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
@@ -1732,7 +1755,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 45; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 46; 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
@@ -1849,7 +1872,7 @@ void named_arguments() : {
       la1tokens[jj_kind] = true;\r
       jj_kind = -1;\r
     }\r
-    for (int i = 0; i < 45; i++) {\r
+    for (int i = 0; i < 46; 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 d7655ebecbf7483d74b6f274000c34c8524385c7..18e77d189e8114644f4f2877759580d7a9854e80 100644 (file)
@@ -315,7 +315,7 @@ void function_arguments() : {
        //expression [ "," function_arguments | for for_indices ]\r
        //| named_arguments\r
        LOOKAHEAD(named_argument()) named_argument()  ( "," function_arguments() )?\r
-       | (expression() | "function" name() "(" ( "," named_argument() )? ")" ) ( "," function_arguments() | "for" for_indices() )?\r
+       | (expression() | "function" name() "(" ( named_argument() ( "," named_argument() )* )? ")" ) ( "," function_arguments() | "for" for_indices() )?\r
        \r
 }\r
 \r