diff --git a/uncoder-core/app/translator/platforms/base/aql/const.py b/uncoder-core/app/translator/platforms/base/aql/const.py index 1df7cdd1..b2503bd4 100644 --- a/uncoder-core/app/translator/platforms/base/aql/const.py +++ b/uncoder-core/app/translator/platforms/base/aql/const.py @@ -1,7 +1,10 @@ +from app.translator.core.custom_types.values import ValueType + UTF8_PAYLOAD_PATTERN = r"UTF8\(payload\)" -NUM_VALUE_PATTERN = r"(?P\d+(?:\.\d+)*)" -SINGLE_QUOTES_VALUE_PATTERN = ( - r"""'(?P(?:[:a-zA-Zа-яА-Я\*0-9=+%#\-\/\\|,;_<>`~".$&^@!?\(\)\{\}\[\]\s]|'')*)'""" # noqa: RUF001 -) +NUM_VALUE_PATTERN = rf"(?P<{ValueType.number_value}>\d+(?:\.\d+)*)" +SINGLE_QUOTES_VALUE_PATTERN = rf"""'(?P<{ValueType.single_quotes_value}>(?:[:a-zA-Zа-яА-Я\*0-9=+%#\-\/\\|,;_<>`~".$&^@!?\(\)\{{\}}\[\]\s]|'')*)'""" # noqa: E501,RUF001 TABLE_PATTERN = r"\s+FROM\s+[a-zA-Z.\-*]+" TABLE_GROUP_PATTERN = r"\s+FROM\s+(?P[a-zA-Z.\-*]+)" + +FIELD_NAME_PATTERN = rf"(?P<{ValueType.no_quotes_value}>[a-zA-Z0-9\._\-]+)" +DOUBLE_QUOTES_FIELD_NAME_PATTERN = rf'"(?P<{ValueType.double_quotes_value}>[a-zA-Z0-9\._\-\s]+)"' diff --git a/uncoder-core/app/translator/platforms/base/aql/tokenizer.py b/uncoder-core/app/translator/platforms/base/aql/tokenizer.py index 16aa96fe..ff04be20 100644 --- a/uncoder-core/app/translator/platforms/base/aql/tokenizer.py +++ b/uncoder-core/app/translator/platforms/base/aql/tokenizer.py @@ -29,7 +29,13 @@ from app.translator.core.models.query_tokens.keyword import Keyword from app.translator.core.str_value_manager import StrValue from app.translator.core.tokenizer import QueryTokenizer -from app.translator.platforms.base.aql.const import NUM_VALUE_PATTERN, SINGLE_QUOTES_VALUE_PATTERN, UTF8_PAYLOAD_PATTERN +from app.translator.platforms.base.aql.const import ( + DOUBLE_QUOTES_FIELD_NAME_PATTERN, + FIELD_NAME_PATTERN, + NUM_VALUE_PATTERN, + SINGLE_QUOTES_VALUE_PATTERN, + UTF8_PAYLOAD_PATTERN, +) from app.translator.platforms.base.aql.functions.const import AQLFunctionGroupType from app.translator.platforms.base.aql.str_value_manager import aql_str_value_manager from app.translator.tools.utils import get_match_group @@ -51,7 +57,7 @@ class AQLTokenizer(QueryTokenizer): multi_value_operators_map: ClassVar[dict[str, str]] = {"in": OperatorType.EQ} field_pattern = r'(?P"[a-zA-Z\._\-\s]+"|[a-zA-Z\._\-]+)' - function_pattern = r'(?P[a-zA-Z_]+)\((?:(?:[a-zA-Z\._\-\s]+)|(?:"[a-zA-Z\._\-]+"))\)' + function_pattern = rf"(?P[a-zA-Z_]+)\((?:{FIELD_NAME_PATTERN}|{DOUBLE_QUOTES_FIELD_NAME_PATTERN})\)" bool_value_pattern = rf"(?P<{ValueType.bool_value}>true|false)\s*" _value_pattern = rf"{NUM_VALUE_PATTERN}|{bool_value_pattern}|{SINGLE_QUOTES_VALUE_PATTERN}" multi_value_pattern = rf"""\((?P<{ValueType.multi_value}>[:a-zA-Z\"\*0-9=+%#\-_\/\\'\,.&^@!\(\s]*)\)""" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy