X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLParser.java;h=735974868ec8d4ae851d4490661b95eccf93bdd1;hb=d5c76b143c0000994bb76c40f0ea74354eb5ce8a;hp=362bc51420da61eccbac64be9e5165a84bf88cf9;hpb=74de2d9be56f36e925a0a5818f4b11a766812cff;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java index 362bc5142..735974868 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLParser.java @@ -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 */