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%2FSCL.grammar;h=b7bb1924c680efc17326fc39fedd3b6d04bb17bd;hb=d9a283acefae11c2cc094ed1c7b74759f8166f17;hp=7551271af416cd323ab16f89e45d6d7a2bdfe4d1;hpb=f5b8a3d0b68ab33a78235c5dfa84fc1d45f6271e;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCL.grammar b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCL.grammar index 7551271af..b7bb1924c 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCL.grammar +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCL.grammar @@ -55,6 +55,7 @@ declaration WHERE ruleDeclarations # RuleDefinition | MAPPING_RELATION ID atype* # MappingRelationDefinition | bexp FOLLOWS ruleDeclarations # RelationDefinition + | RULESET ID WHERE statements # RulesetDefinition ; import @@ -137,7 +138,7 @@ lexp shift ESCAPED_SYMBOL, shift CHAR, shift LBRACE, shift WHEN, shift ATTACHED_HASH, shift SELECT, shift SELECT_FIRST, shift SELECT_DISTINCT, - shift TRANSFORMATION, shift EQ + shift TRANSFORMATION, shift EQ, shift CHR_SELECT ; faexp @@ -160,6 +161,8 @@ aexp | (DO | MDO) statements # Do | (SELECT | SELECT_FIRST | SELECT_DISTINCT) exp WHERE queryBlock # Select + | CHR_SELECT + exp WHERE verboseChrQuery # CHRSelect | ENFORCE queryBlock # Enforce //| WHEN queryBlock SEMICOLON exp # When | var # Var @@ -199,15 +202,23 @@ statement | exp FOLLOWS queryBlock # RuleStatement | chrQuery IMPLIES chrQuery # CHRStatement | WHEN verboseChrQuery THEN_AFTER_WHEN verboseChrQuery # VerboseCHRStatement - | CONSTRAINT ID atype* # ConstraintStatement + | CONSTRAINT constructor # ConstraintStatement + | INCLUDE ID aexp # LocalInclude ; +verboseChrQuery + = LBRACE chrQuery (SEMICOLON chrQuery)* RBRACE # VerboseCHRConjunction + ; + + chrQuery - = listQualifier (COMMA listQualifier)* # CHRQuery + = chrQueryPart (COMMA chrQueryPart)* # CHRConjunction ; -verboseChrQuery - = LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE # VerboseCHRQuery +chrQueryPart + = exp # CHRAtom + | exp EQUALS exp # CHREquals + | exp BINDS exp # CHRBinds ; listQualifier