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
ObjectCreation, ObjectCreation,
Type, Type,
Member, Member,
Parameter,
IdentifierExpected, IdentifierExpected,
Body, Body,
Xml, Xml,

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

@ -1,11 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; 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 PUSHCOMPILER WITH EXPECTEDSETS ExpressionFinder
@ -405,7 +400,12 @@ ParameterList =
. .
Parameter = 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 = 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 @@
// <file> // <file>
// <copyright see="prj:///doc/copyright.txt"/> // <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.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> // <version>$Revision$</version>
// </file> // </file>
@ -123,6 +123,14 @@ End Class
{ {
Find(program1, " ", 1, "", ExpressionContext.Global); Find(program1, " ", 1, "", ExpressionContext.Global);
} }
[Test, Ignore]
public void FindParameterStart()
{
Find(@"Module Program
Private Function CreateFolder(
End Module", "(", 1, "", ExpressionContext.Parameter);
}
#endregion #endregion
#region Context Tests #region Context Tests

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

@ -120,6 +120,12 @@ namespace ICSharpCode.SharpDevelop.Dom
public readonly static ExpressionContext ObjectInitializer = new DefaultExpressionContext("ObjectInitializer"); public readonly static ExpressionContext ObjectInitializer = new DefaultExpressionContext("ObjectInitializer");
#endregion #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) #region Default contexts (public static fields)
/// <summary>Default/unknown context</summary> /// <summary>Default/unknown context</summary>
public readonly static ExpressionContext Default = new DefaultExpressionContext("Default"); 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
return ExpressionContext.Importable; return ExpressionContext.Importable;
case Context.ObjectCreation: case Context.ObjectCreation:
return ExpressionContext.ObjectCreation; return ExpressionContext.ObjectCreation;
case Context.Parameter:
return ExpressionContext.Parameter;
} }
return ExpressionContext.Default; return ExpressionContext.Default;

Loading…
Cancel
Save