Browse Source

Fixed invalid expression statement.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
8124eaa818
  1. 4
      ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
  2. 2
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
  3. 12
      ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs

4
ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs

@ -1462,9 +1462,9 @@ namespace ICSharpCode.NRefactory.CSharp
var result = new ExpressionStatement (); var result = new ExpressionStatement ();
if (statementExpression.Expression == null) if (statementExpression.Expression == null)
return result; return result;
object expr = statementExpression.Expression.Accept (this); var expr = statementExpression.Expression.Accept (this) as Expression;
if (expr != null) if (expr != null)
result.AddChild ((Expression)expr, ExpressionStatement.Roles.Expression); result.AddChild (expr, ExpressionStatement.Roles.Expression);
var location = LocationsBag.GetLocations (statementExpression); var location = LocationsBag.GetLocations (statementExpression);
if (location != null) if (location != null)
result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), ExpressionStatement.Roles.Semicolon); result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), ExpressionStatement.Roles.Semicolon);

2
ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs

@ -7751,7 +7751,7 @@ void case_768()
ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement; ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
if (s == null) { if (s == null) {
Expression.Error_InvalidExpressionStatement (report, GetLocation (yyVals[0+yyTop])); Expression.Error_InvalidExpressionStatement (report, GetLocation (yyVals[0+yyTop]));
yyVal = new StatementExpression (new InvalidExpressionStatement (yyVals[0+yyTop] as Expression)); yyVal = new InvalidExpressionStatement (yyVals[0+yyTop] as Expression);
} else { } else {
yyVal = new StatementExpression (s); yyVal = new StatementExpression (s);
} }

12
ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs

@ -6288,7 +6288,7 @@ namespace Mono.CSharp {
} }
} }
public class InvalidExpressionStatement : ExpressionStatement public class InvalidExpressionStatement : Statement
{ {
public Expression Expression { public Expression Expression {
get; get;
@ -6300,22 +6300,22 @@ namespace Mono.CSharp {
this.Expression = expr; this.Expression = expr;
} }
public override void EmitStatement (EmitContext ec) public override void Emit (EmitContext ec)
{ {
// nothing // nothing
} }
public override void Emit (EmitContext ec) protected override void DoEmit (EmitContext ec)
{ {
// nothing // nothing
} }
public override Mono.CSharp.Expression CreateExpressionTree (ResolveContext ec) protected override void CloneTo (CloneContext clonectx, Statement target)
{ {
return null; // nothing
} }
protected override Mono.CSharp.Expression DoResolve (ResolveContext rc) public override Mono.CSharp.Expression CreateExpressionTree (ResolveContext ec)
{ {
return null; return null;
} }

Loading…
Cancel
Save