Browse Source

- reintroduced Identifier-Blocks

- having problems with member variable declarations

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@6133 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
20cbf34bd8
  1. 1416
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
  2. 4
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs
  3. 1230
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
  4. 1
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame
  5. 36
      src/Libraries/NRefactory/Test/Lexer/VBNet/LexerContextTests.cs
  6. 11
      src/Main/Base/Test/VBExpressionFinderTests.cs
  7. 4
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

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

File diff suppressed because it is too large Load Diff

4
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs

@ -129,6 +129,10 @@ namespace ICSharpCode.NRefactory.Parser.VB
get { return wasQualifierTokenAtStart; } get { return wasQualifierTokenAtStart; }
} }
public bool IsMissingModifier {
get { return isMissingModifier; }
}
public List<Token> Errors { public List<Token> Errors {
get { return errors; } get { return errors; }
} }

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

File diff suppressed because it is too large Load Diff

1
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame

@ -39,6 +39,7 @@ partial class ExpressionFinder {
bool readXmlIdentifier = false; bool readXmlIdentifier = false;
bool identifierExpected = false; bool identifierExpected = false;
bool nextTokenIsStartOfImportsOrAccessExpression = false; bool nextTokenIsStartOfImportsOrAccessExpression = false;
bool isMissingModifier = false;
List<Token> errors = new List<Token>(); List<Token> errors = new List<Token>();
public ExpressionFinder() public ExpressionFinder()

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

@ -39,9 +39,9 @@ exit Global
End Class End Class
", ",
@"enter Global @"enter Global
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -77,9 +77,9 @@ exit Global
End Class End Class
", ",
@"enter Global @"enter Global
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -130,9 +130,9 @@ End Class
@"enter Global @"enter Global
enter Attribute enter Attribute
exit Attribute exit Attribute
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -167,9 +167,9 @@ End Class
@"enter Global @"enter Global
enter Attribute enter Attribute
exit Attribute exit Attribute
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -202,9 +202,9 @@ exit Global
End Class End Class
", ",
@"enter Global @"enter Global
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Attribute enter Attribute
exit Attribute exit Attribute
@ -240,9 +240,9 @@ exit Global
End Class End Class
", ",
@"enter Global @"enter Global
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -286,9 +286,9 @@ exit Global
End Class End Class
", ",
@"enter Global @"enter Global
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -354,9 +354,9 @@ exit Global
End Sub End Sub
End Class", End Class",
@"enter Global @"enter Global
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier
@ -430,9 +430,9 @@ End Module",
exit Importable exit Importable
enter Importable enter Importable
exit Importable exit Importable
enter Identifier
exit Identifier
enter TypeDeclaration enter TypeDeclaration
enter Identifier
exit Identifier
enter Member enter Member
enter Identifier enter Identifier
exit Identifier exit Identifier

11
src/Main/Base/Test/VBExpressionFinderTests.cs

@ -153,6 +153,17 @@ End Module", "(", 1, "", ExpressionContext.Parameter);
{ {
ContextTest(program4, "Dim ", "Dim".Length, ExpressionContext.MethodBody); ContextTest(program4, "Dim ", "Dim".Length, ExpressionContext.MethodBody);
} }
[Test, Ignore]
public void ContextInModule()
{
ContextTest(@"Module Test
End Module", @"Module Test
", @"Module Test
".Length, ExpressionContext.TypeDeclaration);
}
#endregion #endregion
#region FindFull #region FindFull

4
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

@ -70,7 +70,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
var block = p.CurrentBlock; var block = p.CurrentBlock;
ExpressionContext context = p.IsIdentifierExpected ? ExpressionContext.IdentifierExpected : GetContext(block); ExpressionContext context = p.IsIdentifierExpected && !p.IsMissingModifier ? ExpressionContext.IdentifierExpected : GetContext(block);
if (t.Location < targetPosition) { if (t.Location < targetPosition) {
p.InformToken(t); p.InformToken(t);
@ -81,6 +81,8 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
try { try {
expectedSet = p.GetExpectedSet(); expectedSet = p.GetExpectedSet();
if (p.IsMissingModifier)
expectedSet.Set(Tokens.Identifier, false);
} catch (InvalidOperationException) { } catch (InvalidOperationException) {
expectedSet = null; expectedSet = null;
} }

Loading…
Cancel
Save