public override BlockState TryOpen(BlockProcessor processor)
        {
            var result = TryContinue(processor, null);

            if (result == BlockState.Continue)
            {
                // Save the column where we need to go back
                var column = processor.Column;

                // Unwind all indents all spaces before in order to calculate correct span
                processor.UnwindAllIndents();

                processor.NewBlocks.Push(new CodeBlock(this)
                {
                    Column = processor.Column,
                    Span   = new SourceSpan(processor.Start, processor.Line.End)
                });

                // Go back to the correct column
                processor.GoToColumn(column);
            }
            return(result);
        }