|
|
|
@ -276,10 +276,14 @@ OptionStatement = |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
ImportsStatement = |
|
|
|
ImportsStatement = |
|
|
|
"Imports" |
|
|
|
"Imports" |
|
|
|
(. nextTokenIsStartOfImportsOrAccessExpression = true; |
|
|
|
(. |
|
|
|
if (la != null) |
|
|
|
nextTokenIsStartOfImportsOrAccessExpression = true; |
|
|
|
CurrentBlock.lastExpressionStart = la.Location; .) { ANY } StatementTerminator |
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; |
|
|
|
|
|
|
|
.) |
|
|
|
|
|
|
|
{ ANY } |
|
|
|
|
|
|
|
StatementTerminator |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
AttributeBlock = |
|
|
|
AttributeBlock = |
|
|
|
@ -305,9 +309,7 @@ TypeDeclaration = |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
ClassOrModuleOrStructureTypeDeclaration = |
|
|
|
ClassOrModuleOrStructureTypeDeclaration = |
|
|
|
( "Module" | "Class" | "Structure" ) (. |
|
|
|
( "Module" | "Class" | "Structure" ) (. PushContext(Context.IdentifierExpected, la, t); .) ANY (. PopContext(); .) |
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; PushContext(Context.IdentifierExpected, la, t); .) ANY (. PopContext(); .) |
|
|
|
|
|
|
|
[ "(" "Of" [ "Out" | "In" ] IdentifierExceptOut [ "As" GenericConstraintList ] { "," [ "Out" | "In" ] IdentifierExceptOut [ "As" GenericConstraintList ] } ")" ] { ANY } [ StatementTerminator ] |
|
|
|
[ "(" "Of" [ "Out" | "In" ] IdentifierExceptOut [ "As" GenericConstraintList ] { "," [ "Out" | "In" ] IdentifierExceptOut [ "As" GenericConstraintList ] } ")" ] { ANY } [ StatementTerminator ] |
|
|
|
[ "Inherits" { ANY } StatementTerminator ] |
|
|
|
[ "Inherits" { ANY } StatementTerminator ] |
|
|
|
[ "Implements" { ANY } StatementTerminator ] |
|
|
|
[ "Implements" { ANY } StatementTerminator ] |
|
|
|
@ -327,8 +329,7 @@ GenericConstraintList = |
|
|
|
|
|
|
|
|
|
|
|
DelegateTypeDeclaration = |
|
|
|
DelegateTypeDeclaration = |
|
|
|
"Delegate" ("Sub" | "Function") |
|
|
|
"Delegate" ("Sub" | "Function") |
|
|
|
(. if (la != null) |
|
|
|
(. PushContext(Context.IdentifierExpected, la, t); .) ANY (. PopContext(); .) |
|
|
|
CurrentBlock.lastExpressionStart = la.Location; PushContext(Context.IdentifierExpected, la, t); .) ANY (. PopContext(); .) |
|
|
|
|
|
|
|
[ "(" [ ParameterList ] ")" ] [ "As" TypeName ] StatementTerminator |
|
|
|
[ "(" [ ParameterList ] ")" ] [ "As" TypeName ] StatementTerminator |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
@ -384,13 +385,7 @@ OperatorDeclaration = |
|
|
|
|
|
|
|
|
|
|
|
MemberVariableOrConstantDeclaration = |
|
|
|
MemberVariableOrConstantDeclaration = |
|
|
|
[ "Const" ] |
|
|
|
[ "Const" ] |
|
|
|
(. |
|
|
|
(. PushContext(Context.IdentifierExpected, la, t); .) IdentifierForFieldDeclaration (. PopContext(); .) [ "As" TypeName ] [ "=" Expression ] StatementTerminator |
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; |
|
|
|
|
|
|
|
PushContext(Context.IdentifierExpected, la, t); |
|
|
|
|
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; |
|
|
|
|
|
|
|
.) IdentifierForFieldDeclaration (. PopContext(); .) [ "As" TypeName ] [ "=" Expression ] StatementTerminator |
|
|
|
|
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
ParameterList = |
|
|
|
ParameterList = |
|
|
|
@ -428,11 +423,7 @@ StatementTerminatorAndBlock = |
|
|
|
Expression |
|
|
|
Expression |
|
|
|
(.NamedState:startOfExpression.) |
|
|
|
(.NamedState:startOfExpression.) |
|
|
|
= |
|
|
|
= |
|
|
|
(. if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; .) |
|
|
|
|
|
|
|
(. PushContext(Context.Expression, la, t); .) |
|
|
|
(. PushContext(Context.Expression, la, t); .) |
|
|
|
(. if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; .) |
|
|
|
|
|
|
|
SimpleExpressionWithSuffix { BinaryOperator SimpleExpressionWithSuffix } |
|
|
|
SimpleExpressionWithSuffix { BinaryOperator SimpleExpressionWithSuffix } |
|
|
|
(. PopContext(); .) |
|
|
|
(. PopContext(); .) |
|
|
|
. |
|
|
|
. |
|
|
|
@ -450,6 +441,7 @@ UnaryOperator = |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
SimpleExpressionWithSuffix = |
|
|
|
SimpleExpressionWithSuffix = |
|
|
|
|
|
|
|
(. PushContext(Context.Expression, la, t); .) |
|
|
|
{ UnaryOperator } |
|
|
|
{ UnaryOperator } |
|
|
|
( |
|
|
|
( |
|
|
|
SimpleExpression { ExpressionSuffix } |
|
|
|
SimpleExpression { ExpressionSuffix } |
|
|
|
@ -457,12 +449,11 @@ SimpleExpressionWithSuffix = |
|
|
|
| NewExpression |
|
|
|
| NewExpression |
|
|
|
| CollectionInitializer |
|
|
|
| CollectionInitializer |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
(. PopContext(); .) |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
SimpleExpression |
|
|
|
SimpleExpression = |
|
|
|
(. if (la != null) |
|
|
|
(. PushContext(Context.Expression, la, t); .) |
|
|
|
CurrentBlock.lastExpressionStart = la.Location; .) |
|
|
|
|
|
|
|
= |
|
|
|
|
|
|
|
( Literal |
|
|
|
( Literal |
|
|
|
| ( "(" Expression ")" ) |
|
|
|
| ( "(" Expression ")" ) |
|
|
|
| IdentifierForExpressionStart |
|
|
|
| IdentifierForExpressionStart |
|
|
|
@ -475,6 +466,7 @@ SimpleExpression |
|
|
|
| CastExpression |
|
|
|
| CastExpression |
|
|
|
| ConditionalExpression |
|
|
|
| ConditionalExpression |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
(. PopContext(); .) |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
NewExpression = |
|
|
|
NewExpression = |
|
|
|
@ -911,12 +903,7 @@ Literal = |
|
|
|
"MyClass" |
|
|
|
"MyClass" |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
Statement |
|
|
|
Statement = |
|
|
|
(. |
|
|
|
|
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; |
|
|
|
|
|
|
|
.) |
|
|
|
|
|
|
|
= |
|
|
|
|
|
|
|
VariableDeclarationStatement |
|
|
|
VariableDeclarationStatement |
|
|
|
| WithOrLockStatement |
|
|
|
| WithOrLockStatement |
|
|
|
| AddOrRemoveHandlerStatement |
|
|
|
| AddOrRemoveHandlerStatement |
|
|
|
@ -938,13 +925,7 @@ Statement |
|
|
|
|
|
|
|
|
|
|
|
VariableDeclarationStatement = |
|
|
|
VariableDeclarationStatement = |
|
|
|
( "Dim" | "Static" | "Const" ) |
|
|
|
( "Dim" | "Static" | "Const" ) |
|
|
|
(. |
|
|
|
(. PushContext(Context.IdentifierExpected, la, t); .) |
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; |
|
|
|
|
|
|
|
PushContext(Context.IdentifierExpected, la, t); |
|
|
|
|
|
|
|
if (la != null) |
|
|
|
|
|
|
|
CurrentBlock.lastExpressionStart = la.Location; |
|
|
|
|
|
|
|
.) |
|
|
|
|
|
|
|
Identifier (. PopContext(); .) [ "?" ] [ ( "(" { "," } ")" ) ] { "," (. PushContext(Context.IdentifierExpected, la, t); .) Identifier (. PopContext(); .) [ "?" ] [ ( "(" { "," } ")" ) ] } [ "As" [ "New" ] TypeName ] [ "=" Expression ] |
|
|
|
Identifier (. PopContext(); .) [ "?" ] [ ( "(" { "," } ")" ) ] { "," (. PushContext(Context.IdentifierExpected, la, t); .) Identifier (. PopContext(); .) [ "?" ] [ ( "(" { "," } ")" ) ] } [ "As" [ "New" ] TypeName ] [ "=" Expression ] |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
@ -1034,8 +1015,7 @@ ForEachLoopStatement = |
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
ForLoopVariable = |
|
|
|
ForLoopVariable = |
|
|
|
(. if (la != null) |
|
|
|
(. PushContext(Context.IdentifierExpected, la, t); .) SimpleExpression (. PopContext(); .) [ "?" ] { ExpressionSuffix } [ "As" TypeName ] |
|
|
|
CurrentBlock.lastExpressionStart = la.Location; .)(. PushContext(Context.IdentifierExpected, la, t); .) SimpleExpression (. PopContext(); .) [ "?" ] { ExpressionSuffix } [ "As" TypeName ] |
|
|
|
|
|
|
|
. |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
ErrorHandlingStatement = |
|
|
|
ErrorHandlingStatement = |
|
|
|
|