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 @@ -1462,9 +1462,9 @@ namespace ICSharpCode.NRefactory.CSharp
var result = new ExpressionStatement ();
if (statementExpression.Expression == null)
return result;
object expr = statementExpression.Expression.Accept (this);
var expr = statementExpression.Expression.Accept (this) as Expression;
if (expr != null)
result.AddChild ((Expression)expr, ExpressionStatement.Roles.Expression);
result.AddChild (expr, ExpressionStatement.Roles.Expression);
var location = LocationsBag.GetLocations (statementExpression);
if (location != null)
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() @@ -7751,7 +7751,7 @@ void case_768()
ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
if (s == null) {
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 {
yyVal = new StatementExpression (s);
}

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

@ -6288,7 +6288,7 @@ namespace Mono.CSharp { @@ -6288,7 +6288,7 @@ namespace Mono.CSharp {
}
}
public class InvalidExpressionStatement : ExpressionStatement
public class InvalidExpressionStatement : Statement
{
public Expression Expression {
get;
@ -6300,22 +6300,22 @@ namespace Mono.CSharp { @@ -6300,22 +6300,22 @@ namespace Mono.CSharp {
this.Expression = expr;
}
public override void EmitStatement (EmitContext ec)
public override void Emit (EmitContext ec)
{
// nothing
}
public override void Emit (EmitContext ec)
protected override void DoEmit (EmitContext ec)
{
// 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;
}

Loading…
Cancel
Save