func SkipLE(f fancy.Reader) { for { c, err := f.ReadByte() if err != nil { return } if c > 32 { f.UnreadByte() return } if c == 13 { c, err = f.ReadByte() if err == nil && c != 10 { f.UnreadByte() } return } if c == 10 { return } } }
func Token(f fancy.Reader) ([]byte, int64) { again: c := skipSpaces(f) if c == 0 { return []byte{}, -1 } p := fpos(f) - 1 switch c { case '%': skipComment(f) goto again case '<', '[', '{': skipComposite(f) case '(': skipString(f) default: if skipToDelim(f) != 255 { f.UnreadByte() } } n := int(fpos(f) - p) f.Seek(p, 0) return f.Slice(n), p }