Пример #1
0
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
		}
	}
}
Пример #2
0
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
}