|  | @@ -7,14 +7,16 @@ import (
 | 
											
												
													
														|  |  type State byte
 |  |  type State byte
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  const (
 |  |  const (
 | 
											
												
													
														|  | -	StateContent              State = 0
 |  | 
 | 
											
												
													
														|  | -	StateEscape               State = 1
 |  | 
 | 
											
												
													
														|  | -	StateDoubleQuote          State = 2
 |  | 
 | 
											
												
													
														|  | -	StateSingleQuote          State = 3
 |  | 
 | 
											
												
													
														|  | -	StateComment              State = 4
 |  | 
 | 
											
												
													
														|  | -	StateSlash                State = 5
 |  | 
 | 
											
												
													
														|  | -	StateMultilineComment     State = 6
 |  | 
 | 
											
												
													
														|  | -	StateMultilineCommentStar State = 7
 |  | 
 | 
											
												
													
														|  | 
 |  | +	StateContent State = iota
 | 
											
												
													
														|  | 
 |  | +	StateEscape
 | 
											
												
													
														|  | 
 |  | +	StateDoubleQuote
 | 
											
												
													
														|  | 
 |  | +	StateDoubleQuoteEscape
 | 
											
												
													
														|  | 
 |  | +	StateSingleQuote
 | 
											
												
													
														|  | 
 |  | +	StateSingleQuoteEscape
 | 
											
												
													
														|  | 
 |  | +	StateComment
 | 
											
												
													
														|  | 
 |  | +	StateSlash
 | 
											
												
													
														|  | 
 |  | +	StateMultilineComment
 | 
											
												
													
														|  | 
 |  | +	StateMultilineCommentStar
 | 
											
												
													
														|  |  )
 |  |  )
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  type Reader struct {
 |  |  type Reader struct {
 | 
											
										
											
												
													
														|  | @@ -51,15 +53,31 @@ func (v *Reader) Read(b []byte) (int, error) {
 | 
											
												
													
														|  |  			p = append(p, x)
 |  |  			p = append(p, x)
 | 
											
												
													
														|  |  			v.state = StateContent
 |  |  			v.state = StateContent
 | 
											
												
													
														|  |  		case StateDoubleQuote:
 |  |  		case StateDoubleQuote:
 | 
											
												
													
														|  | -			if x == '"' {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			switch x {
 | 
											
												
													
														|  | 
 |  | +			case '"':
 | 
											
												
													
														|  |  				v.state = StateContent
 |  |  				v.state = StateContent
 | 
											
												
													
														|  | 
 |  | +				p = append(p, x)
 | 
											
												
													
														|  | 
 |  | +			case '\\':
 | 
											
												
													
														|  | 
 |  | +				v.state = StateDoubleQuoteEscape
 | 
											
												
													
														|  | 
 |  | +			default:
 | 
											
												
													
														|  | 
 |  | +				p = append(p, x)
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			p = append(p, x)
 |  | 
 | 
											
												
													
														|  | 
 |  | +		case StateDoubleQuoteEscape:
 | 
											
												
													
														|  | 
 |  | +			p = append(p, '\\', x)
 | 
											
												
													
														|  | 
 |  | +			v.state = StateDoubleQuote
 | 
											
												
													
														|  |  		case StateSingleQuote:
 |  |  		case StateSingleQuote:
 | 
											
												
													
														|  | -			if x == '\'' {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			switch x {
 | 
											
												
													
														|  | 
 |  | +			case '\'':
 | 
											
												
													
														|  |  				v.state = StateContent
 |  |  				v.state = StateContent
 | 
											
												
													
														|  | 
 |  | +				p = append(p, x)
 | 
											
												
													
														|  | 
 |  | +			case '\\':
 | 
											
												
													
														|  | 
 |  | +				v.state = StateSingleQuoteEscape
 | 
											
												
													
														|  | 
 |  | +			default:
 | 
											
												
													
														|  | 
 |  | +				p = append(p, x)
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			p = append(p, x)
 |  | 
 | 
											
												
													
														|  | 
 |  | +		case StateSingleQuoteEscape:
 | 
											
												
													
														|  | 
 |  | +			p = append(p, '\\', x)
 | 
											
												
													
														|  | 
 |  | +			v.state = StateSingleQuote
 | 
											
												
													
														|  |  		case StateComment:
 |  |  		case StateComment:
 | 
											
												
													
														|  |  			if x == '\n' {
 |  |  			if x == '\n' {
 | 
											
												
													
														|  |  				v.state = StateContent
 |  |  				v.state = StateContent
 |