rawsql-ts
Version:
[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
31 lines • 939 B
JavaScript
import { BaseTokenReader } from './BaseTokenReader';
import { TokenType } from '../models/Lexeme';
/**
* Reads SQL symbol tokens (., ,, (, ))
*/
export class SpecialSymbolTokenReader extends BaseTokenReader {
/**
* Try to read a symbol token
*/
tryRead(previous) {
if (this.isEndOfInput()) {
return null;
}
const char = this.input[this.position];
// symbol tokens
if (char in SpecialSymbolTokenReader.SPECIAL_SYMBOL_TOKENS) {
this.position++;
return this.createLexeme(SpecialSymbolTokenReader.SPECIAL_SYMBOL_TOKENS[char], char);
}
return null;
}
}
SpecialSymbolTokenReader.SPECIAL_SYMBOL_TOKENS = {
'.': TokenType.Dot,
',': TokenType.Comma,
'(': TokenType.OpenParen,
')': TokenType.CloseParen,
'[': TokenType.OpenBracket,
']': TokenType.CloseBracket,
};
//# sourceMappingURL=SymbolTokenReader.js.map