func (l *Lexer) rawErrorf(format string, args ...interface{}) stateFn {
	l.items <- Lexeme{
		Type:  LexemeError,
		Value: fmt.Sprintf(format, args...),
		Pos:   l.pos,
	}
	return nil
}
rawErrorf returns an error Lexeme with no context and terminates the scan.
package lexer
import "fmt"
func (l *Lexer) context() string {
	return l.lastEmittedLexeme.Value + l.buffer
}
func (l *Lexer) errorf(format string, args ...interface{}) stateFn {
	l.items <- Lexeme{
		Type:  LexemeError,
		Value: fmt.Sprintf("%s at position: %+v, following %q", fmt.Sprintf(format, args...), l.pos, l.context()),
		Pos:   l.pos,
	}
	return nil
}