private Token ReaderComment(CharIterator reader) { var isMulti = reader.NextIs('*'); var i = isMulti ? reader.IndexOf("*/") : reader.IndexOf("\n"); var start = reader.Position + 2; var end = i < 0 ? reader.Length : i - 1; var content = reader.ReadSeek(start, end - start); reader.Position = i < 0 ? reader.Length : i + 1; return(new Token() { Type = TokenType.Comment, Content = content }); }
private Token ReaderFor(CharIterator reader) { var end = reader.IndexOf('}'); var start = reader.Position + (reader.NextIs('~') ? 2 : 4); var content = reader.ReadSeek(start, end - start); reader.Position = end; return(new BlockToken() { Type = TokenType.For, Content = content, Children = RenderBlockInner(reader, true) }); }