// Code generated by tools/gen_meta.py. DO NOT EDIT.

///|
pub fn base_tokenizer_settings_raw() -> TokenizerSettings {
  let single_tokens : Map[Char, TokenType] = {
    '(': L_PAREN,
    ')': R_PAREN,
    '[': L_BRACKET,
    ']': R_BRACKET,
    '{': L_BRACE,
    '}': R_BRACE,
    '&': AMP,
    '^': CARET,
    ':': COLON,
    ',': COMMA,
    '.': DOT,
    '-': DASH,
    '=': EQ,
    '>': GT,
    '<': LT,
    '%': MOD,
    '!': NOT,
    '|': PIPE,
    '+': PLUS,
    ';': SEMICOLON,
    '/': SLASH,
    '\\': BACKSLASH,
    '*': STAR,
    '~': TILDE,
    '?': PLACEHOLDER,
    '@': PARAMETER,
    '#': HASH,
    '\'': UNKNOWN,
    '`': UNKNOWN,
    '"': UNKNOWN,
  }
  let keywords : Map[String, TokenType] = {
    "{%": BLOCK_START,
    "{%+": BLOCK_START,
    "{%-": BLOCK_START,
    "%}": BLOCK_END,
    "+%}": BLOCK_END,
    "-%}": BLOCK_END,
    "{{+": BLOCK_START,
    "{{-": BLOCK_START,
    "+}}": BLOCK_END,
    "-}}": BLOCK_END,
    "/*+": HINT,
    "&<": AMP_LT,
    "&>": AMP_GT,
    "==": EQ,
    "::": DCOLON,
    "?::": QDCOLON,
    "||": DPIPE,
    "|>": PIPE_GT,
    ">=": GTE,
    "<=": LTE,
    "<>": NEQ,
    "!=": NEQ,
    ":=": COLON_EQ,
    "<=>": NULLSAFE_EQ,
    "->": ARROW,
    "->>": DARROW,
    "=>": FARROW,
    "#>": HASH_ARROW,
    "#>>": DHASH_ARROW,
    "<->": LR_ARROW,
    "<<->>": LLRR_ARROW,
    "&&": DAMP,
    "??": DQMARK,
    "~~~": GLOB,
    "~~": LIKE,
    "~~*": ILIKE,
    "~*": IRLIKE,
    "-|-": ADJACENT,
    "ALL": ALL,
    "AND": AND,
    "ANTI": ANTI,
    "ANY": ANY,
    "ASC": ASC,
    "AS": ALIAS,
    "ASOF": ASOF,
    "AUTOINCREMENT": AUTO_INCREMENT,
    "AUTO_INCREMENT": AUTO_INCREMENT,
    "BEGIN": BEGIN,
    "BETWEEN": BETWEEN,
    "CACHE": CACHE,
    "UNCACHE": UNCACHE,
    "CASE": CASE,
    "CLUSTER BY": CLUSTER_BY,
    "COLLATE": COLLATE,
    "COLUMN": COLUMN,
    "COMMIT": COMMIT,
    "CONNECT BY": CONNECT_BY,
    "CONSTRAINT": CONSTRAINT,
    "COPY": COPY,
    "CREATE": CREATE,
    "CROSS": CROSS,
    "CUBE": CUBE,
    "CURRENT_DATE": CURRENT_DATE,
    "CURRENT_SCHEMA": CURRENT_SCHEMA,
    "CURRENT_TIME": CURRENT_TIME,
    "CURRENT_TIMESTAMP": CURRENT_TIMESTAMP,
    "CURRENT_USER": CURRENT_USER,
    "CURRENT_CATALOG": CURRENT_CATALOG,
    "DATABASE": DATABASE,
    "DEFAULT": DEFAULT,
    "DELETE": DELETE,
    "DESC": DESC,
    "DESCRIBE": DESCRIBE,
    "DISTINCT": DISTINCT,
    "DISTRIBUTE BY": DISTRIBUTE_BY,
    "DIV": DIV,
    "DROP": DROP,
    "ELSE": ELSE,
    "END": END,
    "ENUM": ENUM,
    "ESCAPE": ESCAPE,
    "EXCEPT": EXCEPT,
    "EXECUTE": EXECUTE,
    "EXISTS": EXISTS,
    "FALSE": FALSE,
    "FETCH": FETCH,
    "FILTER": FILTER,
    "FILE": FILE,
    "FIRST": FIRST,
    "FULL": FULL,
    "FUNCTION": FUNCTION,
    "FOR": FOR,
    "FOREIGN KEY": FOREIGN_KEY,
    "FORMAT": FORMAT,
    "FROM": FROM,
    "GEOGRAPHY": GEOGRAPHY,
    "GEOMETRY": GEOMETRY,
    "GLOB": GLOB,
    "GROUP BY": GROUP_BY,
    "GROUPING SETS": GROUPING_SETS,
    "HAVING": HAVING,
    "ILIKE": ILIKE,
    "IN": IN,
    "INDEX": INDEX,
    "INET": INET,
    "INNER": INNER,
    "INSERT": INSERT,
    "INTERVAL": INTERVAL,
    "INTERSECT": INTERSECT,
    "INTO": INTO,
    "IS": IS,
    "ISNULL": ISNULL,
    "JOIN": JOIN,
    "KEEP": KEEP,
    "KILL": KILL,
    "LATERAL": LATERAL,
    "LEFT": LEFT,
    "LIKE": LIKE,
    "LIMIT": LIMIT,
    "LOAD": LOAD,
    "LOCALTIME": LOCALTIME,
    "LOCALTIMESTAMP": LOCALTIMESTAMP,
    "LOCK": LOCK,
    "MERGE": MERGE,
    "NAMESPACE": NAMESPACE,
    "NATURAL": NATURAL,
    "NEXT": NEXT,
    "NOT": NOT,
    "NOTNULL": NOTNULL,
    "NULL": NULL,
    "OBJECT": OBJECT,
    "OFFSET": OFFSET,
    "ON": ON,
    "OR": OR,
    "XOR": XOR,
    "ORDER BY": ORDER_BY,
    "ORDINALITY": ORDINALITY,
    "OUT": OUT,
    "OUTER": OUTER,
    "OVER": OVER,
    "OVERLAPS": OVERLAPS,
    "OVERWRITE": OVERWRITE,
    "PARTITION": PARTITION,
    "PARTITION BY": PARTITION_BY,
    "PARTITIONED BY": PARTITION_BY,
    "PARTITIONED_BY": PARTITION_BY,
    "PERCENT": PERCENT,
    "PIVOT": PIVOT,
    "PRAGMA": PRAGMA,
    "PRIMARY KEY": PRIMARY_KEY,
    "PROCEDURE": PROCEDURE,
    "OPERATOR": OPERATOR,
    "QUALIFY": QUALIFY,
    "RANGE": RANGE,
    "RECURSIVE": RECURSIVE,
    "REGEXP": RLIKE,
    "RENAME": RENAME,
    "REPLACE": REPLACE,
    "RETURNING": RETURNING,
    "REFERENCES": REFERENCES,
    "RIGHT": RIGHT,
    "RLIKE": RLIKE,
    "ROLLBACK": ROLLBACK,
    "ROLLUP": ROLLUP,
    "ROW": ROW,
    "ROWS": ROWS,
    "SCHEMA": SCHEMA,
    "SELECT": SELECT,
    "SEMI": SEMI,
    "SESSION": SESSION,
    "SESSION_USER": SESSION_USER,
    "SET": SET,
    "SETTINGS": SETTINGS,
    "SHOW": SHOW,
    "SIMILAR TO": SIMILAR_TO,
    "SOME": SOME,
    "SORT BY": SORT_BY,
    "SQL SECURITY": SQL_SECURITY,
    "STRAIGHT_JOIN": STRAIGHT_JOIN,
    "TABLE": TABLE,
    "TABLESAMPLE": TABLE_SAMPLE,
    "TEMP": TEMPORARY,
    "TEMPORARY": TEMPORARY,
    "THEN": THEN,
    "TRUE": TRUE,
    "TRUNCATE": TRUNCATE,
    "TRIGGER": TRIGGER,
    "UNION": UNION,
    "UNKNOWN": UNKNOWN,
    "UNNEST": UNNEST,
    "UNPIVOT": UNPIVOT,
    "UPDATE": UPDATE,
    "USE": USE,
    "USING": USING,
    "UUID": UUID,
    "VALUES": VALUES,
    "VIEW": VIEW,
    "VOLATILE": VOLATILE,
    "WHEN": WHEN,
    "WHERE": WHERE,
    "WINDOW": WINDOW,
    "WITH": WITH,
    "APPLY": APPLY,
    "ARRAY": ARRAY,
    "BIT": BIT,
    "BOOL": BOOLEAN,
    "BOOLEAN": BOOLEAN,
    "BYTE": TINYINT,
    "MEDIUMINT": MEDIUMINT,
    "INT1": TINYINT,
    "TINYINT": TINYINT,
    "INT16": SMALLINT,
    "SHORT": SMALLINT,
    "SMALLINT": SMALLINT,
    "HUGEINT": INT128,
    "UHUGEINT": UINT128,
    "INT2": SMALLINT,
    "INTEGER": INT,
    "INT": INT,
    "INT4": INT,
    "INT32": INT,
    "INT64": BIGINT,
    "INT128": INT128,
    "INT256": INT256,
    "LONG": BIGINT,
    "BIGINT": BIGINT,
    "INT8": TINYINT,
    "UINT": UINT,
    "UINT128": UINT128,
    "UINT256": UINT256,
    "DEC": DECIMAL,
    "DECIMAL": DECIMAL,
    "DECIMAL32": DECIMAL32,
    "DECIMAL64": DECIMAL64,
    "DECIMAL128": DECIMAL128,
    "DECIMAL256": DECIMAL256,
    "DECFLOAT": DECFLOAT,
    "BIGDECIMAL": BIGDECIMAL,
    "BIGNUMERIC": BIGDECIMAL,
    "BIGNUM": BIGNUM,
    "LIST": LIST,
    "MAP": MAP,
    "NULLABLE": NULLABLE,
    "NUMBER": DECIMAL,
    "NUMERIC": DECIMAL,
    "FIXED": DECIMAL,
    "REAL": FLOAT,
    "FLOAT": FLOAT,
    "FLOAT4": FLOAT,
    "FLOAT8": DOUBLE,
    "DOUBLE": DOUBLE,
    "DOUBLE PRECISION": DOUBLE,
    "JSON": JSON,
    "JSONB": JSONB,
    "CHAR": CHAR,
    "CHARACTER": CHAR,
    "CHAR VARYING": VARCHAR,
    "CHARACTER VARYING": VARCHAR,
    "NCHAR": NCHAR,
    "VARCHAR": VARCHAR,
    "VARCHAR2": VARCHAR,
    "NVARCHAR": NVARCHAR,
    "NVARCHAR2": NVARCHAR,
    "BPCHAR": BPCHAR,
    "STR": TEXT,
    "STRING": TEXT,
    "TEXT": TEXT,
    "LONGTEXT": LONGTEXT,
    "MEDIUMTEXT": MEDIUMTEXT,
    "TINYTEXT": TINYTEXT,
    "CLOB": TEXT,
    "LONGVARCHAR": TEXT,
    "BINARY": BINARY,
    "BLOB": VARBINARY,
    "LONGBLOB": LONGBLOB,
    "MEDIUMBLOB": MEDIUMBLOB,
    "TINYBLOB": TINYBLOB,
    "BYTEA": VARBINARY,
    "VARBINARY": VARBINARY,
    "TIME": TIME,
    "TIMETZ": TIMETZ,
    "TIME_NS": TIME_NS,
    "TIMESTAMP": TIMESTAMP,
    "TIMESTAMPTZ": TIMESTAMPTZ,
    "TIMESTAMPLTZ": TIMESTAMPLTZ,
    "TIMESTAMP_LTZ": TIMESTAMPLTZ,
    "TIMESTAMPNTZ": TIMESTAMPNTZ,
    "TIMESTAMP_NTZ": TIMESTAMPNTZ,
    "DATE": DATE,
    "DATETIME": DATETIME,
    "INT4RANGE": INT4RANGE,
    "INT4MULTIRANGE": INT4MULTIRANGE,
    "INT8RANGE": INT8RANGE,
    "INT8MULTIRANGE": INT8MULTIRANGE,
    "NUMRANGE": NUMRANGE,
    "NUMMULTIRANGE": NUMMULTIRANGE,
    "TSRANGE": TSRANGE,
    "TSMULTIRANGE": TSMULTIRANGE,
    "TSTZRANGE": TSTZRANGE,
    "TSTZMULTIRANGE": TSTZMULTIRANGE,
    "DATERANGE": DATERANGE,
    "DATEMULTIRANGE": DATEMULTIRANGE,
    "UNIQUE": UNIQUE,
    "VECTOR": VECTOR,
    "STRUCT": STRUCT,
    "SEQUENCE": SEQUENCE,
    "VARIANT": VARIANT,
    "ALTER": ALTER,
    "ANALYZE": ANALYZE,
    "CALL": COMMAND,
    "COMMENT": COMMENT,
    "EXPLAIN": COMMAND,
    "GRANT": GRANT,
    "REVOKE": REVOKE,
    "OPTIMIZE": COMMAND,
    "PREPARE": COMMAND,
    "VACUUM": COMMAND,
    "USER-DEFINED": USERDEFINED,
  }
  let numeric_escapes : Map[String, NumericEscape] = {}
  let numeric_literals : Map[String, String] = {}
  {
    single_tokens,
    bit_strings: [],
    byte_strings: [],
    hex_strings: [],
    raw_strings: [],
    heredoc_strings: [],
    unicode_strings: [],
    identifiers: [Same("\"")],
    quotes: [Same("'")],
    comments: [Same("--"), Pair("/*", "*/")],
    string_escapes: ["'"],
    byte_string_escapes: None,
    var_single_tokens: [],
    escape_follow_chars: [],
    identifier_escapes: [],
    heredoc_tag_is_identifier: false,
    heredoc_string_alternative: VAR,
    string_escapes_allowed_in_raw_strings: true,
    numeric_escapes,
    drop_unknown_escapes: false,
    nested_comments: true,
    hint_start: "/*+",
    tokens_preceding_hint: [
      TokenType::DELETE,
      TokenType::INSERT,
      TokenType::SELECT,
      TokenType::UPDATE,
    ],
    keywords,
    commands: [
      TokenType::COMMAND,
      TokenType::EXECUTE,
      TokenType::FETCH,
      TokenType::RENAME,
      TokenType::SHOW,
    ],
    command_prefix_tokens: [TokenType::BEGIN, TokenType::SEMICOLON],
    numeric_literals,
    numbers_can_have_decimals: true,
    quotes_map: Map::new(),
    identifiers_map: Map::new(),
    identifier_chars: Map::new(),
    format_strings: Map::new(),
    string_escapes_set: Map::new(),
    byte_string_escapes_set: Map::new(),
    escape_follow_chars_set: Map::new(),
    identifier_escapes_set: Map::new(),
    comments_map: Map::new(),
    commands_set: Map::new(),
    keyword_trie: Trie::new(),
  }
}

///|
pub fn base_jsonpath_tokenizer_settings_raw() -> TokenizerSettings {
  let single_tokens : Map[Char, TokenType] = {
    '(': L_PAREN,
    ')': R_PAREN,
    '[': L_BRACKET,
    ']': R_BRACKET,
    ':': COLON,
    ',': COMMA,
    '-': DASH,
    '.': DOT,
    '?': PLACEHOLDER,
    '@': PARAMETER,
    '\'': QUOTE,
    '"': QUOTE,
    '$': DOLLAR,
    '*': STAR,
  }
  let keywords : Map[String, TokenType] = { "..": DOT }
  let numeric_escapes : Map[String, NumericEscape] = {}
  let numeric_literals : Map[String, String] = {}
  {
    single_tokens,
    bit_strings: [],
    byte_strings: [],
    hex_strings: [],
    raw_strings: [],
    heredoc_strings: [],
    unicode_strings: [],
    identifiers: [Same("\"")],
    quotes: [Same("'")],
    comments: [Same("--"), Pair("/*", "*/")],
    string_escapes: ["\\"],
    byte_string_escapes: None,
    var_single_tokens: [],
    escape_follow_chars: [],
    identifier_escapes: ["\\"],
    heredoc_tag_is_identifier: false,
    heredoc_string_alternative: VAR,
    string_escapes_allowed_in_raw_strings: true,
    numeric_escapes,
    drop_unknown_escapes: false,
    nested_comments: true,
    hint_start: "/*+",
    tokens_preceding_hint: [
      TokenType::DELETE,
      TokenType::INSERT,
      TokenType::SELECT,
      TokenType::UPDATE,
    ],
    keywords,
    commands: [
      TokenType::COMMAND,
      TokenType::EXECUTE,
      TokenType::FETCH,
      TokenType::RENAME,
      TokenType::SHOW,
    ],
    command_prefix_tokens: [TokenType::BEGIN, TokenType::SEMICOLON],
    numeric_literals,
    numbers_can_have_decimals: false,
    quotes_map: Map::new(),
    identifiers_map: Map::new(),
    identifier_chars: Map::new(),
    format_strings: Map::new(),
    string_escapes_set: Map::new(),
    byte_string_escapes_set: Map::new(),
    escape_follow_chars_set: Map::new(),
    identifier_escapes_set: Map::new(),
    comments_map: Map::new(),
    commands_set: Map::new(),
    keyword_trie: Trie::new(),
  }
}