Browse Source

deactivate ConditionalExpression, it currently conflicts with normal If statements

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@5963 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
8c9ae0229d
  1. 6
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg
  2. 2
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.cs
  3. 1260
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs
  4. 2
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/PushParser.frame
  5. 29
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/XmlModeLexerTests.cs
  6. 2913
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

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

@ -374,7 +374,7 @@ Expression = @@ -374,7 +374,7 @@ Expression =
(
SimpleExpressionWithSuffix { BinaryOperator SimpleExpressionWithSuffix }
| NewExpression
| ConditionalExpression
//| ConditionalExpression
)
.
@ -454,9 +454,10 @@ SimpleCastExpression = @@ -454,9 +454,10 @@ SimpleCastExpression =
"(" Expression ")"
.
/*
ConditionalExpression =
"If" "(" Expression "," Expression [ "," Expression ] ")"
.
.*/
XmlLiteral =
(. PushContext(Context.Xml, t); .)
@ -516,7 +517,6 @@ Statement = @@ -516,7 +517,6 @@ Statement =
| AddOrRemoveHandlerStatement
| RaiseEventStatement
| InvocationStatement
/*| "If" Expression [ "Then" ] StatementTerminator ( Block | { Statement } ) */
.
VariableDeclarationStatement =

2
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.cs

@ -46,7 +46,7 @@ namespace ICSharpCode.NRefactory.Parser.VBNet.Experimental @@ -46,7 +46,7 @@ namespace ICSharpCode.NRefactory.Parser.VBNet.Experimental
void ApplyToken(Token token)
{
Console.WriteLine(token);
//Console.WriteLine(token);
if (stack.Count == 0 || token == null)
return;

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

File diff suppressed because it is too large Load Diff

2
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/PushParser.frame

@ -61,7 +61,7 @@ partial class ExpressionFinder { @@ -61,7 +61,7 @@ partial class ExpressionFinder {
public void Advance()
{
Console.WriteLine("Advance");
//Console.WriteLine("Advance");
InformToken(null);
}

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

@ -351,6 +351,35 @@ namespace DefaultNamespace @@ -351,6 +351,35 @@ namespace DefaultNamespace
Tokens.GetXmlNamespace, Tokens.OpenParenthesis, Tokens.Identifier, Tokens.CloseParenthesis);
CheckFoot(lexer);
}
[Test, Ignore]
public void IfExpressionTest()
{
ILexer lexer = GenerateLexer(new StringReader(TestStatement("Dim name = If(a <> 2, 4, 8)")));
CheckHead(lexer);
CheckTokens(lexer, Tokens.Dim, Tokens.Identifier, Tokens.Assign,
Tokens.If, Tokens.OpenParenthesis, Tokens.Identifier, Tokens.NotEqual, Tokens.LiteralInteger,
Tokens.Comma, Tokens.LiteralInteger, Tokens.Comma, Tokens.LiteralInteger, Tokens.CloseParenthesis);
CheckFoot(lexer);
}
[Test, Ignore]
public void IfStatementTest()
{
ILexer lexer = GenerateLexer(new StringReader(TestStatement("If a <> 2 Then Return")));
CheckHead(lexer);
CheckTokens(lexer, Tokens.If, Tokens.Identifier, Tokens.NotEqual, Tokens.LiteralInteger,
Tokens.Then, Tokens.Return);
CheckFoot(lexer);
}
#endregion

2913
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save