MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / handleEscapeSequence

Method handleEscapeSequence

pkg/sql/tokenizer/tokenizer.go:1136–1165  ·  view source on GitHub ↗

handleEscapeSequence handles escape sequences in string literals

(buf *bytes.Buffer)

Source from the content-addressed store, hash-verified

1134
1135// handleEscapeSequence handles escape sequences in string literals
1136func (t *Tokenizer) handleEscapeSequence(buf *bytes.Buffer) error {
1137 t.pos.Index++
1138 t.pos.Column++
1139
1140 if t.pos.Index >= len(t.input) {
1141 return errors.IncompleteStatementError(t.getCurrentPosition(), string(t.input))
1142 }
1143
1144 r, size := utf8.DecodeRune(t.input[t.pos.Index:])
1145 switch r {
1146 case '\\', '"', '\'', '`':
1147 buf.WriteRune(r)
1148 case 'n':
1149 buf.WriteRune('\n')
1150 case 'r':
1151 buf.WriteRune('\r')
1152 case 't':
1153 buf.WriteRune('\t')
1154 default:
1155 return errors.InvalidSyntaxError(
1156 fmt.Sprintf("invalid escape sequence '\\%c'", r),
1157 t.getCurrentPosition(),
1158 string(t.input),
1159 )
1160 }
1161
1162 t.pos.Index += size
1163 t.pos.Column++
1164 return nil
1165}
1166
1167// readNumber reads an integer/float
1168func (t *Tokenizer) readNumber(buf []byte) (models.Token, error) {

Callers 1

readQuotedStringMethod · 0.95

Calls 3

getCurrentPositionMethod · 0.95
IncompleteStatementErrorFunction · 0.92
InvalidSyntaxErrorFunction · 0.92

Tested by

no test coverage detected