The Open Protocol Notation Programming Guide 1 Document Version 1 (4/23/2018)



Download 1.37 Mb.
Page13/24
Date23.04.2018
Size1.37 Mb.
#46651
1   ...   9   10   11   12   13   14   15   16   ...   24

Expressions

  1. Function Expressions


Expression ::= FunctionParameterList => (Expression | Block)

FunctionParameterList ::= Identifier | ( ( FunctionParameter ( , FunctionParameter )* )? )

FunctionParameter ::= PrimaryPattern Identifier | Identifier
      1. Conditional Expressions


Expression ::= Expression ? Expression : Expression
      1. Binder Expressions


Expression ::= from Bindings Expression

Expression ::= all Bindings Expression

Expression ::= some Bindings Expression

Bindings ::= ( Binding ( , Binding )* )

Binding ::= ( var | PrimaryPattern ) Identifier Constraint? ( in | = ) Expression


      1. 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]
      1. Endpoint Expression


Expression[6] ::= endpoint ( create | bind | exists )? EndpointReference

EndpointReference ::=

ReferencePatternWithoutArguments

( [ Expression ( , Expression )* ] )? ( over Expression[6] )?
      1. Logical and Bitwise Operator Expressions


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]
      1. 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]
      1. Bit Shift Operator Expressions


Expression[12] ::= Expression[12] << Expression[13]

Expression[12] ::= Expression[12] >> Expression[13]
      1. Range Expression


Expression[12] ::= Expression[13] .. Expression[13]
      1. In Expression


Expression[12] ::= Expression[13] in Expression[13]
      1. Is Expressions


Expression[12] ::= Expression[13] is Pattern
      1. As Expressions


Expression[12] ::= Expression[13] as Pattern
      1. 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] --
      1. Assignment Expressions


Expression[16] ::= NonInvokeStatementExpression = Expression

Expression[16] ::= NonInvokeStatementExpression += Expression

Expression[16] ::= NonInvokeStatementExpression -= Expression
      1. Reference Expressions


PrimaryExpression ::= Expression[16]

Expression[16] ::= ReferenceExpression

ReferenceExpression ::= QualifiedIdentifier GenericArguments?

GenericArguments ::= < Pattern ( , Pattern )* >
      1. Access Expressions


Expression[16] ::= Expression[16] [ Expression ]

Expression[16] ::= Expression[16] . Identifier

Expression[16] ::= Expression[16] # Identifier

Expression[16] ::= Expression[16] select xpath{BlockLiteral}
      1. Invoke Expressions


Expression[16] ::= InvokeExpression

InvokeExpression ::= Expression[16] InvokeArguments

InvokeArguments ::= ( ( InvokeArgument ( , InvokeArgument )* )? )

InvokeArgument ::= (ref | out)? Expression
      1. Parenthesized Expressions


Expression[16] ::= ( Expression )
      1. Literal Expressions


Expression[16] ::= Literal
      1. 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
      1. This Expression


Expression[16] ::= this
      1. Value Expression


Expression[16] ::= value
      1. Freeze Expression


Expression[17] ::= freeze Expression[16]


    1. Download 1.37 Mb.

      Share with your friends:
1   ...   9   10   11   12   13   14   15   16   ...   24




The database is protected by copyright ©ininet.org 2024
send message

    Main page