Browse Source

Merge branch 'master' of github.com:icsharpcode/NRefactory

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
a348bbd968
  1. 16
      ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
  2. 13
      ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs
  3. 6822
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
  4. 10
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay
  5. 1
      ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs
  6. 38
      ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs
  7. 5
      ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs

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

@ -1448,7 +1448,21 @@ namespace ICSharpCode.NRefactory.CSharp @@ -1448,7 +1448,21 @@ namespace ICSharpCode.NRefactory.CSharp
public override object Visit (StatementExpression statementExpression)
{
var result = new ExpressionStatement ();
object expr = statementExpression.Expr.Accept (this);
var expr = statementExpression.Expr.Accept (this) as Expression;
if (expr != null)
result.AddChild ((Expression)expr, ExpressionStatement.Roles.Expression);
var location = LocationsBag.GetLocations (statementExpression);
if (location != null)
result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), ExpressionStatement.Roles.Semicolon);
return result;
}
public override object Visit (InvalidExpressionStatement statementExpression)
{
var result = new ExpressionStatement ();
if (statementExpression.Expression == null)
return result;
object expr = statementExpression.Expression.Accept (this);
if (expr != null)
result.AddChild ((Expression)expr, ExpressionStatement.Roles.Expression);
var location = LocationsBag.GetLocations (statementExpression);

13
ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs

@ -881,13 +881,12 @@ namespace Mono.CSharp { @@ -881,13 +881,12 @@ namespace Mono.CSharp {
}
readonly Dictionary<TypeSpec, Expression> compatibles;
readonly bool is_async;
public ParametersBlock Block;
public AnonymousMethodExpression (bool isAsync, Location loc)
{
this.is_async = isAsync;
this.IsAsync = isAsync;
this.loc = loc;
this.compatibles = new Dictionary<TypeSpec, Expression> ();
}
@ -906,18 +905,16 @@ namespace Mono.CSharp { @@ -906,18 +905,16 @@ namespace Mono.CSharp {
}
}
public bool IsAsync {
get {
return is_async;
}
}
public ParametersCompiled Parameters {
get {
return Block.Parameters;
}
}
public bool IsAsync {
get;
private set;
}
#endregion
//

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

File diff suppressed because it is too large Load Diff

10
ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay

@ -3381,6 +3381,14 @@ element_access @@ -3381,6 +3381,14 @@ element_access
$$ = new ElementAccess ((Expression) $1, (Arguments) $3, GetLocation ($2));
lbag.AddLocation ($$, GetLocation ($4));
}
| primary_expression OPEN_BRACKET_EXPR expression_list_arguments error
{
$$ = new ElementAccess ((Expression) $1, (Arguments) $3, GetLocation ($2));
}
| primary_expression OPEN_BRACKET_EXPR error
{
$$ = new ElementAccess ((Expression) $1, null, GetLocation ($2));
}
;
expression_list
@ -5084,7 +5092,7 @@ statement_expression @@ -5084,7 +5092,7 @@ statement_expression
ExpressionStatement s = $1 as ExpressionStatement;
if (s == null) {
Expression.Error_InvalidExpressionStatement (report, GetLocation ($1));
$$ = new StatementExpression (EmptyExpressionStatement.Instance);
$$ = new StatementExpression (new InvalidExpressionStatement ($1));
} else {
$$ = new StatementExpression (s);
}

1
ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs

@ -27,7 +27,6 @@ using IKVM.Reflection.Emit; @@ -27,7 +27,6 @@ using IKVM.Reflection.Emit;
#else
using System.Reflection;
using System.Reflection.Emit;
//using Mono.Collections.Generic;
#endif
namespace Mono.CSharp {

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

@ -6287,4 +6287,42 @@ namespace Mono.CSharp { @@ -6287,4 +6287,42 @@ namespace Mono.CSharp {
ec.Module.Compiler.Report.Error (825, loc, "The contextual keyword `var' may only appear within a local variable declaration");
}
}
public class InvalidExpressionStatement : ExpressionStatement
{
public Expression Expression {
get;
private set;
}
public InvalidExpressionStatement (Expression expr)
{
this.Expression = expr;
}
public override void EmitStatement (EmitContext ec)
{
// nothing
}
public override void Emit (EmitContext ec)
{
// nothing
}
public override Mono.CSharp.Expression CreateExpressionTree (ResolveContext ec)
{
return null;
}
protected override Mono.CSharp.Expression DoResolve (ResolveContext rc)
{
return null;
}
public override object Accept (Mono.CSharp.StructuralVisitor visitor)
{
return visitor.Visit (this);
}
}
}

5
ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs

@ -337,6 +337,11 @@ namespace Mono.CSharp @@ -337,6 +337,11 @@ namespace Mono.CSharp
{
return null;
}
public virtual object Visit (InvalidExpressionStatement invalidExpressionStatement)
{
return null;
}
public virtual object Visit (Expression expression)
{

Loading…
Cancel
Save