export default class Tokenizer { private readonly WHITESPACE_REGEX; private readonly NUMBER_REGEX; private readonly OPERATOR_REGEX; private readonly BLOCK_COMMENT_REGEX; private readonly LINE_COMMENT_REGEX; private readonly RESERVED_TOPLEVEL_REGEX; private readonly RESERVED_NEWLINE_REGEX; private readonly RESERVED_PLAIN_REGEX; private readonly WORD_REGEX; private readonly STRING_REGEX; private readonly OPEN_PAREN_REGEX; private readonly CLOSE_PAREN_REGEX; private readonly INDEXED_PLACEHOLDER_REGEX; private readonly IDENT_NAMED_PLACEHOLDER_REGEX; private readonly STRING_NAMED_PLACEHOLDER_REGEX; private readonly upperCase; /** * @param {Object} cfg * @param {String[]} cfg.reservedWords Reserved words in SQL * @param {String[]} cfg.reservedToplevelWords Words that are set to new line separately * @param {String[]} cfg.reservedNewlineWords Words that are set to newline * @param {String[]} cfg.stringTypes String types to enable: "", '', ``, [], N'' * @param {String[]} cfg.openParens Opening parentheses to enable, like (, [ * @param {String[]} cfg.closeParens Closing parentheses to enable, like ), ] * @param {String[]} cfg.indexedPlaceholderTypes Prefixes for indexed placeholders, like ? * @param {String[]} cfg.namedPlaceholderTypes Prefixes for named placeholders, like @ and : * @param {String[]} cfg.lineCommentTypes Line comments to enable, like # and -- * @param {String[]} cfg.specialWordChars Special chars that can be found inside of words, like @ and # * @param {boolean} cfg.upperCase */ constructor(cfg: any); createLineCommentRegex(lineCommentTypes: any): RegExp; createReservedWordRegex(reservedWords: any): RegExp; createWordRegex(specialChars?: any[]): RegExp; createStringRegex(stringTypes: any): RegExp; createStringPattern(stringTypes: any): any; createParenRegex(parens: any): RegExp; escapeParen(paren: any): string; createPlaceholderRegex(types: any, pattern: any): false | RegExp; /** * Takes a SQL string and breaks it into tokens. * Each token is an object with type and value. * * @param {String} input The SQL string * @return {Object[]} tokens An array of tokens. * @return {String} token.type * @return {String} token.value */ tokenize(input: any): any[]; getNextToken(input: any, previousToken: any): any; getWhitespaceToken(input: any): any; getCommentToken(input: any): any; getLineCommentToken(input: any): any; getBlockCommentToken(input: any): any; getStringToken(input: any): any; getOpenParenToken(input: any): any; getCloseParenToken(input: any): any; getPlaceholderToken(input: any): any; getIdentNamedPlaceholderToken(input: any): any; getStringNamedPlaceholderToken(input: any): any; getIndexedPlaceholderToken(input: any): any; getPlaceholderTokenWithKey({ input, regex, parseKey }: { input: any; regex: any; parseKey: any; }): any; getEscapedPlaceholderKey({ key, quoteChar }: { key: any; quoteChar: any; }): any; getNumberToken(input: any): any; getOperatorToken(input: any): any; getReservedWordToken(input: any, previousToken: any): any; getToplevelReservedToken(input: any): any; getNewlineReservedToken(input: any): any; getPlainReservedToken(input: any): any; getWordToken(input: any): any; getTokenOnFirstMatch({ input, type, regex }: { input: any; type: any; regex: any; }): any; }