func (r *reader) ReadSentence() (*Sentence, error) {
	sen := NewSentence()
	for {
		b, err := r.readWord()
		if err != nil {
			return nil, err
		}
		if len(b) == 0 {
			return sen, nil
		}
		if sen.Word == "" {
			sen.Word = string(b)
			continue
		}
		if bytes.HasPrefix(b, []byte(".tag=")) {
			sen.Tag = string(b[5:])
			continue
		}
		if bytes.HasPrefix(b, []byte("=")) {
			t := bytes.SplitN(b[1:], []byte("="), 2)
			if len(t) == 1 {
				t = append(t, []byte{})
			}
			p := Pair{string(t[0]), string(t[1])}
			sen.List = append(sen.List, p)
			sen.Map[p.Key] = p.Value
			continue
		}
		return nil, fmt.Errorf("invalid RouterOS sentence word: %#q", b)
	}
}
ReadSentence reads a sentence.
package proto
import (
	"bufio"
	"bytes"
	"fmt"
	"io"
)
type Reader interface {
	ReadSentence() (*Sentence, error)
}
type reader struct {
	*bufio.Reader
}
func NewReader(r io.Reader) Reader {
	return &reader{bufio.NewReader(r)}
}