Browse Source

Squashed 'NRefactory/' changes from ec42611..8db1fe2

8db1fe2 Enforce space in output visitor when printing "ptr & &v".
b00cf19 Add parentheses test for "a + (b == null ? c : d)"
9b5fdd9 fixed endlocation bug.
914df80 Merge remote branch 'origin/master' into master.
9dc67b8 Fix CecilLoaderTests for Dictionary<,>.ValueCollection::Count (it's a non-virtual property implementing an interface; and isn't considered sealed in C#).
28d8b3a Include Mono.Cecil in solution.
16baa75 Corrected astvisitor interface naming.
41168e3 Fixed tests.
e0a6909 added more bugfixes.
31113d2 fixed switch section.
daccb3a Fixed parser bug.
59da5a2 Worked on type parsing.
65d688a Added some missing token properties.
83a7d2f Splitted the goto statement cases: GotoStatement, GotoCaseStatement, GotoDefaultStatement.
ecc1772 Added YieldBreakStatement.
915a122 Added some comments.
b8cf7d3 Splitted while & do while statements.
b6c562e Fix some formatting issues with the C# output visitor.
48d8ac5 Fixed detection of 'sealed' method modifier.
dc6daa1 Fixed output of enum members and the "const" modifier.
6e47f53 Add missing newline after property declarations.
a33009d Add hyperlink support to decompiler.
43625b4 Initial port to new NRefactory.
76d844f Merge commit 'd87c5ea2c89dda7da5eab2dce7a30fe10729481f'
57522bf Enable automatic removal when replacing a node with its own descendant.
bad0fdb Merge commit 'e1552755b97863393b543603557590ad90d8ef98'
39ad4c4 Update NRefactory to new Mono.Cecil.

git-subtree-dir: NRefactory
git-subtree-split: 8db1fe252f6539e9cde8c9fb5f59aa60e4089d8f
pull/129/head
Daniel Grunwald 14 years ago
parent
commit
e1de044cc0
  1. 21
      ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs
  2. 9
      ICSharpCode.NRefactory.Tests/CSharp/Parser/Statements/GotoStatementTests.cs
  3. 4
      ICSharpCode.NRefactory.Tests/CSharp/Parser/Statements/WhileStatementTests.cs
  4. 3
      ICSharpCode.NRefactory.Tests/TypeSystem/CecilLoaderTests.cs
  5. 42
      ICSharpCode.NRefactory/CSharp/Ast/AstComparer.cs
  6. 8
      ICSharpCode.NRefactory/CSharp/Ast/AstNode.cs
  7. 59
      ICSharpCode.NRefactory/CSharp/Ast/AstType.cs
  8. 1
      ICSharpCode.NRefactory/CSharp/Ast/CSharpModifierToken.cs
  9. 6
      ICSharpCode.NRefactory/CSharp/Ast/CSharpTokenNode.cs
  10. 4
      ICSharpCode.NRefactory/CSharp/Ast/CompilationUnit.cs
  11. 51
      ICSharpCode.NRefactory/CSharp/Ast/ComposedType.cs
  12. 31
      ICSharpCode.NRefactory/CSharp/Ast/DepthFirstAstVisitor.cs
  13. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/AnonymousMethodExpression.cs
  14. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArgListExpression.cs
  15. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArrayCreateExpression.cs
  16. 6
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArrayInitializerExpression.cs
  17. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/AsExpression.cs
  18. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/AssignmentExpression.cs
  19. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/BaseReferenceExpression.cs
  20. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/BinaryOperatorExpression.cs
  21. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/CastExpression.cs
  22. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/CheckedExpression.cs
  23. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ConditionalExpression.cs
  24. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/DefaultValueExpression.cs
  25. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/DirectionExpression.cs
  26. 38
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/Expression.cs
  27. 9
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/IdentifierExpression.cs
  28. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/IndexerExpression.cs
  29. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/InvocationExpression.cs
  30. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/IsExpression.cs
  31. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/LambdaExpression.cs
  32. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/MemberReferenceExpression.cs
  33. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/NamedArgumentExpression.cs
  34. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/NullReferenceExpression.cs
  35. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ObjectCreateExpression.cs
  36. 7
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ParenthesizedExpression.cs
  37. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/PointerReferenceExpression.cs
  38. 7
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/PrimitiveExpression.cs
  39. 24
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/QueryExpression.cs
  40. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/SizeOfExpression.cs
  41. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/StackAllocExpression.cs
  42. 7
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/ThisReferenceExpression.cs
  43. 7
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/TypeOfExpression.cs
  44. 24
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/TypeReferenceExpression.cs
  45. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/UnaryOperatorExpression.cs
  46. 4
      ICSharpCode.NRefactory/CSharp/Ast/Expressions/UncheckedExpression.cs
  47. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/Attribute.cs
  48. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/AttributeSection.cs
  49. 10
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/Comment.cs
  50. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/Constraint.cs
  51. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/DelegateDeclaration.cs
  52. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/NamespaceDeclaration.cs
  53. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/TypeDeclaration.cs
  54. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/TypeParameterDeclaration.cs
  55. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/UsingAliasDeclaration.cs
  56. 4
      ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/UsingDeclaration.cs
  57. 7
      ICSharpCode.NRefactory/CSharp/Ast/IAstVisitor.cs
  58. 6
      ICSharpCode.NRefactory/CSharp/Ast/Identifier.cs
  59. 4
      ICSharpCode.NRefactory/CSharp/Ast/MemberType.cs
  60. 12
      ICSharpCode.NRefactory/CSharp/Ast/PrimitiveType.cs
  61. 9
      ICSharpCode.NRefactory/CSharp/Ast/SimpleType.cs
  62. 12
      ICSharpCode.NRefactory/CSharp/Ast/Statements/BlockStatement.cs
  63. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/BreakStatement.cs
  64. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/CheckedStatement.cs
  65. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/ContinueStatement.cs
  66. 73
      ICSharpCode.NRefactory/CSharp/Ast/Statements/DoWhileStatement.cs
  67. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/EmptyStatement.cs
  68. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/ExpressionStatement.cs
  69. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/FixedStatement.cs
  70. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/ForStatement.cs
  71. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/ForeachStatement.cs
  72. 86
      ICSharpCode.NRefactory/CSharp/Ast/Statements/GotoStatement.cs
  73. 15
      ICSharpCode.NRefactory/CSharp/Ast/Statements/IfElseStatement.cs
  74. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/LabelStatement.cs
  75. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/LockStatement.cs
  76. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/ReturnStatement.cs
  77. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/Statement.cs
  78. 8
      ICSharpCode.NRefactory/CSharp/Ast/Statements/SwitchStatement.cs
  79. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/ThrowStatement.cs
  80. 28
      ICSharpCode.NRefactory/CSharp/Ast/Statements/TryCatchStatement.cs
  81. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/UncheckedStatement.cs
  82. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/UnsafeStatement.cs
  83. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/UsingStatement.cs
  84. 4
      ICSharpCode.NRefactory/CSharp/Ast/Statements/VariableDeclarationStatement.cs
  85. 25
      ICSharpCode.NRefactory/CSharp/Ast/Statements/WhileStatement.cs
  86. 54
      ICSharpCode.NRefactory/CSharp/Ast/Statements/YieldBreakStatement.cs
  87. 12
      ICSharpCode.NRefactory/CSharp/Ast/Statements/YieldStatement.cs
  88. 6
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/Accessor.cs
  89. 8
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/ConstructorDeclaration.cs
  90. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/DestructorDeclaration.cs
  91. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/EnumMemberDeclaration.cs
  92. 14
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/EventDeclaration.cs
  93. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/FieldDeclaration.cs
  94. 12
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/IndexerDeclaration.cs
  95. 5
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/MethodDeclaration.cs
  96. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/OperatorDeclaration.cs
  97. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/ParameterDeclaration.cs
  98. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/PropertyDeclaration.cs
  99. 15
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/VariableInitializer.cs
  100. 3
      ICSharpCode.NRefactory/CSharp/OutputVisitor/IOutputFormatter.cs
  101. Some files were not shown because too many files have changed in this diff Show More

21
ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs

@ -108,6 +108,27 @@ namespace ICSharpCode.NRefactory.CSharp @@ -108,6 +108,27 @@ namespace ICSharpCode.NRefactory.CSharp
Assert.AreEqual("-(-a)", InsertReadable(expr));
}
[Test]
public void AdditionWithConditional()
{
Expression expr = new BinaryOperatorExpression {
Left = new IdentifierExpression("a"),
Operator = BinaryOperatorType.Add,
Right = new ConditionalExpression {
Condition = new BinaryOperatorExpression {
Left = new IdentifierExpression("b"),
Operator = BinaryOperatorType.Equality,
Right = new PrimitiveExpression(null)
},
TrueExpression = new IdentifierExpression("c"),
FalseExpression = new IdentifierExpression("d")
}
};
Assert.AreEqual("a + (b == null ? c : d)", InsertRequired(expr));
Assert.AreEqual("a + ((b == null) ? c : d)", InsertReadable(expr));
}
[Test]
public void TypeTestInConditional()
{

9
ICSharpCode.NRefactory.Tests/CSharp/Parser/Statements/GotoStatementTests.cs

@ -13,23 +13,20 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements @@ -13,23 +13,20 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements
[Test, Ignore("regular goto statement is broken")]
public void GotoStatementTest()
{
GotoStatement gotoStmt = ParseUtilCSharp.ParseStatement<GotoStatement>("goto myLabel;");
Assert.AreEqual(GotoType.Label, gotoStmt.GotoType);
var gotoStmt = ParseUtilCSharp.ParseStatement<GotoStatement>("goto myLabel;");
Assert.AreEqual("myLabel", gotoStmt.Label);
}
[Test]
public void GotoDefaultStatementTest()
{
GotoStatement gotoCaseStmt = ParseUtilCSharp.ParseStatement<GotoStatement>("goto default;");
Assert.AreEqual(GotoType.CaseDefault, gotoCaseStmt.GotoType);
var gotoCaseStmt = ParseUtilCSharp.ParseStatement<GotoDefaultStatement>("goto default;");
}
[Test]
public void GotoCaseStatementTest()
{
GotoStatement gotoCaseStmt = ParseUtilCSharp.ParseStatement<GotoStatement>("goto case 6;");
Assert.AreEqual(GotoType.Case, gotoCaseStmt.GotoType);
var gotoCaseStmt = ParseUtilCSharp.ParseStatement<GotoCaseStatement>("goto case 6;");
Assert.IsTrue(gotoCaseStmt.LabelExpression is PrimitiveExpression);
}

4
ICSharpCode.NRefactory.Tests/CSharp/Parser/Statements/WhileStatementTests.cs

@ -13,7 +13,6 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements @@ -13,7 +13,6 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements
public void WhileStatementTest()
{
WhileStatement loopStmt = ParseUtilCSharp.ParseStatement<WhileStatement>("while (true) { }");
Assert.AreEqual(WhilePosition.Begin, loopStmt.WhilePosition);
Assert.IsTrue(loopStmt.Condition is PrimitiveExpression);
Assert.IsTrue(loopStmt.EmbeddedStatement is BlockStatement);
}
@ -21,8 +20,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements @@ -21,8 +20,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Statements
[Test]
public void DoWhileStatementTest()
{
WhileStatement loopStmt = ParseUtilCSharp.ParseStatement<WhileStatement>("do { } while (true);");
Assert.AreEqual(WhilePosition.End, loopStmt.WhilePosition);
DoWhileStatement loopStmt = ParseUtilCSharp.ParseStatement<DoWhileStatement>("do { } while (true);");
Assert.IsTrue(loopStmt.Condition is PrimitiveExpression);
Assert.IsTrue(loopStmt.EmbeddedStatement is BlockStatement);
}

3
ICSharpCode.NRefactory.Tests/TypeSystem/CecilLoaderTests.cs

@ -153,7 +153,8 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -153,7 +153,8 @@ namespace ICSharpCode.NRefactory.TypeSystem
IProperty count = valueCollection.Properties.Single(p => p.Name == "Count");
Assert.AreEqual(Accessibility.Public, count.Accessibility);
Assert.IsTrue(count.IsSealed);
// It's sealed on the IL level; but in C# it's just a normal non-virtual method that happens to implement an interface
Assert.IsFalse(count.IsSealed);
Assert.IsFalse(count.IsVirtual);
Assert.IsFalse(count.IsAbstract);
}

42
ICSharpCode.NRefactory/CSharp/Ast/AstComparer.cs

@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// Compares whether two ASTs are structurally identical.
/// </summary>
public static class AstComparer
{
static HashSet<Type> nodeTypesWithoutExtraInfo = new HashSet<Type> {
typeof(IdentifierExpression)
};
public static bool? AreEqual(AstNode node1, AstNode node2)
{
if (node1 == node2)
return true;
if (node1 == null || node1.IsNull || node2 == null || node2.IsNull)
return false;
Type nodeType = node1.GetType();
if (nodeType != node2.GetType())
return false;
if (node1.Role != node2.Role)
return false;
AstNode child1 = node1.FirstChild;
AstNode child2 = node2.FirstChild;
bool? result = true;
while (result != false && (child1 != null || child2 != null)) {
result &= AreEqual(child1, child2);
}
if (nodeTypesWithoutExtraInfo.Contains(nodeType))
return result;
if (nodeType == typeof(Identifier))
return ((Identifier)node1).Name == ((Identifier)node2).Name;
return null;
}
}
}

8
ICSharpCode.NRefactory/CSharp/Ast/AstNode.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// AstNode.cs
//
// Author:
@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -448,6 +448,8 @@ namespace ICSharpCode.NRefactory.CSharp @@ -448,6 +448,8 @@ namespace ICSharpCode.NRefactory.CSharp
{
if (annotation == null)
throw new ArgumentNullException("annotation");
if (this.IsNull)
throw new InvalidOperationException("Cannot add annotations to the null node");
retry: // Retry until successful
object oldAnnotation = Interlocked.CompareExchange(ref this.annotations, annotation, null);
if (oldAnnotation == null) {
@ -590,7 +592,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -590,7 +592,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
#endregion
public abstract S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data);
public abstract S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data);
// the Root role must be available when creating the null nodes, so we can't put it in the Roles class
static readonly Role<AstNode> RootRole = new Role<AstNode>("Root");

59
ICSharpCode.NRefactory/CSharp/Ast/AstType.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
using System;
using System;
namespace ICSharpCode.NRefactory.CSharp
{
@ -18,7 +18,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -18,7 +18,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -28,5 +28,60 @@ namespace ICSharpCode.NRefactory.CSharp @@ -28,5 +28,60 @@ namespace ICSharpCode.NRefactory.CSharp
public override NodeType NodeType {
get { return NodeType.TypeReference; }
}
public virtual AstType MakePointerType()
{
return new ComposedType { BaseType = this }.MakePointerType();
}
public virtual AstType MakeArrayType(int rank)
{
return new ComposedType { BaseType = this }.MakeArrayType(rank);
}
/// <summary>
/// Builds an expression that can be used to access a static member on this type.
/// </summary>
public MemberReferenceExpression Member(string memberName)
{
return new TypeReferenceExpression { Type = this }.Member(memberName);
}
public static AstType Create(Type type)
{
switch (Type.GetTypeCode(type)) {
case TypeCode.Object:
return new PrimitiveType("object");
case TypeCode.Boolean:
return new PrimitiveType("bool");
case TypeCode.Char:
return new PrimitiveType("char");
case TypeCode.SByte:
return new PrimitiveType("sbyte");
case TypeCode.Byte:
return new PrimitiveType("byte");
case TypeCode.Int16:
return new PrimitiveType("short");
case TypeCode.UInt16:
return new PrimitiveType("ushort");
case TypeCode.Int32:
return new PrimitiveType("int");
case TypeCode.UInt32:
return new PrimitiveType("uint");
case TypeCode.Int64:
return new PrimitiveType("long");
case TypeCode.UInt64:
return new PrimitiveType("ulong");
case TypeCode.Single:
return new PrimitiveType("float");
case TypeCode.Double:
return new PrimitiveType("double");
case TypeCode.Decimal:
return new PrimitiveType("decimal");
case TypeCode.String:
return new PrimitiveType("string");
}
return new SimpleType(type.FullName); // TODO: implement this correctly
}
}
}

1
ICSharpCode.NRefactory/CSharp/Ast/CSharpModifierToken.cs

@ -58,6 +58,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -58,6 +58,7 @@ namespace ICSharpCode.NRefactory.CSharp
{ Modifiers.Volatile, "volatile".Length },
{ Modifiers.Extern, "extern".Length },
{ Modifiers.Partial, "partial".Length },
{ Modifiers.Const, "const".Length },
};
public static ICollection<Modifiers> AllModifiers {

6
ICSharpCode.NRefactory/CSharp/Ast/CSharpTokenNode.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// TokenNode.cs
//
// Author:
@ -42,7 +42,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -42,7 +42,7 @@ namespace ICSharpCode.NRefactory.CSharp
{
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -75,7 +75,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -75,7 +75,7 @@ namespace ICSharpCode.NRefactory.CSharp
this.tokenLength = tokenLength;
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCSharpTokenNode (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/CompilationUnit.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// CompilationUnit.cs
//
// Author:
@ -95,7 +95,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -95,7 +95,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCompilationUnit (this, data);
}

51
ICSharpCode.NRefactory/CSharp/Ast/ComposedType.cs

@ -55,12 +55,14 @@ namespace ICSharpCode.NRefactory.CSharp @@ -55,12 +55,14 @@ namespace ICSharpCode.NRefactory.CSharp
return GetChildrenByRole(PointerRole).Count();
}
set {
// remove old children
foreach (AstNode node in GetChildrenByRole(PointerRole))
node.Remove();
// add new children
for (int i = 0; i < value; i++) {
AddChild(new CSharpTokenNode(AstLocation.Empty, 1), PointerRole);
int d = this.PointerRank;
while (d > value) {
GetChildByRole(PointerRole).Remove();
d--;
}
while (d < value) {
InsertChildBefore(GetChildByRole(PointerRole), new CSharpTokenNode(AstLocation.Empty, 1), PointerRole);
d++;
}
}
}
@ -70,7 +72,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -70,7 +72,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (ArraySpecifierRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitComposedType (this, data);
}
@ -89,6 +91,22 @@ namespace ICSharpCode.NRefactory.CSharp @@ -89,6 +91,22 @@ namespace ICSharpCode.NRefactory.CSharp
}
return b.ToString();
}
public override AstType MakePointerType()
{
if (ArraySpecifiers.Any()) {
return base.MakePointerType();
} else {
this.PointerRank++;
return this;
}
}
public override AstType MakeArrayType(int dimensions)
{
InsertChildBefore(this.ArraySpecifiers.FirstOrDefault(), new ArraySpecifier(dimensions), ArraySpecifierRole);
return this;
}
}
/// <summary>
@ -102,6 +120,19 @@ namespace ICSharpCode.NRefactory.CSharp @@ -102,6 +120,19 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public ArraySpecifier()
{
}
public ArraySpecifier(int dimensions)
{
this.Dimensions = dimensions;
}
public CSharpTokenNode LBracketToken {
get { return GetChildByRole (Roles.LBracket); }
}
public int Dimensions {
get { return 1 + GetChildrenByRole(Roles.Comma).Count(); }
set {
@ -117,7 +148,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -117,7 +148,11 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public CSharpTokenNode RBracketToken {
get { return GetChildByRole (Roles.RBracket); }
}
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitArraySpecifier(this, data);
}

31
ICSharpCode.NRefactory/CSharp/Ast/DepthFirstAstVisitor.cs

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
//
// AstVisitor.cs
//
// IAstVisitor.cs
//
// Author:
// Mike Krüger <mkrueger@novell.com>
@ -31,7 +31,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -31,7 +31,7 @@ namespace ICSharpCode.NRefactory.CSharp
/// <summary>
/// AST visitor with a default implementation that visits all node depth-first.
/// </summary>
public abstract class DepthFirstAstVisitor<T, S> : AstVisitor<T, S>
public abstract class DepthFirstAstVisitor<T, S> : IAstVisitor<T, S>
{
protected virtual S VisitChildren (AstNode node, T data)
{
@ -225,6 +225,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -225,6 +225,11 @@ namespace ICSharpCode.NRefactory.CSharp
return VisitChildren (continueStatement, data);
}
public virtual S VisitDoWhileStatement (DoWhileStatement doWhileStatement, T data)
{
return VisitChildren (doWhileStatement, data);
}
public virtual S VisitEmptyStatement (EmptyStatement emptyStatement, T data)
{
return VisitChildren (emptyStatement, data);
@ -245,6 +250,16 @@ namespace ICSharpCode.NRefactory.CSharp @@ -245,6 +250,16 @@ namespace ICSharpCode.NRefactory.CSharp
return VisitChildren (forStatement, data);
}
public virtual S VisitGotoCaseStatement (GotoCaseStatement gotoCaseStatement, T data)
{
return VisitChildren (gotoCaseStatement, data);
}
public virtual S VisitGotoDefaultStatement (GotoDefaultStatement gotoDefaultStatement, T data)
{
return VisitChildren (gotoDefaultStatement, data);
}
public virtual S VisitGotoStatement (GotoStatement gotoStatement, T data)
{
return VisitChildren (gotoStatement, data);
@ -325,6 +340,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -325,6 +340,11 @@ namespace ICSharpCode.NRefactory.CSharp
return VisitChildren (whileStatement, data);
}
public virtual S VisitYieldBreakStatement (YieldBreakStatement yieldBreakStatement, T data)
{
return VisitChildren (yieldBreakStatement, data);
}
public virtual S VisitYieldStatement (YieldStatement yieldStatement, T data)
{
return VisitChildren (yieldStatement, data);
@ -445,6 +465,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -445,6 +465,11 @@ namespace ICSharpCode.NRefactory.CSharp
return VisitChildren (typeOfExpression, data);
}
public virtual S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data)
{
return VisitChildren (typeReferenceExpression, data);
}
public virtual S VisitUnaryOperatorExpression (UnaryOperatorExpression unaryOperatorExpression, T data)
{
return VisitChildren (unaryOperatorExpression, data);

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/AnonymousMethodExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// AnonymousMethodExpression.cs
//
// Author:
@ -61,7 +61,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -61,7 +61,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Body, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitAnonymousMethodExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArgListExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ArgListExpression.cs
//
// Author:
@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitArgListExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArrayCreateExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
namespace ICSharpCode.NRefactory.CSharp
@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (InitializerRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitArrayCreateExpression (this, data);
}

6
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ArrayInitializerExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ArrayInitializerExpression.cs
//
// Author:
@ -44,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -44,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -64,7 +64,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -64,7 +64,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBrace); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitArrayInitializerExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/AsExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// AsExpression.cs
//
// Author:
@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole(Roles.Type, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitAsExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/AssignmentExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// AssignmentExpression.cs
//
// Author:
@ -67,7 +67,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -67,7 +67,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole(RightRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitAssignmentExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/BaseReferenceExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// BaseReferenceExpression.cs
//
// Author:
@ -47,7 +47,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -47,7 +47,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitBaseReferenceExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/BinaryOperatorExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// BinaryOperatorExpression.cs
//
// Author:
@ -67,7 +67,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -67,7 +67,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole(RightRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitBinaryOperatorExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/CastExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// CastExpression.cs
//
// Author:
@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCastExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/CheckedExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// CheckedExpression.cs
//
// Author:
@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCheckedExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ConditionalExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ConditionalExpression.cs
//
// Author:
@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole(FalseRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitConditionalExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/DefaultValueExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// DefaultValueExpression.cs
//
// Author:
@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitDefaultValueExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/DirectionExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// DirectionExpression.cs
//
// Author:
@ -52,7 +52,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -52,7 +52,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitDirectionExpression (this, data);
}

38
ICSharpCode.NRefactory/CSharp/Ast/Expressions/Expression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
@ -27,7 +27,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -27,7 +27,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -108,20 +108,54 @@ namespace ICSharpCode.NRefactory.CSharp @@ -108,20 +108,54 @@ namespace ICSharpCode.NRefactory.CSharp
};
}
/// <summary>
/// Builds an invocation expression using this expression as target.
/// </summary>
public InvocationExpression Invoke(IEnumerable<Expression> arguments)
{
return new InvocationExpression {
Target = this,
Arguments = arguments
};
}
/// <summary>
/// Builds an invocation expression using this expression as target.
/// </summary>
public InvocationExpression Invoke(params Expression[] arguments)
{
return Invoke(arguments.AsEnumerable());
}
public CastExpression CastTo(AstType type)
{
return new CastExpression { Type = type, Expression = this };
}
public CastExpression CastTo(Type type)
{
return new CastExpression { Type = AstType.Create(type), Expression = this };
}
public AsExpression CastAs(AstType type)
{
return new AsExpression { Type = type, Expression = this };
}
public AsExpression CastAs(Type type)
{
return new AsExpression { Type = AstType.Create(type), Expression = this };
}
public IsExpression IsType(AstType type)
{
return new IsExpression { Type = type, Expression = this };
}
public IsExpression IsType(Type type)
{
return new IsExpression { Type = AstType.Create(type), Expression = this };
}
#endregion
}
}

9
ICSharpCode.NRefactory/CSharp/Ast/Expressions/IdentifierExpression.cs

@ -1,4 +1,3 @@ @@ -1,4 +1,3 @@
using System.Collections.Generic;
//
// IdentifierExpression.cs
//
@ -24,6 +23,7 @@ @@ -24,6 +23,7 @@
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System.Collections.Generic;
namespace ICSharpCode.NRefactory.CSharp
{
@ -38,6 +38,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -38,6 +38,11 @@ namespace ICSharpCode.NRefactory.CSharp
this.Identifier = identifier;
}
public IdentifierExpression(string identifier, AstLocation location)
{
SetChildByRole(Roles.Identifier, new Identifier(identifier, location));
}
// public Identifier IdentifierToken {
// get { return GetChildByRole (Roles.Identifier); }
// }
@ -56,7 +61,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -56,7 +61,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.TypeArgument, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitIdentifierExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/IndexerExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// IndexerExpression.cs
//
// Author:
@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBracket); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitIndexerExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/InvocationExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// InvocationExpression.cs
//
// Author:
@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitInvocationExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/IsExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// TypeOfIsExpression.cs
//
// Author:
@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole(Roles.Type, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitIsExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/LambdaExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// LambdaExpression.cs
//
// Author:
@ -50,7 +50,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -50,7 +50,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (BodyRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitLambdaExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/MemberReferenceExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// MemberReferenceExpression.cs
//
// Author:
@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RChevron); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitMemberReferenceExpression (this, data);
}

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

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
@ -24,7 +24,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -24,7 +24,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S>(AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitNamedArgumentExpression(this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/NullReferenceExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// NullReferenceExpression.cs
//
// Author:
@ -31,7 +31,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -31,7 +31,7 @@ namespace ICSharpCode.NRefactory.CSharp
/// </summary>
public class NullReferenceExpression : Expression
{
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitNullReferenceExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ObjectCreateExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ObjectCreateExpression.cs
//
// Author:
@ -62,7 +62,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -62,7 +62,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (InitializerRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitObjectCreateExpression (this, data);
}

7
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ParenthesizedExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ParenthesizedExpression.cs
//
// Author:
@ -26,6 +26,9 @@ @@ -26,6 +26,9 @@
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// ( Expression )
/// </summary>
public class ParenthesizedExpression : Expression
{
public CSharpTokenNode LParToken {
@ -41,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -41,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitParenthesizedExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/PointerReferenceExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// PointerReferenceExpression.cs
//
// Author:
@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.TypeArgument, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitPointerReferenceExpression (this, data);
}

7
ICSharpCode.NRefactory/CSharp/Ast/Expressions/PrimitiveExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// PrimitiveExpression.cs
//
// Author:
@ -26,6 +26,9 @@ @@ -26,6 +26,9 @@
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// Represents a literal value.
/// </summary>
public class PrimitiveExpression : Expression
{
AstLocation startLocation;
@ -59,7 +62,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -59,7 +62,7 @@ namespace ICSharpCode.NRefactory.CSharp
this.length = length;
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitPrimitiveExpression (this, data);
}

24
ICSharpCode.NRefactory/CSharp/Ast/Expressions/QueryExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
@ -21,7 +21,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -21,7 +21,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -33,7 +33,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -33,7 +33,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole(ClauseRole, value); }
}
public override S AcceptVisitor<T, S>(AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryExpression (this, data);
}
@ -83,7 +83,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -83,7 +83,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryContinuationClause (this, data);
}
@ -113,7 +113,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -113,7 +113,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryFromClause (this, data);
}
@ -143,7 +143,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -143,7 +143,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole(Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryLetClause (this, data);
}
@ -161,7 +161,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -161,7 +161,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Condition, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryWhereClause (this, data);
}
@ -246,7 +246,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -246,7 +246,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryJoinClause (this, data);
}
@ -265,7 +265,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -265,7 +265,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (OrderingRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryOrderClause (this, data);
}
@ -291,7 +291,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -291,7 +291,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Keyword); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryOrdering (this, data);
}
@ -315,7 +315,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -315,7 +315,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQuerySelectClause (this, data);
}
@ -346,7 +346,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -346,7 +346,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (KeyRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitQueryGroupClause (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/SizeOfExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// SizeOfExpression.cs
//
// Author:
@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitSizeOfExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/StackAllocExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// StackAllocExpression.cs
//
// Author:
@ -53,7 +53,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -53,7 +53,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBracket); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitStackAllocExpression (this, data);
}

7
ICSharpCode.NRefactory/CSharp/Ast/Expressions/ThisReferenceExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ThisReferenceExpression.cs
//
// Author:
@ -26,6 +26,9 @@ @@ -26,6 +26,9 @@
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// this
/// </summary>
public class ThisReferenceExpression : Expression
{
public AstLocation Location {
@ -44,7 +47,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -44,7 +47,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitThisReferenceExpression (this, data);
}

7
ICSharpCode.NRefactory/CSharp/Ast/Expressions/TypeOfExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// TypeOfExpression.cs
//
// Author:
@ -27,6 +27,9 @@ @@ -27,6 +27,9 @@
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// typeof(Type)
/// </summary>
public class TypeOfExpression : Expression
{
public CSharpTokenNode TypeOfToken {
@ -46,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -46,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitTypeOfExpression (this, data);
}

24
ICSharpCode.NRefactory/CSharp/Ast/Expressions/TypeReferenceExpression.cs

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// Represents an AstType as an expression.
/// This is used when calling a method on a primitive type: "int.Parse()"
/// </summary>
public class TypeReferenceExpression : Expression
{
public AstType Type {
get { return GetChildByRole(Roles.Type); }
set { SetChildByRole(Roles.Type, value); }
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitTypeReferenceExpression(this, data);
}
}
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/UnaryOperatorExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UnaryOperatorExpression.cs
//
// Author:
@ -59,7 +59,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -59,7 +59,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUnaryOperatorExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Expressions/UncheckedExpression.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UncheckedExpression.cs
//
// Author:
@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RPar); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUncheckedExpression (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/Attribute.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// Attribute.cs
//
// Author:
@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.Argument, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitAttribute (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/AttributeSection.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// AttributeSection.cs
//
// Author:
@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (AttributeRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitAttributeSection (this, data);
}

10
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/Comment.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// Comment.cs
//
// Author:
@ -69,6 +69,12 @@ namespace ICSharpCode.NRefactory.CSharp @@ -69,6 +69,12 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public Comment (string content, CommentType type = CommentType.SingleLine)
{
this.CommentType = type;
this.Content = content;
}
public Comment (CommentType commentType, AstLocation startLocation, AstLocation endLocation)
{
this.CommentType = commentType;
@ -76,7 +82,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -76,7 +82,7 @@ namespace ICSharpCode.NRefactory.CSharp
this.endLocation = endLocation;
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitComment (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/Constraint.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// Constraint.cs
//
// Author:
@ -58,7 +58,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -58,7 +58,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (BaseTypeRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitConstraint (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/DelegateDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// DelegateDeclaration.cs
//
// Author:
@ -77,7 +77,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -77,7 +77,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.Constraint, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitDelegateDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/NamespaceDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// NamespaceDeclaration.cs
//
// Author:
@ -98,7 +98,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -98,7 +98,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitNamespaceDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/TypeDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// TypeDeclaration.cs
//
// Author:
@ -87,7 +87,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -87,7 +87,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBrace); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitTypeDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/TypeParameterDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
@ -34,7 +34,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -34,7 +34,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S>(AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitTypeParameterDeclaration(this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/UsingAliasDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UsingAliasDeclaration.cs
//
// Author:
@ -66,7 +66,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -66,7 +66,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUsingAliasDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/GeneralScope/UsingDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UsingDeclaration.cs
//
// Author:
@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUsingDeclaration (this, data);
}

7
ICSharpCode.NRefactory/CSharp/Ast/IAstVisitor.cs

@ -8,7 +8,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -8,7 +8,7 @@ namespace ICSharpCode.NRefactory.CSharp
/// <summary>
/// AST visitor.
/// </summary>
public interface AstVisitor<in T, out S>
public interface IAstVisitor<in T, out S>
{
S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, T data);
S VisitArgListExpression(ArgListExpression argListExpression, T data);
@ -39,6 +39,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -39,6 +39,7 @@ namespace ICSharpCode.NRefactory.CSharp
S VisitStackAllocExpression(StackAllocExpression stackAllocExpression, T data);
S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, T data);
S VisitTypeOfExpression(TypeOfExpression typeOfExpression, T data);
S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data);
S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, T data);
S VisitUncheckedExpression(UncheckedExpression uncheckedExpression, T data);
@ -65,11 +66,14 @@ namespace ICSharpCode.NRefactory.CSharp @@ -65,11 +66,14 @@ namespace ICSharpCode.NRefactory.CSharp
S VisitBreakStatement(BreakStatement breakStatement, T data);
S VisitCheckedStatement(CheckedStatement checkedStatement, T data);
S VisitContinueStatement(ContinueStatement continueStatement, T data);
S VisitDoWhileStatement(DoWhileStatement doWhileStatement, T data);
S VisitEmptyStatement(EmptyStatement emptyStatement, T data);
S VisitExpressionStatement(ExpressionStatement expressionStatement, T data);
S VisitFixedStatement(FixedStatement fixedStatement, T data);
S VisitForeachStatement(ForeachStatement foreachStatement, T data);
S VisitForStatement(ForStatement forStatement, T data);
S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement, T data);
S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement, T data);
S VisitGotoStatement(GotoStatement gotoStatement, T data);
S VisitIfElseStatement(IfElseStatement ifElseStatement, T data);
S VisitLabelStatement(LabelStatement labelStatement, T data);
@ -86,6 +90,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -86,6 +90,7 @@ namespace ICSharpCode.NRefactory.CSharp
S VisitUsingStatement(UsingStatement usingStatement, T data);
S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, T data);
S VisitWhileStatement(WhileStatement whileStatement, T data);
S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement, T data);
S VisitYieldStatement(YieldStatement yieldStatement, T data);
S VisitAccessor(Accessor accessor, T data);

6
ICSharpCode.NRefactory/CSharp/Ast/Identifier.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// Identifier.cs
//
// Author:
@ -39,7 +39,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -39,7 +39,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -87,7 +87,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -87,7 +87,7 @@ namespace ICSharpCode.NRefactory.CSharp
this.startLocation = location;
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitIdentifier (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/MemberType.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// FullTypeName.cs
//
// Author:
@ -56,7 +56,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -56,7 +56,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.TypeArgument, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitMemberType (this, data);
}

12
ICSharpCode.NRefactory/CSharp/Ast/PrimitiveType.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// FullTypeName.cs
//
// Author:
@ -43,6 +43,12 @@ namespace ICSharpCode.NRefactory.CSharp @@ -43,6 +43,12 @@ namespace ICSharpCode.NRefactory.CSharp
this.Keyword = keyword;
}
public PrimitiveType(string keyword, AstLocation location)
{
this.Keyword = keyword;
this.Location = location;
}
public override AstLocation StartLocation {
get {
return Location;
@ -50,11 +56,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -50,11 +56,11 @@ namespace ICSharpCode.NRefactory.CSharp
}
public override AstLocation EndLocation {
get {
return new AstLocation (Location.Line, Location.Column + Keyword != null ? Keyword.Length : 0);
return new AstLocation (Location.Line, Location.Column + (Keyword != null ? Keyword.Length : 0));
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitPrimitiveType (this, data);
}

9
ICSharpCode.NRefactory/CSharp/Ast/SimpleType.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// FullTypeName.cs
//
// Author:
@ -42,6 +42,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -42,6 +42,11 @@ namespace ICSharpCode.NRefactory.CSharp
this.Identifier = identifier;
}
public SimpleType(string identifier, AstLocation location)
{
SetChildByRole (Roles.Identifier, new Identifier(identifier, location));
}
public string Identifier {
get {
return GetChildByRole (Roles.Identifier).Name;
@ -56,7 +61,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -56,7 +61,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.TypeArgument, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitSimpleType (this, data);
}

12
ICSharpCode.NRefactory/CSharp/Ast/Statements/BlockStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// BlockStatement.cs
//
// Author:
@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -65,7 +65,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -65,7 +65,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBrace); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitBlockStatement (this, data);
}
@ -81,6 +81,12 @@ namespace ICSharpCode.NRefactory.CSharp @@ -81,6 +81,12 @@ namespace ICSharpCode.NRefactory.CSharp
AddChild(new ExpressionStatement { Expression = expression }, StatementRole);
}
public void AddStatements(IEnumerable<Statement> statements)
{
foreach (Statement st in statements)
AddChild(st, StatementRole);
}
public void AddAssignment(Expression left, Expression right)
{
AddStatement(new AssignmentExpression { Left = left, Operator = AssignmentOperatorType.Assign, Right = right });

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/BreakStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// BreakStatement.cs
//
// Author:
@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitBreakStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/CheckedStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// CheckedStatement.cs
//
// Author:
@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Body, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCheckedStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/ContinueStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ContinueStatement.cs
//
// Author:
@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitContinueStatement (this, data);
}

73
ICSharpCode.NRefactory/CSharp/Ast/Statements/DoWhileStatement.cs

@ -0,0 +1,73 @@ @@ -0,0 +1,73 @@
//
// DoWhileStatement.cs
//
// Author:
// Mike Krüger <mkrueger@novell.com>
//
// Copyright (c) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.using System;
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// "do EmbeddedStatement while(Condition);"
/// </summary>
public class DoWhileStatement : Statement
{
public static readonly Role<CSharpTokenNode> DoKeywordRole = new Role<CSharpTokenNode>("DoKeyword", CSharpTokenNode.Null);
public static readonly Role<CSharpTokenNode> WhileKeywordRole = new Role<CSharpTokenNode>("WhileKeyword", CSharpTokenNode.Null);
public CSharpTokenNode DoToken {
get { return GetChildByRole (DoKeywordRole); }
}
public Statement EmbeddedStatement {
get { return GetChildByRole (Roles.EmbeddedStatement); }
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public CSharpTokenNode WhileToken {
get { return GetChildByRole (WhileKeywordRole); }
}
public CSharpTokenNode LParToken {
get { return GetChildByRole (Roles.LPar); }
}
public Expression Condition {
get { return GetChildByRole (Roles.Condition); }
set { SetChildByRole (Roles.Condition, value); }
}
public CSharpTokenNode RParToken {
get { return GetChildByRole (Roles.RPar); }
}
public CSharpTokenNode SemicolonToken {
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitDoWhileStatement (this, data);
}
}
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/EmptyStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// EmptyStatement.cs
//
// Author:
@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -48,7 +48,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitEmptyStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/ExpressionStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ExpressionStatement.cs
//
// Author:
@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitExpressionStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/FixedStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// FixedStatement.cs
//
// Author:
@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitFixedStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/ForStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ForStatement.cs
//
// Author:
@ -73,7 +73,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -73,7 +73,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitForStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/ForeachStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ForeachStatement.cs
//
// Author:
@ -71,7 +71,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -71,7 +71,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitForeachStatement (this, data);
}

86
ICSharpCode.NRefactory/CSharp/Ast/Statements/GotoStatement.cs

@ -28,17 +28,16 @@ namespace ICSharpCode.NRefactory.CSharp @@ -28,17 +28,16 @@ namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// "goto Label;"
/// or "goto case LabelExpression;"
/// or "goto default;"
/// </summary>
public class GotoStatement : Statement
{
public static readonly Role<CSharpTokenNode> DefaultKeywordRole = new Role<CSharpTokenNode>("DefaultKeyword", CSharpTokenNode.Null);
public static readonly Role<CSharpTokenNode> CaseKeywordRole = new Role<CSharpTokenNode>("CaseKeyword", CSharpTokenNode.Null);
public GotoStatement ()
{
}
public GotoType GotoType {
get;
set;
public GotoStatement (string label)
{
this.Label = label;
}
public CSharpTokenNode GotoToken {
@ -69,20 +68,79 @@ namespace ICSharpCode.NRefactory.CSharp @@ -69,20 +68,79 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitGotoStatement (this, data);
}
}
/// <summary>
/// or "goto case LabelExpression;"
/// </summary>
public class GotoCaseStatement : Statement
{
public static readonly Role<CSharpTokenNode> CaseKeywordRole = new Role<CSharpTokenNode>("CaseKeyword", CSharpTokenNode.Null);
public CSharpTokenNode GotoToken {
get { return GetChildByRole (Roles.Keyword); }
}
public CSharpTokenNode CaseToken {
get { return GetChildByRole (CaseKeywordRole); }
}
public string Label {
get {
return GetChildByRole (Roles.Identifier).Name;
}
set {
if (string.IsNullOrEmpty(value))
SetChildByRole(Roles.Identifier, null);
else
SetChildByRole(Roles.Identifier, new Identifier(value, AstLocation.Empty));
}
}
/// <summary>
/// Used for "goto case LabelExpression;"
/// </summary>
public Expression LabelExpression {
get { return GetChildByRole (Roles.Expression); }
set { SetChildByRole (Roles.Expression, value); }
}
public CSharpTokenNode SemicolonToken {
get { return GetChildByRole (Roles.Semicolon); }
}
public GotoStatement (GotoType gotoType)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
this.GotoType = gotoType;
return visitor.VisitGotoCaseStatement (this, data);
}
}
public enum GotoType {
Label,
Case,
CaseDefault
/// <summary>
/// or "goto default;"
/// </summary>
public class GotoDefaultStatement : Statement
{
public static readonly Role<CSharpTokenNode> DefaultKeywordRole = new Role<CSharpTokenNode>("DefaultKeyword", CSharpTokenNode.Null);
public CSharpTokenNode GotoToken {
get { return GetChildByRole (Roles.Keyword); }
}
public CSharpTokenNode DefaultToken {
get { return GetChildByRole (DefaultKeywordRole); }
}
public CSharpTokenNode SemicolonToken {
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitGotoDefaultStatement (this, data);
}
}
}

15
ICSharpCode.NRefactory/CSharp/Ast/Statements/IfElseStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// IfElseStatement.cs
//
// Author:
@ -69,9 +69,20 @@ namespace ICSharpCode.NRefactory.CSharp @@ -69,9 +69,20 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (FalseRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitIfElseStatement (this, data);
}
public IfElseStatement()
{
}
public IfElseStatement(Expression condition, Statement trueStatement, Statement falseStatement = null)
{
this.Condition = condition;
this.TrueStatement = trueStatement;
this.FalseStatement = falseStatement;
}
}
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/LabelStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// LabelStatement.cs
//
// Author:
@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitLabelStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/LockStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// LockStatement.cs
//
// Author:
@ -53,7 +53,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -53,7 +53,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitLockStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/ReturnStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ReturnStatement.cs
//
// Author:
@ -44,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -44,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitReturnStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/Statement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
@ -25,7 +25,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -25,7 +25,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}

8
ICSharpCode.NRefactory/CSharp/Ast/Statements/SwitchStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// SwitchStatement.cs
//
// Author:
@ -66,7 +66,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -66,7 +66,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBrace); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitSwitchStatement (this, data);
}
@ -92,7 +92,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -92,7 +92,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitSwitchSection (this, data);
}
@ -111,7 +111,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -111,7 +111,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCaseLabel (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/ThrowStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ThrowStatement.cs
//
// Author:
@ -44,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -44,7 +44,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitThrowStatement (this, data);
}

28
ICSharpCode.NRefactory/CSharp/Ast/Statements/TryCatchStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// TryCatchStatement.cs
//
// Author:
@ -30,7 +30,7 @@ using System.Linq; @@ -30,7 +30,7 @@ using System.Linq;
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// try { TryBlock } CatchClauses finally { FinallyBlock }
/// try TryBlock CatchClauses finally FinallyBlock
/// </summary>
public class TryCatchStatement : Statement
{
@ -40,6 +40,10 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,6 +40,10 @@ namespace ICSharpCode.NRefactory.CSharp
public static readonly Role<CSharpTokenNode> FinallyKeywordRole = new Role<CSharpTokenNode>("FinallyKeyword", CSharpTokenNode.Null);
public static readonly Role<BlockStatement> FinallyBlockRole = new Role<BlockStatement>("FinallyBlock", BlockStatement.Null);
public CSharpTokenNode TryToken {
get { return GetChildByRole (TryKeywordRole); }
}
public BlockStatement TryBlock {
get { return GetChildByRole (TryBlockRole); }
set { SetChildByRole (TryBlockRole, value); }
@ -50,12 +54,16 @@ namespace ICSharpCode.NRefactory.CSharp @@ -50,12 +54,16 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (CatchClauseRole, value); }
}
public CSharpTokenNode FinallyToken {
get { return GetChildByRole (FinallyKeywordRole); }
}
public BlockStatement FinallyBlock {
get { return GetChildByRole (FinallyBlockRole); }
set { SetChildByRole (FinallyBlockRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitTryCatchStatement (this, data);
}
@ -72,6 +80,14 @@ namespace ICSharpCode.NRefactory.CSharp @@ -72,6 +80,14 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public CSharpTokenNode CatchToken {
get { return GetChildByRole (Roles.Keyword); }
}
public CSharpTokenNode LParToken {
get { return GetChildByRole (Roles.LPar); }
}
public AstType Type {
get { return GetChildByRole (Roles.Type); }
set { SetChildByRole (Roles.Type, value); }
@ -87,12 +103,16 @@ namespace ICSharpCode.NRefactory.CSharp @@ -87,12 +103,16 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public CSharpTokenNode RParToken {
get { return GetChildByRole (Roles.RPar); }
}
public BlockStatement Body {
get { return GetChildByRole (Roles.Body); }
set { SetChildByRole (Roles.Body, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCatchClause (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/UncheckedStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UncheckedStatement.cs
//
// Author:
@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Body, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUncheckedStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/UnsafeStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UnsafeStatement.cs
//
// Author:
@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Body, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUnsafeStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/UsingStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// UsingStatement.cs
//
// Author:
@ -58,7 +58,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -58,7 +58,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitUsingStatement (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/Statements/VariableDeclarationStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// VariableDeclarationStatement.cs
//
// Author:
@ -52,7 +52,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -52,7 +52,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitVariableDeclarationStatement (this, data);
}

25
ICSharpCode.NRefactory/CSharp/Ast/Statements/WhileStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// WhileStatement.cs
//
// Author:
@ -28,22 +28,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -28,22 +28,11 @@ namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// "while (Condition) EmbeddedStatement"
/// or "do EmbeddedStatement while(Condition);"
/// </summary>
public class WhileStatement : Statement
{
public static readonly Role<CSharpTokenNode> DoKeywordRole = new Role<CSharpTokenNode>("DoKeyword", CSharpTokenNode.Null);
public static readonly Role<CSharpTokenNode> WhileKeywordRole = new Role<CSharpTokenNode>("WhileKeyword", CSharpTokenNode.Null);
public WhilePosition WhilePosition {
get;
set;
}
public CSharpTokenNode DoToken {
get { return GetChildByRole (DoKeywordRole); }
}
public CSharpTokenNode WhileToken {
get { return GetChildByRole (WhileKeywordRole); }
}
@ -66,19 +55,9 @@ namespace ICSharpCode.NRefactory.CSharp @@ -66,19 +55,9 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.EmbeddedStatement, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitWhileStatement (this, data);
}
public WhileStatement (WhilePosition whilePosition)
{
this.WhilePosition = whilePosition;
}
}
public enum WhilePosition {
Begin,
End
}
}

54
ICSharpCode.NRefactory/CSharp/Ast/Statements/YieldBreakStatement.cs

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
//
// YieldBreakStatement.cs
//
// Author:
// Mike Krüger <mkrueger@novell.com>
//
// Copyright (c) 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// yield break;
/// </summary>
public class YieldBreakStatement : Statement
{
public static readonly Role<CSharpTokenNode> YieldKeywordRole = new Role<CSharpTokenNode>("YieldKeyword", CSharpTokenNode.Null);
public static readonly Role<CSharpTokenNode> BreakKeywordRole = new Role<CSharpTokenNode>("BreakKeyword", CSharpTokenNode.Null);
public CSharpTokenNode YieldToken {
get { return GetChildByRole (YieldKeywordRole); }
}
public CSharpTokenNode BreakToken {
get { return GetChildByRole (BreakKeywordRole); }
}
public CSharpTokenNode SemicolonToken {
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitYieldBreakStatement (this, data);
}
}
}

12
ICSharpCode.NRefactory/CSharp/Ast/Statements/YieldStatement.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// YieldStatement.cs
//
// Author:
@ -26,11 +26,13 @@ @@ -26,11 +26,13 @@
namespace ICSharpCode.NRefactory.CSharp
{
/// <summary>
/// yield return Expression;
/// </summary>
public class YieldStatement : Statement
{
public static readonly Role<CSharpTokenNode> YieldKeywordRole = new Role<CSharpTokenNode>("YieldKeyword", CSharpTokenNode.Null);
public static readonly Role<CSharpTokenNode> ReturnKeywordRole = new Role<CSharpTokenNode>("ReturnKeyword", CSharpTokenNode.Null);
public static readonly Role<CSharpTokenNode> BreakKeywordRole = new Role<CSharpTokenNode>("BreakKeyword", CSharpTokenNode.Null);
public CSharpTokenNode YieldToken {
get { return GetChildByRole (YieldKeywordRole); }
@ -40,10 +42,6 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,10 +42,6 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (ReturnKeywordRole); }
}
public CSharpTokenNode BreakToken {
get { return GetChildByRole (BreakKeywordRole); }
}
public Expression Expression {
get { return GetChildByRole (Roles.Expression); }
set { SetChildByRole (Roles.Expression, value); }
@ -53,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -53,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.Semicolon); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitYieldStatement (this, data);
}

6
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/Accessor.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// PropertyDeclaration.cs
//
// Author:
@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -40,7 +40,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -55,7 +55,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -55,7 +55,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Body, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitAccessor (this, data);
}

8
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/ConstructorDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ConstructorDeclaration.cs
//
// Author:
@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -60,7 +60,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return NodeType.Member; }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitConstructorDeclaration (this, data);
}
@ -88,7 +88,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -88,7 +88,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return default (S);
}
@ -110,7 +110,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -110,7 +110,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.Argument, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitConstructorInitializer (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/DestructorDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// DestructorDeclaration.cs
//
// Author:
@ -50,7 +50,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -50,7 +50,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return NodeType.Member; }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitDestructorDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/EnumMemberDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// EnumMemberDeclaration.cs
//
// Author:
@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return NodeType.Member; }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitEnumMemberDeclaration (this, data);
}

14
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/EventDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// EventDeclaration.cs
//
// Author:
@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -35,7 +35,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.Variable, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitEventDeclaration (this, data);
}
@ -46,6 +46,10 @@ namespace ICSharpCode.NRefactory.CSharp @@ -46,6 +46,10 @@ namespace ICSharpCode.NRefactory.CSharp
public static readonly Role<Accessor> AddAccessorRole = new Role<Accessor>("AddAccessor", Accessor.Null);
public static readonly Role<Accessor> RemoveAccessorRole = new Role<Accessor>("RemoveAccessor", Accessor.Null);
public CSharpTokenNode LBraceToken {
get { return GetChildByRole (Roles.LBrace); }
}
public Accessor AddAccessor {
get { return GetChildByRole (AddAccessorRole); }
set { SetChildByRole (AddAccessorRole, value); }
@ -56,7 +60,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -56,7 +60,11 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (RemoveAccessorRole, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public CSharpTokenNode RBraceToken {
get { return GetChildByRole (Roles.RBrace); }
}
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitCustomEventDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/FieldDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// FieldDeclaration.cs
//
// Author:
@ -36,7 +36,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -36,7 +36,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildrenByRole (Roles.Variable, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitFieldDeclaration (this, data);
}

12
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/IndexerDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// IndexerDeclaration.cs
//
// Author:
@ -31,12 +31,20 @@ namespace ICSharpCode.NRefactory.CSharp @@ -31,12 +31,20 @@ namespace ICSharpCode.NRefactory.CSharp
{
public class IndexerDeclaration : PropertyDeclaration
{
public CSharpTokenNode LBracketToken {
get { return GetChildByRole (Roles.LBracket); }
}
public IEnumerable<ParameterDeclaration> Parameters {
get { return GetChildrenByRole (Roles.Parameter); }
set { SetChildrenByRole (Roles.Parameter, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public CSharpTokenNode RBracketToken {
get { return GetChildByRole (Roles.RBracket); }
}
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitIndexerDeclaration (this, data);
}

5
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/MethodDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// MethodDeclaration.cs
//
// Author:
@ -66,8 +66,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -66,8 +66,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitMethodDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/OperatorDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// OperatorDeclaration.cs
//
// Author:
@ -104,7 +104,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -104,7 +104,7 @@ namespace ICSharpCode.NRefactory.CSharp
return Mono.CSharp.Operator.GetName((Mono.CSharp.Operator.OpType)type);
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitOperatorDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/ParameterDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// ParameterDeclarationExpression.cs
//
// Author:
@ -78,7 +78,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -78,7 +78,7 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitParameterDeclaration (this, data);
}

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/PropertyDeclaration.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// PropertyDeclaration.cs
//
// Author:
@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -49,7 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp
get { return GetChildByRole (Roles.RBrace); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitPropertyDeclaration (this, data);
}

15
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/VariableInitializer.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
//
//
// VariableInitializer.cs
//
// Author:
@ -33,6 +33,16 @@ namespace ICSharpCode.NRefactory.CSharp @@ -33,6 +33,16 @@ namespace ICSharpCode.NRefactory.CSharp
return NodeType.Unknown;
}
}
public VariableInitializer()
{
}
public VariableInitializer(string name, Expression initializer = null)
{
this.Name = name;
this.Initializer = initializer;
}
public string Name {
get {
@ -52,10 +62,9 @@ namespace ICSharpCode.NRefactory.CSharp @@ -52,10 +62,9 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Expression, value); }
}
public override S AcceptVisitor<T, S> (AstVisitor<T, S> visitor, T data)
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitVariableInitializer (this, data);
}
}
}

3
ICSharpCode.NRefactory/CSharp/OutputVisitor/IOutputFormatter.cs

@ -10,6 +10,9 @@ namespace ICSharpCode.NRefactory.CSharp @@ -10,6 +10,9 @@ namespace ICSharpCode.NRefactory.CSharp
/// </summary>
public interface IOutputFormatter
{
void StartNode(AstNode node);
void EndNode(AstNode node);
/// <summary>
/// Writes an identifier.
/// If the identifier conflicts with a keyword, the output visitor will

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save