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=3e857b7f1bc8192ef7dc0fe55c80fcdc78f66ab5;hp=612b118ad3d7a3053b11a72d12e52e8fda90bdf5;hb=d9a283acefae11c2cc094ed1c7b74759f8166f17;hpb=747231cca0974ca9ed5f78caa6517ee9dcb8e4fc 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 612b118ad..3e857b7f1 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 = 357; + private static final int STATE_COUNT = 362; 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 NONTERMINAL_COUNT = 52; + private static final int PRODUCT_COUNT = 138; 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[6765]; - private static final int[] ERROR_TABLE = new int[949]; + private static final short[] ACTION_TABLE = new short[6832]; + private static final int[] ERROR_TABLE = new int[962]; 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[1647]; + private static final short[] GOTO_TABLE = new short[1953]; private static final int[] PRODUCT_LHS = new int[PRODUCT_COUNT]; private static final short STATE_MASK = (short)0x0fff; @@ -162,6 +162,7 @@ public abstract class SCLParser { "symbolWithoutMinus", "listQualifier", "chrQuery", + "chrQueryPart", "caseRhs", "guardedExpArrow", "equation", @@ -395,19 +396,19 @@ public abstract class SCLParser { return parse(0); } public Object parseCommands() { - return parse(341); + return parse(346); } public Object parseImport() { - return parse(349); + return parse(354); } public Object parseType() { - return parse(351); + return parse(356); } public Object parseExp() { - return parse(353); + return parse(358); } public Object parseEquationBlock() { - return parse(355); + return parse(360); } @@ -629,7 +630,7 @@ public abstract class SCLParser { case 106: return reduceQueryBlock(); case 107: - return reduceVerboseCHRQuery(); + return reduceVerboseCHRConjunction(); case 108: return reduceStringLiteral(); case 109: @@ -651,26 +652,32 @@ public abstract class SCLParser { case 117: return reduceThenQualifier(); case 118: - return reduceCHRQuery(); + return reduceCHRConjunction(); case 119: - return reduceSimpleCaseRhs(); + return reduceCHRAtom(); case 120: - return reduceGuardedCaseRhs(); + return reduceCHREquals(); case 121: - return reduceGuardedExpArrow(); + return reduceCHRBinds(); case 122: - return reduceGuardEquation(); + return reduceSimpleCaseRhs(); case 123: - return reduceBasicEquation(); + return reduceGuardedCaseRhs(); case 124: - return reduceEffect(); + return reduceGuardedExpArrow(); case 125: - return reduceJustEtype(); + return reduceGuardEquation(); case 126: - return reduceForAll(); + return reduceBasicEquation(); case 127: - return reduceApplyType(); + return reduceEffect(); case 128: + return reduceJustEtype(); + case 129: + return reduceForAll(); + case 130: + return reduceApplyType(); + case 131: return reduceDummy(); default: @@ -1116,9 +1123,9 @@ public abstract class SCLParser { */ protected abstract Object reduceQueryBlock(); /** - * verboseChrQuery ::= LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE + * verboseChrQuery ::= LBRACE chrQuery (SEMICOLON chrQuery)* RBRACE */ - protected abstract Object reduceVerboseCHRQuery(); + protected abstract Object reduceVerboseCHRConjunction(); /** * stringLiteral ::= BEGIN_STRING (SUSPEND_STRING exp CONTINUE_STRING)* END_STRING */ @@ -1140,9 +1147,21 @@ public abstract class SCLParser { */ protected abstract Object reduceThenQualifier(); /** - * chrQuery ::= (listQualifier COMMA)* listQualifier + * chrQuery ::= (chrQueryPart COMMA)* chrQueryPart + */ + protected abstract Object reduceCHRConjunction(); + /** + * chrQueryPart ::= exp + */ + protected abstract Object reduceCHRAtom(); + /** + * chrQueryPart ::= exp EQUALS exp + */ + protected abstract Object reduceCHREquals(); + /** + * chrQueryPart ::= exp BINDS exp */ - protected abstract Object reduceCHRQuery(); + protected abstract Object reduceCHRBinds(); /** * caseRhs ::= ARROW exp (WHERE statements)? */