Function Expressions
Expression ::= FunctionParameterList => (Expression | Block)
FunctionParameterList ::= Identifier | ( ( FunctionParameter ( , FunctionParameter )* )? )
FunctionParameter ::= PrimaryPattern Identifier | Identifier
Conditional Expressions
Expression ::= Expression ? Expression : Expression
Binder Expressions
Expression ::= from Bindings Expression
Expression ::= all Bindings Expression
Expression ::= some Bindings Expression
Bindings ::= ( Binding ( , Binding )* )
Binding ::= ( var | PrimaryPattern ) Identifier Constraint? ( in | = ) Expression
Logical Operator Expressions
Expression[3] ::= Expression[4] ?? Expression[3]
Expression[4] ::= Expression[4] || Expression[5]
Expression[5] ::= Expression[5] && Expression[6]
Expression[16] ::= ! Expression[16]
Endpoint Expression
Expression[6] ::= endpoint ( create | bind | exists )? EndpointReference
EndpointReference ::=
ReferencePatternWithoutArguments
( [ Expression ( , Expression )* ] )? ( over Expression[6] )?
Expression[7] ::= Expression[7] | Expression[8]
Expression[8] ::= Expression[8] ^ Expression[9]
Expression[9] ::= Expression[9] & Expression[10]
Expression[6] ::= Expression[6] ==> Expression[7]
Expression[6] ::= Expression[6] <=> Expression[7]
Expression[16] ::= ~ Expression[16]
Expression[16] ::= ! Expression[16]
Relational Operator Expressions
Expression[10] ::= Expression[10] == Expression[11]
Expression[10] ::= Expression[10] != Expression[11]
Expression[11] ::= Expression[11] > Expression[12]
Expression[11] ::= Expression[11] >= Expression[12]
Expression[11] ::= Expression[11] < Expression[12]
Expression[11] ::= Expression[11] <= Expression[12]
Bit Shift Operator Expressions
Expression[12] ::= Expression[12] << Expression[13]
Expression[12] ::= Expression[12] >> Expression[13]
Range Expression
Expression[12] ::= Expression[13] .. Expression[13]
In Expression
Expression[12] ::= Expression[13] in Expression[13]
Expression[12] ::= Expression[13] is Pattern
As Expressions
Expression[12] ::= Expression[13] as Pattern
Arithmetic Operator Expressions
Expression[13] ::= Expression[13] + Expression[14]
Expression[13] ::= Expression[13] - Expression[14]
Expression[14] ::= Expression[14] * Expression[16]
Expression[14] ::= Expression[14] / Expression[16]
Expression[14] ::= Expression[14] % Expression[16]
Expression[16] ::= + Expression[16]
Expression[16] ::= - Expression[16]
Expression[16] ::= Expression[16] ++
Expression[16] ::= Expression[16] --
Assignment Expressions
Expression[16] ::= NonInvokeStatementExpression = Expression
Expression[16] ::= NonInvokeStatementExpression += Expression
Expression[16] ::= NonInvokeStatementExpression -= Expression
Reference Expressions
PrimaryExpression ::= Expression[16]
Expression[16] ::= ReferenceExpression
ReferenceExpression ::= QualifiedIdentifier GenericArguments?
GenericArguments ::= < Pattern ( , Pattern )* >
Expression[16] ::= Expression[16] [ Expression ]
Expression[16] ::= Expression[16] . Identifier
Expression[16] ::= Expression[16] # Identifier
Expression[16] ::= Expression[16] select xpath{BlockLiteral}
Invoke Expressions
Expression[16] ::= InvokeExpression
InvokeExpression ::= Expression[16] InvokeArguments
InvokeArguments ::= ( ( InvokeArgument ( , InvokeArgument )* )? )
InvokeArgument ::= (ref | out)? Expression
Expression[16] ::= ( Expression )
Literal Expressions
Expression[16] ::= Literal
Creation Expressions
Expression[16] ::= { ( KeyInitializer ( , KeyInitializer )* ,? )? }
Expression[16] ::= { ( Expression ( , Expression )* ,? )? }
Expression[16] ::= [ ( Expression ( , Expression )* ,? )? ]
Expression[16] ::= new ReferencePatternWithoutArguments InvokeArguments
Expression[16] ::= new InitializerExpression
InitializerExpression ::=
ReferencePatternWithoutArguments { ( FieldInitializer ( , FieldInitializer)* ,? )? }
KeyInitializer ::= Expression = Expression
FieldInitializer ::= (Identifier | exception) = Expression
Expression[16] ::= this
Value Expression
Expression[16] ::= value
Freeze Expression
Expression[17] ::= freeze Expression[16]
Share with your friends: |