Browse Source

- added ReDimStatement and EraseStatement

- added unit tests

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@5978 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
58cc8a78c2
  1. 10
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg
  2. 1316
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs
  3. 20
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/XmlModeLexerTests.cs

10
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg

@ -524,6 +524,8 @@ Statement = @@ -524,6 +524,8 @@ Statement =
| ThrowStatement
| TryStatement
| BranchStatement
| ReDimStatement
| EraseStatement
| InvocationStatement
.
@ -654,6 +656,14 @@ BranchStatement = @@ -654,6 +656,14 @@ BranchStatement =
| "Return" (. nextTokenIsPotentialStartOfXmlMode = true; .) [ Expression ]
.
ReDimStatement =
"ReDim" [ "Preserve" ] Expression
.
EraseStatement =
"Erase" Expression { "," Expression }
.
InvocationStatement =
[ "Call" ] Expression
.

1316
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs

File diff suppressed because it is too large Load Diff

20
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/XmlModeLexerTests.cs

@ -712,6 +712,26 @@ Return <Test />"; @@ -712,6 +712,26 @@ Return <Test />";
CheckFoot(lexer);
}
[Test]
public void ArrayHandlingStatements()
{
string statement = @"Erase <Test />
Erase <Test />, <Test />
ReDim Preserve <Test />";
ILexer lexer = GenerateLexer(new StringReader(TestStatement(statement)));
CheckHead(lexer);
CheckTokens(lexer, Tokens.Erase, Tokens.XmlOpenTag, Tokens.Identifier, Tokens.XmlCloseTagEmptyElement, Tokens.EOL,
Tokens.Erase, Tokens.XmlOpenTag, Tokens.Identifier, Tokens.XmlCloseTagEmptyElement, Tokens.Comma,
Tokens.XmlOpenTag, Tokens.Identifier, Tokens.XmlCloseTagEmptyElement, Tokens.EOL,
Tokens.ReDim, Tokens.Preserve, Tokens.XmlOpenTag, Tokens.Identifier, Tokens.XmlCloseTagEmptyElement
);
CheckFoot(lexer);
}
#endregion
#region Helpers

Loading…
Cancel
Save