|
|
|
@ -373,8 +373,8 @@ Expression = |
|
|
|
(. nextTokenIsPotentialStartOfXmlMode = true; .) |
|
|
|
(. nextTokenIsPotentialStartOfXmlMode = true; .) |
|
|
|
( |
|
|
|
( |
|
|
|
SimpleExpressionWithSuffix { BinaryOperator SimpleExpressionWithSuffix } |
|
|
|
SimpleExpressionWithSuffix { BinaryOperator SimpleExpressionWithSuffix } |
|
|
|
/* TODO: operators */ |
|
|
|
|
|
|
|
| NewExpression |
|
|
|
| NewExpression |
|
|
|
|
|
|
|
| ConditionalExpression |
|
|
|
) |
|
|
|
) |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
@ -383,7 +383,7 @@ BinaryOperator = |
|
|
|
| "=" | "<>" | "<" | ">" | "<=" | ">=" |
|
|
|
| "=" | "<>" | "<" | ">" | "<=" | ">=" |
|
|
|
| "Like" | "&" | "And" | "AndAlso" | "Or" | "OrElse" |
|
|
|
| "Like" | "&" | "And" | "AndAlso" | "Or" | "OrElse" |
|
|
|
| "Xor" | "<<" | ">>" | "Is" | "IsNot" |
|
|
|
| "Xor" | "<<" | ">>" | "Is" | "IsNot" |
|
|
|
| "^=" | "*=" | "/=" | "\\=" | "+=" | "-=" | "&=" | "To" | ":=" |
|
|
|
| "^=" | "*=" | "/=" | "\\=" | "+=" | "-=" | "&=" | "<<=" | ">>=" | "To" | ":=" |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
UnaryOperator = |
|
|
|
UnaryOperator = |
|
|
|
@ -396,6 +396,7 @@ SimpleExpressionWithSuffix = |
|
|
|
( |
|
|
|
( |
|
|
|
SimpleExpression { ExpressionSuffix } |
|
|
|
SimpleExpression { ExpressionSuffix } |
|
|
|
| "TypeOf" SimpleExpressionWithSuffix "Is" TypeName |
|
|
|
| "TypeOf" SimpleExpressionWithSuffix "Is" TypeName |
|
|
|
|
|
|
|
| CastExpression |
|
|
|
). |
|
|
|
). |
|
|
|
|
|
|
|
|
|
|
|
SimpleExpression = |
|
|
|
SimpleExpression = |
|
|
|
@ -427,6 +428,36 @@ ExpressionSuffix = |
|
|
|
| ( "." | "!" ) IdentifierOrKeyword |
|
|
|
| ( "." | "!" ) IdentifierOrKeyword |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CastExpression = |
|
|
|
|
|
|
|
SimpleCastExpression | ("DirectCast" | "TryCast" | "CType") "(" Expression "," TypeName ")" |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SimpleCastExpression = |
|
|
|
|
|
|
|
( |
|
|
|
|
|
|
|
"CBool" | |
|
|
|
|
|
|
|
"CByte" | |
|
|
|
|
|
|
|
"CChar" | |
|
|
|
|
|
|
|
"CDate" | |
|
|
|
|
|
|
|
"CDec" | |
|
|
|
|
|
|
|
"CDbl" | |
|
|
|
|
|
|
|
"CInt" | |
|
|
|
|
|
|
|
"CLng" | |
|
|
|
|
|
|
|
"CObj" | |
|
|
|
|
|
|
|
"CSByte" | |
|
|
|
|
|
|
|
"CShort" | |
|
|
|
|
|
|
|
"CSng" | |
|
|
|
|
|
|
|
"CStr" | |
|
|
|
|
|
|
|
"CUInt" | |
|
|
|
|
|
|
|
"CULng" | |
|
|
|
|
|
|
|
"CUShort" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
"(" Expression ")" |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ConditionalExpression = |
|
|
|
|
|
|
|
"If" "(" Expression "," Expression [ "," Expression ] ")" |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
XmlLiteral = |
|
|
|
XmlLiteral = |
|
|
|
(. PushContext(Context.Xml, t); .) |
|
|
|
(. PushContext(Context.Xml, t); .) |
|
|
|
{ XmlComment } XmlElement { XmlComment } |
|
|
|
{ XmlComment } XmlElement { XmlComment } |
|
|
|
|