]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java
(refs #7371) Support for select keyword for CHR constraints
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / parsing / parser / SCLParser.java
index fc2242dce632d482d95170a31f9bafe86d8a1eb3..612b118ad3d7a3053b11a72d12e52e8fda90bdf5 100644 (file)
@@ -13,18 +13,18 @@ public abstract class SCLParser {
     public static final boolean TRACE = false;
 
     private static final int INITIAL_CAPACITY = 16;
-    private static final int STATE_COUNT = 358;
-    private static final int TERMINAL_COUNT = 84;
-    private static final int NONTERMINAL_COUNT = 52;
+    private static final int STATE_COUNT = 357;
+    private static final int TERMINAL_COUNT = 85;
+    private static final int NONTERMINAL_COUNT = 51;
     private static final int PRODUCT_COUNT = 135;
     
     private static final int[] ACTION_ROW_ID = new int[STATE_COUNT];
     private static final int[] ACTION_COLUMN_ID = new int[TERMINAL_COUNT];
-    private static final short[] ACTION_TABLE = new short[6944];
-    private static final int[] ERROR_TABLE = new int[940];
+    private static final short[] ACTION_TABLE = new short[6765];
+    private static final int[] ERROR_TABLE = new int[949];
     private static final int[] GOTO_ROW_ID = new int[STATE_COUNT];
     private static final int[] GOTO_COLUMN_ID = new int[NONTERMINAL_COUNT];
-    private static final short[] GOTO_TABLE = new short[1708];
+    private static final short[] GOTO_TABLE = new short[1647];
     private static final int[] PRODUCT_LHS = new int[PRODUCT_COUNT];
 
     private static final short STATE_MASK = (short)0x0fff;
@@ -99,6 +99,7 @@ public abstract class SCLParser {
         "SELECT_DISTINCT",
         "TRANSFORMATION",
         "EQ",
+        "CHR_SELECT",
         "ATTACHED_DOT",
         "IN",
         "THEN",
@@ -156,12 +157,11 @@ public abstract class SCLParser {
         "accessor",
         "case",
         "queryBlock",
+        "verboseChrQuery",
         "stringLiteral",
         "symbolWithoutMinus",
         "listQualifier",
         "chrQuery",
-        "verboseChrQuery",
-        "constraintSpec",
         "caseRhs",
         "guardedExpArrow",
         "equation",
@@ -395,19 +395,19 @@ public abstract class SCLParser {
         return parse(0);
     }
     public Object parseCommands() {
-        return parse(342);
+        return parse(341);
     }
     public Object parseImport() {
-        return parse(350);
+        return parse(349);
     }
     public Object parseType() {
-        return parse(352);
+        return parse(351);
     }
     public Object parseExp() {
-        return parse(354);
+        return parse(353);
     }
     public Object parseEquationBlock() {
-        return parse(356);
+        return parse(355);
     }
 
 
@@ -535,123 +535,123 @@ public abstract class SCLParser {
         case 59:
             return reduceSelect();
         case 60:
-            return reduceEnforce();
+            return reduceCHRSelect();
         case 61:
-            return reduceVar();
+            return reduceEnforce();
         case 62:
-            return reduceHashedId();
+            return reduceVar();
         case 63:
-            return reduceBlank();
+            return reduceHashedId();
         case 64:
-            return reduceInteger();
+            return reduceBlank();
         case 65:
-            return reduceFloat();
+            return reduceInteger();
         case 66:
-            return reduceString();
+            return reduceFloat();
         case 67:
-            return reduceChar();
+            return reduceString();
         case 68:
-            return reduceTuple();
+            return reduceChar();
         case 69:
-            return reduceViewPattern();
+            return reduceTuple();
         case 70:
-            return reduceRightSection();
+            return reduceViewPattern();
         case 71:
-            return reduceLeftSection();
+            return reduceRightSection();
         case 72:
-            return reduceListLiteral();
+            return reduceLeftSection();
         case 73:
-            return reduceRange();
+            return reduceListLiteral();
         case 74:
-            return reduceListComprehension();
+            return reduceRange();
         case 75:
-            return reduceAs();
+            return reduceListComprehension();
         case 76:
-            return reduceRecord();
+            return reduceAs();
         case 77:
-            return reduceTransformation();
+            return reduceRecord();
         case 78:
-            return reduceEq();
+            return reduceTransformation();
         case 79:
-            return reduceRuleDeclarations();
+            return reduceEq();
         case 80:
-            return reduceStatements();
+            return reduceRuleDeclarations();
         case 81:
-            return reduceImportShowing();
+            return reduceStatements();
         case 82:
-            return reduceImportHiding();
+            return reduceImportShowing();
         case 83:
-            return reduceImportValueItem();
+            return reduceImportHiding();
         case 84:
-            return reduceFieldDescription();
+            return reduceImportValueItem();
         case 85:
-            return reduceGuardedExpEq();
+            return reduceFieldDescription();
         case 86:
-            return reduceFundep();
+            return reduceGuardedExpEq();
         case 87:
-            return reduceQueryRuleDeclaration();
+            return reduceFundep();
         case 88:
-            return reduceAnnotation();
+            return reduceQueryRuleDeclaration();
         case 89:
-            return reduceGuardQuery();
+            return reduceAnnotation();
         case 90:
-            return reduceEqualsQuery();
+            return reduceGuardQuery();
         case 91:
-            return reduceBindQuery();
+            return reduceEqualsQuery();
         case 92:
-            return reduceCompositeQuery();
+            return reduceBindQuery();
         case 93:
-            return reduceApply();
+            return reduceCompositeQuery();
         case 94:
-            return reduceSymbol();
+            return reduceApply();
         case 95:
-            return reduceEscapedId();
+            return reduceSymbol();
         case 96:
-            return reduceMinus();
+            return reduceEscapedId();
         case 97:
-            return reduceLess();
+            return reduceMinus();
         case 98:
-            return reduceGreater();
+            return reduceLess();
         case 99:
-            return reduceDot();
+            return reduceGreater();
         case 100:
-            return reduceFieldAccess();
+            return reduceDot();
         case 101:
-            return reduceIdAccessor();
+            return reduceFieldAccess();
         case 102:
-            return reduceStringAccessor();
+            return reduceIdAccessor();
         case 103:
-            return reduceExpAccessor();
+            return reduceStringAccessor();
         case 104:
-            return reduceCase();
+            return reduceExpAccessor();
         case 105:
-            return reduceQueryBlock();
+            return reduceCase();
         case 106:
-            return reduceStringLiteral();
+            return reduceQueryBlock();
         case 107:
-            return reduceSymbol();
+            return reduceVerboseCHRQuery();
         case 108:
-            return reduceEscapedId();
+            return reduceStringLiteral();
         case 109:
-            return reduceLess();
+            return reduceSymbol();
         case 110:
-            return reduceGreater();
+            return reduceEscapedId();
         case 111:
-            return reduceDot();
+            return reduceLess();
         case 112:
-            return reduceGuardQualifier();
+            return reduceGreater();
         case 113:
-            return reduceLetQualifier();
+            return reduceDot();
         case 114:
-            return reduceBindQualifier();
+            return reduceGuardQualifier();
         case 115:
-            return reduceThenQualifier();
+            return reduceLetQualifier();
         case 116:
-            return reduceCHRQuery();
+            return reduceBindQualifier();
         case 117:
-            return reduceVerboseCHRQuery();
+            return reduceThenQualifier();
         case 118:
-            return reduceConstraintSpec();
+            return reduceCHRQuery();
         case 119:
             return reduceSimpleCaseRhs();
         case 120:
@@ -824,7 +824,7 @@ public abstract class SCLParser {
      */
     protected abstract Object reduceVerboseCHRStatement();
     /**
-     * statement ::= CONSTRAINT constructor (WHERE constraintSpec)?
+     * statement ::= CONSTRAINT constructor
      */
     protected abstract Object reduceConstraintStatement();
     /**
@@ -931,6 +931,10 @@ public abstract class SCLParser {
      * aexp ::= (SELECT | SELECT_FIRST | SELECT_DISTINCT) exp WHERE queryBlock
      */
     protected abstract Object reduceSelect();
+    /**
+     * aexp ::= CHR_SELECT exp WHERE verboseChrQuery
+     */
+    protected abstract Object reduceCHRSelect();
     /**
      * aexp ::= ENFORCE queryBlock
      */
@@ -1111,6 +1115,10 @@ public abstract class SCLParser {
      * queryBlock ::= LBRACE (query (SEMICOLON (query SEMICOLON)* query)?)? RBRACE
      */
     protected abstract Object reduceQueryBlock();
+    /**
+     * verboseChrQuery ::= LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE
+     */
+    protected abstract Object reduceVerboseCHRQuery();
     /**
      * stringLiteral ::= BEGIN_STRING (SUSPEND_STRING exp CONTINUE_STRING)* END_STRING
      */
@@ -1135,14 +1143,6 @@ public abstract class SCLParser {
      * chrQuery ::= (listQualifier COMMA)* listQualifier
      */
     protected abstract Object reduceCHRQuery();
-    /**
-     * verboseChrQuery ::= LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE
-     */
-    protected abstract Object reduceVerboseCHRQuery();
-    /**
-     * constraintSpec ::= LBRACE exp (SEMICOLON exp)* RBRACE
-     */
-    protected abstract Object reduceConstraintSpec();
     /**
      * caseRhs ::= ARROW exp (WHERE statements)?
      */