func lexBlockComment(x *Lexer) stateFn {
	// Ignore the preceding "/*" characters.
	x.ignore()
	for {
		ch := x.next()
		if ch == eof {
			return x.error("unexpected end of file while lexing block comment")
		}
		if ch == utf8.RuneError {
			return x.error("error parsing rune")
		}
		if ch == '*' && x.peek() == '/' {
			x.backup()
			break
		}
	}

	x.emit(IonCommentBlock)
	// Ignore the trailing "*/" characters.
	x.next()
	x.next()
	x.ignore()

	return lexValue
}
// lexBlockComment scans a block comment. The comment is terminated by */
// lexTopLevel is returned since we don't know what is going to come next.
lexBlockComment scans a block comment. The comment is terminated by
lexTopLevel is returned since we don't know what is going to come next.
// lexBlockComment scans a block comment . The comment is terminated by * / // lexTopLevel is returned since we don ' t know what is going to come next .
func lexBlockComment(x *Lexer) stateFn {
	x.ignore()
	for {
		ch := x.next()
		if ch == eof {
			return x.error("unexpected end of file while lexing block comment")
		}
		if ch == utf8.RuneError {
			return x.error("error parsing rune")
		}
		if ch == '*' && x.peek() == '/' {
			x.backup()
			break
		}
	}
	x.emit(IonCommentBlock)
	x.next()
	x.next()
	x.ignore()
	return lexValue
}
func lexBlockComment ( x * Lexer ) stateFn { x . ignore ( ) for { ch := x . next ( ) if ch == eof { return x . error ( " " ) } if ch == utf8 . RuneError { return x . error ( " " ) } if ch == '*' && x . peek ( ) == '/' { x . backup ( ) break } } x . emit ( IonCommentBlock ) x . next ( ) x . next ( ) x . ignore ( ) return lexValue }
lexBlockComment scans a block comment.
lexBlockComment scans a block comment .
// Ignore the preceding "/*" characters. // Ignore the trailing "*/" characters.