public override void AcceptVisitor(IAstVisitor visitor) { if(Parent is RootAst) // in case it's top level we want to have <p> tag, if it's inside <b> tag we dont need it. visitor.BeginVisit(this); if(visitor is IAstWriteableVisitor writeableVisitor) writeableVisitor.Write(Text); /// here you output the text. if (Parent is RootAst) visitor.EndVisit(this); }