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)); }
public override IElement VisitElement([NotNull] ElementContext context) { var sectionContext = context.section(); if (sectionContext != null) { var sectionVisitor = new SectionVisitor().Inherit(this); var section = sectionVisitor.VisitSection(sectionContext); return(section); } var sectionElementContext = context.sectionElement(); if (sectionElementContext != null) { var elementVisitor = new ElementVisitor().Inherit(this); var element = elementVisitor.VisitSectionElement(context.sectionElement()); return(element); } //TODO: throw a better exception. throw new InvalidOperationException(); }