Browse Source

added VB specific Parameter expression context

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@6127 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
956ec3bbe3
  1. 1
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Block.cs
  2. 12
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
  3. 1483
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
  4. 10
      src/Main/Base/Test/VBExpressionFinderTests.cs
  5. 6
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ExpressionContext.cs
  6. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

1
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Block.cs

@ -19,6 +19,7 @@ namespace ICSharpCode.NRefactory.Parser.VB @@ -19,6 +19,7 @@ namespace ICSharpCode.NRefactory.Parser.VB
ObjectCreation,
Type,
Member,
Parameter,
IdentifierExpected,
Body,
Xml,

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

@ -1,11 +1,6 @@ @@ -1,11 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.NRefactory.Parser.VB;
using ASTAttribute = ICSharpCode.NRefactory.Ast.Attribute;
PUSHCOMPILER WITH EXPECTEDSETS ExpressionFinder
@ -405,7 +400,12 @@ ParameterList = @@ -405,7 +400,12 @@ ParameterList =
.
Parameter =
{ AttributeBlock } { ParameterModifier } (. PushContext(Context.IdentifierExpected, la, t); .) Identifier (. PopContext(); .) [ (. PushContext(Context.Type, la, t); .) "As" TypeName (. PopContext(); .) ] [ "=" Expression ]
(. PushContext(Context.Parameter, la, t); .)
{ AttributeBlock } { ParameterModifier }
(. PushContext(Context.IdentifierExpected, la, t); .) Identifier (. PopContext(); .)
[ (. PushContext(Context.Type, la, t); .) "As" TypeName (. PopContext(); .) ]
[ "=" Expression ]
(. PopContext(); .)
.
StatementTerminatorAndBlock =

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

File diff suppressed because it is too large Load Diff

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

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <owner name="Siegfried Pammer" email="siegfriedpammer@gmail.com" />
// <version>$Revision$</version>
// </file>
@ -123,6 +123,14 @@ End Class @@ -123,6 +123,14 @@ End Class
{
Find(program1, " ", 1, "", ExpressionContext.Global);
}
[Test, Ignore]
public void FindParameterStart()
{
Find(@"Module Program
Private Function CreateFolder(
End Module", "(", 1, "", ExpressionContext.Parameter);
}
#endregion
#region Context Tests

6
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ExpressionContext.cs

@ -120,6 +120,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -120,6 +120,12 @@ namespace ICSharpCode.SharpDevelop.Dom
public readonly static ExpressionContext ObjectInitializer = new DefaultExpressionContext("ObjectInitializer");
#endregion
#region VB specific contexts (public static fields) * MOVE TO ANOTHER CLASS *
/// <summary>The context expects a new parameter declaration</summary>
/// <example>Function Test(*expr*, *expr*, ...)</example>
public static readonly ExpressionContext Parameter = new DefaultExpressionContext("Parameter");
#endregion
#region Default contexts (public static fields)
/// <summary>Default/unknown context</summary>
public readonly static ExpressionContext Default = new DefaultExpressionContext("Default");

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

@ -145,6 +145,8 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -145,6 +145,8 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
return ExpressionContext.Importable;
case Context.ObjectCreation:
return ExpressionContext.ObjectCreation;
case Context.Parameter:
return ExpressionContext.Parameter;
}
return ExpressionContext.Default;

Loading…
Cancel
Save