4#include "Containers/Array.h"
5#include "Containers/Map.h"
12#include "Misc/Optional.h"
73 const FString TestString;
81 enum class EInvertResult :
uint8
96 , TextComparisonMode(
Other.TextComparisonMode)
97 , InvertResult(
Other.InvertResult)
103 , TextComparisonMode(
Other.TextComparisonMode)
104 , InvertResult(
Other.InvertResult)
111 TextComparisonMode =
Other.TextComparisonMode;
112 InvertResult =
Other.InvertResult;
119 TextComparisonMode =
Other.TextComparisonMode;
120 InvertResult =
Other.InvertResult;
137 const bool bMatched =
InContext->TestBasicStringExpression(String, TextComparisonMode);
149 return TextComparisonMode;
155 EInvertResult InvertResult;
164#define DEFINE_TEXT_EXPRESSION_OPERATOR_NODE(TYPE, MONIKER_COUNT, ...) \
165 namespace TextFilterExpressionParser \
169 static constexpr int32 MonikerCount = MONIKER_COUNT; \
170 static const TCHAR* Monikers[MonikerCount]; \
173DEFINE_EXPRESSION_NODE_TYPE(TextFilterExpressionParser::TYPE, __VA_ARGS__)
192#undef DEFINE_TEXT_EXPRESSION_OPERATOR_NODE
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
#define DEFINE_EXPRESSION_NODE_TYPE(TYPE,...)
Definition ExpressionParserTypes.h:196
ETextFilterExpressionType
Definition TextFilterExpressionEvaluator.h:21
ETextFilterExpressionEvaluatorMode
Definition TextFilterExpressionEvaluator.h:30
#define DEFINE_TEXT_EXPRESSION_OPERATOR_NODE(TYPE, MONIKER_COUNT,...)
Definition TextFilterExpressionEvaluator.h:164
ETextFilterTextComparisonMode
Definition TextFilterUtils.h:24
ETextFilterComparisonOperation
Definition TextFilterUtils.h:13
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition TextFilterExpressionEvaluator.h:51
FBasicStringFilterExpressionContext(const FString &InTestString)
Definition TextFilterExpressionEvaluator.h:57
FBasicStringFilterExpressionContext(FString &&InTestString)
Definition TextFilterExpressionEvaluator.h:53
virtual bool TestComplexExpression(const FName &InKey, const FTextFilterString &InValue, const ETextFilterComparisonOperation InComparisonOperation, const ETextFilterTextComparisonMode InTextComparisonMode) const override
Definition TextFilterExpressionEvaluator.h:67
virtual bool TestBasicStringExpression(const FTextFilterString &InValue, const ETextFilterTextComparisonMode InTextComparisonMode) const override
Definition TextFilterExpressionEvaluator.h:62
Definition ExpressionParserTypes.h:557
Definition NameTypes.h:617
Definition TextFilterExpressionEvaluator.h:198
TArray< FExpressionToken > ExpressionTokens
Definition TextFilterExpressionEvaluator.h:250
CORE_API FText GetFilterErrorText() const
Definition TextFilterExpressionEvaluator.cpp:476
CORE_API FTextFilterExpressionEvaluator & operator=(const FTextFilterExpressionEvaluator &Other)
Definition TextFilterExpressionEvaluator.cpp:262
virtual CORE_API ~FTextFilterExpressionEvaluator()
CORE_API const TArray< FExpressionToken > & GetFilterExpressionTokens() const
Definition TextFilterExpressionEvaluator.cpp:481
CORE_API void SetupGrammar()
Definition TextFilterExpressionEvaluator.cpp:506
CORE_API bool SetFilterText(const FText &InFilterText)
Definition TextFilterExpressionEvaluator.cpp:298
FExpressionGrammar Grammar
Definition TextFilterExpressionEvaluator.h:263
virtual CORE_API void ConstructExpressionParser()
Definition TextFilterExpressionEvaluator.cpp:546
FText FilterErrorText
Definition TextFilterExpressionEvaluator.h:247
TMap< FString, FTokenFunctionHandler > TokenFunctionHandlers
Definition TextFilterExpressionEvaluator.h:259
CORE_API FText GetFilterText() const
Definition TextFilterExpressionEvaluator.cpp:293
ETextFilterExpressionEvaluatorMode ExpressionEvaluatorMode
Definition TextFilterExpressionEvaluator.h:238
TOptional< ExpressionParser::CompileResultType > CompiledFilter
Definition TextFilterExpressionEvaluator.h:253
CORE_API ETextFilterExpressionType GetFilterType() const
Definition TextFilterExpressionEvaluator.cpp:288
ETextFilterExpressionType FilterType
Definition TextFilterExpressionEvaluator.h:241
TOptional< TextFilterExpressionParser::FTextToken > CompiledFilterSingleBasicStringTextToken
Definition TextFilterExpressionEvaluator.h:256
TOperatorJumpTable< ITextFilterExpressionContext > JumpTable
Definition TextFilterExpressionEvaluator.h:264
CORE_API void AddFunctionTokenCallback(FString InFunctionName, FTokenFunctionHandler InCallback)
Definition TextFilterExpressionEvaluator.cpp:501
FTokenDefinitions TokenDefinitions
Definition TextFilterExpressionEvaluator.h:262
CORE_API bool TestTextFilter(const ITextFilterExpressionContext &InContext) const
Definition TextFilterExpressionEvaluator.cpp:486
FText FilterText
Definition TextFilterExpressionEvaluator.h:244
virtual CORE_API bool EvaluateCompiledExpression(const ExpressionParser::CompileResultType &InCompiledResult, const ITextFilterExpressionContext &InContext, FText *OutErrorText) const
Definition TextFilterExpressionEvaluator.cpp:584
Definition TextFilterUtils.h:38
Definition TokenizedMessage.h:254
Definition TextFilterExpressionEvaluator.h:37
virtual bool TestBasicStringExpression(const FTextFilterString &InValue, const ETextFilterTextComparisonMode InTextComparisonMode) const =0
virtual ~ITextFilterExpressionContext()
Definition TextFilterExpressionEvaluator.h:46
virtual bool TestComplexExpression(const FName &InKey, const FTextFilterString &InValue, const ETextFilterComparisonOperation InComparisonOperation, const ETextFilterTextComparisonMode InTextComparisonMode) const =0
Definition UnrealString.h.inl:34
Definition ValueOrError.h:58
@ No
Definition GenericPlatformMisc.h:326
@ Yes
Definition GenericPlatformMisc.h:327
Definition TextFilterExpressionEvaluator.cpp:14
Definition ExpressionParserTypes.h:317
Definition Optional.h:131