func lexQuotedSymbol(x *Lexer) stateFn {
	// Ignore the opening quote.
	x.ignore()

Loop:
	for {
		switch ch := x.next(); {
		case isQuotedSymbolPart(ch):
		case ch == '\\':
			if fn := handleEscapedRune(x); fn != nil {
				return fn
			}
		case ch == eof:
			return x.error("unterminated quoted symbol")
		case ch == '\'':
			x.backup()
			break Loop
		default:
			return x.errorf("bad character as part of quoted symbol: %#U", ch)
		}
	}

	x.emit(IonSymbolQuoted)
	// Ignore the closing quote.
	x.next()
	x.ignore()
	return lexValue
}
// lexQuotedSymbol scans an annotation or symbol that is surrounded
// in quotes and returns lexValue.
lexQuotedSymbol scans an annotation or symbol that is surrounded
in quotes and returns lexValue.
// lexQuotedSymbol scans an annotation or symbol that is surrounded // in quotes and returns lexValue .
func lexQuotedSymbol(x *Lexer) stateFn {
	x.ignore()
Loop:
	for {
		switch ch := x.next(); {
		case isQuotedSymbolPart(ch):
		case ch == '\\':
			if fn := handleEscapedRune(x); fn != nil {
				return fn
			}
		case ch == eof:
			return x.error("unterminated quoted symbol")
		case ch == '\'':
			x.backup()
			break Loop
		default:
			return x.errorf("bad character as part of quoted symbol: %#U", ch)
		}
	}
	x.emit(IonSymbolQuoted)
	x.next()
	x.ignore()
	return lexValue
}
func lexQuotedSymbol ( x * Lexer ) stateFn { x . ignore ( ) Loop : for { switch ch := x . next ( ) ; { case isQuotedSymbolPart ( ch ) : case ch == '\\' : if fn := handleEscapedRune ( x ) ; fn != nil { return fn } case ch == eof : return x . error ( " " ) case ch == '\'' : x . backup ( ) break Loop default : return x . errorf ( " " , ch ) } } x . emit ( IonSymbolQuoted ) x . next ( ) x . ignore ( ) return lexValue }
lexQuotedSymbol scans an annotation or symbol that is surrounded
in quotes and returns lexValue.
lexQuotedSymbol scans an annotation or symbol that is surrounded in quotes and returns lexValue .
// Ignore the opening quote. // Ignore the closing quote.