// 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 FinallyBlockRole = new Role("FinallyBlock", Ast.BlockStatement.Null); public BlockStatement Body { get { return GetChildByRole(Roles.Body); } set { SetChildByRole(Roles.Body, value); } } public AstNodeCollection CatchBlocks { get { return GetChildrenByRole(CatchBlock.CatchBlockRole); } } public BlockStatement FinallyBlock { get { return GetChildByRole(FinallyBlockRole); } set { SetChildByRole(FinallyBlockRole, value); } } public override S AcceptVisitor (IAstVisitor 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 CatchBlockRole = new Role("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 (IAstVisitor visitor, T data) { return visitor.VisitCatchBlock(this, data); } protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { throw new NotImplementedException(); } } }