]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java
(refs #6924) Support for record field access syntax.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / parsing / parser / SCLParser.java
index 362bc51420da61eccbac64be9e5165a84bf88cf9..735974868ec8d4ae851d4490661b95eccf93bdd1 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 = 349;
+    private static final int STATE_COUNT = 345;
     private static final int TERMINAL_COUNT = 83;
     private static final int NONTERMINAL_COUNT = 51;
-    private static final int PRODUCT_COUNT = 133;
+    private static final int PRODUCT_COUNT = 132;
     
     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[6396];
-    private static final int[] ERROR_TABLE = new int[906];
+    private static final short[] ACTION_TABLE = new short[6360];
+    private static final int[] ERROR_TABLE = new int[895];
     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[1652];
+    private static final short[] GOTO_TABLE = new short[1711];
     private static final int[] PRODUCT_LHS = new int[PRODUCT_COUNT];
 
     private static final short STATE_MASK = (short)0x0fff;
@@ -72,7 +72,6 @@ public abstract class SCLParser {
         "HIDING",
         "ARROW",
         "COLON",
-        "WITH",
         "MINUS",
         "SYMBOL",
         "LESS",
@@ -103,6 +102,7 @@ public abstract class SCLParser {
         "IN",
         "THEN",
         "ELSE",
+        "WITH",
         "RBRACKET",
         "DOTDOT",
         "AT",
@@ -149,12 +149,12 @@ public abstract class SCLParser {
         "fundep",
         "ruleDeclaration",
         "query",
-        "queryBlock",
         "lexp",
         "symbol",
         "faexp",
         "accessor",
         "case",
+        "queryBlock",
         "stringLiteral",
         "symbolWithoutMinus",
         "listQualifier",
@@ -393,19 +393,19 @@ public abstract class SCLParser {
         return parse(0);
     }
     public Object parseCommands() {
-        return parse(334);
+        return parse(330);
     }
     public Object parseImport() {
-        return parse(341);
+        return parse(337);
     }
     public Object parseType() {
-        return parse(343);
+        return parse(339);
     }
     public Object parseExp() {
-        return parse(345);
+        return parse(341);
     }
     public Object parseEquationBlock() {
-        return parse(347);
+        return parse(343);
     }
 
 
@@ -425,246 +425,244 @@ public abstract class SCLParser {
         case 5:
             return reduceLocalTypeAnnotation();
         case 6:
-            return reduceEntityTypeAnnotation();
-        case 7:
             return reduceEquationBlock();
-        case 8:
+        case 7:
             return reduceModuleHeader();
-        case 9:
+        case 8:
             return reduceTypeAnnotation();
-        case 10:
+        case 9:
             return reduceValueDefinition();
-        case 11:
+        case 10:
             return reduceDataDefinition();
-        case 12:
+        case 11:
             return reduceTypeDefinition();
-        case 13:
+        case 12:
             return reduceClassDefinition();
-        case 14:
+        case 13:
             return reduceInstanceDefinition();
-        case 15:
+        case 14:
             return reduceDerivingInstanceDefinition();
-        case 16:
+        case 15:
             return reduceDocumentationString();
-        case 17:
+        case 16:
             return reduceAnnotation();
-        case 18:
+        case 17:
             return reducePrecedenceDefinition();
-        case 19:
+        case 18:
             return reduceJustImport();
-        case 20:
+        case 19:
             return reduceImportJava();
-        case 21:
+        case 20:
             return reduceEffectDefinition();
-        case 22:
+        case 21:
             return reduceRuleDefinition();
-        case 23:
+        case 22:
             return reduceMappingRelationDefinition();
-        case 24:
+        case 23:
             return reduceRelationDefinition();
-        case 25:
+        case 24:
             return reduceStatementCommand();
-        case 26:
+        case 25:
             return reduceImportCommand();
-        case 27:
+        case 26:
             return reduceGuardStatement();
-        case 28:
+        case 27:
             return reduceLetStatement();
-        case 29:
+        case 28:
             return reduceBindStatement();
-        case 30:
+        case 29:
             return reduceRuleStatement();
-        case 31:
+        case 30:
             return reduceCHRStatement();
-        case 32:
+        case 31:
             return reduceVerboseCHRStatement();
-        case 33:
+        case 32:
             return reduceConstraintStatement();
-        case 34:
+        case 33:
             return reduceDeclarations();
-        case 35:
+        case 34:
             return reduceField();
-        case 36:
+        case 35:
             return reduceFieldShorthand();
-        case 37:
+        case 36:
             return reduceVarId();
-        case 38:
+        case 37:
             return reduceEscapedSymbol();
-        case 39:
+        case 38:
             return reduceTupleConstructor();
-        case 40:
+        case 39:
             return reduceBinary();
-        case 41:
+        case 40:
             return reduceSimpleRhs();
-        case 42:
+        case 41:
             return reduceGuardedRhs();
-        case 43:
+        case 42:
             return reduceConstructor();
-        case 44:
+        case 43:
             return reduceRecordConstructor();
-        case 45:
+        case 44:
             return reduceContext();
-        case 46:
+        case 45:
             return reduceFundeps();
-        case 47:
+        case 46:
             return reduceTypeVar();
-        case 48:
+        case 47:
             return reduceTupleType();
-        case 49:
+        case 48:
             return reduceListType();
-        case 50:
+        case 49:
             return reduceListTypeConstructor();
-        case 51:
+        case 50:
             return reduceTupleTypeConstructor();
-        case 52:
+        case 51:
             return reduceLambda();
-        case 53:
+        case 52:
             return reduceLambdaMatch();
-        case 54:
+        case 53:
             return reduceLet();
-        case 55:
+        case 54:
             return reduceIf();
-        case 56:
+        case 55:
             return reduceMatch();
-        case 57:
+        case 56:
             return reduceDo();
-        case 58:
+        case 57:
             return reduceSelect();
-        case 59:
+        case 58:
             return reduceEnforce();
-        case 60:
+        case 59:
             return reduceVar();
-        case 61:
+        case 60:
             return reduceHashedId();
-        case 62:
+        case 61:
             return reduceBlank();
-        case 63:
+        case 62:
             return reduceInteger();
-        case 64:
+        case 63:
             return reduceFloat();
-        case 65:
+        case 64:
             return reduceString();
-        case 66:
+        case 65:
             return reduceChar();
-        case 67:
+        case 66:
             return reduceTuple();
-        case 68:
+        case 67:
             return reduceViewPattern();
-        case 69:
+        case 68:
             return reduceRightSection();
-        case 70:
+        case 69:
             return reduceLeftSection();
-        case 71:
+        case 70:
             return reduceListLiteral();
-        case 72:
+        case 71:
             return reduceRange();
-        case 73:
+        case 72:
             return reduceListComprehension();
-        case 74:
+        case 73:
             return reduceAs();
-        case 75:
+        case 74:
             return reduceRecord();
-        case 76:
+        case 75:
             return reduceTransformation();
-        case 77:
+        case 76:
             return reduceEq();
-        case 78:
+        case 77:
             return reduceRuleDeclarations();
-        case 79:
+        case 78:
             return reduceImportShowing();
-        case 80:
+        case 79:
             return reduceImportHiding();
-        case 81:
+        case 80:
             return reduceImportValueItem();
-        case 82:
+        case 81:
             return reduceFieldDescription();
-        case 83:
+        case 82:
             return reduceStatements();
-        case 84:
+        case 83:
             return reduceGuardedExpEq();
-        case 85:
+        case 84:
             return reduceFundep();
-        case 86:
+        case 85:
             return reduceQueryRuleDeclaration();
-        case 87:
+        case 86:
             return reduceAnnotation();
-        case 88:
+        case 87:
             return reduceGuardQuery();
-        case 89:
+        case 88:
             return reduceEqualsQuery();
-        case 90:
+        case 89:
             return reduceBindQuery();
-        case 91:
+        case 90:
             return reduceCompositeQuery();
+        case 91:
+            return reduceApply();
         case 92:
-            return reduceQueryBlock();
+            return reduceSymbol();
         case 93:
-            return reduceApply();
+            return reduceEscapedId();
         case 94:
-            return reduceSymbol();
+            return reduceMinus();
         case 95:
-            return reduceEscapedId();
+            return reduceLess();
         case 96:
-            return reduceMinus();
+            return reduceGreater();
         case 97:
-            return reduceLess();
+            return reduceDot();
         case 98:
-            return reduceGreater();
+            return reduceFieldAccess();
         case 99:
-            return reduceDot();
+            return reduceIdAccessor();
         case 100:
-            return reduceFieldAccess();
+            return reduceStringAccessor();
         case 101:
-            return reduceIdAccessor();
+            return reduceExpAccessor();
         case 102:
-            return reduceStringAccessor();
+            return reduceCase();
         case 103:
-            return reduceExpAccessor();
+            return reduceQueryBlock();
         case 104:
-            return reduceCase();
-        case 105:
             return reduceStringLiteral();
-        case 106:
+        case 105:
             return reduceSymbol();
-        case 107:
+        case 106:
             return reduceEscapedId();
-        case 108:
+        case 107:
             return reduceLess();
-        case 109:
+        case 108:
             return reduceGreater();
-        case 110:
+        case 109:
             return reduceDot();
-        case 111:
+        case 110:
             return reduceGuardQualifier();
-        case 112:
+        case 111:
             return reduceLetQualifier();
-        case 113:
+        case 112:
             return reduceBindQualifier();
-        case 114:
+        case 113:
             return reduceThenQualifier();
-        case 115:
+        case 114:
             return reduceCHRQuery();
-        case 116:
+        case 115:
             return reduceVerboseCHRQuery();
-        case 117:
+        case 116:
             return reduceSimpleCaseRhs();
-        case 118:
+        case 117:
             return reduceGuardedCaseRhs();
-        case 119:
+        case 118:
             return reduceGuardedExpArrow();
-        case 120:
+        case 119:
             return reduceGuardEquation();
-        case 121:
+        case 120:
             return reduceBasicEquation();
-        case 122:
+        case 121:
             return reduceEffect();
-        case 123:
+        case 122:
             return reduceJustEtype();
-        case 124:
+        case 123:
             return reduceForAll();
-        case 125:
+        case 124:
             return reduceApplyType();
-        case 126:
+        case 125:
             return reduceDummy();
 
         default:
@@ -709,10 +707,6 @@ public abstract class SCLParser {
      * exp ::= bexp (HASTYPE type)?
      */
     protected abstract Object reduceLocalTypeAnnotation();
-    /**
-     * exp ::= bexp COLON ID (queryBlock | WITH queryBlock?)?
-     */
-    protected abstract Object reduceEntityTypeAnnotation();
     /**
      * equationBlock ::= (equation (SEMICOLON equation)*)?
      */
@@ -1049,10 +1043,6 @@ public abstract class SCLParser {
      * query ::= QUERY_OP queryBlock
      */
     protected abstract Object reduceCompositeQuery();
-    /**
-     * queryBlock ::= LBRACE (query (SEMICOLON (query SEMICOLON)* query)?)? RBRACE
-     */
-    protected abstract Object reduceQueryBlock();
     /**
      * lexp ::= faexp faexp*
      */
@@ -1101,6 +1091,10 @@ public abstract class SCLParser {
      * case ::= exp caseRhs
      */
     protected abstract Object reduceCase();
+    /**
+     * queryBlock ::= LBRACE (query (SEMICOLON (query SEMICOLON)* query)?)? RBRACE
+     */
+    protected abstract Object reduceQueryBlock();
     /**
      * stringLiteral ::= BEGIN_STRING (SUSPEND_STRING exp CONTINUE_STRING)* END_STRING
      */