#include "MenuMatcherScriptInt.h" MenuMatcherScriptInt::MenuMatcherScriptInt() = default; MatcherResult MenuMatcherScriptInt::CanMatch(ILexer*lexer, const unsigned tokenOffset) { const auto& token = lexer->GetToken(tokenOffset); if (token.m_type == SimpleParserValueType::INTEGER) return MatcherResult::Match(1); if (token.m_type != SimpleParserValueType::STRING) return MatcherResult::NoMatch(); const auto& stringValue = token.StringValue(); if (stringValue.empty()) return MatcherResult::NoMatch(); char* endPtr; // The return result does not matter here const auto _ = strtol(&stringValue[0], &endPtr, 10); if (endPtr != &stringValue[stringValue.size() - 1]) return MatcherResult::NoMatch(); return MatcherResult::Match(1); }