Browse Source

implemented recursion of types inside types

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@6139 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
48f95300e4
  1. 14
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
  2. 1018
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
  3. 4
      src/Libraries/NRefactory/Test/Lexer/VBNet/LexerContextTests.cs

14
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg

@ -323,7 +323,13 @@ ClassOrModuleOrStructureTypeDeclaration = @@ -323,7 +323,13 @@ ClassOrModuleOrStructureTypeDeclaration =
[ "(" "Of" GenericTypeParameterDeclaration ")" ] StatementTerminator
[ (. isMissingModifier = false; .) "Inherits" { ANY } StatementTerminator ]
[ (. isMissingModifier = false; .) "Implements" { ANY } StatementTerminator ]
{ MemberDeclaration } (. isMissingModifier = false; .)
{
{ AttributeBlock } (.OnEachPossiblePath: isMissingModifier = true; .)
{ TypeOrMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .)
( ClassOrModuleOrStructureTypeDeclaration | DelegateTypeDeclaration | EnumTypeDeclaration
| InterfaceDeclaration | MemberDeclaration )
}
(. isMissingModifier = false; .)
"End" ( "Module" | "Class" | "Structure" ) StatementTerminator
(. PopContext(); .)
.
@ -339,7 +345,7 @@ InterfaceDeclaration = @@ -339,7 +345,7 @@ InterfaceDeclaration =
[ "Inherits" TypeName { "," TypeName } StatementTerminator ]
{
{ AttributeBlock } (.OnEachPossiblePath: isMissingModifier = true; .)
{ TypeAndMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .)
{ TypeOrMemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .)
( ClassOrModuleOrStructureTypeDeclaration | DelegateTypeDeclaration | EnumTypeDeclaration
| InterfaceDeclaration | InterfaceMemberDeclaration )
}
@ -351,7 +357,7 @@ InterfaceMemberDeclaration = @@ -351,7 +357,7 @@ InterfaceMemberDeclaration =
InterfaceEvent | InterfaceProperty | InterfaceSubOrFunction
.
TypeAndMemberModifier =
TypeOrMemberModifier =
MemberModifier /* contains all modifiers for types */
.
@ -391,9 +397,7 @@ DelegateTypeDeclaration = @@ -391,9 +397,7 @@ DelegateTypeDeclaration =
.
MemberDeclaration =
(.OnEachPossiblePath: isMissingModifier = true; .)
(. PushContext(Context.Member, la, t); .)
{ AttributeBlock } { MemberModifier (. isMissingModifier = false; .) } (. isMissingModifier = false; .)
(
MemberVariableOrConstantDeclaration |
SubOrFunctionDeclaration |

1018
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

4
src/Libraries/NRefactory/Test/Lexer/VBNet/LexerContextTests.cs

@ -205,9 +205,9 @@ End Class @@ -205,9 +205,9 @@ End Class
enter TypeDeclaration
enter Identifier
exit Identifier
enter Attribute
exit Attribute
enter Member
enter Attribute
exit Attribute
enter Identifier
exit Identifier
enter Body

Loading…
Cancel
Save