code: func lexString(l *Lexer) lexFunc {
  	// get string delimiter
  	delim := l.next()
  	var prev rune
  
  	// ignore delimiter
  	l.ignore()
  
  	for {
  		r := l.next()
  		if r == eof || r == '\n' {
  			return l.errorf("Unterminated string")
  		}
  
  		if (r == delim) && (prev != '\\') {
  			break
  		}
  
  		prev = r
  	}
  
  	// remove end delimiter
  	l.backup()
  
  	// emit string
  	l.emitString(delim)
  
  	// skip end delimiter
  	l.next()
  	l.ignore()
  
  	return lexExpression
  }
docs: // lexString scans a string