private static async Task<Document> RemoveEmptyStatementAsync(Document document, SyntaxNode root, EmptyStatementSyntax node, CancellationToken cancellationToken)
        {
            SyntaxNode newRoot;

            switch (node.Parent.Kind())
            {
            case SyntaxKind.Block:
            case SyntaxKind.SwitchSection:
                // empty statements in a block or switch section can be removed
                return await RemoveSemicolonTextAsync(document, node.SemicolonToken, cancellationToken).ConfigureAwait(false);

            case SyntaxKind.IfStatement:
            case SyntaxKind.ElseClause:
            case SyntaxKind.ForStatement:
            case SyntaxKind.WhileStatement:
            case SyntaxKind.DoStatement:
                // these cases are always replaced with an empty block
                newRoot = root.ReplaceNode(node, SyntaxFactory.Block().WithTriviaFrom(node));
                return document.WithSyntaxRoot(newRoot);

            case SyntaxKind.LabeledStatement:
                // handle this case as a text manipulation for simplicity
                return await RemoveSemicolonTextAsync(document, node.SemicolonToken, cancellationToken).ConfigureAwait(false);

            default:
                return document;
            }
        }
 public override SyntaxNode VisitEmptyStatement(EmptyStatementSyntax node)
 {
     // Without this, the regions and comments get gobbled up when returning null for a SyntaxNode
     // Turns out regions are comments are not nodes but trivia of the node, so when removing node, the triva also gets cleared.
     return node.WithSemicolonToken(
             SyntaxFactory.MissingToken(SyntaxKind.SemicolonToken)
                 .WithLeadingTrivia(node.SemicolonToken.LeadingTrivia)
                 .WithTrailingTrivia(node.SemicolonToken.TrailingTrivia));
 }
Example #3
0
        public static EmptyStatementSyntax EmptyStatement()
        {
            var result = new EmptyStatementSyntax();

            return result;
        }
Example #4
0
 public virtual void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     DefaultVisit(node);
 }
Example #5
0
 private void EmptyStatement(EmptyStatementSyntax statement)
 {
     writer.WriteLine(';');
 }
Example #6
0
 private BoundStatement BindEmptyStatement(EmptyStatementSyntax syntax)
 {
     return(new BoundNoOpStatement());
 }
 public static void Write(this EmptyStatementSyntax syntax, IIndentedTextWriterWrapper textWriter, IContext context)
 {
 }
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     CreateConnectedEndNode(node);
 }
Example #9
0
 public virtual bool VisitEmptyStatementSyntax(
     EmptyStatementSyntax emptyStatement,
     VisitKind visitKind)
 => VisitStatementSyntax(emptyStatement, visitKind);
			public override void VisitEmptyStatement(EmptyStatementSyntax node)
			{
				base.VisitEmptyStatement(node);
				_counter++;
			}
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitEmptyStatement(node);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitEmptyStatement(node);
 }
 public EmptyStatementSharpnode(EmptyStatementSyntax syntax) : base(syntax)
 {
 }
 public override IEnumerable <IModel> VisitEmptyStatement(EmptyStatementSyntax node)
 {
     yield return(Create <EmptyStatement>(node));
 }
Example #15
0
 // 空语句
 public virtual void VisitEmptyStatementSyntax(EmptyStatementSyntax value)
 {
     DefaultVisit(value);
 }
Example #16
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     _currentBlock.Nodes.Add(node);
 }
 public override AccessorOrMutator VisitEmptyStatement(EmptyStatementSyntax node)
 {
     return(null);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 /// <remarks>
 /// Statements will cause an AST walker to be created, thus we don't need to go further deeper in the
 /// tree by visiting the node.
 /// </remarks>
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     this.VisitStatement(node);
 }
 public override SyntaxNode VisitEmptyStatement(EmptyStatementSyntax node)
 {
     return(null);
 }
Example #20
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
 }
 public override SyntaxNode VisitEmptyStatement(EmptyStatementSyntax node)
 {
     //Simply remove all Empty Statements
     return(null);
 }
Example #22
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     cb.Append(";");
 }
Example #23
0
 public override IEnumerable <Instruction> VisitEmptyStatement(EmptyStatementSyntax node)
 {
     return(Enumerable.Empty <Instruction>());
 }
Example #24
0
 public override Evaluation VisitEmptyStatement(EmptyStatementSyntax node)
 {
     return(base.VisitEmptyStatement(node));
 }
 public override IStatement VisitEmptyStatement(EmptyStatementSyntax node)
 {
     return(CodeDummy.LabeledStatement);
 }
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
 }
Example #27
0
 public BoundNoOpStatement(EmptyStatementSyntax syntax)
     : base(BoundNodeKind.NoOpStatement, syntax)
 {
 }
Example #28
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     cb.Append(";");
 }
Example #29
0
        public void VisitEmptyStatement(EmptyStatementSyntax node)
        {
            if (node == null)
                throw new ArgumentNullException("node");

            node.Validate();

            WriteLeadingTrivia(node);

            _writer.WriteIndent();
            _writer.EndStatement();

            WriteTrailingTrivia(node);
        }
Example #30
0
 public EmptyStatementTranslation(EmptyStatementSyntax syntax, SyntaxTranslation parent) : base(syntax, parent)
 {
 }
Example #31
0
 public override SyntaxNode VisitEmptyStatement(EmptyStatementSyntax node)
 {
     node = (EmptyStatementSyntax)base.VisitEmptyStatement(node);
     Classes.Add(node);
     return(node);
 }
Example #32
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     UpdateSyntaxNode(node);
 }
Example #33
0
        // TODO: Better design, create ASTWalkerBase which inherits from CSharpSyntaxWalker.
        // Make all ASTWalker(s) inherit from it and provide virtual methods for statements in order to provide only one
        // method for statement visit.

        // TODO: Evaluate the possibility to use BlockASTWalker.

        #region CSharpSyntaxWalker overrides

        /// <summary>
        ///
        /// </summary>
        /// <param name="node"></param>
        /// <remarks>
        /// Statements will cause an AST walker to be created, thus we don't need to go further deeper in the
        /// tree by visiting the node.
        /// </remarks>
        public override void VisitEmptyStatement(EmptyStatementSyntax node)
        {
            this.VisitStatement(node);
        }
Example #34
0
        public override UstNode VisitEmptyStatement(EmptyStatementSyntax node)
        {
            var result = new EmptyStatement(node.GetTextSpan(), FileNode);

            return(result);
        }
Example #35
0
 public override IEnumerable <EditorNavigationTarget> VisitEmptyStatement(EmptyStatementSyntax node)
 {
     yield break;
 }
Example #36
0
 public override SyntaxNode VisitEmptyStatement(EmptyStatementSyntax node)
 {
     // Construct an EmptyStatementSyntax with a missing semicolon
     // This approach has the side effect of leaving a blank line wherever there was a redundant semicolon
     return node.WithSemicolonToken(
         SyntaxFactory.MissingToken(SyntaxKind.SemicolonToken)
             .WithLeadingTrivia(node.SemicolonToken.LeadingTrivia)
             .WithTrailingTrivia(node.SemicolonToken.TrailingTrivia));
 }
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     base.VisitEmptyStatement(node);
     _counter++;
 }
        private static async Task <Document> RemoveEmptyStatementAsync(Document document, SyntaxNode root, EmptyStatementSyntax node, CancellationToken cancellationToken)
        {
            SyntaxNode newRoot;

            switch (node.Parent.Kind())
            {
            case SyntaxKind.Block:
            case SyntaxKind.SwitchSection:
                // empty statements in a block or switch section can be removed
                return(await RemoveSemicolonTextAsync(document, node.SemicolonToken, cancellationToken).ConfigureAwait(false));

            case SyntaxKind.IfStatement:
            case SyntaxKind.ElseClause:
            case SyntaxKind.ForStatement:
            case SyntaxKind.WhileStatement:
            case SyntaxKind.DoStatement:
                // these cases are always replaced with an empty block
                newRoot = root.ReplaceNode(node, SyntaxFactory.Block().WithTriviaFrom(node));
                return(document.WithSyntaxRoot(newRoot));

            case SyntaxKind.LabeledStatement:
                // handle this case as a text manipulation for simplicity
                return(await RemoveSemicolonTextAsync(document, node.SemicolonToken, cancellationToken).ConfigureAwait(false));

            default:
                return(document);
            }
        }
Example #39
0
 public virtual void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     DefaultVisit(node);
 }
Example #40
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     CreateConnectedEndNode(node);
 }
 //
 // Summary:
 //     Called when the visitor visits a EmptyStatementSyntax node.
 public virtual void VisitEmptyStatement(EmptyStatementSyntax node);
Example #42
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node)
 {
     Emit <EmptyBlock, EmptyStatementSyntax>(node);
 }
Example #43
0
 private BoundStatement BindEmptyStatement(EmptyStatementSyntax syntax)
 {
     return new BoundNoOpStatement();
 }
        public EmptyStatementTranslation(EmptyStatementSyntax syntax, SyntaxTranslation parent) : base(syntax, parent)
        {

        }
Example #45
0
 public override void VisitEmptyStatement(EmptyStatementSyntax node) => base.VisitEmptyStatement(node);
Example #46
0
 private static BoundStatement BindEmpty(EmptyStatementSyntax node)
 {
     return new BoundNoOpStatement(node, NoOpStatementFlavor.Default);
 }
 public BoundNoOpStatement(EmptyStatementSyntax syntax)
     : base(BoundNodeKind.NoOpStatement, syntax)
 {
 }