From 4d41bd64c8c01884fa0c2a663cc76a696c30adbb Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 11 Oct 2019 19:38:18 -0500 Subject: ExpressionParser: Show error message with expected arguments. --- .../InputCommon/ControlReference/FunctionExpression.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'Source/Core/InputCommon/ControlReference/FunctionExpression.h') diff --git a/Source/Core/InputCommon/ControlReference/FunctionExpression.h b/Source/Core/InputCommon/ControlReference/FunctionExpression.h index 14b438a299..f5332a0d25 100644 --- a/Source/Core/InputCommon/ControlReference/FunctionExpression.h +++ b/Source/Core/InputCommon/ControlReference/FunctionExpression.h @@ -6,6 +6,7 @@ #include #include +#include #include #include "InputCommon/ControlReference/ExpressionParser.h" @@ -18,15 +19,27 @@ namespace ExpressionParser class FunctionExpression : public Expression { public: + struct ArgumentsAreValid + { + }; + + struct ExpectedArguments + { + std::string text; + }; + + using ArgumentValidation = std::variant; + int CountNumControls() const override; void UpdateReferences(ControlEnvironment& env) override; - bool SetArguments(std::vector>&& args); + ArgumentValidation SetArguments(std::vector>&& args); void SetValue(ControlState value) override; protected: - virtual bool ValidateArguments(const std::vector>& args) = 0; + virtual ArgumentValidation + ValidateArguments(const std::vector>& args) = 0; Expression& GetArg(u32 number); const Expression& GetArg(u32 number) const; -- cgit v1.2.3