コード例 #1
0
            public override Comment VisitComment([NotNull] CommentContext context)
            {
                var result      = new List <ITextArea>();
                var indentation = context.indentation();
                int length      = indentation == null ? 0 : indentation.GetText().Length;

                IndentationTracker.Track(length);

                var commentLineContext = context.commentLineNoBreak();

                if (commentLineContext != null)
                {
                    var visitor = new TextAreaVisitor().Inherit(this);
                    result.Add(visitor.VisitCommentLineNoBreak(commentLineContext));
                }

                var linesContext = context.commentParagraphs();

                if (linesContext != null)
                {
                    var lineVisitor = new TextAreasVisitor().Inherit(this);

                    result.AddRange(lineVisitor.VisitCommentParagraphs(linesContext));
                }

                return(new Comment(result)
                {
                    Indentation = length
                });
            }
コード例 #2
0
            public override Paragraph VisitParagraph([NotNull] ParagraphContext context)
            {
                var lineVisitor = new TextAreasVisitor().Inherit(this);
                var lines       = new List <ITextArea>();
                var children    = context.lines();

                lines.AddRange(lineVisitor.VisitLines(children));
                return(new Paragraph(lines));
            }
コード例 #3
0
            public override LineBlock VisitLineBlock(LineBlockContext context)
            {
                var lineVisitor = new TextAreasVisitor().Inherit(this);
                var lines       = new List <Line>();

                foreach (var line in context.lineBlockLine())
                {
                    lines.Add(new Line(lineVisitor.VisitLineBlockLine(line)));
                }

                return(new LineBlock(lines));
            }
コード例 #4
0
            public override Paragraph VisitParagraphNoBreak([NotNull] ParagraphNoBreakContext context)
            {
                var lineVisitor = new TextAreasVisitor().Inherit(this);
                var lines       = new List <ITextArea>();
                var noBreak     = context.lineNoBreak();

                if (noBreak != null)
                {
                    lines.AddRange(lineVisitor.VisitLineNoBreak(noBreak));
                }

                var children = context.lines();

                foreach (var child in children)
                {
                    lines.AddRange(lineVisitor.VisitLines(child));
                }

                return(new Paragraph(lines));
            }
コード例 #5
0
            public override Section VisitSection(SectionContext context)
            {
                var titleVisitor   = new TextAreasVisitor().Inherit(this);
                var title          = titleVisitor.VisitTitle(context.title());
                var separator      = context.SectionSeparator()[0].GetText();
                var level          = SectionTracker.Track(separator[0]);
                var list           = new List <IElement>();
                var elementVisitor = new ElementVisitor().Inherit(this);
                var element        = context.sectionElement();

                if (element != null)
                {
                    foreach (var item in element)
                    {
                        list.Add(elementVisitor.VisitSectionElement(item));
                    }
                }

                return(new Section(level, title, list, context.overline != null));
            }