Browse Source

fixed NullReferenceException-bug in VBLexer; allow empty arguments (optional arguments) in VB argument list

newNRvisualizers
Siegfried Pammer 16 years ago
parent
commit
8c12f1cdad
  1. 2
      ICSharpCode.NRefactory.VB/Lexer/VBLexer.cs
  2. 8
      ICSharpCode.NRefactory.VB/Parser/Parser.cs
  3. 8
      ICSharpCode.NRefactory.VB/Parser/vb.atg

2
ICSharpCode.NRefactory.VB/Lexer/VBLexer.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.NRefactory.VB.Parser @@ -28,7 +28,7 @@ namespace ICSharpCode.NRefactory.VB.Parser
public VBLexer(TextReader reader)
{
reader = new LATextReader(reader);
this.reader = new LATextReader(reader);
ef = new ExpressionFinder();
}

8
ICSharpCode.NRefactory.VB/Parser/Parser.cs

@ -2964,9 +2964,7 @@ partial class VBParser @@ -2964,9 +2964,7 @@ partial class VBParser
List<Expression> parameters = null;
Expect(37);
Location start = t.Location;
if (StartOf(24)) {
ArgumentList(out parameters);
}
Expect(38);
pexpr = new InvocationExpression(pexpr, parameters);
@ -3356,11 +3354,15 @@ partial class VBParser @@ -3356,11 +3354,15 @@ partial class VBParser
arguments = new List<Expression>();
Expression expr = null;
if (StartOf(24)) {
Argument(out expr);
}
while (la.kind == 22) {
Get();
arguments.Add(expr ?? Expression.Null); expr = null;
if (StartOf(24)) {
Argument(out expr);
}
if (expr == null) expr = Expression.Null;
}
if (expr != null) arguments.Add(expr);
@ -4450,9 +4452,7 @@ partial class VBParser @@ -4450,9 +4452,7 @@ partial class VBParser
string name = t.val;
if (la.kind == 37) {
Get();
if (StartOf(24)) {
ArgumentList(out arguments);
}
Expect(38);
}
statement = new RaiseEventStatement(name, arguments);

8
ICSharpCode.NRefactory.VB/Parser/vb.atg

@ -1928,7 +1928,7 @@ InvocationExpression<ref Expression pexpr> @@ -1928,7 +1928,7 @@ InvocationExpression<ref Expression pexpr>
(. List<Expression> parameters = null; .)
=
"(" (. Location start = t.Location; .)
[ ArgumentList<out parameters> ]
ArgumentList<out parameters>
")"
(.
pexpr = new InvocationExpression(pexpr, parameters);
@ -2620,9 +2620,9 @@ ArgumentList<.out List<Expression> arguments.> @@ -2620,9 +2620,9 @@ ArgumentList<.out List<Expression> arguments.>
arguments = new List<Expression>();
Expression expr = null;
.) =
Argument<out expr>
[ Argument<out expr> ]
{ "," (. arguments.Add(expr ?? Expression.Null); expr = null; .)
Argument<out expr>
[ Argument<out expr> ]
(. if (expr == null) expr = Expression.Null; .)
}
(. if (expr != null) arguments.Add(expr); .)
@ -3135,7 +3135,7 @@ RaiseEventStatement<out Statement statement> @@ -3135,7 +3135,7 @@ RaiseEventStatement<out Statement statement>
(. List<Expression> arguments = null; .)
=
"RaiseEvent" Identifier (. string name = t.val; .)
[ "(" [ ArgumentList<out arguments> ] ")" ]
[ "(" ArgumentList<out arguments> ")" ]
(. statement = new RaiseEventStatement(name, arguments); .)
.

Loading…
Cancel
Save