Lines 168-174
Link Here
|
168 |
state = State.ISA_BACK_SLASH_IN_STRING; |
168 |
state = State.ISA_BACK_SLASH_IN_STRING; |
169 |
break; |
169 |
break; |
170 |
case '\'': // NOI18N |
170 |
case '\'': // NOI18N |
|
|
171 |
state = State.ISA_QUOTE_IN_STRING; |
172 |
//return factory.createToken(SQLTokenId.STRING); |
173 |
break; |
174 |
} |
175 |
break; |
176 |
|
177 |
case ISA_QUOTE_IN_STRING: |
178 |
switch (actChar) { |
179 |
case '\'': |
180 |
state = State.ISI_STRING; |
181 |
break; |
182 |
default: |
171 |
state = State.INIT; |
183 |
state = State.INIT; |
|
|
184 |
input.backup(1); |
172 |
return factory.createToken(SQLTokenId.STRING); |
185 |
return factory.createToken(SQLTokenId.STRING); |
173 |
} |
186 |
} |
174 |
break; |
187 |
break; |
Lines 184-189
Link Here
|
184 |
if (startQuoteChar != -1) { |
197 |
if (startQuoteChar != -1) { |
185 |
if (!isEndIdentifierQuoteChar(startQuoteChar, actChar)) { |
198 |
if (!isEndIdentifierQuoteChar(startQuoteChar, actChar)) { |
186 |
break; |
199 |
break; |
|
|
200 |
} else { |
201 |
if (actChar == '"') { |
202 |
state = State.ISA_QUOTE_IN_IDENTIFIER; |
203 |
break; |
204 |
} |
187 |
} |
205 |
} |
188 |
} else { |
206 |
} else { |
189 |
if (Character.isLetterOrDigit(actChar) || actChar == '_' || actChar == '#') { |
207 |
if (Character.isLetterOrDigit(actChar) || actChar == '_' || actChar == '#') { |
Lines 196-201
Link Here
|
196 |
startQuoteChar = -1; |
214 |
startQuoteChar = -1; |
197 |
return factory.createToken(testKeyword(input.readText())); |
215 |
return factory.createToken(testKeyword(input.readText())); |
198 |
|
216 |
|
|
|
217 |
case ISA_QUOTE_IN_IDENTIFIER: |
218 |
switch (actChar) { |
219 |
case '"': |
220 |
state = State.ISI_IDENTIFIER; |
221 |
break; |
222 |
default: |
223 |
state = State.INIT; |
224 |
startQuoteChar = -1; |
225 |
input.backup(1); |
226 |
return factory.createToken(testKeyword(input.readText())); |
227 |
} |
228 |
break; |
229 |
|
199 |
// If we are after a slash (/). |
230 |
// If we are after a slash (/). |
200 |
case ISA_SLASH: |
231 |
case ISA_SLASH: |
201 |
switch (actChar) { |
232 |
switch (actChar) { |
Lines 309-314
Link Here
|
309 |
SQLTokenId id = null; |
340 |
SQLTokenId id = null; |
310 |
PartType part = PartType.COMPLETE; |
341 |
PartType part = PartType.COMPLETE; |
311 |
switch (state) { |
342 |
switch (state) { |
|
|
343 |
case ISA_QUOTE_IN_STRING: |
344 |
id = SQLTokenId.STRING; |
345 |
break; |
346 |
|
347 |
case ISA_QUOTE_IN_IDENTIFIER: |
348 |
id = SQLTokenId.IDENTIFIER; |
349 |
break; |
350 |
|
312 |
case ISI_WHITESPACE: |
351 |
case ISI_WHITESPACE: |
313 |
id = SQLTokenId.WHITESPACE; |
352 |
id = SQLTokenId.WHITESPACE; |
314 |
break; |
353 |
break; |
Lines 411-430
Link Here
|
411 |
private static enum State { |
450 |
private static enum State { |
412 |
|
451 |
|
413 |
INIT, |
452 |
INIT, |
414 |
ISI_WHITESPACE, // inside white space |
453 |
ISI_WHITESPACE, // inside white space |
415 |
ISI_LINE_COMMENT, // inside line comment -- |
454 |
ISI_LINE_COMMENT, // inside line comment -- |
416 |
ISI_BLOCK_COMMENT, // inside block comment /* ... */ |
455 |
ISI_BLOCK_COMMENT, // inside block comment /* ... */ |
417 |
ISI_STRING, // inside string constant |
456 |
ISI_STRING, // inside string constant |
418 |
ISI_IDENTIFIER, // inside identifier |
457 |
ISI_IDENTIFIER, // inside identifier |
419 |
ISA_SLASH, // slash char |
458 |
ISA_SLASH, // slash char |
420 |
ISA_HASH, // hash char '#' |
459 |
ISA_HASH, // hash char '#' |
421 |
ISA_MINUS, |
460 |
ISA_MINUS, |
422 |
ISA_STAR_IN_BLOCK_COMMENT, // after '*' in a block comment |
461 |
ISA_STAR_IN_BLOCK_COMMENT, // after '*' in a block comment |
423 |
// XXX is ISA_ZERO really needed? |
462 |
// XXX is ISA_ZERO really needed? |
424 |
ISA_ZERO, // after '0' |
463 |
ISA_ZERO, // after '0' |
425 |
ISI_INT, // integer number |
464 |
ISI_INT, // integer number |
426 |
ISI_DOUBLE, // double number |
465 |
ISI_DOUBLE, // double number |
427 |
ISA_DOT, // after '.' |
466 |
ISA_DOT, // after '.' |
428 |
ISA_BACK_SLASH_IN_STRING // after \ in string |
467 |
ISA_BACK_SLASH_IN_STRING, // after \ in string |
|
|
468 |
ISA_QUOTE_IN_STRING, // encountered quote in string - could be sql99 escape |
469 |
ISA_QUOTE_IN_IDENTIFIER // encountered quote in identifier - could be sql99 escape |
429 |
} |
470 |
} |
430 |
} |
471 |
} |