public LineBreak Parse(ParserContext context, Subject subject) { if (subject.Char != '\\' && subject.Char != ' ' && subject.Char != '\n') { return(null); } var saved = subject.Save(); LineBreak result = null; if (subject.Char == ' ') { var count = subject.AdvanceWhile(' '); if (subject.Char == '\n') { result = count >= 2 ? (LineBreak) new HardBreak() : new SoftBreak(); } } else if (subject.StartsWith("\\\n")) { subject.Advance(2); result = new HardBreak(); } else if (subject.Char == '\n') { subject.Advance(); result = new SoftBreak(); } if (result != null) { subject.SkipWhiteSpace(); return(result); } saved.Restore(); return(null); }
public virtual void Visit(HardBreak inline) { WriteClosedTag(inline, "br"); WriteLine(); }
public virtual void Visit(HardBreak inline) { WriteLine("<br />"); }