]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
Sysdyn variable names with space characters allowed, added the corresponding compiled...
authormiettinen <miettinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Thu, 26 Sep 2013 08:57:29 +0000 (08:57 +0000)
committermiettinen <miettinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Thu, 26 Sep 2013 08:57:29 +0000 (08:57 +0000)
git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@27889 ac1ea38d-2e2b-0410-8846-a27921b304fc

org.simantics.sysdyn/src/org/simantics/sysdyn/expressionParser/ExpressionParser.java
org.simantics.sysdyn/src/org/simantics/sysdyn/modelParser/ModelParser.java
org.simantics.sysdyn/src/org/simantics/sysdyn/unitParser/UnitParser.jj
org.simantics.sysdyn/src/org/simantics/sysdyn/unitParser/UnitParserTokenManager.java

index 5f51ebbae8c3e4fb2672307b688c4118f6697dfa..0c38a0e9cbd10815f8f361aa828c8c063ec86c49 100644 (file)
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.ArrayList;\r
 import java.util.HashMap;\r
 \r
-\r
+@SuppressWarnings({"unused", "serial"})\r
 public class ExpressionParser implements ExpressionParserConstants {\r
 \r
     public class ForRange {\r
@@ -474,26 +474,58 @@ public class ExpressionParser implements ExpressionParserConstants {
     }\r
   }\r
 \r
-  final public void name() throws ParseException {\r
+  final public Token ident() throws ParseException {\r
+  Token concatToken = null;\r
+  Token continuationToken = null;\r
+  String fullStr = null;\r
     jj_consume_token(IDENT);\r
+    concatToken = token;\r
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
+    case IDENT:\r
+      continuationToken = ident();\r
+    fullStr = new String("");\r
+    // Replace whitespace sequence with a single space character.\r
+    fullStr += concatToken.image + " " + continuationToken.image;\r
+\r
+    Token tempToken = new Token(concatToken.kind, fullStr);\r
+    tempToken.beginLine = concatToken.beginLine;\r
+    tempToken.beginColumn = concatToken.beginColumn;\r
+    tempToken.endLine = token.endLine;\r
+    tempToken.endColumn = token.endColumn;\r
+        concatToken = tempToken;\r
+        System.out.println(concatToken.image);\r
+      break;\r
+    default:\r
+      jj_la1[21] = jj_gen;\r
+      ;\r
+    }\r
+    {if (true) return concatToken;}\r
+    throw new Error("Missing return statement in function");\r
+  }\r
+\r
+  final public void name() throws ParseException {\r
+  Token identToken = null;\r
+    identToken = ident();\r
     if (functionCall == null)\r
-        functionCall = token.image;\r
+        functionCall = identToken.image;\r
     else\r
-        functionCall += "." + token.image;\r
+        functionCall += "." + identToken.image;\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case 66:\r
       jj_consume_token(66);\r
       name();\r
       break;\r
     default:\r
-      jj_la1[21] = jj_gen;\r
+      jj_la1[22] = jj_gen;\r
       ;\r
     }\r
   }\r
 \r
   final public void component_reference(String prevToken) throws ParseException {\r
-    jj_consume_token(IDENT);\r
-    String name = token.image;\r
+    Token identToken = null;\r
+    //IDENT [ array_subscripts ] [ "." component_reference ]\r
+            identToken = ident();\r
+    String name = identToken.image;\r
         // forIndex == true and prevToken != null => this is the second part of an enumeration in for-index\r
         if(forIndex == true) {\r
            if(prevToken != null) {\r
@@ -501,7 +533,7 @@ public class ExpressionParser implements ExpressionParserConstants {
                                 enumerationReferences.put(prevToken, new ArrayList<Token>());\r
                         }\r
                         List<Token> list = enumerationReferences.get(prevToken);\r
-                        list.add(token);\r
+                        list.add(identToken);\r
 \r
                 // forIndex == true and prevToken == null => this is the enumeration in for-index\r
                 } else {\r
@@ -509,7 +541,7 @@ public class ExpressionParser implements ExpressionParserConstants {
                                 enumerationReferences.put(name, new ArrayList<Token>());\r
                         }\r
                         List<Token> list = enumerationReferences.get(name);\r
-                        list.add(token);\r
+                        list.add(identToken);\r
         }\r
         } else {\r
             if(prevToken != null)\r
@@ -518,21 +550,21 @@ public class ExpressionParser implements ExpressionParserConstants {
                         references.put(name, new ArrayList<Token>());\r
                 }\r
                 List<Token> list = references.get(name);\r
-                list.add(token);\r
+                list.add(identToken);\r
 \r
                 if(functionCall != null) {\r
                   if(!functionCallReferences.containsKey(functionCall))\r
                       functionCallReferences.put(functionCall, new ArrayList<Token>());\r
             List<Token> functionReferencelist = getFunctionCallReferences().get(functionCall);\r
-            functionReferencelist.add(token);\r
+            functionReferencelist.add(identToken);\r
                 }\r
         }\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case 64:\r
-      array_subscripts();\r
+      array_subscripts(identToken);\r
       break;\r
     default:\r
-      jj_la1[22] = jj_gen;\r
+      jj_la1[23] = jj_gen;\r
       ;\r
     }\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -541,7 +573,7 @@ public class ExpressionParser implements ExpressionParserConstants {
       component_reference(name);\r
       break;\r
     default:\r
-      jj_la1[23] = jj_gen;\r
+      jj_la1[24] = jj_gen;\r
       ;\r
     }\r
   }\r
@@ -568,7 +600,7 @@ public class ExpressionParser implements ExpressionParserConstants {
       function_arguments();\r
       break;\r
     default:\r
-      jj_la1[24] = jj_gen;\r
+      jj_la1[25] = jj_gen;\r
       ;\r
     }\r
     jj_consume_token(61);\r
@@ -579,7 +611,7 @@ public class ExpressionParser implements ExpressionParserConstants {
   }\r
 \r
   final public void function_arguments() throws ParseException {\r
-    if (jj_2_2(2)) {\r
+    if (jj_2_2(2147483647)) {\r
       named_argument();\r
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
       case 69:\r
@@ -587,7 +619,7 @@ public class ExpressionParser implements ExpressionParserConstants {
         function_arguments();\r
         break;\r
       default:\r
-        jj_la1[25] = jj_gen;\r
+        jj_la1[26] = jj_gen;\r
         ;\r
       }\r
     } else {\r
@@ -622,18 +654,18 @@ public class ExpressionParser implements ExpressionParserConstants {
             for_indices();\r
             break;\r
           default:\r
-            jj_la1[26] = jj_gen;\r
+            jj_la1[27] = jj_gen;\r
             jj_consume_token(-1);\r
             throw new ParseException();\r
           }\r
           break;\r
         default:\r
-          jj_la1[27] = jj_gen;\r
+          jj_la1[28] = jj_gen;\r
           ;\r
         }\r
         break;\r
       default:\r
-        jj_la1[28] = jj_gen;\r
+        jj_la1[29] = jj_gen;\r
         jj_consume_token(-1);\r
         throw new ParseException();\r
       }\r
@@ -649,7 +681,7 @@ public class ExpressionParser implements ExpressionParserConstants {
         ;\r
         break;\r
       default:\r
-        jj_la1[29] = jj_gen;\r
+        jj_la1[30] = jj_gen;\r
         break label_8;\r
       }\r
       jj_consume_token(69);\r
@@ -658,8 +690,10 @@ public class ExpressionParser implements ExpressionParserConstants {
   }\r
 \r
   final public void for_index() throws ParseException {\r
-    jj_consume_token(IDENT);\r
-                forIndices.put(token, currentRange);\r
+    Token identToken = null;\r
+    //IDENT [ in expression ]\r
+            identToken = ident();\r
+                forIndices.put(identToken, currentRange);\r
                 forIndex = true;\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
     case 41:\r
@@ -672,7 +706,7 @@ public class ExpressionParser implements ExpressionParserConstants {
                   forRanges.add(forRange);\r
       break;\r
     default:\r
-      jj_la1[30] = jj_gen;\r
+      jj_la1[31] = jj_gen;\r
       ;\r
     }\r
                 forIndex = false;\r
@@ -685,7 +719,7 @@ void named_arguments() : {
 }\r
 */\r
   final public void named_argument() throws ParseException {\r
-    jj_consume_token(IDENT);\r
+    ident();\r
     jj_consume_token(86);\r
     expression();\r
   }\r
@@ -711,7 +745,7 @@ void named_arguments() : {
       expression();\r
       break;\r
     default:\r
-      jj_la1[31] = jj_gen;\r
+      jj_la1[32] = jj_gen;\r
       ;\r
     }\r
     label_9:\r
@@ -721,7 +755,7 @@ void named_arguments() : {
         ;\r
         break;\r
       default:\r
-        jj_la1[32] = jj_gen;\r
+        jj_la1[33] = jj_gen;\r
         break label_9;\r
       }\r
       jj_consume_token(69);\r
@@ -745,7 +779,7 @@ void named_arguments() : {
         expression();\r
         break;\r
       default:\r
-        jj_la1[33] = jj_gen;\r
+        jj_la1[34] = jj_gen;\r
         ;\r
       }\r
     }\r
@@ -760,7 +794,7 @@ void named_arguments() : {
         ;\r
         break;\r
       default:\r
-        jj_la1[34] = jj_gen;\r
+        jj_la1[35] = jj_gen;\r
         break label_10;\r
       }\r
       jj_consume_token(69);\r
@@ -768,11 +802,11 @@ void named_arguments() : {
     }\r
   }\r
 \r
-  final public void array_subscripts() throws ParseException {\r
-        if(ranges.get(token.image) == null) {\r
-                ranges.put(token.image, new ArrayList<List<Token>>());\r
+  final public void array_subscripts(Token prevToken) throws ParseException {\r
+        if(ranges.get(prevToken.image) == null) {\r
+                ranges.put(prevToken.image, new ArrayList<List<Token>>());\r
         }\r
-        List<List<Token>> rangesList = ranges.get(token.image);\r
+        List<List<Token>> rangesList = ranges.get(prevToken.image);\r
         currentRange = new ArrayList<Token>();\r
     jj_consume_token(64);\r
     subscript(currentRange);\r
@@ -783,7 +817,7 @@ void named_arguments() : {
         ;\r
         break;\r
       default:\r
-        jj_la1[35] = jj_gen;\r
+        jj_la1[36] = jj_gen;\r
         break label_11;\r
       }\r
       jj_consume_token(69);\r
@@ -803,7 +837,7 @@ void named_arguments() : {
             currentRange.add(token);\r
       break;\r
     default:\r
-      jj_la1[37] = jj_gen;\r
+      jj_la1[38] = jj_gen;\r
       if (jj_2_3(2147483647)) {\r
         functionCall = null;\r
         name();\r
@@ -824,7 +858,7 @@ void named_arguments() : {
             rangeIndex(rangeToken, false);\r
             break;\r
           default:\r
-            jj_la1[36] = jj_gen;\r
+            jj_la1[37] = jj_gen;\r
             ;\r
           }\r
             rangeToken.endColumn = token.endColumn;\r
@@ -832,7 +866,7 @@ void named_arguments() : {
                 currentRange.add(rangeToken);\r
           break;\r
         default:\r
-          jj_la1[38] = jj_gen;\r
+          jj_la1[39] = jj_gen;\r
           jj_consume_token(-1);\r
           throw new ParseException();\r
         }\r
@@ -841,6 +875,7 @@ void named_arguments() : {
   }\r
 \r
   final public void rangeIndex(Token rangeToken, boolean first) throws ParseException {\r
+  Token identToken = null;\r
   if(!first)\r
         rangeToken.image = rangeToken.image + ":";\r
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {\r
@@ -849,11 +884,11 @@ void named_arguments() : {
                 rangeToken.image = rangeToken.image + token.image;\r
       break;\r
     case IDENT:\r
-      jj_consume_token(IDENT);\r
-                rangeToken.image = rangeToken.image + token.image;\r
+      identToken = ident();\r
+                rangeToken.image = rangeToken.image + identToken;\r
       break;\r
     default:\r
-      jj_la1[39] = jj_gen;\r
+      jj_la1[40] = jj_gen;\r
       jj_consume_token(-1);\r
       throw new ParseException();\r
     }\r
@@ -881,8 +916,227 @@ void named_arguments() : {
   }\r
 \r
   private boolean jj_3R_13() {\r
-    if (jj_scan_token(IDENT)) return true;\r
+    if (jj_3R_14()) return true;\r
     if (jj_scan_token(86)) return true;\r
+    if (jj_3R_16()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_66() {\r
+    if (jj_scan_token(21)) return true;\r
+    if (jj_3R_70()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_36() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_scan_token(76)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(77)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(78)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(79)) return true;\r
+    }\r
+    }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_28() {\r
+    if (jj_scan_token(9)) return true;\r
+    if (jj_3R_27()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_32() {\r
+    if (jj_3R_36()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_30() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_32()) jj_scanpos = xsp;\r
+    if (jj_3R_33()) return true;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_34()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_50() {\r
+    if (jj_3R_14()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_55()) jj_scanpos = xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_56()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_35() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_scan_token(70)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(71)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(72)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(73)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(74)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(75)) return true;\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_23() {\r
+    if (jj_scan_token(67)) return true;\r
+    if (jj_3R_22()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_26()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_25() {\r
+    if (jj_scan_token(22)) return true;\r
+    if (jj_3R_24()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_29() {\r
+    if (jj_3R_30()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_31()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_15() {\r
+    if (jj_scan_token(66)) return true;\r
+    if (jj_3R_12()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_72() {\r
+    if (jj_scan_token(67)) return true;\r
+    if (jj_3R_71()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_77() {\r
+    if (jj_scan_token(41)) return true;\r
+    if (jj_3R_16()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_27() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_scan_token(12)) jj_scanpos = xsp;\r
+    if (jj_3R_29()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_12() {\r
+    if (jj_3R_14()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_15()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_24() {\r
+    if (jj_3R_27()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_28()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_74() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_73()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_65() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_53()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_62() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_65()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_66()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_56() {\r
+    if (jj_scan_token(66)) return true;\r
+    if (jj_3R_50()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_22() {\r
+    if (jj_3R_24()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_25()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_76() {\r
+    if (jj_3R_14()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_73() {\r
+    if (jj_3R_14()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_77()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_20() {\r
+    if (jj_3R_22()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_23()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_75() {\r
+    if (jj_scan_token(UNSIGNED_INTEGER)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_71() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_75()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_76()) return true;\r
+    }\r
     return false;\r
   }\r
 \r
@@ -891,29 +1145,353 @@ void named_arguments() : {
     return false;\r
   }\r
 \r
-  private boolean jj_3_1() {\r
+  private boolean jj_3R_52() {\r
+    if (jj_scan_token(68)) return true;\r
+    if (jj_3R_51()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_19() {\r
+    if (jj_scan_token(31)) return true;\r
+    if (jj_3R_16()) return true;\r
+    if (jj_scan_token(28)) return true;\r
+    if (jj_3R_16()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_21()) { jj_scanpos = xsp; break; }\r
+    }\r
+    if (jj_scan_token(15)) return true;\r
+    if (jj_3R_16()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_70() {\r
+    if (jj_3R_73()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_74()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_18() {\r
+    if (jj_3R_20()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_16() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_18()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_19()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_59() {\r
+    if (jj_3R_16()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_62()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_64() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_63()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3_3() {\r
     if (jj_3R_12()) return true;\r
     if (jj_scan_token(60)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_12() {\r
+  private boolean jj_3R_69() {\r
+    if (jj_3R_71()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_72()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_58() {\r
+    if (jj_3R_13()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_61()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_53() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_58()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_59()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_17() {\r
+    if (jj_3R_14()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_54() {\r
+    if (jj_3R_53()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_14() {\r
     if (jj_scan_token(IDENT)) return true;\r
     Token xsp;\r
     xsp = jj_scanpos;\r
-    if (jj_3R_14()) jj_scanpos = xsp;\r
+    if (jj_3R_17()) jj_scanpos = xsp;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3_3() {\r
+  private boolean jj_3R_68() {\r
     if (jj_3R_12()) return true;\r
+    if (jj_3R_49()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_48() {\r
+    if (jj_scan_token(85)) return true;\r
+    if (jj_3R_39()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_49() {\r
     if (jj_scan_token(60)) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_54()) jj_scanpos = xsp;\r
+    if (jj_scan_token(61)) return true;\r
     return false;\r
   }\r
 \r
-  private boolean jj_3R_14() {\r
-    if (jj_scan_token(66)) return true;\r
+  private boolean jj_3_1() {\r
+    if (jj_3R_12()) return true;\r
+    if (jj_scan_token(60)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_46() {\r
+    if (jj_scan_token(62)) return true;\r
+    if (jj_3R_53()) return true;\r
+    if (jj_scan_token(63)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_45() {\r
+    if (jj_scan_token(64)) return true;\r
+    if (jj_3R_51()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_52()) { jj_scanpos = xsp; break; }\r
+    }\r
+    if (jj_scan_token(65)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_55() {\r
+    if (jj_3R_60()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_44() {\r
+    if (jj_scan_token(60)) return true;\r
+    if (jj_3R_16()) return true;\r
+    if (jj_scan_token(61)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_67() {\r
+    if (jj_scan_token(67)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_63() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_67()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_68()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_69()) return true;\r
+    }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_43() {\r
+    if (jj_3R_50()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_42() {\r
     if (jj_3R_12()) return true;\r
+    if (jj_3R_49()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_47() {\r
+    if (jj_scan_token(84)) return true;\r
+    if (jj_3R_39()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_40() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_47()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_48()) return true;\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_57() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_16()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_39() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_scan_token(91)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(90)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(89)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(6)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(33)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_42()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_43()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_44()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_45()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_3R_46()) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(35)) return true;\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_60() {\r
+    if (jj_scan_token(64)) return true;\r
+    if (jj_3R_63()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_64()) { jj_scanpos = xsp; break; }\r
+    }\r
+    if (jj_scan_token(65)) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_26() {\r
+    if (jj_scan_token(67)) return true;\r
+    if (jj_3R_22()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_38() {\r
+    if (jj_3R_41()) return true;\r
+    if (jj_3R_37()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_31() {\r
+    if (jj_3R_35()) return true;\r
+    if (jj_3R_30()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_34() {\r
+    if (jj_3R_36()) return true;\r
+    if (jj_3R_33()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_41() {\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_scan_token(80)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(81)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(82)) {\r
+    jj_scanpos = xsp;\r
+    if (jj_scan_token(83)) return true;\r
+    }\r
+    }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_37() {\r
+    if (jj_3R_39()) return true;\r
+    Token xsp;\r
+    xsp = jj_scanpos;\r
+    if (jj_3R_40()) jj_scanpos = xsp;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_51() {\r
+    if (jj_3R_16()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_57()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_21() {\r
+    if (jj_scan_token(20)) return true;\r
+    if (jj_3R_16()) return true;\r
+    if (jj_scan_token(28)) return true;\r
+    if (jj_3R_16()) return true;\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_33() {\r
+    if (jj_3R_37()) return true;\r
+    Token xsp;\r
+    while (true) {\r
+      xsp = jj_scanpos;\r
+      if (jj_3R_38()) { jj_scanpos = xsp; break; }\r
+    }\r
+    return false;\r
+  }\r
+\r
+  private boolean jj_3R_61() {\r
+    if (jj_scan_token(69)) return true;\r
+    if (jj_3R_53()) return true;\r
     return false;\r
   }\r
 \r
@@ -928,7 +1506,7 @@ void named_arguments() : {
   private Token jj_scanpos, jj_lastpos;\r
   private int jj_la;\r
   private int jj_gen;\r
-  final private int[] jj_la1 = new int[40];\r
+  final private int[] jj_la1 = new int[41];\r
   static private int[] jj_la1_0;\r
   static private int[] jj_la1_1;\r
   static private int[] jj_la1_2;\r
@@ -938,13 +1516,13 @@ void named_arguments() : {
       jj_la1_init_2();\r
    }\r
    private static void jj_la1_init_0() {\r
-      jj_la1_0 = new int[] {0x100000,0x80001040,0x100000,0x80001040,0x0,0x0,0x400000,0x200,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x80001040,0x0,0x200000,0x200000,0x80001040,0x0,0x0,0x80001040,0x0,0x80001040,0x0,0x0,0x0,0x0,0x0,0x0,};\r
+      jj_la1_0 = new int[] {0x100000,0x80001040,0x100000,0x80001040,0x0,0x0,0x400000,0x200,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x80001040,0x0,0x200000,0x200000,0x80001040,0x0,0x0,0x80001040,0x0,0x80001040,0x0,0x0,0x0,0x0,0x0,0x0,};\r
    }\r
    private static void jj_la1_init_1() {\r
-      jj_la1_1 = new int[] {0x0,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x50000008,0x0,0x0,0x0,0x5000000a,0x0,0x0,0x0,0x5000000a,0x0,0x200,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,};\r
+      jj_la1_1 = new int[] {0x0,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x50000008,0x0,0x0,0x0,0x0,0x5000000a,0x0,0x0,0x0,0x5000000a,0x0,0x200,0x5000000a,0x0,0x5000000a,0x0,0x0,0x0,0x0,0x0,0x0,};\r
    }\r
    private static void jj_la1_init_2() {\r
-      jj_la1_2 = new int[] {0x0,0xf00f001,0x0,0xf00f001,0x8,0x8,0x0,0x0,0x0,0xfc0,0xfc0,0xf000,0xf000,0xf000,0xf0000,0x300000,0x300000,0xf0000,0x10,0xe000000,0x1000001,0x4,0x1,0x4,0xf00f001,0x20,0x20,0x20,0xf00f001,0x20,0x0,0xf00f001,0x20,0xf00f001,0x20,0x20,0x8,0x8,0x5000000,0x5000000,};\r
+      jj_la1_2 = new int[] {0x0,0xf00f001,0x0,0xf00f001,0x8,0x8,0x0,0x0,0x0,0xfc0,0xfc0,0xf000,0xf000,0xf000,0xf0000,0x300000,0x300000,0xf0000,0x10,0xe000000,0x1000001,0x1000000,0x4,0x1,0x4,0xf00f001,0x20,0x20,0x20,0xf00f001,0x20,0x0,0xf00f001,0x20,0xf00f001,0x20,0x20,0x8,0x8,0x5000000,0x5000000,};\r
    }\r
   final private JJCalls[] jj_2_rtns = new JJCalls[3];\r
   private boolean jj_rescan = false;\r
@@ -961,7 +1539,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 40; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 41; 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
@@ -976,7 +1554,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 40; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 41; 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
@@ -987,7 +1565,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 40; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 41; 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
@@ -998,7 +1576,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 40; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 41; 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
@@ -1008,7 +1586,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 40; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 41; 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
@@ -1018,7 +1596,7 @@ void named_arguments() : {
     token = new Token();\r
     jj_ntk = -1;\r
     jj_gen = 0;\r
-    for (int i = 0; i < 40; i++) jj_la1[i] = -1;\r
+    for (int i = 0; i < 41; 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
@@ -1135,7 +1713,7 @@ void named_arguments() : {
       la1tokens[jj_kind] = true;\r
       jj_kind = -1;\r
     }\r
-    for (int i = 0; i < 40; i++) {\r
+    for (int i = 0; i < 41; 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 b18a49ef62326641a450cd816be1c6d4ef7bd0d4..77ae566a00604db4d065330882dd3d19c7e05c86 100644 (file)
@@ -3,6 +3,7 @@ package org.simantics.sysdyn.modelParser;
 \r
 import java.util.ArrayList;\r
 \r
+@SuppressWarnings({"unused", "serial"})\r
 public class ModelParser implements ModelParserConstants {\r
 \r
   private ArrayList<Parameter> inputs = new ArrayList<Parameter>();\r
@@ -2683,11 +2684,6 @@ public class ModelParser implements ModelParserConstants {
     finally { jj_save(9, xla); }\r
   }\r
 \r
-  private boolean jj_3R_52() {\r
-    if (jj_3R_69()) return true;\r
-    return false;\r
-  }\r
-\r
   private boolean jj_3R_51() {\r
     if (jj_scan_token(59)) return true;\r
     return false;\r
@@ -3578,6 +3574,11 @@ public class ModelParser implements ModelParserConstants {
     return false;\r
   }\r
 \r
+  private boolean jj_3R_52() {\r
+    if (jj_3R_69()) return true;\r
+    return false;\r
+  }\r
+\r
   /** Generated Token Manager. */\r
   public ModelParserTokenManager token_source;\r
   SimpleCharStream jj_input_stream;\r
index 789c74744e5dd4a622519e66e44366e49f3cf69c..d0dc7828eb0c75fb4e9d6f75ccbb074127f88625 100644 (file)
@@ -48,7 +48,7 @@ TOKEN:
 | "*" | "/" | ".*" | "./"\r
 | "^" | ".^"\r
 | "=" | ":=" \r
-| <IDENT: ["a"-"z","A"-"Z","_"] (["a"-"z","A"-"Z","_","0"-"9"])* >\r
+| <IDENT: ["a"-"z","A"-"Z","_","\u20ac"] (["a"-"z","A"-"Z","_","\u20ac","0"-"9"])* >\r
 | <STRING: "\"" (~["\"", "\\", "\n"] | "\\" ~["\n"])* "\"">\r
     { matchedToken.image = matchedToken.image.substring(1,matchedToken.image.length()-1); }\r
 | <UNSIGNED_INTEGER: (["0"-"9"])+ >\r
index c4473fa3a8a0a1e061e8754cbd2bfe18c3627181..bc5fb62cbc05748868ad23ea775b7aa5b31e1fb5 100644 (file)
@@ -820,6 +820,12 @@ private int jjStartNfaWithStates_0(int pos, int kind, int state)
    return jjMoveNfa_0(state, pos + 1);\r
 }\r
 static final long[] jjbitVec0 = {
+   0x0L, 0x0L, 0x100000000000L, 0x0L
+};\r
+static final long[] jjbitVec1 = {
+   0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};\r
+static final long[] jjbitVec3 = {
    0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
 };\r
 private int jjMoveNfa_0(int startState, int curPos)\r
@@ -1055,24 +1061,35 @@ private int jjMoveNfa_0(int startState, int curPos)
       }\r
       else\r
       {\r
+         int hiByte = (int)(curChar >> 8);\r
+         int i1 = hiByte >> 6;\r
+         long l1 = 1L << (hiByte & 077);\r
          int i2 = (curChar & 0xff) >> 6;\r
          long l2 = 1L << (curChar & 077);\r
          do\r
          {\r
             switch(jjstateSet[--i])\r
             {\r
+               case 0:\r
+               case 2:\r
+                  if (!jjCanMove_0(hiByte, i1, i2, l1, l2))\r
+                     break;\r
+                  if (kind > 88)\r
+                     kind = 88;\r
+                  jjCheckNAdd(2);\r
+                  break;\r
                case 4:\r
                case 6:\r
-                  if ((jjbitVec0[i2] & l2) != 0L)\r
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))\r
                      jjCheckNAddStates(10, 12);\r
                   break;\r
                case 14:\r
                case 16:\r
-                  if ((jjbitVec0[i2] & l2) != 0L)\r
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))\r
                      jjCheckNAddStates(0, 2);\r
                   break;\r
                case 20:\r
-                  if ((jjbitVec0[i2] & l2) == 0L)\r
+                  if (!jjCanMove_2(hiByte, i1, i2, l1, l2))\r
                      break;\r
                   if (kind > 3)\r
                      kind = 3;\r
@@ -1098,6 +1115,38 @@ private int jjMoveNfa_0(int startState, int curPos)
 static final int[] jjnextStates = {
    14, 15, 18, 22, 23, 24, 28, 29, 13, 19, 4, 5, 7, 
 };\r
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)\r
+{\r
+   switch(hiByte)\r
+   {\r
+      case 32:\r
+         return ((jjbitVec0[i2] & l2) != 0L);\r
+      default :\r
+         return false;\r
+   }\r
+}\r
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)\r
+{\r
+   switch(hiByte)\r
+   {\r
+      case 0:\r
+         return ((jjbitVec3[i2] & l2) != 0L);\r
+      default :\r
+         if ((jjbitVec1[i1] & l1) != 0L)\r
+            return true;\r
+         return false;\r
+   }\r
+}\r
+private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2)\r
+{\r
+   switch(hiByte)\r
+   {\r
+      case 0:\r
+         return ((jjbitVec3[i2] & l2) != 0L);\r
+      default :\r
+         return false;\r
+   }\r
+}\r
 \r
 /** Token literal values. */\r
 public static final String[] jjstrLiteralImages = {\r