| 65 | } |
| 66 | |
| 67 | function scanNestedMultiLineComment(sql: string, i: number): SQLToken | null { |
| 68 | if (sql[i] !== "/" || sql[i + 1] !== "*") { return null; } |
| 69 | let j = i + 2; |
| 70 | let depth = 1; |
| 71 | while (j < sql.length && depth > 0) { |
| 72 | if (sql[j] === "/" && sql[j + 1] === "*") { depth++; j += 2; } |
| 73 | else if (sql[j] === "*" && sql[j + 1] === "/") { depth--; j += 2; } |
| 74 | else { j++; } |
| 75 | } |
| 76 | return { type: TokenType.Comment, end: j }; |
| 77 | } |
| 78 | |
| 79 | function scanSingleQuotedString(sql: string, i: number): SQLToken | null { |
| 80 | if (sql[i] !== "'") { return null; } |