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 }); }
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)); }
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)); }
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)); }
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)); }