X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLParser.java;h=fc2242dce632d482d95170a31f9bafe86d8a1eb3;hp=527c66f5dc0b86e78988c8cf83b5e3e23970078a;hb=6d233d1b05176e40f634766537082d2a2ec65fd0;hpb=9a17c7c202c7104631fa5d899a4583a0cc2ad6ac 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 527c66f5d..fc2242dce 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 = 353; + private static final int STATE_COUNT = 358; private static final int TERMINAL_COUNT = 84; - private static final int NONTERMINAL_COUNT = 51; - private static final int PRODUCT_COUNT = 134; + private static final int NONTERMINAL_COUNT = 52; + 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[6588]; - private static final int[] ERROR_TABLE = new int[927]; + private static final short[] ACTION_TABLE = new short[6944]; + private static final int[] ERROR_TABLE = new int[940]; 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[1620]; + private static final short[] GOTO_TABLE = new short[1708]; private static final int[] PRODUCT_LHS = new int[PRODUCT_COUNT]; private static final short STATE_MASK = (short)0x0fff; @@ -161,6 +161,7 @@ public abstract class SCLParser { "listQualifier", "chrQuery", "verboseChrQuery", + "constraintSpec", "caseRhs", "guardedExpArrow", "equation", @@ -394,19 +395,19 @@ public abstract class SCLParser { return parse(0); } public Object parseCommands() { - return parse(337); + return parse(342); } public Object parseImport() { - return parse(345); + return parse(350); } public Object parseType() { - return parse(347); + return parse(352); } public Object parseExp() { - return parse(349); + return parse(354); } public Object parseEquationBlock() { - return parse(351); + return parse(356); } @@ -650,24 +651,26 @@ public abstract class SCLParser { case 117: return reduceVerboseCHRQuery(); case 118: - return reduceSimpleCaseRhs(); + return reduceConstraintSpec(); case 119: - return reduceGuardedCaseRhs(); + return reduceSimpleCaseRhs(); case 120: - return reduceGuardedExpArrow(); + return reduceGuardedCaseRhs(); case 121: - return reduceGuardEquation(); + return reduceGuardedExpArrow(); case 122: - return reduceBasicEquation(); + return reduceGuardEquation(); case 123: - return reduceEffect(); + return reduceBasicEquation(); case 124: - return reduceJustEtype(); + return reduceEffect(); case 125: - return reduceForAll(); + return reduceJustEtype(); case 126: - return reduceApplyType(); + return reduceForAll(); case 127: + return reduceApplyType(); + case 128: return reduceDummy(); default: @@ -821,7 +824,7 @@ public abstract class SCLParser { */ protected abstract Object reduceVerboseCHRStatement(); /** - * statement ::= CONSTRAINT ID atype* + * statement ::= CONSTRAINT constructor (WHERE constraintSpec)? */ protected abstract Object reduceConstraintStatement(); /** @@ -1136,6 +1139,10 @@ public abstract class SCLParser { * 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)? */