ShockScript: Type expressions
Syntax
-
TypeExpression :
-
NonPrefixedTypeExpression
? NonPrefixedTypeExpression
-
TypeExpressionList :
-
TypeExpression
TypeExpressionList , TypeExpression
-
NonPrefixedTypeExpression :
-
*
this
void
null
[lookahead ≠ ( ] QualifiedIdentifier
( TypeExpression )
( TypeExpression , TypeExpressionList )
TupleTypeExpression
RecordTypeExpression
FunctionTypeExpression
NonPrefixedTypeExpression PropertyOperator
NonPrefixedTypeExpression [lookahead = . ] QueryOperator
NonPrefixedTypeExpression TypeArguments
NonPrefixedTypeExpression NonNull
NonPrefixedTypeExpression ?
-
TupleTypeExpression :
-
[ TypeExpression ]
[ TypeExpression , TypeExpressionList ]
[ TypeExpression , TypeExpressionList , ]
-
RecordTypeExpression :
-
{}
{ RecordTypeItemList }
-
RecordTypeItemList :
-
RecordTypeField
RecordTypeField , RecordTypeItemList
... TypeExpression
-
RecordTypeField :
-
NonAttributeQualifiedIdentifier : TypeExpression
-
FunctionTypeExpression :
-
function ( ) : TypeExpression
function ( FunctionTypeParameterList ) : TypeExpression
-
FunctionTypeParameterList :
-
FunctionTypeParameter
FunctionTypeParameterList , FunctionTypeParameter
-
FunctionTypeParameter :
-
... TypeExpressionopt
TypeExpression [lookahead ≠ = ]
TypeExpression =
-
TypeArguments :
-
. < TypeArgumentsList GenericGreaterThan
-
GenericGreaterThan :
-
>
first greater-than > from the offending token
-
TypeArgumentsList :
-
TypeExpression
TypeArgumentsList , TypeExpression