]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
Getting closer
authorvillberg <villberg@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 31 Mar 2014 07:49:26 +0000 (07:49 +0000)
committervillberg <villberg@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 31 Mar 2014 07:49:26 +0000 (07:49 +0000)
refs #4765

git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@29219 ac1ea38d-2e2b-0410-8846-a27921b304fc

fi.semantum.sysdyn.solver/src/fi/semantum/sysdyn/solver/parser/ModelParser.java
fi.semantum.sysdyn.solver/src/fi/semantum/sysdyn/solver/parser/ModelParserTokenManager.java
fi.semantum.sysdyn.solver/src/fi/semantum/sysdyn/solver/parser/ModelParserTreeConstants.java
fi.semantum.sysdyn.solver/src/fi/semantum/sysdyn/solver/parser/ModelicaParser.jj

index 828459b90607028cee18749387b061e67bbf8edb..99bdaaee3a952db76e2ba27c2b69aa2fdb38d912 100644 (file)
@@ -189,9 +189,11 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 34:\r
         jj_consume_token(34);\r
+                jjtn000.op = "class";\r
         break;\r
       case 7:\r
         jj_consume_token(7);\r
+                                                    jjtn000.op = "model";\r
         break;\r
       case 61:\r
         jj_consume_token(61);\r
@@ -293,21 +295,6 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         }\r
         comment();\r
       } else if (jj_2_3(3)) {\r
-        jj_consume_token(IDENT);\r
-        jj_consume_token(88);\r
-        jj_consume_token(40);\r
-        jj_consume_token(62);\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case IDENT:\r
-          enum_list();\r
-          break;\r
-        default:\r
-          jj_la1[10] = jj_gen;\r
-          ;\r
-        }\r
-        jj_consume_token(63);\r
-        comment();\r
-      } else if (jj_2_4(3)) {\r
         jj_consume_token(IDENT);\r
         jj_consume_token(88);\r
         jj_consume_token(58);\r
@@ -322,7 +309,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[11] = jj_gen;\r
+            jj_la1[10] = jj_gen;\r
             break label_2;\r
           }\r
           jj_consume_token(71);\r
@@ -330,29 +317,24 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         }\r
         jj_consume_token(63);\r
         comment();\r
-      } else {\r
+      } else if (jj_2_4(3)) {\r
+        jj_consume_token(IDENT);\r
+        jj_consume_token(88);\r
+        jj_consume_token(40);\r
+        jj_consume_token(62);\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case 55:\r
-          jj_consume_token(55);\r
-          jj_consume_token(IDENT);\r
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-          case 62:\r
-            class_modification();\r
-            break;\r
-          default:\r
-            jj_la1[12] = jj_gen;\r
-            ;\r
-          }\r
-          string_comment();\r
-          composition();\r
-          jj_consume_token(35);\r
-          jj_consume_token(IDENT);\r
+        case IDENT:\r
+          enum_list();\r
           break;\r
         default:\r
-          jj_la1[13] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
+          jj_la1[11] = jj_gen;\r
+          ;\r
         }\r
+        jj_consume_token(63);\r
+        comment();\r
+      } else {\r
+        jj_consume_token(-1);\r
+        throw new ParseException();\r
       }\r
     } catch (Throwable jjte000) {\r
       if (jjtc000) {\r
@@ -417,7 +399,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[14] = jj_gen;\r
+          jj_la1[12] = jj_gen;\r
           break label_3;\r
         }\r
         jj_consume_token(71);\r
@@ -520,7 +502,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[15] = jj_gen;\r
+          jj_la1[13] = jj_gen;\r
           break label_4;\r
         }\r
         if (jj_2_5(2)) {\r
@@ -540,7 +522,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             algorithm_section();\r
             break;\r
           default:\r
-            jj_la1[16] = jj_gen;\r
+            jj_la1[14] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
@@ -554,7 +536,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           language_specification();\r
           break;\r
         default:\r
-          jj_la1[17] = jj_gen;\r
+          jj_la1[15] = jj_gen;\r
           ;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -563,7 +545,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           external_function_call();\r
           break;\r
         default:\r
-          jj_la1[18] = jj_gen;\r
+          jj_la1[16] = jj_gen;\r
           ;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -571,13 +553,13 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           annotation();\r
           break;\r
         default:\r
-          jj_la1[19] = jj_gen;\r
+          jj_la1[17] = jj_gen;\r
           ;\r
         }\r
         jj_consume_token(70);\r
         break;\r
       default:\r
-        jj_la1[20] = jj_gen;\r
+        jj_la1[18] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -586,7 +568,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(70);\r
         break;\r
       default:\r
-        jj_la1[21] = jj_gen;\r
+        jj_la1[19] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -637,7 +619,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(88);\r
         break;\r
       default:\r
-        jj_la1[22] = jj_gen;\r
+        jj_la1[20] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(IDENT);\r
@@ -665,7 +647,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         expression_list();\r
         break;\r
       default:\r
-        jj_la1[23] = jj_gen;\r
+        jj_la1[21] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(63);\r
@@ -732,7 +714,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[24] = jj_gen;\r
+          jj_la1[22] = jj_gen;\r
           break label_5;\r
         }\r
         element();\r
@@ -768,9 +750,15 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 36:\r
         import_clause();\r
+                      jjtree.closeNodeScope(jjtn000, true);\r
+                      jjtc000 = false;\r
+                      {if (true) return jjtn000;}\r
         break;\r
       case 55:\r
         extends_clause();\r
+                       jjtree.closeNodeScope(jjtn000, true);\r
+                       jjtc000 = false;\r
+                       {if (true) return jjtn000;}\r
         break;\r
       case 5:\r
       case 7:\r
@@ -805,7 +793,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           jj_consume_token(8);\r
           break;\r
         default:\r
-          jj_la1[25] = jj_gen;\r
+          jj_la1[23] = jj_gen;\r
           ;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -813,23 +801,25 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           jj_consume_token(11);\r
           break;\r
         default:\r
-          jj_la1[26] = jj_gen;\r
+          jj_la1[24] = jj_gen;\r
           ;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case 51:\r
           jj_consume_token(51);\r
+                jjtn000.op = "inner";\r
           break;\r
         default:\r
-          jj_la1[27] = jj_gen;\r
+          jj_la1[25] = jj_gen;\r
           ;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
         case 27:\r
           jj_consume_token(27);\r
+                                                       jjtn000.op = "outer";\r
           break;\r
         default:\r
-          jj_la1[28] = jj_gen;\r
+          jj_la1[26] = jj_gen;\r
           ;\r
         }\r
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -885,7 +875,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             component_clause();\r
             break;\r
           default:\r
-            jj_la1[29] = jj_gen;\r
+            jj_la1[27] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
@@ -921,7 +911,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             component_clause();\r
             break;\r
           default:\r
-            jj_la1[30] = jj_gen;\r
+            jj_la1[28] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
@@ -931,12 +921,12 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             comment();\r
             break;\r
           default:\r
-            jj_la1[31] = jj_gen;\r
+            jj_la1[29] = jj_gen;\r
             ;\r
           }\r
           break;\r
         default:\r
-          jj_la1[32] = jj_gen;\r
+          jj_la1[30] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -945,7 +935,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       {if (true) return jjtn000;}\r
         break;\r
       default:\r
-        jj_la1[33] = jj_gen;\r
+        jj_la1[31] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -993,12 +983,12 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             jj_consume_token(82);\r
             break;\r
           default:\r
-            jj_la1[34] = jj_gen;\r
+            jj_la1[32] = jj_gen;\r
             ;\r
           }\r
           break;\r
         default:\r
-          jj_la1[35] = jj_gen;\r
+          jj_la1[33] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -1039,7 +1029,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         class_modification();\r
         break;\r
       default:\r
-        jj_la1[36] = jj_gen;\r
+        jj_la1[34] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1047,7 +1037,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         annotation();\r
         break;\r
       default:\r
-        jj_la1[37] = jj_gen;\r
+        jj_la1[35] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -1084,7 +1074,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         class_modification();\r
         break;\r
       default:\r
-        jj_la1[38] = jj_gen;\r
+        jj_la1[36] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -1125,7 +1115,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         array_subscripts();\r
         break;\r
       default:\r
-        jj_la1[39] = jj_gen;\r
+        jj_la1[37] = jj_gen;\r
         ;\r
       }\r
       componentList = component_list();\r
@@ -1180,13 +1170,13 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           jj_consume_token(23);\r
           break;\r
         default:\r
-          jj_la1[40] = jj_gen;\r
+          jj_la1[38] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
         break;\r
       default:\r
-        jj_la1[41] = jj_gen;\r
+        jj_la1[39] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1207,13 +1197,13 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                                                                                                        jjtn000.op = "constant";\r
           break;\r
         default:\r
-          jj_la1[42] = jj_gen;\r
+          jj_la1[40] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
         break;\r
       default:\r
-        jj_la1[43] = jj_gen;\r
+        jj_la1[41] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1229,13 +1219,13 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                     type = InterfaceVariableType.INPUT; jjtn000.op = "input";\r
           break;\r
         default:\r
-          jj_la1[44] = jj_gen;\r
+          jj_la1[42] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
         break;\r
       default:\r
-        jj_la1[45] = jj_gen;\r
+        jj_la1[43] = jj_gen;\r
         ;\r
       }\r
       jjtree.closeNodeScope(jjtn000, true);\r
@@ -1299,7 +1289,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[46] = jj_gen;\r
+          jj_la1[44] = jj_gen;\r
           break label_6;\r
         }\r
         jj_consume_token(71);\r
@@ -1345,7 +1335,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         conditional_attribute();\r
         break;\r
       default:\r
-        jj_la1[47] = jj_gen;\r
+        jj_la1[45] = jj_gen;\r
         ;\r
       }\r
       ret.description = comment();\r
@@ -1418,7 +1408,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         array_subscripts();\r
         break;\r
       default:\r
-        jj_la1[48] = jj_gen;\r
+        jj_la1[46] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1428,7 +1418,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         ret.optional = modification();\r
         break;\r
       default:\r
-        jj_la1[49] = jj_gen;\r
+        jj_la1[47] = jj_gen;\r
         ;\r
       }\r
           jjtree.closeNodeScope(jjtn000, true);\r
@@ -1472,7 +1462,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           expression();\r
           break;\r
         default:\r
-          jj_la1[50] = jj_gen;\r
+          jj_la1[48] = jj_gen;\r
           ;\r
         }\r
         break;\r
@@ -1487,7 +1477,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                               optional = true;\r
         break;\r
       default:\r
-        jj_la1[51] = jj_gen;\r
+        jj_la1[49] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -1533,7 +1523,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         argument_list();\r
         break;\r
       default:\r
-        jj_la1[52] = jj_gen;\r
+        jj_la1[50] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(63);\r
@@ -1572,7 +1562,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[53] = jj_gen;\r
+          jj_la1[51] = jj_gen;\r
           break label_7;\r
         }\r
         jj_consume_token(71);\r
@@ -1617,7 +1607,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         element_redeclaration();\r
         break;\r
       default:\r
-        jj_la1[54] = jj_gen;\r
+        jj_la1[52] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -1653,7 +1643,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(10);\r
         break;\r
       default:\r
-        jj_la1[55] = jj_gen;\r
+        jj_la1[53] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1661,7 +1651,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(11);\r
         break;\r
       default:\r
-        jj_la1[56] = jj_gen;\r
+        jj_la1[54] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1673,7 +1663,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         element_replaceable();\r
         break;\r
       default:\r
-        jj_la1[57] = jj_gen;\r
+        jj_la1[55] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -1712,7 +1702,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         modification();\r
         break;\r
       default:\r
-        jj_la1[58] = jj_gen;\r
+        jj_la1[56] = jj_gen;\r
         ;\r
       }\r
       string_comment();\r
@@ -1749,7 +1739,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(10);\r
         break;\r
       default:\r
-        jj_la1[59] = jj_gen;\r
+        jj_la1[57] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1757,7 +1747,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(11);\r
         break;\r
       default:\r
-        jj_la1[60] = jj_gen;\r
+        jj_la1[58] = jj_gen;\r
         ;\r
       }\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -1813,7 +1803,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           component_clause1();\r
           break;\r
         default:\r
-          jj_la1[61] = jj_gen;\r
+          jj_la1[59] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -1822,7 +1812,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         element_replaceable();\r
         break;\r
       default:\r
-        jj_la1[62] = jj_gen;\r
+        jj_la1[60] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -1883,7 +1873,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         component_clause1();\r
         break;\r
       default:\r
-        jj_la1[63] = jj_gen;\r
+        jj_la1[61] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -1892,7 +1882,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         constraining_clause();\r
         break;\r
       default:\r
-        jj_la1[64] = jj_gen;\r
+        jj_la1[62] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -1988,7 +1978,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                       jjtn000.op = "initial";\r
         break;\r
       default:\r
-        jj_la1[65] = jj_gen;\r
+        jj_la1[63] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(45);\r
@@ -2034,7 +2024,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(46);\r
         break;\r
       default:\r
-        jj_la1[66] = jj_gen;\r
+        jj_la1[64] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(4);\r
@@ -2053,7 +2043,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[67] = jj_gen;\r
+          jj_la1[65] = jj_gen;\r
           break label_9;\r
         }\r
         statement();\r
@@ -2137,7 +2127,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           function_call_args();\r
           break;\r
         default:\r
-          jj_la1[68] = jj_gen;\r
+          jj_la1[66] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -2187,7 +2177,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           function_call_args();\r
           break;\r
         default:\r
-          jj_la1[69] = jj_gen;\r
+          jj_la1[67] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -2219,7 +2209,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         when_statement();\r
         break;\r
       default:\r
-        jj_la1[70] = jj_gen;\r
+        jj_la1[68] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -2282,7 +2272,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[71] = jj_gen;\r
+          jj_la1[69] = jj_gen;\r
           break label_10;\r
         }\r
         equation();\r
@@ -2295,7 +2285,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[72] = jj_gen;\r
+          jj_la1[70] = jj_gen;\r
           break label_11;\r
         }\r
         jj_consume_token(20);\r
@@ -2329,7 +2319,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[73] = jj_gen;\r
+            jj_la1[71] = jj_gen;\r
             break label_12;\r
           }\r
           equation();\r
@@ -2367,7 +2357,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[74] = jj_gen;\r
+            jj_la1[72] = jj_gen;\r
             break label_13;\r
           }\r
           equation();\r
@@ -2375,7 +2365,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         }\r
         break;\r
       default:\r
-        jj_la1[75] = jj_gen;\r
+        jj_la1[73] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(35);\r
@@ -2509,7 +2499,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[76] = jj_gen;\r
+          jj_la1[74] = jj_gen;\r
           break label_14;\r
         }\r
         then_statement();\r
@@ -2522,7 +2512,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[77] = jj_gen;\r
+          jj_la1[75] = jj_gen;\r
           break label_15;\r
         }\r
         jj_consume_token(20);\r
@@ -2543,7 +2533,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[78] = jj_gen;\r
+            jj_la1[76] = jj_gen;\r
             break label_16;\r
           }\r
           elseif_statement();\r
@@ -2568,7 +2558,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[79] = jj_gen;\r
+            jj_la1[77] = jj_gen;\r
             break label_17;\r
           }\r
           else_statement();\r
@@ -2576,7 +2566,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         }\r
         break;\r
       default:\r
-        jj_la1[80] = jj_gen;\r
+        jj_la1[78] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(35);\r
@@ -2639,7 +2629,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[81] = jj_gen;\r
+          jj_la1[79] = jj_gen;\r
           break label_18;\r
         }\r
         equation();\r
@@ -2692,7 +2682,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[82] = jj_gen;\r
+          jj_la1[80] = jj_gen;\r
           break label_19;\r
         }\r
         statement();\r
@@ -2735,7 +2725,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[83] = jj_gen;\r
+          jj_la1[81] = jj_gen;\r
           break label_20;\r
         }\r
         jj_consume_token(71);\r
@@ -2777,7 +2767,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         expression();\r
         break;\r
       default:\r
-        jj_la1[84] = jj_gen;\r
+        jj_la1[82] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -2825,7 +2815,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[85] = jj_gen;\r
+          jj_la1[83] = jj_gen;\r
           break label_21;\r
         }\r
         statement();\r
@@ -2891,7 +2881,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[86] = jj_gen;\r
+          jj_la1[84] = jj_gen;\r
           break label_22;\r
         }\r
         equation();\r
@@ -2904,7 +2894,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[87] = jj_gen;\r
+          jj_la1[85] = jj_gen;\r
           break label_23;\r
         }\r
         jj_consume_token(25);\r
@@ -2938,7 +2928,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[88] = jj_gen;\r
+            jj_la1[86] = jj_gen;\r
             break label_24;\r
           }\r
           equation();\r
@@ -2992,7 +2982,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[89] = jj_gen;\r
+          jj_la1[87] = jj_gen;\r
           break label_25;\r
         }\r
         statement();\r
@@ -3005,7 +2995,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[90] = jj_gen;\r
+          jj_la1[88] = jj_gen;\r
           break label_26;\r
         }\r
         jj_consume_token(25);\r
@@ -3026,7 +3016,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[91] = jj_gen;\r
+            jj_la1[89] = jj_gen;\r
             break label_27;\r
           }\r
           statement();\r
@@ -3130,7 +3120,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             ;\r
             break;\r
           default:\r
-            jj_la1[92] = jj_gen;\r
+            jj_la1[90] = jj_gen;\r
             break label_28;\r
           }\r
           jj_consume_token(20);\r
@@ -3143,7 +3133,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(0);\r
         break;\r
       default:\r
-        jj_la1[93] = jj_gen;\r
+        jj_la1[91] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -3185,7 +3175,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[94] = jj_gen;\r
+          jj_la1[92] = jj_gen;\r
           break label_29;\r
         }\r
         jj_consume_token(20);\r
@@ -3247,7 +3237,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         if_expression();\r
         break;\r
       default:\r
-        jj_la1[95] = jj_gen;\r
+        jj_la1[93] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -3289,12 +3279,12 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           logical_expression();\r
           break;\r
         default:\r
-          jj_la1[96] = jj_gen;\r
+          jj_la1[94] = jj_gen;\r
           ;\r
         }\r
         break;\r
       default:\r
-        jj_la1[97] = jj_gen;\r
+        jj_la1[95] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -3332,7 +3322,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[98] = jj_gen;\r
+          jj_la1[96] = jj_gen;\r
           break label_30;\r
         }\r
         jj_consume_token(22);\r
@@ -3373,7 +3363,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[99] = jj_gen;\r
+          jj_la1[97] = jj_gen;\r
           break label_31;\r
         }\r
         jj_consume_token(9);\r
@@ -3411,7 +3401,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(12);\r
         break;\r
       default:\r
-        jj_la1[100] = jj_gen;\r
+        jj_la1[98] = jj_gen;\r
         ;\r
       }\r
       relation();\r
@@ -3454,7 +3444,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         arithmetic_expression();\r
         break;\r
       default:\r
-        jj_la1[101] = jj_gen;\r
+        jj_la1[99] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -3522,7 +3512,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                                                                                                                                                                jjtn000.op = "<>";\r
         break;\r
       default:\r
-        jj_la1[102] = jj_gen;\r
+        jj_la1[100] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -3547,7 +3537,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         add_op();\r
         break;\r
       default:\r
-        jj_la1[103] = jj_gen;\r
+        jj_la1[101] = jj_gen;\r
         ;\r
       }\r
       term();\r
@@ -3561,7 +3551,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[104] = jj_gen;\r
+          jj_la1[102] = jj_gen;\r
           break label_32;\r
         }\r
         add_op();\r
@@ -3614,7 +3604,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(81);\r
         break;\r
       default:\r
-        jj_la1[105] = jj_gen;\r
+        jj_la1[103] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -3642,7 +3632,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[106] = jj_gen;\r
+          jj_la1[104] = jj_gen;\r
           break label_33;\r
         }\r
         mul_op();\r
@@ -3690,12 +3680,15 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         break;\r
       case 84:\r
         jj_consume_token(84);\r
+                                                                 jjtree.closeNodeScope(jjtn000, true);\r
+                                                                 jjtc000 = false;\r
+                                                                 jjtn000.op = ".*";\r
         break;\r
       case 85:\r
         jj_consume_token(85);\r
         break;\r
       default:\r
-        jj_la1[107] = jj_gen;\r
+        jj_la1[105] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -3716,22 +3709,11 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 86:\r
       case 87:\r
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
-        case 86:\r
-          jj_consume_token(86);\r
-          break;\r
-        case 87:\r
-          jj_consume_token(87);\r
-          primary();\r
-          break;\r
-        default:\r
-          jj_la1[108] = jj_gen;\r
-          jj_consume_token(-1);\r
-          throw new ParseException();\r
-        }\r
+        factor_op();\r
+        primary();\r
         break;\r
       default:\r
-        jj_la1[109] = jj_gen;\r
+        jj_la1[106] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -3755,6 +3737,37 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     }\r
   }\r
 \r
+  final public void factor_op() throws ParseException {\r
+                    /*@bgen(jjtree) factor_op */\r
+  SimpleNode jjtn000 = new SimpleNode(JJTFACTOR_OP);\r
+  boolean jjtc000 = true;\r
+  jjtree.openNodeScope(jjtn000);\r
+    try {\r
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+      case 86:\r
+        jj_consume_token(86);\r
+          jjtree.closeNodeScope(jjtn000, true);\r
+          jjtc000 = false;\r
+          jjtn000.op = "^";\r
+        break;\r
+      case 87:\r
+        jj_consume_token(87);\r
+                                      jjtree.closeNodeScope(jjtn000, true);\r
+                                      jjtc000 = false;\r
+                                      jjtn000.op = ".^";\r
+        break;\r
+      default:\r
+        jj_la1[107] = jj_gen;\r
+        jj_consume_token(-1);\r
+        throw new ParseException();\r
+      }\r
+    } finally {\r
+      if (jjtc000) {\r
+        jjtree.closeNodeScope(jjtn000, true);\r
+      }\r
+    }\r
+  }\r
+\r
   final public void der_initial() throws ParseException {\r
                       /*@bgen(jjtree) der_initial */\r
   SimpleNode jjtn000 = new SimpleNode(JJTDER_INITIAL);\r
@@ -3776,7 +3789,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                                                                                         jjtn000.op = "initial";\r
         break;\r
       default:\r
-        jj_la1[110] = jj_gen;\r
+        jj_la1[108] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -3816,7 +3829,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[111] = jj_gen;\r
+          jj_la1[109] = jj_gen;\r
           break label_34;\r
         }\r
         jj_consume_token(70);\r
@@ -3911,7 +3924,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                jjtn000.op = token.image;\r
         break;\r
       default:\r
-        jj_la1[112] = jj_gen;\r
+        jj_la1[110] = jj_gen;\r
         if (jj_2_9(2147483647)) {\r
           der_initial();\r
         } else {\r
@@ -3937,7 +3950,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
             jj_consume_token(35);\r
             break;\r
           default:\r
-            jj_la1[113] = jj_gen;\r
+            jj_la1[111] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
@@ -3976,7 +3989,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
                 ret += ".";\r
         break;\r
       default:\r
-        jj_la1[114] = jj_gen;\r
+        jj_la1[112] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(IDENT);\r
@@ -3988,7 +4001,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[115] = jj_gen;\r
+          jj_la1[113] = jj_gen;\r
           break label_35;\r
         }\r
         jj_consume_token(68);\r
@@ -4018,7 +4031,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         jj_consume_token(68);\r
         break;\r
       default:\r
-        jj_la1[116] = jj_gen;\r
+        jj_la1[114] = jj_gen;\r
         ;\r
       }\r
       t = jj_consume_token(IDENT);\r
@@ -4028,7 +4041,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         array_subscripts();\r
         break;\r
       default:\r
-        jj_la1[117] = jj_gen;\r
+        jj_la1[115] = jj_gen;\r
         ;\r
       }\r
       label_36:\r
@@ -4038,7 +4051,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[118] = jj_gen;\r
+          jj_la1[116] = jj_gen;\r
           break label_36;\r
         }\r
         jj_consume_token(68);\r
@@ -4048,7 +4061,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           array_subscripts();\r
           break;\r
         default:\r
-          jj_la1[119] = jj_gen;\r
+          jj_la1[117] = jj_gen;\r
           ;\r
         }\r
       }\r
@@ -4103,7 +4116,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         function_arguments();\r
         break;\r
       default:\r
-        jj_la1[120] = jj_gen;\r
+        jj_la1[118] = jj_gen;\r
         ;\r
       }\r
       jj_consume_token(63);\r
@@ -4147,15 +4160,16 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           case 21:\r
             jj_consume_token(21);\r
             for_indices();\r
+                                                                                      jjtn000.op = "for";\r
             break;\r
           default:\r
-            jj_la1[121] = jj_gen;\r
+            jj_la1[119] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
           break;\r
         default:\r
-          jj_la1[122] = jj_gen;\r
+          jj_la1[120] = jj_gen;\r
           ;\r
         }\r
       } else {\r
@@ -4164,7 +4178,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           named_arguments();\r
           break;\r
         default:\r
-          jj_la1[123] = jj_gen;\r
+          jj_la1[121] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -4203,7 +4217,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         named_arguments();\r
         break;\r
       default:\r
-        jj_la1[124] = jj_gen;\r
+        jj_la1[122] = jj_gen;\r
         ;\r
       }\r
     } catch (Throwable jjte000) {\r
@@ -4286,7 +4300,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         expression();\r
         break;\r
       default:\r
-        jj_la1[125] = jj_gen;\r
+        jj_la1[123] = jj_gen;\r
         ;\r
       }\r
       label_37:\r
@@ -4296,7 +4310,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[126] = jj_gen;\r
+          jj_la1[124] = jj_gen;\r
           break label_37;\r
         }\r
         jj_consume_token(71);\r
@@ -4323,7 +4337,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           expression();\r
           break;\r
         default:\r
-          jj_la1[127] = jj_gen;\r
+          jj_la1[125] = jj_gen;\r
           ;\r
         }\r
       }\r
@@ -4362,7 +4376,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[128] = jj_gen;\r
+          jj_la1[126] = jj_gen;\r
           break label_38;\r
         }\r
         jj_consume_token(71);\r
@@ -4404,7 +4418,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[129] = jj_gen;\r
+          jj_la1[127] = jj_gen;\r
           break label_39;\r
         }\r
         jj_consume_token(71);\r
@@ -4467,7 +4481,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
         expression();\r
         break;\r
       default:\r
-        jj_la1[130] = jj_gen;\r
+        jj_la1[128] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -4501,7 +4515,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       annotation();\r
       break;\r
     default:\r
-      jj_la1[131] = jj_gen;\r
+      jj_la1[129] = jj_gen;\r
       ;\r
     }\r
             {if (true) return ret;}\r
@@ -4521,7 +4535,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
           ;\r
           break;\r
         default:\r
-          jj_la1[132] = jj_gen;\r
+          jj_la1[130] = jj_gen;\r
           break label_40;\r
         }\r
         jj_consume_token(78);\r
@@ -4531,7 +4545,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       }\r
       break;\r
     default:\r
-      jj_la1[133] = jj_gen;\r
+      jj_la1[131] = jj_gen;\r
       ;\r
     }\r
             {if (true) return ret;}\r
@@ -4637,50 +4651,41 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     finally { jj_save(9, xla); }\r
   }\r
 \r
-  private boolean jj_3_10() {\r
-    if (jj_3R_47()) return true;\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_48()) jj_scanpos = xsp;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_158() {\r
-    if (jj_3R_157()) return true;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_157() {\r
+  private boolean jj_3R_74() {\r
+    if (jj_scan_token(62)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3_10()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_161()) return true;\r
-    }\r
+    if (jj_3R_165()) jj_scanpos = xsp;\r
+    if (jj_scan_token(63)) return true;\r
     return false;\r
   }\r
 \r
   private boolean jj_3R_85() {\r
-    if (jj_3R_93()) return true;\r
+    if (jj_3R_95()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_120() {\r
+  private boolean jj_3R_124() {\r
     if (jj_scan_token(75)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_125() {\r
+  private boolean jj_3R_129() {\r
     if (jj_scan_token(49)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_74() {\r
-    if (jj_scan_token(62)) return true;\r
+  private boolean jj_3R_152() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_158()) jj_scanpos = xsp;\r
-    if (jj_scan_token(63)) return true;\r
+    if (jj_scan_token(68)) jj_scanpos = xsp;\r
+    if (jj_scan_token(IDENT)) return true;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_160()) jj_scanpos = xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_161()) { jj_scanpos = xsp; break; }\r
+    }\r
     return false;\r
   }\r
 \r
@@ -4698,42 +4703,24 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_103() {\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_scan_token(50)) jj_scanpos = xsp;\r
-    if (jj_scan_token(44)) return true;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_147() {\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_scan_token(68)) jj_scanpos = xsp;\r
-    if (jj_scan_token(IDENT)) return true;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_153()) jj_scanpos = xsp;\r
-    while (true) {\r
-      xsp = jj_scanpos;\r
-      if (jj_3R_154()) { jj_scanpos = xsp; break; }\r
-    }\r
-    return false;\r
-  }\r
-\r
   private boolean jj_3R_78() {\r
     if (jj_scan_token(68)) return true;\r
     if (jj_scan_token(IDENT)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_151() {\r
+  private boolean jj_3R_158() {\r
     if (jj_scan_token(58)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_71() {\r
-    if (jj_scan_token(21)) return true;\r
-    if (jj_3R_85()) return true;\r
+  private boolean jj_3R_106() {\r
+    if (jj_scan_token(7)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_150() {\r
+    if (jj_scan_token(84)) return true;\r
     return false;\r
   }\r
 \r
@@ -4754,6 +4741,12 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
+  private boolean jj_3R_71() {\r
+    if (jj_scan_token(21)) return true;\r
+    if (jj_3R_85()) return true;\r
+    return false;\r
+  }\r
+\r
   private boolean jj_3R_46() {\r
     if (jj_3R_60()) return true;\r
     return false;\r
@@ -4773,99 +4766,91 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_119() {\r
-    if (jj_scan_token(74)) return true;\r
+  private boolean jj_3R_163() {\r
+    if (jj_scan_token(70)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_4() {\r
-    if (jj_scan_token(IDENT)) return true;\r
-    if (jj_scan_token(88)) return true;\r
-    if (jj_scan_token(58)) return true;\r
+  private boolean jj_3R_146() {\r
+    if (jj_3R_154()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_3() {\r
+  private boolean jj_3R_123() {\r
+    if (jj_scan_token(74)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3_4() {\r
     if (jj_scan_token(IDENT)) return true;\r
     if (jj_scan_token(88)) return true;\r
     if (jj_scan_token(40)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_2() {\r
-    if (jj_scan_token(IDENT)) return true;\r
-    if (jj_scan_token(88)) return true;\r
+  private boolean jj_3R_145() {\r
+    if (jj_scan_token(66)) return true;\r
+    if (jj_3R_153()) return true;\r
+    if (jj_scan_token(67)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_156() {\r
-    if (jj_scan_token(70)) return true;\r
+  private boolean jj_3_3() {\r
+    if (jj_scan_token(IDENT)) return true;\r
+    if (jj_scan_token(88)) return true;\r
+    if (jj_scan_token(58)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_142() {\r
-    if (jj_3R_149()) return true;\r
+  private boolean jj_3R_144() {\r
+    if (jj_scan_token(62)) return true;\r
+    if (jj_3R_47()) return true;\r
+    if (jj_scan_token(63)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_1() {\r
+  private boolean jj_3_2() {\r
     if (jj_scan_token(IDENT)) return true;\r
-    if (jj_3R_41()) return true;\r
-    if (jj_3R_42()) return true;\r
-    if (jj_scan_token(35)) return true;\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_141() {\r
-    if (jj_scan_token(66)) return true;\r
-    if (jj_3R_148()) return true;\r
-    if (jj_scan_token(67)) return true;\r
+    if (jj_scan_token(88)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_140() {\r
-    if (jj_scan_token(62)) return true;\r
-    if (jj_3R_47()) return true;\r
-    if (jj_scan_token(63)) return true;\r
+  private boolean jj_3R_156() {\r
+    if (jj_scan_token(87)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_138() {\r
-    if (jj_3R_146()) return true;\r
+  private boolean jj_3R_142() {\r
+    if (jj_3R_151()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_104() {\r
-    if (jj_scan_token(26)) return true;\r
+  private boolean jj_3R_143() {\r
+    if (jj_3R_152()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_139() {\r
-    if (jj_3R_147()) return true;\r
+  private boolean jj_3_1() {\r
+    if (jj_scan_token(IDENT)) return true;\r
+    if (jj_3R_41()) return true;\r
+    if (jj_3R_42()) return true;\r
+    if (jj_scan_token(35)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_137() {\r
+  private boolean jj_3R_141() {\r
     if (jj_scan_token(33)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_133() {\r
+  private boolean jj_3R_137() {\r
     if (jj_scan_token(UNSIGNED_NUMBER)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_130() {\r
+  private boolean jj_3R_134() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_133()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_134()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_135()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_136()) {\r
-    jj_scanpos = xsp;\r
     if (jj_3R_137()) {\r
     jj_scanpos = xsp;\r
     if (jj_3R_138()) {\r
@@ -4878,6 +4863,14 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     jj_scanpos = xsp;\r
     if (jj_3R_142()) {\r
     jj_scanpos = xsp;\r
+    if (jj_3R_143()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_144()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_145()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_146()) {\r
+    jj_scanpos = xsp;\r
     if (jj_scan_token(35)) return true;\r
     }\r
     }\r
@@ -4892,101 +4885,115 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_136() {\r
+  private boolean jj_3R_140() {\r
     if (jj_scan_token(6)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_145() {\r
-    if (jj_scan_token(83)) return true;\r
+  private boolean jj_3R_139() {\r
+    if (jj_scan_token(STRING)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_143() {\r
-    if (jj_scan_token(87)) return true;\r
-    if (jj_3R_130()) return true;\r
+  private boolean jj_3R_108() {\r
+    if (jj_scan_token(26)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_135() {\r
-    if (jj_scan_token(STRING)) return true;\r
+  private boolean jj_3R_138() {\r
+    if (jj_scan_token(UNSIGNED_INTEGER)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_134() {\r
-    if (jj_scan_token(UNSIGNED_INTEGER)) return true;\r
+  private boolean jj_3R_149() {\r
+    if (jj_scan_token(83)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_124() {\r
+  private boolean jj_3R_128() {\r
     if (jj_scan_token(42)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_131() {\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_scan_token(86)) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_143()) return true;\r
-    }\r
+  private boolean jj_3R_154() {\r
+    if (jj_scan_token(64)) return true;\r
+    if (jj_3R_164()) return true;\r
+    if (jj_scan_token(65)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_149() {\r
-    if (jj_scan_token(64)) return true;\r
-    if (jj_3R_157()) return true;\r
-    if (jj_scan_token(65)) return true;\r
+  private boolean jj_3R_135() {\r
+    if (jj_3R_147()) return true;\r
+    if (jj_3R_134()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_129() {\r
-    if (jj_scan_token(79)) return true;\r
+  private boolean jj_3R_105() {\r
+    if (jj_scan_token(34)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_148() {\r
-    if (jj_3R_155()) return true;\r
+  private boolean jj_3R_153() {\r
+    if (jj_3R_162()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_156()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_163()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_150() {\r
+  private boolean jj_3R_157() {\r
     if (jj_3R_60()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_118() {\r
+  private boolean jj_3R_133() {\r
+    if (jj_scan_token(79)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_151() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_157()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_158()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_159()) return true;\r
+    }\r
+    }\r
+    if (jj_3R_74()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_122() {\r
     if (jj_scan_token(73)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_99() {\r
+  private boolean jj_3R_101() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(30)) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(47)) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_scan_token(34)) {\r
+    if (jj_3R_105()) {\r
     jj_scanpos = xsp;\r
-    if (jj_scan_token(7)) {\r
+    if (jj_3R_106()) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(61)) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(24)) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_103()) {\r
+    if (jj_3R_107()) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(38)) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(37)) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_104()) {\r
+    if (jj_3R_108()) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(17)) {\r
     jj_scanpos = xsp;\r
@@ -5006,59 +5013,60 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_115() {\r
-    if (jj_3R_130()) return true;\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_131()) jj_scanpos = xsp;\r
+  private boolean jj_3R_155() {\r
+    if (jj_scan_token(86)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_146() {\r
+  private boolean jj_3R_147() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_150()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_151()) {\r
+    if (jj_3R_155()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_152()) return true;\r
+    if (jj_3R_156()) return true;\r
     }\r
-    }\r
-    if (jj_3R_74()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_116() {\r
-    if (jj_3R_132()) return true;\r
-    if (jj_3R_115()) return true;\r
+  private boolean jj_3R_119() {\r
+    if (jj_3R_134()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_135()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_109() {\r
-    if (jj_3R_114()) return true;\r
-    if (jj_3R_108()) return true;\r
+  private boolean jj_3R_120() {\r
+    if (jj_3R_136()) return true;\r
+    if (jj_3R_119()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_102() {\r
-    if (jj_3R_110()) return true;\r
-    if (jj_3R_101()) return true;\r
+  private boolean jj_3R_113() {\r
+    if (jj_3R_118()) return true;\r
+    if (jj_3R_112()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_144() {\r
+  private boolean jj_3R_104() {\r
+    if (jj_3R_114()) return true;\r
+    if (jj_3R_103()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_148() {\r
     if (jj_scan_token(82)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_132() {\r
+  private boolean jj_3R_136() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_144()) {\r
+    if (jj_3R_148()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_145()) {\r
+    if (jj_3R_149()) {\r
     jj_scanpos = xsp;\r
-    if (jj_scan_token(84)) {\r
+    if (jj_3R_150()) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(85)) return true;\r
     }\r
@@ -5067,17 +5075,17 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_106() {\r
+  private boolean jj_3R_110() {\r
     if (jj_3R_60()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_108() {\r
-    if (jj_3R_115()) return true;\r
+  private boolean jj_3R_112() {\r
+    if (jj_3R_119()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_116()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_120()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
@@ -5088,22 +5096,22 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_128() {\r
+  private boolean jj_3R_132() {\r
     if (jj_scan_token(78)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_127() {\r
+  private boolean jj_3R_131() {\r
     if (jj_scan_token(56)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_114() {\r
+  private boolean jj_3R_118() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_128()) {\r
+    if (jj_3R_132()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_129()) {\r
+    if (jj_3R_133()) {\r
     jj_scanpos = xsp;\r
     if (jj_scan_token(80)) {\r
     jj_scanpos = xsp;\r
@@ -5119,81 +5127,81 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_95() {\r
+  private boolean jj_3R_97() {\r
     if (jj_scan_token(9)) return true;\r
-    if (jj_3R_94()) return true;\r
+    if (jj_3R_96()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_107() {\r
-    if (jj_3R_114()) return true;\r
+  private boolean jj_3R_111() {\r
+    if (jj_3R_118()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_126() {\r
+  private boolean jj_3R_130() {\r
     if (jj_scan_token(32)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_113() {\r
+  private boolean jj_3R_117() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_126()) {\r
+    if (jj_3R_130()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_127()) return true;\r
+    if (jj_3R_131()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_101() {\r
+  private boolean jj_3R_103() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_107()) jj_scanpos = xsp;\r
-    if (jj_3R_108()) return true;\r
+    if (jj_3R_111()) jj_scanpos = xsp;\r
+    if (jj_3R_112()) return true;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_109()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_113()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_123() {\r
+  private boolean jj_3R_127() {\r
     if (jj_scan_token(5)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_117() {\r
+  private boolean jj_3R_121() {\r
     if (jj_scan_token(72)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_112() {\r
+  private boolean jj_3R_116() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_123()) {\r
+    if (jj_3R_127()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_124()) {\r
+    if (jj_3R_128()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_125()) return true;\r
+    if (jj_3R_129()) return true;\r
     }\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_110() {\r
+  private boolean jj_3R_114() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_117()) {\r
+    if (jj_3R_121()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_118()) {\r
+    if (jj_3R_122()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_119()) {\r
+    if (jj_3R_123()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_120()) {\r
+    if (jj_3R_124()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_121()) {\r
+    if (jj_3R_125()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_122()) return true;\r
+    if (jj_3R_126()) return true;\r
     }\r
     }\r
     }\r
@@ -5202,7 +5210,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_111() {\r
+  private boolean jj_3R_115() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(16)) {\r
@@ -5224,22 +5232,22 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_105() {\r
+  private boolean jj_3R_109() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_111()) jj_scanpos = xsp;\r
+    if (jj_3R_115()) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_112()) jj_scanpos = xsp;\r
+    if (jj_3R_116()) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_113()) jj_scanpos = xsp;\r
+    if (jj_3R_117()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_98() {\r
-    if (jj_3R_101()) return true;\r
+  private boolean jj_3R_100() {\r
+    if (jj_3R_103()) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_102()) jj_scanpos = xsp;\r
+    if (jj_3R_104()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
@@ -5253,11 +5261,11 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_94() {\r
+  private boolean jj_3R_96() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
     if (jj_scan_token(12)) jj_scanpos = xsp;\r
-    if (jj_3R_98()) return true;\r
+    if (jj_3R_100()) return true;\r
     return false;\r
   }\r
 \r
@@ -5283,11 +5291,11 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
   }\r
 \r
   private boolean jj_3R_86() {\r
-    if (jj_3R_94()) return true;\r
+    if (jj_3R_96()) return true;\r
     Token xsp;\r
     while (true) {\r
       xsp = jj_scanpos;\r
-      if (jj_3R_95()) { jj_scanpos = xsp; break; }\r
+      if (jj_3R_97()) { jj_scanpos = xsp; break; }\r
     }\r
     return false;\r
   }\r
@@ -5307,6 +5315,11 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
+  private boolean jj_3R_92() {\r
+    if (jj_scan_token(27)) return true;\r
+    return false;\r
+  }\r
+\r
   private boolean jj_3_8() {\r
     if (jj_3R_45()) return true;\r
     return false;\r
@@ -5320,14 +5333,19 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_66() {\r
-    if (jj_3R_80()) return true;\r
+  private boolean jj_3R_172() {\r
+    if (jj_3R_47()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_100() {\r
-    if (jj_3R_105()) return true;\r
-    if (jj_3R_106()) return true;\r
+  private boolean jj_3R_102() {\r
+    if (jj_3R_109()) return true;\r
+    if (jj_3R_110()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_66() {\r
+    if (jj_3R_80()) return true;\r
     return false;\r
   }\r
 \r
@@ -5346,8 +5364,8 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_165() {\r
-    if (jj_3R_47()) return true;\r
+  private boolean jj_3R_68() {\r
+    if (jj_scan_token(14)) return true;\r
     return false;\r
   }\r
 \r
@@ -5373,13 +5391,14 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_68() {\r
-    if (jj_scan_token(14)) return true;\r
+  private boolean jj_3R_161() {\r
+    if (jj_scan_token(68)) return true;\r
+    if (jj_scan_token(IDENT)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_97() {\r
-    if (jj_3R_100()) return true;\r
+  private boolean jj_3R_99() {\r
+    if (jj_3R_102()) return true;\r
     return false;\r
   }\r
 \r
@@ -5389,25 +5408,26 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_154() {\r
-    if (jj_scan_token(68)) return true;\r
-    if (jj_scan_token(IDENT)) return true;\r
+  private boolean jj_3R_64() {\r
+    if (jj_scan_token(21)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_6() {\r
-    if (jj_scan_token(IDENT)) return true;\r
-    if (jj_scan_token(88)) return true;\r
+  private boolean jj_3R_49() {\r
+    if (jj_scan_token(STRING)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_64() {\r
-    if (jj_scan_token(21)) return true;\r
+  private boolean jj_3_6() {\r
+    if (jj_scan_token(IDENT)) return true;\r
+    if (jj_scan_token(88)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_49() {\r
-    if (jj_scan_token(STRING)) return true;\r
+  private boolean jj_3R_41() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_49()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
@@ -5416,7 +5436,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_122() {\r
+  private boolean jj_3R_126() {\r
     if (jj_scan_token(77)) return true;\r
     return false;\r
   }\r
@@ -5436,13 +5456,6 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_41() {\r
-    Token xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_3R_49()) jj_scanpos = xsp;\r
-    return false;\r
-  }\r
-\r
   private boolean jj_3R_88() {\r
     if (jj_scan_token(46)) return true;\r
     return false;\r
@@ -5467,7 +5480,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_92() {\r
+  private boolean jj_3R_94() {\r
     if (jj_scan_token(13)) return true;\r
     return false;\r
   }\r
@@ -5477,23 +5490,56 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_96() {\r
+  private boolean jj_3R_98() {\r
+    if (jj_3R_101()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_171() {\r
+    if (jj_scan_token(69)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_93() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_98()) {\r
+    jj_scanpos = xsp;\r
     if (jj_3R_99()) return true;\r
+    }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_91() {\r
+  private boolean jj_3R_169() {\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_96()) {\r
+    if (jj_3R_171()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_97()) return true;\r
+    if (jj_3R_172()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_164() {\r
-    if (jj_scan_token(69)) return true;\r
+  private boolean jj_3R_167() {\r
+    if (jj_scan_token(71)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_107() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_scan_token(50)) jj_scanpos = xsp;\r
+    if (jj_scan_token(44)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_91() {\r
+    if (jj_scan_token(51)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_160() {\r
+    if (jj_3R_166()) return true;\r
     return false;\r
   }\r
 \r
@@ -5504,39 +5550,25 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     xsp = jj_scanpos;\r
     if (jj_scan_token(11)) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_scan_token(51)) jj_scanpos = xsp;\r
-    xsp = jj_scanpos;\r
-    if (jj_scan_token(27)) jj_scanpos = xsp;\r
+    if (jj_3R_91()) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_91()) {\r
-    jj_scanpos = xsp;\r
-    if (jj_3R_92()) return true;\r
-    }\r
-    return false;\r
-  }\r
-\r
-  private boolean jj_3R_162() {\r
-    Token xsp;\r
+    if (jj_3R_92()) jj_scanpos = xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_164()) {\r
+    if (jj_3R_93()) {\r
     jj_scanpos = xsp;\r
-    if (jj_3R_165()) return true;\r
+    if (jj_3R_94()) return true;\r
     }\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_160() {\r
-    if (jj_scan_token(71)) return true;\r
-    return false;\r
-  }\r
-\r
   private boolean jj_3R_83() {\r
     if (jj_3R_90()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_153() {\r
-    if (jj_3R_159()) return true;\r
+  private boolean jj_3R_166() {\r
+    if (jj_scan_token(66)) return true;\r
+    if (jj_3R_169()) return true;\r
     return false;\r
   }\r
 \r
@@ -5545,12 +5577,6 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_159() {\r
-    if (jj_scan_token(66)) return true;\r
-    if (jj_3R_162()) return true;\r
-    return false;\r
-  }\r
-\r
   private boolean jj_3R_63() {\r
     if (jj_scan_token(71)) return true;\r
     return false;\r
@@ -5579,7 +5605,17 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_121() {\r
+  private boolean jj_3R_162() {\r
+    if (jj_3R_47()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_167()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_125() {\r
     if (jj_scan_token(76)) return true;\r
     return false;\r
   }\r
@@ -5598,35 +5634,38 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_155() {\r
-    if (jj_3R_47()) return true;\r
-    Token xsp;\r
-    while (true) {\r
-      xsp = jj_scanpos;\r
-      if (jj_3R_160()) { jj_scanpos = xsp; break; }\r
-    }\r
-    return false;\r
-  }\r
-\r
   private boolean jj_3R_73() {\r
     if (jj_scan_token(43)) return true;\r
     if (jj_3R_47()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_166() {\r
+  private boolean jj_3R_173() {\r
     if (jj_scan_token(IDENT)) return true;\r
     if (jj_scan_token(88)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_152() {\r
+  private boolean jj_3R_159() {\r
     if (jj_scan_token(46)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_163() {\r
-    if (jj_3R_166()) return true;\r
+  private boolean jj_3R_170() {\r
+    if (jj_3R_173()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_168() {\r
+    if (jj_3R_170()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3_10() {\r
+    if (jj_3R_47()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_48()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
@@ -5635,13 +5674,23 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_51() {\r
-    if (jj_scan_token(59)) return true;\r
+  private boolean jj_3R_165() {\r
+    if (jj_3R_164()) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_161() {\r
-    if (jj_3R_163()) return true;\r
+  private boolean jj_3R_164() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3_10()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_168()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_51() {\r
+    if (jj_scan_token(59)) return true;\r
     return false;\r
   }\r
 \r
@@ -5667,7 +5716,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     return false;\r
   }\r
 \r
-  private boolean jj_3R_93() {\r
+  private boolean jj_3R_95() {\r
     if (jj_scan_token(IDENT)) return true;\r
     return false;\r
   }\r
@@ -5683,7 +5732,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
   private Token jj_scanpos, jj_lastpos;\r
   private int jj_la;\r
   private int jj_gen;\r
-  final private int[] jj_la1 = new int[134];\r
+  final private int[] jj_la1 = new int[132];\r
   static private int[] jj_la1_0;\r
   static private int[] jj_la1_1;\r
   static private int[] jj_la1_2;\r
@@ -5693,13 +5742,13 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       jj_la1_init_2();\r
    }\r
    private static void jj_la1_init_0() {\r
-      jj_la1_0 = new int[] {0x0,0x0,0x45020880,0x800,0x40000000,0x0,0x0,0x5020080,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x10,0x0,0x0,0x4000,0x0,0x4000,0x0,0x80001040,0x4d8329a0,0x100,0x800,0x0,0x8000000,0x458300a0,0x458300a0,0x0,0x458320a0,0x4d8329a0,0x0,0x0,0x0,0x4000,0x0,0x0,0x810000,0x810000,0x20,0x20,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x2d00,0x0,0x2d00,0x400,0x800,0x2000,0x0,0x400,0x800,0x458300a0,0x458320a0,0x458300a0,0x0,0x0,0x0,0xa0240000,0x80200000,0x0,0xa0240000,0x80201040,0x100000,0x80201040,0x80201040,0x8000,0xa0240000,0x100000,0xa0240000,0xa0240000,0x8000,0x80201040,0xa0240000,0x0,0x0,0xa0240000,0x80201040,0x2000000,0x80201040,0xa0240000,0x2000000,0xa0240000,0x100000,0x80001040,0x100000,0x80001040,0x0,0x0,0x400000,0x200,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80001040,0x200000,0x200000,0x0,0x0,0x80001040,0x0,0x80001040,0x0,0x0,0x80001040,0x4000,0x0,0x0,};\r
+      jj_la1_0 = new int[] {0x0,0x0,0x45020880,0x800,0x40000000,0x0,0x0,0x5020080,0x0,0x0,0x0,0x0,0x0,0x10,0x10,0x0,0x0,0x4000,0x0,0x4000,0x0,0x80001040,0x4d8329a0,0x100,0x800,0x0,0x8000000,0x458300a0,0x458300a0,0x0,0x458320a0,0x4d8329a0,0x0,0x0,0x0,0x4000,0x0,0x0,0x810000,0x810000,0x20,0x20,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x2d00,0x0,0x2d00,0x400,0x800,0x2000,0x0,0x400,0x800,0x458300a0,0x458320a0,0x458300a0,0x0,0x0,0x0,0xa0240000,0x80200000,0x0,0xa0240000,0x80201040,0x100000,0x80201040,0x80201040,0x8000,0xa0240000,0x100000,0xa0240000,0xa0240000,0x8000,0x80201040,0xa0240000,0x0,0x0,0xa0240000,0x80201040,0x2000000,0x80201040,0xa0240000,0x2000000,0xa0240000,0x100000,0x80001040,0x100000,0x80001040,0x0,0x0,0x400000,0x200,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80001040,0x200000,0x200000,0x0,0x0,0x80001040,0x0,0x80001040,0x0,0x0,0x80001040,0x4000,0x0,0x0,};\r
    }\r
    private static void jj_la1_init_1() {\r
-      jj_la1_1 = new int[] {0x0,0x200000,0x20049064,0x0,0x0,0x8000,0x40000,0x20041064,0x0,0x40000000,0x0,0x0,0x40000000,0x800000,0x0,0x2106000,0x106000,0x0,0x0,0x0,0x8000000,0x0,0x0,0x4400400a,0x218e9475,0x0,0x0,0x80000,0x0,0x21069465,0x21069465,0x400000,0x21069465,0x218e9475,0x0,0x0,0x40000000,0x0,0x40000000,0x0,0x0,0x0,0x20400,0x20400,0x1000001,0x1000001,0x0,0x0,0x0,0x40000000,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x21069465,0x21069465,0x21069465,0x400000,0x4000,0x4000,0x40010800,0x880,0x40000000,0x40010800,0x4400488a,0x0,0x4400488a,0x4400488a,0x0,0x40010800,0x0,0x40010800,0x40010800,0x0,0x4400488a,0x40010800,0x0,0x200,0x40010800,0x4400488a,0x0,0x4400488a,0x40010800,0x0,0x40010800,0x0,0x4400400a,0x0,0x4400400a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4004000,0x0,0x2,0x40000008,0x0,0x0,0x0,0x0,0x0,0x0,0x4400400a,0x0,0x0,0x0,0x0,0x4400400a,0x0,0x4400400a,0x0,0x0,0x4400400a,0x0,0x0,0x0,};\r
+      jj_la1_1 = new int[] {0x0,0x200000,0x20049064,0x0,0x0,0x8000,0x40000,0x20041064,0x0,0x40000000,0x0,0x0,0x0,0x2106000,0x106000,0x0,0x0,0x0,0x8000000,0x0,0x0,0x4400400a,0x218e9475,0x0,0x0,0x80000,0x0,0x21069465,0x21069465,0x400000,0x21069465,0x218e9475,0x0,0x0,0x40000000,0x0,0x40000000,0x0,0x0,0x0,0x20400,0x20400,0x1000001,0x1000001,0x0,0x0,0x0,0x40000000,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x21069465,0x21069465,0x21069465,0x400000,0x4000,0x4000,0x40010800,0x880,0x40000000,0x40010800,0x4400488a,0x0,0x4400488a,0x4400488a,0x0,0x40010800,0x0,0x40010800,0x40010800,0x0,0x4400488a,0x40010800,0x0,0x200,0x40010800,0x4400488a,0x0,0x4400488a,0x40010800,0x0,0x40010800,0x0,0x4400400a,0x0,0x4400400a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4004000,0x0,0x2,0x40000008,0x0,0x0,0x0,0x0,0x0,0x0,0x4400400a,0x0,0x0,0x0,0x0,0x4400400a,0x0,0x4400400a,0x0,0x0,0x4400400a,0x0,0x0,0x0,};\r
    }\r
    private static void jj_la1_init_2() {\r
-      jj_la1_2 = new int[] {0x4000010,0x0,0xc0000000,0x0,0x0,0x0,0x0,0xc0000000,0x4,0x0,0x4000000,0x80,0x0,0x0,0x80,0x0,0x0,0x8000000,0x4000010,0x0,0x0,0x0,0x4000010,0x3c03c015,0xc4000010,0x0,0x0,0x0,0x0,0xc4000010,0xc4000010,0x0,0xc4000010,0xc4000010,0x10,0x4000010,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x4,0x3000000,0x1000000,0x3000000,0x4000010,0x80,0x4000010,0x0,0x0,0x4000010,0x3000000,0x0,0x0,0xc4000010,0xc4000010,0xc4000010,0x0,0x0,0x0,0x4000010,0x4000000,0x2000000,0x4000010,0x3c03c015,0x0,0x3c03c015,0x3c03c015,0x0,0x4000010,0x0,0x4000010,0x4000010,0x0,0x3c03c015,0x4000010,0x80,0x0,0x4000010,0x3c03c015,0x0,0x3c03c015,0x4000010,0x0,0x4000010,0x0,0x3c03c015,0x0,0x3c03c015,0x20,0x20,0x0,0x0,0x0,0x3f00,0x3f00,0x3c000,0x3c000,0x3c000,0x3c0000,0x3c0000,0xc00000,0xc00000,0x4000010,0x40,0x38000000,0x4000015,0x10,0x10,0x10,0x4,0x10,0x4,0x3c03c015,0x80,0x80,0x4000000,0x80,0x3c03c015,0x80,0x3c03c015,0x80,0x80,0x3c03c035,0x0,0x4000,0x8000000,};\r
+      jj_la1_2 = new int[] {0x4000010,0x0,0xc0000000,0x0,0x0,0x0,0x0,0xc0000000,0x4,0x0,0x80,0x4000000,0x80,0x0,0x0,0x8000000,0x4000010,0x0,0x0,0x0,0x4000010,0x3c03c015,0xc4000010,0x0,0x0,0x0,0x0,0xc4000010,0xc4000010,0x0,0xc4000010,0xc4000010,0x10,0x4000010,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x4,0x3000000,0x1000000,0x3000000,0x4000010,0x80,0x4000010,0x0,0x0,0x4000010,0x3000000,0x0,0x0,0xc4000010,0xc4000010,0xc4000010,0x0,0x0,0x0,0x4000010,0x4000000,0x2000000,0x4000010,0x3c03c015,0x0,0x3c03c015,0x3c03c015,0x0,0x4000010,0x0,0x4000010,0x4000010,0x0,0x3c03c015,0x4000010,0x80,0x0,0x4000010,0x3c03c015,0x0,0x3c03c015,0x4000010,0x0,0x4000010,0x0,0x3c03c015,0x0,0x3c03c015,0x20,0x20,0x0,0x0,0x0,0x3f00,0x3f00,0x3c000,0x3c000,0x3c000,0x3c0000,0x3c0000,0xc00000,0xc00000,0x4000010,0x40,0x38000000,0x4000015,0x10,0x10,0x10,0x4,0x10,0x4,0x3c03c015,0x80,0x80,0x4000000,0x80,0x3c03c015,0x80,0x3c03c015,0x80,0x80,0x3c03c035,0x0,0x4000,0x8000000,};\r
    }\r
   final private JJCalls[] jj_2_rtns = new JJCalls[10];\r
   private boolean jj_rescan = false;\r
@@ -5716,7 +5765,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 134; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 132; 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
@@ -5732,7 +5781,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     jj_ntk = -1;\r
     jjtree.reset();\r
     jj_gen = 0;\r
-    for (int i = 0; i < 134; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 132; 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
@@ -5743,7 +5792,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 134; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 132; 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
@@ -5755,7 +5804,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     jj_ntk = -1;\r
     jjtree.reset();\r
     jj_gen = 0;\r
-    for (int i = 0; i < 134; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 132; 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
@@ -5765,7 +5814,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 134; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 132; 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
@@ -5776,7 +5825,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
     jj_ntk = -1;\r
     jjtree.reset();\r
     jj_gen = 0;\r
-    for (int i = 0; i < 134; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 132; 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
@@ -5893,7 +5942,7 @@ public class ModelParser/*@bgen(jjtree)*/implements ModelParserTreeConstants, Mo
       la1tokens[jj_kind] = true;\r
       jj_kind = -1;\r
     }\r
-    for (int i = 0; i < 134; i++) {\r
+    for (int i = 0; i < 132; 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 471f3ac8cd59ccb8649bc44bd7fbcdbbe5d22ccf..754f36e8fa3403579cc02a03dce08da9bbbd7c02 100644 (file)
@@ -15,21 +15,17 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
    switch (pos)
    {\r
       case 0:\r
-         if ((active1 & 0x80000L) != 0L)\r
-            return 15;\r
-         if ((active1 & 0x8000L) != 0L)\r
-            return 37;\r
-         if ((active1 & 0xb30010L) != 0L)\r
-            return 9;\r
          if ((active0 & 0x3ffffffffffffff0L) != 0L || (active1 & 0xc0000000L) != 0L)\r
          {\r
             jjmatchedKind = 90;\r
             return 2;\r
          }\r
+         if ((active1 & 0x80000L) != 0L)\r
+            return 13;\r
+         if ((active1 & 0xb30010L) != 0L)\r
+            return 9;\r
          return -1;\r
       case 1:\r
-         if ((active1 & 0x20000L) != 0L)\r
-            return 10;\r
          if ((active0 & 0x108420080400000L) != 0L)\r
             return 2;\r
          if ((active0 & 0x3ef7bdff7fbffff0L) != 0L || (active1 & 0xc0000000L) != 0L)\r
@@ -184,12 +180,12 @@ private int jjMoveStringLiteralDfa0_0()
       case 44:\r
          return jjStopAtPos(0, 71);\r
       case 45:\r
-         return jjStartNfaWithStates_0(0, 79, 37);\r
+         return jjStopAtPos(0, 79);\r
       case 46:\r
          jjmatchedKind = 68;\r
          return jjMoveStringLiteralDfa1_0(0x0L, 0xb30000L);\r
       case 47:\r
-         return jjStartNfaWithStates_0(0, 83, 15);\r
+         return jjStartNfaWithStates_0(0, 83, 13);\r
       case 58:\r
          jjmatchedKind = 69;\r
          return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000L);\r
@@ -269,7 +265,7 @@ private int jjMoveStringLiteralDfa1_0(long active0, long active1)
          break;\r
       case 45:\r
          if ((active1 & 0x20000L) != 0L)\r
-            return jjStartNfaWithStates_0(1, 81, 10);\r
+            return jjStopAtPos(1, 81);\r
          break;\r
       case 47:\r
          if ((active1 & 0x200000L) != 0L)\r
@@ -940,7 +936,7 @@ static final long[] jjbitVec0 = {
 private int jjMoveNfa_0(int startState, int curPos)\r
 {\r
    int startsAt = 0;\r
-   jjnewStateCnt = 37;\r
+   jjnewStateCnt = 31;\r
    int i = 1;\r
    jjstateSet[0] = startState;\r
    int kind = 0x7fffffff;\r
@@ -955,59 +951,35 @@ private int jjMoveNfa_0(int startState, int curPos)
          {\r
             switch(jjstateSet[--i])\r
             {\r
-               case 9:\r
-                  if ((0x3ff000000000000L & l) != 0L)\r
-                  {\r
-                     if (kind > 93)\r
-                        kind = 93;\r
-                     jjCheckNAddTwoStates(10, 11);\r
-                  }\r
-                  else if (curChar == 45)\r
-                     jjCheckNAdd(10);\r
-                  break;\r
-               case 37:\r
-                  if ((0x3ff000000000000L & l) != 0L)\r
-                     jjCheckNAddTwoStates(32, 33);\r
-                  if ((0x3ff000000000000L & l) != 0L)\r
-                     jjCheckNAddTwoStates(25, 26);\r
-                  if ((0x3ff000000000000L & l) != 0L)\r
+               case 13:\r
+                  if (curChar == 47)\r
                   {\r
-                     if (kind > 92)\r
-                        kind = 92;\r
-                     jjCheckNAdd(24);\r
+                     if (kind > 3)\r
+                        kind = 3;\r
+                     jjCheckNAdd(20);\r
                   }\r
+                  else if (curChar == 42)\r
+                     jjCheckNAddStates(0, 2);\r
                   break;\r
                case 0:\r
                   if ((0x3ff000000000000L & l) != 0L)\r
                   {\r
                      if (kind > 92)\r
                         kind = 92;\r
-                     jjCheckNAddStates(0, 4);\r
+                     jjCheckNAddStates(3, 7);\r
                   }\r
                   else if ((0x100002600L & l) != 0L)\r
                   {\r
                      if (kind > 1)\r
                         kind = 1;\r
                   }\r
-                  else if (curChar == 45)\r
-                     jjCheckNAddStates(5, 7);\r
                   else if (curChar == 47)\r
                      jjAddStates(8, 9);\r
                   else if (curChar == 46)\r
-                     jjCheckNAddTwoStates(9, 10);\r
+                     jjCheckNAdd(9);\r
                   else if (curChar == 34)\r
                      jjCheckNAddStates(10, 12);\r
                   break;\r
-               case 15:\r
-                  if (curChar == 47)\r
-                  {\r
-                     if (kind > 3)\r
-                        kind = 3;\r
-                     jjCheckNAdd(22);\r
-                  }\r
-                  else if (curChar == 42)\r
-                     jjCheckNAddStates(13, 15);\r
-                  break;\r
                case 2:\r
                   if ((0x3ff400000000000L & l) == 0L)\r
                      break;\r
@@ -1033,129 +1005,109 @@ private int jjMoveNfa_0(int startState, int curPos)
                   break;\r
                case 8:\r
                   if (curChar == 46)\r
-                     jjCheckNAddTwoStates(9, 10);\r
+                     jjCheckNAdd(9);\r
                   break;\r
-               case 10:\r
+               case 9:\r
                   if ((0x3ff000000000000L & l) == 0L)\r
                      break;\r
                   if (kind > 93)\r
                      kind = 93;\r
-                  jjCheckNAddTwoStates(10, 11);\r
-                  break;\r
-               case 12:\r
-                  if (curChar == 45)\r
-                     jjCheckNAdd(13);\r
+                  jjCheckNAddTwoStates(9, 10);\r
                   break;\r
-               case 13:\r
+               case 11:\r
                   if ((0x3ff000000000000L & l) == 0L)\r
                      break;\r
                   if (kind > 93)\r
                      kind = 93;\r
-                  jjCheckNAdd(13);\r
+                  jjstateSet[jjnewStateCnt++] = 11;\r
                   break;\r
-               case 14:\r
+               case 12:\r
                   if (curChar == 47)\r
                      jjAddStates(8, 9);\r
                   break;\r
-               case 16:\r
+               case 14:\r
                   if ((0xfffffbffffffffffL & l) != 0L)\r
-                     jjCheckNAddStates(13, 15);\r
+                     jjCheckNAddStates(0, 2);\r
                   break;\r
-               case 17:\r
+               case 15:\r
                   if (curChar == 42)\r
-                     jjstateSet[jjnewStateCnt++] = 18;\r
+                     jjstateSet[jjnewStateCnt++] = 16;\r
                   break;\r
-               case 18:\r
+               case 16:\r
                   if ((0xffff7fffffffffffL & l) != 0L)\r
-                     jjCheckNAddStates(13, 15);\r
+                     jjCheckNAddStates(0, 2);\r
                   break;\r
-               case 19:\r
+               case 17:\r
                   if (curChar == 47 && kind > 2)\r
                      kind = 2;\r
                   break;\r
-               case 20:\r
+               case 18:\r
                   if (curChar == 42)\r
-                     jjstateSet[jjnewStateCnt++] = 19;\r
+                     jjstateSet[jjnewStateCnt++] = 17;\r
                   break;\r
-               case 21:\r
+               case 19:\r
                   if (curChar != 47)\r
                      break;\r
                   if (kind > 3)\r
                      kind = 3;\r
-                  jjCheckNAdd(22);\r
+                  jjCheckNAdd(20);\r
                   break;\r
-               case 22:\r
+               case 20:\r
                   if ((0xfffffffffffffbffL & l) == 0L)\r
                      break;\r
                   if (kind > 3)\r
                      kind = 3;\r
-                  jjCheckNAdd(22);\r
+                  jjCheckNAdd(20);\r
                   break;\r
-               case 23:\r
-                  if (curChar == 45)\r
-                     jjCheckNAddStates(5, 7);\r
+               case 21:\r
+                  if ((0x3ff000000000000L & l) == 0L)\r
+                     break;\r
+                  if (kind > 92)\r
+                     kind = 92;\r
+                  jjCheckNAddStates(3, 7);\r
                   break;\r
-               case 24:\r
+               case 22:\r
                   if ((0x3ff000000000000L & l) == 0L)\r
                      break;\r
                   if (kind > 92)\r
                      kind = 92;\r
-                  jjCheckNAdd(24);\r
+                  jjCheckNAdd(22);\r
                   break;\r
-               case 25:\r
+               case 23:\r
                   if ((0x3ff000000000000L & l) != 0L)\r
-                     jjCheckNAddTwoStates(25, 26);\r
+                     jjCheckNAddTwoStates(23, 24);\r
                   break;\r
-               case 26:\r
+               case 24:\r
                   if (curChar != 46)\r
                      break;\r
                   if (kind > 93)\r
                      kind = 93;\r
-                  jjCheckNAddStates(16, 18);\r
-                  break;\r
-               case 27:\r
-                  if (curChar == 45)\r
-                     jjCheckNAdd(28);\r
+                  jjCheckNAddTwoStates(25, 26);\r
                   break;\r
-               case 28:\r
+               case 25:\r
                   if ((0x3ff000000000000L & l) == 0L)\r
                      break;\r
                   if (kind > 93)\r
                      kind = 93;\r
-                  jjCheckNAddTwoStates(28, 29);\r
+                  jjCheckNAddTwoStates(25, 26);\r
                   break;\r
-               case 30:\r
-                  if (curChar == 45)\r
-                     jjCheckNAdd(31);\r
-                  break;\r
-               case 31:\r
+               case 27:\r
                   if ((0x3ff000000000000L & l) == 0L)\r
                      break;\r
                   if (kind > 93)\r
                      kind = 93;\r
-                  jjCheckNAdd(31);\r
+                  jjstateSet[jjnewStateCnt++] = 27;\r
                   break;\r
-               case 32:\r
+               case 28:\r
                   if ((0x3ff000000000000L & l) != 0L)\r
-                     jjCheckNAddTwoStates(32, 33);\r
+                     jjCheckNAddTwoStates(28, 29);\r
                   break;\r
-               case 34:\r
-                  if (curChar == 45)\r
-                     jjCheckNAdd(35);\r
-                  break;\r
-               case 35:\r
+               case 30:\r
                   if ((0x3ff000000000000L & l) == 0L)\r
                      break;\r
                   if (kind > 93)\r
                      kind = 93;\r
-                  jjCheckNAdd(35);\r
-                  break;\r
-               case 36:\r
-                  if ((0x3ff000000000000L & l) == 0L)\r
-                     break;\r
-                  if (kind > 92)\r
-                     kind = 92;\r
-                  jjCheckNAddStates(0, 4);\r
+                  jjstateSet[jjnewStateCnt++] = 30;\r
                   break;\r
                default : break;\r
             }\r
@@ -1187,26 +1139,26 @@ private int jjMoveNfa_0(int startState, int curPos)
                case 6:\r
                   jjCheckNAddStates(10, 12);\r
                   break;\r
-               case 11:\r
+               case 10:\r
                   if ((0x2000000020L & l) != 0L)\r
-                     jjAddStates(19, 20);\r
+                     jjstateSet[jjnewStateCnt++] = 11;\r
                   break;\r
+               case 14:\r
                case 16:\r
-               case 18:\r
-                  jjCheckNAddStates(13, 15);\r
+                  jjCheckNAddStates(0, 2);\r
                   break;\r
-               case 22:\r
+               case 20:\r
                   if (kind > 3)\r
                      kind = 3;\r
-                  jjstateSet[jjnewStateCnt++] = 22;\r
+                  jjstateSet[jjnewStateCnt++] = 20;\r
                   break;\r
-               case 29:\r
+               case 26:\r
                   if ((0x2000000020L & l) != 0L)\r
-                     jjAddStates(21, 22);\r
+                     jjstateSet[jjnewStateCnt++] = 27;\r
                   break;\r
-               case 33:\r
+               case 29:\r
                   if ((0x2000000020L & l) != 0L)\r
-                     jjAddStates(23, 24);\r
+                     jjstateSet[jjnewStateCnt++] = 30;\r
                   break;\r
                default : break;\r
             }\r
@@ -1225,17 +1177,17 @@ private int jjMoveNfa_0(int startState, int curPos)
                   if ((jjbitVec0[i2] & l2) != 0L)\r
                      jjCheckNAddStates(10, 12);\r
                   break;\r
+               case 14:\r
                case 16:\r
-               case 18:\r
                   if ((jjbitVec0[i2] & l2) != 0L)\r
-                     jjCheckNAddStates(13, 15);\r
+                     jjCheckNAddStates(0, 2);\r
                   break;\r
-               case 22:\r
+               case 20:\r
                   if ((jjbitVec0[i2] & l2) == 0L)\r
                      break;\r
                   if (kind > 3)\r
                      kind = 3;\r
-                  jjstateSet[jjnewStateCnt++] = 22;\r
+                  jjstateSet[jjnewStateCnt++] = 20;\r
                   break;\r
                default : break;\r
             }\r
@@ -1248,15 +1200,14 @@ private int jjMoveNfa_0(int startState, int curPos)
          kind = 0x7fffffff;\r
       }\r
       ++curPos;\r
-      if ((i = jjnewStateCnt) == (startsAt = 37 - (jjnewStateCnt = startsAt)))\r
+      if ((i = jjnewStateCnt) == (startsAt = 31 - (jjnewStateCnt = startsAt)))\r
          return curPos;\r
       try { curChar = input_stream.readChar(); }\r
       catch(java.io.IOException e) { return curPos; }\r
    }\r
 }\r
 static final int[] jjnextStates = {
-   24, 25, 26, 32, 33, 24, 25, 32, 15, 21, 4, 5, 7, 16, 17, 20, 
-   27, 28, 29, 12, 13, 30, 31, 34, 35, 
+   14, 15, 18, 22, 23, 24, 28, 29, 13, 19, 4, 5, 7, 
 };\r
 \r
 /** Token literal values. */\r
@@ -1295,8 +1246,8 @@ static final long[] jjtoSkip = {
    0xeL, 0x0L, 
 };\r
 protected SimpleCharStream input_stream;\r
-private final int[] jjrounds = new int[37];\r
-private final int[] jjstateSet = new int[74];\r
+private final int[] jjrounds = new int[31];\r
+private final int[] jjstateSet = new int[62];\r
 private final StringBuilder jjimage = new StringBuilder();\r
 private StringBuilder image = jjimage;\r
 private int jjimageLen;\r
@@ -1327,7 +1278,7 @@ private void ReInitRounds()
 {\r
    int i;\r
    jjround = 0x80000001;\r
-   for (i = 37; i-- > 0;)\r
+   for (i = 31; i-- > 0;)\r
       jjrounds[i] = 0x80000000;\r
 }\r
 \r
index 39cc66d46d1b05af4ae1c4d1475af43cbb6c80ac..8539a490f219f136551e775975277851f3e4edf1 100644 (file)
@@ -68,22 +68,23 @@ public interface ModelParserTreeConstants
   public int JJTTERM = 62;\r
   public int JJTMUL_OP = 63;\r
   public int JJTFACTOR = 64;\r
-  public int JJTDER_INITIAL = 65;\r
-  public int JJTSUBSCRIPT_2 = 66;\r
-  public int JJTARRAY = 67;\r
-  public int JJTPRIMARY = 68;\r
-  public int JJTNAME = 69;\r
-  public int JJTCOMPONENT_REFERENCE = 70;\r
-  public int JJTFUNCTION_CALL_ARGS = 71;\r
-  public int JJTFUNCTION_ARGUMENTS = 72;\r
-  public int JJTNAMED_ARGUMENTS = 73;\r
-  public int JJTNAMED_ARGUMENT = 74;\r
-  public int JJTOUTPUT_EXPRESSION_LIST = 75;\r
-  public int JJTEXPRESSION_LIST = 76;\r
-  public int JJTARRAY_SUBSCRIPTS = 77;\r
-  public int JJTSUBSCRIPT = 78;\r
-  public int JJTVOID = 79;\r
-  public int JJTANNOTATION = 80;\r
+  public int JJTFACTOR_OP = 65;\r
+  public int JJTDER_INITIAL = 66;\r
+  public int JJTSUBSCRIPT_2 = 67;\r
+  public int JJTARRAY = 68;\r
+  public int JJTPRIMARY = 69;\r
+  public int JJTNAME = 70;\r
+  public int JJTCOMPONENT_REFERENCE = 71;\r
+  public int JJTFUNCTION_CALL_ARGS = 72;\r
+  public int JJTFUNCTION_ARGUMENTS = 73;\r
+  public int JJTNAMED_ARGUMENTS = 74;\r
+  public int JJTNAMED_ARGUMENT = 75;\r
+  public int JJTOUTPUT_EXPRESSION_LIST = 76;\r
+  public int JJTEXPRESSION_LIST = 77;\r
+  public int JJTARRAY_SUBSCRIPTS = 78;\r
+  public int JJTSUBSCRIPT = 79;\r
+  public int JJTVOID = 80;\r
+  public int JJTANNOTATION = 81;\r
 \r
 \r
   public String[] jjtNodeName = {\r
@@ -152,6 +153,7 @@ public interface ModelParserTreeConstants
     "term",\r
     "mul_op",\r
     "factor",\r
+    "factor_op",\r
     "der_initial",\r
     "subscript_2",\r
     "array",\r
@@ -170,4 +172,4 @@ public interface ModelParserTreeConstants
     "annotation",\r
   };\r
 }\r
-/* JavaCC - OriginalChecksum=2406c3a5da0aa9cd9047b868bc6069b1 (do not edit this line) */\r
+/* JavaCC - OriginalChecksum=c86e9178ecd31c01eb2447d79ce33b0f (do not edit this line) */\r
index 990cfd104e6d918c008f53deb2db31a9c602c9ff..a6dceb85d65cdb79960463fe08f068fd53bc2f6e 100644 (file)
@@ -75,10 +75,10 @@ TOKEN:
 | "*" | "/" | ".*" | "./"\r
 | "^" | ".^"\r
 | "=" | ":=" \r
-| <IDENT: ["a"-"z","A"-"Z","_"] (["a"-"z","A"-"Z","_",".","0"-"9"])* >\r
+| <IDENT: ["a"-"z","A"-"Z","_"] (["a"-"z","A"-"Z","_",".", "0"-"9"])* >\r
 | <STRING: "\"" (~["\"", "\\", "\n"] | "\\" ~["\n"])* "\"">\r
     { matchedToken.image = matchedToken.image.substring(1,matchedToken.image.length()-1); }\r
-| <UNSIGNED_INTEGER: (["-"])? (["0"-"9"])+ >\r
+| <UNSIGNED_INTEGER: (["0"-"9"])+ >\r
 | <UNSIGNED_NUMBER:  \r
     ( <UNSIGNED_INTEGER> "." (<UNSIGNED_INTEGER>)? (["e","E"] <UNSIGNED_INTEGER>)?\r
     | "." <UNSIGNED_INTEGER> (["e","E"] <UNSIGNED_INTEGER>)?\r
@@ -191,7 +191,7 @@ void class_definition() : {/*@bgen(jjtree) class_definition */
 //  class_specifier\r
     ( "encapsulated" )?\r
     ( "partial" )?\r
-    ( "class" | "model" | "record" | "block" | ( "expandable" )? "connector" | "type" |\r
+    ( "class" { jjtn000.op = "class"; } | "model" { jjtn000.op = "model"; } | "record" | "block" | ( "expandable" )? "connector" | "type" |\r
     "package" | "function" { jjtn000.op = "function"; } | "operator" | "operator function" | "operator record" )\r
     class_specifier()/*@bgen(jjtree)*/\r
     } catch (Throwable jjte000) {\r
@@ -235,9 +235,8 @@ void class_specifier() : {/*@bgen(jjtree) class_specifier */
 //  end IDENT  \r
     LOOKAHEAD(2) t=<IDENT> { jjtn000.op = t.image; } string_comment() composition() "end" <IDENT>\r
     | LOOKAHEAD(2) <IDENT> "=" base_prefix() name() ( array_subscripts() )? ( class_modification() )? comment()\r
-    | LOOKAHEAD(3) <IDENT> "=" "enumeration" "(" ( ( enum_list() )? | ":" ) ")" comment()\r
-    |LOOKAHEAD(3)  <IDENT> "=" "der" "(" name() "," <IDENT> ( "," <IDENT> )* ")" comment()\r
-    | "extends" <IDENT> ( class_modification() )? string_comment() composition() "end" <IDENT>/*@bgen(jjtree)*/\r
+    | LOOKAHEAD(3)  <IDENT> "=" "der" "(" name() "," <IDENT> ( "," <IDENT> )* ")" comment()\r
+    | LOOKAHEAD(3) <IDENT> "=" "enumeration" "(" ( ( enum_list() )? | ":" ) ")" comment()/*@bgen(jjtree)*/\r
     } catch (Throwable jjte000) {\r
       if (jjtc000) {\r
         jjtree.clearNodeScope(jjtn000);\r
@@ -257,7 +256,8 @@ void class_specifier() : {/*@bgen(jjtree) class_specifier */
         jjtree.closeNodeScope(jjtn000, true);\r
       }\r
     }\r
-/*@egen*/ \r
+/*@egen*/\r
+    //| "extends" <IDENT> ( class_modification() )? string_comment() composition() "end" <IDENT> \r
 }\r
 \r
 void base_prefix() : {/*@bgen(jjtree) base_prefix */\r
@@ -526,11 +526,21 @@ Node element() : {/*@bgen(jjtree) element */
 //  ( ( class_definition | component_clause) |\r
 //  replaceable ( class_definition | component_clause)\r
 //  [constraining_clause comment])\r
-    import_clause() |\r
-    extends_clause() |\r
+    import_clause()/*@bgen(jjtree)*/\r
+                    {\r
+                      jjtree.closeNodeScope(jjtn000, true);\r
+                      jjtc000 = false;\r
+                    }\r
+/*@egen*/ { return jjtn000; } |\r
+    extends_clause()/*@bgen(jjtree)*/\r
+                     {\r
+                       jjtree.closeNodeScope(jjtn000, true);\r
+                       jjtc000 = false;\r
+                     }\r
+/*@egen*/ { return jjtn000; } |\r
     ( "redeclare" )?\r
     ( "final" )?\r
-    ( "inner" )? ( "outer" )?\r
+    ( "inner" { jjtn000.op = "inner"; } )? ( "outer" { jjtn000.op = "outer"; } )?\r
     ( (class_definition() | component_clause()) |\r
         "replaceable" (class_definition() | component_clause())\r
         (constraining_clause() comment())?)/*@bgen(jjtree)*/\r
@@ -2348,7 +2358,12 @@ void mul_op() : {/*@bgen(jjtree) mul_op */
                                      jjtree.closeNodeScope(jjtn000, true);\r
                                      jjtc000 = false;\r
                                    }\r
-/*@egen*/ { jjtn000.op = "/";} | ".*" | "./"/*@bgen(jjtree)*/\r
+/*@egen*/ { jjtn000.op = "/";} | ".*"/*@bgen(jjtree)*/\r
+                                                               {\r
+                                                                 jjtree.closeNodeScope(jjtn000, true);\r
+                                                                 jjtc000 = false;\r
+                                                               }\r
+/*@egen*/ { jjtn000.op = ".*";} | "./"/*@bgen(jjtree)*/\r
     } finally {\r
       if (jjtc000) {\r
         jjtree.closeNodeScope(jjtn000, true);\r
@@ -2365,7 +2380,7 @@ void factor() : {/*@bgen(jjtree) factor */
 } {/*@bgen(jjtree) factor */\r
         try {\r
 /*@egen*/\r
-       primary() ( "^" | ".^" primary() )?/*@bgen(jjtree)*/\r
+       primary() ( factor_op() primary() )?/*@bgen(jjtree)*/\r
         } catch (Throwable jjte000) {\r
           if (jjtc000) {\r
             jjtree.clearNodeScope(jjtn000);\r
@@ -2388,6 +2403,33 @@ void factor() : {/*@bgen(jjtree) factor */
 /*@egen*/\r
 }\r
 \r
+void factor_op() : {/*@bgen(jjtree) factor_op */\r
+  SimpleNode jjtn000 = new SimpleNode(JJTFACTOR_OP);\r
+  boolean jjtc000 = true;\r
+  jjtree.openNodeScope(jjtn000);\r
+/*@egen*/\r
+} {/*@bgen(jjtree) factor_op */\r
+    try {\r
+/*@egen*/\r
+    "^"/*@bgen(jjtree)*/\r
+        {\r
+          jjtree.closeNodeScope(jjtn000, true);\r
+          jjtc000 = false;\r
+        }\r
+/*@egen*/ { jjtn000.op = "^";} | ".^"/*@bgen(jjtree)*/\r
+                                    {\r
+                                      jjtree.closeNodeScope(jjtn000, true);\r
+                                      jjtc000 = false;\r
+                                    }\r
+/*@egen*/ { jjtn000.op = ".^";}/*@bgen(jjtree)*/\r
+    } finally {\r
+      if (jjtc000) {\r
+        jjtree.closeNodeScope(jjtn000, true);\r
+      }\r
+    }\r
+/*@egen*/\r
+}\r
+\r
 void der_initial() : {/*@bgen(jjtree) der_initial */\r
   SimpleNode jjtn000 = new SimpleNode(JJTDER_INITIAL);\r
   boolean jjtc000 = true;\r
@@ -2650,7 +2692,7 @@ void function_arguments() : {/*@bgen(jjtree) function_arguments */
 /*@egen*/\r
        //expression [ "," function_arguments | for for_indices ]\r
        //| named_arguments\r
-        LOOKAHEAD(2) expression() ( "," function_arguments() | "for" for_indices() )?\r
+        LOOKAHEAD(2) expression() ( "," function_arguments() | "for" for_indices() { jjtn000.op = "for"; } )?\r
        | named_arguments()/*@bgen(jjtree)*/\r
          } catch (Throwable jjte000) {\r
            if (jjtc000) {\r