diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ExpressionStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ExpressionStatement.cs new file mode 100644 index 000000000..67e8952d6 --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ExpressionStatement.cs @@ -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 +{ + /// + /// Expression + /// + // 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 (IAstVisitor 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); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/IfElseStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/IfElseStatement.cs new file mode 100644 index 000000000..08738789a --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/IfElseStatement.cs @@ -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 FalseStatementRole = new Role("False", Ast.Statement.Null); + public static readonly Role TrueStatementRole = new Role("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 (IAstVisitor visitor, T data) + { + return visitor.VisitIfElseStatement(this, data); + } + + protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) + { + throw new NotImplementedException(); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/LabelDeclarationStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/LabelDeclarationStatement.cs new file mode 100644 index 000000000..f613a7678 --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/LabelDeclarationStatement.cs @@ -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 +{ + /// + /// Label: + /// + 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 (IAstVisitor 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); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/LocalDeclarationStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/LocalDeclarationStatement.cs new file mode 100644 index 000000000..40c19b2ab --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/LocalDeclarationStatement.cs @@ -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 +{ + /// + /// ( Dim | Static | Const ) VariableDeclarator { , VariableDeclarator } + /// + public class LocalDeclarationStatement : Statement + { + public AstNodeCollection 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 (IAstVisitor visitor, T data) + { + return visitor.VisitLocalDeclarationStatement(this, data); + } + + protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) + { + throw new NotImplementedException(); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ReturnStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ReturnStatement.cs new file mode 100644 index 000000000..26deb1ab2 --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ReturnStatement.cs @@ -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 +{ + /// + /// Return Expression + /// + 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(IAstVisitor 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); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/Statement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/Statement.cs index 07bb02ede..c20407051 100644 --- a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/Statement.cs +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/Statement.cs @@ -129,312 +129,4 @@ namespace ICSharpCode.NRefactory.VB.Ast throw new NotImplementedException(); } } - - /// - /// Label: - /// - 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 (IAstVisitor 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); - } - } - - /// - /// ( Dim | Static | Const ) VariableDeclarator { , VariableDeclarator } - /// - public class LocalDeclarationStatement : Statement - { - public AstNodeCollection 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 (IAstVisitor visitor, T data) - { - return visitor.VisitLocalDeclarationStatement(this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - throw new NotImplementedException(); - } - } - - /// - /// With Expression
- /// Block
- /// End With - ///
- 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 (IAstVisitor visitor, T data) - { - return visitor.VisitWithStatement(this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - throw new NotImplementedException(); - } - } - - /// - /// SyncLock Expression
- /// Block
- /// End SyncLock - ///
- 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 (IAstVisitor visitor, T data) - { - return visitor.VisitSyncLockStatement(this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - throw new NotImplementedException(); - } - } - - /// - /// SyncLock Expression
- /// Block
- /// End SyncLock - ///
- 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(); - } - } - - public class IfElseStatement : Statement - { - public static readonly Role FalseStatementRole = new Role("False", Ast.Statement.Null); - public static readonly Role TrueStatementRole = new Role("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 (IAstVisitor visitor, T data) - { - return visitor.VisitIfElseStatement(this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - throw new NotImplementedException(); - } - } - - /// - /// Expression - /// - public class ExpressionStatement : Statement - { - public Expression Expression { - get { return GetChildByRole (Roles.Expression); } - set { SetChildByRole (Roles.Expression, value); } - } - - public override S AcceptVisitor (IAstVisitor 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); - } - } - - /// - /// Throw Expression - /// - 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(IAstVisitor 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); - } - } - - /// - /// Return Expression - /// - 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(IAstVisitor 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); - } - } - } diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/SyncLockStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/SyncLockStatement.cs new file mode 100644 index 000000000..7fd317eb0 --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/SyncLockStatement.cs @@ -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 +{ + /// + /// SyncLock Expression
+ /// Block
+ /// End SyncLock + ///
+ 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 (IAstVisitor visitor, T data) + { + return visitor.VisitSyncLockStatement(this, data); + } + + protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) + { + throw new NotImplementedException(); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ThrowStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ThrowStatement.cs new file mode 100644 index 000000000..c4c1634b5 --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/ThrowStatement.cs @@ -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 +{ + /// + /// Throw Expression + /// + 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(IAstVisitor 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); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/TryStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/TryStatement.cs new file mode 100644 index 000000000..7e5eb94da --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/TryStatement.cs @@ -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 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(); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/WithStatement.cs b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/WithStatement.cs new file mode 100644 index 000000000..b915a9081 --- /dev/null +++ b/NRefactory/ICSharpCode.NRefactory.VB/Ast/Statements/WithStatement.cs @@ -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 +{ + /// + /// With Expression
+ /// Block
+ /// End With + ///
+ 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 (IAstVisitor visitor, T data) + { + return visitor.VisitWithStatement(this, data); + } + + protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) + { + throw new NotImplementedException(); + } + } +} diff --git a/NRefactory/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj b/NRefactory/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj index bf288e084..2b06a9be7 100644 --- a/NRefactory/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj +++ b/NRefactory/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj @@ -86,7 +86,16 @@ + + + + + + + + +