def parse_expression(expression: str) -> Tuple[str, str]:
try:<EOL><INDENT>_expression = expression.strip()<EOL>name, operation = _expression.split('<STR_LIT::>')<EOL>name = name.strip()<EOL>operation = operation.strip()<EOL>if not name or not operation:<EOL><INDENT>raise ValueError<EOL><DEDENT><DEDENT>except (ValueError, AttributeError):<EOL><INDENT>raise QueryParserException('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format(expression))<EOL><DEDENT>return name, operation<EOL>
Base parsing for expressions.

    Every expression must follow a basic format:
        `name:[modifier|operator]operation[*[operator]operation]`

    So this parser just split the expression into: field name, operation.