From f3192ca06de1007545bf6c3a49ddc83fb615a642 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 30 Dec 2018 10:37:23 -0600 Subject: ExpressionParser: Add support for literals. --- .../InputCommon/ControlReference/ExpressionParser.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'Source/Core/InputCommon/ControlReference/ExpressionParser.h') diff --git a/Source/Core/InputCommon/ControlReference/ExpressionParser.h b/Source/Core/InputCommon/ControlReference/ExpressionParser.h index 56c0340f49..0a42d90c62 100644 --- a/Source/Core/InputCommon/ControlReference/ExpressionParser.h +++ b/Source/Core/InputCommon/ControlReference/ExpressionParser.h @@ -19,6 +19,7 @@ public: std::string control_name; ControlQualifier() : has_device(false) {} + operator std::string() const { if (has_device) @@ -26,6 +27,23 @@ public: else return control_name; } + + void FromString(const std::string& str) + { + const auto col_pos = str.find_last_of(':'); + + has_device = (str.npos != col_pos); + if (has_device) + { + device_qualifier.FromString(str.substr(0, col_pos)); + control_name = str.substr(col_pos + 1); + } + else + { + device_qualifier.FromString(""); + control_name = str; + } + } }; class ControlFinder -- cgit v1.2.3