Browse Source

Fixed named argument expression.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
d63f1fa0f6
  1. 5
      ICSharpCode.NRefactory.CSharp/Ast/Expressions/NamedArgumentExpression.cs
  2. 4
      ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
  3. 1267
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
  4. 1
      ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay

5
ICSharpCode.NRefactory.CSharp/Ast/Expressions/NamedArgumentExpression.cs

@ -22,6 +22,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -22,6 +22,7 @@ namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// Represents a named argument passed to a method or attribute.
/// name: expression
/// </summary>
public class NamedArgumentExpression : Expression
{
@ -53,8 +54,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -53,8 +54,8 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public CSharpTokenNode AssignToken {
get { return GetChildByRole (Roles.Assign); }
public CSharpTokenNode ColonToken {
get { return GetChildByRole (Roles.Colon); }
}
public Expression Expression {

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

@ -210,7 +210,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -210,7 +210,7 @@ namespace ICSharpCode.NRefactory.CSharp
var argLoc = LocationsBag.GetLocations (na);
if (argLoc != null)
newArg.AddChild (new CSharpTokenNode (Convert (argLoc[0]), 1), NamedArgumentExpression.Roles.Assign);
newArg.AddChild (new CSharpTokenNode (Convert (argLoc[0]), 1), NamedArgumentExpression.Roles.Colon);
newArg.AddChild ((Expression)na.Expr.Accept (this), NamedExpression.Roles.Expression);
result.AddChild (newArg, Attribute.Roles.Argument);
continue;
@ -2380,7 +2380,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -2380,7 +2380,7 @@ namespace ICSharpCode.NRefactory.CSharp
var loc = LocationsBag.GetLocations (na);
if (loc != null)
newArg.AddChild (new CSharpTokenNode (Convert (loc[0]), 1), NamedArgumentExpression.Roles.Assign);
newArg.AddChild (new CSharpTokenNode (Convert (loc[0]), 1), NamedArgumentExpression.Roles.Colon);
if (arg.ArgType == Argument.AType.Out || arg.ArgType == Argument.AType.Ref) {
DirectionExpression direction = new DirectionExpression ();

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

File diff suppressed because it is too large Load Diff

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

@ -891,6 +891,7 @@ named_argument @@ -891,6 +891,7 @@ named_argument
var lt = (Tokenizer.LocatedToken) $1;
$$ = new NamedArgument (lt.Value, lt.Location, (Expression) $4, arg_mod);
lbag.AddLocation ($$, GetLocation($2));
}
;

Loading…
Cancel
Save