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=3b3d5f7db3375beb39967744ddd3a43de7a02a92;hb=3d043320cdee8dda92758f4ea1c324a82c7d9094;hp=ea3df9722456cec4163ee9694498ea7b5e7716fb;hpb=21b02764131815561cb6161837ad47e623b2cd37;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 ea3df9722..3b3d5f7db 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 @@ -133,7 +133,7 @@ lexp = faexp+ # Apply, shift ID, shift LAMBDA, shift LAMBDA_MATCH, shift LET, shift INTEGER, shift BEGIN_STRING, shift IF, shift MATCH, shift DO, - shift MDO, shift ENFORCE, shift BLANK, + shift MDO, shift EDO, shift ENFORCE, shift BLANK, shift FLOAT, shift LPAREN, shift LBRACKET, shift ESCAPED_SYMBOL, shift CHAR, shift LBRACE, shift WHEN, shift ATTACHED_HASH, @@ -158,7 +158,7 @@ aexp | IF exp THEN exp (ELSE exp)? # If, shift HASTYPE, shift ELSE | MATCH exp WITH LBRACE case (SEMICOLON case)* RBRACE # Match - | (DO | MDO) statements # Do + | (DO | MDO | EDO) statements # Do | (SELECT | SELECT_FIRST | SELECT_DISTINCT) exp WHERE queryBlock # Select | CHR_SELECT @@ -206,12 +206,19 @@ statement | 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 @@ -237,6 +244,7 @@ guardedExpArrow field = ID EQUALS exp # Field | ID # FieldShorthand + | DOTDOT # Wildcard ; /****************************************************************************** @@ -292,6 +300,7 @@ btype atype = ID # TypeVar + | DOUBLE_LESS ID (COMMA ID)* DOUBLE_GREATER # PlainEffect | LPAREN (type (COMMA type)*)? RPAREN # TupleType | LBRACKET type RBRACKET # ListType | LBRACKET RBRACKET # ListTypeConstructor @@ -313,6 +322,8 @@ symbol | MINUS # Minus | LESS # Less | GREATER # Greater + | DOUBLE_LESS # DoubleLess + | DOUBLE_GREATER # DoubleGreater | SEPARATED_DOT # Dot ;