mirror of https://github.com/icsharpcode/ILSpy.git
11 changed files with 384 additions and 308 deletions
@ -0,0 +1,40 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Expression
|
||||||
|
/// </summary>
|
||||||
|
// TODO this does not directly reflect the VB grammar!
|
||||||
|
public class ExpressionStatement : Statement |
||||||
|
{ |
||||||
|
public Expression Expression { |
||||||
|
get { return GetChildByRole (Roles.Expression); } |
||||||
|
set { SetChildByRole (Roles.Expression, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitExpressionStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
public ExpressionStatement() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public ExpressionStatement(Expression expression) |
||||||
|
{ |
||||||
|
this.Expression = expression; |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
ExpressionStatement o = other as ExpressionStatement; |
||||||
|
return o != null && this.Expression.DoMatch(o.Expression, match); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
public class IfElseStatement : Statement |
||||||
|
{ |
||||||
|
public static readonly Role<Statement> FalseStatementRole = new Role<Statement>("False", Ast.Statement.Null); |
||||||
|
public static readonly Role<Statement> TrueStatementRole = new Role<Statement>("True", Ast.Statement.Null); |
||||||
|
|
||||||
|
public Expression Condition { |
||||||
|
get { return GetChildByRole(Roles.Condition); } |
||||||
|
set { SetChildByRole(Roles.Condition, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public Statement Body { |
||||||
|
get { return GetChildByRole(TrueStatementRole); } |
||||||
|
set { SetChildByRole(TrueStatementRole, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public Statement ElseBlock { |
||||||
|
get { return GetChildByRole(FalseStatementRole); } |
||||||
|
set { SetChildByRole(FalseStatementRole, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitIfElseStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Label:
|
||||||
|
/// </summary>
|
||||||
|
public class LabelDeclarationStatement : Statement |
||||||
|
{ |
||||||
|
public Identifier Label { |
||||||
|
get { return GetChildByRole(Roles.Identifier); } |
||||||
|
set { SetChildByRole(Roles.Identifier, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public VBTokenNode Colon { |
||||||
|
get { return GetChildByRole(Roles.Colon); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitLabelDeclarationStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
LabelDeclarationStatement o = other as LabelDeclarationStatement; |
||||||
|
return o != null && MatchString(this.Label.Name, o.Label.Name); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,37 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// ( Dim | Static | Const ) VariableDeclarator { , VariableDeclarator }
|
||||||
|
/// </summary>
|
||||||
|
public class LocalDeclarationStatement : Statement |
||||||
|
{ |
||||||
|
public AstNodeCollection<VariableDeclarator> Variables { |
||||||
|
get { return GetChildrenByRole(VariableDeclarator.VariableDeclaratorRole); } |
||||||
|
} |
||||||
|
|
||||||
|
public Modifiers Modifiers { |
||||||
|
get { return AttributedNode.GetModifiers(this); } |
||||||
|
set { AttributedNode.SetModifiers(this, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public VBModifierToken ModifierToken { |
||||||
|
get { return GetChildByRole(AttributedNode.ModifierRole); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitLocalDeclarationStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,43 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Return Expression
|
||||||
|
/// </summary>
|
||||||
|
public class ReturnStatement : Statement |
||||||
|
{ |
||||||
|
public VBTokenNode ReturnToken { |
||||||
|
get { return GetChildByRole (Roles.Keyword); } |
||||||
|
} |
||||||
|
|
||||||
|
public Expression Expression { |
||||||
|
get { return GetChildByRole(Roles.Expression); } |
||||||
|
set { SetChildByRole(Roles.Expression, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public ReturnStatement() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public ReturnStatement(Expression expression) |
||||||
|
{ |
||||||
|
AddChild (expression, Roles.Expression); |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitReturnStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
ReturnStatement o = other as ReturnStatement; |
||||||
|
return o != null && this.Expression.DoMatch(o.Expression, match); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// SyncLock Expression <br />
|
||||||
|
/// Block <br />
|
||||||
|
/// End SyncLock
|
||||||
|
/// </summary>
|
||||||
|
public class SyncLockStatement : Statement |
||||||
|
{ |
||||||
|
public Expression Expression { |
||||||
|
get { return GetChildByRole(Roles.Expression); } |
||||||
|
set { SetChildByRole(Roles.Expression, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public BlockStatement Body { |
||||||
|
get { return GetChildByRole(Roles.Body); } |
||||||
|
set { SetChildByRole(Roles.Body, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitSyncLockStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,43 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Throw Expression
|
||||||
|
/// </summary>
|
||||||
|
public class ThrowStatement : Statement |
||||||
|
{ |
||||||
|
public VBTokenNode ThrowToken { |
||||||
|
get { return GetChildByRole (Roles.Keyword); } |
||||||
|
} |
||||||
|
|
||||||
|
public Expression Expression { |
||||||
|
get { return GetChildByRole(Roles.Expression); } |
||||||
|
set { SetChildByRole(Roles.Expression, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public ThrowStatement() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public ThrowStatement(Expression expression) |
||||||
|
{ |
||||||
|
AddChild (expression, Roles.Expression); |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitThrowStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
ThrowStatement o = other as ThrowStatement; |
||||||
|
return o != null && this.Expression.DoMatch(o.Expression, match); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,67 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
public class TryStatement : Statement |
||||||
|
{ |
||||||
|
public static readonly Role<BlockStatement> FinallyBlockRole = new Role<BlockStatement>("FinallyBlock", Ast.BlockStatement.Null); |
||||||
|
|
||||||
|
public BlockStatement Body { |
||||||
|
get { return GetChildByRole(Roles.Body); } |
||||||
|
set { SetChildByRole(Roles.Body, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public AstNodeCollection<CatchBlock> CatchBlocks { |
||||||
|
get { return GetChildrenByRole(CatchBlock.CatchBlockRole); } |
||||||
|
} |
||||||
|
|
||||||
|
public BlockStatement FinallyBlock { |
||||||
|
get { return GetChildByRole(FinallyBlockRole); } |
||||||
|
set { SetChildByRole(FinallyBlockRole, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitTryStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public class CatchBlock : BlockStatement |
||||||
|
{ |
||||||
|
public static readonly Role<CatchBlock> CatchBlockRole = new Role<CatchBlock>("CatchBlockRole"); |
||||||
|
|
||||||
|
public Identifier ExceptionVariable { |
||||||
|
get { return GetChildByRole(Roles.Identifier); } |
||||||
|
set { SetChildByRole(Roles.Identifier, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public AstType ExceptionType { |
||||||
|
get { return GetChildByRole(Roles.Type); } |
||||||
|
set { SetChildByRole(Roles.Type, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public Expression WhenExpression { |
||||||
|
get { return GetChildByRole(Roles.Expression); } |
||||||
|
set { SetChildByRole(Roles.Expression, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitCatchBlock(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
// 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.IO; |
||||||
|
|
||||||
|
namespace ICSharpCode.NRefactory.VB.Ast |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// With Expression <br />
|
||||||
|
/// Block <br />
|
||||||
|
/// End With
|
||||||
|
/// </summary>
|
||||||
|
public class WithStatement : Statement |
||||||
|
{ |
||||||
|
public Expression Expression { |
||||||
|
get { return GetChildByRole(Roles.Expression); } |
||||||
|
set { SetChildByRole(Roles.Expression, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public BlockStatement Body { |
||||||
|
get { return GetChildByRole(Roles.Body); } |
||||||
|
set { SetChildByRole(Roles.Body, value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override S AcceptVisitor<T, S> (IAstVisitor<T, S> visitor, T data) |
||||||
|
{ |
||||||
|
return visitor.VisitWithStatement(this, data); |
||||||
|
} |
||||||
|
|
||||||
|
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue