code: func (l *lexer) emit(t itemType) {
  	if l.pos > ast.Pos(len(l.input)) {
  		l.pos = ast.Pos(len(l.input))
  	}
  	l.lastEmit = item{t, l.pos, l.input[l.start:l.pos]}
  	l.items <- l.lastEmit
  	l.start = l.pos
  }
docs: // emit passes an item back to the client.