X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLParser.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLParser.java;h=612b118ad3d7a3053b11a72d12e52e8fda90bdf5;hb=292e64ba21f8044df19884dc3e61fe5e292a82df;hp=fc2242dce632d482d95170a31f9bafe86d8a1eb3;hpb=e81aaf01a022b7f9fd54924f843a8f8594682126;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 fc2242dce..612b118ad 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 = 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)? */